{"version":3,"sources":["webpack:///./app/webpacker/Components/Banners/BannerBase.tsx","webpack:///./app/webpacker/Components/Banners/AdminBanner.tsx","webpack:///./app/webpacker/Components/NavbarComponents/GtmNavbarLink.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/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/utils/featureToggle.ts","webpack:///./app/webpacker/User/Components/PageNavBar.tsx","webpack:///./app/webpacker/User/Components/UserLayout.tsx","webpack:///./app/webpacker/Components/HeroTitle.tsx","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/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/Components/ContentTextField.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","GtmNavbarLink","title","href","disabled","LinkProps","GtmWrapperProps","_ref$menuItem","menuItem","MenuItem","Typography","GtmWrapper","trigger","dataAttrs","component","Link","underline","concat","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","mb","Alert","severity","AlertTitle","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","PageNotFound","baseUrl","onLogin","Redirect","from","to","GtmNavbarRouteLink","RouterLink","GtmNavbarAction","action","hnmiLinkedIn","about","resources","accessibilityPolicy","termsOfService","privacyPolicy","learnMore","supportUs","joinOwnerDrive","housingAuthorityLinks","dhcd","mhp","masshousing","massdevelopment","metrolist","myMassHomes","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","FEATURE_TOGGLES","console","log","flagSet","getEnvToggles","ENV_TOGGLES","featureIsToggled","flags","x","_every","_some","Array","isArray","map","f","includes","Boolean","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","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","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","_useField2","useField","field","setFieldValue","useFormikContext","handleChange","_e$currentTarget","currentTarget","parsed","toLowerCase","Number","NaN","isNaN","normalizeTextValue","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/15-f53c5656a19a8895d437.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 { 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 { 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 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 &\n 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\nexport type BuildingAvailabilityArgs = {\n exhaustive?: Maybe;\n};\n\nexport type BuildingHistoryArgs = {\n input?: Maybe;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\nexport type BuildingHousingLotteryArgs = {\n showExpired?: Maybe;\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/** Interface for a general Building */\nexport type BuildingInterfaceAvailabilityArgs = {\n exhaustive?: Maybe;\n};\n\n/** Interface for a general Building */\nexport type BuildingInterfaceHistoryArgs = {\n input?: Maybe;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\n/** Interface for a general Building */\nexport type BuildingInterfaceHousingLotteryArgs = {\n showExpired?: Maybe;\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 &\n 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\nexport type BuildingPreviewAvailabilityArgs = {\n exhaustive?: Maybe;\n};\n\nexport type BuildingPreviewHistoryArgs = {\n input?: Maybe;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\nexport type BuildingPreviewHousingLotteryArgs = {\n showExpired?: Maybe;\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\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\nexport type BuildingUnitGroupEstimatedMaxIncomeArgs = {\n householdSize?: Maybe;\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/** 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\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 LandingPageRefresh = \"landing_page_refresh\",\n ListingPageRefresh = \"listing_page_refresh\",\n ShowMostAffordable = \"show_most_affordable\",\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\nexport type InfoActionableRbiArgs = {\n seed?: Maybe;\n};\n\nexport type InfoFcfsArgs = {\n seed?: Maybe;\n};\n\nexport type InfoShortWaitlistArgs = {\n seed?: Maybe;\n};\n\nexport type InventoryRecord = BuildingInterface &\n 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\nexport type InventoryRecordAvailabilityArgs = {\n exhaustive?: Maybe;\n};\n\nexport type InventoryRecordHistoryArgs = {\n input?: Maybe;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\nexport type InventoryRecordHousingLotteryArgs = {\n showExpired?: Maybe;\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/** 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\nexport type MasterRecordAvailabilityArgs = {\n exhaustive?: Maybe;\n};\n\nexport type MasterRecordHistoryArgs = {\n input?: Maybe;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\nexport type MasterRecordHousingLotteryArgs = {\n showExpired?: Maybe;\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\nexport type MutationActivateUserArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type MutationAddListingToOrganizationArgs = {\n input: AddListingToOrganizationInput;\n};\n\nexport type MutationAddOrganizationRoleToUserArgs = {\n input: AddOrganizationRoleToUserInput;\n};\n\nexport type MutationAddUserToOrganizationArgs = {\n input: AddUserToOrganizationInput;\n};\n\nexport type MutationClearCacheArgs = {\n cache: CacheEnum;\n slug?: Maybe;\n};\n\nexport type MutationCreateBuildingArgs = {\n input: CreateBuildingInput;\n};\n\nexport type MutationCreateBuildingPhotoArgs = {\n input: BuildingImageInput;\n slug: Scalars[\"ID\"];\n};\n\nexport type MutationCreateDirectUploadArgs = {\n input: DirectUploadInput;\n};\n\nexport type MutationCreateDsiImportArgs = {\n input: DsiImportInput;\n};\n\nexport type MutationCreateHousingLotteryArgs = {\n input: HousingLotteryInput;\n slug: Scalars[\"ID\"];\n};\n\nexport type MutationCreateOrganizationArgs = {\n input: CreateOrganizationInput;\n};\n\nexport type MutationCreateRecordUpdateBatchArgs = {\n input: RecordUpdateBatchInput;\n};\n\nexport type MutationDeactivateUserArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type MutationDeleteBuildingImageArgs = {\n input: DeleteBuildingImageInput;\n};\n\nexport type MutationDeleteDsiImportArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type MutationDeleteOrganizationArgs = {\n input: DeleteOrganizationInput;\n};\n\nexport type MutationDeleteRecordUpdateBatchArgs = {\n input: DeleteRecordUpdateBatchInput;\n};\n\nexport type MutationDeleteUserArgs = {\n input: DeleteUserInput;\n};\n\nexport type MutationDisableTwoFactorArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type MutationEditUserArgs = {\n input: EditUserInput;\n};\n\nexport type MutationInviteUserArgs = {\n input: InviteUserInput;\n};\n\nexport type MutationMasterRecordExportArgs = {\n input: MasterRecordExportInput;\n};\n\nexport type MutationProcessRecordUpdateBatchArgs = {\n batchId: Scalars[\"ID\"];\n};\n\nexport type MutationPublishListingsArgs = {\n slugs: Array;\n verify?: Maybe;\n};\n\nexport type MutationRemoveListingFromOrganizationArgs = {\n input: RemoveListingFromOrganizationInput;\n};\n\nexport type MutationRemoveOrganizationRoleFromUserArgs = {\n input: RemoveOrganizationRoleFromUserInput;\n};\n\nexport type MutationRemoveUserFromOrganizationArgs = {\n input: RemoveUserFromOrganizationInput;\n};\n\nexport type MutationRenewHousingShortWaitlistArgs = {\n slug: Scalars[\"ID\"];\n};\n\nexport type MutationRenewHousingVacancyArgs = {\n slug: Scalars[\"ID\"];\n};\n\nexport type MutationReorderPhotosArgs = {\n order: Array;\n slug: Scalars[\"ID\"];\n};\n\nexport type MutationResendInviteArgs = {\n input: ResendInviteInput;\n};\n\nexport type MutationReuploadRecordUpdateBatchArgs = {\n blobId: Scalars[\"String\"];\n id: Scalars[\"ID\"];\n};\n\nexport type MutationSubmitDsiImportArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type MutationUnpublishListingArgs = {\n slug: Scalars[\"ID\"];\n unverify?: Maybe;\n};\n\nexport type MutationUpdateBannerArgs = {\n input: BannerInput;\n};\n\nexport type MutationUpdateBuildingArgs = {\n input: UpdateBuildingInput;\n};\n\nexport type MutationUpdateBuildingImageArgs = {\n input: UpdateBuildingImageInput;\n};\n\nexport type MutationUpdateBuildingPhotoArgs = {\n id: Scalars[\"ID\"];\n input: BuildingImageInput;\n};\n\nexport type MutationUpdateDsiMatchStatusArgs = {\n id: Scalars[\"ID\"];\n status: DsiMatchStatus;\n};\n\nexport type MutationUpdateDsiMatchTargetArgs = {\n id: Scalars[\"ID\"];\n targetId: Scalars[\"ID\"];\n};\n\nexport type MutationUpdateHousingLotteryArgs = {\n id: Scalars[\"ID\"];\n input: HousingLotteryInput;\n};\n\nexport type MutationUpdateHousingShortWaitlistArgs = {\n input: HousingShortWaitlistInput;\n slug: Scalars[\"ID\"];\n};\n\nexport type MutationUpdateHousingVacancyArgs = {\n input: HousingVacancyInput;\n slug: Scalars[\"ID\"];\n};\n\nexport type MutationUpdateHousingWaitlistArgs = {\n input: HousingWaitlistInput;\n slug: Scalars[\"ID\"];\n};\n\nexport type MutationUpdateMyAccountArgs = {\n input: MyAccountInput;\n};\n\nexport type MutationUpdateMyDevTogglesArgs = {\n toggles: Array;\n};\n\nexport type MutationUpdateOrganizationArgs = {\n input: UpdateOrganizationInput;\n};\n\nexport type MutationUpdateOrganizationRoleArgs = {\n input: UpdateOrganizationRoleInput;\n};\n\nexport type MutationUpdatePreviewArgs = {\n input: BuildingUpdateInput;\n slug: Scalars[\"ID\"];\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\nexport type OrganizationBuildingsArgs = {\n input?: Maybe;\n};\n\nexport type OrganizationListingLinksArgs = {\n input?: Maybe;\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/** 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\nexport type QueryBuildingArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type QueryBuildingImageArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type QueryBuildingPreviewsArgs = {\n organizationId?: Maybe;\n};\n\nexport type QueryBuildingSearchArgs = {\n input: BuildingSearchInput;\n page?: Maybe;\n seed?: Maybe;\n};\n\nexport type QueryBuildingsArgs = {\n input: BuildingSearchInput;\n};\n\nexport type QueryCitiesArgs = {\n organizationId?: Maybe;\n};\n\nexport type QueryDsiImportArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type QueryGeocodeArgs = {\n input: BuildingAddressInput;\n};\n\nexport type QueryMasterRecordArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type QueryOrganizationArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type QueryOrganizationBuildingArgs = {\n slug: Scalars[\"ID\"];\n};\n\nexport type QueryOrganizationSearchArgs = {\n input: SearchInput;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\nexport type QueryPreviewArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type QueryPublicationStatusArgs = {\n slug: Scalars[\"ID\"];\n};\n\nexport type QueryPublishedArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type QueryRecordArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type QueryRecordExportArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type QueryRecordSearchArgs = {\n input: SearchInput;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\nexport type QueryRecordUpdateBatchArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type QueryRecordsArgs = {\n input: RecordSearchInput;\n page?: Maybe;\n pageSize?: Maybe;\n};\n\nexport type QuerySlugsArgs = {\n limit?: Maybe;\n str: Scalars[\"String\"];\n};\n\nexport type QuerySourceRecordArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type QueryUserArgs = {\n id: Scalars[\"ID\"];\n};\n\nexport type QueryUserSearchArgs = {\n input: SearchInput;\n page?: Maybe;\n pageSize?: Maybe;\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\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\nexport type RecordUpdateBatchRecordUpdateItemsArgs = {\n page?: Maybe;\n pageSize?: Maybe;\n search?: Maybe;\n showAll?: Maybe;\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\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/** Normalized records based on the raw data we've received */\nexport type SourceRecordAvailabilityArgs = {\n exhaustive?: Maybe;\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/** Normalized records based on the raw data we've received */\nexport type SourceRecordHousingLotteryArgs = {\n showExpired?: Maybe;\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 _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 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 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 { 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","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","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":""}