{"version":3,"sources":["webpack:///./app/webpacker/Components/Banners/BannerBase.tsx","webpack:///./app/webpacker/Components/Banners/AdminBanner.tsx","webpack:///./app/webpacker/Routes/NavFallback.tsx","webpack:///./app/webpacker/User/Components/TwoFactorSetup.tsx","webpack:///./app/webpacker/Routes/Routes.tsx","webpack:///./app/webpacker/Components/NavbarComponents/GtmNavbarLink.tsx","webpack:///./app/webpacker/Components/NavbarComponents/GtmNavbarRouteLink.tsx","webpack:///./app/webpacker/Components/NavbarComponents/GtmNavbarAction.tsx","webpack:///./app/webpacker/consts/urls.ts","webpack:///./app/webpacker/Hooks/useIsMobile.tsx","webpack:///./app/webpacker/Components/NavbarComponents/logo.svg","webpack:///./app/webpacker/Components/NavbarComponents/NavbarItems.tsx","webpack:///./app/webpacker/gqlTypes.tsx","webpack:///./app/webpacker/User/Components/PageNavBar.tsx","webpack:///./app/webpacker/User/Components/UserLayout.tsx","webpack:///./app/webpacker/Components/HeroTitle.tsx","webpack:///./app/webpacker/utils/featureToggle.ts","webpack:///./app/webpacker/Components/PageFooter/PageFooterNewsletterSignup.tsx","webpack:///./app/webpacker/Components/PageFooter/PageFooter.tsx","webpack:///./app/webpacker/Hooks/useSrOnlyClassName.ts","webpack:///./app/webpacker/Components/NavbarComponents/Navbar.tsx","webpack:///./app/webpacker/Components/GoogleTranslate.tsx","webpack:///./app/webpacker/Components/ReverseMenuContainer.tsx","webpack:///./app/webpacker/Components/NavbarComponents/Desktop/SubMenu.tsx","webpack:///./app/webpacker/Components/NavbarComponents/Desktop/TopLevelMenu.tsx","webpack:///./app/webpacker/Components/NavbarComponents/DesktopNavbar.tsx","webpack:///./app/webpacker/Components/NavbarComponents/Mobile/SubMenu.tsx","webpack:///./app/webpacker/Components/NavbarComponents/Mobile/SubMenuBody.tsx","webpack:///./app/webpacker/Components/NavbarComponents/MobileNavbar.tsx","webpack:///./app/webpacker/Components/PageFooter/logo.svg","webpack:///./app/webpacker/Components/PageFooter/feoh-white.png","webpack:///./app/webpacker/Components/PageFooter/logo-mark.svg","webpack:///./app/webpacker/User/assets/banner.svg","webpack:///./app/webpacker/Components/GtmWrapper.tsx","webpack:///./app/webpacker/utils/query.ts","webpack:///./app/webpacker/Components/ContentTextField.tsx","webpack:///./app/webpacker/Components/DataLoader.tsx","webpack:///./app/webpacker/Components/KeyVals.tsx","webpack:///./app/webpacker/Components/RoleFilter.tsx","webpack:///./app/webpacker/Components/OrgFilter.tsx","webpack:///./app/webpacker/Components/LoadingBox.tsx","webpack:///./app/webpacker/Components/IconText.tsx","webpack:///./app/webpacker/utils/validations.ts","webpack:///./app/webpacker/MyAccount/Hooks/useMyAccount.ts","webpack:///./app/webpacker/User/Hooks/userHooks.ts","webpack:///./app/webpacker/User/Components/UserForm.tsx","webpack:///./app/webpacker/MyAccount/Hooks/useMyPermissions.ts","webpack:///./app/webpacker/Components/ContentSubmitButton.tsx","webpack:///./app/webpacker/Routes/PageNotFound.tsx","webpack:///./app/webpacker/Hooks/useDataLayerVariable.ts","webpack:///./app/webpacker/Components/Navbar/usePropertyManagersMenu.tsx","webpack:///./app/webpacker/Components/Navbar/useUserMenu.tsx","webpack:///./app/webpacker/Components/Navbar/useAdminsMenu.tsx","webpack:///./app/webpacker/Components/Navbar/MobileNavbar.tsx","webpack:///./app/webpacker/Components/Navbar/DesktopNavbar.tsx","webpack:///./app/webpacker/Components/Navbar/Navbar.tsx","webpack:///./app/webpacker/Hooks/useHasPermissions.tsx","webpack:///./app/webpacker/Environment/GtmDataLayerManager.tsx","webpack:///./app/webpacker/appGraphqlClient.ts","webpack:///./app/webpacker/AppProvider.tsx","webpack:///./app/webpacker/utils/readCsrfToken.ts","webpack:///./app/webpacker/Components/HtmlTypography.tsx","webpack:///./app/webpacker/Components/Banners/useBannerQuery.ts","webpack:///./app/webpacker/Components/Banners/bannerFragment.ts"],"names":["useStyles","makeStyles","_ref","_ref2","spacing","breakpoints","palette","color","bgColor","linkColor","appBar","backgroundColor","mobile","_defineProperty","top","up","desktop","closeButton","padding","paddingLeft","paddingRight","position","borderRadius","margin","height","right","outlineOffset","primary","contrastText","content","paddingTop","paddingBottom","marginTop","marginBottom","BannerBase","_ref3","children","open","onClose","center","useIsMobile","_useStyles","classes","cx","React","createElement","Collapse","in","root","Box","sx","display","alignItems","width","textAlign","undefined","className","IconButton","onClick","disableRipple","size","CloseIcon","AdminBannerColors","_AdminBannerColors","BannerColorEnum","Blue","Yellow","Red","AdminBanner","banner","props","_objectWithoutProperties","_excluded","Object","assign","HtmlTypography","html","typographyVariant","RoutesNavFallback","source","boxProps","flexDirection","justifyContent","flexGrow","minHeight","NavbarContainer","noTranslate","Fragment","CircularProgress","memo","TwoFactorSetup","onCompleted","t","useFormatMessage","canvasRef","useRef","_useTwoFactorQrCode2","_slicedToArray","useTwoFactorQrCode","data","qrCodeStatus","_useTwoFactorEnable2","useTwoFactorEnable","enable2fa","enableStatus","handleLogout","useDestroyUserSession","handleSubmitEnable","useCallback","input","then","ok","useEffect","current","provisioning_uri","QRCode","toCanvas","LoadingBox","UserLayout","title","mb","Alert","severity","AlertTitle","Typography","Link","style","cursor","Grid","container","item","xs","ref","otp_secret","UserForm","initialValues","otp_attempt","onSubmit","failureMessage","Field","name","label","as","ContentTextField","type","validate","validateRequiredField","fullWidth","ContentSubmitButton","variant","AppRouter","lazy","UserFormRouter","MyAccountRouter","Print","handleLoginSuccess","window","location","replace","Routes","currentUser","useFetchCurrentUser","BlockFallback","setup_2fa_required","Switch","Route","path","key","RouterSuspense","fallback","AppProvider","NavFallback","component","PageNotFound","baseUrl","onLogin","Redirect","from","to","GtmNavbarLink","href","disabled","LinkProps","GtmWrapperProps","_ref$menuItem","menuItem","MenuItem","GtmWrapper","trigger","dataAttrs","underline","concat","GtmNavbarRouteLink","RouterLink","GtmNavbarAction","action","hnmiLinkedIn","about","resources","accessibilityPolicy","termsOfService","privacyPolicy","joinOwnerDrive","housingAuthorityLinks","dhcd","mhp","masshousing","massdevelopment","champPreferenceImminentDanger","champPreferenceHowToApply","landingV2ResourcesLink","learnMoreV2WhoSiteFor","supportUsV2WhoSiteFor","myMassHomeV2WhoSiteFor","breakpoint","arguments","length","useMediaQuery","useTheme","down","module","exports","NavbarAction","NavbarLink","NavbarRouteLink","NavbarMenu","isType","elem","BuildingAgeRestriction","BuildingAgeRestrictionSizeEnum","BuildingAvailabilityStatus","BuildingBedroom","BuildingClosedReferralTypeEnum","BuildingVisibilities","CacheEnum","CertaintyTypes","DsiImportStatus","DsiMatchStatus","DsiRawRecordType","ExportFieldsEnum","FeatureToggle","HistoryEvent","HousingSetAsideTypeEnum","OrganizationRoleEnum","OrganizationUserRoleEnum","RecordUpdateBatchStatusEnum","ScoreLevel","SearchFieldType","SortDirection","UnitAccessibility","UserRole","UserStatus","UserPageNavbar","callToAction","MenuIcon","GtmTriggers","None","GtmLabels","_welcomeContent","fullHeight","pageContainer","contentContainer","backgroundImage","BannerSvg","backgroundRepeat","backgroundSize","backgroundPosition","overflow","bannerOverlay","left","maxWidth","borderTopLeftRadius","borderTopRightRadius","welcomeContent","subtitle","fontFamily","grey","fontSize","lineHeight","_ref3$welcome","welcome","_ref3$showNav","showNav","_ref3$showFooter","showFooter","HeroTitle","secondary","PageFooter","FEATURE_TOGGLES","console","log","flagSet","getEnvToggles","ENV_TOGGLES","featureIsToggled","flags","x","_every","_some","Array","isArray","map","f","includes","Boolean","useCheckboxStyles","_root","error","main","checked","WhiteCheckbox","Checkbox","_ref4","mcEmbedSignup","fieldGroup","background","paper","inputRoot","helperText","bottom","checkboxLabel","fontWeight","email","appearance","border","subscribeText","PageFooterNewsletterSignup","srOnly","useSrOnlyClassName","formElement","_React$useState2","useState","newsChecked","setNewsChecked","_React$useState4","listingsChecked","setListingsChecked","_React$useState6","setEmail","_React$useState8","fName","setFname","_React$useState10","lName","setLname","_React$useState12","emailError","setEmailError","_React$useState14","fNameError","setFNameError","_React$useState16","lNameError","setLNameError","_React$useState18","noSelectionsError","setNoSelectionsError","_React$useState20","subscribed","setSubscribed","textFieldConfig","required","InputLabelProps","FormHelperTextProps","InputProps","handleCheckboxChange","event","target","method","id","noValidate","md","htmlFor","TextField","autoComplete","onChange","value","FormGroup","row","FormControlLabel","control","tabIndex","defaultValue","Button","_formElement$current","preventDefault","submit","_footer","_link","typography","footer","logoMark","borderTop","link","body1","leftCol","logo","eohLogo","marginRight","button","textTransform","whiteSpace","checkbox","socialButton","minWidth","transition","isMobileXs","isMobile","navigationItems","URLS","gtmTrigger","FooterNavLink","gtmLabel","HeaderNavLinkAbout","HeaderNavLinkResources","FooterNavLinkTermsOfService","FooterNavLinkPrivacyPolicy","FooterNavLinkAccessibilityPolicy","navigation","navItem","i","mailChimpSignup","logos","src","alt","logoImg","copyright","year","Date","getFullYear","socialButtons","Tooltip","LinkedInIcon","FooterNavLinkBackToTop","_document$querySelect","scroll","behavior","document","querySelector","focus","PublishIcon","gridItems","links","sm","signup","branding","align","mt","grid","useMemo","role","Container","useSrOnlyClassNames","Navbar","MobileNavbar","DesktopNavbar","holder","setAttribute","_document$getElementB","getElementById","appendChild","GoogleTranslate","_useState2","attempts","setAttempts","timeout","_useState4","selectElem","setSelectElem","attemptToLoad","setTimeout","_google","_google$translate","_root$current","google","translate","TranslateElement","hasChildNodes","pageLanguage","clearInterval","handler","e","option","options","find","o","text","textContent","dataLayer","push","lang","langName","err","addEventListener","removeEventListener","Skeleton","ReverseMenuContainer","renderTrigger","_ref$id","uuid","popupState","usePopupState","popupId","bindTrigger","Menu","bindMenu","Children","child","isValidElement","cloneElement","_child$props","apply","close","NavbarSubMenu","p","inheritWeight","unsetWeight","NavbarTopLevelMenu","_objectSpread","SubMenu","shape","toolbar","borderBottom","navbarBrand","itemContainer","gap","bannerContent","AppBar","elevation","Toolbar","HeaderNavLink","HeaderNavLinkHome","TopLevelMenu","collapse","divider","NavbarMobileSubMenu","_ref2$startOpen","startOpen","level","setOpen","ExpandLessIcon","ExpandMoreIcon","unmountOnExit","SubMenuBody","_ref2$level","menuList","marginLeft","NavbarMobileSubMenuBody","forwardRef","_ref3$level","zIndex","textDecoration","pxToRem","menuPaper","boxShadow","menuRef","menuOpen","setMenuOpen","useLocation","focusRef","handleKeyDownInMenu","evt","_menuRef$current","stopPropagation","menuItems","querySelectorAll","activeElement","currentIndex","indexOf","maxIndex","nextIndex","menus","items","theme","index","disableAutoFocusItem","disableAutoFocus","disablePortal","anchorEl","anchorOrigin","vertical","horizontal","transformOrigin","TransitionComponent","Slide","onKeyDown","Backdrop","getDataAttrs","_objectSpread2","labelValue","_ref$otherData","otherData","labelString","GTM_LABELS","localizationMessages","getFragmentName","fragment","_fragment$definitions","definitions","d","kind","getFragmentFields","fields","filter","body","getBaseFields","join","fragmentTypes","fragmentCalls","_useField2","useField","field","setFieldValue","useFormikContext","handleChange","_e$currentTarget","currentTarget","parsed","toLowerCase","Number","NaN","isNaN","normalizeTextValue","DataLoader","loading","_ref$render","render","empty","KeyVals","obj","exclude","entries","_ref5","val","JSON","stringify","toString","transformVal","RoleFilter","admin","superadmin","otherwise","_ref$allowUnauthentic","allowUnauthenticated","_useMyAccount2","useMyAccount","user","userLoading","_useMyPermissions2","useMyPermissions","permissions","permissionsLoading","hasRole","canAdmin","canSuperadmin","OrgFilter","_user$organizationLin","orgId","roles","organizationLinks","organization","r","icon","flexShrink","isValidUrl","url","RegExp","test","isValidPhone","tel","isValidEmail","v","validateUnits","units","totalUnits","MY_ACCOUNT_FRAGMENT","gql","_templateObject","_taggedTemplateLiteral","MY_ACCOUNT_QUERY","_templateObject2","_data$myAccount","_useQuery","useQuery","status","myAccount","_regeneratorRuntime","Op","prototype","hasOwn","hasOwnProperty","defineProperty","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arr","_arrayWithHoles","_i","_s","_e","_x","_r","_arr","_n","_d","_iterableToArrayLimit","minLen","_arrayLikeToArray","n","_unsupportedIterableToArray","_nonIterableRest","len","arr2","headers","readCsrfToken","parseJSON","response","parse","useOrganizationsFromInvitationToken","invitation_token","setStatus","fetch","statusText","parseFailureStatus","useCreateUserSession","_useState6","cb","_callee","parsedResponse","_context","_x2","useCreateUserSessionOtp","_useState8","_callee2","_context2","_x3","useRequestPasswordReset","_useState10","useUnlockInstructions","_useState12","useUnlockRequest","_useState14","encodeURIComponent","unlock_token","useResetPassword","_useState16","_useState18","_useState20","setUser","_callee3","_context3","t0","_x4","useAcceptInvitation","_useState22","useValidateInvitationToken","_useState24","_useState26","valid","setValid","_useState28","_useState30","setData","_callee4","_context4","_x5","_useState32","useTwoFactorBackups","_useState34","_useState36","_ref6","_callee5","_context5","_x6","_ref$validateOnBlur","validateOnBlur","_ref$validateOnChange","validateOnChange","_ref$enableReinitiali","enableReinitialize","isMounted","alert","setAlert","handleSubmit","helpers","setSubmitting","setErrors","errors","Formik","Form","MY_PERMISSIONS_QUERY","_data$myPermissions","myPermissions","_ref$color","_useFormikContext","submitForm","isSubmitting","_len","_key","continueContent","_ref$continueTo","continueTo","_ref$noContinue","noContinue","continueNode","useDataLayerVariable","nullValue","usePropertyManagersMenu","HeaderNavMenu","HeaderNavMenuForOwners","HeaderNavLinkForOwnersSignIn","HeaderNavLinkForOwnersCreateAccount","HeaderNavLinkForOwners","HeaderNavLinkForOwnersWelcome","useUserMenu","AccountCircleIcon","HeaderNavMenuAccount","HeaderNavLinkMyAccount","HeaderNavLinkLogOut","useAdminsMenu","canAccessAdminFeatures","useHasRootPermissions","canAdminSearch","canAdministerUsers","canAdministerOrganizations","canAccessImports","canAccessUtilities","canAccessDsi","menuNode","HeaderNavMenuForAdmins","HeaderNavLinkAdminRecordSearch","HeaderNavLinkAdminEditUsers","HeaderNavLinkAdminEditOrganizations","_ref$noUser","noUser","_ref$noTranslate","propertyManagersMenu","userMenu","adminsMenu","MobileNavbarContainer","HeaderNavMenuMobile","px","_useUserMenu2","_useAdminsMenu2","adminLoading","DesktopNavbarContainer","useBannerQuery","bannerOpen","setBannerOpen","active","useHasPermissions","permObject","mode","permissionsList","matcher","every","some","gtmDataLayerManagerMounted","GtmDataLayerManager","organizationId","warn","pick","uri","credentials","batchKey","operation","operationName","cleanInput","ApolloLink","forward","variables","retryLink","RetryLink","httpLink","split","getContext","hasUpload","createUploadLink","BatchHttpLink","possibleTypes","FRAGMENT_TYPES","__schema","types","supertype","subtype","appGraphqlClient","ApolloClient","cache","InMemoryCache","DndProvider","backend","HTML5Backend","ApolloProvider","client","csrfTokenEl","getAttribute","_ref$replace","_replace","domNode","replaced","Element","attribs","domToReact","attributesToProps","omit","QUERY","BANNER_QF","skip"],"mappings":"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","file":"js/13-57467c8cb76f5f35bf81.chunk.js","sourcesContent":["import { Box, Collapse, IconButton } from \"@mui/material\";\nimport { makeStyles } from \"tss-react/mui\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport useIsMobile from \"Hooks/useIsMobile\";\nimport React from \"react\";\n\nexport type BannerBaseProps = {\n mobile?: boolean;\n open?: boolean;\n onClose?: () => void;\n center?: boolean;\n};\n\ntype StyleProps = {\n bgColor?: string;\n color?: string;\n linkColor?: string;\n};\n\nconst useStyles = makeStyles()(\n ({ spacing, breakpoints, palette }, { color, bgColor, linkColor }) => ({\n appBar: {\n color,\n backgroundColor: bgColor,\n },\n mobile: {\n top: 56,\n [breakpoints.up(\"sm\")]: {\n top: 64,\n },\n },\n desktop: {},\n closeButton: {\n padding: 0,\n paddingLeft: spacing(0.5),\n paddingRight: spacing(1),\n position: \"absolute\",\n borderRadius: 2,\n margin: \"4px\", // for focus outline\n height: \"80%\",\n top: 0,\n right: 0,\n outlineOffset: \"-50px\",\n color: color || palette.primary.contrastText,\n },\n content: {\n position: \"relative\",\n paddingLeft: spacing(3),\n paddingRight: spacing(6), // for close button\n paddingTop: spacing(1),\n paddingBottom: spacing(1),\n \"& a\": {\n color: linkColor || \"#0B66AD\",\n },\n \"& p\": {\n marginTop: \"0px\",\n marginBottom: \"0px\",\n },\n },\n }),\n);\n\nconst BannerBase: React.FC> = ({\n color,\n bgColor,\n linkColor,\n children,\n open,\n onClose,\n center,\n}) => {\n const mobile = useIsMobile();\n const { classes, cx } = useStyles({ color, bgColor, linkColor });\n\n return (\n \n \n \n {children}\n \n \n \n \n \n \n );\n};\n\nexport default BannerBase;\n","import HtmlTypography from \"Components/HtmlTypography\";\nimport { Banner, BannerColorEnum } from \"gqlTypes\";\nimport React from \"react\";\nimport BannerBase, { BannerBaseProps } from \"./BannerBase\";\n\nconst AdminBannerColors = {\n [BannerColorEnum.Blue]: {\n color: \"#253567\",\n bgColor: \"#E1F2FF\",\n },\n [BannerColorEnum.Yellow]: {\n color: \"#4F2600\",\n bgColor: \"#FFF0D9\",\n },\n [BannerColorEnum.Red]: {\n color: \"#4F0000\",\n bgColor: \"#FFDDDA\",\n },\n};\nconst AdminBanner: React.FC> = ({\n banner,\n ...props\n}) => {\n return (\n \n \n \n );\n};\n\nexport default AdminBanner;\n","import React from \"react\";\nimport { CircularProgress, Box, BoxProps } from \"@mui/material\";\nimport NavbarContainer from \"Components/NavbarComponents/Navbar\";\n\nexport type RoutesNavFallbackProps = {\n source?: string;\n} & BoxProps;\n\nconst RoutesNavFallback: React.FC> = ({\n source,\n ...boxProps\n}) => {\n // console.log('LOADING: ' + source)\n return (\n \n \n <>\n \n \n \n {/* {source && {source}} */}\n \n \n );\n};\n\nexport default React.memo(RoutesNavFallback) as typeof RoutesNavFallback;\n","import { Box, Grid, Link, Typography, Alert, AlertTitle } from \"@mui/material\";\nimport { LoadingBox } from \"Components\";\nimport ContentSubmitButton from \"Components/ContentSubmitButton\";\nimport ContentTextField from \"Components/ContentTextField\";\nimport { Field } from \"formik\";\nimport { useFormatMessage } from \"Localization/hooks\";\n\nimport QRCode from \"qrcode\";\nimport React, { useCallback, useEffect, useRef } from \"react\";\nimport UserForm from \"User/Components/UserForm\";\nimport {\n OtpInput,\n useDestroyUserSession,\n useTwoFactorEnable,\n useTwoFactorQrCode,\n} from \"User/Hooks/userHooks\";\nimport { validateRequiredField } from \"utils/validations\";\nimport UserLayout from \"./UserLayout\";\n\nconst TwoFactorSetup: React.FC<{ onCompleted: VoidFunction }> = ({ onCompleted }) => {\n const t = useFormatMessage();\n const canvasRef = useRef(null);\n const [data, qrCodeStatus] = useTwoFactorQrCode();\n const [enable2fa, enableStatus] = useTwoFactorEnable();\n const [handleLogout] = useDestroyUserSession();\n\n const handleSubmitEnable = useCallback(\n (input: OtpInput) =>\n enable2fa(input).then((ok) => {\n if (ok) {\n onCompleted();\n }\n }),\n [enable2fa, onCompleted],\n );\n\n // Render QR code in canvas\n useEffect(() => {\n if (!canvasRef.current) return;\n if (qrCodeStatus === \"loading\" || !data?.provisioning_uri) return;\n\n QRCode.toCanvas(canvasRef.current, data.provisioning_uri);\n }, [data, qrCodeStatus]);\n\n if (qrCodeStatus === \"loading\") {\n return ;\n }\n\n return (\n \n \n \n Two-factor authentication is required for your account.\n \n Please follow the instructions below or{\" \"}\n \n log out.\n \n \n \n \n \n <>\n \n \n To begin, install an App such as Google Authenticator or Authy and use\n it to scan the following QR code:\n \n \n \n {canvasRef && data && (\n \n \n \n Key: {data.otp_secret}\n \n \n )}\n \n \n \n Enter a code from your Two-Factor Authentication app below and click verify. Each time\n you log in, you will be asked to enter a new code.\n \n \n \n \n \n \n \n \n \n Verify\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default TwoFactorSetup;\n","// import OrganizationDashboard from \"PropertyManagement/OrganizationDashboard\";\nimport React, { lazy } from \"react\";\nimport { Redirect, Route, Switch } from \"react-router-dom\";\nimport { useFetchCurrentUser } from \"User/Hooks/userHooks\";\nimport PageNotFound from \"./PageNotFound\";\nimport RouterSuspense from \"./RouterSuspense\";\nimport NavFallback from \"./NavFallback\";\nimport BlockFallback from \"./BlockFallback\";\nimport TwoFactorSetup from \"User/Components/TwoFactorSetup\";\nimport AppProvider from \"AppProvider\";\n\nconst AppRouter = lazy(() => import(\"./AppRouter\"));\nconst UserFormRouter = lazy(() => import(\"./UserFormRouter\"));\nconst MyAccountRouter = lazy(() => import(\"./MyAccountRouter\"));\nconst Print = lazy(() => import(\"Navigator/Print\"));\n\nconst handleLoginSuccess = () => {\n // FIXME - need a page load because the csrf token changes after login\n window.location.replace(\"/me/organization_dashboard\");\n};\nconst Routes: React.FC> = () => {\n const [currentUser] = useFetchCurrentUser();\n\n if (currentUser === undefined) return ;\n\n if (currentUser && currentUser.setup_2fa_required) {\n return ;\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n {currentUser ? (\n \n ) : (\n \n )}\n \n {!currentUser && }\n {!currentUser && }\n \n \n \n \n \n \n \n \n );\n};\n\nexport default Routes;\n","import { Link, MenuItem, Typography } from \"@mui/material\";\nimport React from \"react\";\nimport { NavbarLinkProps } from \"./NavbarItems\";\nimport GtmWrapper from \"Components/GtmWrapper\";\n\nexport type GtmNavbarLinkProps = {\n menuItem?: boolean;\n} & NavbarLinkProps;\n\nconst GtmNavbarLink: React.FC> = ({\n title,\n href,\n disabled,\n LinkProps,\n GtmWrapperProps,\n menuItem = false,\n}) => {\n if (disabled) {\n return menuItem ? {title} : {title};\n }\n\n return (\n \n {(trigger, dataAttrs) =>\n menuItem ? (\n \n {title}\n \n ) : (\n \n {title}\n \n )\n }\n \n );\n};\n\nexport default GtmNavbarLink;\n","import React from \"react\";\nimport { Link as RouterLink } from \"react-router-dom\";\nimport { Link, Typography, MenuItem } from \"@mui/material\";\nimport { NavbarRouteLinkProps } from \"./NavbarItems\";\nimport GtmWrapper from \"Components/GtmWrapper\";\n\nexport type GtmNavbarRouteLinkProps = {\n menuItem?: boolean;\n} & NavbarRouteLinkProps;\n\nconst GtmNavbarRouteLink: React.FC> = ({\n title,\n disabled,\n to,\n LinkProps,\n GtmWrapperProps,\n menuItem = false,\n}) => {\n if (disabled) {\n return menuItem ? {title} : {title};\n }\n\n return (\n \n {(trigger, dataAttrs) =>\n menuItem ? (\n \n {title}\n \n ) : (\n \n {title}\n \n )\n }\n \n );\n};\n\nexport default GtmNavbarRouteLink;\n","import { Link, MenuItem } from \"@mui/material\";\nimport React from \"react\";\nimport { NavbarActionProps } from \"./NavbarItems\";\nimport GtmWrapper from \"Components/GtmWrapper\";\n\nexport type GtmNavbarActionProps = {\n menuItem?: boolean;\n} & NavbarActionProps;\n\nconst GtmNavbarAction: React.FC> = ({\n title,\n action,\n disabled,\n LinkProps,\n GtmWrapperProps,\n menuItem = false,\n children,\n}) => {\n return (\n \n {(trigger, dataAttrs) =>\n menuItem ? (\n {} : action}\n className={`${LinkProps?.className || \"\"} ${trigger}`}\n {...dataAttrs}\n >\n {title}\n \n ) : (\n \n {children}\n \n )\n }\n \n );\n};\n\nexport default GtmNavbarAction;\n","export const hnmiLinkedIn = \"https://www.linkedin.com/company/housing-navigator\";\nexport const about = \"https://housingnavigatorma.org/\";\nexport const resources = \"https://housingnavigatorma.org/resources/help-center/\";\nexport const accessibilityPolicy = \"https://housingnavigatorma.org/accessibility-statement/\";\nexport const contactUs = \"#\";\nexport const careers = \"#\";\nexport const availableSoon = \"#\";\nexport const termsOfService = \"https://housingnavigatorma.org/terms-of-service/\";\nexport const privacyPolicy = \"https://housingnavigatorma.org/privacy-policy/\";\nexport const ownerResources =\n \"https://www.housingnavigatorma.org/resources/owner-developer-resources/\";\nexport const learnMore = \"https://www.housingnavigatorma.org\";\nexport const supportUs =\n \"https://www.housingnavigatorma.org/get-involved/support-our-mission/#donate-anchor\";\nexport const joinOwnerDrive = \"https://housingnavigatorma.org/resources/owner-developer-resources/\";\nexport const housingAuthorityLinks = {\n dhcd: \"https://www.mass.gov/orgs/housing-and-community-development\",\n mhp: \"https://www.mhp.net/\",\n masshousing: \"https://www.masshousing.com/\",\n massdevelopment: \"https://www.masshousing.com/\",\n};\nexport const metrolist = \"https://www.boston.gov/metrolist\";\nexport const masshousing = \"https://www.masshousing.com/renters\";\nexport const massaccess = \"https://www.massaccesshousingregistry.org/\";\nexport const myMassHomes = \"https://www.mymasshome.org/find\";\nexport const champPreferenceImminentDanger =\n \"https://www.mass.gov/doc/housing-situation-priority-policy-for-lhas/download\";\nexport const champPreferenceHowToApply =\n \"https://www.mass.gov/guides/how-to-apply-for-public-housing\";\nexport const landingV2ResourcesLink =\n \"https://housingnavigatorma.org/resources/help-center/?_gl=1*13gdx9w*_ga*MjAwNDM0OTIzNC4xNzI2MTY5Mzc1*_ga_CYX83NNXBL*MTcyOTU0MTM4Ni4xLjEuMTcyOTU0MTU1OC4wLjAuMA\";\nexport const learnMoreV2WhoSiteFor = \"https://housingnavigatorma.org/resources/help-center/\";\nexport const supportUsV2WhoSiteFor = \"https://housingnavigatorma.org/support-our-mission/\";\nexport const myMassHomeV2WhoSiteFor = \"https://www.mymasshome.org/\";\n","import { useMediaQuery } from \"@mui/material\";\nimport { useTheme } from \"@mui/material\";\n\ntype AllowedBreakpointValues = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nconst useIsMobile = (breakpoint: AllowedBreakpointValues = \"md\") =>\n useMediaQuery(useTheme().breakpoints.down(breakpoint));\n\nexport default useIsMobile;\n","module.exports = __webpack_public_path__ + \"media/Components/NavbarComponents/logo-e0699e496f9f40a8394adfbf89d680e0.svg\";","import React, { ReactNode, ReactElement, ComponentProps, Ref } from \"react\";\nimport { Link as RouterLink } from \"react-router-dom\";\nimport { LinkProps } from \"@mui/material\";\nimport { GtmWrapperProps } from \"Components/GtmWrapper\";\n\nexport type NavbarActionProps = {\n title: ReactNode;\n action: VoidFunction;\n disabled?: boolean;\n LinkProps?: LinkProps;\n GtmWrapperProps: Omit;\n};\n\nexport type NavbarLinkProps = {\n title: ReactNode;\n href: string;\n disabled?: boolean;\n LinkProps?: LinkProps;\n GtmWrapperProps: Omit;\n};\n\nexport type NavbarRouteLinkProps = {\n title: ReactNode;\n LinkProps?: LinkProps;\n disabled?: boolean;\n to: string;\n GtmWrapperProps: Omit;\n};\n\nexport type NavbarMenuProps = {\n title: ReactNode;\n label?: string;\n LinkProps?: LinkProps;\n ref?: Ref;\n children: ReactNode;\n GtmWrapperProps: Omit;\n};\n\nexport const NavbarAction: React.FC> = () => null;\nexport const NavbarLink: React.FC> = () => null;\nexport const NavbarRouteLink: React.FC> = () => null;\nexport const NavbarMenu: React.FC> = () => null;\n\nexport type ItemTypes =\n | typeof NavbarAction\n | typeof NavbarLink\n | typeof NavbarRouteLink\n | typeof NavbarMenu;\n\nexport const isType = (\n elem: ReactElement,\n type: T,\n): elem is ReactElement> => elem.type === type;\n","import { gql } from '@apollo/client';\nexport type Maybe = T | null;\nexport type Exact = { [K in keyof T]: T[K] };\nexport type MakeOptional = Omit & { [SubKey in K]?: Maybe };\nexport type MakeMaybe = Omit & { [SubKey in K]: Maybe };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: string;\n String: string;\n Boolean: boolean;\n Int: number;\n Float: number;\n /** DateTime type */\n Datetime: any;\n /** File Upload Type with translation */\n File: any;\n /** Arbitrary JSON Type */\n JsonObject: any;\n};\n\n/** Autogenerated input type of AddListingToOrganization */\nexport type AddListingToOrganizationInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n organizationId: Scalars['ID'];\n role?: Maybe>;\n slug: Scalars['ID'];\n};\n\n/** Autogenerated input type of AddOrganizationRoleToUser */\nexport type AddOrganizationRoleToUserInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n organizationId: Scalars['ID'];\n role: OrganizationUserRoleEnum;\n userId: Scalars['ID'];\n};\n\n/** Autogenerated input type of AddUserToOrganization */\nexport type AddUserToOrganizationInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n organizationId: Scalars['ID'];\n userId: Scalars['ID'];\n};\n\nexport type AppDocument = FileOwnerInterface & {\n __typename?: 'AppDocument';\n category?: Maybe;\n extension?: Maybe;\n fileUrl?: Maybe;\n filename?: Maybe;\n id: Scalars['ID'];\n name: Scalars['String'];\n};\n\nexport type AppDocumentInput = {\n blobId?: Maybe;\n category?: Maybe;\n deleted?: Maybe;\n id?: Maybe;\n name?: Maybe;\n};\n\n/** A user-readable error */\nexport type AttributeError = {\n __typename?: 'AttributeError';\n /** Which input value this error came from */\n attribute: Scalars['String'];\n /** A description of the error */\n message: Scalars['String'];\n};\n\nexport type Banner = {\n __typename?: 'Banner';\n active: Scalars['Boolean'];\n color: BannerColorEnum;\n content: Scalars['String'];\n};\n\nexport enum BannerColorEnum {\n Blue = 'BLUE',\n Red = 'RED',\n Yellow = 'YELLOW'\n}\n\nexport type BannerInput = {\n active?: Maybe;\n color: BannerColorEnum;\n content: Scalars['String'];\n otpAttempt: Scalars['String'];\n};\n\nexport type BoundsInput = {\n ne?: Maybe;\n nw?: Maybe;\n se?: Maybe;\n sw?: Maybe;\n};\n\nexport type Building = BuildingInterface & Publishable & {\n __typename?: 'Building';\n accessibilityDetails?: Maybe;\n additionalDetails?: Maybe;\n address: BuildingAddress;\n afhmp?: Maybe;\n ageRestrictionDetail?: Maybe;\n ageRestrictionOrDisabled?: Maybe;\n ageRestrictionSize?: Maybe;\n ageRestrictionType?: Maybe;\n allowedUnitTypes: Array;\n amenities: Array;\n amenitiesDetails?: Maybe;\n applicationUrl?: Maybe;\n availability: Array;\n cedacId?: Maybe;\n changedAt?: Maybe;\n changedBy?: Maybe;\n cityOptions: Array;\n closedReferralCount?: Maybe;\n closedReferralType?: Maybe;\n contact?: Maybe;\n contactEmail?: Maybe;\n contactName?: Maybe;\n contactPhone?: Maybe;\n deedRestrictionDetails?: Maybe;\n description?: Maybe;\n developer?: Maybe;\n documents: Array;\n duplicate?: Maybe;\n duplicateSlug?: Maybe;\n fcfsAvailableUnitGroups: Array;\n featured?: Maybe;\n geocode?: Maybe;\n hasAccessibleImages: Scalars['Boolean'];\n hasAccessibleUnits: Scalars['Boolean'];\n hasAgeRestrictions?: Maybe;\n hasClosedReferrals?: Maybe;\n hasClosedWaitlist: Scalars['Boolean'];\n hasCustomIncomeRestrictions: Scalars['Boolean'];\n hasElevator?: Maybe;\n hasFcfs: Scalars['Boolean'];\n hasLottery: Scalars['Boolean'];\n hasOpenWaitlist: Scalars['Boolean'];\n hasPreferences?: Maybe;\n hasRollInShowers?: Maybe;\n hasSetAsides?: Maybe;\n hasStepFreeEntrance?: Maybe;\n hasUnknownStatus: Scalars['Boolean'];\n hasWheelchairAccess?: Maybe;\n history: HistoryEntriesPaginated;\n historySearchFields: Array;\n housingLottery?: Maybe;\n housingSetAsides: Array;\n housingShortWaitlist?: Maybe;\n housingType?: Maybe;\n housingVacancy?: Maybe;\n housingWaitlist: HousingWaitlist;\n id: Scalars['ID'];\n images?: Maybe>;\n includedUtilities: Array;\n isChamp: Scalars['Boolean'];\n isChanged: Scalars['Boolean'];\n isFuture?: Maybe;\n isNew: Scalars['Boolean'];\n isOutdated: Scalars['Boolean'];\n isPublished: Scalars['Boolean'];\n isVerified: Scalars['Boolean'];\n listingScores?: Maybe>;\n location?: Maybe;\n manager?: Maybe;\n managers?: Maybe>;\n masterRecord: MasterRecord;\n maxIncomes: Array;\n metadata?: Maybe;\n minimumAdminPublishScore: ScoreLevel;\n minimumPublishScore: ScoreLevel;\n moveInRequirements: Array;\n name?: Maybe;\n nhpdId?: Maybe;\n noNotifications: Scalars['Boolean'];\n notes?: Maybe;\n organizations: Array;\n overrides?: Maybe>;\n owners?: Maybe>;\n permissions: BuildingPermissions;\n petFriendly?: Maybe;\n petPolicy?: Maybe;\n preferences: Array;\n project: Project;\n projectId?: Maybe;\n publishedAt?: Maybe;\n publishedBy?: Maybe;\n publishedReleaseDate?: Maybe;\n releaseDate?: Maybe;\n scatteredSite?: Maybe;\n scoreSet?: Maybe;\n scoreSets?: Maybe>;\n sensitiveListing: Scalars['Boolean'];\n sensitiveType?: Maybe;\n shiComprehensivePermit?: Maybe;\n shiId?: Maybe;\n showRbi: Scalars['Boolean'];\n slug: Scalars['String'];\n sourceRecords?: Maybe>;\n tags: Array;\n tenure?: Maybe;\n unitGroups: Array;\n units: BuildingUnits;\n unpublishedAt?: Maybe;\n unpublishedBy?: Maybe;\n url?: Maybe;\n utilitiesIncluded?: Maybe;\n verifiedAt?: Maybe;\n verifiedBy?: Maybe;\n visibility?: Maybe;\n visibilityDetails?: Maybe;\n willBeFuture?: Maybe;\n yearBuilt?: Maybe;\n yearMadeAffordable?: Maybe;\n};\n\n\nexport type BuildingAvailabilityArgs = {\n exhaustive?: Maybe;\n};\n\n\nexport type BuildingHistoryArgs = {\n input?: Maybe;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\n\nexport type BuildingHousingLotteryArgs = {\n showExpired?: Maybe;\n};\n\n\nexport type BuildingScoreSetArgs = {\n formName: Scalars['String'];\n};\n\nexport type BuildingAddress = {\n __typename?: 'BuildingAddress';\n city?: Maybe;\n state?: Maybe;\n street1?: Maybe;\n street2?: Maybe;\n street3?: Maybe;\n zipCode?: Maybe;\n};\n\nexport type BuildingAddressInput = {\n city?: Maybe;\n state?: Maybe;\n street1?: Maybe;\n street2?: Maybe;\n street3?: Maybe;\n zipCode?: Maybe;\n};\n\nexport enum BuildingAgeRestriction {\n /** 55+ */\n Age55plus = 'age55plus',\n /** 58+ */\n Age58plus = 'age58plus',\n /** 60+ */\n Age60plus = 'age60plus',\n /** 62+ */\n Age62plus = 'age62plus',\n /** Family */\n Family = 'family',\n /** Other Elderly */\n Other = 'other'\n}\n\nexport enum BuildingAgeRestrictionSizeEnum {\n /** All */\n All = 'all',\n /** One */\n One = 'one'\n}\n\nexport type BuildingAvailabilityResult = {\n __typename?: 'BuildingAvailabilityResult';\n accessibleBedrooms: Array;\n allRbi?: Maybe;\n bedrooms: Array;\n bedroomsInfo: Array;\n maxRent?: Maybe;\n minRent?: Maybe;\n rbi?: Maybe;\n status: BuildingAvailabilityStatus;\n unitCount?: Maybe;\n units?: Maybe>;\n};\n\nexport type BuildingAvailabilityResultBedroomInfo = {\n __typename?: 'BuildingAvailabilityResultBedroomInfo';\n accessible: Scalars['Boolean'];\n allRbi?: Maybe;\n bedroom: BuildingBedroom;\n maxRent?: Maybe;\n minRent?: Maybe;\n rbi?: Maybe;\n unitCount?: Maybe;\n units?: Maybe>;\n};\n\nexport enum BuildingAvailabilityStatus {\n /** Current FCFS units */\n Fcfs = 'fcfs',\n /** Current lottery */\n Lottery = 'lottery',\n /** Has a short waitlist */\n ShortWaitlist = 'shortWaitlist',\n /** Status unknown */\n Unknown = 'unknown',\n /** Waitlist is closed */\n WaitlistClosed = 'waitlistClosed',\n /** Waitlist is open */\n WaitlistOpen = 'waitlistOpen'\n}\n\nexport enum BuildingBedroom {\n /** Eight bedrooms */\n Eight = 'EIGHT',\n /** Five bedrooms */\n Five = 'FIVE',\n /** Four bedrooms */\n Four = 'FOUR',\n /** Four or more bedrooms */\n FourPlus = 'FOUR_PLUS',\n /** One bedroom */\n One = 'ONE',\n /** Seven bedrooms */\n Seven = 'SEVEN',\n /** Six bedrooms */\n Six = 'SIX',\n /** Single room occupancy */\n Sro = 'SRO',\n /** Studio, or other 0BR */\n Studio = 'STUDIO',\n /** Three bedroom */\n Three = 'THREE',\n /** Two bedroom */\n Two = 'TWO'\n}\n\nexport enum BuildingClosedReferralTypeEnum {\n /** All */\n All = 'all',\n /** None */\n None = 'none',\n /** Some */\n Some = 'some'\n}\n\n/** Interface for a general Building */\nexport type BuildingFieldsInterface = {\n accessibilityDetails?: Maybe;\n additionalDetails?: Maybe;\n address: BuildingAddress;\n ageRestrictionDetail?: Maybe;\n ageRestrictionOrDisabled?: Maybe;\n ageRestrictionSize?: Maybe;\n ageRestrictionType?: Maybe;\n amenities: Array;\n amenitiesDetails?: Maybe;\n applicationUrl?: Maybe;\n cedacId?: Maybe;\n closedReferralCount?: Maybe;\n closedReferralType?: Maybe;\n contact?: Maybe;\n contactEmail?: Maybe;\n contactName?: Maybe;\n contactPhone?: Maybe;\n deedRestrictionDetails?: Maybe;\n description?: Maybe;\n developer?: Maybe;\n duplicate?: Maybe;\n duplicateSlug?: Maybe;\n hasAgeRestrictions?: Maybe;\n hasClosedReferrals?: Maybe;\n hasElevator?: Maybe;\n hasPreferences?: Maybe;\n hasRollInShowers?: Maybe;\n hasSetAsides?: Maybe;\n hasStepFreeEntrance?: Maybe;\n hasWheelchairAccess?: Maybe;\n housingSetAsides: Array;\n housingType?: Maybe;\n id: Scalars['ID'];\n includedUtilities: Array;\n manager?: Maybe;\n moveInRequirements: Array;\n name?: Maybe;\n nhpdId?: Maybe;\n noNotifications: Scalars['Boolean'];\n notes?: Maybe;\n petFriendly?: Maybe;\n petPolicy?: Maybe;\n preferences: Array;\n project: Project;\n projectId?: Maybe;\n scatteredSite?: Maybe;\n sensitiveListing: Scalars['Boolean'];\n sensitiveType?: Maybe;\n shiComprehensivePermit?: Maybe;\n shiId?: Maybe;\n slug: Scalars['String'];\n tags: Array;\n tenure?: Maybe;\n units: BuildingUnits;\n url?: Maybe;\n utilitiesIncluded?: Maybe;\n visibility?: Maybe;\n visibilityDetails?: Maybe;\n yearBuilt?: Maybe;\n yearMadeAffordable?: Maybe;\n};\n\nexport type BuildingImage = {\n __typename?: 'BuildingImage';\n accessibilityFeatures: Scalars['Boolean'];\n bannerUrl: Scalars['String'];\n caption?: Maybe;\n cardUrl: Scalars['String'];\n deleted: Scalars['Boolean'];\n id: Scalars['ID'];\n landingUrl: Scalars['String'];\n lightboxUrl: Scalars['String'];\n location?: Maybe;\n name?: Maybe;\n owner: BuildingObject;\n slug: Scalars['String'];\n thumbnailUrl: Scalars['String'];\n url: Scalars['String'];\n};\n\nexport type BuildingImageInput = {\n accessibilityFeatures?: Maybe;\n blobId?: Maybe;\n caption?: Maybe;\n deleted?: Maybe;\n location?: Maybe;\n name?: Maybe;\n organizationId?: Maybe;\n};\n\nexport type BuildingInput = {\n cedacId?: Maybe;\n deedRestrictionDetails?: Maybe;\n developer?: Maybe;\n duplicate?: Maybe;\n duplicateSlug?: Maybe;\n manager?: Maybe;\n nhpdId?: Maybe;\n noNotifications?: Maybe;\n notes?: Maybe;\n sensitiveListing?: Maybe;\n sensitiveType?: Maybe;\n shiComprehensivePermit?: Maybe;\n shiId?: Maybe;\n tags?: Maybe>;\n visibility?: Maybe;\n visibilityDetails?: Maybe;\n yearBuilt?: Maybe;\n yearMadeAffordable?: Maybe;\n};\n\n/** Interface for a general Building */\nexport type BuildingInterface = {\n accessibilityDetails?: Maybe;\n additionalDetails?: Maybe;\n address: BuildingAddress;\n afhmp?: Maybe;\n ageRestrictionDetail?: Maybe;\n ageRestrictionOrDisabled?: Maybe;\n ageRestrictionSize?: Maybe;\n ageRestrictionType?: Maybe;\n allowedUnitTypes: Array;\n amenities: Array;\n amenitiesDetails?: Maybe;\n applicationUrl?: Maybe;\n availability: Array;\n cedacId?: Maybe;\n cityOptions: Array;\n closedReferralCount?: Maybe;\n closedReferralType?: Maybe;\n contact?: Maybe;\n contactEmail?: Maybe;\n contactName?: Maybe;\n contactPhone?: Maybe;\n deedRestrictionDetails?: Maybe;\n description?: Maybe;\n developer?: Maybe;\n documents: Array;\n duplicate?: Maybe;\n duplicateSlug?: Maybe;\n fcfsAvailableUnitGroups: Array;\n featured?: Maybe;\n geocode?: Maybe;\n hasAccessibleImages: Scalars['Boolean'];\n hasAccessibleUnits: Scalars['Boolean'];\n hasAgeRestrictions?: Maybe;\n hasClosedReferrals?: Maybe;\n hasClosedWaitlist: Scalars['Boolean'];\n hasCustomIncomeRestrictions: Scalars['Boolean'];\n hasElevator?: Maybe;\n hasFcfs: Scalars['Boolean'];\n hasLottery: Scalars['Boolean'];\n hasOpenWaitlist: Scalars['Boolean'];\n hasPreferences?: Maybe;\n hasRollInShowers?: Maybe;\n hasSetAsides?: Maybe;\n hasStepFreeEntrance?: Maybe;\n hasUnknownStatus: Scalars['Boolean'];\n hasWheelchairAccess?: Maybe;\n history: HistoryEntriesPaginated;\n historySearchFields: Array;\n housingLottery?: Maybe;\n housingSetAsides: Array;\n housingShortWaitlist?: Maybe;\n housingType?: Maybe;\n housingVacancy?: Maybe;\n housingWaitlist: HousingWaitlist;\n id: Scalars['ID'];\n images?: Maybe>;\n includedUtilities: Array;\n isChamp: Scalars['Boolean'];\n listingScores?: Maybe>;\n location?: Maybe;\n manager?: Maybe;\n managers?: Maybe>;\n maxIncomes: Array;\n minimumAdminPublishScore: ScoreLevel;\n minimumPublishScore: ScoreLevel;\n moveInRequirements: Array;\n name?: Maybe;\n nhpdId?: Maybe;\n noNotifications: Scalars['Boolean'];\n notes?: Maybe;\n organizations: Array;\n overrides?: Maybe>;\n owners?: Maybe>;\n permissions: BuildingPermissions;\n petFriendly?: Maybe;\n petPolicy?: Maybe;\n preferences: Array;\n project: Project;\n projectId?: Maybe;\n releaseDate?: Maybe;\n scatteredSite?: Maybe;\n scoreSet?: Maybe;\n scoreSets?: Maybe>;\n sensitiveListing: Scalars['Boolean'];\n sensitiveType?: Maybe;\n shiComprehensivePermit?: Maybe;\n shiId?: Maybe;\n showRbi: Scalars['Boolean'];\n slug: Scalars['String'];\n sourceRecords?: Maybe>;\n tags: Array;\n tenure?: Maybe;\n unitGroups: Array;\n units: BuildingUnits;\n url?: Maybe;\n utilitiesIncluded?: Maybe;\n visibility?: Maybe;\n visibilityDetails?: Maybe;\n willBeFuture?: Maybe;\n yearBuilt?: Maybe;\n yearMadeAffordable?: Maybe;\n};\n\n\n/** Interface for a general Building */\nexport type BuildingInterfaceAvailabilityArgs = {\n exhaustive?: Maybe;\n};\n\n\n/** Interface for a general Building */\nexport type BuildingInterfaceHistoryArgs = {\n input?: Maybe;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\n\n/** Interface for a general Building */\nexport type BuildingInterfaceHousingLotteryArgs = {\n showExpired?: Maybe;\n};\n\n\n/** Interface for a general Building */\nexport type BuildingInterfaceScoreSetArgs = {\n formName: Scalars['String'];\n};\n\nexport type BuildingManager = {\n __typename?: 'BuildingManager';\n name: Scalars['String'];\n};\n\nexport type BuildingManagerInput = {\n name?: Maybe;\n};\n\nexport type BuildingMetadata = {\n __typename?: 'BuildingMetadata';\n created: Scalars['Datetime'];\n lastMerged: Scalars['Datetime'];\n published: Scalars['Boolean'];\n updated: Scalars['Datetime'];\n};\n\n/** Objects that share the primary building interface */\nexport type BuildingObject = Building | BuildingPreview | InventoryRecord;\n\nexport type BuildingOverride = {\n __typename?: 'BuildingOverride';\n id: Scalars['ID'];\n originalValue?: Maybe;\n property: Scalars['String'];\n updatedAt: Scalars['Datetime'];\n updatedBy?: Maybe;\n value: Scalars['String'];\n};\n\nexport type BuildingPermissions = {\n __typename?: 'BuildingPermissions';\n /** Admin publish listing? */\n canAdminPublishListing?: Maybe;\n /** Publish listing? */\n canPublishListing?: Maybe;\n /** Unpublish listing? */\n canUnpublishListing?: Maybe;\n /** Update preview? */\n canUpdatePreview?: Maybe;\n /** Verify listing? */\n canVerifyListing?: Maybe;\n};\n\nexport type BuildingPreview = BuildingInterface & Publishable & {\n __typename?: 'BuildingPreview';\n accessibilityDetails?: Maybe;\n additionalDetails?: Maybe;\n address: BuildingAddress;\n afhmp?: Maybe;\n ageRestrictionDetail?: Maybe;\n ageRestrictionOrDisabled?: Maybe;\n ageRestrictionSize?: Maybe;\n ageRestrictionType?: Maybe;\n allowedUnitTypes: Array;\n amenities: Array;\n amenitiesDetails?: Maybe;\n applicationUrl?: Maybe;\n availability: Array;\n cedacId?: Maybe;\n changedAt?: Maybe;\n changedBy?: Maybe;\n cityOptions: Array;\n closedReferralCount?: Maybe;\n closedReferralType?: Maybe;\n contact?: Maybe;\n contactEmail?: Maybe;\n contactName?: Maybe;\n contactPhone?: Maybe;\n deedRestrictionDetails?: Maybe;\n description?: Maybe;\n developer?: Maybe;\n documents: Array;\n duplicate?: Maybe;\n duplicateSlug?: Maybe;\n fcfsAvailableUnitGroups: Array;\n featured?: Maybe;\n geocode?: Maybe;\n hasAccessibleImages: Scalars['Boolean'];\n hasAccessibleUnits: Scalars['Boolean'];\n hasAgeRestrictions?: Maybe;\n hasClosedReferrals?: Maybe;\n hasClosedWaitlist: Scalars['Boolean'];\n hasCustomIncomeRestrictions: Scalars['Boolean'];\n hasElevator?: Maybe;\n hasFcfs: Scalars['Boolean'];\n hasLottery: Scalars['Boolean'];\n hasOpenWaitlist: Scalars['Boolean'];\n hasPreferences?: Maybe;\n hasRollInShowers?: Maybe;\n hasSetAsides?: Maybe;\n hasStepFreeEntrance?: Maybe;\n hasUnknownStatus: Scalars['Boolean'];\n hasWheelchairAccess?: Maybe;\n history: HistoryEntriesPaginated;\n historySearchFields: Array;\n housingLottery?: Maybe;\n housingSetAsides: Array;\n housingShortWaitlist?: Maybe;\n housingType?: Maybe;\n housingVacancy?: Maybe;\n housingWaitlist: HousingWaitlist;\n id: Scalars['ID'];\n images?: Maybe>;\n includedUtilities: Array;\n isChamp: Scalars['Boolean'];\n isChanged: Scalars['Boolean'];\n isFuture?: Maybe;\n isNew: Scalars['Boolean'];\n isOutdated: Scalars['Boolean'];\n isPublished: Scalars['Boolean'];\n isVerified: Scalars['Boolean'];\n listingScores?: Maybe>;\n location?: Maybe;\n manager?: Maybe;\n managers?: Maybe>;\n masterRecord: MasterRecord;\n maxIncomes: Array;\n metadata?: Maybe;\n minimumAdminPublishScore: ScoreLevel;\n minimumPublishScore: ScoreLevel;\n moveInRequirements: Array;\n name?: Maybe;\n nhpdId?: Maybe;\n noNotifications: Scalars['Boolean'];\n notes?: Maybe;\n organizations: Array;\n overrides?: Maybe>;\n owners?: Maybe>;\n permissions: BuildingPermissions;\n petFriendly?: Maybe;\n petPolicy?: Maybe;\n preferences: Array;\n project: Project;\n projectId?: Maybe;\n publishedAt?: Maybe;\n publishedBy?: Maybe;\n publishedReleaseDate?: Maybe;\n releaseDate?: Maybe;\n scatteredSite?: Maybe;\n scoreSet?: Maybe;\n scoreSets?: Maybe>;\n sensitiveListing: Scalars['Boolean'];\n sensitiveType?: Maybe;\n shiComprehensivePermit?: Maybe;\n shiId?: Maybe;\n showRbi: Scalars['Boolean'];\n slug: Scalars['String'];\n sourceRecords?: Maybe>;\n tags: Array;\n tenure?: Maybe;\n unitGroups: Array;\n units: BuildingUnits;\n unpublishedAt?: Maybe;\n unpublishedBy?: Maybe;\n url?: Maybe;\n utilitiesIncluded?: Maybe;\n verifiedAt?: Maybe;\n verifiedBy?: Maybe;\n visibility?: Maybe;\n visibilityDetails?: Maybe;\n willBeFuture?: Maybe;\n yearBuilt?: Maybe;\n yearMadeAffordable?: Maybe;\n};\n\n\nexport type BuildingPreviewAvailabilityArgs = {\n exhaustive?: Maybe;\n};\n\n\nexport type BuildingPreviewHistoryArgs = {\n input?: Maybe;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\n\nexport type BuildingPreviewHousingLotteryArgs = {\n showExpired?: Maybe;\n};\n\n\nexport type BuildingPreviewScoreSetArgs = {\n formName: Scalars['String'];\n};\n\nexport type BuildingSearchInput = {\n accessibilityFeatures?: Maybe>;\n ageRestrictedOrDisabled?: Maybe;\n ageRestriction?: Maybe;\n allNearby?: Maybe;\n amenities?: Maybe>;\n availability?: Maybe;\n bounds?: Maybe;\n city?: Maybe;\n geoComponents?: Maybe>;\n hasBelowMarketRentUnits?: Maybe;\n hasClosedWaitlist?: Maybe;\n hasDeeplyAffordableUnits?: Maybe;\n hasElderlyHousing?: Maybe;\n hasFcfs?: Maybe;\n hasLottery?: Maybe;\n hasOpenWaitlist?: Maybe;\n hasShortWaitlist?: Maybe;\n hasUnitAccessibility?: Maybe>;\n isAgeRestricted?: Maybe;\n loc?: Maybe;\n locCoords?: Maybe;\n locType?: Maybe;\n numberBedrooms?: Maybe>;\n petFriendly?: Maybe;\n term?: Maybe;\n verified?: Maybe;\n};\n\nexport type BuildingSearchResult = PaginatedInterface & {\n __typename?: 'BuildingSearchResult';\n allNearbyResults: Array;\n allResults: Array;\n currentPage: Scalars['Int'];\n nearbyCount: Scalars['Int'];\n nearbyResults: Array;\n nextPage?: Maybe;\n otherCounts: BuildingSearchResultCounts;\n overLimit: Scalars['Boolean'];\n pageSize: Scalars['Int'];\n pageWithItem?: Maybe;\n prevPage?: Maybe;\n results: Array;\n totalCount: Scalars['Int'];\n totalPages: Scalars['Int'];\n};\n\n\nexport type BuildingSearchResultPageWithItemArgs = {\n field: Scalars['String'];\n id: Scalars['ID'];\n};\n\nexport type BuildingSearchResultCounts = {\n __typename?: 'BuildingSearchResultCounts';\n accessibleUnits: Scalars['Int'];\n adminVisibility: Scalars['Int'];\n affordableUnits: Scalars['Int'];\n allProperties: Scalars['Int'];\n editorVisibility: Scalars['Int'];\n fcfsProperties: Scalars['Int'];\n fcfsUnits: Scalars['Int'];\n lotteryProperties: Scalars['Int'];\n lotteryUnits: Scalars['Int'];\n mobilityAccessibleUnits: Scalars['Int'];\n notPublishedProperties: Scalars['Int'];\n publicVisibility: Scalars['Int'];\n publishedProperties: Scalars['Int'];\n sensitiveProperties: Scalars['Int'];\n totalUnits: Scalars['Int'];\n verifiedProperties: Scalars['Int'];\n waitlistClosedProperties: Scalars['Int'];\n waitlistClosedUnits: Scalars['Int'];\n waitlistOpenProperties: Scalars['Int'];\n waitlistOpenUnits: Scalars['Int'];\n waitlistUnknownProperties: Scalars['Int'];\n waitlistUnknownUnits: Scalars['Int'];\n};\n\nexport enum BuildingTenure {\n Mixed = 'mixed',\n Own = 'own',\n Rent = 'rent'\n}\n\nexport type BuildingUnitGroup = {\n __typename?: 'BuildingUnitGroup';\n ami?: Maybe;\n bathroomCount?: Maybe;\n deleted: Scalars['Boolean'];\n estimatedMaxIncome?: Maybe;\n fcfsUnitCount?: Maybe;\n floating: Scalars['Boolean'];\n hearingAccessible: Scalars['Boolean'];\n id: Scalars['ID'];\n isAffordable: Scalars['Boolean'];\n maxIncome?: Maybe;\n maxIncomes: Array;\n minIncome?: Maybe;\n mobilityAccessible: Scalars['Boolean'];\n rentType?: Maybe;\n rentalCost?: Maybe;\n shortWaitlist: Scalars['Boolean'];\n unitCount: Scalars['Int'];\n unitType: BuildingBedroom;\n visionAccessible: Scalars['Boolean'];\n};\n\n\nexport type BuildingUnitGroupEstimatedMaxIncomeArgs = {\n householdSize?: Maybe;\n};\n\n\nexport type BuildingUnitGroupMaxIncomeArgs = {\n householdSize?: Maybe;\n};\n\nexport type BuildingUnitGroupInput = {\n ami?: Maybe;\n bathroomCount?: Maybe;\n deleted?: Maybe;\n fcfsUnitCount?: Maybe;\n floating?: Maybe;\n hearingAccessible?: Maybe;\n id?: Maybe;\n minIncome?: Maybe;\n mobilityAccessible?: Maybe;\n rentType?: Maybe;\n rentalCost?: Maybe;\n shortWaitlist?: Maybe;\n unitCount?: Maybe;\n unitType?: Maybe;\n visionAccessible?: Maybe;\n};\n\nexport type BuildingUnits = {\n __typename?: 'BuildingUnits';\n availability: Array;\n deeplyAffordable?: Maybe;\n maxRent?: Maybe;\n minRent?: Maybe;\n totals: BuildingUnitsTotals;\n};\n\nexport type BuildingUnitsAvailability = {\n __typename?: 'BuildingUnitsAvailability';\n accessible?: Maybe;\n available?: Maybe;\n bedrooms: BuildingBedroom;\n total?: Maybe;\n};\n\nexport type BuildingUnitsTotals = {\n __typename?: 'BuildingUnitsTotals';\n accessible?: Maybe;\n affordable?: Maybe;\n deeplyAffordable?: Maybe;\n units?: Maybe;\n};\n\nexport type BuildingUpdateInput = {\n accessibilityDetails?: Maybe;\n additionalDetails?: Maybe;\n address?: Maybe;\n afhmp?: Maybe;\n ageRestrictionDetail?: Maybe;\n ageRestrictionOrDisabled?: Maybe;\n ageRestrictionSize?: Maybe;\n ageRestrictionType?: Maybe;\n amenities?: Maybe>;\n amenitiesDetails?: Maybe;\n applicationUrl?: Maybe;\n closedReferralCount?: Maybe;\n closedReferralType?: Maybe;\n contactEmail?: Maybe;\n contactName?: Maybe;\n contactPhone?: Maybe;\n description?: Maybe;\n documents?: Maybe>;\n geocodeId?: Maybe;\n hasAgeRestrictions?: Maybe;\n hasClosedReferrals?: Maybe;\n hasElevator?: Maybe;\n hasPreferences?: Maybe;\n hasRollInShowers?: Maybe;\n hasSetAsides?: Maybe;\n hasStepFreeEntrance?: Maybe;\n hasWheelchairAccess?: Maybe;\n housingSetAsides?: Maybe>;\n includedUtilities?: Maybe>;\n maxIncomes?: Maybe>;\n moveInRequirements?: Maybe>;\n name?: Maybe;\n petFriendly?: Maybe;\n petPolicy?: Maybe;\n preferences?: Maybe>;\n releaseDate?: Maybe;\n scatteredSite?: Maybe;\n totalAffordableUnits?: Maybe;\n totalUnits?: Maybe;\n unitGroups?: Maybe>;\n url?: Maybe;\n utilitiesIncluded?: Maybe;\n yearBuilt?: Maybe;\n yearMadeAffordable?: Maybe;\n};\n\nexport enum BuildingVisibilities {\n /** Only admins can view */\n Admin = 'admin',\n /** Editors and admins can view */\n Editor = 'editor',\n /** Anyone can view */\n Public = 'public'\n}\n\nexport type BuildingsPaginated = {\n __typename?: 'BuildingsPaginated';\n allItems: Array;\n hasMoreAfter: Scalars['Boolean'];\n hasMoreBefore: Scalars['Boolean'];\n items: Array;\n itemsCount: Scalars['Int'];\n otherCounts?: Maybe;\n page: Scalars['Int'];\n pageSize: Scalars['Int'];\n pagesCount: Scalars['Int'];\n};\n\nexport enum CacheEnum {\n Building = 'building',\n Search = 'search'\n}\n\nexport enum CertaintyTypes {\n /** Records are exclusively a match */\n Exclusive = 'EXCLUSIVE',\n /** Records are definitely not a match */\n Negative = 'NEGATIVE',\n /** Records are definitely a match */\n Positive = 'POSITIVE',\n /** Records are possibly a match */\n Possible = 'POSSIBLE'\n}\n\n/** Autogenerated return type of ClearCache. */\nexport type ClearCachePayload = {\n __typename?: 'ClearCachePayload';\n message: Scalars['String'];\n success: Scalars['Boolean'];\n};\n\nexport type Coordinates = {\n __typename?: 'Coordinates';\n latitude: Scalars['Float'];\n longitude: Scalars['Float'];\n};\n\nexport type CoordinatesInput = {\n latitude: Scalars['Float'];\n longitude: Scalars['Float'];\n};\n\nexport type CreateBuildingInput = {\n affordableUnits?: Maybe;\n city: Scalars['String'];\n name: Scalars['String'];\n ownerId?: Maybe;\n street1: Scalars['String'];\n totalUnits: Scalars['Int'];\n zipCode: Scalars['String'];\n};\n\n/** Autogenerated input type of CreateOrganization */\nexport type CreateOrganizationInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n input: OrganizationInput;\n};\n\n/** Sources for raw data */\nexport type DataSource = {\n __typename?: 'DataSource';\n code: Scalars['String'];\n createdAt: Scalars['Datetime'];\n description: Scalars['String'];\n id: Scalars['ID'];\n name: Scalars['String'];\n snapshottedAt?: Maybe;\n updatedAt: Scalars['Datetime'];\n};\n\nexport enum DataSourcesEnum {\n /** Boston DND */\n BostonDnd = 'BOSTON_DND',\n /** DHCD MRVP PB */\n Dhcdmrvppb = 'DHCDMRVPPB',\n /** Department of Housing and Community Development 40B Program */\n Dhcd_40B = 'DHCD_40B',\n /** Department of Housing and Community Development Capital Planning System */\n DhcdCps = 'DHCD_CPS',\n /** DHCD Fair Housing */\n DhcdFair = 'DHCD_FAIR',\n /** Department of Housing and Community Development Intelligrants */\n DhcdIntelligrants = 'DHCD_INTELLIGRANTS',\n /** Department of Housing and Community Development Local Action Units (40B Program) */\n DhcdLau_40B = 'DHCD_LAU_40B',\n /** Department of Housing and Community Development Low-Income Housing Tax Credit */\n DhcdLihtc = 'DHCD_LIHTC',\n /** Department of Housing and Community Development Project Based Voucher Program */\n DhcdPbv = 'DHCD_PBV',\n /** DHCD SLIHTC */\n DhcdSlihtc = 'DHCD_SLIHTC',\n /** HNMI Update/Create records */\n Hnmi = 'HNMI',\n /** U.S. Department of Housing and Urban Development Assisted */\n HudAssisted = 'HUD_ASSISTED',\n /** HUD Federal */\n HudFederal = 'HUD_FEDERAL',\n /** U.S. Department of Housing and Urban Development Low-Income Housing Tax Credit */\n HudLihtc = 'HUD_LIHTC',\n /** HUD Multi-Family data */\n HudMultifamily = 'HUD_MULTIFAMILY',\n /** MassHousing 40B data */\n Masshousing_40B = 'MASSHOUSING_40B',\n /** MassHousing data */\n MassHousing = 'MASS_HOUSING',\n /** Mass Housing Partnership */\n Mhp = 'MHP',\n /** MHP 40B */\n Mhp40B = 'MHP40B',\n /** MHP Bedroom */\n Mhpbedroom = 'MHPBEDROOM'\n}\n\n\n/** Autogenerated input type of DeleteBuildingImage */\nexport type DeleteBuildingImageInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n id: Scalars['ID'];\n};\n\n/** Autogenerated input type of DeleteOrganization */\nexport type DeleteOrganizationInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n id: Scalars['ID'];\n};\n\n/** Autogenerated input type of DeleteRecordUpdateBatch */\nexport type DeleteRecordUpdateBatchInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n id: Scalars['ID'];\n};\n\n/** Autogenerated return type of DeleteRecordUpdateBatch. */\nexport type DeleteRecordUpdateBatchPayload = {\n __typename?: 'DeleteRecordUpdateBatchPayload';\n batch?: Maybe;\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n errors: Array;\n success: Scalars['Boolean'];\n};\n\n/** Autogenerated input type of DeleteUser */\nexport type DeleteUserInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n userId: Scalars['ID'];\n};\n\n/** Represents direct upload credentials */\nexport type DirectUpload = {\n __typename?: 'DirectUpload';\n /** Created blob record ID */\n blobId: Scalars['ID'];\n filename: Scalars['String'];\n /** HTTP request headers (JSON-encoded) */\n headers: Scalars['String'];\n /** Created blob record signed ID */\n signedBlobId: Scalars['ID'];\n /** Upload URL */\n url: Scalars['String'];\n};\n\n/** File information required to prepare a direct upload */\nexport type DirectUploadInput = {\n /** File size (bytes) */\n byteSize: Scalars['Int'];\n /** MD5 file checksum as base64 */\n checksum: Scalars['String'];\n /** File content type */\n contentType: Scalars['String'];\n /** Original file name */\n filename: Scalars['String'];\n};\n\nexport type DsiFile = {\n __typename?: 'DsiFile';\n createdAt: Scalars['Datetime'];\n filename: Scalars['String'];\n id: Scalars['ID'];\n import: DsiImport;\n};\n\nexport type DsiFileInput = {\n blobId: Scalars['String'];\n filename?: Maybe;\n rawRecordType: DsiRawRecordType;\n};\n\nexport type DsiImport = {\n __typename?: 'DsiImport';\n createdAt: Scalars['Datetime'];\n createdBy?: Maybe;\n files: Array;\n id: Scalars['ID'];\n name?: Maybe;\n progress: DsiImportProgress;\n recordSearchFields: Array;\n records: DsiRecordsPaginated;\n stats: DsiImportStats;\n submittedAt?: Maybe;\n submittedBy?: Maybe;\n};\n\n\nexport type DsiImportRecordsArgs = {\n input: SearchInput;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\nexport type DsiImportInput = {\n files: Array;\n name?: Maybe;\n};\n\nexport type DsiImportProgress = {\n __typename?: 'DsiImportProgress';\n current?: Maybe;\n id: Scalars['ID'];\n percent?: Maybe;\n status: DsiImportStatus;\n total?: Maybe;\n};\n\nexport type DsiImportStats = {\n __typename?: 'DsiImportStats';\n id: Scalars['ID'];\n statuses: Array;\n totalInventoryRecords: Scalars['Int'];\n totalMatches: Scalars['Int'];\n totalNotMatched: Scalars['Int'];\n totalPossibleMatches: Scalars['Int'];\n totalRecordsToUpdate: Scalars['Int'];\n totalSourceRecords: Scalars['Int'];\n};\n\nexport type DsiImportStatsForStatus = {\n __typename?: 'DsiImportStatsForStatus';\n id: Scalars['ID'];\n status: DsiMatchStatus;\n totalInventoryRecords: Scalars['Int'];\n totalMatches: Scalars['Int'];\n totalRecordsToUpdate: Scalars['Int'];\n totalSourceRecords: Scalars['Int'];\n};\n\nexport enum DsiImportStatus {\n BuildingLinks = 'building_links',\n BuildingMatches = 'building_matches',\n Extracting = 'extracting',\n Initializing = 'initializing',\n Normalizing = 'normalizing',\n Ready = 'ready',\n Submitted = 'submitted'\n}\n\nexport type DsiMatchLink = {\n __typename?: 'DsiMatchLink';\n certainty: DsiMatchLinkCertainty;\n id: Scalars['ID'];\n message?: Maybe;\n score?: Maybe;\n};\n\nexport enum DsiMatchLinkCertainty {\n Positive = 'POSITIVE',\n Possible = 'POSSIBLE'\n}\n\nexport type DsiMatchRecord = {\n __typename?: 'DsiMatchRecord';\n certainty?: Maybe;\n id: Scalars['ID'];\n import: DsiImport;\n matchLinks: Array;\n source: DsiSourceRecord;\n status: DsiMatchStatus;\n};\n\nexport enum DsiMatchStatus {\n Accepted = 'accepted',\n Ignored = 'ignored',\n Likely = 'likely',\n MatchRemoved = 'match_removed',\n Positive = 'positive',\n Possible = 'possible',\n Rejected = 'rejected',\n Unmatched = 'unmatched'\n}\n\nexport enum DsiRawRecordType {\n /** CPS */\n Cps = 'CPS',\n /** HUD LIHTC */\n HudLihtc = 'HUD_LIHTC'\n}\n\nexport type DsiRecord = {\n __typename?: 'DsiRecord';\n id: Scalars['ID'];\n inventoryRecord?: Maybe;\n matchRecords: Array;\n};\n\nexport type DsiRecordsPaginated = {\n __typename?: 'DsiRecordsPaginated';\n allItems: Array;\n hasMoreAfter: Scalars['Boolean'];\n hasMoreBefore: Scalars['Boolean'];\n items: Array;\n itemsCount: Scalars['Int'];\n page: Scalars['Int'];\n pageSize: Scalars['Int'];\n pagesCount: Scalars['Int'];\n};\n\nexport type DsiSourceRecord = {\n __typename?: 'DsiSourceRecord';\n data?: Maybe;\n geocode?: Maybe;\n id: Scalars['ID'];\n projectCity?: Maybe;\n projectName?: Maybe;\n projectStateCode?: Maybe;\n projectStreet1?: Maybe;\n projectZipCode?: Maybe;\n rawData: Scalars['JsonObject'];\n totalUnits?: Maybe;\n type: Scalars['String'];\n};\n\n/** Autogenerated input type of EditUser */\nexport type EditUserInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n id: Scalars['ID'];\n user: UserInput;\n};\n\nexport enum ExportFieldsEnum {\n /** Details about accessible units */\n AccessibilityDetails = 'accessibility_details',\n /** Additional details */\n AdditionalDetails = 'additional_details',\n /** Restriction Details */\n AgeRestrictionDetails = 'age_restriction_details',\n /** Property Amenities */\n Amenities = 'amenities',\n /** Amenities Details */\n AmenitiesDetails = 'amenities_details',\n /** URL - Application */\n ApplicationUrl = 'application_url',\n /** CEDAC ID */\n CedacId = 'cedac_id',\n /** Closed Referral */\n ClosedReferral = 'closed_referral',\n /** Contact Email */\n ContactEmail = 'contact_email',\n /** Contact Name */\n ContactName = 'contact_name',\n /** Contact Information */\n ContactPhone = 'contact_phone',\n /** Data Sources */\n DataSources = 'data_sources',\n /** Property Overview / Description */\n Description = 'description',\n /** Has elevator? */\n HasElevator = 'has_elevator',\n /** HNMI URL */\n HnmiUrl = 'hnmi_url',\n /** Preferences */\n HousingPreferences = 'housing_preferences',\n /** Set Asides */\n HousingSetAsides = 'housing_set_asides',\n /** Housing Type */\n HousingType = 'housing_type',\n /** Waitlists */\n HousingWaitlists = 'housing_waitlists',\n /** Primary Key */\n Id = 'id',\n /** Included Utilities */\n IncludedUtilities = 'included_utilities',\n /** NHPD ID */\n NhpdId = 'nhpd_id',\n /** Notes for HNMI */\n Notes = 'notes',\n /** Organizations */\n Organizations = 'organizations',\n /** Organizations - Manager */\n OrganizationsManager = 'organizations_manager',\n /** Organizations - Owner */\n OrganizationsOwner = 'organizations_owner',\n /** Pets */\n PetFriendly = 'pet_friendly',\n /** Details about pet policy */\n PetPolicy = 'pet_policy',\n /** City */\n ProjectCity = 'project_city',\n /** Developer/Owner notes */\n ProjectDeveloperName = 'project_developer_name',\n /** Source ID */\n ProjectId = 'project_id',\n /** Projects Ids */\n ProjectIds = 'project_ids',\n /** Manager notes */\n ProjectManagementCompany = 'project_management_company',\n /** Property Name */\n ProjectName = 'project_name',\n /** State */\n ProjectStateCode = 'project_state_code',\n /** Address */\n ProjectStreet1 = 'project_street1',\n /** Zip */\n ProjectZipCode = 'project_zip_code',\n /** Published */\n Published = 'published',\n /** Is this a scattered site (multiple locations / addresses using the same application) */\n ScatteredSite = 'scattered_site',\n /** Sensitive Listing */\n SensitiveListing = 'sensitive_listing',\n /** SHI Comprehensive Permit */\n ShiComprehensivePermit = 'shi_comprehensive_permit',\n /** SHI ID */\n ShiId = 'shi_id',\n /** HNMI ID slug */\n Slug = 'slug',\n /** Tags */\n Tags = 'tags',\n /** Rental or mix of rental and home ownership? */\n Tenure = 'tenure',\n /** # of 1BRs */\n Total_1BedroomUnits = 'total_1_bedroom_units',\n /** # of 2BRs */\n Total_2BedroomUnits = 'total_2_bedroom_units',\n /** # of 3BRs */\n Total_3BedroomUnits = 'total_3_bedroom_units',\n /** # of 4+ BRs */\n Total_4PlusBedroomUnits = 'total_4_plus_bedroom_units',\n /** # of accessible units */\n TotalAccessibleUnits = 'total_accessible_units',\n /** # of Total Affordable Units */\n TotalAffordableUnits = 'total_affordable_units',\n /** # of deeply affordable (income based rent) units */\n TotalDeeplyAffordableUnits = 'total_deeply_affordable_units',\n /** # of SROS */\n TotalSroUnits = 'total_sro_units',\n /** # of Studios */\n TotalStudioUnits = 'total_studio_units',\n /** # of Total Units */\n TotalUnits = 'total_units',\n /** URL */\n Url = 'url',\n /** Verified */\n Verified = 'verified',\n /** Visibility */\n Visibility = 'visibility',\n /** Year Built */\n YearBuilt = 'year_built',\n /** Year Made Affordable */\n YearMadeAffordable = 'year_made_affordable'\n}\n\nexport enum FeatureToggle {\n AdminBanner = 'admin_banner',\n GoogleTranslate = 'google_translate',\n ShowMostAffordable = 'show_most_affordable'\n}\n\n\n/** Interface for an item that has a file attached */\nexport type FileOwnerInterface = {\n extension?: Maybe;\n fileUrl?: Maybe;\n filename?: Maybe;\n};\n\n/** Results from attempted geocoding */\nexport type Geocode = {\n __typename?: 'Geocode';\n accuracy?: Maybe;\n components?: Maybe>;\n createdAt: Scalars['Datetime'];\n formattedAddress?: Maybe;\n geocodedAt?: Maybe;\n geom?: Maybe;\n id: Scalars['ID'];\n latitude?: Maybe;\n longitude?: Maybe;\n query: Scalars['String'];\n rawResult: Scalars['JsonObject'];\n updatedAt: Scalars['Datetime'];\n usable: Scalars['Boolean'];\n};\n\nexport type HistoryChange = {\n __typename?: 'HistoryChange';\n after?: Maybe;\n before?: Maybe;\n key: Scalars['String'];\n};\n\nexport type HistoryEntriesPaginated = {\n __typename?: 'HistoryEntriesPaginated';\n allItems: Array;\n hasMoreAfter: Scalars['Boolean'];\n hasMoreBefore: Scalars['Boolean'];\n items: Array;\n itemsCount: Scalars['Int'];\n page: Scalars['Int'];\n pageSize: Scalars['Int'];\n pagesCount: Scalars['Int'];\n};\n\nexport type HistoryEntry = {\n __typename?: 'HistoryEntry';\n changes?: Maybe>;\n createdAt?: Maybe;\n event: HistoryEvent;\n id: Scalars['ID'];\n itemId: Scalars['ID'];\n itemType: Scalars['String'];\n objectChanges?: Maybe;\n whodunnit?: Maybe;\n};\n\nexport enum HistoryEvent {\n Create = 'create',\n Destroy = 'destroy',\n Update = 'update'\n}\n\n/** Housing Lottery Type */\nexport type HousingLottery = {\n __typename?: 'HousingLottery';\n allowedUnitTypes: Array;\n applicantAccommodations?: Maybe;\n contactEmail?: Maybe;\n contactName?: Maybe;\n contactPhone?: Maybe;\n details?: Maybe;\n documents: Array;\n endDate: Scalars['String'];\n id: Scalars['ID'];\n infoSession1Datetime?: Maybe;\n infoSession2Datetime?: Maybe;\n infoSessionDetails?: Maybe;\n infoSessionUrl?: Maybe;\n isActive: Scalars['Boolean'];\n isAllUnits: Scalars['Boolean'];\n isCurrent: Scalars['Boolean'];\n isDatesChanged: Scalars['Boolean'];\n isExpired: Scalars['Boolean'];\n isFuture: Scalars['Boolean'];\n isPublishedActive: Scalars['Boolean'];\n isUnitsChanged: Scalars['Boolean'];\n notifyPropertyContact: Scalars['Boolean'];\n ownContactInfo: Scalars['Boolean'];\n owner: BuildingObject;\n propertyContacts: Array;\n startDate: Scalars['String'];\n unitGroups: Array;\n unitTypes: Array;\n url?: Maybe;\n waitlistStatus: Scalars['String'];\n};\n\nexport type HousingLotteryInput = {\n active?: Maybe;\n applicantAccommodations?: Maybe;\n contactEmail?: Maybe;\n contactName?: Maybe;\n contactPhone?: Maybe;\n details?: Maybe;\n documents?: Maybe>;\n endDate?: Maybe;\n infoSession1Datetime?: Maybe;\n infoSession2Datetime?: Maybe;\n infoSessionDetails?: Maybe;\n infoSessionUrl?: Maybe;\n isAllUnits?: Maybe;\n notifyPropertyContact?: Maybe;\n ownContactInfo?: Maybe;\n propertyContacts?: Maybe>;\n startDate?: Maybe;\n unitGroups?: Maybe>;\n unitTypes?: Maybe>;\n url?: Maybe;\n waitlistStatus?: Maybe;\n};\n\nexport type HousingPreference = {\n __typename?: 'HousingPreference';\n condition?: Maybe;\n details?: Maybe;\n document?: Maybe;\n id: Scalars['ID'];\n kind: Scalars['String'];\n};\n\nexport type HousingPreferenceInput = {\n condition?: Maybe;\n deleted?: Maybe;\n details?: Maybe;\n document?: Maybe;\n id?: Maybe;\n kind?: Maybe;\n};\n\nexport type HousingSetAside = {\n __typename?: 'HousingSetAside';\n details?: Maybe;\n type: HousingSetAsideTypeEnum;\n unitCount?: Maybe;\n};\n\nexport type HousingSetAsideInput = {\n details?: Maybe;\n type?: Maybe;\n unitCount?: Maybe;\n};\n\nexport enum HousingSetAsideTypeEnum {\n /** Homeless */\n Homeless = 'homeless',\n /** Other */\n Other = 'other',\n /** Supportive Services */\n SupportiveServices = 'supportive_services',\n /** Violence Against Women Act */\n Vawa = 'vawa',\n /** Veterans */\n Veterans = 'veterans'\n}\n\n/** Housing Short Waitlist Type */\nexport type HousingShortWaitlist = {\n __typename?: 'HousingShortWaitlist';\n availableUnitGroups: Array;\n expiryDays: Scalars['Int'];\n id: Scalars['ID'];\n isActive: Scalars['Boolean'];\n isCurrent: Scalars['Boolean'];\n isEmpty: Scalars['Boolean'];\n isExpired?: Maybe;\n isUnitsChanged: Scalars['Boolean'];\n notifyPropertyContact: Scalars['Boolean'];\n propertyContacts: Array;\n publishedActive?: Maybe;\n transitionDate?: Maybe;\n transitioned?: Maybe;\n unitGroups: Array;\n};\n\nexport type HousingShortWaitlistInput = {\n active?: Maybe;\n contactEmail?: Maybe;\n notifyPropertyContact?: Maybe;\n propertyContacts?: Maybe>;\n unitGroups?: Maybe>;\n};\n\n/** Interface for Housing Lotteries / Preview Housing Lotteries */\nexport type HousingVacancy = {\n __typename?: 'HousingVacancy';\n availableUnitGroups: Array;\n details?: Maybe;\n documents: Array;\n expiryDays: Scalars['Int'];\n id: Scalars['ID'];\n isActive: Scalars['Boolean'];\n isCurrent: Scalars['Boolean'];\n isEmpty: Scalars['Boolean'];\n isExpired?: Maybe;\n isUnitsChanged: Scalars['Boolean'];\n notifyPropertyContact: Scalars['Boolean'];\n propertyContacts: Array;\n publishedActive?: Maybe;\n transitionDate?: Maybe;\n transitionToSw: Scalars['Boolean'];\n transitioned?: Maybe;\n transitionedToSw?: Maybe;\n unitGroups: Array;\n};\n\nexport type HousingVacancyInput = {\n active?: Maybe;\n details?: Maybe;\n documents?: Maybe>;\n notifyPropertyContact?: Maybe;\n propertyContacts?: Maybe>;\n transitionToSw?: Maybe;\n unitGroups?: Maybe>;\n};\n\n/** Interface for Housing Wait Lists / Preview Housing Wait Lists */\nexport type HousingWaitlist = {\n __typename?: 'HousingWaitlist';\n closeDate?: Maybe;\n lockMessage?: Maybe;\n lockReason?: Maybe;\n locked: Scalars['Boolean'];\n openDate?: Maybe;\n status?: Maybe;\n statusIsGlobal: Scalars['Boolean'];\n units: Array;\n};\n\nexport type HousingWaitlistInput = {\n status?: Maybe;\n statusIsGlobal: Scalars['Boolean'];\n units: Array;\n};\n\n/** A single run of importing raw data from a single source */\nexport type ImportBatch = {\n __typename?: 'ImportBatch';\n dataSource: DataSource;\n fileName: Scalars['String'];\n id: Scalars['ID'];\n importedAt: Scalars['Datetime'];\n originalExportDate: Scalars['Datetime'];\n};\n\nexport type Info = {\n __typename?: 'Info';\n actionableRbi?: Maybe>;\n actionableRbiCount?: Maybe;\n fcfs?: Maybe>;\n fcfsCount?: Maybe;\n id: Scalars['ID'];\n lotteries?: Maybe>;\n lotteryCount?: Maybe;\n shortWaitlist?: Maybe>;\n shortWaitlistCount?: Maybe;\n};\n\n\nexport type InfoActionableRbiArgs = {\n seed?: Maybe;\n};\n\n\nexport type InfoFcfsArgs = {\n seed?: Maybe;\n};\n\n\nexport type InfoShortWaitlistArgs = {\n seed?: Maybe;\n};\n\nexport type InventoryRecord = BuildingInterface & Publishable & {\n __typename?: 'InventoryRecord';\n accessibilityDetails?: Maybe;\n additionalDetails?: Maybe;\n address: BuildingAddress;\n afhmp?: Maybe;\n ageRestrictionDetail?: Maybe;\n ageRestrictionOrDisabled?: Maybe;\n ageRestrictionSize?: Maybe;\n ageRestrictionType?: Maybe;\n allowedUnitTypes: Array;\n amenities: Array;\n amenitiesDetails?: Maybe;\n applicationUrl?: Maybe;\n availability: Array;\n cedacId?: Maybe;\n changedAt?: Maybe;\n changedBy?: Maybe;\n cityOptions: Array;\n closedReferralCount?: Maybe;\n closedReferralType?: Maybe;\n contact?: Maybe;\n contactEmail?: Maybe;\n contactName?: Maybe;\n contactPhone?: Maybe;\n deedRestrictionDetails?: Maybe;\n description?: Maybe;\n developer?: Maybe;\n documents: Array;\n duplicate?: Maybe;\n duplicateSlug?: Maybe;\n fcfsAvailableUnitGroups: Array;\n featured?: Maybe;\n geocode?: Maybe;\n hasAccessibleImages: Scalars['Boolean'];\n hasAccessibleUnits: Scalars['Boolean'];\n hasAgeRestrictions?: Maybe;\n hasClosedReferrals?: Maybe;\n hasClosedWaitlist: Scalars['Boolean'];\n hasCustomIncomeRestrictions: Scalars['Boolean'];\n hasElevator?: Maybe;\n hasFcfs: Scalars['Boolean'];\n hasLottery: Scalars['Boolean'];\n hasOpenWaitlist: Scalars['Boolean'];\n hasPreferences?: Maybe;\n hasRollInShowers?: Maybe;\n hasSetAsides?: Maybe;\n hasStepFreeEntrance?: Maybe;\n hasUnknownStatus: Scalars['Boolean'];\n hasWheelchairAccess?: Maybe;\n history: HistoryEntriesPaginated;\n historySearchFields: Array;\n housingLottery?: Maybe;\n housingSetAsides: Array;\n housingShortWaitlist?: Maybe;\n housingType?: Maybe;\n housingVacancy?: Maybe;\n housingWaitlist: HousingWaitlist;\n id: Scalars['ID'];\n images?: Maybe>;\n includedUtilities: Array;\n isChamp: Scalars['Boolean'];\n isChanged: Scalars['Boolean'];\n isFuture?: Maybe;\n isNew: Scalars['Boolean'];\n isOutdated: Scalars['Boolean'];\n isPublished: Scalars['Boolean'];\n isVerified: Scalars['Boolean'];\n listingScores?: Maybe>;\n location?: Maybe;\n manager?: Maybe;\n managers?: Maybe>;\n masterRecord: MasterRecord;\n maxIncomes: Array;\n metadata?: Maybe;\n minimumAdminPublishScore: ScoreLevel;\n minimumPublishScore: ScoreLevel;\n moveInRequirements: Array;\n name?: Maybe;\n nhpdId?: Maybe;\n noNotifications: Scalars['Boolean'];\n notes?: Maybe;\n organizations: Array;\n overrides?: Maybe>;\n owners?: Maybe>;\n permissions: BuildingPermissions;\n petFriendly?: Maybe;\n petPolicy?: Maybe;\n preferences: Array;\n project: Project;\n projectId?: Maybe;\n publishedAt?: Maybe;\n publishedBy?: Maybe;\n publishedReleaseDate?: Maybe;\n releaseDate?: Maybe;\n scatteredSite?: Maybe;\n scoreSet?: Maybe;\n scoreSets?: Maybe>;\n sensitiveListing: Scalars['Boolean'];\n sensitiveType?: Maybe;\n shiComprehensivePermit?: Maybe;\n shiId?: Maybe;\n showRbi: Scalars['Boolean'];\n slug: Scalars['String'];\n sourceRecords?: Maybe>;\n tags: Array;\n tenure?: Maybe;\n unitGroups: Array;\n units: BuildingUnits;\n unpublishedAt?: Maybe;\n unpublishedBy?: Maybe;\n url?: Maybe;\n utilitiesIncluded?: Maybe;\n verifiedAt?: Maybe;\n verifiedBy?: Maybe;\n visibility?: Maybe;\n visibilityDetails?: Maybe;\n willBeFuture?: Maybe;\n yearBuilt?: Maybe;\n yearMadeAffordable?: Maybe;\n};\n\n\nexport type InventoryRecordAvailabilityArgs = {\n exhaustive?: Maybe;\n};\n\n\nexport type InventoryRecordHistoryArgs = {\n input?: Maybe;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\n\nexport type InventoryRecordHousingLotteryArgs = {\n showExpired?: Maybe;\n};\n\n\nexport type InventoryRecordScoreSetArgs = {\n formName: Scalars['String'];\n};\n\n/** Autogenerated input type of InviteUser */\nexport type InviteUserInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n sendInvite?: Maybe;\n user: UserInput;\n};\n\n/** Autogenerated return type of InviteUser. */\nexport type InviteUserPayload = {\n __typename?: 'InviteUserPayload';\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n errors: Array;\n user?: Maybe;\n};\n\n\n/** A listing completeness score */\nexport type ListingScore = {\n __typename?: 'ListingScore';\n allowedIgnoreMessages?: Maybe>;\n fieldName?: Maybe;\n formName?: Maybe;\n helpText?: Maybe;\n id: Scalars['ID'];\n ignore?: Maybe;\n ignoreMessage?: Maybe;\n key: Scalars['String'];\n level: ScoreLevel;\n message: Scalars['String'];\n owner: BuildingObject;\n passed: Scalars['Boolean'];\n};\n\nexport type MasterRecord = BuildingInterface & {\n __typename?: 'MasterRecord';\n accessibilityDetails?: Maybe;\n additionalDetails?: Maybe;\n address: BuildingAddress;\n afhmp?: Maybe;\n ageRestrictionDetail?: Maybe;\n ageRestrictionOrDisabled?: Maybe;\n ageRestrictionSize?: Maybe;\n ageRestrictionType?: Maybe;\n allowedUnitTypes: Array;\n amenities: Array;\n amenitiesDetails?: Maybe;\n applicationUrl?: Maybe;\n availability: Array;\n cedacId?: Maybe;\n cityOptions: Array;\n closedReferralCount?: Maybe;\n closedReferralType?: Maybe;\n contact?: Maybe;\n contactEmail?: Maybe;\n contactName?: Maybe;\n contactPhone?: Maybe;\n deedRestrictionDetails?: Maybe;\n description?: Maybe;\n developer?: Maybe;\n documents: Array;\n duplicate?: Maybe;\n duplicateSlug?: Maybe;\n fcfsAvailableUnitGroups: Array;\n featured?: Maybe;\n geocode?: Maybe;\n hasAccessibleImages: Scalars['Boolean'];\n hasAccessibleUnits: Scalars['Boolean'];\n hasAgeRestrictions?: Maybe;\n hasClosedReferrals?: Maybe;\n hasClosedWaitlist: Scalars['Boolean'];\n hasCustomIncomeRestrictions: Scalars['Boolean'];\n hasElevator?: Maybe;\n hasFcfs: Scalars['Boolean'];\n hasLottery: Scalars['Boolean'];\n hasOpenWaitlist: Scalars['Boolean'];\n hasPreferences?: Maybe;\n hasRollInShowers?: Maybe;\n hasSetAsides?: Maybe;\n hasStepFreeEntrance?: Maybe;\n hasUnknownStatus: Scalars['Boolean'];\n hasWheelchairAccess?: Maybe;\n history: HistoryEntriesPaginated;\n historySearchFields: Array;\n housingLottery?: Maybe;\n housingSetAsides: Array;\n housingShortWaitlist?: Maybe;\n housingType?: Maybe;\n housingVacancy?: Maybe;\n housingWaitlist: HousingWaitlist;\n id: Scalars['ID'];\n images?: Maybe>;\n includedUtilities: Array;\n isChamp: Scalars['Boolean'];\n listingScores?: Maybe>;\n location?: Maybe;\n manager?: Maybe;\n managers?: Maybe>;\n maxIncomes: Array;\n metadata: BuildingMetadata;\n minimumAdminPublishScore: ScoreLevel;\n minimumPublishScore: ScoreLevel;\n moveInRequirements: Array;\n name?: Maybe;\n nhpdId?: Maybe;\n noNotifications: Scalars['Boolean'];\n notes?: Maybe;\n organizations: Array;\n overrides?: Maybe>;\n owners?: Maybe>;\n permissions: BuildingPermissions;\n petFriendly?: Maybe;\n petPolicy?: Maybe;\n preferences: Array;\n project: Project;\n projectId?: Maybe;\n releaseDate?: Maybe;\n scatteredSite?: Maybe;\n scoreSet?: Maybe;\n scoreSets?: Maybe>;\n sensitiveListing: Scalars['Boolean'];\n sensitiveType?: Maybe;\n shiComprehensivePermit?: Maybe;\n shiId?: Maybe;\n showRbi: Scalars['Boolean'];\n slug: Scalars['String'];\n sourceRecords: Array;\n tags: Array;\n tenure?: Maybe;\n unitGroups: Array;\n units: BuildingUnits;\n url?: Maybe;\n utilitiesIncluded?: Maybe;\n visibility?: Maybe;\n visibilityDetails?: Maybe;\n willBeFuture?: Maybe;\n yearBuilt?: Maybe;\n yearMadeAffordable?: Maybe;\n};\n\n\nexport type MasterRecordAvailabilityArgs = {\n exhaustive?: Maybe;\n};\n\n\nexport type MasterRecordHistoryArgs = {\n input?: Maybe;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\n\nexport type MasterRecordHousingLotteryArgs = {\n showExpired?: Maybe;\n};\n\n\nexport type MasterRecordScoreSetArgs = {\n formName: Scalars['String'];\n};\n\nexport type MasterRecordExportField = {\n __typename?: 'MasterRecordExportField';\n default?: Maybe;\n display?: Maybe;\n key: ExportFieldsEnum;\n};\n\n/** Autogenerated input type of MasterRecordExport */\nexport type MasterRecordExportInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n fields?: Maybe>;\n input: Array;\n sortDirection?: Maybe;\n sortField?: Maybe;\n};\n\nexport type MaxIncome = {\n __typename?: 'MaxIncome';\n ami: Scalars['Int'];\n customMaxIncome?: Maybe;\n estimatedMaxIncome?: Maybe;\n householdSize: Scalars['Int'];\n id: Scalars['ID'];\n maxIncome?: Maybe;\n};\n\nexport type MaxIncomeInput = {\n ami?: Maybe;\n estimatedMaxIncome?: Maybe;\n householdSize?: Maybe;\n maxIncome?: Maybe;\n};\n\nexport type Mutation = {\n __typename?: 'Mutation';\n activateUser?: Maybe;\n addListingToOrganization?: Maybe;\n addOrganizationRoleToUser?: Maybe;\n addUserToOrganization?: Maybe;\n clearCache?: Maybe;\n createBuilding?: Maybe;\n createBuildingPhoto?: Maybe;\n createDirectUpload?: Maybe;\n createDsiImport?: Maybe;\n createHousingLottery?: Maybe;\n createOrganization?: Maybe;\n createRecordUpdateBatch?: Maybe;\n deactivateUser?: Maybe;\n deleteBuildingImage?: Maybe;\n deleteDsiImport?: Maybe;\n deleteOrganization?: Maybe;\n deleteRecordUpdateBatch?: Maybe;\n deleteUser?: Maybe;\n disableTwoFactor?: Maybe;\n editUser?: Maybe;\n inviteUser?: Maybe;\n masterRecordExport?: Maybe;\n processRecordUpdateBatch?: Maybe;\n publishListings?: Maybe>;\n removeListingFromOrganization?: Maybe;\n removeOrganizationRoleFromUser?: Maybe;\n removeUserFromOrganization?: Maybe;\n renewHousingShortWaitlist?: Maybe;\n renewHousingVacancy?: Maybe;\n reorderPhotos?: Maybe;\n resendInvite?: Maybe;\n reuploadRecordUpdateBatch?: Maybe;\n submitDsiImport?: Maybe;\n unpublishListing?: Maybe;\n updateBanner?: Maybe;\n updateBuilding?: Maybe;\n updateBuildingImage?: Maybe;\n updateBuildingPhoto?: Maybe;\n updateDsiMatchStatus?: Maybe;\n updateDsiMatchTarget?: Maybe;\n updateHousingLottery?: Maybe;\n updateHousingShortWaitlist?: Maybe;\n updateHousingVacancy?: Maybe;\n updateHousingWaitlist?: Maybe;\n updateMyAccount?: Maybe;\n updateMyDevToggles?: Maybe;\n updateOrganization?: Maybe;\n updateOrganizationRole?: Maybe;\n updatePreview?: Maybe;\n uploadBuildingImage?: Maybe;\n};\n\n\nexport type MutationActivateUserArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type MutationAddListingToOrganizationArgs = {\n input: AddListingToOrganizationInput;\n};\n\n\nexport type MutationAddOrganizationRoleToUserArgs = {\n input: AddOrganizationRoleToUserInput;\n};\n\n\nexport type MutationAddUserToOrganizationArgs = {\n input: AddUserToOrganizationInput;\n};\n\n\nexport type MutationClearCacheArgs = {\n cache: CacheEnum;\n slug?: Maybe;\n};\n\n\nexport type MutationCreateBuildingArgs = {\n input: CreateBuildingInput;\n};\n\n\nexport type MutationCreateBuildingPhotoArgs = {\n input: BuildingImageInput;\n slug: Scalars['ID'];\n};\n\n\nexport type MutationCreateDirectUploadArgs = {\n input: DirectUploadInput;\n};\n\n\nexport type MutationCreateDsiImportArgs = {\n input: DsiImportInput;\n};\n\n\nexport type MutationCreateHousingLotteryArgs = {\n input: HousingLotteryInput;\n slug: Scalars['ID'];\n};\n\n\nexport type MutationCreateOrganizationArgs = {\n input: CreateOrganizationInput;\n};\n\n\nexport type MutationCreateRecordUpdateBatchArgs = {\n input: RecordUpdateBatchInput;\n};\n\n\nexport type MutationDeactivateUserArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type MutationDeleteBuildingImageArgs = {\n input: DeleteBuildingImageInput;\n};\n\n\nexport type MutationDeleteDsiImportArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type MutationDeleteOrganizationArgs = {\n input: DeleteOrganizationInput;\n};\n\n\nexport type MutationDeleteRecordUpdateBatchArgs = {\n input: DeleteRecordUpdateBatchInput;\n};\n\n\nexport type MutationDeleteUserArgs = {\n input: DeleteUserInput;\n};\n\n\nexport type MutationDisableTwoFactorArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type MutationEditUserArgs = {\n input: EditUserInput;\n};\n\n\nexport type MutationInviteUserArgs = {\n input: InviteUserInput;\n};\n\n\nexport type MutationMasterRecordExportArgs = {\n input: MasterRecordExportInput;\n};\n\n\nexport type MutationProcessRecordUpdateBatchArgs = {\n batchId: Scalars['ID'];\n};\n\n\nexport type MutationPublishListingsArgs = {\n slugs: Array;\n verify?: Maybe;\n};\n\n\nexport type MutationRemoveListingFromOrganizationArgs = {\n input: RemoveListingFromOrganizationInput;\n};\n\n\nexport type MutationRemoveOrganizationRoleFromUserArgs = {\n input: RemoveOrganizationRoleFromUserInput;\n};\n\n\nexport type MutationRemoveUserFromOrganizationArgs = {\n input: RemoveUserFromOrganizationInput;\n};\n\n\nexport type MutationRenewHousingShortWaitlistArgs = {\n slug: Scalars['ID'];\n};\n\n\nexport type MutationRenewHousingVacancyArgs = {\n slug: Scalars['ID'];\n};\n\n\nexport type MutationReorderPhotosArgs = {\n order: Array;\n slug: Scalars['ID'];\n};\n\n\nexport type MutationResendInviteArgs = {\n input: ResendInviteInput;\n};\n\n\nexport type MutationReuploadRecordUpdateBatchArgs = {\n blobId: Scalars['String'];\n id: Scalars['ID'];\n};\n\n\nexport type MutationSubmitDsiImportArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type MutationUnpublishListingArgs = {\n slug: Scalars['ID'];\n unverify?: Maybe;\n};\n\n\nexport type MutationUpdateBannerArgs = {\n input: BannerInput;\n};\n\n\nexport type MutationUpdateBuildingArgs = {\n input: UpdateBuildingInput;\n};\n\n\nexport type MutationUpdateBuildingImageArgs = {\n input: UpdateBuildingImageInput;\n};\n\n\nexport type MutationUpdateBuildingPhotoArgs = {\n id: Scalars['ID'];\n input: BuildingImageInput;\n};\n\n\nexport type MutationUpdateDsiMatchStatusArgs = {\n id: Scalars['ID'];\n status: DsiMatchStatus;\n};\n\n\nexport type MutationUpdateDsiMatchTargetArgs = {\n id: Scalars['ID'];\n targetId: Scalars['ID'];\n};\n\n\nexport type MutationUpdateHousingLotteryArgs = {\n id: Scalars['ID'];\n input: HousingLotteryInput;\n};\n\n\nexport type MutationUpdateHousingShortWaitlistArgs = {\n input: HousingShortWaitlistInput;\n slug: Scalars['ID'];\n};\n\n\nexport type MutationUpdateHousingVacancyArgs = {\n input: HousingVacancyInput;\n slug: Scalars['ID'];\n};\n\n\nexport type MutationUpdateHousingWaitlistArgs = {\n input: HousingWaitlistInput;\n slug: Scalars['ID'];\n};\n\n\nexport type MutationUpdateMyAccountArgs = {\n input: MyAccountInput;\n};\n\n\nexport type MutationUpdateMyDevTogglesArgs = {\n toggles: Array;\n};\n\n\nexport type MutationUpdateOrganizationArgs = {\n input: UpdateOrganizationInput;\n};\n\n\nexport type MutationUpdateOrganizationRoleArgs = {\n input: UpdateOrganizationRoleInput;\n};\n\n\nexport type MutationUpdatePreviewArgs = {\n input: BuildingUpdateInput;\n slug: Scalars['ID'];\n};\n\n\nexport type MutationUploadBuildingImageArgs = {\n input: UploadBuildingImageInput;\n};\n\nexport type MyAccountInput = {\n email?: Maybe;\n name?: Maybe;\n password?: Maybe;\n passwordConfirmation?: Maybe;\n};\n\nexport type OperationError = {\n __typename?: 'OperationError';\n field?: Maybe;\n message: Scalars['String'];\n};\n\nexport type Organization = {\n __typename?: 'Organization';\n buildings: Array;\n city?: Maybe;\n id: Scalars['ID'];\n listingCount: Scalars['Int'];\n listingLinks: Array;\n listings: Array;\n name: Scalars['String'];\n other?: Maybe;\n permissions: OrganizationPermissions;\n phone?: Maybe;\n salesforceRecord?: Maybe;\n state?: Maybe;\n street1?: Maybe;\n userLinks: Array;\n zipCode?: Maybe;\n};\n\n\nexport type OrganizationBuildingsArgs = {\n input?: Maybe;\n};\n\n\nexport type OrganizationListingLinksArgs = {\n input?: Maybe;\n};\n\n\nexport type OrganizationUserLinksArgs = {\n input?: Maybe;\n};\n\nexport type OrganizationBuildingFilterInput = {\n city?: Maybe;\n firstCome?: Maybe;\n lottery?: Maybe;\n recentlyAdded?: Maybe;\n term?: Maybe;\n verified?: Maybe;\n waitListClosed?: Maybe;\n waitListOpen?: Maybe;\n};\n\nexport type OrganizationInput = {\n city?: Maybe;\n name?: Maybe;\n other?: Maybe;\n phone?: Maybe;\n salesforceRecord?: Maybe;\n state?: Maybe;\n street1?: Maybe;\n zipCode?: Maybe;\n};\n\nexport type OrganizationListingLink = {\n __typename?: 'OrganizationListingLink';\n id: Scalars['ID'];\n listing: BuildingObject;\n organization: Organization;\n role: Array;\n};\n\nexport type OrganizationPermissions = {\n __typename?: 'OrganizationPermissions';\n /** Delete organization? */\n canDeleteOrganization?: Maybe;\n /** Manage organization listings? */\n canManageOrganizationListings?: Maybe;\n /** Manage organization users? */\n canManageOrganizationUsers?: Maybe;\n /** Update organization? */\n canUpdateOrganization?: Maybe;\n};\n\nexport enum OrganizationRoleEnum {\n /** Property Funder */\n Funder = 'funder',\n /** Property Manager */\n Manager = 'manager',\n /** Property Owner */\n Owner = 'owner'\n}\n\nexport type OrganizationUserLink = {\n __typename?: 'OrganizationUserLink';\n id: Scalars['ID'];\n organization: Organization;\n roles: Array;\n user: User;\n};\n\nexport enum OrganizationUserRoleEnum {\n /** Admin User */\n Admin = 'admin',\n /** Base User */\n User = 'user'\n}\n\nexport type OrganizationsPaginated = {\n __typename?: 'OrganizationsPaginated';\n allItems: Array;\n hasMoreAfter: Scalars['Boolean'];\n hasMoreBefore: Scalars['Boolean'];\n items: Array;\n itemsCount: Scalars['Int'];\n page: Scalars['Int'];\n pageSize: Scalars['Int'];\n pagesCount: Scalars['Int'];\n};\n\n/** Interface for paginated information */\nexport type PaginatedInterface = {\n currentPage: Scalars['Int'];\n nextPage?: Maybe;\n pageSize: Scalars['Int'];\n pageWithItem?: Maybe;\n prevPage?: Maybe;\n totalCount: Scalars['Int'];\n totalPages: Scalars['Int'];\n};\n\n\n/** Interface for paginated information */\nexport type PaginatedInterfacePageWithItemArgs = {\n field: Scalars['String'];\n id: Scalars['ID'];\n};\n\nexport type Project = {\n __typename?: 'Project';\n developer?: Maybe;\n name?: Maybe;\n year?: Maybe;\n};\n\nexport type ProjectDeveloper = {\n __typename?: 'ProjectDeveloper';\n name: Scalars['String'];\n};\n\nexport type ProjectDeveloperInput = {\n name?: Maybe;\n};\n\nexport type PropertyContact = {\n __typename?: 'PropertyContact';\n email?: Maybe;\n id: Scalars['ID'];\n name?: Maybe;\n phone?: Maybe;\n};\n\nexport type PropertyContactInput = {\n deleted?: Maybe;\n email?: Maybe;\n id?: Maybe;\n name?: Maybe;\n phone?: Maybe;\n};\n\n/** Publication status for a given slug */\nexport type PublicationStatus = Publishable & {\n __typename?: 'PublicationStatus';\n changedAt?: Maybe;\n changedBy?: Maybe;\n id: Scalars['ID'];\n isChanged: Scalars['Boolean'];\n isFuture?: Maybe;\n isNew: Scalars['Boolean'];\n isOutdated: Scalars['Boolean'];\n isPublished: Scalars['Boolean'];\n isVerified: Scalars['Boolean'];\n publishedAt?: Maybe;\n publishedBy?: Maybe;\n publishedReleaseDate?: Maybe;\n unpublishedAt?: Maybe;\n unpublishedBy?: Maybe;\n verifiedAt?: Maybe;\n verifiedBy?: Maybe;\n};\n\n/** Interface for a publishable item */\nexport type Publishable = {\n changedAt?: Maybe;\n changedBy?: Maybe;\n isChanged: Scalars['Boolean'];\n isFuture?: Maybe;\n isNew: Scalars['Boolean'];\n isOutdated: Scalars['Boolean'];\n isPublished: Scalars['Boolean'];\n isVerified: Scalars['Boolean'];\n publishedAt?: Maybe;\n publishedBy?: Maybe;\n publishedReleaseDate?: Maybe;\n unpublishedAt?: Maybe;\n unpublishedBy?: Maybe;\n verifiedAt?: Maybe;\n verifiedBy?: Maybe;\n};\n\nexport type Query = {\n __typename?: 'Query';\n banner?: Maybe;\n building?: Maybe;\n buildingImage?: Maybe;\n buildingPreviews: Array;\n buildingSearch: BuildingSearchResult;\n buildingTags: Array;\n buildings: Array;\n cities: Array;\n dataSources: Array;\n dsiImport?: Maybe;\n dsiImports: Array;\n geocode: Geocode;\n info: Info;\n masterRecord?: Maybe;\n masterRecordExportFields: Array;\n myAccount?: Maybe;\n myPermissions: RootPermissions;\n organization?: Maybe;\n organizationBuilding?: Maybe;\n organizationSearch: OrganizationsPaginated;\n organizationSearchFields: Array;\n organizations: Array;\n preview?: Maybe;\n publicationStatus?: Maybe;\n published?: Maybe;\n record?: Maybe;\n recordExport?: Maybe;\n recordSearch: BuildingsPaginated;\n recordSearchFields: Array;\n recordUpdateBatch?: Maybe;\n recordUpdateBatches: Array;\n records: RecordSearchResult;\n slugs: Array;\n sourceRecord?: Maybe;\n tags: Array;\n user?: Maybe;\n userSearch: UsersPaginated;\n userSearchFields: Array;\n users: Array;\n};\n\n\nexport type QueryBuildingArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type QueryBuildingImageArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type QueryBuildingPreviewsArgs = {\n organizationId?: Maybe;\n};\n\n\nexport type QueryBuildingSearchArgs = {\n input: BuildingSearchInput;\n page?: Maybe;\n seed?: Maybe;\n};\n\n\nexport type QueryBuildingsArgs = {\n input: BuildingSearchInput;\n};\n\n\nexport type QueryCitiesArgs = {\n organizationId?: Maybe;\n};\n\n\nexport type QueryDsiImportArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type QueryGeocodeArgs = {\n input: BuildingAddressInput;\n};\n\n\nexport type QueryMasterRecordArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type QueryOrganizationArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type QueryOrganizationBuildingArgs = {\n slug: Scalars['ID'];\n};\n\n\nexport type QueryOrganizationSearchArgs = {\n input: SearchInput;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\n\nexport type QueryPreviewArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type QueryPublicationStatusArgs = {\n slug: Scalars['ID'];\n};\n\n\nexport type QueryPublishedArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type QueryRecordArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type QueryRecordExportArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type QueryRecordSearchArgs = {\n input: SearchInput;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\n\nexport type QueryRecordUpdateBatchArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type QueryRecordsArgs = {\n input: RecordSearchInput;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\n\nexport type QuerySlugsArgs = {\n limit?: Maybe;\n str: Scalars['String'];\n};\n\n\nexport type QuerySourceRecordArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type QueryUserArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type QueryUserSearchArgs = {\n input: SearchInput;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\n\nexport type QueryUsersArgs = {\n organizationTerm?: Maybe;\n term?: Maybe;\n};\n\n/** Data as we've received them from the original source. */\nexport type RawRecord = {\n __typename?: 'RawRecord';\n id: Scalars['ID'];\n importBatch: ImportBatch;\n values: Scalars['String'];\n};\n\n/** Spreadsheet export for a record */\nexport type RecordExport = {\n __typename?: 'RecordExport';\n allProcessed: Scalars['Boolean'];\n fields: Array;\n finished: Scalars['Boolean'];\n id: Scalars['ID'];\n percentProcessed?: Maybe;\n processed?: Maybe;\n slugs: Array;\n started: Scalars['Boolean'];\n total?: Maybe;\n url?: Maybe;\n};\n\nexport type RecordSearchInput = {\n accessibilityFeatures?: Maybe>;\n ageRestrictedOrDisabled?: Maybe;\n ageRestriction?: Maybe;\n allNearby?: Maybe;\n amenities?: Maybe>;\n availability?: Maybe;\n bounds?: Maybe;\n city?: Maybe;\n dataSources?: Maybe>;\n geoComponents?: Maybe>;\n hasBelowMarketRentUnits?: Maybe;\n hasClosedWaitlist?: Maybe;\n hasDeeplyAffordableUnits?: Maybe;\n hasElderlyHousing?: Maybe;\n hasFcfs?: Maybe;\n hasLottery?: Maybe;\n hasOpenWaitlist?: Maybe;\n hasShortWaitlist?: Maybe;\n hasUnitAccessibility?: Maybe>;\n isAgeRestricted?: Maybe;\n loc?: Maybe;\n locCoords?: Maybe;\n locType?: Maybe;\n numberBedrooms?: Maybe>;\n organizationIds?: Maybe>;\n petFriendly?: Maybe;\n published?: Maybe;\n tags?: Maybe>;\n term?: Maybe;\n verified?: Maybe;\n visibilities?: Maybe>;\n};\n\nexport type RecordSearchResult = PaginatedInterface & {\n __typename?: 'RecordSearchResult';\n currentPage: Scalars['Int'];\n nextPage?: Maybe;\n otherCounts: BuildingSearchResultCounts;\n pageSize: Scalars['Int'];\n pageWithItem?: Maybe;\n prevPage?: Maybe;\n results: Array;\n totalCount: Scalars['Int'];\n totalPages: Scalars['Int'];\n};\n\n\nexport type RecordSearchResultPageWithItemArgs = {\n field: Scalars['String'];\n id: Scalars['ID'];\n};\n\nexport type RecordUpdateBatch = {\n __typename?: 'RecordUpdateBatch';\n checked: RecordUpdateBatchStatus;\n countErrors?: Maybe;\n countExtracted?: Maybe;\n countNew?: Maybe;\n countRecordsWithErrors?: Maybe;\n countRecordsWithIssues?: Maybe;\n countRecordsWithWarnings?: Maybe;\n countTotal?: Maybe;\n countUpdated?: Maybe;\n countWarnings?: Maybe;\n createdAt: Scalars['Datetime'];\n createdBy?: Maybe;\n error?: Maybe;\n extracted: RecordUpdateBatchStatus;\n id: Scalars['ID'];\n imported: RecordUpdateBatchStatus;\n importedAt?: Maybe;\n importedBy?: Maybe;\n initialized: RecordUpdateBatchStatus;\n isError: Scalars['Boolean'];\n isImported: Scalars['Boolean'];\n isReady: Scalars['Boolean'];\n isStarted: Scalars['Boolean'];\n name?: Maybe;\n processed: RecordUpdateBatchStatus;\n recordUpdateErrors: Array;\n recordUpdateFile: RecordUpdateFile;\n recordUpdateItems: Array;\n recordUpdateRows: Array;\n rowCount: Scalars['Int'];\n started: Scalars['Boolean'];\n};\n\n\nexport type RecordUpdateBatchRecordUpdateItemsArgs = {\n page?: Maybe;\n pageSize?: Maybe;\n search?: Maybe;\n showAll?: Maybe;\n};\n\n\nexport type RecordUpdateBatchRecordUpdateRowsArgs = {\n page?: Maybe;\n pageSize?: Maybe;\n search?: Maybe;\n showAll?: Maybe;\n withErrors?: Maybe;\n withWarnings?: Maybe;\n};\n\n\nexport type RecordUpdateBatchRowCountArgs = {\n search?: Maybe;\n};\n\nexport type RecordUpdateBatchInput = {\n blobId: Scalars['String'];\n name?: Maybe;\n};\n\nexport type RecordUpdateBatchStatus = {\n __typename?: 'RecordUpdateBatchStatus';\n current?: Maybe;\n done: Scalars['Boolean'];\n indeterminate?: Maybe;\n percent?: Maybe;\n stage: RecordUpdateBatchStatusEnum;\n started: Scalars['Boolean'];\n total?: Maybe;\n};\n\nexport enum RecordUpdateBatchStatusEnum {\n Check = 'check',\n Extract = 'extract',\n Import = 'import',\n Initialize = 'initialize',\n Process = 'process'\n}\n\nexport type RecordUpdateError = {\n __typename?: 'RecordUpdateError';\n field?: Maybe;\n id: Scalars['ID'];\n message: Scalars['String'];\n recordUpdateBatch: RecordUpdateBatch;\n recordUpdateFile: RecordUpdateFile;\n recordUpdateRow: RecordUpdateRow;\n severity: RecordUpdateErrorSeverity;\n};\n\nexport enum RecordUpdateErrorSeverity {\n /** error */\n Error = 'error',\n /** warning */\n Warning = 'warning'\n}\n\nexport type RecordUpdateFile = FileOwnerInterface & {\n __typename?: 'RecordUpdateFile';\n extension?: Maybe;\n fileUrl?: Maybe;\n filename?: Maybe;\n id: Scalars['ID'];\n name: Scalars['String'];\n recordUpdateBatch: RecordUpdateBatch;\n recordUpdateErrors: Array;\n recordUpdateRows: Array;\n uploadedAt: Scalars['Datetime'];\n uploadedBy?: Maybe;\n};\n\nexport type RecordUpdateItem = {\n __typename?: 'RecordUpdateItem';\n accessibilityDetails?: Maybe;\n additionalDetails?: Maybe;\n ageRestrictionOrDisabled?: Maybe;\n ageRestrictionSize?: Maybe;\n ageRestrictionType?: Maybe;\n amenities?: Maybe>;\n applicationUrl?: Maybe;\n asBuilding: RecordUpdateItemBuilding;\n attributes: Scalars['JsonObject'];\n building?: Maybe;\n contactEmail?: Maybe;\n contactPhone?: Maybe;\n description?: Maybe;\n has1Bedroom?: Maybe;\n has2Bedroom?: Maybe;\n has3Bedroom?: Maybe;\n has4PlusBedrooms?: Maybe;\n hasAgeRestrictions?: Maybe;\n hasDeeplyAffordableUnits?: Maybe;\n hasSroUnits?: Maybe;\n hasStudioUnits?: Maybe;\n housingType?: Maybe;\n id: Scalars['ID'];\n isImported: Scalars['Boolean'];\n isNew: Scalars['Boolean'];\n mergedAttributes: Scalars['JsonObject'];\n notes?: Maybe;\n petFriendly?: Maybe;\n petPolicy?: Maybe;\n projectCity?: Maybe;\n projectDeveloperName?: Maybe;\n projectId?: Maybe;\n projectManagementCompany?: Maybe;\n projectName?: Maybe;\n projectStateCode?: Maybe;\n projectStreet1?: Maybe;\n projectStreet2?: Maybe;\n projectStreet3?: Maybe;\n projectZipCode?: Maybe;\n rawRecord?: Maybe;\n recordUpdateBatch: RecordUpdateBatch;\n recordUpdateRow?: Maybe;\n scatteredSite?: Maybe;\n sensitiveListing?: Maybe;\n slug?: Maybe;\n tenure?: Maybe;\n total1BedroomUnits?: Maybe;\n total2BedroomUnits?: Maybe;\n total3BedroomUnits?: Maybe;\n total4PlusBedroomUnits?: Maybe;\n totalAccessibleUnits?: Maybe;\n totalAffordableUnits?: Maybe;\n totalDeeplyAffordableUnits?: Maybe;\n totalSroUnits?: Maybe;\n totalStudioUnits?: Maybe;\n totalUnits?: Maybe;\n url?: Maybe;\n};\n\nexport type RecordUpdateItemBuilding = BuildingFieldsInterface & {\n __typename?: 'RecordUpdateItemBuilding';\n accessibilityDetails?: Maybe;\n additionalDetails?: Maybe;\n address: BuildingAddress;\n ageRestrictionDetail?: Maybe;\n ageRestrictionOrDisabled?: Maybe;\n ageRestrictionSize?: Maybe;\n ageRestrictionType?: Maybe;\n amenities: Array;\n amenitiesDetails?: Maybe;\n applicationUrl?: Maybe;\n cedacId?: Maybe;\n closedReferralCount?: Maybe;\n closedReferralType?: Maybe;\n contact?: Maybe;\n contactEmail?: Maybe;\n contactName?: Maybe;\n contactPhone?: Maybe;\n deedRestrictionDetails?: Maybe;\n description?: Maybe;\n developer?: Maybe;\n duplicate?: Maybe;\n duplicateSlug?: Maybe;\n hasAgeRestrictions?: Maybe;\n hasClosedReferrals?: Maybe;\n hasElevator?: Maybe;\n hasPreferences?: Maybe;\n hasRollInShowers?: Maybe;\n hasSetAsides?: Maybe;\n hasStepFreeEntrance?: Maybe;\n hasWheelchairAccess?: Maybe;\n housingSetAsides: Array;\n housingType?: Maybe;\n id: Scalars['ID'];\n includedUtilities: Array;\n manager?: Maybe;\n moveInRequirements: Array;\n name?: Maybe;\n nhpdId?: Maybe;\n noNotifications: Scalars['Boolean'];\n notes?: Maybe;\n petFriendly?: Maybe;\n petPolicy?: Maybe;\n preferences: Array;\n project: Project;\n projectId?: Maybe;\n scatteredSite?: Maybe;\n sensitiveListing: Scalars['Boolean'];\n sensitiveType?: Maybe;\n shiComprehensivePermit?: Maybe;\n shiId?: Maybe;\n slug: Scalars['String'];\n tags: Array;\n tenure?: Maybe;\n units: BuildingUnits;\n url?: Maybe;\n utilitiesIncluded?: Maybe;\n visibility?: Maybe;\n visibilityDetails?: Maybe;\n yearBuilt?: Maybe;\n yearMadeAffordable?: Maybe;\n};\n\nexport type RecordUpdateRow = {\n __typename?: 'RecordUpdateRow';\n building?: Maybe;\n data: Scalars['JsonObject'];\n generated: Scalars['Boolean'];\n id: Scalars['ID'];\n index: Scalars['Int'];\n isCurrent: Scalars['Boolean'];\n isImported: Scalars['Boolean'];\n name?: Maybe;\n recordUpdateBatch: RecordUpdateBatch;\n recordUpdateErrors: Array;\n recordUpdateFile: RecordUpdateFile;\n recordUpdateItem?: Maybe;\n slug?: Maybe;\n};\n\n/** Autogenerated input type of RemoveListingFromOrganization */\nexport type RemoveListingFromOrganizationInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n organizationId: Scalars['ID'];\n slug: Scalars['ID'];\n};\n\n/** Autogenerated input type of RemoveOrganizationRoleFromUser */\nexport type RemoveOrganizationRoleFromUserInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n organizationId: Scalars['ID'];\n role: OrganizationUserRoleEnum;\n userId: Scalars['ID'];\n};\n\n/** Autogenerated input type of RemoveUserFromOrganization */\nexport type RemoveUserFromOrganizationInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n organizationId: Scalars['ID'];\n userId: Scalars['ID'];\n};\n\n/** Autogenerated input type of ResendInvite */\nexport type ResendInviteInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n userId: Scalars['ID'];\n};\n\nexport type RootPermissions = {\n __typename?: 'RootPermissions';\n /** Admin? */\n canAdmin?: Maybe;\n /** Admin search? */\n canAdminSearch?: Maybe;\n /** Administer listings? */\n canAdministerListings?: Maybe;\n /** Clear caches? */\n canClearCaches?: Maybe;\n /** Create admin users? */\n canCreateAdminUsers?: Maybe;\n /** Create listings? */\n canCreateListings?: Maybe;\n /** Create non admin users? */\n canCreateNonAdminUsers?: Maybe;\n /** Create organizations? */\n canCreateOrganizations?: Maybe;\n /** Export records? */\n canExportRecords?: Maybe;\n /** Import records? */\n canImportRecords?: Maybe;\n /** Set admin banner? */\n canSetAdminBanner?: Maybe;\n /** Superadmin? */\n canSuperadmin?: Maybe;\n /** View non public listings? */\n canViewNonPublicListings?: Maybe;\n /** View sensitive listings? */\n canViewSensitiveListings?: Maybe;\n};\n\nexport enum ScoreLevel {\n Error = 'error',\n L0 = 'l0',\n L1 = 'l1',\n L2 = 'l2',\n L3 = 'l3',\n L4 = 'l4'\n}\n\n/** A set of listing scores */\nexport type ScoreSet = {\n __typename?: 'ScoreSet';\n currentLevel: ScoreLevel;\n formName: Scalars['String'];\n id: Scalars['ID'];\n nextLevel?: Maybe;\n scores: Array;\n};\n\nexport type SearchCondition = {\n fieldName: Scalars['String'];\n operator: Scalars['String'];\n value: Scalars['JsonObject'];\n};\n\nexport type SearchFieldDefinition = {\n __typename?: 'SearchFieldDefinition';\n allowMultipleValues: Scalars['Boolean'];\n defaultOperator?: Maybe;\n defaultSortOption?: Maybe;\n field: Scalars['String'];\n fieldType: SearchFieldType;\n filterable: Scalars['Boolean'];\n id: Scalars['ID'];\n label: Scalars['String'];\n operators: Array;\n options?: Maybe>;\n sortOptions?: Maybe>;\n sortable: Scalars['Boolean'];\n};\n\nexport enum SearchFieldType {\n ArrayField = 'ArrayField',\n BooleanField = 'BooleanField',\n DateField = 'DateField',\n EnumField = 'EnumField',\n NumberField = 'NumberField',\n TextField = 'TextField'\n}\n\nexport type SearchInput = {\n input: Array;\n sortDirection?: Maybe;\n sortField?: Maybe;\n};\n\nexport enum SortDirection {\n Asc = 'ASC',\n Desc = 'DESC'\n}\n\n/** Normalized records based on the raw data we've received */\nexport type SourceRecord = BuildingInterface & {\n __typename?: 'SourceRecord';\n accessibilityDetails?: Maybe;\n additionalDetails?: Maybe;\n address: BuildingAddress;\n afhmp?: Maybe;\n ageRestrictionDetail?: Maybe;\n ageRestrictionOrDisabled?: Maybe;\n ageRestrictionSize?: Maybe;\n ageRestrictionType?: Maybe;\n allowedUnitTypes: Array;\n amenities: Array;\n amenitiesDetails?: Maybe;\n applicationUrl?: Maybe;\n availability: Array;\n cedacId?: Maybe;\n cityOptions: Array;\n closedReferralCount?: Maybe;\n closedReferralType?: Maybe;\n contact?: Maybe;\n contactEmail?: Maybe;\n contactName?: Maybe;\n contactPhone?: Maybe;\n createdAt: Scalars['Datetime'];\n dataSource: DataSource;\n deedRestrictionDetails?: Maybe;\n description?: Maybe;\n developer?: Maybe;\n documents: Array;\n duplicate?: Maybe;\n duplicateSlug?: Maybe;\n fcfsAvailableUnitGroups: Array;\n featured?: Maybe;\n geocode?: Maybe;\n hasAccessibleImages: Scalars['Boolean'];\n hasAccessibleUnits: Scalars['Boolean'];\n hasAgeRestrictions?: Maybe;\n hasClosedReferrals?: Maybe;\n hasClosedWaitlist: Scalars['Boolean'];\n hasCustomIncomeRestrictions: Scalars['Boolean'];\n hasElevator?: Maybe;\n hasFcfs: Scalars['Boolean'];\n hasLottery: Scalars['Boolean'];\n hasOpenWaitlist: Scalars['Boolean'];\n hasPreferences?: Maybe;\n hasRollInShowers?: Maybe;\n hasSetAsides?: Maybe;\n hasStepFreeEntrance?: Maybe;\n hasUnknownStatus: Scalars['Boolean'];\n hasWheelchairAccess?: Maybe;\n history: HistoryEntriesPaginated;\n historySearchFields: Array;\n housingLottery?: Maybe;\n housingSetAsides: Array;\n housingShortWaitlist?: Maybe;\n housingType?: Maybe;\n housingVacancy?: Maybe;\n housingWaitlist: HousingWaitlist;\n id: Scalars['ID'];\n images?: Maybe>;\n importBatch?: Maybe;\n includedUtilities: Array;\n isChamp: Scalars['Boolean'];\n listingScores?: Maybe>;\n location?: Maybe;\n manager?: Maybe;\n managers?: Maybe>;\n masterRecord?: Maybe;\n matches: Array;\n maxIncomes: Array;\n minimumAdminPublishScore: ScoreLevel;\n minimumPublishScore: ScoreLevel;\n moveInRequirements: Array;\n name?: Maybe;\n nhpdId?: Maybe;\n noNotifications: Scalars['Boolean'];\n notes?: Maybe;\n organizations: Array;\n overrides?: Maybe>;\n owners?: Maybe>;\n permissions: BuildingPermissions;\n petFriendly?: Maybe;\n petPolicy?: Maybe;\n preferences: Array;\n project: Project;\n projectId?: Maybe;\n rawRecord?: Maybe;\n releaseDate?: Maybe;\n scatteredSite?: Maybe;\n scoreSet?: Maybe;\n scoreSets?: Maybe>;\n sensitiveListing: Scalars['Boolean'];\n sensitiveType?: Maybe;\n shiComprehensivePermit?: Maybe;\n shiId?: Maybe;\n showRbi: Scalars['Boolean'];\n slug: Scalars['String'];\n sourceRecords?: Maybe>;\n tags: Array;\n tenure?: Maybe;\n unitGroups: Array;\n units: BuildingUnits;\n url?: Maybe;\n utilitiesIncluded?: Maybe;\n visibility?: Maybe;\n visibilityDetails?: Maybe;\n willBeFuture?: Maybe;\n yearBuilt?: Maybe;\n yearMadeAffordable?: Maybe;\n};\n\n\n/** Normalized records based on the raw data we've received */\nexport type SourceRecordAvailabilityArgs = {\n exhaustive?: Maybe;\n};\n\n\n/** Normalized records based on the raw data we've received */\nexport type SourceRecordHistoryArgs = {\n input?: Maybe;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\n\n/** Normalized records based on the raw data we've received */\nexport type SourceRecordHousingLotteryArgs = {\n showExpired?: Maybe;\n};\n\n\n/** Normalized records based on the raw data we've received */\nexport type SourceRecordScoreSetArgs = {\n formName: Scalars['String'];\n};\n\n/** SourceRecordMatches */\nexport type SourceRecordMatch = {\n __typename?: 'SourceRecordMatch';\n certainty: CertaintyTypes;\n info?: Maybe;\n score?: Maybe;\n source: SourceRecord;\n target: SourceRecord;\n};\n\nexport enum UnitAccessibility {\n /** Hearing accessible */\n Hearing = 'HEARING',\n /** Mobility accessible */\n Mobility = 'MOBILITY',\n /** Vision accessible */\n Vision = 'VISION'\n}\n\nexport type UnitWaitlist = {\n __typename?: 'UnitWaitlist';\n closeDate?: Maybe;\n lockMessage?: Maybe;\n lockReason?: Maybe;\n locked: Scalars['Boolean'];\n openDate?: Maybe;\n status?: Maybe;\n unitType: BuildingBedroom;\n};\n\nexport type UnitWaitlistInput = {\n status?: Maybe;\n unitType: BuildingBedroom;\n};\n\n/** Autogenerated return type of UpdateBanner. */\nexport type UpdateBannerPayload = {\n __typename?: 'UpdateBannerPayload';\n banner?: Maybe;\n errors?: Maybe>;\n};\n\n/** Autogenerated input type of UpdateBuildingImage */\nexport type UpdateBuildingImageInput = {\n buildingImage: BuildingImageInput;\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n id: Scalars['ID'];\n};\n\n/** Autogenerated input type of UpdateBuilding */\nexport type UpdateBuildingInput = {\n building: BuildingInput;\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n slug: Scalars['String'];\n};\n\n/** Autogenerated return type of UpdateMatchStatus. */\nexport type UpdateMatchStatusPayload = {\n __typename?: 'UpdateMatchStatusPayload';\n affectedRecords: Array;\n record: DsiMatchRecord;\n};\n\n/** Autogenerated return type of UpdateMatchTarget. */\nexport type UpdateMatchTargetPayload = {\n __typename?: 'UpdateMatchTargetPayload';\n affectedRecordMatches: Array;\n record: DsiMatchRecord;\n};\n\n/** Autogenerated return type of UpdateMyAccount. */\nexport type UpdateMyAccountPayload = {\n __typename?: 'UpdateMyAccountPayload';\n errors?: Maybe>;\n user?: Maybe;\n};\n\n/** Autogenerated return type of UpdateMyDevToggles. */\nexport type UpdateMyDevTogglesPayload = {\n __typename?: 'UpdateMyDevTogglesPayload';\n errors?: Maybe>;\n user?: Maybe;\n};\n\n/** Autogenerated input type of UpdateOrganization */\nexport type UpdateOrganizationInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n id: Scalars['ID'];\n input: OrganizationInput;\n};\n\n/** Autogenerated input type of UpdateOrganizationRole */\nexport type UpdateOrganizationRoleInput = {\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n organizationId: Scalars['ID'];\n role?: Maybe>;\n slug: Scalars['ID'];\n};\n\n/** Autogenerated input type of UploadBuildingImage */\nexport type UploadBuildingImageInput = {\n caption?: Maybe;\n /** A unique identifier for the client performing the mutation. */\n clientMutationId?: Maybe;\n image: Scalars['File'];\n name?: Maybe;\n slug: Scalars['String'];\n};\n\n/** User Type */\nexport type User = {\n __typename?: 'User';\n deactivated?: Maybe;\n dev: Scalars['Boolean'];\n devToggles: Array;\n email: Scalars['String'];\n id: Scalars['ID'];\n invitationAcceptedAt?: Maybe;\n invitationCreatedAt?: Maybe;\n invitationSentAt?: Maybe;\n invitedBy?: Maybe;\n lastActive?: Maybe;\n lastLogin?: Maybe;\n name?: Maybe;\n organizationLinks?: Maybe>;\n permissions: UserPermissions;\n role: UserRole;\n status?: Maybe;\n twoFactorEnabled: Scalars['Boolean'];\n};\n\nexport type UserInput = {\n email?: Maybe;\n name?: Maybe;\n organizationIds?: Maybe>;\n role?: Maybe;\n};\n\nexport type UserPermissions = {\n __typename?: 'UserPermissions';\n /** Activate user? */\n canActivateUser?: Maybe;\n /** Deactivate user? */\n canDeactivateUser?: Maybe;\n /** Delete user? */\n canDeleteUser?: Maybe;\n /** Manage mfa? */\n canManageMfa?: Maybe;\n /** Manage user? */\n canManageUser?: Maybe;\n /** Reset mfa? */\n canResetMfa?: Maybe;\n /** Reset password? */\n canResetPassword?: Maybe;\n /** Send invitation? */\n canSendInvitation?: Maybe;\n /** View audit logs? */\n canViewAuditLogs?: Maybe;\n};\n\nexport enum UserRole {\n Admin = 'admin',\n PropertyManager = 'property_manager',\n Superadmin = 'superadmin',\n Viewer = 'viewer'\n}\n\nexport enum UserStatus {\n Active = 'active',\n Inactive = 'inactive',\n InviteExpired = 'invite_expired',\n Invited = 'invited',\n Locked = 'locked'\n}\n\nexport type UsersPaginated = {\n __typename?: 'UsersPaginated';\n allItems: Array;\n hasMoreAfter: Scalars['Boolean'];\n hasMoreBefore: Scalars['Boolean'];\n items: Array;\n itemsCount: Scalars['Int'];\n page: Scalars['Int'];\n pageSize: Scalars['Int'];\n pagesCount: Scalars['Int'];\n};\n","import MenuIcon from \"@mui/icons-material/Menu\";\n// @ts-ignore: Yes it can find this\nimport React, { ReactNode } from \"react\";\nimport NavbarContainer from \"Components/NavbarComponents/Navbar\";\nimport { NavbarMenu } from \"Components/NavbarComponents/NavbarItems\";\nimport { GtmLabels, GtmTriggers } from \"types\";\n\ntype UserPageNavbarProps = {\n callToAction?: ReactNode;\n};\n\nconst UserPageNavbar: React.FC> = ({\n callToAction,\n}) => {\n return (\n \n {callToAction && (\n }\n GtmWrapperProps={{ trigger: GtmTriggers.None, label: GtmLabels.None }}\n >\n {callToAction}\n \n )}\n \n );\n};\n\nexport default UserPageNavbar;\n","import { makeStyles } from \"tss-react/mui\";\nimport HeroTitle from \"Components/HeroTitle\";\nimport PageFooter from \"Components/PageFooter\";\nimport React, { ReactNode } from \"react\";\n// @ts-ignore: Yes it can find this\nimport BannerSvg from \"User/assets/banner.svg\";\nimport UserPageNavbar from \"./PageNavBar\";\n\n// approx header + footer heights. Could use refs here to get\n// a more accurate height calc\nconst pushHeight = 164;\nconst useStyles = makeStyles<{ fullHeight?: boolean }, \"title\" | \"subtitle\">()(\n ({ spacing, palette, breakpoints }, { fullHeight }, classes) => ({\n container: {\n minHeight: fullHeight ? \"100vh\" : `calc(100vh - ${pushHeight}px)`,\n },\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n minHeight: \"100vh\",\n },\n pageContainer: {\n flexGrow: 1,\n display: \"flex\",\n flexDirection: \"column\",\n },\n contentContainer: {\n backgroundColor: \"white\",\n \"flex-grow\": \"2\",\n },\n banner: {\n width: \"100%\",\n height: \"330px\",\n backgroundColor: \"rgba(241,249,255,0.8)\",\n backgroundImage: `url(${BannerSvg})`,\n backgroundRepeat: \"no-repeat\",\n backgroundSize: \"884px 128px\",\n backgroundPosition: \"top center\",\n textAlign: \"center\",\n overflow: \"hidden\",\n position: \"relative\",\n },\n bannerOverlay: {\n position: \"absolute\",\n width: \"100%\",\n height: \"128px\",\n top: \"0px\",\n left: \"0px\",\n backgroundImage: \"linear-gradient(90deg, #F4FAFF 0%, rgba(244,250,255,0) 50%, #F4FAFF 100%)\",\n },\n content: {\n position: \"relative\",\n width: \"95%\",\n maxWidth: \"630px\",\n margin: \"0px auto\",\n marginTop: spacing(-25),\n minHeight: spacing(25),\n backgroundColor: \"white\",\n borderTopLeftRadius: spacing(6),\n borderTopRightRadius: spacing(6),\n padding: spacing(4, 6),\n [breakpoints.down(\"sm\")]: {\n padding: spacing(2),\n },\n },\n welcomeContent: {\n maxWidth: \"900px\",\n padding: spacing(4, 15),\n [breakpoints.down(\"sm\")]: {\n padding: spacing(2),\n },\n [`& .${classes.title}`]: {\n textAlign: \"center\",\n },\n [`& .${classes.subtitle}`]: {\n textAlign: \"center\",\n },\n },\n title: {},\n subtitle: {\n fontFamily: \"Source Sans Pro, sans-serif\",\n color: palette.grey[800],\n fontSize: \"1.4rem\",\n lineHeight: \"1.2\",\n \"font-weight\": \"200\",\n paddingTop: spacing(1),\n },\n }),\n);\n\nexport type UserFormProps = {\n children?: ReactNode;\n title?: string;\n subtitle?: string;\n welcome?: boolean;\n showNav?: boolean;\n showFooter?: boolean;\n};\n\nconst UserLayout: React.FC> = ({\n children,\n title,\n subtitle,\n welcome = false,\n showNav = true,\n showFooter = true,\n}) => {\n const { classes } = useStyles({ fullHeight: !showNav && !showFooter });\n return (\n
\n {showNav && (\n
\n \n
\n )}\n
\n
\n
\n
\n
\n \n {(title || subtitle) && }\n {children}\n
\n
\n
\n {showFooter && (\n
\n \n
\n )}\n \n );\n};\n\nexport default UserLayout;\n","import { Box, Typography } from \"@mui/material\";\nimport { makeStyles } from \"tss-react/mui\";\nimport React, { ReactNode } from \"react\";\n\nconst useStyles = makeStyles()(({ spacing, palette }) => ({\n subtitle: {\n fontFamily: \"Source Sans Pro, sans-serif\",\n color: palette.grey[800],\n fontSize: \"1.4rem\",\n lineHeight: \"1.2\",\n \"font-weight\": \"200\",\n paddingTop: spacing(1),\n },\n}));\n\nconst HeroTitle: React.FC<\n React.PropsWithChildren<{ primary: ReactNode; secondary: ReactNode }>\n> = ({ primary, secondary }) => {\n const { classes } = useStyles();\n return (\n \n \n {primary}\n \n {secondary && (\n \n {secondary}\n \n )}\n \n );\n};\nexport default HeroTitle;\n","import _every from \"lodash-es/every\";\nimport _some from \"lodash-es/some\";\nimport { FeatureToggle } from \"gqlTypes\";\n\nexport type ToggleMode = \"all\" | \"any\";\nexport type ToggleFunction = (flags: FeatureToggle | FeatureToggle[], mode?: ToggleMode) => boolean;\n\n// @ts-ignore - Passed from webpack config\nif (FEATURE_TOGGLES && FEATURE_TOGGLES.length > 0) console.log({ FEATURE_TOGGLES });\n\n// @ts-ignore - Passed from webpack config\nexport const getEnvToggles = () => (ENV_TOGGLES || []) as FeatureToggle[];\n\nconst toArray = (x: any | any[]) => (Array.isArray(x) ? x : [x]);\n\nexport const toggleFactory =\n (flagSet: FeatureToggle[]): ToggleFunction =>\n (flags: FeatureToggle | FeatureToggle[], mode: ToggleMode = \"all\") =>\n (mode === \"all\" ? _every : _some)(\n (toArray(flags) || []).map((f) => flagSet.includes(f)),\n Boolean,\n );\n\n// @ts-ignore - Passed from webpack config\nexport const featureIsToggled: ToggleFunction = toggleFactory(FEATURE_TOGGLES);\n","import React, { useRef } from \"react\";\nimport { makeStyles } from \"tss-react/mui\";\nimport {\n Button,\n Checkbox,\n CheckboxProps,\n FormControlLabel,\n FormGroup,\n Grid,\n TextField,\n TextFieldProps,\n Typography,\n} from \"@mui/material\";\nimport { useFormatMessage } from \"Localization/hooks\";\nimport useSrOnlyClassName from \"Hooks/useSrOnlyClassName\";\n\ntype WhiteCheckboxProps = CheckboxProps & { error?: boolean };\n\nconst useCheckboxStyles = makeStyles()(\n ({ palette }, { error }, classes) => ({\n root: {\n color: error ? palette.error.main : \"white\",\n [`&.${classes.checked}`]: {\n color: \"white\",\n },\n svg: {\n backgroundColor: \"#0b66ad\",\n },\n },\n checked: {},\n }),\n);\n\nconst WhiteCheckbox = ({ error, ...props }: WhiteCheckboxProps) => {\n const { classes } = useCheckboxStyles({ error });\n return ;\n};\n\nconst useStyles = makeStyles()(({ spacing, palette, breakpoints }) => ({\n mcEmbedSignup: {\n fontFamily: \"Roboto, sans-serif\",\n },\n fieldGroup: {\n marginBottom: spacing(2),\n },\n input: {\n backgroundColor: palette.background.paper,\n borderRadius: \"8px\",\n },\n inputRoot: {\n flexDirection: \"column\",\n },\n helperText: {\n position: \"absolute\",\n right: 0,\n bottom: 0,\n top: 0,\n display: \"flex\",\n alignItems: \"center\",\n },\n label: {\n backgroundColor: palette.background.paper,\n borderRadius: \"3px\",\n padding: \"0px 5px\",\n color: \"black\",\n lineHeight: 1.4,\n fontFamily: \"Roboto, sans-serif\",\n },\n checkboxLabel: {\n color: \"white\",\n fontFamily: \"Roboto, sans-serif\",\n fontWeight: 500,\n },\n email: {\n appearance: \"none\",\n backgroundColor: \"rgb(232, 240, 254)\",\n borderRadius: \"8px\",\n border: \"1px solid rgb(154, 153, 154)\",\n padding: \"3px 15px\",\n },\n subscribeText: {\n color: palette.primary.contrastText,\n marginBottom: spacing(2),\n fontSize: \"1.4rem\",\n fontWeight: 500,\n fontFamily: \"Roboto, sans-serif\",\n [breakpoints.down(\"md\")]: {\n fontSize: \"1.1rem\",\n },\n },\n}));\n\nconst PageFooterNewsletterSignup: React.FC> = () => {\n const { classes } = useStyles();\n const t = useFormatMessage();\n const srOnly = useSrOnlyClassName();\n const formElement = useRef(null);\n const [newsChecked, setNewsChecked] = React.useState(true);\n const [listingsChecked, setListingsChecked] = React.useState(true);\n const [email, setEmail] = React.useState(\"\");\n const [fName, setFname] = React.useState(\"\");\n const [lName, setLname] = React.useState(\"\");\n\n const [emailError, setEmailError] = React.useState(false);\n const [fNameError, setFNameError] = React.useState(false);\n const [lNameError, setLNameError] = React.useState(false);\n const [noSelectionsError, setNoSelectionsError] = React.useState(false);\n\n const [subscribed, setSubscribed] = React.useState(false);\n\n const textFieldConfig: TextFieldProps = {\n required: true,\n fullWidth: true,\n size: \"small\",\n variant: \"outlined\",\n className: classes.inputRoot,\n InputLabelProps: {\n classes: {\n root: classes.label,\n },\n },\n FormHelperTextProps: {\n classes: {\n root: classes.helperText,\n },\n },\n InputProps: {\n className: \"required\",\n classes: {\n root: classes.input,\n },\n },\n };\n\n const handleSubmit = (event: React.FormEvent) => {\n event.preventDefault();\n if (!email || !fName || !lName || (!listingsChecked && !newsChecked)) {\n email ? setEmailError(false) : setEmailError(true);\n fName ? setFNameError(false) : setFNameError(true);\n lName ? setLNameError(false) : setLNameError(true);\n listingsChecked || newsChecked ? setNoSelectionsError(false) : setNoSelectionsError(true);\n } else {\n formElement.current?.submit();\n setSubscribed(true);\n }\n };\n const handleEmailChange = (event: React.ChangeEvent) => {\n const value = event.target.value;\n setEmail(value);\n value ? setEmailError(false) : setEmailError(true);\n };\n const handleFNameChange = (event: React.ChangeEvent) => {\n const value = event.target.value;\n setFname(value);\n value ? setFNameError(false) : setFNameError(true);\n };\n const handleLNameChange = (event: React.ChangeEvent) => {\n const value = event.target.value;\n setLname(value);\n value ? setLNameError(false) : setLNameError(true);\n };\n\n const handleCheckboxChange = (event: React.ChangeEvent, name: string) => {\n if (name === \"news\") {\n setNewsChecked(event.target.checked);\n }\n if (name === \"listings\") {\n setListingsChecked(event.target.checked);\n }\n };\n return (\n
\n {subscribed ? (\n {t(\"footer.subscribeComplete\")}\n ) : (\n
\n \n \n {t(\"footer.subscribeToOurNewsletter\")}\n \n \n \n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n handleCheckboxChange(event, \"news\")}\n />\n }\n label={t(\"footer.newsCheckbox\")}\n />\n handleCheckboxChange(event, \"listings\")}\n />\n }\n label={t(\"footer.listingsCheckbox\")}\n />\n {noSelectionsError && Selection Required}\n \n
\n \n {/* */}\n
\n
\n
\n
\n
\n \n
\n \n {t(\"footer.signupButtonText\")}\n \n \n \n \n \n )}\n \n );\n};\n\nexport default PageFooterNewsletterSignup;\n","import { Container, Grid, Link, Typography, Button, Box, Tooltip } from \"@mui/material\";\nimport { makeStyles } from \"tss-react/mui\";\n//@ts-ignore\nimport logoImg from \"Components/PageFooter/logo.svg\";\n//@ts-ignore\nimport eohLogo from \"Components/PageFooter/feoh-white.png\";\n//@ts-ignore\nimport logoMark from \"Components/PageFooter/logo-mark.svg\";\nimport React, { useMemo } from \"react\";\nimport { useFormatMessage } from \"Localization/hooks\";\nimport PublishIcon from \"@mui/icons-material/Publish\";\nimport LinkedInIcon from \"@mui/icons-material/LinkedIn\";\nimport useIsMobile from \"Hooks/useIsMobile\";\nimport * as URLS from \"consts/urls\";\nimport PageFooterNewsletterSignup from \"./PageFooterNewsletterSignup\";\nimport { GtmLabels, GtmTriggers } from \"types\";\nimport GtmWrapper from \"Components/GtmWrapper\";\n\nconst useStyles = makeStyles()(({ spacing, palette, typography, breakpoints }) => ({\n footer: {\n backgroundColor: \"rgb(31,52,101)\",\n backgroundImage: `url(${logoMark})`,\n backgroundSize: \"300% auto\",\n backgroundPosition: \"bottom right\",\n backgroundRepeat: \"no-repeat\",\n padding: spacing(6, 0),\n borderTop: `4px solid #ffec40`,\n [\"@media screen and (min-width: 768px)\"]: {\n backgroundSize: \"200% auto\",\n },\n [\"@media screen and (min-width: 1024px)\"]: {\n backgroundSize: \"100% auto\",\n backgroundPosition: \"bottom right -120px\",\n },\n },\n link: {\n display: \"block\",\n marginBottom: spacing(1.5),\n fontSize: typography.body1.fontSize,\n color: palette.primary.contrastText,\n [breakpoints.down(\"md\")]: {\n textAlign: \"center\",\n },\n \"&:last-child\": {\n marginBottom: 0,\n },\n },\n leftCol: {\n textAlign: \"right\",\n color: palette.primary.contrastText,\n },\n logo: {\n width: 200,\n },\n eohLogo: {\n height: 70,\n marginRight: spacing(4),\n },\n input: {\n backgroundColor: palette.background.paper,\n borderRadius: 8,\n },\n button: {\n textTransform: \"none\",\n borderRadius: 8,\n whiteSpace: \"nowrap\",\n },\n subscribeText: {\n textAlign: \"center\",\n color: palette.primary.contrastText,\n fontSize: \"1.4rem\",\n [breakpoints.down(\"md\")]: {\n fontSize: \"1.1rem\",\n },\n },\n checkbox: {\n color: palette.primary.contrastText,\n padding: 6,\n },\n socialButton: {\n borderRadius: 18,\n paddingLeft: spacing(1.5),\n paddingRight: spacing(1.5),\n marginRight: spacing(4),\n color: palette.primary.main,\n backgroundColor: palette.background.paper,\n minWidth: \"unset\",\n transition: \"color 0.2s, background-color 0.2s\",\n \"&:last-child\": {\n marginRight: 0,\n },\n \"&:hover\": {\n color: palette.primary.contrastText,\n backgroundColor: \"transparent\",\n border: `2px solid ${palette.primary.contrastText}`,\n paddingTop: spacing(0.5),\n paddingBottom: spacing(0.5),\n paddingLeft: spacing(1.25),\n paddingRight: spacing(1.25),\n },\n \"&.outlined\": {\n color: palette.primary.contrastText,\n backgroundColor: \"transparent\",\n border: `2px solid ${palette.primary.contrastText}`,\n paddingTop: spacing(0.5),\n paddingBottom: spacing(0.5),\n paddingLeft: spacing(1.25),\n paddingRight: spacing(1.25),\n \"&:hover\": {\n backgroundColor: palette.primary.contrastText,\n color: palette.primary.main,\n },\n },\n },\n}));\n\nconst PageFooter: React.FC> = () => {\n const { classes, cx } = useStyles();\n const t = useFormatMessage();\n const isMobileXs = useIsMobile(\"sm\");\n const isMobile = useIsMobile();\n const navigationItems = [\n {\n href: URLS.about,\n title: t(\"navigation.about\"),\n gtmTrigger: GtmTriggers.FooterNavLink,\n gtmLabel: GtmLabels.HeaderNavLinkAbout,\n },\n {\n href: URLS.resources,\n title: t(\"navigation.resources\"),\n gtmTrigger: GtmTriggers.FooterNavLink,\n gtmLabel: GtmLabels.HeaderNavLinkResources,\n },\n {\n href: URLS.termsOfService,\n title: t(\"navigation.termsOfService\"),\n gtmTrigger: GtmTriggers.FooterNavLink,\n gtmLabel: GtmLabels.FooterNavLinkTermsOfService,\n },\n {\n href: URLS.privacyPolicy,\n title: t(\"navigation.privacyPolicy\"),\n gtmTrigger: GtmTriggers.FooterNavLink,\n gtmLabel: GtmLabels.FooterNavLinkPrivacyPolicy,\n },\n {\n href: URLS.accessibilityPolicy,\n title: t(\"navigation.accessibilityPolicy\"),\n gtmTrigger: GtmTriggers.FooterNavLink,\n gtmLabel: GtmLabels.FooterNavLinkAccessibilityPolicy,\n },\n ];\n const navigation = (\n <>\n {navigationItems.map((navItem, i) => (\n \n {(trigger, dataAttrs) => (\n \n {navItem.title}\n \n )}\n \n ))}\n \n );\n\n const mailChimpSignup = ;\n\n const logos = (\n <>\n {t(\"footer.eohLogoAltText\")}\n {t(\"footer.hnmiLogoAltText\")}\n \n );\n\n // const copyright = <>â’¸ {new Date().getFullYear()} Housing Navigator Massachusetts, Inc\n const copyright = t(\"footer.copyright\", { year: new Date().getFullYear() });\n\n const socialButtons = (\n <>\n \n \n \n \n \n \n \n {(trigger, dataAttrs) => (\n {\n window.scroll({ top: 0, behavior: \"smooth\" });\n document.querySelector(\"a\")?.focus();\n }}\n {...dataAttrs}\n >\n \n \n )}\n \n \n \n );\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const gridItems = {\n links: (\n \n {navigation}\n \n ),\n signup: (\n \n {mailChimpSignup}\n \n ),\n branding: (\n \n \n {logos}\n \n \n {copyright}\n \n \n {socialButtons}\n \n \n ),\n };\n\n const grid = useMemo(() => {\n if (isMobileXs)\n return (\n \n {gridItems.signup}\n {gridItems.links}\n {gridItems.branding}\n \n );\n if (isMobile)\n return (\n \n {gridItems.signup}\n {gridItems.branding}\n {gridItems.links}\n \n );\n return (\n \n {gridItems.links}\n {gridItems.signup}\n {gridItems.branding}\n \n );\n }, [isMobile, isMobileXs, gridItems]);\n\n return (\n
\n {grid}\n
\n );\n};\nexport default PageFooter;\n","import { makeStyles } from \"tss-react/mui\";\n\nconst useStyles = makeStyles()(() => ({\n srOnly: {\n position: \"absolute\",\n left: -10000,\n top: \"auto\",\n width: 1,\n height: 1,\n overflow: \"hidden\",\n },\n}));\n\nconst useSrOnlyClassNames = () => useStyles().classes.srOnly;\n\nexport default useSrOnlyClassNames;\n","import React, { ReactNode } from \"react\";\n\nimport MobileNavbar from \"./MobileNavbar\";\nimport DesktopNavbar from \"./DesktopNavbar\";\nimport useIsMobile from \"Hooks/useIsMobile\";\n\nexport type NavbarProps = {\n noTranslate?: boolean;\n children: ReactNode;\n bannerContent?: ReactNode;\n};\n\nconst Navbar: React.FC> = (props) => {\n const isMobile = useIsMobile();\n if (isMobile) return ;\n return ;\n};\n\nexport default Navbar;\n","import { Skeleton } from \"@mui/material\";\nimport React, { useEffect, useState, useCallback, useRef } from \"react\";\nimport { GtmTriggers } from \"types\";\n\n/**\n * NOTE: Google will only mount one Google Translate widget on the page. It doesn't seem possible to re-mount the\n * widget if it is removed from the DOM, and cloning it breaks all the event listeners. Further, it will only mount if\n * the element is visible, so it has to be mounted into the actual layout first. Once mounted it can be moved around the\n * DOM and should keep its functionality. Therefore, the strategy here is to mount a holding div into the react root and\n * pass the mounted translate Node back and forth from the holding div as we mount GoogleTranslate components in the\n * React tree. This should ensure that the translate widget is never removed from the dom, ensuring that it continues to\n * work as expected.\n */\n\nexport type GoogleTranslateProps = {};\n\nconst id = `google_translate_element`;\n\nconst holder = document.createElement(\"div\");\nholder.setAttribute(\"style\", \"display: none;\");\nconst elem = document.createElement(\"div\");\nelem.setAttribute(\"id\", id);\ndocument.getElementById(\"j-root\")?.appendChild(holder);\n\nconst GoogleTranslate: React.FC> = () => {\n const [attempts, setAttempts] = useState(0);\n const timeout = useRef();\n const root = useRef(null);\n const [selectElem, setSelectElem] = useState(\n () => elem.querySelector(\"select\") || null,\n );\n\n const attemptToLoad = useCallback(() => {\n timeout.current = setTimeout(() => {\n // @ts-ignore\n if (google?.translate?.TranslateElement) {\n root.current?.appendChild(elem);\n if (!elem.hasChildNodes()) {\n // @ts-ignore\n new google.translate.TranslateElement({ pageLanguage: \"en\" }, id);\n setSelectElem(elem.querySelector(\"select\"));\n }\n } else {\n setAttempts(attempts + 1);\n }\n }, 1000);\n }, [attempts]);\n\n useEffect(() => {\n attemptToLoad();\n return () => {\n timeout.current && clearInterval(timeout.current);\n holder.appendChild(elem);\n };\n }, []); // eslint-disable-line\n useEffect(() => attemptToLoad(), [attempts]); // eslint-disable-line\n\n useEffect(() => {\n if (selectElem) {\n const handler = (e: React.ChangeEvent) => {\n try {\n const value = e.target.value;\n const option = Array.from(e.target.options).find((o) => o.value === value);\n const text = option?.textContent;\n (window as any).dataLayer.push({\n event: GtmTriggers.GoogleTranslate,\n lang: value,\n langName: text,\n });\n } catch (err) {\n console.error(\"Error handling google translate select change\", err);\n }\n };\n // @ts-ignore - lib.dom.ts doesn't have typings for addEventListener EventTypes on Elements\n selectElem.addEventListener(\"change\", handler);\n // @ts-ignore - lib.dom.ts doesn't have typings for addEventListener EventTypes on Elements\n return () => selectElem.removeEventListener(\"change\", handler);\n }\n }, [selectElem]);\n\n return (\n
{selectElem ? null : }
\n );\n};\n\nexport default GoogleTranslate;\n","import React, { ReactNode, ReactElement } from \"react\";\nimport { Menu, MenuProps } from \"@mui/material\";\nimport { usePopupState, bindTrigger, bindMenu } from \"material-ui-popup-state/hooks\";\nimport { v4 as uuid } from \"uuid\";\n\nexport type ReverseMenuContainerProps = {\n renderTrigger: (triggerProps: ReturnType) => ReactNode;\n id?: string;\n children: ReactElement[] | ReactElement | null | undefined;\n} & Partial;\n\nconst ReverseMenuContainer: React.FC> = ({\n children,\n renderTrigger,\n id = uuid(),\n ...props\n}) => {\n const popupState = usePopupState({ variant: \"popover\", popupId: id });\n return (\n <>\n {renderTrigger(bindTrigger(popupState))}\n \n {React.Children.map(\n children,\n (child) =>\n React.isValidElement(child) &&\n React.cloneElement(child, {\n onClick: (...args: any) => {\n child.props.onClick && child.props.onClick(...args);\n popupState.close();\n },\n }),\n )}\n \n \n );\n};\n\nexport default ReverseMenuContainer;\n","import React from \"react\";\nimport { MenuItem } from \"@mui/material\";\n\nimport ReverseMenuContainer, { ReverseMenuContainerProps } from \"Components/ReverseMenuContainer\";\nimport {\n NavbarLink,\n NavbarRouteLink,\n NavbarMenu,\n NavbarAction,\n isType,\n} from \"Components/NavbarComponents/NavbarItems\";\nimport GtmWrapper from \"Components/GtmWrapper\";\nimport GtmNavbarLink from \"../GtmNavbarLink\";\nimport GtmNavbarRouteLink from \"../GtmNavbarRouteLink\";\nimport GtmNavbarAction from \"../GtmNavbarAction\";\n\nexport type NavbarSubMenuProps = {\n renderTrigger: ReverseMenuContainerProps[\"renderTrigger\"];\n};\n\nconst NavbarSubMenu: React.FC> = ({\n renderTrigger,\n children,\n}) => {\n return (\n \n {React.Children.map(children, (child, i) => {\n if (React.isValidElement(child)) {\n if (isType(child, NavbarAction))\n return ;\n if (isType(child, NavbarLink))\n return ;\n if (isType(child, NavbarRouteLink))\n return ;\n if (isType(child, NavbarMenu))\n return (\n (\n \n {(trigger, dataAttrs) => (\n \n {child.props.title}\n \n )}\n \n )}\n >\n {child.props.children}\n \n );\n return child;\n }\n return null;\n })}\n \n );\n};\n\nexport default NavbarSubMenu;\n","import React, { ReactNode } from \"react\";\nimport { Link, Typography } from \"@mui/material\";\nimport { makeStyles } from \"tss-react/mui\";\n\nimport SubMenu from \"./SubMenu\";\nimport {\n NavbarLink,\n NavbarRouteLink,\n NavbarMenu,\n NavbarAction,\n isType,\n} from \"Components/NavbarComponents/NavbarItems\";\nimport GtmWrapper from \"Components/GtmWrapper\";\nimport GtmNavbarLink from \"../GtmNavbarLink\";\nimport GtmNavbarRouteLink from \"../GtmNavbarRouteLink\";\nimport GtmNavbarAction from \"../GtmNavbarAction\";\n\nexport type NavbarTopLevelMenuProps = {\n children: ReactNode;\n};\n\nconst useStyles = makeStyles()(() => ({\n inheritWeight: {\n fontFamily: \"inherit\",\n fontWeight: \"inherit\",\n },\n unsetWeight: {\n fontFamily: \"inherit\",\n fontWeight: \"unset\",\n },\n}));\n\nconst NavbarTopLevelMenu: React.FC> = ({\n children,\n}) => {\n const { classes } = useStyles();\n return (\n <>\n {React.Children.map(children, (child, i) => {\n if (React.isValidElement(child)) {\n if (isType(child, NavbarAction))\n return (\n \n {child.props.title}\n \n );\n if (isType(child, NavbarLink)) {\n return ;\n }\n if (isType(child, NavbarRouteLink)) {\n return ;\n }\n if (isType(child, NavbarMenu))\n return (\n (\n \n {(trigger, dataAttrs) => (\n \n \n {child.props.title}\n \n \n )}\n \n )}\n >\n {child.props.children}\n \n );\n return child;\n }\n return null;\n })}\n \n );\n};\n\nexport default NavbarTopLevelMenu;\n","import { Box } from \"@mui/material\";\nimport AppBar from \"@mui/material/AppBar\";\nimport Link from \"@mui/material/Link\";\nimport { makeStyles } from \"tss-react/mui\";\nimport Toolbar from \"@mui/material/Toolbar\";\n// @ts-ignore: Yes it can find this\nimport logoImg from \"./logo.svg\";\nimport React from \"react\";\nimport { Link as RouterLink } from \"react-router-dom\";\nimport { NavbarProps } from \"./Navbar\";\nimport TopLevelMenu from \"./Desktop/TopLevelMenu\";\nimport GoogleTranslate from \"Components/GoogleTranslate\";\nimport { featureIsToggled } from \"utils/featureToggle\";\nimport { FeatureToggle } from \"gqlTypes\";\nimport { GtmLabels, GtmTriggers } from \"../../types\";\nimport GtmWrapper from \"Components/GtmWrapper\";\n\nconst useStyles = makeStyles()(({ palette, typography, spacing, shape }) => ({\n root: {},\n menuItem: {\n textTransform: \"none\",\n fontWeight: \"inherit\",\n fontSize: \"inherit\",\n height: \"100%\",\n paddingLeft: spacing(2),\n paddingRight: spacing(2),\n display: \"flex\",\n },\n toolbar: {\n height: 107,\n fontWeight: 600,\n fontSize: typography.body1.fontSize,\n display: \"flex\",\n alignItems: \"center\",\n backgroundColor: \"white\",\n color: palette.primary.main,\n borderBottom: `1px solid #E0E0E0`,\n },\n navbarBrand: {\n paddingTop: spacing(1),\n \"& a\": {\n borderRadius: shape.borderRadius,\n },\n \"& img\": {\n height: \"4rem\",\n },\n },\n itemContainer: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n // flexGrow: 1,\n gap: spacing(3),\n },\n}));\n\nconst DesktopNavbar: React.FC> = ({\n noTranslate,\n children,\n bannerContent,\n}) => {\n const { classes } = useStyles();\n return (\n \n {bannerContent}\n \n \n \n \n {(trigger, dataAttrs) => (\n \n \"Housing\n \n )}\n \n \n \n {featureIsToggled(FeatureToggle.GoogleTranslate) && !noTranslate && (\n \n \n \n )}\n \n \n \n \n \n );\n};\n\nexport default DesktopNavbar;\n","import React, { useState } from \"react\";\nimport { MenuItem, Collapse } from \"@mui/material\";\nimport { makeStyles } from \"tss-react/mui\";\n\nimport { NavbarMenuProps } from \"Components/NavbarComponents/NavbarItems\";\nimport SubMenuBody from \"./SubMenuBody\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport ExpandLessIcon from \"@mui/icons-material/ExpandLess\";\nimport GtmWrapper from \"Components/GtmWrapper\";\n\nexport type NavbarMobileSubMenuProps = {\n startOpen?: boolean;\n level?: number;\n} & NavbarMenuProps;\n\nconst useStyles = makeStyles()(({ palette }) => ({\n trigger: {\n display: \"flex\",\n justifyContent: \"space-between\",\n },\n collapse: {\n borderBottom: `1px solid ${palette.divider}`,\n borderTop: `1px solid ${palette.divider}`,\n },\n}));\n\nconst NavbarMobileSubMenu: React.FC> = ({\n startOpen = false,\n children,\n level,\n ...props\n}) => {\n const [open, setOpen] = useState(startOpen);\n const { classes } = useStyles();\n return (\n \n {(trigger, dataAttrs) => (\n <>\n setOpen(!open)}\n className={`${classes.trigger} ${trigger}`}\n {...dataAttrs}\n >\n {props.title}\n {open ? : }\n \n \n {children}\n \n \n )}\n \n );\n};\n\nexport default NavbarMobileSubMenu;\n","import React from \"react\";\nimport { makeStyles } from \"tss-react/mui\";\nimport GtmNavbarLink from \"../GtmNavbarLink\";\n\nimport {\n NavbarLink,\n NavbarRouteLink,\n NavbarMenu,\n NavbarAction,\n isType,\n} from \"Components/NavbarComponents/NavbarItems\";\nimport SubMenu from \"./SubMenu\";\nimport GtmNavbarRouteLink from \"../GtmNavbarRouteLink\";\nimport GtmNavbarAction from \"../GtmNavbarAction\";\n\nexport type NavbarMobileSubMenuBodyProps = { level?: number };\n\ntype StyleProps = {\n level?: number;\n};\n\nconst useStyles = makeStyles()(({ spacing, palette }, { level = 0 }) => ({\n menuList: {\n marginLeft: spacing(level * 2),\n \"& .MuiMenuItem-root\": {\n fontWeight: 600,\n },\n \"& > *:last-child\": {\n \"&.MuiCollapse-entered\": {\n borderBottom: \"none\",\n },\n },\n \"& > .MuiCollapse-entered\": {\n borderBottom: `1px solid ${palette.divider}`,\n },\n },\n}));\n\nconst NavbarMobileSubMenuBody = React.forwardRef<\n any,\n React.PropsWithChildren\n>(({ level = 0, children }, ref) => {\n const { classes } = useStyles({ level });\n return (\n
\n {React.Children.map(children, (child, i) => {\n if (React.isValidElement(child)) {\n if (isType(child, NavbarAction))\n return ;\n if (isType(child, NavbarLink))\n return ;\n if (isType(child, NavbarRouteLink))\n return ;\n if (isType(child, NavbarMenu)) return ;\n return child;\n }\n return null;\n })}\n
\n );\n});\n\nexport default NavbarMobileSubMenuBody;\n","import { Box, Typography, Slide, Backdrop, Menu, MenuProps } from \"@mui/material\";\nimport AppBar from \"@mui/material/AppBar\";\nimport Link from \"@mui/material/Link\";\nimport { makeStyles } from \"tss-react/mui\";\nimport Toolbar from \"@mui/material/Toolbar\";\n// @ts-ignore: Yes it can find this\nimport logoImg from \"./logo.svg\";\nimport React, { useRef, useState, useEffect, useCallback } from \"react\";\nimport { Link as RouterLink, useLocation } from \"react-router-dom\";\nimport { NavbarProps } from \"./Navbar\";\nimport {\n NavbarLink,\n NavbarRouteLink,\n NavbarMenu,\n NavbarAction,\n isType,\n} from \"Components/NavbarComponents/NavbarItems\";\nimport SubMenuBody from \"./Mobile/SubMenuBody\";\nimport { GtmLabels, GtmTriggers } from \"types\";\nimport GtmWrapper from \"Components/GtmWrapper\";\nimport GtmNavbarLink from \"./GtmNavbarLink\";\nimport GtmNavbarRouteLink from \"./GtmNavbarRouteLink\";\nimport GtmNavbarAction from \"./GtmNavbarAction\";\n\nconst useStyles = makeStyles()(({ palette, typography, spacing }) => ({\n menuItem: {\n textTransform: \"none\",\n fontWeight: \"inherit\",\n fontSize: \"inherit\",\n height: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n },\n toolbar: {\n fontWeight: 600,\n fontSize: typography.body1.fontSize,\n display: \"flex\",\n alignItems: \"center\",\n backgroundColor: \"white\",\n color: palette.primary.main,\n borderBottom: `1px solid #e0e0e0`,\n paddingLeft: spacing(2),\n paddingRight: spacing(2),\n // paddingLeft: 0,\n // paddingRight: 0,\n zIndex: 1,\n },\n navbarBrand: {\n \"&:hover\": {\n textDecoration: \"none\",\n },\n \"& img\": {\n height: \"2.5rem\",\n },\n \"& .logoText\": {\n fontWeight: 400,\n fontSize: typography.pxToRem(20),\n },\n },\n itemContainer: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n gap: spacing(1.5),\n flexGrow: 1,\n \"& > *\": {\n marginRight: spacing(3),\n \"&:last-child\": {\n marginRight: 0,\n },\n },\n },\n menuPaper: {\n left: \"0px !important\",\n boxShadow: \"0px 3px 6px #00000029\",\n minWidth: \"100vw !important\",\n maxWidth: \"100vw !important\",\n width: \"100vw !important\",\n borderRadius: 0,\n },\n}));\n\nconst MobileNavbar: React.FC> = ({\n children,\n bannerContent,\n}) => {\n const ref = useRef(null);\n const menuRef = useRef(null);\n const { classes } = useStyles();\n const [menuOpen, setMenuOpen] = useState();\n const location = useLocation();\n const focusRef = useRef(null);\n\n useEffect(() => {\n setMenuOpen(undefined);\n }, [location]);\n\n // Stock Material-UI Menu components don't do keyboard nav with nested menus correctly, so this is needed to make things work as expected\n const handleKeyDownInMenu: JSX.IntrinsicElements[\"div\"][\"onKeyDown\"] = useCallback<\n NonNullable\n >((evt) => {\n if ([\"ArrowUp\", \"ArrowDown\"].includes(evt.key)) {\n evt.preventDefault();\n evt.stopPropagation();\n\n const menuItems = Array.from(\n menuRef.current?.querySelectorAll(\".MuiMenuItem-root, select\") || [],\n );\n if (!menuItems.find((e) => e === document.activeElement)) focusRef.current = null;\n const currentIndex = focusRef.current ? menuItems.indexOf(focusRef.current) : -1;\n const maxIndex = menuItems.length - 1;\n let nextIndex = currentIndex;\n\n if (evt.key === \"ArrowDown\") {\n nextIndex = currentIndex === -1 ? 0 : currentIndex + 1;\n if (nextIndex > maxIndex) nextIndex = 0;\n } else if (evt.key === \"ArrowUp\") {\n nextIndex = currentIndex === -1 ? maxIndex : currentIndex - 1;\n if (nextIndex < 0) nextIndex = maxIndex;\n }\n\n focusRef.current = menuItems[nextIndex] as HTMLElement;\n focusRef.current.focus();\n }\n\n if (evt.key === \"Escape\") setMenuOpen(undefined);\n }, []);\n\n let menus: [number, JSX.Element][] = [];\n const items = React.Children.map(children, (child, i) => {\n if (React.isValidElement(child)) {\n if (isType(child, NavbarAction))\n return (\n \n {child.props.title}\n \n );\n if (isType(child, NavbarLink)) {\n return ;\n }\n if (isType(child, NavbarRouteLink)) {\n return ;\n }\n if (isType(child, NavbarMenu)) {\n menus.push([i, child]);\n return (\n \n {(trigger, dataAttrs) => (\n setMenuOpen(menuOpen === i ? undefined : i)}\n className={trigger}\n aria-expanded={menuOpen === i}\n {...dataAttrs}\n >\n {child.props.title}\n \n )}\n \n );\n }\n return child;\n }\n return null;\n });\n\n return (\n <>\n theme.zIndex.appBar, width: \"100vw\" }}\n role=\"banner\"\n >\n {bannerContent}\n \n \n \n \n {(trigger, dataAttrs) => (\n \n \"Housing\n \n )}\n \n \n \n \n \n \n \n \n {menus.map(([index, elem]) => (\n setMenuOpen(undefined)}\n anchorEl={ref.current}\n sx={{\n zIndex: (theme) => theme.zIndex.appBar - 1,\n }}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"center\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"center\",\n }}\n classes={{\n paper: classes.menuPaper,\n }}\n TransitionComponent={Slide}\n onKeyDown={handleKeyDownInMenu}\n >\n {elem.props.children}\n \n ))}\n setMenuOpen(undefined)}\n sx={{ zIndex: 1 }}\n />\n \n );\n};\n\nexport default MobileNavbar;\n","module.exports = __webpack_public_path__ + \"media/Components/PageFooter/logo-7e217689049ab865ee299714a0dfac4f.svg\";","module.exports = __webpack_public_path__ + \"media/Components/PageFooter/feoh-white-345074063edab4a6642b6a63313fb074.png\";","module.exports = __webpack_public_path__ + \"media/Components/PageFooter/logo-mark-efa1c840cb811fb79cb39cfbd9ced5e5.svg\";","module.exports = __webpack_public_path__ + \"media/User/assets/banner-db07dbcc0b29adff7d73db761f5193f8.svg\";","import { Box, BoxProps } from \"@mui/material\";\nimport { localizationMessages } from \"Localization/messages\";\nimport React from \"react\";\nimport { GtmActions, GtmLabels, GtmTriggers, GTM_LABELS } from \"types\";\n\nexport type GtmWrapperProps = {\n trigger: GtmTriggers;\n label: GtmLabels;\n labelValue?: string;\n action?: GtmActions;\n otherData?: { [key: string]: string | void };\n children:\n | React.ReactElement\n | ((\n className: string,\n dataAttrs: { [key: string]: string | void },\n ref?: React.Ref,\n ) => React.ReactElement);\n} & Omit;\n\ntype GetDataAttrsProps = Pick<\n GtmWrapperProps,\n \"trigger\" | \"label\" | \"labelValue\" | \"action\" | \"otherData\"\n>;\n\nexport const getDataAttrs = ({\n trigger,\n label,\n labelValue,\n action,\n otherData = {},\n}: GetDataAttrsProps) => {\n const labelString = GTM_LABELS[trigger][label];\n const dataAttrs = {\n [\"data-gtm-label\"]: labelValue ? labelValue : localizationMessages[\"en\"][labelString],\n [\"data-gtm-action\"]: action,\n ...otherData,\n };\n\n return dataAttrs;\n};\n\nconst GtmWrapper = React.forwardRef((props, ref) => {\n const { trigger, label, labelValue, action, children, ...boxProps } = props;\n const dataAttrs = getDataAttrs(props);\n if (typeof children === \"function\") {\n return children(trigger, dataAttrs, ref);\n }\n return (\n \n {children}\n \n );\n});\n\nexport default GtmWrapper;\n","import { FieldList } from \"Components/DataTable/types\";\nimport { DocumentNode, FragmentDefinitionNode } from \"graphql\";\n\nexport const getFragmentName = (fragment: DocumentNode) =>\n (fragment.definitions.find((d) => d.kind === \"FragmentDefinition\") as FragmentDefinitionNode)\n ?.name.value;\n\nexport const getFragmentFields = (fields: FieldList) =>\n fields.filter((f) => f.fragment).map((f) => f.fragment || { name: f.key, body: `{ ${f.key} }` });\nexport const getBaseFields = (fields: FieldList) =>\n fields\n .filter((f) => !f.fragment)\n .map((f) => f.key)\n .join(\"\\n\");\nexport const fragmentTypes = (fields: FieldList, type: string) =>\n getFragmentFields(fields)\n .map((f) => `fragment ${f.name} on ${type} ${f.body}`)\n .join(\"\\n\");\nexport const fragmentCalls = (fields: FieldList) =>\n getFragmentFields(fields)\n .map((f) => `...${f.name}`)\n .join(\"\\n\");\nexport const getFragmentsOfType = (fragment: DocumentNode) => {\n return (\n fragment.definitions.find((d) => d.kind === \"FragmentDefinition\") as FragmentDefinitionNode\n )?.name.value;\n};\n","import { OutlinedTextFieldProps, TextField } from \"@mui/material\";\nimport { useField, useFormikContext } from \"formik\";\nimport React, { useCallback } from \"react\";\n\ntype Props = Partial;\n\nconst normalizeTextValue = (value: string, type: string) => {\n let parsed;\n switch (type.toLowerCase()) {\n case \"number\":\n parsed = value ? Number(value) : NaN;\n return isNaN(parsed) ? null : parsed;\n default:\n return value;\n }\n};\n\nconst ContentTextField: React.FC> = ({\n value,\n onChange: ignored,\n ...props\n}) => {\n const [field, { error }] = useField(props.name!);\n const { setFieldValue } = useFormikContext();\n const handleChange = useCallback(\n (e: React.ChangeEvent) => {\n const { value, type } = e.currentTarget;\n setFieldValue(props.name!, normalizeTextValue(value, type));\n },\n [setFieldValue, props.name],\n );\n return (\n \n );\n};\n\nexport default ContentTextField;\n","import { ReactElement, PropsWithChildren } from \"react\";\n\ntype LoaderRenderType = {\n loading?: () => ReactElement;\n error?: (error: Error) => ReactElement;\n data?: (data: T) => ReactElement;\n empty?: () => ReactElement;\n};\n\ntype DataLoaderProps = {\n data: T | undefined | null;\n loading?: boolean;\n error?: Error;\n render?: LoaderRenderType;\n};\n\nconst DataLoader = ({\n loading,\n error,\n data,\n render = {},\n}: PropsWithChildren>): ReactElement | null => {\n if (error) return render.error ? render.error(error) : null;\n if (loading) return render.loading ? render.loading() : null;\n if (!data || (Array.isArray(data) && data.length <= 0))\n return render.empty ? render.empty() : null;\n if (data) return render.data ? render.data(data) : null;\n return null;\n};\n\nexport default DataLoader;\n","import React from \"react\";\nimport { Box, Typography } from \"@mui/material\";\n\nconst transformVal = (val: any): string => {\n if (!val) return \"\";\n if (typeof val === \"object\") {\n if (Array.isArray(val)) return \"[ ... ]\";\n return JSON.stringify(val);\n }\n if (val && val.toString) return val.toString();\n return \"\";\n};\n\nconst KeyVals: React.FC> = ({\n obj,\n exclude,\n}) => {\n return (\n \n {Object.entries(obj)\n .filter(([key]) => !exclude || !exclude?.includes(key))\n // .sort(([k1], [k2]) => k1 > k2 ? 1 : -1)\n .map(([key, val]) => (\n \n \n {key}\n \n {transformVal(val)}\n \n ))}\n \n );\n};\n\nexport default KeyVals;\n","import React, { ReactNode } from \"react\";\n\nimport useMyAccount from \"MyAccount/Hooks/useMyAccount\";\nimport useMyPermissions from \"MyAccount/Hooks/useMyPermissions\";\n\nconst RoleFilter: React.FC<\n React.PropsWithChildren<{\n admin?: true;\n superadmin?: true;\n allowUnauthenticated?: boolean;\n otherwise?: ReactNode;\n fallback?: ReactNode; // Rendered if query is loading\n }>\n> = ({ admin, superadmin, otherwise, allowUnauthenticated = false, fallback, children }) => {\n const [user, { loading: userLoading }] = useMyAccount();\n const [permissions, { loading: permissionsLoading }] = useMyPermissions();\n\n let hasRole = false;\n\n if (admin && permissions?.canAdmin) hasRole = true;\n if (superadmin && permissions?.canSuperadmin) hasRole = true;\n\n if (userLoading || permissionsLoading) return fallback ? <>{fallback} : null;\n\n if (user && hasRole) return <>{children};\n // Just checking if the user is logged in\n if (user && !admin && !superadmin) return <>{children};\n if (allowUnauthenticated) return <>{children};\n if (otherwise) return <>{otherwise};\n return null;\n};\n\nexport default RoleFilter;\n","import React, { ReactNode } from \"react\";\n\nimport useMyAccount from \"MyAccount/Hooks/useMyAccount\";\n\nconst OrgFilter: React.FC<\n React.PropsWithChildren<{\n orgId: string;\n roles?: string[];\n otherwise?: ReactNode;\n }>\n> = ({ orgId, roles, otherwise, children }) => {\n const [user, { loading }] = useMyAccount();\n\n if (loading) return null;\n\n const hasPermissions =\n user && // User must exist\n user.organizationLinks?.find(\n (link) =>\n link.organization.id === orgId && // User must be a member of the organization\n (roles ? link.roles.find((r) => roles.includes(r)) : true), // User must have one of the organization roles specified, or pass if none are specified\n );\n\n if (hasPermissions) return <>{children};\n if (otherwise) return <>{otherwise};\n return null;\n};\n\nexport default OrgFilter;\n","import React from \"react\";\nimport { Box, CircularProgress, Skeleton, SkeletonProps } from \"@mui/material\";\n\nconst LoadingBox: React.FC> = ({ children, ...props }) => (\n \n \n {children || }\n \n \n);\n\nexport default LoadingBox;\n","import { Box } from \"@mui/material\";\nimport { makeStyles } from \"tss-react/mui\";\nimport React, { cloneElement, ReactElement, ReactNode } from \"react\";\n\ntype IconTextProps = {\n icon?: ReactElement;\n text: ReactNode;\n alignItems?: \"flex-start\" | \"flex-end\" | \"center\" | \"stretch\" | \"baseline\";\n};\n\nconst useStyles = makeStyles()(() => ({\n container: {\n display: \"flex\",\n },\n icon: {\n marginRight: \"5px\",\n },\n text: {\n flexShrink: 0,\n },\n}));\n\nconst IconText: React.FC> = ({\n icon,\n text,\n alignItems = \"center\",\n}) => {\n const { classes } = useStyles();\n\n const iconComponent = icon ? cloneElement(icon, { className: classes.icon }) : null;\n\n return (\n \n {icon && iconComponent}\n {text}\n \n );\n};\n\nexport default IconText;\n","export const isValidUrl = (url?: string | null) => {\n if (!url) return false;\n const reg = new RegExp(\n /^(?:http(s)?:\\/\\/)?[\\w\\\\.-]+(?:\\.[\\w\\\\.-]+)+[%\\w\\-\\\\._~:/?#[\\]@!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=.]+$/gm,\n );\n return reg.test(url);\n};\n\nexport const isValidPhone = (tel?: string | null) => {\n if (!tel) return false;\n const onlyNumbers = tel.replace(/[^\\d]/g, \"\");\n if (onlyNumbers.length < 11) {\n return false;\n }\n return true;\n};\n\nexport const isValidEmail = (email?: string | null) => {\n if (!email) return false;\n const reg = new RegExp(/\\S+@\\S+\\.\\S+/);\n return reg.test(email);\n};\n\nexport const validateRequiredField = (v?: string) => (v ? undefined : \"is required\");\n\nexport const validateUnits = (units: number, totalUnits?: number) => {\n if (units < 1) {\n return `must be greater than 0`;\n } else if (totalUnits && units > totalUnits) {\n return `cannot be greater than the total number of units (${totalUnits})`;\n }\n};\n","import { useQuery } from \"@apollo/client\";\nimport gql from \"graphql-tag\";\n\nimport { RootPermissions, User } from \"gqlTypes\";\n\nexport const MY_ACCOUNT_FRAGMENT = gql`\n fragment CurrentUserFields on User {\n id\n name\n email\n role\n dev\n devToggles\n twoFactorEnabled\n organizationLinks {\n roles\n organization {\n id\n name\n }\n }\n }\n`;\nconst MY_ACCOUNT_QUERY = gql`\n query myAccount {\n myAccount {\n ...CurrentUserFields\n }\n myPermissions {\n canClearCaches\n canSetAdminBanner\n canAdminSearch\n canExportRecords\n canImportRecords\n canCreateListings\n canAdministerListings\n canViewNonPublicListings\n canViewSensitiveListings\n canCreateOrganizations\n canCreateAdminUsers\n canCreateNonAdminUsers\n }\n }\n ${MY_ACCOUNT_FRAGMENT}\n`;\n\nconst useMyAccount = () => {\n const { data, ...status } = useQuery<{ myAccount: User; myPermissions: RootPermissions }>(\n MY_ACCOUNT_QUERY,\n );\n\n if (status.error) throw status.error;\n\n const account = data?.myAccount ?? null;\n return [account, status] as const;\n};\n\nexport default useMyAccount;\n","import { useCallback, useEffect, useState } from \"react\";\nimport readCsrfToken from \"utils/readCsrfToken\";\n\ntype Status = \"new\" | \"loading\" | \"success\" | \"failure\";\nexport type UserSessionInput = {\n email: string;\n password: string;\n remember_me: boolean;\n};\n\nexport type OtpInput = {\n otp_attempt: string;\n};\n\nconst headers = { \"Content-Type\": \"application/json\", \"X-CSRF-Token\": readCsrfToken() };\n\nconst parseJSON = (response: Response) => {\n return response.text().then(function (text) {\n return text ? JSON.parse(text) : {};\n });\n};\n\nexport const useOrganizationsFromInvitationToken = (invitation_token: string | null) => {\n const [status, setStatus] = useState(\"new\");\n const cb = useCallback(() => {\n setStatus(\"loading\");\n return fetch(`/users/organizations.json?invitation_token=${invitation_token}`, {\n method: \"GET\",\n headers,\n }).then((response) => {\n console.log(\"response\", response);\n setStatus(response.ok ? \"success\" : \"failure\");\n if (response.ok) {\n return parseJSON(response);\n } else {\n return { error: response.statusText };\n }\n });\n }, [invitation_token]);\n return [cb, status] as const;\n};\n\nexport const useDestroyUserSession = () => {\n const [status, setStatus] = useState(\"new\");\n const cb = useCallback(() => {\n setStatus(\"loading\");\n return fetch(\"/users/sign_out.json\", {\n method: \"GET\",\n headers,\n }).then((response) => {\n setStatus(response.ok ? \"success\" : \"failure\");\n if (response.ok) {\n window.location.replace(\"/\");\n }\n return parseJSON(response);\n });\n }, []);\n return [cb, status] as const;\n};\n\ntype LoginStatus = Status | \"otp\" | \"locked\";\n\nconst parseFailureStatus = (response: any): LoginStatus => {\n if (!response || !response?.error) return \"failure\";\n const err = response.error;\n if (typeof err === \"string\") {\n if (err.includes(\"2fa_required\")) return \"otp\";\n if (err.includes(\"locked\")) return \"locked\";\n }\n return \"failure\";\n};\n\nexport const useCreateUserSession = () => {\n const [status, setStatus] = useState(\"new\");\n const cb = useCallback((input: UserSessionInput) => {\n setStatus(\"loading\");\n return fetch(\"/users/sign_in.json\", {\n method: \"POST\",\n headers,\n body: JSON.stringify({ user: input }),\n }).then(async (response) => {\n const parsedResponse = await parseJSON(response);\n if (response.ok) {\n setStatus(\"success\");\n return parsedResponse;\n } else {\n setStatus(parseFailureStatus(parsedResponse));\n return null;\n }\n });\n }, []);\n return [cb, status] as const;\n};\n\nexport const useCreateUserSessionOtp = () => {\n const [status, setStatus] = useState(\"new\");\n const cb = useCallback((input: OtpInput) => {\n setStatus(\"loading\");\n return fetch(\"/users/sign_in.json\", {\n method: \"POST\",\n headers,\n body: JSON.stringify({ user: input }),\n }).then(async (response) => {\n const parsedResponse = await parseJSON(response);\n if (response.ok) {\n setStatus(\"success\");\n return parsedResponse;\n } else {\n setStatus(parseFailureStatus(parsedResponse));\n return null;\n }\n });\n }, []);\n return [cb, status] as const;\n};\n\nexport type ForgotPasswordInput = { email: string };\nexport const useRequestPasswordReset = () => {\n const [status, setStatus] = useState(\"new\");\n const cb = useCallback((input: ForgotPasswordInput) => {\n setStatus(\"loading\");\n return fetch(\"/users/password.json\", {\n method: \"POST\",\n headers,\n body: JSON.stringify({ user: input }),\n }).then((response) => {\n setStatus(response.ok ? \"success\" : \"failure\");\n return parseJSON(response);\n });\n }, []);\n return [cb, status] as const;\n};\n\nexport type UnlockInstructionsInput = { email: string };\nexport const useUnlockInstructions = () => {\n const [status, setStatus] = useState(\"new\");\n const cb = useCallback((input: UnlockInstructionsInput) => {\n setStatus(\"loading\");\n return fetch(\"/users/unlock.json\", {\n method: \"POST\",\n headers,\n body: JSON.stringify({ user: input }),\n }).then((response) => {\n setStatus(response.ok ? \"success\" : \"failure\");\n return parseJSON(response);\n });\n }, []);\n return [cb, status] as const;\n};\n\nexport type UnlockInput = { unlock_token: string };\nexport const useUnlockRequest = () => {\n const [status, setStatus] = useState(\"new\");\n const cb = useCallback((input: UnlockInput) => {\n setStatus(\"loading\");\n return fetch(`/users/unlock.json?unlock_token=${encodeURIComponent(input.unlock_token)}`, {\n method: \"GET\",\n headers,\n }).then((response) => {\n setStatus(response.ok ? \"success\" : \"failure\");\n return parseJSON(response);\n });\n }, []);\n return [cb, status] as const;\n};\n\nexport type ResetPasswordInput = {\n reset_password_token: string;\n password: string;\n password_confirmation: string;\n};\nexport const useResetPassword = () => {\n const [status, setStatus] = useState(\"new\");\n const cb = useCallback((input: ResetPasswordInput) => {\n setStatus(\"loading\");\n return fetch(\"/users/password.json\", {\n method: \"PATCH\",\n headers,\n body: JSON.stringify({ user: input }),\n }).then((response) => {\n setStatus(response.ok ? \"success\" : \"failure\");\n return parseJSON(response);\n });\n }, []);\n return [cb, status] as const;\n};\n\ntype UserStub = null | { id: string; setup_2fa_required: boolean };\nexport const useFetchCurrentUser = () => {\n const [status, setStatus] = useState(\"new\");\n const [user, setUser] = useState(undefined);\n useEffect(() => {\n setStatus(\"loading\");\n fetch(\"/current_user.json\", {\n method: \"GET\",\n headers,\n }).then(async (response) => {\n const status = response.ok ? \"success\" : \"failure\";\n const user = status === \"success\" ? await parseJSON(response) : undefined;\n setUser(user);\n setStatus(status);\n });\n }, [setStatus, setUser]);\n return [user, status] as const;\n};\n\nexport type AcceptInvitationInput = {\n invitation_token: string;\n password: string;\n password_confirmation: string;\n agree_to_terms: boolean;\n};\nexport const useAcceptInvitation = () => {\n const [status, setStatus] = useState(\"new\");\n const cb = useCallback((input: AcceptInvitationInput) => {\n setStatus(\"loading\");\n return fetch(\"/users/invitation.json\", {\n method: \"PATCH\",\n headers,\n body: JSON.stringify({ user: input }),\n }).then((response) => {\n setStatus(response.ok ? \"success\" : \"failure\");\n return parseJSON(response);\n });\n }, []);\n return [cb, status] as const;\n};\n\nexport const useValidateInvitationToken = (invitation_token: string | null) => {\n const [status, setStatus] = useState(\"new\");\n const [valid, setValid] = useState(undefined);\n\n useEffect(() => {\n setStatus(\"loading\");\n setValid(undefined);\n fetch(`/users/validate_invitation.json?invitation_token=${invitation_token}`, {\n method: \"GET\",\n headers,\n }).then((response) => {\n setStatus(response.ok ? \"success\" : \"failure\");\n parseJSON(response)\n .then(({ valid }: { valid: boolean }) => setValid(valid))\n .catch(console.error);\n });\n }, [invitation_token]);\n return [valid, status] as const;\n};\n\nexport const useTwoFactorQrCode = () => {\n const [status, setStatus] = useState(\"new\");\n const [data, setData] = useState();\n useEffect(() => {\n setStatus(\"loading\");\n fetch(\"/two_factor/provisioning_uri.json\", {\n method: \"GET\",\n headers,\n }).then(async (response) => {\n const status = response.ok ? \"success\" : \"failure\";\n const user = status === \"success\" ? await parseJSON(response) : undefined;\n setData(user);\n setStatus(status);\n });\n }, [setStatus, setData]);\n\n return [data, status] as const;\n};\n\nexport const useTwoFactorEnable = () => {\n const [status, setStatus] = useState(\"new\");\n const cb = useCallback((input: OtpInput) => {\n setStatus(\"loading\");\n return fetch(\"/two_factor/provisioning_code.json\", {\n method: \"POST\",\n headers,\n body: JSON.stringify({ user: input }),\n }).then((response) => {\n const status = response.ok ? \"success\" : \"failure\";\n setStatus(status);\n return response.ok;\n });\n }, []);\n return [cb, status] as const;\n};\n\nexport const useTwoFactorBackups = () => {\n const [status, setStatus] = useState(\"new\");\n const [data, setData] = useState();\n\n const cb = useCallback(() => {\n setStatus(\"loading\");\n return fetch(\"/two_factor/backups.json\", {\n method: \"GET\",\n headers,\n }).then(async (response) => {\n const status = response.ok ? \"success\" : \"failure\";\n const data = status === \"success\" ? await parseJSON(response) : undefined;\n setData(data);\n setStatus(status);\n });\n }, []);\n return [cb, data, status] as const;\n};\n","import { Box, Collapse } from \"@mui/material\";\nimport Alert from \"@mui/material/Alert\";\nimport { Form, Formik, FormikConfig, FormikErrors, FormikHelpers } from \"formik\";\nimport React, { ReactNode, useCallback, useEffect, useRef, useState } from \"react\";\n\ntype Props = {\n initialValues: T;\n onSubmit: (values: T, helpers: FormikHelpers) => Promise;\n children: ReactNode;\n promptOnDirtyNav?: boolean;\n failureMessage?: ReactNode;\n actions?: ReactNode;\n} & Pick<\n FormikConfig,\n \"validate\" | \"validateOnBlur\" | \"validateOnChange\" | \"enableReinitialize\"\n>;\n\nconst UserForm = >({\n initialValues,\n onSubmit,\n children,\n validate,\n failureMessage,\n validateOnBlur = false,\n validateOnChange = false,\n enableReinitialize = false,\n}: Props) => {\n const isMounted = useRef(true);\n\n useEffect(() => {\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n const [alert, setAlert] = useState(undefined);\n\n const handleSubmit = useCallback(\n (values: any, helpers: FormikHelpers) => {\n const { setSubmitting, setErrors } = helpers;\n onSubmit(values, helpers)\n .then((data?: { errors?: FormikErrors; error?: string }) => {\n if (data && isMounted.current) {\n if (data.errors) {\n setErrors(data.errors);\n }\n if (data.error) {\n setAlert(data.error);\n }\n }\n })\n .finally(() => isMounted.current && setSubmitting(false));\n },\n [onSubmit],\n );\n\n return (\n \n
\n \n \n \n {failureMessage} {alert}\n \n \n \n {children}\n
\n \n );\n};\n\nexport default UserForm;\n","import { useQuery } from \"@apollo/client\";\nimport gql from \"graphql-tag\";\n\nimport { RootPermissions } from \"gqlTypes\";\n\nconst MY_PERMISSIONS_QUERY = gql`\n query MyPermissions {\n myPermissions {\n canClearCaches\n canSetAdminBanner\n canAdminSearch\n canExportRecords\n canImportRecords\n canCreateListings\n canViewNonPublicListings\n canViewSensitiveListings\n canAdministerListings\n canCreateOrganizations\n canCreateAdminUsers\n canCreateNonAdminUsers\n canAdmin\n canSuperadmin\n }\n }\n`;\n\nconst useMyPermissions = () => {\n const { data, ...status } = useQuery<{ myPermissions: RootPermissions }>(MY_PERMISSIONS_QUERY);\n\n if (status.error) throw status.error;\n\n const permissions = data?.myPermissions ?? null;\n return [permissions, status] as const;\n};\n\nexport default useMyPermissions;\n","import { Button, ButtonProps } from \"@mui/material\";\nimport { useFormikContext } from \"formik\";\nimport React, { ReactNode } from \"react\";\n\ntype Props = {\n children: ReactNode;\n} & ButtonProps;\n\nconst ContentSubmitButton: React.FC> = ({\n color = \"primary\",\n ...props\n}) => {\n const { submitForm, isSubmitting, status } = useFormikContext();\n const disabled = status === \"disabled\";\n return (\n {\n submitForm().then(() => Promise.resolve(props.onClick && props.onClick(...args)));\n }}\n />\n );\n};\n\nexport default ContentSubmitButton;\n","import { Typography } from \"@mui/material\";\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport UserLayout, { UserFormProps } from \"User/Components/UserLayout\";\n\nexport type PageNotFoundProps = {\n continueContent?: React.ReactNode;\n continueTo?: string;\n noContinue?: boolean;\n} & Partial;\n\nconst PageNotFound: React.FC> = ({\n children,\n continueContent,\n continueTo = \"/\",\n noContinue = false,\n ...props\n}) => {\n const continueNode = continueContent || <>» Continue;\n return (\n \n {children}\n {!noContinue && (\n \n {continueNode}\n \n )}\n \n );\n};\n\nexport default PageNotFound;\n","import { useEffect } from \"react\";\n\nconst useDataLayerVariable = (name: string, value: T, nullValue: any = undefined) => {\n useEffect(() => {\n return () => {\n window.dataLayer.push({ [name]: nullValue });\n };\n }, [nullValue, name]);\n\n useEffect(() => {\n window.dataLayer.push({ [name]: value || nullValue });\n }, [name, value, nullValue]);\n};\n\nexport default useDataLayerVariable;\n","import useMyAccount from \"MyAccount/Hooks/useMyAccount\";\nimport React from \"react\";\nimport { NavbarLink, NavbarRouteLink, NavbarMenu } from \"Components/NavbarComponents/NavbarItems\";\nimport { useFormatMessage } from \"Localization/hooks\";\nimport { GtmLabels, GtmTriggers } from \"types\";\nimport * as URLS from \"consts/urls\";\n\nconst usePropertyManagersMenu = () => {\n const [user] = useMyAccount();\n const t = useFormatMessage();\n\n if (!user)\n return (\n \n \n \n \n );\n\n const hasItems = user?.organizationLinks && user.organizationLinks.length > 0;\n\n let items: JSX.Element[] = [];\n if (hasItems) {\n items = (user?.organizationLinks || []).map((link) => (\n \n ));\n } else {\n items.push(\n ,\n );\n }\n items.push(\n ,\n );\n return (\n \n {items}\n \n );\n};\n\nexport default usePropertyManagersMenu;\n","import useMyAccount from \"MyAccount/Hooks/useMyAccount\";\nimport React from \"react\";\nimport { NavbarRouteLink, NavbarMenu, NavbarAction } from \"Components/NavbarComponents/NavbarItems\";\nimport { useDestroyUserSession } from \"User/Hooks/userHooks\";\nimport AccountCircleIcon from \"@mui/icons-material/AccountCircle\";\nimport useIsMobile from \"Hooks/useIsMobile\";\nimport { GtmLabels, GtmTriggers } from \"types\";\n\nconst useUserMenu = () => {\n const [user, { loading }] = useMyAccount();\n const [handleLogout] = useDestroyUserSession();\n const isMobile = useIsMobile();\n\n const menuNode = (\n \n ) : (\n
\n {user?.name || user?.email || \"User\"}\n  \n \n
\n )\n }\n label=\"show account menu\"\n GtmWrapperProps={{\n trigger: GtmTriggers.HeaderNavMenu,\n label: GtmLabels.HeaderNavMenuAccount,\n }}\n >\n \n \n \n );\n\n return [menuNode, loading] as const;\n};\n\nexport default useUserMenu;\n","import React from \"react\";\nimport { NavbarRouteLink, NavbarMenu } from \"Components/NavbarComponents/NavbarItems\";\nimport { GtmLabels, GtmTriggers } from \"types\";\nimport { useHasRootPermissions } from \"Hooks/useHasPermissions\";\nimport useMyPermissions from \"MyAccount/Hooks/useMyPermissions\";\n\nconst useAdminsMenu = () => {\n const [, { loading }] = useMyPermissions();\n\n const canAccessAdminFeatures = useHasRootPermissions([\n \"canAdminSearch\",\n \"canAdministerListings\",\n \"canClearCaches\",\n \"canCreateAdminUsers\",\n \"canCreateNonAdminUsers\",\n \"canCreateOrganizations\",\n \"canExportRecords\",\n \"canImportRecords\",\n \"canSetAdminBanner\",\n \"canViewNonPublicListings\",\n \"canViewSensitiveListings\",\n ]);\n\n const canAdminSearch = useHasRootPermissions(\"canAdminSearch\");\n\n const canAdministerUsers = useHasRootPermissions([\n \"canCreateAdminUsers\",\n \"canCreateNonAdminUsers\",\n ]);\n\n const canAdministerOrganizations = useHasRootPermissions(\"canCreateOrganizations\");\n\n const canAccessImports = useHasRootPermissions(\"canImportRecords\");\n\n const canAccessUtilities = useHasRootPermissions([\"canSetAdminBanner\", \"canClearCaches\"]);\n const canAccessDsi = useHasRootPermissions([\"canAdministerListings\"]);\n\n const menuNode = (\n \n {canAdminSearch && (\n \n )}\n {canAdministerUsers && (\n \n )}\n {canAdministerOrganizations && (\n \n )}\n {canAccessImports ? (\n \n ) : null}\n {canAccessUtilities && (\n \n )}\n {canAccessDsi && (\n \n )}\n \n );\n\n return [canAccessAdminFeatures ? menuNode : null, loading] as const;\n};\n\nexport default useAdminsMenu;\n","import React from \"react\";\nimport MenuIcon from \"@mui/icons-material/Menu\";\nimport MobileNavbarContainer from \"Components/NavbarComponents/MobileNavbar\";\nimport { NavbarLink, NavbarMenu } from \"Components/NavbarComponents/NavbarItems\";\nimport usePropertyManagersMenu from \"./usePropertyManagersMenu\";\nimport useUserMenu from \"./useUserMenu\";\nimport useAdminsMenu from \"./useAdminsMenu\";\nimport { NavbarProps } from \"./Navbar\";\nimport { Box } from \"@mui/material\";\nimport * as URLS from \"consts/urls\";\nimport { useFormatMessage } from \"Localization/hooks\";\nimport GoogleTranslate from \"Components/GoogleTranslate\";\nimport { featureIsToggled } from \"utils/featureToggle\";\nimport { FeatureToggle } from \"gqlTypes\";\nimport { GtmLabels, GtmTriggers } from \"types\";\n\nconst MobileNavbar: React.FC> = ({\n noUser = false,\n noTranslate = false,\n bannerContent,\n}) => {\n const propertyManagersMenu = usePropertyManagersMenu();\n const [userMenu] = useUserMenu();\n const [adminsMenu] = useAdminsMenu();\n const t = useFormatMessage();\n return (\n <>\n \n {noUser ? <> : userMenu}\n }\n label={t(\"navigation.mobile\")}\n GtmWrapperProps={{\n trigger: GtmTriggers.HeaderNavMenu,\n label: GtmLabels.HeaderNavMenuMobile,\n }}\n >\n \n \n {adminsMenu || <>}\n {propertyManagersMenu}\n {featureIsToggled(FeatureToggle.GoogleTranslate) && !noTranslate && (\n \n \n \n )}\n \n \n \n );\n};\n\nexport default MobileNavbar;\n","import React from \"react\";\n\nimport DesktopNavbarContainer from \"Components/NavbarComponents/DesktopNavbar\";\nimport { NavbarLink } from \"Components/NavbarComponents/NavbarItems\";\nimport usePropertyManagersMenu from \"./usePropertyManagersMenu\";\nimport useUserMenu from \"./useUserMenu\";\nimport useAdminsMenu from \"./useAdminsMenu\";\nimport { NavbarProps } from \"./Navbar\";\nimport { useFormatMessage } from \"Localization/hooks\";\nimport * as URLS from \"consts/urls\";\nimport { GtmLabels, GtmTriggers } from \"types\";\nimport { Skeleton } from \"@mui/material\";\n\nconst DesktopNavbar: React.FC> = ({\n noUser = false,\n noTranslate,\n bannerContent,\n}) => {\n const t = useFormatMessage();\n const propertyManagersMenu = usePropertyManagersMenu();\n const [userMenu, userLoading] = useUserMenu();\n const [adminsMenu, adminLoading] = useAdminsMenu();\n\n return (\n <>\n {userLoading || adminLoading ? (\n \n \n \n ) : (\n \n \n \n {adminsMenu || <>}\n {propertyManagersMenu}\n {noUser ? <> : userMenu}\n \n )}\n \n );\n};\n\nexport default DesktopNavbar;\n","import React, { useState } from \"react\";\n\nimport MobileNavbar from \"./MobileNavbar\";\nimport DesktopNavbar from \"./DesktopNavbar\";\nimport useIsMobile from \"Hooks/useIsMobile\";\nimport { useFetchCurrentUser } from \"User/Hooks/userHooks\";\nimport AdminBanner from \"Components/Banners/AdminBanner\";\nimport useBannerQuery from \"../Banners/useBannerQuery\";\n\nexport type NavbarProps = {\n bannerContent?: React.ReactNode;\n noUser?: boolean;\n noTranslate?: boolean;\n};\n\nconst Navbar: React.FC>> = (props) => {\n const [currentUser] = useFetchCurrentUser();\n const [banner] = useBannerQuery();\n const [bannerOpen, setBannerOpen] = useState(true);\n const handleBannerClose = () => setBannerOpen(false);\n\n let bannerContent: React.ReactNode | undefined = undefined;\n\n if (banner && banner.active)\n bannerContent = ;\n\n return useIsMobile() ? (\n \n ) : (\n \n );\n};\n\nexport default Navbar;\n","import { Maybe, RootPermissions } from \"gqlTypes\";\nimport useMyPermissions from \"MyAccount/Hooks/useMyPermissions\";\n\nexport type UseHasRootPermissionsOptions = {\n mode?: \"all\" | \"any\";\n};\n\nexport const useHasPermissions = (\n permObject: Maybe | undefined,\n permissions: keyof T | (keyof T)[],\n { mode }: UseHasRootPermissionsOptions = {},\n) => {\n const permissionsList = Array.isArray(permissions) ? permissions : [permissions];\n\n const matcher = (key: keyof T) => !!(permObject && permObject[key]);\n\n return !!(\n permObject && (mode === \"all\" ? permissionsList.every(matcher) : permissionsList.some(matcher))\n );\n};\n\nexport const useHasRootPermissions = (\n permissions: keyof RootPermissions | (keyof RootPermissions)[],\n { mode }: UseHasRootPermissionsOptions = {},\n) => {\n const [myPermissions] = useMyPermissions();\n\n return useHasPermissions(myPermissions, permissions, { mode });\n};\n","import useDataLayerVariable from \"Hooks/useDataLayerVariable\";\nimport useMyAccount from \"MyAccount/Hooks/useMyAccount\";\nimport pick from \"lodash-es/pick\";\nimport React, { useEffect } from \"react\";\n\nlet gtmDataLayerManagerMounted = false;\n\nconst GtmDataLayerManager: React.FC = () => {\n const [user] = useMyAccount();\n\n useEffect(() => {\n window.dataLayer.push({ user: undefined });\n window.dataLayer.push({ organizationId: undefined });\n\n if (gtmDataLayerManagerMounted)\n console.warn(\n \"Two instances of GtmDataLayerManager are mounted. This should not cause an error, but only one should be mounted at a time\",\n );\n\n gtmDataLayerManagerMounted = true;\n return () => {\n gtmDataLayerManagerMounted = false;\n };\n }, []);\n\n useDataLayerVariable(\"user\", user ? pick(user, \"id\", \"role\") : undefined);\n // useEffect(() => {\n // if (user) {\n // window.dataLayer.push({ user: pick(user, 'id', 'role') })\n // } else {\n // window.dataLayer.push({ user: null })\n // }\n // }, [user])\n\n return null;\n};\n\nexport default GtmDataLayerManager;\n","import { ApolloClient, ApolloLink, InMemoryCache } from \"@apollo/client\";\nimport { RetryLink } from \"@apollo/client/link/retry\";\nimport { BatchHttpLink } from \"apollo-link-batch-http\";\nimport { createUploadLink } from \"apollo-upload-client\";\nimport readCsrfToken from \"utils/readCsrfToken\";\n// @ts-ignore: Yes, it can import this\nimport FRAGMENT_TYPES from \"./fragmentTypes.json\";\n\nconst options: BatchHttpLink.Options = {\n uri: \"/graphql\",\n credentials: \"include\",\n headers: {\n \"X-CSRF-Token\": readCsrfToken(),\n },\n batchKey: (operation) => {\n // Send all initial site info queries in their own batch\n if ([\"myAccount\", \"MyPermissions\", \"BannerQuery\"].includes(operation.operationName))\n return \"initial-data\";\n return \"\";\n },\n};\n\nconst cleanInput = new ApolloLink((operation, forward) => {\n if (operation.variables) {\n const omitTypename = (key: string, value: any) => {\n if (key === \"__typename\") return undefined;\n if (key === \"fileUrl\") return undefined;\n if (key === \"updatedAt\") return undefined;\n if (key === \"createdAt\") return undefined;\n return value;\n };\n operation.variables = JSON.parse(JSON.stringify(operation.variables), omitTypename);\n }\n return forward(operation).map((data) => {\n return data;\n });\n});\n\nconst retryLink = new RetryLink();\n\nconst httpLink = ApolloLink.from([\n cleanInput,\n ApolloLink.split(\n (operation) => operation.getContext().hasUpload,\n createUploadLink(options) as unknown as ApolloLink, // Hack to handle update\n ApolloLink.from([retryLink, new BatchHttpLink(options) as unknown as ApolloLink]), // Hack to handle update\n // new HttpLink(options),\n ),\n]);\n\n// \nconst possibleTypes: { [key: string]: string[] } = {};\n\nFRAGMENT_TYPES.__schema.types.forEach(\n (supertype: { kind: string; name: string; possibleTypes: { name: string }[] }) => {\n if (supertype.possibleTypes) {\n possibleTypes[supertype.name] = supertype.possibleTypes.map((subtype) => subtype.name);\n }\n },\n);\n// \n\nconst appGraphqlClient = new ApolloClient({\n link: httpLink,\n cache: new InMemoryCache({ possibleTypes }),\n});\n\nexport default appGraphqlClient;\n","import { ApolloProvider } from \"@apollo/client\";\nimport GtmDataLayerManager from \"Environment/GtmDataLayerManager\";\nimport appGraphqlClient from \"appGraphqlClient\";\nimport React, { ReactNode } from \"react\";\nimport { DndProvider } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\n\nconst AppProvider: React.FC> = ({ children }) => {\n return (\n \n \n \n {children}\n \n \n );\n};\nexport default AppProvider;\n","const readCsrfToken = () => {\n const csrfTokenEl = document.querySelector('meta[name=\"csrf-token\"]');\n return csrfTokenEl?.getAttribute(\"content\") || \"\";\n};\nexport default readCsrfToken;\n","import React from \"react\";\nimport { Typography, Link, TypographyVariant } from \"@mui/material\";\nimport parse, { domToReact, HTMLReactParserOptions, attributesToProps } from \"html-react-parser\";\nimport { Element } from \"domhandler/lib/node\";\nimport omit from \"lodash-es/omit\";\n\nexport type HtmlTypographyProps = {\n html?: string | null | undefined;\n replace?: HTMLReactParserOptions[\"replace\"];\n typographyVariant?: TypographyVariant;\n};\n\nconst HtmlTypography: React.FC> = ({\n html,\n replace = () => {},\n typographyVariant,\n}) => {\n const options: HTMLReactParserOptions = {\n replace: (domNode) => {\n const replaced = replace(domNode);\n if (replaced) return replaced;\n if (domNode instanceof Element) {\n if (domNode.name === \"a\")\n return (\n \n {domToReact(domNode.children, options)}\n \n );\n if (domNode.name === \"p\") {\n return (\n \n {domToReact(domNode.children, options)}\n \n );\n }\n if (domNode.name === \"li\")\n return (\n \n {domToReact(domNode.children, options)}\n \n );\n return (\n <>\n {domToReact(\n [{ ...domNode, attribs: omit(domNode.attribs, \"style\") } as typeof domNode],\n options,\n )}\n \n );\n }\n },\n };\n return <>{html && parse(html, options)};\n};\n\nexport default HtmlTypography;\n","import { gql, useQuery } from \"@apollo/client\";\nimport { Banner } from \"gqlTypes\";\nimport { useMemo } from \"react\";\nimport { featureIsToggled } from \"utils/featureToggle\";\nimport { FeatureToggle } from \"gqlTypes\";\nimport { getFragmentName } from \"utils/query\";\n\nimport { BANNER_QF } from \"./bannerFragment\";\n\nexport const QUERY = gql`\n query BannerQuery {\n banner {\n ...${getFragmentName(BANNER_QF)}\n __typename\n }\n }\n ${BANNER_QF}\n`;\n\nexport type ResultsType = {\n banner: Banner | null;\n};\n\nconst useBannerQuery = () => {\n const { data, ...status } = useQuery(QUERY, {\n skip: !featureIsToggled(FeatureToggle.AdminBanner),\n });\n\n if (status.error) throw status.error;\n\n return useMemo(() => [data?.banner, status] as const, [data, status]);\n};\n\nexport default useBannerQuery;\n","import { gql } from \"@apollo/client\";\n\nexport const BANNER_QF = gql`\n fragment BannerFields on Banner {\n color\n content\n active\n }\n`;\n"],"sourceRoot":""}