{"version":3,"file":"static/js/index.67dc51ff.js","sources":["webpack://mw-mypage2/./src/Enums.ts","webpack://mw-mypage2/./src/Types.ts","webpack://mw-mypage2/./src/__generated__/documentsPaginationQuery_CasePotentialBuyer.graphql.ts","webpack://mw-mypage2/./src/__generated__/mainNavigationNotificationsRefreshQuery.graphql.ts","webpack://mw-mypage2/./src/__generated__/registerOpenHouseQuery.graphql.ts","webpack://mw-mypage2/./src/app/context/ThemeContext.ts","webpack://mw-mypage2/./src/__generated__/viewerContextQuery.graphql.ts","webpack://mw-mypage2/./src/app/contexts/viewerContext.tsx","webpack://mw-mypage2/./src/app/mixpanel/MixPanelProvider.tsx","webpack://mw-mypage2/./src/app/pages/activities/tab.ts","webpack://mw-mypage2/./src/app/pages/favorites/tab.ts","webpack://mw-mypage2/./src/app/pages/match/tab.ts","webpack://mw-mypage2/./src/app/pages/my-sales/tab.ts","webpack://mw-mypage2/./src/hooks/use-navigate-to-top.tsx","webpack://mw-mypage2/./src/components/atoms/button/button.tsx","webpack://mw-mypage2/./src/assets/icons/svgs/AddPin.svg","webpack://mw-mypage2/./src/assets/icons/svgs/AndroidAddHomeScreen.svg","webpack://mw-mypage2/./src/assets/icons/svgs/ArrowDown.svg","webpack://mw-mypage2/./src/assets/icons/svgs/ArrowFilled.svg","webpack://mw-mypage2/./src/assets/icons/svgs/ArrowLeft.svg","webpack://mw-mypage2/./src/assets/icons/svgs/ArrowLeftLong.svg","webpack://mw-mypage2/./src/assets/icons/svgs/ArrowRight.svg","webpack://mw-mypage2/./src/assets/icons/svgs/ArrowRightLong.svg","webpack://mw-mypage2/./src/assets/icons/svgs/ArrowUp.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Avatar.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Banner.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Bell.svg","webpack://mw-mypage2/./src/assets/icons/svgs/BellOff.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Boligsiden.svg","webpack://mw-mypage2/./src/assets/icons/svgs/BurgerMenu.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Calendar.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Camera.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Cart.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Chat.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Check.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Clip.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Clock.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Cross.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Cross1.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Delete.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Dot.svg","webpack://mw-mypage2/./src/assets/icons/svgs/DotsMenu.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Download.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Dropdown.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Expand.svg","webpack://mw-mypage2/./src/assets/icons/svgs/FB.svg","webpack://mw-mypage2/./src/assets/icons/svgs/FavouritePin.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Files.svg","webpack://mw-mypage2/./src/assets/icons/svgs/FilesCheck.svg","webpack://mw-mypage2/./src/assets/icons/svgs/FullArrowLeft.svg","webpack://mw-mypage2/./src/assets/icons/svgs/FullArrowRight.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Heart.svg","webpack://mw-mypage2/./src/assets/icons/svgs/HeartFilled.svg","webpack://mw-mypage2/./src/assets/icons/svgs/HeartOutline.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Home.svg","webpack://mw-mypage2/./src/assets/icons/svgs/House.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Image.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Images.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Info.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Lead.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Letter.svg","webpack://mw-mypage2/./src/assets/icons/svgs/LogOut.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Minus.svg","webpack://mw-mypage2/./src/assets/icons/svgs/NewMessage.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Note.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Pen.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Person.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Pin.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Plan.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Play.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Plus.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Search.svg","webpack://mw-mypage2/./src/assets/icons/svgs/SellerSays.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Send.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Share.svg","webpack://mw-mypage2/./src/assets/icons/svgs/StarFilled.svg","webpack://mw-mypage2/./src/assets/icons/svgs/StarOutline.svg","webpack://mw-mypage2/./src/assets/icons/svgs/TickDown.svg","webpack://mw-mypage2/./src/assets/icons/svgs/Trashcan.svg","webpack://mw-mypage2/./src/components/atoms/icon/icon.tsx","webpack://mw-mypage2/./src/components/atoms/loader/loader.tsx","webpack://mw-mypage2/./src/components/atoms/spinner/spinner.tsx","webpack://mw-mypage2/./src/components/atoms/tag/tag.tsx","webpack://mw-mypage2/./src/components/atoms/typography/typography.tsx","webpack://mw-mypage2/./src/utils/avatarVersions.ts","webpack://mw-mypage2/./src/components/molecules/avatar/avatar.tsx","webpack://mw-mypage2/./src/components/molecules/chat-actions/chat-actions.tsx","webpack://mw-mypage2/./src/components/molecules/checkbox/checkbox.tsx","webpack://mw-mypage2/./src/__generated__/contactCard_employee.graphql.ts","webpack://mw-mypage2/./src/components/molecules/contact-card/contact-card.tsx","webpack://mw-mypage2/./src/components/molecules/custom-select/custom-select.tsx","webpack://mw-mypage2/./src/components/molecules/date-picker/date-picker.tsx","webpack://mw-mypage2/./src/components/molecules/empty-module/empty-module.tsx","webpack://mw-mypage2/./src/components/molecules/file-input/file-input.tsx","webpack://mw-mypage2/./src/components/molecules/indeterminate-checkbox/indeterminate-checkbox.tsx","webpack://mw-mypage2/./src/components/molecules/input/input.tsx","webpack://mw-mypage2/./src/__generated__/openHouseImageOverlay_baseCase.graphql.ts","webpack://mw-mypage2/./src/components/molecules/match-hero-images/open-house-image-overlay.tsx","webpack://mw-mypage2/./src/components/molecules/modal/modal.tsx","webpack://mw-mypage2/./src/components/molecules/not-found/not-found.tsx","webpack://mw-mypage2/./src/components/molecules/popup-overlay/popup-overlay.tsx","webpack://mw-mypage2/./src/__generated__/leadListItemFragment.graphql.ts","webpack://mw-mypage2/./src/components/molecules/card/card.tsx","webpack://mw-mypage2/./src/components/molecules/sale-by-owner/lead-list-item.tsx","webpack://mw-mypage2/./src/__generated__/saleByOwnerMutation.graphql.ts","webpack://mw-mypage2/./src/__generated__/saleByOwnerGridFragment.graphql.ts","webpack://mw-mypage2/./src/__generated__/leadDialogContent.graphql.ts","webpack://mw-mypage2/./src/__generated__/leadDialogContentViewer.graphql.ts","webpack://mw-mypage2/./src/__generated__/leadPresentationDialogContent.graphql.ts","webpack://mw-mypage2/./src/__generated__/leadPresentationDialogContentViewer.graphql.ts","webpack://mw-mypage2/./src/components/molecules/sale-by-owner/dialog/utils.ts","webpack://mw-mypage2/./src/components/molecules/sale-by-owner/dialog/lead-presentation-dialog-content.tsx","webpack://mw-mypage2/./src/__generated__/leadContactDialogContentFragment.graphql.ts","webpack://mw-mypage2/./src/components/molecules/sale-by-owner/dialog/lead-contact-dialog-content.tsx","webpack://mw-mypage2/./src/__generated__/leadOpenHouseDialogContent.graphql.ts","webpack://mw-mypage2/./src/__generated__/leadOpenHouseDialogContentViewer.graphql.ts","webpack://mw-mypage2/./src/components/molecules/sale-by-owner/dialog/lead-open-house-dialog-content.tsx","webpack://mw-mypage2/./src/components/molecules/sale-by-owner/dialog/lead-dialog-content.tsx","webpack://mw-mypage2/./src/components/molecules/sale-by-owner/sale-by-owner-grid.tsx","webpack://mw-mypage2/./src/components/molecules/select/select.tsx","webpack://mw-mypage2/./src/components/molecules/simple-modal/simple-modal.tsx","webpack://mw-mypage2/./src/components/molecules/textarea/textarea.tsx","webpack://mw-mypage2/./src/__generated__/contactModuleOffmarket_offmarketCase.graphql.ts","webpack://mw-mypage2/./src/components/organisms/contact-module/contact-module-offmarket.tsx","webpack://mw-mypage2/./src/__generated__/contactModule_baseCase.graphql.ts","webpack://mw-mypage2/./src/components/organisms/contact-module/contact-module.tsx","webpack://mw-mypage2/./src/__generated__/contactSellerModal_customerIdQuery.graphql.ts","webpack://mw-mypage2/./src/__generated__/createThread_Mutation.graphql.ts","webpack://mw-mypage2/./src/components/organisms/contact-seller-form/contact-seller-form.tsx","webpack://mw-mypage2/./src/components/organisms/contact-seller-modal/contact-seller-modal.tsx","webpack://mw-mypage2/./src/components/atoms/select/select.tsx","webpack://mw-mypage2/./src/components/molecules/table-select/table-select.tsx","webpack://mw-mypage2/./src/components/organisms/documents-table/documents-table-footer.tsx","webpack://mw-mypage2/./src/components/organisms/documents-table/documents-table-header.tsx","webpack://mw-mypage2/./src/__generated__/documentsTableRowFragment.graphql.ts","webpack://mw-mypage2/./src/components/organisms/documents-table/documents-table-row.tsx","webpack://mw-mypage2/./src/components/organisms/documents-table/documents-table-state-context.ts","webpack://mw-mypage2/./src/components/organisms/documents-table/utils.ts","webpack://mw-mypage2/./src/components/organisms/documents-table/documents-table-state-reducer.ts","webpack://mw-mypage2/./src/components/organisms/documents-table/documents-table.tsx","webpack://mw-mypage2/./src/components/organisms/documents-table/empty-table-body.tsx","webpack://mw-mypage2/./src/components/organisms/documents-table/table-skeleton.tsx","webpack://mw-mypage2/./src/__generated__/caseImages_Media.graphql.ts","webpack://mw-mypage2/./src/components/molecules/gallery-navigation/gallery-navigation.tsx","webpack://mw-mypage2/./src/__generated__/caseGallery_mediaDataConnection.graphql.ts","webpack://mw-mypage2/./src/__generated__/caseGallerySwiper_mediaDataConnection.graphql.ts","webpack://mw-mypage2/./src/components/molecules/swiper-navigation/swiper-navigation.tsx","webpack://mw-mypage2/./src/components/molecules/images-swiper/video.tsx","webpack://mw-mypage2/./src/components/molecules/images-swiper/image.tsx","webpack://mw-mypage2/./src/components/organisms/case-gallery-swiper/case-gallery-swiper.tsx","webpack://mw-mypage2/./src/components/organisms/case-gallery/case-gallery.tsx","webpack://mw-mypage2/./src/components/organisms/map-overlay/map-overlay.tsx","webpack://mw-mypage2/./src/__generated__/caseImagesSwiper_mediaDataConnection.graphql.ts","webpack://mw-mypage2/./src/components/molecules/case-images-swiper/case-images-swiper.tsx","webpack://mw-mypage2/./src/__generated__/caseFullscreenGallery_mediaDataConnection.graphql.ts","webpack://mw-mypage2/./src/components/molecules/case-fullscreen-gallery/case-fullscreen-gallery.tsx","webpack://mw-mypage2/./src/components/organisms/images/case-images.tsx","webpack://mw-mypage2/./src/__generated__/matchHeroDetailsFragment.graphql.ts","webpack://mw-mypage2/./src/__generated__/matchHeroContentAgriculturalCase_baseCase.graphql.ts","webpack://mw-mypage2/./src/__generated__/matchHeroContentBusinessSalesCase.graphql.ts","webpack://mw-mypage2/./src/__generated__/bookShowcasingModal_Query.graphql.ts","webpack://mw-mypage2/./src/__generated__/createPresentationMutation.graphql.ts","webpack://mw-mypage2/./src/__generated__/matchHeroContentFragment_baseCase.graphql.ts","webpack://mw-mypage2/./src/__generated__/matchHeroContentFragment_offmarketCase.graphql.ts","webpack://mw-mypage2/./src/components/molecules/match-hero-content-agriculturalcase/match-hero-content-agricultural-case.tsx","webpack://mw-mypage2/./src/components/molecules/match-hero-content-businesssalescase/match-hero-content-business-sales-case.tsx","webpack://mw-mypage2/./src/__generated__/matchHeroContentCounselingCase.graphql.ts","webpack://mw-mypage2/./src/components/molecules/match-hero-content-counselingcase/match-hero-content-counseling-case.tsx","webpack://mw-mypage2/./src/__generated__/matchHeroContentRentalCase.graphql.ts","webpack://mw-mypage2/./src/components/molecules/match-hero-content-rentalcase/match-hero-content-rental-case.tsx","webpack://mw-mypage2/./src/__generated__/matchHeroContentSalesCase.graphql.ts","webpack://mw-mypage2/./src/components/molecules/match-hero-content-salescase/match-hero-content-sales-case.tsx","webpack://mw-mypage2/./src/components/molecules/match-hero-details/match-hero-details.tsx","webpack://mw-mypage2/./src/__generated__/matchHeroOffmarketDetailsFragment_offmarketCase.graphql.ts","webpack://mw-mypage2/./src/components/molecules/match-hero-details/match-hero-offmarket-details.tsx","webpack://mw-mypage2/./src/components/organisms/book-showcasing-modal/book-showcasing-modal.tsx","webpack://mw-mypage2/./src/components/organisms/match-hero-content/match-hero-content.tsx","webpack://mw-mypage2/./src/__generated__/myPageSpotsEntity.graphql.ts","webpack://mw-mypage2/./src/components/organisms/my-page-spots/my-page-spots.tsx","webpack://mw-mypage2/./src/__generated__/registerOpenHouseModal_Query.graphql.ts","webpack://mw-mypage2/./src/__generated__/registerOpenHouseModalFragment.graphql.ts","webpack://mw-mypage2/./src/__generated__/registerOpenHouseModalMutation.graphql.ts","webpack://mw-mypage2/./src/components/organisms/register-open-house-modal/success-summit.tsx","webpack://mw-mypage2/./src/components/organisms/register-open-house-modal/register-open-house-modal.tsx","webpack://mw-mypage2/./src/components/organisms/self-sale/appointment-modal-content.tsx","webpack://mw-mypage2/./src/__generated__/chooseActivityModal_Query.graphql.ts","webpack://mw-mypage2/./src/__generated__/chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation.graphql.ts","webpack://mw-mypage2/./src/components/organisms/self-sale/components/headline.tsx","webpack://mw-mypage2/./src/components/organisms/self-sale/components/show-casing-input.tsx","webpack://mw-mypage2/./src/components/organisms/self-sale/choose-activity-modal.tsx","webpack://mw-mypage2/./src/components/molecules/timepicker/timerpicker.tsx","webpack://mw-mypage2/./src/components/organisms/self-sale/components/appointment-timepicker.tsx","webpack://mw-mypage2/./src/components/organisms/self-sale/self-sale-functions.ts","webpack://mw-mypage2/./src/components/organisms/tab-component/tab-component.tsx","webpack://mw-mypage2/./src/components/templates/error-boundary-block.tsx","webpack://mw-mypage2/./src/components/templates/suspense-hoc.tsx","webpack://mw-mypage2/./src/components/utilities/block/block.tsx","webpack://mw-mypage2/./src/components/utilities/column/column.tsx","webpack://mw-mypage2/./src/components/utilities/container/container.tsx","webpack://mw-mypage2/./src/components/utilities/module-wrapper/module-wrapper.tsx","webpack://mw-mypage2/./src/components/utilities/row/row.tsx","webpack://mw-mypage2/./src/hooks/relay/useCreate.tsx","webpack://mw-mypage2/./src/hooks/relay/relay-utils.ts","webpack://mw-mypage2/./src/hooks/relay/useUpdate.tsx","webpack://mw-mypage2/./src/hooks/use-on-click-outside.ts","webpack://mw-mypage2/./src/hooks/useIntersectionObserver.ts","webpack://mw-mypage2/./src/hooks/useWindowSize.ts","webpack://mw-mypage2/./src/hooks/useIsMobile.ts","webpack://mw-mypage2/./src/hooks/useList.tsx","webpack://mw-mypage2/./src/hooks/useMixPanel.ts","webpack://mw-mypage2/./src/hooks/useNodes.ts","webpack://mw-mypage2/./src/hooks/usePropertyCategories.ts","webpack://mw-mypage2/./src/hooks/useSubscriptionWithReconnect.ts","webpack://mw-mypage2/./src/hooks/useToggle.ts","webpack://mw-mypage2/./src/__generated__/defaultLayout_Query.graphql.ts","webpack://mw-mypage2/./src/__generated__/defaultLayout_unreadNotifications_Subscription.graphql.ts","webpack://mw-mypage2/./src/__generated__/notifications_fragment.graphql.ts","webpack://mw-mypage2/./src/__generated__/subscribeClientMutation.graphql.ts","webpack://mw-mypage2/./src/__generated__/unsubscribeClientMutation.graphql.ts","webpack://mw-mypage2/./src/__generated__/favoritePage_Query.graphql.ts","webpack://mw-mypage2/./src/__generated__/favoritePageHero_fragment.graphql.ts","webpack://mw-mypage2/./src/__generated__/favoritePageDocumentsRender_Query.graphql.ts","webpack://mw-mypage2/./src/__generated__/favoritePageDocumentsBody_CasePotentialBuyer.graphql.ts","webpack://mw-mypage2/./src/__generated__/saleByOwnerPageQuery.graphql.ts","webpack://mw-mypage2/./src/reportWebVitals.ts","webpack://mw-mypage2/./src/__generated__/stickyChat_fragment.graphql.ts","webpack://mw-mypage2/./src/components/molecules/sticky-chat/sticky-chat.tsx","webpack://mw-mypage2/./src/components/organisms/footer/footer.tsx","webpack://mw-mypage2/./src/components/organisms/install-pwa-modal/installPWA.tsx","webpack://mw-mypage2/./src/hooks/useIsIOS.ts","webpack://mw-mypage2/./src/__generated__/mainNavigation_fragment.graphql.ts","webpack://mw-mypage2/./src/components/atoms/badge/badge.tsx","webpack://mw-mypage2/./src/utils/arrayBufferToBase64.tsx","webpack://mw-mypage2/./src/utils/requestNotificationPermission.ts","webpack://mw-mypage2/./src/__generated__/notificationComponent_fragment.graphql.ts","webpack://mw-mypage2/./src/__generated__/leadNotification_fragment.graphql.ts","webpack://mw-mypage2/./src/components/organisms/notifications/components/lead-notification.tsx","webpack://mw-mypage2/./src/__generated__/openHouseFavoriteCaseNotification_fragment.graphql.ts","webpack://mw-mypage2/./src/components/organisms/notifications/components/open-house-favorite-case-notification.tsx","webpack://mw-mypage2/./src/__generated__/priceChangeFavoriteCaseNotification_fragment.graphql.ts","webpack://mw-mypage2/./src/components/organisms/notifications/components/price-change-favorite-case-notification.tsx","webpack://mw-mypage2/./src/__generated__/priceChangeOnMatchCaseNotification_fragment.graphql.ts","webpack://mw-mypage2/./src/components/organisms/notifications/components/price-change-on-match-case-notification.tsx","webpack://mw-mypage2/./src/__generated__/activityNotification_fragment.graphql.ts","webpack://mw-mypage2/./src/components/organisms/notifications/components/activity-notification.tsx","webpack://mw-mypage2/./src/__generated__/documentAccessGrantedNotification_fragment.graphql.ts","webpack://mw-mypage2/./src/components/organisms/notifications/components/document-access-granted-notification.tsx","webpack://mw-mypage2/./src/__generated__/documentSigningNotification_fragment.graphql.ts","webpack://mw-mypage2/./src/components/organisms/notifications/components/document-signing-notification.tsx","webpack://mw-mypage2/./src/__generated__/messageNotification_fragment.graphql.ts","webpack://mw-mypage2/./src/components/organisms/notifications/components/message-notification.tsx","webpack://mw-mypage2/./src/__generated__/requestedDocumentNotification_fragment.graphql.ts","webpack://mw-mypage2/./src/components/organisms/notifications/components/requested-document-notification.tsx","webpack://mw-mypage2/./src/__generated__/searchProfileMatchNotification_fragment.graphql.ts","webpack://mw-mypage2/./src/components/organisms/notifications/components/search-profile-match-notification.tsx","webpack://mw-mypage2/./src/__generated__/searchProfileMatchedCaseNotification_fragment.graphql.ts","webpack://mw-mypage2/./src/components/organisms/notifications/components/search-profile-matched-case-notification.tsx","webpack://mw-mypage2/./src/components/organisms/notifications/components/notification-component.tsx","webpack://mw-mypage2/./src/components/organisms/notifications/no-notification-data.tsx","webpack://mw-mypage2/./src/components/organisms/notifications/notifications.tsx","webpack://mw-mypage2/./src/app/pages/favorites/favorite-page-hero.tsx","webpack://mw-mypage2/./src/app/pages/favorites/documents/favorite-page-documents-body.tsx","webpack://mw-mypage2/./src/app/pages/favorites/documents/favorite-page-documents-render.tsx","webpack://mw-mypage2/./src/__generated__/saleByOwnerProcessedGridFragment.graphql.ts","webpack://mw-mypage2/./src/components/molecules/sale-by-owner/sale-by-owner-processed-grid.tsx","webpack://mw-mypage2/./src/app/pages/sale-by-owner/sale-by-owner-page.tsx","webpack://mw-mypage2/./src/app/router/routes-setup.tsx","webpack://mw-mypage2/./src/app/pages/favorites/favorite-page.tsx","webpack://mw-mypage2/./src/components/organisms/home-link/home-link.tsx","webpack://mw-mypage2/./src/components/organisms/logout-button/logout-button.tsx","webpack://mw-mypage2/./src/app/mixpanel/util.tsx","webpack://mw-mypage2/./src/components/organisms/bell-highlight-popup/bell-highlight-popup.tsx","webpack://mw-mypage2/./src/components/organisms/main-navigation/main-navigation.tsx","webpack://mw-mypage2/./src/services/error-boundary/error-boundary.tsx","webpack://mw-mypage2/./src/app/layouts/default-layout.tsx","webpack://mw-mypage2/./src/services/relay/relay-environment.ts","webpack://mw-mypage2/./src/services/translations/IntlProvider.tsx","webpack://mw-mypage2/./src/components/molecules/top-level-toast-container/top-level-toast-container.tsx","webpack://mw-mypage2/./src/app/contexts/userDeviceContext.tsx","webpack://mw-mypage2/./src/app/AppRoot.tsx","webpack://mw-mypage2/./src/setup/setup-react-app.tsx","webpack://mw-mypage2/./src/index.tsx","webpack://mw-mypage2/./src/serviceWorkerRegistration.ts","webpack://mw-mypage2/./src/services/authentication/authentication-service.ts","webpack://mw-mypage2/./src/services/errors/LogProxy.ts","webpack://mw-mypage2/./src/__generated__/markNotificationAsRead_Mutation.graphql.ts","webpack://mw-mypage2/./src/services/relay/mutations/markNotificationAsRead.tsx","webpack://mw-mypage2/./src/__generated__/updateSearchProfileMatchedCase_Mutation.graphql.ts","webpack://mw-mypage2/./src/services/relay/mutations/updateSearchProfileMatchedCase.ts","webpack://mw-mypage2/./src/app/context/SignalrConnectionContext.ts","webpack://mw-mypage2/./src/services/relay/signalr-connection-provider.tsx","webpack://mw-mypage2/./src/services/relay/signalr-connection.ts","webpack://mw-mypage2/./src/setup/setup-app-settings.ts","webpack://mw-mypage2/./src/configs/app-settings-defaults.ts","webpack://mw-mypage2/./src/setup/setup-theme.ts","webpack://mw-mypage2/./src/tools/string-formatters.ts","webpack://mw-mypage2/./src/trans/TypeTranslations.ts","webpack://mw-mypage2/./src/utils/navigation.tsx"],"sourcesContent":["export type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };\nexport type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };\nexport type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string; }\n String: { input: string; output: string; }\n Boolean: { input: boolean; output: boolean; }\n Int: { input: number; output: number; }\n Float: { input: number; output: number; }\n /** The `Date` scalar type represents a year, month and day in accordance with the [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) standard. */\n Date: { input: any; output: any; }\n /** The `DateTime` scalar type represents a date and time. `DateTime` expects timestamps to be formatted in accordance with the [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) standard. */\n DateTime: { input: any; output: any; }\n /** The `DateTimeOffset` scalar type represents a date, time and offset from UTC. `DateTimeOffset` expects timestamps to be formatted in accordance with the [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) standard. */\n DateTimeOffset: { input: any; output: any; }\n Decimal: { input: any; output: any; }\n /** The `Milliseconds` scalar type represents a period of time represented as the total number of milliseconds in range [-922337203685477, 922337203685477]. */\n Milliseconds: { input: any; output: any; }\n /** The `Seconds` scalar type represents a period of time represented as the total number of seconds in range [-922337203685, 922337203685]. */\n Seconds: { input: any; output: any; }\n ULong: { input: any; output: any; }\n};\n\nexport enum ActivityTypeCategoryEnum {\n /** BuyerAdvisorObjectionExtension */\n BuyerAdvisorObjectionExtension = 'BuyerAdvisorObjectionExtension',\n /** BuyerFinancialInstitutionObjectionExtension */\n BuyerFinancialInstitutionObjectionExtension = 'BuyerFinancialInstitutionObjectionExtension',\n /** CounselingCases */\n CounselingCases = 'CounselingCases',\n /** CreditAssessment */\n CreditAssessment = 'CreditAssessment',\n /** CustomerMeetings */\n CustomerMeetings = 'CustomerMeetings',\n /** DeedAvailableForSignatureExtension */\n DeedAvailableForSignatureExtension = 'DeedAvailableForSignatureExtension',\n /** DeedConditionalFinalSignatureExtension */\n DeedConditionalFinalSignatureExtension = 'DeedConditionalFinalSignatureExtension',\n /** DeedLatestSignatureExtension */\n DeedLatestSignatureExtension = 'DeedLatestSignatureExtension',\n /** DeedReportedToLandRegistrationExtension */\n DeedReportedToLandRegistrationExtension = 'DeedReportedToLandRegistrationExtension',\n /** Education */\n Education = 'Education',\n /** ExternalMeeting */\n ExternalMeeting = 'ExternalMeeting',\n /** FirstDepositDeadlineExtension */\n FirstDepositDeadlineExtension = 'FirstDepositDeadlineExtension',\n /** GuaranteeExtension */\n GuaranteeExtension = 'GuaranteeExtension',\n /** InternalMeeting */\n InternalMeeting = 'InternalMeeting',\n /** KeyCollection */\n KeyCollection = 'KeyCollection',\n /** Miscellaneous */\n Miscellaneous = 'Miscellaneous',\n /** OpenHouse */\n OpenHouse = 'OpenHouse',\n /** OpenHouseWithRegistration */\n OpenHouseWithRegistration = 'OpenHouseWithRegistration',\n /** PaidValuation */\n PaidValuation = 'PaidValuation',\n /** Private */\n Private = 'Private',\n /** ProcessClosingProtest */\n ProcessClosingProtest = 'ProcessClosingProtest',\n /** PurchaseAgreementMeetingBuyer */\n PurchaseAgreementMeetingBuyer = 'PurchaseAgreementMeetingBuyer',\n /** PurchaseAgreementMeetingSeller */\n PurchaseAgreementMeetingSeller = 'PurchaseAgreementMeetingSeller',\n /** RectifyCases */\n RectifyCases = 'RectifyCases',\n /** RiskAssessmentReview */\n RiskAssessmentReview = 'RiskAssessmentReview',\n /** SalesValuation */\n SalesValuation = 'SalesValuation',\n /** SecondDepositDeadlineExtension */\n SecondDepositDeadlineExtension = 'SecondDepositDeadlineExtension',\n /** SellerAdvisorObjectionExtension */\n SellerAdvisorObjectionExtension = 'SellerAdvisorObjectionExtension',\n /** SellerFinancialInstitutionObjectionExtension */\n SellerFinancialInstitutionObjectionExtension = 'SellerFinancialInstitutionObjectionExtension',\n /** Showcasing */\n Showcasing = 'Showcasing',\n /** SignedUpOpenHouse */\n SignedUpOpenHouse = 'SignedUpOpenHouse',\n /** StatusMeetingBuyer */\n StatusMeetingBuyer = 'StatusMeetingBuyer',\n /** StatusMeetingSeller */\n StatusMeetingSeller = 'StatusMeetingSeller',\n /** StatusReport */\n StatusReport = 'StatusReport',\n /** Transfer */\n Transfer = 'Transfer'\n}\n\nexport enum AddressType {\n /** NewAddress */\n NewAddress = 'NewAddress',\n /** Private */\n Private = 'Private',\n /** VacationHousing */\n VacationHousing = 'VacationHousing',\n /** Work */\n Work = 'Work'\n}\n\nexport enum AgriculturePropertyTypeCategory {\n /** CattleFarm */\n CattleFarm = 'CattleFarm',\n /** CropsFarm */\n CropsFarm = 'CropsFarm',\n /** FarmHouseAgriculture */\n FarmHouseAgriculture = 'FarmHouseAgriculture',\n /** ForestProperties */\n ForestProperties = 'ForestProperties',\n /** Liebhaveri */\n Liebhaveri = 'Liebhaveri',\n /** PigFarm */\n PigFarm = 'PigFarm',\n /** SpecialProduction */\n SpecialProduction = 'SpecialProduction'\n}\n\nexport type AppointmentActivityCustomerInputType = {\n email?: InputMaybe<Scalars['String']['input']>;\n firstname?: InputMaybe<Scalars['String']['input']>;\n lastname?: InputMaybe<Scalars['String']['input']>;\n phone?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum AppointmentActivityStatusEnum {\n /** Cancelled */\n Cancelled = 'Cancelled',\n /** Planned */\n Planned = 'Planned'\n}\n\nexport enum BuildingInclAreaTypeGraphType {\n /** Carport */\n Carport = 'Carport',\n /** Commercial */\n Commercial = 'Commercial',\n /** Conservatory */\n Conservatory = 'Conservatory',\n /** Garage */\n Garage = 'Garage',\n /** Other */\n Other = 'Other',\n /** Outhouse */\n Outhouse = 'Outhouse'\n}\n\nexport enum BusinessBuildingTypeGraphType {\n /** Abandoned */\n Abandoned = 'Abandoned',\n /** AdventurePark */\n AdventurePark = 'AdventurePark',\n /** AllDayService */\n AllDayService = 'AllDayService',\n /** AllYearRoundHousingAnex */\n AllYearRoundHousingAnex = 'AllYearRoundHousingAnex',\n /** AllotmentHut */\n AllotmentHut = 'AllotmentHut',\n /** Apartment */\n Apartment = 'Apartment',\n /** Aviation */\n Aviation = 'Aviation',\n /** Barracks */\n Barracks = 'Barracks',\n /** BedAndbreakfast */\n BedAndbreakfast = 'BedAndbreakfast',\n /** Carport */\n Carport = 'Carport',\n /** ChurchOrOtherStateRecognizedBuildingForReligiousCommunities */\n ChurchOrOtherStateRecognizedBuildingForReligiousCommunities = 'ChurchOrOtherStateRecognizedBuildingForReligiousCommunities',\n /** CinemaTheaterConcertVenue */\n CinemaTheaterConcertVenue = 'CinemaTheaterConcertVenue',\n /** ClubhouseForLeisureAndSport */\n ClubhouseForLeisureAndSport = 'ClubhouseForLeisureAndSport',\n /** College */\n College = 'College',\n /** CombinedDetached */\n CombinedDetached = 'CombinedDetached',\n /** DayCareFacility */\n DayCareFacility = 'DayCareFacility',\n /** Detached */\n Detached = 'Detached',\n /** DetachedCover */\n DetachedCover = 'DetachedCover',\n /** DetachedSunroom */\n DetachedSunroom = 'DetachedSunroom',\n /** Double */\n Double = 'Double',\n /** EnergyProduction */\n EnergyProduction = 'EnergyProduction',\n /** FarmhouseForAgriculturalProperty */\n FarmhouseForAgriculturalProperty = 'FarmhouseForAgriculturalProperty',\n /** FeedStorage */\n FeedStorage = 'FeedStorage',\n /** Garage */\n Garage = 'Garage',\n /** GasStation */\n GasStation = 'GasStation',\n /** Greenhouse */\n Greenhouse = 'Greenhouse',\n /** HealthCenter */\n HealthCenter = 'HealthCenter',\n /** HolidayApartmentForBusinessRental */\n HolidayApartmentForBusinessRental = 'HolidayApartmentForBusinessRental',\n /** HolidayApartmentForOwn */\n HolidayApartmentForOwn = 'HolidayApartmentForOwn',\n /** HolidayCenter */\n HolidayCenter = 'HolidayCenter',\n /** Hospital */\n Hospital = 'Hospital',\n /** HotelInnConferenceCenterWithAccommodation */\n HotelInnConferenceCenterWithAccommodation = 'HotelInnConferenceCenterWithAccommodation',\n /** IndoorPool */\n IndoorPool = 'IndoorPool',\n /** IndustryWithIntegratedProduction */\n IndustryWithIntegratedProduction = 'IndustryWithIntegratedProduction',\n /** IndustryWithoutIntegratedProduction */\n IndustryWithoutIntegratedProduction = 'IndustryWithoutIntegratedProduction',\n /** Jail */\n Jail = 'Jail',\n /** Library */\n Library = 'Library',\n /** LivestockStable */\n LivestockStable = 'LivestockStable',\n /** MachineHouse */\n MachineHouse = 'MachineHouse',\n /** MinkHall */\n MinkHall = 'MinkHall',\n /** MoreThanTwoVehiclesParkingAssociatedWithHousing */\n MoreThanTwoVehiclesParkingAssociatedWithHousing = 'MoreThanTwoVehiclesParkingAssociatedWithHousing',\n /** Museum */\n Museum = 'Museum',\n /** Office */\n Office = 'Office',\n /** Orangery */\n Orangery = 'Orangery',\n /** Other */\n Other = 'Other',\n /** OtherBuildingForAgriculture */\n OtherBuildingForAgriculture = 'OtherBuildingForAgriculture',\n /** OtherBuildingForCulturalPurposes */\n OtherBuildingForCulturalPurposes = 'OtherBuildingForCulturalPurposes',\n /** OtherBuildingForHealthCare */\n OtherBuildingForHealthCare = 'OtherBuildingForHealthCare',\n /** OtherBuildingForHoliday */\n OtherBuildingForHoliday = 'OtherBuildingForHoliday',\n /** OtherBuildingForInstitutionalPurposes */\n OtherBuildingForInstitutionalPurposes = 'OtherBuildingForInstitutionalPurposes',\n /** OtherBuildingForLeisurePurpose */\n OtherBuildingForLeisurePurpose = 'OtherBuildingForLeisurePurpose',\n /** OtherBuildingForOfficeStorageCommercial */\n OtherBuildingForOfficeStorageCommercial = 'OtherBuildingForOfficeStorageCommercial',\n /** OtherBuildingForProduction */\n OtherBuildingForProduction = 'OtherBuildingForProduction',\n /** OtherBuildingForServiceIndustry */\n OtherBuildingForServiceIndustry = 'OtherBuildingForServiceIndustry',\n /** OtherBuildingForSport */\n OtherBuildingForSport = 'OtherBuildingForSport',\n /** OtherBuildingForSupplyAndEnergyDistribution */\n OtherBuildingForSupplyAndEnergyDistribution = 'OtherBuildingForSupplyAndEnergyDistribution',\n /** OtherBuildingTeachingAndResearch */\n OtherBuildingTeachingAndResearch = 'OtherBuildingTeachingAndResearch',\n /** OtherBuildingToAllYearRoundHousing */\n OtherBuildingToAllYearRoundHousing = 'OtherBuildingToAllYearRoundHousing',\n /** OtherTransportFacility */\n OtherTransportFacility = 'OtherTransportFacility',\n /** Outhouse */\n Outhouse = 'Outhouse',\n /** ParkingAndTransportFacilities */\n ParkingAndTransportFacilities = 'ParkingAndTransportFacilities',\n /** PigStable */\n PigStable = 'PigStable',\n /** PortFacilities */\n PortFacilities = 'PortFacilities',\n /** PoultryStable */\n PoultryStable = 'PoultryStable',\n /** PrimarySchool */\n PrimarySchool = 'PrimarySchool',\n /** PrivateServiceCompany */\n PrivateServiceCompany = 'PrivateServiceCompany',\n /** RailAndBusOperations */\n RailAndBusOperations = 'RailAndBusOperations',\n /** RemainingAgricultural */\n RemainingAgricultural = 'RemainingAgricultural',\n /** ResidentialInstitution */\n ResidentialInstitution = 'ResidentialInstitution',\n /** RestaurantCafeAndConferenceCenterWithoutAccommodation */\n RestaurantCafeAndConferenceCenterWithoutAccommodation = 'RestaurantCafeAndConferenceCenterWithoutAccommodation',\n /** Retail */\n Retail = 'Retail',\n /** RidingSchool */\n RidingSchool = 'RidingSchool',\n /** ShoppingCentre */\n ShoppingCentre = 'ShoppingCentre',\n /** SportHall */\n SportHall = 'SportHall',\n /** Storage */\n Storage = 'Storage',\n /** StrawStorage */\n StrawStorage = 'StrawStorage',\n /** SummerHouse */\n SummerHouse = 'SummerHouse',\n /** SupplyAndEnergyDistribution */\n SupplyAndEnergyDistribution = 'SupplyAndEnergyDistribution',\n /** TerracedAndLinked */\n TerracedAndLinked = 'TerracedAndLinked',\n /** TrashAndWastewater */\n TrashAndWastewater = 'TrashAndWastewater',\n /** TreatmentCenter */\n TreatmentCenter = 'TreatmentCenter',\n /** TribuneAssociatedWithStadium */\n TribuneAssociatedWithStadium = 'TribuneAssociatedWithStadium',\n /** University */\n University = 'University',\n /** VacationAndSummerHouseAnex */\n VacationAndSummerHouseAnex = 'VacationAndSummerHouseAnex',\n /** VillageHall */\n VillageHall = 'VillageHall',\n /** WaterSupply */\n WaterSupply = 'WaterSupply',\n /** Workshop */\n Workshop = 'Workshop'\n}\n\nexport enum BusinessPropertyCategory {\n /** CattleFarm */\n CattleFarm = 'CattleFarm',\n /** Cellar */\n Cellar = 'Cellar',\n /** Clinic */\n Clinic = 'Clinic',\n /** CropFarms */\n CropFarms = 'CropFarms',\n /** ForestProperties */\n ForestProperties = 'ForestProperties',\n /** Garage */\n Garage = 'Garage',\n /** HotelOrRestaurant */\n HotelOrRestaurant = 'HotelOrRestaurant',\n /** HousingAndBusiness */\n HousingAndBusiness = 'HousingAndBusiness',\n /** Investment */\n Investment = 'Investment',\n /** Liberal */\n Liberal = 'Liberal',\n /** Office */\n Office = 'Office',\n /** Parking */\n Parking = 'Parking',\n /** PigFarm */\n PigFarm = 'PigFarm',\n /** Plot */\n Plot = 'Plot',\n /** PrivateResidence */\n PrivateResidence = 'PrivateResidence',\n /** ProductionFacility */\n ProductionFacility = 'ProductionFacility',\n /** ShoppingCenter */\n ShoppingCenter = 'ShoppingCenter',\n /** Showroom */\n Showroom = 'Showroom',\n /** SpecialProduction */\n SpecialProduction = 'SpecialProduction',\n /** Store */\n Store = 'Store',\n /** WareHouse */\n WareHouse = 'WareHouse',\n /** WarehouseAndProduction */\n WarehouseAndProduction = 'WarehouseAndProduction',\n /** Workshop */\n Workshop = 'Workshop'\n}\n\nexport enum BusinessPropertyType {\n /** Cattle */\n Cattle = 'Cattle',\n /** Cellar */\n Cellar = 'Cellar',\n /** Clinic */\n Clinic = 'Clinic',\n /** Crop */\n Crop = 'Crop',\n /** FarmLand */\n FarmLand = 'FarmLand',\n /** ForestProperty */\n ForestProperty = 'ForestProperty',\n /** FreeLand */\n FreeLand = 'FreeLand',\n /** Garage */\n Garage = 'Garage',\n /** HotelOrRestaurant */\n HotelOrRestaurant = 'HotelOrRestaurant',\n /** HousingAndBusiness */\n HousingAndBusiness = 'HousingAndBusiness',\n /** HousingCooperative */\n HousingCooperative = 'HousingCooperative',\n /** Investment */\n Investment = 'Investment',\n /** Liberal */\n Liberal = 'Liberal',\n /** MinkAndFurAnimals */\n MinkAndFurAnimals = 'MinkAndFurAnimals',\n /** Office */\n Office = 'Office',\n /** Parking */\n Parking = 'Parking',\n /** Pigs */\n Pigs = 'Pigs',\n /** Plot */\n Plot = 'Plot',\n /** PoultryProduction */\n PoultryProduction = 'PoultryProduction',\n /** ProductionFacility */\n ProductionFacility = 'ProductionFacility',\n /** ShoppingCenter */\n ShoppingCenter = 'ShoppingCenter',\n /** Showroom */\n Showroom = 'Showroom',\n /** SpecialProduction */\n SpecialProduction = 'SpecialProduction',\n /** Store */\n Store = 'Store',\n /** WareHouse */\n WareHouse = 'WareHouse',\n /** WareHouseAndProduction */\n WareHouseAndProduction = 'WareHouseAndProduction',\n /** Workshop */\n Workshop = 'Workshop'\n}\n\nexport enum BusinessRentalCaseStatus {\n /** Commissioned */\n Commissioned = 'Commissioned',\n /** Discontinued */\n Discontinued = 'Discontinued',\n /** ForRent */\n ForRent = 'ForRent',\n /** LostCommission */\n LostCommission = 'LostCommission',\n /** LostSale */\n LostSale = 'LostSale',\n /** None */\n None = 'None',\n /** Rented */\n Rented = 'Rented',\n /** UnderRent */\n UnderRent = 'UnderRent',\n /** Valuation */\n Valuation = 'Valuation'\n}\n\nexport enum BusinessSalesCaseStatus {\n /** BeforeSale */\n BeforeSale = 'BeforeSale',\n /** FinallyTrade */\n FinallyTrade = 'FinallyTrade',\n /** ForSale */\n ForSale = 'ForSale',\n /** LostCommission */\n LostCommission = 'LostCommission',\n /** NotDefined */\n NotDefined = 'NotDefined',\n /** Return */\n Return = 'Return',\n /** Sold */\n Sold = 'Sold',\n /** UnderSale */\n UnderSale = 'UnderSale',\n /** Valuation */\n Valuation = 'Valuation'\n}\n\nexport enum BusinessSearchProfilePropertyCategory {\n Cellar = 'Cellar',\n Clinic = 'Clinic',\n Garage = 'Garage',\n HotelOrRestaurant = 'HotelOrRestaurant',\n HousingAndBusiness = 'HousingAndBusiness',\n Investment = 'Investment',\n Liberal = 'Liberal',\n Office = 'Office',\n Parking = 'Parking',\n Plot = 'Plot',\n ProductionFacility = 'ProductionFacility',\n ShoppingCenter = 'ShoppingCenter',\n Showroom = 'Showroom',\n Store = 'Store',\n WareHouse = 'WareHouse',\n WarehouseAndProduction = 'WarehouseAndProduction',\n Workshop = 'Workshop'\n}\n\nexport type CancelAppointmentActivityInputType = {\n id: Scalars['ID']['input'];\n};\n\nexport enum CaseAnnouncedType {\n /** Boligsiden */\n Boligsiden = 'Boligsiden',\n /** BoligsidenPreview */\n BoligsidenPreview = 'BoligsidenPreview',\n /** BorsenEjendomslink */\n BorsenEjendomslink = 'BorsenEjendomslink',\n /** Landbrugsavisen */\n Landbrugsavisen = 'Landbrugsavisen',\n /** Landbrugsmarkedet */\n Landbrugsmarkedet = 'Landbrugsmarkedet',\n /** LokaleBasen */\n LokaleBasen = 'LokaleBasen',\n /** Offmarket */\n Offmarket = 'Offmarket',\n /** Oline */\n Oline = 'Oline',\n /** Respace */\n Respace = 'Respace',\n /** Website */\n Website = 'Website'\n}\n\nexport type CasePromotionInputType = {\n caseId: Scalars['ID']['input'];\n ownerSaysPropertyHighlights?: InputMaybe<Scalars['String']['input']>;\n ownerSaysThisIsTheNeighborhood?: InputMaybe<Scalars['String']['input']>;\n ownerSaysWeRelaxHere?: InputMaybe<Scalars['String']['input']>;\n ownerSaysWeShopHere?: InputMaybe<Scalars['String']['input']>;\n ownerSaysWeShowOurGuestsThis?: InputMaybe<Scalars['String']['input']>;\n ownerSaysWhyWeMovedHere?: InputMaybe<Scalars['String']['input']>;\n ownerSaysWhyWereMovingAway?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum CaseTypeEnumGraphType {\n /** BusinessRental */\n BusinessRental = 'BusinessRental',\n /** BusinessSale */\n BusinessSale = 'BusinessSale',\n /** BusinessValuation */\n BusinessValuation = 'BusinessValuation',\n /** Counseling */\n Counseling = 'Counseling',\n /** CounselingProperty */\n CounselingProperty = 'CounselingProperty',\n /** Loan */\n Loan = 'Loan',\n /** Rectify */\n Rectify = 'Rectify',\n /** Rental */\n Rental = 'Rental',\n /** Sale */\n Sale = 'Sale',\n /** Valuation */\n Valuation = 'Valuation'\n}\n\n/** Input object for creating a contact employee lead. */\nexport type ContactEmployee = {\n caseId: Scalars['ID']['input'];\n consentIdGlobal: Scalars['ID']['input'];\n email?: InputMaybe<Scalars['String']['input']>;\n firstName: Scalars['String']['input'];\n lastName: Scalars['String']['input'];\n message: Scalars['String']['input'];\n phoneNumber: Scalars['String']['input'];\n sourceIdGlobal?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport enum CounselingCaseStatus {\n /** Deal */\n Deal = 'Deal',\n /** DealDisregarded */\n DealDisregarded = 'DealDisregarded',\n /** DealMade */\n DealMade = 'DealMade',\n /** DealNotMade */\n DealNotMade = 'DealNotMade',\n /** FinallyTrade */\n FinallyTrade = 'FinallyTrade',\n /** Return */\n Return = 'Return',\n /** Sold */\n Sold = 'Sold'\n}\n\nexport enum CounselingPropertyCaseStatus {\n /** Initial */\n Initial = 'Initial',\n /** Rejected */\n Rejected = 'Rejected',\n /** Selected */\n Selected = 'Selected'\n}\n\n/** Input object for creating and updating the address for a customer. */\nexport type CreateAddressInput = {\n att?: InputMaybe<Scalars['String']['input']>;\n /** Care of. The letter is to be delivered and entrusted to the care of... */\n co?: InputMaybe<Scalars['String']['input']>;\n countryId?: InputMaybe<Scalars['ID']['input']>;\n door?: InputMaybe<Scalars['String']['input']>;\n doorLocation?: InputMaybe<Scalars['String']['input']>;\n floor?: InputMaybe<Scalars['String']['input']>;\n houseName?: InputMaybe<Scalars['String']['input']>;\n houseNumber?: InputMaybe<Scalars['String']['input']>;\n locationCityName?: InputMaybe<Scalars['String']['input']>;\n roadName?: InputMaybe<Scalars['String']['input']>;\n /** The foreign address */\n text?: InputMaybe<Scalars['String']['input']>;\n zipCodeId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type CreateAgricultureSearchProfileInput = {\n /** Property categories */\n agriculturePropertyCategories?: InputMaybe<Array<AgriculturePropertyTypeCategory>>;\n /** Can be contacted */\n canBeContacted?: InputMaybe<Scalars['Boolean']['input']>;\n /** Can be contacted by phone */\n canBeContactedByPhone?: InputMaybe<Scalars['Boolean']['input']>;\n /** Consent of the customer to create a searchprofile */\n consentId: Scalars['ID']['input'];\n contactShopId?: InputMaybe<Scalars['ID']['input']>;\n /** Date of deletion */\n deletionDate?: InputMaybe<Scalars['DateTime']['input']>;\n /** The number of floors from */\n floorCountFrom?: InputMaybe<Scalars['Int']['input']>;\n /** The number of floors to */\n floorCountTo?: InputMaybe<Scalars['Int']['input']>;\n /** The floor number from */\n floorNumberFrom?: InputMaybe<Scalars['Int']['input']>;\n /** The floor number to */\n floorNumberTo?: InputMaybe<Scalars['Int']['input']>;\n /** House area from */\n houseAreaFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** House area to */\n houseAreaTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Multi polygon (lat,lon) */\n multiPolygon?: InputMaybe<Scalars['String']['input']>;\n /** Multi polygon (lon,lat) */\n multiPolygonLonLat?: InputMaybe<Scalars['String']['input']>;\n /** Name of search profile */\n name?: InputMaybe<Scalars['String']['input']>;\n ownerCostFrom?: InputMaybe<Scalars['Decimal']['input']>;\n ownerCostTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Plot area from */\n plotAreaFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Plot area to */\n plotAreaTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Predefined Areas */\n predefinedAreasIds?: InputMaybe<Array<InputMaybe<Scalars['ID']['input']>>>;\n /** Price from */\n priceFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Price to */\n priceTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Room count from */\n roomCountFrom?: InputMaybe<Scalars['Int']['input']>;\n /** Room count to */\n roomCountTo?: InputMaybe<Scalars['Int']['input']>;\n /** Energy mark severities */\n searchProfileEnergyMarkSeverities?: InputMaybe<Array<InputMaybe<EnergyMarkSeverityEnum>>>;\n /** Number of the searchprofile */\n searchProfileNo?: InputMaybe<Scalars['String']['input']>;\n /** Search profile status */\n searchProfileStatus?: InputMaybe<SearchProfileStatus>;\n totalCommercialAreaFrom?: InputMaybe<Scalars['Float']['input']>;\n totalCommercialAreaTo?: InputMaybe<Scalars['Float']['input']>;\n /** Profile valid to date */\n validToDate?: InputMaybe<Scalars['DateTime']['input']>;\n /** Year built from */\n yearBuiltFrom?: InputMaybe<Scalars['Int']['input']>;\n /** Year built to */\n yearBuiltTo?: InputMaybe<Scalars['Int']['input']>;\n /** Zip codes */\n zipCodesIds?: InputMaybe<Array<InputMaybe<Scalars['ID']['input']>>>;\n};\n\nexport type CreateAppointmentActivityInputType = {\n activityTypeId: Scalars['ID']['input'];\n caseId: Scalars['ID']['input'];\n customer?: InputMaybe<AppointmentActivityCustomerInputType>;\n endDatetime: Scalars['DateTime']['input'];\n startDatetime: Scalars['DateTime']['input'];\n};\n\nexport type CreateAppointmentActivityNoteInputType = {\n activityId: Scalars['ID']['input'];\n content: Scalars['String']['input'];\n};\n\nexport type CreateBusinessSearchProfileInput = {\n /** Property categories */\n businessPropertyCategories?: InputMaybe<Array<BusinessSearchProfilePropertyCategory>>;\n /** Can be contacted */\n canBeContacted?: InputMaybe<Scalars['Boolean']['input']>;\n /** Can be contacted by phone */\n canBeContactedByPhone?: InputMaybe<Scalars['Boolean']['input']>;\n /** Consent of the customer to create a searchprofile */\n consentId: Scalars['ID']['input'];\n contactShopId?: InputMaybe<Scalars['ID']['input']>;\n /** Date of deletion */\n deletionDate?: InputMaybe<Scalars['DateTime']['input']>;\n /** The number of floors from */\n floorCountFrom?: InputMaybe<Scalars['Int']['input']>;\n /** The number of floors to */\n floorCountTo?: InputMaybe<Scalars['Int']['input']>;\n /** The floor number from */\n floorNumberFrom?: InputMaybe<Scalars['Int']['input']>;\n /** The floor number to */\n floorNumberTo?: InputMaybe<Scalars['Int']['input']>;\n /** House area from */\n houseAreaFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** House area to */\n houseAreaTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Multi polygon (lat,lon) */\n multiPolygon?: InputMaybe<Scalars['String']['input']>;\n /** Multi polygon (lon,lat) */\n multiPolygonLonLat?: InputMaybe<Scalars['String']['input']>;\n /** Name of search profile */\n name?: InputMaybe<Scalars['String']['input']>;\n ownerCostFrom?: InputMaybe<Scalars['Decimal']['input']>;\n ownerCostTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Plot area from */\n plotAreaFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Plot area to */\n plotAreaTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Predefined Areas */\n predefinedAreasIds?: InputMaybe<Array<InputMaybe<Scalars['ID']['input']>>>;\n /** Price from */\n priceFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Price to */\n priceTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Rate of return from in percent */\n rateOfReturnFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Rate of return to in percent */\n rateOfReturnTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Room count from */\n roomCountFrom?: InputMaybe<Scalars['Int']['input']>;\n /** Room count to */\n roomCountTo?: InputMaybe<Scalars['Int']['input']>;\n /** Energy mark severities */\n searchProfileEnergyMarkSeverities?: InputMaybe<Array<InputMaybe<EnergyMarkSeverityEnum>>>;\n /** Number of the searchprofile */\n searchProfileNo?: InputMaybe<Scalars['String']['input']>;\n /** Search profile status */\n searchProfileStatus?: InputMaybe<SearchProfileStatus>;\n totalCommercialAreaFrom?: InputMaybe<Scalars['Float']['input']>;\n totalCommercialAreaTo?: InputMaybe<Scalars['Float']['input']>;\n /** Profile valid to date */\n validToDate?: InputMaybe<Scalars['DateTime']['input']>;\n /** Year built from */\n yearBuiltFrom?: InputMaybe<Scalars['Int']['input']>;\n /** Year built to */\n yearBuiltTo?: InputMaybe<Scalars['Int']['input']>;\n /** Zip codes */\n zipCodesIds?: InputMaybe<Array<InputMaybe<Scalars['ID']['input']>>>;\n};\n\nexport type CreateConsentOnCustomerInputType = {\n /** The id of consent */\n consentId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type CreateCustomerAddressInput = {\n /** The customer address */\n address: CreateAddressInput;\n /** The address type */\n addressType: AddressType;\n /** The customer address valid from */\n validFrom?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type CreateCustomerEmailInput = {\n customerId: Scalars['ID']['input'];\n email?: InputMaybe<Scalars['String']['input']>;\n emailType?: InputMaybe<EmailType>;\n isLoginEmail?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type CreateMessageResponseInput = {\n /** Boolean value response. Only one of BooleanValue, StringValue or DateValue can be set. */\n booleanValue?: InputMaybe<Scalars['Boolean']['input']>;\n /** Date value response. Only one of BooleanValue, StringValue or DateValue can be set. */\n dateValue?: InputMaybe<Scalars['DateTime']['input']>;\n /** The id of the message to respond to */\n messageId: Scalars['ID']['input'];\n /** String value response. Only one of BooleanValue, StringValue or DateValue can be set. */\n stringValue?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateNeighborhoodPinInputType = {\n /** The category of pins that a pin belongs to */\n category: NeighborhoodPinCategory;\n /** A detailed description of the pin */\n description: Scalars['String']['input'];\n /** The latitude component of the GPS-coordinate for the pin */\n lat: Scalars['Float']['input'];\n /** The longtitude component of the GPS-coordinate for the pin */\n lng: Scalars['Float']['input'];\n /** The short title of the pin */\n title: Scalars['String']['input'];\n};\n\nexport type CreateSearchProfileInput = {\n /** Can be contacted */\n canBeContacted?: InputMaybe<Scalars['Boolean']['input']>;\n /** Can be contacted by phone */\n canBeContactedByPhone?: InputMaybe<Scalars['Boolean']['input']>;\n /** Consent of the customer to create a searchprofile */\n consentId: Scalars['ID']['input'];\n contactShopId?: InputMaybe<Scalars['ID']['input']>;\n /** Cumulative number of days on market (from) */\n cumulativeDaysOnMarketFrom?: InputMaybe<Scalars['Int']['input']>;\n /** Cumulative number of days on market (to) */\n cumulativeDaysOnMarketTo?: InputMaybe<Scalars['Int']['input']>;\n /** Date of deletion */\n deletionDate?: InputMaybe<Scalars['DateTime']['input']>;\n /** Distance to coast in meters (from) */\n distanceCoastFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to coast in meters (to) */\n distanceCoastTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to daycare in meters (from) */\n distanceDaycareFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to daycare in meters (to) */\n distanceDaycareTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to public transportation (bus, metro, S train, train) in meters (from) */\n distancePublicTransportationFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to public transportation (bus, metro, S train, train) in meters (to) */\n distancePublicTransportationTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to school in meters (from) */\n distanceSchoolFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to school in meters (to) */\n distanceSchoolTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to supermarket in meters (from) */\n distanceSupermarketFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to supermarket in meters (to) */\n distanceSupermarketTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** The number of floors from */\n floorCountFrom?: InputMaybe<Scalars['Int']['input']>;\n /** The number of floors to */\n floorCountTo?: InputMaybe<Scalars['Int']['input']>;\n /** The floor number from */\n floorNumberFrom?: InputMaybe<Scalars['Int']['input']>;\n /** The floor number to */\n floorNumberTo?: InputMaybe<Scalars['Int']['input']>;\n /** House area from */\n houseAreaFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** House area to */\n houseAreaTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** The number of living rooms from */\n livingRoomCountFrom?: InputMaybe<Scalars['Int']['input']>;\n /** The number of living rooms to */\n livingRoomCountTo?: InputMaybe<Scalars['Int']['input']>;\n /** Multi polygon (lat,lon) */\n multiPolygon?: InputMaybe<Scalars['String']['input']>;\n /** Multi polygon (lon,lat) */\n multiPolygonLonLat?: InputMaybe<Scalars['String']['input']>;\n /** Name of search profile */\n name?: InputMaybe<Scalars['String']['input']>;\n ownerCostFrom?: InputMaybe<Scalars['Decimal']['input']>;\n ownerCostTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Plot area from */\n plotAreaFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Plot area to */\n plotAreaTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Predefined Areas */\n predefinedAreasIds?: InputMaybe<Array<InputMaybe<Scalars['ID']['input']>>>;\n /** Price from */\n priceFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Price to */\n priceTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Property categories */\n propertyCategories?: InputMaybe<Array<PropertyCategory>>;\n /** Room count from */\n roomCountFrom?: InputMaybe<Scalars['Int']['input']>;\n /** Room count to */\n roomCountTo?: InputMaybe<Scalars['Int']['input']>;\n /** Energy mark severities */\n searchProfileEnergyMarkSeverities?: InputMaybe<Array<InputMaybe<EnergyMarkSeverityEnum>>>;\n /** Number of the searchprofile */\n searchProfileNo?: InputMaybe<Scalars['String']['input']>;\n /** Search profile status */\n searchProfileStatus?: InputMaybe<SearchProfileStatus>;\n /** Search profile words */\n searchProfileWords?: InputMaybe<Array<InputMaybe<SearchProfileWord>>>;\n /** Customer special wishes */\n specialWishes?: InputMaybe<Scalars['String']['input']>;\n /** The number of toilets from */\n toiletCountFrom?: InputMaybe<Scalars['Int']['input']>;\n /** The number of toilets to */\n toiletCountTo?: InputMaybe<Scalars['Int']['input']>;\n totalCommercialAreaFrom?: InputMaybe<Scalars['Float']['input']>;\n totalCommercialAreaTo?: InputMaybe<Scalars['Float']['input']>;\n /** Profile valid to date */\n validToDate?: InputMaybe<Scalars['DateTime']['input']>;\n /** Year built from */\n yearBuiltFrom?: InputMaybe<Scalars['Int']['input']>;\n /** Year built to */\n yearBuiltTo?: InputMaybe<Scalars['Int']['input']>;\n /** Zip codes */\n zipCodesIds?: InputMaybe<Array<InputMaybe<Scalars['ID']['input']>>>;\n};\n\nexport type CreateThreadInput = {\n /** Id of activity to send to */\n activityId?: InputMaybe<Scalars['ID']['input']>;\n /** Message attachments */\n attachmentIDs?: InputMaybe<Array<InputMaybe<Scalars['ID']['input']>>>;\n /** Id of case to send to */\n caseId?: InputMaybe<Scalars['ID']['input']>;\n /** Initial message */\n initialMessage: Scalars['String']['input'];\n /** Id of the participant */\n participantId: Scalars['ID']['input'];\n /** The thread name */\n subject: Scalars['String']['input'];\n};\n\nexport enum CustomerContext {\n /** Buyer */\n Buyer = 'Buyer',\n /** Counselee */\n Counselee = 'Counselee',\n /** Landlord */\n Landlord = 'Landlord',\n /** MatchCase */\n MatchCase = 'MatchCase',\n /** None */\n None = 'None',\n /** PotentialBuyer */\n PotentialBuyer = 'PotentialBuyer',\n /** Seller */\n Seller = 'Seller',\n /** Tenant */\n Tenant = 'Tenant'\n}\n\nexport type CustomerEmailInputType = {\n email?: InputMaybe<Scalars['String']['input']>;\n emailType?: InputMaybe<EmailType>;\n isLoginEmail?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type CustomerPhoneInputType = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n phone?: InputMaybe<Scalars['String']['input']>;\n phoneType?: InputMaybe<PhoneType>;\n};\n\nexport type DeleteCustomerConsentInputType = {\n /** The customer consent global id */\n customerConsentId: Scalars['ID']['input'];\n};\n\nexport type DeleteInput = {\n id: Scalars['ID']['input'];\n};\n\nexport type DeleteNeighborhoodPinInputType = {\n /** The unique identifier for the neighborhood pin */\n id: Scalars['ID']['input'];\n};\n\nexport type DeleteSearchProfileInput = {\n /** The globally unique Id */\n id: Scalars['ID']['input'];\n};\n\nexport enum DocumentOrderBy {\n /** Description */\n Description = 'Description',\n /** Id */\n Id = 'Id',\n /** Status */\n Status = 'Status',\n /** Type */\n Type = 'Type',\n /** VisibleDate */\n VisibleDate = 'VisibleDate'\n}\n\nexport enum DocumentPreviewState {\n /** FullVersion */\n FullVersion = 'FullVersion',\n /** HoverPreview */\n HoverPreview = 'HoverPreview',\n /** IconPreview */\n IconPreview = 'IconPreview'\n}\n\nexport enum DocumentSignatureStatus {\n /** AwaitingSigning */\n AwaitingSigning = 'AwaitingSigning',\n /** SigningFailed */\n SigningFailed = 'SigningFailed',\n /** SigningRejected */\n SigningRejected = 'SigningRejected',\n /** SigningSucceeded */\n SigningSucceeded = 'SigningSucceeded',\n /** Unknown */\n Unknown = 'Unknown'\n}\n\nexport enum EmailType {\n /** Private */\n Private = 'Private',\n /** Work */\n Work = 'Work'\n}\n\nexport enum EmployeeOfferRole {\n /** AccountableBroker */\n AccountableBroker = 'AccountableBroker',\n /** BuyerAdvisor */\n BuyerAdvisor = 'BuyerAdvisor',\n /** Caseworker */\n Caseworker = 'Caseworker',\n /** CommissionBroker */\n CommissionBroker = 'CommissionBroker',\n /** MarketingBroker */\n MarketingBroker = 'MarketingBroker',\n /** SellingBroker */\n SellingBroker = 'SellingBroker',\n /** ServiceCenterCaseworker */\n ServiceCenterCaseworker = 'ServiceCenterCaseworker'\n}\n\nexport enum EnergyMarkSeverity {\n /** A */\n A = 'A',\n /** A1 */\n A1 = 'A1',\n /** A2 */\n A2 = 'A2',\n /** A2010 */\n A2010 = 'A2010',\n /** A2015 */\n A2015 = 'A2015',\n /** A2020 */\n A2020 = 'A2020',\n /** B */\n B = 'B',\n /** C */\n C = 'C',\n /** D */\n D = 'D',\n /** E */\n E = 'E',\n /** F */\n F = 'F',\n /** G */\n G = 'G',\n /** Unknown */\n Unknown = 'Unknown'\n}\n\nexport enum EnergyMarkSeverityEnum {\n /** A */\n A = 'A',\n /** A1 */\n A1 = 'A1',\n /** A2 */\n A2 = 'A2',\n /** A2010 */\n A2010 = 'A2010',\n /** A2015 */\n A2015 = 'A2015',\n /** A2020 */\n A2020 = 'A2020',\n /** B */\n B = 'B',\n /** C */\n C = 'C',\n /** D */\n D = 'D',\n /** E */\n E = 'E',\n /** F */\n F = 'F',\n /** G */\n G = 'G',\n /** Unknown */\n Unknown = 'Unknown'\n}\n\nexport enum ErrorType {\n /** Exist */\n Exist = 'Exist',\n /** InvalidValue */\n InvalidValue = 'InvalidValue',\n /** NotComplete */\n NotComplete = 'NotComplete',\n /** Other */\n Other = 'Other',\n /** Required */\n Required = 'Required'\n}\n\nexport enum GoogleAnalyticsSource {\n /** Boliga */\n Boliga = 'Boliga',\n /** Boligsiden */\n Boligsiden = 'Boligsiden',\n /** Direct */\n Direct = 'Direct',\n /** Ejendomstorvet */\n Ejendomstorvet = 'Ejendomstorvet',\n /** Facebook */\n Facebook = 'Facebook',\n /** Google */\n Google = 'Google',\n /** Instagram */\n Instagram = 'Instagram',\n /** Landbrugsavisen */\n Landbrugsavisen = 'Landbrugsavisen',\n /** Landbrugsmarkedet */\n Landbrugsmarkedet = 'Landbrugsmarkedet',\n /** LinkedIn */\n LinkedIn = 'LinkedIn',\n /** Lokalebasen */\n Lokalebasen = 'Lokalebasen',\n /** Other */\n Other = 'Other'\n}\n\nexport enum InsuranceCoverage {\n /** Full */\n Full = 'Full',\n /** None */\n None = 'None',\n /** SumInsured */\n SumInsured = 'SumInsured',\n /** Text */\n Text = 'Text'\n}\n\nexport enum LeadStatusTypeEnum {\n /** ConvertedToCustomer */\n ConvertedToCustomer = 'ConvertedToCustomer',\n /** InProgress */\n InProgress = 'InProgress',\n /** MarkAsSpam */\n MarkAsSpam = 'MarkAsSpam',\n /** NotConvertedToCustomer */\n NotConvertedToCustomer = 'NotConvertedToCustomer',\n /** Processed */\n Processed = 'Processed',\n /** Recieved */\n Recieved = 'Recieved'\n}\n\nexport enum LeadTypeEnum {\n /** BankEvaluation */\n BankEvaluation = 'BankEvaluation',\n /** BuyersAdvice */\n BuyersAdvice = 'BuyersAdvice',\n /** BuyersRegistration */\n BuyersRegistration = 'BuyersRegistration',\n /** Contact */\n Contact = 'Contact',\n /** ContactEmployee */\n ContactEmployee = 'ContactEmployee',\n /** Favorite */\n Favorite = 'Favorite',\n /** IndicativeValuation */\n IndicativeValuation = 'IndicativeValuation',\n /** LeadBankReferralBuyerConsultation */\n LeadBankReferralBuyerConsultation = 'LeadBankReferralBuyerConsultation',\n /** LeadBankReferralSalesEvaluation */\n LeadBankReferralSalesEvaluation = 'LeadBankReferralSalesEvaluation',\n /** LeadBuyerReference */\n LeadBuyerReference = 'LeadBuyerReference',\n /** LeadCrossBrandReferral */\n LeadCrossBrandReferral = 'LeadCrossBrandReferral',\n /** LeadCustomerBankReferral */\n LeadCustomerBankReferral = 'LeadCustomerBankReferral',\n /** LeadCustomerInternalReferral */\n LeadCustomerInternalReferral = 'LeadCustomerInternalReferral',\n /** OpenHouse */\n OpenHouse = 'OpenHouse',\n /** OwnershipChangeValuation */\n OwnershipChangeValuation = 'OwnershipChangeValuation',\n /** Presentation */\n Presentation = 'Presentation',\n /** PurchaseOffer */\n PurchaseOffer = 'PurchaseOffer',\n /** SalesMaterial */\n SalesMaterial = 'SalesMaterial',\n /** SalesMaterialWithContact */\n SalesMaterialWithContact = 'SalesMaterialWithContact',\n /** SalesValuation */\n SalesValuation = 'SalesValuation',\n /** TKValuation */\n TKValuation = 'TKValuation'\n}\n\nexport enum MarketDataCaseOrderBy {\n /** Address */\n Address = 'Address',\n /** HouseArea */\n HouseArea = 'HouseArea',\n /** Id */\n Id = 'Id',\n /** Price */\n Price = 'Price',\n /** SalesPrice */\n SalesPrice = 'SalesPrice'\n}\n\nexport enum MarketingCampaignInteractionTypeEnum {\n /** Click */\n Click = 'Click',\n /** Comment */\n Comment = 'Comment',\n /** Like */\n Like = 'Like',\n /** Share */\n Share = 'Share',\n /** Unknown */\n Unknown = 'Unknown',\n /** View */\n View = 'View'\n}\n\nexport enum MarketingCampaignPlacementEnum {\n /** Display */\n Display = 'Display',\n /** Facebook */\n Facebook = 'Facebook',\n /** FacebookWallPost */\n FacebookWallPost = 'FacebookWallPost',\n /** Instagram */\n Instagram = 'Instagram',\n /** InstagramWallPost */\n InstagramWallPost = 'InstagramWallPost',\n /** LinkedIn */\n LinkedIn = 'LinkedIn',\n /** Meta */\n Meta = 'Meta',\n /** Snapchat */\n Snapchat = 'Snapchat',\n /** Unknown */\n Unknown = 'Unknown',\n /** YouTube */\n YouTube = 'YouTube'\n}\n\nexport enum MarketingCampaignStatusEnum {\n /** Done */\n Done = 'Done',\n /** Failed */\n Failed = 'Failed',\n /** Ongoing */\n Ongoing = 'Ongoing',\n /** Pending */\n Pending = 'Pending',\n /** Stopped */\n Stopped = 'Stopped'\n}\n\nexport enum MatchProfileStatus {\n /** Favorite */\n Favorite = 'Favorite',\n /** None */\n None = 'None',\n /** Removed */\n Removed = 'Removed',\n /** Selected */\n Selected = 'Selected'\n}\n\nexport enum MatchedCaseHighlightStatus {\n /** NewMatch */\n NewMatch = 'NewMatch',\n /** NewPriceForExistingMatch */\n NewPriceForExistingMatch = 'NewPriceForExistingMatch',\n /** None */\n None = 'None'\n}\n\nexport enum MediaResourceType {\n /** The asset */\n Asset = 'Asset',\n /** A presentation of the asset */\n Presentation = 'Presentation',\n /** A preview of the asset */\n Preview = 'Preview',\n /** A thumbnail of the asset */\n Thumbnail = 'Thumbnail'\n}\n\nexport enum MyPageCaseRelation {\n /** Case */\n Case = 'Case',\n /** MatchedCase */\n MatchedCase = 'MatchedCase',\n /** None */\n None = 'None',\n /** Offer */\n Offer = 'Offer'\n}\n\nexport enum MyPageSpotRole {\n /** Buyer */\n Buyer = 'Buyer',\n /** Frontpage */\n Frontpage = 'Frontpage',\n /** PotentialBuyer */\n PotentialBuyer = 'PotentialBuyer',\n /** Seller */\n Seller = 'Seller'\n}\n\nexport enum MyPageTextSection {\n /** CasePromotion */\n CasePromotion = 'CasePromotion',\n /** Consent */\n Consent = 'Consent',\n /** CustomerGDPR */\n CustomerGDPR = 'CustomerGDPR',\n /** EditSearchProfile */\n EditSearchProfile = 'EditSearchProfile',\n /** Favorites */\n Favorites = 'Favorites',\n /** FinishedActivties */\n FinishedActivties = 'FinishedActivties',\n /** GetStarted */\n GetStarted = 'GetStarted',\n /** Match */\n Match = 'Match',\n /** Messages */\n Messages = 'Messages',\n /** MyNeighbourhood */\n MyNeighbourhood = 'MyNeighbourhood',\n /** OtherBrokerFavorites */\n OtherBrokerFavorites = 'OtherBrokerFavorites',\n /** SearchProfileMatch */\n SearchProfileMatch = 'SearchProfileMatch',\n /** UpcomingActivities */\n UpcomingActivities = 'UpcomingActivities',\n /** UserProfile */\n UserProfile = 'UserProfile',\n /** Welcome */\n Welcome = 'Welcome',\n /** WelcomeHeadline */\n WelcomeHeadline = 'WelcomeHeadline'\n}\n\nexport enum NeighborhoodPinCategory {\n /** Dining */\n Dining = 'Dining',\n /** Events */\n Events = 'Events',\n /** ExerciseAndRecreation */\n ExerciseAndRecreation = 'ExerciseAndRecreation',\n /** ForKids */\n ForKids = 'ForKids',\n /** Nature */\n Nature = 'Nature',\n /** Nightlife */\n Nightlife = 'Nightlife',\n /** NoteworhtyLandmark */\n NoteworhtyLandmark = 'NoteworhtyLandmark',\n /** Other */\n Other = 'Other',\n /** Shopping */\n Shopping = 'Shopping',\n /** SocialMeetup */\n SocialMeetup = 'SocialMeetup'\n}\n\nexport type OpenHouseInputType = {\n consentIdGlobal: Scalars['ID']['input'];\n email?: InputMaybe<Scalars['String']['input']>;\n firstName: Scalars['String']['input'];\n lastName: Scalars['String']['input'];\n /** The id of the open house */\n openHouseId: Scalars['ID']['input'];\n phoneNumber: Scalars['String']['input'];\n sourceIdGlobal?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport enum OperatingCostType {\n /** PricePrM2 */\n PricePrM2 = 'PricePrM2',\n /** Total */\n Total = 'Total'\n}\n\nexport enum OrderDirection {\n /** Ascending order. */\n asc = 'asc',\n /** Descending order. */\n desc = 'desc'\n}\n\nexport enum PhoneType {\n /** Main */\n Main = 'Main',\n /** Mobile */\n Mobile = 'Mobile',\n /** Private */\n Private = 'Private',\n /** Work */\n Work = 'Work'\n}\n\nexport enum PotentialBuyerCreateContext {\n /** BrookerChoice */\n BrookerChoice = 'BrookerChoice',\n /** LeadSalesMaterialRequest */\n LeadSalesMaterialRequest = 'LeadSalesMaterialRequest',\n /** Match */\n Match = 'Match',\n /** OpenHouse */\n OpenHouse = 'OpenHouse',\n /** OwnChoice */\n OwnChoice = 'OwnChoice',\n /** PurchaseOffer */\n PurchaseOffer = 'PurchaseOffer',\n /** Showcase */\n Showcase = 'Showcase'\n}\n\n/** Input object for creating a presentation lead. */\nexport type Presentation = {\n caseId: Scalars['ID']['input'];\n comment?: InputMaybe<Scalars['String']['input']>;\n consentIdGlobal: Scalars['ID']['input'];\n email?: InputMaybe<Scalars['String']['input']>;\n firstName: Scalars['String']['input'];\n lastName: Scalars['String']['input'];\n phoneNumber: Scalars['String']['input'];\n presentationDate?: InputMaybe<Scalars['DateTime']['input']>;\n sourceIdGlobal?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport enum PreservationType {\n /** FreeText */\n FreeText = 'FreeText',\n /** NoPreservation */\n NoPreservation = 'NoPreservation',\n /** PreservationValue1 */\n PreservationValue1 = 'PreservationValue1',\n /** PreservationValue2 */\n PreservationValue2 = 'PreservationValue2',\n /** PreservationValue3 */\n PreservationValue3 = 'PreservationValue3',\n /** PreservationValue4 */\n PreservationValue4 = 'PreservationValue4',\n /** PreservationValue5 */\n PreservationValue5 = 'PreservationValue5',\n /** PreservationValue6 */\n PreservationValue6 = 'PreservationValue6',\n /** PreservationValue7 */\n PreservationValue7 = 'PreservationValue7',\n /** PreservationValue8 */\n PreservationValue8 = 'PreservationValue8',\n /** PreservationValue9 */\n PreservationValue9 = 'PreservationValue9',\n /** Preserved */\n Preserved = 'Preserved'\n}\n\nexport enum PrivateBuildingTypeGraphType {\n /** Carport */\n Carport = 'Carport',\n /** Commercial */\n Commercial = 'Commercial',\n /** Garage */\n Garage = 'Garage',\n /** Other */\n Other = 'Other',\n /** Outhouse */\n Outhouse = 'Outhouse'\n}\n\nexport enum PropertyCategory {\n /** AllYearRoundPlot */\n AllYearRoundPlot = 'AllYearRoundPlot',\n /** Condo */\n Condo = 'Condo',\n /** CropsFarm */\n CropsFarm = 'CropsFarm',\n /** FarmHouse */\n FarmHouse = 'FarmHouse',\n /** HousingCooperative */\n HousingCooperative = 'HousingCooperative',\n /** Liebhaveri */\n Liebhaveri = 'Liebhaveri',\n /** TerracedHouse */\n TerracedHouse = 'TerracedHouse',\n /** VacationHousing */\n VacationHousing = 'VacationHousing',\n /** VacationPlot */\n VacationPlot = 'VacationPlot',\n /** Villa */\n Villa = 'Villa',\n /** VillaApartment */\n VillaApartment = 'VillaApartment'\n}\n\nexport enum PropertyType {\n /** AllYearRoundPlot */\n AllYearRoundPlot = 'AllYearRoundPlot',\n /** AllotmentHut */\n AllotmentHut = 'AllotmentHut',\n /** AllotmentPlot */\n AllotmentPlot = 'AllotmentPlot',\n /** Condo */\n Condo = 'Condo',\n /** FarmHouseAgriculture */\n FarmHouseAgriculture = 'FarmHouseAgriculture',\n /** FormerFarm */\n FormerFarm = 'FormerFarm',\n /** FreeLand */\n FreeLand = 'FreeLand',\n /** HobbyAgriculture */\n HobbyAgriculture = 'HobbyAgriculture',\n /** HousingCooperative */\n HousingCooperative = 'HousingCooperative',\n /** IdeelAnpartCondo */\n IdeelAnpartCondo = 'IdeelAnpartCondo',\n /** IdeelAnpartTerracedHouse */\n IdeelAnpartTerracedHouse = 'IdeelAnpartTerracedHouse',\n /** IdeelAnpartVilla */\n IdeelAnpartVilla = 'IdeelAnpartVilla',\n /** Liebhaveri */\n Liebhaveri = 'Liebhaveri',\n /** MixedHousingAndBusiness */\n MixedHousingAndBusiness = 'MixedHousingAndBusiness',\n /** PartnershipOrLimitedPartnershipCondo */\n PartnershipOrLimitedPartnershipCondo = 'PartnershipOrLimitedPartnershipCondo',\n /** PartnershipOrLimitedPartnershipTerracedHouse */\n PartnershipOrLimitedPartnershipTerracedHouse = 'PartnershipOrLimitedPartnershipTerracedHouse',\n /** PartnershipOrLimitedPartnershipVilla */\n PartnershipOrLimitedPartnershipVilla = 'PartnershipOrLimitedPartnershipVilla',\n /** TerracedHouse */\n TerracedHouse = 'TerracedHouse',\n /** TerracedHouseWithCondoStatus */\n TerracedHouseWithCondoStatus = 'TerracedHouseWithCondoStatus',\n /** TwoFamilyProperty */\n TwoFamilyProperty = 'TwoFamilyProperty',\n /** VacationCondo */\n VacationCondo = 'VacationCondo',\n /** VacationHousing */\n VacationHousing = 'VacationHousing',\n /** VacationPlot */\n VacationPlot = 'VacationPlot',\n /** Villa */\n Villa = 'Villa',\n /** VillaApartment */\n VillaApartment = 'VillaApartment',\n /** VillaWithCondoStatus */\n VillaWithCondoStatus = 'VillaWithCondoStatus'\n}\n\nexport enum QuestionnaireMetaDataType {\n /** Aml */\n Aml = 'Aml',\n /** BuyerInformation */\n BuyerInformation = 'BuyerInformation',\n /** NoType */\n NoType = 'NoType',\n /** SellerInformation */\n SellerInformation = 'SellerInformation',\n /** Valuation */\n Valuation = 'Valuation'\n}\n\nexport enum RectifyCaseStatus {\n /** Deal */\n Deal = 'Deal',\n /** DealDisregarded */\n DealDisregarded = 'DealDisregarded',\n /** DealMade */\n DealMade = 'DealMade',\n /** DealNotMade */\n DealNotMade = 'DealNotMade',\n /** FinallyTrade */\n FinallyTrade = 'FinallyTrade',\n /** Return */\n Return = 'Return',\n /** Sold */\n Sold = 'Sold'\n}\n\nexport enum RentalCaseStatus {\n /** Commissioned */\n Commissioned = 'Commissioned',\n /** Discontinued */\n Discontinued = 'Discontinued',\n /** ForRent */\n ForRent = 'ForRent',\n /** LostCommission */\n LostCommission = 'LostCommission',\n /** LostSale */\n LostSale = 'LostSale',\n /** Rented */\n Rented = 'Rented',\n /** UnderRent */\n UnderRent = 'UnderRent',\n /** Unknown */\n Unknown = 'Unknown',\n /** Valuation */\n Valuation = 'Valuation'\n}\n\nexport enum ResponseType {\n /** BooleanAndStringType */\n BooleanAndStringType = 'BooleanAndStringType',\n /** BooleanType */\n BooleanType = 'BooleanType',\n /** DropdownStringType */\n DropdownStringType = 'DropdownStringType'\n}\n\nexport enum SalesCaseStatus {\n /** BeforeSale */\n BeforeSale = 'BeforeSale',\n /** FinallyTrade */\n FinallyTrade = 'FinallyTrade',\n /** ForSale */\n ForSale = 'ForSale',\n /** LostCommission */\n LostCommission = 'LostCommission',\n /** NotDefined */\n NotDefined = 'NotDefined',\n /** Return */\n Return = 'Return',\n /** Sold */\n Sold = 'Sold',\n /** UnderSale */\n UnderSale = 'UnderSale',\n /** Valuation */\n Valuation = 'Valuation'\n}\n\nexport enum SearchProfileEnabledType {\n /** A searchprofile for business salescases, using the agriculture propertyTypes */\n AgricultureSearchProfile = 'AgricultureSearchProfile',\n /** A searchprofile for business rentalcases, using business propertyTypes */\n BusinessRentalSearchProfile = 'BusinessRentalSearchProfile',\n /** A searchprofile for business salescases, using the business propertyTypes */\n BusinessSaleSearchProfile = 'BusinessSaleSearchProfile',\n /** A searchprofile for private rentalcases, using private propertyTypes */\n PrivateRentalSearchProfile = 'PrivateRentalSearchProfile',\n /** A searchprofile for private salescases, using private propertyTypes */\n PrivateSaleSearchProfile = 'PrivateSaleSearchProfile'\n}\n\nexport enum SearchProfileMatchedCaseOrderBy {\n /** Address */\n Address = 'Address',\n /** Date */\n Date = 'Date',\n /** HouseArea */\n HouseArea = 'HouseArea',\n /** Price */\n Price = 'Price',\n /** Status */\n Status = 'Status',\n /** VisibleForCustomerDate */\n VisibleForCustomerDate = 'VisibleForCustomerDate'\n}\n\nexport enum SearchProfileStatus {\n /** Active */\n Active = 'Active',\n /** Looking */\n Looking = 'Looking'\n}\n\nexport enum SearchProfileType {\n /** Agriculture */\n Agriculture = 'Agriculture',\n /** BusinessRental */\n BusinessRental = 'BusinessRental',\n /** BusinessSale */\n BusinessSale = 'BusinessSale',\n /** Rental */\n Rental = 'Rental',\n /** Sale */\n Sale = 'Sale'\n}\n\nexport enum SearchProfileWord {\n /** Balcony */\n Balcony = 'Balcony',\n /** Elevator */\n Elevator = 'Elevator',\n /** Furnished */\n Furnished = 'Furnished',\n /** IsProjectCase */\n IsProjectCase = 'IsProjectCase',\n /** Liebhaveri */\n Liebhaveri = 'Liebhaveri',\n /** ParkingSpace */\n ParkingSpace = 'ParkingSpace',\n /** Pets */\n Pets = 'Pets',\n /** ResidenceRequirement */\n ResidenceRequirement = 'ResidenceRequirement',\n /** Shareable */\n Shareable = 'Shareable',\n /** Terrace */\n Terrace = 'Terrace'\n}\n\nexport type SendMessageInput = {\n attachmentIds?: InputMaybe<Array<InputMaybe<Scalars['ID']['input']>>>;\n message: Scalars['String']['input'];\n threadId: Scalars['ID']['input'];\n};\n\nexport enum TaskActivityStatusEnum {\n /** Cancelled */\n Cancelled = 'Cancelled',\n /** Finished */\n Finished = 'Finished',\n /** Planned */\n Planned = 'Planned',\n /** Postponed */\n Postponed = 'Postponed'\n}\n\nexport type ThreadEventInput = {\n threadId: Scalars['ID']['input'];\n};\n\nexport enum ThreadOrderBy {\n /** CreateDate */\n CreateDate = 'CreateDate',\n /** Id */\n Id = 'Id',\n /** LastMessageCreatedDate */\n LastMessageCreatedDate = 'LastMessageCreatedDate',\n /** Subject */\n Subject = 'Subject'\n}\n\nexport enum TimelineActivityType {\n /** Appointment */\n Appointment = 'Appointment',\n /** TimelineNote */\n TimelineNote = 'TimelineNote'\n}\n\nexport type UpdateAgricultureSearchProfileInput = {\n /** Property categories */\n agriculturePropertyCategories?: InputMaybe<Array<AgriculturePropertyTypeCategory>>;\n /** Can be contacted */\n canBeContacted?: InputMaybe<Scalars['Boolean']['input']>;\n /** Can be contacted by phone */\n canBeContactedByPhone?: InputMaybe<Scalars['Boolean']['input']>;\n contactShopId?: InputMaybe<Scalars['ID']['input']>;\n /** Date of deletion */\n deletionDate?: InputMaybe<Scalars['DateTime']['input']>;\n /** The number of floors from */\n floorCountFrom?: InputMaybe<Scalars['Int']['input']>;\n /** The number of floors to */\n floorCountTo?: InputMaybe<Scalars['Int']['input']>;\n /** The floor number from */\n floorNumberFrom?: InputMaybe<Scalars['Int']['input']>;\n /** The floor number to */\n floorNumberTo?: InputMaybe<Scalars['Int']['input']>;\n /** House area from */\n houseAreaFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** House area to */\n houseAreaTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** The globally unique Id */\n id: Scalars['ID']['input'];\n /** Multi polygon (lat,lon) */\n multiPolygon?: InputMaybe<Scalars['String']['input']>;\n /** Multi polygon (lon,lat) */\n multiPolygonLonLat?: InputMaybe<Scalars['String']['input']>;\n /** Name of search profile */\n name?: InputMaybe<Scalars['String']['input']>;\n ownerCostFrom?: InputMaybe<Scalars['Decimal']['input']>;\n ownerCostTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Plot area from */\n plotAreaFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Plot area to */\n plotAreaTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Predefined Areas */\n predefinedAreasIds?: InputMaybe<Array<InputMaybe<Scalars['ID']['input']>>>;\n /** Price from */\n priceFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Price to */\n priceTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Room count from */\n roomCountFrom?: InputMaybe<Scalars['Int']['input']>;\n /** Room count to */\n roomCountTo?: InputMaybe<Scalars['Int']['input']>;\n /** Energy mark severities */\n searchProfileEnergyMarkSeverities?: InputMaybe<Array<InputMaybe<EnergyMarkSeverityEnum>>>;\n /** Number of the searchprofile */\n searchProfileNo?: InputMaybe<Scalars['String']['input']>;\n /** Search profile status */\n searchProfileStatus?: InputMaybe<SearchProfileStatus>;\n totalCommercialAreaFrom?: InputMaybe<Scalars['Float']['input']>;\n totalCommercialAreaTo?: InputMaybe<Scalars['Float']['input']>;\n /** Profile valid to date */\n validToDate?: InputMaybe<Scalars['DateTime']['input']>;\n /** Year built from */\n yearBuiltFrom?: InputMaybe<Scalars['Int']['input']>;\n /** Year built to */\n yearBuiltTo?: InputMaybe<Scalars['Int']['input']>;\n /** Zip codes */\n zipCodesIds?: InputMaybe<Array<InputMaybe<Scalars['ID']['input']>>>;\n};\n\nexport type UpdateAppointmentActivityInputType = {\n customer?: InputMaybe<AppointmentActivityCustomerInputType>;\n endDatetime: Scalars['DateTime']['input'];\n id: Scalars['ID']['input'];\n startDatetime: Scalars['DateTime']['input'];\n};\n\nexport type UpdateBusinessSearchProfileInput = {\n /** Property categories */\n businessPropertyCategories?: InputMaybe<Array<BusinessSearchProfilePropertyCategory>>;\n /** Can be contacted */\n canBeContacted?: InputMaybe<Scalars['Boolean']['input']>;\n /** Can be contacted by phone */\n canBeContactedByPhone?: InputMaybe<Scalars['Boolean']['input']>;\n contactShopId?: InputMaybe<Scalars['ID']['input']>;\n /** Date of deletion */\n deletionDate?: InputMaybe<Scalars['DateTime']['input']>;\n /** The number of floors from */\n floorCountFrom?: InputMaybe<Scalars['Int']['input']>;\n /** The number of floors to */\n floorCountTo?: InputMaybe<Scalars['Int']['input']>;\n /** The floor number from */\n floorNumberFrom?: InputMaybe<Scalars['Int']['input']>;\n /** The floor number to */\n floorNumberTo?: InputMaybe<Scalars['Int']['input']>;\n /** House area from */\n houseAreaFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** House area to */\n houseAreaTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** The globally unique Id */\n id: Scalars['ID']['input'];\n /** Multi polygon (lat,lon) */\n multiPolygon?: InputMaybe<Scalars['String']['input']>;\n /** Multi polygon (lon,lat) */\n multiPolygonLonLat?: InputMaybe<Scalars['String']['input']>;\n /** Name of search profile */\n name?: InputMaybe<Scalars['String']['input']>;\n ownerCostFrom?: InputMaybe<Scalars['Decimal']['input']>;\n ownerCostTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Plot area from */\n plotAreaFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Plot area to */\n plotAreaTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Predefined Areas */\n predefinedAreasIds?: InputMaybe<Array<InputMaybe<Scalars['ID']['input']>>>;\n /** Price from */\n priceFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Price to */\n priceTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Rate of return from in percent */\n rateOfReturnFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Rate of return to in percent */\n rateOfReturnTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Room count from */\n roomCountFrom?: InputMaybe<Scalars['Int']['input']>;\n /** Room count to */\n roomCountTo?: InputMaybe<Scalars['Int']['input']>;\n /** Energy mark severities */\n searchProfileEnergyMarkSeverities?: InputMaybe<Array<InputMaybe<EnergyMarkSeverityEnum>>>;\n /** Number of the searchprofile */\n searchProfileNo?: InputMaybe<Scalars['String']['input']>;\n /** Search profile status */\n searchProfileStatus?: InputMaybe<SearchProfileStatus>;\n totalCommercialAreaFrom?: InputMaybe<Scalars['Float']['input']>;\n totalCommercialAreaTo?: InputMaybe<Scalars['Float']['input']>;\n /** Profile valid to date */\n validToDate?: InputMaybe<Scalars['DateTime']['input']>;\n /** Year built from */\n yearBuiltFrom?: InputMaybe<Scalars['Int']['input']>;\n /** Year built to */\n yearBuiltTo?: InputMaybe<Scalars['Int']['input']>;\n /** Zip codes */\n zipCodesIds?: InputMaybe<Array<InputMaybe<Scalars['ID']['input']>>>;\n};\n\nexport type UpdateCustomerAddressInput = {\n /** The customer address */\n address: CreateAddressInput;\n /** The address type */\n addressType: AddressType;\n /** The customer address global id */\n id: Scalars['ID']['input'];\n /** The customer address valid from */\n validFrom?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type UpdateCustomerConsentInputType = {\n active?: InputMaybe<Scalars['Boolean']['input']>;\n /** The customer consent global id */\n customerConsentId: Scalars['ID']['input'];\n};\n\nexport type UpdateCustomerEmailInput = {\n email?: InputMaybe<Scalars['String']['input']>;\n emailType?: InputMaybe<EmailType>;\n id: Scalars['ID']['input'];\n isLoginEmail?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n/** Input object for updating a customer. */\nexport type UpdateCustomerInput = {\n /** The customer address */\n address: CreateCustomerAddressInput;\n email?: InputMaybe<CustomerEmailInputType>;\n firstName?: InputMaybe<Scalars['String']['input']>;\n lastName?: InputMaybe<Scalars['String']['input']>;\n phone?: InputMaybe<CustomerPhoneInputType>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCustomerPhoneInput = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n id: Scalars['ID']['input'];\n phone?: InputMaybe<Scalars['String']['input']>;\n phoneType?: InputMaybe<PhoneType>;\n};\n\nexport type UpdateFavoriteCaseInput = {\n /** The id of the case */\n caseId: Scalars['ID']['input'];\n};\n\nexport type UpdateLeadInputType = {\n leadIdGlobal: Scalars['ID']['input'];\n statusType?: InputMaybe<LeadStatusTypeEnum>;\n};\n\nexport type UpdateNeighborhoodPinInputType = {\n /** The category of pins that a pin belongs to */\n category?: InputMaybe<NeighborhoodPinCategory>;\n /** A detailed description of the pin */\n description?: InputMaybe<Scalars['String']['input']>;\n /** The unique identifier for the neighborhood pin */\n id: Scalars['ID']['input'];\n /** The latitude component of the GPS-coordinate for the pin */\n lat?: InputMaybe<Scalars['Float']['input']>;\n /** The longtitude component of the GPS-coordinate for the pin */\n lng?: InputMaybe<Scalars['Float']['input']>;\n /** The short title of the pin */\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateSearchProfileInput = {\n /** Can be contacted */\n canBeContacted?: InputMaybe<Scalars['Boolean']['input']>;\n /** Can be contacted by phone */\n canBeContactedByPhone?: InputMaybe<Scalars['Boolean']['input']>;\n contactShopId?: InputMaybe<Scalars['ID']['input']>;\n /** Cumulative number of days on market (from) */\n cumulativeDaysOnMarketFrom?: InputMaybe<Scalars['Int']['input']>;\n /** Cumulative number of days on market (to) */\n cumulativeDaysOnMarketTo?: InputMaybe<Scalars['Int']['input']>;\n /** Date of deletion */\n deletionDate?: InputMaybe<Scalars['DateTime']['input']>;\n /** Distance to coast in meters (from) */\n distanceCoastFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to coast in meters (to) */\n distanceCoastTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to daycare in meters (from) */\n distanceDaycareFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to daycare in meters (to) */\n distanceDaycareTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to public transportation (bus, metro, S train, train) in meters (from) */\n distancePublicTransportationFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to public transportation (bus, metro, S train, train) in meters (to) */\n distancePublicTransportationTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to school in meters (from) */\n distanceSchoolFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to school in meters (to) */\n distanceSchoolTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to supermarket in meters (from) */\n distanceSupermarketFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Distance to supermarket in meters (to) */\n distanceSupermarketTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** The number of floors from */\n floorCountFrom?: InputMaybe<Scalars['Int']['input']>;\n /** The number of floors to */\n floorCountTo?: InputMaybe<Scalars['Int']['input']>;\n /** The floor number from */\n floorNumberFrom?: InputMaybe<Scalars['Int']['input']>;\n /** The floor number to */\n floorNumberTo?: InputMaybe<Scalars['Int']['input']>;\n /** House area from */\n houseAreaFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** House area to */\n houseAreaTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** The globally unique Id */\n id: Scalars['ID']['input'];\n /** The number of living rooms from */\n livingRoomCountFrom?: InputMaybe<Scalars['Int']['input']>;\n /** The number of living rooms to */\n livingRoomCountTo?: InputMaybe<Scalars['Int']['input']>;\n /** Multi polygon (lat,lon) */\n multiPolygon?: InputMaybe<Scalars['String']['input']>;\n /** Multi polygon (lon,lat) */\n multiPolygonLonLat?: InputMaybe<Scalars['String']['input']>;\n /** Name of search profile */\n name?: InputMaybe<Scalars['String']['input']>;\n ownerCostFrom?: InputMaybe<Scalars['Decimal']['input']>;\n ownerCostTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Plot area from */\n plotAreaFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Plot area to */\n plotAreaTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Predefined Areas */\n predefinedAreasIds?: InputMaybe<Array<InputMaybe<Scalars['ID']['input']>>>;\n /** Price from */\n priceFrom?: InputMaybe<Scalars['Decimal']['input']>;\n /** Price to */\n priceTo?: InputMaybe<Scalars['Decimal']['input']>;\n /** Property categories */\n propertyCategories?: InputMaybe<Array<PropertyCategory>>;\n /** Room count from */\n roomCountFrom?: InputMaybe<Scalars['Int']['input']>;\n /** Room count to */\n roomCountTo?: InputMaybe<Scalars['Int']['input']>;\n /** Energy mark severities */\n searchProfileEnergyMarkSeverities?: InputMaybe<Array<InputMaybe<EnergyMarkSeverityEnum>>>;\n /** Number of the searchprofile */\n searchProfileNo?: InputMaybe<Scalars['String']['input']>;\n /** Search profile status */\n searchProfileStatus?: InputMaybe<SearchProfileStatus>;\n /** Search profile words */\n searchProfileWords?: InputMaybe<Array<InputMaybe<SearchProfileWord>>>;\n /** Customer special wishes */\n specialWishes?: InputMaybe<Scalars['String']['input']>;\n /** The number of toilets from */\n toiletCountFrom?: InputMaybe<Scalars['Int']['input']>;\n /** The number of toilets to */\n toiletCountTo?: InputMaybe<Scalars['Int']['input']>;\n totalCommercialAreaFrom?: InputMaybe<Scalars['Float']['input']>;\n totalCommercialAreaTo?: InputMaybe<Scalars['Float']['input']>;\n /** Profile valid to date */\n validToDate?: InputMaybe<Scalars['DateTime']['input']>;\n /** Year built from */\n yearBuiltFrom?: InputMaybe<Scalars['Int']['input']>;\n /** Year built to */\n yearBuiltTo?: InputMaybe<Scalars['Int']['input']>;\n /** Zip codes */\n zipCodesIds?: InputMaybe<Array<InputMaybe<Scalars['ID']['input']>>>;\n};\n\nexport type UpdateSearchProfileMarketDataMatchedCaseInput = {\n /** The globally unique Id of matched case */\n id: Scalars['ID']['input'];\n /** The status of matched case */\n status: MatchProfileStatus;\n};\n\nexport type UpdateSearchProfileMatchedCaseInput = {\n /** The globally unique Id of matched case */\n id: Scalars['ID']['input'];\n /** The status of matched case */\n status: MatchProfileStatus;\n};\n\nexport type UploadOfferDocumentInputType = {\n documentTypeId?: InputMaybe<Scalars['ID']['input']>;\n offerId: Scalars['ID']['input'];\n};\n\nexport enum ValuationCaseStatus {\n /** RequiresValuation */\n RequiresValuation = 'RequiresValuation',\n /** UnderValuation */\n UnderValuation = 'UnderValuation',\n /** ValuationCompleted */\n ValuationCompleted = 'ValuationCompleted'\n}\n\nexport type WebPushSubscriptionInput = {\n auth: Scalars['String']['input'];\n endpoint: Scalars['String']['input'];\n p256Dh: Scalars['String']['input'];\n};\n","/* \n\nThis file has been autogenerated by the mw-frontend-tools codegen tool. \n\nPlease do not manually edit this file. Any changes made here will be overwritten when the code generation is run again.\n\nIf you need to modify or add new types, please update your GraphQL schema or adjust the code generation configuration as necessary.\n\n*/\n\nexport const ActivityNote = \"ActivityNote\";\n\nexport const ActivityNotification = \"ActivityNotification\";\n\nexport const ActivityType = \"ActivityType\";\n\nexport const Address = \"Address\";\n\nexport const AgricultureSearchProfile = \"AgricultureSearchProfile\";\n\nexport const AnalyticsData = \"AnalyticsData\";\n\nexport const AnalyticsReport = \"AnalyticsReport\";\n\nexport const AnalyticsReportPercentage = \"AnalyticsReportPercentage\";\n\nexport const AppointmentActivity = \"AppointmentActivity\";\n\nexport const AppointmentActivityConnection = \"AppointmentActivityConnection\";\n\nexport const AppointmentActivityEdge = \"AppointmentActivityEdge\";\n\nexport const AppointmentActivityType = \"AppointmentActivityType\";\n\nexport const BaseCase = \"BaseCase\";\n\nexport const BaseCaseMainOffer = \"BaseCaseMainOffer\";\n\nexport const Building = \"Building\";\n\nexport const BuildingInclArea = \"BuildingInclArea\";\n\nexport const BusinessBuilding = \"BusinessBuilding\";\n\nexport const BusinessCase = \"BusinessCase\";\n\nexport const BusinessRentalCase = \"BusinessRentalCase\";\n\nexport const BusinessRentalSearchProfile = \"BusinessRentalSearchProfile\";\n\nexport const BusinessSaleSearchProfile = \"BusinessSaleSearchProfile\";\n\nexport const BusinessSalesCase = \"BusinessSalesCase\";\n\nexport const BusinessSalesPresentation = \"BusinessSalesPresentation\";\n\nexport const BusinessValuationCase = \"BusinessValuationCase\";\n\nexport const CaseAnnounced = \"CaseAnnounced\";\n\nexport const CaseAreas = \"CaseAreas\";\n\nexport const CaseMarketingCampaignStatistics = \"CaseMarketingCampaignStatistics\";\n\nexport const CasePotentialBuyer = \"CasePotentialBuyer\";\n\nexport const CasePromotion = \"CasePromotion\";\n\nexport const CaseRelation = \"CaseRelation\";\n\nexport const ConfigurableTextSection = \"ConfigurableTextSection\";\n\nexport const Consent = \"Consent\";\n\nexport const ContractOfRentInterface = \"ContractOfRentInterface\";\n\nexport const ContractOfSaleBusiness = \"ContractOfSaleBusiness\";\n\nexport const ContractOfSaleInterface = \"ContractOfSaleInterface\";\n\nexport const ContractOfSalePrivate = \"ContractOfSalePrivate\";\n\nexport const CounselingCase = \"CounselingCase\";\n\nexport const CounselingPropertyCase = \"CounselingPropertyCase\";\n\nexport const Country = \"Country\";\n\nexport const Customer = \"Customer\";\n\nexport const CustomerAddress = \"CustomerAddress\";\n\nexport const CustomerConsent = \"CustomerConsent\";\n\nexport const CustomerContactInfo = \"CustomerContactInfo\";\n\nexport const CustomerEmail = \"CustomerEmail\";\n\nexport const CustomerFavoriteCaseConnection = \"CustomerFavoriteCaseConnection\";\n\nexport const CustomerFavoriteCaseEdge = \"CustomerFavoriteCaseEdge\";\n\nexport const CustomerPhone = \"CustomerPhone\";\n\nexport const Document = \"Document\";\n\nexport const DocumentAccessGrantedNotification = \"DocumentAccessGrantedNotification\";\n\nexport const DocumentConnection = \"DocumentConnection\";\n\nexport const DocumentEdge = \"DocumentEdge\";\n\nexport const DocumentSignature = \"DocumentSignature\";\n\nexport const DocumentSigningNotification = \"DocumentSigningNotification\";\n\nexport const DocumentType = \"DocumentType\";\n\nexport const Employee = \"Employee\";\n\nexport const EmployeeOffer = \"EmployeeOffer\";\n\nexport const Error = \"Error\";\n\nexport const FeatureToggle = \"FeatureToggle\";\n\nexport const INotificationBadgeCount = \"INotificationBadgeCount\";\n\nexport const IThreadBadgeCount = \"IThreadBadgeCount\";\n\nexport const IncreasePerYear = \"IncreasePerYear\";\n\nexport const LeadConsentGraphType = \"LeadConsentGraphType\";\n\nexport const LeadContactEmployee = \"LeadContactEmployee\";\n\nexport const LeadInterface = \"LeadInterface\";\n\nexport const LeadNotification = \"LeadNotification\";\n\nexport const LeadOpenHouse = \"LeadOpenHouse\";\n\nexport const LeadPresentation = \"LeadPresentation\";\n\nexport const LeadSalesMaterialWithContact = \"LeadSalesMaterialWithContact\";\n\nexport const LeadTypeGraphType = \"LeadTypeGraphType\";\n\nexport const MarketDataCase = \"MarketDataCase\";\n\nexport const MarketDataCasePrimaryImage = \"MarketDataCasePrimaryImage\";\n\nexport const MarketingCampaign = \"MarketingCampaign\";\n\nexport const MarketingCampaignAdTimelineItem = \"MarketingCampaignAdTimelineItem\";\n\nexport const MarketingCampaignInteraction = \"MarketingCampaignInteraction\";\n\nexport const MarketingCampaignInteractionStatistics = \"MarketingCampaignInteractionStatistics\";\n\nexport const MarketingCampaignInteractionsStatistics = \"MarketingCampaignInteractionsStatistics\";\n\nexport const MarketingCampaignLink = \"MarketingCampaignLink\";\n\nexport const MarketingCampaignTotals = \"MarketingCampaignTotals\";\n\nexport const MarketingPlacementsTimeline = \"MarketingPlacementsTimeline\";\n\nexport const Media = \"Media\";\n\nexport const MediaDataConnection = \"MediaDataConnection\";\n\nexport const MediaDataEdge = \"MediaDataEdge\";\n\nexport const MediaType = \"MediaType\";\n\nexport const Message = \"Message\";\n\nexport const MessageConnection = \"MessageConnection\";\n\nexport const MessageEdge = \"MessageEdge\";\n\nexport const MessageNotification = \"MessageNotification\";\n\nexport const Mutation = \"Mutation\";\n\nexport const MyPageMwSubscription = \"MyPageMwSubscription\";\n\nexport const MyPageSpot = \"MyPageSpot\";\n\nexport const MyPageSpotEntry = \"MyPageSpotEntry\";\n\nexport const Neighborhood = \"Neighborhood\";\n\nexport const NeighborhoodPin = \"NeighborhoodPin\";\n\nexport const NeighborhoodPinConnection = \"NeighborhoodPinConnection\";\n\nexport const NeighborhoodPinEdge = \"NeighborhoodPinEdge\";\n\nexport const Node = \"Node\";\n\nexport const NotificationInterface = \"NotificationInterface\";\n\nexport const NotificationInterfaceConnection = \"NotificationInterfaceConnection\";\n\nexport const NotificationInterfaceEdge = \"NotificationInterfaceEdge\";\n\nexport const Offer = \"Offer\";\n\nexport const OfferConnection = \"OfferConnection\";\n\nexport const OfferEdge = \"OfferEdge\";\n\nexport const OfferPriceHistory = \"OfferPriceHistory\";\n\nexport const OffmarketCase = \"OffmarketCase\";\n\nexport const OpenHouse = \"OpenHouse\";\n\nexport const OpenHouseOnFavoriteCaseNotification = \"OpenHouseOnFavoriteCaseNotification\";\n\nexport const OwnerCost = \"OwnerCost\";\n\nexport const PageInfo = \"PageInfo\";\n\nexport const ParticipantIdentity = \"ParticipantIdentity\";\n\nexport const Person = \"Person\";\n\nexport const Portfolio = \"Portfolio\";\n\nexport const PredefinedArea = \"PredefinedArea\";\n\nexport const PriceChangeOnFavoriteCaseNotification = \"PriceChangeOnFavoriteCaseNotification\";\n\nexport const PriceChangedOnMatchedCaseNotification = \"PriceChangedOnMatchedCaseNotification\";\n\nexport const PrivateBuilding = \"PrivateBuilding\";\n\nexport const PrivateRentalSearchProfile = \"PrivateRentalSearchProfile\";\n\nexport const PrivateSaleSearchProfile = \"PrivateSaleSearchProfile\";\n\nexport const Query = \"Query\";\n\nexport const QuestionnaireMetaData = \"QuestionnaireMetaData\";\n\nexport const RectifyCase = \"RectifyCase\";\n\nexport const RentalCase = \"RentalCase\";\n\nexport const RentalPresentation = \"RentalPresentation\";\n\nexport const RentalPresentationBusiness = \"RentalPresentationBusiness\";\n\nexport const RentalPresentationPrivate = \"RentalPresentationPrivate\";\n\nexport const RequestedDocumentNotification = \"RequestedDocumentNotification\";\n\nexport const RequestedDocumentType = \"RequestedDocumentType\";\n\nexport const Response = \"Response\";\n\nexport const SalesCase = \"SalesCase\";\n\nexport const SalesPresentation = \"SalesPresentation\";\n\nexport const SalesPresentationPrivate = \"SalesPresentationPrivate\";\n\nexport const SearchArea = \"SearchArea\";\n\nexport const SearchProfile = \"SearchProfile\";\n\nexport const SearchProfileExternalMatchedCase = \"SearchProfileExternalMatchedCase\";\n\nexport const SearchProfileExternalMatchedCaseConnection = \"SearchProfileExternalMatchedCaseConnection\";\n\nexport const SearchProfileExternalMatchedCaseEdge = \"SearchProfileExternalMatchedCaseEdge\";\n\nexport const SearchProfileInterfaceConnection = \"SearchProfileInterfaceConnection\";\n\nexport const SearchProfileInterfaceEdge = \"SearchProfileInterfaceEdge\";\n\nexport const SearchProfileMatchNotification = \"SearchProfileMatchNotification\";\n\nexport const SearchProfileMatchedCase = \"SearchProfileMatchedCase\";\n\nexport const SearchProfileMatchedCaseConnection = \"SearchProfileMatchedCaseConnection\";\n\nexport const SearchProfileMatchedCaseEdge = \"SearchProfileMatchedCaseEdge\";\n\nexport const SearchProfileMatchedCaseNotification = \"SearchProfileMatchedCaseNotification\";\n\nexport const ServiceIdentity = \"ServiceIdentity\";\n\nexport const Shop = \"Shop\";\n\nexport const StakeholderIdentity = \"StakeholderIdentity\";\n\nexport const StakeholderInOffer = \"StakeholderInOffer\";\n\nexport const StakeholderInRegistry = \"StakeholderInRegistry\";\n\nexport const TaskActivityConnection = \"TaskActivityConnection\";\n\nexport const TaskActivityEdge = \"TaskActivityEdge\";\n\nexport const TaskActivityGraph = \"TaskActivityGraph\";\n\nexport const Thread = \"Thread\";\n\nexport const ThreadConnection = \"ThreadConnection\";\n\nexport const ThreadEdge = \"ThreadEdge\";\n\nexport const ThreadParticipant = \"ThreadParticipant\";\n\nexport const TimelineActivity = \"TimelineActivity\";\n\nexport const TimelineActivityConnection = \"TimelineActivityConnection\";\n\nexport const TimelineActivityEdge = \"TimelineActivityEdge\";\n\nexport const TimelineActivityNote = \"TimelineActivityNote\";\n\nexport const TotalCosts = \"TotalCosts\";\n\nexport const ValuationCase = \"ValuationCase\";\n\nexport const Viewer = \"Viewer\";\n\nexport const ZipCode = \"ZipCode\";","/**\n * @generated SignedSource<<00e89441f297038570c67f9aebc74a19>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type documentsPaginationQuery_CasePotentialBuyer$variables = {\n count?: number | null | undefined;\n cursor?: string | null | undefined;\n id: string;\n searchText?: string | null | undefined;\n};\nexport type documentsPaginationQuery_CasePotentialBuyer$data = {\n readonly node: {\n readonly \" $fragmentSpreads\": FragmentRefs<\"favoritePageDocumentsBody_CasePotentialBuyer\">;\n } | null | undefined;\n};\nexport type documentsPaginationQuery_CasePotentialBuyer = {\n response: documentsPaginationQuery_CasePotentialBuyer$data;\n variables: documentsPaginationQuery_CasePotentialBuyer$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n \"defaultValue\": 10,\n \"kind\": \"LocalArgument\",\n \"name\": \"count\"\n},\nv1 = {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"cursor\"\n},\nv2 = {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"id\"\n},\nv3 = {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"searchText\"\n},\nv4 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"id\",\n \"variableName\": \"id\"\n }\n],\nv5 = {\n \"kind\": \"Variable\",\n \"name\": \"searchText\",\n \"variableName\": \"searchText\"\n},\nv6 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n},\nv7 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv8 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"after\",\n \"variableName\": \"cursor\"\n },\n {\n \"kind\": \"Variable\",\n \"name\": \"first\",\n \"variableName\": \"count\"\n },\n (v5/*: any*/)\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": [\n (v0/*: any*/),\n (v1/*: any*/),\n (v2/*: any*/),\n (v3/*: any*/)\n ],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"documentsPaginationQuery_CasePotentialBuyer\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v4/*: any*/),\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"count\",\n \"variableName\": \"count\"\n },\n {\n \"kind\": \"Variable\",\n \"name\": \"cursor\",\n \"variableName\": \"cursor\"\n },\n (v5/*: any*/)\n ],\n \"kind\": \"FragmentSpread\",\n \"name\": \"favoritePageDocumentsBody_CasePotentialBuyer\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [\n (v0/*: any*/),\n (v1/*: any*/),\n (v3/*: any*/),\n (v2/*: any*/)\n ],\n \"kind\": \"Operation\",\n \"name\": \"documentsPaginationQuery_CasePotentialBuyer\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v4/*: any*/),\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n (v6/*: any*/),\n (v7/*: any*/),\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"publicDocumentAllDownloadUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"publicDocumentMultipleDownloadUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": (v8/*: any*/),\n \"concreteType\": \"DocumentConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"publicDocumentConnection\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"DocumentEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Document\",\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n (v7/*: any*/),\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"inline\",\n \"value\": false\n },\n {\n \"kind\": \"Literal\",\n \"name\": \"previewState\",\n \"value\": \"FullVersion\"\n }\n ],\n \"kind\": \"ScalarField\",\n \"name\": \"documentDownloadUrlCookieAuth\",\n \"storageKey\": \"documentDownloadUrlCookieAuth(inline:false,previewState:\\\"FullVersion\\\")\"\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"propertyOverviewUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"documentName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"documentTypeName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"readDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"grantedDate\",\n \"storageKey\": null\n },\n (v6/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"cursor\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"totalCount\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"PageInfo\",\n \"kind\": \"LinkedField\",\n \"name\": \"pageInfo\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endCursor\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasNextPage\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": (v8/*: any*/),\n \"filters\": [\n \"searchText\"\n ],\n \"handle\": \"connection\",\n \"key\": \"documents__publicDocumentConnection\",\n \"kind\": \"LinkedHandle\",\n \"name\": \"publicDocumentConnection\"\n },\n (v7/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"CasePotentialBuyer\",\n \"abstractKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"b3fb07edd6c4d600aa84abf52e34cdea\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"documentsPaginationQuery_CasePotentialBuyer\",\n \"operationKind\": \"query\",\n \"text\": \"query documentsPaginationQuery_CasePotentialBuyer(\\n $count: Int = 10\\n $cursor: String\\n $searchText: String\\n $id: ID!\\n) {\\n node(id: $id) {\\n __typename\\n ...favoritePageDocumentsBody_CasePotentialBuyer_4CrFSY\\n id\\n }\\n}\\n\\nfragment documentsTableRowFragment on Document {\\n id\\n documentDownloadUrlCookieAuth(inline: false, previewState: FullVersion)\\n propertyOverviewUrl\\n documentName\\n documentTypeName\\n readDate\\n grantedDate\\n}\\n\\nfragment favoritePageDocumentsBody_CasePotentialBuyer_4CrFSY on CasePotentialBuyer {\\n baseCase {\\n __typename\\n publicDocumentAllDownloadUrl\\n publicDocumentMultipleDownloadUrl\\n publicDocumentConnection(first: $count, after: $cursor, searchText: $searchText) {\\n edges {\\n node {\\n id\\n ...documentsTableRowFragment\\n __typename\\n }\\n cursor\\n }\\n totalCount\\n pageInfo {\\n endCursor\\n hasNextPage\\n }\\n }\\n id\\n }\\n id\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"c2b974d0419d58f7a2dca71dab9701e0\";\n\nexport default node;\n","/**\n * @generated SignedSource<<deaf86eb059beb5fa20a4157a37d0a3c>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type mainNavigationNotificationsRefreshQuery$variables = {\n after?: string | null | undefined;\n first?: number | null | undefined;\n id: string;\n};\nexport type mainNavigationNotificationsRefreshQuery$data = {\n readonly node: {\n readonly \" $fragmentSpreads\": FragmentRefs<\"notifications_fragment\">;\n } | null | undefined;\n};\nexport type mainNavigationNotificationsRefreshQuery = {\n response: mainNavigationNotificationsRefreshQuery$data;\n variables: mainNavigationNotificationsRefreshQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"after\"\n },\n {\n \"defaultValue\": 12,\n \"kind\": \"LocalArgument\",\n \"name\": \"first\"\n },\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"id\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"id\",\n \"variableName\": \"id\"\n }\n],\nv2 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"after\",\n \"variableName\": \"after\"\n },\n {\n \"kind\": \"Variable\",\n \"name\": \"first\",\n \"variableName\": \"first\"\n }\n],\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n},\nv4 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv5 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"createdDate\",\n \"storageKey\": null\n},\nv6 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"read\",\n \"storageKey\": null\n},\nv7 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"relationId\",\n \"storageKey\": null\n},\nv8 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseRelation\",\n \"kind\": \"LinkedField\",\n \"name\": \"relationType\",\n \"plural\": false,\n \"selections\": [\n (v7/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"relationType\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n},\nv9 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n (v8/*: any*/),\n (v4/*: any*/)\n ],\n \"storageKey\": null\n},\nv10 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"address\",\n \"storageKey\": null\n},\nv11 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n},\nv12 = [\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AppointmentActivity\",\n \"kind\": \"LinkedField\",\n \"name\": \"appointmentActivity\",\n \"plural\": false,\n \"selections\": [\n (v11/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"location\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n (v10/*: any*/),\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"startDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endDate\",\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n (v5/*: any*/)\n],\nv13 = [\n (v3/*: any*/),\n (v10/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseRelation\",\n \"kind\": \"LinkedField\",\n \"name\": \"relationType\",\n \"plural\": false,\n \"selections\": [\n (v7/*: any*/)\n ],\n \"storageKey\": null\n },\n (v4/*: any*/)\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"mainNavigationNotificationsRefreshQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": (v2/*: any*/),\n \"kind\": \"FragmentSpread\",\n \"name\": \"notifications_fragment\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"mainNavigationNotificationsRefreshQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n (v4/*: any*/),\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v2/*: any*/),\n \"concreteType\": \"NotificationInterfaceConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"notificationConnection\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"NotificationInterfaceEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n (v4/*: any*/),\n (v3/*: any*/),\n {\n \"kind\": \"TypeDiscriminator\",\n \"abstractKey\": \"__isNotificationInterface\"\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"threadId\",\n \"storageKey\": null\n },\n (v5/*: any*/),\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"subject\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"authorName\",\n \"storageKey\": null\n }\n ],\n \"type\": \"MessageNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v6/*: any*/),\n (v9/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Document\",\n \"kind\": \"LinkedField\",\n \"name\": \"document\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"documentTypeName\",\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n (v10/*: any*/),\n (v5/*: any*/)\n ],\n \"type\": \"DocumentSigningNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v12/*: any*/),\n \"type\": \"ActivityNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"searchProfile\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n (v4/*: any*/),\n (v11/*: any*/)\n ],\n \"storageKey\": null\n },\n (v5/*: any*/)\n ],\n \"type\": \"SearchProfileMatchNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v6/*: any*/),\n (v9/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"typeName\",\n \"storageKey\": null\n },\n (v5/*: any*/)\n ],\n \"type\": \"RequestedDocumentNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v5/*: any*/),\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SearchProfileMatchedCase\",\n \"kind\": \"LinkedField\",\n \"name\": \"searchProfileMatchedCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n (v10/*: any*/),\n (v8/*: any*/),\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"searchProfile\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n (v11/*: any*/),\n (v4/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"SearchProfileMatchedCaseNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n (v8/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseNo\",\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n (v5/*: any*/),\n (v6/*: any*/),\n (v10/*: any*/)\n ],\n \"type\": \"DocumentAccessGrantedNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"lead\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"statusType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"LeadTypeGraphType\",\n \"kind\": \"LinkedField\",\n \"name\": \"type\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"displayName\",\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"receivedDate\",\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"LeadNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v6/*: any*/),\n (v5/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"case\",\n \"plural\": false,\n \"selections\": (v13/*: any*/),\n \"storageKey\": null\n }\n ],\n \"type\": \"PriceChangeOnFavoriteCaseNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v6/*: any*/),\n (v5/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SearchProfileMatchedCase\",\n \"kind\": \"LinkedField\",\n \"name\": \"searchProfileMatchedCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": (v13/*: any*/),\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"PriceChangedOnMatchedCaseNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v12/*: any*/),\n \"type\": \"OpenHouseOnFavoriteCaseNotification\",\n \"abstractKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"cursor\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"PageInfo\",\n \"kind\": \"LinkedField\",\n \"name\": \"pageInfo\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endCursor\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasNextPage\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": (v2/*: any*/),\n \"filters\": null,\n \"handle\": \"connection\",\n \"key\": \"mainNavigation_notificationConnection\",\n \"kind\": \"LinkedHandle\",\n \"name\": \"notificationConnection\"\n }\n ],\n \"type\": \"Customer\",\n \"abstractKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"2b107dbad6564d3707091e6b53ea6e92\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"mainNavigationNotificationsRefreshQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query mainNavigationNotificationsRefreshQuery(\\n $after: String\\n $first: Int = 12\\n $id: ID!\\n) {\\n node(id: $id) {\\n __typename\\n ...notifications_fragment_2HEEH6\\n id\\n }\\n}\\n\\nfragment activityNotification_fragment on ActivityNotification {\\n read\\n appointmentActivity {\\n name\\n location\\n baseCase {\\n __typename\\n address\\n id\\n }\\n startDate\\n endDate\\n id\\n }\\n createdDate\\n}\\n\\nfragment documentAccessGrantedNotification_fragment on DocumentAccessGrantedNotification {\\n baseCase {\\n __typename\\n relationType {\\n relationId\\n relationType\\n }\\n caseNo\\n id\\n }\\n id\\n createdDate\\n read\\n address\\n}\\n\\nfragment documentSigningNotification_fragment on DocumentSigningNotification {\\n read\\n baseCase {\\n __typename\\n relationType {\\n relationId\\n relationType\\n }\\n id\\n }\\n document {\\n documentTypeName\\n id\\n }\\n address\\n createdDate\\n}\\n\\nfragment leadNotification_fragment on LeadNotification {\\n read\\n lead {\\n __typename\\n statusType\\n type {\\n displayName\\n id\\n }\\n receivedDate\\n id\\n }\\n}\\n\\nfragment messageNotification_fragment on MessageNotification {\\n createdDate\\n read\\n subject\\n authorName\\n}\\n\\nfragment notificationComponent_fragment on NotificationInterface {\\n __isNotificationInterface: __typename\\n __typename\\n ... on MessageNotification {\\n threadId\\n }\\n ...messageNotification_fragment\\n ...documentSigningNotification_fragment\\n ...activityNotification_fragment\\n ...searchProfileMatchNotification_fragment\\n ...requestedDocumentNotification_fragment\\n ...searchProfileMatchedCaseNotification_fragment\\n ...documentAccessGrantedNotification_fragment\\n ...leadNotification_fragment\\n ...priceChangeFavoriteCaseNotification_fragment\\n ...priceChangeOnMatchCaseNotification_fragment\\n ...openHouseFavoriteCaseNotification_fragment\\n}\\n\\nfragment notifications_fragment_2HEEH6 on Customer {\\n notificationConnection(first: $first, after: $after) {\\n edges {\\n node {\\n id\\n __typename\\n ...notificationComponent_fragment\\n }\\n cursor\\n }\\n pageInfo {\\n endCursor\\n hasNextPage\\n }\\n }\\n id\\n}\\n\\nfragment openHouseFavoriteCaseNotification_fragment on OpenHouseOnFavoriteCaseNotification {\\n read\\n appointmentActivity {\\n name\\n location\\n baseCase {\\n __typename\\n address\\n id\\n }\\n startDate\\n endDate\\n id\\n }\\n createdDate\\n}\\n\\nfragment priceChangeFavoriteCaseNotification_fragment on PriceChangeOnFavoriteCaseNotification {\\n id\\n read\\n createdDate\\n case {\\n __typename\\n address\\n relationType {\\n relationId\\n }\\n id\\n }\\n}\\n\\nfragment priceChangeOnMatchCaseNotification_fragment on PriceChangedOnMatchedCaseNotification {\\n id\\n read\\n createdDate\\n searchProfileMatchedCase {\\n baseCase {\\n __typename\\n address\\n relationType {\\n relationId\\n }\\n id\\n }\\n id\\n }\\n}\\n\\nfragment requestedDocumentNotification_fragment on RequestedDocumentNotification {\\n read\\n baseCase {\\n __typename\\n relationType {\\n relationId\\n relationType\\n }\\n id\\n }\\n typeName\\n createdDate\\n}\\n\\nfragment searchProfileMatchNotification_fragment on SearchProfileMatchNotification {\\n read\\n searchProfile {\\n __typename\\n id\\n name\\n }\\n createdDate\\n}\\n\\nfragment searchProfileMatchedCaseNotification_fragment on SearchProfileMatchedCaseNotification {\\n id\\n createdDate\\n __typename\\n read\\n searchProfileMatchedCase {\\n baseCase {\\n __typename\\n address\\n relationType {\\n relationId\\n relationType\\n }\\n id\\n }\\n id\\n }\\n searchProfile {\\n __typename\\n name\\n id\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"85745bf75789444887bbdc3e339133d5\";\n\nexport default node;\n","/**\n * @generated SignedSource<<6df910821495976ef8a6bc79cd0cae50>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type registerOpenHouseQuery$variables = {\n id: string;\n};\nexport type registerOpenHouseQuery$data = {\n readonly node: {\n readonly \" $fragmentSpreads\": FragmentRefs<\"registerOpenHouseModalFragment\">;\n } | null | undefined;\n};\nexport type registerOpenHouseQuery = {\n response: registerOpenHouseQuery$data;\n variables: registerOpenHouseQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"id\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"id\",\n \"variableName\": \"id\"\n }\n],\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"registerOpenHouseQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"registerOpenHouseModalFragment\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"registerOpenHouseQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n (v2/*: any*/),\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"amount\",\n \"value\": 2\n }\n ],\n \"concreteType\": \"OpenHouse\",\n \"kind\": \"LinkedField\",\n \"name\": \"openHouse\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ActivityType\",\n \"kind\": \"LinkedField\",\n \"name\": \"activityType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isRegistration\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"nameOnTimeline\",\n \"storageKey\": null\n },\n (v2/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isRegistred\",\n \"storageKey\": null\n },\n (v2/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"startDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endDate\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": \"openHouse(amount:2)\"\n }\n ],\n \"type\": \"BaseCase\",\n \"abstractKey\": \"__isBaseCase\"\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"38e7405d5808fb8e8e1424c74d72356a\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"registerOpenHouseQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query registerOpenHouseQuery(\\n $id: ID!\\n) {\\n node(id: $id) {\\n __typename\\n ...registerOpenHouseModalFragment\\n id\\n }\\n}\\n\\nfragment registerOpenHouseModalFragment on BaseCase {\\n __isBaseCase: __typename\\n openHouse(amount: 2) {\\n activityType {\\n isRegistration\\n nameOnTimeline\\n id\\n }\\n isRegistred\\n id\\n startDate\\n endDate\\n }\\n id\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"302468eb38bd271c0d6733f7ec1c2cc9\";\n\nexport default node;\n","import { AppTheme } from 'configs/app-theme-defaults';\nimport React, { useContext } from 'react';\n\nconst ThemeContext = React.createContext<AppTheme | null>(null);\n\nconst useTheme = () => {\n const theme = useContext(ThemeContext);\n\n return theme;\n};\n\nexport { ThemeContext, useTheme };\n","/**\n * @generated SignedSource<<d3f3a025736974b7f0f74804efae3438>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nexport type MyPageTextSection = \"CasePromotion\" | \"Consent\" | \"CustomerGDPR\" | \"EditSearchProfile\" | \"Favorites\" | \"FinishedActivties\" | \"GetStarted\" | \"Match\" | \"Messages\" | \"MyNeighbourhood\" | \"OtherBrokerFavorites\" | \"SearchProfileMatch\" | \"UpcomingActivities\" | \"UserProfile\" | \"Welcome\" | \"WelcomeHeadline\";\nexport type SearchProfileEnabledType = \"AgricultureSearchProfile\" | \"BusinessRentalSearchProfile\" | \"BusinessSaleSearchProfile\" | \"PrivateRentalSearchProfile\" | \"PrivateSaleSearchProfile\";\nexport type SearchProfileWord = \"Balcony\" | \"Elevator\" | \"Furnished\" | \"IsProjectCase\" | \"Liebhaveri\" | \"ParkingSpace\" | \"Pets\" | \"ResidenceRequirement\" | \"Shareable\" | \"Terrace\";\nexport type viewerContextQuery$variables = Record<PropertyKey, never>;\nexport type viewerContextQuery$data = {\n readonly viewer: {\n readonly configurableTextSections: ReadonlyArray<{\n readonly fileDownloadUrl: string | null | undefined;\n readonly myPageTextSection: MyPageTextSection | null | undefined;\n readonly sectionText: string | null | undefined;\n } | null | undefined> | null | undefined;\n readonly customer: {\n readonly id: string;\n } | null | undefined;\n readonly featureToggle: {\n readonly isAnalyticReportsEnabled: boolean | null | undefined;\n readonly isCanBeContactedByPhoneEnabled: boolean | null | undefined;\n readonly isMatchExternalMarketCaseEnabled: boolean | null | undefined;\n readonly isMyNeighborhoodEnabled: boolean | null | undefined;\n readonly isPropertyForSaleByOwnerEnabled: boolean | null | undefined;\n readonly isSelfDeletingCustomerEnabled: boolean;\n readonly isSellerSaysEnabled: boolean | null | undefined;\n readonly isWebPushNotificationsEnabled: boolean | null | undefined;\n readonly rentalSearchProfileEnabled: boolean;\n readonly searchProfileTypes: ReadonlyArray<SearchProfileEnabledType | null | undefined> | null | undefined;\n readonly searchProfileWords: ReadonlyArray<SearchProfileWord | null | undefined> | null | undefined;\n readonly useCumulativeDaysOnMarketInSearchProfile: boolean;\n readonly useDistancesInSearchProfile: boolean;\n readonly useGenerelConsent: boolean | null | undefined;\n readonly useSearchProfileContactShop: boolean | null | undefined;\n };\n readonly vapidPublicKey: string | null | undefined;\n } | null | undefined;\n};\nexport type viewerContextQuery = {\n response: viewerContextQuery$data;\n variables: viewerContextQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"vapidPublicKey\",\n \"storageKey\": null\n},\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"FeatureToggle\",\n \"kind\": \"LinkedField\",\n \"name\": \"featureToggle\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isAnalyticReportsEnabled\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isSellerSaysEnabled\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isMyNeighborhoodEnabled\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isMatchExternalMarketCaseEnabled\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isWebPushNotificationsEnabled\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isCanBeContactedByPhoneEnabled\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"searchProfileTypes\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isPropertyForSaleByOwnerEnabled\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"useSearchProfileContactShop\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"rentalSearchProfileEnabled\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"useCumulativeDaysOnMarketInSearchProfile\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"searchProfileWords\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"useGenerelConsent\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"useDistancesInSearchProfile\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isSelfDeletingCustomerEnabled\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n},\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Customer\",\n \"kind\": \"LinkedField\",\n \"name\": \"customer\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/)\n ],\n \"storageKey\": null\n},\nv4 = [\n {\n \"kind\": \"Literal\",\n \"name\": \"myPageTextSections\",\n \"value\": [\n \"CasePromotion\",\n \"Consent\",\n \"CustomerGDPR\",\n \"Favorites\",\n \"GetStarted\",\n \"Match\",\n \"MyNeighbourhood\",\n \"UserProfile\",\n \"Welcome\",\n \"WelcomeHeadline\",\n \"Messages\",\n \"UpcomingActivities\",\n \"FinishedActivties\",\n \"OtherBrokerFavorites\",\n \"EditSearchProfile\",\n \"SearchProfileMatch\"\n ]\n }\n],\nv5 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"sectionText\",\n \"storageKey\": null\n},\nv6 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"myPageTextSection\",\n \"storageKey\": null\n},\nv7 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"fileDownloadUrl\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"viewerContextQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/),\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": (v4/*: any*/),\n \"concreteType\": \"ConfigurableTextSection\",\n \"kind\": \"LinkedField\",\n \"name\": \"configurableTextSections\",\n \"plural\": true,\n \"selections\": [\n (v5/*: any*/),\n (v6/*: any*/),\n (v7/*: any*/)\n ],\n \"storageKey\": \"configurableTextSections(myPageTextSections:[\\\"CasePromotion\\\",\\\"Consent\\\",\\\"CustomerGDPR\\\",\\\"Favorites\\\",\\\"GetStarted\\\",\\\"Match\\\",\\\"MyNeighbourhood\\\",\\\"UserProfile\\\",\\\"Welcome\\\",\\\"WelcomeHeadline\\\",\\\"Messages\\\",\\\"UpcomingActivities\\\",\\\"FinishedActivties\\\",\\\"OtherBrokerFavorites\\\",\\\"EditSearchProfile\\\",\\\"SearchProfileMatch\\\"])\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Operation\",\n \"name\": \"viewerContextQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/),\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": (v4/*: any*/),\n \"concreteType\": \"ConfigurableTextSection\",\n \"kind\": \"LinkedField\",\n \"name\": \"configurableTextSections\",\n \"plural\": true,\n \"selections\": [\n (v5/*: any*/),\n (v6/*: any*/),\n (v7/*: any*/),\n (v2/*: any*/)\n ],\n \"storageKey\": \"configurableTextSections(myPageTextSections:[\\\"CasePromotion\\\",\\\"Consent\\\",\\\"CustomerGDPR\\\",\\\"Favorites\\\",\\\"GetStarted\\\",\\\"Match\\\",\\\"MyNeighbourhood\\\",\\\"UserProfile\\\",\\\"Welcome\\\",\\\"WelcomeHeadline\\\",\\\"Messages\\\",\\\"UpcomingActivities\\\",\\\"FinishedActivties\\\",\\\"OtherBrokerFavorites\\\",\\\"EditSearchProfile\\\",\\\"SearchProfileMatch\\\"])\"\n },\n (v2/*: any*/)\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"740c79ab221fcbac231aac5fdd64414b\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"viewerContextQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query viewerContextQuery {\\n viewer {\\n vapidPublicKey\\n featureToggle {\\n isAnalyticReportsEnabled\\n isSellerSaysEnabled\\n isMyNeighborhoodEnabled\\n isMatchExternalMarketCaseEnabled\\n isWebPushNotificationsEnabled\\n isCanBeContactedByPhoneEnabled\\n searchProfileTypes\\n isPropertyForSaleByOwnerEnabled\\n useSearchProfileContactShop\\n rentalSearchProfileEnabled\\n useCumulativeDaysOnMarketInSearchProfile\\n searchProfileWords\\n useGenerelConsent\\n useDistancesInSearchProfile\\n isSelfDeletingCustomerEnabled\\n }\\n customer {\\n id\\n }\\n configurableTextSections(myPageTextSections: [CasePromotion, Consent, CustomerGDPR, Favorites, GetStarted, Match, MyNeighbourhood, UserProfile, Welcome, WelcomeHeadline, Messages, UpcomingActivities, FinishedActivties, OtherBrokerFavorites, EditSearchProfile, SearchProfileMatch]) {\\n sectionText\\n myPageTextSection\\n fileDownloadUrl\\n id\\n }\\n id\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"de6796e40ebb73e3da5e194fd205ffc0\";\n\nexport default node;\n","import { MyPageTextSection } from 'Enums';\nimport { viewerContextQuery, viewerContextQuery$data } from '__generated__/viewerContextQuery.graphql';\nimport { FC, ReactNode, createContext, useContext } from 'react';\nimport { graphql } from 'react-relay';\nimport { useQuery } from 'relay-hooks';\n\nexport type Viewer = NonNullable<viewerContextQuery$data['viewer']> | null;\nexport type ConfigurableText = NonNullable<\n NonNullable<viewerContextQuery$data['viewer']>['configurableTextSections']\n> | null;\n\nconst ViewerContext = createContext<Viewer>(null);\nexport const useViewer = () => useContext(ViewerContext);\n\ntype Props = {\n children: ReactNode;\n};\n\nconst ViewerProvider: FC<Props> = (providerProps) => {\n const query = graphql`\n query viewerContextQuery {\n viewer {\n vapidPublicKey\n featureToggle {\n isAnalyticReportsEnabled\n isSellerSaysEnabled\n isMyNeighborhoodEnabled\n isMatchExternalMarketCaseEnabled\n isWebPushNotificationsEnabled\n isCanBeContactedByPhoneEnabled\n searchProfileTypes\n isPropertyForSaleByOwnerEnabled\n useSearchProfileContactShop\n rentalSearchProfileEnabled\n useCumulativeDaysOnMarketInSearchProfile\n searchProfileWords\n useGenerelConsent\n useDistancesInSearchProfile\n isSelfDeletingCustomerEnabled\n }\n customer {\n id\n }\n configurableTextSections(\n myPageTextSections: [\n CasePromotion\n Consent\n CustomerGDPR\n Favorites\n GetStarted\n Match\n MyNeighbourhood\n UserProfile\n Welcome\n WelcomeHeadline\n Messages\n UpcomingActivities\n FinishedActivties\n OtherBrokerFavorites\n EditSearchProfile\n SearchProfileMatch\n ]\n ) {\n sectionText\n myPageTextSection\n fileDownloadUrl\n }\n }\n }\n `;\n\n const { error, data } = useQuery<viewerContextQuery>(query);\n\n if (error) {\n throw error;\n }\n\n if (!data?.viewer) {\n return null;\n }\n\n return <ViewerContext.Provider value={data.viewer}>{providerProps.children}</ViewerContext.Provider>;\n};\n\nexport default ViewerProvider;\n\nexport const findConfigurableSectionText = (textList: ConfigurableText, key: MyPageTextSection) => {\n const arr = textList || [];\n return arr.find((text) => text?.myPageTextSection === key);\n};\n","import mixpanel, { Dict } from 'mixpanel-browser';\nimport { FC, ReactNode, createContext, useEffect } from 'react';\nimport { MixPanelEvents } from './mixpanelEvents';\n\ntype MixPanelUser = {\n userId: string;\n};\n\ntype State = {\n track: <T extends keyof MixPanelEvents>(event: T, properties?: MixPanelEvents[T]) => void;\n identify: (user: MixPanelUser) => void;\n};\n\nexport const MixpanelContext = createContext<State>({\n track: () => {},\n identify: () => {},\n});\n\ntype Props = {\n children: ReactNode;\n token: string;\n};\n\nexport const MixPanelProvider: FC<Props> = ({ children, token }) => {\n useEffect(() => {\n if (token) {\n mixpanel.init(token, { api_host: 'https://api-eu.mixpanel.com' });\n }\n }, [token]);\n\n const track = <T extends keyof MixPanelEvents>(event: T, properties?: MixPanelEvents[T]) => {\n if (!token) {\n return;\n }\n\n mixpanel.track(event, properties as Dict);\n };\n\n const identify = (user: MixPanelUser) => {\n if (!token) return;\n mixpanel.identify(user.userId);\n mixpanel.register_once({ ...user });\n };\n\n return <MixpanelContext.Provider value={{ track, identify }}>{children}</MixpanelContext.Provider>;\n};\n","export const ActivitiesTab = {\n ACTIVITIES: 'activities',\n PAST_ACTIVITIES: 'pastActivities',\n};\n","export const FavouritesTab = {\n FAVORITES: 'favorites',\n FAVORITES_OTHER_BROKER: 'favorites-other-broker',\n};\n","export const MatchTab = {\n MATCHES: 'matches',\n SEARCH_PROFILES: 'searchProfiles',\n};\n","export const MySalesTab = {\n ACTIVE: 'active',\n FINISHED: 'finished',\n};\n","import { useNavigate } from 'react-router-dom';\n\n/** Navigate to the top of a page so that the scroll position isn't persisted between pages. Use this instead of React Dom's build-in @see {@link useNavigate}. */\nexport const useNavigateToTop = () => {\n const navigate = useNavigate();\n\n const navigateAndReset = (to: string) => {\n navigate(to);\n window.scrollTo(0, 0);\n };\n\n return navigateAndReset;\n};\n","import classNames from 'classnames';\nimport Icon, { IconProps } from 'components/atoms/icon/icon';\nimport Typography from 'components/atoms/typography/typography';\nimport { useNavigateToTop } from 'hooks/use-navigate-to-top';\nimport { AnchorHTMLAttributes, ComponentPropsWithoutRef, FC, Fragment, MouseEventHandler } from 'react';\nimport { Link } from 'react-router-dom';\nimport { HashLink } from 'react-router-hash-link';\nimport './button.scss';\n\nexport interface ButtonProps extends ComponentPropsWithoutRef<'button'> {\n anchorTag?: boolean;\n download?: boolean;\n hideText?: boolean;\n href?: string;\n iconClassname?: string;\n iconEnd?: IconProps['name'];\n iconHeight?: number;\n iconStart?: IconProps['name'];\n iconWidth?: number;\n inline?: boolean;\n isFullWidth?: boolean;\n padding?: boolean;\n selected?: boolean;\n version?: 'primary' | 'secondary' | 'link' | 'tag';\n wrapper?: boolean;\n}\n\nconst Button: FC<ButtonProps> = (props) => {\n const {\n anchorTag,\n children,\n className,\n disabled,\n href,\n hideText,\n iconClassname,\n iconHeight,\n iconStart,\n iconWidth,\n iconEnd,\n isFullWidth,\n type,\n padding = true,\n version = 'primary',\n selected,\n download,\n inline,\n wrapper,\n ...rest\n } = props;\n\n const navigateToTop = useNavigateToTop();\n\n const navigateAndReset: MouseEventHandler<HTMLAnchorElement> = (event) => {\n event.preventDefault();\n navigateToTop(href || '');\n };\n\n const classList = wrapper\n ? 'reset-styles'\n : classNames('button', version, className, {\n hideText,\n isDisabled: disabled,\n isFullWidth,\n isInline: inline,\n isSelected: selected,\n padding,\n });\n\n const getInnerContent = () => {\n return (\n <Fragment>\n {iconStart && (\n <Icon\n className={classNames('iconStart', iconClassname)}\n height={iconHeight}\n name={iconStart}\n width={iconWidth}\n />\n )}\n <Typography className=\"text\" tagStyle={version !== 'link' ? 'cta' : undefined}>\n {children}\n </Typography>\n {iconEnd && <Icon className=\"iconEnd\" height={iconHeight} name={iconEnd} width={iconWidth} />}\n </Fragment>\n );\n };\n\n if (anchorTag && href && href?.includes('http')) {\n return (\n <a\n className={classList}\n download={download}\n href={href}\n target=\"blank\"\n {...(rest as AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {getInnerContent()}\n </a>\n );\n }\n\n if (anchorTag && href && href?.includes('#')) {\n return (\n <HashLink\n className={classList}\n to={href}\n {...(rest as AnchorHTMLAttributes<HTMLAnchorElement>)}\n scroll={(el) => {\n // add offset to scroll\n el.scrollIntoView();\n window.scrollBy(0, -56);\n }}\n smooth\n >\n {getInnerContent()}\n </HashLink>\n );\n }\n\n if (anchorTag && href) {\n return (\n <Link\n className={classList}\n onClick={navigateAndReset}\n to={href}\n {...(rest as AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {getInnerContent()}\n </Link>\n );\n }\n\n return (\n <button className={classList} type={type || 'button'} {...rest}>\n {getInnerContent()}\n </button>\n );\n};\n\nexport default Button;\n","import * as React from \"react\";\nconst SvgAddPin = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={28} height={40} fill=\"none\" viewBox=\"0 0 28 40\" {...props}><path fill=\"current\" fillRule=\"evenodd\" d=\"M28 5a5 5 0 0 0-5-5H5a5 5 0 0 0-5 5v20.981a5 5 0 0 0 1.461 3.533l9 9.016a5 5 0 0 0 7.078 0l9-9.016A5 5 0 0 0 28 25.98z\" clipRule=\"evenodd\" /><path fill=\"#fff\" d=\"M17.57 14.618h-2.827v2.898h-1.484v-2.898H10.43v-1.344h2.828v-2.898h1.484v2.898h2.828z\" /></svg>;\nexport default SvgAddPin;","import * as React from \"react\";\nconst SvgAndroidAddHomeScreen = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={17} height={22} viewBox=\"0 0 17 22\" {...props}><g fill=\"none\" fillRule=\"evenodd\"><path d=\"M-3-1h24v24H-3z\" /><path fill=\"#1D1D1D\" d=\"M15 .01 5 0C3.9 0 3 .9 3 2v3c0 .55.45 1 1 1s1-.45 1-1V4h10v14H5v-1c0-.55-.45-1-1-1s-1 .45-1 1v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-1.99-2-1.99M8 14c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1s.45 1 1 1h2.59L.7 13.89a.996.996 0 1 0 1.41 1.41L7 10.41V13c0 .55.45 1 1 1\" /></g></svg>;\nexport default SvgAndroidAddHomeScreen;","import * as React from \"react\";\nconst SvgArrowDown = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"m12 16 6-6-1.41-1.41L12 13.17 7.41 8.59 6 10z\" /></svg>;\nexport default SvgArrowDown;","import * as React from \"react\";\nconst SvgArrowFilled = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={10} height={5} fill=\"none\" viewBox=\"0 0 10 5\" {...props}><path fill=\"current\" d=\"m0 0 5 5 5-5z\" /></svg>;\nexport default SvgArrowFilled;","import * as React from \"react\";\nconst SvgArrowLeft = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z\" /></svg>;\nexport default SvgArrowLeft;","import * as React from \"react\";\nconst SvgArrowLeftLong = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M21 11H6.83l3.58-3.59L9 6l-6 6 6 6 1.41-1.41L6.83 13H21z\" /></svg>;\nexport default SvgArrowLeftLong;","import * as React from \"react\";\nconst SvgArrowRight = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" /></svg>;\nexport default SvgArrowRight;","import * as React from \"react\";\nconst SvgArrowRightLong = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M3 13h14.17l-3.58 3.59L15 18l6-6-6-6-1.41 1.41L17.17 11H3z\" /></svg>;\nexport default SvgArrowRightLong;","import * as React from \"react\";\nconst SvgArrowUp = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\" /></svg>;\nexport default SvgArrowUp;","import * as React from \"react\";\nconst SvgAvatar = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={40} height={40} fill=\"transparent\" viewBox=\"0 0 40 40\" {...props}><circle cx={20} cy={20} r={19.5} stroke=\"#DBDBDB\" /><path fill=\"#000\" d=\"M23.5 22h-.79l-.28-.27A6.47 6.47 0 0 0 24 17.5a6.5 6.5 0 1 0-6.5 6.5c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L28.49 27zm-6 0c-2.49 0-4.5-2.01-4.5-4.5s2.01-4.5 4.5-4.5 4.5 2.01 4.5 4.5-2.01 4.5-4.5 4.5\" /></svg>;\nexport default SvgAvatar;","import * as React from \"react\";\nconst SvgBanner = props => <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"7 10 35 35\" {...props}><defs><style>{\".Banner_svg__st1{fill:#fcee21}.Banner_svg__st2{fill:#fff}\"}</style></defs><path d=\"M39.6 27.9c0 8.3-6.7 15.1-15.1 15.1S9.4 36.3 9.4 27.9s6.7-15.1 15.1-15.1 15.1 6.7 15.1 15.1\" style={{\n fill: \"#f15a24\"\n }} /><path d=\"M22.2 29.2\" className=\"Banner_svg__st1\" /><path d=\"M30.8 17.4c-.4-.4-.8-.6-1.4-.6h-10c-.5 0-1 .2-1.4.6s-.6.8-.6 1.4v18.4c0 .5.2 1 .6 1.4s.8.6 1.4.6h10c.5 0 1-.2 1.4-.6s.6-.9.6-1.4V18.8c0-.5-.2-1-.6-1.4m-1 20.2H19.2V21.3h10.6z\" className=\"Banner_svg__st2\" /><path d=\"M24.6 27.1h1.5v1h-1.5z\" className=\"Banner_svg__st2\" /><path d=\"M21.2 31h6.4c.7 0 1.3-.7 1.3-1.6v-5.3c0-.9-.6-1.6-1.3-1.6h-6.4c-.7 0-1.3.7-1.3 1.6v5.3c0 .9.6 1.6 1.3 1.6m3.3-6.9 3 1.9h-1v3h-2.4v-2h-1v2h-.6v-3h-1zM20.6 32.2c-.2 0-.4.2-.4.4s.2.4.4.4h8c.2 0 .4-.2.4-.4s-.2-.4-.4-.4zM26.6 33.2h-6c-.2 0-.4.2-.4.4s.2.4.4.4h6c.2 0 .4-.2.4-.4s-.2-.4-.4-.4\" className=\"Banner_svg__st2\" /></svg>;\nexport default SvgBanner;","import * as React from \"react\";\nconst SvgBell = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M19.29 17.29 18 16v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-1.29 1.29c-.63.63-.19 1.71.7 1.71h13.17c.9 0 1.34-1.08.71-1.71M16 17H8v-6c0-2.48 1.51-4.5 4-4.5s4 2.02 4 4.5zm-4 5c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2\" /></svg>;\nexport default SvgBell;","import * as React from \"react\";\nconst SvgBellOff = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={800} height={800} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"#000\" fillRule=\"evenodd\" d=\"M9.443 19.17a1 1 0 0 1 1.388.273c.099.148.253.288.46.391.209.104.453.162.709.162s.5-.058.708-.162c.208-.103.362-.243.461-.391a1 1 0 1 1 1.662 1.114 3.2 3.2 0 0 1-1.231 1.068 3.6 3.6 0 0 1-1.6.371 3.6 3.6 0 0 1-1.6-.371 3.2 3.2 0 0 1-1.23-1.068 1 1 0 0 1 .273-1.388M2.293 2.293a1 1 0 0 1 1.414 0l18 18a1 1 0 0 1-1.414 1.414l-18-18a1 1 0 0 1 0-1.414\" clipRule=\"evenodd\" /><path fill=\"#000\" fillRule=\"evenodd\" d=\"M6.225 5.639c-.379.91-.558 1.922-.558 2.961v1.733c0 .244-.11.538-.395.917-.274.363-.63.703-1.022 1.08l-.066.063A3.78 3.78 0 0 0 3 15.133C3 16.67 4.198 18 5.778 18h12.444q.174 0 .343-.021zM19.97 16.557c.211.211.563.192.7-.074.211-.406.329-.868.329-1.35 0-1.133-.5-2.084-1.184-2.74l-.066-.063c-.393-.377-.748-.717-1.022-1.08-.285-.38-.395-.673-.395-.917V8.6c0-1.73-.497-3.383-1.581-4.62C15.65 2.727 14.03 2 12 2c-1.794 0-3.268.567-4.347 1.565a.47.47 0 0 0 .002.676z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgBellOff;","import * as React from \"react\";\nconst SvgBoligsiden = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"#900d09\" d=\"m13.734 11.321.395 1.434 3.562-1.323-.892-.378Z\" data-name=\"Path 3\" /><path fill=\"#fff\" d=\"M18.3 17.403h-12v-5.948l5.9-6.052 6.1 5.935Zm-10.433-1.56h8.864v-4.481h-4.536l.03-3.746-4.358 4.472Z\" data-name=\"Path 2\" /><path fill=\"#aaa\" d=\"M16.722 11.351v.462l1.579-.462Z\" data-name=\"Path 4\" /></svg>;\nexport default SvgBoligsiden;","import * as React from \"react\";\nconst SvgBurgerMenu = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" fillRule=\"evenodd\" d=\"M3 7V5h18v2zm0 6h18v-2H3zm0 6h18v-2H3z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgBurgerMenu;","import * as React from \"react\";\nconst SvgCalendar = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={48} height={48} fill=\"currentColor\" viewBox=\"-9 -5 65 65\" {...props}><path d=\"M40 6h-2V2h-4v4H14V2h-4v4H8c-2.2 0-4 1.8-4 4v32c0 2.2 1.8 4 4 4h32c2.2 0 4-1.8 4-4V10c0-2.2-1.8-4-4-4m0 36H8V20h32zm0-26H8v-6h32z\" /></svg>;\nexport default SvgCalendar;","import * as React from \"react\";\nconst SvgCamera = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2m0 14H4V6h4.05l1.83-2h4.24l1.83 2H20zM12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5m0 8c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3\" /></svg>;\nexport default SvgCamera;","import * as React from \"react\";\nconst SvgCart = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"current\" viewBox=\"0 0 24 24\" {...props}><path d=\"M17 18c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2m0-3 1.1-2h7.45c.75 0 1.41-.41 1.75-1.03L21.7 4H5.21l-.94-2H1v2h2l3.6 7.59L3.62 17H19v-2z\" /></svg>;\nexport default SvgCart;","import * as React from \"react\";\nconst SvgChat = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m0 14H6l-2 2V4h16z\" /></svg>;\nexport default SvgChat;","import * as React from \"react\";\nconst SvgCheck = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\" /></svg>;\nexport default SvgCheck;","import * as React from \"react\";\nconst SvgClip = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" fillRule=\"evenodd\" d=\"M15.402 3.1a2.93 2.93 0 0 0-2.902.84l-.012.012-8.014 8.228c-1.965 2.018-1.965 5.3 0 7.318a4.89 4.89 0 0 0 7.052 0L21.981 8.76l1.433 1.396L12.96 20.893a6.89 6.89 0 0 1-9.918 0C.32 18.1.32 13.58 3.041 10.785l8.008-8.223a4.93 4.93 0 0 1 4.872-1.394c1.758.473 3.114 1.876 3.566 3.652a5.18 5.18 0 0 1-1.349 4.945l-8.007 8.227-.013.013a2.963 2.963 0 0 1-4.224-.037 3.093 3.093 0 0 1-.037-4.262l.012-.012 8.712-8.949 1.433 1.395-8.705 8.942a1.093 1.093 0 0 0 .018 1.49.963.963 0 0 0 1.378.018l8.006-8.226.012-.012a3.18 3.18 0 0 0 .826-3.038c-.28-1.096-1.107-1.935-2.147-2.214\" clipRule=\"evenodd\" /></svg>;\nexport default SvgClip;","import * as React from \"react\";\nconst SvgClock = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"current\" d=\"M7.993 1.333A6.663 6.663 0 0 0 1.333 8c0 3.68 2.98 6.666 6.66 6.666A6.67 6.67 0 0 0 14.667 8a6.67 6.67 0 0 0-6.674-6.667m.007 12A5.33 5.33 0 0 1 2.667 8 5.33 5.33 0 0 1 8 2.666 5.33 5.33 0 0 1 13.333 8 5.33 5.33 0 0 1 8 13.333m.333-8.667h-1v4l3.5 2.1.5-.82-3-1.78z\" /></svg>;\nexport default SvgClock;","import * as React from \"react\";\nconst SvgCross = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\" /></svg>;\nexport default SvgCross;","import * as React from \"react\";\nconst SvgCross1 = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><g clipPath=\"url(#Cross1_svg__a)\"><circle cx={12} cy={12} r={11.75} fill=\"#fff\" stroke=\"#F3F3F3\" strokeWidth={0.5} /><path fill=\"#333\" d=\"m16.5 8.406-.906-.906L12 11.094 8.406 7.5l-.906.906L11.094 12 7.5 15.594l.906.906L12 12.906l3.594 3.594.906-.906L12.906 12z\" /></g><defs><clipPath id=\"Cross1_svg__a\"><path fill=\"#fff\" d=\"M0 0h24v24H0z\" /></clipPath></defs></svg>;\nexport default SvgCross1;","import * as React from \"react\";\nconst SvgDelete = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M6 21h12V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z\" /></svg>;\nexport default SvgDelete;","import * as React from \"react\";\nconst SvgDot = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" viewBox=\"0 0 16 16\" {...props}><circle cx={8} cy={8} r={4} fill=\"#2F80ED\" /></svg>;\nexport default SvgDot;","import * as React from \"react\";\nconst SvgDotsMenu = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"current\" viewBox=\"0 0 24 24\" {...props}><path d=\"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2\" /></svg>;\nexport default SvgDotsMenu;","import * as React from \"react\";\nconst SvgDownload = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} viewBox=\"0 -960 960 960\" {...props}><path d=\"M480-320 280-520l56-58 104 104v-326h80v326l104-104 56 58zM240-160q-33 0-56.5-23.5T160-240v-120h80v120h480v-120h80v120q0 33-23.5 56.5T720-160z\" /></svg>;\nexport default SvgDownload;","import * as React from \"react\";\nconst SvgDropdown = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"m7 10 5 5 5-5z\" /></svg>;\nexport default SvgDropdown;","import * as React from \"react\";\nconst SvgExpand = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"m15 3 2.3 2.3-2.89 2.87 1.42 1.42L18.7 6.7 21 9V3zM3 9l2.3-2.3 2.87 2.89 1.42-1.42L6.7 5.3 9 3H3zm6 12-2.3-2.3 2.89-2.87-1.42-1.42L5.3 17.3 3 15v6zm12-6-2.3 2.3-2.87-2.89-1.42 1.42 2.89 2.87L15 21h6z\" /></svg>;\nexport default SvgExpand;","import * as React from \"react\";\nconst SvgFb = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"#fff\" d=\"M14.658 6.064h-1.439a2.516 2.516 0 0 0-2.662 2.707v1.248h-1.45a.225.225 0 0 0-.226.224v1.809a.225.225 0 0 0 .226.224h1.45v4.563a.225.225 0 0 0 .226.224h1.888a.225.225 0 0 0 .226-.224v-4.563h1.692a.225.225 0 0 0 .226-.224v-1.808a.22.22 0 0 0-.066-.159.23.23 0 0 0-.16-.066h-1.691V8.964c0-.509.122-.767.791-.767h.969a.225.225 0 0 0 .226-.224V6.291a.225.225 0 0 0-.226-.227\" /></svg>;\nexport default SvgFb;","import * as React from \"react\";\nconst SvgFavouritePin = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={48} height={48} fill=\"none\" viewBox=\"0 0 48 48\" {...props}><circle cx={24} cy={24} r={24} fill=\"#EB9688\" fillOpacity={0.2} /><circle cx={24} cy={24} r={14.4} fill=\"#F5968B\" /><path fill=\"#fff\" d=\"M32.145 23.914a2.44 2.44 0 0 0 0-3.366l-1.787-1.85a2.24 2.24 0 0 0-3.249 0l-1.787 1.85c-.898.93-2.352.93-3.25 0l-1.786-1.85a2.24 2.24 0 0 0-3.249 0l-1.786 1.851a2.44 2.44 0 0 0 0 3.366l6.822 7.068c.897.93 2.352.93 3.249 0l1.787-1.851.022-.024z\" /></svg>;\nexport default SvgFavouritePin;","import * as React from \"react\";\nconst SvgFiles = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm-1 4H8c-1.1 0-1.99.9-1.99 2L6 21c0 1.1.89 2 1.99 2H19c1.1 0 2-.9 2-2V11zM8 21V7h6v5h5v9z\" /></svg>;\nexport default SvgFiles;","import * as React from \"react\";\nconst SvgFilesCheck = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={112} height={112} fill=\"none\" viewBox=\"0 0 112 112\" {...props}><path fill=\"#DBDBDB\" d=\"M74.667 4.667h-56c-5.134 0-9.334 4.2-9.334 9.333v65.333h9.334V14h56zM70 23.333H37.333c-5.133 0-9.286 4.2-9.286 9.334L28 98c0 5.133 4.153 9.333 9.287 9.333h51.38c5.133 0 9.333-4.2 9.333-9.333V51.333zM37.333 98V32.667h28V56h23.334v42z\" /><path fill=\"#34A853\" d=\"M79.5 85.035 70.465 76l-3.077 3.055L79.5 91.167l26-26-3.055-3.055z\" /></svg>;\nexport default SvgFilesCheck;","import * as React from \"react\";\nconst SvgFullArrowLeft = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M21 11H6.83l3.58-3.59L9 6l-6 6 6 6 1.41-1.41L6.83 13H21z\" /></svg>;\nexport default SvgFullArrowLeft;","import * as React from \"react\";\nconst SvgFullArrowRight = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M3 13h14.17l-3.58 3.59L15 18l6-6-6-6-1.41 1.41L17.17 11H3z\" /></svg>;\nexport default SvgFullArrowRight;","import * as React from \"react\";\nconst SvgHeart = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={50} height={32} fill=\"none\" viewBox=\"0 0 50 32\" {...props}><path fill=\"#F5968B\" d=\"M47.483 13.197c1.201-1.2 1.201-3.148 0-4.348l-5.62-5.621a3.075 3.075 0 0 0-4.349 0l-5.62 5.62a3.075 3.075 0 0 1-4.35 0l-5.62-5.62a3.075 3.075 0 0 0-4.35 0l-5.62 5.62a3.075 3.075 0 0 0 0 4.35l15.59 15.589a3.06 3.06 0 0 0 1.892.888 3.07 3.07 0 0 0 2.458-.888z\" /><path fill=\"#FDD7D1\" d=\"M7.653 28.778c1.2 1.201 3.148 1.201 4.349 0l3.287-3.287c1.2-1.201 1.2-3.148 0-4.349l-5.588-5.588a3.075 3.075 0 0 0-4.35 0L2.065 18.84a3.075 3.075 0 0 0 0 4.349z\" /></svg>;\nexport default SvgHeart;","import * as React from \"react\";\nconst SvgHeartFilled = props => <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" {...props}><path d=\"m15.94 27.51-.6-.5c-.3-.3-7.9-6.2-10.4-9.5-1.6-2.1-2.3-4.6-1.9-6.9.3-2 1.5-3.7 3.3-4.9 3.7-2.5 7.6-.7 9.7 1.1 2.1-1.8 6-3.6 10-.9 1.8 1.4 2.9 3.2 3 5.3.2 2.4-.8 5-2.7 7-2.6 3.2-9.4 8.5-9.7 8.8z\" style={{\n fill: \"#333\"\n }} /></svg>;\nexport default SvgHeartFilled;","import * as React from \"react\";\nconst SvgHeartOutline = props => <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" {...props}><path d=\"m15.94 27.51-.6-.5c-.3-.3-7.9-6.2-10.4-9.5-1.6-2.1-2.3-4.6-1.9-6.9.3-2 1.5-3.7 3.3-4.9 3.7-2.5 7.6-.7 9.7 1.1 2.1-1.8 6-3.6 10-.9 1.8 1.4 2.9 3.2 3 5.3.2 2.4-.8 5-2.7 7-2.6 3.2-9.4 8.5-9.7 8.8zm-5.8-21c-.9 0-1.8.2-2.8.9-1.3.9-2.2 2.1-2.4 3.6-.3 1.7.3 3.7 1.6 5.4 1.9 2.6 7.5 7.2 9.4 8.7 1.8-1.4 6.8-5.5 8.8-8 1.5-1.7 2.3-3.7 2.2-5.5-.1-1.5-.9-2.8-2.2-3.9-4.2-2.8-7.9 1.2-8.1 1.3l-.7.8-.7-.8c-.1-.2-2.3-2.5-5.1-2.5\" style={{\n fill: \"#333\"\n }} /></svg>;\nexport default SvgHeartOutline;","import * as React from \"react\";\nconst SvgHome = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z\" /></svg>;\nexport default SvgHome;","import * as React from \"react\";\nconst SvgHouse = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={48} height={48} fill=\"none\" viewBox=\"0 0 48 48\" {...props}><path fill=\"currentColor\" d=\"m24 11.38 10 9V36h-4V24H18v12h-4V20.38zM24 6 4 24h6v16h12V28h4v12h12V24h6z\" /></svg>;\nexport default SvgHouse;","import * as React from \"react\";\nconst SvgImage = props => <svg width={24} height={24} viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M19 5v14H5V5zm0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-4.86 8.86-3 3.87L9 13.14 6 17h12z\" /></svg>;\nexport default SvgImage;","import * as React from \"react\";\nconst SvgImages = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M20 4v12H8V4zm0-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-8.5 9.67 1.69 2.26 2.48-3.1L19 15H9zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6z\" /></svg>;\nexport default SvgImages;","import * as React from \"react\";\nconst SvgInfo = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M11 7h2v2h-2zm1 10c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1m0-15C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8\" /></svg>;\nexport default SvgInfo;","import * as React from \"react\";\nconst SvgLead = props => <svg aria-hidden=\"true\" className=\"Lead_svg__MuiSvgIcon-root\" style={{\n fontSize: 14,\n color: \"#000\"\n}} viewBox=\"0 0 24 24\" {...props}><path d=\"M20 5.41 18.59 4 7 15.59V9H5v10h10v-2H8.41z\" /></svg>;\nexport default SvgLead;","import * as React from \"react\";\nconst SvgLetter = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={48} height={48} fill=\"none\" viewBox=\"0 0 48 48\" {...props}><path fill=\"#767676\" d=\"M44 12c0-2.2-1.8-4-4-4H8c-2.2 0-4 1.8-4 4v24c0 2.2 1.8 4 4 4h32c2.2 0 4-1.8 4-4zm-4 0L24 22 8 12zm0 24H8V16l16 10 16-10z\" /></svg>;\nexport default SvgLetter;","import * as React from \"react\";\nconst SvgLogOut = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M21 3.01H3c-1.1 0-2 .9-2 2V9h2V4.99h18v14.03H3V15H1v4.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14a2 2 0 0 0-2-2M11 16l4-4-4-4v3H1v2h10zM21 3.01H3c-1.1 0-2 .9-2 2V9h2V4.99h18v14.03H3V15H1v4.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14a2 2 0 0 0-2-2M11 16l4-4-4-4v3H1v2h10z\" /></svg>;\nexport default SvgLogOut;","import * as React from \"react\";\nconst SvgMinus = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M19 13H5v-2h14z\" /></svg>;\nexport default SvgMinus;","import * as React from \"react\";\nconst SvgNewMessage = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 512 512\" {...props}><path d=\"M160 368c26.5 0 48 21.5 48 48v16l72.5-54.4c8.3-6.2 18.4-9.6 28.8-9.6H448c8.8 0 16-7.2 16-16V64c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16zm48 124-.2.2-5.1 3.8-17.1 12.8c-4.8 3.6-11.3 4.2-16.8 1.5s-8.8-8.2-8.8-14.3v-80H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0h384c35.3 0 64 28.7 64 64v288c0 35.3-28.7 64-64 64H309.3z\" /></svg>;\nexport default SvgNewMessage;","import * as React from \"react\";\nconst SvgNote = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={48} height={48} viewBox=\"0 0 48 48\" {...props}><path d=\"M44 20 32 8H8c-2.2 0-4 1.8-4 4v24.02C4 38.22 5.8 40 8 40l32-.02c2.2 0 4-1.78 4-3.98zm-14-9 11 11H30z\" /><path fill=\"none\" d=\"M0 0h48v48H0z\" /></svg>;\nexport default SvgNote;","import * as React from \"react\";\nconst SvgPen = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" fillRule=\"evenodd\" d=\"M17.659 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83a.996.996 0 0 0 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29m-3.6 6.02.92.92L5.919 19h-.92v-.92zm-11.06 8.23 11.06-11.06 3.75 3.75L6.749 21h-3.75z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgPen;","import * as React from \"react\";\nconst SvgPerson = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={512} height={512} viewBox=\"0 0 512 512\" {...props}><path d=\"M332.64 64.58C313.18 43.57 286 32 256 32c-30.16 0-57.43 11.5-76.8 32.38-19.58 21.11-29.12 49.8-26.88 80.78C156.76 206.28 203.27 256 256 256s99.16-49.71 103.67-110.82c2.27-30.7-7.33-59.33-27.03-80.6M432 480H80a31 31 0 0 1-24.2-11.13c-6.5-7.77-9.12-18.38-7.18-29.11C57.06 392.94 83.4 353.61 124.8 326c36.78-24.51 83.37-38 131.2-38s94.42 13.5 131.2 38c41.4 27.6 67.74 66.93 76.18 113.75 1.94 10.73-.68 21.34-7.18 29.11A31 31 0 0 1 432 480\" /></svg>;\nexport default SvgPerson;","import * as React from \"react\";\nconst SvgPin = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7M7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9\" /><path fill=\"current\" d=\"M12 11.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5\" /></svg>;\nexport default SvgPin;","import * as React from \"react\";\nconst SvgPlan = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" fillRule=\"evenodd\" d=\"M16 17h5V3H3v18h13zm-2 2v-9h2v5h3V5h-3v2h-2V5H5v10h6v2H5v2z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgPlan;","import * as React from \"react\";\nconst SvgPlay = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m0 14H8V4h12zM12 5.5v9l6-4.5z\" /></svg>;\nexport default SvgPlay;","import * as React from \"react\";\nconst SvgPlus = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z\" /></svg>;\nexport default SvgPlus;","import * as React from \"react\";\nconst SvgSearch = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14\" /></svg>;\nexport default SvgSearch;","import * as React from \"react\";\nconst SvgSellerSays = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={50} height={32} fill=\"none\" viewBox=\"0 0 50 32\" {...props}><rect width={38.4} height={5.527} x={5.527} y={2.618} fill=\"#FFE6CB\" rx={1.501} /><rect width={47.127} height={5.527} x={1.164} y={12.509} fill=\"#C7B299\" rx={1.501} /><rect width={38.4} height={5.527} x={5.527} y={22.4} fill=\"#006664\" rx={1.501} /><path fill=\"#006664\" d=\"M30.043 27.122a1.21 1.21 0 0 1 1.026-1.853h3.781a1.21 1.21 0 0 1 1.038 1.832l-1.849 3.082a1.21 1.21 0 0 1-2.063.02z\" /></svg>;\nexport default SvgSellerSays;","import * as React from \"react\";\nconst SvgSend = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"m4.01 6.03 7.51 3.22-7.52-1zm7.5 8.72L4 17.97v-2.22zM2.01 3 2 10l15 2-15 2 .01 7L23 12z\" /></svg>;\nexport default SvgSend;","import * as React from \"react\";\nconst SvgShare = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} viewBox=\"0 0 24 24\" {...props}><path fill=\"none\" d=\"M0 0h24v24H0z\" /><path d=\"m16 5-1.42 1.42-1.59-1.59V16h-1.98V4.83L9.42 6.42 8 5l4-4zm4 5v11c0 1.1-.9 2-2 2H6a2 2 0 0 1-2-2V10c0-1.11.89-2 2-2h3v2H6v11h12V10h-3V8h3a2 2 0 0 1 2 2\" /></svg>;\nexport default SvgShare;","import * as React from \"react\";\nconst SvgStarFilled = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\" /></svg>;\nexport default SvgStarFilled;","import * as React from \"react\";\nconst SvgStarOutline = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"m22 9.24-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28z\" /></svg>;\nexport default SvgStarOutline;","import * as React from \"react\";\nconst SvgTickDown = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={10} height={5} fill=\"none\" viewBox=\"0 0 10 5\" {...props}><path fill=\"current\" d=\"m0 0 5 5 5-5z\" /></svg>;\nexport default SvgTickDown;","import * as React from \"react\";\nconst SvgTrashcan = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} viewBox=\"0 0 24 24\" {...props}><path fill=\"current\" d=\"M6 21h12V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z\" /></svg>;\nexport default SvgTrashcan;","import * as Icons from 'assets/icons/icons';\nimport classNames from 'classnames';\nimport './icon.scss';\nimport { FC, HTMLAttributes } from 'react';\n\nexport type IconName = keyof typeof Icons;\n\nexport type Fill =\n | 'CurrentColor'\n | 'None'\n | 'var(--color-notification)'\n | 'var(--color-text-grey)'\n | 'var(--color-brand)'\n | 'var(--color-success)';\n\nexport interface IconProps extends HTMLAttributes<HTMLDivElement> {\n fill?: Fill;\n height?: number | 'auto';\n name: IconName;\n noWrapper?: boolean;\n width?: number | 'auto';\n}\n\nconst Icon: FC<IconProps> = ({\n className,\n name,\n height = 24,\n width = 24,\n fill = 'CurrentColor',\n noWrapper,\n ...rest\n}) => {\n const IconComponent = Icons[name];\n\n if (noWrapper) {\n return (\n <IconComponent className=\"icon\" fill={fill} height={height} preserveAspectRatio=\"xMidYMid meet\" width={width} />\n );\n }\n\n return (\n <div {...rest} className={classNames('icon-component', className)}>\n <IconComponent className=\"icon\" fill={fill} height={height} preserveAspectRatio=\"xMidYMid meet\" width={width} />\n </div>\n );\n};\n\nexport default Icon;\n","import './loader.scss';\n\nconst Loader = () => {\n return (\n <svg\n className=\"loader\"\n enableBackground=\"new 0 0 0 0\"\n fill=\"current\"\n id=\"L9\"\n stroke=\"current\"\n version=\"1.1\"\n viewBox=\"0 0 100 100\"\n x=\"0px\"\n xmlSpace=\"preserve\"\n xmlns=\"http://www.w3.org/2000/svg\"\n y=\"0px\"\n >\n <path\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n fill=\"current\"\n stroke=\"current\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n dur=\"1s\"\n from=\"0 50 50\"\n repeatCount=\"indefinite\"\n to=\"360 50 50\"\n type=\"rotate\"\n />\n </path>\n </svg>\n );\n};\n\nexport default Loader;\n","import './spinner.scss';\n\nexport const Spinner = () => {\n return (\n <svg\n className=\"spinner\"\n enableBackground=\"new 0 0 0 0\"\n fill=\"current\"\n id=\"L9\"\n stroke=\"current\"\n version=\"1.1\"\n viewBox=\"0 0 100 100\"\n x=\"0px\"\n xmlSpace=\"preserve\"\n xmlns=\"http://www.w3.org/2000/svg\"\n y=\"0px\"\n >\n <path\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n fill=\"current\"\n stroke=\"current\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n dur=\"1s\"\n from=\"0 50 50\"\n repeatCount=\"indefinite\"\n to=\"360 50 50\"\n type=\"rotate\"\n />\n </path>\n </svg>\n );\n};\n","import classNames from 'classnames';\nimport Typography, { TypographyProps } from 'components/atoms/typography/typography';\n\nimport './tag.scss';\nimport { FC } from 'react';\n\nconst Tag: FC<TypographyProps> = (props) => {\n const { children, className, ...rest } = props;\n return (\n <Typography className={classNames('tag-component', className)} {...rest} tagStyle=\"bodyMedium\">\n {children}\n </Typography>\n );\n};\n\nexport default Tag;\n","import classNames from 'classnames';\n\nimport './typography.global.scss';\nimport { ElementType, forwardRef, HTMLAttributes } from 'react';\n\ntype TypographyTags = 'span' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'p' | 'label' | 'small';\n\ntype TypographyStyles =\n | 'bodyLarge'\n | 'bodyMedium'\n | 'bodySmall'\n | 'bodyXSmall'\n | 'cta'\n | 'emphasize'\n | 'headlineLarge'\n | 'headlineMedium'\n | 'headlineSmall'\n | 'navigation'\n | 'display';\n\ntype TypographySubjectColors = 'error' | 'success' | 'primary' | 'gray' | 'white' | 'brand';\n\nexport interface TypographyProps extends HTMLAttributes<HTMLElement> {\n alignRight?: boolean;\n elipsis?: boolean;\n htmlFor?: string;\n subjectColor?: TypographySubjectColors;\n tag?: TypographyTags;\n tagStyle?: TypographyStyles;\n upperCase?: boolean;\n}\n\nconst Typography = forwardRef<HTMLElement, TypographyProps>(\n ({ children, tag = 'span', tagStyle, upperCase, subjectColor, className, elipsis, alignRight, ...props }, ref) => {\n const Tag: ElementType = tag;\n\n return (\n <Tag //@ts-ignore\n ref={ref}\n className={classNames(tagStyle, className, subjectColor, {\n 'align-right': alignRight,\n elipsis,\n uppercase: upperCase,\n })}\n {...props}\n >\n {children}\n </Tag>\n );\n },\n);\n\nTypography.displayName = 'Typography';\n\nexport default Typography;\n","const getVersion = (version: number) => {\n switch (version) {\n case 0:\n return {\n backgroundColor: '#EAEFE6',\n textColor: '#69785E',\n };\n case 1:\n return {\n backgroundColor: '#E0E6EB',\n textColor: '#2D3A46',\n };\n case 2:\n return {\n backgroundColor: '#E4E2F3',\n textColor: '#280F6D',\n };\n case 3:\n return {\n backgroundColor: '#E6DFEC',\n textColor: '#37364F',\n };\n case 4:\n return {\n backgroundColor: '#E2F4E8',\n textColor: '#363548',\n };\n case 5: {\n return {\n backgroundColor: '#E6EBEF',\n textColor: '#4D176E',\n };\n }\n case 6: {\n return {\n backgroundColor: '#EBE6EF',\n textColor: '#AB133E',\n };\n }\n case 7: {\n return {\n backgroundColor: '#E8DEF6',\n textColor: '#420790',\n };\n }\n case 8: {\n return { backgroundColor: '#D8E8F3', textColor: '#222A54' };\n }\n case 9: {\n return { backgroundColor: '#EBE0FE', textColor: '#EBE0FE' };\n }\n }\n};\n\nexport default getVersion;\n","import classNames from 'classnames';\nimport getVersion from 'utils/avatarVersions';\nimport './avatar.scss';\nimport { FC } from 'react';\n\nexport type AvatarVersion = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;\n\nexport interface AvatarProps {\n backgroundColor?: string;\n customVersion?: boolean;\n initials?: string;\n size?: 'lg' | 'sm' | 'xl';\n textColor?: string;\n version?: AvatarVersion;\n}\n\nconst Avatar: FC<AvatarProps> = ({ initials = '', customVersion, size, version = 1, backgroundColor, textColor }) => {\n const avatarVersion = getVersion(version);\n\n return (\n <div\n className={classNames('avatar', {\n 'avatar--extralarge': size === 'xl',\n 'avatar--large': size === 'lg',\n })}\n style={customVersion ? { backgroundColor: backgroundColor, color: textColor } : avatarVersion}\n >\n <span className=\"avatar__initials\">{initials}</span>\n </div>\n );\n};\n\nexport default Avatar;\n","import Icon from 'components/atoms/icon/icon';\nimport FileInput from 'components/molecules/file-input/file-input';\nimport { ComponentPropsWithoutRef, FC } from 'react';\nimport './chat-actions.scss';\nimport { isMobile, isTablet } from 'react-device-detect';\nimport { useMixPanel } from 'hooks/useMixPanel';\n\nexport interface FileInputInterface extends File {\n id: string;\n}\n\nexport interface ChatActionsProps extends ComponentPropsWithoutRef<'input'> {\n onFileUpload: (file: FileInputInterface) => void;\n}\n\nconst ChatActions: FC<ChatActionsProps> = ({ onFileUpload, ...rest }) => {\n const { track } = useMixPanel();\n const clickImageUpload = () => {\n track('Messages', { action: 'ATTACH-IMAGE' });\n };\n\n const clickFileUpload = () => {\n track('Messages', { action: 'ATTACH-FILE' });\n };\n\n return (\n <div className=\"chat-actions\">\n <FileInput\n accept=\"image/*\"\n className=\"chat-actions__icon\"\n id=\"image-input\"\n label={<Icon name=\"Image\" />}\n name=\"image-input\"\n onFileSelectError={(error) => console.log(error)}\n onFileSelectSuccess={(file) => onFileUpload(file)}\n onClick={clickImageUpload}\n {...rest}\n />\n <FileInput\n accept=\"application/msword, application/vnd.ms-excel, text/plain, application/pdf, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, message/rfc822, application/vnd.ms-outlook\"\n className=\"chat-actions__icon\"\n id=\"document-input\"\n label={<Icon name=\"Clip\" />}\n name=\"document-input\"\n onFileSelectError={(error) => console.log(error)}\n onFileSelectSuccess={(file) => onFileUpload(file)}\n onClick={clickFileUpload}\n {...rest}\n />\n {(isMobile || isTablet) && (\n <FileInput\n accept=\"image/*\"\n capture=\"environment\"\n className=\"chat-actions__icon chat-actions__icon--camera\"\n id=\"camera-input\"\n label={<Icon name=\"Camera\" />}\n name=\"camera-input\"\n onFileSelectError={(error) => console.log(error)}\n onFileSelectSuccess={(file) => onFileUpload(file)}\n {...rest}\n />\n )}\n </div>\n );\n};\n\nexport default ChatActions;\n","import classNames from 'classnames';\nimport Typography from 'components/atoms/typography/typography';\n\nimport './checkbox.scss';\nimport { forwardRef, HTMLAttributes, ReactNode } from 'react';\n\nexport interface CheckboxProps extends HTMLAttributes<HTMLInputElement> {\n checked?: boolean;\n disabled?: boolean;\n error?: boolean;\n label?: ReactNode;\n value?: string | number | readonly string[];\n}\n\nconst Checkbox = forwardRef<HTMLInputElement, CheckboxProps>((props, ref) => {\n const { value, checked, className, disabled, error, label, children, onChange, ...rest } = props;\n return (\n <div\n className={classNames('checkbox', className, {\n hasError: error,\n isChecked: checked,\n isDisabled: disabled,\n })}\n >\n <label className=\"label\">\n <input\n ref={ref}\n checked={checked}\n className=\"input\"\n onChange={(e) => onChange?.(e)}\n type=\"checkbox\"\n value={value}\n {...rest}\n />\n <div className=\"checkmark\" />\n {(label || children) && (\n <div className=\"text\">\n <Typography tagStyle=\"bodyMedium\">\n {label} {children}\n </Typography>\n </div>\n )}\n </label>\n </div>\n );\n});\n\nCheckbox.displayName = 'Checkbox';\n\nexport default Checkbox;\n","/**\n * @generated SignedSource<<dd96f4ce885b7e5f3d2235ef9dde3e51>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type contactCard_employee$data = {\n readonly employeePrimaryImageUrl: string | null | undefined;\n readonly firstName: string | null | undefined;\n readonly fullName: string | null | undefined;\n readonly lastName: string | null | undefined;\n readonly offerShop: {\n readonly address: string | null | undefined;\n readonly city: string | null | undefined;\n readonly name: string | null | undefined;\n readonly phone: string | null | undefined;\n } | null | undefined;\n readonly phone: string | null | undefined;\n readonly title: string | null | undefined;\n readonly \" $fragmentType\": \"contactCard_employee\";\n};\nexport type contactCard_employee$key = {\n readonly \" $data\"?: contactCard_employee$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"contactCard_employee\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"phone\",\n \"storageKey\": null\n};\nreturn {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"contactCard_employee\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"firstName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"fullName\",\n \"storageKey\": null\n },\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"employeePrimaryImageUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"title\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Shop\",\n \"kind\": \"LinkedField\",\n \"name\": \"offerShop\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n },\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"city\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"address\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Employee\",\n \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"0497032d96a38795200f4b7cee717d0d\";\n\nexport default node;\n","import { contactCard_employee$key } from '__generated__/contactCard_employee.graphql';\nimport Typography from 'components/atoms/typography/typography';\nimport Avatar from 'components/molecules/avatar/avatar';\nimport Block from 'components/utilities/block/block';\nimport { FC } from 'react';\nimport { graphql, useFragment } from 'react-relay';\nimport { getInitialsFromFullname } from 'tools/string-formatters';\nimport './contact-card.scss';\n\nexport interface ContactCardProps {\n fragment: contactCard_employee$key | null;\n}\n\nconst contactCardFragment = graphql`\n fragment contactCard_employee on Employee {\n lastName\n firstName\n fullName\n phone\n employeePrimaryImageUrl\n title\n offerShop {\n name\n phone\n city\n address\n }\n }\n`;\n\nconst ContactCard: FC<ContactCardProps> = (props) => {\n const data = useFragment(contactCardFragment, props.fragment);\n\n const initials = getInitialsFromFullname(\n `${data?.firstName ? data.firstName : ''} ${data?.lastName ? data.lastName : ''}`,\n );\n\n return (\n <Block backgroundColor=\"white\" boxShadow className=\"contact-card\">\n <Block>\n {data?.employeePrimaryImageUrl ? (\n <img className=\"contact-card__image\" src={data.employeePrimaryImageUrl} />\n ) : (\n <Avatar\n backgroundColor=\"var(--color-brand)\"\n customVersion\n initials={initials}\n size=\"xl\"\n textColor=\"var(--color-text-white)\"\n />\n )}\n </Block>\n <Block>\n <Block className=\"contact-card__name\">\n <Typography tag=\"h3\" tagStyle=\"headlineMedium\">\n {data?.fullName}\n </Typography>\n {data?.title && (\n <Typography subjectColor=\"gray\" tag=\"p\" tagStyle=\"bodySmall\">\n {data?.title}\n </Typography>\n )}\n </Block>\n <Block className=\"contact-card__address\">\n <Typography tag=\"p\" tagStyle=\"bodyMedium\">\n {data?.offerShop?.name || ''}, <br /> {data?.offerShop?.address || ''}, {data?.offerShop?.city || ''}\n </Typography>\n </Block>\n <Block className=\"contact-card__phone\">\n <Typography tag=\"p\" tagStyle=\"headlineMedium\">\n {data?.phone ? data.phone : data?.offerShop?.phone}\n </Typography>\n </Block>\n </Block>\n </Block>\n );\n};\n\nexport default ContactCard;\n","import classNames from 'classnames';\nimport Button from 'components/atoms/button/button';\nimport Typography from 'components/atoms/typography/typography';\nimport useOnClickOutside from 'hooks/use-on-click-outside';\nimport { Fragment, useRef, useState } from 'react';\nimport './custom-select.scss';\n\ninterface SelectOption {\n name: string;\n selected?: boolean;\n value: string;\n}\n\nexport interface CustomSelectProps {\n bigVersion?: boolean;\n disabled?: boolean;\n errorMessage?: string;\n label?: string;\n onChange: (option: SelectOption) => void;\n options?: SelectOption[];\n placeholder?: string;\n selectedOption?: SelectOption;\n}\n\nconst CustomSelect = (props: CustomSelectProps) => {\n const { bigVersion, options, label, placeholder, disabled, errorMessage, onChange, selectedOption } = props;\n\n const [isOpen, setIsOpen] = useState(false);\n const customSelectRef = useRef<HTMLDivElement>(null);\n\n useOnClickOutside(customSelectRef, () => setIsOpen(false));\n\n return (\n <Fragment>\n <div ref={customSelectRef} className={classNames('custom-select', { bigVersion, disabled })}>\n <Typography className=\"custom-select__label\" tag=\"label\" tagStyle=\"bodySmall\">\n {label}\n </Typography>\n <Button\n className={classNames('custom-select__value', {\n placeholder: !selectedOption,\n })}\n iconEnd=\"TickDown\"\n iconHeight={5}\n iconWidth={10}\n onClick={() => setIsOpen((prev) => !prev)}\n version=\"link\"\n >\n {selectedOption?.name || placeholder}\n </Button>\n\n {isOpen && (\n <div className=\"custom-select__options\">\n {options?.map((option) => (\n <Button\n key={option.value}\n className=\"custom-select__options--item\"\n onClick={() => {\n onChange(option);\n setIsOpen(false);\n }}\n version=\"link\"\n >\n {option.name}\n </Button>\n ))}\n </div>\n )}\n </div>\n {errorMessage && (\n <Typography subjectColor=\"error\" tag=\"span\" tagStyle=\"bodySmall\">\n *{errorMessage}\n </Typography>\n )}\n </Fragment>\n );\n};\n\nCustomSelect.displayName = 'CustomSelect';\n\nexport default CustomSelect;\n","import Icon from 'components/atoms/icon/icon';\nimport { format } from 'date-fns';\nimport da from 'date-fns/locale/da';\nimport {\n CaptionProps,\n DayPicker,\n DayPickerDefaultProps,\n DayPickerMultipleProps,\n DayPickerRangeProps,\n DayPickerSingleProps,\n useNavigation,\n} from 'react-day-picker';\nimport 'react-day-picker/dist/style.css';\nimport { FormattedMessage } from 'react-intl';\nimport './date-picker.scss';\nimport { FC } from 'react';\n\nexport type DatePickerProps =\n | DayPickerDefaultProps\n | DayPickerSingleProps\n | DayPickerMultipleProps\n | DayPickerRangeProps;\n\nconst DatePicker: FC<DatePickerProps> = (props) => {\n return (\n <DayPicker\n className=\"rdpModifier\"\n components={{\n Caption: CustomCaption,\n }}\n locale={da}\n modifiersClassNames={{\n outside: 'outside',\n today: 'today',\n }}\n {...props}\n />\n );\n};\n\nconst CustomCaption = (props: CaptionProps) => {\n const { goToMonth, nextMonth, previousMonth } = useNavigation();\n return (\n <div className=\"customCaption\">\n <button className=\"prevMonth\" disabled={!previousMonth} onClick={() => previousMonth && goToMonth(previousMonth)}>\n <span className=\"navButtonText\">\n <FormattedMessage defaultMessage=\"Previous\" id=\"Calendar.Previous\" />\n </span>\n <Icon name=\"ArrowLeft\" />\n </button>\n <h3>{format(props.displayMonth, 'MMMM yyy', { locale: da })}</h3>\n <button className=\"nextMonth\" disabled={!nextMonth} onClick={() => nextMonth && goToMonth(nextMonth)}>\n <span className=\"navButtonText\">\n <FormattedMessage defaultMessage=\"Next\" id=\"Calendar.Next\" />\n </span>\n <Icon name=\"ArrowRight\" />\n </button>\n </div>\n );\n};\n\nexport default DatePicker;\n","import * as Icons from 'assets/icons/icons';\nimport Icon from 'components/atoms/icon/icon';\nimport Typography from 'components/atoms/typography/typography';\nimport Block from 'components/utilities/block/block';\nimport { FC, ReactElement, ReactNode } from 'react';\nimport './empty-module.scss';\n\nexport interface EmptyModuleProps {\n iconName?: keyof typeof Icons;\n message: ReactNode;\n children?: ReactElement;\n}\n\nconst EmptyModule: FC<EmptyModuleProps> = (props) => {\n const { iconName = 'Files', message, children } = props;\n\n return (\n <Block backgroundColor=\"white\" borderRadius className=\"empty-module\" column flex>\n <Typography className=\"empty-module__text\" subjectColor=\"gray\" tagStyle=\"bodyLarge\">\n <Icon className=\"empty-module__icon\" height={48} name={iconName} width={48} />\n {message}\n </Typography>\n {children}\n </Block>\n );\n};\n\nexport default EmptyModule;\n","import classNames from 'classnames';\nimport Typography from 'components/atoms/typography/typography';\nimport { ChangeEvent, ComponentPropsWithoutRef, forwardRef, ReactElement, ReactNode } from 'react';\nimport { FileInputInterface } from 'components/molecules/chat-actions/chat-actions';\nimport './file-input.scss';\n\nexport interface FileInputProps extends ComponentPropsWithoutRef<'input'> {\n children?: ReactNode;\n label?: string | ReactElement;\n labelColor?: 'Link' | 'Secondary';\n onFileSelectError: (error: string) => void;\n onFileSelectSuccess: (file: FileInputInterface) => void;\n}\n\nconst FileInput = forwardRef<HTMLInputElement, FileInputProps>((props, ref) => {\n const { children, label, onFileSelectSuccess, onFileSelectError, labelColor = 'Link', className, ...rest } = props;\n\n //Todo: it should be possible to upload multiple files\n const handleFileInput = (e: ChangeEvent<HTMLInputElement>) => {\n const files = e.target.files;\n if (!files || files.length === 0) {\n return onFileSelectError('Somthing went wrong.');\n }\n const file = files[0] as FileInputInterface;\n file.id = Date.now().toString();\n onFileSelectSuccess(file);\n e.target.value = ''; // reset file input value\n };\n\n return (\n <div className={classNames('file-input', className)}>\n <input ref={ref} className=\"file-input-field\" type=\"file\" {...rest} onChange={handleFileInput} />\n {children ? (\n children\n ) : (\n <Typography\n className={classNames('file-input-label', {\n 'file-input-label__link': labelColor === 'Link',\n 'file-input-label__secondary': labelColor === 'Secondary',\n })}\n htmlFor={rest.id}\n tag=\"label\"\n tagStyle=\"bodyMedium\"\n >\n {label}\n </Typography>\n )}\n </div>\n );\n});\n\nFileInput.displayName = 'FileInput';\n\nexport default FileInput;\n","import Checkbox from 'components/molecules/checkbox/checkbox';\nimport { ComponentPropsWithoutRef, FC, useEffect, useRef } from 'react';\nimport './indeterminate-checkbox.scss';\n\nexport interface IndeterminateCheckboxProps extends ComponentPropsWithoutRef<'input'> {\n indeterminate?: boolean;\n}\n\nconst IndeterminateCheckbox: FC<IndeterminateCheckboxProps> = ({ indeterminate, ...rest }) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (typeof indeterminate === 'boolean' && inputRef.current) {\n inputRef.current.indeterminate = !rest.checked && indeterminate;\n }\n }, [inputRef, indeterminate, rest.checked]);\n\n return <Checkbox ref={inputRef} {...rest} />;\n};\n\nexport default IndeterminateCheckbox;\n","import classNames from 'classnames';\nimport Typography, { TypographyProps } from 'components/atoms/typography/typography';\nimport { ComponentPropsWithoutRef, forwardRef, Fragment, ReactNode, useEffect, useRef, useState } from 'react';\nimport { NumericFormat } from 'react-number-format';\nimport './input.scss';\n\nexport interface InputProps extends ComponentPropsWithoutRef<'input'> {\n bigVersion?: boolean;\n customPadding?: 'xs' | 'sm';\n errorMessage?: string;\n focusInput?: () => void;\n formattedInput?: boolean;\n hasError?: boolean;\n isFullWidth?: boolean;\n label?: ReactNode;\n labelTagStyle?: TypographyProps['tagStyle'];\n noBorder?: boolean;\n noFloatingLabel?: boolean;\n onValueChange?: (values: number) => void;\n readonly?: boolean;\n wrapperClassName?: string;\n onClick?: () => void;\n}\n\nconst Input = forwardRef<HTMLInputElement, InputProps>((props, ref) => {\n const {\n bigVersion,\n className,\n disabled,\n formattedInput,\n hasError,\n label,\n labelTagStyle = 'bodySmall',\n onValueChange,\n type,\n isFullWidth,\n noBorder,\n noFloatingLabel,\n customPadding,\n readonly,\n required,\n onChange,\n placeholder,\n focusInput,\n errorMessage,\n wrapperClassName,\n onClick,\n ...rest\n } = props;\n\n const [isFocused, setIsFocused] = useState(false);\n const [isLabelShown, setIsLabelShown] = useState(false);\n const inputWrap = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const value = (document.querySelector(`#${rest.name}`) as HTMLInputElement)?.value;\n if (value) {\n setIsLabelShown(true);\n }\n }, [rest.name]);\n\n return (\n <Fragment>\n <div\n className={classNames('input', wrapperClassName, {\n bigVersion,\n hasError: hasError || errorMessage,\n isDisabled: disabled,\n isFocused,\n isFullWidth,\n isLabelShown,\n noBorder,\n noFloatingLabel,\n 'padding-sm': customPadding === 'sm',\n 'padding-xs': customPadding === 'xs',\n })}\n onClick={() => {\n focusInput?.();\n onClick?.();\n }}\n >\n {label && (\n <Typography className=\"label\" htmlFor={rest.id} tag=\"label\" tagStyle={labelTagStyle}>\n {label}\n {required && <Typography subjectColor=\"error\">*</Typography>}\n </Typography>\n )}\n <div ref={inputWrap} className=\"inputWrap\">\n {formattedInput ? (\n <NumericFormat\n className=\"field\"\n decimalSeparator=\",\"\n max={rest.max}\n min={rest.min}\n onValueChange={(values) => onValueChange && values.floatValue && onValueChange(values.floatValue)}\n readOnly={readonly}\n thousandSeparator=\".\"\n value={rest.value as any}\n />\n ) : (\n <input\n className={classNames('field', className)}\n id={rest.name}\n readOnly={readonly}\n {...rest}\n ref={ref}\n onBlur={() => setIsFocused(false)}\n onChange={(e) => {\n e.target.value.length > 0 ? setIsLabelShown(true) : setIsLabelShown(false);\n {\n onChange?.(e);\n }\n }}\n onFocus={() => setIsFocused(true)}\n placeholder={placeholder}\n type={type || 'text'}\n />\n )}\n </div>\n </div>\n {errorMessage && (\n <Typography subjectColor=\"error\" tag=\"span\" tagStyle=\"bodyXSmall\">\n *{errorMessage}\n </Typography>\n )}\n </Fragment>\n );\n});\n\nInput.displayName = 'Input';\n\nexport default Input;\n","/**\n * @generated SignedSource<<235b5f4792fab9cb21130f4cc6fb2a6b>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type openHouseImageOverlay_baseCase$data = {\n readonly openHouse: ReadonlyArray<{\n readonly activityType: {\n readonly isRegistration: boolean | null | undefined;\n readonly nameOnTimeline: string | null | undefined;\n } | null | undefined;\n readonly isRegistred: boolean | null | undefined;\n readonly registrationDeadline: any | null | undefined;\n readonly startDate: any | null | undefined;\n } | null | undefined> | null | undefined;\n readonly \" $fragmentType\": \"openHouseImageOverlay_baseCase\";\n};\nexport type openHouseImageOverlay_baseCase$key = {\n readonly \" $data\"?: openHouseImageOverlay_baseCase$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"openHouseImageOverlay_baseCase\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"openHouseImageOverlay_baseCase\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"amount\",\n \"value\": 2\n }\n ],\n \"concreteType\": \"OpenHouse\",\n \"kind\": \"LinkedField\",\n \"name\": \"openHouse\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"registrationDeadline\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ActivityType\",\n \"kind\": \"LinkedField\",\n \"name\": \"activityType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"nameOnTimeline\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isRegistration\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"startDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isRegistred\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": \"openHouse(amount:2)\"\n }\n ],\n \"type\": \"BaseCase\",\n \"abstractKey\": \"__isBaseCase\"\n};\n\n(node as any).hash = \"f0d7a68cc879a08432258b8fba129d2e\";\n\nexport default node;\n","import {\n openHouseImageOverlay_baseCase$data,\n openHouseImageOverlay_baseCase$key,\n} from '__generated__/openHouseImageOverlay_baseCase.graphql';\nimport Button from 'components/atoms/button/button';\nimport Block from 'components/utilities/block/block';\nimport { useList } from 'hooks/useList';\nimport { FC } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useFragment } from 'react-relay';\nimport { formatDate } from 'tools/string-formatters';\nimport { isAfter } from 'date-fns';\n\ntype OpenHouseImageOverlayProps = {\n fragment: openHouseImageOverlay_baseCase$key;\n handleOnClickOpenHouseModal: () => void;\n};\n\nconst openHouseImageOverlayFragment = graphql`\n fragment openHouseImageOverlay_baseCase on BaseCase {\n openHouse(amount: 2) {\n registrationDeadline\n activityType {\n nameOnTimeline\n isRegistration\n }\n startDate\n isRegistred\n }\n }\n`;\n\ntype OpenHouse = NonNullable<openHouseImageOverlay_baseCase$data['openHouse']>[number];\nexport const OpenHouseImageOverlay: FC<OpenHouseImageOverlayProps> = (props) => {\n const data = useFragment(openHouseImageOverlayFragment, props.fragment);\n const openHouses = useList(data?.openHouse);\n\n const getOpenHouseText = (openHouse: OpenHouse) => {\n if (openHouse?.activityType?.isRegistration) {\n return `${openHouse?.activityType?.nameOnTimeline || ''}`;\n } else {\n return `${openHouse?.activityType?.nameOnTimeline || ''} d. ${formatDate(openHouse?.startDate)}`;\n }\n };\n\n const isRegistrationDeadlineAfterToday = (registrationDeadline: Date) => {\n if (!registrationDeadline) {\n return true;\n }\n\n const deadline = new Date(registrationDeadline);\n const today = new Date();\n\n return isAfter(deadline, today);\n };\n\n if (openHouses.length === 1) {\n const openHouse = openHouses[0];\n if (openHouse?.activityType?.isRegistration) {\n if (openHouse?.isRegistred) {\n return (\n <div className=\"match-hero-images__open-house\">\n <Block className=\"match-hero-images__open-house-button\" flex flexGutter=\"xs\">\n <h3 className={'overlay__text'}>{getOpenHouseText(openHouse)}</h3>\n <div className={'open-house-badge'}>\n <p>\n <FormattedMessage defaultMessage=\"Registered\" id=\"Match.Registered\" />\n </p>\n </div>\n </Block>\n </div>\n );\n } else {\n return (\n <div className=\"match-hero-images__open-house\">\n <Block className=\"match-hero-images__open-house-button\" flex flexGutter=\"xs\">\n <h3 className={'overlay__text'}>{getOpenHouseText(openHouse)}</h3>\n <Button\n onClick={props.handleOnClickOpenHouseModal}\n disabled={!isRegistrationDeadlineAfterToday(openHouse.registrationDeadline)}\n >\n <FormattedMessage defaultMessage=\"See more\" id=\"Match.OpenHouseClick\" />\n </Button>\n </Block>\n </div>\n );\n }\n } else {\n return (\n <div className=\"match-hero-images__open-house\">\n <Block className=\"match-hero-images__open-house-button\" flex flexGutter=\"xs\">\n <h3 className={'overlay__text'}>{getOpenHouseText(openHouse)}</h3>\n </Block>\n </div>\n );\n }\n } else {\n const openHouse = openHouses[0];\n return (\n <div className=\"match-hero-images__open-house\">\n <Block className=\"match-hero-images__open-house-button\" flex flexGutter=\"xs\">\n <h3 className={'overlay__text'}>{getOpenHouseText(openHouse)}</h3>\n <Button onClick={props.handleOnClickOpenHouseModal}>\n <FormattedMessage defaultMessage=\"See more\" id=\"Match.OpenHouseClick\" />\n </Button>\n </Block>\n </div>\n );\n }\n};\n","import classNames from 'classnames';\nimport Button, { ButtonProps } from 'components/atoms/button/button';\nimport Typography from 'components/atoms/typography/typography';\nimport Block from 'components/utilities/block/block';\nimport FocusTrap from 'focus-trap-react';\nimport { FC, KeyboardEvent, ReactNode, useEffect } from 'react';\nimport './modal.scss';\n\nexport interface ModalProps {\n buttonConfig?: {\n callback: () => void;\n disabled?: boolean;\n isFullWidth?: boolean;\n label: string;\n type?: 'button' | 'submit';\n version?: ButtonProps['version'];\n }[];\n children?: ReactNode;\n className?: string;\n closeHandler?: () => void;\n contentPadding?: boolean;\n focusTrapOptions?: FocusTrap.Props['focusTrapOptions'];\n headline?: ReactNode;\n showCross?: boolean;\n}\n\nconst Modal: FC<ModalProps> = (props) => {\n const {\n headline,\n showCross = true,\n children,\n className,\n focusTrapOptions,\n buttonConfig,\n closeHandler,\n contentPadding = true,\n } = props;\n\n useEffect(() => {\n document.body.classList.add('lock-scroll');\n\n return () => {\n document.body.classList.remove('lock-scroll');\n };\n }, []);\n\n const handleClosePopup = () => {\n document.body.classList.remove('lock-scroll');\n closeHandler?.();\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLImageElement>) => {\n if (event.key === 'Escape') {\n handleClosePopup();\n }\n };\n\n return (\n <FocusTrap focusTrapOptions={focusTrapOptions}>\n <div className={classNames('modal', className)} onKeyDown={handleKeyDown}>\n <div className=\"modal__container\" onClick={(e) => e.stopPropagation()}>\n <div className=\"modal__header\">\n {headline && (\n <div className=\"modal__header-title\">\n <Typography tag=\"h2\" tagStyle=\"headlineMedium\">\n {headline}\n </Typography>\n </div>\n )}\n {showCross && (\n <Button\n className=\"modal__close\"\n hideText\n iconStart=\"Cross\"\n onClick={handleClosePopup}\n padding={false}\n version=\"link\"\n >\n Close\n </Button>\n )}\n </div>\n <div className=\"modal__content\">\n {contentPadding && (\n <Block className=\"modal__content--block\" customPadding=\"xs\">\n {children}\n </Block>\n )}\n {!contentPadding && children}\n </div>\n {buttonConfig && (\n <div className=\"modal__footer\">\n <Block customPadding=\"xs\" flex flexGutter=\"xs\" flexWrap>\n {buttonConfig.map((button) => (\n <Button\n key={button.label}\n disabled={button.disabled}\n isFullWidth={button.isFullWidth}\n onClick={() => button.callback()}\n type={button.type}\n version={button.version}\n >\n {button.label}\n </Button>\n ))}\n </Block>\n </div>\n )}\n </div>\n </div>\n </FocusTrap>\n );\n};\n\nexport default Modal;\n","import Button from 'components/atoms/button/button';\nimport Typography from 'components/atoms/typography/typography';\nimport Block from 'components/utilities/block/block';\nimport Container from 'components/utilities/container/container';\nimport Row from 'components/utilities/row/row';\nimport { FormattedMessage } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\nimport './not-found.scss';\nimport { FC } from 'react';\n\ninterface NotFoundProps {\n reload?: boolean;\n}\n\nconst NotFound: FC<NotFoundProps> = (props) => {\n const navigate = useNavigate();\n\n const handleRetry = () => {\n // manually reload only when necesary (eg when the 404 is thrown by the error boundry)\n if (props.reload) {\n window.location.href = window.location.origin + '/';\n return;\n }\n navigate('/');\n };\n\n return (\n <Container>\n <Row>\n <div className=\"not-found\">\n <Block>\n <Typography className=\"not-found__headline\" subjectColor=\"gray\" tag=\"h1\" tagStyle=\"display\">\n 404\n </Typography>\n <Typography className=\"not-found__text\" subjectColor=\"gray\" tag=\"p\">\n <FormattedMessage defaultMessage=\"Oops! Something went wrong.\" id=\"404Page.SomethingWentWrong\" />\n <br />\n <FormattedMessage\n defaultMessage=\"Unfortunately, we cannot find the page you are looking for.\"\n id=\"404Page.PageNotFound\"\n />\n </Typography>\n <Button onClick={handleRetry}>\n <FormattedMessage defaultMessage=\"Go to overview\" id=\"404Page.ButtonText\" />\n </Button>\n </Block>\n </div>\n </Row>\n </Container>\n );\n};\n\nexport default NotFound;\n","import classNames from 'classnames';\nimport Button from 'components/atoms/button/button';\nimport FocusTrap from 'focus-trap-react';\nimport { FC, KeyboardEvent, ReactNode, useEffect } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport './popup-overlay.scss';\n\nexport interface PopupOverlayProps {\n children: ReactNode;\n className?: string;\n focusTrapOptions?: FocusTrap.Props['focusTrapOptions'];\n onClose: () => void;\n}\n\nconst PopupOverlay: FC<PopupOverlayProps> = (props) => {\n const { onClose, children, focusTrapOptions, className } = props;\n\n useEffect(() => {\n document.body.classList.add('lock-scroll');\n }, []);\n\n const handleClosePopup = () => {\n document.body.classList.remove('lock-scroll');\n onClose();\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLImageElement>) => {\n if (event.key === 'Escape') {\n handleClosePopup();\n }\n };\n\n return (\n <FocusTrap focusTrapOptions={focusTrapOptions}>\n <div className={classNames('popup-overlay', className)} onKeyDown={handleKeyDown}>\n <div className=\"popup-overlay__close\">\n <Button hideText iconHeight={32} iconStart=\"Cross\" iconWidth={32} onClick={handleClosePopup} version=\"link\">\n <FormattedMessage defaultMessage=\"Close\" id=\"Popup.close\" />\n </Button>\n </div>\n {children}\n </div>\n </FocusTrap>\n );\n};\n\nexport default PopupOverlay;\n","/**\n * @generated SignedSource<<6b796a5cca627a31b559298a0d28ce33>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type LeadStatusTypeEnum = \"ConvertedToCustomer\" | \"InProgress\" | \"MarkAsSpam\" | \"NotConvertedToCustomer\" | \"Processed\" | \"Recieved\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type leadListItemFragment$data = {\n readonly __typename: string;\n readonly caseAddress?: string | null | undefined;\n readonly caseZipAndCity?: string | null | undefined;\n readonly comment?: string | null | undefined;\n readonly email: string | null | undefined;\n readonly firstName: string | null | undefined;\n readonly id: string;\n readonly lastName: string | null | undefined;\n readonly openHouseStartTime?: string | null | undefined;\n readonly phoneNumber: string | null | undefined;\n readonly presentationDate?: any | null | undefined;\n readonly statusType: LeadStatusTypeEnum | null | undefined;\n readonly type: {\n readonly displayName: string | null | undefined;\n readonly id: string;\n } | null | undefined;\n readonly \" $fragmentSpreads\": FragmentRefs<\"leadDialogContent\">;\n readonly \" $fragmentType\": \"leadListItemFragment\";\n};\nexport type leadListItemFragment$key = {\n readonly \" $data\"?: leadListItemFragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"leadListItemFragment\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"comment\",\n \"storageKey\": null\n},\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseAddress\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseZipAndCity\",\n \"storageKey\": null\n};\nreturn {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"leadListItemFragment\",\n \"selections\": [\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v1/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"presentationDate\",\n \"storageKey\": null\n },\n (v2/*: any*/),\n (v3/*: any*/)\n ],\n \"type\": \"LeadPresentation\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"openHouseStartTime\",\n \"storageKey\": null\n },\n (v1/*: any*/),\n (v2/*: any*/),\n (v3/*: any*/)\n ],\n \"type\": \"LeadOpenHouse\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v1/*: any*/),\n (v2/*: any*/),\n (v3/*: any*/)\n ],\n \"type\": \"LeadSalesMaterialWithContact\",\n \"abstractKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"email\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"phoneNumber\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"firstName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"LeadTypeGraphType\",\n \"kind\": \"LinkedField\",\n \"name\": \"type\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"displayName\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"statusType\",\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"leadDialogContent\"\n }\n ],\n \"type\": \"LeadInterface\",\n \"abstractKey\": \"__isLeadInterface\"\n};\n})();\n\n(node as any).hash = \"48744c1a46b0e2efa46f3a0f48fec76d\";\n\nexport default node;\n","import { ReactNode } from 'react';\nimport './card.scss';\n\ntype CardProps = {\n title?: string | ReactNode;\n children: ReactNode;\n};\nexport const Card = ({ title, children }: CardProps) => {\n return (\n <div className={'card'}>\n {title && <div className={'card-title'}>{title}</div>}\n {children}\n </div>\n );\n};\n","import { Card } from 'components/molecules/card/card';\nimport { FormattedMessage } from 'react-intl';\nimport { formatDate, formatTime } from 'tools/string-formatters';\nimport Button from 'components/atoms/button/button';\nimport { graphql, useFragment } from 'react-relay';\nimport { leadListItemFragment$data, leadListItemFragment$key } from '__generated__/leadListItemFragment.graphql';\nimport { LeadStatusTypeEnum } from 'Enums';\n\ntype Props = {\n fragment: leadListItemFragment$key;\n handleOnClick?: (lead: Lead) => void;\n disabled?: boolean;\n};\n\nexport type Lead = NonNullable<leadListItemFragment$data>;\n\nconst leadListItemFragment = graphql`\n fragment leadListItemFragment on LeadInterface {\n id\n __typename\n ... on LeadPresentation {\n comment\n presentationDate\n caseAddress\n caseZipAndCity\n }\n ... on LeadOpenHouse {\n openHouseStartTime\n comment\n caseAddress\n caseZipAndCity\n }\n ... on LeadSalesMaterialWithContact {\n comment\n caseAddress\n caseZipAndCity\n }\n email\n phoneNumber\n firstName\n lastName\n type {\n id\n displayName\n }\n statusType\n ...leadDialogContent\n }\n`;\n\nexport const LeadListItem = ({ fragment, ...props }: Props) => {\n const lead = useFragment(leadListItemFragment, fragment);\n\n const handleOnClick = (lead: leadListItemFragment$data) => {\n if (props.handleOnClick) {\n props.handleOnClick(lead);\n }\n };\n return (\n <div key={lead.id}>\n <Card>\n <div>\n <h3>{lead.type?.displayName}</h3>\n </div>\n <div className={'info-section'}>\n <span>{lead.caseAddress}</span>\n <span>{lead.caseZipAndCity}</span>\n </div>\n <div className={'info-section'}>\n <span>\n <FormattedMessage defaultMessage={'Date'} id={'Default.Date'} />:\n </span>\n <span>\n {lead.presentationDate || lead.openHouseStartTime\n ? `${formatDate(lead.presentationDate || lead.openHouseStartTime)}, kl. ${formatTime(lead.presentationDate || lead.openHouseStartTime)}`\n : ' '}\n </span>\n </div>\n <div className={'info-section'}>\n <span>\n <FormattedMessage defaultMessage={'Info'} id={'Default.Info'} />:\n </span>\n <span>\n {lead.firstName} {lead.lastName}\n </span>\n <span>{lead.email}</span>\n <span>{lead.phoneNumber}</span>\n </div>\n {lead.comment && (\n <div className={'info-section'}>\n <span>\n <FormattedMessage defaultMessage={'Remarks'} id={'Default.Remarks'} />:\n </span>\n <span>{lead.comment}</span>\n </div>\n )}\n <Button\n isFullWidth\n onClick={() => handleOnClick(lead)}\n disabled={props.disabled || !props.handleOnClick}\n className=\"sales-card-button\"\n >\n <FormattedMessage\n id={'saleByOwner.handle'}\n defaultMessage={'{bool, select, true {Handle} false {Handled} other {Handle}}'}\n values={{ bool: lead.statusType === LeadStatusTypeEnum.Recieved }}\n />\n </Button>\n </Card>\n </div>\n );\n};\n","/**\n * @generated SignedSource<<42a31023c6498c41f9e6a565fc3a29f0>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nexport type LeadStatusTypeEnum = \"ConvertedToCustomer\" | \"InProgress\" | \"MarkAsSpam\" | \"NotConvertedToCustomer\" | \"Processed\" | \"Recieved\";\nexport type UpdateLeadInputType = {\n leadIdGlobal: string;\n statusType?: LeadStatusTypeEnum | null | undefined;\n};\nexport type saleByOwnerMutation$variables = {\n input: UpdateLeadInputType;\n};\nexport type saleByOwnerMutation$data = {\n readonly updateLead: {\n readonly errors: ReadonlyArray<{\n readonly message: string | null | undefined;\n } | null | undefined> | null | undefined;\n readonly updatedObject: {\n readonly id: string;\n readonly statusType: LeadStatusTypeEnum | null | undefined;\n } | null | undefined;\n } | null | undefined;\n};\nexport type saleByOwnerMutation = {\n response: saleByOwnerMutation$data;\n variables: saleByOwnerMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n],\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"message\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"statusType\",\n \"storageKey\": null\n},\nv4 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"saleByOwnerMutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"LeadInterfaceUpdatedPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"updateLead\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Error\",\n \"kind\": \"LinkedField\",\n \"name\": \"errors\",\n \"plural\": true,\n \"selections\": [\n (v2/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"updatedObject\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n (v4/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Mutation\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"saleByOwnerMutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"LeadInterfaceUpdatedPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"updateLead\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Error\",\n \"kind\": \"LinkedField\",\n \"name\": \"errors\",\n \"plural\": true,\n \"selections\": [\n (v2/*: any*/),\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"updatedObject\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n (v3/*: any*/),\n (v4/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"c637d28b3846fc311b23b5294aa4b84c\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"saleByOwnerMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation saleByOwnerMutation(\\n $input: UpdateLeadInputType!\\n) {\\n updateLead(input: $input) {\\n errors {\\n message\\n id\\n }\\n updatedObject {\\n __typename\\n statusType\\n id\\n }\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"bdcaa6efe5de3cf8b2c9d907fb72f078\";\n\nexport default node;\n","/**\n * @generated SignedSource<<1e727ff17607d601ad5de7ece115e25d>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type LeadStatusTypeEnum = \"ConvertedToCustomer\" | \"InProgress\" | \"MarkAsSpam\" | \"NotConvertedToCustomer\" | \"Processed\" | \"Recieved\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type saleByOwnerGridFragment$data = {\n readonly myPageLeads: ReadonlyArray<{\n readonly __typename: string;\n readonly id: string;\n readonly statusType: LeadStatusTypeEnum | null | undefined;\n readonly \" $fragmentSpreads\": FragmentRefs<\"leadDialogContent\" | \"leadListItemFragment\">;\n } | null | undefined> | null | undefined;\n readonly \" $fragmentSpreads\": FragmentRefs<\"leadDialogContentViewer\">;\n readonly \" $fragmentType\": \"saleByOwnerGridFragment\";\n};\nexport type saleByOwnerGridFragment$key = {\n readonly \" $data\"?: saleByOwnerGridFragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"saleByOwnerGridFragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"saleByOwnerGridFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"myPageLeads\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"statusType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"leadDialogContent\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"leadListItemFragment\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"leadDialogContentViewer\"\n }\n ],\n \"type\": \"Viewer\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"3e0c530d6809a37700d792b711fd438d\";\n\nexport default node;\n","/**\n * @generated SignedSource<<91f0956d065fa9a5724792ea77bb0807>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type leadDialogContent$data = {\n readonly __typename: string;\n readonly \" $fragmentSpreads\": FragmentRefs<\"leadContactDialogContentFragment\" | \"leadOpenHouseDialogContent\" | \"leadPresentationDialogContent\">;\n readonly \" $fragmentType\": \"leadDialogContent\";\n};\nexport type leadDialogContent$key = {\n readonly \" $data\"?: leadDialogContent$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"leadDialogContent\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"leadDialogContent\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"leadContactDialogContentFragment\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"leadPresentationDialogContent\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"leadOpenHouseDialogContent\"\n }\n ],\n \"type\": \"LeadInterface\",\n \"abstractKey\": \"__isLeadInterface\"\n};\n\n(node as any).hash = \"723777cb940ae0f527733610403de611\";\n\nexport default node;\n","/**\n * @generated SignedSource<<db0ccb457474a2993f83922373a474ba>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type leadDialogContentViewer$data = {\n readonly \" $fragmentSpreads\": FragmentRefs<\"leadOpenHouseDialogContentViewer\" | \"leadPresentationDialogContentViewer\">;\n readonly \" $fragmentType\": \"leadDialogContentViewer\";\n};\nexport type leadDialogContentViewer$key = {\n readonly \" $data\"?: leadDialogContentViewer$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"leadDialogContentViewer\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"leadDialogContentViewer\",\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"leadPresentationDialogContentViewer\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"leadOpenHouseDialogContentViewer\"\n }\n ],\n \"type\": \"Viewer\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"5987562b57362e4b0273da7fcbe78d3e\";\n\nexport default node;\n","/**\n * @generated SignedSource<<928bf47804aeb4964f90127d51c28575>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type leadPresentationDialogContent$data = {\n readonly __typename: string;\n readonly caseId?: string | null | undefined;\n readonly email?: string | null | undefined;\n readonly firstName?: string | null | undefined;\n readonly id: string;\n readonly lastName?: string | null | undefined;\n readonly phoneNumber?: string | null | undefined;\n readonly \" $fragmentType\": \"leadPresentationDialogContent\";\n};\nexport type leadPresentationDialogContent$key = {\n readonly \" $data\"?: leadPresentationDialogContent$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"leadPresentationDialogContent\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"leadPresentationDialogContent\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"firstName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"phoneNumber\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"email\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseId\",\n \"storageKey\": null\n }\n ],\n \"type\": \"LeadPresentation\",\n \"abstractKey\": null\n }\n ],\n \"type\": \"LeadInterface\",\n \"abstractKey\": \"__isLeadInterface\"\n};\n\n(node as any).hash = \"5c5db8aa9cdf49a566d184c7fd2bfd28\";\n\nexport default node;\n","/**\n * @generated SignedSource<<070eb81eb2110fd2fd125da720faa9a5>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type ActivityTypeCategoryEnum = \"BuyerAdvisorObjectionExtension\" | \"BuyerFinancialInstitutionObjectionExtension\" | \"CounselingCases\" | \"CreditAssessment\" | \"CustomerMeetings\" | \"DeedAvailableForSignatureExtension\" | \"DeedConditionalFinalSignatureExtension\" | \"DeedLatestSignatureExtension\" | \"DeedReportedToLandRegistrationExtension\" | \"Education\" | \"ExternalMeeting\" | \"FirstDepositDeadlineExtension\" | \"GuaranteeExtension\" | \"InternalMeeting\" | \"KeyCollection\" | \"Miscellaneous\" | \"OpenHouse\" | \"OpenHouseWithRegistration\" | \"PaidValuation\" | \"Private\" | \"ProcessClosingProtest\" | \"PurchaseAgreementMeetingBuyer\" | \"PurchaseAgreementMeetingSeller\" | \"RectifyCases\" | \"RiskAssessmentReview\" | \"SalesValuation\" | \"SecondDepositDeadlineExtension\" | \"SellerAdvisorObjectionExtension\" | \"SellerFinancialInstitutionObjectionExtension\" | \"Showcasing\" | \"SignedUpOpenHouse\" | \"StatusMeetingBuyer\" | \"StatusMeetingSeller\" | \"StatusReport\" | \"Transfer\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type leadPresentationDialogContentViewer$data = {\n readonly propertyForSaleByOwnerAppointmentActivityTypes: ReadonlyArray<{\n readonly category: ActivityTypeCategoryEnum | null | undefined;\n readonly id: string | null | undefined;\n } | null | undefined> | null | undefined;\n readonly \" $fragmentType\": \"leadPresentationDialogContentViewer\";\n};\nexport type leadPresentationDialogContentViewer$key = {\n readonly \" $data\"?: leadPresentationDialogContentViewer$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"leadPresentationDialogContentViewer\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"leadPresentationDialogContentViewer\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AppointmentActivityType\",\n \"kind\": \"LinkedField\",\n \"name\": \"propertyForSaleByOwnerAppointmentActivityTypes\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"category\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Viewer\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"c45e9b4d9675286821318f95d83fcca3\";\n\nexport default node;\n","export const updateStartEndTimeFromDate = (newDate: Date, start: Date, end: Date): { start: Date; end: Date } => {\n const startHours = start.getHours();\n const startMinutes = start.getMinutes();\n\n const endHours = end.getHours();\n const endMinutes = end.getMinutes();\n\n const newStartTime = new Date(newDate);\n newStartTime.setHours(startHours, startMinutes, 0, 0);\n\n const newEndTime = new Date(newDate);\n newEndTime.setHours(endHours, endMinutes, 0, 0);\n return { start: newStartTime, end: newEndTime };\n};\n","import { FormattedMessage } from 'react-intl';\nimport Button from 'components/atoms/button/button';\nimport { useUpdate } from 'hooks/relay/useUpdate';\nimport { saleByOwnerMutation } from 'components/molecules/sale-by-owner/sale-by-owner-mutation';\nimport DatePicker from 'components/molecules/date-picker/date-picker';\nimport { SelectSingleEventHandler } from 'react-day-picker';\nimport { ChangeEvent, useState } from 'react';\nimport { AppointmentTimePicker } from 'components/organisms/self-sale/components/appointment-timepicker';\nimport { add, set } from 'date-fns';\nimport { LeadStatusTypeEnum } from 'Enums';\nimport { chooseActivityModalCreate } from 'components/organisms/self-sale/choose-activity-modal';\nimport { graphql, useFragment } from 'react-relay';\nimport {\n leadPresentationDialogContent$data,\n leadPresentationDialogContent$key,\n} from '__generated__/leadPresentationDialogContent.graphql';\nimport { LeadInterface, LeadOpenHouse, LeadPresentation } from 'Types';\nimport { leadPresentationDialogContentViewer$key } from '__generated__/leadPresentationDialogContentViewer.graphql';\nimport { useList } from 'hooks/useList';\nimport { useMutation } from 'relay-hooks';\nimport {\n chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation,\n CreateAppointmentActivityInputType,\n} from '__generated__/chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation.graphql';\nimport { toast } from 'react-toastify';\nimport { updateStartEndTimeFromDate } from 'components/molecules/sale-by-owner/dialog/utils';\n\ntype Props = {\n onClose: () => void;\n fragment: leadPresentationDialogContent$key;\n viewerFragment: leadPresentationDialogContentViewer$key;\n};\n\nconst DEFAULT_DURATION_MINUTES = 60;\nconst TODAY = new Date();\n\nexport const LeadPresentationDialogContent = ({ onClose, fragment, viewerFragment }: Props) => {\n const lead = useFragment(\n graphql`\n fragment leadPresentationDialogContent on LeadInterface {\n id\n __typename\n ... on LeadPresentation {\n firstName\n lastName\n phoneNumber\n email\n caseId\n }\n }\n `,\n fragment,\n );\n const viewer = useFragment(\n graphql`\n fragment leadPresentationDialogContentViewer on Viewer {\n propertyForSaleByOwnerAppointmentActivityTypes {\n category\n id\n }\n }\n `,\n viewerFragment,\n );\n\n const [updateLead, { loading: updateLeadLoading }] = useUpdate(saleByOwnerMutation, {\n __typename: LeadInterface,\n });\n\n const [createActivity, { loading: createActivityLoading }] =\n useMutation<chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation>(chooseActivityModalCreate);\n\n const [selectedDate, setSelectedDate] = useState(TODAY);\n const [time, setTime] = useState({\n timeStart: TODAY,\n timeEnd: add(TODAY, { minutes: DEFAULT_DURATION_MINUTES }),\n });\n\n const propertyForSaleByOwnerAppointmentActivityTypes = useList(viewer.propertyForSaleByOwnerAppointmentActivityTypes);\n\n const handleProcessLead = async () => {\n const activity = getActivityId(lead);\n if (!activity || !activity.id) {\n return toast.error(\n <FormattedMessage id=\"Default.ErrorMessage\" defaultMessage=\"We are sorry, something went wrong\" />,\n );\n }\n\n if (!lead.caseId) {\n return toast.error(\n <FormattedMessage id=\"Default.ErrorMessage\" defaultMessage=\"We are sorry, something went wrong\" />,\n );\n }\n\n const { start, end } = updateStartEndTimeFromDate(selectedDate, time.timeStart, time.timeEnd);\n\n const input: CreateAppointmentActivityInputType = {\n activityTypeId: activity.id,\n startDatetime: start,\n endDatetime: end,\n caseId: lead.caseId ?? '',\n customer: {\n firstname: lead.firstName,\n lastname: lead.lastName,\n email: lead.email,\n phone: lead.phoneNumber,\n },\n };\n\n try {\n await createActivity({ variables: { input } });\n await updateLead({\n variables: {\n input: {\n leadIdGlobal: lead.id,\n statusType: LeadStatusTypeEnum.Processed,\n },\n },\n });\n onClose();\n } catch (e) {\n console.error(e);\n }\n };\n\n const getActivityId = (lead: leadPresentationDialogContent$data) => {\n return propertyForSaleByOwnerAppointmentActivityTypes?.find((activity) => {\n if (lead?.__typename === LeadOpenHouse) {\n return activity?.category === 'OpenHouse';\n } else if (lead?.__typename === LeadPresentation) {\n return activity?.category === 'Showcasing';\n }\n });\n };\n\n const changeDay = (date: Date) => {\n setSelectedDate(date);\n };\n\n const handleChangeTimeStart = (e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value.split(':');\n const timeStart = set(selectedDate, { hours: Number(value[0]), minutes: Number(value[1]), seconds: 0 });\n const timeEnd = add(timeStart, { minutes: DEFAULT_DURATION_MINUTES });\n setTime({ timeStart, timeEnd });\n };\n const handleChangeTimeEnd = (e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value.split(':');\n const timeEnd = set(selectedDate, { hours: Number(value[0]), minutes: Number(value[1]), seconds: 0 });\n setTime((prevState) => {\n return {\n ...prevState,\n timeEnd,\n };\n });\n };\n const handleBlurTimeStart = (_diff: number, _ms: number, e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value.split(':');\n const timeStart = set(selectedDate, { hours: Number(value[0]), minutes: Number(value[1]), seconds: 0 });\n const timeEnd = add(timeStart, { minutes: DEFAULT_DURATION_MINUTES });\n setTime({ timeStart, timeEnd });\n };\n const handleBlurTimeEnd = (_diff: number, _mr: number, e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value.split(':');\n const timeEnd = set(selectedDate, { hours: Number(value[0]), minutes: Number(value[1]), seconds: 0 });\n setTime((prevState) => {\n return {\n ...prevState,\n timeEnd,\n };\n });\n };\n\n return (\n <div>\n <h3>\n <FormattedMessage id={'LeadContactDialogContent.bookPresentation'} defaultMessage={'Book show casing'} />\n </h3>\n <hr />\n <div className=\"dialog-content-grid\">\n <div>\n <h4 className=\"dialog-date-picker-header\">\n <FormattedMessage id={'LeadContactDialogContent.pickADate'} defaultMessage={'Pick a Date'} />\n </h4>\n <DatePicker\n fromDate={new Date()}\n mode=\"single\"\n onSelect={changeDay as SelectSingleEventHandler}\n selected={selectedDate}\n />\n <br />\n <AppointmentTimePicker\n labelStart={<FormattedMessage defaultMessage=\"Start time:\" id=\"Default.StartTime\" />}\n labelEnd={<FormattedMessage defaultMessage=\"End time:\" id=\"endTime\" />}\n timeStart={time.timeStart}\n timeEnd={time.timeEnd}\n handleChangeTimeStart={handleChangeTimeStart}\n handleChangeTimeEnd={handleChangeTimeEnd}\n handleBlurTimeStart={handleBlurTimeStart}\n handleBlurTimeEnd={handleBlurTimeEnd}\n />\n </div>\n <div className=\"dialog-content-customer\">\n <h4>\n <FormattedMessage id={'LeadContactDialogContent.customerInfo'} defaultMessage={'Customer info'} />\n </h4>\n <div className=\"customer-info\">\n <p>{`${lead.firstName} ${lead.lastName}`}</p>\n <p>{lead.phoneNumber}</p>\n <p>{lead.email}</p>\n </div>\n </div>\n </div>\n <div className={'dialog-button'}>\n <Button onClick={handleProcessLead} disabled={createActivityLoading || updateLeadLoading}>\n {createActivityLoading || updateLeadLoading ? (\n <FormattedMessage id=\"Default.Saving\" defaultMessage=\"Saving\" />\n ) : (\n <FormattedMessage id={'LeadContactDialogContent.processLead'} defaultMessage={'Process lead'} />\n )}\n </Button>\n </div>\n </div>\n );\n};\n","/**\n * @generated SignedSource<<ef9eb7abd2b9d11ba290574e342b8a56>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type leadContactDialogContentFragment$data = {\n readonly email: string | null | undefined;\n readonly id: string;\n readonly phoneNumber: string | null | undefined;\n readonly \" $fragmentType\": \"leadContactDialogContentFragment\";\n};\nexport type leadContactDialogContentFragment$key = {\n readonly \" $data\"?: leadContactDialogContentFragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"leadContactDialogContentFragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"leadContactDialogContentFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"phoneNumber\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"email\",\n \"storageKey\": null\n }\n ],\n \"type\": \"LeadInterface\",\n \"abstractKey\": \"__isLeadInterface\"\n};\n\n(node as any).hash = \"1ca0929f77f28262fc0529a0130ef9b4\";\n\nexport default node;\n","import { FormattedMessage } from 'react-intl';\nimport Button from 'components/atoms/button/button';\nimport { LeadStatusTypeEnum } from 'Enums';\nimport { useUpdate } from 'hooks/relay/useUpdate';\nimport { saleByOwnerMutation } from 'components/molecules/sale-by-owner/sale-by-owner-mutation';\nimport { graphql, useFragment } from 'react-relay';\nimport { leadContactDialogContentFragment$key } from '__generated__/leadContactDialogContentFragment.graphql';\nimport { LeadInterface } from 'Types';\n\ntype Props = {\n fragment: leadContactDialogContentFragment$key;\n onClose: () => void;\n};\n\nconst leadContactDialogContentFragment = graphql`\n fragment leadContactDialogContentFragment on LeadInterface {\n id\n phoneNumber\n email\n }\n`;\n\nexport const LeadContactDialogContent = ({ fragment, onClose }: Props) => {\n const lead = useFragment(leadContactDialogContentFragment, fragment);\n const phoneNumber = lead.phoneNumber;\n const email = lead.email;\n\n const [updateLead, { loading: updateLeadLoading }] = useUpdate(saleByOwnerMutation, {\n __typename: LeadInterface,\n });\n\n const handleProcessLead = async () => {\n await updateLead({\n variables: {\n input: {\n leadIdGlobal: lead.id,\n statusType: LeadStatusTypeEnum.Processed,\n },\n },\n });\n onClose();\n };\n\n return (\n <div>\n <h3>\n <FormattedMessage id={'LeadContactDialogContent.contactBuyer'} defaultMessage={'Contact buyer'} />\n </h3>\n <p>\n <FormattedMessage\n id={'LeadContactDialogContent.contactWays'}\n defaultMessage={\n 'Choose a way to contact the buyer. When you have made contact with the buyer, you can end the lead by pressing the button.'\n }\n />\n </p>\n {phoneNumber && (\n <div>\n <p>\n <a href={'tel:' + phoneNumber}>\n <FormattedMessage id={'LeadContactDialogContent.call'} defaultMessage={'Call'} />: {phoneNumber}\n </a>\n </p>\n <p>\n <a href={'sms:' + phoneNumber}>\n <FormattedMessage id={'LeadContactDialogContent.sms'} defaultMessage={'Send sms'} />: {phoneNumber}\n </a>\n </p>\n </div>\n )}\n\n {email && (\n <p>\n <a href={'mailto:' + phoneNumber}>\n <FormattedMessage id={'LeadContactDialogContent.email'} defaultMessage={'Send email'} />: {email}\n </a>\n </p>\n )}\n <div className={'dialog-button'}>\n <Button onClick={handleProcessLead} disabled={updateLeadLoading}>\n {updateLeadLoading ? (\n <FormattedMessage id=\"Default.Saving\" defaultMessage=\"Saving\" />\n ) : (\n <FormattedMessage id={'LeadContactDialogContent.processLead'} defaultMessage={'Process lead'} />\n )}{' '}\n </Button>\n </div>\n </div>\n );\n};\n","/**\n * @generated SignedSource<<b89e7ade5f50dd6b67c24ec9b7fc3a08>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type leadOpenHouseDialogContent$data = {\n readonly __typename: string;\n readonly caseId?: string | null | undefined;\n readonly email?: string | null | undefined;\n readonly firstName?: string | null | undefined;\n readonly id: string;\n readonly lastName?: string | null | undefined;\n readonly openHouseStartTime?: string | null | undefined;\n readonly phoneNumber?: string | null | undefined;\n readonly \" $fragmentType\": \"leadOpenHouseDialogContent\";\n};\nexport type leadOpenHouseDialogContent$key = {\n readonly \" $data\"?: leadOpenHouseDialogContent$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"leadOpenHouseDialogContent\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"leadOpenHouseDialogContent\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"openHouseStartTime\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"firstName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"phoneNumber\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"email\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseId\",\n \"storageKey\": null\n }\n ],\n \"type\": \"LeadOpenHouse\",\n \"abstractKey\": null\n }\n ],\n \"type\": \"LeadInterface\",\n \"abstractKey\": \"__isLeadInterface\"\n};\n\n(node as any).hash = \"127f8c8c56f49da32e4e88674205894a\";\n\nexport default node;\n","/**\n * @generated SignedSource<<cee941d048ed3ad460e3c301166426ff>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type ActivityTypeCategoryEnum = \"BuyerAdvisorObjectionExtension\" | \"BuyerFinancialInstitutionObjectionExtension\" | \"CounselingCases\" | \"CreditAssessment\" | \"CustomerMeetings\" | \"DeedAvailableForSignatureExtension\" | \"DeedConditionalFinalSignatureExtension\" | \"DeedLatestSignatureExtension\" | \"DeedReportedToLandRegistrationExtension\" | \"Education\" | \"ExternalMeeting\" | \"FirstDepositDeadlineExtension\" | \"GuaranteeExtension\" | \"InternalMeeting\" | \"KeyCollection\" | \"Miscellaneous\" | \"OpenHouse\" | \"OpenHouseWithRegistration\" | \"PaidValuation\" | \"Private\" | \"ProcessClosingProtest\" | \"PurchaseAgreementMeetingBuyer\" | \"PurchaseAgreementMeetingSeller\" | \"RectifyCases\" | \"RiskAssessmentReview\" | \"SalesValuation\" | \"SecondDepositDeadlineExtension\" | \"SellerAdvisorObjectionExtension\" | \"SellerFinancialInstitutionObjectionExtension\" | \"Showcasing\" | \"SignedUpOpenHouse\" | \"StatusMeetingBuyer\" | \"StatusMeetingSeller\" | \"StatusReport\" | \"Transfer\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type leadOpenHouseDialogContentViewer$data = {\n readonly propertyForSaleByOwnerAppointmentActivityTypes: ReadonlyArray<{\n readonly category: ActivityTypeCategoryEnum | null | undefined;\n readonly id: string | null | undefined;\n } | null | undefined> | null | undefined;\n readonly \" $fragmentType\": \"leadOpenHouseDialogContentViewer\";\n};\nexport type leadOpenHouseDialogContentViewer$key = {\n readonly \" $data\"?: leadOpenHouseDialogContentViewer$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"leadOpenHouseDialogContentViewer\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"leadOpenHouseDialogContentViewer\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AppointmentActivityType\",\n \"kind\": \"LinkedField\",\n \"name\": \"propertyForSaleByOwnerAppointmentActivityTypes\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"category\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Viewer\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"e33504b87fe6164732bd5946a6cd776a\";\n\nexport default node;\n","import { FormattedMessage } from 'react-intl';\nimport Button from 'components/atoms/button/button';\nimport { useUpdate } from 'hooks/relay/useUpdate';\nimport { saleByOwnerMutation } from 'components/molecules/sale-by-owner/sale-by-owner-mutation';\nimport { LeadStatusTypeEnum } from 'Enums';\nimport { graphql, useFragment } from 'react-relay';\nimport {\n leadOpenHouseDialogContent$data,\n leadOpenHouseDialogContent$key,\n} from '__generated__/leadOpenHouseDialogContent.graphql';\nimport {\n chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation,\n CreateAppointmentActivityInputType,\n} from '__generated__/chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation.graphql';\nimport { toast } from 'react-toastify';\nimport { leadOpenHouseDialogContentViewer$key } from '__generated__/leadOpenHouseDialogContentViewer.graphql';\nimport { LeadInterface, LeadOpenHouse, LeadPresentation } from 'Types';\nimport { useList } from 'hooks/useList';\nimport { useMutation } from 'relay-hooks';\nimport { chooseActivityModalCreate } from 'components/organisms/self-sale/choose-activity-modal';\nimport { add } from 'date-fns';\n\ntype Props = {\n fragment: leadOpenHouseDialogContent$key;\n onClose: () => void;\n viewerFragment: leadOpenHouseDialogContentViewer$key;\n};\n\nexport const LeadOpenHouseDialogContent = ({ fragment, viewerFragment, onClose }: Props) => {\n const lead = useFragment(\n graphql`\n fragment leadOpenHouseDialogContent on LeadInterface {\n id\n __typename\n ... on LeadOpenHouse {\n openHouseStartTime\n firstName\n lastName\n phoneNumber\n email\n caseId\n }\n }\n `,\n fragment,\n );\n\n const viewer = useFragment(\n graphql`\n fragment leadOpenHouseDialogContentViewer on Viewer {\n propertyForSaleByOwnerAppointmentActivityTypes {\n category\n id\n }\n }\n `,\n viewerFragment,\n );\n const [createActivity, { loading: createActivityLoading }] =\n useMutation<chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation>(chooseActivityModalCreate);\n\n const [updateLead, { loading: updateLeadLoading }] = useUpdate(saleByOwnerMutation, {\n __typename: LeadInterface,\n });\n\n const propertyForSaleByOwnerAppointmentActivityTypes = useList(viewer.propertyForSaleByOwnerAppointmentActivityTypes);\n\n const getActivityId = (lead: leadOpenHouseDialogContent$data) => {\n return propertyForSaleByOwnerAppointmentActivityTypes?.find((activity) => {\n if (lead?.__typename === LeadOpenHouse) {\n return activity?.category === 'OpenHouse';\n } else if (lead?.__typename === LeadPresentation) {\n return activity?.category === 'Showcasing';\n }\n });\n };\n\n const handleProcessLead = async () => {\n const activity = getActivityId(lead);\n const startDate = lead.openHouseStartTime ? new Date(lead.openHouseStartTime) : new Date();\n if (!activity || !activity.id) {\n return toast.error(\n <FormattedMessage id=\"Default.ErrorMessage\" defaultMessage=\"We are sorry, something went wrong\" />,\n );\n }\n\n if (!lead.caseId) {\n return toast.error(\n <FormattedMessage id=\"Default.ErrorMessage\" defaultMessage=\"We are sorry, something went wrong\" />,\n );\n }\n\n const input: CreateAppointmentActivityInputType = {\n activityTypeId: activity.id,\n startDatetime: lead.openHouseStartTime,\n endDatetime: add(startDate, { hours: 1 }),\n caseId: lead.caseId,\n customer: {\n firstname: lead.firstName,\n lastname: lead.lastName,\n email: lead.email,\n phone: lead.phoneNumber,\n },\n };\n\n try {\n await createActivity({ variables: { input } });\n await updateLead({\n variables: {\n input: {\n leadIdGlobal: lead.id,\n statusType: LeadStatusTypeEnum.Processed,\n },\n },\n });\n onClose();\n } catch (e) {\n console.error(e);\n toast.error(<FormattedMessage id=\"Default.ErrorMessage\" defaultMessage=\"We are sorry, something went wrong\" />);\n }\n };\n\n return (\n <div>\n <h3>\n <FormattedMessage id={'LeadContactDialogContent.openHouse'} defaultMessage={'Register to open house'} />\n </h3>\n <p>\n <FormattedMessage\n id={'LeadContactDialogContent.acceptOpenHouseSubmission'}\n defaultMessage={'Click on end lead to confirm that the buyer is registered for the open house'}\n />\n </p>\n <div className={'dialog-button'}>\n <Button onClick={handleProcessLead} disabled={createActivityLoading || updateLeadLoading}>\n {createActivityLoading || updateLeadLoading ? (\n <FormattedMessage id=\"Default.Saving\" defaultMessage=\"Saving\" />\n ) : (\n <FormattedMessage id={'LeadContactDialogContent.processLead'} defaultMessage={'Process lead'} />\n )}\n </Button>\n </div>\n </div>\n );\n};\n","import { LeadOpenHouse, LeadPresentation, LeadSalesMaterialWithContact } from 'Types';\nimport { LeadPresentationDialogContent } from 'components/molecules/sale-by-owner/dialog/lead-presentation-dialog-content';\nimport { LeadContactDialogContent } from 'components/molecules/sale-by-owner/dialog/lead-contact-dialog-content';\nimport { FormattedMessage } from 'react-intl';\nimport { LeadOpenHouseDialogContent } from 'components/molecules/sale-by-owner/dialog/lead-open-house-dialog-content';\nimport { graphql, useFragment } from 'react-relay';\nimport { leadDialogContent$key } from '__generated__/leadDialogContent.graphql';\nimport { leadDialogContentViewer$key } from '__generated__/leadDialogContentViewer.graphql';\n\ntype Props = {\n fragment: leadDialogContent$key;\n handleOnClose: () => void;\n viewerFragment: leadDialogContentViewer$key;\n};\n\nexport const LeadDialogContent = ({ fragment, handleOnClose, viewerFragment }: Props) => {\n const lead = useFragment(\n graphql`\n fragment leadDialogContent on LeadInterface {\n __typename\n ...leadContactDialogContentFragment\n ...leadPresentationDialogContent\n ...leadOpenHouseDialogContent\n }\n `,\n fragment,\n );\n\n const viewer = useFragment(\n graphql`\n fragment leadDialogContentViewer on Viewer {\n ...leadPresentationDialogContentViewer\n ...leadOpenHouseDialogContentViewer\n }\n `,\n viewerFragment,\n );\n\n switch (lead?.__typename) {\n case LeadOpenHouse:\n return <LeadOpenHouseDialogContent fragment={lead} onClose={handleOnClose} viewerFragment={viewer} />;\n case LeadPresentation:\n return <LeadPresentationDialogContent fragment={lead} onClose={handleOnClose} viewerFragment={viewer} />;\n case LeadSalesMaterialWithContact:\n return <LeadContactDialogContent fragment={lead} onClose={handleOnClose} />;\n default:\n return (\n <div>\n <h4>\n <FormattedMessage\n id={'saleByOwner.unknownLeadType'}\n defaultMessage={'An error has occurred, this lead type is unknown. Contact your employed broker'}\n />\n </h4>\n </div>\n );\n }\n};\n","import { graphql, useFragment } from 'react-relay';\nimport { saleByOwnerGridFragment$key } from '__generated__/saleByOwnerGridFragment.graphql';\nimport Block from 'components/utilities/block/block';\nimport Row from 'components/utilities/row/row';\nimport Column from 'components/utilities/column/column';\nimport Typography from 'components/atoms/typography/typography';\nimport { FormattedMessage } from 'react-intl';\nimport './sale-by-owner.scss';\nimport { useList } from 'hooks/useList';\nimport { FC, Fragment, useMemo, useState } from 'react';\nimport { SimpleModal } from 'components/molecules/simple-modal/simple-modal';\nimport useToggle from 'hooks/useToggle';\nimport Icon from 'components/atoms/icon/icon';\nimport { Lead, LeadListItem } from 'components/molecules/sale-by-owner/lead-list-item';\nimport { LeadDialogContent } from 'components/molecules/sale-by-owner/dialog/lead-dialog-content';\nimport EmptyModule from '../empty-module/empty-module';\nimport { LeadStatusTypeEnum } from 'Enums';\n\ntype Props = {\n viewerFragment: saleByOwnerGridFragment$key;\n maxAmountDisplayed?: number;\n};\n\nconst saleByOwnerGridFragment = graphql`\n fragment saleByOwnerGridFragment on Viewer {\n myPageLeads {\n statusType\n id\n __typename\n ...leadDialogContent\n ...leadListItemFragment\n }\n ...leadDialogContentViewer\n }\n`;\n\nexport const SaleByOwnerGrid: FC<Props> = ({ maxAmountDisplayed, viewerFragment }) => {\n const data = useFragment(saleByOwnerGridFragment, viewerFragment);\n const mypageLeads = useList(data.myPageLeads ?? []);\n const [isModalOpen, toggleIsModalOpen] = useToggle();\n const [selectedLead, setSelectedLead] = useState<Lead | null>(null);\n\n const leads = useMemo(() => {\n const filteredLeads = mypageLeads.filter((lead) => lead.statusType === LeadStatusTypeEnum.Recieved);\n if (maxAmountDisplayed) {\n return filteredLeads.slice(0, maxAmountDisplayed);\n } else {\n return filteredLeads;\n }\n }, [maxAmountDisplayed, mypageLeads]);\n\n const handleOnClick = (lead: Lead) => {\n toggleIsModalOpen();\n setSelectedLead(lead);\n };\n\n const handleOnClose = () => {\n toggleIsModalOpen();\n };\n\n return (\n <Fragment>\n <Block className=\"match-cards-list\">\n <Row>\n <Column>\n <Typography className=\"match-cards-list__heading\" tag=\"h2\" tagStyle=\"headlineMedium\">\n <FormattedMessage\n defaultMessage={'Your leads ({count})'}\n id={'saleByOwner.leads'}\n values={{ count: leads.length }}\n />\n </Typography>\n </Column>\n </Row>\n {leads.length > 0 ? (\n <div className={'grid'}>\n {leads.map((lead) => (\n <LeadListItem key={lead.id} fragment={lead} handleOnClick={handleOnClick} />\n ))}\n </div>\n ) : (\n <EmptyModule\n iconName=\"Lead\"\n message={\n <FormattedMessage\n defaultMessage=\"You have no leads awaiting processing\"\n id=\"saleByOwner.NoLeadsAwaiting\"\n />\n }\n />\n )}\n </Block>\n {isModalOpen && selectedLead && (\n <SimpleModal onClose={handleOnClose}>\n <div className={'dialog-container'}>\n <div className={'dialog-icon-wrapper'}>\n <Icon name={'Home'} className={'dialog-icon'} />\n </div>\n <div className={'dialog-content'}>\n <LeadDialogContent fragment={selectedLead} handleOnClose={handleOnClose} viewerFragment={data} />\n </div>\n </div>\n </SimpleModal>\n )}\n </Fragment>\n );\n};\n","import classNames from 'classnames';\nimport Typography from 'components/atoms/typography/typography';\nimport { ComponentPropsWithoutRef, Fragment, forwardRef, useEffect, useState } from 'react';\nimport './select.scss';\n\nexport interface SelectOption {\n name: string;\n selected?: boolean;\n value: string;\n}\nexport interface SelectProps extends ComponentPropsWithoutRef<'select'> {\n bigVersion?: boolean;\n errorMessage?: string;\n label?: string;\n noFloatingLabel?: boolean;\n options?: SelectOption[];\n placeholder?: string;\n}\n\nconst Select = forwardRef<HTMLSelectElement, SelectProps>((props, ref) => {\n const {\n bigVersion,\n className,\n disabled,\n errorMessage,\n label,\n placeholder,\n required = false,\n name,\n noFloatingLabel,\n onBlur,\n onChange,\n onFocus,\n options,\n ...rest\n } = props;\n const [selected, setSelected] = useState(() => options?.find((option) => option.selected)?.value);\n const [isLabelShown, setIsLabelShown] = useState(false);\n const [isPlaceholderSelected, setIsPlaceholderSelected] = useState(!selected);\n\n useEffect(() => {\n const value = (document.querySelector(`#${name}`) as HTMLSelectElement)?.value;\n if (value) {\n setIsLabelShown(true);\n setIsPlaceholderSelected(false);\n }\n }, [name]);\n\n return (\n <Fragment>\n <div\n className={classNames('select', {\n bigVersion,\n className,\n hasError: !!errorMessage,\n isDisabled: disabled,\n isLabelShown,\n noFloatingLabel,\n })}\n >\n {label && (\n <Typography className=\"label\" htmlFor={rest.id} tag=\"label\" tagStyle=\"bodySmall\">\n {label}\n </Typography>\n )}\n <select\n {...rest}\n ref={ref}\n className={classNames('select__field field', {\n select__placeholder: isPlaceholderSelected,\n })}\n defaultValue={selected}\n id={name}\n name={name}\n onBlur={onBlur}\n onChange={(event) => {\n event.target.value.length > 0 ? setIsLabelShown(true) : setIsLabelShown(false);\n setSelected(event.currentTarget.value);\n setIsPlaceholderSelected(false);\n onChange?.(event);\n }}\n onFocus={onFocus}\n required={required}\n >\n {placeholder && (\n <option className=\"select__placeholder\" disabled selected value=\"\">\n {placeholder}\n </option>\n )}\n {options?.map((option) => (\n <option key={option.value} className=\"option\" value={option.value}>\n {option.name}\n </option>\n ))}\n </select>\n </div>\n {errorMessage && (\n <Typography subjectColor=\"error\" tag=\"span\" tagStyle=\"bodyXSmall\">\n *{errorMessage}\n </Typography>\n )}\n </Fragment>\n );\n});\n\nSelect.displayName = 'Select';\n\nexport default Select;\n","import { FC, Fragment, ReactNode, useEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport './simple-modal.scss';\nimport Icon from 'components/atoms/icon/icon';\nimport useOnClickOutside from 'hooks/use-on-click-outside';\n\ntype ModalProps = {\n children: ReactNode;\n onClose: () => void;\n disableClickOutside?: boolean;\n};\n\nexport const SimpleModal: FC<ModalProps> = ({ children, onClose, disableClickOutside = false }) => {\n const customSelectRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleEsc = (event: KeyboardEvent) => {\n if (event.code === 'Escape') {\n onClose();\n }\n };\n\n document.body.classList.add('lock-scroll');\n window.addEventListener('keydown', handleEsc);\n\n return () => {\n document.body.classList.remove('lock-scroll');\n window.removeEventListener('keydown', handleEsc);\n };\n }, [onClose]);\n\n useOnClickOutside(customSelectRef, onClose);\n\n return (\n <Fragment>\n {createPortal(\n <div className=\"modal-bg\">\n <div className=\"modal-container\" ref={disableClickOutside ? null : customSelectRef}>\n <button className=\"modal-button\" onClick={onClose}>\n <Icon name={'Cross'} />\n </button>\n {children}\n </div>\n </div>,\n document.body,\n )}\n </Fragment>\n );\n};\n","import classNames from 'classnames';\nimport Typography from 'components/atoms/typography/typography';\nimport { forwardRef, Fragment, ReactNode, useEffect, useState } from 'react';\nimport ReactTextareaAutosize, { TextareaAutosizeProps } from 'react-textarea-autosize';\nimport './textarea.scss';\n\nexport interface TextareaProps extends TextareaAutosizeProps {\n autoExpand?: boolean;\n children?: ReactNode;\n classNameInput?: string;\n errorMessage?: string;\n focusInput?: () => void;\n isFullWidth?: boolean;\n label?: string;\n maxLength?: number;\n noBorder?: boolean;\n noFloatingLabel?: boolean;\n onClick?: () => void;\n}\n\nconst Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>((props, ref) => {\n const {\n autoExpand,\n className,\n disabled,\n errorMessage,\n label,\n isFullWidth,\n classNameInput,\n children,\n focusInput,\n noFloatingLabel,\n noBorder,\n onKeyUp,\n onClick,\n ...rest\n } = props;\n\n const [isLabelShown, setIsLabelShown] = useState(false);\n\n useEffect(() => {\n const value = (document.querySelector(`#${rest.name}`) as HTMLTextAreaElement)?.value;\n if (value || rest.value) {\n setIsLabelShown(true);\n }\n }, [rest.name, rest.value]);\n\n return (\n <Fragment>\n <div\n className={classNames('textarea', className, {\n hasError: errorMessage,\n isDisabled: disabled,\n isFullWidth,\n isLabelShown,\n noBorder,\n noFloatingLabel,\n })}\n >\n {label && (\n <Typography className=\"label\" htmlFor={rest.id} tag=\"label\" tagStyle=\"bodySmall\">\n {label}\n </Typography>\n )}\n <div className=\"inputWrap\">\n <ReactTextareaAutosize\n className={classNames('field p', classNameInput, {\n hasError: !!errorMessage,\n 'is-autoexpand': autoExpand,\n })}\n {...rest}\n ref={ref}\n id={rest.name}\n onChange={(e) => {\n e.target.value.length > 0 ? setIsLabelShown(true) : setIsLabelShown(false);\n }}\n onClick={() => {\n onClick?.();\n focusInput?.();\n }}\n onKeyUp={onKeyUp}\n />\n {children}\n </div>\n </div>\n {errorMessage && (\n <Typography subjectColor=\"error\" tag=\"span\" tagStyle=\"bodyXSmall\">\n *{errorMessage}\n </Typography>\n )}\n </Fragment>\n );\n});\n\nTextarea.displayName = 'Textarea';\nexport default Textarea;\n","/**\n * @generated SignedSource<<4a083b7784700c8e764692b4ab70340d>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type BusinessPropertyType = \"Cattle\" | \"Cellar\" | \"Clinic\" | \"Crop\" | \"FarmLand\" | \"ForestProperty\" | \"FreeLand\" | \"Garage\" | \"HotelOrRestaurant\" | \"HousingAndBusiness\" | \"HousingCooperative\" | \"Investment\" | \"Liberal\" | \"MinkAndFurAnimals\" | \"Office\" | \"Parking\" | \"Pigs\" | \"Plot\" | \"PoultryProduction\" | \"ProductionFacility\" | \"ShoppingCenter\" | \"Showroom\" | \"SpecialProduction\" | \"Store\" | \"WareHouse\" | \"WareHouseAndProduction\" | \"Workshop\";\nexport type PropertyType = \"AllYearRoundPlot\" | \"AllotmentHut\" | \"AllotmentPlot\" | \"Condo\" | \"FarmHouseAgriculture\" | \"FormerFarm\" | \"FreeLand\" | \"HobbyAgriculture\" | \"HousingCooperative\" | \"IdeelAnpartCondo\" | \"IdeelAnpartTerracedHouse\" | \"IdeelAnpartVilla\" | \"Liebhaveri\" | \"MixedHousingAndBusiness\" | \"PartnershipOrLimitedPartnershipCondo\" | \"PartnershipOrLimitedPartnershipTerracedHouse\" | \"PartnershipOrLimitedPartnershipVilla\" | \"TerracedHouse\" | \"TerracedHouseWithCondoStatus\" | \"TwoFamilyProperty\" | \"VacationCondo\" | \"VacationHousing\" | \"VacationPlot\" | \"Villa\" | \"VillaApartment\" | \"VillaWithCondoStatus\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type contactModuleOffmarket_offmarketCase$data = {\n readonly businessPropertyType: BusinessPropertyType | null | undefined;\n readonly caseDescriptionHeading: string | null | undefined;\n readonly caseId: string;\n readonly id: string;\n readonly mainOfferEmployees: ReadonlyArray<{\n readonly employee: {\n readonly fullName: string | null | undefined;\n readonly id: string;\n readonly \" $fragmentSpreads\": FragmentRefs<\"contactCard_employee\">;\n } | null | undefined;\n } | null | undefined> | null | undefined;\n readonly propertyType: PropertyType | null | undefined;\n readonly \" $fragmentType\": \"contactModuleOffmarket_offmarketCase\";\n};\nexport type contactModuleOffmarket_offmarketCase$key = {\n readonly \" $data\"?: contactModuleOffmarket_offmarketCase$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"contactModuleOffmarket_offmarketCase\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n};\nreturn {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"contactModuleOffmarket_offmarketCase\",\n \"selections\": [\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseId\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseDescriptionHeading\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"propertyType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"businessPropertyType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"EmployeeOffer\",\n \"kind\": \"LinkedField\",\n \"name\": \"mainOfferEmployees\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Employee\",\n \"kind\": \"LinkedField\",\n \"name\": \"employee\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"fullName\",\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"contactCard_employee\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"OffmarketCase\",\n \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"df2a6e123d3a71af039b31d49dab7bb6\";\n\nexport default node;\n","import { contactModuleOffmarket_offmarketCase$key } from '__generated__/contactModuleOffmarket_offmarketCase.graphql';\nimport Button from 'components/atoms/button/button';\nimport Typography from 'components/atoms/typography/typography';\nimport ContactCard from 'components/molecules/contact-card/contact-card';\nimport { SelectOption } from 'components/molecules/select/select';\nimport Block from 'components/utilities/block/block';\nimport Column from 'components/utilities/column/column';\nimport Container from 'components/utilities/container/container';\nimport Row from 'components/utilities/row/row';\nimport { useList } from 'hooks/useList';\nimport { usePropertyType } from 'hooks/usePropertyCategories';\nimport { FC, Fragment, useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useFragment } from 'react-relay';\nimport ContactSellerModal from '../contact-seller-modal/contact-seller-modal';\nimport './contact-module.scss';\n\nexport interface ContactModuleOffmarketProps {\n fragment: contactModuleOffmarket_offmarketCase$key | null | undefined;\n}\n\nconst contactModuleOffmarketFragment = graphql`\n fragment contactModuleOffmarket_offmarketCase on OffmarketCase {\n id\n caseId\n caseDescriptionHeading\n propertyType\n businessPropertyType\n mainOfferEmployees {\n employee {\n id\n fullName\n ...contactCard_employee\n }\n }\n }\n`;\n\nconst ContactModuleOffmarket: FC<ContactModuleOffmarketProps> = (props) => {\n const data = useFragment(contactModuleOffmarketFragment, props.fragment || null);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const formatPropertyType = usePropertyType();\n\n const employeeOffers = useList(data?.mainOfferEmployees);\n const employee = employeeOffers?.[0]?.employee;\n const propertyType = formatPropertyType(data?.propertyType || data?.businessPropertyType || '');\n\n if (!employee) {\n return <Fragment />;\n }\n\n const getRecipientOptions = () => {\n const recipients: SelectOption[] = [];\n\n employeeOffers.forEach((item) => {\n recipients.push({\n name: item?.employee?.fullName || '',\n value: item?.employee?.id || '',\n });\n });\n\n return recipients;\n };\n\n return (\n <Container className=\"contact-module\">\n <Row alignCenter className=\"contact-module-wrapper\" spaceBetween>\n <Column width={{ tablet: 4 }}>\n <ContactCard fragment={employee} />\n </Column>\n\n <Column width={{ tablet: 3 }}>\n <Block className=\"contact-module-text\">\n <Typography tag=\"h2\" tagStyle=\"headlineMedium\">\n <FormattedMessage defaultMessage=\"Contact us\" id=\"ContactModule.Title\" />\n </Typography>\n\n <Typography tag=\"p\" tagStyle=\"bodyMedium\">\n <FormattedMessage\n defaultMessage=\"Do you have questions or would you like to know more about this property? Send us a message.\"\n id=\"ContactModule.Paragraph\"\n />\n </Typography>\n </Block>\n\n <Button onClick={() => setIsModalOpen(true)}>\n <FormattedMessage defaultMessage=\"Contact broker\" id=\"ContactModule.CTA\" />\n </Button>\n </Column>\n </Row>\n <ContactSellerModal\n caseOptions={[\n {\n name: data?.caseDescriptionHeading || propertyType || '',\n selected: true,\n value: data?.caseId || '',\n },\n ]}\n isOpen={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n recipientOptions={getRecipientOptions()}\n />\n </Container>\n );\n};\n\nexport default ContactModuleOffmarket;\n","/**\n * @generated SignedSource<<04e2807d5a6fcc97b9d2a7e1421be7f6>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type contactModule_baseCase$data = {\n readonly address: string | null | undefined;\n readonly baseCaseMainOffer: {\n readonly employeeOffer: ReadonlyArray<{\n readonly employee: {\n readonly fullName: string | null | undefined;\n readonly id: string;\n readonly offerShop: {\n readonly name: string | null | undefined;\n } | null | undefined;\n readonly \" $fragmentSpreads\": FragmentRefs<\"contactCard_employee\">;\n } | null | undefined;\n } | null | undefined> | null | undefined;\n } | null | undefined;\n readonly id: string;\n readonly \" $fragmentType\": \"contactModule_baseCase\";\n};\nexport type contactModule_baseCase$key = {\n readonly \" $data\"?: contactModule_baseCase$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"contactModule_baseCase\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n};\nreturn {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"contactModule_baseCase\",\n \"selections\": [\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"address\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"BaseCaseMainOffer\",\n \"kind\": \"LinkedField\",\n \"name\": \"baseCaseMainOffer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"EmployeeOffer\",\n \"kind\": \"LinkedField\",\n \"name\": \"employeeOffer\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Employee\",\n \"kind\": \"LinkedField\",\n \"name\": \"employee\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"fullName\",\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"contactCard_employee\"\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Shop\",\n \"kind\": \"LinkedField\",\n \"name\": \"offerShop\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"BaseCase\",\n \"abstractKey\": \"__isBaseCase\"\n};\n})();\n\n(node as any).hash = \"4549234df2bbf209af83aa023f73a8f5\";\n\nexport default node;\n","import { contactModule_baseCase$key } from '__generated__/contactModule_baseCase.graphql';\nimport Button from 'components/atoms/button/button';\nimport Typography from 'components/atoms/typography/typography';\nimport ContactCard from 'components/molecules/contact-card/contact-card';\nimport { SelectOption } from 'components/molecules/select/select';\nimport Block from 'components/utilities/block/block';\nimport Column from 'components/utilities/column/column';\nimport Container from 'components/utilities/container/container';\nimport Row from 'components/utilities/row/row';\nimport { useList } from 'hooks/useList';\nimport { FC, Fragment, useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useFragment } from 'react-relay';\nimport ContactSellerModal from '../contact-seller-modal/contact-seller-modal';\nimport './contact-module.scss';\n\nexport interface ContactModuleProps {\n fragment: contactModule_baseCase$key | null | undefined;\n isSeller?: boolean;\n}\n\nconst contactModuleFragment = graphql`\n fragment contactModule_baseCase on BaseCase {\n id\n address\n baseCaseMainOffer {\n employeeOffer {\n employee {\n id\n fullName\n ...contactCard_employee\n offerShop {\n name\n }\n }\n }\n }\n }\n`;\n\nconst ContactModule: FC<ContactModuleProps> = (props) => {\n const data = useFragment(contactModuleFragment, props.fragment || null);\n const [isModalOpen, setIsModalOpen] = useState(false);\n\n const employeeOffers = useList(data?.baseCaseMainOffer?.employeeOffer);\n const firstEmployeeOffer = employeeOffers[0] ? employeeOffers[0] : null;\n const employee = firstEmployeeOffer?.employee;\n\n if (!employee) {\n return <Fragment />;\n }\n\n const getRecipientOptions = () => {\n const recipients: SelectOption[] = [];\n\n employeeOffers.forEach((item) => {\n recipients.push({\n name: item?.employee?.fullName || '',\n value: item?.employee?.id || '',\n });\n });\n\n return recipients;\n };\n\n return (\n <Container className=\"contact-module\">\n <Row alignCenter className=\"contact-module-wrapper\" spaceBetween>\n <Column width={{ tablet: 4 }}>\n <ContactCard fragment={employee} />\n </Column>\n\n <Column width={{ tablet: 3 }}>\n <Block className=\"contact-module-text\">\n <Typography tag=\"h2\" tagStyle=\"headlineMedium\">\n <FormattedMessage defaultMessage=\"Contact us\" id=\"ContactModule.Title\" />\n </Typography>\n\n <Typography tag=\"p\" tagStyle=\"bodyMedium\">\n {props.isSeller ? (\n <FormattedMessage\n defaultMessage=\"If you have any questions or need to contact {shopName}\"\n id=\"ContactModule.ParagraphSeller\"\n values={{\n shopName: employee.offerShop?.name,\n }}\n />\n ) : (\n <FormattedMessage\n defaultMessage=\"Do you have questions or would you like to know more about this property? Send us a message.\"\n id=\"ContactModule.Paragraph\"\n />\n )}\n </Typography>\n </Block>\n\n <Button onClick={() => setIsModalOpen(true)}>\n <FormattedMessage defaultMessage=\"Contact broker\" id=\"ContactModule.CTA\" />\n </Button>\n </Column>\n </Row>\n <ContactSellerModal\n caseOptions={[\n {\n name: data?.address || '',\n selected: true,\n value: data?.id || '',\n },\n ]}\n isOpen={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n recipientOptions={getRecipientOptions()}\n />\n </Container>\n );\n};\n\nexport default ContactModule;\n","/**\n * @generated SignedSource<<135c360560a4c89f013510e640c72117>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nexport type contactSellerModal_customerIdQuery$variables = Record<PropertyKey, never>;\nexport type contactSellerModal_customerIdQuery$data = {\n readonly viewer: {\n readonly customer: {\n readonly id: string;\n } | null | undefined;\n } | null | undefined;\n};\nexport type contactSellerModal_customerIdQuery = {\n response: contactSellerModal_customerIdQuery$data;\n variables: contactSellerModal_customerIdQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Customer\",\n \"kind\": \"LinkedField\",\n \"name\": \"customer\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/)\n ],\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"contactSellerModal_customerIdQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n (v1/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Operation\",\n \"name\": \"contactSellerModal_customerIdQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n (v1/*: any*/),\n (v0/*: any*/)\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"e3dbfa247360d0ab61be81bcfcce8792\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"contactSellerModal_customerIdQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query contactSellerModal_customerIdQuery {\\n viewer {\\n customer {\\n id\\n }\\n id\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"8255405f259562c02ca2251e5d8e4aa1\";\n\nexport default node;\n","/**\n * @generated SignedSource<<bd540236bc49ee0562397b71ee95bbd9>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nexport type CreateThreadInput = {\n activityId?: string | null | undefined;\n attachmentIDs?: ReadonlyArray<string | null | undefined> | null | undefined;\n caseId?: string | null | undefined;\n initialMessage: string;\n participantId: string;\n subject: string;\n};\nexport type createThread_Mutation$variables = {\n connections: ReadonlyArray<string>;\n input?: CreateThreadInput | null | undefined;\n};\nexport type createThread_Mutation$data = {\n readonly createThread: {\n readonly createdObject: {\n readonly createDate: any;\n readonly hasNewMessages: boolean;\n readonly id: string;\n readonly lastMessage: {\n readonly createDate: any;\n readonly id: string;\n } | null | undefined;\n readonly messageConnection: {\n readonly items: ReadonlyArray<{\n readonly author: {\n readonly fullName: string | null | undefined;\n };\n } | null | undefined> | null | undefined;\n } | null | undefined;\n readonly subject: string;\n readonly threadParticipants: ReadonlyArray<{\n readonly lastReadMessageDate: any | null | undefined;\n readonly person: {\n readonly fullName: string | null | undefined;\n };\n } | null | undefined>;\n } | null | undefined;\n readonly errors: ReadonlyArray<{\n readonly message: string | null | undefined;\n } | null | undefined> | null | undefined;\n } | null | undefined;\n};\nexport type createThread_Mutation = {\n response: createThread_Mutation$data;\n variables: createThread_Mutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"connections\"\n},\nv1 = {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n},\nv2 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n],\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv4 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"createDate\",\n \"storageKey\": null\n},\nv5 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"subject\",\n \"storageKey\": null\n},\nv6 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasNewMessages\",\n \"storageKey\": null\n},\nv7 = [\n {\n \"kind\": \"Literal\",\n \"name\": \"first\",\n \"value\": 1\n }\n],\nv8 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"fullName\",\n \"storageKey\": null\n},\nv9 = [\n (v8/*: any*/)\n],\nv10 = [\n {\n \"kind\": \"Literal\",\n \"name\": \"excludeSelf\",\n \"value\": true\n }\n],\nv11 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastReadMessageDate\",\n \"storageKey\": null\n},\nv12 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"message\",\n \"storageKey\": null\n},\nv13 = [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n (v8/*: any*/),\n (v3/*: any*/)\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": [\n (v0/*: any*/),\n (v1/*: any*/)\n ],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"createThread_Mutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v2/*: any*/),\n \"concreteType\": \"ThreadCreatedPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"createThread\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Thread\",\n \"kind\": \"LinkedField\",\n \"name\": \"createdObject\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Message\",\n \"kind\": \"LinkedField\",\n \"name\": \"lastMessage\",\n \"plural\": false,\n \"selections\": [\n {\n \"kind\": \"RequiredField\",\n \"field\": (v3/*: any*/),\n \"action\": \"LOG\",\n \"path\": \"createThread.createdObject.lastMessage.id\"\n },\n {\n \"kind\": \"RequiredField\",\n \"field\": (v4/*: any*/),\n \"action\": \"LOG\",\n \"path\": \"createThread.createdObject.lastMessage.createDate\"\n }\n ],\n \"storageKey\": null\n },\n (v3/*: any*/),\n (v4/*: any*/),\n (v5/*: any*/),\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": (v7/*: any*/),\n \"concreteType\": \"MessageConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"messageConnection\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Message\",\n \"kind\": \"LinkedField\",\n \"name\": \"items\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"author\",\n \"plural\": false,\n \"selections\": (v9/*: any*/),\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": \"messageConnection(first:1)\"\n },\n {\n \"alias\": null,\n \"args\": (v10/*: any*/),\n \"concreteType\": \"ThreadParticipant\",\n \"kind\": \"LinkedField\",\n \"name\": \"threadParticipants\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"person\",\n \"plural\": false,\n \"selections\": (v9/*: any*/),\n \"storageKey\": null\n },\n (v11/*: any*/)\n ],\n \"storageKey\": \"threadParticipants(excludeSelf:true)\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Error\",\n \"kind\": \"LinkedField\",\n \"name\": \"errors\",\n \"plural\": true,\n \"selections\": [\n (v12/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Mutation\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [\n (v1/*: any*/),\n (v0/*: any*/)\n ],\n \"kind\": \"Operation\",\n \"name\": \"createThread_Mutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v2/*: any*/),\n \"concreteType\": \"ThreadCreatedPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"createThread\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Thread\",\n \"kind\": \"LinkedField\",\n \"name\": \"createdObject\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Message\",\n \"kind\": \"LinkedField\",\n \"name\": \"lastMessage\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n (v3/*: any*/),\n (v4/*: any*/),\n (v5/*: any*/),\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": (v7/*: any*/),\n \"concreteType\": \"MessageConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"messageConnection\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Message\",\n \"kind\": \"LinkedField\",\n \"name\": \"items\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"author\",\n \"plural\": false,\n \"selections\": (v13/*: any*/),\n \"storageKey\": null\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": \"messageConnection(first:1)\"\n },\n {\n \"alias\": null,\n \"args\": (v10/*: any*/),\n \"concreteType\": \"ThreadParticipant\",\n \"kind\": \"LinkedField\",\n \"name\": \"threadParticipants\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"person\",\n \"plural\": false,\n \"selections\": (v13/*: any*/),\n \"storageKey\": null\n },\n (v11/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": \"threadParticipants(excludeSelf:true)\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"filters\": null,\n \"handle\": \"prependNode\",\n \"key\": \"\",\n \"kind\": \"LinkedHandle\",\n \"name\": \"createdObject\",\n \"handleArgs\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"connections\",\n \"variableName\": \"connections\"\n },\n {\n \"kind\": \"Literal\",\n \"name\": \"edgeTypeName\",\n \"value\": \"ReviewEdge\"\n }\n ]\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Error\",\n \"kind\": \"LinkedField\",\n \"name\": \"errors\",\n \"plural\": true,\n \"selections\": [\n (v12/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"fcffe605cef21a40dfab727637fbb057\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"createThread_Mutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation createThread_Mutation(\\n $input: CreateThreadInput\\n) {\\n createThread(input: $input) {\\n createdObject {\\n lastMessage {\\n id\\n createDate\\n }\\n id\\n createDate\\n subject\\n hasNewMessages\\n messageConnection(first: 1) {\\n items {\\n author {\\n __typename\\n fullName\\n id\\n }\\n id\\n }\\n }\\n threadParticipants(excludeSelf: true) {\\n person {\\n __typename\\n fullName\\n id\\n }\\n lastReadMessageDate\\n id\\n }\\n }\\n errors {\\n message\\n id\\n }\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"b75734ab7471571fc45997e483b5204a\";\n\nexport default node;\n","import { yupResolver } from '@hookform/resolvers/yup';\nimport Button from 'components/atoms/button/button';\nimport Icon from 'components/atoms/icon/icon';\nimport Typography from 'components/atoms/typography/typography';\nimport ChatActions, {\n FileInputInterface,\n FileInputInterface as FileInputType,\n} from 'components/molecules/chat-actions/chat-actions';\nimport CustomSelect from 'components/molecules/custom-select/custom-select';\nimport Input from 'components/molecules/input/input';\nimport Select, { SelectOption } from 'components/molecules/select/select';\nimport Textarea from 'components/molecules/textarea/textarea';\nimport Block from 'components/utilities/block/block';\nimport Column from 'components/utilities/column/column';\nimport Row from 'components/utilities/row/row';\nimport useIsMobile from 'hooks/useIsMobile';\nimport { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport * as yup from 'yup';\nimport './contact-seller-form.scss';\n\nexport interface ContactSellerFormProps {\n activityOptions?: SelectOption[];\n caseOptions?: SelectOption[];\n onCloseForm: () => void;\n onSelectCase?: (caseId: string) => void;\n onSubmit: (data: ContactSellerInputs) => void;\n recipientOptions?: SelectOption[];\n}\nexport interface ContactSellerInputs {\n activityId?: string;\n caseId: string;\n files?: FileInputInterface[];\n initialMessage: string;\n participantId: string;\n subject: string;\n}\n\nconst ContactSellerForm: FC<ContactSellerFormProps> = ({\n onCloseForm,\n caseOptions,\n activityOptions,\n recipientOptions,\n onSubmit,\n onSelectCase,\n}) => {\n const { formatMessage } = useIntl();\n const isMobile = useIsMobile();\n\n const [selectedCaseOption, setSelectedCaseOption] = useState<SelectOption>();\n const [selectedRecepientOption, setSelectedRecepientOption] = useState<SelectOption>();\n\n const schema = useMemo(() => {\n return yup.object().shape({\n activityId: yup.string().when([], {\n is: () => !caseOptions,\n otherwise: yup.string().notRequired().nullable(),\n then: yup.string().required(\n formatMessage({\n defaultMessage: 'Choose an activity',\n id: 'ContactSellerForm.activityRequired',\n }),\n ),\n }),\n caseId: yup.string().when([], {\n is: () => caseOptions,\n otherwise: yup.string().notRequired().nullable(),\n then: yup.string().required(\n formatMessage({\n defaultMessage: 'Choose a case',\n id: 'ContactSellerForm.casetRequired',\n }),\n ),\n }),\n files: yup.array().of(yup.mixed()).nullable(),\n initialMessage: yup.string().required(\n formatMessage({\n defaultMessage: 'A message is required',\n id: 'ContactSellerForm.messageRequired',\n }),\n ),\n participantId: yup.string().required(\n formatMessage({\n defaultMessage: 'Choose a recipient',\n id: 'ContactSellerForm.recipientRequired',\n }),\n ),\n subject: yup.string().required(\n formatMessage({\n defaultMessage: 'Subject is required',\n id: 'ContactSellerForm.subjectRequired',\n }),\n ),\n });\n }, [formatMessage, caseOptions]);\n\n const {\n formState: { errors, isSubmitSuccessful },\n handleSubmit,\n setFocus,\n setValue,\n register,\n reset,\n watch,\n } = useForm<ContactSellerInputs>({\n resolver: yupResolver(schema),\n });\n\n const handleSelectedCase = useCallback(\n (option: SelectOption) => {\n reset({ participantId: undefined });\n setValue(caseOptions ? 'caseId' : 'activityId', option.value);\n setSelectedCaseOption(option);\n setSelectedRecepientOption(undefined);\n onSelectCase?.(option.value);\n },\n [reset, setValue, caseOptions, onSelectCase],\n );\n\n useEffect(() => {\n register(caseOptions ? 'caseId' : 'activityId');\n register('participantId');\n setValue(caseOptions ? 'caseId' : 'activityId', '');\n\n if (caseOptions?.length === 1) {\n handleSelectedCase(caseOptions[0]);\n }\n }, [register, caseOptions, setValue, handleSelectedCase]);\n\n const watchedFiles = watch('files');\n\n const onFileUpload = (file: FileInputType) => {\n const newFiles = watchedFiles && watchedFiles.length > 0 ? [...watchedFiles, file] : [file];\n setValue('files', newFiles);\n };\n\n const onDeleteFile = (fileId: string) => {\n const newFiles = watchedFiles?.filter((file) => file.id !== fileId);\n setValue('files', newFiles);\n };\n\n return isSubmitSuccessful ? (\n <Block className=\"contact-seller-form__submitted\" column flex>\n <Icon fill=\"var(--color-text-grey)\" height={48} name=\"Check\" width={48} />\n <Typography tagStyle=\"bodyLarge\">\n <FormattedMessage defaultMessage=\"The formular has been uploaded\" id=\"ContactSellerForm.SuccessMessage\" />\n </Typography>\n <Button className=\"contact-seller-form__submitted--button\" onClick={onCloseForm} type=\"submit\">\n <FormattedMessage defaultMessage=\"Go back\" id=\"ContactSellerForm.CloseModal\" />\n </Button>\n </Block>\n ) : (\n <div className=\"contact-seller-form\">\n <form onSubmit={handleSubmit(onSubmit)}>\n <Row center pushBottom>\n <Column marginBottom width={{ mobile: 8, tablet: 4 }}>\n {!isMobile ? (\n <CustomSelect\n disabled={!!activityOptions}\n errorMessage={errors.caseId?.message || errors.activityId?.message}\n label={\n caseOptions\n ? formatMessage({\n defaultMessage: 'Case',\n id: 'ContactSeller.Case',\n })\n : formatMessage({\n defaultMessage: 'Activity',\n id: 'ContactSeller.Aktivitet',\n })\n }\n onChange={(option) => handleSelectedCase(option)}\n options={caseOptions || activityOptions}\n placeholder={\n caseOptions\n ? formatMessage({\n defaultMessage: 'Choose a case',\n id: 'ContactSeller.CasePlaceholder',\n })\n : formatMessage({\n defaultMessage: 'Choose an activity',\n id: 'ContactSeller.ActivityPlaceholder',\n })\n }\n selectedOption={selectedCaseOption}\n />\n ) : (\n <Select\n disabled={!!activityOptions}\n {...register(caseOptions ? 'caseId' : 'activityId')}\n errorMessage={errors.caseId?.message}\n label={\n caseOptions\n ? formatMessage({\n defaultMessage: 'Case',\n id: 'ContactSeller.Case',\n })\n : formatMessage({\n defaultMessage: 'Activity',\n id: 'ContactSeller.Aktivitet',\n })\n }\n noFloatingLabel\n onChange={(event) => onSelectCase?.(event.target.value)}\n options={caseOptions || activityOptions}\n placeholder={\n caseOptions\n ? formatMessage({\n defaultMessage: 'Choose a case',\n id: 'ContactSeller.CasePlaceholder',\n })\n : formatMessage({\n defaultMessage: 'Choose an activity',\n id: 'ContactSeller.ActivityPlaceholder',\n })\n }\n />\n )}\n </Column>\n <Column marginBottom width={{ mobile: 8, tablet: 4 }}>\n {!isMobile ? (\n <CustomSelect\n errorMessage={errors.participantId?.message}\n label={formatMessage({\n defaultMessage: 'Recipient',\n id: 'ContactSeller.Recipient',\n })}\n onChange={(option) => {\n setValue('participantId', option.value);\n setSelectedRecepientOption(option);\n }}\n options={recipientOptions}\n placeholder={formatMessage({\n defaultMessage: 'Recipient',\n id: 'ContactSeller.Recipient',\n })}\n selectedOption={selectedRecepientOption}\n />\n ) : (\n <Select\n {...register('participantId')}\n errorMessage={errors.participantId?.message}\n label={formatMessage({\n defaultMessage: 'Recipient',\n id: 'ContactSeller.Recipient',\n })}\n noFloatingLabel\n options={recipientOptions}\n placeholder={formatMessage({\n defaultMessage: 'Recipient',\n id: 'ContactSeller.Recipient',\n })}\n />\n )}\n </Column>\n <Column marginBottom width={{ mobile: 8 }}>\n <Input\n errorMessage={errors.subject?.message}\n focusInput={() => setFocus('subject')}\n label={formatMessage({\n defaultMessage: 'Subject',\n id: 'ContactSeller.Subject',\n })}\n placeholder={formatMessage({\n defaultMessage: 'Subject',\n id: 'ContactSeller.Subject',\n })}\n {...register('subject')}\n />\n </Column>\n <Column marginBottom width={{ mobile: 8 }}>\n <Block marginBottom>\n <Textarea\n className=\"contact-seller-form__message-container\"\n classNameInput=\"contact-seller-form__message\"\n errorMessage={errors.initialMessage?.message}\n minRows={5}\n placeholder={formatMessage({\n defaultMessage: 'Type here...',\n id: 'ContactSeller.TypeHere',\n })}\n {...register('initialMessage')}\n noFloatingLabel\n >\n <FileComponent onFileUpload={onFileUpload} />\n </Textarea>\n </Block>\n {watchedFiles && watchedFiles.length > 0 && (\n <div className=\"contact-seller-form__documents\">\n {watchedFiles\n .filter((file) => !file.type.includes('image'))\n .map((file) => (\n <div key={file.id} className=\"contact-seller-form__documents--item\">\n <Icon name=\"Files\" />{' '}\n <Typography elipsis tagStyle=\"bodyMedium\">\n {file.name}\n </Typography>\n <Button\n className=\"contact-seller-form__delete\"\n hideText\n iconStart=\"Cross\"\n onClick={() => onDeleteFile(file.id)}\n >\n <FormattedMessage defaultMessage=\"Delete\" id=\"Messages.DeleteAttachment\" />\n </Button>\n </div>\n ))}\n </div>\n )}\n {watchedFiles && watchedFiles.length > 0 && (\n <div className=\"contact-seller-form__images\">\n {watchedFiles\n .filter((file) => file.type.includes('image'))\n .map((file) => (\n <div key={file.id} className=\"contact-seller-form__images--item\">\n <img src={URL.createObjectURL(file)} />\n <Button\n className=\"contact-seller-form__delete\"\n hideText\n iconStart=\"Cross\"\n onClick={() => onDeleteFile(file.id)}\n >\n <FormattedMessage defaultMessage=\"Delete\" id=\"Messages.DeleteAttachment\" />\n </Button>\n </div>\n ))}\n </div>\n )}\n </Column>\n </Row>\n <Block className=\"contact-seller-form__button-container\" flex justifyRight>\n <Button onClick={onCloseForm} version=\"secondary\">\n <FormattedMessage defaultMessage=\"Close\" id=\"ContactSellerForm.buttonClose\" />\n </Button>\n <Button type=\"submit\" version=\"primary\">\n <FormattedMessage defaultMessage=\"Send\" id=\"ContactSellerForm.buttonSend\" />\n </Button>\n </Block>\n </form>\n </div>\n );\n};\n\nconst FileComponent: FC<{\n onFileUpload: (file: FileInputType) => void;\n}> = ({ onFileUpload }) => (\n <Block className=\"contact-seller-form__file-input\" flex justifyRight>\n <ChatActions onFileUpload={onFileUpload} />\n </Block>\n);\n\nexport default ContactSellerForm;\n","import { contactSellerModal_customerIdQuery } from '__generated__/contactSellerModal_customerIdQuery.graphql';\nimport Modal from 'components/molecules/modal/modal';\nimport { SelectOption } from 'components/molecules/select/select';\nimport ContactSellerForm, { ContactSellerInputs } from 'components/organisms/contact-seller-form/contact-seller-form';\nimport { FC } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { ConnectionHandler, graphql, useLazyLoadQuery, useMutation } from 'react-relay';\nimport { createThreadMutation } from 'services/relay/mutations/createThread';\nimport './contact-seller-modal.scss';\nimport { useMixPanel } from 'hooks/useMixPanel';\nimport { MixPanelEvents } from 'app/mixpanel/mixpanelEvents';\n\nexport interface ContactSellerModalProps {\n activityOptions?: SelectOption[];\n caseOptions?: SelectOption[];\n isOpen: boolean;\n onClose: () => void;\n onSelectCase?: (caseId: string) => void;\n recipientOptions: SelectOption[];\n}\n\nconst customerIdQuery = graphql`\n query contactSellerModal_customerIdQuery {\n viewer {\n customer {\n id\n }\n }\n }\n`;\n\nconst ContactSellerModal: FC<ContactSellerModalProps> = ({\n onClose,\n isOpen,\n activityOptions,\n caseOptions,\n recipientOptions,\n onSelectCase,\n}) => {\n const [commit] = useMutation(createThreadMutation);\n const customerIdData = useLazyLoadQuery<contactSellerModal_customerIdQuery>(customerIdQuery, {});\n const { track } = useMixPanel();\n\n const connectionID = ConnectionHandler.getConnectionID(\n customerIdData.viewer?.customer?.id || '',\n 'messagesInbox__threadConnection',\n );\n\n const handleSubmitContactForm = (data: ContactSellerInputs) => {\n const { files, initialMessage, ...rest } = data;\n const uploadables: { [key: string]: File } = {};\n if (files) {\n files.forEach((file) => {\n uploadables[file.id + file.name] = file;\n });\n }\n\n const haveFiles = files && files.length > 0;\n\n commit({\n updater: (store) => {\n const thread = store.get(connectionID);\n if (thread) {\n const value = thread.getValue('totalCount');\n thread.setValue(Number(value) + 1, 'totalCount');\n }\n },\n uploadables: haveFiles ? uploadables : undefined,\n variables: {\n connections: [connectionID],\n input: {\n initialMessage: initialMessage.replace(/\\n\\r?/g, '<br />'),\n ...rest,\n },\n },\n });\n track('Send_Message' as keyof MixPanelEvents, { sendFrom: 'DIALOG' });\n };\n\n return isOpen ? (\n <Modal\n closeHandler={onClose}\n headline={<FormattedMessage defaultMessage=\"Contact the mediator of the case\" id=\"ContactSellerForm.title\" />}\n >\n <ContactSellerForm\n activityOptions={activityOptions}\n caseOptions={caseOptions}\n onCloseForm={onClose}\n onSelectCase={(caseId) => onSelectCase?.(caseId)}\n onSubmit={(data) => handleSubmitContactForm(data)}\n recipientOptions={recipientOptions}\n />\n </Modal>\n ) : null;\n};\n\nexport default ContactSellerModal;\n","import Icon from 'components/atoms/icon/icon';\nimport { ComponentPropsWithoutRef, FC } from 'react';\nimport './select.scss';\nimport { FormattedMessage } from 'react-intl';\n\nexport interface SelectProps extends ComponentPropsWithoutRef<'select'> {\n max: number;\n options: number[];\n}\n\nconst Select: FC<SelectProps> = ({ options, max, ...props }) => {\n return (\n <div className=\"select-container\">\n <select className=\"select\" defaultValue={options?.[0]} {...props}>\n {options.map((option, i) => (\n <option key={option}>{option}</option>\n ))}\n <option value={max}>\n <FormattedMessage id=\"SearchProfile.All\" defaultMessage=\"All\" />\n </option>\n </select>\n <Icon className=\"arrow\" name=\"ArrowDown\" />\n </div>\n );\n};\n\nexport default Select;\n","import Select from 'components/atoms/select/select';\nimport Typography from 'components/atoms/typography/typography';\nimport Block from 'components/utilities/block/block';\nimport { ComponentProps, FC } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport './table-select.scss';\n\nexport interface TableSelectProps extends Omit<ComponentProps<'select'>, 'onChange'> {\n currentPage: number;\n onChange: (val: number) => void;\n options: number[];\n pageSize: number;\n totalItems: number;\n}\n\nconst TableSelect: FC<TableSelectProps> = ({ currentPage, pageSize, totalItems, options, onChange, ...props }) => {\n const firstIndex = currentPage * pageSize - (pageSize - 1);\n const lastIndex = pageSize * currentPage;\n\n return (\n <Block className=\"table-select\" flex spaceBetween>\n <Typography tag=\"span\">\n <FormattedMessage defaultMessage=\"Show\" id=\"TableSelect.vis\" />\n </Typography>\n <Select\n className=\"select\"\n max={totalItems}\n onChange={(e) => onChange(Number(e.target.value))}\n options={options}\n {...props}\n />\n <Typography tag=\"span\">\n <FormattedMessage defaultMessage=\"Per page\" id=\"Documents.PerPage\" />\n </Typography>\n <Typography className=\"table-select__grey-text\" tag=\"span\">\n Vis {firstIndex}-{Math.min(lastIndex, totalItems)} af {totalItems}\n </Typography>\n </Block>\n );\n};\n\nexport default TableSelect;\n","import Button from 'components/atoms/button/button';\nimport Icon from 'components/atoms/icon/icon';\nimport { Spinner } from 'components/atoms/spinner/spinner';\nimport Typography from 'components/atoms/typography/typography';\nimport TableSelect from 'components/molecules/table-select/table-select';\nimport DocumentsTableStateContext from 'components/organisms/documents-table/documents-table-state-context';\nimport { DEFAULT_OPTIONS, DIRECTION } from 'components/organisms/documents-table/documents-table-state-reducer';\nimport Block from 'components/utilities/block/block';\nimport { FC, useCallback, useContext, useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { authenticationService } from 'services/authentication/authentication-service';\nimport './documents-table.scss';\n\nexport const DocumentsTableFooter: FC = () => {\n const { state, dispatch } = useContext(DocumentsTableStateContext);\n\n const [isDownloading, setIsDownloading] = useState(false);\n\n const handleDownloadDocuments = useCallback(async () => {\n setIsDownloading(true);\n\n const token = await authenticationService.tokenAsync();\n\n const requestOptions: RequestInit = {\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n };\n\n const response =\n state.rowSelection.length === 0\n ? await fetch(`${state.downloadAllUrl}`, { ...requestOptions, method: 'GET' })\n : await fetch(`${state.downloadMultipleUrl}`, {\n ...requestOptions,\n method: 'POST',\n body: JSON.stringify(state.rowSelection),\n });\n\n const blob = await response.blob();\n saveAs(blob, 'dokumenter.zip');\n\n setIsDownloading(false);\n }, [state.downloadAllUrl, state.downloadMultipleUrl, state.rowSelection]);\n\n const saveAs = (blob: Blob, fileName: string) => {\n const a = document.createElement('a');\n a.download = fileName;\n a.rel = 'noopener';\n a.href = URL.createObjectURL(blob);\n setTimeout(() => URL.revokeObjectURL(a.href), 60 * 1000);\n setTimeout(() => a.click(), 0);\n };\n\n const onPageChange = (direction: DIRECTION) => {\n dispatch({ type: 'SET_PAGE', payload: direction });\n };\n\n const onRowsPerPageChange = (val: number) => {\n dispatch({ type: 'SET_PAGE_SIZE', payload: val });\n };\n\n const renderLeftArrow = () => {\n if (state.page === 1) {\n return <span className=\"whitespace\"> </span>;\n } else {\n return <Icon name={'ArrowLeft'} className=\"buttonIcon\" onClick={() => onPageChange(DIRECTION.PREVIOUS)} />;\n }\n };\n\n const renderRightArrow = () => {\n if (state.pageSize >= state.count || state.page * state.pageSize >= state.count) {\n return <span className=\"whitespace\"> </span>;\n } else {\n return (\n <Icon name={'ArrowRight'} className=\"table__footer-buttonIcon\" onClick={() => onPageChange(DIRECTION.NEXT)} />\n );\n }\n };\n\n return (\n <tfoot>\n <tr>\n <td colSpan={6}>\n <Block className=\"table__footer\" flex spaceBetween positionRelative>\n <Button\n disabled={isDownloading}\n className=\"same button\"\n onClick={handleDownloadDocuments}\n version=\"primary\"\n >\n <Typography tag=\"span\">\n <FormattedMessage defaultMessage=\"Download\" id=\"Documents.Download\" />{' '}\n {state.rowSelection.length > 0 ? (\n <FormattedMessage defaultMessage=\"Selected\" id=\"Documents.Selected\" />\n ) : (\n <FormattedMessage defaultMessage=\"all\" id=\"Documents.All\" />\n )}\n </Typography>\n {isDownloading && <Spinner />}\n </Button>\n\n <TableSelect\n currentPage={state.page}\n onChange={onRowsPerPageChange}\n options={DEFAULT_OPTIONS}\n pageSize={state.pageSize}\n totalItems={state.count || 0}\n />\n <div className=\"footer__navigation\">\n {renderLeftArrow()}\n {renderRightArrow()}\n </div>\n </Block>\n </td>\n </tr>\n </tfoot>\n );\n};\n","import Typography from 'components/atoms/typography/typography';\nimport IndeterminateCheckbox from 'components/molecules/indeterminate-checkbox/indeterminate-checkbox';\nimport DocumentsTableStateContext from 'components/organisms/documents-table/documents-table-state-context';\nimport { useContext, useMemo, useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport './documents-table.scss';\nimport { DocumentOrderBy, OrderDirection } from 'Enums';\n\nexport const DocumentsTableHeader = () => {\n const { state, dispatch } = useContext(DocumentsTableStateContext);\n\n const [currentSortKey, setCurrentSortKey] = useState<keyof typeof DocumentOrderBy>(DocumentOrderBy.Type);\n const [currentSortOrder, setCurrentSortOrder] = useState<keyof typeof OrderDirection>(OrderDirection.asc);\n\n const isAllSelected = useMemo(\n () => state.rowSelection.length === state.slicedDocuments.length && state.slicedDocuments.length !== 0,\n [state.rowSelection.length, state.slicedDocuments.length],\n );\n\n const handleRowSelection = () => {\n if (state.rowSelection.length === state.slicedDocuments.length) {\n dispatch({\n type: 'RESET_ROW_SELECTION',\n });\n } else {\n dispatch({\n type: 'SELECT_ALL_ROW_SELECTION',\n });\n }\n };\n\n const handleSort = (key: keyof typeof DocumentOrderBy) => {\n const newSortOrder =\n currentSortKey === key && currentSortOrder === OrderDirection.asc ? OrderDirection.desc : OrderDirection.asc;\n\n setCurrentSortKey(key);\n setCurrentSortOrder(newSortOrder);\n\n dispatch({\n type: 'SET_SORTING',\n payload: { key: key, order: newSortOrder },\n });\n };\n\n const renderSortableColumn = (id: keyof typeof DocumentOrderBy, label: string) => (\n <th className=\"documents-table__cell table__th table__can-sort\" onClick={() => handleSort(id)}>\n <div className=\"table__header-content\">\n <Typography>\n <FormattedMessage defaultMessage={label} id={`Documents.${label}`} />\n </Typography>\n {currentSortKey === id && (\n <span className={`table__sort-icon ${currentSortOrder}`}>\n {currentSortOrder === OrderDirection.asc ? '↑' : '↓'}\n </span>\n )}\n </div>\n </th>\n );\n\n return (\n <thead>\n <tr>\n <th className=\"documents-table__checkbox table__th\" colSpan={1}>\n <IndeterminateCheckbox\n {...{\n checked: isAllSelected,\n indeterminate: false,\n onChange: handleRowSelection,\n }}\n />\n </th>\n {renderSortableColumn('Type', 'Type')}\n {renderSortableColumn('Description', 'Description')}\n {renderSortableColumn('Status', 'Status')}\n {renderSortableColumn('VisibleDate', 'Visible')}\n <th className=\"documents-table__cell table__th\">\n <div>\n <Typography>\n <FormattedMessage defaultMessage={'Handling'} id={'Documents.Handling'} />\n </Typography>\n </div>\n </th>\n </tr>\n <tr>\n <th colSpan={6}>\n <hr className=\"table__hr\" />\n </th>\n </tr>\n </thead>\n );\n};\n","/**\n * @generated SignedSource<<768379bf60c384d0494e13b836ac6cab>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type documentsTableRowFragment$data = {\n readonly documentDownloadUrlCookieAuth: string | null | undefined;\n readonly documentName: string | null | undefined;\n readonly documentTypeName: string | null | undefined;\n readonly grantedDate: any | null | undefined;\n readonly id: string;\n readonly propertyOverviewUrl: string | null | undefined;\n readonly readDate: any | null | undefined;\n readonly \" $fragmentType\": \"documentsTableRowFragment\";\n};\nexport type documentsTableRowFragment$key = {\n readonly \" $data\"?: documentsTableRowFragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"documentsTableRowFragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"documentsTableRowFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"inline\",\n \"value\": false\n },\n {\n \"kind\": \"Literal\",\n \"name\": \"previewState\",\n \"value\": \"FullVersion\"\n }\n ],\n \"kind\": \"ScalarField\",\n \"name\": \"documentDownloadUrlCookieAuth\",\n \"storageKey\": \"documentDownloadUrlCookieAuth(inline:false,previewState:\\\"FullVersion\\\")\"\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"propertyOverviewUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"documentName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"documentTypeName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"readDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"grantedDate\",\n \"storageKey\": null\n }\n ],\n \"type\": \"Document\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"a9f9d99d7803e186fdc62496ebc8af8e\";\n\nexport default node;\n","import { documentsTableRowFragment$key } from '__generated__/documentsTableRowFragment.graphql';\nimport Button from 'components/atoms/button/button';\nimport Typography from 'components/atoms/typography/typography';\nimport IndeterminateCheckbox from 'components/molecules/indeterminate-checkbox/indeterminate-checkbox';\nimport Block from 'components/utilities/block/block';\nimport { FC, Fragment } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useFragment } from 'react-relay';\nimport { formatDate } from 'tools/string-formatters';\nimport './documents-table.scss';\n\ninterface Props {\n rowSelection: string[];\n setRowSelection: (id?: string) => void;\n documentFragment: documentsTableRowFragment$key;\n}\n\nconst documentsTableRowFragment = graphql`\n fragment documentsTableRowFragment on Document {\n id\n documentDownloadUrlCookieAuth(inline: false, previewState: FullVersion)\n propertyOverviewUrl\n documentName\n documentTypeName\n readDate\n grantedDate\n }\n`;\nexport const DocumentsTableRow: FC<Props> = ({ documentFragment, rowSelection, setRowSelection }) => {\n const document = useFragment(documentsTableRowFragment, documentFragment);\n\n return (\n <tr>\n <td className=\"documents-table__checkbox\">\n <IndeterminateCheckbox\n {...{\n checked: rowSelection.includes(document.id),\n indeterminate: false,\n onChange: () => setRowSelection(document.id),\n }}\n />\n </td>\n <td className=\"documents-table__cell\">\n <Block flex>\n <Button\n anchorTag\n className=\"documents-table__cell--text\"\n iconHeight={16}\n iconStart=\"Files\"\n iconWidth={16}\n href={document.documentDownloadUrlCookieAuth || ''}\n padding={false}\n version=\"link\"\n >\n <Typography tagStyle=\"bodyMedium\">{document.documentName}</Typography>\n </Button>\n </Block>\n </td>\n <td className=\"hideMobile documents-table__cell\">\n <Typography className=\"documents-table__cell--text\" tagStyle=\"bodySmall\">\n {document.documentTypeName}\n </Typography>\n </td>\n <td className=\"hideMobile documents-table__cell\">\n <Typography subjectColor=\"success\" tag=\"span\" tagStyle=\"bodySmall\">\n {document.readDate && (\n <Fragment>\n <FormattedMessage\n id=\"DocumentsTable.Read\"\n defaultMessage=\"Read {date}\"\n values={{ date: formatDate(document.readDate) }}\n />\n </Fragment>\n )}\n </Typography>\n </td>\n <td className=\"documents-table__cell\">\n {document.grantedDate && <Typography tagStyle=\"bodySmall\">{formatDate(document.grantedDate)}</Typography>}\n </td>\n <td className=\"documents-table__cell\">\n <Button\n anchorTag\n className=\"documents-table__link\"\n href={document.documentDownloadUrlCookieAuth || ''}\n padding={false}\n version=\"link\"\n >\n <Typography tagStyle=\"bodyMedium\">\n <FormattedMessage defaultMessage=\"Open\" id=\"DocumentsTable.Open\" />\n </Typography>\n </Button>\n {document.propertyOverviewUrl && (\n <>\n {' / '}\n <Button\n anchorTag\n className=\"documents-table__link\"\n href={document.propertyOverviewUrl || ''}\n padding={false}\n version=\"link\"\n >\n <Typography tagStyle=\"bodyMedium\">\n <FormattedMessage id=\"DocumentsTable.SeeOnline\" defaultMessage=\"See online\" />\n </Typography>\n </Button>\n </>\n )}\n </td>\n </tr>\n );\n};\n","import { createContext, Dispatch } from 'react';\nimport {\n DocumentsTableAction,\n documentsTableInitialState,\n DocumentsTableState,\n} from 'components/organisms/documents-table/documents-table-state-reducer';\n\ninterface ContextProps {\n state: DocumentsTableState;\n dispatch: Dispatch<DocumentsTableAction>;\n}\n\nconst defaultDispatch: Dispatch<DocumentsTableAction> = () => undefined; // does nothing\n\nconst DocumentsTableStateContext = createContext<ContextProps>({\n state: documentsTableInitialState,\n dispatch: defaultDispatch,\n});\nexport default DocumentsTableStateContext;\n","export const getMappedDocumentsObject = (documents: readonly Record<string, unknown>[]): Record<number, string> => {\n return documents.reduce<Record<number, string>>((obj, document, index) => {\n obj[index] = document.id as string;\n return obj;\n }, {});\n};\n","import { DocumentOrderBy, OrderDirection } from 'Enums';\nimport { getMappedDocumentsObject } from 'components/organisms/documents-table/utils';\n\nexport interface DocumentsTableState {\n searchInput: string;\n documentsMappedOnIndex: Record<number, string>;\n slicedDocuments: Record<string, unknown>[];\n rowSelection: string[];\n pageSize: number;\n page: number;\n count: number;\n downloadAllUrl: string | null;\n downloadMultipleUrl: string | null;\n sorting: { key: keyof typeof DocumentOrderBy; order: keyof typeof OrderDirection };\n}\n\nexport enum DIRECTION {\n NEXT = 'next',\n PREVIOUS = 'previous',\n}\n\nexport const DEFAULT_OPTIONS = [10, 20, 30, 40, 50];\n\nexport type DocumentsTableAction =\n | { type: 'SET_SEARCH_INPUT'; payload: string }\n | { type: 'SET_DOCUMENTS_DATA'; payload: readonly Record<string, unknown>[] }\n | { type: 'SET_ROW_SELECTION'; payload: string }\n | { type: 'SET_COUNT'; payload: number }\n | { type: 'SET_PAGE'; payload: string }\n | { type: 'SET_PAGE_SIZE'; payload: number }\n | { type: 'SET_DATA'; payload: { downloadAllUrl: string; downloadMultipleUrl: string; count: number } }\n | { type: 'SET_DOWNLOAD_URL'; payload: { downloadAllUrl: string; downloadMultipleUrl: string } }\n | { type: 'HANDLE_ROW_SELECTION'; payload: string }\n | { type: 'RESET_ROW_SELECTION' }\n | { type: 'SELECT_ALL_ROW_SELECTION' }\n | { type: 'SET_SORTING'; payload: { key: string; order: keyof typeof OrderDirection } };\n\nconst rowSelect = (rowSelection: string[], id: string) => {\n if (rowSelection.includes(id)) {\n return rowSelection.filter((item) => item !== id);\n }\n\n return [...rowSelection, id];\n};\n\nexport const documentsTableInitialState: DocumentsTableState = {\n searchInput: '',\n slicedDocuments: [],\n rowSelection: [],\n pageSize: 10,\n page: 1,\n count: 0,\n downloadAllUrl: null,\n downloadMultipleUrl: null,\n documentsMappedOnIndex: {},\n sorting: { key: 'Type', order: 'asc' },\n};\n\nexport function documentsTableStateReducer(\n state: DocumentsTableState,\n action: DocumentsTableAction,\n): DocumentsTableState {\n switch (action.type) {\n case 'SET_SEARCH_INPUT':\n return {\n ...state,\n searchInput: action.payload,\n };\n case 'SET_DOCUMENTS_DATA': {\n const slicedDocuments = action.payload.slice(\n state.page * state.pageSize - state.pageSize,\n state.page * state.pageSize,\n );\n const documentsMappedOnIndex = getMappedDocumentsObject(slicedDocuments);\n\n return {\n ...state,\n slicedDocuments: slicedDocuments,\n documentsMappedOnIndex: documentsMappedOnIndex,\n };\n }\n case 'SET_COUNT':\n return {\n ...state,\n count: action.payload,\n };\n case 'SET_PAGE': {\n const newPage = action.payload === DIRECTION.NEXT ? state.page + 1 : state.page - 1;\n return {\n ...state,\n page: newPage,\n };\n }\n case 'SET_PAGE_SIZE':\n return {\n ...state,\n pageSize: action.payload,\n };\n case 'SET_ROW_SELECTION': {\n const newRowSelection = rowSelect(state.rowSelection, action.payload);\n return {\n ...state,\n rowSelection: newRowSelection,\n };\n }\n case 'SET_DATA':\n return {\n ...state,\n ...action.payload,\n };\n case 'RESET_ROW_SELECTION':\n return {\n ...state,\n rowSelection: [],\n };\n case 'SELECT_ALL_ROW_SELECTION': {\n const all = state.slicedDocuments.map((document) => document.id) as string[];\n return {\n ...state,\n rowSelection: all,\n };\n }\n case 'HANDLE_ROW_SELECTION': {\n const rowIndex = action.payload;\n if (state.rowSelection.includes(rowIndex)) {\n const copyRowSelection = [...state.rowSelection];\n const removeIndex = copyRowSelection.indexOf(rowIndex);\n copyRowSelection.splice(removeIndex, 1);\n return {\n ...state,\n rowSelection: copyRowSelection,\n };\n } else {\n return {\n ...state,\n rowSelection: [...state.rowSelection, rowIndex],\n };\n }\n }\n case 'SET_SORTING': {\n const { key, order } = action.payload;\n\n const sortedDocuments = [...state.slicedDocuments].sort((a, b) => {\n const valueA = a[key] as keyof typeof DocumentOrderBy;\n const valueB = b[key] as keyof typeof DocumentOrderBy;\n\n if (valueA < valueB) return order === 'asc' ? -1 : 1;\n if (valueA > valueB) return order === 'asc' ? 1 : -1;\n return 0;\n });\n\n return {\n ...state,\n slicedDocuments: sortedDocuments,\n sorting: { key: key as keyof typeof DocumentOrderBy, order },\n };\n }\n default:\n throw new Error('Unhandled action type');\n }\n}\n","import './documents-table.scss';\nimport { FC, ReactNode } from 'react';\n\ntype Props = {\n children: ReactNode;\n};\n\nexport const DocumentsTable: FC<Props> = (props) => {\n return (\n <div className=\"documents-table\">\n <table className=\"table\">{props.children}</table>\n </div>\n );\n};\n","import EmptyModule from 'components/molecules/empty-module/empty-module';\nimport { FC } from 'react';\nimport { FormattedMessage } from 'react-intl';\n\ntype Props = {\n searchString: string;\n};\nconst EmptyTableBody: FC<Props> = (props) => {\n if (props.searchString) {\n return (\n <tr>\n <td colSpan={6}>\n <EmptyModule\n message={\n <FormattedMessage defaultMessage=\"Your search yielded no results\" id=\"DocumentsTable.SearchIsEmpty\" />\n }\n />\n </td>\n </tr>\n );\n } else {\n return (\n <tr>\n <td colSpan={6}>\n <EmptyModule\n message={\n <FormattedMessage\n defaultMessage=\"Your broker has not yet shared any documents with you\"\n id=\"DocumentsTable.Empty\"\n />\n }\n />\n </td>\n </tr>\n );\n }\n};\n\nexport default EmptyTableBody;\n","import { ReactElement } from 'react';\nimport './documents-table.scss';\n\nexport const TableSkeleton = () => {\n const trs: ReactElement[] = [];\n for (let i = 0; i < 10; i++) {\n trs.push(\n <tr style={{ height: '26px' }} key={i}>\n <td className=\"documents-table__checkbox skeleton\" />\n <td className=\"documents-table__cell skeleton\" />\n <td className=\"hideMobile documents-table__cell skeleton\" />\n <td className=\"hideMobile documents-table__cell skeleton\" />\n <td className=\"documents-table__cell skeleton\" />\n <td className=\"hideMobile documents-table__cell skeleton\" />\n </tr>,\n );\n }\n return <tbody className=\"table__body\">{trs}</tbody>;\n};\n","/**\n * @generated SignedSource<<58f0b476b776880f58a9dc11329d814d>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type caseImages_Media$data = {\n readonly edges: ReadonlyArray<{\n readonly node: {\n readonly mediaType: {\n readonly name: string;\n } | null | undefined;\n readonly resourceUrl: string | null | undefined;\n } | null | undefined;\n } | null | undefined> | null | undefined;\n readonly \" $fragmentSpreads\": FragmentRefs<\"caseFullscreenGallery_mediaDataConnection\" | \"caseGallery_mediaDataConnection\" | \"caseImagesSwiper_mediaDataConnection\">;\n readonly \" $fragmentType\": \"caseImages_Media\";\n};\nexport type caseImages_Media$key = {\n readonly \" $data\"?: caseImages_Media$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"caseImages_Media\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"caseImages_Media\",\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"caseGallery_mediaDataConnection\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"caseFullscreenGallery_mediaDataConnection\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"caseImagesSwiper_mediaDataConnection\"\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"MediaDataEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Media\",\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"resourceType\",\n \"value\": \"Asset\"\n }\n ],\n \"kind\": \"ScalarField\",\n \"name\": \"resourceUrl\",\n \"storageKey\": \"resourceUrl(resourceType:\\\"Asset\\\")\"\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"MediaType\",\n \"kind\": \"LinkedField\",\n \"name\": \"mediaType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"MediaDataConnection\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"13d48affc09fd7f8b367a008dd768500\";\n\nexport default node;\n","import Button from 'components/atoms/button/button';\nimport { FC } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport './gallery-navigation.scss';\n\nexport interface GalleryNavigationProps {\n isFullscreenVisible?: boolean;\n isPlanVisible?: boolean;\n isMapVisible?: boolean;\n isVideoInList?: boolean;\n onSelectFullscreen: () => void;\n onSelectMap: () => void;\n onSelectPlan: () => void;\n onSelectVideo: () => void;\n}\n\nconst GalleryNavigation: FC<GalleryNavigationProps> = (props) => {\n const {\n onSelectFullscreen,\n onSelectMap,\n onSelectPlan,\n onSelectVideo,\n isFullscreenVisible,\n isPlanVisible = true,\n isMapVisible = true,\n isVideoInList = false,\n } = props;\n\n return (\n <div className=\"gallery-navigation\">\n {isVideoInList && (\n <Button\n className=\"gallery-navigation__button\"\n hideText\n iconStart=\"Play\"\n onClick={onSelectVideo}\n padding={false}\n >\n <FormattedMessage defaultMessage=\"Video\" id=\"Gallery.Video\" />\n </Button>\n )}\n {isPlanVisible && (\n <Button className=\"gallery-navigation__button\" hideText iconStart=\"Plan\" onClick={onSelectPlan} padding={false}>\n <FormattedMessage defaultMessage=\"Plan\" id=\"Gallery.Plan\" />\n </Button>\n )}\n {isFullscreenVisible && (\n <Button\n className=\"gallery-navigation__button\"\n hideText\n iconStart=\"Expand\"\n onClick={onSelectFullscreen}\n padding={false}\n >\n <FormattedMessage defaultMessage=\"Expand\" id=\"Gallery.Expand\" />\n </Button>\n )}\n {isMapVisible && (\n <Button className=\"gallery-navigation__button\" hideText iconStart=\"Pin\" onClick={onSelectMap} padding={false}>\n <FormattedMessage defaultMessage=\"Map\" id=\"Gallery.Map\" />\n </Button>\n )}\n </div>\n );\n};\n\nexport default GalleryNavigation;\n","/**\n * @generated SignedSource<<723dae9d3528bbe58297b3f8a8ac1ede>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type caseGallery_mediaDataConnection$data = {\n readonly \" $fragmentSpreads\": FragmentRefs<\"caseGallerySwiper_mediaDataConnection\">;\n readonly \" $fragmentType\": \"caseGallery_mediaDataConnection\";\n};\nexport type caseGallery_mediaDataConnection$key = {\n readonly \" $data\"?: caseGallery_mediaDataConnection$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"caseGallery_mediaDataConnection\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"caseGallery_mediaDataConnection\",\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"caseGallerySwiper_mediaDataConnection\"\n }\n ],\n \"type\": \"MediaDataConnection\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"025ea3785e5cfc5a03382f338cb7e32f\";\n\nexport default node;\n","/**\n * @generated SignedSource<<95849cad8f1c89e86ec0ef061fbb0d77>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type caseGallerySwiper_mediaDataConnection$data = {\n readonly edges: ReadonlyArray<{\n readonly node: {\n readonly id: string;\n readonly mediaType: {\n readonly name: string;\n } | null | undefined;\n readonly resourceUrl: string | null | undefined;\n } | null | undefined;\n } | null | undefined> | null | undefined;\n readonly \" $fragmentType\": \"caseGallerySwiper_mediaDataConnection\";\n};\nexport type caseGallerySwiper_mediaDataConnection$key = {\n readonly \" $data\"?: caseGallerySwiper_mediaDataConnection$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"caseGallerySwiper_mediaDataConnection\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"caseGallerySwiper_mediaDataConnection\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"MediaDataEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Media\",\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"resourceType\",\n \"value\": \"Asset\"\n }\n ],\n \"kind\": \"ScalarField\",\n \"name\": \"resourceUrl\",\n \"storageKey\": \"resourceUrl(resourceType:\\\"Asset\\\")\"\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"MediaType\",\n \"kind\": \"LinkedField\",\n \"name\": \"mediaType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"MediaDataConnection\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"131004f792add142f0c47950309a50dc\";\n\nexport default node;\n","import Button from 'components/atoms/button/button';\nimport Typography from 'components/atoms/typography/typography';\n\nimport { FormattedMessage } from 'react-intl';\nimport './swiper-navigation.scss';\nimport { FC } from 'react';\n\nexport interface SwiperNavigationProps {\n activeImageIndex: number;\n imagesLength: number;\n}\n\nconst SwiperNavigation: FC<SwiperNavigationProps> = (props) => {\n const { activeImageIndex, imagesLength } = props;\n return (\n <div className=\"swiper-navigation\">\n <div className=\"swiper-navigation__arrows\">\n <Button className=\"swiper-navigation__arrow swiper-navigation__arrow--prev\" hideText iconStart=\"FullArrowLeft\">\n <FormattedMessage defaultMessage=\"Previous image\" id=\"Gallery.Previous\" />\n </Button>\n <Button className=\"swiper-navigation__arrow swiper-navigation__arrow--next\" hideText iconStart=\"FullArrowRight\">\n <FormattedMessage defaultMessage=\"Next image\" id=\"Gallery.Next\" />\n </Button>\n </div>\n <div className=\"swiper-navigation__number\">\n <Typography tagStyle=\"bodyLarge\">{activeImageIndex + 1} / </Typography>\n <Typography subjectColor=\"gray\" tagStyle=\"bodyLarge\">\n {imagesLength}\n </Typography>\n </div>\n </div>\n );\n};\n\nexport default SwiperNavigation;\n","import { FC } from 'react';\n\ntype Props = {\n url: string;\n onImageClick?: (index: number) => void;\n activeSwiperIndex: number;\n noPlay?: boolean;\n};\nexport const Video: FC<Props> = ({ url, onImageClick, activeSwiperIndex, noPlay }) => {\n const attr = noPlay\n ? { controls: false, muted: true, autoPlay: false }\n : {\n controls: true,\n autoPlay: true,\n muted: true,\n loop: true,\n };\n return (\n <video className=\"gallery-swiper__image\" onClick={() => onImageClick?.(activeSwiperIndex)} {...attr}>\n <source src={url ?? ''} type=\"video/mp4\" />\n </video>\n );\n};\n","import { FC } from 'react';\n\ntype Props = {\n url: string;\n name: string;\n};\nexport const ImageElement: FC<Props> = ({ url, name }) => {\n return (\n <img\n className={'gallery-swiper__image ' + (name === 'Plantegning' && 'gallery-swiper__image--plan')}\n src={url}\n alt={'case image'}\n />\n );\n};\n","import { caseGallerySwiper_mediaDataConnection$key } from '__generated__/caseGallerySwiper_mediaDataConnection.graphql';\nimport GalleryNavigation from 'components/molecules/gallery-navigation/gallery-navigation';\nimport SwiperNavigation from 'components/molecules/swiper-navigation/swiper-navigation';\nimport Container from 'components/utilities/container/container';\nimport { useNodes } from 'hooks/useNodes';\nimport { FC, useMemo, useRef, useState } from 'react';\nimport { graphql, useFragment } from 'react-relay';\nimport SwiperCore, { Controller, Navigation } from 'swiper';\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport 'swiper/swiper.min.css';\nimport './case-gallery-swiper.scss';\nimport { Video } from 'components/molecules/images-swiper/video';\nimport { ImageElement } from 'components/molecules/images-swiper/image';\n\nconst caseGalleryFragment = graphql`\n fragment caseGallerySwiper_mediaDataConnection on MediaDataConnection {\n edges {\n node {\n id\n resourceUrl(resourceType: Asset)\n mediaType {\n name\n }\n }\n }\n }\n`;\n\nexport interface CaseGallerySwiperProps {\n mediaDataConnection: caseGallerySwiper_mediaDataConnection$key | null;\n onSelectFullscreen: (imageIndex: number) => void;\n onSelectMap: () => void;\n slideToImage: number;\n}\n\nexport const CaseGallerySwiper: FC<CaseGallerySwiperProps> = (props) => {\n const { onSelectFullscreen, onSelectMap, slideToImage } = props;\n const mediaDataConnection = useFragment(caseGalleryFragment, props.mediaDataConnection);\n\n const [firstSwiper, setFirstSwiper] = useState<SwiperCore>();\n const [secondSwiper, setSecondSwiper] = useState<SwiperCore>();\n const [activeSwiperIndex, setActiveSwiperIndex] = useState(0);\n const gallerySwiperRef = useRef<HTMLDivElement>(null);\n\n const images = useNodes(mediaDataConnection?.edges);\n const hasPlan = useMemo(() => images.some((image) => image.mediaType?.name === 'Plantegning'), [images]);\n const hasVideo = useMemo(() => images.some((image) => image.mediaType?.name === 'Video'), [images]);\n\n const handleSelectPlan = () => {\n const index = images.findIndex((image) => image.mediaType?.name === 'Plantegning');\n firstSwiper?.slideTo(index);\n };\n\n const handleSelectVideo = () => {\n const index = images.findIndex((image) => image.mediaType?.name === 'Video');\n firstSwiper?.slideTo(index);\n };\n\n return (\n <Container className=\"gallery-swiper__container\">\n <div className=\"gallery-swiper\" ref={gallerySwiperRef}>\n <Swiper\n centeredSlides\n className=\"gallery-swiper__images swiper-container-1\"\n controller={{ control: secondSwiper }}\n initialSlide={slideToImage || 0}\n modules={[Navigation, Controller]}\n navigation={{\n nextEl: '.swiper-navigation__arrow--next',\n prevEl: '.swiper-navigation__arrow--prev',\n }}\n onActiveIndexChange={(swiperCore) => setActiveSwiperIndex(swiperCore.activeIndex)}\n onSwiper={setFirstSwiper}\n slidesPerView={1}\n spaceBetween={0}\n >\n {images.map((image) => (\n <SwiperSlide key={image.id}>\n {image.mediaType?.name === 'Video' ? (\n <Video url={image.resourceUrl ?? ''} activeSwiperIndex={activeSwiperIndex} />\n ) : (\n <ImageElement url={image.resourceUrl ?? ''} name={image.mediaType?.name ?? ''} />\n )}\n </SwiperSlide>\n ))}\n <SwiperNavigation activeImageIndex={activeSwiperIndex} imagesLength={images.length} />\n <GalleryNavigation\n isFullscreenVisible\n isPlanVisible={hasPlan}\n isVideoInList={hasVideo}\n onSelectFullscreen={() => onSelectFullscreen(activeSwiperIndex)}\n onSelectMap={onSelectMap}\n onSelectVideo={handleSelectVideo}\n onSelectPlan={handleSelectPlan}\n />\n </Swiper>\n <Swiper\n centeredSlides\n className=\"gallery-swiper__thumbs swiper-container-2\"\n controller={{ control: firstSwiper }}\n initialSlide={slideToImage || 0}\n modules={[Controller]}\n onSwiper={setSecondSwiper}\n slideToClickedSlide\n slidesPerView={'auto'}\n spaceBetween={8}\n >\n {images.map((image) => (\n <SwiperSlide key={image.id}>\n {image.mediaType?.name === 'Video' ? (\n <Video url={image.resourceUrl ?? ''} activeSwiperIndex={activeSwiperIndex} noPlay={true} />\n ) : (\n <ImageElement url={image.resourceUrl ?? ''} name={image.mediaType?.name ?? ''} />\n )}\n </SwiperSlide>\n ))}\n </Swiper>\n </div>\n </Container>\n );\n};\n","import { caseGallery_mediaDataConnection$key } from '__generated__/caseGallery_mediaDataConnection.graphql';\nimport PopupOverlay from 'components/molecules/popup-overlay/popup-overlay';\nimport Container from 'components/utilities/container/container';\nimport { graphql, useFragment } from 'react-relay';\nimport { FC } from 'react';\nimport { CaseGallerySwiper } from '../case-gallery-swiper/case-gallery-swiper';\nimport './case-gallery.scss';\n\nconst caseGalleryFragment = graphql`\n fragment caseGallery_mediaDataConnection on MediaDataConnection {\n ...caseGallerySwiper_mediaDataConnection\n }\n`;\nexport interface CaseGalleryProps {\n onCloseGallery: () => void;\n onSelectFullscreen: (imageIndex: number) => void;\n onSelectMap: () => void;\n slideToImage: number;\n mediaDataConnection: caseGallery_mediaDataConnection$key | null;\n}\n\nexport const CaseGallery: FC<CaseGalleryProps> = (props) => {\n const mediaDataConnection = useFragment(caseGalleryFragment, props.mediaDataConnection);\n\n const { onSelectFullscreen, onSelectMap, onCloseGallery, slideToImage } = props;\n\n return (\n <div className=\"case-gallery\">\n <PopupOverlay onClose={onCloseGallery}>\n <Container>\n <CaseGallerySwiper\n mediaDataConnection={mediaDataConnection}\n onSelectFullscreen={onSelectFullscreen}\n onSelectMap={onSelectMap}\n slideToImage={slideToImage}\n />\n </Container>\n </PopupOverlay>\n </div>\n );\n};\n","import { GoogleMap, Libraries, Marker, useJsApiLoader } from '@react-google-maps/api';\nimport PopupOverlay from 'components/molecules/popup-overlay/popup-overlay';\n\nimport { FC } from 'react';\nimport { appSettings } from '../../../setup/setup-app-settings';\nimport './map-overlay.scss';\n\nexport interface MapOverlayProps {\n lat: number;\n lng: number;\n onClose: () => void;\n}\n\nconst LIBRARIES: Libraries = ['places'];\n\nconst MapOverlay: FC<MapOverlayProps> = (props) => {\n const { onClose, lat, lng } = props;\n\n const mapOptions = {\n fullscreenControl: false,\n gestureHandling: 'greedy',\n mapTypeControl: false,\n overviewMapControl: true,\n rotateControl: true,\n scaleControl: true,\n scrollwheel: true,\n streetViewControl: false,\n zoomControl: true,\n };\n\n const { isLoaded } = useJsApiLoader({\n id: 'google-map-script',\n libraries: LIBRARIES,\n googleMapsApiKey: appSettings.settings.GOOGLE_MAPS_API_KEY,\n });\n\n return (\n <PopupOverlay className=\"map-overlay\" onClose={onClose}>\n <div className=\"map-overlay-map\">\n {isLoaded && (\n <GoogleMap center={{ lat, lng }} mapContainerStyle={{ height: '100%' }} options={mapOptions} zoom={14}>\n <Marker position={{ lat, lng }} />\n </GoogleMap>\n )}\n </div>\n </PopupOverlay>\n );\n};\n\nexport default MapOverlay;\n","/**\n * @generated SignedSource<<7ffbab76439b749b12881b5e768b3142>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type caseImagesSwiper_mediaDataConnection$data = {\n readonly edges: ReadonlyArray<{\n readonly node: {\n readonly id: string;\n readonly mediaType: {\n readonly name: string;\n } | null | undefined;\n readonly resourceUrl: string | null | undefined;\n } | null | undefined;\n } | null | undefined> | null | undefined;\n readonly \" $fragmentType\": \"caseImagesSwiper_mediaDataConnection\";\n};\nexport type caseImagesSwiper_mediaDataConnection$key = {\n readonly \" $data\"?: caseImagesSwiper_mediaDataConnection$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"caseImagesSwiper_mediaDataConnection\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"caseImagesSwiper_mediaDataConnection\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"MediaDataEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Media\",\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"resourceType\",\n \"value\": \"Asset\"\n }\n ],\n \"kind\": \"ScalarField\",\n \"name\": \"resourceUrl\",\n \"storageKey\": \"resourceUrl(resourceType:\\\"Asset\\\")\"\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"MediaType\",\n \"kind\": \"LinkedField\",\n \"name\": \"mediaType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"MediaDataConnection\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"45b595d47bf18ddcb27e47ccf57d9ec3\";\n\nexport default node;\n","import { caseImagesSwiper_mediaDataConnection$key } from '__generated__/caseImagesSwiper_mediaDataConnection.graphql';\nimport Icon from 'components/atoms/icon/icon';\nimport SwiperNavigation from 'components/molecules/swiper-navigation/swiper-navigation';\nimport { useNodes } from 'hooks/useNodes';\nimport { FC, ReactNode, useRef, useState } from 'react';\nimport { graphql, useFragment } from 'react-relay';\nimport { Navigation } from 'swiper';\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport 'swiper/swiper.min.css';\nimport './case-images-swiper.scss';\nimport { Video } from 'components/molecules/images-swiper/video';\nimport { ImageElement } from 'components/molecules/images-swiper/image';\n\nconst caseImagesSwiperFragment = graphql`\n fragment caseImagesSwiper_mediaDataConnection on MediaDataConnection {\n edges {\n node {\n id\n resourceUrl(resourceType: Asset)\n mediaType {\n name\n }\n }\n }\n }\n`;\n\ninterface CaseImagesSwiperProps {\n children?: ReactNode;\n mediaDataConnection: caseImagesSwiper_mediaDataConnection$key | null;\n onImageClick?: (imageIndex: number) => void;\n slideToImage?: number;\n}\n\nconst CaseImagesSwiper: FC<CaseImagesSwiperProps> = (props) => {\n const mediaDataConnection = useFragment(caseImagesSwiperFragment, props.mediaDataConnection);\n\n const { children, slideToImage, onImageClick } = props;\n\n const [activeSwiperIndex, setActiveSwiperIndex] = useState(0);\n const imagesSwiperRef = useRef<HTMLDivElement>(null);\n const images = useNodes(mediaDataConnection?.edges);\n\n const handleOnClick = (activeIndex: number) => {\n if (onImageClick) {\n onImageClick(activeIndex);\n }\n };\n\n if (images.length === 0) {\n return (\n <div className=\"case-images-swiper\">\n <Icon className=\"case-images-swiper__empty\" name=\"Image\" />\n </div>\n );\n }\n\n return (\n <div className=\"case-images-swiper\" ref={imagesSwiperRef}>\n <Swiper\n centeredSlides\n className=\"case-images-swiper__images swiper-container-1\"\n initialSlide={slideToImage || 0}\n modules={[Navigation]}\n navigation={{\n nextEl: '.swiper-navigation__arrow--next',\n prevEl: '.swiper-navigation__arrow--prev',\n }}\n onActiveIndexChange={(swiperCore) => setActiveSwiperIndex(swiperCore.activeIndex)}\n slidesPerView={1}\n spaceBetween={0}\n >\n {images.map((image) => (\n <SwiperSlide key={image.id}>\n {image.mediaType?.name === 'Video' ? (\n <Video activeSwiperIndex={activeSwiperIndex} url={image.resourceUrl ?? ''} onImageClick={handleOnClick} />\n ) : (\n <ImageElement name={image.mediaType?.name ?? ''} url={image.resourceUrl ?? ''} />\n )}\n </SwiperSlide>\n ))}\n <SwiperNavigation activeImageIndex={activeSwiperIndex} imagesLength={images.length} />\n {children}\n </Swiper>\n </div>\n );\n};\n\nexport default CaseImagesSwiper;\n","/**\n * @generated SignedSource<<3b9b13cf3eea54c32f7f410df2841d08>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type caseFullscreenGallery_mediaDataConnection$data = {\n readonly \" $fragmentSpreads\": FragmentRefs<\"caseImagesSwiper_mediaDataConnection\">;\n readonly \" $fragmentType\": \"caseFullscreenGallery_mediaDataConnection\";\n};\nexport type caseFullscreenGallery_mediaDataConnection$key = {\n readonly \" $data\"?: caseFullscreenGallery_mediaDataConnection$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"caseFullscreenGallery_mediaDataConnection\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"caseFullscreenGallery_mediaDataConnection\",\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"caseImagesSwiper_mediaDataConnection\"\n }\n ],\n \"type\": \"MediaDataConnection\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"fb8720a7358b2b1b600a9b8af05ccb53\";\n\nexport default node;\n","import { caseFullscreenGallery_mediaDataConnection$key } from '__generated__/caseFullscreenGallery_mediaDataConnection.graphql';\nimport { FC } from 'react';\nimport { graphql, useFragment } from 'react-relay';\nimport CaseImagesSwiper from '../case-images-swiper/case-images-swiper';\nimport PopupOverlay from '../popup-overlay/popup-overlay';\nimport './case-fullscreen-gallery.scss';\n\nconst caseFullscreenGalleryFragment = graphql`\n fragment caseFullscreenGallery_mediaDataConnection on MediaDataConnection {\n ...caseImagesSwiper_mediaDataConnection\n }\n`;\n\nexport interface CaseFullscreenGalleryProps {\n mediaDataConnection: caseFullscreenGallery_mediaDataConnection$key | null;\n onCloseFullscreen: () => void;\n slideToImage: number;\n}\n\nexport const CaseFullscreenGallery: FC<CaseFullscreenGalleryProps> = (props) => {\n const mediaDataConnection = useFragment(caseFullscreenGalleryFragment, props.mediaDataConnection);\n const { slideToImage, onCloseFullscreen } = props;\n\n return (\n <div className=\"case-fullscreen-gallery\">\n <PopupOverlay onClose={onCloseFullscreen}>\n <CaseImagesSwiper mediaDataConnection={mediaDataConnection} slideToImage={slideToImage} />\n </PopupOverlay>\n </div>\n );\n};\n","import Icon from 'components/atoms/icon/icon';\nimport Loader from 'components/atoms/loader/loader';\nimport Typography from 'components/atoms/typography/typography';\nimport GalleryNavigation from 'components/molecules/gallery-navigation/gallery-navigation';\nimport { CaseGallery } from 'components/organisms/case-gallery/case-gallery';\nimport MapOverlay from 'components/organisms/map-overlay/map-overlay';\nimport { SuspenseHoc } from 'components/templates/suspense-hoc';\nimport Column from 'components/utilities/column/column';\nimport Container from 'components/utilities/container/container';\nimport Row from 'components/utilities/row/row';\nimport { useNodes } from 'hooks/useNodes';\nimport { FC, Fragment, useMemo, useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useFragment } from 'react-relay';\nimport { caseImages_Media$key } from '__generated__/caseImages_Media.graphql';\nimport CaseImagesSwiper from 'components/molecules/case-images-swiper/case-images-swiper';\nimport { CaseFullscreenGallery } from 'components/molecules/case-fullscreen-gallery/case-fullscreen-gallery';\n\nconst caseImagesFragment = graphql`\n fragment caseImages_Media on MediaDataConnection {\n ...caseGallery_mediaDataConnection\n ...caseFullscreenGallery_mediaDataConnection\n ...caseImagesSwiper_mediaDataConnection\n edges {\n node {\n resourceUrl(resourceType: Asset)\n mediaType {\n name\n }\n }\n }\n }\n`;\n\nconst getImageColumnWidth = (images: readonly unknown[]) => {\n if (images.length >= 3) {\n return 6;\n } else if (images.length === 2) {\n return 4;\n } else {\n return 8;\n }\n};\n\ninterface CaseImagesProps {\n fragment: caseImages_Media$key | undefined | null;\n gpsCoordinates: string;\n}\n\nexport const CaseImages: FC<CaseImagesProps> = ({ fragment, gpsCoordinates }) => {\n const data = useFragment(caseImagesFragment, fragment ?? null);\n\n const images = useNodes(data?.edges);\n const firstImage = images[0] ? images[0] : null;\n const secondImage = images[1] ? images[1] : null;\n const thirdImage = images[2] ? images[2] : null;\n const hiddenNumberOfImages = images.length - 3;\n\n const [galleryOpen, setGalleryOpen] = useState<number | null>(null);\n const [mapOverlayOpen, setMapOverlayOpen] = useState<{\n lat: number;\n lng: number;\n } | null>(null);\n const [fullscreenGalleryOpen, setFullscreenGalleryOpen] = useState<number | null>(null);\n\n const hasPlan = useMemo(() => images.some((image) => image.mediaType?.name === 'Plantegning'), [images]);\n const hasVideo = useMemo(() => images.some((image) => image.mediaType?.name === 'Video'), [images]);\n\n const handleSelectMap = () => {\n if (gpsCoordinates) {\n const coords = gpsCoordinates.split(' ');\n setMapOverlayOpen({\n lat: +coords[0],\n lng: +coords[1],\n });\n }\n };\n\n const onImageClick = (imageIndex: number) => {\n if (images.length > 0) {\n setGalleryOpen(imageIndex);\n }\n };\n const onSelectFullscreen = (imageIndex: number) => setFullscreenGalleryOpen(imageIndex);\n\n const onSelectPlan = () => {\n setFullscreenGalleryOpen(images.findIndex((image) => image.mediaType?.name === 'Plantegning'));\n };\n\n const onSelectVideo = () => {\n setFullscreenGalleryOpen(images.findIndex((image) => image.mediaType?.name === 'Video'));\n };\n\n if (!images) return <Loader />;\n\n return (\n <Fragment>\n <Container className=\"case-hero-images\" fullWidth paddingBottomReset paddingTopReset>\n <Row className=\"case-hero-images__desktop\">\n <Column className=\"image-container\" width={{ mobile: 8, tablet: getImageColumnWidth(images) }}>\n <div className=\"image-container__image\" onClick={() => onImageClick(0)}>\n {firstImage && <img alt=\"firstImage\" src={firstImage?.resourceUrl ?? ''} />}\n {!firstImage && <Icon name=\"Image\" />}\n </div>\n </Column>\n {secondImage && (\n <Column className=\"image-container\" width={{ mobile: 0, tablet: images.length >= 3 ? 2 : 4 }}>\n <div className=\"image-container__image\" onClick={() => onImageClick(1)}>\n <img alt=\"\" src={secondImage.resourceUrl ?? ''} />\n </div>\n {thirdImage && (\n <div\n className={'image-container__image ' + (hiddenNumberOfImages > 0 ? 'has-overlay' : '')}\n onClick={() => onImageClick(2)}\n >\n {hiddenNumberOfImages > 0 && (\n <div className=\"has-overlay__text\">\n <Icon name=\"Images\" />\n <Typography tagStyle=\"bodyMedium\">\n <FormattedMessage\n defaultMessage={'+ {count} {count, plural, one {billede} other {billeder}}'}\n values={{ count: hiddenNumberOfImages }}\n id=\"CaseGallery.image\"\n />\n </Typography>\n </div>\n )}\n\n <img alt=\"\" src={thirdImage?.resourceUrl ?? ''} />\n </div>\n )}\n </Column>\n )}\n </Row>\n <Row className=\"case-hero-images__mobile\">\n <CaseImagesSwiper mediaDataConnection={data} onImageClick={(imageIndex) => onSelectFullscreen(imageIndex)} />\n </Row>\n <GalleryNavigation\n isFullscreenVisible={images.length > 0}\n isPlanVisible={hasPlan}\n isVideoInList={hasVideo}\n onSelectVideo={onSelectVideo}\n onSelectFullscreen={() => onSelectFullscreen(0)}\n onSelectMap={handleSelectMap}\n onSelectPlan={onSelectPlan}\n />\n </Container>\n {galleryOpen !== null && (\n <SuspenseHoc fallback={<Loader />}>\n <CaseGallery\n onCloseGallery={() => setGalleryOpen(null)}\n onSelectFullscreen={setFullscreenGalleryOpen}\n onSelectMap={handleSelectMap}\n slideToImage={galleryOpen}\n mediaDataConnection={data}\n />\n </SuspenseHoc>\n )}\n {fullscreenGalleryOpen !== null && (\n <CaseFullscreenGallery\n mediaDataConnection={data}\n onCloseFullscreen={() => setFullscreenGalleryOpen(null)}\n slideToImage={fullscreenGalleryOpen}\n />\n )}\n {mapOverlayOpen && (\n <MapOverlay lat={mapOverlayOpen.lat} lng={mapOverlayOpen.lng} onClose={() => setMapOverlayOpen(null)} />\n )}\n </Fragment>\n );\n};\n","/**\n * @generated SignedSource<<a7947d3cbb8a58d9415d0f97bac919d9>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type BusinessPropertyType = \"Cattle\" | \"Cellar\" | \"Clinic\" | \"Crop\" | \"FarmLand\" | \"ForestProperty\" | \"FreeLand\" | \"Garage\" | \"HotelOrRestaurant\" | \"HousingAndBusiness\" | \"HousingCooperative\" | \"Investment\" | \"Liberal\" | \"MinkAndFurAnimals\" | \"Office\" | \"Parking\" | \"Pigs\" | \"Plot\" | \"PoultryProduction\" | \"ProductionFacility\" | \"ShoppingCenter\" | \"Showroom\" | \"SpecialProduction\" | \"Store\" | \"WareHouse\" | \"WareHouseAndProduction\" | \"Workshop\";\nexport type PropertyType = \"AllYearRoundPlot\" | \"AllotmentHut\" | \"AllotmentPlot\" | \"Condo\" | \"FarmHouseAgriculture\" | \"FormerFarm\" | \"FreeLand\" | \"HobbyAgriculture\" | \"HousingCooperative\" | \"IdeelAnpartCondo\" | \"IdeelAnpartTerracedHouse\" | \"IdeelAnpartVilla\" | \"Liebhaveri\" | \"MixedHousingAndBusiness\" | \"PartnershipOrLimitedPartnershipCondo\" | \"PartnershipOrLimitedPartnershipTerracedHouse\" | \"PartnershipOrLimitedPartnershipVilla\" | \"TerracedHouse\" | \"TerracedHouseWithCondoStatus\" | \"TwoFamilyProperty\" | \"VacationCondo\" | \"VacationHousing\" | \"VacationPlot\" | \"Villa\" | \"VillaApartment\" | \"VillaWithCondoStatus\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type matchHeroDetailsFragment$data = {\n readonly __typename: \"SalesCase\";\n readonly address: string | null | undefined;\n readonly baseCaseMainOffer: {\n readonly \" $fragmentSpreads\": FragmentRefs<\"matchHeroContentCounselingCase\">;\n } | null | undefined;\n readonly businessPropertyType?: BusinessPropertyType;\n readonly city: string | null | undefined;\n readonly propertyType?: PropertyType;\n readonly zipCode: string | null | undefined;\n readonly \" $fragmentSpreads\": FragmentRefs<\"matchHeroContentAgriculturalCase_baseCase\" | \"matchHeroContentBusinessSalesCase\" | \"matchHeroContentRentalCase\" | \"matchHeroContentSalesCase\">;\n readonly \" $fragmentType\": \"matchHeroDetailsFragment\";\n};\nexport type matchHeroDetailsFragment$key = {\n readonly \" $data\"?: matchHeroDetailsFragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"matchHeroDetailsFragment\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"propertyType\",\n \"storageKey\": null\n},\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n},\nv2 = [\n (v1/*: any*/),\n (v0/*: any*/)\n],\nv3 = [\n (v1/*: any*/),\n {\n \"alias\": \"businessPropertyType\",\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"propertyType\",\n \"storageKey\": null\n }\n];\nreturn {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"matchHeroDetailsFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"address\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"zipCode\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"city\",\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"matchHeroContentAgriculturalCase_baseCase\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"matchHeroContentSalesCase\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"matchHeroContentRentalCase\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"matchHeroContentBusinessSalesCase\"\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"BaseCaseMainOffer\",\n \"kind\": \"LinkedField\",\n \"name\": \"baseCaseMainOffer\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"matchHeroContentCounselingCase\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/)\n ],\n \"type\": \"SalesCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v2/*: any*/),\n \"type\": \"RectifyCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v2/*: any*/),\n \"type\": \"CounselingPropertyCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v2/*: any*/),\n \"type\": \"RentalCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v2/*: any*/),\n \"type\": \"CounselingCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v3/*: any*/),\n \"type\": \"BusinessSalesCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v3/*: any*/),\n \"type\": \"BusinessRentalCase\",\n \"abstractKey\": null\n }\n ],\n \"type\": \"BaseCase\",\n \"abstractKey\": \"__isBaseCase\"\n};\n})();\n\n(node as any).hash = \"0a0f08bbe58ce6492c7e53a0e4d030df\";\n\nexport default node;\n","/**\n * @generated SignedSource<<c8621b06729eb327bb80ad56efc6211b>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type BusinessPropertyType = \"Cattle\" | \"Cellar\" | \"Clinic\" | \"Crop\" | \"FarmLand\" | \"ForestProperty\" | \"FreeLand\" | \"Garage\" | \"HotelOrRestaurant\" | \"HousingAndBusiness\" | \"HousingCooperative\" | \"Investment\" | \"Liberal\" | \"MinkAndFurAnimals\" | \"Office\" | \"Parking\" | \"Pigs\" | \"Plot\" | \"PoultryProduction\" | \"ProductionFacility\" | \"ShoppingCenter\" | \"Showroom\" | \"SpecialProduction\" | \"Store\" | \"WareHouse\" | \"WareHouseAndProduction\" | \"Workshop\";\nexport type BusinessRentalCaseStatus = \"Commissioned\" | \"Discontinued\" | \"ForRent\" | \"LostCommission\" | \"LostSale\" | \"None\" | \"Rented\" | \"UnderRent\" | \"Valuation\";\nexport type BusinessSalesCaseStatus = \"BeforeSale\" | \"FinallyTrade\" | \"ForSale\" | \"LostCommission\" | \"NotDefined\" | \"Return\" | \"Sold\" | \"UnderSale\" | \"Valuation\";\nexport type EnergyMarkSeverity = \"A\" | \"A1\" | \"A2\" | \"A2010\" | \"A2015\" | \"A2020\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\" | \"Unknown\";\nexport type PropertyType = \"AllYearRoundPlot\" | \"AllotmentHut\" | \"AllotmentPlot\" | \"Condo\" | \"FarmHouseAgriculture\" | \"FormerFarm\" | \"FreeLand\" | \"HobbyAgriculture\" | \"HousingCooperative\" | \"IdeelAnpartCondo\" | \"IdeelAnpartTerracedHouse\" | \"IdeelAnpartVilla\" | \"Liebhaveri\" | \"MixedHousingAndBusiness\" | \"PartnershipOrLimitedPartnershipCondo\" | \"PartnershipOrLimitedPartnershipTerracedHouse\" | \"PartnershipOrLimitedPartnershipVilla\" | \"TerracedHouse\" | \"TerracedHouseWithCondoStatus\" | \"TwoFamilyProperty\" | \"VacationCondo\" | \"VacationHousing\" | \"VacationPlot\" | \"Villa\" | \"VillaApartment\" | \"VillaWithCondoStatus\";\nexport type RentalCaseStatus = \"Commissioned\" | \"Discontinued\" | \"ForRent\" | \"LostCommission\" | \"LostSale\" | \"Rented\" | \"UnderRent\" | \"Unknown\" | \"Valuation\";\nexport type SalesCaseStatus = \"BeforeSale\" | \"FinallyTrade\" | \"ForSale\" | \"LostCommission\" | \"NotDefined\" | \"Return\" | \"Sold\" | \"UnderSale\" | \"Valuation\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type matchHeroContentAgriculturalCase_baseCase$data = {\n readonly baseCaseMainOffer: {\n readonly cashPrice: any | null | undefined;\n readonly totalCosts: {\n readonly minimumPayout: any | null | undefined;\n readonly yearlyGrossOutput: any | null | undefined;\n readonly yearlyNetOutput: any | null | undefined;\n } | null | undefined;\n } | null | undefined;\n readonly businessPropertyType?: BusinessPropertyType;\n readonly businessRentalCase?: BusinessRentalCaseStatus | null | undefined;\n readonly businessSalesCaseStatus?: BusinessSalesCaseStatus | null | undefined;\n readonly caseAreas: {\n readonly livableArea: number | null | undefined;\n readonly plotAreaSum: number | null | undefined;\n } | null | undefined;\n readonly energyMark: EnergyMarkSeverity | null | undefined;\n readonly heat: string | null | undefined;\n readonly ownerCostsTotalMonthly?: any | null | undefined;\n readonly propertyType?: PropertyType;\n readonly rentalStatus?: RentalCaseStatus | null | undefined;\n readonly salesStatus?: SalesCaseStatus | null | undefined;\n readonly yearBuilt: number | null | undefined;\n readonly \" $fragmentType\": \"matchHeroContentAgriculturalCase_baseCase\";\n};\nexport type matchHeroContentAgriculturalCase_baseCase$key = {\n readonly \" $data\"?: matchHeroContentAgriculturalCase_baseCase$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"matchHeroContentAgriculturalCase_baseCase\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"propertyType\",\n \"storageKey\": null\n},\nv1 = [\n (v0/*: any*/)\n],\nv2 = {\n \"alias\": \"businessPropertyType\",\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"propertyType\",\n \"storageKey\": null\n};\nreturn {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"matchHeroContentAgriculturalCase_baseCase\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"energyMark\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"yearBuilt\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"heat\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"BaseCaseMainOffer\",\n \"kind\": \"LinkedField\",\n \"name\": \"baseCaseMainOffer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"cashPrice\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"TotalCosts\",\n \"kind\": \"LinkedField\",\n \"name\": \"totalCosts\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"yearlyGrossOutput\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"yearlyNetOutput\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"minimumPayout\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseAreas\",\n \"kind\": \"LinkedField\",\n \"name\": \"caseAreas\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"livableArea\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"plotAreaSum\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"ownerCostsTotalMonthly\",\n \"storageKey\": null\n },\n (v0/*: any*/),\n {\n \"alias\": \"salesStatus\",\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"status\",\n \"storageKey\": null\n }\n ],\n \"type\": \"SalesCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v1/*: any*/),\n \"type\": \"RectifyCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v1/*: any*/),\n \"type\": \"CounselingPropertyCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v0/*: any*/),\n {\n \"alias\": \"rentalStatus\",\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"status\",\n \"storageKey\": null\n }\n ],\n \"type\": \"RentalCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v1/*: any*/),\n \"type\": \"CounselingCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": \"businessSalesCaseStatus\",\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"status\",\n \"storageKey\": null\n },\n (v2/*: any*/)\n ],\n \"type\": \"BusinessSalesCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v2/*: any*/),\n {\n \"alias\": \"businessRentalCase\",\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"status\",\n \"storageKey\": null\n }\n ],\n \"type\": \"BusinessRentalCase\",\n \"abstractKey\": null\n }\n ],\n \"type\": \"BaseCase\",\n \"abstractKey\": \"__isBaseCase\"\n};\n})();\n\n(node as any).hash = \"ed2cc5e147f4bcf3957a176763578cf1\";\n\nexport default node;\n","/**\n * @generated SignedSource<<f672ae499bac2f7930323e5a3d594fb4>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type BusinessPropertyType = \"Cattle\" | \"Cellar\" | \"Clinic\" | \"Crop\" | \"FarmLand\" | \"ForestProperty\" | \"FreeLand\" | \"Garage\" | \"HotelOrRestaurant\" | \"HousingAndBusiness\" | \"HousingCooperative\" | \"Investment\" | \"Liberal\" | \"MinkAndFurAnimals\" | \"Office\" | \"Parking\" | \"Pigs\" | \"Plot\" | \"PoultryProduction\" | \"ProductionFacility\" | \"ShoppingCenter\" | \"Showroom\" | \"SpecialProduction\" | \"Store\" | \"WareHouse\" | \"WareHouseAndProduction\" | \"Workshop\";\nexport type BusinessSalesCaseStatus = \"BeforeSale\" | \"FinallyTrade\" | \"ForSale\" | \"LostCommission\" | \"NotDefined\" | \"Return\" | \"Sold\" | \"UnderSale\" | \"Valuation\";\nexport type EnergyMarkSeverity = \"A\" | \"A1\" | \"A2\" | \"A2010\" | \"A2015\" | \"A2020\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\" | \"Unknown\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type matchHeroContentBusinessSalesCase$data = {\n readonly baseCaseMainOffer: {\n readonly cashPrice: any | null | undefined;\n readonly rateOfReturn: ReadonlyArray<{\n readonly annualAmount: any | null | undefined;\n } | null | undefined> | null | undefined;\n } | null | undefined;\n readonly buildings?: ReadonlyArray<{\n readonly isMainBuilding: boolean;\n readonly yearBuilt: number | null | undefined;\n } | null | undefined> | null | undefined;\n readonly businessPropertyType?: BusinessPropertyType;\n readonly caseAreas: {\n readonly builtUpArea: number | null | undefined;\n readonly commercialArea: number | null | undefined;\n readonly livableArea: number | null | undefined;\n readonly plotAreaSum: number | null | undefined;\n } | null | undefined;\n readonly energyMark: EnergyMarkSeverity | null | undefined;\n readonly investmentProperty?: boolean | null | undefined;\n readonly status?: BusinessSalesCaseStatus | null | undefined;\n readonly tenanciesYearlyRentTotal?: any | null | undefined;\n readonly yearBuilt: number | null | undefined;\n readonly \" $fragmentType\": \"matchHeroContentBusinessSalesCase\";\n};\nexport type matchHeroContentBusinessSalesCase$key = {\n readonly \" $data\"?: matchHeroContentBusinessSalesCase$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"matchHeroContentBusinessSalesCase\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"yearBuilt\",\n \"storageKey\": null\n};\nreturn {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"matchHeroContentBusinessSalesCase\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"energyMark\",\n \"storageKey\": null\n },\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"BaseCaseMainOffer\",\n \"kind\": \"LinkedField\",\n \"name\": \"baseCaseMainOffer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"cashPrice\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"IncreasePerYear\",\n \"kind\": \"LinkedField\",\n \"name\": \"rateOfReturn\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"annualAmount\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseAreas\",\n \"kind\": \"LinkedField\",\n \"name\": \"caseAreas\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"commercialArea\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"livableArea\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"plotAreaSum\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"builtUpArea\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"buildings\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isMainBuilding\",\n \"storageKey\": null\n },\n (v0/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"investmentProperty\",\n \"storageKey\": null\n },\n {\n \"alias\": \"businessPropertyType\",\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"propertyType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"status\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"tenanciesYearlyRentTotal\",\n \"storageKey\": null\n }\n ],\n \"type\": \"BusinessSalesCase\",\n \"abstractKey\": null\n }\n ],\n \"type\": \"BaseCase\",\n \"abstractKey\": \"__isBaseCase\"\n};\n})();\n\n(node as any).hash = \"193f315bcfcb87c72792564a1f6fe0de\";\n\nexport default node;\n","/**\n * @generated SignedSource<<cb1b36203d780195d46a168ae3a27f61>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nexport type bookShowcasingModal_Query$variables = Record<PropertyKey, never>;\nexport type bookShowcasingModal_Query$data = {\n readonly viewer: {\n readonly customer: {\n readonly email: string | null | undefined;\n readonly firstName: string | null | undefined;\n readonly isCompany: boolean;\n readonly lastName: string | null | undefined;\n readonly phone: string | null | undefined;\n } | null | undefined;\n readonly leadTypeFromEnum: {\n readonly currentConsent: {\n readonly id: string;\n } | null | undefined;\n } | null | undefined;\n } | null | undefined;\n};\nexport type bookShowcasingModal_Query = {\n response: bookShowcasingModal_Query$data;\n variables: bookShowcasingModal_Query$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isCompany\",\n \"storageKey\": null\n},\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"firstName\",\n \"storageKey\": null\n},\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastName\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"email\",\n \"storageKey\": null\n},\nv4 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"phone\",\n \"storageKey\": null\n},\nv5 = [\n {\n \"kind\": \"Literal\",\n \"name\": \"enum\",\n \"value\": \"Presentation\"\n }\n],\nv6 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv7 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"LeadConsentGraphType\",\n \"kind\": \"LinkedField\",\n \"name\": \"currentConsent\",\n \"plural\": false,\n \"selections\": [\n (v6/*: any*/)\n ],\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"bookShowcasingModal_Query\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Customer\",\n \"kind\": \"LinkedField\",\n \"name\": \"customer\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/),\n (v2/*: any*/),\n (v3/*: any*/),\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": (v5/*: any*/),\n \"concreteType\": \"LeadTypeGraphType\",\n \"kind\": \"LinkedField\",\n \"name\": \"leadTypeFromEnum\",\n \"plural\": false,\n \"selections\": [\n (v7/*: any*/)\n ],\n \"storageKey\": \"leadTypeFromEnum(enum:\\\"Presentation\\\")\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Operation\",\n \"name\": \"bookShowcasingModal_Query\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Customer\",\n \"kind\": \"LinkedField\",\n \"name\": \"customer\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/),\n (v2/*: any*/),\n (v3/*: any*/),\n (v4/*: any*/),\n (v6/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": (v5/*: any*/),\n \"concreteType\": \"LeadTypeGraphType\",\n \"kind\": \"LinkedField\",\n \"name\": \"leadTypeFromEnum\",\n \"plural\": false,\n \"selections\": [\n (v7/*: any*/),\n (v6/*: any*/)\n ],\n \"storageKey\": \"leadTypeFromEnum(enum:\\\"Presentation\\\")\"\n },\n (v6/*: any*/)\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"d5423e42d0a62f43b4fe6ac3bc96016b\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"bookShowcasingModal_Query\",\n \"operationKind\": \"query\",\n \"text\": \"query bookShowcasingModal_Query {\\n viewer {\\n customer {\\n isCompany\\n firstName\\n lastName\\n email\\n phone\\n id\\n }\\n leadTypeFromEnum(enum: Presentation) {\\n currentConsent {\\n id\\n }\\n id\\n }\\n id\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"c7a70be05557437f56256e9795557939\";\n\nexport default node;\n","/**\n * @generated SignedSource<<d80251a0f8ce331f3c60c306c89485f0>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nexport type Presentation = {\n caseId: string;\n comment?: string | null | undefined;\n consentIdGlobal: string;\n email?: string | null | undefined;\n firstName: string;\n lastName: string;\n phoneNumber: string;\n presentationDate?: any | null | undefined;\n sourceIdGlobal?: string | null | undefined;\n};\nexport type createPresentationMutation$variables = {\n input: Presentation;\n};\nexport type createPresentationMutation$data = {\n readonly createPresentation: {\n readonly createdObject: {\n readonly id: string;\n } | null | undefined;\n readonly errors: ReadonlyArray<{\n readonly message: string | null | undefined;\n } | null | undefined> | null | undefined;\n } | null | undefined;\n};\nexport type createPresentationMutation = {\n response: createPresentationMutation$data;\n variables: createPresentationMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n],\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"LeadPresentation\",\n \"kind\": \"LinkedField\",\n \"name\": \"createdObject\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/)\n ],\n \"storageKey\": null\n},\nv4 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"message\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"createPresentationMutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"LeadPresentationCreatedPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"createPresentation\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Error\",\n \"kind\": \"LinkedField\",\n \"name\": \"errors\",\n \"plural\": true,\n \"selections\": [\n (v4/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Mutation\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"createPresentationMutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"LeadPresentationCreatedPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"createPresentation\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Error\",\n \"kind\": \"LinkedField\",\n \"name\": \"errors\",\n \"plural\": true,\n \"selections\": [\n (v4/*: any*/),\n (v2/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"015233bffb9a0a4144c3eb7e60ffa3c4\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"createPresentationMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation createPresentationMutation(\\n $input: Presentation!\\n) {\\n createPresentation(input: $input) {\\n createdObject {\\n id\\n }\\n errors {\\n message\\n id\\n }\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"328315634d0ecf9df28055da6f2dd0f9\";\n\nexport default node;\n","/**\n * @generated SignedSource<<d2cc35dd165f9f1625dd3c13caa00c56>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type CaseAnnouncedType = \"Boligsiden\" | \"BoligsidenPreview\" | \"BorsenEjendomslink\" | \"Landbrugsavisen\" | \"Landbrugsmarkedet\" | \"LokaleBasen\" | \"Offmarket\" | \"Oline\" | \"Respace\" | \"Website\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type matchHeroContentFragment_baseCase$data = {\n readonly __typename: \"SalesCase\";\n readonly caseAnnounced: ReadonlyArray<{\n readonly linkUrl: string | null | undefined;\n readonly type: CaseAnnouncedType;\n } | null | undefined> | null | undefined;\n readonly caseDescription?: string | null | undefined;\n readonly caseDescriptionHeading?: string | null | undefined;\n readonly id: string;\n readonly noAdvertisement?: boolean | null | undefined;\n readonly \" $fragmentSpreads\": FragmentRefs<\"matchHeroDetailsFragment\">;\n readonly \" $fragmentType\": \"matchHeroContentFragment_baseCase\";\n};\nexport type matchHeroContentFragment_baseCase$key = {\n readonly \" $data\"?: matchHeroContentFragment_baseCase$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"matchHeroContentFragment_baseCase\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"matchHeroContentFragment_baseCase\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseAnnounced\",\n \"kind\": \"LinkedField\",\n \"name\": \"caseAnnounced\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"linkUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"type\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"matchHeroDetailsFragment\"\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"noAdvertisement\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseDescription\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseDescriptionHeading\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n }\n ],\n \"type\": \"SalesCase\",\n \"abstractKey\": null\n }\n ],\n \"type\": \"BaseCase\",\n \"abstractKey\": \"__isBaseCase\"\n};\n\n(node as any).hash = \"d869ed0c28e039c737251421b6a9ae8d\";\n\nexport default node;\n","/**\n * @generated SignedSource<<06828c307c4d7e231e292318b115cbf2>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type matchHeroContentFragment_offmarketCase$data = {\n readonly caseDescription: string | null | undefined;\n readonly caseDescriptionHeading: string | null | undefined;\n readonly \" $fragmentSpreads\": FragmentRefs<\"matchHeroOffmarketDetailsFragment_offmarketCase\">;\n readonly \" $fragmentType\": \"matchHeroContentFragment_offmarketCase\";\n};\nexport type matchHeroContentFragment_offmarketCase$key = {\n readonly \" $data\"?: matchHeroContentFragment_offmarketCase$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"matchHeroContentFragment_offmarketCase\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"matchHeroContentFragment_offmarketCase\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseDescription\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseDescriptionHeading\",\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"matchHeroOffmarketDetailsFragment_offmarketCase\"\n }\n ],\n \"type\": \"OffmarketCase\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"d6abeab55867c422590b5f550813ec72\";\n\nexport default node;\n","import { BusinessRentalCaseStatus, BusinessSalesCaseStatus, RentalCaseStatus, SalesCaseStatus } from 'Enums';\nimport { matchHeroContentAgriculturalCase_baseCase$key } from '__generated__/matchHeroContentAgriculturalCase_baseCase.graphql';\nimport classNames from 'classnames';\nimport Typography from 'components/atoms/typography/typography';\nimport Block from 'components/utilities/block/block';\nimport { FC, Fragment, useMemo, useRef } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useFragment } from 'react-relay';\nimport { formatNumber } from 'tools/string-formatters';\n\nexport interface MatchHeroContentAgriculturalcaseProps {\n fragment: matchHeroContentAgriculturalCase_baseCase$key | null;\n isExpanded?: boolean;\n}\n\nconst fragment = graphql`\n fragment matchHeroContentAgriculturalCase_baseCase on BaseCase {\n energyMark\n yearBuilt\n heat\n\n baseCaseMainOffer {\n cashPrice\n totalCosts {\n yearlyGrossOutput\n yearlyNetOutput\n minimumPayout\n }\n }\n caseAreas {\n livableArea\n plotAreaSum\n }\n\n ... on SalesCase {\n ownerCostsTotalMonthly\n propertyType\n salesStatus: status\n }\n\n ... on RectifyCase {\n propertyType\n }\n\n ... on CounselingPropertyCase {\n propertyType\n }\n\n ... on RentalCase {\n propertyType\n rentalStatus: status\n }\n\n ... on CounselingCase {\n propertyType\n }\n ... on BusinessSalesCase {\n businessSalesCaseStatus: status\n\n businessPropertyType: propertyType\n }\n ... on BusinessRentalCase {\n businessPropertyType: propertyType\n businessRentalCase: status\n }\n }\n`;\n\nconst MatchHeroContentAgriculturalCase: FC<MatchHeroContentAgriculturalcaseProps> = (props) => {\n const data = useFragment(fragment, props.fragment);\n\n const showAdditionalInfo = useMemo(() => {\n const propertyType = data?.propertyType || data?.businessPropertyType;\n switch (propertyType) {\n case 'HobbyAgriculture':\n case 'Liebhaveri':\n case 'Cattle':\n case 'Pigs':\n case 'Crop':\n case 'SpecialProduction':\n case 'ForestProperty':\n return true;\n default:\n return false;\n }\n }, [data?.propertyType, data?.businessPropertyType]);\n\n const moreInfoRef = useRef<HTMLElement>(null);\n\n const isValuation =\n data?.businessSalesCaseStatus === BusinessSalesCaseStatus.Valuation ||\n data?.businessRentalCase === BusinessRentalCaseStatus.Valuation ||\n data?.salesStatus === SalesCaseStatus.Valuation ||\n data?.rentalStatus === RentalCaseStatus.Valuation;\n\n return (\n <Fragment>\n {!isValuation && (\n <Block className=\"match-hero-details__row marginTop\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Case price\" id=\"Match.Cashprice\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.baseCaseMainOffer?.cashPrice)}</Typography>\n </Block>\n )}\n {/* if: group2 */}\n {showAdditionalInfo && (\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Housing area\" id=\"Match.Area\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.caseAreas?.livableArea} m²</Typography>\n </Block>\n )}\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Ground area\" id=\"Match.groundArea\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.caseAreas?.plotAreaSum} ha</Typography>\n </Block>\n {/* if: group 2 */}\n {showAdditionalInfo && (\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Energy mark\" id=\"Match.Energymark\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.energyMark}</Typography>\n </Block>\n )}\n\n <div\n className={classNames('match-hero-details__expandable', {\n isExpanded: props.isExpanded,\n })}\n id=\"section-content\"\n >\n <Typography ref={moreInfoRef} className=\"match-hero-details__heading\" tag=\"h4\" tagStyle=\"bodyLarge\">\n <FormattedMessage defaultMessage=\"More info\" id=\"Match.MoreInfo\" />\n </Typography>\n\n {/* if: group2 */}\n {showAdditionalInfo && (\n <Fragment>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Year build\" id=\"Match.YearBuild\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.yearBuilt}</Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Heat source\" id=\"Match.HeatSource\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.heat}</Typography>\n </Block>\n </Fragment>\n )}\n\n <Typography className=\"match-hero-details__heading\" tag=\"h4\" tagStyle=\"bodyLarge\">\n <FormattedMessage defaultMessage=\"Finances\" id=\"Match.Finances\" />\n </Typography>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Payment\" id=\"Match.Payment\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">\n {formatNumber(data?.baseCaseMainOffer?.totalCosts?.minimumPayout, 'kr')}\n </Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Monthly owner cost\" id=\"Match.OwnershipExpense\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.ownerCostsTotalMonthly)}</Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Gross excl. cost of ownership\" id=\"Match.BruttoExcOwnership\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">\n {formatNumber(data?.baseCaseMainOffer?.totalCosts?.yearlyGrossOutput, 'kr')}\n </Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Net excl. cost of ownership\" id=\"Match.NettoExcOwnership\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">\n {formatNumber(data?.baseCaseMainOffer?.totalCosts?.yearlyNetOutput, 'kr')}\n </Typography>\n </Block>\n </div>\n </Fragment>\n );\n};\n\nexport default MatchHeroContentAgriculturalCase;\n","import { BusinessPropertyType, BusinessSalesCaseStatus } from 'Enums';\nimport { matchHeroContentBusinessSalesCase$key } from '__generated__/matchHeroContentBusinessSalesCase.graphql';\nimport classNames from 'classnames';\nimport Typography from 'components/atoms/typography/typography';\nimport Block from 'components/utilities/block/block';\nimport { useList } from 'hooks/useList';\nimport { FC, Fragment, useMemo } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useFragment } from 'react-relay';\nimport { formatNumber } from 'tools/string-formatters';\n\nexport interface MatchHeroContentBusinessSalesCaseProps {\n fragment: matchHeroContentBusinessSalesCase$key | null;\n isExpanded?: boolean;\n}\n\nconst fragment = graphql`\n fragment matchHeroContentBusinessSalesCase on BaseCase {\n energyMark\n yearBuilt\n baseCaseMainOffer {\n cashPrice\n rateOfReturn {\n annualAmount\n }\n }\n caseAreas {\n commercialArea\n livableArea\n plotAreaSum\n builtUpArea\n }\n ... on BusinessSalesCase {\n buildings {\n isMainBuilding\n yearBuilt\n }\n investmentProperty\n businessPropertyType: propertyType\n status\n tenanciesYearlyRentTotal\n }\n }\n`;\n\nconst MatchHeroContentBusinessSalesCase: FC<MatchHeroContentBusinessSalesCaseProps> = (props) => {\n const data = useFragment(fragment, props.fragment);\n\n const isValuation = data?.status === BusinessSalesCaseStatus.Valuation;\n const isPlot = data?.businessPropertyType === BusinessPropertyType.Plot;\n const buildings = useList(data?.buildings);\n\n const yearBuilt = useMemo(() => {\n if (data?.yearBuilt) return data.yearBuilt;\n\n const mainBuilding = buildings.find((building) => building.isMainBuilding);\n if (mainBuilding) {\n return mainBuilding.yearBuilt;\n } else {\n return buildings.length > 0 ? buildings[0].yearBuilt : null;\n }\n }, [buildings, data?.yearBuilt]);\n\n return (\n <Fragment>\n {!isValuation && (\n <Block className=\"match-hero-details__row marginTop\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Case price\" id=\"Match.Cashprice\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.baseCaseMainOffer?.cashPrice)}</Typography>\n </Block>\n )}\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Ground area\" id=\"Match.groundArea\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.caseAreas?.plotAreaSum} m²</Typography>\n </Block>\n {/* if: group one */}\n {!isPlot && (\n <Fragment>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Commercial area\" id=\"Match.CommercialArea\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.caseAreas?.commercialArea} m²</Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Housing area\" id=\"Match.Area\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.caseAreas?.livableArea} m²</Typography>\n </Block>\n </Fragment>\n )}\n {/* if: group one */}\n {!isPlot && (\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Energy mark\" id=\"Match.Energymark\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.energyMark}</Typography>\n </Block>\n )}\n\n <div\n className={classNames('match-hero-details__expandable', {\n isExpanded: props.isExpanded,\n })}\n id=\"section-content\"\n >\n <Typography className=\"match-hero-details__heading\" tag=\"h4\" tagStyle=\"bodyLarge\">\n <FormattedMessage defaultMessage=\"More info\" id=\"Match.MoreInfo\" />\n </Typography>\n {/* if: group 1 */}\n {!isPlot && (\n <Fragment>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Investment property\" id=\"Match.InvestmentProperty\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">\n {data?.investmentProperty ? (\n <FormattedMessage defaultMessage=\"Yes\" id=\"Case.Yes\" />\n ) : (\n <FormattedMessage defaultMessage=\"No\" id=\"Case.No\" />\n )}\n </Typography>\n </Block>\n\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Built up area\" id=\"Match.BuiltUpArea\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.caseAreas?.builtUpArea} m²</Typography>\n </Block>\n </Fragment>\n )}\n\n {/* if: group 1 */}\n {!isPlot && (\n <Fragment>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Year build\" id=\"Match.YearBuild\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{yearBuilt}</Typography>\n </Block>\n </Fragment>\n )}\n\n <Typography className=\"match-hero-details__heading\" tag=\"h4\" tagStyle=\"bodyLarge\">\n <FormattedMessage defaultMessage=\"Finances\" id=\"Match.Finances\" />\n </Typography>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Rate of return:\" id=\"Match.RateOfReturn\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">\n {formatNumber(data?.baseCaseMainOffer?.rateOfReturn?.[0]?.annualAmount, '%')}\n </Typography>\n </Block>\n {!isPlot && (\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage\n defaultMessage=\"Rental income residential and business:\"\n id=\"Match.tenanciesYearlyRentTotal\"\n />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.tenanciesYearlyRentTotal, 'kr')}</Typography>\n </Block>\n )}\n </div>\n </Fragment>\n );\n};\n\nexport default MatchHeroContentBusinessSalesCase;\n","/**\n * @generated SignedSource<<49f4f09e5e137fdb6197a8a692238300>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type matchHeroContentCounselingCase$data = {\n readonly cashPrice: any | null | undefined;\n readonly \" $fragmentType\": \"matchHeroContentCounselingCase\";\n};\nexport type matchHeroContentCounselingCase$key = {\n readonly \" $data\"?: matchHeroContentCounselingCase$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"matchHeroContentCounselingCase\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"matchHeroContentCounselingCase\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"cashPrice\",\n \"storageKey\": null\n }\n ],\n \"type\": \"BaseCaseMainOffer\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"5f34e8e5b1ba9cc73e5cc25098feb15c\";\n\nexport default node;\n","import Typography from 'components/atoms/typography/typography';\nimport Block from 'components/utilities/block/block';\n\nimport { matchHeroContentCounselingCase$key } from '__generated__/matchHeroContentCounselingCase.graphql';\nimport { FC } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useFragment } from 'react-relay';\nimport { formatNumber } from 'tools/string-formatters';\n\nexport interface MatchHeroContentCounselingCaseProps {\n fragment: matchHeroContentCounselingCase$key | null | undefined;\n}\n\nconst fragment = graphql`\n fragment matchHeroContentCounselingCase on BaseCaseMainOffer {\n cashPrice\n }\n`;\nconst MatchHeroContentCounselingCase: FC<MatchHeroContentCounselingCaseProps> = (props) => {\n const data = useFragment(fragment, props.fragment || null);\n\n return (\n <Block className=\"match-hero-details__row marginTop\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Case price\" id=\"Match.Cashprice\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.cashPrice)}</Typography>\n </Block>\n );\n};\n\nexport default MatchHeroContentCounselingCase;\n","/**\n * @generated SignedSource<<f753187c5285622597baa73bcb1622fc>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type EnergyMarkSeverity = \"A\" | \"A1\" | \"A2\" | \"A2010\" | \"A2015\" | \"A2020\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\" | \"Unknown\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type matchHeroContentRentalCase$data = {\n readonly accountElectricity?: any | null | undefined;\n readonly accountHeat?: any | null | undefined;\n readonly accountWater?: any | null | undefined;\n readonly caseAreas: {\n readonly livableArea: number | null | undefined;\n } | null | undefined;\n readonly deposit?: any | null | undefined;\n readonly energyMark: EnergyMarkSeverity | null | undefined;\n readonly prepaidRent?: any | null | undefined;\n readonly rentMonthly?: any | null | undefined;\n readonly roomCount: number | null | undefined;\n readonly yearBuilt: number | null | undefined;\n readonly \" $fragmentType\": \"matchHeroContentRentalCase\";\n};\nexport type matchHeroContentRentalCase$key = {\n readonly \" $data\"?: matchHeroContentRentalCase$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"matchHeroContentRentalCase\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"matchHeroContentRentalCase\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"energyMark\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"yearBuilt\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"roomCount\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseAreas\",\n \"kind\": \"LinkedField\",\n \"name\": \"caseAreas\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"livableArea\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"rentMonthly\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"accountWater\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"accountHeat\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"accountElectricity\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"prepaidRent\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deposit\",\n \"storageKey\": null\n }\n ],\n \"type\": \"RentalCase\",\n \"abstractKey\": null\n }\n ],\n \"type\": \"BaseCase\",\n \"abstractKey\": \"__isBaseCase\"\n};\n\n(node as any).hash = \"eba1845af439cc8f9e366f061f8b7e10\";\n\nexport default node;\n","import { matchHeroContentRentalCase$key } from '__generated__/matchHeroContentRentalCase.graphql';\nimport classNames from 'classnames';\nimport Typography from 'components/atoms/typography/typography';\nimport Block from 'components/utilities/block/block';\nimport { FC, Fragment } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useFragment } from 'react-relay';\nimport { formatNumber } from 'tools/string-formatters';\n\nexport interface MatchHeroContentRentalCaseProps {\n fragment: matchHeroContentRentalCase$key | null;\n isExpanded?: boolean;\n}\n\nconst fragment = graphql`\n fragment matchHeroContentRentalCase on BaseCase {\n energyMark\n yearBuilt\n roomCount\n caseAreas {\n livableArea\n }\n ... on RentalCase {\n rentMonthly\n accountWater\n accountHeat\n accountElectricity\n prepaidRent\n deposit\n }\n }\n`;\n\nconst MatchHeroContentRentalCase: FC<MatchHeroContentRentalCaseProps> = (props) => {\n const data = useFragment(fragment, props.fragment);\n\n return (\n <Fragment>\n <Block className=\"match-hero-details__row marginTop\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Monthly rent\" id=\"Match.RentMonthly\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.rentMonthly)}</Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Housing area\" id=\"Match.Area\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.caseAreas?.livableArea} m²</Typography>\n </Block>\n\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Rooms\" id=\"Match.NumberOfRooms\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.roomCount}</Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Energy mark\" id=\"Match.Energymark\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.energyMark}</Typography>\n </Block>\n\n <div\n className={classNames('match-hero-details__expandable', {\n isExpanded: props.isExpanded,\n })}\n id=\"section-content\"\n >\n <Typography className=\"match-hero-details__heading\" tag=\"h4\" tagStyle=\"bodyLarge\">\n <FormattedMessage defaultMessage=\"More info\" id=\"Match.MoreInfo\" />\n </Typography>\n\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Year build\" id=\"Match.YearBuild\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.yearBuilt}</Typography>\n </Block>\n\n <Typography className=\"match-hero-details__heading\" tag=\"h4\" tagStyle=\"bodyLarge\">\n <FormattedMessage defaultMessage=\"Finances\" id=\"Match.Finances\" />\n </Typography>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Account water\" id=\"Match.AccountWater\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.accountWater)}</Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Account heat\" id=\"Match.AccountHeat\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.accountHeat)}</Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Account heat\" id=\"Match.AccountHeat\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.accountHeat)}</Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Account electricity\" id=\"Match.AccountElectricity\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.accountElectricity)}</Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Prepaid rent\" id=\"Match.PrepaidRent\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.prepaidRent)}</Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Deposit\" id=\"Match.Deposit\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.deposit)}</Typography>\n </Block>\n </div>\n </Fragment>\n );\n};\n\nexport default MatchHeroContentRentalCase;\n","/**\n * @generated SignedSource<<1e43bfec027d5efd21f90d47422cbe89>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type EnergyMarkSeverity = \"A\" | \"A1\" | \"A2\" | \"A2010\" | \"A2015\" | \"A2020\" | \"B\" | \"C\" | \"D\" | \"E\" | \"F\" | \"G\" | \"Unknown\";\nexport type PropertyType = \"AllYearRoundPlot\" | \"AllotmentHut\" | \"AllotmentPlot\" | \"Condo\" | \"FarmHouseAgriculture\" | \"FormerFarm\" | \"FreeLand\" | \"HobbyAgriculture\" | \"HousingCooperative\" | \"IdeelAnpartCondo\" | \"IdeelAnpartTerracedHouse\" | \"IdeelAnpartVilla\" | \"Liebhaveri\" | \"MixedHousingAndBusiness\" | \"PartnershipOrLimitedPartnershipCondo\" | \"PartnershipOrLimitedPartnershipTerracedHouse\" | \"PartnershipOrLimitedPartnershipVilla\" | \"TerracedHouse\" | \"TerracedHouseWithCondoStatus\" | \"TwoFamilyProperty\" | \"VacationCondo\" | \"VacationHousing\" | \"VacationPlot\" | \"Villa\" | \"VillaApartment\" | \"VillaWithCondoStatus\";\nexport type SalesCaseStatus = \"BeforeSale\" | \"FinallyTrade\" | \"ForSale\" | \"LostCommission\" | \"NotDefined\" | \"Return\" | \"Sold\" | \"UnderSale\" | \"Valuation\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type matchHeroContentSalesCase$data = {\n readonly annualHeatingPrice: any | null | undefined;\n readonly baseCaseMainOffer: {\n readonly cashPrice: any | null | undefined;\n readonly technicalPrice: any | null | undefined;\n readonly totalCosts: {\n readonly minimumPayout: any | null | undefined;\n readonly yearlyGrossOutput: any | null | undefined;\n readonly yearlyNetOutput: any | null | undefined;\n } | null | undefined;\n } | null | undefined;\n readonly buildings: ReadonlyArray<{\n readonly buildingInclAreas: ReadonlyArray<{\n readonly area: any | null | undefined;\n } | null | undefined> | null | undefined;\n } | null | undefined> | null | undefined;\n readonly caseAreas: {\n readonly atticArea: number | null | undefined;\n readonly basementArea: number | null | undefined;\n readonly builtUpArea: number | null | undefined;\n readonly livableArea: number | null | undefined;\n readonly plotAreaSum: number | null | undefined;\n } | null | undefined;\n readonly energyMark: EnergyMarkSeverity | null | undefined;\n readonly floorCount: number | null | undefined;\n readonly heat: string | null | undefined;\n readonly otherBuildingsSum: any | null | undefined;\n readonly ownerCostsTotalMonthly?: any | null | undefined;\n readonly propertyType?: PropertyType;\n readonly roomCount: number | null | undefined;\n readonly salesStatus?: SalesCaseStatus | null | undefined;\n readonly yearBuilt: number | null | undefined;\n readonly \" $fragmentType\": \"matchHeroContentSalesCase\";\n};\nexport type matchHeroContentSalesCase$key = {\n readonly \" $data\"?: matchHeroContentSalesCase$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"matchHeroContentSalesCase\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"matchHeroContentSalesCase\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"energyMark\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"yearBuilt\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"heat\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"otherBuildingsSum\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"annualHeatingPrice\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"floorCount\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"roomCount\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"buildings\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"BuildingInclArea\",\n \"kind\": \"LinkedField\",\n \"name\": \"buildingInclAreas\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"area\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"BaseCaseMainOffer\",\n \"kind\": \"LinkedField\",\n \"name\": \"baseCaseMainOffer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"cashPrice\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"technicalPrice\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"TotalCosts\",\n \"kind\": \"LinkedField\",\n \"name\": \"totalCosts\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"yearlyGrossOutput\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"yearlyNetOutput\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"minimumPayout\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseAreas\",\n \"kind\": \"LinkedField\",\n \"name\": \"caseAreas\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"livableArea\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"plotAreaSum\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"atticArea\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"basementArea\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"builtUpArea\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"ownerCostsTotalMonthly\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"propertyType\",\n \"storageKey\": null\n },\n {\n \"alias\": \"salesStatus\",\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"status\",\n \"storageKey\": null\n }\n ],\n \"type\": \"SalesCase\",\n \"abstractKey\": null\n }\n ],\n \"type\": \"BaseCase\",\n \"abstractKey\": \"__isBaseCase\"\n};\n\n(node as any).hash = \"f51d88e8140e628ede9fd38f7fbbdba9\";\n\nexport default node;\n","import { PropertyType, SalesCaseStatus } from 'Enums';\nimport { matchHeroContentSalesCase$key } from '__generated__/matchHeroContentSalesCase.graphql';\nimport classNames from 'classnames';\nimport Typography from 'components/atoms/typography/typography';\nimport Block from 'components/utilities/block/block';\nimport { useList } from 'hooks/useList';\nimport { FC, Fragment, useMemo, useRef } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useFragment } from 'react-relay';\nimport { formatNumber } from 'tools/string-formatters';\n\nexport interface MatchHeroContentSalesCaseProps {\n fragment: matchHeroContentSalesCase$key | null;\n isExpanded?: boolean;\n}\n\nconst fragment = graphql`\n fragment matchHeroContentSalesCase on BaseCase {\n energyMark\n yearBuilt\n heat\n otherBuildingsSum\n annualHeatingPrice\n floorCount\n roomCount\n buildings {\n buildingInclAreas {\n area\n }\n }\n baseCaseMainOffer {\n cashPrice\n technicalPrice\n totalCosts {\n yearlyGrossOutput\n yearlyNetOutput\n minimumPayout\n }\n }\n caseAreas {\n livableArea\n plotAreaSum\n atticArea\n basementArea\n builtUpArea\n }\n ... on SalesCase {\n ownerCostsTotalMonthly\n propertyType\n salesStatus: status\n }\n }\n`;\n\nconst MatchHeroContentSalesCase: FC<MatchHeroContentSalesCaseProps> = (props) => {\n const data = useFragment(fragment, props.fragment);\n const moreInfoRef = useRef<HTMLElement>(null);\n\n const isCondo = useMemo(() => {\n switch (data?.propertyType) {\n case PropertyType.VillaWithCondoStatus:\n case PropertyType.TerracedHouseWithCondoStatus:\n case PropertyType.Condo:\n case PropertyType.PartnershipOrLimitedPartnershipCondo:\n case PropertyType.VacationCondo:\n case PropertyType.VillaApartment:\n case PropertyType.IdeelAnpartCondo:\n return true;\n default:\n return false;\n }\n }, [data?.propertyType]);\n\n const isHousingCooperative = data?.propertyType === PropertyType.HousingCooperative;\n\n const isPlot = useMemo(() => {\n switch (data?.propertyType) {\n case PropertyType.AllotmentPlot:\n case PropertyType.AllYearRoundPlot:\n case PropertyType.VacationPlot:\n case PropertyType.FreeLand:\n return true;\n default:\n return false;\n }\n }, [data?.propertyType]);\n\n const isValuation = data?.salesStatus === SalesCaseStatus.Valuation;\n const buildings = useList(data?.buildings);\n\n if (!data) {\n return null;\n }\n\n return (\n <Fragment>\n {!isValuation && (\n <Block className=\"match-hero-details__row marginTop\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Case price\" id=\"Match.Cashprice\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.baseCaseMainOffer?.cashPrice)}</Typography>\n </Block>\n )}\n {/* if: not group 4 */}\n {!isPlot && (\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Housing area\" id=\"Match.Area\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.caseAreas?.livableArea} m²</Typography>\n </Block>\n )}\n {/* if: group 1 or group 4 */}\n {(isPlot || !isCondo || !isHousingCooperative) && (\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Ground area\" id=\"Match.groundArea\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.caseAreas?.plotAreaSum} m²</Typography>\n </Block>\n )}\n {/* if: not group 3 */}\n {!isHousingCooperative && (\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Monthly owner cost\" id=\"Match.OwnershipExpense\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.ownerCostsTotalMonthly)}</Typography>\n </Block>\n )}\n\n {/* if: not group 4 */}\n {!isPlot && (\n <Fragment>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Rooms\" id=\"Match.NumberOfRooms\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.roomCount}</Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Energy mark\" id=\"Match.Energymark\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.energyMark}</Typography>\n </Block>\n </Fragment>\n )}\n\n <div\n className={classNames('match-hero-details__expandable', {\n isExpanded: props.isExpanded,\n })}\n id=\"section-content\"\n >\n <Typography ref={moreInfoRef} className=\"match-hero-details__heading\" tag=\"h4\" tagStyle=\"bodyLarge\">\n <FormattedMessage defaultMessage=\"More info\" id=\"Match.MoreInfo\" />\n </Typography>\n\n {/* if: not group 4 */}\n {!isPlot && (\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Year build\" id=\"Match.YearBuild\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.yearBuilt}</Typography>\n </Block>\n )}\n\n {/* if: group 1 */}\n {(!isPlot || !isCondo || !isHousingCooperative) && (\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage={'Floor area'} id=\"Match.floorArea\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.caseAreas?.builtUpArea} m²</Typography>\n </Block>\n )}\n {/* if: group 1 */}\n {(!isPlot || !isCondo || !isHousingCooperative) && (\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Integrated areas\" id=\"Match.buildingInclAreas\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{buildings[0]?.buildingInclAreas?.[0]?.area || 0} m²</Typography>\n </Block>\n )}\n {/* if: not group 4 */}\n {!isPlot && (\n <Fragment>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Basement\" id=\"Match.BasementArea\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.caseAreas?.basementArea} m²</Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Rooftop\" id=\"Match.AtticArea\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.caseAreas?.atticArea} m²</Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Other buildings\" id=\"Match.OtherBuildings\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.otherBuildingsSum} m²</Typography>\n </Block>\n </Fragment>\n )}\n\n {/* if: not group 4 */}\n {!isPlot && (\n <Fragment>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Heat source\" id=\"Match.HeatSource\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.heat}</Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Heating price\" id=\"Match.AnnualHeatingPrice\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.annualHeatingPrice)}</Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Number of floors\" id=\"Match.NumberOfFloors\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{data?.floorCount}</Typography>\n </Block>\n </Fragment>\n )}\n\n <Typography className=\"match-hero-details__heading\" tag=\"h4\" tagStyle=\"bodyLarge\">\n <FormattedMessage defaultMessage=\"Finances\" id=\"Match.Finances\" />\n </Typography>\n {/* if: not group3 */}\n {!isHousingCooperative && (\n <Fragment>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Payment\" id=\"Match.Payment\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">\n {formatNumber(data?.baseCaseMainOffer?.totalCosts?.minimumPayout, 'kr')}\n </Typography>\n </Block>\n </Fragment>\n )}\n {/* if: group 3 */}\n {isHousingCooperative && (\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Owner costs monthly total\" id=\"Match.ownerCostsTotalMonthlyCondo\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.ownerCostsTotalMonthly)}</Typography>\n </Block>\n )}\n {/* if: group3 */}\n {isHousingCooperative && (\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Technical price\" id=\"Match.TechnicalPrice\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">{formatNumber(data?.baseCaseMainOffer?.technicalPrice)}</Typography>\n </Block>\n )}\n {/* if: not group3 */}\n {!isHousingCooperative && (\n <Fragment>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Gross excl. cost of ownership\" id=\"Match.BruttoExcOwnership\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">\n {formatNumber(data?.baseCaseMainOffer?.totalCosts?.yearlyGrossOutput, 'kr')}\n </Typography>\n </Block>\n <Block className=\"match-hero-details__row\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Net excl. cost of ownership\" id=\"Match.NettoExcOwnership\" />\n </Typography>\n <Typography tagStyle=\"bodySmall\">\n {formatNumber(data?.baseCaseMainOffer?.totalCosts?.yearlyNetOutput, 'kr')}\n </Typography>\n </Block>\n </Fragment>\n )}\n </div>\n </Fragment>\n );\n};\n\nexport default MatchHeroContentSalesCase;\n","import { BusinessSalesCase, CounselingCase, RectifyCase, RentalCase, SalesCase } from 'Types';\nimport { matchHeroDetailsFragment$key } from '__generated__/matchHeroDetailsFragment.graphql';\nimport Button from 'components/atoms/button/button';\nimport Typography from 'components/atoms/typography/typography';\nimport Block from 'components/utilities/block/block';\nimport { usePropertyType } from 'hooks/usePropertyCategories';\nimport { useMemo, useState } from 'react';\nimport { graphql, useFragment } from 'react-relay';\nimport MatchHeroContentAgriculturalCase from '../match-hero-content-agriculturalcase/match-hero-content-agricultural-case';\nimport MatchHeroContentBusinessSalesCase from '../match-hero-content-businesssalescase/match-hero-content-business-sales-case';\nimport MatchHeroContentCounselingCase from '../match-hero-content-counselingcase/match-hero-content-counseling-case';\nimport MatchHeroContentRentalCase from '../match-hero-content-rentalcase/match-hero-content-rental-case';\nimport MatchHeroContentSalesCase from '../match-hero-content-salescase/match-hero-content-sales-case';\nimport './match-hero-details.scss';\n\nexport interface MatchHeroDetailsProps {\n fragment: matchHeroDetailsFragment$key | null;\n}\n\nconst matchHeroDetailsFragment = graphql`\n fragment matchHeroDetailsFragment on BaseCase {\n address\n zipCode\n city\n ...matchHeroContentAgriculturalCase_baseCase\n ...matchHeroContentSalesCase\n ...matchHeroContentRentalCase\n ...matchHeroContentBusinessSalesCase\n baseCaseMainOffer {\n ...matchHeroContentCounselingCase\n }\n ... on SalesCase {\n propertyType\n __typename\n }\n ... on RectifyCase {\n __typename\n propertyType\n }\n ... on CounselingPropertyCase {\n __typename\n propertyType\n }\n ... on RentalCase {\n __typename\n propertyType\n }\n ... on CounselingCase {\n __typename\n propertyType\n }\n ... on BusinessSalesCase {\n __typename\n businessPropertyType: propertyType\n }\n ... on BusinessRentalCase {\n __typename\n businessPropertyType: propertyType\n }\n }\n`;\n\nconst propertyTypes = [\n 'HobbyAgriculture',\n 'Liebhaveri',\n 'Cattle',\n 'Pigs',\n 'Crop',\n 'SpecialProduction',\n 'ForestProperty',\n 'FreeLand',\n 'FarmLand',\n];\n\nexport const MatchHeroDetails = (props: MatchHeroDetailsProps) => {\n const baseCase = useFragment(matchHeroDetailsFragment, props.fragment);\n const [isExpanded, setIsExpanded] = useState(false);\n const formatBusinessPropertyType = usePropertyType();\n\n const isAgricultureCase = useMemo(() => {\n const propertyType = baseCase?.businessPropertyType || baseCase?.propertyType;\n if (propertyType) {\n return propertyTypes.includes(propertyType);\n }\n return false;\n }, [baseCase?.propertyType, baseCase?.businessPropertyType]);\n\n const InfoComponent = () => {\n if (isAgricultureCase) {\n return <MatchHeroContentAgriculturalCase fragment={baseCase} isExpanded={isExpanded} />;\n } else if (baseCase?.__typename === SalesCase) {\n return <MatchHeroContentSalesCase fragment={baseCase} isExpanded={isExpanded} />;\n } else if (baseCase?.__typename === RentalCase) {\n return <MatchHeroContentRentalCase fragment={baseCase} isExpanded={isExpanded} />;\n } else if (baseCase?.__typename === RectifyCase || baseCase?.__typename === CounselingCase) {\n return <MatchHeroContentCounselingCase fragment={baseCase.baseCaseMainOffer} />;\n } else if (baseCase?.__typename === BusinessSalesCase) {\n return <MatchHeroContentBusinessSalesCase fragment={baseCase} isExpanded={isExpanded} />;\n }\n };\n\n const propertyType = baseCase?.propertyType || baseCase?.businessPropertyType;\n\n return (\n <Block backgroundColor=\"white\" boxShadow className=\"match-hero-details\" customPadding=\"md\">\n <Block className=\"match-hero-details__title\">\n <Typography className=\"match-hero-details__title--street\" tag=\"h2\" tagStyle=\"headlineMedium\">\n {propertyType && formatBusinessPropertyType(propertyType)} <br />\n {baseCase?.address}\n </Typography>\n <Typography subjectColor=\"gray\" tagStyle=\"bodyMedium\">\n {baseCase?.zipCode} {baseCase?.city}\n </Typography>\n {InfoComponent()}\n </Block>\n\n <Button\n aria-controls={'section-content'}\n aria-expanded={isExpanded}\n className=\"match-hero-details__expand\"\n hideText\n iconStart={isExpanded ? 'Minus' : 'Plus'}\n onClick={() => setIsExpanded((prevState) => !prevState)}\n padding={false}\n version=\"secondary\"\n >\n Expand\n </Button>\n </Block>\n );\n};\n","/**\n * @generated SignedSource<<6d6f1e975380cbf795baa3c13f8ba7f4>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type BusinessPropertyType = \"Cattle\" | \"Cellar\" | \"Clinic\" | \"Crop\" | \"FarmLand\" | \"ForestProperty\" | \"FreeLand\" | \"Garage\" | \"HotelOrRestaurant\" | \"HousingAndBusiness\" | \"HousingCooperative\" | \"Investment\" | \"Liberal\" | \"MinkAndFurAnimals\" | \"Office\" | \"Parking\" | \"Pigs\" | \"Plot\" | \"PoultryProduction\" | \"ProductionFacility\" | \"ShoppingCenter\" | \"Showroom\" | \"SpecialProduction\" | \"Store\" | \"WareHouse\" | \"WareHouseAndProduction\" | \"Workshop\";\nexport type PropertyType = \"AllYearRoundPlot\" | \"AllotmentHut\" | \"AllotmentPlot\" | \"Condo\" | \"FarmHouseAgriculture\" | \"FormerFarm\" | \"FreeLand\" | \"HobbyAgriculture\" | \"HousingCooperative\" | \"IdeelAnpartCondo\" | \"IdeelAnpartTerracedHouse\" | \"IdeelAnpartVilla\" | \"Liebhaveri\" | \"MixedHousingAndBusiness\" | \"PartnershipOrLimitedPartnershipCondo\" | \"PartnershipOrLimitedPartnershipTerracedHouse\" | \"PartnershipOrLimitedPartnershipVilla\" | \"TerracedHouse\" | \"TerracedHouseWithCondoStatus\" | \"TwoFamilyProperty\" | \"VacationCondo\" | \"VacationHousing\" | \"VacationPlot\" | \"Villa\" | \"VillaApartment\" | \"VillaWithCondoStatus\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type matchHeroOffmarketDetailsFragment_offmarketCase$data = {\n readonly businessPropertyType: BusinessPropertyType | null | undefined;\n readonly propertyType: PropertyType | null | undefined;\n readonly \" $fragmentType\": \"matchHeroOffmarketDetailsFragment_offmarketCase\";\n};\nexport type matchHeroOffmarketDetailsFragment_offmarketCase$key = {\n readonly \" $data\"?: matchHeroOffmarketDetailsFragment_offmarketCase$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"matchHeroOffmarketDetailsFragment_offmarketCase\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"matchHeroOffmarketDetailsFragment_offmarketCase\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"propertyType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"businessPropertyType\",\n \"storageKey\": null\n }\n ],\n \"type\": \"OffmarketCase\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"b6f8c1332e09e304b2916350863639e8\";\n\nexport default node;\n","import { matchHeroOffmarketDetailsFragment_offmarketCase$key } from '__generated__/matchHeroOffmarketDetailsFragment_offmarketCase.graphql';\nimport Typography from 'components/atoms/typography/typography';\nimport Block from 'components/utilities/block/block';\nimport { usePropertyType } from 'hooks/usePropertyCategories';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useFragment } from 'react-relay';\nimport './match-hero-details.scss';\n\nexport interface MatchHeroOffmarketDetailsProps {\n fragment: matchHeroOffmarketDetailsFragment_offmarketCase$key | null;\n}\n\nconst matchHeroOffmarketDetailsFragment = graphql`\n fragment matchHeroOffmarketDetailsFragment_offmarketCase on OffmarketCase {\n propertyType\n businessPropertyType\n }\n`;\n\nexport const MatchHeroOffmarketDetails = (props: MatchHeroOffmarketDetailsProps) => {\n const baseCase = useFragment(matchHeroOffmarketDetailsFragment, props.fragment);\n const formatBusinessPropertyType = usePropertyType();\n\n const propertyType = baseCase?.propertyType || baseCase?.businessPropertyType;\n\n return (\n <Block backgroundColor=\"white\" boxShadow className=\"match-hero-details\" customPadding=\"md\">\n <Block className=\"match-hero-details__title\">\n <Typography className=\"match-hero-details__title--street\" tag=\"h2\" tagStyle=\"headlineMedium\">\n {propertyType && formatBusinessPropertyType(propertyType)} <br />\n </Typography>\n <Block className=\"match-hero-details__row marginTop\" flex spaceBetween>\n <Typography tagStyle=\"bodySmall\">\n <FormattedMessage defaultMessage=\"Contact us for more information\" id=\"Match.ContactUs\" />\n </Typography>\n </Block>\n </Block>\n </Block>\n );\n};\n","import { yupResolver } from '@hookform/resolvers/yup';\nimport { bookShowcasingModal_Query } from '__generated__/bookShowcasingModal_Query.graphql';\nimport { Presentation, createPresentationMutation } from '__generated__/createPresentationMutation.graphql';\nimport Button from 'components/atoms/button/button';\nimport Icon from 'components/atoms/icon/icon';\nimport Typography from 'components/atoms/typography/typography';\nimport Input from 'components/molecules/input/input';\nimport Modal from 'components/molecules/modal/modal';\nimport Textarea from 'components/molecules/textarea/textarea';\nimport Block from 'components/utilities/block/block';\nimport Column from 'components/utilities/column/column';\nimport Row from 'components/utilities/row/row';\nimport { useTheme } from 'app/context/ThemeContext';\nimport { FC, Fragment, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { FormattedMessage, defineMessages, useIntl } from 'react-intl';\nimport { commitMutation, graphql, useLazyLoadQuery, useRelayEnvironment } from 'react-relay';\nimport { createPresentationMutationQuery } from 'services/relay/mutations/createPresentationMutation';\nimport { phoneRegExp } from 'tools/string-formatters';\nimport * as yup from 'yup';\nimport '../showcasing-form/showcasing-form.scss';\n\ntype Step = 1 | 2;\n\nconst STEPS = 2;\n\nexport interface ShowcasingFormInputs {\n caseId: string;\n comment?: string;\n email?: string;\n firstName?: string;\n lastName?: string;\n phoneNumber?: string;\n}\n\nexport interface BookShowcasingModalProps {\n caseId: string;\n handleClose: () => void;\n}\n\nconst customerDataQuery = graphql`\n query bookShowcasingModal_Query {\n viewer {\n customer {\n isCompany\n firstName\n lastName\n email\n phone\n }\n leadTypeFromEnum(enum: Presentation) {\n currentConsent {\n id\n }\n }\n }\n }\n`;\n\nexport const BookShowcasingModal: FC<BookShowcasingModalProps> = (props) => {\n const customerData = useLazyLoadQuery<bookShowcasingModal_Query>(customerDataQuery, {});\n const environment = useRelayEnvironment();\n const [modalHasError, setModalHasError] = useState(false);\n\n const closeModal = () => {\n props.handleClose();\n setModalHasError(false);\n };\n\n const handleOnSubmit = (data: ShowcasingFormInputs) => {\n const input = {\n ...data,\n consentIdGlobal: customerData?.viewer?.leadTypeFromEnum?.currentConsent?.id || '',\n };\n\n commitMutation<createPresentationMutation>(environment, {\n mutation: createPresentationMutationQuery,\n onCompleted: () => {\n setModalHasError(false);\n },\n onError: (err) => {\n setModalHasError(true);\n console.error(err);\n },\n variables: {\n input: input as Presentation,\n },\n });\n };\n\n const customerInfo = customerData.viewer?.customer;\n\n const [step, setStep] = useState<Step>(1);\n const intl = useIntl();\n const theme = useTheme();\n\n const isCompany = customerData.viewer?.customer?.isCompany;\n\n const messages = defineMessages({\n companyNameRequired: {\n defaultMessage: 'Company name is required',\n id: 'ShowcasingForm.requiredCompanyName',\n },\n emailInvalid: {\n defaultMessage: 'Enter a valid e-mail',\n id: 'ShowcasingForm.invalidEmail',\n },\n emailRequired: {\n defaultMessage: 'E-mail is required',\n id: 'ShowcasingForm.requiredEmail',\n },\n firstNameRequired: {\n defaultMessage: 'First name is required',\n id: 'ShowcasingForm.requiredFirstName',\n },\n lastNameRequired: {\n defaultMessage: 'Last name is required',\n id: 'ShowcasingForm.requiredLastName',\n },\n phoneInvalid: {\n defaultMessage: 'Enter a valid phone number',\n id: 'ShowcasingForm.invalidPhone',\n },\n phoneRequired: {\n defaultMessage: 'Phone number is required',\n id: 'ShowcasingForm.requiredPhone',\n },\n });\n\n const schema = yup.object().shape({\n caseId: yup.string().required(),\n comment: yup.string().nullable(),\n email: yup\n .string()\n .email(intl.formatMessage(messages.emailInvalid))\n .required(intl.formatMessage(messages.emailRequired))\n .trim(),\n firstName: yup\n .string()\n .required(\n isCompany ? intl.formatMessage(messages.companyNameRequired) : intl.formatMessage(messages.firstNameRequired),\n )\n .trim(),\n lastName: yup\n .string()\n .required(\n isCompany ? intl.formatMessage(messages.companyNameRequired) : intl.formatMessage(messages.lastNameRequired),\n )\n .trim(),\n phoneNumber: yup\n .string()\n .matches(phoneRegExp, {\n message: intl.formatMessage(messages.phoneInvalid),\n })\n .required(intl.formatMessage(messages.phoneRequired))\n .trim(),\n });\n\n const {\n formState: { errors, isValid, isSubmitted },\n handleSubmit,\n trigger,\n register,\n } = useForm<ShowcasingFormInputs>({\n defaultValues: {\n caseId: props.caseId,\n comment: '',\n email: customerInfo?.email || '',\n firstName: customerInfo?.firstName || '',\n lastName: customerInfo?.lastName || '',\n phoneNumber: customerInfo?.phone || '',\n },\n mode: 'onChange',\n resolver: yupResolver(schema),\n });\n\n const isLastStep = step === STEPS;\n\n const handleNextStep = async () => {\n await trigger();\n\n if (isValid && !isLastStep) {\n setStep((step) => (step + 1) as Step);\n }\n };\n\n return (\n <Modal closeHandler={closeModal}>\n {isSubmitted ? (\n <div>\n <Block className=\"showcasing-form__submitted\" flex>\n <Icon\n fill={modalHasError ? 'var(--color-notification)' : 'var(--color-success)'}\n height={48}\n name={modalHasError ? 'Cross' : 'Check'}\n width={48}\n />\n <Typography tagStyle=\"bodyLarge\">\n {modalHasError ? (\n <FormattedMessage defaultMessage=\"There has been an error.\" id=\"BookShowcasingModal.ErrorMessage\" />\n ) : (\n <FormattedMessage\n defaultMessage=\"We have received your request for a demonstration and will contact you as soon as possible.\"\n id=\"BookShowcasingModal.SuccessMessage\"\n />\n )}\n </Typography>\n </Block>\n <div className=\"showcasing-form__button-container\">\n <Button onClick={closeModal}>\n <FormattedMessage defaultMessage=\"Close\" id=\"ContactSellerForm.buttonClose\" />\n </Button>\n </div>\n </div>\n ) : (\n <div className=\"showcasing-form\">\n {isLastStep && (\n <Button onClick={() => setStep((step - 1) as Step)} version=\"link\">\n <Icon name=\"ArrowLeftLong\" />\n </Button>\n )}\n <Typography className=\"showcasing-form__title\" tag=\"h2\">\n <FormattedMessage defaultMessage=\"Order show casing\" id=\"ShowcasingForm.title\" />\n </Typography>\n <Typography className=\"showcasing-form__text\" tag=\"p\">\n <FormattedMessage\n defaultMessage=\"Fill in information about when it would suit you to have a show casing of the home.\"\n id=\"Showcasing.subTitle\"\n />\n </Typography>\n <form onSubmit={handleSubmit(handleOnSubmit)}>\n {step === 1 && (\n <Row>\n {!isCompany && (\n <Fragment>\n <Column marginBottom width={{ mobile: 8, tablet: 4 }}>\n <Input\n errorMessage={errors.firstName?.message}\n label={intl.formatMessage({\n defaultMessage: 'First name',\n id: 'ShowcasingForm.firstname',\n })}\n placeholder={intl.formatMessage({\n defaultMessage: 'First name',\n id: 'ShowcasingForm.firstname',\n })}\n {...register('firstName')}\n />\n </Column>\n <Column marginBottom width={{ mobile: 8, tablet: 4 }}>\n <Input\n errorMessage={errors.lastName?.message}\n label={intl.formatMessage({\n defaultMessage: 'Middle name & last name',\n id: 'ShowcasingForm.lastname',\n })}\n placeholder={intl.formatMessage({\n defaultMessage: 'Middle name & last name',\n id: 'ShowcasingForm.lastname',\n })}\n {...register('lastName')}\n />\n </Column>\n </Fragment>\n )}\n {isCompany && (\n <Column marginBottom width={{ mobile: 8, tablet: 8 }}>\n <Input\n errorMessage={errors.firstName?.message}\n label={intl.formatMessage({\n defaultMessage: 'Company name',\n id: 'ShowcasingForm.companyName',\n })}\n placeholder={intl.formatMessage({\n defaultMessage: 'Company name',\n id: 'ShowcasingForm.companyName',\n })}\n {...register('firstName')}\n />\n </Column>\n )}\n <Column marginBottom width={{ mobile: 8, tablet: 4 }}>\n <Input\n errorMessage={errors.phoneNumber?.message}\n label={intl.formatMessage({\n defaultMessage: 'Phone',\n id: 'ShowcasingForm.phone',\n })}\n placeholder={intl.formatMessage({\n defaultMessage: 'Phone',\n id: 'ShowcasingForm.phone',\n })}\n {...register('phoneNumber')}\n />\n </Column>\n <Column marginBottom width={{ mobile: 8, tablet: 4 }}>\n <Input\n errorMessage={errors.email?.message}\n label=\"E-mail\"\n placeholder=\"E-mail\"\n {...register('email')}\n />\n </Column>\n </Row>\n )}\n {step === 2 && (\n <Fragment>\n <Textarea\n classNameInput=\"showcasing-form__comments\"\n errorMessage={errors.comment?.message}\n placeholder={intl.formatMessage({\n defaultMessage: 'Possible comment',\n id: 'ShowcasingForm.comment',\n })}\n {...register('comment')}\n noFloatingLabel\n />\n <Typography className=\"showcasing-form__privacyText\" tag=\"span\" tagStyle=\"bodySmall\">\n <FormattedMessage\n defaultMessage=\"To order a show casing you will accept \"\n id=\"ShowcasingForm.privacyText\"\n />{' '}\n <Button anchorTag href={theme?.privacyPolicyLink} inline version=\"link\">\n <FormattedMessage\n defaultMessage=\"{broker} guidelines for the use of personal information.\"\n id=\"ShowcasingForm.privacyLink\"\n values={{ broker: theme?.brokerageName }}\n />\n </Button>\n {'.'}\n </Typography>\n </Fragment>\n )}\n <Row>\n <Column width={{ mobile: 8 }}>\n {isLastStep && (\n <Button className=\"showcasing-form__button showcasing-form__button-step2\" isFullWidth type=\"submit\">\n <FormattedMessage defaultMessage=\"Order show casing\" id=\"ShowcasingForm.buttonText\" />\n </Button>\n )}\n </Column>\n </Row>\n </form>\n {!isLastStep && (\n <Button\n anchorTag\n className=\"showcasing-form__button showcasing-form__button-step1\"\n isFullWidth\n onClick={handleNextStep}\n >\n <FormattedMessage defaultMessage=\"Order show casing\" id=\"ShowcasingForm.buttonText\" />\n </Button>\n )}\n </div>\n )}\n </Modal>\n );\n};\n","import { CaseAnnouncedType } from 'Enums';\nimport { matchHeroContentFragment_baseCase$key } from '__generated__/matchHeroContentFragment_baseCase.graphql';\nimport { matchHeroContentFragment_offmarketCase$key } from '__generated__/matchHeroContentFragment_offmarketCase.graphql';\nimport classNames from 'classnames';\nimport Button from 'components/atoms/button/button';\nimport Typography from 'components/atoms/typography/typography';\nimport { MatchHeroDetails } from 'components/molecules/match-hero-details/match-hero-details';\nimport { MatchHeroOffmarketDetails } from 'components/molecules/match-hero-details/match-hero-offmarket-details';\nimport Block from 'components/utilities/block/block';\nimport Column from 'components/utilities/column/column';\nimport Container from 'components/utilities/container/container';\nimport ModuleWrapper from 'components/utilities/module-wrapper/module-wrapper';\nimport Row from 'components/utilities/row/row';\nimport { useTheme } from 'app/context/ThemeContext';\nimport DOMPurify from 'dompurify';\nimport { useList } from 'hooks/useList';\nimport { Fragment, useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useFragment } from 'react-relay';\nimport { BookShowcasingModal } from '../book-showcasing-modal/book-showcasing-modal';\nimport './match-hero-content.scss';\n\nexport interface MatchHeroContentProps {\n fragment: matchHeroContentFragment_baseCase$key | null | undefined;\n offmarketCase: matchHeroContentFragment_offmarketCase$key | null | undefined;\n}\n\nconst matchHeroContentFragment = graphql`\n fragment matchHeroContentFragment_baseCase on BaseCase {\n id\n caseAnnounced {\n linkUrl\n type\n }\n ...matchHeroDetailsFragment\n ... on SalesCase {\n noAdvertisement\n caseDescription\n caseDescriptionHeading\n __typename\n }\n }\n`;\n\nconst matchHeroContentOffmarketFragment = graphql`\n fragment matchHeroContentFragment_offmarketCase on OffmarketCase {\n caseDescription\n caseDescriptionHeading\n ...matchHeroOffmarketDetailsFragment_offmarketCase\n }\n`;\n\nexport const MatchHeroContent = (props: MatchHeroContentProps) => {\n const data = useFragment<matchHeroContentFragment_baseCase$key>(matchHeroContentFragment, props.fragment || null);\n const offmarketCase = useFragment<matchHeroContentFragment_offmarketCase$key>(\n matchHeroContentOffmarketFragment,\n props.offmarketCase || null,\n );\n const [isExpanded, setIsExpanded] = useState(false);\n const [isBookingShowcaseModalOpen, setIsBookingShowcaseModalOpen] = useState(false);\n\n const theme = useTheme();\n const caseAnnouncements = useList(data?.caseAnnounced);\n\n const baseCase = data ?? offmarketCase;\n\n if (!baseCase) {\n return null;\n }\n\n const caseHeadline = baseCase.caseDescriptionHeading ? DOMPurify.sanitize(baseCase.caseDescriptionHeading) : '';\n\n const caseDescription = baseCase.caseDescription ? DOMPurify.sanitize(baseCase.caseDescription) : '';\n\n const getWebsiteLink = () => {\n if (caseAnnouncements.length > 0) {\n const websiteAnnouncements = caseAnnouncements.filter(\n (announcement) => announcement?.type === CaseAnnouncedType.Website,\n );\n return websiteAnnouncements.length > 0 ? websiteAnnouncements[0].linkUrl : null;\n }\n };\n return (\n <ModuleWrapper backgroundColor=\"white\" className=\"match-hero-content__wrapper\">\n <Container className=\"match-hero-content\">\n <Row>\n <Column order={{ mobile: 2, tablet: 1 }} width={{ tablet: 4 }}>\n <Block>\n {caseHeadline && (\n // biome-ignore lint/security/noDangerouslySetInnerHtml: <explanation>\n <h1 className=\"headlineMedium section-text\" dangerouslySetInnerHTML={{ __html: caseHeadline }} />\n )}\n {data && (\n <Block className=\"match-hero-content__buttons\" flex flexGutter=\"xs\">\n <Button onClick={() => setIsBookingShowcaseModalOpen(true)}>\n <FormattedMessage defaultMessage=\"Book show casing\" id=\"Match.BookShowing\" />\n </Button>\n {!data?.noAdvertisement && (\n <Button anchorTag href={getWebsiteLink() ?? ''}>\n <FormattedMessage defaultMessage=\"Se pÃ¥\" id=\"Match.SeeOn\" /> {theme?.websiteName}\n </Button>\n )}\n </Block>\n )}\n <Block className=\"match-hero-content__description\">\n {caseDescription && (\n <Fragment>\n <Typography\n className={classNames('match-hero-content__description--text', 'section-text', { isExpanded })}\n id=\"section-content\"\n tag=\"p\"\n tagStyle=\"bodyMedium\"\n // biome-ignore lint/security/noDangerouslySetInnerHtml: <explanation>\n dangerouslySetInnerHTML={{ __html: caseDescription }}\n />\n <Button\n aria-controls={'section-content'}\n aria-expanded={isExpanded}\n className=\"match-hero-content__expand\"\n hideText\n iconStart={isExpanded ? 'Minus' : 'Plus'}\n onClick={() => setIsExpanded((prevState) => !prevState)}\n version=\"secondary\"\n >\n Expand\n </Button>\n </Fragment>\n )}\n </Block>\n </Block>\n </Column>\n <Column className=\"match-hero-content__details\" order={{ mobile: 1, tablet: 2 }} width={{ tablet: 4 }}>\n {offmarketCase ? (\n <MatchHeroOffmarketDetails fragment={offmarketCase} />\n ) : (\n <MatchHeroDetails fragment={data} />\n )}\n </Column>\n </Row>\n </Container>\n {data?.id && isBookingShowcaseModalOpen && (\n <BookShowcasingModal handleClose={() => setIsBookingShowcaseModalOpen(false)} caseId={data.id} />\n )}\n </ModuleWrapper>\n );\n};\n","/**\n * @generated SignedSource<<856fdfedfdde62e252e61b2f80596f2a>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type MyPageSpotRole = \"Buyer\" | \"Frontpage\" | \"PotentialBuyer\" | \"Seller\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type myPageSpotsEntity$data = {\n readonly myPageSpots: ReadonlyArray<{\n readonly entries: ReadonlyArray<{\n readonly id: string;\n readonly imageUrl: string | null | undefined;\n readonly linkUrl: string | null | undefined;\n readonly width: number | null | undefined;\n } | null | undefined> | null | undefined;\n readonly myPageSpotRole: MyPageSpotRole;\n } | null | undefined> | null | undefined;\n readonly \" $fragmentType\": \"myPageSpotsEntity\";\n};\nexport type myPageSpotsEntity$key = {\n readonly \" $data\"?: myPageSpotsEntity$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"myPageSpotsEntity\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"myPageSpotsEntity\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"MyPageSpot\",\n \"kind\": \"LinkedField\",\n \"name\": \"myPageSpots\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"myPageSpotRole\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"MyPageSpotEntry\",\n \"kind\": \"LinkedField\",\n \"name\": \"entries\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"linkUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"imageUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"width\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Viewer\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"53b978491b212e6d3e8413bdd149fbe7\";\n\nexport default node;\n","import { myPageSpotsEntity$key } from '__generated__/myPageSpotsEntity.graphql';\nimport Container from 'components/utilities/container/container';\nimport { useList } from 'hooks/useList';\nimport { FC, useMemo } from 'react';\nimport { graphql, useFragment } from 'react-relay';\nimport './my-page-spots.scss';\nimport { useMixPanel } from 'hooks/useMixPanel';\n\nexport interface MyPageSpotsProps {\n myPageSpots: myPageSpotsEntity$key;\n filter: string;\n}\n\nconst MyPageSpots: FC<MyPageSpotsProps> = (props) => {\n const data = useFragment<myPageSpotsEntity$key>(\n graphql`\n fragment myPageSpotsEntity on Viewer {\n myPageSpots {\n myPageSpotRole\n entries {\n id\n linkUrl\n imageUrl\n width\n }\n }\n }\n `,\n props.myPageSpots,\n );\n const myPageSpot = useMemo(() => {\n if (data.myPageSpots) {\n return data.myPageSpots.find((spot) => spot?.myPageSpotRole === props.filter);\n } else {\n return null;\n }\n }, [data, props.filter]);\n\n const entries = useList(myPageSpot?.entries);\n const { track } = useMixPanel();\n\n const link = useMemo(() => {\n if (entries.length > 0) {\n return entries[0]?.linkUrl ? entries[0].linkUrl : '';\n } else {\n return '';\n }\n }, [entries]);\n\n const handleSpotImgClick = () => {\n track('Spot_Module_Click', { segment: myPageSpot?.myPageSpotRole || 'no-role' });\n };\n\n return (\n <Container>\n {entries.length > 0 && (\n <div className=\"my-page-spots\">\n {link ? (\n <a href={link} target=\"_blank\" rel=\"noopener noreferrer\">\n <picture>\n {entries.map((entry) => (\n <source\n className={'my-page-spots__image'}\n key={entry.id}\n media={`(min-width: ${entry.width ?? 0}px)`}\n srcSet={entry.imageUrl ?? ''}\n />\n ))}\n\n <img\n alt=\"my page spot img\"\n className={'my-page-spots__image'}\n src={entries[0]?.imageUrl ?? ''}\n onClick={handleSpotImgClick}\n />\n </picture>\n </a>\n ) : (\n <picture>\n {entries.map((entry) => (\n <source\n className={'my-page-spots__image'}\n key={entry.id}\n media={`(max-width: ${entry.width ?? 0}px)`}\n srcSet={entry.imageUrl ?? ''}\n />\n ))}\n <img\n alt=\"my page spot img\"\n className={'my-page-spots__image'}\n src={entries[0]?.imageUrl ?? ''}\n onClick={handleSpotImgClick}\n />\n </picture>\n )}\n </div>\n )}\n </Container>\n );\n};\n\nexport default MyPageSpots;\n","/**\n * @generated SignedSource<<f54a767e238de44fef4521c1c802d8d5>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nexport type registerOpenHouseModal_Query$variables = Record<PropertyKey, never>;\nexport type registerOpenHouseModal_Query$data = {\n readonly viewer: {\n readonly customer: {\n readonly email: string | null | undefined;\n readonly firstName: string | null | undefined;\n readonly lastName: string | null | undefined;\n readonly phone: string | null | undefined;\n } | null | undefined;\n readonly leadTypeFromEnum: {\n readonly currentConsent: {\n readonly id: string;\n } | null | undefined;\n } | null | undefined;\n } | null | undefined;\n};\nexport type registerOpenHouseModal_Query = {\n response: registerOpenHouseModal_Query$data;\n variables: registerOpenHouseModal_Query$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"firstName\",\n \"storageKey\": null\n},\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastName\",\n \"storageKey\": null\n},\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"email\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"phone\",\n \"storageKey\": null\n},\nv4 = [\n {\n \"kind\": \"Literal\",\n \"name\": \"enum\",\n \"value\": \"OpenHouse\"\n }\n],\nv5 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv6 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"LeadConsentGraphType\",\n \"kind\": \"LinkedField\",\n \"name\": \"currentConsent\",\n \"plural\": false,\n \"selections\": [\n (v5/*: any*/)\n ],\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"registerOpenHouseModal_Query\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Customer\",\n \"kind\": \"LinkedField\",\n \"name\": \"customer\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/),\n (v2/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": (v4/*: any*/),\n \"concreteType\": \"LeadTypeGraphType\",\n \"kind\": \"LinkedField\",\n \"name\": \"leadTypeFromEnum\",\n \"plural\": false,\n \"selections\": [\n (v6/*: any*/)\n ],\n \"storageKey\": \"leadTypeFromEnum(enum:\\\"OpenHouse\\\")\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Operation\",\n \"name\": \"registerOpenHouseModal_Query\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Customer\",\n \"kind\": \"LinkedField\",\n \"name\": \"customer\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/),\n (v2/*: any*/),\n (v3/*: any*/),\n (v5/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": (v4/*: any*/),\n \"concreteType\": \"LeadTypeGraphType\",\n \"kind\": \"LinkedField\",\n \"name\": \"leadTypeFromEnum\",\n \"plural\": false,\n \"selections\": [\n (v6/*: any*/),\n (v5/*: any*/)\n ],\n \"storageKey\": \"leadTypeFromEnum(enum:\\\"OpenHouse\\\")\"\n },\n (v5/*: any*/)\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"860fb17b32c7b7fbfee80c912461a28e\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"registerOpenHouseModal_Query\",\n \"operationKind\": \"query\",\n \"text\": \"query registerOpenHouseModal_Query {\\n viewer {\\n customer {\\n firstName\\n lastName\\n email\\n phone\\n id\\n }\\n leadTypeFromEnum(enum: OpenHouse) {\\n currentConsent {\\n id\\n }\\n id\\n }\\n id\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"b840cce54195401398a688bdb2a174f0\";\n\nexport default node;\n","/**\n * @generated SignedSource<<c1405ddf94016da9821d506b7d7ec70d>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment, RefetchableFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type registerOpenHouseModalFragment$data = {\n readonly id: string;\n readonly openHouse: ReadonlyArray<{\n readonly activityType: {\n readonly isRegistration: boolean | null | undefined;\n readonly nameOnTimeline: string | null | undefined;\n } | null | undefined;\n readonly endDate: any | null | undefined;\n readonly id: string | null | undefined;\n readonly isRegistred: boolean | null | undefined;\n readonly startDate: any | null | undefined;\n } | null | undefined> | null | undefined;\n readonly \" $fragmentType\": \"registerOpenHouseModalFragment\";\n};\nexport type registerOpenHouseModalFragment$key = {\n readonly \" $data\"?: registerOpenHouseModalFragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"registerOpenHouseModalFragment\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n};\nreturn {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": {\n \"refetch\": {\n \"connection\": null,\n \"fragmentPathInResult\": [\n \"node\"\n ],\n \"operation\": require('./registerOpenHouseQuery.graphql'),\n \"identifierInfo\": {\n \"identifierField\": \"id\",\n \"identifierQueryVariableName\": \"id\"\n }\n }\n },\n \"name\": \"registerOpenHouseModalFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"amount\",\n \"value\": 2\n }\n ],\n \"concreteType\": \"OpenHouse\",\n \"kind\": \"LinkedField\",\n \"name\": \"openHouse\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ActivityType\",\n \"kind\": \"LinkedField\",\n \"name\": \"activityType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isRegistration\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"nameOnTimeline\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isRegistred\",\n \"storageKey\": null\n },\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"startDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endDate\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": \"openHouse(amount:2)\"\n },\n (v0/*: any*/)\n ],\n \"type\": \"BaseCase\",\n \"abstractKey\": \"__isBaseCase\"\n};\n})();\n\n(node as any).hash = \"302468eb38bd271c0d6733f7ec1c2cc9\";\n\nexport default node;\n","/**\n * @generated SignedSource<<c170f15fea25d3c7b93d6e9b15eccda6>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nexport type OpenHouseInputType = {\n consentIdGlobal: string;\n email?: string | null | undefined;\n firstName: string;\n lastName: string;\n openHouseId: string;\n phoneNumber: string;\n sourceIdGlobal?: string | null | undefined;\n};\nexport type registerOpenHouseModalMutation$variables = {\n input: OpenHouseInputType;\n};\nexport type registerOpenHouseModalMutation$data = {\n readonly createOpenhouse: {\n readonly createdObject: {\n readonly id: string;\n } | null | undefined;\n readonly errors: ReadonlyArray<{\n readonly message: string | null | undefined;\n } | null | undefined> | null | undefined;\n } | null | undefined;\n};\nexport type registerOpenHouseModalMutation = {\n response: registerOpenHouseModalMutation$data;\n variables: registerOpenHouseModalMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n],\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"LeadOpenHouse\",\n \"kind\": \"LinkedField\",\n \"name\": \"createdObject\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/)\n ],\n \"storageKey\": null\n},\nv4 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"message\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"registerOpenHouseModalMutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"LeadOpenHouseCreatedPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"createOpenhouse\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Error\",\n \"kind\": \"LinkedField\",\n \"name\": \"errors\",\n \"plural\": true,\n \"selections\": [\n (v4/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Mutation\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"registerOpenHouseModalMutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"LeadOpenHouseCreatedPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"createOpenhouse\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Error\",\n \"kind\": \"LinkedField\",\n \"name\": \"errors\",\n \"plural\": true,\n \"selections\": [\n (v4/*: any*/),\n (v2/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"ae230e296c39c6b06d14885b8dd0b593\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"registerOpenHouseModalMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation registerOpenHouseModalMutation(\\n $input: OpenHouseInputType!\\n) {\\n createOpenhouse(input: $input) {\\n createdObject {\\n id\\n }\\n errors {\\n message\\n id\\n }\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"6835ad8903d5874df28d6070d388e663\";\n\nexport default node;\n","import Block from 'components/utilities/block/block';\nimport Icon from 'components/atoms/icon/icon';\nimport Typography from 'components/atoms/typography/typography';\nimport { FormattedMessage } from 'react-intl';\nimport Button from 'components/atoms/button/button';\nimport { FC } from 'react';\n\ntype SuccessSummitProps = {\n hasServerError: boolean;\n closeModal: () => void;\n};\nexport const SuccessSummit: FC<SuccessSummitProps> = (props) => {\n return (\n <Block className=\"form-success\" flex>\n <Icon\n fill={props.hasServerError ? 'var(--color-notification)' : 'var(--color-text-grey)'}\n height={48}\n name={props.hasServerError ? 'Cross' : 'Check'}\n width={48}\n className=\"form-success__icon\"\n />\n <Typography tagStyle=\"bodyLarge\" className=\"form-success__text\">\n {props.hasServerError ? (\n <FormattedMessage defaultMessage=\"We are sorry, something went wrong\" id=\"Default.ErrorMessage\" />\n ) : (\n <FormattedMessage\n defaultMessage=\"We have now received your request to participate in the Open House. We will contact you as soon as possible with a final confirmation of the time\"\n id=\"RegisterOpenHouse.RegisteredOpenHouse\"\n />\n )}\n </Typography>\n <Button onClick={props.closeModal} type=\"submit\">\n <FormattedMessage defaultMessage=\"Go back\" id=\"Default.goBack\" />\n </Button>\n </Block>\n );\n};\n","import { yupResolver } from '@hookform/resolvers/yup';\nimport {\n registerOpenHouseModalFragment$data,\n registerOpenHouseModalFragment$key,\n} from '__generated__/registerOpenHouseModalFragment.graphql';\nimport {\n OpenHouseInputType,\n registerOpenHouseModalMutation,\n} from '__generated__/registerOpenHouseModalMutation.graphql';\nimport { registerOpenHouseModal_Query } from '__generated__/registerOpenHouseModal_Query.graphql';\nimport Button from 'components/atoms/button/button';\nimport { Spinner } from 'components/atoms/spinner/spinner';\nimport Typography from 'components/atoms/typography/typography';\nimport Input from 'components/molecules/input/input';\nimport { SimpleModal } from 'components/molecules/simple-modal/simple-modal';\nimport { SuccessSummit } from 'components/organisms/register-open-house-modal/success-summit';\nimport Row from 'components/utilities/row/row';\nimport { useTheme } from 'app/context/ThemeContext';\nimport { useList } from 'hooks/useList';\nimport { Fragment, useEffect, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport type { FieldErrors } from 'react-hook-form';\nimport { FormattedMessage, defineMessages, useIntl } from 'react-intl';\nimport { graphql, useFragment } from 'react-relay';\nimport { useLazyLoadQuery, useMutation } from 'relay-hooks';\nimport { formatDate, formatTime, phoneRegExp } from 'tools/string-formatters';\nimport { InferType, object, string } from 'yup';\nimport './register-open-house-modal.scss';\nimport { updateSearchProfileMatchedCase } from 'services/relay/mutations/updateSearchProfileMatchedCase';\nimport { MatchProfileStatus } from 'Enums';\n\ninterface RegisterOpenHouseModalProps {\n closeModal: () => void;\n openHouses: registerOpenHouseModalFragment$key;\n preSelectedOpenHouseId?: string;\n matchId?: string | undefined;\n}\n\nexport const getOpenHouseText = (startDate: string, endDate?: string) => {\n return `D. ${formatDate(startDate)}, kl ${formatTime(startDate)} - ${formatTime(endDate)}`;\n};\n\nconst registerOpenHouseModalQuery = graphql`\n query registerOpenHouseModal_Query {\n viewer {\n customer {\n firstName\n lastName\n email\n phone\n }\n leadTypeFromEnum(enum: OpenHouse) {\n currentConsent {\n id\n }\n }\n }\n }\n`;\n\ntype OpenHouse = NonNullable<NonNullable<registerOpenHouseModalFragment$data['openHouse']>[number]>;\n\nconst messages = defineMessages({\n companyNameRequired: {\n defaultMessage: 'Company name is required',\n id: 'ShowcasingForm.requiredCompanyName',\n },\n emailInvalid: {\n defaultMessage: 'Enter a valid e-mail',\n id: 'ShowcasingForm.invalidEmail',\n },\n emailRequired: {\n defaultMessage: 'E-mail is required',\n id: 'ShowcasingForm.requiredEmail',\n },\n firstNameRequired: {\n defaultMessage: 'First name is required',\n id: 'ShowcasingForm.requiredFirstName',\n },\n lastNameRequired: {\n defaultMessage: 'Last name is required',\n id: 'ShowcasingForm.requiredLastName',\n },\n phoneInvalid: {\n defaultMessage: 'Enter a valid phone number',\n id: 'ShowcasingForm.invalidPhone',\n },\n phoneRequired: {\n defaultMessage: 'Phone number is required',\n id: 'ShowcasingForm.requiredPhone',\n },\n});\n\nconst registerOpenHouseModalFragment = graphql`\n fragment registerOpenHouseModalFragment on BaseCase\n @refetchable(queryName: \"registerOpenHouseQuery\") {\n openHouse(amount: 2) {\n activityType {\n isRegistration\n nameOnTimeline\n }\n isRegistred\n id\n startDate\n endDate\n }\n }\n`;\n\nexport const createOpenHouseLeadMutation = graphql`\n mutation registerOpenHouseModalMutation($input: OpenHouseInputType!) {\n createOpenhouse(input: $input) {\n createdObject {\n id\n }\n errors {\n message\n }\n }\n }\n`;\nconst RegisterOpenHouseModal = (props: RegisterOpenHouseModalProps) => {\n const { data: customerData } = useLazyLoadQuery<registerOpenHouseModal_Query>(registerOpenHouseModalQuery, {});\n const data = useFragment(registerOpenHouseModalFragment, props.openHouses);\n const theme = useTheme();\n const intl = useIntl();\n\n const [hasServerError, setHasServerError] = useState(false);\n const [loading, setLoading] = useState(false);\n const [selectedOpenHouse, setSelectedOpenHouse] = useState<OpenHouse | null>(null);\n const [step, setStep] = useState(0);\n\n const openHouses = useList(data.openHouse);\n\n // Here we handle if we pass a open house id to the modal.\n // If we can find it, then select it and go to next step\n useEffect(() => {\n if (!props.preSelectedOpenHouseId || !data) return;\n\n const openHouseFound = data.openHouse?.find((oHouse) => oHouse?.id === props.preSelectedOpenHouseId);\n if (openHouseFound) {\n setSelectedOpenHouse(openHouseFound);\n setStep(1);\n }\n }, [props.preSelectedOpenHouseId, data]);\n\n const schema = object({\n caseId: string().required().default(customerData?.viewer?.leadTypeFromEnum?.currentConsent?.id),\n email: string()\n .email(intl.formatMessage(messages.emailInvalid))\n .trim()\n .default(customerData?.viewer?.customer?.email ?? ''),\n firstName: string()\n .required(intl.formatMessage(messages.firstNameRequired))\n .trim()\n .default(customerData?.viewer?.customer?.firstName ?? ''),\n lastName: string()\n .required(intl.formatMessage(messages.lastNameRequired))\n .trim()\n .default(customerData?.viewer?.customer?.lastName ?? ''),\n phoneNumber: string()\n .matches(phoneRegExp, {\n message: intl.formatMessage(messages.phoneInvalid),\n })\n .required(intl.formatMessage(messages.phoneRequired))\n .trim()\n .default(customerData?.viewer?.customer?.phone ?? ''),\n }).required();\n\n type RegisterOpenHouseSchemaType = InferType<typeof schema>;\n\n const caseId = customerData?.viewer?.leadTypeFromEnum?.currentConsent?.id ?? '';\n\n const [createOpenHouseLead] = useMutation<registerOpenHouseModalMutation>(createOpenHouseLeadMutation);\n\n const [markAsFavourite] = useMutation(updateSearchProfileMatchedCase);\n\n const {\n formState: { errors, isSubmitSuccessful },\n handleSubmit,\n register,\n } = useForm<RegisterOpenHouseSchemaType>({\n defaultValues: schema.getDefault(),\n mode: 'onChange',\n resolver: yupResolver(schema),\n });\n\n const onSubmit = async (data: RegisterOpenHouseSchemaType) => {\n if (loading) return false;\n const input = {\n consentIdGlobal: data.caseId,\n firstName: data.firstName,\n lastName: data.lastName,\n phoneNumber: data.phoneNumber,\n email: data.email,\n openHouseId: selectedOpenHouse?.id || '',\n };\n setLoading(true);\n try {\n await createOpenHouseLead({\n variables: {\n input: input as OpenHouseInputType,\n },\n });\n\n if (props.matchId) {\n await markAsFavourite({\n variables: {\n input: {\n id: props.matchId,\n status: MatchProfileStatus.Favorite,\n },\n },\n });\n }\n\n setHasServerError(false);\n } catch (_e) {\n setHasServerError(true);\n } finally {\n setLoading(false);\n }\n };\n\n const onError = (error: FieldErrors) => {\n console.error(error);\n setHasServerError(true);\n setLoading(false);\n };\n\n const handleClickOnRegisterOpenHouse = (openHouse: OpenHouse) => {\n setSelectedOpenHouse(openHouse);\n setStep(1);\n };\n\n if (caseId) {\n return (\n <SimpleModal onClose={props.closeModal}>\n <div className=\"register-modal\">\n {isSubmitSuccessful && <SuccessSummit closeModal={props.closeModal} hasServerError={hasServerError} />}\n {!isSubmitSuccessful && (\n <Fragment>\n {step === 0 && (\n <div className=\"modal-list\">\n {openHouses.length > 0 &&\n openHouses.map((openHouse) => (\n <Fragment key={openHouse?.id}>\n <div className={'modal-list__item'}>\n <div className=\"modal-list__item-text\">\n <h4>{openHouse?.activityType?.nameOnTimeline}</h4>\n <p>{getOpenHouseText(openHouse?.startDate, openHouse?.endDate)}</p>\n </div>\n\n {openHouse?.activityType?.isRegistration && openHouse?.isRegistred && (\n <div className={'modal-list__item-badge'}>\n <p>\n <FormattedMessage defaultMessage=\"Registered\" id=\"Match.Registered\" />\n </p>\n </div>\n )}\n {openHouse?.activityType?.isRegistration && !openHouse?.isRegistred && (\n <Button onClick={() => handleClickOnRegisterOpenHouse(openHouse)}>\n <FormattedMessage defaultMessage=\"Register\" id=\"Match.Register\" />\n </Button>\n )}\n </div>\n </Fragment>\n ))}\n </div>\n )}\n {step === 1 && (\n <div className=\"modal-form\">\n <Typography className=\"modal-form__title\" tag=\"h2\">\n <FormattedMessage defaultMessage=\"Register open house\" id=\"OpenHouse.registerOpenHouse\" />\n </Typography>\n <Typography className=\"modal-form__subtitle\" tag=\"p\">\n <FormattedMessage\n defaultMessage=\"You have wanted to register for the open house\"\n id=\"OpenHouse.subTitle\"\n />{' '}\n {getOpenHouseText(selectedOpenHouse?.startDate || '', selectedOpenHouse?.endDate || '')}\n </Typography>\n <form onSubmit={handleSubmit(onSubmit, onError)}>\n <div className=\"modal-form__form-grid form-grid form-grid--column-1 tablet:form-grid--column-2\">\n <div>\n <Input\n errorMessage={errors.firstName?.message}\n label={<FormattedMessage defaultMessage=\"First name\" id=\"Form.firstname\" />}\n placeholder={intl.formatMessage({\n defaultMessage: 'First name',\n id: 'Form.firstname',\n })}\n {...register('firstName')}\n />\n </div>\n\n <div>\n <Input\n errorMessage={errors.lastName?.message}\n label={<FormattedMessage defaultMessage=\"Middle name & last name\" id=\"Form.lastname\" />}\n placeholder={intl.formatMessage({\n defaultMessage: 'Middle name & last name',\n id: 'Form.lastname',\n })}\n {...register('lastName')}\n />\n </div>\n <div>\n <Input\n errorMessage={errors.phoneNumber?.message}\n label={<FormattedMessage defaultMessage=\"Telefon\" id=\"Form.phone\" />}\n placeholder={intl.formatMessage({\n defaultMessage: 'Telefon',\n id: 'Form.phone',\n })}\n {...register('phoneNumber')}\n />\n </div>\n <div>\n <Input\n errorMessage={errors.email?.message}\n label={<FormattedMessage defaultMessage=\"E-mail\" id=\"Form.email\" />}\n placeholder={intl.formatMessage({\n defaultMessage: 'E-mail',\n id: 'Form.email',\n })}\n {...register('email')}\n />\n </div>\n </div>\n <div className={'modal-form__privacy'}>\n <p className=\"modal-form__privacy-text\">\n <FormattedMessage\n defaultMessage=\"By registering for the Open House, you agree\"\n id=\"OpenHouse.privacyText\"\n />\n </p>\n <a href={theme?.privacyPolicyLink} target={'_blank'} rel=\"noreferrer\">\n <FormattedMessage\n defaultMessage=\"{broker} guidelines for the use of personal information.\"\n id=\"OpenHouse.privacyLink\"\n values={{ broker: theme?.brokerageName }}\n />\n </a>\n </div>\n <Row>\n <div className={'modal-form__button'}>\n <Button type=\"submit\">\n <FormattedMessage defaultMessage=\"Register open house\" id=\"OpenHouse.registerOpenHouse\" />\n </Button>\n {loading && <Spinner />}\n </div>\n </Row>\n </form>\n </div>\n )}\n </Fragment>\n )}\n </div>\n </SimpleModal>\n );\n } else {\n return null;\n }\n};\n\nexport default RegisterOpenHouseModal;\n","import { ChangeEvent, FC, ReactNode } from 'react';\nimport { SelectSingleEventHandler } from 'react-day-picker';\nimport DatePicker from 'components/molecules/date-picker/date-picker';\nimport Column from 'components/utilities/column/column';\nimport { AppointmentTimePicker } from './components/appointment-timepicker';\nimport { FormattedMessage } from 'react-intl';\nimport './choose-activity-modal.scss';\n\ntype Props = {\n onChangeDay: (currentTimeStart: Date, currentTimeEnd: Date) => void;\n time: time;\n handleChangeTimeStart: (e: ChangeEvent<HTMLInputElement>) => void;\n handleChangeTimeEnd: (e: ChangeEvent<HTMLInputElement>) => void;\n handleBlurTimeStart: (timeDif: number, timeInMs: number) => void;\n handleBlurTimeEnd: (timeDif: number, timeInMs: number, e?: ChangeEvent<HTMLInputElement>) => void;\n children?: ReactNode;\n secondChildren?: ReactNode;\n};\nexport type time = { timeStart: Date; timeEnd: Date };\nconst today = new Date();\n\nexport const AppointmentModalContent: FC<Props> = ({\n onChangeDay,\n time,\n handleChangeTimeStart,\n handleChangeTimeEnd,\n handleBlurTimeStart,\n handleBlurTimeEnd,\n children,\n secondChildren,\n}) => {\n const changeDay = (date: Date) => {\n const currentTimeStart = time.timeStart;\n const currentTimeEnd = time.timeEnd;\n\n currentTimeStart.setFullYear(date.getFullYear());\n currentTimeStart.setMonth(date.getMonth());\n currentTimeStart.setDate(date.getDate());\n\n currentTimeEnd.setFullYear(date.getFullYear());\n currentTimeEnd.setMonth(date.getMonth());\n currentTimeEnd.setDate(date.getDate());\n onChangeDay(currentTimeStart, currentTimeEnd);\n };\n\n return (\n <div className=\"appointmentModalContentWrapper\">\n <div className=\"appointmentModalContentDateTimeWrapper\">\n <DatePicker\n fromDate={today}\n mode=\"single\"\n onSelect={changeDay as SelectSingleEventHandler}\n selected={time.timeStart}\n />\n <Column className=\"appointmentModalContentColumn\">\n <AppointmentTimePicker\n labelStart={<FormattedMessage defaultMessage=\"Start time:\" id=\"Default.StartTime\" />}\n labelEnd={<FormattedMessage defaultMessage=\"End time:\" id=\"endTime\" />}\n timeStart={time.timeStart}\n timeEnd={time.timeEnd}\n handleChangeTimeStart={handleChangeTimeStart}\n handleChangeTimeEnd={handleChangeTimeEnd}\n handleBlurTimeStart={handleBlurTimeStart}\n handleBlurTimeEnd={handleBlurTimeEnd}\n />\n {children && children}\n </Column>\n </div>\n {secondChildren && secondChildren}\n </div>\n );\n};\n","/**\n * @generated SignedSource<<9616dd02b70af47cdd3c046e9feab125>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nexport type ActivityTypeCategoryEnum = \"BuyerAdvisorObjectionExtension\" | \"BuyerFinancialInstitutionObjectionExtension\" | \"CounselingCases\" | \"CreditAssessment\" | \"CustomerMeetings\" | \"DeedAvailableForSignatureExtension\" | \"DeedConditionalFinalSignatureExtension\" | \"DeedLatestSignatureExtension\" | \"DeedReportedToLandRegistrationExtension\" | \"Education\" | \"ExternalMeeting\" | \"FirstDepositDeadlineExtension\" | \"GuaranteeExtension\" | \"InternalMeeting\" | \"KeyCollection\" | \"Miscellaneous\" | \"OpenHouse\" | \"OpenHouseWithRegistration\" | \"PaidValuation\" | \"Private\" | \"ProcessClosingProtest\" | \"PurchaseAgreementMeetingBuyer\" | \"PurchaseAgreementMeetingSeller\" | \"RectifyCases\" | \"RiskAssessmentReview\" | \"SalesValuation\" | \"SecondDepositDeadlineExtension\" | \"SellerAdvisorObjectionExtension\" | \"SellerFinancialInstitutionObjectionExtension\" | \"Showcasing\" | \"SignedUpOpenHouse\" | \"StatusMeetingBuyer\" | \"StatusMeetingSeller\" | \"StatusReport\" | \"Transfer\";\nexport type chooseActivityModal_Query$variables = Record<PropertyKey, never>;\nexport type chooseActivityModal_Query$data = {\n readonly viewer: {\n readonly customer: {\n readonly email: string | null | undefined;\n readonly firstName: string | null | undefined;\n readonly lastName: string | null | undefined;\n readonly phone: string | null | undefined;\n } | null | undefined;\n readonly id: string;\n readonly propertyForSaleByOwnerAppointmentActivityTypes: ReadonlyArray<{\n readonly category: ActivityTypeCategoryEnum | null | undefined;\n readonly defaultDurationInMinutes: number | null | undefined;\n readonly id: string | null | undefined;\n readonly name: string | null | undefined;\n } | null | undefined> | null | undefined;\n } | null | undefined;\n};\nexport type chooseActivityModal_Query = {\n response: chooseActivityModal_Query$data;\n variables: chooseActivityModal_Query$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AppointmentActivityType\",\n \"kind\": \"LinkedField\",\n \"name\": \"propertyForSaleByOwnerAppointmentActivityTypes\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"category\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"defaultDurationInMinutes\",\n \"storageKey\": null\n },\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n},\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"firstName\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastName\",\n \"storageKey\": null\n},\nv4 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"email\",\n \"storageKey\": null\n},\nv5 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"phone\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"chooseActivityModal_Query\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Customer\",\n \"kind\": \"LinkedField\",\n \"name\": \"customer\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/),\n (v4/*: any*/),\n (v5/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Operation\",\n \"name\": \"chooseActivityModal_Query\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Customer\",\n \"kind\": \"LinkedField\",\n \"name\": \"customer\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/),\n (v4/*: any*/),\n (v5/*: any*/),\n (v0/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"59afc1c47c9a7362a92214a9a89bf3b1\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"chooseActivityModal_Query\",\n \"operationKind\": \"query\",\n \"text\": \"query chooseActivityModal_Query {\\n viewer {\\n id\\n propertyForSaleByOwnerAppointmentActivityTypes {\\n category\\n defaultDurationInMinutes\\n id\\n name\\n }\\n customer {\\n firstName\\n lastName\\n email\\n phone\\n id\\n }\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"0fad2e754b643215124500ace0d0b2fa\";\n\nexport default node;\n","/**\n * @generated SignedSource<<51ac2657862349ee75678685004e6e0e>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nexport type CreateAppointmentActivityInputType = {\n activityTypeId: string;\n caseId: string;\n customer?: AppointmentActivityCustomerInputType | null | undefined;\n endDatetime: any;\n startDatetime: any;\n};\nexport type AppointmentActivityCustomerInputType = {\n email?: string | null | undefined;\n firstname?: string | null | undefined;\n lastname?: string | null | undefined;\n phone?: string | null | undefined;\n};\nexport type chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation$variables = {\n input: CreateAppointmentActivityInputType;\n};\nexport type chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation$data = {\n readonly createPropertyForSaleByOwnerAppointmentActivity: {\n readonly createdObject: {\n readonly endDate: any | null | undefined;\n readonly id: string;\n readonly latestNoteContent: string | null | undefined;\n readonly name: string | null | undefined;\n readonly notes: ReadonlyArray<{\n readonly content: string | null | undefined;\n } | null | undefined> | null | undefined;\n readonly startDate: any | null | undefined;\n } | null | undefined;\n readonly errors: ReadonlyArray<{\n readonly message: string | null | undefined;\n } | null | undefined> | null | undefined;\n } | null | undefined;\n};\nexport type chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation = {\n response: chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation$data;\n variables: chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n],\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"message\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv4 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n},\nv5 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"startDate\",\n \"storageKey\": null\n},\nv6 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endDate\",\n \"storageKey\": null\n},\nv7 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"latestNoteContent\",\n \"storageKey\": null\n},\nv8 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"content\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"AppointmentActivityCreatedPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"createPropertyForSaleByOwnerAppointmentActivity\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Error\",\n \"kind\": \"LinkedField\",\n \"name\": \"errors\",\n \"plural\": true,\n \"selections\": [\n (v2/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AppointmentActivity\",\n \"kind\": \"LinkedField\",\n \"name\": \"createdObject\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n (v4/*: any*/),\n (v5/*: any*/),\n (v6/*: any*/),\n (v7/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ActivityNote\",\n \"kind\": \"LinkedField\",\n \"name\": \"notes\",\n \"plural\": true,\n \"selections\": [\n (v8/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Mutation\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"AppointmentActivityCreatedPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"createPropertyForSaleByOwnerAppointmentActivity\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Error\",\n \"kind\": \"LinkedField\",\n \"name\": \"errors\",\n \"plural\": true,\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AppointmentActivity\",\n \"kind\": \"LinkedField\",\n \"name\": \"createdObject\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n (v4/*: any*/),\n (v5/*: any*/),\n (v6/*: any*/),\n (v7/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ActivityNote\",\n \"kind\": \"LinkedField\",\n \"name\": \"notes\",\n \"plural\": true,\n \"selections\": [\n (v8/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"da622b2b21d095b799e146c067d7954d\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation(\\n $input: CreateAppointmentActivityInputType!\\n) {\\n createPropertyForSaleByOwnerAppointmentActivity(input: $input) {\\n errors {\\n message\\n id\\n }\\n createdObject {\\n id\\n name\\n startDate\\n endDate\\n latestNoteContent\\n notes {\\n content\\n id\\n }\\n }\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"6927c105a6190cd303257dc5fd6fc447\";\n\nexport default node;\n","import { FC } from 'react';\nimport { FormattedMessage } from 'react-intl';\n\ntype Props = { activity: 'openHouse' | 'showCasing' | '' };\n\nexport const HeadLine: FC<Props> = ({ activity }) => {\n if (activity === 'openHouse') {\n return <FormattedMessage defaultMessage=\"Create open house\" id=\"selfsale.CreateOpenHouse\" />;\n } else if (activity === 'showCasing') {\n return <FormattedMessage defaultMessage=\"Create showing casing\" id=\"selfsale.showingCasing\" />;\n }\n\n return <FormattedMessage defaultMessage=\"Choose activity\" id=\"selfsale.chooseActivity\" />;\n};\n","import Input from 'components/molecules/input/input';\nimport { ChangeEvent, FC, ReactNode } from 'react';\nimport { CustomerFieldType } from '../choose-activity-modal';\n\ntype Props = {\n labelId: string;\n label: ReactNode;\n customerInfo: CustomerFieldType;\n handleCustomerInfoChange: (e: ChangeEvent<HTMLInputElement>, field: CustomerFieldType) => void;\n className?: string;\n};\n\nexport const ShowCasingInput: FC<Props> = ({ labelId, label, customerInfo, handleCustomerInfoChange, className }) => {\n return (\n <div className={className}>\n <label htmlFor={labelId}>{label}</label>\n <Input\n id={labelId}\n onChange={(e) => {\n handleCustomerInfoChange(e, customerInfo);\n }}\n type={customerInfo === 'phone' ? 'tel' : undefined}\n />\n </div>\n );\n};\n","import Modal from 'components/molecules/modal/modal';\nimport { FC, Fragment, useState, ChangeEvent, useEffect, useMemo } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport Button from 'components/atoms/button/button';\nimport Row from 'components/utilities/row/row';\nimport { graphql } from 'react-relay';\nimport useToggle from 'hooks/useToggle';\nimport { useQuery } from 'relay-hooks';\nimport { HeadLine } from './components/headline';\nimport {\n getDateWithAddedDefaultDurationInMin,\n getDateWithSelectedTime,\n getSpecificActivityObj,\n} from './self-sale-functions';\nimport { AppointmentModalContent, time } from './appointment-modal-content';\nimport Checkbox from 'components/molecules/checkbox/checkbox';\nimport './choose-activity-modal.scss';\nimport { ShowCasingInput } from './components/show-casing-input';\nimport { chooseActivityModal_Query } from '__generated__/chooseActivityModal_Query.graphql';\nimport { useCreate } from 'hooks/relay/useCreate';\nimport {\n chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation,\n CreateAppointmentActivityInputType,\n} from '__generated__/chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation.graphql';\nimport { AppointmentActivity } from 'Types';\n\ntype Props = {\n isOpen: boolean;\n toggleIsModalOpen: (bool?: boolean) => void;\n caseId: string;\n};\n\nexport type Activity = 'openHouse' | 'showCasing' | '';\nexport type CustomerFieldType = 'firstName' | 'lastName' | 'email' | 'phone';\n\ntype CustomerInfo = { firstName: string; lastName: string; email: string; phone: string };\n\nconst chooseActivityModalQuery = graphql`\n query chooseActivityModal_Query {\n viewer {\n ... on Viewer {\n id\n propertyForSaleByOwnerAppointmentActivityTypes {\n category\n defaultDurationInMinutes\n id\n name\n }\n customer {\n firstName\n lastName\n email\n phone\n }\n }\n }\n }\n`;\n\nexport const chooseActivityModalCreate = graphql`\n mutation chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation(\n $input: CreateAppointmentActivityInputType!\n ) {\n createPropertyForSaleByOwnerAppointmentActivity(input: $input) {\n errors {\n message\n }\n createdObject {\n id\n name\n startDate\n endDate\n latestNoteContent\n notes {\n content\n }\n }\n }\n }\n`;\n\nconst TO_MS = 60 * 1000;\n\nexport const ChooseActivityModal: FC<Props> = ({ isOpen, toggleIsModalOpen, caseId }) => {\n const { data } = useQuery<chooseActivityModal_Query>(chooseActivityModalQuery);\n const [createActivity] = useCreate<chooseActivityModal_createPropertyForSaleByOwnerAppointmentActivityMutation>(\n chooseActivityModalCreate,\n {\n __typename: AppointmentActivity,\n mutationName: 'createPropertyForSaleByOwnerAppointmentActivity',\n listName: 'futureActivities__timelineActivitiesConnection',\n parentID: caseId,\n },\n );\n\n const [chosenActivity, setChosenActivity] = useState<Activity>('');\n const [isRegistration, toggleIsRegistration] = useToggle();\n const [time, setTime] = useState<time>({\n timeStart: new Date(),\n timeEnd: new Date(),\n });\n const [customerInfo, setCustomerInfo] = useState<CustomerInfo>({ firstName: '', lastName: '', email: '', phone: '' });\n\n useEffect(() => {\n setTime({\n timeStart: new Date(),\n timeEnd: getDateWithAddedDefaultDurationInMin(data, isRegistration, chosenActivity),\n });\n }, [chosenActivity, data, isRegistration]);\n\n const handleChosenActivity = (activity: Activity) => {\n setChosenActivity(activity);\n };\n const handleCloseCross = () => {\n toggleIsModalOpen();\n setChosenActivity('');\n };\n\n const onChangeDay = (currentTimeStart: Date, currentTimeEnd: Date) => {\n setTime({ timeStart: currentTimeStart, timeEnd: currentTimeEnd });\n };\n\n /* TIMEPICKER */\n const handleBlurTimeStart = (timeDif: number, timeInMS: number) => {\n const defaultDurationInMinutes =\n getSpecificActivityObj(data, isRegistration, chosenActivity)?.defaultDurationInMinutes ?? 30;\n\n if (timeDif < defaultDurationInMinutes) {\n const newTimeEnd = new Date(timeInMS + defaultDurationInMinutes * TO_MS);\n setTime({ ...time, timeEnd: newTimeEnd });\n }\n };\n\n const handleChangeTimeStart = (e: ChangeEvent<HTMLInputElement>) => {\n setTime({ ...time, timeStart: getDateWithSelectedTime(e, time.timeStart) });\n };\n\n const handleBlurTimeEnd = (timeDif: number, timeInMs: number, e?: ChangeEvent<HTMLInputElement>) => {\n const defaultDurationInMinutes =\n getSpecificActivityObj(data, isRegistration, chosenActivity)?.defaultDurationInMinutes ?? 30;\n\n if (e && timeDif < defaultDurationInMinutes) {\n const newtimeStart = new Date(timeInMs - defaultDurationInMinutes * TO_MS);\n setTime({ timeStart: newtimeStart, timeEnd: getDateWithSelectedTime(e, time.timeEnd) });\n }\n };\n\n const handleChangeTimeEnd = (e: ChangeEvent<HTMLInputElement>) => {\n setTime({ ...time, timeEnd: getDateWithSelectedTime(e, time.timeEnd) });\n };\n\n /* CUSTOMER INFO */\n const handleCustomerInfoChange = (e: ChangeEvent<HTMLInputElement>, field: CustomerFieldType) => {\n setCustomerInfo({ ...customerInfo, [field]: e.target.value });\n };\n\n const isConfirmButtonDisabled = useMemo(() => {\n return Object.values(customerInfo).some((value) => value === '');\n }, [customerInfo]);\n\n const onSubmit = async () => {\n const openHouseObj = getSpecificActivityObj(data, isRegistration, chosenActivity);\n const isOpenHouse = chosenActivity === 'openHouse';\n\n const input: CreateAppointmentActivityInputType = {\n activityTypeId: openHouseObj?.id ?? '',\n endDatetime: time.timeEnd,\n startDatetime: time.timeStart,\n caseId,\n customer: {\n firstname: isOpenHouse ? data?.viewer?.customer?.firstName : customerInfo.firstName,\n lastname: isOpenHouse ? data?.viewer?.customer?.lastName : customerInfo.lastName,\n email: isOpenHouse ? data?.viewer?.customer?.email : customerInfo.email,\n phone: isOpenHouse ? data?.viewer?.customer?.phone : customerInfo.phone,\n },\n };\n\n handleCloseCross();\n await createActivity({\n variables: { input },\n });\n };\n\n return (\n <Fragment>\n {isOpen && (\n <Modal\n buttonConfig={\n chosenActivity !== ''\n ? [\n {\n callback: () => {\n toggleIsRegistration(false);\n setChosenActivity('');\n },\n label: 'Annuller',\n version: 'secondary',\n },\n {\n callback: async () => {\n await onSubmit();\n },\n label: 'Opret',\n type: 'submit',\n version: 'primary',\n disabled: chosenActivity === 'showCasing' ? isConfirmButtonDisabled : false,\n },\n ]\n : []\n }\n closeHandler={handleCloseCross}\n headline={<HeadLine activity={chosenActivity} />}\n >\n {chosenActivity === '' && (\n <div className=\"chooseActionsWrapper\">\n <Row center style={{ gap: '8px' }}>\n <Button version=\"secondary\" onClick={() => handleChosenActivity('openHouse')}>\n <FormattedMessage defaultMessage=\"Open house\" id=\"StatisticsHeader.OpenHouse\" />\n </Button>\n <Button version=\"secondary\" onClick={() => handleChosenActivity('showCasing')}>\n <FormattedMessage defaultMessage=\"Show casing\" id=\"Default.ShowCasing\" />\n </Button>\n </Row>\n </div>\n )}\n {chosenActivity !== '' && (\n <AppointmentModalContent\n onChangeDay={onChangeDay}\n time={time}\n handleChangeTimeStart={handleChangeTimeStart}\n handleChangeTimeEnd={handleChangeTimeEnd}\n handleBlurTimeStart={handleBlurTimeStart}\n handleBlurTimeEnd={handleBlurTimeEnd}\n secondChildren={\n chosenActivity === 'showCasing' && (\n <div className=\"showCasingInputTypeWrapper\">\n <ShowCasingInput\n labelId=\"selfsale.customerName\"\n label={<FormattedMessage id=\"customer.name\" defaultMessage=\"Customer name\" />}\n customerInfo=\"firstName\"\n handleCustomerInfoChange={handleCustomerInfoChange}\n className=\"showCasingInputTypeItem\"\n />\n <ShowCasingInput\n labelId=\"selfsale.customerlastname\"\n label={<FormattedMessage id=\"customer.lastname\" defaultMessage=\"Customer last name\" />}\n customerInfo=\"lastName\"\n handleCustomerInfoChange={handleCustomerInfoChange}\n className=\"showCasingInputTypeItem\"\n />\n <ShowCasingInput\n labelId=\"selfsale.customerEmail\"\n label={<FormattedMessage id=\"customer.email\" defaultMessage=\"Customer e-mail\" />}\n customerInfo=\"email\"\n handleCustomerInfoChange={handleCustomerInfoChange}\n className=\"showCasingInputTypeItem\"\n />\n <ShowCasingInput\n labelId=\"selfsale.customerPhone\"\n label={<FormattedMessage id=\"customer.phone\" defaultMessage=\"Customer phone\" />}\n customerInfo=\"phone\"\n handleCustomerInfoChange={handleCustomerInfoChange}\n />\n </div>\n )\n }\n >\n {chosenActivity === 'openHouse' && (\n <div className=\"checkBoxWrapper\">\n <FormattedMessage defaultMessage=\"With registration:\" id=\"selfSale.withRegistration\" />\n <Checkbox onChange={() => toggleIsRegistration()} />\n </div>\n )}\n </AppointmentModalContent>\n )}\n </Modal>\n )}\n </Fragment>\n );\n};\n","import { FocusEvent, FC, ChangeEvent } from 'react';\nimport './timepicker.scss';\n\nexport const TimerPicker: FC<{\n handleChange: (e: ChangeEvent<HTMLInputElement>) => void;\n onBlur: (e: FocusEvent<HTMLInputElement>) => void;\n date: null | Date;\n}> = ({ handleChange, date, onBlur }) => {\n const getTimeFromDate = (day: Date | null): string => {\n const hours = day?.getHours().toString().padStart(2, '0');\n const minutes = day?.getMinutes().toString().padStart(2, '0');\n return `${hours}:${minutes}`;\n };\n\n return (\n <div className=\"inputWrapper\">\n <input\n id=\"time\"\n type=\"time\"\n value={getTimeFromDate(date)}\n onChange={handleChange}\n onBlur={onBlur}\n className=\"inputPadding\"\n />\n </div>\n );\n};\n","import { ChangeEvent, FC, FocusEvent, Fragment, ReactNode } from 'react';\nimport { getDateWithSelectedTime } from '../self-sale-functions';\nimport { TimerPicker } from 'components/molecules/timepicker/timerpicker';\nimport '../choose-activity-modal.scss';\n\nexport const AppointmentTimePicker: FC<{\n labelStart: ReactNode;\n labelEnd: ReactNode;\n handleChangeTimeStart: (e: ChangeEvent<HTMLInputElement>) => void;\n handleChangeTimeEnd: (e: ChangeEvent<HTMLInputElement>) => void;\n handleBlurTimeStart: (timeDif: number, timeInMs: number, e: ChangeEvent<HTMLInputElement>) => void;\n handleBlurTimeEnd: (timeDif: number, timeInMs: number, e: ChangeEvent<HTMLInputElement>) => void;\n timeStart: Date;\n timeEnd: Date;\n}> = ({\n labelStart,\n labelEnd,\n handleChangeTimeStart,\n handleChangeTimeEnd,\n handleBlurTimeStart,\n handleBlurTimeEnd,\n timeStart,\n timeEnd,\n}) => {\n const handleTimeBlurStart = (e: FocusEvent<HTMLInputElement>) => {\n const time = getDateWithSelectedTime(e, timeStart);\n\n const timeStartMS = time.getTime();\n const timeEndMS = timeEnd.getTime();\n const timeDifferenceInMS = timeEndMS - timeStartMS;\n const timeDifferenceInMinutes = timeDifferenceInMS / (1000 * 60);\n\n handleBlurTimeStart(timeDifferenceInMinutes, timeStartMS, e);\n };\n const handleTimeBlurEnd = (e: FocusEvent<HTMLInputElement>) => {\n const time = getDateWithSelectedTime(e, timeEnd);\n\n const timeEndMS = time.getTime();\n const timeStartMS = timeStart.getTime();\n const timeDifferenceInMS = timeEndMS - timeStartMS;\n const timeDifferenceInMinutes = timeDifferenceInMS / (1000 * 60);\n\n handleBlurTimeEnd(timeDifferenceInMinutes, timeEndMS, e);\n };\n\n return (\n <Fragment>\n <div className=\"appointmentTimePickerWrapper\">\n {labelStart}\n <TimerPicker handleChange={handleChangeTimeStart} date={timeStart} onBlur={handleTimeBlurStart} />\n </div>\n <div className=\"appointmentTimePickerWrapper\">\n {labelEnd}\n <TimerPicker handleChange={handleChangeTimeEnd} date={timeEnd} onBlur={handleTimeBlurEnd} />\n </div>\n </Fragment>\n );\n};\n","import { Activity } from './choose-activity-modal';\nimport { ChangeEvent } from 'react';\nimport { chooseActivityModal_Query$data } from '__generated__/chooseActivityModal_Query.graphql';\n\nexport const getSpecificActivityObj = (\n data: chooseActivityModal_Query$data | null | undefined,\n isRegistration: boolean,\n chosenActivity: Activity,\n) => {\n if (!data || !data.viewer) {\n return null;\n }\n return data.viewer.propertyForSaleByOwnerAppointmentActivityTypes?.find((activity) => {\n if (chosenActivity === 'openHouse' && isRegistration) {\n return activity?.category === 'OpenHouseWithRegistration';\n } else if (chosenActivity === 'showCasing') {\n return activity?.category === 'Showcasing';\n } else {\n return activity?.category === 'OpenHouse';\n }\n });\n};\n\nconst DEFAULT_ADDED_MINUTES = 30;\nexport const getDateWithAddedDefaultDurationInMin = (\n data: chooseActivityModal_Query$data | null | undefined,\n isRegistration: boolean,\n chosenActivity: Activity,\n) => {\n const getAddedMinutes = () => {\n if (!data) {\n return DEFAULT_ADDED_MINUTES;\n }\n\n return (\n getSpecificActivityObj(data, isRegistration, chosenActivity)?.defaultDurationInMinutes ?? DEFAULT_ADDED_MINUTES\n );\n };\n\n const date = new Date();\n date.setMinutes(date.getMinutes() + getAddedMinutes());\n return date;\n};\nexport const getDateWithSelectedTime = (e: ChangeEvent<HTMLInputElement>, selectedDate: Date): Date => {\n const timeString = e.target.value.split(':');\n const hours = parseInt(timeString[0]);\n const minutes = parseInt(timeString[1]);\n const givenDate = new Date(selectedDate);\n givenDate.setHours(hours);\n givenDate.setMinutes(minutes);\n return givenDate;\n};\n","import classNames from 'classnames';\nimport Column from 'components/utilities/column/column';\nimport Container from 'components/utilities/container/container';\nimport ModuleWrapper from 'components/utilities/module-wrapper/module-wrapper';\nimport Row from 'components/utilities/row/row';\nimport { FC, ReactNode, useEffect, useState, type KeyboardEvent, useRef } from 'react';\nimport { useNavigate, useSearchParams } from 'react-router-dom';\nimport './tab-component.scss';\nimport { useMixPanel } from 'hooks/useMixPanel';\nimport { ActivitiesTab } from 'app/pages/activities/tab';\nimport { FavouritesTab } from 'app/pages/favorites/tab';\nimport { MatchTab } from 'app/pages/match/tab';\nimport { MySalesTab } from 'app/pages/my-sales/tab';\n\nexport interface TabComponentProps {\n activeTab: string;\n tabContent: { item: ReactNode; key: string }[];\n tabNav: { isDisabled?: boolean; item: ReactNode; key: string }[];\n}\n\nconst TabComponent: FC<TabComponentProps> = (props) => {\n const { activeTab, tabContent, tabNav } = props;\n const [searchParams] = useSearchParams();\n const navigate = useNavigate();\n const [visibleTab, setVisibleTab] = useState(activeTab);\n const [highlightedTab, setHighlightedTab] = useState(activeTab);\n const { track } = useMixPanel();\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const tabFromParams = searchParams.get('tab');\n if (tabFromParams) {\n setVisibleTab(tabFromParams);\n setHighlightedTab(tabFromParams);\n }\n }, [searchParams]);\n\n useEffect(() => {\n document.querySelector('.main-navigation')?.classList.add('no-shadow');\n\n return () => {\n document.querySelector('.main-navigation')?.classList.remove('no-shadow');\n };\n }, []);\n\n const handleOnClick = (key: string) => {\n setVisibleTab(key);\n navigate({\n search: '?tab=' + key,\n });\n\n switch (key) {\n case ActivitiesTab.ACTIVITIES:\n track('Activities_Navigate', { activitySection: 'FUTURE-ACTIVITIES' });\n break;\n\n case ActivitiesTab.PAST_ACTIVITIES:\n track('Activities_Navigate', { activitySection: 'PREVIOUS-ACTIVITIES' });\n break;\n\n case FavouritesTab.FAVORITES:\n track('Favorites_Navigate', { brokerSection: 'BROKER' });\n break;\n\n case FavouritesTab.FAVORITES_OTHER_BROKER:\n track('Favorites_Navigate', { brokerSection: 'OTHER-BROKER' });\n break;\n\n case MatchTab.MATCHES:\n track('Matches_Navigate', { matchSection: 'MATCHES' });\n break;\n\n case MatchTab.SEARCH_PROFILES:\n track('Matches_Navigate', { matchSection: 'SEARCH-AGENT' });\n break;\n\n case MySalesTab.ACTIVE:\n track('Mysales_Navigate', { salesSection: 'ACTIVE-SALES' });\n break;\n\n case MySalesTab.FINISHED:\n track('Mysales_Navigate', { salesSection: 'ENDED-SALES' });\n break;\n\n default:\n break;\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n const currentIndex = tabNav.findIndex((tab) => tab.key === highlightedTab);\n\n if (event.key === 'ArrowLeft' && currentIndex > 0) {\n setHighlightedTab(tabNav[currentIndex - 1].key);\n } else if (event.key === 'ArrowRight' && currentIndex < tabNav.length - 1) {\n setHighlightedTab(tabNav[currentIndex + 1].key);\n }\n };\n\n useEffect(() => {\n if (containerRef.current?.matches(':focus-within')) {\n document.getElementById('tab-nav-id-' + highlightedTab)?.focus();\n }\n }, [highlightedTab]);\n\n return (\n <div className=\"tab-component\">\n <ModuleWrapper backgroundColor=\"white\">\n <Container ref={containerRef} paddingBottomReset paddingTopReset>\n <Row>\n <Column>\n <div className=\"tab-component__nav\">\n {tabNav.map((item) => (\n <button\n key={item.key}\n aria-controls={`tab-section-${item.key}`}\n className={classNames('tab-component__nav-item', {\n 'is-active': visibleTab === item.key,\n 'is-disabled': item.isDisabled,\n 'is-highlighted': highlightedTab === item.key,\n })}\n disabled={item.isDisabled}\n tabIndex={highlightedTab === item.key ? 0 : -1}\n id={`tab-nav-id-${item.key}`}\n onClick={() => handleOnClick(item.key)}\n onKeyDown={handleKeyDown}\n type=\"button\"\n >\n {item.item}\n </button>\n ))}\n </div>\n </Column>\n </Row>\n </Container>\n </ModuleWrapper>\n <div className=\"tab-component__content\">\n {tabContent.map((component) => {\n if (component.key !== visibleTab) return null;\n return (\n <div\n key={component.key}\n className={`tab-component__content-item ${visibleTab === component.key && 'is-active'}`}\n id={`tab-section-${component.key}`}\n >\n {component.item}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default TabComponent;\n","import { Component, ErrorInfo, ReactNode } from 'react';\nimport { sendErrorToServer } from 'services/errors/LogProxy';\nimport Container from 'components/utilities/container/container';\nimport { FormattedMessage } from 'react-intl';\nimport './error-boundary-block.scss';\n\ntype Props = unknown & {\n children: ReactNode;\n customErrorMessage?: string;\n};\n\ninterface State {\n error?: Error;\n errorInfo?: ErrorInfo;\n hasError: boolean;\n errorId: string | null;\n}\n\nexport class ErrorBoundaryBlock extends Component<Props, State> {\n constructor(props: Props) {\n super(props);\n this.state = { hasError: false, errorId: null };\n }\n\n static getDerivedStateFromError(error: Error) {\n // Update state so the next render will show the fallback UI.\n return { error, hasError: true };\n }\n\n async componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n // You can also log the error to an error reporting service\n const { message, stack } = error;\n const { componentStack } = errorInfo;\n const errorId = await sendErrorToServer({\n message,\n stack,\n componentStack: componentStack ?? '',\n });\n this.setState({ errorId });\n }\n\n render() {\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return (\n <Container paddingTopReset className=\"error-message\">\n <FormattedMessage defaultMessage=\"We are sorry, something went wrong\" id=\"Default.ErrorMessage\" />\n <span>{this.state.errorId}</span>\n </Container>\n );\n }\n\n return this.props.children;\n }\n}\n","import { FC, ReactNode, Suspense } from 'react';\nimport { ErrorBoundaryBlock } from 'components/templates/error-boundary-block';\n\ninterface Props {\n fallback: ReactNode;\n children: ReactNode[] | ReactNode;\n errorMessage?: string;\n}\nexport const SuspenseHoc: FC<Props> = ({ children, fallback, errorMessage = '' }) => {\n return (\n <ErrorBoundaryBlock customErrorMessage={errorMessage}>\n <Suspense fallback={fallback}>{children}</Suspense>\n </ErrorBoundaryBlock>\n );\n};\n","import classNames from 'classnames';\nimport './block.scss';\nimport { FC, MouseEventHandler, ReactNode } from 'react';\n\nexport interface BlockProps {\n backgroundColor?: 'white' | 'grey2' | 'grey3' | 'primary' | 'brand';\n borderRadius?: boolean;\n boxShadow?: boolean;\n children?: ReactNode;\n className?: string;\n column?: boolean;\n customPadding?: 'xxs' | 'xs' | 'sm' | 'md' | 'xl';\n flex?: boolean;\n flex1?: boolean;\n flexGutter?: 'xxs' | 'xs' | 'md';\n flexWrap?: boolean;\n justifyRight?: boolean;\n marginBottom?: boolean;\n overflowHidden?: boolean;\n positionRelative?: boolean;\n spaceBetween?: boolean;\n onClick?: MouseEventHandler<HTMLDivElement>;\n}\n\nconst Block: FC<BlockProps> = ({\n children,\n className,\n column,\n borderRadius,\n customPadding,\n marginBottom,\n backgroundColor,\n boxShadow,\n flex,\n flexGutter,\n flexWrap,\n flex1,\n justifyRight,\n overflowHidden,\n positionRelative,\n spaceBetween,\n onClick,\n}) => {\n return (\n <div\n className={classNames('block', className, {\n 'border-radius': borderRadius,\n boxShadow,\n brand: backgroundColor === 'brand',\n 'column-flex': column,\n flex,\n 'flex-1': flex1,\n 'flex-wrap': flexWrap,\n grey2: backgroundColor === 'grey2',\n grey3: backgroundColor === 'grey3',\n 'gutter-md': flexGutter === 'md',\n 'gutter-xs': flexGutter === 'xs',\n 'gutter-xxs': flexGutter === 'xxs',\n 'justify-right': justifyRight,\n marginBottom,\n 'overflow-hidden': overflowHidden,\n 'padding-md': customPadding === 'md',\n 'padding-sm': customPadding === 'sm',\n 'padding-xl': customPadding === 'xl',\n 'padding-xs': customPadding === 'xs',\n 'padding-xxs': customPadding === 'xxs',\n 'position-relative': positionRelative,\n primary: backgroundColor === 'primary',\n spaceBetween,\n white: backgroundColor === 'white',\n })}\n onClick={onClick}\n >\n {children}\n </div>\n );\n};\n\nexport default Block;\n","import classNames from 'classnames';\nimport { forwardRef, HTMLAttributes, useMemo } from 'react';\nimport './column.scss';\n\nexport type ColumnsType = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;\n\ninterface ColumnBreakPoints {\n desktop?: ColumnsType;\n mobile?: ColumnsType;\n tablet?: ColumnsType;\n}\n\nexport interface ColumnProps extends HTMLAttributes<HTMLDivElement> {\n fullHeight?: boolean;\n marginBottom?: boolean;\n noMargin?: boolean;\n noPaddingOnMobile?: boolean;\n offset?: ColumnBreakPoints;\n order?: ColumnBreakPoints;\n width?: ColumnBreakPoints;\n}\n\nconst Column = forwardRef<HTMLDivElement, ColumnProps>(\n (\n { children, className, fullHeight, noMargin, offset, order, marginBottom, width, noPaddingOnMobile, ...rest },\n ref,\n ) => {\n const getClass = (name: 'offset' | 'order' | 'component', breakpoint?: ColumnBreakPoints) => {\n if (breakpoint) {\n return classNames(\n typeof breakpoint.mobile === 'number' && `${name}--${breakpoint.mobile}`,\n typeof breakpoint.tablet === 'number' && `tablet:${name}--${breakpoint.tablet}`,\n typeof breakpoint.desktop === 'number' && `desktop:${name}--${breakpoint.desktop}`,\n );\n }\n };\n const columnClasses = useMemo(() => {\n return classNames(getClass('component', width), getClass('offset', offset), getClass('order', order), {\n fullHeight,\n marginBottom,\n noMargin,\n noPaddingOnMobile,\n });\n }, [width, offset, order, fullHeight, marginBottom, noMargin, noPaddingOnMobile]);\n\n return (\n <div ref={ref} {...rest} className={classNames('column', columnClasses, className)}>\n {children}\n </div>\n );\n },\n);\n\nColumn.displayName = 'Column';\n\nexport default Column;\n","import classNames from 'classnames';\nimport { forwardRef, HTMLAttributes } from 'react';\nimport './container.scss';\n\nexport interface ContainerProps extends HTMLAttributes<HTMLDivElement> {\n backgroundColor?: 'white';\n fullWidth?: boolean;\n fullWidthMobile?: boolean;\n paddingBottomReset?: boolean;\n paddingTopReset?: boolean;\n pushTop?: boolean;\n}\n\nconst Container = forwardRef<HTMLDivElement, ContainerProps>(\n (\n {\n children,\n className,\n fullWidth,\n fullWidthMobile,\n backgroundColor,\n paddingTopReset,\n paddingBottomReset,\n pushTop,\n ...rest\n },\n ref,\n ) => {\n return (\n <div\n ref={ref}\n {...rest}\n className={classNames('grid-container', className, {\n 'background-white': backgroundColor === 'white',\n 'full-width': fullWidth,\n 'full-width-mobile': fullWidthMobile,\n 'padding-bottom-reset': paddingBottomReset,\n 'padding-top-reset': paddingTopReset,\n 'push-top': pushTop,\n })}\n >\n {children}\n </div>\n );\n },\n);\n\nexport default Container;\n","import classNames from 'classnames';\nimport { CSSProperties, forwardRef, ReactNode } from 'react';\nimport './module-wrapper.scss';\n\nexport interface ModuleWrapperProps {\n backgroundColor?: 'white' | 'grey' | 'primary' | 'brand';\n borderTop?: boolean;\n boxShadow?: boolean;\n children: ReactNode;\n className?: string;\n fullHeight?: boolean;\n fullHeightWithoutMainNav?: boolean;\n style?: CSSProperties;\n}\n\nconst ModuleWrapper = forwardRef<HTMLDivElement, ModuleWrapperProps>((props, ref) => {\n const {\n backgroundColor,\n boxShadow,\n children,\n className,\n borderTop,\n fullHeight,\n fullHeightWithoutMainNav,\n style,\n ...rest\n } = props;\n return (\n <div\n {...rest}\n ref={ref}\n className={classNames('module-wrapper', className, {\n borderTop,\n boxShadow,\n brand: backgroundColor === 'brand',\n fullHeight,\n fullHeightWithoutMainNavOnMobile: fullHeightWithoutMainNav,\n grey: backgroundColor === 'grey',\n primary: backgroundColor === 'primary',\n white: backgroundColor === 'white',\n })}\n style={style}\n >\n {children}\n </div>\n );\n});\n\nModuleWrapper.displayName = 'ModuleWrapper';\n\nexport default ModuleWrapper;\n","import classNames from 'classnames';\nimport { forwardRef, HTMLAttributes } from 'react';\nimport './row.scss';\n\nexport interface RowProps extends HTMLAttributes<HTMLDivElement> {\n alignCenter?: boolean;\n center?: boolean;\n noAdjacentMargin?: boolean;\n pageHeight?: boolean;\n pushBottom?: boolean;\n pushTop?: boolean;\n spaceBetween?: boolean;\n}\n\nconst Row = forwardRef<HTMLDivElement, RowProps>(\n (\n {\n children,\n className,\n pageHeight,\n pushTop,\n pushBottom,\n spaceBetween,\n alignCenter,\n center,\n noAdjacentMargin,\n ...rest\n },\n ref,\n ) => {\n const classList = classNames('row', className, {\n alignCenter,\n center,\n noAdjacentMargin,\n pageHeight,\n pushBottom,\n pushTop,\n spaceBetween,\n });\n return (\n <div ref={ref} {...rest} className={classList}>\n {children}\n </div>\n );\n },\n);\n\nRow.displayName = 'Row';\n\nexport default Row;\n","import {\n ConnectionHandler,\n MutationParameters,\n RecordProxy,\n RecordSourceSelectorProxy,\n Variables,\n} from 'relay-runtime';\nimport { GraphQLTaggedNode } from 'react-relay';\nimport { ReactNode, useCallback } from 'react';\nimport { MutationConfig, useMutation } from 'relay-hooks';\nimport { toast } from 'react-toastify';\nimport { FormattedMessage } from 'react-intl';\nimport { useFormatType } from '../../trans/TypeTranslations';\nimport { responseHasErrors } from 'hooks/relay/relay-utils';\n\ntype MwBaseUpdaterConfig = {\n __typename?: string | null;\n listArgs?: Variables;\n listName?: string;\n parentID?: string;\n rootField?: string;\n mutationName?: string;\n payloadName?: string;\n};\n\ntype MwToastConfig = {\n toast?: boolean;\n toastMessageSuccess?: ReactNode;\n toastMessageFail?: ReactNode;\n};\n\ntype MwCreateUpdaterConfig = MwBaseUpdaterConfig;\ntype MwConfig<T extends MutationParameters> = MutationConfig<T>;\n\ntype CreateHookConfig<T extends MutationParameters> = MwBaseUpdaterConfig & MwToastConfig & MwConfig<T>;\n\nexport function useCreate<T extends MutationParameters>(\n graphqlTaggedNode: GraphQLTaggedNode,\n hookConfig: CreateHookConfig<T> = {},\n) {\n const [nativeMutationFn, mutationState] = useMutation<T>(graphqlTaggedNode, hookConfig);\n const formatType = useFormatType();\n\n const makeUpdater = useCallback(\n ({ __typename, listName, listArgs, parentID, rootField, payloadName, mutationName }: MwCreateUpdaterConfig) => {\n return (store: RecordSourceSelectorProxy<T['response']>) => {\n if (!mutationName) {\n return;\n }\n\n const payload = store.getRootField(mutationName);\n if (!payload) {\n return;\n }\n\n let parent: RecordProxy<object> | null | undefined = null;\n if (parentID) {\n parent = store.get(parentID);\n }\n if (!parent && rootField) {\n parent = store.getRoot().getLinkedRecord(rootField);\n }\n if (!parent || !listName) {\n return;\n }\n\n let nodePayload: RecordProxy | RecordProxy[] | null = payload.getLinkedRecord(payloadName ?? 'createdObject');\n if (nodePayload === null) {\n nodePayload = payload.getLinkedRecords(payloadName ?? 'createdObjects');\n }\n if (!nodePayload) return;\n\n const nodes = Array.isArray(nodePayload) ? nodePayload : [nodePayload];\n if (!nodes) return;\n\n const connection = ConnectionHandler.getConnection(parent, listName, listArgs);\n\n if (connection) {\n const totalCount = (connection.getValue('totalCount') as number) ?? 0;\n connection.setValue(totalCount + nodes.length, 'totalCount');\n\n nodes.forEach((node) => {\n const edge = ConnectionHandler.createEdge(store, connection, node, `${__typename}Edge`);\n ConnectionHandler.insertEdgeAfter(connection, edge);\n });\n\n return;\n }\n\n const linkedRecords = parent.getLinkedRecords(listName, listArgs) || [];\n parent.setLinkedRecords([...linkedRecords, ...nodes], listName, listArgs);\n };\n },\n [],\n );\n\n const mutationFn = useCallback(\n (mutationConfig: CreateHookConfig<T> = {}) => {\n const mergedConfig: CreateHookConfig<T> = {\n mutationName: `create${hookConfig?.__typename ?? mutationConfig.__typename}`,\n ...hookConfig,\n ...mutationConfig,\n };\n\n const updater = makeUpdater(mergedConfig);\n\n const promise = nativeMutationFn({\n variables: {},\n updater,\n ...mutationConfig,\n });\n\n if (mergedConfig?.toast) {\n promise\n .then(() => {\n toast.success(mergedConfig.toastMessageSuccess);\n })\n .catch(() => {\n toast.error(mergedConfig.toastMessageFail);\n });\n } else {\n promise\n .then((res) => {\n if (responseHasErrors(res)) {\n toast.error(\n <FormattedMessage\n id=\"UseCreate.Error\"\n defaultMessage=\"{value} was not created\"\n values={{ value: formatType(hookConfig.__typename) }}\n />,\n );\n } else {\n toast.success(\n <FormattedMessage\n id=\"UseCreate.Success\"\n defaultMessage=\"{value} was created\"\n values={{ value: formatType(hookConfig.__typename) }}\n />,\n );\n }\n })\n .catch(() => {\n toast.error(\n <FormattedMessage\n id=\"UseCreate.Error\"\n defaultMessage=\"{value} was not created\"\n values={{ value: formatType(hookConfig.__typename) }}\n />,\n );\n });\n }\n\n return promise;\n },\n [formatType, hookConfig, makeUpdater, nativeMutationFn],\n );\n\n return [mutationFn, mutationState] as const;\n}\n","export function responseHasErrors(obj: { [key: string]: any }): boolean {\n const propertyName = 'errors';\n // Base case: If the object has the property and it is truthy, return true.\n if (obj.hasOwnProperty(propertyName) && obj[propertyName].length > 0) {\n return true;\n }\n\n // Recursive case: Go through each property of the object.\n for (const key in obj) {\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n // If the property is an object, recursively call the function.\n if (responseHasErrors(obj[key])) {\n return true;\n }\n }\n }\n\n // If the property wasn't found or was falsy, return false.\n return false;\n}\n","import { ReactNode, useCallback } from 'react';\nimport { useMutation, MutationConfig } from 'relay-hooks';\nimport { MutationParameters } from 'relay-runtime';\nimport { GraphQLTaggedNode } from 'react-relay';\nimport { toast } from 'react-toastify';\nimport { FormattedMessage } from 'react-intl';\nimport { useFormatType } from '../../trans/TypeTranslations';\n\ntype MwToastConfig = {\n __typename?: string;\n toast?: boolean;\n toastMessageSuccess?: ReactNode;\n toastMessageFail?: ReactNode;\n};\n\ntype UpdateHookConfig<T extends MutationParameters> = MutationConfig<T> & MwToastConfig;\n\nexport function useUpdate<T extends MutationParameters>(\n graphqlTaggedNode: GraphQLTaggedNode,\n hookConfig: UpdateHookConfig<T> = {},\n) {\n const formatType = useFormatType();\n\n const [mutation, mutationState] = useMutation<T>(graphqlTaggedNode);\n\n const mutationFn = useCallback(\n (customConfig: UpdateHookConfig<T> = {}) => {\n const mergedConfig: UpdateHookConfig<T> = {\n ...hookConfig,\n ...customConfig,\n };\n\n const promise = mutation({ variables: {}, ...mergedConfig });\n\n if (mergedConfig?.toast) {\n promise\n .then(() => {\n toast.success(mergedConfig.toastMessageSuccess);\n })\n .catch(() => {\n toast.error(mergedConfig.toastMessageFail);\n });\n } else {\n promise\n .then(() => {\n toast.success(\n <FormattedMessage\n id=\"UseUpdate.Success\"\n defaultMessage=\"{value} was updated\"\n values={{ value: formatType(hookConfig.__typename) }}\n />,\n );\n })\n .catch(() => {\n toast.error(\n <FormattedMessage\n id=\"UseUpdate.Error\"\n defaultMessage=\"{value} was not updated\"\n values={{ value: formatType(hookConfig.__typename) }}\n />,\n );\n });\n }\n return promise;\n },\n [formatType, hookConfig, mutation],\n );\n\n return [mutationFn, mutationState] as const;\n}\n","import { RefObject, useEffect } from 'react';\n\ntype Event = MouseEvent | TouchEvent;\n\nconst useOnClickOutside = <T extends HTMLElement = HTMLElement>(ref: RefObject<T>, handler: (event: Event) => void) => {\n useEffect(() => {\n const listener = (event: Event) => {\n const el = ref?.current;\n if (!el || el.contains((event?.target as Node) || null)) {\n return;\n }\n\n handler(event); // Call the handler only if the click is outside of the element passed.\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, handler]); // Reload only if ref or handler changes\n};\n\nexport default useOnClickOutside;\n","import { RefObject, useCallback, useEffect, useState } from 'react';\n\ninterface Args extends IntersectionObserverInit {\n freezeOnceVisible?: boolean;\n}\n\nfunction useIntersectionObserver(\n elementRef: RefObject<Element>,\n { threshold = 0, root = null, rootMargin = '0%', freezeOnceVisible = false }: Args,\n): IntersectionObserverEntry {\n const [entry, setEntry] = useState<IntersectionObserverEntry>({} as IntersectionObserverEntry);\n\n const frozen = entry?.isIntersecting && freezeOnceVisible;\n\n const updateEntry = useCallback(([entry]: IntersectionObserverEntry[]): void => {\n setEntry(entry);\n }, []);\n\n useEffect(() => {\n const node = elementRef?.current; // DOM Ref\n const hasIOSupport = !!window.IntersectionObserver;\n\n if (!hasIOSupport || frozen || !node) return;\n\n const observerParams = { root, rootMargin, threshold };\n const observer = new IntersectionObserver(updateEntry, observerParams);\n\n observer.observe(node);\n\n return () => observer.disconnect();\n }, [threshold, root, rootMargin, frozen, elementRef, updateEntry]);\n\n return entry;\n}\n\nexport default useIntersectionObserver;\n","import { useLayoutEffect, useState } from 'react';\n// Inspiration taken from here: https://usehooks.com/useWindowSize/\ninterface Size {\n height?: number;\n width?: number;\n}\n\n// Hook\nconst useWindowSize = () => {\n const [windowSize, setWindowSize] = useState<Size>({\n height: window.innerHeight,\n width: window.innerWidth,\n });\n\n useLayoutEffect(() => {\n // Handler to call on window resize\n const handleResize = () => {\n // Set window width/height to state\n setWindowSize({\n height: window.innerHeight,\n width: window.innerWidth,\n });\n };\n // Add event listener\n window.addEventListener('resize', handleResize);\n // Call handler right away so state gets updated with initial window size\n handleResize();\n // Remove event listener on cleanup\n return () => window.removeEventListener('resize', handleResize);\n }, []); // Empty array ensures that effect is only run on mount\n\n return windowSize;\n};\n\nexport default useWindowSize;\n","import useWindowSize from './useWindowSize';\n\n// TODO: use import { isMobile, isTablet } from 'react-device-detect';\n\nconst useIsMobile = () => {\n const { width } = useWindowSize();\n\n return !!width && width < 1024; // aligned with $breakpoint-tablet\n};\n\nexport default useIsMobile;\n","import { useMemo } from 'react';\nimport { notEmpty } from './useNodes';\n\nexport function useList<T>(listItems: readonly (T | null | undefined)[] | null | undefined) {\n return useMemo(() => listItems?.filter(notEmpty) ?? [], [listItems]);\n}\n\nexport type ExtractArrayType<O, K extends keyof O> = NonNullable<O[K]> extends readonly (infer I)[] ? I : never;\n","import { MixpanelContext } from 'app/mixpanel/MixPanelProvider';\nimport { useContext } from 'react';\n\nexport const useMixPanel = () => useContext(MixpanelContext);\n","import { useMemo } from 'react';\n\nexport type Edges<T> = readonly (Readonly<{ node: T | null | undefined }> | null | undefined)[] | null | undefined;\n\nexport function useNodes<T>(edges: Edges<T>): readonly T[] {\n return useMemo(() => {\n if (!edges) {\n return [];\n }\n\n return edges.reduce((accumulator, edge) => {\n if (notEmpty(edge) && notEmpty(edge.node)) {\n accumulator.push(edge.node as T);\n }\n\n return accumulator;\n }, [] as T[]);\n }, [edges]);\n}\n\nexport function notEmpty<T>(value: T | null | undefined): value is T {\n return value !== null && value !== undefined;\n}\n","import { defineMessages, useIntl } from 'react-intl';\n\ninterface Translation {\n [key: string]: { defaultMessage: string; id: string };\n}\nconst PropertyType: Translation = defineMessages({\n AllotmentHut: {\n defaultMessage: 'Allotment hut',\n id: 'PropertyType.AllotmentHut',\n },\n AllotmentPlot: {\n defaultMessage: 'Allotment plot',\n id: 'PropertyType.AllotmentPlot',\n },\n AllYearRoundPlot: {\n defaultMessage: 'All year round plot',\n id: 'PropertyType.AllYearRoundPlot',\n },\n Cattle: {\n defaultMessage: 'Cattle property',\n id: 'PropertyType.Cattle',\n },\n Cellar: {\n defaultMessage: 'Cellar',\n id: 'PropertyType.Cellar',\n },\n Clinic: {\n defaultMessage: 'Clinic',\n id: 'PropertyType.Clinic',\n },\n Condo: {\n defaultMessage: 'Condo',\n id: 'PropertyType.Condo',\n },\n Crop: {\n defaultMessage: 'Crop property',\n id: 'PropertyType.Crop',\n },\n FarmHouseAgriculture: {\n defaultMessage: 'Farm house agriculture',\n id: 'PropertyType.FarmHouseAgriculture',\n },\n FarmLand: {\n defaultMessage: 'Farm land',\n id: 'PropertyType.FarmLand',\n },\n ForestProperty: {\n defaultMessage: 'Forest property',\n id: 'PropertyType.ForestProperty',\n },\n FormerFarm: {\n defaultMessage: 'Former farm',\n id: 'PropertyType.FormerFarm',\n },\n FreeLand: {\n defaultMessage: 'Free land',\n id: 'PropertyType.FreeLand',\n },\n Garage: {\n defaultMessage: 'Garage',\n id: 'PropertyType.Garage',\n },\n HobbyAgriculture: {\n defaultMessage: 'Hobby agriculture',\n id: 'PropertyType.HobbyAgriculture',\n },\n HotelOrRestaurant: {\n defaultMessage: 'Hotel or restaurant',\n id: 'PropertyType.HotelOrRestaurant',\n },\n HousingAndBusiness: {\n defaultMessage: 'Mixed residential and business',\n id: 'PropertyType.HousingAndBusiness',\n },\n HousingCooperative: {\n defaultMessage: 'Housing cooperative',\n id: 'PropertyType.HousingCooperative',\n },\n IdeelAnpartCondo: {\n defaultMessage: 'Ideal share (condo)',\n id: 'PropertyType.IdeelAnpartCondo',\n },\n IdeelAnpartTerracedHouse: {\n defaultMessage: 'Ideal share (Terraced house)',\n id: 'PropertyType.IdeelAnpartTerracedHouse',\n },\n IdeelAnpartVilla: {\n defaultMessage: 'Ideal share (villa)',\n id: 'PropertyType.IdeelAnpartVilla',\n },\n Investment: {\n defaultMessage: 'Residential rental property',\n id: 'PropertyType.Investment',\n },\n Liberal: {\n defaultMessage: 'Liberal profession',\n id: 'PropertyType.Liberal',\n },\n Liebhaveri: {\n defaultMessage: 'Liebhaveri',\n id: 'PropertyType.Liebhaveri',\n },\n MinkAndFurAnimals: {\n defaultMessage: 'Mink and fur animals',\n id: 'PropertyType.MinkAndFurAnimals',\n },\n MixedHousingAndBusiness: {\n defaultMessage: 'Mixed housing and business',\n id: 'PropertyType.MixedHousingAndBusiness',\n },\n Office: {\n defaultMessage: 'Office',\n id: 'PropertyType.Office',\n },\n Parking: {\n defaultMessage: 'Parking lot',\n id: 'PropertyType.Parking',\n },\n PartnershipOrLimitedPartnershipCondo: {\n defaultMessage: 'K/S, I/S (condo)',\n id: 'PropertyType.PartnershipOrLimitedPartnershipCondo',\n },\n PartnershipOrLimitedPartnershipTerracedHouse: {\n defaultMessage: 'I/S, K/S (Terraced house)',\n id: 'PropertyType.PartnershipOrLimitedPartnershipTerracedHouse',\n },\n PartnershipOrLimitedPartnershipVilla: {\n defaultMessage: 'I/S, K/S (villa)',\n id: 'PropertyType.PartnershipOrLimitedPartnershipVilla',\n },\n Pigs: {\n defaultMessage: 'Pig property',\n id: 'PropertyType.Pigs',\n },\n Plot: {\n defaultMessage: 'Plot',\n id: 'PropertyType.Plot',\n },\n PoultryProduction: {\n defaultMessage: 'Poultry production',\n id: 'PropertyType.PoultryProduction',\n },\n ProductionFacility: {\n defaultMessage: 'Production',\n id: 'PropertyType.ProductionFacility',\n },\n ShoppingCenter: {\n defaultMessage: 'Shoppingcenter',\n id: 'PropertyType.ShoppingCenter',\n },\n Showroom: {\n defaultMessage: 'Showroom',\n id: 'PropertyType.Showroom',\n },\n SpecialProduction: {\n defaultMessage: 'Special production',\n id: 'PropertyType.SpecialProduction',\n },\n Store: {\n defaultMessage: 'Business',\n id: 'PropertyType.Store',\n },\n TerracedHouse: {\n defaultMessage: 'Terraced house',\n id: 'PropertyType.TerracedHouse',\n },\n TerracedHouseWithCondoStatus: {\n defaultMessage: 'Terraced house with condo status',\n id: 'PropertyType.TerracedHouseWithCondoStatus',\n },\n TwoFamilyProperty: {\n defaultMessage: 'Two family property',\n id: 'PropertyType.TwoFamilyProperty',\n },\n VacationCondo: {\n defaultMessage: 'Vacation condo',\n id: 'PropertyType.VacationCondo',\n },\n VacationHousing: {\n defaultMessage: 'Vacation housing',\n id: 'PropertyType.VacationHousing',\n },\n VacationPlot: {\n defaultMessage: 'Vacation plot',\n id: 'PropertyType.VacationPlot',\n },\n Villa: {\n defaultMessage: 'Villa',\n id: 'PropertyType.Villa',\n },\n VillaApartment: {\n defaultMessage: 'Villa apartment',\n id: 'PropertyType.VillaApartment',\n },\n VillaWithCondoStatus: {\n defaultMessage: 'Villa with condo status',\n id: 'PropertyType.VillaWithCondoStatus',\n },\n WareHouse: {\n defaultMessage: 'Ware house',\n id: 'PropertyType.WareHouse',\n },\n WareHouseAndProduction: {\n defaultMessage: 'Ware house and production',\n id: 'PropertyType.WareHouseAndProduction',\n },\n Workshop: {\n defaultMessage: 'Workshop',\n id: 'PropertyType.Workshop',\n },\n});\nexport const formatPropertyType = (intl: any) => (key: string) => {\n if (PropertyType[key]) return intl.formatMessage(PropertyType[key]);\n return key;\n};\nexport function usePropertyType() {\n const intl = useIntl();\n return formatPropertyType(intl);\n}\n","import { useEffect } from 'react';\nimport { useRelayEnvironment } from 'react-relay';\nimport type { GraphQLSubscriptionConfig, OperationType } from 'relay-runtime';\nimport { requestSubscription } from 'relay-runtime';\nimport { useSignalrConnection } from 'services/relay/signalr-connection-provider';\n\nfunction useSubscriptionWithReconnect<TSubscriptionPayload extends OperationType>(\n config: GraphQLSubscriptionConfig<TSubscriptionPayload>,\n requestSubscriptionFn?: typeof requestSubscription,\n): void {\n // NOTE: this will re-subscribe every render if config or requestSubscriptionFn are not memoized (e.g useMemo). Please do not pass an object defined in-line.\n const actualRequestSubscription = requestSubscriptionFn ?? requestSubscription;\n\n const environment = useRelayEnvironment();\n const [, connection] = useSignalrConnection();\n\n useEffect(() => {\n let disposable: { dispose: () => void };\n const reconnection = {\n dispose: () => {\n // no-op\n },\n };\n const connect = () => {\n disposable?.dispose?.();\n disposable = actualRequestSubscription(environment as any, config);\n\n reconnection?.dispose?.();\n reconnection.dispose =\n connection?.onReconnected(connect) ??\n (() => {\n // no-op\n });\n };\n\n connect();\n\n return () => {\n reconnection?.dispose?.();\n disposable?.dispose?.();\n };\n }, [environment, connection, config, actualRequestSubscription]);\n}\n\nexport { useSubscriptionWithReconnect };\n","import { useState } from 'react';\n\ntype UseToggleReturnType = [boolean, (value?: boolean) => void];\n\nconst useToggle = (initialState = false): UseToggleReturnType => {\n const [state, setState] = useState<boolean>(initialState);\n\n const toggle = (value?: boolean) => {\n setState(value !== undefined ? value : (prevState) => !prevState);\n };\n\n return [state, toggle];\n};\n\nexport default useToggle;\n","/**\n * @generated SignedSource<<0aabac3306a0924ad54330a4d7cd4682>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type defaultLayout_Query$variables = Record<PropertyKey, never>;\nexport type defaultLayout_Query$data = {\n readonly viewer: {\n readonly customer: {\n readonly firstName: string | null | undefined;\n readonly isCompany: boolean;\n readonly lastName: string | null | undefined;\n readonly \" $fragmentSpreads\": FragmentRefs<\"mainNavigation_fragment\" | \"notifications_fragment\" | \"stickyChat_fragment\">;\n } | null | undefined;\n } | null | undefined;\n};\nexport type defaultLayout_Query = {\n response: defaultLayout_Query$data;\n variables: defaultLayout_Query$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"firstName\",\n \"storageKey\": null\n},\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isCompany\",\n \"storageKey\": null\n},\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastName\",\n \"storageKey\": null\n},\nv3 = [\n {\n \"kind\": \"Literal\",\n \"name\": \"first\",\n \"value\": 12\n }\n],\nv4 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv5 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n},\nv6 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"createdDate\",\n \"storageKey\": null\n},\nv7 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"read\",\n \"storageKey\": null\n},\nv8 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"relationId\",\n \"storageKey\": null\n},\nv9 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseRelation\",\n \"kind\": \"LinkedField\",\n \"name\": \"relationType\",\n \"plural\": false,\n \"selections\": [\n (v8/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"relationType\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n},\nv10 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n (v5/*: any*/),\n (v9/*: any*/),\n (v4/*: any*/)\n ],\n \"storageKey\": null\n},\nv11 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"address\",\n \"storageKey\": null\n},\nv12 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n},\nv13 = [\n (v7/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AppointmentActivity\",\n \"kind\": \"LinkedField\",\n \"name\": \"appointmentActivity\",\n \"plural\": false,\n \"selections\": [\n (v12/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"location\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n (v5/*: any*/),\n (v11/*: any*/),\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"startDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endDate\",\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n (v6/*: any*/)\n],\nv14 = [\n (v5/*: any*/),\n (v11/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseRelation\",\n \"kind\": \"LinkedField\",\n \"name\": \"relationType\",\n \"plural\": false,\n \"selections\": [\n (v8/*: any*/)\n ],\n \"storageKey\": null\n },\n (v4/*: any*/)\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"defaultLayout_Query\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Customer\",\n \"kind\": \"LinkedField\",\n \"name\": \"customer\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/),\n (v2/*: any*/),\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"notifications_fragment\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"mainNavigation_fragment\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"stickyChat_fragment\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Operation\",\n \"name\": \"defaultLayout_Query\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Customer\",\n \"kind\": \"LinkedField\",\n \"name\": \"customer\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/),\n (v2/*: any*/),\n {\n \"alias\": null,\n \"args\": (v3/*: any*/),\n \"concreteType\": \"NotificationInterfaceConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"notificationConnection\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"NotificationInterfaceEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n (v4/*: any*/),\n (v5/*: any*/),\n {\n \"kind\": \"TypeDiscriminator\",\n \"abstractKey\": \"__isNotificationInterface\"\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"threadId\",\n \"storageKey\": null\n },\n (v6/*: any*/),\n (v7/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"subject\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"authorName\",\n \"storageKey\": null\n }\n ],\n \"type\": \"MessageNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v7/*: any*/),\n (v10/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Document\",\n \"kind\": \"LinkedField\",\n \"name\": \"document\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"documentTypeName\",\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n (v11/*: any*/),\n (v6/*: any*/)\n ],\n \"type\": \"DocumentSigningNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v13/*: any*/),\n \"type\": \"ActivityNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v7/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"searchProfile\",\n \"plural\": false,\n \"selections\": [\n (v5/*: any*/),\n (v4/*: any*/),\n (v12/*: any*/)\n ],\n \"storageKey\": null\n },\n (v6/*: any*/)\n ],\n \"type\": \"SearchProfileMatchNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v7/*: any*/),\n (v10/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"typeName\",\n \"storageKey\": null\n },\n (v6/*: any*/)\n ],\n \"type\": \"RequestedDocumentNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v6/*: any*/),\n (v7/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SearchProfileMatchedCase\",\n \"kind\": \"LinkedField\",\n \"name\": \"searchProfileMatchedCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n (v5/*: any*/),\n (v11/*: any*/),\n (v9/*: any*/),\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"searchProfile\",\n \"plural\": false,\n \"selections\": [\n (v5/*: any*/),\n (v12/*: any*/),\n (v4/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"SearchProfileMatchedCaseNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n (v5/*: any*/),\n (v9/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseNo\",\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n (v6/*: any*/),\n (v7/*: any*/),\n (v11/*: any*/)\n ],\n \"type\": \"DocumentAccessGrantedNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v7/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"lead\",\n \"plural\": false,\n \"selections\": [\n (v5/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"statusType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"LeadTypeGraphType\",\n \"kind\": \"LinkedField\",\n \"name\": \"type\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"displayName\",\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"receivedDate\",\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"LeadNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v7/*: any*/),\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"case\",\n \"plural\": false,\n \"selections\": (v14/*: any*/),\n \"storageKey\": null\n }\n ],\n \"type\": \"PriceChangeOnFavoriteCaseNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v7/*: any*/),\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SearchProfileMatchedCase\",\n \"kind\": \"LinkedField\",\n \"name\": \"searchProfileMatchedCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": (v14/*: any*/),\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"PriceChangedOnMatchedCaseNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v13/*: any*/),\n \"type\": \"OpenHouseOnFavoriteCaseNotification\",\n \"abstractKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"cursor\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"PageInfo\",\n \"kind\": \"LinkedField\",\n \"name\": \"pageInfo\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endCursor\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasNextPage\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": \"notificationConnection(first:12)\"\n },\n {\n \"alias\": null,\n \"args\": (v3/*: any*/),\n \"filters\": null,\n \"handle\": \"connection\",\n \"key\": \"mainNavigation_notificationConnection\",\n \"kind\": \"LinkedHandle\",\n \"name\": \"notificationConnection\"\n },\n (v4/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"unreadNotificationsCount\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"unreadThreadCount\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"89a8d28d5c3c3747bf8659e3e396ae36\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"defaultLayout_Query\",\n \"operationKind\": \"query\",\n \"text\": \"query defaultLayout_Query {\\n viewer {\\n customer {\\n firstName\\n isCompany\\n lastName\\n ...notifications_fragment\\n ...mainNavigation_fragment\\n ...stickyChat_fragment\\n id\\n }\\n id\\n }\\n}\\n\\nfragment activityNotification_fragment on ActivityNotification {\\n read\\n appointmentActivity {\\n name\\n location\\n baseCase {\\n __typename\\n address\\n id\\n }\\n startDate\\n endDate\\n id\\n }\\n createdDate\\n}\\n\\nfragment documentAccessGrantedNotification_fragment on DocumentAccessGrantedNotification {\\n baseCase {\\n __typename\\n relationType {\\n relationId\\n relationType\\n }\\n caseNo\\n id\\n }\\n id\\n createdDate\\n read\\n address\\n}\\n\\nfragment documentSigningNotification_fragment on DocumentSigningNotification {\\n read\\n baseCase {\\n __typename\\n relationType {\\n relationId\\n relationType\\n }\\n id\\n }\\n document {\\n documentTypeName\\n id\\n }\\n address\\n createdDate\\n}\\n\\nfragment leadNotification_fragment on LeadNotification {\\n read\\n lead {\\n __typename\\n statusType\\n type {\\n displayName\\n id\\n }\\n receivedDate\\n id\\n }\\n}\\n\\nfragment mainNavigation_fragment on Customer {\\n unreadNotificationsCount\\n unreadThreadCount\\n ...notifications_fragment\\n}\\n\\nfragment messageNotification_fragment on MessageNotification {\\n createdDate\\n read\\n subject\\n authorName\\n}\\n\\nfragment notificationComponent_fragment on NotificationInterface {\\n __isNotificationInterface: __typename\\n __typename\\n ... on MessageNotification {\\n threadId\\n }\\n ...messageNotification_fragment\\n ...documentSigningNotification_fragment\\n ...activityNotification_fragment\\n ...searchProfileMatchNotification_fragment\\n ...requestedDocumentNotification_fragment\\n ...searchProfileMatchedCaseNotification_fragment\\n ...documentAccessGrantedNotification_fragment\\n ...leadNotification_fragment\\n ...priceChangeFavoriteCaseNotification_fragment\\n ...priceChangeOnMatchCaseNotification_fragment\\n ...openHouseFavoriteCaseNotification_fragment\\n}\\n\\nfragment notifications_fragment on Customer {\\n notificationConnection(first: 12) {\\n edges {\\n node {\\n id\\n __typename\\n ...notificationComponent_fragment\\n }\\n cursor\\n }\\n pageInfo {\\n endCursor\\n hasNextPage\\n }\\n }\\n id\\n}\\n\\nfragment openHouseFavoriteCaseNotification_fragment on OpenHouseOnFavoriteCaseNotification {\\n read\\n appointmentActivity {\\n name\\n location\\n baseCase {\\n __typename\\n address\\n id\\n }\\n startDate\\n endDate\\n id\\n }\\n createdDate\\n}\\n\\nfragment priceChangeFavoriteCaseNotification_fragment on PriceChangeOnFavoriteCaseNotification {\\n id\\n read\\n createdDate\\n case {\\n __typename\\n address\\n relationType {\\n relationId\\n }\\n id\\n }\\n}\\n\\nfragment priceChangeOnMatchCaseNotification_fragment on PriceChangedOnMatchedCaseNotification {\\n id\\n read\\n createdDate\\n searchProfileMatchedCase {\\n baseCase {\\n __typename\\n address\\n relationType {\\n relationId\\n }\\n id\\n }\\n id\\n }\\n}\\n\\nfragment requestedDocumentNotification_fragment on RequestedDocumentNotification {\\n read\\n baseCase {\\n __typename\\n relationType {\\n relationId\\n relationType\\n }\\n id\\n }\\n typeName\\n createdDate\\n}\\n\\nfragment searchProfileMatchNotification_fragment on SearchProfileMatchNotification {\\n read\\n searchProfile {\\n __typename\\n id\\n name\\n }\\n createdDate\\n}\\n\\nfragment searchProfileMatchedCaseNotification_fragment on SearchProfileMatchedCaseNotification {\\n id\\n createdDate\\n __typename\\n read\\n searchProfileMatchedCase {\\n baseCase {\\n __typename\\n address\\n relationType {\\n relationId\\n relationType\\n }\\n id\\n }\\n id\\n }\\n searchProfile {\\n __typename\\n name\\n id\\n }\\n}\\n\\nfragment stickyChat_fragment on Customer {\\n unreadThreadCount\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"007032a5a62653e5ef24837f6aba7e21\";\n\nexport default node;\n","/**\n * @generated SignedSource<<ae29b544da2d18b809886624dc9b9da8>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, GraphQLSubscription } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type defaultLayout_unreadNotifications_Subscription$variables = Record<PropertyKey, never>;\nexport type defaultLayout_unreadNotifications_Subscription$data = {\n readonly onNotificationCountUpdatedEvent: {\n readonly viewer: {\n readonly customer: {\n readonly unreadNotificationsCount: number | null | undefined;\n readonly unreadThreadCount: number | null | undefined;\n readonly \" $fragmentSpreads\": FragmentRefs<\"notifications_fragment\">;\n } | null | undefined;\n } | null | undefined;\n } | null | undefined;\n};\nexport type defaultLayout_unreadNotifications_Subscription = {\n response: defaultLayout_unreadNotifications_Subscription$data;\n variables: defaultLayout_unreadNotifications_Subscription$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"unreadNotificationsCount\",\n \"storageKey\": null\n},\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"unreadThreadCount\",\n \"storageKey\": null\n},\nv2 = [\n {\n \"kind\": \"Literal\",\n \"name\": \"first\",\n \"value\": 12\n }\n],\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv4 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n},\nv5 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"createdDate\",\n \"storageKey\": null\n},\nv6 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"read\",\n \"storageKey\": null\n},\nv7 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"relationId\",\n \"storageKey\": null\n},\nv8 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseRelation\",\n \"kind\": \"LinkedField\",\n \"name\": \"relationType\",\n \"plural\": false,\n \"selections\": [\n (v7/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"relationType\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n},\nv9 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n (v4/*: any*/),\n (v8/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n},\nv10 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"address\",\n \"storageKey\": null\n},\nv11 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n},\nv12 = [\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AppointmentActivity\",\n \"kind\": \"LinkedField\",\n \"name\": \"appointmentActivity\",\n \"plural\": false,\n \"selections\": [\n (v11/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"location\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n (v4/*: any*/),\n (v10/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"startDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endDate\",\n \"storageKey\": null\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n },\n (v5/*: any*/)\n],\nv13 = [\n (v4/*: any*/),\n (v10/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseRelation\",\n \"kind\": \"LinkedField\",\n \"name\": \"relationType\",\n \"plural\": false,\n \"selections\": [\n (v7/*: any*/)\n ],\n \"storageKey\": null\n },\n (v3/*: any*/)\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"defaultLayout_unreadNotifications_Subscription\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"INotificationBadgeCount\",\n \"kind\": \"LinkedField\",\n \"name\": \"onNotificationCountUpdatedEvent\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Customer\",\n \"kind\": \"LinkedField\",\n \"name\": \"customer\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/),\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"notifications_fragment\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"MyPageMwSubscription\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Operation\",\n \"name\": \"defaultLayout_unreadNotifications_Subscription\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"INotificationBadgeCount\",\n \"kind\": \"LinkedField\",\n \"name\": \"onNotificationCountUpdatedEvent\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Customer\",\n \"kind\": \"LinkedField\",\n \"name\": \"customer\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/),\n {\n \"alias\": null,\n \"args\": (v2/*: any*/),\n \"concreteType\": \"NotificationInterfaceConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"notificationConnection\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"NotificationInterfaceEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n (v4/*: any*/),\n {\n \"kind\": \"TypeDiscriminator\",\n \"abstractKey\": \"__isNotificationInterface\"\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"threadId\",\n \"storageKey\": null\n },\n (v5/*: any*/),\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"subject\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"authorName\",\n \"storageKey\": null\n }\n ],\n \"type\": \"MessageNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v6/*: any*/),\n (v9/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Document\",\n \"kind\": \"LinkedField\",\n \"name\": \"document\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"documentTypeName\",\n \"storageKey\": null\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n },\n (v10/*: any*/),\n (v5/*: any*/)\n ],\n \"type\": \"DocumentSigningNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v12/*: any*/),\n \"type\": \"ActivityNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"searchProfile\",\n \"plural\": false,\n \"selections\": [\n (v4/*: any*/),\n (v3/*: any*/),\n (v11/*: any*/)\n ],\n \"storageKey\": null\n },\n (v5/*: any*/)\n ],\n \"type\": \"SearchProfileMatchNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v6/*: any*/),\n (v9/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"typeName\",\n \"storageKey\": null\n },\n (v5/*: any*/)\n ],\n \"type\": \"RequestedDocumentNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v5/*: any*/),\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SearchProfileMatchedCase\",\n \"kind\": \"LinkedField\",\n \"name\": \"searchProfileMatchedCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n (v4/*: any*/),\n (v10/*: any*/),\n (v8/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"searchProfile\",\n \"plural\": false,\n \"selections\": [\n (v4/*: any*/),\n (v11/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"SearchProfileMatchedCaseNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n (v4/*: any*/),\n (v8/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseNo\",\n \"storageKey\": null\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n },\n (v5/*: any*/),\n (v6/*: any*/),\n (v10/*: any*/)\n ],\n \"type\": \"DocumentAccessGrantedNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"lead\",\n \"plural\": false,\n \"selections\": [\n (v4/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"statusType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"LeadTypeGraphType\",\n \"kind\": \"LinkedField\",\n \"name\": \"type\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"displayName\",\n \"storageKey\": null\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"receivedDate\",\n \"storageKey\": null\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"LeadNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v6/*: any*/),\n (v5/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"case\",\n \"plural\": false,\n \"selections\": (v13/*: any*/),\n \"storageKey\": null\n }\n ],\n \"type\": \"PriceChangeOnFavoriteCaseNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v6/*: any*/),\n (v5/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SearchProfileMatchedCase\",\n \"kind\": \"LinkedField\",\n \"name\": \"searchProfileMatchedCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": (v13/*: any*/),\n \"storageKey\": null\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"PriceChangedOnMatchedCaseNotification\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v12/*: any*/),\n \"type\": \"OpenHouseOnFavoriteCaseNotification\",\n \"abstractKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"cursor\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"PageInfo\",\n \"kind\": \"LinkedField\",\n \"name\": \"pageInfo\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endCursor\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasNextPage\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": \"notificationConnection(first:12)\"\n },\n {\n \"alias\": null,\n \"args\": (v2/*: any*/),\n \"filters\": null,\n \"handle\": \"connection\",\n \"key\": \"mainNavigation_notificationConnection\",\n \"kind\": \"LinkedHandle\",\n \"name\": \"notificationConnection\"\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"9326cee3106db97bc83175b61001ac12\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"defaultLayout_unreadNotifications_Subscription\",\n \"operationKind\": \"subscription\",\n \"text\": \"subscription defaultLayout_unreadNotifications_Subscription {\\n onNotificationCountUpdatedEvent {\\n viewer {\\n customer {\\n unreadNotificationsCount\\n unreadThreadCount\\n ...notifications_fragment\\n id\\n }\\n id\\n }\\n }\\n}\\n\\nfragment activityNotification_fragment on ActivityNotification {\\n read\\n appointmentActivity {\\n name\\n location\\n baseCase {\\n __typename\\n address\\n id\\n }\\n startDate\\n endDate\\n id\\n }\\n createdDate\\n}\\n\\nfragment documentAccessGrantedNotification_fragment on DocumentAccessGrantedNotification {\\n baseCase {\\n __typename\\n relationType {\\n relationId\\n relationType\\n }\\n caseNo\\n id\\n }\\n id\\n createdDate\\n read\\n address\\n}\\n\\nfragment documentSigningNotification_fragment on DocumentSigningNotification {\\n read\\n baseCase {\\n __typename\\n relationType {\\n relationId\\n relationType\\n }\\n id\\n }\\n document {\\n documentTypeName\\n id\\n }\\n address\\n createdDate\\n}\\n\\nfragment leadNotification_fragment on LeadNotification {\\n read\\n lead {\\n __typename\\n statusType\\n type {\\n displayName\\n id\\n }\\n receivedDate\\n id\\n }\\n}\\n\\nfragment messageNotification_fragment on MessageNotification {\\n createdDate\\n read\\n subject\\n authorName\\n}\\n\\nfragment notificationComponent_fragment on NotificationInterface {\\n __isNotificationInterface: __typename\\n __typename\\n ... on MessageNotification {\\n threadId\\n }\\n ...messageNotification_fragment\\n ...documentSigningNotification_fragment\\n ...activityNotification_fragment\\n ...searchProfileMatchNotification_fragment\\n ...requestedDocumentNotification_fragment\\n ...searchProfileMatchedCaseNotification_fragment\\n ...documentAccessGrantedNotification_fragment\\n ...leadNotification_fragment\\n ...priceChangeFavoriteCaseNotification_fragment\\n ...priceChangeOnMatchCaseNotification_fragment\\n ...openHouseFavoriteCaseNotification_fragment\\n}\\n\\nfragment notifications_fragment on Customer {\\n notificationConnection(first: 12) {\\n edges {\\n node {\\n id\\n __typename\\n ...notificationComponent_fragment\\n }\\n cursor\\n }\\n pageInfo {\\n endCursor\\n hasNextPage\\n }\\n }\\n id\\n}\\n\\nfragment openHouseFavoriteCaseNotification_fragment on OpenHouseOnFavoriteCaseNotification {\\n read\\n appointmentActivity {\\n name\\n location\\n baseCase {\\n __typename\\n address\\n id\\n }\\n startDate\\n endDate\\n id\\n }\\n createdDate\\n}\\n\\nfragment priceChangeFavoriteCaseNotification_fragment on PriceChangeOnFavoriteCaseNotification {\\n id\\n read\\n createdDate\\n case {\\n __typename\\n address\\n relationType {\\n relationId\\n }\\n id\\n }\\n}\\n\\nfragment priceChangeOnMatchCaseNotification_fragment on PriceChangedOnMatchedCaseNotification {\\n id\\n read\\n createdDate\\n searchProfileMatchedCase {\\n baseCase {\\n __typename\\n address\\n relationType {\\n relationId\\n }\\n id\\n }\\n id\\n }\\n}\\n\\nfragment requestedDocumentNotification_fragment on RequestedDocumentNotification {\\n read\\n baseCase {\\n __typename\\n relationType {\\n relationId\\n relationType\\n }\\n id\\n }\\n typeName\\n createdDate\\n}\\n\\nfragment searchProfileMatchNotification_fragment on SearchProfileMatchNotification {\\n read\\n searchProfile {\\n __typename\\n id\\n name\\n }\\n createdDate\\n}\\n\\nfragment searchProfileMatchedCaseNotification_fragment on SearchProfileMatchedCaseNotification {\\n id\\n createdDate\\n __typename\\n read\\n searchProfileMatchedCase {\\n baseCase {\\n __typename\\n address\\n relationType {\\n relationId\\n relationType\\n }\\n id\\n }\\n id\\n }\\n searchProfile {\\n __typename\\n name\\n id\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"088d5b96385728e2bb04f2bddd5ab47f\";\n\nexport default node;\n","/**\n * @generated SignedSource<<374dc2042c58039cd2005025dcbb5a72>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment, RefetchableFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type notifications_fragment$data = {\n readonly id: string;\n readonly notificationConnection: {\n readonly edges: ReadonlyArray<{\n readonly node: {\n readonly __typename: string;\n readonly id: string;\n readonly \" $fragmentSpreads\": FragmentRefs<\"notificationComponent_fragment\">;\n } | null | undefined;\n } | null | undefined> | null | undefined;\n } | null | undefined;\n readonly \" $fragmentType\": \"notifications_fragment\";\n};\nexport type notifications_fragment$key = {\n readonly \" $data\"?: notifications_fragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"notifications_fragment\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = [\n \"notificationConnection\"\n],\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n};\nreturn {\n \"argumentDefinitions\": [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"after\"\n },\n {\n \"defaultValue\": 12,\n \"kind\": \"LocalArgument\",\n \"name\": \"first\"\n }\n ],\n \"kind\": \"Fragment\",\n \"metadata\": {\n \"connection\": [\n {\n \"count\": \"first\",\n \"cursor\": \"after\",\n \"direction\": \"forward\",\n \"path\": (v0/*: any*/)\n }\n ],\n \"refetch\": {\n \"connection\": {\n \"forward\": {\n \"count\": \"first\",\n \"cursor\": \"after\"\n },\n \"backward\": null,\n \"path\": (v0/*: any*/)\n },\n \"fragmentPathInResult\": [\n \"node\"\n ],\n \"operation\": require('./mainNavigationNotificationsRefreshQuery.graphql'),\n \"identifierInfo\": {\n \"identifierField\": \"id\",\n \"identifierQueryVariableName\": \"id\"\n }\n }\n },\n \"name\": \"notifications_fragment\",\n \"selections\": [\n {\n \"alias\": \"notificationConnection\",\n \"args\": null,\n \"concreteType\": \"NotificationInterfaceConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"__mainNavigation_notificationConnection_connection\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"NotificationInterfaceEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n (v1/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"notificationComponent_fragment\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"cursor\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"PageInfo\",\n \"kind\": \"LinkedField\",\n \"name\": \"pageInfo\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endCursor\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasNextPage\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n (v1/*: any*/)\n ],\n \"type\": \"Customer\",\n \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"85745bf75789444887bbdc3e339133d5\";\n\nexport default node;\n","/**\n * @generated SignedSource<<3a19562e4e2c8872b39532c73f49ee98>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nexport type WebPushSubscriptionInput = {\n auth: string;\n endpoint: string;\n p256Dh: string;\n};\nexport type subscribeClientMutation$variables = {\n input: WebPushSubscriptionInput;\n};\nexport type subscribeClientMutation$data = {\n readonly subscribeClient: boolean | null | undefined;\n};\nexport type subscribeClientMutation = {\n response: subscribeClientMutation$data;\n variables: subscribeClientMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n ],\n \"kind\": \"ScalarField\",\n \"name\": \"subscribeClient\",\n \"storageKey\": null\n }\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"subscribeClientMutation\",\n \"selections\": (v1/*: any*/),\n \"type\": \"Mutation\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"subscribeClientMutation\",\n \"selections\": (v1/*: any*/)\n },\n \"params\": {\n \"cacheID\": \"50db81c00cbe24067ca055da45d276b3\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"subscribeClientMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation subscribeClientMutation(\\n $input: WebPushSubscriptionInput!\\n) {\\n subscribeClient(input: $input)\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"5ec051e15a375c4f15e59c4da05548df\";\n\nexport default node;\n","/**\n * @generated SignedSource<<20c91ef91ef1a52f80f26060cfeca7be>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nexport type WebPushSubscriptionInput = {\n auth: string;\n endpoint: string;\n p256Dh: string;\n};\nexport type unsubscribeClientMutation$variables = {\n input: WebPushSubscriptionInput;\n};\nexport type unsubscribeClientMutation$data = {\n readonly unsubscribe: boolean | null | undefined;\n};\nexport type unsubscribeClientMutation = {\n response: unsubscribeClientMutation$data;\n variables: unsubscribeClientMutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n ],\n \"kind\": \"ScalarField\",\n \"name\": \"unsubscribe\",\n \"storageKey\": null\n }\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"unsubscribeClientMutation\",\n \"selections\": (v1/*: any*/),\n \"type\": \"Mutation\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"unsubscribeClientMutation\",\n \"selections\": (v1/*: any*/)\n },\n \"params\": {\n \"cacheID\": \"df4ee0296d10cfdb8fa779d7eda7ba4d\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"unsubscribeClientMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation unsubscribeClientMutation(\\n $input: WebPushSubscriptionInput!\\n) {\\n unsubscribe(input: $input)\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"d307353c63f3f3ea051b8ab77410b0a6\";\n\nexport default node;\n","/**\n * @generated SignedSource<<da3290e6587b9092b02cfeb0e39a8b3a>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type favoritePage_Query$variables = {\n matchId: string;\n};\nexport type favoritePage_Query$data = {\n readonly node: {\n readonly baseCase?: {\n readonly \" $fragmentSpreads\": FragmentRefs<\"contactModule_baseCase\">;\n } | null | undefined;\n readonly offmarketCase?: {\n readonly \" $fragmentSpreads\": FragmentRefs<\"contactModuleOffmarket_offmarketCase\">;\n } | null | undefined;\n readonly \" $fragmentSpreads\": FragmentRefs<\"favoritePageHero_fragment\">;\n } | null | undefined;\n readonly viewer: {\n readonly \" $fragmentSpreads\": FragmentRefs<\"myPageSpotsEntity\">;\n } | null | undefined;\n};\nexport type favoritePage_Query = {\n response: favoritePage_Query$data;\n variables: favoritePage_Query$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"matchId\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"id\",\n \"variableName\": \"matchId\"\n }\n],\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv4 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"linkUrl\",\n \"storageKey\": null\n},\nv5 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"address\",\n \"storageKey\": null\n},\nv6 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"city\",\n \"storageKey\": null\n},\nv7 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"yearBuilt\",\n \"storageKey\": null\n},\nv8 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"phone\",\n \"storageKey\": null\n},\nv9 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n},\nv10 = [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Employee\",\n \"kind\": \"LinkedField\",\n \"name\": \"employee\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"fullName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"firstName\",\n \"storageKey\": null\n },\n (v8/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"employeePrimaryImageUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"title\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Shop\",\n \"kind\": \"LinkedField\",\n \"name\": \"offerShop\",\n \"plural\": false,\n \"selections\": [\n (v9/*: any*/),\n (v8/*: any*/),\n (v6/*: any*/),\n (v5/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n],\nv11 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"MediaDataConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"mediaDataConnection\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"MediaDataEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Media\",\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"resourceType\",\n \"value\": \"Asset\"\n }\n ],\n \"kind\": \"ScalarField\",\n \"name\": \"resourceUrl\",\n \"storageKey\": \"resourceUrl(resourceType:\\\"Asset\\\")\"\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"MediaType\",\n \"kind\": \"LinkedField\",\n \"name\": \"mediaType\",\n \"plural\": false,\n \"selections\": [\n (v9/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n},\nv12 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"propertyType\",\n \"storageKey\": null\n},\nv13 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseDescription\",\n \"storageKey\": null\n},\nv14 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseDescriptionHeading\",\n \"storageKey\": null\n},\nv15 = [\n (v12/*: any*/)\n],\nv16 = {\n \"alias\": \"businessPropertyType\",\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"propertyType\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"favoritePage_Query\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"favoritePageHero_fragment\"\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"contactModule_baseCase\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"OffmarketCase\",\n \"kind\": \"LinkedField\",\n \"name\": \"offmarketCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"contactModuleOffmarket_offmarketCase\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"CasePotentialBuyer\",\n \"abstractKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"myPageSpotsEntity\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"favoritePage_Query\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/),\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/),\n {\n \"kind\": \"TypeDiscriminator\",\n \"abstractKey\": \"__isBaseCase\"\n },\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseAnnounced\",\n \"kind\": \"LinkedField\",\n \"name\": \"caseAnnounced\",\n \"plural\": true,\n \"selections\": [\n (v4/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"type\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n (v5/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"zipCode\",\n \"storageKey\": null\n },\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"energyMark\",\n \"storageKey\": null\n },\n (v7/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"heat\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"BaseCaseMainOffer\",\n \"kind\": \"LinkedField\",\n \"name\": \"baseCaseMainOffer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"cashPrice\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"TotalCosts\",\n \"kind\": \"LinkedField\",\n \"name\": \"totalCosts\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"yearlyGrossOutput\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"yearlyNetOutput\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"minimumPayout\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"technicalPrice\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"IncreasePerYear\",\n \"kind\": \"LinkedField\",\n \"name\": \"rateOfReturn\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"annualAmount\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"EmployeeOffer\",\n \"kind\": \"LinkedField\",\n \"name\": \"employeeOffer\",\n \"plural\": true,\n \"selections\": (v10/*: any*/),\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseAreas\",\n \"kind\": \"LinkedField\",\n \"name\": \"caseAreas\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"livableArea\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"plotAreaSum\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"atticArea\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"basementArea\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"builtUpArea\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"commercialArea\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"otherBuildingsSum\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"annualHeatingPrice\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"floorCount\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"roomCount\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"buildings\",\n \"plural\": true,\n \"selections\": [\n (v2/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"BuildingInclArea\",\n \"kind\": \"LinkedField\",\n \"name\": \"buildingInclAreas\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"area\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"amount\",\n \"value\": 2\n }\n ],\n \"concreteType\": \"OpenHouse\",\n \"kind\": \"LinkedField\",\n \"name\": \"openHouse\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ActivityType\",\n \"kind\": \"LinkedField\",\n \"name\": \"activityType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isRegistration\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"nameOnTimeline\",\n \"storageKey\": null\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isRegistred\",\n \"storageKey\": null\n },\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"startDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"registrationDeadline\",\n \"storageKey\": null\n },\n (v2/*: any*/)\n ],\n \"storageKey\": \"openHouse(amount:2)\"\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"noAdvertisement\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"gpsCoordinates\",\n \"storageKey\": null\n },\n (v11/*: any*/),\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"ownerCostsTotalMonthly\",\n \"storageKey\": null\n },\n (v12/*: any*/),\n {\n \"alias\": \"salesStatus\",\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"status\",\n \"storageKey\": null\n },\n (v13/*: any*/),\n (v14/*: any*/)\n ],\n \"type\": \"SalesCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v15/*: any*/),\n \"type\": \"RectifyCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v15/*: any*/),\n \"type\": \"CounselingPropertyCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v12/*: any*/),\n {\n \"alias\": \"rentalStatus\",\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"status\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"rentMonthly\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"accountWater\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"accountHeat\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"accountElectricity\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"prepaidRent\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deposit\",\n \"storageKey\": null\n }\n ],\n \"type\": \"RentalCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v15/*: any*/),\n \"type\": \"CounselingCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": \"businessSalesCaseStatus\",\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"status\",\n \"storageKey\": null\n },\n (v16/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"buildings\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isMainBuilding\",\n \"storageKey\": null\n },\n (v7/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"investmentProperty\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"status\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"tenanciesYearlyRentTotal\",\n \"storageKey\": null\n }\n ],\n \"type\": \"BusinessSalesCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v16/*: any*/),\n {\n \"alias\": \"businessRentalCase\",\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"status\",\n \"storageKey\": null\n }\n ],\n \"type\": \"BusinessRentalCase\",\n \"abstractKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"OffmarketCase\",\n \"kind\": \"LinkedField\",\n \"name\": \"offmarketCase\",\n \"plural\": false,\n \"selections\": [\n (v13/*: any*/),\n (v14/*: any*/),\n (v12/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"businessPropertyType\",\n \"storageKey\": null\n },\n (v11/*: any*/),\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseId\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"EmployeeOffer\",\n \"kind\": \"LinkedField\",\n \"name\": \"mainOfferEmployees\",\n \"plural\": true,\n \"selections\": (v10/*: any*/),\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"CasePotentialBuyer\",\n \"abstractKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"MyPageSpot\",\n \"kind\": \"LinkedField\",\n \"name\": \"myPageSpots\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"myPageSpotRole\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"MyPageSpotEntry\",\n \"kind\": \"LinkedField\",\n \"name\": \"entries\",\n \"plural\": true,\n \"selections\": [\n (v3/*: any*/),\n (v4/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"imageUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"width\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"40910e01720b353b582be14b681e4649\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"favoritePage_Query\",\n \"operationKind\": \"query\",\n \"text\": \"query favoritePage_Query(\\n $matchId: ID!\\n) {\\n node(id: $matchId) {\\n __typename\\n ... on CasePotentialBuyer {\\n ...favoritePageHero_fragment\\n baseCase {\\n __typename\\n ...contactModule_baseCase\\n id\\n }\\n offmarketCase {\\n ...contactModuleOffmarket_offmarketCase\\n id\\n }\\n }\\n id\\n }\\n viewer {\\n ...myPageSpotsEntity\\n id\\n }\\n}\\n\\nfragment caseFullscreenGallery_mediaDataConnection on MediaDataConnection {\\n ...caseImagesSwiper_mediaDataConnection\\n}\\n\\nfragment caseGallerySwiper_mediaDataConnection on MediaDataConnection {\\n edges {\\n node {\\n id\\n resourceUrl(resourceType: Asset)\\n mediaType {\\n name\\n id\\n }\\n }\\n }\\n}\\n\\nfragment caseGallery_mediaDataConnection on MediaDataConnection {\\n ...caseGallerySwiper_mediaDataConnection\\n}\\n\\nfragment caseImagesSwiper_mediaDataConnection on MediaDataConnection {\\n edges {\\n node {\\n id\\n resourceUrl(resourceType: Asset)\\n mediaType {\\n name\\n id\\n }\\n }\\n }\\n}\\n\\nfragment caseImages_Media on MediaDataConnection {\\n ...caseGallery_mediaDataConnection\\n ...caseFullscreenGallery_mediaDataConnection\\n ...caseImagesSwiper_mediaDataConnection\\n edges {\\n node {\\n resourceUrl(resourceType: Asset)\\n mediaType {\\n name\\n id\\n }\\n id\\n }\\n }\\n}\\n\\nfragment contactCard_employee on Employee {\\n lastName\\n firstName\\n fullName\\n phone\\n employeePrimaryImageUrl\\n title\\n offerShop {\\n name\\n phone\\n city\\n address\\n id\\n }\\n}\\n\\nfragment contactModuleOffmarket_offmarketCase on OffmarketCase {\\n id\\n caseId\\n caseDescriptionHeading\\n propertyType\\n businessPropertyType\\n mainOfferEmployees {\\n employee {\\n id\\n fullName\\n ...contactCard_employee\\n }\\n }\\n}\\n\\nfragment contactModule_baseCase on BaseCase {\\n __isBaseCase: __typename\\n id\\n address\\n baseCaseMainOffer {\\n employeeOffer {\\n employee {\\n id\\n fullName\\n ...contactCard_employee\\n offerShop {\\n name\\n id\\n }\\n }\\n }\\n }\\n}\\n\\nfragment favoritePageHero_fragment on CasePotentialBuyer {\\n __typename\\n baseCase {\\n __typename\\n ...matchHeroContentFragment_baseCase\\n ...registerOpenHouseModalFragment\\n ...openHouseImageOverlay_baseCase\\n noAdvertisement\\n gpsCoordinates\\n openHouse(amount: 2) {\\n __typename\\n id\\n }\\n mediaDataConnection {\\n ...caseImages_Media\\n }\\n id\\n }\\n offmarketCase {\\n ...matchHeroContentFragment_offmarketCase\\n mediaDataConnection {\\n ...caseImages_Media\\n }\\n id\\n }\\n}\\n\\nfragment matchHeroContentAgriculturalCase_baseCase on BaseCase {\\n __isBaseCase: __typename\\n energyMark\\n yearBuilt\\n heat\\n baseCaseMainOffer {\\n cashPrice\\n totalCosts {\\n yearlyGrossOutput\\n yearlyNetOutput\\n minimumPayout\\n }\\n }\\n caseAreas {\\n livableArea\\n plotAreaSum\\n }\\n ... on SalesCase {\\n ownerCostsTotalMonthly\\n propertyType\\n salesStatus: status\\n }\\n ... on RectifyCase {\\n propertyType\\n }\\n ... on CounselingPropertyCase {\\n propertyType\\n }\\n ... on RentalCase {\\n propertyType\\n rentalStatus: status\\n }\\n ... on CounselingCase {\\n propertyType\\n }\\n ... on BusinessSalesCase {\\n businessSalesCaseStatus: status\\n businessPropertyType: propertyType\\n }\\n ... on BusinessRentalCase {\\n businessPropertyType: propertyType\\n businessRentalCase: status\\n }\\n}\\n\\nfragment matchHeroContentBusinessSalesCase on BaseCase {\\n __isBaseCase: __typename\\n energyMark\\n yearBuilt\\n baseCaseMainOffer {\\n cashPrice\\n rateOfReturn {\\n annualAmount\\n }\\n }\\n caseAreas {\\n commercialArea\\n livableArea\\n plotAreaSum\\n builtUpArea\\n }\\n ... on BusinessSalesCase {\\n buildings {\\n __typename\\n isMainBuilding\\n yearBuilt\\n }\\n investmentProperty\\n businessPropertyType: propertyType\\n status\\n tenanciesYearlyRentTotal\\n }\\n}\\n\\nfragment matchHeroContentCounselingCase on BaseCaseMainOffer {\\n cashPrice\\n}\\n\\nfragment matchHeroContentFragment_baseCase on BaseCase {\\n __isBaseCase: __typename\\n id\\n caseAnnounced {\\n linkUrl\\n type\\n }\\n ...matchHeroDetailsFragment\\n ... on SalesCase {\\n noAdvertisement\\n caseDescription\\n caseDescriptionHeading\\n __typename\\n }\\n}\\n\\nfragment matchHeroContentFragment_offmarketCase on OffmarketCase {\\n caseDescription\\n caseDescriptionHeading\\n ...matchHeroOffmarketDetailsFragment_offmarketCase\\n}\\n\\nfragment matchHeroContentRentalCase on BaseCase {\\n __isBaseCase: __typename\\n energyMark\\n yearBuilt\\n roomCount\\n caseAreas {\\n livableArea\\n }\\n ... on RentalCase {\\n rentMonthly\\n accountWater\\n accountHeat\\n accountElectricity\\n prepaidRent\\n deposit\\n }\\n}\\n\\nfragment matchHeroContentSalesCase on BaseCase {\\n __isBaseCase: __typename\\n energyMark\\n yearBuilt\\n heat\\n otherBuildingsSum\\n annualHeatingPrice\\n floorCount\\n roomCount\\n buildings {\\n __typename\\n buildingInclAreas {\\n area\\n }\\n }\\n baseCaseMainOffer {\\n cashPrice\\n technicalPrice\\n totalCosts {\\n yearlyGrossOutput\\n yearlyNetOutput\\n minimumPayout\\n }\\n }\\n caseAreas {\\n livableArea\\n plotAreaSum\\n atticArea\\n basementArea\\n builtUpArea\\n }\\n ... on SalesCase {\\n ownerCostsTotalMonthly\\n propertyType\\n salesStatus: status\\n }\\n}\\n\\nfragment matchHeroDetailsFragment on BaseCase {\\n __isBaseCase: __typename\\n address\\n zipCode\\n city\\n ...matchHeroContentAgriculturalCase_baseCase\\n ...matchHeroContentSalesCase\\n ...matchHeroContentRentalCase\\n ...matchHeroContentBusinessSalesCase\\n baseCaseMainOffer {\\n ...matchHeroContentCounselingCase\\n }\\n ... on SalesCase {\\n propertyType\\n __typename\\n }\\n ... on RectifyCase {\\n __typename\\n propertyType\\n }\\n ... on CounselingPropertyCase {\\n __typename\\n propertyType\\n }\\n ... on RentalCase {\\n __typename\\n propertyType\\n }\\n ... on CounselingCase {\\n __typename\\n propertyType\\n }\\n ... on BusinessSalesCase {\\n __typename\\n businessPropertyType: propertyType\\n }\\n ... on BusinessRentalCase {\\n __typename\\n businessPropertyType: propertyType\\n }\\n}\\n\\nfragment matchHeroOffmarketDetailsFragment_offmarketCase on OffmarketCase {\\n propertyType\\n businessPropertyType\\n}\\n\\nfragment myPageSpotsEntity on Viewer {\\n myPageSpots {\\n myPageSpotRole\\n entries {\\n id\\n linkUrl\\n imageUrl\\n width\\n }\\n id\\n }\\n}\\n\\nfragment openHouseImageOverlay_baseCase on BaseCase {\\n __isBaseCase: __typename\\n openHouse(amount: 2) {\\n registrationDeadline\\n activityType {\\n nameOnTimeline\\n isRegistration\\n id\\n }\\n startDate\\n isRegistred\\n id\\n }\\n}\\n\\nfragment registerOpenHouseModalFragment on BaseCase {\\n __isBaseCase: __typename\\n openHouse(amount: 2) {\\n activityType {\\n isRegistration\\n nameOnTimeline\\n id\\n }\\n isRegistred\\n id\\n startDate\\n endDate\\n }\\n id\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"ea2d10e0db1d81a86340c0b7261ca716\";\n\nexport default node;\n","/**\n * @generated SignedSource<<e2164857e406f4a3a588285b9e2cc5f5>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type favoritePageHero_fragment$data = {\n readonly __typename: \"CasePotentialBuyer\";\n readonly baseCase: {\n readonly gpsCoordinates: string | null | undefined;\n readonly mediaDataConnection: {\n readonly \" $fragmentSpreads\": FragmentRefs<\"caseImages_Media\">;\n } | null | undefined;\n readonly noAdvertisement: boolean | null | undefined;\n readonly openHouse: ReadonlyArray<{\n readonly __typename: \"OpenHouse\";\n } | null | undefined> | null | undefined;\n readonly \" $fragmentSpreads\": FragmentRefs<\"matchHeroContentFragment_baseCase\" | \"openHouseImageOverlay_baseCase\" | \"registerOpenHouseModalFragment\">;\n } | null | undefined;\n readonly offmarketCase: {\n readonly mediaDataConnection: {\n readonly \" $fragmentSpreads\": FragmentRefs<\"caseImages_Media\">;\n } | null | undefined;\n readonly \" $fragmentSpreads\": FragmentRefs<\"matchHeroContentFragment_offmarketCase\">;\n } | null | undefined;\n readonly \" $fragmentType\": \"favoritePageHero_fragment\";\n};\nexport type favoritePageHero_fragment$key = {\n readonly \" $data\"?: favoritePageHero_fragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"favoritePageHero_fragment\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n},\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"MediaDataConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"mediaDataConnection\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"caseImages_Media\"\n }\n ],\n \"storageKey\": null\n};\nreturn {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"favoritePageHero_fragment\",\n \"selections\": [\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"matchHeroContentFragment_baseCase\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"registerOpenHouseModalFragment\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"openHouseImageOverlay_baseCase\"\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"noAdvertisement\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"gpsCoordinates\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"amount\",\n \"value\": 2\n }\n ],\n \"concreteType\": \"OpenHouse\",\n \"kind\": \"LinkedField\",\n \"name\": \"openHouse\",\n \"plural\": true,\n \"selections\": [\n (v0/*: any*/)\n ],\n \"storageKey\": \"openHouse(amount:2)\"\n },\n (v1/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"OffmarketCase\",\n \"kind\": \"LinkedField\",\n \"name\": \"offmarketCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"matchHeroContentFragment_offmarketCase\"\n },\n (v1/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"CasePotentialBuyer\",\n \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"3badb7e9841c7a42bc79d91b3da25154\";\n\nexport default node;\n","/**\n * @generated SignedSource<<b5ffe9a5132fff6a34df558068d8223b>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type favoritePageDocumentsRender_Query$variables = {\n favoriteId: string;\n};\nexport type favoritePageDocumentsRender_Query$data = {\n readonly node: {\n readonly \" $fragmentSpreads\": FragmentRefs<\"favoritePageDocumentsBody_CasePotentialBuyer\">;\n } | null | undefined;\n};\nexport type favoritePageDocumentsRender_Query = {\n response: favoritePageDocumentsRender_Query$data;\n variables: favoritePageDocumentsRender_Query$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"favoriteId\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"id\",\n \"variableName\": \"favoriteId\"\n }\n],\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv4 = [\n {\n \"kind\": \"Literal\",\n \"name\": \"first\",\n \"value\": 10\n }\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"favoritePageDocumentsRender_Query\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"favoritePageDocumentsBody_CasePotentialBuyer\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"favoritePageDocumentsRender_Query\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/),\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"publicDocumentAllDownloadUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"publicDocumentMultipleDownloadUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": (v4/*: any*/),\n \"concreteType\": \"DocumentConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"publicDocumentConnection\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"DocumentEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Document\",\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"inline\",\n \"value\": false\n },\n {\n \"kind\": \"Literal\",\n \"name\": \"previewState\",\n \"value\": \"FullVersion\"\n }\n ],\n \"kind\": \"ScalarField\",\n \"name\": \"documentDownloadUrlCookieAuth\",\n \"storageKey\": \"documentDownloadUrlCookieAuth(inline:false,previewState:\\\"FullVersion\\\")\"\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"propertyOverviewUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"documentName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"documentTypeName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"readDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"grantedDate\",\n \"storageKey\": null\n },\n (v2/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"cursor\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"totalCount\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"PageInfo\",\n \"kind\": \"LinkedField\",\n \"name\": \"pageInfo\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endCursor\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasNextPage\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": \"publicDocumentConnection(first:10)\"\n },\n {\n \"alias\": null,\n \"args\": (v4/*: any*/),\n \"filters\": [\n \"searchText\"\n ],\n \"handle\": \"connection\",\n \"key\": \"documents__publicDocumentConnection\",\n \"kind\": \"LinkedHandle\",\n \"name\": \"publicDocumentConnection\"\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"CasePotentialBuyer\",\n \"abstractKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"2c2c4c8265efb6b9a0ab03edad31446e\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"favoritePageDocumentsRender_Query\",\n \"operationKind\": \"query\",\n \"text\": \"query favoritePageDocumentsRender_Query(\\n $favoriteId: ID!\\n) {\\n node(id: $favoriteId) {\\n __typename\\n ...favoritePageDocumentsBody_CasePotentialBuyer\\n id\\n }\\n}\\n\\nfragment documentsTableRowFragment on Document {\\n id\\n documentDownloadUrlCookieAuth(inline: false, previewState: FullVersion)\\n propertyOverviewUrl\\n documentName\\n documentTypeName\\n readDate\\n grantedDate\\n}\\n\\nfragment favoritePageDocumentsBody_CasePotentialBuyer on CasePotentialBuyer {\\n baseCase {\\n __typename\\n publicDocumentAllDownloadUrl\\n publicDocumentMultipleDownloadUrl\\n publicDocumentConnection(first: 10) {\\n edges {\\n node {\\n id\\n ...documentsTableRowFragment\\n __typename\\n }\\n cursor\\n }\\n totalCount\\n pageInfo {\\n endCursor\\n hasNextPage\\n }\\n }\\n id\\n }\\n id\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"f634832f00ac7900a4569382c8073725\";\n\nexport default node;\n","/**\n * @generated SignedSource<<80f0cf2bf87630f2e57126f69967da51>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment, RefetchableFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type favoritePageDocumentsBody_CasePotentialBuyer$data = {\n readonly baseCase: {\n readonly publicDocumentAllDownloadUrl: string | null | undefined;\n readonly publicDocumentConnection: {\n readonly edges: ReadonlyArray<{\n readonly node: {\n readonly id: string;\n readonly \" $fragmentSpreads\": FragmentRefs<\"documentsTableRowFragment\">;\n } | null | undefined;\n } | null | undefined> | null | undefined;\n readonly totalCount: number | null | undefined;\n } | null | undefined;\n readonly publicDocumentMultipleDownloadUrl: string | null | undefined;\n } | null | undefined;\n readonly id: string;\n readonly \" $fragmentType\": \"favoritePageDocumentsBody_CasePotentialBuyer\";\n};\nexport type favoritePageDocumentsBody_CasePotentialBuyer$key = {\n readonly \" $data\"?: favoritePageDocumentsBody_CasePotentialBuyer$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"favoritePageDocumentsBody_CasePotentialBuyer\">;\n};\n\nconst node: ReaderFragment = (function(){\nvar v0 = [\n \"baseCase\",\n \"publicDocumentConnection\"\n],\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n};\nreturn {\n \"argumentDefinitions\": [\n {\n \"defaultValue\": 10,\n \"kind\": \"LocalArgument\",\n \"name\": \"count\"\n },\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"cursor\"\n },\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"searchText\"\n }\n ],\n \"kind\": \"Fragment\",\n \"metadata\": {\n \"connection\": [\n {\n \"count\": \"count\",\n \"cursor\": \"cursor\",\n \"direction\": \"forward\",\n \"path\": (v0/*: any*/)\n }\n ],\n \"refetch\": {\n \"connection\": {\n \"forward\": {\n \"count\": \"count\",\n \"cursor\": \"cursor\"\n },\n \"backward\": null,\n \"path\": (v0/*: any*/)\n },\n \"fragmentPathInResult\": [\n \"node\"\n ],\n \"operation\": require('./documentsPaginationQuery_CasePotentialBuyer.graphql'),\n \"identifierInfo\": {\n \"identifierField\": \"id\",\n \"identifierQueryVariableName\": \"id\"\n }\n }\n },\n \"name\": \"favoritePageDocumentsBody_CasePotentialBuyer\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"publicDocumentAllDownloadUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"publicDocumentMultipleDownloadUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": \"publicDocumentConnection\",\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"searchText\",\n \"variableName\": \"searchText\"\n }\n ],\n \"concreteType\": \"DocumentConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"__documents__publicDocumentConnection_connection\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"DocumentEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Document\",\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n (v1/*: any*/),\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"documentsTableRowFragment\"\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"cursor\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"totalCount\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"PageInfo\",\n \"kind\": \"LinkedField\",\n \"name\": \"pageInfo\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endCursor\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasNextPage\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n (v1/*: any*/)\n ],\n \"type\": \"CasePotentialBuyer\",\n \"abstractKey\": null\n};\n})();\n\n(node as any).hash = \"c2b974d0419d58f7a2dca71dab9701e0\";\n\nexport default node;\n","/**\n * @generated SignedSource<<6ec123fa2ee8b6a585ef87e25dfe00be>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Query } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type saleByOwnerPageQuery$variables = Record<PropertyKey, never>;\nexport type saleByOwnerPageQuery$data = {\n readonly viewer: {\n readonly \" $fragmentSpreads\": FragmentRefs<\"saleByOwnerGridFragment\" | \"saleByOwnerProcessedGridFragment\">;\n } | null | undefined;\n};\nexport type saleByOwnerPageQuery = {\n response: saleByOwnerPageQuery$data;\n variables: saleByOwnerPageQuery$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseId\",\n \"storageKey\": null\n},\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"comment\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseAddress\",\n \"storageKey\": null\n},\nv4 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseZipAndCity\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"saleByOwnerPageQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"saleByOwnerGridFragment\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"saleByOwnerProcessedGridFragment\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Operation\",\n \"name\": \"saleByOwnerPageQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"myPageLeads\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"statusType\",\n \"storageKey\": null\n },\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n {\n \"kind\": \"TypeDiscriminator\",\n \"abstractKey\": \"__isLeadInterface\"\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"phoneNumber\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"email\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"firstName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"LeadTypeGraphType\",\n \"kind\": \"LinkedField\",\n \"name\": \"type\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"displayName\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v1/*: any*/),\n (v2/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"presentationDate\",\n \"storageKey\": null\n },\n (v3/*: any*/),\n (v4/*: any*/)\n ],\n \"type\": \"LeadPresentation\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"openHouseStartTime\",\n \"storageKey\": null\n },\n (v1/*: any*/),\n (v2/*: any*/),\n (v3/*: any*/),\n (v4/*: any*/)\n ],\n \"type\": \"LeadOpenHouse\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/),\n (v4/*: any*/)\n ],\n \"type\": \"LeadSalesMaterialWithContact\",\n \"abstractKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AppointmentActivityType\",\n \"kind\": \"LinkedField\",\n \"name\": \"propertyForSaleByOwnerAppointmentActivityTypes\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"category\",\n \"storageKey\": null\n },\n (v0/*: any*/)\n ],\n \"storageKey\": null\n },\n (v0/*: any*/)\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"5740a4bc2423fb07c0f6d78ac616ce4a\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"saleByOwnerPageQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query saleByOwnerPageQuery {\\n viewer {\\n ...saleByOwnerGridFragment\\n ...saleByOwnerProcessedGridFragment\\n id\\n }\\n}\\n\\nfragment leadContactDialogContentFragment on LeadInterface {\\n __isLeadInterface: __typename\\n id\\n phoneNumber\\n email\\n}\\n\\nfragment leadDialogContent on LeadInterface {\\n __isLeadInterface: __typename\\n __typename\\n ...leadContactDialogContentFragment\\n ...leadPresentationDialogContent\\n ...leadOpenHouseDialogContent\\n}\\n\\nfragment leadDialogContentViewer on Viewer {\\n ...leadPresentationDialogContentViewer\\n ...leadOpenHouseDialogContentViewer\\n}\\n\\nfragment leadListItemFragment on LeadInterface {\\n __isLeadInterface: __typename\\n id\\n __typename\\n ... on LeadPresentation {\\n comment\\n presentationDate\\n caseAddress\\n caseZipAndCity\\n }\\n ... on LeadOpenHouse {\\n openHouseStartTime\\n comment\\n caseAddress\\n caseZipAndCity\\n }\\n ... on LeadSalesMaterialWithContact {\\n comment\\n caseAddress\\n caseZipAndCity\\n }\\n email\\n phoneNumber\\n firstName\\n lastName\\n type {\\n id\\n displayName\\n }\\n statusType\\n ...leadDialogContent\\n}\\n\\nfragment leadOpenHouseDialogContent on LeadInterface {\\n __isLeadInterface: __typename\\n id\\n __typename\\n ... on LeadOpenHouse {\\n openHouseStartTime\\n firstName\\n lastName\\n phoneNumber\\n email\\n caseId\\n }\\n}\\n\\nfragment leadOpenHouseDialogContentViewer on Viewer {\\n propertyForSaleByOwnerAppointmentActivityTypes {\\n category\\n id\\n }\\n}\\n\\nfragment leadPresentationDialogContent on LeadInterface {\\n __isLeadInterface: __typename\\n id\\n __typename\\n ... on LeadPresentation {\\n firstName\\n lastName\\n phoneNumber\\n email\\n caseId\\n }\\n}\\n\\nfragment leadPresentationDialogContentViewer on Viewer {\\n propertyForSaleByOwnerAppointmentActivityTypes {\\n category\\n id\\n }\\n}\\n\\nfragment saleByOwnerGridFragment on Viewer {\\n myPageLeads {\\n statusType\\n id\\n __typename\\n ...leadDialogContent\\n ...leadListItemFragment\\n }\\n ...leadDialogContentViewer\\n}\\n\\nfragment saleByOwnerProcessedGridFragment on Viewer {\\n myPageLeads {\\n statusType\\n id\\n __typename\\n ...leadListItemFragment\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"6850aa7698669085af26e5debbe1265d\";\n\nexport default node;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","/**\n * @generated SignedSource<<5fee069babe86414f37d0484922429f1>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type stickyChat_fragment$data = {\n readonly unreadThreadCount: number | null | undefined;\n readonly \" $fragmentType\": \"stickyChat_fragment\";\n};\nexport type stickyChat_fragment$key = {\n readonly \" $data\"?: stickyChat_fragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"stickyChat_fragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"stickyChat_fragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"unreadThreadCount\",\n \"storageKey\": null\n }\n ],\n \"type\": \"Customer\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"64ded4244e9b56469b3b4605df30438d\";\n\nexport default node;\n","import Button from 'components/atoms/button/button';\nimport { FormattedMessage } from 'react-intl';\nimport './sticky-chat.scss';\nimport { FC } from 'react';\nimport { graphql, useFragment } from 'react-relay';\nimport { stickyChat_fragment$key } from '__generated__/stickyChat_fragment.graphql';\nimport { useMixPanel } from 'hooks/useMixPanel';\n\nexport interface StickyChatProps {\n fragment: stickyChat_fragment$key | null;\n}\n\nconst stickyChatFragment = graphql`\n fragment stickyChat_fragment on Customer {\n unreadThreadCount\n }\n`;\n\nconst StickyChat: FC<StickyChatProps> = (props) => {\n const data = useFragment(stickyChatFragment, props.fragment);\n const { track } = useMixPanel();\n\n const chatClick = () => {\n track('Icon_Click', { messagesLink: 'MESSAGE-ICON' });\n };\n\n return (\n <div className=\"sticky-chat\">\n <Button\n anchorTag\n className=\"sticky-chat__button\"\n hideText\n href=\"/messages\"\n iconStart=\"Chat\"\n padding={false}\n onClick={chatClick}\n >\n <FormattedMessage defaultMessage=\"Open Chat\" id=\"Messages.OpenChat\" />\n </Button>\n {!!data?.unreadThreadCount && <div className=\"sticky-chat__number\">{data?.unreadThreadCount ?? 0}</div>}\n </div>\n );\n};\n\nexport default StickyChat;\n","import Button from 'components/atoms/button/button';\nimport Typography from 'components/atoms/typography/typography';\nimport Block from 'components/utilities/block/block';\nimport { useTheme } from 'app/context/ThemeContext';\nimport { FormattedMessage } from 'react-intl';\nimport './footer.scss';\nimport { useMixPanel } from 'hooks/useMixPanel';\n\nconst Footer = () => {\n const theme = useTheme();\n const { track } = useMixPanel();\n\n const logoUrl = theme?.logoUrl;\n const logoAlt = theme?.logoAlt;\n\n const linkClick = () => {\n track('Footer', { footerLink: 'PRIVACYPOLICY' });\n };\n\n return (\n <footer>\n <Block backgroundColor=\"white\" className=\"footer\">\n <Block className=\"footer__inner\" flex>\n <Typography className=\"footer__inner--brandname\" tagStyle=\"bodySmall\">\n {theme?.footerText ? theme?.footerText : `© ${theme?.brokerageName}`}\n </Typography>\n <picture className=\"footer__inner--logo\">\n <source srcSet={logoUrl ?? '/images/mindworking-logo.svg'} />\n <img alt={logoAlt ?? 'Mindworking'} src={logoUrl ?? '/images/mindworking-logo.jpg'} />\n </picture>\n <Button\n anchorTag\n className=\"footer__inner--privacyLinkButton\"\n href={theme?.privacyPolicyLink}\n version=\"link\"\n onClick={linkClick}\n >\n <FormattedMessage defaultMessage=\"Cookie - & privacy policy\" id=\"Footer.privacyPolicyLink\" />\n </Button>\n </Block>\n </Block>\n </footer>\n );\n};\n\nexport default Footer;\n","import Modal from 'components/molecules/modal/modal';\nimport { useEffect, useState } from 'react';\nimport Button from 'components/atoms/button/button';\nimport Icon from 'components/atoms/icon/icon';\nimport Typography from 'components/atoms/typography/typography';\nimport Block from 'components/utilities/block/block';\nimport Column from 'components/utilities/column/column';\nimport Row from 'components/utilities/row/row';\nimport { FormattedMessage } from 'react-intl';\nimport './installPWA.scss';\nimport useIsIOS from 'hooks/useIsIOS';\n\nconst DONT_SHOW = 'dont show';\n\nexport const InstallPWA = () => {\n const [open, setOpen] = useState(false);\n const { isIOS } = useIsIOS();\n\n useEffect(() => {\n const installPromptValue = localStorage.getItem('installPrompt');\n const displayPWA = installPromptValue !== DONT_SHOW;\n\n const timer = setTimeout(() => {\n if (displayPWA) {\n setOpen(true);\n const element = document.getElementById('app-outlet')?.style;\n const navbar = (document.getElementsByClassName('main-navigation')[0] as HTMLElement).style;\n\n if (element) {\n element.filter = 'blur(5px)';\n navbar.filter = 'blur(5px)';\n }\n }\n }, 20000);\n\n return () => clearTimeout(timer);\n }, []);\n\n const handleOnClose = () => {\n setOpen(false);\n const element = document.getElementById('app-outlet')?.style;\n const navbar = (document.getElementsByClassName('main-navigation')[0] as HTMLElement).style;\n\n if (element) {\n element.filter = '';\n navbar.filter = '';\n }\n };\n\n const handleDontShowAgain = () => {\n localStorage.setItem('installPrompt', DONT_SHOW);\n handleOnClose();\n };\n\n if (!open) {\n return null;\n }\n\n return (\n <div className=\"customs\">\n <Modal\n showCross={false}\n closeHandler={handleOnClose}\n headline={\n <Block className=\"install-pwa\" flex spaceBetween>\n <Button onClick={handleDontShowAgain}>\n <FormattedMessage defaultMessage=\"Don't show again\" id=\"PWAPrompt.dontShowAgian\" />\n </Button>\n\n <Button onClick={handleOnClose} version=\"primary\" iconEnd=\"Cross\" iconClassname=\"icon\">\n <FormattedMessage defaultMessage=\"Close\" id=\"PWAPrompt.buttonClose\" />\n </Button>\n </Block>\n }\n >\n <Column className={'pwa-buttons'}>\n <Typography>\n <FormattedMessage id=\"pwa.clickOnTheIcon.text\" defaultMessage=\"Click on the icon\" />\n {isIOS ? <Icon name={'Share'} className=\"icon\" /> : <Icon name={'AndroidAddHomeScreen'} className=\"icon\" />}{' '}\n {isIOS ? (\n <FormattedMessage\n id=\"pwa.below.text\"\n defaultMessage=\"below and choose “Add to home screen“ to save the application on your phone\"\n />\n ) : (\n <FormattedMessage\n id=\"pwa.belowAndroid.text\"\n defaultMessage=\"in the three dots and choose “Add to home screen“ to save the application on your phone\"\n />\n )}\n </Typography>\n\n <Row className=\"center\">\n <Icon name=\"ArrowDown\" />\n </Row>\n </Column>\n\n <div className=\"arrow-down\" />\n </Modal>\n </div>\n );\n};\n","import { differenceInDays, endOfDay } from 'date-fns';\nimport { useEffect, useState } from 'react';\n\ninterface iosNavigator extends Navigator {\n standalone: boolean;\n}\n\nfunction checkForIOS() {\n const today = endOfDay(new Date());\n const installPrompt = localStorage.getItem('installPrompt');\n const lastPrompt = new Date(installPrompt ?? '');\n const days = differenceInDays(today, lastPrompt);\n const isIOS = /(iPhone|iPod|iPad)/i.test(window.navigator.platform);\n const isSafari = !!window.navigator.userAgent.match(/safari/i);\n const prompt = (Number.isNaN(days) || days > 30) && isIOS && isSafari;\n const isAndroid = !isIOS;\n\n if (isIOS && isSafari) {\n const nav = window.navigator as iosNavigator;\n if (nav.standalone) {\n return { isIOS: false, isSafari: false, prompt: false, isAndroid: false };\n }\n }\n\n if (installPrompt === 'dont show') {\n return { isIOS: false, isSafari: false, prompt: false, isAndroid: false };\n }\n\n if (prompt && 'localStorage' in window) {\n localStorage.setItem('installPrompt', today.toString());\n }\n\n return { isIOS, isSafari, prompt, isAndroid };\n}\n\nexport default function useIsIOS() {\n const [isIOS, setIsIOS] = useState({ isIOS: false, isSafari: false, prompt: false, isAndroid: false });\n\n useEffect(() => {\n setIsIOS(checkForIOS());\n }, []);\n\n return isIOS;\n}\n","/**\n * @generated SignedSource<<3c5d1f4f68e4e99257c95fb96e23dab1>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type mainNavigation_fragment$data = {\n readonly unreadNotificationsCount: number | null | undefined;\n readonly unreadThreadCount: number | null | undefined;\n readonly \" $fragmentSpreads\": FragmentRefs<\"notifications_fragment\">;\n readonly \" $fragmentType\": \"mainNavigation_fragment\";\n};\nexport type mainNavigation_fragment$key = {\n readonly \" $data\"?: mainNavigation_fragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"mainNavigation_fragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"mainNavigation_fragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"unreadNotificationsCount\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"unreadThreadCount\",\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"notifications_fragment\"\n }\n ],\n \"type\": \"Customer\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"cf548b03adb6070223e0e14b5fe64913\";\n\nexport default node;\n","import Typography from 'components/atoms/typography/typography';\n\nimport './badge.scss';\nimport { FC } from 'react';\n\nexport interface BadgeProps {\n count: number;\n}\n\nconst Badge: FC<BadgeProps> = (props) => {\n const { count } = props;\n\n return count > 0 ? (\n <Typography className=\"badge\" subjectColor=\"white\" tagStyle=\"bodyXSmall\">\n {count}\n </Typography>\n ) : null;\n};\n\nexport default Badge;\n","export const arrayBufferToBase64 = (arrayBuffer: ArrayBuffer | null) => {\n if (!arrayBuffer) {\n return '';\n }\n\n // Convert ArrayBuffer to Uint8Array\n const uint8Array = new Uint8Array(arrayBuffer);\n\n // Create a binary string from Uint8Array\n let binaryString = '';\n for (let i = 0; i < uint8Array.length; i++) {\n binaryString += String.fromCharCode(uint8Array[i]);\n }\n\n // Convert binary string to Base64\n const base64String = window.btoa(binaryString);\n\n return base64String;\n};\n","export const requestNotificationPermission = () => {\n // handle old callback way and new promise way of using Notification.requestPermission.\n //https://web.dev/push-notifications-subscribing-a-user/#requesting-permission\n return new Promise((resolve, reject) =>\n Notification.requestPermission((result) => {\n if (result) {\n resolve(result);\n }\n reject('no result found');\n }).catch((err) => {\n reject(err);\n }),\n );\n};\n","/**\n * @generated SignedSource<<3c49aff66a934170f386964e67937778>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type notificationComponent_fragment$data = {\n readonly __typename: string;\n readonly threadId?: string;\n readonly \" $fragmentSpreads\": FragmentRefs<\"activityNotification_fragment\" | \"documentAccessGrantedNotification_fragment\" | \"documentSigningNotification_fragment\" | \"leadNotification_fragment\" | \"messageNotification_fragment\" | \"openHouseFavoriteCaseNotification_fragment\" | \"priceChangeFavoriteCaseNotification_fragment\" | \"priceChangeOnMatchCaseNotification_fragment\" | \"requestedDocumentNotification_fragment\" | \"searchProfileMatchNotification_fragment\" | \"searchProfileMatchedCaseNotification_fragment\">;\n readonly \" $fragmentType\": \"notificationComponent_fragment\";\n};\nexport type notificationComponent_fragment$key = {\n readonly \" $data\"?: notificationComponent_fragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"notificationComponent_fragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"notificationComponent_fragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"threadId\",\n \"storageKey\": null\n }\n ],\n \"type\": \"MessageNotification\",\n \"abstractKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"messageNotification_fragment\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"documentSigningNotification_fragment\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"activityNotification_fragment\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"searchProfileMatchNotification_fragment\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"requestedDocumentNotification_fragment\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"searchProfileMatchedCaseNotification_fragment\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"documentAccessGrantedNotification_fragment\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"leadNotification_fragment\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"priceChangeFavoriteCaseNotification_fragment\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"priceChangeOnMatchCaseNotification_fragment\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"openHouseFavoriteCaseNotification_fragment\"\n }\n ],\n \"type\": \"NotificationInterface\",\n \"abstractKey\": \"__isNotificationInterface\"\n};\n\n(node as any).hash = \"5f4864d9dd1d5dd218b58e3b0fb16f78\";\n\nexport default node;\n","/**\n * @generated SignedSource<<659692c2350ebf89e75394622a46656d>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type LeadStatusTypeEnum = \"ConvertedToCustomer\" | \"InProgress\" | \"MarkAsSpam\" | \"NotConvertedToCustomer\" | \"Processed\" | \"Recieved\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type leadNotification_fragment$data = {\n readonly lead: {\n readonly receivedDate: any | null | undefined;\n readonly statusType: LeadStatusTypeEnum | null | undefined;\n readonly type: {\n readonly displayName: string | null | undefined;\n } | null | undefined;\n };\n readonly read: boolean;\n readonly \" $fragmentType\": \"leadNotification_fragment\";\n};\nexport type leadNotification_fragment$key = {\n readonly \" $data\"?: leadNotification_fragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"leadNotification_fragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"leadNotification_fragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"read\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"lead\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"statusType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"LeadTypeGraphType\",\n \"kind\": \"LinkedField\",\n \"name\": \"type\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"displayName\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"receivedDate\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"LeadNotification\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"8a7602e0d1ed18971917e7749f059158\";\n\nexport default node;\n","import classNames from 'classnames';\nimport Icon from 'components/atoms/icon/icon';\nimport Typography from 'components/atoms/typography/typography';\nimport { FormattedMessage } from 'react-intl';\nimport { formatDate } from 'tools/string-formatters';\nimport { Link } from 'react-router-dom';\nimport { graphql, useFragment } from 'react-relay';\nimport { leadNotification_fragment$key } from '__generated__/leadNotification_fragment.graphql';\nimport { LeadStatusTypeEnum } from 'Enums';\n\nconst leadNotification = graphql`\n fragment leadNotification_fragment on LeadNotification {\n read\n lead {\n statusType\n type {\n displayName\n }\n receivedDate\n }\n }\n`;\n\ntype Props = {\n notification: leadNotification_fragment$key;\n};\n\nexport const LeadNotification = ({ notification }: Props) => {\n const data = useFragment<leadNotification_fragment$key>(leadNotification, notification);\n\n const tabString = data.lead.statusType !== LeadStatusTypeEnum.Processed ? 'newLeads' : 'processedLeads';\n\n return (\n <Link className={classNames('notifications__link', { unread: !data.read })} to={`/sale?tab=${tabString}`}>\n <Icon name=\"Lead\" />\n <div className=\"notifications__item-text\">\n <Typography>\n <FormattedMessage defaultMessage=\"You have a new lead:\" id=\"Notifications.NewLeadNotifications\" />\n <b> {data.lead.type?.displayName}</b>\n </Typography>\n <Typography className=\"notifications__time\" tagStyle=\"bodyXSmall\">\n {formatDate(data.lead.receivedDate)}\n </Typography>\n </div>\n </Link>\n );\n};\n","/**\n * @generated SignedSource<<7bb4d7c7271a0ff8b54f7d267ba091b3>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type openHouseFavoriteCaseNotification_fragment$data = {\n readonly appointmentActivity: {\n readonly baseCase: {\n readonly address: string | null | undefined;\n } | null | undefined;\n readonly endDate: any | null | undefined;\n readonly location: string | null | undefined;\n readonly name: string | null | undefined;\n readonly startDate: any | null | undefined;\n };\n readonly createdDate: any;\n readonly read: boolean;\n readonly \" $fragmentType\": \"openHouseFavoriteCaseNotification_fragment\";\n};\nexport type openHouseFavoriteCaseNotification_fragment$key = {\n readonly \" $data\"?: openHouseFavoriteCaseNotification_fragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"openHouseFavoriteCaseNotification_fragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"openHouseFavoriteCaseNotification_fragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"read\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AppointmentActivity\",\n \"kind\": \"LinkedField\",\n \"name\": \"appointmentActivity\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"location\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"address\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"startDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endDate\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"createdDate\",\n \"storageKey\": null\n }\n ],\n \"type\": \"OpenHouseOnFavoriteCaseNotification\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"8798253a4e56b3e140e709407718eb05\";\n\nexport default node;\n","import { openHouseFavoriteCaseNotification_fragment$key } from '__generated__/openHouseFavoriteCaseNotification_fragment.graphql.ts';\nimport classNames from 'classnames';\nimport Icon from 'components/atoms/icon/icon';\nimport Typography from 'components/atoms/typography/typography';\nimport { useMemo } from 'react';\nimport { graphql, useFragment } from 'react-relay';\nimport { Link } from 'react-router-dom';\nimport { formatAppointmentDate, formatDate } from 'tools/string-formatters';\n\nconst openHouseNotification = graphql`\n fragment openHouseFavoriteCaseNotification_fragment on OpenHouseOnFavoriteCaseNotification {\n read\n appointmentActivity {\n name\n location\n baseCase {\n address\n }\n startDate\n endDate\n }\n createdDate\n }\n`;\n\ntype Props = {\n notification: openHouseFavoriteCaseNotification_fragment$key;\n};\n\nexport const OpenHouseFavouriteCaseNotification = (props: Props) => {\n const data = useFragment(openHouseNotification, props.notification);\n const location = data.appointmentActivity?.location || data.appointmentActivity?.baseCase?.address;\n const appointmentTime = useMemo(\n () => formatAppointmentDate(data.appointmentActivity?.startDate, data.appointmentActivity?.endDate),\n [data.appointmentActivity?.startDate, data.appointmentActivity?.endDate],\n );\n\n return (\n <Link className={classNames('notifications__link', { unread: !data.read })} to=\"/activities\">\n <Icon name=\"Calendar\" />\n <div className=\"notifications__item-text\">\n <Typography>\n <b>{data.appointmentActivity?.name}: </b>\n {location}, {appointmentTime}\n </Typography>\n <Typography className=\"notifications__time\" tagStyle=\"bodyXSmall\">\n {formatDate(data.createdDate)}\n </Typography>\n </div>\n </Link>\n );\n};\n","/**\n * @generated SignedSource<<ca419193b7fa9f924a974b1b0fcdce55>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type priceChangeFavoriteCaseNotification_fragment$data = {\n readonly case: {\n readonly address: string | null | undefined;\n readonly relationType: {\n readonly relationId: string | null | undefined;\n } | null | undefined;\n };\n readonly createdDate: any;\n readonly id: string;\n readonly read: boolean;\n readonly \" $fragmentType\": \"priceChangeFavoriteCaseNotification_fragment\";\n};\nexport type priceChangeFavoriteCaseNotification_fragment$key = {\n readonly \" $data\"?: priceChangeFavoriteCaseNotification_fragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"priceChangeFavoriteCaseNotification_fragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"priceChangeFavoriteCaseNotification_fragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"read\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"createdDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"case\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"address\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseRelation\",\n \"kind\": \"LinkedField\",\n \"name\": \"relationType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"relationId\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"PriceChangeOnFavoriteCaseNotification\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"b81ffc61bfbb285737c4ebb27e9125af\";\n\nexport default node;\n","import { priceChangeFavoriteCaseNotification_fragment$key } from '__generated__/priceChangeFavoriteCaseNotification_fragment.graphql.ts';\nimport classNames from 'classnames';\nimport Icon from 'components/atoms/icon/icon.tsx';\nimport Typography from 'components/atoms/typography/typography.tsx';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useFragment } from 'react-relay';\nimport { Link } from 'react-router-dom';\nimport { formatDate } from '../../../../tools/string-formatters.ts';\n\nconst fragment = graphql`\n fragment priceChangeFavoriteCaseNotification_fragment on PriceChangeOnFavoriteCaseNotification {\n id\n read\n createdDate\n case {\n address\n relationType {\n relationId\n }\n }\n }\n`;\n\ntype Props = {\n notification: priceChangeFavoriteCaseNotification_fragment$key;\n};\n\nexport const PriceChangeFavoriteCaseNotification = (props: Props) => {\n const data = useFragment(fragment, props.notification);\n return (\n <Link\n className={classNames('notifications__link', { unread: !data.read })}\n to={`/favorite/${data.case?.relationType?.relationId}`}\n >\n <Icon name=\"Bell\" />\n <div className=\"notifications__item-text\">\n <Typography>\n <FormattedMessage\n defaultMessage=\"The price have changed on one of your favorite cases:\"\n id=\"Notifications.PriceChangedOnFavoriteCase\"\n />\n <b>{data.case?.address}</b>\n </Typography>\n <Typography className=\"notifications__time\" tagStyle=\"bodyXSmall\">\n {formatDate(data.createdDate)}\n </Typography>\n </div>\n </Link>\n );\n};\n","/**\n * @generated SignedSource<<7134a4a32c14aa50b84f70ff38f4afa3>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type priceChangeOnMatchCaseNotification_fragment$data = {\n readonly createdDate: any;\n readonly id: string;\n readonly read: boolean;\n readonly searchProfileMatchedCase: {\n readonly baseCase: {\n readonly address: string | null | undefined;\n readonly relationType: {\n readonly relationId: string | null | undefined;\n } | null | undefined;\n } | null | undefined;\n } | null | undefined;\n readonly \" $fragmentType\": \"priceChangeOnMatchCaseNotification_fragment\";\n};\nexport type priceChangeOnMatchCaseNotification_fragment$key = {\n readonly \" $data\"?: priceChangeOnMatchCaseNotification_fragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"priceChangeOnMatchCaseNotification_fragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"priceChangeOnMatchCaseNotification_fragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"read\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"createdDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SearchProfileMatchedCase\",\n \"kind\": \"LinkedField\",\n \"name\": \"searchProfileMatchedCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"address\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseRelation\",\n \"kind\": \"LinkedField\",\n \"name\": \"relationType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"relationId\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"PriceChangedOnMatchedCaseNotification\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"31643c2a2783cc264bfdd039788b4948\";\n\nexport default node;\n","import { priceChangeOnMatchCaseNotification_fragment$key } from '__generated__/priceChangeOnMatchCaseNotification_fragment.graphql.ts';\nimport classNames from 'classnames';\nimport Icon from 'components/atoms/icon/icon.tsx';\nimport Typography from 'components/atoms/typography/typography.tsx';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useFragment } from 'react-relay';\nimport { Link } from 'react-router-dom';\nimport { formatDate } from '../../../../tools/string-formatters.ts';\n\nconst fragment = graphql`\nfragment priceChangeOnMatchCaseNotification_fragment on PriceChangedOnMatchedCaseNotification {\n id\n read\n createdDate\n searchProfileMatchedCase {\n baseCase {\n address\n relationType {\n relationId\n }\n }\n }\n}\n`;\n\ntype Props = {\n notification: priceChangeOnMatchCaseNotification_fragment$key;\n};\n\nexport const PriceChangeOnMatchCaseNotification = (props: Props) => {\n const data = useFragment(fragment, props.notification);\n const baseCase = data.searchProfileMatchedCase?.baseCase;\n return (\n <Link\n className={classNames('notifications__link', { unread: !data.read })}\n to={`/match/${baseCase?.relationType?.relationId}`}\n >\n <Icon name=\"Bell\" />\n <div className=\"notifications__item-text\">\n <Typography>\n <FormattedMessage\n defaultMessage=\"The price have changed on one of your matched cases:\" // Change translation to \"new price on match case\"\n id=\"Notifications.PriceChangeOnMatchedCase\"\n />\n <b> {baseCase?.address}</b>\n </Typography>\n <Typography className=\"notifications__time\" tagStyle=\"bodyXSmall\">\n {formatDate(data.createdDate)}\n </Typography>\n </div>\n </Link>\n );\n};\n","/**\n * @generated SignedSource<<3f2c24b743c089846719c04bbe4f6747>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type activityNotification_fragment$data = {\n readonly appointmentActivity: {\n readonly baseCase: {\n readonly address: string | null | undefined;\n } | null | undefined;\n readonly endDate: any | null | undefined;\n readonly location: string | null | undefined;\n readonly name: string | null | undefined;\n readonly startDate: any | null | undefined;\n };\n readonly createdDate: any;\n readonly read: boolean;\n readonly \" $fragmentType\": \"activityNotification_fragment\";\n};\nexport type activityNotification_fragment$key = {\n readonly \" $data\"?: activityNotification_fragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"activityNotification_fragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"activityNotification_fragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"read\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AppointmentActivity\",\n \"kind\": \"LinkedField\",\n \"name\": \"appointmentActivity\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"location\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"address\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"startDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endDate\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"createdDate\",\n \"storageKey\": null\n }\n ],\n \"type\": \"ActivityNotification\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"d225dbfd031172cbea0a5099e05d0dfb\";\n\nexport default node;\n","import Icon from 'components/atoms/icon/icon';\nimport { formatAppointmentDate, formatDate } from 'tools/string-formatters';\nimport Typography from 'components/atoms/typography/typography';\nimport classNames from 'classnames';\nimport { FC, useMemo } from 'react';\nimport { Link } from 'react-router-dom';\nimport { graphql, useFragment } from 'react-relay';\nimport { activityNotification_fragment$key } from '__generated__/activityNotification_fragment.graphql';\n\nexport interface ActivityNotificationProps {\n notification: activityNotification_fragment$key;\n}\n\nconst activityNotification = graphql`\n fragment activityNotification_fragment on ActivityNotification {\n read\n appointmentActivity {\n name\n location\n baseCase {\n address\n }\n startDate\n endDate\n }\n createdDate\n }\n`;\n\nexport const ActivityNotification: FC<ActivityNotificationProps> = ({ notification }) => {\n const data = useFragment<activityNotification_fragment$key>(activityNotification, notification);\n const location = data.appointmentActivity?.location || data.appointmentActivity?.baseCase?.address;\n const appointmentTime = useMemo(\n () => formatAppointmentDate(data.appointmentActivity?.startDate, data.appointmentActivity?.endDate),\n [data.appointmentActivity?.startDate, data.appointmentActivity?.endDate],\n );\n\n return (\n <Link className={classNames('notifications__link', { unread: !data.read })} to=\"/activities\">\n <Icon name=\"Calendar\" />\n <div className=\"notifications__item-text\">\n <Typography>\n <b>{data.appointmentActivity?.name}: </b>\n {location}, {appointmentTime}\n </Typography>\n <Typography className=\"notifications__time\" tagStyle=\"bodyXSmall\">\n {formatDate(data.createdDate)}\n </Typography>\n </div>\n </Link>\n );\n};\n","/**\n * @generated SignedSource<<5a4310b3f4cea85061f48ad9ce94ab2b>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type MyPageCaseRelation = \"Case\" | \"MatchedCase\" | \"None\" | \"Offer\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type documentAccessGrantedNotification_fragment$data = {\n readonly address: string;\n readonly baseCase: {\n readonly caseNo: string | null | undefined;\n readonly relationType: {\n readonly relationId: string | null | undefined;\n readonly relationType: MyPageCaseRelation;\n } | null | undefined;\n };\n readonly createdDate: any;\n readonly id: string;\n readonly read: boolean;\n readonly \" $fragmentType\": \"documentAccessGrantedNotification_fragment\";\n};\nexport type documentAccessGrantedNotification_fragment$key = {\n readonly \" $data\"?: documentAccessGrantedNotification_fragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"documentAccessGrantedNotification_fragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"documentAccessGrantedNotification_fragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseRelation\",\n \"kind\": \"LinkedField\",\n \"name\": \"relationType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"relationId\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"relationType\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseNo\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"createdDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"read\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"address\",\n \"storageKey\": null\n }\n ],\n \"type\": \"DocumentAccessGrantedNotification\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"e7b71a265c0d4a050578769807cffd60\";\n\nexport default node;\n","import Icon from 'components/atoms/icon/icon';\nimport { FC } from 'react';\nimport { HashLink } from 'react-router-hash-link';\nimport { formatDate, getRelatedLink } from 'tools/string-formatters';\nimport Typography from 'components/atoms/typography/typography';\nimport { FormattedMessage } from 'react-intl';\nimport classNames from 'classnames';\nimport { graphql, useFragment } from 'react-relay';\nimport { documentAccessGrantedNotification_fragment$key } from '__generated__/documentAccessGrantedNotification_fragment.graphql';\n\nexport interface DocumentSigningNotificationProps {\n notification: documentAccessGrantedNotification_fragment$key;\n}\n\nconst documentSigningNotification = graphql`\n fragment documentAccessGrantedNotification_fragment on DocumentAccessGrantedNotification {\n baseCase {\n relationType {\n relationId\n relationType\n }\n caseNo\n }\n id\n createdDate\n read\n address\n }\n`;\n\nexport const DocumentAccessGrantedNotification: FC<DocumentSigningNotificationProps> = ({ notification }) => {\n const data = useFragment<documentAccessGrantedNotification_fragment$key>(documentSigningNotification, notification);\n\n const relationType = {\n relationType: data.baseCase.relationType?.relationType,\n relationId: data.baseCase.relationType?.relationId,\n };\n\n return (\n <HashLink\n className={classNames('notifications__link', { unread: !data?.read })}\n smooth\n to={getRelatedLink(relationType, '#sign')}\n >\n <Icon name=\"Bell\" />\n <div className=\"notifications__item-text\">\n <Typography>\n <b>\n <FormattedMessage\n defaultMessage=\"You have been granted access to new documents\"\n id=\"Notifications.AccessToNewDocuments\"\n />\n :\n </b>{' '}\n {data.address} <br />\n <FormattedMessage defaultMessage=\"Case number\" id=\"Case.caseNumber\" /> :{data.baseCase.caseNo}\n </Typography>\n <Typography className=\"notifications__time\" tagStyle=\"bodyXSmall\">\n {formatDate(data.createdDate)}\n </Typography>\n </div>\n </HashLink>\n );\n};\n","/**\n * @generated SignedSource<<47e6b07876b11953f3173be7c7a5776f>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type MyPageCaseRelation = \"Case\" | \"MatchedCase\" | \"None\" | \"Offer\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type documentSigningNotification_fragment$data = {\n readonly address: string;\n readonly baseCase: {\n readonly relationType: {\n readonly relationId: string | null | undefined;\n readonly relationType: MyPageCaseRelation;\n } | null | undefined;\n };\n readonly createdDate: any;\n readonly document: {\n readonly documentTypeName: string | null | undefined;\n };\n readonly read: boolean;\n readonly \" $fragmentType\": \"documentSigningNotification_fragment\";\n};\nexport type documentSigningNotification_fragment$key = {\n readonly \" $data\"?: documentSigningNotification_fragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"documentSigningNotification_fragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"documentSigningNotification_fragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"read\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseRelation\",\n \"kind\": \"LinkedField\",\n \"name\": \"relationType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"relationId\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"relationType\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Document\",\n \"kind\": \"LinkedField\",\n \"name\": \"document\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"documentTypeName\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"address\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"createdDate\",\n \"storageKey\": null\n }\n ],\n \"type\": \"DocumentSigningNotification\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"fb7018116a963c0f25f7c1386fc687c6\";\n\nexport default node;\n","import Icon from 'components/atoms/icon/icon';\nimport { FC } from 'react';\nimport { HashLink } from 'react-router-hash-link';\nimport { formatDate, getRelatedLink } from 'tools/string-formatters';\nimport Typography from 'components/atoms/typography/typography';\nimport { FormattedMessage } from 'react-intl';\nimport classNames from 'classnames';\nimport { graphql, useFragment } from 'react-relay';\nimport { documentSigningNotification_fragment$key } from '__generated__/documentSigningNotification_fragment.graphql';\n\nexport interface DocumentSigningNotificationProps {\n notification: documentSigningNotification_fragment$key;\n}\n\nconst documentSigningNotification = graphql`\n fragment documentSigningNotification_fragment on DocumentSigningNotification {\n read\n baseCase {\n relationType {\n relationId\n relationType\n }\n }\n document {\n documentTypeName\n }\n address\n createdDate\n }\n`;\n\nexport const DocumentSigningNotification: FC<DocumentSigningNotificationProps> = ({ notification }) => {\n const data = useFragment<documentSigningNotification_fragment$key>(documentSigningNotification, notification);\n\n const relationType = {\n relationType: data.baseCase.relationType?.relationType,\n relationId: data.baseCase.relationType?.relationId,\n };\n return (\n <HashLink\n className={classNames('notifications__link', { unread: !data?.read })}\n smooth\n to={getRelatedLink(relationType, '#sign')}\n >\n <Icon name=\"Bell\" />\n <div className=\"notifications__item-text\">\n <Typography>\n <b>\n {data?.document?.documentTypeName}{' '}\n <FormattedMessage defaultMessage=\"Ready to sign\" id=\"Notifications.ReadyToSign\" />:\n </b>{' '}\n {data.address}\n </Typography>\n <Typography className=\"notifications__time\" tagStyle=\"bodyXSmall\">\n {formatDate(data.createdDate)}\n </Typography>\n </div>\n </HashLink>\n );\n};\n","/**\n * @generated SignedSource<<8a5fdee39bf6d9407281317e5d7493a7>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type messageNotification_fragment$data = {\n readonly authorName: string | null | undefined;\n readonly createdDate: any;\n readonly read: boolean;\n readonly subject: string | null | undefined;\n readonly \" $fragmentType\": \"messageNotification_fragment\";\n};\nexport type messageNotification_fragment$key = {\n readonly \" $data\"?: messageNotification_fragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"messageNotification_fragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"messageNotification_fragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"createdDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"read\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"subject\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"authorName\",\n \"storageKey\": null\n }\n ],\n \"type\": \"MessageNotification\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"f1e79df00d4f2523278da24c71cfd672\";\n\nexport default node;\n","import classNames from 'classnames';\nimport Icon from 'components/atoms/icon/icon';\nimport { graphql, useFragment } from 'react-relay';\nimport { Link } from 'react-router-dom';\nimport Typography from 'components/atoms/typography/typography';\nimport { FormattedMessage } from 'react-intl';\nimport DOMPurify from 'dompurify';\nimport { formatDate } from 'tools/string-formatters';\nimport { FC } from 'react';\nimport { messageNotification_fragment$key } from '__generated__/messageNotification_fragment.graphql';\n\nexport interface MessageNotificationProps {\n notification: messageNotification_fragment$key;\n url: string;\n}\n\nconst messageNotifation = graphql`\n fragment messageNotification_fragment on MessageNotification {\n createdDate\n read\n subject\n authorName\n }\n`;\n\nexport const MessageNotification: FC<MessageNotificationProps> = ({ notification, url }) => {\n const data = useFragment<messageNotification_fragment$key>(messageNotifation, notification);\n\n return (\n <Link className={classNames('notifications__link', { unread: !data.read })} to={url}>\n <Icon name=\"Chat\" />\n <div className=\"notifications__item-text\">\n <Typography>\n <FormattedMessage defaultMessage=\"New message from\" id=\"Notifications.NewMessageFrom\" />\n <b> {data.authorName} </b>\n <FormattedMessage defaultMessage=\"in the conversation\" id=\"Notifications.InSubject\" />{' '}\n <b>\n {data.subject && (\n <span\n // biome-ignore lint/security/noDangerouslySetInnerHtml: <explanation>\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(data.subject),\n }}\n />\n )}\n </b>\n </Typography>\n <Typography className=\"notifications__time\" tagStyle=\"bodyXSmall\">\n {formatDate(data.createdDate)}\n </Typography>\n </div>\n </Link>\n );\n};\n","/**\n * @generated SignedSource<<f63d069d75b34c97073cbd4d6e943125>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type MyPageCaseRelation = \"Case\" | \"MatchedCase\" | \"None\" | \"Offer\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type requestedDocumentNotification_fragment$data = {\n readonly baseCase: {\n readonly relationType: {\n readonly relationId: string | null | undefined;\n readonly relationType: MyPageCaseRelation;\n } | null | undefined;\n };\n readonly createdDate: any;\n readonly read: boolean;\n readonly typeName: string | null | undefined;\n readonly \" $fragmentType\": \"requestedDocumentNotification_fragment\";\n};\nexport type requestedDocumentNotification_fragment$key = {\n readonly \" $data\"?: requestedDocumentNotification_fragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"requestedDocumentNotification_fragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"requestedDocumentNotification_fragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"read\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseRelation\",\n \"kind\": \"LinkedField\",\n \"name\": \"relationType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"relationId\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"relationType\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"typeName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"createdDate\",\n \"storageKey\": null\n }\n ],\n \"type\": \"RequestedDocumentNotification\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"b943a102b8fab6ce1f453447bfc9765e\";\n\nexport default node;\n","import Icon from 'components/atoms/icon/icon';\nimport { FC } from 'react';\nimport { HashLink } from 'react-router-hash-link';\nimport { formatDate, getRelatedLink } from 'tools/string-formatters';\nimport Typography from 'components/atoms/typography/typography';\nimport { FormattedMessage } from 'react-intl';\nimport classNames from 'classnames';\nimport { graphql, useFragment } from 'react-relay';\nimport { requestedDocumentNotification_fragment$key } from '__generated__/requestedDocumentNotification_fragment.graphql';\n\nexport interface RequestedDocumentNotificationProps {\n notification: requestedDocumentNotification_fragment$key;\n}\n\nconst requestedDocumentNotification = graphql`\n fragment requestedDocumentNotification_fragment on RequestedDocumentNotification {\n read\n baseCase {\n relationType {\n relationId\n relationType\n }\n }\n typeName\n createdDate\n }\n`;\n\nexport const RequestedDocumentNotification: FC<RequestedDocumentNotificationProps> = ({ notification }) => {\n const data = useFragment<requestedDocumentNotification_fragment$key>(requestedDocumentNotification, notification);\n const relationData = {\n relationType: data.baseCase.relationType?.relationType,\n relationId: data.baseCase.relationType?.relationId,\n };\n\n return (\n <HashLink\n className={classNames('notifications__link', { unread: !data.read })}\n smooth\n to={getRelatedLink(relationData, '#sign')}\n >\n <Icon name=\"Bell\" />\n <div className=\"notifications__item-text\">\n <Typography>\n <FormattedMessage defaultMessage=\"New document requested\" id=\"Notifications.NewDocumentRequested\" />:\n <b> {data.typeName}</b>\n </Typography>\n <Typography className=\"notifications__time\" tagStyle=\"bodyXSmall\">\n {formatDate(data.createdDate)}\n </Typography>\n </div>\n </HashLink>\n );\n};\n","/**\n * @generated SignedSource<<b45311e5591a1695d74ff4f15c326d38>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type searchProfileMatchNotification_fragment$data = {\n readonly createdDate: any;\n readonly read: boolean;\n readonly searchProfile: {\n readonly id: string;\n readonly name: string | null | undefined;\n };\n readonly \" $fragmentType\": \"searchProfileMatchNotification_fragment\";\n};\nexport type searchProfileMatchNotification_fragment$key = {\n readonly \" $data\"?: searchProfileMatchNotification_fragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"searchProfileMatchNotification_fragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"searchProfileMatchNotification_fragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"read\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"searchProfile\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"createdDate\",\n \"storageKey\": null\n }\n ],\n \"type\": \"SearchProfileMatchNotification\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"f9531fb05d9ad94010843e7d21e74643\";\n\nexport default node;\n","import Icon from 'components/atoms/icon/icon';\nimport { formatDate } from 'tools/string-formatters';\nimport Typography from 'components/atoms/typography/typography';\nimport classNames from 'classnames';\nimport { FC } from 'react';\nimport { Link } from 'react-router-dom';\nimport { graphql, useFragment } from 'react-relay';\nimport { FormattedMessage } from 'react-intl';\nimport { searchProfileMatchNotification_fragment$key } from '__generated__/searchProfileMatchNotification_fragment.graphql';\n\nexport interface SearchProfileMatchNotificationProps {\n notification: searchProfileMatchNotification_fragment$key;\n}\n\nconst searchProfileMatchNotification = graphql`\n fragment searchProfileMatchNotification_fragment on SearchProfileMatchNotification {\n read\n searchProfile {\n id\n name\n }\n createdDate\n }\n`;\n\nexport const SearchProfileMatchNotification: FC<SearchProfileMatchNotificationProps> = ({ notification }) => {\n const data = useFragment<searchProfileMatchNotification_fragment$key>(searchProfileMatchNotification, notification);\n\n return (\n <Link\n className={classNames('notifications__link', { unread: !data.read })}\n to={`/match?id=${data.searchProfile?.id}`}\n >\n <Icon name=\"Bell\" />\n <div className=\"notifications__item-text\">\n <Typography>\n <FormattedMessage\n defaultMessage=\"You have a new match on your search profile:\"\n id=\"Notifications.NewMatchFromSearchProfile\"\n />\n <b> {data.searchProfile?.name}</b>\n </Typography>\n <Typography className=\"notifications__time\" tagStyle=\"bodyXSmall\">\n {formatDate(data.createdDate)}\n </Typography>\n </div>\n </Link>\n );\n};\n","/**\n * @generated SignedSource<<45b16f8db3186e8e4432ef280d500394>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type MyPageCaseRelation = \"Case\" | \"MatchedCase\" | \"None\" | \"Offer\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type searchProfileMatchedCaseNotification_fragment$data = {\n readonly __typename: \"SearchProfileMatchedCaseNotification\";\n readonly createdDate: any;\n readonly id: string;\n readonly read: boolean;\n readonly searchProfile: {\n readonly name: string | null | undefined;\n };\n readonly searchProfileMatchedCase: {\n readonly baseCase: {\n readonly address: string | null | undefined;\n readonly relationType: {\n readonly relationId: string | null | undefined;\n readonly relationType: MyPageCaseRelation;\n } | null | undefined;\n } | null | undefined;\n } | null | undefined;\n readonly \" $fragmentType\": \"searchProfileMatchedCaseNotification_fragment\";\n};\nexport type searchProfileMatchedCaseNotification_fragment$key = {\n readonly \" $data\"?: searchProfileMatchedCaseNotification_fragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"searchProfileMatchedCaseNotification_fragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"searchProfileMatchedCaseNotification_fragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"createdDate\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"read\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SearchProfileMatchedCase\",\n \"kind\": \"LinkedField\",\n \"name\": \"searchProfileMatchedCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"address\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseRelation\",\n \"kind\": \"LinkedField\",\n \"name\": \"relationType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"relationId\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"relationType\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"searchProfile\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"SearchProfileMatchedCaseNotification\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"d70f15455b6db36f5a83c8be50cf85c4\";\n\nexport default node;\n","import Icon from 'components/atoms/icon/icon';\nimport { FC } from 'react';\nimport { formatDate } from 'tools/string-formatters';\nimport Typography from 'components/atoms/typography/typography';\nimport { FormattedMessage } from 'react-intl';\nimport classNames from 'classnames';\nimport { graphql, useFragment } from 'react-relay';\nimport { Link } from 'react-router-dom';\nimport { searchProfileMatchedCaseNotification_fragment$key } from '__generated__/searchProfileMatchedCaseNotification_fragment.graphql';\n\nexport interface SearchProfileMatchedCaseNotificationProps {\n notification: searchProfileMatchedCaseNotification_fragment$key;\n}\n\nconst searchProfileMatchedCaseNotification = graphql`\n fragment searchProfileMatchedCaseNotification_fragment on SearchProfileMatchedCaseNotification {\n id\n createdDate\n __typename\n read\n searchProfileMatchedCase {\n baseCase {\n address\n relationType {\n relationId\n relationType\n }\n }\n }\n searchProfile {\n name\n }\n }\n`;\n\nexport const SearchProfileMatchedCaseNotification: FC<SearchProfileMatchedCaseNotificationProps> = ({\n notification,\n}) => {\n const data = useFragment<searchProfileMatchedCaseNotification_fragment$key>(\n searchProfileMatchedCaseNotification,\n notification,\n );\n\n return (\n <Link\n className={classNames('notifications__link', { unread: !data.read })}\n to={`/match/${data.searchProfileMatchedCase?.baseCase?.relationType?.relationId}`}\n >\n <Icon name=\"Bell\" />\n <div className=\"notifications__item-text\">\n <Typography>\n <FormattedMessage\n defaultMessage=\"You have a new match on your search profile:\"\n id=\"Notifications.NewMatchFromSearchProfile\"\n />\n {data.searchProfile?.name}:<b> {data.searchProfileMatchedCase?.baseCase?.address}</b>\n </Typography>\n <Typography className=\"notifications__time\" tagStyle=\"bodyXSmall\">\n {formatDate(data.createdDate)}\n </Typography>\n </div>\n </Link>\n );\n};\n","import {\n ActivityNotification as ActivityNotificationType,\n DocumentAccessGrantedNotification as DocumentAccessGrantedNotificationType,\n DocumentSigningNotification as DocumentSigningNotificationType,\n LeadNotification as LeadNotificationType,\n MessageNotification as MessageNotificationType,\n OpenHouseOnFavoriteCaseNotification as OpenHouseOnFavoriteCaseNotificationType,\n PriceChangeOnFavoriteCaseNotification as PriceChangeOnFavoriteCaseNotificationType,\n PriceChangedOnMatchedCaseNotification as PriceChangedOnMatchedCaseNotificationType,\n RequestedDocumentNotification as RequestedDocumentNotificationType,\n SearchProfileMatchNotification as SearchProfileMatchNotificationType,\n SearchProfileMatchedCaseNotification as SearchProfileMatchedCaseNotificationType,\n} from 'Types';\nimport { notificationComponent_fragment$key } from '__generated__/notificationComponent_fragment.graphql';\nimport { LeadNotification } from 'components/organisms/notifications/components/lead-notification';\nimport { OpenHouseFavouriteCaseNotification } from 'components/organisms/notifications/components/open-house-favorite-case-notification.tsx';\nimport { PriceChangeFavoriteCaseNotification } from 'components/organisms/notifications/components/price-change-favorite-case-notification.tsx';\nimport { PriceChangeOnMatchCaseNotification } from 'components/organisms/notifications/components/price-change-on-match-case-notification.tsx';\nimport { FC, Fragment } from 'react';\nimport { graphql, useFragment } from 'react-relay';\nimport { getNotificationUrl } from 'utils/navigation';\nimport { ActivityNotification } from './activity-notification';\nimport { DocumentAccessGrantedNotification } from './document-access-granted-notification';\nimport { DocumentSigningNotification } from './document-signing-notification';\nimport { MessageNotification } from './message-notification';\nimport { RequestedDocumentNotification } from './requested-document-notification';\nimport { SearchProfileMatchNotification } from './search-profile-match-notification';\nimport { SearchProfileMatchedCaseNotification } from './search-profile-matched-case-notification';\n\nexport interface Props {\n notification: notificationComponent_fragment$key;\n}\n\nconst notificationComponent = graphql`\n fragment notificationComponent_fragment on NotificationInterface {\n __typename\n ... on MessageNotification {\n threadId\n }\n ...messageNotification_fragment\n ...documentSigningNotification_fragment\n ...activityNotification_fragment\n ...searchProfileMatchNotification_fragment\n ...requestedDocumentNotification_fragment\n ...searchProfileMatchedCaseNotification_fragment\n ...documentAccessGrantedNotification_fragment\n ...leadNotification_fragment\n ...priceChangeFavoriteCaseNotification_fragment\n ...priceChangeOnMatchCaseNotification_fragment\n ...openHouseFavoriteCaseNotification_fragment\n }\n`;\n\nexport const NotificationComponent: FC<Props> = (props) => {\n const data = useFragment<notificationComponent_fragment$key>(notificationComponent, props.notification);\n\n switch (data.__typename) {\n case MessageNotificationType:\n return (\n <MessageNotification\n notification={data}\n url={getNotificationUrl({ notificationType: data.__typename, threadId: data.threadId })}\n />\n );\n case DocumentSigningNotificationType:\n return <DocumentSigningNotification notification={data} />;\n case DocumentAccessGrantedNotificationType:\n return <DocumentAccessGrantedNotification notification={data} />;\n case RequestedDocumentNotificationType:\n return <RequestedDocumentNotification notification={data} />;\n case ActivityNotificationType:\n return <ActivityNotification notification={data} />;\n case SearchProfileMatchNotificationType:\n return <SearchProfileMatchNotification notification={data} />;\n case SearchProfileMatchedCaseNotificationType:\n return <SearchProfileMatchedCaseNotification notification={data} />;\n case LeadNotificationType:\n return <LeadNotification notification={data} />;\n case OpenHouseOnFavoriteCaseNotificationType:\n return <OpenHouseFavouriteCaseNotification notification={data} />;\n case PriceChangeOnFavoriteCaseNotificationType:\n return <PriceChangeFavoriteCaseNotification notification={data} />;\n case PriceChangedOnMatchedCaseNotificationType:\n return <PriceChangeOnMatchCaseNotification notification={data} />;\n default:\n return <Fragment />;\n }\n};\n","import Icon from 'components/atoms/icon/icon';\nimport Typography from 'components/atoms/typography/typography';\nimport { FormattedMessage } from 'react-intl';\n\nexport const NoNoficationData = () => {\n return (\n <div className=\"notifications__empty-state\">\n <Icon className=\"notifications__empty-state-icon\" height={48} name=\"Bell\" width={48} />\n <Typography className=\"notifications__empty-state-text\" subjectColor=\"gray\" tagStyle=\"bodyLarge\">\n <FormattedMessage defaultMessage=\"It looks like you have no messages yet!\" id=\"Notifications.EmptyState\" />\n </Typography>\n </div>\n );\n};\n","import { mainNavigationNotificationsRefreshQuery } from '__generated__/mainNavigationNotificationsRefreshQuery.graphql';\nimport { notifications_fragment$key } from '__generated__/notifications_fragment.graphql';\nimport { subscribeClientMutation } from '__generated__/subscribeClientMutation.graphql';\nimport { unsubscribeClientMutation } from '__generated__/unsubscribeClientMutation.graphql';\nimport Button from 'components/atoms/button/button';\nimport Typography from 'components/atoms/typography/typography';\nimport { useViewer } from 'app/contexts/viewerContext';\nimport useIntersectionObserver from 'hooks/useIntersectionObserver';\nimport { useNodes } from 'hooks/useNodes';\nimport { FC, Fragment, useEffect, useRef } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useMutation, usePaginationFragment } from 'react-relay';\nimport { subscribeClient } from 'services/relay/mutations/subscribeClient';\nimport { unsubscribeClient } from 'services/relay/mutations/unsubscribeClient';\nimport { arrayBufferToBase64 } from 'utils/arrayBufferToBase64';\nimport { requestNotificationPermission } from 'utils/requestNotificationPermission';\nimport { NotificationComponent } from './components/notification-component';\nimport { NoNoficationData } from './no-notification-data';\nimport './notifications.scss';\nimport Column from 'components/utilities/column/column';\nimport Icon from 'components/atoms/icon/icon';\nimport { useMixPanel } from 'hooks/useMixPanel';\n\nexport interface NotificationsProps {\n onCloseNotifications: () => void;\n onNotificationClick: (id: string) => void;\n fragment: notifications_fragment$key | null;\n handleToggle: () => void;\n setNotificationsEnabled: (enable: boolean) => void;\n notificationsEnabled: boolean;\n}\n\nconst notificationFragmentQuery = graphql`\n fragment notifications_fragment on Customer\n @argumentDefinitions(first: { type: \"Int\", defaultValue: 12 }, after: { type: \"String\" })\n @refetchable(queryName: \"mainNavigationNotificationsRefreshQuery\") {\n notificationConnection(first: $first, after: $after) @connection(key: \"mainNavigation_notificationConnection\") {\n edges {\n node {\n id\n __typename\n ...notificationComponent_fragment\n }\n }\n }\n }\n`;\n\nconst Notifications: FC<NotificationsProps> = (props) => {\n const { data, hasNext, loadNext } = usePaginationFragment<\n mainNavigationNotificationsRefreshQuery,\n notifications_fragment$key\n >(notificationFragmentQuery, props.fragment);\n const notifications = useNodes(data?.notificationConnection?.edges);\n\n const { setNotificationsEnabled, notificationsEnabled } = props;\n\n const ref = useRef<HTMLLIElement>(null);\n const entry = useIntersectionObserver(ref, {});\n const isVisible = !!entry?.isIntersecting;\n\n const viewer = useViewer();\n const featureToggles = viewer?.featureToggle;\n const isPushNotificationsEnabledAndSupported =\n !!featureToggles?.isWebPushNotificationsEnabled && 'Notification' in window;\n const isPushNotificationsEnabledAndNotSupported =\n !!featureToggles?.isWebPushNotificationsEnabled && !('Notification' in window);\n\n const [subscribe] = useMutation<subscribeClientMutation>(subscribeClient);\n const [unsubscribe] = useMutation<unsubscribeClientMutation>(unsubscribeClient);\n\n const { track } = useMixPanel();\n\n useEffect(() => {\n if (isVisible && hasNext && data?.id) {\n loadNext(12, { UNSTABLE_extraVariables: { id: data.id } });\n }\n }, [isVisible, hasNext, loadNext, data?.id]);\n\n const setCorrectRef = (index: number) => {\n if (index === notifications.length - 1) {\n return ref;\n }\n return null;\n };\n\n const handleSubscribeNotifications = async () => {\n track('Notifications', { notificationClick: 'SUBSCRIBE-PUSH-NOTIFICATIONS' });\n //prompts user for native device notification prompt\n const result = await requestNotificationPermission();\n if (result === 'neutral') return;\n\n if (result === 'denied') {\n // prompt tooltip to tell user they have blocked notifications\n props.handleToggle();\n return;\n }\n\n if (result !== 'granted') {\n navigator.permissions.query({ name: 'notifications' }).then((result) => {\n if (result.state === 'denied') {\n // Prompt user again with info that they need to remove from blocked\n props.handleToggle();\n return;\n }\n });\n }\n\n const registration = await navigator.serviceWorker.ready;\n const pushSubscription = await registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: viewer?.vapidPublicKey,\n });\n\n subscribe({\n variables: {\n input: {\n endpoint: pushSubscription.endpoint,\n p256Dh: arrayBufferToBase64(pushSubscription.getKey('p256dh')),\n auth: arrayBufferToBase64(pushSubscription.getKey('auth')),\n },\n },\n });\n setNotificationsEnabled(true);\n };\n\n const handleUnsubscribeNotifications = async () => {\n track('Notifications', { notificationClick: 'UNSUBSCRIBE-PUSH-NOTIFICATIONS' });\n\n //Unsubscribe from messages. There is no way to programmtically revoke the permission to show notifications.\n const registration = await navigator.serviceWorker.ready;\n const pushSubscription = await registration.pushManager.getSubscription();\n const result = await pushSubscription?.unsubscribe();\n\n if (result && pushSubscription) {\n unsubscribe({\n variables: {\n input: {\n endpoint: pushSubscription.endpoint,\n p256Dh: arrayBufferToBase64(pushSubscription.getKey('p256dh')),\n auth: arrayBufferToBase64(pushSubscription.getKey('auth')),\n },\n },\n });\n setNotificationsEnabled(false);\n }\n };\n\n return (\n <div className=\"notifications\">\n <div className=\"notifications__heading\">\n <Typography tag=\"span\" tagStyle=\"headlineMedium\">\n <FormattedMessage defaultMessage={'Notifications'} id=\"Notifications.Headline\" />\n </Typography>\n\n {isPushNotificationsEnabledAndSupported && (\n <div>\n {!notificationsEnabled ? (\n <Button onClick={handleSubscribeNotifications}>\n <FormattedMessage defaultMessage=\"Get push messages\" id=\"Notifications.EnablePush\" />\n </Button>\n ) : (\n <Button onClick={handleUnsubscribeNotifications}>\n <FormattedMessage defaultMessage=\"Disable push messages\" id=\"Notifications.DisablePush\" />\n </Button>\n )}\n </div>\n )}\n </div>\n <div className=\"push-notifications\">\n {isPushNotificationsEnabledAndNotSupported && (\n <Fragment>\n <Column className={'pwa-buttons'}>\n <Typography>\n <FormattedMessage id=\"pwa.clickOnTheIcon.text\" defaultMessage=\"Click on the icon\" /> (\n <Icon name={'Share'} className=\"icon\" />){' '}\n <FormattedMessage\n id=\"pwa.below.notifications\"\n defaultMessage=\"below and choose “Add to home screen“ to be notified about the newest updates and messages\"\n />\n </Typography>\n </Column>\n </Fragment>\n )}\n {isPushNotificationsEnabledAndSupported && !notificationsEnabled && (\n <Typography tag={'small'} subjectColor={'gray'}>\n <FormattedMessage\n defaultMessage=\"To keep you informed with the latest news and features, we recommend allowing 'push notifications' from our website. This grants you direct access to updates notifications, ensuring you never miss out on anything important.\"\n id=\"User.AllowPushNotifications\"\n />\n </Typography>\n )}\n </div>\n\n {!data ? (\n <NoNoficationData />\n ) : (\n <div className=\"notifications__new\">\n <ul className=\"notifications__list\">\n {notifications.map((item, index) => (\n <li\n key={item.id}\n ref={setCorrectRef(index)}\n className=\"notifications__item\"\n onClick={() => {\n props.onCloseNotifications();\n props.onNotificationClick(item.id);\n }}\n >\n <NotificationComponent notification={item} />\n </li>\n ))}\n </ul>\n </div>\n )}\n </div>\n );\n};\n\nexport default Notifications;\n","import { favoritePageHero_fragment$key } from '__generated__/favoritePageHero_fragment.graphql';\nimport { MatchHeroContent } from 'components/organisms/match-hero-content/match-hero-content';\nimport Container from 'components/utilities/container/container';\nimport { graphql, useFragment } from 'react-relay';\nimport { CaseImages } from 'components/organisms/images/case-images';\nimport RegisterOpenHouseModal from 'components/organisms/register-open-house-modal/register-open-house-modal';\nimport { FormattedMessage } from 'react-intl';\nimport Tag from 'components/atoms/tag/tag';\nimport { OpenHouseImageOverlay } from 'components/molecules/match-hero-images/open-house-image-overlay';\nimport { useList } from 'hooks/useList';\nimport useToggle from 'hooks/useToggle';\n\ninterface Props {\n fragment: favoritePageHero_fragment$key;\n}\n\nconst favoritePageHeroFragmentQuery = graphql`\n fragment favoritePageHero_fragment on CasePotentialBuyer {\n __typename\n baseCase {\n ...matchHeroContentFragment_baseCase\n ...registerOpenHouseModalFragment\n ...openHouseImageOverlay_baseCase\n noAdvertisement\n gpsCoordinates\n noAdvertisement\n gpsCoordinates\n openHouse(amount: 2) {\n __typename\n }\n mediaDataConnection {\n ...caseImages_Media\n }\n }\n offmarketCase {\n ...matchHeroContentFragment_offmarketCase\n mediaDataConnection {\n ...caseImages_Media\n }\n }\n }\n`;\n\nconst FavoritePageHero = (props: Props) => {\n const [openHouseModalOpen, toggleOpenHouseModalOpen] = useToggle();\n const data = useFragment(favoritePageHeroFragmentQuery, props.fragment);\n\n const baseCase = data.baseCase ?? data.offmarketCase;\n const openHouses = useList(data?.baseCase?.openHouse);\n\n const noAdvertisement = data?.baseCase?.noAdvertisement;\n const hasOpenHouse = !data.offmarketCase && data.baseCase && openHouses.length > 0;\n\n const handleOnClickOpenHouseModal = () => {\n toggleOpenHouseModalOpen(true);\n };\n\n const handleCloseOpenHouseModal = () => {\n toggleOpenHouseModalOpen(false);\n };\n\n return (\n <Container paddingTopReset>\n <div className={'image-wrapper'}>\n <CaseImages fragment={baseCase?.mediaDataConnection} gpsCoordinates={data.baseCase?.gpsCoordinates ?? ''} />\n <div className=\"image-overlay\">\n {!data.offmarketCase && noAdvertisement && (\n <div>\n <Tag>\n <FormattedMessage defaultMessage=\"Draw case\" id=\"Match.DrawCase\" />\n </Tag>\n </div>\n )}\n </div>\n {hasOpenHouse && (\n <OpenHouseImageOverlay fragment={data.baseCase} handleOnClickOpenHouseModal={handleOnClickOpenHouseModal} />\n )}\n </div>\n <MatchHeroContent fragment={data.baseCase} offmarketCase={data.offmarketCase} />\n {openHouseModalOpen && hasOpenHouse && (\n <RegisterOpenHouseModal closeModal={handleCloseOpenHouseModal} openHouses={data.baseCase} />\n )}\n </Container>\n );\n};\nexport default FavoritePageHero;\n","import { favoritePageDocumentsBody_CasePotentialBuyer$key } from '__generated__/favoritePageDocumentsBody_CasePotentialBuyer.graphql';\nimport { DocumentsTableRow } from 'components/organisms/documents-table/documents-table-row';\nimport DocumentsTableStateContext from 'components/organisms/documents-table/documents-table-state-context';\nimport EmptyTableBody from 'components/organisms/documents-table/empty-table-body';\nimport { TableSkeleton } from 'components/organisms/documents-table/table-skeleton';\nimport { useNodes } from 'hooks/useNodes';\nimport { FC, useContext, useEffect } from 'react';\nimport { graphql, usePaginationFragment } from 'react-relay';\n\nconst favoritePageDocumentsBody_CasePotentialBuyer = graphql`\n fragment favoritePageDocumentsBody_CasePotentialBuyer on CasePotentialBuyer\n @argumentDefinitions(\n count: { type: \"Int\", defaultValue: 10 }\n cursor: { type: \"String\" }\n searchText: { type: \"String\" }\n )\n @refetchable(queryName: \"documentsPaginationQuery_CasePotentialBuyer\") {\n baseCase {\n publicDocumentAllDownloadUrl\n publicDocumentMultipleDownloadUrl\n publicDocumentConnection(first: $count, after: $cursor, searchText: $searchText)\n @connection(key: \"documents__publicDocumentConnection\") {\n edges {\n node {\n id\n ...documentsTableRowFragment\n }\n }\n totalCount\n }\n }\n }\n`;\n\ntype Props = {\n documentFragment: favoritePageDocumentsBody_CasePotentialBuyer$key;\n};\nexport const FavoritePageDocumentsBody: FC<Props> = ({ documentFragment }) => {\n const { data, refetch, loadNext, hasNext, isLoadingNext } = usePaginationFragment(\n favoritePageDocumentsBody_CasePotentialBuyer,\n documentFragment,\n );\n\n const { state, dispatch } = useContext(DocumentsTableStateContext);\n\n const documentNodes = useNodes(data?.baseCase?.publicDocumentConnection?.edges);\n const slicedDocuments = documentNodes.slice(\n state.page * state.pageSize - state.pageSize,\n state.page * state.pageSize,\n );\n\n useEffect(() => {\n refetch(\n {\n after: null,\n first: state.pageSize,\n searchText: state.searchInput,\n id: data.id,\n },\n { fetchPolicy: 'store-and-network' },\n );\n }, [state.searchInput, state.pageSize, refetch, data.id]);\n\n useEffect(() => {\n if (documentNodes) {\n dispatch({ type: 'SET_DOCUMENTS_DATA', payload: documentNodes });\n }\n if (data.baseCase) {\n const payload = {\n downloadAllUrl: data.baseCase?.publicDocumentAllDownloadUrl ?? '',\n downloadMultipleUrl: data.baseCase?.publicDocumentMultipleDownloadUrl ?? '',\n count: data.baseCase?.publicDocumentConnection?.totalCount ?? 0,\n };\n dispatch({\n type: 'SET_DATA',\n payload: payload,\n });\n }\n }, [data, dispatch, documentNodes]);\n\n useEffect(() => {\n if (state.page && hasNext) {\n loadNext(state.pageSize, { UNSTABLE_extraVariables: { id: data.id } });\n }\n }, [loadNext, hasNext, state.page, state.pageSize, data.id]);\n\n const handleRowSelection = (id: string | undefined) => {\n if (typeof id !== 'string') {\n return false;\n }\n\n dispatch({\n type: 'HANDLE_ROW_SELECTION',\n payload: id,\n });\n };\n\n if (isLoadingNext) {\n return <TableSkeleton />;\n } else {\n return (\n <tbody className=\"table__body\">\n {slicedDocuments.length > 0 &&\n slicedDocuments.map((document) => (\n <DocumentsTableRow\n rowSelection={state.rowSelection}\n setRowSelection={handleRowSelection}\n documentFragment={document}\n key={document.id}\n />\n ))}\n {slicedDocuments.length === 0 && <EmptyTableBody searchString={state.searchInput} />}\n </tbody>\n );\n }\n};\n","import { favoritePageDocumentsRender_Query } from '__generated__/favoritePageDocumentsRender_Query.graphql';\nimport { FavoritePageDocumentsBody } from 'app/pages/favorites/documents/favorite-page-documents-body';\nimport Typography from 'components/atoms/typography/typography';\nimport { DocumentsTable } from 'components/organisms/documents-table/documents-table';\nimport { DocumentsTableFooter } from 'components/organisms/documents-table/documents-table-footer';\nimport { DocumentsTableHeader } from 'components/organisms/documents-table/documents-table-header';\nimport DocumentsTableStateContext from 'components/organisms/documents-table/documents-table-state-context';\nimport {\n DocumentsTableAction,\n documentsTableInitialState,\n DocumentsTableState,\n documentsTableStateReducer,\n} from 'components/organisms/documents-table/documents-table-state-reducer';\nimport { TableSkeleton } from 'components/organisms/documents-table/table-skeleton';\nimport { SuspenseHoc } from 'components/templates/suspense-hoc';\nimport Column from 'components/utilities/column/column';\nimport Container from 'components/utilities/container/container';\nimport Row from 'components/utilities/row/row';\nimport { FC, Reducer, useReducer } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useLazyLoadQuery } from 'react-relay';\n\ntype Props = {\n favoriteId: string;\n};\n\nconst favoritePageDocumentsRenderQuery = graphql`\n query favoritePageDocumentsRender_Query($favoriteId: ID!) {\n node(id: $favoriteId) {\n ...favoritePageDocumentsBody_CasePotentialBuyer\n }\n }\n`;\nexport const FavoritePageDocumentsRender: FC<Props> = (props) => {\n const [state, dispatch] = useReducer<Reducer<DocumentsTableState, DocumentsTableAction>>(\n documentsTableStateReducer,\n documentsTableInitialState,\n );\n const data = useLazyLoadQuery<favoritePageDocumentsRender_Query>(favoritePageDocumentsRenderQuery, {\n favoriteId: props.favoriteId,\n });\n\n return (\n <DocumentsTableStateContext.Provider value={{ state, dispatch }}>\n <Container>\n <Row id=\"documents\">\n <Column>\n <Typography tag=\"h2\" tagStyle=\"headlineMedium\">\n <FormattedMessage defaultMessage=\"Dokumenter\" id=\"MatchCaseDocuments.title\" />\n </Typography>\n {data.node && (\n <DocumentsTable>\n <DocumentsTableHeader />\n <SuspenseHoc fallback={<TableSkeleton />}>\n <FavoritePageDocumentsBody documentFragment={data.node} />\n </SuspenseHoc>\n <DocumentsTableFooter />\n </DocumentsTable>\n )}\n </Column>\n </Row>\n </Container>\n </DocumentsTableStateContext.Provider>\n );\n};\n","/**\n * @generated SignedSource<<9776ee7883a278b5258a55ac241f1d35>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Fragment, ReaderFragment } from 'relay-runtime';\nexport type LeadStatusTypeEnum = \"ConvertedToCustomer\" | \"InProgress\" | \"MarkAsSpam\" | \"NotConvertedToCustomer\" | \"Processed\" | \"Recieved\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type saleByOwnerProcessedGridFragment$data = {\n readonly myPageLeads: ReadonlyArray<{\n readonly __typename: string;\n readonly id: string;\n readonly statusType: LeadStatusTypeEnum | null | undefined;\n readonly \" $fragmentSpreads\": FragmentRefs<\"leadListItemFragment\">;\n } | null | undefined> | null | undefined;\n readonly \" $fragmentType\": \"saleByOwnerProcessedGridFragment\";\n};\nexport type saleByOwnerProcessedGridFragment$key = {\n readonly \" $data\"?: saleByOwnerProcessedGridFragment$data;\n readonly \" $fragmentSpreads\": FragmentRefs<\"saleByOwnerProcessedGridFragment\">;\n};\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"saleByOwnerProcessedGridFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"myPageLeads\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"statusType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"leadListItemFragment\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Viewer\",\n \"abstractKey\": null\n};\n\n(node as any).hash = \"075b7ce224f057b6ffa1d9303bb54e7f\";\n\nexport default node;\n","import { graphql, useFragment } from 'react-relay';\nimport { saleByOwnerGridFragment$key } from '__generated__/saleByOwnerGridFragment.graphql';\nimport Block from 'components/utilities/block/block';\nimport Row from 'components/utilities/row/row';\nimport Column from 'components/utilities/column/column';\nimport Typography from 'components/atoms/typography/typography';\nimport { FormattedMessage } from 'react-intl';\nimport './sale-by-owner.scss';\nimport { useList } from 'hooks/useList';\nimport { FC, Fragment, useMemo } from 'react';\nimport { LeadListItem } from 'components/molecules/sale-by-owner/lead-list-item';\nimport EmptyModule from '../empty-module/empty-module';\nimport { LeadStatusTypeEnum } from 'Enums';\n\ntype Props = {\n viewerFragment: saleByOwnerGridFragment$key;\n};\n\nconst saleByOwnerProcessedGridFragment = graphql`\n fragment saleByOwnerProcessedGridFragment on Viewer {\n myPageLeads {\n statusType\n id\n __typename\n ...leadListItemFragment\n }\n }\n`;\n\nexport const SaleByOwnerProcessedGrid: FC<Props> = ({ viewerFragment }) => {\n const data = useFragment(saleByOwnerProcessedGridFragment, viewerFragment);\n const mypageLeads = useList(data.myPageLeads ?? []);\n\n const leads = useMemo(() => {\n return mypageLeads.filter((lead) => lead.statusType === LeadStatusTypeEnum.Processed);\n }, [mypageLeads]);\n\n return (\n <Fragment>\n <Block className=\"match-cards-list\">\n <Row>\n <Column>\n <Typography className=\"match-cards-list__heading\" tag=\"h2\" tagStyle=\"headlineMedium\">\n <FormattedMessage\n defaultMessage={'Your leads ({count})'}\n id={'saleByOwner.leads'}\n values={{ count: leads.length }}\n />\n </Typography>\n </Column>\n </Row>\n {leads.length > 0 ? (\n <div className={'grid'}>\n {leads.map((lead) => (\n <LeadListItem key={lead.id} fragment={lead} disabled={true} />\n ))}\n </div>\n ) : (\n <EmptyModule\n iconName=\"Lead\"\n message={\n <FormattedMessage defaultMessage=\"You have no processed leads\" id=\"saleByOwner.NoLeadProcessedLeads\" />\n }\n />\n )}\n </Block>\n </Fragment>\n );\n};\n","import Container from 'components/utilities/container/container';\nimport { useViewer } from 'app/contexts/viewerContext';\n\nimport Typography from 'components/atoms/typography/typography';\nimport { FormattedMessage } from 'react-intl';\nimport Row from 'components/utilities/row/row';\nimport Block from 'components/utilities/block/block';\nimport { graphql, useLazyLoadQuery } from 'react-relay';\nimport { saleByOwnerPageQuery } from '__generated__/saleByOwnerPageQuery.graphql';\nimport { SaleByOwnerGrid } from 'components/molecules/sale-by-owner/sale-by-owner-grid';\nimport TabComponent from 'components/organisms/tab-component/tab-component';\nimport { SaleByOwnerProcessedGrid } from 'components/molecules/sale-by-owner/sale-by-owner-processed-grid';\n\nexport const SaleByOwnerPage = () => {\n const data = useLazyLoadQuery<saleByOwnerPageQuery>(\n graphql`\n query saleByOwnerPageQuery {\n viewer {\n ...saleByOwnerGridFragment\n ...saleByOwnerProcessedGridFragment\n }\n }\n `,\n {},\n );\n const viewer = useViewer();\n\n if (!viewer?.featureToggle?.isPropertyForSaleByOwnerEnabled) {\n return (\n <Container>\n <Row center>\n <Block>\n <Typography tag={'h1'}>\n <FormattedMessage id={'saleByOwner.NotAccess'} defaultMessage={'You do not have access to this page'} />\n </Typography>\n </Block>\n </Row>\n </Container>\n );\n }\n\n if (!data.viewer) {\n return (\n <Container>\n <Row center>\n <Block>\n <Typography tag={'h1'}>\n <FormattedMessage id={'saleByOwner.NoLeads'} defaultMessage={'You do not have new leads'} />\n </Typography>\n </Block>\n </Row>\n </Container>\n );\n }\n\n const tabContent = [\n {\n item: (\n <Container>\n <SaleByOwnerGrid viewerFragment={data.viewer} />\n </Container>\n ),\n key: 'newLeads',\n },\n {\n item: (\n <Container>\n <SaleByOwnerProcessedGrid viewerFragment={data.viewer} />\n </Container>\n ),\n key: 'processedLeads',\n },\n ];\n\n const tabNav = [\n {\n item: (\n <Typography tagStyle=\"bodyLarge\">\n <FormattedMessage defaultMessage=\"New leads\" id=\"Leads.NewLeads\" />\n </Typography>\n ),\n key: 'newLeads',\n },\n {\n item: (\n <Typography tagStyle=\"bodyLarge\">\n <FormattedMessage defaultMessage=\"Processed leads\" id=\"Leads.ProcessedLeads\" />\n </Typography>\n ),\n key: 'processedLeads',\n },\n ];\n\n return <TabComponent activeTab={'newLeads'} tabContent={tabContent} tabNav={tabNav} />;\n};\n","import { lazy, ReactNode } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport FavoritePage from 'app/pages/favorites/favorite-page';\nimport { SaleByOwnerPage } from 'app/pages/sale-by-owner/sale-by-owner-page';\n\nconst Activities = lazy(() => import('app/pages/activities/activities' /* webpackChunkName: \"Activities\" */));\nconst CasePage = lazy(() => import('app/pages/case/case' /* webpackChunkName: \"Case\" */));\nconst ActivityCasePage = lazy(\n () => import('app/pages/activity-case/activity-case' /* webpackChunkName: \"ActivityCasePage\" */),\n);\nconst FavouritesPage = lazy(\n () => import(/* webpackChunkName: \"FavouritesPage\" */ 'app/pages/favorites/favourites-page'),\n);\nconst MatchCasePage = lazy(() => import(/* webpackChunkName: \"MatchCasePage\" */ 'app/pages/match/match-case-page'));\nconst MatchPage = lazy(() => import('app/pages/match/match-page' /* webpackChunkName: \"MatchPage\" */));\nconst MySalesPage = lazy(() => import('app/pages/my-sales/my-sales-page' /* webpackChunkName: \"MySalesPage\" */));\n\nconst MessagesPage = lazy(() => import('app/pages/messages/messages' /* webpackChunkName: \"Messages\" */));\nconst NotFoundPage = lazy(() => import('app/pages/404' /* webpackChunkName: \"404Page\" */));\nconst Overview = lazy(() =>\n import('app/pages/overview/overview' /* webpackChunkName: \"Overview\" */).then((module) => ({\n default: module.Overview,\n })),\n);\nconst ProfilePage = lazy(() => import('app/pages/profile/profile-page' /* webpackChunkName: \"ProfilePage\" */));\nconst SearchProfile = lazy(\n () => import('app/pages/search-profile/create-search-profile' /* webpackChunkName: \"CreateSearchProfile\" */),\n);\n\nconst NotificationPage = lazy(() =>\n import('app/pages/notification/notification-page' /* webpackChunkName: \"ProfilePage\" */).then((module) => ({\n default: module.NotificationPage,\n })),\n);\n\ninterface RouteConfig {\n component: ReactNode;\n inlcudeInNav?: boolean;\n name: ReactNode;\n path: string;\n subRoute?: RouteConfig;\n}\n\nexport const mainNavigationRoutes: RouteConfig[] = [\n {\n component: <Overview />,\n name: <FormattedMessage defaultMessage=\"Overview\" id=\"Routes.Overview\" />,\n path: '/',\n },\n {\n component: <MessagesPage />,\n name: <FormattedMessage defaultMessage=\"Messages\" id=\"Routes.Messages\" />,\n path: '/messages',\n },\n {\n component: <Activities />,\n name: <FormattedMessage defaultMessage=\"Activities\" id=\"Routes.Activities\" />,\n path: '/activities',\n },\n {\n component: <FavouritesPage />,\n name: <FormattedMessage defaultMessage=\"Favorites\" id=\"Routes.Favorites\" />,\n path: '/favorites',\n },\n {\n component: <MatchPage />,\n name: <FormattedMessage defaultMessage=\"Match\" id=\"Routes.Match\" />,\n path: '/match',\n },\n {\n component: <MySalesPage />,\n name: <FormattedMessage defaultMessage=\"My sales\" id=\"Routes.MySales\" />,\n path: '/my-sales',\n },\n];\n\nexport const mainAppRoutes: RouteConfig[] = [\n ...mainNavigationRoutes,\n {\n component: <FavoritePage />,\n name: <FormattedMessage defaultMessage=\"Favorite\" id=\"Routes.Favorite\" />,\n path: '/favorite/:favoriteId',\n },\n {\n component: <ProfilePage />,\n name: <FormattedMessage defaultMessage=\"Profil\" id=\"Routes.Profile\" />,\n path: '/profile',\n },\n {\n component: <SearchProfile />,\n name: <FormattedMessage defaultMessage=\"Søge Profil\" id=\"Routes.SearchProfile\" />,\n path: '/create-search-profile/:searchProfileId',\n },\n {\n component: <CasePage />,\n name: <FormattedMessage defaultMessage=\"Case\" id=\"Routes.Case\" />,\n path: '/case/:offerId',\n },\n {\n component: <MatchCasePage />,\n name: <FormattedMessage defaultMessage=\"Match\" id=\"Routes.MatchCase\" />,\n path: '/match/:matchId',\n },\n {\n component: <ActivityCasePage />,\n name: <FormattedMessage defaultMessage=\"Activity Case\" id=\"Routes.ActivityCase\" />,\n path: '/activity-case/:activityCaseId',\n },\n {\n component: <NotificationPage />,\n name: <FormattedMessage defaultMessage=\"Notification\" id=\"Routes.Notification\" />,\n path: '/notification/:notificationId',\n },\n {\n component: <SaleByOwnerPage />,\n name: <FormattedMessage defaultMessage=\"Self-sale\" id=\"Routes.Sale\" />,\n path: '/sale',\n },\n {\n component: <NotFoundPage />,\n name: '404',\n path: '*',\n },\n];\n","import { favoritePage_Query } from '__generated__/favoritePage_Query.graphql';\nimport ContactModule from 'components/organisms/contact-module/contact-module';\nimport ContactModuleOffmarket from 'components/organisms/contact-module/contact-module-offmarket';\nimport MyPageSpots from 'components/organisms/my-page-spots/my-page-spots';\nimport FavoritePageHero from 'app/pages/favorites/favorite-page-hero';\nimport { graphql, useLazyLoadQuery } from 'react-relay';\nimport { useParams } from 'react-router-dom';\nimport { SuspenseHoc } from 'components/templates/suspense-hoc';\nimport Loader from 'components/atoms/loader/loader';\nimport { FavoritePageDocumentsRender } from 'app/pages/favorites/documents/favorite-page-documents-render';\nimport NotFound from 'components/molecules/not-found/not-found';\nimport { Fragment } from 'react';\n\nconst favoritePageQuery = graphql`\n query favoritePage_Query($matchId: ID!) {\n node(id: $matchId) {\n ... on CasePotentialBuyer {\n ...favoritePageHero_fragment\n baseCase {\n ...contactModule_baseCase\n }\n offmarketCase {\n ...contactModuleOffmarket_offmarketCase\n }\n }\n }\n viewer {\n ...myPageSpotsEntity\n }\n }\n`;\n\nconst FavoritePage = () => {\n const { favoriteId } = useParams();\n\n const data = useLazyLoadQuery<favoritePage_Query>(favoritePageQuery, {\n matchId: favoriteId || '',\n });\n\n if (!data) {\n return <NotFound />;\n }\n\n return (\n <Fragment>\n {data.node && <FavoritePageHero fragment={data.node} />}\n {data.node?.baseCase && <ContactModule fragment={data.node.baseCase} />}\n {favoriteId && (\n <SuspenseHoc fallback={<Loader />}>\n <FavoritePageDocumentsRender favoriteId={favoriteId} />\n </SuspenseHoc>\n )}\n {data.node?.offmarketCase && <ContactModuleOffmarket fragment={data.node.offmarketCase} />}\n\n {data?.viewer && <MyPageSpots myPageSpots={data.viewer} filter={'PotentialBuyer'} />}\n </Fragment>\n );\n};\n\nexport default FavoritePage;\n","import { useTheme } from 'app/context/ThemeContext';\nimport Button from 'components/atoms/button/button';\n\nexport const HomeLink = () => {\n const theme = useTheme();\n\n return (\n <Button anchorTag href=\"/\" version=\"link\">\n <picture>\n <source srcSet={theme?.logoUrl ? theme?.logoUrl : '/images/mindworking-logo.svg'} />\n <img\n alt={theme?.logoAlt ? theme.logoAlt : 'Logo'}\n src={theme?.logoUrl ? theme?.logoUrl : '/images/mindworking-logo.jpg'}\n />\n </picture>\n </Button>\n );\n};\n","import Icon from 'components/atoms/icon/icon';\nimport { useMixPanel } from 'hooks/useMixPanel';\nimport { FormattedMessage } from 'react-intl';\nimport { authenticationService } from 'services/authentication/authentication-service';\n\nexport const LogoutButton = () => {\n const { track } = useMixPanel();\n return (\n <button\n onClick={async () => {\n await track('Profile_Navigate', { dropdown: 'LOG-OUT' });\n authenticationService.logout();\n }}\n type=\"button\"\n >\n <Icon name=\"LogOut\" />\n <span className=\"main-navigation__logout-text\">\n <FormattedMessage defaultMessage=\"Log ud\" id=\"Navigation.Logout\" />\n </span>\n </button>\n );\n};\n","import { PageNavTypes } from './mixpanelEvents';\n\nexport type PathType =\n | '/'\n | '/messages'\n | '/activities'\n | '/favorites'\n | '/match'\n | '/my-sales'\n | '/sale'\n | '/profile'\n | '/create-search-profile/new';\n\nexport const getMixpanelLocationType = (type: PathType): PageNavTypes => {\n const baseType = `/${type.split('/')[1]}`;\n\n switch (baseType) {\n case '/':\n return 'FRONT_PAGE';\n case '/messages':\n return 'MESSAGES';\n case '/activities':\n return 'ACTIVITIES';\n case '/favorites':\n return 'FAVORITES';\n case '/match':\n return 'MATCHES';\n case '/my-sales':\n return 'MY-SALES';\n case '/sale':\n return 'LEADS';\n case '/profile':\n return 'PROFILE_PAGE';\n case '/create-search-profile':\n return 'SEARCH_PROFILE';\n case '/case':\n return 'CASE';\n default:\n return '';\n }\n};\n","import useToggle from 'hooks/useToggle';\nimport { useEffect } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport './bell-highlight-popup.scss';\n\ntype Props = {\n displayPopUp: boolean;\n};\n\nconst DONT_SHOW = 'dontShow';\nconst HIGHLIGHT_BELL = 'highlightBell';\n\nexport const BellHighlightPopup = ({ displayPopUp }: Props) => {\n const [isVisible, toggleIsVisible] = useToggle(false);\n\n useEffect(() => {\n setTimeout(() => {\n const localStore = localStorage.getItem(HIGHLIGHT_BELL);\n const sessionStore = sessionStorage.getItem(HIGHLIGHT_BELL);\n\n if (localStore === DONT_SHOW || sessionStore === DONT_SHOW) return;\n\n if (displayPopUp) {\n toggleIsVisible(true);\n }\n }, 60000);\n }, [displayPopUp, toggleIsVisible]);\n\n const handleTooltipClose = () => {\n sessionStorage.setItem(HIGHLIGHT_BELL, DONT_SHOW);\n toggleIsVisible(false);\n };\n\n const onDontShowAgain = () => {\n localStorage.setItem(HIGHLIGHT_BELL, DONT_SHOW);\n toggleIsVisible(false);\n };\n\n return (\n <div className={`bell-highlight ${isVisible ? 'bell-highlight--visible' : ''}`}>\n <div className=\"bell-highlight__header\">\n <h1 className=\"bell-highlight__title\">\n <FormattedMessage id=\"BellHighlight.header\" defaultMessage=\"Get notifications!\" />\n </h1>\n <button className=\"bell-highlight__close-button\" onClick={handleTooltipClose}>\n ×\n </button>\n </div>\n <div className=\"bell-highlight__content\">\n <FormattedMessage\n id=\"BellHighlight.description\"\n defaultMessage=\"By clicking the bell and selecting 'Enable push notifications', you will always stay updated with the latest news\"\n />\n </div>\n <button className=\"bell-highlight__dont-show-button\" onClick={onDontShowAgain}>\n <FormattedMessage id=\"PWAPrompt.dontShowAgian\" defaultMessage=\"Don't show again\" />\n </button>\n </div>\n );\n};\n","import { markNotificationAsRead_Mutation } from '__generated__/markNotificationAsRead_Mutation.graphql';\nimport classNames from 'classnames';\nimport Badge from 'components/atoms/badge/badge';\nimport Icon from 'components/atoms/icon/icon';\nimport Typography from 'components/atoms/typography/typography';\nimport Notifications from 'components/organisms/notifications/notifications';\nimport useOnClickOutside from 'hooks/use-on-click-outside';\nimport useIsMobile from 'hooks/useIsMobile';\nimport { FC, Fragment, useEffect, useMemo, useRef, useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { graphql, useFragment, useMutation } from 'react-relay';\nimport { NavLink, useLocation } from 'react-router-dom';\nimport { mainNavigationRoutes } from 'app/router/routes-setup';\nimport { markNotificationAsReadMutation } from 'services/relay/mutations/markNotificationAsRead';\nimport './main-navigation.scss';\nimport { mainNavigation_fragment$key } from '__generated__/mainNavigation_fragment.graphql';\nimport { HomeLink } from '../home-link/home-link';\nimport { LogoutButton } from '../logout-button/logout-button';\nimport useToggle from 'hooks/useToggle';\nimport { useViewer } from 'app/contexts/viewerContext';\nimport { SaleByOwnerPage } from 'app/pages/sale-by-owner/sale-by-owner-page';\nimport { SimpleModal } from 'components/molecules/simple-modal/simple-modal';\nimport { getMixpanelLocationType, PathType } from 'app/mixpanel/util';\nimport { useMixPanel } from 'hooks/useMixPanel';\nimport { BellHighlightPopup } from '../bell-highlight-popup/bell-highlight-popup';\n\nexport interface MainNavigationProps {\n fragment: mainNavigation_fragment$key | null;\n initials?: string | null;\n}\n\nconst mainNavigationFragment = graphql`\n fragment mainNavigation_fragment on Customer {\n unreadNotificationsCount\n unreadThreadCount\n ...notifications_fragment\n }\n`;\n\nconst MainNavigation: FC<MainNavigationProps> = ({ initials, fragment }) => {\n const data = useFragment(mainNavigationFragment, fragment);\n const viewer = useViewer();\n const featureToggles = viewer?.featureToggle;\n const [profileMenuOpen, toggleProfileMenuOpen] = useToggle();\n const [notificationsOpen, toggleNotificationsOpen] = useToggle();\n const [mobileMenuOpen, toggleMobileMenuOpen] = useToggle();\n const [browserPermissionOpen, toggleBrowserPermissionOpen] = useToggle();\n const isMobile = useIsMobile();\n const { track } = useMixPanel();\n\n const location = useLocation();\n const profileMenuRef = useRef<HTMLDivElement>(null);\n const notificationsRef = useRef<HTMLLIElement>(null);\n\n const [commit] = useMutation<markNotificationAsRead_Mutation>(markNotificationAsReadMutation);\n\n const [notificationsEnabled, setNotificationsEnabled] = useState(false);\n const isWebPushNotificationsEnabled = !!(featureToggles?.isWebPushNotificationsEnabled && 'Notification' in window);\n\n useEffect(() => {\n if (!isMobile) {\n return;\n }\n\n if (notificationsOpen || mobileMenuOpen) {\n document.body.classList.add('lock-scroll');\n } else {\n document.body.classList.remove('lock-scroll');\n }\n }, [notificationsOpen, mobileMenuOpen, isMobile]);\n\n useEffect(() => {\n /*\n Checks if user currently has a subscription. \n There is no status in backend. \n User can subscribe from multiple devices and have diff. status per device\n */\n const getPushSubscription = async () => {\n const registration = await navigator.serviceWorker.ready;\n return await registration.pushManager.getSubscription();\n };\n\n getPushSubscription()\n .then((value) => {\n setNotificationsEnabled(!!value);\n })\n .catch((err) => {\n console.error('error:', err);\n });\n }, [data?.unreadNotificationsCount, data?.unreadThreadCount]);\n\n const markNotificationAsRead = (id: string) => {\n commit({\n variables: {\n input: id,\n },\n });\n };\n\n useEffect(() => {\n const pathName = location.pathname;\n const type = getMixpanelLocationType(pathName as PathType);\n\n if (pathName === '/messages' && !location.search) {\n return;\n }\n\n track('Page_Views', { type: type, url: pathName });\n }, [location, track]);\n\n const closeProfileMenu = () => {\n toggleProfileMenuOpen(false);\n };\n useOnClickOutside(profileMenuRef, closeProfileMenu);\n\n const onCloseNotifications = () => {\n toggleNotificationsOpen(false);\n };\n useOnClickOutside(notificationsRef, onCloseNotifications);\n\n const routes = useMemo(() => {\n if (featureToggles?.isPropertyForSaleByOwnerEnabled) {\n return [\n ...mainNavigationRoutes,\n {\n component: <SaleByOwnerPage />,\n name: <FormattedMessage defaultMessage=\"Self-sale\" id=\"Routes.Sale\" />,\n path: '/sale',\n },\n ];\n } else {\n return [...mainNavigationRoutes];\n }\n }, [featureToggles]);\n\n const handleToggle = () => {\n toggleBrowserPermissionOpen();\n };\n\n const handleClickNavLink = (path: PathType) => {\n const type = getMixpanelLocationType(path);\n track('Page_Navigate', { page: type });\n track('Menu_Navigate', { topMenu: type });\n };\n\n const handleClickLogo = () => {\n track('Menu_Navigate', { topMenu: 'LOGO' });\n };\n\n const handleBellClick = () => {\n toggleNotificationsOpen();\n track('Menu_Navigate', { topMenu: 'NOTIFICATIONS' });\n };\n\n const handleProfileClick = () => {\n toggleProfileMenuOpen();\n track('Menu_Navigate', { topMenu: 'PROFILE-ICON' });\n };\n\n return (\n <Fragment>\n <nav className=\"main-navigation\">\n <div className=\"main-navigation__inner\">\n <div className=\"main-navigation__logo\" onClick={handleClickLogo}>\n <HomeLink />\n </div>\n <ul className=\"main-navigation__primary\">\n {routes.map((route) => (\n <li key={route.path} className=\"main-navigation__list-item\">\n <NavLink\n className={({ isActive }) =>\n classNames('main-navigation__link', {\n 'is-active': isActive,\n })\n }\n end={route.path === '/'}\n to={route.path || '/'}\n onClick={() => handleClickNavLink(route.path as PathType)}\n >\n {route.name}\n {route.path === '/messages' && <Badge count={data?.unreadThreadCount ?? 0} />}\n </NavLink>\n </li>\n ))}\n </ul>\n\n {/* SECONDARY NAV */}\n <ul className=\"main-navigation__secondary\">\n {/* NOTIFICATIONS */}\n <li ref={notificationsRef} className=\"main-nav-notifications\">\n {isWebPushNotificationsEnabled && !notificationsEnabled && (\n <BellHighlightPopup displayPopUp={isWebPushNotificationsEnabled && !notificationsEnabled} />\n )}\n <div>\n <button\n className={classNames('main-nav-notifications-icon', {\n 'is-active': notificationsOpen,\n 'is-unread': !!data?.unreadNotificationsCount,\n })}\n onClick={handleBellClick}\n type=\"button\"\n >\n <Icon name={isWebPushNotificationsEnabled && notificationsEnabled ? 'Bell' : 'BellOff'} />\n </button>\n </div>\n {notificationsOpen && (\n <div\n className={classNames('notifications-navigation', {\n 'is-open': notificationsOpen,\n })}\n >\n <Notifications\n onCloseNotifications={onCloseNotifications}\n onNotificationClick={markNotificationAsRead}\n fragment={data}\n handleToggle={handleToggle}\n setNotificationsEnabled={setNotificationsEnabled}\n notificationsEnabled={notificationsEnabled}\n />\n </div>\n )}\n </li>\n {/* PROFILE ICON */}\n <li>\n <div className=\"main-nav-profile\">\n <div ref={profileMenuRef}>\n <button\n className={classNames('main-nav-profile-icon', {\n 'is-active': profileMenuOpen,\n 'is-path': location.pathname === '/profile',\n })}\n onClick={handleProfileClick}\n type=\"button\"\n >\n <Typography tagStyle=\"bodyLarge\">{initials}</Typography>\n </button>\n </div>\n\n {/* MINI NAV */}\n <div\n ref={profileMenuRef}\n className={classNames('main-nav-profile-menu', {\n close: !profileMenuOpen,\n open: profileMenuOpen,\n })}\n >\n <ul className=\"main-nav-profile-menu-inner\">\n <li>\n <NavLink\n className={({ isActive }) =>\n classNames('main-nav-profile-menu-link', {\n 'is-active': isActive,\n })\n }\n onClick={() => {\n toggleProfileMenuOpen(false);\n track('Page_Navigate', { page: 'PROFILE_PAGE' });\n track('Profile_Navigate', { dropdown: 'GO-TO-PROFILE' });\n }}\n to={{ pathname: '/profile' }}\n >\n <FormattedMessage defaultMessage=\"Go to profile\" id=\"MainNavigation.profileLinkText\" />\n </NavLink>\n </li>\n <li className=\"main-navigation__logout\">\n <LogoutButton />\n </li>\n </ul>\n </div>\n </div>\n </li>\n\n {/* MOBILE NAV */}\n <li className=\"main-nav-toggle\">\n <button\n className={classNames('main-nav-toggle-icon', {\n close: !mobileMenuOpen,\n open: mobileMenuOpen,\n })}\n onClick={() => {\n toggleMobileMenuOpen();\n }}\n type=\"button\"\n >\n <Icon name={mobileMenuOpen ? 'Cross' : 'BurgerMenu'} />\n </button>\n </li>\n </ul>\n <div\n className={classNames('mobile-navigation', {\n close: !mobileMenuOpen,\n open: mobileMenuOpen,\n })}\n >\n <ul className=\"mobile-navigation__primary\">\n {routes.map((route) => (\n <li key={route.path} className=\"mobile-navigation__list-item\">\n <NavLink\n className={({ isActive }) =>\n classNames('mobile-navigation__link', {\n 'is-active': isActive,\n })\n }\n end\n onClick={() => {\n toggleMobileMenuOpen(false);\n track('Page_Navigate', { page: 'MESSAGES' });\n }}\n to={route.path || '/'}\n >\n {route.name}\n {route.path === '/messages' && <Badge count={data?.unreadThreadCount ?? 0} />}\n </NavLink>\n </li>\n ))}\n <li className=\"mobile-navigation__profile\">\n <NavLink\n className={({ isActive }) =>\n classNames('mobile-navigation__profile-link', {\n 'is-active': isActive,\n })\n }\n onClick={() => {\n toggleMobileMenuOpen(false);\n track('Page_Navigate', { page: 'PROFILE_PAGE' });\n track('Profile_Navigate', { dropdown: 'GO-TO-PROFILE' });\n }}\n to=\"/profile\"\n >\n <div className=\"main-nav-profile-icon\">{initials}</div>\n <div className=\"mobile-navigation__profile-label\">\n <FormattedMessage defaultMessage=\"Go to profile\" id=\"MainNavigation.profileLinkText\" />\n </div>\n </NavLink>\n </li>\n <li className=\"main-navigation__logout\">\n <LogoutButton />\n </li>\n </ul>\n </div>\n </div>\n </nav>\n {browserPermissionOpen && (\n <SimpleModal onClose={handleToggle}>\n <div className={'flex flex-column padding-md'}>\n <Typography tag={'h5'}>\n <FormattedMessage\n defaultMessage={'Keep updated with the latest'}\n id={'User.functionalityAccessHeadline'}\n />\n </Typography>\n <Typography>\n <FormattedMessage\n defaultMessage=\"To restore full access to the websites functionalities, please reset your permissions for this website in your browsers settings. This ensures that any previous restrictions are removed, and you have unrestricted access to all features.\"\n id=\"User.functionalityAccess\"\n />\n </Typography>\n </div>\n </SimpleModal>\n )}\n </Fragment>\n );\n};\nexport default MainNavigation;\n","import { Component, ErrorInfo, ReactNode } from 'react';\nimport { sendErrorToServer } from 'services/errors/LogProxy';\nimport NotFound from 'components/molecules/not-found/not-found';\n\ntype Props = unknown & { children: ReactNode };\n\ninterface State {\n error?: Error;\n errorInfo?: ErrorInfo;\n hasError: boolean;\n errorId: string | null;\n}\n\nclass ErrorBoundary extends Component<Props, State> {\n constructor(props: Props) {\n super(props);\n this.state = { hasError: false, errorId: null };\n }\n\n static getDerivedStateFromError(error: Error) {\n // Update state so the next render will show the fallback UI.\n return { error, hasError: true };\n }\n\n async componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n // You can also log the error to an error reporting service\n const { message, stack } = error;\n const { componentStack } = errorInfo;\n\n const errorId = await sendErrorToServer({\n message,\n stack,\n componentStack: componentStack ?? '',\n });\n\n this.setState({ errorId });\n }\n\n render() {\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return <NotFound reload={true} />;\n }\n\n return this.props.children;\n }\n}\n\nexport default ErrorBoundary;\n","import { defaultLayout_Query } from '__generated__/defaultLayout_Query.graphql';\nimport { defaultLayout_unreadNotifications_Subscription } from '__generated__/defaultLayout_unreadNotifications_Subscription.graphql';\nimport Loader from 'components/atoms/loader/loader';\nimport StickyChat from 'components/molecules/sticky-chat/sticky-chat';\nimport Footer from 'components/organisms/footer/footer';\nimport { InstallPWA } from 'components/organisms/install-pwa-modal/installPWA';\nimport MainNavigation from 'components/organisms/main-navigation/main-navigation';\nimport { useSubscriptionWithReconnect } from 'hooks/useSubscriptionWithReconnect';\nimport { FC, Suspense, useCallback, useMemo, useRef } from 'react';\nimport { isMobile, isTablet } from 'react-device-detect';\nimport { graphql, useLazyLoadQuery } from 'react-relay';\nimport { Outlet, useLocation } from 'react-router-dom';\nimport { GraphQLSubscriptionConfig } from 'relay-runtime';\nimport ErrorBoundary from 'services/error-boundary/error-boundary';\nimport './default-layout.scss';\n\nconst defaultLayout_query = graphql`\n query defaultLayout_Query {\n viewer {\n customer {\n firstName\n isCompany\n lastName\n ...notifications_fragment\n ...mainNavigation_fragment\n ...stickyChat_fragment\n }\n }\n }\n`;\n\nconst unreadNotificationsSubscriptionQuery = graphql`\n subscription defaultLayout_unreadNotifications_Subscription {\n onNotificationCountUpdatedEvent {\n viewer {\n customer {\n unreadNotificationsCount\n unreadThreadCount\n ...notifications_fragment\n }\n }\n }\n }\n`;\n\ntype refreshType = {\n fetchKey: number;\n fetchPolicy: 'network-only';\n networkCacheConfig: { force: boolean };\n};\n\nconst DefaultLayout: FC = () => {\n const refreshedQueryOptions = useRef<refreshType>({\n fetchKey: 0,\n fetchPolicy: 'network-only',\n networkCacheConfig: { force: true },\n });\n\n const data = useLazyLoadQuery<defaultLayout_Query>(defaultLayout_query, {}, refreshedQueryOptions.current);\n\n const { pathname } = useLocation();\n\n const refresh = useCallback(() => {\n refreshedQueryOptions.current = {\n ...refreshedQueryOptions.current,\n fetchKey: refreshedQueryOptions.current.fetchKey + 1,\n };\n }, []);\n\n const notificationSubscriptionConfig: GraphQLSubscriptionConfig<defaultLayout_unreadNotifications_Subscription> =\n useMemo(\n () => ({\n subscription: unreadNotificationsSubscriptionQuery,\n variables: {},\n onNext: () => {\n refresh();\n },\n }),\n [refresh],\n );\n\n useSubscriptionWithReconnect(notificationSubscriptionConfig);\n\n const initials = useMemo(() => {\n if (!data.viewer) return null;\n\n if (data.viewer.customer?.isCompany) {\n return data.viewer.customer?.firstName?.charAt(0).toUpperCase();\n } else {\n return `${data.viewer.customer?.firstName?.charAt(0).toUpperCase()}${data.viewer.customer?.lastName\n ?.charAt(0)\n .toUpperCase()}`;\n }\n }, [data.viewer]);\n\n const customer = useMemo(() => {\n if (!data.viewer) return null;\n\n return data.viewer.customer;\n }, [data.viewer]);\n\n if (!customer || !initials) {\n return null;\n }\n\n return (\n <ErrorBoundary>\n <div className=\"defaultLayout\">\n <MainNavigation fragment={customer} initials={initials} />\n <main className=\"defaultLayout__main\">\n <ErrorBoundary>\n <Suspense fallback={<Loader />}>\n {(isMobile || isTablet) && <InstallPWA />}\n\n <div id=\"app-outlet\">\n <Outlet />\n <StickyChat fragment={customer} />\n </div>\n </Suspense>\n </ErrorBoundary>\n </main>\n {!pathname.includes('messages') && <Footer />}\n </div>\n </ErrorBoundary>\n );\n};\n\nexport default DefaultLayout;\n","import {\n CacheConfig,\n Environment,\n GraphQLResponseWithData,\n Network,\n Observable,\n QueryResponseCache,\n RecordSource,\n RequestParameters,\n RequiredFieldLogger,\n Store,\n UploadableMap,\n Variables,\n} from 'relay-runtime';\nimport { GraphQLResponse } from 'relay-runtime/lib/network/RelayNetworkTypes';\n\nimport { authenticationService } from 'services/authentication/authentication-service';\nimport { SignalrConnection } from './signalr-connection';\n\nconst cache = new QueryResponseCache({ size: 25, ttl: 10000 });\nlet _clientId = 0;\n\nfunction createGraphQLQueryFetcher(endpoint: string) {\n return async function createFetchGraphQLQuery(\n request: RequestParameters,\n variables: Variables,\n cacheConfig: CacheConfig,\n uploadables?: UploadableMap | null,\n ) {\n const queryId = request.name;\n const isMutation = request.operationKind === 'mutation';\n const isQuery = request.operationKind === 'query';\n const cachedData = cache.get(queryId, variables);\n\n const isImpersonated = !!authenticationService?.idTokenParsed?.impersonator;\n if (isMutation && isImpersonated) {\n return;\n }\n\n if (\n !cacheConfig?.force &&\n (cachedData as GraphQLResponseWithData)?.data &&\n !(cachedData as GraphQLResponseWithData)?.errors\n ) {\n return cachedData;\n }\n\n const query = JSON.stringify({\n operationName: request.name,\n query: request.text,\n variables,\n });\n\n let body: FormData | string | null = null;\n let headers: any = null;\n\n if (uploadables) {\n const formData = new FormData();\n for (const uploadable of Object.values(uploadables)) {\n formData.append('files[]', uploadable);\n }\n formData.append('query', query);\n body = formData;\n headers = {};\n } else {\n body = query;\n headers = { 'Content-Type': 'application/json' };\n }\n const token = await authenticationService.tokenAsync();\n\n const response = await fetch(endpoint, {\n body,\n credentials: 'include',\n headers: {\n Authorization: `Bearer ${token}`,\n ...headers,\n },\n method: 'POST',\n });\n\n if (!response.ok) {\n throw Error(response.statusText);\n }\n\n const json = await response.json();\n\n if (isQuery && json.data && !json.errors && !uploadables) {\n cache.set(queryId, variables, json);\n }\n\n // Clear cache on mutations\n if (isMutation) {\n cache.clear();\n }\n\n if (json?.errors) {\n return {\n data: null,\n errors: json.errors,\n };\n }\n\n return json;\n };\n}\n\nexport function createRelayEnvironmentInstance(endpoint: string, connection: SignalrConnection) {\n const subscribe = (request: RequestParameters, variables: Variables) => {\n const clientId = _clientId++;\n\n const observable = Observable.create<GraphQLResponse>((sink) => {\n connection.on('onOperation', (...payload: any[]) => sink.next(payload.map((x) => x.payload)));\n\n connection.invoke('Subscribe', {\n id: clientId,\n payload: {\n operationName: request.name,\n query: request.text,\n variables,\n },\n type: 'start',\n });\n });\n\n const observableWithUnsubscribe = observable.finally(() => {\n connection.invoke('Subscribe', {\n id: clientId,\n type: 'stop',\n });\n });\n\n return observableWithUnsubscribe;\n };\n\n const network = Network.create(createGraphQLQueryFetcher(endpoint), subscribe);\n\n const source = new RecordSource();\n const store = new Store(source);\n const handlerProvider = null;\n const requiredFieldLogger: RequiredFieldLogger = (e) => console.error(e);\n\n const environment = new Environment({\n handlerProvider,\n network,\n store,\n requiredFieldLogger,\n });\n\n return environment;\n}\n","import { FunctionComponent, ReactNode, useMemo } from 'react';\nimport { IntlProvider as ReactIntlProvider } from 'react-intl';\nimport messages_da from './locales/da.json';\nimport messages_da_agent from './locales/da-agent.json';\nimport messages_da_kartotek from './locales/da-kartotek.json';\nimport messages_da_kartotek_heading from './locales/da-kartotek-heading.json';\nimport messages_da_ejendom from './locales/da-ejendom.json';\nimport messages_da_bygning from './locales/da-bygning.json';\nimport messages_da_boligoensker from './locales/da-boligoensker.json';\nimport messages_da_ejendomsoensker from './locales/da-ejendomoensker.json';\n\ntype Props = {\n locale: string;\n translationVariants: string[];\n children: ReactNode;\n};\n\ntype TranslationFileType = Record<string, string>;\n\nconst languageMapping: Record<string, TranslationFileType> = {\n agent: messages_da_agent,\n kartotek: messages_da_kartotek,\n 'kartotek-heading': messages_da_kartotek_heading,\n bygning: messages_da_bygning,\n ejendom: messages_da_ejendom,\n boligoensker: messages_da_boligoensker,\n ejendomsoensker: messages_da_ejendomsoensker,\n};\nconst danishDefaultTranslations: TranslationFileType = messages_da;\n\nexport const IntlProvider: FunctionComponent<Props> = (props) => {\n const intlProviderMessages = useMemo(() => {\n let baseTranslations = { ...danishDefaultTranslations };\n\n if (props.translationVariants.length > 0) {\n props.translationVariants.forEach((variant) => {\n if (!variant) return;\n const mappedTranslation = languageMapping[variant] ?? {};\n baseTranslations = { ...baseTranslations, ...mappedTranslation };\n });\n }\n return baseTranslations;\n }, [props.translationVariants]);\n\n return (\n <ReactIntlProvider locale={props.locale} messages={intlProviderMessages}>\n {props.children}\n </ReactIntlProvider>\n );\n};\n","import { ToastContainer } from 'react-toastify';\nimport './top-level-toast-container.scss';\n\nexport const TopLevelToastContainer = () => {\n return (\n <ToastContainer\n position=\"bottom-right\"\n autoClose={5000}\n hideProgressBar={false}\n newestOnTop={false}\n closeOnClick\n rtl={false}\n pauseOnFocusLoss\n draggable\n pauseOnHover\n theme=\"light\"\n />\n );\n};\n","import { createContext, ReactNode, useContext, useEffect, useState } from 'react';\nimport Bowser from 'bowser';\n\ntype Props = {\n children: ReactNode;\n};\n\ntype DisplayMode = 'browser' | 'standalone';\n\ninterface InfoType extends Bowser.Parser.ParsedResult {\n isRunningPWA: boolean;\n}\n\nconst UserDeviceContext = createContext<null | InfoType>(null);\n\nconst UserDeviceProvider = (providerProps: Props) => {\n const [displayMode, setDisplayMode] = useState<'browser' | 'standalone'>('browser');\n\n useEffect(() => {\n let displayMode: DisplayMode = 'browser';\n const mqStandAlone = '(display-mode: standalone)';\n if ('standalone' in navigator || window.matchMedia(mqStandAlone).matches) {\n displayMode = 'standalone';\n }\n setDisplayMode(displayMode);\n\n window.matchMedia('(display-mode: standalone)').addEventListener('change', (evt) => {\n let displayMode: DisplayMode = 'browser';\n if ('standalone' in navigator || evt.matches) {\n displayMode = 'standalone';\n }\n setDisplayMode(displayMode);\n });\n }, []);\n\n const browserInfo = Bowser.parse(navigator.userAgent);\n const info = {\n ...browserInfo,\n isRunningPWA: displayMode === 'standalone',\n };\n\n return <UserDeviceContext.Provider value={info}>{providerProps.children}</UserDeviceContext.Provider>;\n};\n\nexport default UserDeviceProvider;\n\nexport const useUserDevice = () => useContext(UserDeviceContext);\n","import Loader from 'components/atoms/loader/loader';\nimport { AppSettings } from 'configs/app-settings-defaults';\nimport { ThemeContext } from './context/ThemeContext';\nimport ViewerProvider from 'app/contexts/viewerContext';\nimport DefaultLayout from './layouts/default-layout';\nimport { Suspense } from 'react';\nimport { Helmet } from 'react-helmet';\nimport { RelayEnvironmentProvider } from 'react-relay/hooks';\nimport { Route, RouterProvider, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';\nimport { mainAppRoutes } from './router/routes-setup';\nimport ErrorBoundary from 'services/error-boundary/error-boundary';\nimport { createRelayEnvironmentInstance } from 'services/relay/relay-environment';\nimport { createSignalrConnectionInstance } from 'services/relay/signalr-connection';\nimport { SignalrConnectionProvider } from 'services/relay/signalr-connection-provider';\nimport { IntlProvider } from 'services/translations/IntlProvider';\nimport 'styles/_app.scss';\nimport { TopLevelToastContainer } from 'components/molecules/top-level-toast-container/top-level-toast-container';\nimport { MixPanelProvider } from './mixpanel/MixPanelProvider';\nimport UserDeviceProvider from './contexts/userDeviceContext';\nimport RelayModernEnvironment from 'relay-runtime/lib/store/RelayModernEnvironment';\n\nconst AppRoot = (props: AppSettings) => {\n const signalrConnectionInstance = createSignalrConnectionInstance(props.settings.ENDPOINT_SIGNALR);\n const relayEnvironmentInstance = createRelayEnvironmentInstance(\n props.settings.ENDPOINT_GRAPHQL,\n signalrConnectionInstance,\n );\n\n return (\n <ThemeContext.Provider value={props.theme}>\n <MixPanelProvider token={props.settings.MIXPANEL_TOKEN ?? ''}>\n <Helmet>\n <link href={props.theme?.favIcon32} rel=\"icon\" sizes=\"32x32\" type=\"image/png\" />\n <link href={props.theme?.favIcon16} rel=\"icon\" sizes=\"16x16\" type=\"image/png\" />\n <link href={props.theme?.appleTouchIcon} rel=\"apple-touch-icon\" sizes=\"180x180\" />\n <title>{props.theme?.websiteTitle}</title>\n </Helmet>\n <IntlProvider translationVariants={props.settings.TRANSLATION_VARIANTS ?? ''} locale={props.settings.LOCALE}>\n <ErrorBoundary>\n <UserDeviceProvider>\n <SignalrConnectionProvider connection={signalrConnectionInstance}>\n <RelayEnvironmentProvider environment={relayEnvironmentInstance as RelayModernEnvironment}>\n <ViewerProvider>\n <Suspense fallback={<Loader />}>\n <App />\n <TopLevelToastContainer />\n </Suspense>\n </ViewerProvider>\n </RelayEnvironmentProvider>\n </SignalrConnectionProvider>\n </UserDeviceProvider>\n </ErrorBoundary>\n </IntlProvider>\n </MixPanelProvider>\n </ThemeContext.Provider>\n );\n};\n\nconst App = () => {\n const routesSetup = createBrowserRouter(\n createRoutesFromElements(\n <Route element={<DefaultLayout />} path=\"/\">\n {mainAppRoutes.map((route) => (\n <Route key={route.path} element={route.component} path={route.path}>\n <Route element={route.subRoute?.component} path={route.subRoute?.path} />\n </Route>\n ))}\n </Route>,\n ),\n );\n\n return <RouterProvider router={routesSetup} />;\n};\n\nexport default AppRoot;\n","import ReactDOM from 'react-dom/client';\nimport AppRoot from 'app/AppRoot';\nimport { AppSettings } from 'configs/app-settings-defaults';\n\nconst root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement);\n\nexport const initReactApp = (config: AppSettings) => {\n root.render(\n // <React.StrictMode>\n <AppRoot {...config} />,\n // </React.StrictMode>\n );\n};\n","import './index.css';\nimport reportWebVitals from './reportWebVitals';\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\nimport { createAuthenticationService } from './services/authentication/authentication-service';\nimport { initAppSettings } from './setup/setup-app-settings';\nimport { initReactApp } from './setup/setup-react-app';\n\nasync function initialize() {\n try {\n const appSettings = await initAppSettings();\n const {\n settings: { HTML_DOCUMENT_TITLE, AUTH_CLIENT_ID, AUTH_REALM, AUTH_URL },\n } = appSettings;\n\n document.title = HTML_DOCUMENT_TITLE;\n\n const authenticationService = createAuthenticationService({\n clientId: AUTH_CLIENT_ID,\n realm: AUTH_REALM,\n url: AUTH_URL,\n });\n\n await authenticationService.init();\n\n initReactApp(appSettings);\n } catch (e) {\n console.error(e);\n }\n}\ninitialize();\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://cra.link/PWA\nserviceWorkerRegistration.register();\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if ('serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(import.meta.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${import.meta.env.PUBLIC_URL}/service-worker.js`;\n registerValidSW(swUrl, config);\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // Execute callback\n if (config?.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // Execute callback\n if (config?.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import Keycloak, { KeycloakConfig, KeycloakInitOptions } from 'keycloak-js';\n\nclass AuthenticationService {\n minValidity = 15;\n updateTokenTimeoutId: number | null = null;\n keycloak: Keycloak;\n\n constructor(config: KeycloakConfig) {\n this.keycloak = new Keycloak(config);\n this.keycloak.onTokenExpired = this.handleUpdateToken;\n this.keycloak.onAuthRefreshError = this.handleAuthRefreshError;\n }\n\n clearUpdateTokenTimeoutId = () => {\n window.removeEventListener('online', this.handleUpdateToken);\n if (this.updateTokenTimeoutId) {\n clearTimeout(this.updateTokenTimeoutId);\n this.updateTokenTimeoutId = null;\n }\n };\n\n handleUpdateToken = () => {\n this.clearUpdateTokenTimeoutId();\n this.keycloak.updateToken(this.minValidity);\n };\n\n handleAuthRefreshError = () => {\n this.clearUpdateTokenTimeoutId();\n\n if (!navigator.onLine) {\n console.error(`AuthRefreshError: navigator.onLine = ${navigator.onLine} wait for online event`);\n window.addEventListener('online', this.handleUpdateToken);\n } else {\n this.updateTokenTimeoutId = window.setTimeout(this.handleUpdateToken, 10000);\n }\n };\n\n init(\n options: KeycloakInitOptions = {\n enableLogging: false,\n onLoad: 'login-required',\n },\n ) {\n return this.keycloak.init({ ...options, pkceMethod: 'S256' });\n }\n\n login() {\n this.keycloak.login();\n }\n\n logout() {\n let pathname = window.location.pathname;\n if (pathname !== '' && pathname[0] !== '/') {\n pathname = `/${pathname}`;\n }\n this.keycloak.logout({ redirectUri: window.location.origin + pathname });\n }\n\n get isTokenExpired() {\n return this.keycloak.isTokenExpired(this.minValidity);\n }\n\n get idTokenParsed() {\n return this.keycloak.idTokenParsed;\n }\n\n updateToken() {\n return this.keycloak.updateToken(this.minValidity);\n }\n\n loadUserProfile() {\n return this.keycloak.loadUserProfile();\n }\n\n loadUserInfo() {\n return this.keycloak.loadUserInfo();\n }\n\n tokenOrError() {\n if (!this.keycloak.token) {\n throw new Error('keycloak token is undefined');\n }\n return this.keycloak.token;\n }\n\n tokenAsync() {\n if (this.keycloak.isTokenExpired(this.minValidity)) {\n return this.updateToken().then(() => this.tokenOrError());\n } else {\n return Promise.resolve(this.tokenOrError());\n }\n }\n\n addTokenToUrl(originalUrl: string | undefined) {\n if (!originalUrl) return '';\n\n const url = new URL(originalUrl);\n url.searchParams.set('access_token', this.tokenOrError());\n\n return url.toString();\n }\n}\n\nexport let authenticationService: AuthenticationService;\n\nexport function createAuthenticationService({ clientId, realm, url }: KeycloakConfig) {\n authenticationService = new AuthenticationService({ clientId, realm, url });\n return authenticationService;\n}\n","import { authenticationService } from 'services/authentication/authentication-service';\nimport { appSettings } from '../../../src/setup/setup-app-settings';\n\n// generate string of <length> hex numbers, e.g. \"a4ed1db61c38\"\nfunction getErrorId(hexLength = 6) {\n const random = window.crypto.getRandomValues(new Uint8Array(hexLength));\n\n let id = '';\n for (const r of random) {\n id += r.toString(16).padStart(2, '0');\n }\n\n return id;\n}\n\nasync function send(body: string) {\n const token = await authenticationService.tokenAsync();\n return fetch(appSettings.settings.ENDPOINT_LOGPROXY, {\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n body,\n method: 'POST',\n credentials: 'include',\n })\n .then((response) => response.text())\n .catch((error) => {\n if (error) console.error(error);\n });\n}\n\ninterface ErrorInfo {\n message: string;\n stack?: string;\n componentStack?: string;\n}\n\nasync function sendErrorToServer({ message, stack, componentStack }: ErrorInfo) {\n return await _sendToServer({\n logLevel: 'Error',\n message,\n stack,\n componentStack,\n });\n}\n\nasync function _sendToServer({ logLevel, message, stack = '', componentStack = '' }: ErrorInfo & { logLevel: string }) {\n const errorId = getErrorId();\n\n const body = JSON.stringify({\n clientId: appSettings.settings.AUTH_CLIENT_ID,\n clientVersion: appSettings.settings.CLIENT_VERSION,\n componentStack,\n errorId,\n gitBranch: appSettings.settings.CI_COMMIT_REF_NAME,\n gitSha: appSettings.settings.CI_COMMIT_SHA,\n gitTag: appSettings.settings.CI_COMMIT_TAG,\n message,\n stack,\n timestamp: new Date().toISOString(),\n url: window.location.href,\n userAgent: window.navigator.userAgent,\n logLevel: logLevel,\n });\n\n await send(body);\n\n return errorId;\n}\n\nexport { sendErrorToServer };\n","/**\n * @generated SignedSource<<6950478e97e02c98b00eb97457db19ac>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nexport type markNotificationAsRead_Mutation$variables = {\n input: string;\n};\nexport type markNotificationAsRead_Mutation$data = {\n readonly markNotificationAsRead: {\n readonly updatedObject: {\n readonly id: string;\n readonly read: boolean;\n } | null | undefined;\n } | null | undefined;\n};\nexport type markNotificationAsRead_Mutation = {\n response: markNotificationAsRead_Mutation$data;\n variables: markNotificationAsRead_Mutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"notificationId\",\n \"variableName\": \"input\"\n }\n],\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"read\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"markNotificationAsRead_Mutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"NotificationInterfaceUpdatedPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"markNotificationAsRead\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"updatedObject\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Mutation\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"markNotificationAsRead_Mutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"NotificationInterfaceUpdatedPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"markNotificationAsRead\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"updatedObject\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n (v2/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"e4e82cb3fea401e81b4ef61fe67fb277\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"markNotificationAsRead_Mutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation markNotificationAsRead_Mutation(\\n $input: ID!\\n) {\\n markNotificationAsRead(notificationId: $input) {\\n updatedObject {\\n __typename\\n id\\n read\\n }\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"8edfd329e55c17f864c69835e918af4c\";\n\nexport default node;\n","import { graphql } from 'react-relay';\n\nexport const markNotificationAsReadMutation = graphql`\n mutation markNotificationAsRead_Mutation($input: ID!) {\n markNotificationAsRead(notificationId: $input) {\n updatedObject {\n id\n read\n }\n }\n }\n`;\n","/**\n * @generated SignedSource<<5fdaea7a72c99bb62a3e6b5df46edfa3>>\n * @lightSyntaxTransform\n * @nogrep\n */\n\n/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest, Mutation } from 'relay-runtime';\nimport { FragmentRefs } from \"relay-runtime\";\nexport type MatchProfileStatus = \"Favorite\" | \"None\" | \"Removed\" | \"Selected\";\nexport type UpdateSearchProfileMatchedCaseInput = {\n id: string;\n status: MatchProfileStatus;\n};\nexport type updateSearchProfileMatchedCase_Mutation$variables = {\n input: UpdateSearchProfileMatchedCaseInput;\n};\nexport type updateSearchProfileMatchedCase_Mutation$data = {\n readonly updateSearchProfileMatchedCase: {\n readonly errors: ReadonlyArray<{\n readonly message: string | null | undefined;\n } | null | undefined> | null | undefined;\n readonly updatedObject: {\n readonly \" $fragmentSpreads\": FragmentRefs<\"matchCardFragment\">;\n } | null | undefined;\n } | null | undefined;\n};\nexport type updateSearchProfileMatchedCase_Mutation = {\n response: updateSearchProfileMatchedCase_Mutation$data;\n variables: updateSearchProfileMatchedCase_Mutation$variables;\n};\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n],\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"message\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv4 = {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"first\",\n \"value\": 5\n }\n ],\n \"concreteType\": \"MediaDataConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"mediaDataConnection\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"MediaDataEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Media\",\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"resourceType\",\n \"value\": \"Presentation\"\n }\n ],\n \"kind\": \"ScalarField\",\n \"name\": \"resourceUrl\",\n \"storageKey\": \"resourceUrl(resourceType:\\\"Presentation\\\")\"\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": \"mediaDataConnection(first:5)\"\n},\nv5 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"propertyType\",\n \"storageKey\": null\n},\nv6 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"zipCode\",\n \"storageKey\": null\n},\nv7 = [\n (v5/*: any*/),\n (v6/*: any*/)\n],\nv8 = {\n \"alias\": \"businessPropertyType\",\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"propertyType\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"updateSearchProfileMatchedCase_Mutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"SearchProfileMatchedCaseUpdatedPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"updateSearchProfileMatchedCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Error\",\n \"kind\": \"LinkedField\",\n \"name\": \"errors\",\n \"plural\": true,\n \"selections\": [\n (v2/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SearchProfileMatchedCase\",\n \"kind\": \"LinkedField\",\n \"name\": \"updatedObject\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"matchCardFragment\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Mutation\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"updateSearchProfileMatchedCase_Mutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"SearchProfileMatchedCaseUpdatedPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"updateSearchProfileMatchedCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Error\",\n \"kind\": \"LinkedField\",\n \"name\": \"errors\",\n \"plural\": true,\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SearchProfileMatchedCase\",\n \"kind\": \"LinkedField\",\n \"name\": \"updatedObject\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"status\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"highlightStatus\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"baseCase\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"amount\",\n \"value\": 1\n }\n ],\n \"concreteType\": \"OpenHouse\",\n \"kind\": \"LinkedField\",\n \"name\": \"openHouse\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ActivityType\",\n \"kind\": \"LinkedField\",\n \"name\": \"activityType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"nameOnTimeline\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isRegistration\",\n \"storageKey\": null\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"startDate\",\n \"storageKey\": null\n },\n (v3/*: any*/)\n ],\n \"storageKey\": \"openHouse(amount:1)\"\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"noAdvertisement\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"gpsCoordinates\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"address\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"city\",\n \"storageKey\": null\n },\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"BaseCaseMainOffer\",\n \"kind\": \"LinkedField\",\n \"name\": \"baseCaseMainOffer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"cashPrice\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n (v4/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"CaseAreas\",\n \"kind\": \"LinkedField\",\n \"name\": \"caseAreas\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"livableArea\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"plotAreaSum\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v7/*: any*/),\n \"type\": \"SalesCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v7/*: any*/),\n \"type\": \"RectifyCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v7/*: any*/),\n \"type\": \"CounselingPropertyCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v7/*: any*/),\n \"type\": \"RentalCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v7/*: any*/),\n \"type\": \"CounselingCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v8/*: any*/),\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"floorAreaTotal\",\n \"storageKey\": null\n }\n ],\n \"type\": \"BusinessSalesCase\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v8/*: any*/),\n (v6/*: any*/)\n ],\n \"type\": \"BusinessRentalCase\",\n \"abstractKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"OffmarketCase\",\n \"kind\": \"LinkedField\",\n \"name\": \"offmarketCase\",\n \"plural\": false,\n \"selections\": [\n (v5/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"businessPropertyType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caseDescriptionHeading\",\n \"storageKey\": null\n },\n (v4/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"01d314da24b8d78a151ac1848fbd2740\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"updateSearchProfileMatchedCase_Mutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation updateSearchProfileMatchedCase_Mutation(\\n $input: UpdateSearchProfileMatchedCaseInput!\\n) {\\n updateSearchProfileMatchedCase(input: $input) {\\n errors {\\n message\\n id\\n }\\n updatedObject {\\n ...matchCardFragment\\n id\\n }\\n }\\n}\\n\\nfragment matchCardFragment on SearchProfileMatchedCase {\\n id\\n status\\n highlightStatus\\n baseCase {\\n __typename\\n openHouse(amount: 1) {\\n activityType {\\n nameOnTimeline\\n isRegistration\\n id\\n }\\n startDate\\n id\\n }\\n noAdvertisement\\n gpsCoordinates\\n address\\n city\\n id\\n baseCaseMainOffer {\\n cashPrice\\n }\\n mediaDataConnection(first: 5) {\\n edges {\\n node {\\n resourceUrl(resourceType: Presentation)\\n id\\n }\\n }\\n }\\n caseAreas {\\n livableArea\\n plotAreaSum\\n }\\n ... on SalesCase {\\n propertyType\\n zipCode\\n }\\n ... on RectifyCase {\\n propertyType\\n zipCode\\n }\\n ... on CounselingPropertyCase {\\n propertyType\\n zipCode\\n }\\n ... on RentalCase {\\n propertyType\\n zipCode\\n }\\n ... on CounselingCase {\\n propertyType\\n zipCode\\n }\\n ... on BusinessSalesCase {\\n businessPropertyType: propertyType\\n zipCode\\n floorAreaTotal\\n }\\n ... on BusinessRentalCase {\\n businessPropertyType: propertyType\\n zipCode\\n }\\n }\\n offmarketCase {\\n propertyType\\n businessPropertyType\\n caseDescriptionHeading\\n mediaDataConnection(first: 5) {\\n edges {\\n node {\\n resourceUrl(resourceType: Presentation)\\n id\\n }\\n }\\n }\\n id\\n }\\n}\\n\"\n }\n};\n})();\n\n(node as any).hash = \"1ff4cbafe9f089bdc50eeae7ab97ac1a\";\n\nexport default node;\n","import { graphql } from 'react-relay';\n\nexport const updateSearchProfileMatchedCase = graphql`\n mutation updateSearchProfileMatchedCase_Mutation($input: UpdateSearchProfileMatchedCaseInput!) {\n updateSearchProfileMatchedCase(input: $input) {\n errors {\n message\n }\n updatedObject {\n ...matchCardFragment\n }\n }\n }\n`;\n","import React from 'react';\nimport { SignalrConnection } from 'services/relay/signalr-connection';\n\nexport const SignalrConnectionContext = React.createContext<SignalrConnection | null>(null);\n","import { SignalrConnectionContext } from 'app/context/SignalrConnectionContext';\nimport { ReactNode, useContext, useEffect, useState } from 'react';\nimport { SignalrConnection, SignalrConnectionStateEnum } from './signalr-connection';\n\ninterface Props {\n children: ReactNode;\n connection: SignalrConnection;\n}\n\nconst SignalrConnectionProvider = ({ children, connection }: Props) => (\n <SignalrConnectionContext.Provider value={connection}>{children}</SignalrConnectionContext.Provider>\n);\n\nconst useSignalrConnection = (): [SignalrConnectionStateEnum, SignalrConnection | null] => {\n const connection = useContext(SignalrConnectionContext);\n\n const [connectionState, setConnectionState] = useState<SignalrConnectionStateEnum>(\n SignalrConnectionStateEnum.Disconnected,\n );\n\n useEffect(() => {\n const subscription = connection?.state.subscribe({\n next: (val) => {\n setConnectionState(val);\n },\n });\n\n return () => subscription?.unsubscribe();\n }, [connection]);\n\n return [connectionState, connection];\n};\n\nexport { SignalrConnectionProvider, useSignalrConnection };\n","import {\n HttpTransportType,\n HubConnectionBuilder,\n HubConnectionState,\n IRetryPolicy,\n LogLevel,\n} from '@microsoft/signalr';\nimport { Observable } from 'relay-runtime';\nimport { authenticationService } from 'services/authentication/authentication-service';\n\nexport enum SignalrConnectionStateEnum {\n Connected = 'Connected',\n Disconnected = 'Disconnected',\n}\n\nexport interface SignalrConnection {\n invoke: (name: string, ...args: unknown[]) => Promise<unknown>;\n off: (name: string, fn: (...args: unknown[]) => unknown) => void;\n on: (name: string, fn: (...args: unknown[]) => unknown) => () => void;\n onReconnected: (f: (...args: unknown[]) => unknown) => () => ((...args: unknown[]) => unknown)[];\n state: Observable<SignalrConnectionStateEnum>;\n}\n\nconst defaultReconnectPolicy: IRetryPolicy = {\n nextRetryDelayInMilliseconds: () => 5000,\n};\n\nfunction createSignalrConnectionInstance(\n endpoint: string,\n reconnectPolicy: IRetryPolicy = defaultReconnectPolicy,\n startRetryTimeout = 5000,\n): SignalrConnection {\n let pendingInvokes: [string, unknown[]][] = [];\n let reconnectedListeners: ((...args: unknown[]) => unknown)[] = [];\n\n const connection = new HubConnectionBuilder()\n .withUrl(endpoint, {\n accessTokenFactory: () => authenticationService.tokenAsync(),\n skipNegotiation: true,\n transport: HttpTransportType.WebSockets,\n })\n .withAutomaticReconnect(reconnectPolicy)\n .configureLogging(LogLevel.Warning)\n .build();\n\n function start(startRetryCount = 0): Promise<SignalrConnectionStateEnum> {\n return connection\n .start()\n .then(() => SignalrConnectionStateEnum.Connected)\n .catch((error) => {\n console.error(error);\n return new Promise<SignalrConnectionStateEnum>((resolve) =>\n setTimeout(() => resolve(start(startRetryCount + 1)), startRetryTimeout),\n );\n });\n }\n\n // call start() and maintain stream of connection state\n const state = Observable.from(SignalrConnectionStateEnum.Disconnected)\n .concat(Observable.from(start()))\n .concat(\n Observable.create<SignalrConnectionStateEnum>((sink) => {\n connection.onreconnecting((error) => {\n if (error) console.error(error);\n sink.next(SignalrConnectionStateEnum.Disconnected);\n });\n connection.onreconnected(() => {\n handleReconnected();\n sink.next(SignalrConnectionStateEnum.Connected);\n });\n connection.onclose((error) => {\n if (error) console.error(error);\n sink.next(SignalrConnectionStateEnum.Disconnected);\n sink.complete();\n });\n }),\n );\n\n function handleReconnected() {\n reconnectedListeners.forEach((f) => f());\n\n pendingInvokes.forEach(async (pending) => await invoke(pending[0], ...pending[1]));\n pendingInvokes = [];\n }\n\n function onReconnected(f: (...args: unknown[]) => unknown) {\n reconnectedListeners.push(f);\n // biome-ignore lint/suspicious/noAssignInExpressions: <explanation>\n return () => (reconnectedListeners = reconnectedListeners.filter((x) => x !== f)); // dispose\n }\n\n function isConnected() {\n return connection.state === HubConnectionState.Connected;\n }\n\n async function invoke(name: string, ...args: unknown[]) {\n if (isConnected()) {\n try {\n const res = await connection.invoke(name, ...args);\n return res;\n } catch (error) {\n console.error(error);\n throw error;\n }\n } else {\n pendingInvokes.push([name, args]);\n }\n }\n\n return {\n invoke,\n off: (name: string, fn: (...args: unknown[]) => unknown) => connection.off(name, fn),\n on: (name: string, fn: (...args: unknown[]) => unknown) => {\n connection.on(name, fn);\n return () => connection.off(name, fn); // off\n },\n onReconnected,\n state,\n };\n}\n\nexport { createSignalrConnectionInstance };\n","import { AppSettings, appSettingsDefaults } from 'configs/app-settings-defaults';\nimport { loadThemeConfig } from './setup-theme';\nconst APPSETTINGS_JSON = `${process.env.PUBLIC_URL}/appsettings.json?v=${Date.now()}`;\n\nexport const loadAppConfig = async () => {\n try {\n const resp = await fetch(APPSETTINGS_JSON, {\n credentials: 'same-origin',\n });\n if (!resp.ok) {\n throw new Error('Could not fetch settings');\n }\n return resp.json();\n } catch (error) {\n console.error('Initialization failed', error);\n }\n};\n\nlet appSettings: AppSettings;\n\nasync function initAppSettings(): Promise<AppSettings> {\n const loadedSettings = await loadAppConfig();\n const settings = { ...appSettingsDefaults, ...loadedSettings };\n\n const theme = await loadThemeConfig(settings.THEME_URL);\n\n appSettings = {\n settings,\n theme,\n };\n\n return appSettings;\n}\n\nexport { appSettings, initAppSettings };\n","import { AppTheme } from 'configs/app-theme-defaults';\n\nexport const appSettingsDefaults = {\n ENDPOINT_GRAPHQL: 'https://stagent.mindworking.eu/api/mypage2/graphql',\n ENDPOINT_SIGNALR: 'https://stagent.mindworking.eu/api/realtime/mypage',\n ENDPOINT_LOGPROXY: 'https://stagent.mindworking.eu/api/logproxy/',\n HTML_DOCUMENT_TITLE: '...',\n THEME_URL: '/theme/test-theme.json',\n AUTH_CLIENT_ID: 'mw-mypage2',\n AUTH_REALM: 'stagent-customer',\n AUTH_URL: 'https://keycloaktest.mindworking.eu/auth',\n CLIENT_VERSION: '',\n CI_COMMIT_REF_NAME: '',\n CI_COMMIT_SHA: '',\n CI_COMMIT_TAG: '',\n LOCALE: 'da',\n TRANSLATION_VARIANTS: [],\n IS_SINGLE_FEATURE_TOGGLE_ACTIVE: false,\n PHONE_NUMBER_IS_MANDATORY: true,\n GOOGLE_MAPS_API_KEY: '',\n MIXPANEL_TOKEN: 'd99e9fa9209415e49a87a2c009236df1',\n BOOK_STATUS_LEAD_VISIBLE: false,\n};\n\nexport interface AppSettings {\n settings: typeof appSettingsDefaults;\n theme: AppTheme;\n}\n","import { AppTheme } from 'configs/app-theme-defaults';\n\nconst fetchTheme = (url: string) =>\n fetch(url)\n .then((res) => res.json())\n .then((config) => {\n return config;\n })\n .catch((e) => console.error(e));\n\nconst applyThemeConfigToDocument = (themeConfig: AppTheme) => {\n const { rootVars, assets } = themeConfig;\n if (rootVars) {\n Object.entries(rootVars).forEach(([key, value]) => {\n document.documentElement.style.setProperty(key, value);\n });\n }\n\n if (assets) {\n for (const asset in assets) {\n const cssUrls = assets[asset].cssUrls;\n if (cssUrls) {\n for (const cssUrl of cssUrls) {\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = cssUrl;\n document.head.append(link);\n }\n }\n }\n }\n};\n\nexport const loadThemeConfig = async (url: string) => {\n try {\n const config = await fetchTheme(url);\n if (config) {\n applyThemeConfigToDocument(config);\n }\n return config;\n } catch (_e) {\n return {\n theme: 'default',\n };\n }\n};\n","import { AvatarVersion } from 'components/molecules/avatar/avatar';\nimport { format } from 'date-fns';\n\nconst browserLocale = 'da-DK';\n\nexport function formatNumber(value?: number | string, unit = 'kr.', addedPlus = false) {\n // biome-ignore lint/suspicious/noDoubleEquals: I do not know which value type is passed ??\n if (value == 0) {\n return '0';\n }\n\n if (!value) {\n return '';\n }\n\n const numberVal = Number(value);\n\n const formattedNumber = Number(numberVal).toLocaleString(browserLocale);\n\n return formattedNumber + (addedPlus ? '+' : '') + (unit ? ` ${unit}` : '');\n}\n\nexport function formatDate(date: Date | string | null) {\n if (!date) return;\n if (typeof date === 'string' || date instanceof String) {\n date = new Date(date);\n }\n return format(date, 'dd.MM.yyyy');\n}\n\nexport function getMonthName(date: Date | string | null, locale: string) {\n if (!date) return;\n\n let month: string[] = [];\n\n const monthDA = ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'];\n\n const monthEN = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\n switch (locale) {\n case 'da':\n month = monthDA;\n break;\n case 'en':\n month = monthEN;\n break;\n default:\n month = monthDA;\n }\n\n if (typeof date === 'string' || date instanceof String) {\n date = new Date(date);\n }\n return month[date.getMonth()];\n}\n\nexport const formatTime = (date?: Date | string | null, typeOfFormat = 'H:mm') => {\n if (!date) return;\n if (typeof date === 'string' || date instanceof String) {\n date = new Date(date);\n }\n return format(date, typeOfFormat);\n};\n\nexport function formatQueryDate(date?: Date | string) {\n if (!date) return;\n if (typeof date === 'string' || date instanceof String) {\n date = new Date(date);\n }\n\n return format(date, 'YYY-MM-dd');\n}\n\nexport const phoneRegExp = /^[0-9]{8}$/;\n\nexport const getInitialsFromFullname = (fullName?: string | null) => {\n if (!fullName) return;\n const names = fullName?.split(' ');\n if (!names) return;\n return names[0].charAt(0) + names[names.length - 1].charAt(0);\n};\n\nexport const formatMultiPolygon = (polygon: string) =>\n polygon.replace('POLYGON ', 'MULTIPOLYGON (').replace(/(.*)/, '$1)');\n\nexport const getDatesFromRange = (startDate: Date, endDate: Date) => {\n const dates: Date[] = [];\n let currentDate = startDate;\n const addDays = (currentDate: Date, days: number) => {\n const date = new Date(currentDate.valueOf());\n date.setDate(date.getDate() + days);\n return date;\n };\n while (currentDate <= endDate) {\n dates.push(currentDate);\n currentDate = addDays(currentDate, 1);\n }\n return dates;\n};\n\nexport const formatAppointmentDate = (startDate?: string | null, endDate?: string | null) => {\n if (startDate && endDate) {\n const timeStart = formatTime(startDate);\n const timeEnd = formatTime(endDate);\n const dayStart = formatDate(startDate);\n const dayEnd = formatDate(endDate);\n\n return `d. ${dayStart !== dayEnd ? dayStart : ''} ${dayEnd} kl. ${timeStart} - ${timeEnd} `;\n }\n\n if (!startDate && endDate) {\n const timeEnd = formatTime(endDate);\n const dayEnd = formatDate(endDate);\n\n return `${dayEnd} ${timeEnd}`;\n }\n\n if (!endDate && startDate) {\n const timeStart = formatTime(startDate);\n const dayStart = formatDate(startDate);\n return `${dayStart} ${timeStart}`;\n }\n\n return '';\n};\n\nexport const getAvatarVersion = (name: string, chatParticipants: string[]) => {\n const index = chatParticipants?.indexOf(name) + 1;\n return Math.abs(index % 10) as AvatarVersion; // generate a number between 0 and 9 always\n};\n\nexport const getRelatedLink = (\n relationType?: {\n relationId?: string | null;\n relationType?: string | null;\n } | null,\n hash?: string,\n) => {\n const anchor = hash || '';\n\n if (relationType) {\n switch (relationType.relationType) {\n case 'Offer':\n return '/case/' + relationType.relationId + anchor;\n case 'MatchedCase':\n return '/match/' + relationType.relationId + anchor;\n case 'Case':\n return '/activity-case/' + relationType.relationId + anchor;\n default:\n return '';\n }\n }\n return '';\n};\n","//==============================//\n// AUTOGENERATED - DO NOT EDIT //\n//============================//\n// UPDATE BY RUNNING TYPES //\n//==========================//\n\nimport * as Types from 'Types';\nimport { useMemo } from 'react';\nimport { IntlShape, defineMessages, useIntl } from 'react-intl';\n\nconst TypeMessages: Record<string, { id: string; defaultMessage: string }> = defineMessages({\n ActivityNote: {\n id: 'Types.ActivityNote',\n defaultMessage: 'ActivityNote',\n },\n ActivityNotification: {\n id: 'Types.ActivityNotification',\n defaultMessage: 'ActivityNotification',\n },\n ActivityType: {\n id: 'Types.ActivityType',\n defaultMessage: 'ActivityType',\n },\n Address: {\n id: 'Types.Address',\n defaultMessage: 'Address',\n },\n AgricultureSearchProfile: {\n id: 'Types.AgricultureSearchProfile',\n defaultMessage: 'AgricultureSearchProfile',\n },\n AnalyticsData: {\n id: 'Types.AnalyticsData',\n defaultMessage: 'AnalyticsData',\n },\n AnalyticsReport: {\n id: 'Types.AnalyticsReport',\n defaultMessage: 'AnalyticsReport',\n },\n AnalyticsReportPercentage: {\n id: 'Types.AnalyticsReportPercentage',\n defaultMessage: 'AnalyticsReportPercentage',\n },\n AppointmentActivity: {\n id: 'Types.AppointmentActivity',\n defaultMessage: 'AppointmentActivity',\n },\n AppointmentActivityConnection: {\n id: 'Types.AppointmentActivityConnection',\n defaultMessage: 'AppointmentActivityConnection',\n },\n AppointmentActivityEdge: {\n id: 'Types.AppointmentActivityEdge',\n defaultMessage: 'AppointmentActivityEdge',\n },\n AppointmentActivityType: {\n id: 'Types.AppointmentActivityType',\n defaultMessage: 'AppointmentActivityType',\n },\n BaseCase: {\n id: 'Types.BaseCase',\n defaultMessage: 'BaseCase',\n },\n BaseCaseMainOffer: {\n id: 'Types.BaseCaseMainOffer',\n defaultMessage: 'BaseCaseMainOffer',\n },\n Building: {\n id: 'Types.Building',\n defaultMessage: 'Building',\n },\n BuildingInclArea: {\n id: 'Types.BuildingInclArea',\n defaultMessage: 'BuildingInclArea',\n },\n BusinessBuilding: {\n id: 'Types.BusinessBuilding',\n defaultMessage: 'BusinessBuilding',\n },\n BusinessCase: {\n id: 'Types.BusinessCase',\n defaultMessage: 'BusinessCase',\n },\n BusinessRentalCase: {\n id: 'Types.BusinessRentalCase',\n defaultMessage: 'BusinessRentalCase',\n },\n BusinessRentalSearchProfile: {\n id: 'Types.BusinessRentalSearchProfile',\n defaultMessage: 'BusinessRentalSearchProfile',\n },\n BusinessSaleSearchProfile: {\n id: 'Types.BusinessSaleSearchProfile',\n defaultMessage: 'BusinessSaleSearchProfile',\n },\n BusinessSalesCase: {\n id: 'Types.BusinessSalesCase',\n defaultMessage: 'BusinessSalesCase',\n },\n BusinessSalesPresentation: {\n id: 'Types.BusinessSalesPresentation',\n defaultMessage: 'BusinessSalesPresentation',\n },\n BusinessValuationCase: {\n id: 'Types.BusinessValuationCase',\n defaultMessage: 'BusinessValuationCase',\n },\n CaseAnnounced: {\n id: 'Types.CaseAnnounced',\n defaultMessage: 'CaseAnnounced',\n },\n CaseAreas: {\n id: 'Types.CaseAreas',\n defaultMessage: 'CaseAreas',\n },\n CaseMarketingCampaignStatistics: {\n id: 'Types.CaseMarketingCampaignStatistics',\n defaultMessage: 'CaseMarketingCampaignStatistics',\n },\n CasePotentialBuyer: {\n id: 'Types.CasePotentialBuyer',\n defaultMessage: 'CasePotentialBuyer',\n },\n CasePromotion: {\n id: 'Types.CasePromotion',\n defaultMessage: 'CasePromotion',\n },\n CaseRelation: {\n id: 'Types.CaseRelation',\n defaultMessage: 'CaseRelation',\n },\n ConfigurableTextSection: {\n id: 'Types.ConfigurableTextSection',\n defaultMessage: 'ConfigurableTextSection',\n },\n Consent: {\n id: 'Types.Consent',\n defaultMessage: 'Consent',\n },\n ContractOfRentInterface: {\n id: 'Types.ContractOfRentInterface',\n defaultMessage: 'ContractOfRentInterface',\n },\n ContractOfSaleBusiness: {\n id: 'Types.ContractOfSaleBusiness',\n defaultMessage: 'ContractOfSaleBusiness',\n },\n ContractOfSaleInterface: {\n id: 'Types.ContractOfSaleInterface',\n defaultMessage: 'ContractOfSaleInterface',\n },\n ContractOfSalePrivate: {\n id: 'Types.ContractOfSalePrivate',\n defaultMessage: 'ContractOfSalePrivate',\n },\n CounselingCase: {\n id: 'Types.CounselingCase',\n defaultMessage: 'CounselingCase',\n },\n CounselingPropertyCase: {\n id: 'Types.CounselingPropertyCase',\n defaultMessage: 'CounselingPropertyCase',\n },\n Country: {\n id: 'Types.Country',\n defaultMessage: 'Country',\n },\n Customer: {\n id: 'Types.Customer',\n defaultMessage: 'Customer',\n },\n CustomerAddress: {\n id: 'Types.CustomerAddress',\n defaultMessage: 'CustomerAddress',\n },\n CustomerConsent: {\n id: 'Types.CustomerConsent',\n defaultMessage: 'CustomerConsent',\n },\n CustomerContactInfo: {\n id: 'Types.CustomerContactInfo',\n defaultMessage: 'CustomerContactInfo',\n },\n CustomerEmail: {\n id: 'Types.CustomerEmail',\n defaultMessage: 'CustomerEmail',\n },\n CustomerFavoriteCaseConnection: {\n id: 'Types.CustomerFavoriteCaseConnection',\n defaultMessage: 'CustomerFavoriteCaseConnection',\n },\n CustomerFavoriteCaseEdge: {\n id: 'Types.CustomerFavoriteCaseEdge',\n defaultMessage: 'CustomerFavoriteCaseEdge',\n },\n CustomerPhone: {\n id: 'Types.CustomerPhone',\n defaultMessage: 'CustomerPhone',\n },\n Document: {\n id: 'Types.Document',\n defaultMessage: 'Document',\n },\n DocumentAccessGrantedNotification: {\n id: 'Types.DocumentAccessGrantedNotification',\n defaultMessage: 'DocumentAccessGrantedNotification',\n },\n DocumentConnection: {\n id: 'Types.DocumentConnection',\n defaultMessage: 'DocumentConnection',\n },\n DocumentEdge: {\n id: 'Types.DocumentEdge',\n defaultMessage: 'DocumentEdge',\n },\n DocumentSignature: {\n id: 'Types.DocumentSignature',\n defaultMessage: 'DocumentSignature',\n },\n DocumentSigningNotification: {\n id: 'Types.DocumentSigningNotification',\n defaultMessage: 'DocumentSigningNotification',\n },\n DocumentType: {\n id: 'Types.DocumentType',\n defaultMessage: 'DocumentType',\n },\n Employee: {\n id: 'Types.Employee',\n defaultMessage: 'Employee',\n },\n EmployeeOffer: {\n id: 'Types.EmployeeOffer',\n defaultMessage: 'EmployeeOffer',\n },\n Error: {\n id: 'Types.Error',\n defaultMessage: 'Error',\n },\n FeatureToggle: {\n id: 'Types.FeatureToggle',\n defaultMessage: 'FeatureToggle',\n },\n INotificationBadgeCount: {\n id: 'Types.INotificationBadgeCount',\n defaultMessage: 'INotificationBadgeCount',\n },\n IThreadBadgeCount: {\n id: 'Types.IThreadBadgeCount',\n defaultMessage: 'IThreadBadgeCount',\n },\n IncreasePerYear: {\n id: 'Types.IncreasePerYear',\n defaultMessage: 'IncreasePerYear',\n },\n LeadConsentGraphType: {\n id: 'Types.LeadConsentGraphType',\n defaultMessage: 'LeadConsentGraphType',\n },\n LeadContactEmployee: {\n id: 'Types.LeadContactEmployee',\n defaultMessage: 'LeadContactEmployee',\n },\n LeadInterface: {\n id: 'Types.LeadInterface',\n defaultMessage: 'LeadInterface',\n },\n LeadNotification: {\n id: 'Types.LeadNotification',\n defaultMessage: 'LeadNotification',\n },\n LeadOpenHouse: {\n id: 'Types.LeadOpenHouse',\n defaultMessage: 'LeadOpenHouse',\n },\n LeadPresentation: {\n id: 'Types.LeadPresentation',\n defaultMessage: 'LeadPresentation',\n },\n LeadSalesMaterialWithContact: {\n id: 'Types.LeadSalesMaterialWithContact',\n defaultMessage: 'LeadSalesMaterialWithContact',\n },\n LeadTypeGraphType: {\n id: 'Types.LeadTypeGraphType',\n defaultMessage: 'LeadTypeGraphType',\n },\n MarketDataCase: {\n id: 'Types.MarketDataCase',\n defaultMessage: 'MarketDataCase',\n },\n MarketDataCasePrimaryImage: {\n id: 'Types.MarketDataCasePrimaryImage',\n defaultMessage: 'MarketDataCasePrimaryImage',\n },\n MarketingCampaign: {\n id: 'Types.MarketingCampaign',\n defaultMessage: 'MarketingCampaign',\n },\n MarketingCampaignAdTimelineItem: {\n id: 'Types.MarketingCampaignAdTimelineItem',\n defaultMessage: 'MarketingCampaignAdTimelineItem',\n },\n MarketingCampaignInteraction: {\n id: 'Types.MarketingCampaignInteraction',\n defaultMessage: 'MarketingCampaignInteraction',\n },\n MarketingCampaignInteractionStatistics: {\n id: 'Types.MarketingCampaignInteractionStatistics',\n defaultMessage: 'MarketingCampaignInteractionStatistics',\n },\n MarketingCampaignInteractionsStatistics: {\n id: 'Types.MarketingCampaignInteractionsStatistics',\n defaultMessage: 'MarketingCampaignInteractionsStatistics',\n },\n MarketingCampaignLink: {\n id: 'Types.MarketingCampaignLink',\n defaultMessage: 'MarketingCampaignLink',\n },\n MarketingCampaignTotals: {\n id: 'Types.MarketingCampaignTotals',\n defaultMessage: 'MarketingCampaignTotals',\n },\n MarketingPlacementsTimeline: {\n id: 'Types.MarketingPlacementsTimeline',\n defaultMessage: 'MarketingPlacementsTimeline',\n },\n Media: {\n id: 'Types.Media',\n defaultMessage: 'Media',\n },\n MediaDataConnection: {\n id: 'Types.MediaDataConnection',\n defaultMessage: 'MediaDataConnection',\n },\n MediaDataEdge: {\n id: 'Types.MediaDataEdge',\n defaultMessage: 'MediaDataEdge',\n },\n MediaType: {\n id: 'Types.MediaType',\n defaultMessage: 'MediaType',\n },\n Message: {\n id: 'Types.Message',\n defaultMessage: 'Message',\n },\n MessageConnection: {\n id: 'Types.MessageConnection',\n defaultMessage: 'MessageConnection',\n },\n MessageEdge: {\n id: 'Types.MessageEdge',\n defaultMessage: 'MessageEdge',\n },\n MessageNotification: {\n id: 'Types.MessageNotification',\n defaultMessage: 'MessageNotification',\n },\n Mutation: {\n id: 'Types.Mutation',\n defaultMessage: 'Mutation',\n },\n MyPageMwSubscription: {\n id: 'Types.MyPageMwSubscription',\n defaultMessage: 'MyPageMwSubscription',\n },\n MyPageSpot: {\n id: 'Types.MyPageSpot',\n defaultMessage: 'MyPageSpot',\n },\n MyPageSpotEntry: {\n id: 'Types.MyPageSpotEntry',\n defaultMessage: 'MyPageSpotEntry',\n },\n Neighborhood: {\n id: 'Types.Neighborhood',\n defaultMessage: 'Neighborhood',\n },\n NeighborhoodPin: {\n id: 'Types.NeighborhoodPin',\n defaultMessage: 'NeighborhoodPin',\n },\n NeighborhoodPinConnection: {\n id: 'Types.NeighborhoodPinConnection',\n defaultMessage: 'NeighborhoodPinConnection',\n },\n NeighborhoodPinEdge: {\n id: 'Types.NeighborhoodPinEdge',\n defaultMessage: 'NeighborhoodPinEdge',\n },\n Node: {\n id: 'Types.Node',\n defaultMessage: 'Node',\n },\n NotificationInterface: {\n id: 'Types.NotificationInterface',\n defaultMessage: 'NotificationInterface',\n },\n NotificationInterfaceConnection: {\n id: 'Types.NotificationInterfaceConnection',\n defaultMessage: 'NotificationInterfaceConnection',\n },\n NotificationInterfaceEdge: {\n id: 'Types.NotificationInterfaceEdge',\n defaultMessage: 'NotificationInterfaceEdge',\n },\n Offer: {\n id: 'Types.Offer',\n defaultMessage: 'Offer',\n },\n OfferConnection: {\n id: 'Types.OfferConnection',\n defaultMessage: 'OfferConnection',\n },\n OfferEdge: {\n id: 'Types.OfferEdge',\n defaultMessage: 'OfferEdge',\n },\n OfferPriceHistory: {\n id: 'Types.OfferPriceHistory',\n defaultMessage: 'OfferPriceHistory',\n },\n OffmarketCase: {\n id: 'Types.OffmarketCase',\n defaultMessage: 'OffmarketCase',\n },\n OpenHouse: {\n id: 'Types.OpenHouse',\n defaultMessage: 'OpenHouse',\n },\n OpenHouseOnFavoriteCaseNotification: {\n id: 'Types.OpenHouseOnFavoriteCaseNotification',\n defaultMessage: 'OpenHouseOnFavoriteCaseNotification',\n },\n OwnerCost: {\n id: 'Types.OwnerCost',\n defaultMessage: 'OwnerCost',\n },\n PageInfo: {\n id: 'Types.PageInfo',\n defaultMessage: 'PageInfo',\n },\n ParticipantIdentity: {\n id: 'Types.ParticipantIdentity',\n defaultMessage: 'ParticipantIdentity',\n },\n Person: {\n id: 'Types.Person',\n defaultMessage: 'Person',\n },\n Portfolio: {\n id: 'Types.Portfolio',\n defaultMessage: 'Portfolio',\n },\n PredefinedArea: {\n id: 'Types.PredefinedArea',\n defaultMessage: 'PredefinedArea',\n },\n PriceChangeOnFavoriteCaseNotification: {\n id: 'Types.PriceChangeOnFavoriteCaseNotification',\n defaultMessage: 'PriceChangeOnFavoriteCaseNotification',\n },\n PriceChangedOnMatchedCaseNotification: {\n id: 'Types.PriceChangedOnMatchedCaseNotification',\n defaultMessage: 'PriceChangedOnMatchedCaseNotification',\n },\n PrivateBuilding: {\n id: 'Types.PrivateBuilding',\n defaultMessage: 'PrivateBuilding',\n },\n PrivateRentalSearchProfile: {\n id: 'Types.PrivateRentalSearchProfile',\n defaultMessage: 'PrivateRentalSearchProfile',\n },\n PrivateSaleSearchProfile: {\n id: 'Types.PrivateSaleSearchProfile',\n defaultMessage: 'PrivateSaleSearchProfile',\n },\n Query: {\n id: 'Types.Query',\n defaultMessage: 'Query',\n },\n QuestionnaireMetaData: {\n id: 'Types.QuestionnaireMetaData',\n defaultMessage: 'QuestionnaireMetaData',\n },\n RectifyCase: {\n id: 'Types.RectifyCase',\n defaultMessage: 'RectifyCase',\n },\n RentalCase: {\n id: 'Types.RentalCase',\n defaultMessage: 'RentalCase',\n },\n RentalPresentation: {\n id: 'Types.RentalPresentation',\n defaultMessage: 'RentalPresentation',\n },\n RentalPresentationBusiness: {\n id: 'Types.RentalPresentationBusiness',\n defaultMessage: 'RentalPresentationBusiness',\n },\n RentalPresentationPrivate: {\n id: 'Types.RentalPresentationPrivate',\n defaultMessage: 'RentalPresentationPrivate',\n },\n RequestedDocumentNotification: {\n id: 'Types.RequestedDocumentNotification',\n defaultMessage: 'RequestedDocumentNotification',\n },\n RequestedDocumentType: {\n id: 'Types.RequestedDocumentType',\n defaultMessage: 'RequestedDocumentType',\n },\n Response: {\n id: 'Types.Response',\n defaultMessage: 'Response',\n },\n SalesCase: {\n id: 'Types.SalesCase',\n defaultMessage: 'SalesCase',\n },\n SalesPresentation: {\n id: 'Types.SalesPresentation',\n defaultMessage: 'SalesPresentation',\n },\n SalesPresentationPrivate: {\n id: 'Types.SalesPresentationPrivate',\n defaultMessage: 'SalesPresentationPrivate',\n },\n SearchArea: {\n id: 'Types.SearchArea',\n defaultMessage: 'SearchArea',\n },\n SearchProfile: {\n id: 'Types.SearchProfile',\n defaultMessage: 'SearchProfile',\n },\n SearchProfileExternalMatchedCase: {\n id: 'Types.SearchProfileExternalMatchedCase',\n defaultMessage: 'SearchProfileExternalMatchedCase',\n },\n SearchProfileExternalMatchedCaseConnection: {\n id: 'Types.SearchProfileExternalMatchedCaseConnection',\n defaultMessage: 'SearchProfileExternalMatchedCaseConnection',\n },\n SearchProfileExternalMatchedCaseEdge: {\n id: 'Types.SearchProfileExternalMatchedCaseEdge',\n defaultMessage: 'SearchProfileExternalMatchedCaseEdge',\n },\n SearchProfileInterfaceConnection: {\n id: 'Types.SearchProfileInterfaceConnection',\n defaultMessage: 'SearchProfileInterfaceConnection',\n },\n SearchProfileInterfaceEdge: {\n id: 'Types.SearchProfileInterfaceEdge',\n defaultMessage: 'SearchProfileInterfaceEdge',\n },\n SearchProfileMatchNotification: {\n id: 'Types.SearchProfileMatchNotification',\n defaultMessage: 'SearchProfileMatchNotification',\n },\n SearchProfileMatchedCase: {\n id: 'Types.SearchProfileMatchedCase',\n defaultMessage: 'SearchProfileMatchedCase',\n },\n SearchProfileMatchedCaseConnection: {\n id: 'Types.SearchProfileMatchedCaseConnection',\n defaultMessage: 'SearchProfileMatchedCaseConnection',\n },\n SearchProfileMatchedCaseEdge: {\n id: 'Types.SearchProfileMatchedCaseEdge',\n defaultMessage: 'SearchProfileMatchedCaseEdge',\n },\n SearchProfileMatchedCaseNotification: {\n id: 'Types.SearchProfileMatchedCaseNotification',\n defaultMessage: 'SearchProfileMatchedCaseNotification',\n },\n ServiceIdentity: {\n id: 'Types.ServiceIdentity',\n defaultMessage: 'ServiceIdentity',\n },\n Shop: {\n id: 'Types.Shop',\n defaultMessage: 'Shop',\n },\n StakeholderIdentity: {\n id: 'Types.StakeholderIdentity',\n defaultMessage: 'StakeholderIdentity',\n },\n StakeholderInOffer: {\n id: 'Types.StakeholderInOffer',\n defaultMessage: 'StakeholderInOffer',\n },\n StakeholderInRegistry: {\n id: 'Types.StakeholderInRegistry',\n defaultMessage: 'StakeholderInRegistry',\n },\n TaskActivityConnection: {\n id: 'Types.TaskActivityConnection',\n defaultMessage: 'TaskActivityConnection',\n },\n TaskActivityEdge: {\n id: 'Types.TaskActivityEdge',\n defaultMessage: 'TaskActivityEdge',\n },\n TaskActivityGraph: {\n id: 'Types.TaskActivityGraph',\n defaultMessage: 'TaskActivityGraph',\n },\n Thread: {\n id: 'Types.Thread',\n defaultMessage: 'Thread',\n },\n ThreadConnection: {\n id: 'Types.ThreadConnection',\n defaultMessage: 'ThreadConnection',\n },\n ThreadEdge: {\n id: 'Types.ThreadEdge',\n defaultMessage: 'ThreadEdge',\n },\n ThreadParticipant: {\n id: 'Types.ThreadParticipant',\n defaultMessage: 'ThreadParticipant',\n },\n TimelineActivity: {\n id: 'Types.TimelineActivity',\n defaultMessage: 'TimelineActivity',\n },\n TimelineActivityConnection: {\n id: 'Types.TimelineActivityConnection',\n defaultMessage: 'TimelineActivityConnection',\n },\n TimelineActivityEdge: {\n id: 'Types.TimelineActivityEdge',\n defaultMessage: 'TimelineActivityEdge',\n },\n TimelineActivityNote: {\n id: 'Types.TimelineActivityNote',\n defaultMessage: 'TimelineActivityNote',\n },\n TotalCosts: {\n id: 'Types.TotalCosts',\n defaultMessage: 'TotalCosts',\n },\n ValuationCase: {\n id: 'Types.ValuationCase',\n defaultMessage: 'ValuationCase',\n },\n Viewer: {\n id: 'Types.Viewer',\n defaultMessage: 'Viewer',\n },\n ZipCode: {\n id: 'Types.ZipCode',\n defaultMessage: 'ZipCode',\n },\n});\n\nexport type Type = keyof typeof Types;\n\nexport const formatType = (intl: IntlShape) => (key?: Type | string | null) => {\n if (key && TypeMessages[key]) {\n return intl.formatMessage(TypeMessages[key]);\n }\n\n return key ?? null;\n};\n\nexport const useFormatType = () => {\n const intl = useIntl();\n return useMemo(() => formatType(intl), [intl]);\n};\n","import {\n MessageNotification,\n DocumentSigningNotification,\n ActivityNotification,\n SearchProfileMatchNotification,\n RequestedDocumentNotification,\n SearchProfileMatchedCaseNotification,\n DocumentAccessGrantedNotification,\n} from 'Types';\nimport { getRelatedLink } from 'tools/string-formatters';\n\ntype Props = {\n notificationType: string;\n threadId?: string;\n relationType?: {\n relationId?: string | null;\n relationType?: string | null;\n } | null;\n};\n\nexport const getNotificationUrl = ({ notificationType, threadId, relationType }: Props) => {\n switch (notificationType) {\n case MessageNotification:\n return threadId ? `/messages/?id=${threadId}` : '/messages';\n case RequestedDocumentNotification:\n case DocumentSigningNotification:\n case DocumentAccessGrantedNotification:\n return relationType ? getRelatedLink(relationType, '#sign') : '/';\n case ActivityNotification:\n return '/activities';\n default:\n return '/';\n }\n};\n"],"names":["AgriculturePropertyTypeCategory","AppointmentActivityStatusEnum","BusinessPropertyType","BusinessRentalCaseStatus","BusinessSalesCaseStatus","BusinessSearchProfilePropertyCategory","CaseAnnouncedType","CaseTypeEnumGraphType","CounselingCaseStatus","CustomerContext","DocumentOrderBy","GoogleAnalyticsSource","LeadStatusTypeEnum","MatchProfileStatus","MatchedCaseHighlightStatus","MyPageCaseRelation","MyPageTextSection","OrderDirection","PropertyCategory","PropertyType","QuestionnaireMetaDataType","RectifyCaseStatus","RentalCaseStatus","SalesCaseStatus","SearchProfileEnabledType","SearchProfileStatus","SearchProfileWord","ActivityNote","ActivityNotification","AppointmentActivity","BusinessRentalCase","BusinessRentalSearchProfile","BusinessSalesCase","CasePromotion","CounselingCase","DocumentAccessGrantedNotification","DocumentSigningNotification","LeadInterface","LeadNotification","LeadOpenHouse","LeadPresentation","LeadSalesMaterialWithContact","MessageNotification","OpenHouseOnFavoriteCaseNotification","PriceChangeOnFavoriteCaseNotification","PriceChangedOnMatchedCaseNotification","PrivateRentalSearchProfile","RectifyCase","RentalCase","RequestedDocumentNotification","SalesCase","SearchProfileMatchNotification","SearchProfileMatchedCaseNotification","v0","v1","v2","v3","v4","v5","v6","v7","v8","node","v9","v10","v11","v12","v13","ThemeContext","React","useTheme","useContext","ViewerContext","createContext","useViewer","providerProps","error","data","useQuery","findConfigurableSectionText","textList","key","arr","text","MixpanelContext","MixPanelProvider","children","token","useEffect","mixpanel","track","event","properties","identify","user","ActivitiesTab","FavouritesTab","MatchTab","MySalesTab","useNavigateToTop","navigate","useNavigate","to","window","props","anchorTag","className","disabled","href","hideText","iconClassname","iconHeight","iconStart","iconWidth","iconEnd","isFullWidth","type","padding","version","selected","download","inline","wrapper","rest","navigateToTop","classList","classNames","getInnerContent","Fragment","Icon","Typography","undefined","HashLink","el","Link","name","height","width","fill","noWrapper","IconComponent","Icons","Spinner","forwardRef","ref","tag","tagStyle","upperCase","subjectColor","elipsis","alignRight","initials","customVersion","size","backgroundColor","textColor","avatarVersion","getVersion","onFileUpload","useMixPanel","FileInput","console","file","isMobile","isTablet","Checkbox","value","checked","label","onChange","e","useFragment","getInitialsFromFullname","Block","Avatar","CustomSelect","bigVersion","options","placeholder","errorMessage","selectedOption","isOpen","setIsOpen","useState","customSelectRef","useRef","useOnClickOutside","Button","prev","option","CustomCaption","goToMonth","nextMonth","previousMonth","useNavigation","FormattedMessage","format","da","DayPicker","iconName","message","onFileSelectSuccess","onFileSelectError","labelColor","files","Date","indeterminate","inputRef","Input","formattedInput","hasError","labelTagStyle","onValueChange","noBorder","noFloatingLabel","customPadding","readonly","required","focusInput","wrapperClassName","onClick","isFocused","setIsFocused","isLabelShown","setIsLabelShown","inputWrap","document","NumericFormat","values","OpenHouseImageOverlay","openHouses","useList","getOpenHouseText","openHouse","formatDate","isRegistrationDeadlineAfterToday","registrationDeadline","deadline","today","isAfter","headline","showCross","focusTrapOptions","buttonConfig","closeHandler","contentPadding","handleClosePopup","FocusTrap","button","Container","Row","onClose","Card","title","LeadListItem","fragment","lead","handleOnClick","formatTime","updateStartEndTimeFromDate","newDate","start","end","startHours","startMinutes","endHours","endMinutes","newStartTime","newEndTime","TODAY","LeadPresentationDialogContent","viewerFragment","viewer","updateLead","updateLeadLoading","useUpdate","createActivity","createActivityLoading","useMutation","chooseActivityModalCreate","selectedDate","setSelectedDate","time","setTime","add","propertyForSaleByOwnerAppointmentActivityTypes","handleProcessLead","activity","getActivityId","toast","input","DatePicker","date","AppointmentTimePicker","timeStart","set","Number","timeEnd","prevState","_diff","_ms","_mr","LeadContactDialogContent","phoneNumber","email","LeadOpenHouseDialogContent","startDate","LeadDialogContent","handleOnClose","SaleByOwnerGrid","maxAmountDisplayed","mypageLeads","isModalOpen","toggleIsModalOpen","useToggle","selectedLead","setSelectedLead","leads","useMemo","filteredLeads","Column","EmptyModule","SimpleModal","Select","onBlur","onFocus","setSelected","isPlaceholderSelected","setIsPlaceholderSelected","disableClickOutside","handleEsc","createPortal","Textarea","autoExpand","classNameInput","onKeyUp","ReactTextareaAutosize","setIsModalOpen","formatPropertyType","usePropertyType","employeeOffers","employee","propertyType","ContactCard","ContactSellerModal","getRecipientOptions","recipients","item","firstEmployeeOffer","FileComponent","ChatActions","onCloseForm","caseOptions","activityOptions","recipientOptions","onSubmit","onSelectCase","formatMessage","useIntl","useIsMobile","selectedCaseOption","setSelectedCaseOption","selectedRecepientOption","setSelectedRecepientOption","schema","yup","errors","isSubmitSuccessful","handleSubmit","setFocus","setValue","register","reset","watch","useForm","yupResolver","handleSelectedCase","useCallback","watchedFiles","onDeleteFile","fileId","URL","commit","customerIdData","useLazyLoadQuery","connectionID","ConnectionHandler","handleSubmitContactForm","initialMessage","uploadables","store","thread","haveFiles","Modal","ContactSellerForm","caseId","max","i","currentPage","pageSize","totalItems","Math","DocumentsTableFooter","state","dispatch","DocumentsTableStateContext","isDownloading","setIsDownloading","handleDownloadDocuments","authenticationService","requestOptions","response","fetch","JSON","saveAs","blob","fileName","a","setTimeout","onPageChange","direction","TableSelect","val","DEFAULT_OPTIONS","DIRECTION","DocumentsTableHeader","currentSortKey","setCurrentSortKey","currentSortOrder","setCurrentSortOrder","isAllSelected","handleSort","newSortOrder","renderSortableColumn","id","IndeterminateCheckbox","DocumentsTableRow","documentFragment","rowSelection","setRowSelection","documentsTableInitialState","getMappedDocumentsObject","documents","obj","index","rowSelect","documentsTableStateReducer","action","slicedDocuments","documentsMappedOnIndex","newPage","newRowSelection","all","rowIndex","copyRowSelection","removeIndex","order","sortedDocuments","b","valueA","valueB","Error","DocumentsTable","TableSkeleton","trs","onSelectFullscreen","onSelectMap","onSelectPlan","onSelectVideo","isFullscreenVisible","isPlanVisible","isMapVisible","isVideoInList","activeImageIndex","imagesLength","Video","url","onImageClick","activeSwiperIndex","noPlay","ImageElement","CaseGallerySwiper","slideToImage","mediaDataConnection","firstSwiper","setFirstSwiper","secondSwiper","setSecondSwiper","setActiveSwiperIndex","gallerySwiperRef","images","useNodes","hasPlan","image","hasVideo","Swiper","Navigation","Controller","swiperCore","SwiperSlide","SwiperNavigation","GalleryNavigation","CaseGallery","onCloseGallery","PopupOverlay","LIBRARIES","lat","lng","isLoaded","useJsApiLoader","appSettings","GoogleMap","Marker","imagesSwiperRef","activeIndex","CaseFullscreenGallery","onCloseFullscreen","CaseImagesSwiper","getImageColumnWidth","CaseImages","gpsCoordinates","firstImage","secondImage","thirdImage","hiddenNumberOfImages","galleryOpen","setGalleryOpen","mapOverlayOpen","setMapOverlayOpen","fullscreenGalleryOpen","setFullscreenGalleryOpen","handleSelectMap","coords","imageIndex","SuspenseHoc","Loader","MapOverlay","showAdditionalInfo","moreInfoRef","isValuation","formatNumber","isPlot","buildings","yearBuilt","mainBuilding","building","isCondo","isHousingCooperative","propertyTypes","MatchHeroDetails","baseCase","isExpanded","setIsExpanded","formatBusinessPropertyType","isAgricultureCase","InfoComponent","MatchHeroContentAgriculturalCase","MatchHeroContentSalesCase","MatchHeroContentRentalCase","MatchHeroContentCounselingCase","MatchHeroContentBusinessSalesCase","MatchHeroOffmarketDetails","BookShowcasingModal","customerData","environment","useRelayEnvironment","modalHasError","setModalHasError","closeModal","customerInfo","step","setStep","intl","theme","isCompany","messages","defineMessages","phoneRegExp","isValid","isSubmitted","trigger","isLastStep","handleNextStep","commitMutation","err","MatchHeroContent","offmarketCase","isBookingShowcaseModalOpen","setIsBookingShowcaseModalOpen","caseAnnouncements","caseHeadline","DOMPurify","caseDescription","ModuleWrapper","getWebsiteLink","websiteAnnouncements","announcement","myPageSpot","spot","entries","link","handleSpotImgClick","entry","require","SuccessSummit","endDate","hasServerError","setHasServerError","loading","setLoading","selectedOpenHouse","setSelectedOpenHouse","openHouseFound","oHouse","object","string","createOpenHouseLead","markAsFavourite","updateSearchProfileMatchedCase","_e","handleClickOnRegisterOpenHouse","AppointmentModalContent","onChangeDay","handleChangeTimeStart","handleChangeTimeEnd","handleBlurTimeStart","handleBlurTimeEnd","secondChildren","currentTimeStart","currentTimeEnd","HeadLine","ShowCasingInput","labelId","handleCustomerInfoChange","ChooseActivityModal","useCreate","chosenActivity","setChosenActivity","isRegistration","toggleIsRegistration","setCustomerInfo","getDateWithAddedDefaultDurationInMin","handleChosenActivity","handleCloseCross","field","isConfirmButtonDisabled","Object","openHouseObj","getSpecificActivityObj","isOpenHouse","getDateWithSelectedTime","timeDif","timeInMS","defaultDurationInMinutes","newTimeEnd","timeInMs","TimerPicker","handleChange","getTimeFromDate","day","hours","minutes","labelStart","labelEnd","timeStartMS","timeDifferenceInMS","timeEndMS","timeString","parseInt","givenDate","activeTab","tabContent","tabNav","searchParams","useSearchParams","visibleTab","setVisibleTab","highlightedTab","setHighlightedTab","containerRef","tabFromParams","handleKeyDown","currentIndex","tab","component","ErrorBoundaryBlock","Component","errorInfo","stack","componentStack","errorId","sendErrorToServer","fallback","Suspense","column","borderRadius","marginBottom","boxShadow","flex","flexGutter","flexWrap","flex1","justifyRight","overflowHidden","positionRelative","spaceBetween","fullHeight","noMargin","offset","noPaddingOnMobile","getClass","breakpoint","columnClasses","fullWidth","fullWidthMobile","paddingTopReset","paddingBottomReset","pushTop","borderTop","fullHeightWithoutMainNav","style","pageHeight","pushBottom","alignCenter","center","noAdjacentMargin","graphqlTaggedNode","hookConfig","nativeMutationFn","mutationState","formatType","useFormatType","makeUpdater","__typename","listName","listArgs","parentID","rootField","payloadName","mutationName","payload","parent","nodePayload","nodes","Array","connection","totalCount","edge","linkedRecords","mutationConfig","mergedConfig","promise","updater","res","responseHasErrors","propertyName","mutation","customConfig","handler","listener","elementRef","param","threshold","root","rootMargin","freezeOnceVisible","setEntry","frozen","updateEntry","observer","IntersectionObserver","windowSize","setWindowSize","useLayoutEffect","handleResize","useWindowSize","listItems","notEmpty","edges","accumulator","useSubscriptionWithReconnect","config","requestSubscriptionFn","actualRequestSubscription","requestSubscription","useSignalrConnection","disposable","reconnection","connect","initialState","setState","v14","v15","v16","onPerfEntry","logoUrl","logoAlt","DONT_SHOW","InstallPWA","open","setOpen","isIOS","useIsIOS","setIsIOS","checkForIOS","endOfDay","installPrompt","localStorage","lastPrompt","days","differenceInDays","isSafari","prompt","nav","isAndroid","displayPWA","installPromptValue","timer","element","navbar","clearTimeout","count","arrayBufferToBase64","arrayBuffer","uint8Array","Uint8Array","binaryString","String","requestNotificationPermission","Promise","resolve","reject","Notification","result","notification","tabString","OpenHouseFavouriteCaseNotification","location","appointmentTime","formatAppointmentDate","PriceChangeFavoriteCaseNotification","PriceChangeOnMatchCaseNotification","relationType","getRelatedLink","relationData","NotificationComponent","MessageNotificationType","getNotificationUrl","DocumentSigningNotificationType","DocumentAccessGrantedNotificationType","RequestedDocumentNotificationType","ActivityNotificationType","SearchProfileMatchNotificationType","SearchProfileMatchedCaseNotificationType","LeadNotificationType","OpenHouseOnFavoriteCaseNotificationType","PriceChangeOnFavoriteCaseNotificationType","PriceChangedOnMatchedCaseNotificationType","NoNoficationData","hasNext","loadNext","usePaginationFragment","notifications","setNotificationsEnabled","notificationsEnabled","useIntersectionObserver","isVisible","featureToggles","isPushNotificationsEnabledAndSupported","isPushNotificationsEnabledAndNotSupported","subscribe","unsubscribe","setCorrectRef","handleSubscribeNotifications","navigator","registration","pushSubscription","handleUnsubscribeNotifications","openHouseModalOpen","toggleOpenHouseModalOpen","noAdvertisement","hasOpenHouse","Tag","RegisterOpenHouseModal","FavoritePageDocumentsBody","refetch","isLoadingNext","documentNodes","handleRowSelection","EmptyTableBody","FavoritePageDocumentsRender","useReducer","SaleByOwnerProcessedGrid","SaleByOwnerPage","TabComponent","Activities","lazy","CasePage","ActivityCasePage","FavouritesPage","MatchCasePage","MatchPage","MySalesPage","MessagesPage","NotFoundPage","Overview","module","ProfilePage","SearchProfile","NotificationPage","mainNavigationRoutes","mainAppRoutes","favoriteId","useParams","FavoritePageHero","ContactModule","ContactModuleOffmarket","MyPageSpots","NotFound","FavoritePage","HomeLink","LogoutButton","getMixpanelLocationType","HIGHLIGHT_BELL","BellHighlightPopup","displayPopUp","toggleIsVisible","localStore","sessionStore","sessionStorage","profileMenuOpen","toggleProfileMenuOpen","notificationsOpen","toggleNotificationsOpen","mobileMenuOpen","toggleMobileMenuOpen","browserPermissionOpen","toggleBrowserPermissionOpen","useLocation","profileMenuRef","notificationsRef","markNotificationAsReadMutation","isWebPushNotificationsEnabled","getPushSubscription","pathName","onCloseNotifications","routes","handleToggle","handleClickNavLink","path","route","NavLink","isActive","Badge","Notifications","ErrorBoundary","refreshedQueryOptions","pathname","refresh","notificationSubscriptionConfig","customer","MainNavigation","Outlet","StickyChat","Footer","cache","QueryResponseCache","_clientId","languageMapping","messages_da_agent","messages_da_kartotek","messages_da_kartotek_heading","messages_da_ejendom","IntlProvider","intlProviderMessages","baseTranslations","messages_da","variant","mappedTranslation","ReactIntlProvider","TopLevelToastContainer","ToastContainer","UserDeviceContext","displayMode","setDisplayMode","evt","info","Bowser","App","routesSetup","createBrowserRouter","createRoutesFromElements","Route","DefaultLayout","RouterProvider","signalrConnectionInstance","createSignalrConnectionInstance","relayEnvironmentInstance","createRelayEnvironmentInstance","endpoint","network","Network","request","variables","cacheConfig","queryId","isMutation","isQuery","cachedData","isImpersonated","query","body","headers","formData","FormData","uploadable","json","clientId","observable","Observable","sink","x","source","RecordSource","Store","Environment","handlerProvider","requiredFieldLogger","Helmet","UserDeviceProvider","SignalrConnectionProvider","RelayEnvironmentProvider","ViewerProvider","ReactDOM","initReactApp","AppRoot","initialize","initAppSettings","HTML_DOCUMENT_TITLE","AUTH_CLIENT_ID","AUTH_REALM","AUTH_URL","createAuthenticationService","serviceWorkerRegistration","publicUrl","registerValidSW","swUrl","installingWorker","Function","getCLS","getFID","getFCP","getLCP","getTTFB","AuthenticationService","Keycloak","originalUrl","realm","send","_sendToServer","logLevel","getErrorId","hexLength","random","r","SignalrConnectionContext","connectionState","setConnectionState","SignalrConnectionStateEnum","subscription","defaultReconnectPolicy","reconnectPolicy","startRetryTimeout","pendingInvokes","reconnectedListeners","HubConnectionBuilder","HttpTransportType","LogLevel","startRetryCount","handleReconnected","f","pending","invoke","_key","args","HubConnectionState","fn","onReconnected","appSettingsDefaults","fetchTheme","applyThemeConfigToDocument","themeConfig","rootVars","assets","asset","cssUrls","cssUrl","loadThemeConfig","APPSETTINGS_JSON","loadAppConfig","resp","loadedSettings","settings","unit","addedPlus","formattedNumber","typeOfFormat","formatQueryDate","fullName","names","getDatesFromRange","dates","currentDate","addDays","dayStart","dayEnd","getAvatarVersion","chatParticipants","hash","anchor","TypeMessages","notificationType","threadId"],"mappings":"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AgB,kBAChB,GAAI,qBACN,EACA,OAAQ,CACN,eAAgB,SAChB,GAAI,qBACN,EACA,OAAQ,CACN,eAAgB,SAChB,GAAI,qBACN,EACA,MAAO,CACL,eAAgB,QAChB,GAAI,oBACN,EACA,KAAM,CACJ,eAAgB,gBAChB,GAAI,mBACN,EACA,qBAAsB,CACpB,eAAgB,yBAChB,GAAI,mCACN,EACA,SAAU,CACR,eAAgB,YAChB,GAAI,uBACN,EACA,eAAgB,CACd,eAAgB,kBAChB,GAAI,6BACN,EACA,WAAY,CACV,eAAgB,cAChB,GAAI,yBACN,EACA,SAAU,CACR,eAAgB,YAChB,GAAI,uBACN,EACA,OAAQ,CACN,eAAgB,SAChB,GAAI,qBACN,EACA,iBAAkB,CAChB,eAAgB,oBAChB,GAAI,+BACN,EACA,kBAAmB,CACjB,eAAgB,sBAChB,GAAI,gCACN,EACA,mBAAoB,CAClB,eAAgB,iCAChB,GAAI,iCACN,EACA,mBAAoB,CAClB,eAAgB,sBAChB,GAAI,iCACN,EACA,iBAAkB,CAChB,eAAgB,sBAChB,GAAI,+BACN,EACA,yBAA0B,CACxB,eAAgB,+BAChB,GAAI,uCACN,EACA,iBAAkB,CAChB,eAAgB,sBAChB,GAAI,+BACN,EACA,WAAY,CACV,eAAgB,8BAChB,GAAI,yBACN,EACA,QAAS,CACP,eAAgB,qBAChB,GAAI,sBACN,EACA,WAAY,CACV,eAAgB,aAChB,GAAI,yBACN,EACA,kBAAmB,CACjB,eAAgB,uBAChB,GAAI,gCACN,EACA,wBAAyB,CACvB,eAAgB,6BAChB,GAAI,sCACN,EACA,OAAQ,CACN,eAAgB,SAChB,GAAI,qBACN,EACA,QAAS,CACP,eAAgB,cAChB,GAAI,sBACN,EACA,qCAAsC,CACpC,eAAgB,mBAChB,GAAI,mDACN,EACA,6CAA8C,CAC5C,eAAgB,4BAChB,GAAI,2DACN,EACA,qCAAsC,CACpC,eAAgB,mBAChB,GAAI,mDACN,EACA,KAAM,CACJ,eAAgB,eAChB,GAAI,mBACN,EACA,KAAM,CACJ,eAAgB,OAChB,GAAI,mBACN,EACA,kBAAmB,CACjB,e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"}