{"version":3,"sources":["Custom/Content/Images/noImageDefault.svg","Custom/Content/logo-mastercard.svg","Custom/Content/logo-visa.svg","Custom/Content/Images/editBlue.svg","Core/Components/Styles/CoreStyling.ts","Core/Utils/React/WithProps.tsx","Custom/StylesAppSpecific/AppStyling.ts","serviceWorker.ts","Core/Stores/BaseStore.ts","Custom/Globals/AppUrls.ts","Core/Utils/Utils.ts","Custom/Stores/Domain/AccountStores.ts","Custom/Stores/Domain/StripeStore.ts","Core/Models/ModelBase.ts","Custom/Models/User.ts","Custom/Stores/Domain/Admin/UserStore.ts","Custom/Models/Role.ts","Custom/Stores/Domain/Admin/RoleStore.ts","Custom/Stores/Domain/BaseStore.ts","Custom/Stores/Domain/SnagTypeStore.ts","Custom/Stores/Domain/HouseAreaStore.ts","Custom/Stores/Domain/SnagPhotoStore.ts","Custom/Stores/DomainStores.ts","Core/Stores/CoreStore.ts","Core/Utils/App/GoogleAnalyticsUtils.ts","Custom/Stores/Stores.ts","Core/Errors/HttpError.ts","Core/Errors/HttpForbiddenError.ts","Core/Errors/HttpUnauthorizedError.ts","Core/Utils/Axios/CheckHttpStatus.ts","Core/Errors/RequestError.ts","Core/Utils/Axios/HttpStatusToError.ts","Core/Utils/Axios/GetDefaultConfig.ts","Core/Utils/Axios/MergeDefaultConfig.ts","Core/ViewModels/ViewModelBase.ts","Custom/ViewModels/InitViewModel.ts","Core/Views/Error2.tsx","AppErrorBoundary.tsx","Core/Components/Styles/BaseStyles.ts","Custom/StylesAppSpecific/GridHelperStyling.ts","Core/Utils/React/ElementId.ts","Core/Utils/React/PrivateRoute.tsx","Core/Utils/Hooks/UseReactRouter.ts","Core/Utils/Hooks/UseForceUpdate.ts","Core/Utils/Hooks/UseWindowSize.ts","Custom/ViewModels/HeaderViewModel.ts","Custom/ViewModels/DashboardSubViewModels/HeaderLogoModel.ts","Custom/Views/Header.tsx","Core/Utils/Media/mediaQuery.ts","Core/Components/Loader.tsx","Core/Utils/Hooks/UseTimeout.ts","Core/Components/General/TextFieldMemo.tsx","Core/CoreIndex.tsx","Core/Views/NotFound.tsx","Custom/StylesAppSpecific/ErrorStyling.ts","Custom/Components/Error.tsx","Custom/Models/Enums/ApiStatus.ts","Custom/StylesAppSpecific/NavigationBarStyling.ts","Custom/StylesAppSpecific/DashboardPagesStyling.ts","Custom/Models/DashboardModel.ts","Custom/ViewModels/DashboardViewModel.ts","Custom/Components/NavigationBar.tsx","Custom/Components/PageTitle.tsx","Custom/Models/DashboardModels/DocumentModel.ts","Custom/Models/DashboardModels/DocumentsModel.ts","Custom/Models/DashboardModels/DocumentCategoriesModel.ts","Custom/Utils/Format/contentTypeHelper.ts","Custom/ViewModels/DashboardSubViewModels/DocumentsViewModel.ts","Custom/ViewModels/DashboardSubViewModels/DevelopmentDocumentsViewModel.ts","Custom/Models/DashboardModels/PropertyDrawingDocumentModel.ts","Custom/Models/DashboardModels/PropertyDrawingDocumentsModel.ts","Custom/ViewModels/DashboardSubViewModels/PropertyDrawingDocumentsViewModel.ts","Custom/Views/Dashboard.tsx","Custom/Components/Buttons/ButtonStyling.ts","Custom/Components/Buttons/CloseButton.tsx","Core/Components/Validation.tsx","Custom/Components/Edits/EditableInput.tsx","Custom/Models/BuyModel.ts","Custom/ViewModels/BuyViewModel.ts","Custom/Models/CardPaymentModel.ts","Custom/ViewModels/CardPaymentViewModel.ts","Custom/Components/PaymentMethods/CardPayment.styling.ts","Custom/Components/Buttons/CancelButton.tsx","Custom/Components/Buttons/StandardButton.tsx","Custom/Components/PaymentMethods/CardPayment.tsx","Custom/Components/Popups/Lightbox.Style.tsx","Custom/Components/Popups/Lightbox.tsx","Custom/StylesAppSpecific/DashboardSubViews/PropertyPageStyling.ts","Custom/Models/DashboardModels/PropertyModel.ts","Custom/ViewModels/DashboardSubViewModels/PropertyViewModel.ts","Custom/Views/DashboardSubViews/Property.tsx","Custom/Components/Buttons/NavButton.tsx","Custom/StylesAppSpecific/DashboardSubViews/ViewSnagStyling.ts","Custom/Models/DashboardModels/SnagModel.ts","Custom/Models/Enums/SnagStatusType.ts","Custom/ViewModels/DashboardSubViewModels/ViewSnagViewModel.ts","Custom/Views/DashboardSubViews/ViewSnag.tsx","Custom/StylesAppSpecific/DashboardSubViews/SnagsPageStyling.ts","Custom/Models/DashboardModels/SnagsModel.ts","Custom/Models/DashboardModels/NewSnagModel.ts","Custom/ViewModels/DashboardSubViewModels/NewSnagViewModel.ts","Custom/ViewModels/DashboardSubViewModels/SnagViewModel.ts","Custom/ViewModels/DashboardSubViewModels/SnagsViewModel.ts","Core/Components/Forms/UploadableImage.tsx","Custom/StylesAppSpecific/DashboardSubViews/NewSnagFormStyling.ts","Custom/Views/DashboardSubViews/NewSnag.tsx","Custom/Views/DashboardSubViews/Snags.tsx","Custom/Components/Links/LinksStyling.ts","Custom/Components/Links/DocumentLink.tsx","Custom/StylesAppSpecific/DashboardSubViews/DocumentPageStyling.ts","Custom/Models/Enums/DocumentTypes.ts","Custom/Views/DashboardSubViews/Documents.tsx","Custom/StylesAppSpecific/DashboardSubViews/ChoicesProductGroupStyling.ts","Custom/Views/DashboardSubViews/ChoicesProduct.tsx","Custom/Views/DashboardSubViews/ChoicesProductGroup.tsx","Custom/StylesAppSpecific/DashboardSubViews/ChoiceAreaPageStyling.ts","Custom/Models/DashboardModels/ProductVariantModel.ts","Custom/ViewModels/DashboardSubViewModels/ProductVariantViewModel.ts","Custom/Models/DashboardModels/SpecificationHouseTypeProductModel.ts","Custom/Models/DashboardModels/SpecificationProductModel.ts","Custom/Utils/Format/currencyFormat.ts","Custom/Models/DashboardModels/ProductSummary.ts","Custom/Models/DashboardModels/ProductModel.ts","Custom/ViewModels/DashboardSubViewModels/ProductViewModel.ts","Custom/Models/DashboardModels/ProductGroupModel.ts","Custom/ViewModels/DashboardSubViewModels/ProductGroupViewModel.ts","Custom/Models/DashboardModels/ChoicesAreaModel.ts","Custom/ViewModels/DashboardSubViewModels/ChoicesAreaViewModel.ts","Custom/Views/DashboardSubViews/ChoicesArea.tsx","Custom/StylesAppSpecific/DashboardSubViews/ChoicesPageStyling.ts","Custom/Models/DashboardModels/ChoiceModel.ts","Custom/Models/DashboardModels/ChoicesModel.ts","Custom/ViewModels/DashboardSubViewModels/ChoicesViewModel.ts","Custom/Models/DashboardModels/ProductGroupSummary.ts","Custom/Models/DashboardModels/AreaSummaryModel.ts","Custom/Models/DashboardModels/ChoicesSummaryModel.ts","Custom/ViewModels/DashboardSubViewModels/ProductSummaryViewModel.ts","Custom/ViewModels/DashboardSubViewModels/ProductGroupSummaryViewModel.ts","Custom/ViewModels/DashboardSubViewModels/AreaSummaryViewModel.ts","Custom/ViewModels/DashboardSubViewModels/ChoicesSummaryViewModel.ts","Custom/Views/DashboardSubViews/ChoicesSummary.tsx","Custom/Views/DashboardSubViews/Choices.tsx","Custom/StylesAppSpecific/DashboardSubViews/ProgressPageStyling.ts","Custom/Models/DashboardModels/ProgressActivityModel.ts","Custom/Models/DashboardModels/ProgressModel.ts","Custom/ViewModels/DashboardSubViewModels/ProgressViewModel.ts","Custom/Views/DashboardSubViews/Progress.tsx","Custom/Content/Components/InspectionStageSVG.tsx","Custom/StylesAppSpecific/DashboardSubViews/InspectionPageStyling.ts","Custom/Models/DashboardModels/InspectionStageModel.ts","Custom/Models/DashboardModels/InspectionModel.ts","Custom/ViewModels/DashboardSubViewModels/InspectionViewModel.ts","Custom/Views/DashboardSubViews/Inspection.tsx","Custom/StylesAppSpecific/AccountPagesStyling.ts","Custom/Models/ForgotPasswordModel.ts","Custom/ViewModels/ForgotPasswordViewModel.ts","Custom/Views/ForgotPasswordPage.tsx","Custom/Models/LoginModel.ts","Custom/Models/Property.ts","Custom/Models/SalesStatus.ts","Custom/ViewModels/LoginViewModel.ts","Custom/Views/LoginPage.tsx","Custom/Views/Logout.tsx","Custom/Models/ResetPasswordModel.ts","Custom/ViewModels/ResetPasswordViewModel.ts","Custom/Views/ResetPasswordPage.tsx","Custom/Views/SessionExpired.tsx","AppRoutes.tsx","Custom/StylesAppSpecific/PageHeaderStyling.ts","Custom/ViewModels/PageHeaderViewModel.ts","Custom/Components/PageHeader.tsx","Custom/Views/Layout.tsx","App.tsx","index.tsx"],"names":["module","exports","pxToRem","value","concat","coreBreakpoints","createBreakpoints","values","xs","sm","md","lg","xl","coreTheme","createMuiTheme","typography","fontFamily","fontSize","h1","_defineProperty","down","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","palette","common","black","white","background","paper","default","primary","light","main","dark","contrastText","secondary","error","text","disabled","hint","withProps","Component","props","ownProps","React","createElement","Object","assign","customBreakpoints","getTheme","theme","join","_objectSpread","overline","overrides","MuiFormHelperText","root","contained","marginLeft","marginRight","MuiOutlinedInput","backgroundColor","borderRadius","input","paddingLeft","paddingRight","paddingBottom","paddingTop","inputMarginDense","notchedOutline","borderColor","MuiInputLabel","formControl","color","fontWeight","padding","position","transform","outlined","MuiIconButton","edgeEnd","MuiAccordion","border","boxShadow","borderBottom","display","margin","MuiAccordionSummary","minHeight","content","expanded","expandIcon","fill","MuiCollapse","container","darken","breakpoints","up","MuiAccordionDetails","MuiPickersBasePicker","alignItems","flexDirection","height","justifyContent","pickerView","appTheme","app","colors","success","green","defaultTheme","HeavyHeader","styled","Typography","_templateObject","_templateObject2","variant","Button","_templateObject3","Boolean","window","location","hostname","match","BaseStore","_class","stores","_classCallCheck","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_descriptor4","this","_createClass","key","get","isLoadingCount","_applyDecoratedDescriptor","prototype","observable","configurable","enumerable","writable","initializer","computed","getOwnPropertyDescriptor","action","_this","isLoaded","_this2","Client","Path","Account","Login","Logout","ForgotPassword","ForgotPasswordEmail","ResetPassword","Dashboard","Choices","ChoicesArea","Documents","Inspection","Progress","Property","Snag","Snags","Server","ChangePassword","Get","GetByPropertyId","GetChoices","GetChoicesAndRelated","GetDocuments","GetDocument","GetDevelopmentDocuments","GetDevelopmentDocument","GetProgress","GetProperty","GetSnags","GetInspection","GetPropertyDrawingDocuments","GetPropertyDrawingDocument","GetViewById","GetSnagRelated","Upsert","GetChoicesArea","GetChoicesAreaAndRelated","AddToOrder","GetChoicesSummary","GetIsChoicesLocked","Image","GetCompanyImage","Admin","ResetFailedLoginAttemptsCount","getHistory","GlobalHistory","getParentObjectPath","fieldName","path","split","getPath","splice","length","generateID","Math","random","toString","substr","isEmptyOrWhitespace","undefined","trim","getApiUrl","apiurl","_regeneratorRuntime","Op","hasOwn","hasOwnProperty","defineProperty","obj","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","resolve","reject","invoke","record","result","__await","then","unwrapped","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","AccountStore","_BaseStore","_inherits","_super","_createSuper","_assertThisInitialized","_descriptor5","_descriptor6","_descriptor7","_descriptor8","_descriptor9","_descriptor10","_descriptor11","_descriptor12","_descriptor13","permissions","_descriptor14","_descriptor15","hasPermission","target","level","_step","_iterator","_createForOfIteratorHelper","s","n","userPermissionComponents","userPermissionTarget","userPermissionLevel","e","f","isInRole","role","UserRoles","includes","_descriptor16","_descriptor17","_descriptor18","_descriptor19","loadCompanyLogo","_ref","_asyncToGenerator","_callee","id","apiResult","_context","axios","isNullOrUndefined","data","wasSuccessful","setCompanyLogo","payload","t0","_x","apply","arguments","viewAsCompanyId","ViewAsCompanyId","hasGlobalPermission","hasViewAsCompanyId","initialState","accountStatus","Id","IsLoggedIn","isLoggedIn","DisplayName","ViewAsCompanyName","viewAsCompanyName","replace","PropertyId","propertyId","IsInTenYearWarranty","isInTenYearWarranty","StripePublicKey","stripePublicKey","globalSettingTypes","GlobalSettingTypes","clear","globalSettings","GlobalSettings","companyViewId","settingType","globalSettingType","find","a","setting","cs","globalSettingTypeId","_this3","_this4","redirect","UserName","href","_this5","CompanyLogo","_this6","_this7","StripeStore","_dec","MobX","_len","args","Array","_key","test","tokenizationSpecification","merchantInfo","Stripe","setPublishableKey","useTestPaymentGateways","parameters","gateway","loaded","ModelBase","prop","Errors","Valid","Dirty","Touched","_set","_get","User","_dec2","_dec3","_dec4","IsEmail","message","_dec5","_dec6","_dec7","_dec8","_dec9","_dec10","_ModelBase","toDto","model","UserStore","_dec11","users","user","index","domainModel","dm","fromDto","isLoadingData","lastUpdated","Moment","loading","filters","searchFilter","filter","or","email","toLowerCase","firstName","lastName","date","orderAsc","Role","IsNotEmpty","RoleStore","roles","SnagTypeStore","snagTypes","HouseAreaStore","houseAreas","SnagPhotoStore","snagPhotos","files","tmpPhotos","DomainStores","editableCopies","editableCopyRoutes","init","snackBarContent","openSnackBar","errorDialogContent","openErrorDialog","CoreStore","Init","addEventListener","setWidth","Stores","runInAction","screenWidth","document","body","clientWidth","isMobile","isTablet","isDesktop","PageView","page","GoogleAnalytics","pageview","SendEvent","event","StoresInstance","coreStore","domain","StoresContext","createContext","HttpError","_Error","httpStatusCode","targetPrototype","_wrapNativeSuper","HttpForbiddenError","_HttpError","HttpUnauthorizedError","CheckHttpStatus","response","status","httpStatusText","statusText","GetDefaultConfig","validateStatus","baseURL","MergeDefaultConfig","configs","_merge","ViewModelBase","undoable","enableProxy","history","validatorStorage","getFromContainer","MetadataStorage","meta","validator","Validator","proxy","createNewProxy","Proxy","receiver","Reflect","bind","set","newValue","tmpValue","retval","internalSetModel","getType","TCtor","getContext","createProxy","isModelValid","valid","dot","indexOf","parseObjectProperties","parse","k","setDecorators","getTargetValidationMetadatas","validateDecorators","propertyName","validated","some","t","validateValueByMetadata","getValue","constraints","isValid","errorMessage","url","config","setIsLoading","getConfig","newTokenResult","headers","post","accessToken","localStorage","getItem","setLoginState","jwt","logout","setIsErrored","setErrors","Post","_ref2","_callee2","_context2","_x2","requestConfig","Authorization","createViewModel","Date","setValue","submit","_isString","_isBoolean","setError","getError","setValid","getValid","setDirty","getDirty","setTouched","getTouched","IsLoading","IsErrored","InitViewModel","_ViewModelBase","InitData","getInitialState","DataReady","afterUpdate","beforeUpdate","Error2","className","defaultProps","AppErrorBoundary","_React$Component","hasError","console","log","children","SuperDiv","div","pb","pt","mt","mb","inline","frGetter","CSSGrid","_ref4","_ref4$height","_ref3","_ref3$flow","flow","_ref$minRowHeight","minRowHeight","_ref5","rows","_ref6","_ref6$columns","columns","_ref2$gap","gap","_ref7","columnGap","_ref8","rowGap","_ref9","areas","map","area","formatAreas","_ref10","_ref11","alignContent","Cell","_ref12","_ref12$width","width","_ref13","_ref13$height","_ref14","left","_ref15","top","_ref16","center","_ref17","_ref18","middle","ShoothillPaper","Box","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","BounceAnimation","_templateObject13","Paper","_templateObject14","_templateObject15","_templateObject16","keyframes","_templateObject17","Row1040","_templateObject18","_templateObject19","delay","_templateObject20","_templateObject21","LeftBox","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","GridSpaced","Grid","backgroundcolor","additionalcss","DivWrapper","maxWidth","DialogueWrapper","TitleWrapper","fontcolor","thinSubheading","PrivateRoute","isAllowed","component","render","rest","_objectWithoutProperties","Route","Redirect","to","pathname","from","INCORRECT_VERSION_ERROR","MISSING_CONTEXT_ERROR","useRouter","__RouterContext","useContext","forceUpdate","_useState","useState","setIt","_slicedToArray","it","useForceUpdate","useEffect","listen","HeaderViewModel","HeaderLogoModel","StyledIconButton","IconButton","DrawerList","List","Header","useQuery","query","matchMedia","matches","_useState2","setMatch","handleMatch","mediaQuery","addListener","removeListener","useMediaQuery","storesContext","viewModel","_useState3","ViewModels","_useState5","_useState6","open","setOpen","handleDrawerOpen","handleDrawerClose","headerOptions","Fragment","Link","onClick","useObserver","AppBar","Toolbar","style","maxHeight","handleNavBarLogoClick","cursor","src","alt","item","aria-label","MenuIcon","Drawer","anchor","onClose","PaperProps","ChevronRightIcon","Loader","show","setShow","_useTimeout","cb","timeoutDelayMs","isTimeoutActive","setIsTimeoutActive","savedRefCallback","useRef","start","current","timeout","setTimeout","clearTimeout","isActive","useTimeout","delayBeforeShow","Fade","in","ref","el","setProperty","flex","spacing","justify","CircularProgress","loadingText","memo","TextField","enforceActions","baseUrl","baseElements","getElementsByTagName","retVal","getAttribute","getBaseUrl","History","basename","hash","element","querySelector","scrollIntoView","block","behavior","scrollTo","isDev","process","CoreIndex","Container","NotFound","ErrorStyles","makeStyles","textAlign","errorStyles","errorText","ApiStatus","NavigationBarStyles","workspace","marginBottom","titleRow","plotsListDropdown","titleParent","DashboardPageStyles","overflowY","MainPageStyles","logoContainer","navigateToItem","navigateToPropertyItem","navigateToArrow","dropdownArrow","propertyTitleRow","title","subTitleRow","subTitle","propertySubTitle","flexGrow","marginTop","whiteSpace","overflow","textOverflow","usePageAnimationStyles","right","bottom","borderTop","transitionTimingFunction","pageWrapper","overflowX","DashboardModel","_descriptor20","_descriptor21","_descriptor22","_descriptor23","_descriptor24","dto","choicesModifiedDate","choicesModifiedDateUTC","moment","tz","documentsModifiedDate","documentsModifiedDateUTC","progressModifiedDate","progressModifiedDateUTC","snagsModifiedDate","snagsModifiedDateUTC","inspectionStageModifiedDate","inspectionStageModifiedDateUTC","choicesMadePercentage","documentCount","snagCount","developmentName","developmentId","houseTypeName","houseTypeImageUrl","houseTypeThumbnailUrl","plotNumber","progressName","availablePlots","inspectionStageName","isChoicesLocked","isChoicesToPlot","isReportSnags","isTargetCompletionVisible","isViewBuildStages","DashboardViewModel","load","setApiStatus","setPropertyId","setIsInTenYearWarranty","loadByPropertyId","apiStatus","format","stopPropagation","showPlotsList","NavigationBar","router","useTheme","navigationBarStyles","mainPageStyles","params","_React$useState","_React$useState2","anchorEl","setAnchorEl","handleClose","renderPropertyItemCardContent","CardContent","availablePlotOptions","currentTarget","parentElement","onMouseDown","ArrowForwardIosOutlinedIcon","Menu","keepMounted","anchorOrigin","vertical","horizontal","transformOrigin","getContentAnchorEl","plot","MenuItem","changePlot","selected","getCurrentPropertyId","renderItem","image","itemPathname","Card","CardActionArea","renderItemCardContent","renderItems","Summary","PropertySummary","propertyItemPathname","navigateToPropertyPathname","canViewBuildStages","InspectionSummary","InspectionDate","navigateToInspectionPathname","ProgressSummary","ProgressDate","navigateToProgressPathname","canViewIsChoicesToPlot","ChoicesSummary","ChoicesDate","navigateToChoicesPathname","DocumentsSummary","DocumentsDate","navigateToDocumentsPathname","canViewSnags","canViewReportSnags","SnagsSummary","SnagsDate","navigateToSnagsPathname","PageTitle","DocumentModel","documentName","documentUrl","subCategoryName","DocumentsModel","canDisplay","categoryName","documents","documentModel","DocumentCategoriesModel","documentCategory","documentsModel","documentCategories","contentTypeHelper","toLocaleLowerCase","DocumentsViewModel","navigateToDashboard","getDocument","fileName","filenameWithoutType","fileType","substring","lastIndexOf","responseType","URL","createObjectURL","Blob","link","setAttribute","appendChild","click","_x3","table","totalLength","docList","category","doc","DevelopmentDocumentsViewModel","PropertyDrawingDocumentModel","revision","systemFileName","PropertyDrawingDocumentsModel","propertyDrawingDocuments","PropertyDrawingDocumentsViewModel","dashboardPageStyles","pageAnimationStyles","viewDocumentModel","developmentViewModel","_useState7","viewDrawingDocumentModel","handleClick","handleItemClick","mouseDown","renderPropertyItem","thumbnail","hasImage","hasSubtitle","renderPropertyItemCardContentDesktop","renderPropertyItemCardContentMobile","CardMedia","hasDate","renderItemCardContentDesktop","renderItemCardContentMobile","docLength","DocumentsLength","documentlength","devdocumentlength","totalDocuments","canDisplayCompanyLogo","companyLogo","CloseButtonStyle","CancelButtonStyle","textTransform","StandardButtonStyle","NavButtonStyle","textDecoration","CloseButton","closeButtonStyle","getClassNames","classNames","execute","canExecute","CloseIcon","DATE","RADIO","TYPES","Validation","uniqueId","validate","isFieldValid","typeMethods","reduce","methods","inputOptions","p","getTargetValue","parseFloat","toISOString","checked","inputProps","isObservableArray","toJS","_e$target","onChange","currentValue","validateOnBlur","onFocus","onBlur","createPropsGetter","Control","FormControl","EditableInput","rendered","multiline","_Validation","_Validation2","_Validation2$","password","radio","checkbox","time","select","number","multiselect","validateOnStart","isInError","dateComp","MuiPickersUtilsProvider","utils","MomentUtils","KeyboardDatePicker","fullWidth","inputVariant","label","mask","placeholder","size","timeComp","KeyboardTimePicker","radiocomp","FormLabel","RadioGroup","row","selectItems","FormControlLabel","control","Radio","FormHelperText","selectField","InputLabel","Select","MenuProps","disableScrollLock","getTypeOfInput","textField","editMode","autoComplete","helperText","checkBox","Checkbox","fullwidth","multline","BuyModel","BuyViewModel","_class2","cardPayment","buyModelDTO","doPayment","unknownError","setErrorMessage","change","lowerPathname","resetPurchase","_doPayment","responsePayload","actionUrl","intentId","errors","msg","getPrice","formatted","price","toFixed","_this$validateDecorat","_instance","CardPaymentModel","IsCreditCard","IsNumberString","maxDecimalPlaces","Length","IsDate","_dec12","CARD_TYPE","CardPaymentViewModel","isDate","endOfMonth","Visa","Mastercard","startOfMonth","CardPaymentStyles","paymentForm","dateControl","rowGridItemSpacing","buttonRowGridItemSpacing","payNowButton","cancelButton","rowOverrideSmGridItemSpacing","rowOverrideSmSmallGridItemSpacing","visibility","CancelButton","standardButtonStyle","StandardButton","isSubmit","CardPayment","cardType","totalPrice","propertyToProcessId","reservationRequestId","orderRequestId","currentUserId","onCancel","_React$useState3","Instance","buyViewModel","cardPaymentStyles","_React$useState5","_React$useState6","showStripeAction","setShowStripeAction","_React$useState7","_React$useState8","showStripeUrl","setShowStripeUrl","onSubmit","requests","reservationRequest","_reservationRequest","stripeResponse","stripeResponseArray","retryStripe","preventDefault","paidByIdentityUserId","expiry","security","cardNumber","updatedStripePaymentRequests","paymentType","paymentSuccess","setInterval","clearInterval","InputProps","notched","InputLabelProps","shrink","autoOk","disablePast","minDateMessage","openTo","views","minWidth","useStyles","lightboxRoot","lightboxPaper","lightboxImg","alignSelf","closeWrapper","closeTxt","closeIcon","Lightbox","isOpen","imageUrl","imageCaption","styles","Mui","_onClose","BackdropProps","classes","PaymentMethods","PropertyPageStyles","introduction","introductionTitle","description","lineClamp","WebkitBoxOrient","reservation","reservationTitle","statusTitle","propertyBox","propertyImages","topMarginWrapper","accordion","accordionSummary","PaymentSectionStyles","paymentRow","flexWrap","paymentRowTitle","paymentRowSubTitle","paymentSelection","paymentMethodRow","paymentMethod","paymentMethodSelected","paymentMethodSelectionTitle","PaymentHistoryStyles","PropertyModel","_descriptor25","_descriptor26","_descriptor27","_descriptor28","_descriptor29","_descriptor30","_descriptor31","_descriptor32","_descriptor33","_descriptor34","_descriptor35","_descriptor36","_descriptor37","_descriptor38","_descriptor39","_descriptor40","_descriptor41","_descriptor42","agreedPurchasePrice","reservationFeePaid","tempChoicesActualDate","tempChoicesTargetDate","addressLine1","addressLine2","developmentContactEmail","developmentContactNumber","developmentDescription","houseTypeImageUrlTwo","houseTypeDescription","numberOfBedrooms","propertyNumberOfBedrooms","plotDescription","postcode","propertyTypeName","plotTypeName","salesAgentName","houseTypeId","buildActualDate","buildActualDateUTC","buildTargetDate","buildTargetDateUTC","buildTargetDateMonth","buildTargetDateYear","choicesActualDate","choicesActualDateUTC","choicesTargetDate","choicesTargetDateUTC","contractActualDate","contractActualDateUTC","contractTargetDate","contractTargetDateUTC","legalActualDate","legalActualDateUTC","legalTargetMonth","legalTargetYear","stripePaymentRequests","hasReservationType1","hasOrder","orderCompletedDate","propertyHouseTypeImages","PropertyViewModel","address","getSettingByType","settingValue","hasPendingPaymentRequests","hasPaid","hasPaidPendingPaymentRequest","paidDate","hasPendingPaymentRequest","payment","toLocaleString","minimumFractionDigits","images","imageTypeName","imageLength","sort","b","ordinal","HouseTypeDevelopmentImage","thumbnailImageUrl","getHouseTypeImageWithOrdinal","propertyImage","getPropertyImage","imageType","_this$model","developmentImages","htdi","houseTypeWithAllImage","gethouseTypeAllImages","_this$model2","housetypeImages","_this8","_this9","_this10","_this11","hasPendingReservationPaymentRequest","hasPendingChoicesPaymentRequest","numberOfBeds","showDatePicker","month","year","_this12","hasPaidPendingPaymentRequests","PAYMENT_METHOD","propertyPageStyles","paymentSectionStyles","paymentHistoryStyles","dashboardViewModel","_React$useState4","selectedPaymentMethod","setPaymentMethod","paymentMethods","setLightboxImg","_useState8","lightboxOpen","setLightboxOpen","_useState9","_useState10","lightboxCaption","setLightboxCaption","_useState11","_useState12","setPaymentSuccess","_useState13","_useState14","showMore","setShowMore","_useState15","_useState16","setIsMobile","_useState17","_useState18","setCanDisplay","_useState19","_useState20","canGalleryDisplay","setCanGalleryDisplay","_useState21","_useState22","canFloorplanDisplay","setCanFloorplanDisplay","canDisplayPaymentRow","showStripePaymentRequest","hasStripePaymentRequest","hasPaidStripeReservationPaymentRequest","hasPaidStripeOrderPaymentRequest","innerWidth","scrollHeight","innerHeight","Stickyfill","addOne","renderPaymentSection","renderSuccessMethod","getReservationStripePaymentRequest","getChoicesStripePaymentRequest","logoVisa","logoMastercard","getPaymentPrice","getReservationStripePaymentRequestId","getChoicesStripePaymentRequestId","renderPaymentMethod","PaidReservationDate","PaidOrderDate","CheckCircleOutlineIcon","setPaymentComplete","PropertyTitle","PropertyOverview","PropertyAddress","Accordion","AccordionDetails","Description","CanDisplaySalesAgent","CanDisplayAgreedPurchasePrice","AgreedPurchasePrice","CanDisplayReservationFeePaid","ReservationFeePaid","data-cy","BuildTargetDate","BuildActualDate","ChoicesTargetDate","ChoicesActualDate","ContractTargetDate","ContractActualDate","LegalTargetDate","LegalActualDate","AccordionSummary","RemoveCircleIcon","AddCircleIcon","getPropertyHouseTypeGeneralImages","getPropertyHouseTypeFloorplanImages","NavButton","navButtonStyle","ViewSnagStyle","header","headerRowA","headerRowB","headerRowC","headerRowD","resolvedSnagTitle","rejectedSnagTitle","navSnag","navSnags","detailsTitle","details","rejectedReason","completedBy","selectionRow","textAreaRow","buttonRow","formInputControl","formTextAreaControl","submitButton","editRoot","deleteBtn","saveBtn","paddedBox","dashedBorderBox","linkTxt","dateContainer","SnagModel","snag","dueDate","areaId","snagNumber","resolved","actionTaken","isDeleted","propertySnagCategoryId","propertySnagDepartmentId","concurrencyToken","reportedDate","resolverIdentityUserId","resolvedDate","isCreatedByCustomer","snagStatus","snagStatusUpdatedDate","resolvedBy","areaName","SnagStatusType","ViewSnagViewModel","snagPhotoStore","houseAreaStore","snagTypeStore","naviagateToSnagList","setServerValidationMessage","populateSnagPhotos","populateHouseAreas","getSnagPhotos","sp","getTmpPhotos","getHouseAreas","arr","keyValue","getSnagTypes","Rejected","isRejected","isCompleted","haveSubmittedToServer","serverValidationMessage","ViewSnag","viewSnagStyle","snagId","lightboxImgName","setLightboxImgName","detailsDescription","canDisplayThumbnails","getSnagDateClasses","viewSnagViewModel","renderSnagHeader","parts","getAreaName","getTitle","desktopSnagTitle","ReportedDate","FormattedSnagStatus","hasRejectedReason","mobileSnagTitle","photo","azureFileName","SnagsPageStyles","lineHeight","snags","snagTitleRow","snagTitle","snagContentRow","snagContentTitleRow","snagDetails","boxOrient","snagArrow","titleBorder","SnagsModel","snagModel","unshift","snagDto","NewSnagModel","assignedToIdentityUserId","assignedToIndustryContactId","assignedToIndustryContactAdditionalContactId","houseAreaDto","NewSnagViewModel","snagsViewModel","imageSubDirectory","longestSideLength","save","isHouseAreaValid","isSnagTypeValid","isDetailsValid","setTitleErrorMessage","setAreaErrorMessage","setDetailsErrorMessage","setHaveSubmittedToServer","add","tryLoadAgain","trySaveAgain","file","tmpArr","blob","reader","FileReader","readAsDataURL","onloadend","base64data","azureFileNameFullResolution","azureThumbnailURL","base64","resolvedImage","propertySnagId","uploadedIdentityId","uploadedBy","uploadedDate","toUTCString","originalIsDeletedState","tmpObj","canDisplayLoadError","canDisplaySubmittedError","areaErrorMessage","titleErrorMessage","detailsErrorMessage","SnagViewModel","toUpperCase","SnagsViewModel","addFromDto","setNewSnagsViewModel","naviagateToViewSnag","newSnagViewModel","dropzone","borderStyle","borderWidth","allowedImageTypes","UploadableImage","Dropzone","accept","maxSize","multiple","onDrop","acceptedFiles","onImageSelected","selectedImage","getRootProps","getInputProps","isDragActive","NewSnagFormStyles","selectionCol","textAreaCol","NewSnag","newSnagFormStyles","getImageFileUrl","imageFile","addPhoto","addTmpPhoto","renderForm","displayEmpty","removePhoto","deletePhoto","canDisplayBusy","canDisplayForm","snagsPageStyles","snagViewModel","SnagViewModels","options","localeCompare","sortByString","NumberAndArea","Title","Details","DocumentLinkStyle","DocumentLink","documentLinkStyle","underline","InsertDriveFileOutlinedIcon","DocumentsPageStyles","documentCategoryTitle","documentLink","overflowWrap","gridTemplateColumns","stroke","strokeWidth","flexBasis","DocumentType","documentType","documentsPageStyles","onAccordionChange","getDocumentLength","count","renderBusy","renderError","renderDocuments","checklistSubCategory","DocumentCategories","TransitionProps","unmountOnExit","CancelIcon","aria-controls","productGroupTitleContainer","productGroupCounterContainer","productGroupAccordionDetails","development","property","DocumentName","drawing","ChoicesProductGroupStyles","productContainer","productContentRow","productContentContainer","wordBreak","productImageContainer","productTitleDesc","productTitle","productDescription","productVariantsContainer","productRadio","productRadioChecked","radioButton","productCheckbox","productCheckboxChecked","checkboxButton","subtitle","productVariantSelect","noneoftheabovecontainer","productRadioNoneOfTheAbove","GridContainerCounter","ChoicesProduct","productImage","setProductImage","_useState4","isProductImgOpen","setIsProductImageOpen","productVariantErrorMessage","setProductVariantErrorMessage","choicesProductGroupStyles","inputCSSClassNames","defaultCSS","CSSRetVal","isDisabled","productsSummary","productId","productName","productOriginalImage","isQuantityAllowed","counterLabel","counterInput","onQuantityChange","hasVariants","productGroupViewModel","selectProductVariant","getSelectedVariant","productVariantsOptions","isOption","isSelected","getPriceOnAddQuantity","labelPlacement","productGroupName","setProductIsSelected","isExtra","extraPrice","setProductExtraIsSelected","ChoicesProductGroup","renderSubTitle","accordionLabel","sortedProducts","product","renderChoices","isNoneOfTheAbove","setNoneOfTheAbove","hasExtras","sortedExtras","renderExtras","ChoicesAreaPageStyles","titleImageRow","productGroupChoiceCounterContainer","productGroupChoiceCounterContainerComplete","titleTextRow","ProductVariantModel","productVariantCode","productVariantName","productVariantThumbnailImageUrl","productVariantOriginalImageUrl","productVariantIsHidden","ProductVariantViewModel","productVariant","setInitialValues","String","SpecificationHouseTypeProductModel","specificationId","productGroupId","defaultOverridePrice","SpecificationProductModel","isIncluded","isUpgrade","isOptional","isOverride","regexRemoveNonNumeric","regexRemoveNonNumericNegative","currencyFormat","amount","allowNegatives","maximumFractionDigits","formatter","Intl","NumberFormat","numValue","formattedValue","currencyFormatForUpsert","ProductSummaryModel","orderId","productCode","productVariantId","orderAreaId","orderAreaProductGroupId","cost","isPOA","quantity","ProductModel","setNewOrderQuantity","specificationProductHasPrice","houseTypeProductPrice","productCost","Number","orderAreaProductGroupProductId","isBespoke","notes","bespokeName","bespokeNotes","orderPOA","productPOA","productVariants","pv","orderQuantity","orderPrice","highestIncludedProductCost","productPrice","specificationHouseTypeProduct","specificationHouseTypeProducts","Format","displayCost","showChoicesSum","productCosts","includedProducts","specificationProducts","specificationProductIncluded","productWithCost","products","specificationHouseTypeProductIncluded","unformattedHTPPrice","unformattedProductPrice","processedPrice","max","multiply","parseInt","productThumbnailImageUrl","productOriginalImageUrl","productVariantDto","_step2","_iterator2","specificationHouseTypeProductDto","_step3","_iterator3","specificationProductDto","specificationProduct","_step4","_iterator4","productsSummaryDto","_step5","_iterator5","ProductViewModel","createViewModels","getIsValid","variantId","productVariantViewModels","productVariantThumbnailImage","HouseType1Svg","productVariantOriginalImage","productSummary","variants","v","isHidden","productVariantTitle","findIndex","o","setIsSelected","ProductGroupModel","isComplete","isOrderAreaProductGroupComplete","orderAreaProductGroupNotes","houseTypeProductHasPrice","houseTypeProduct","productGroup","houseTypeProductIncluded","_loop","productDto","isFinite","ProductGroupViewModel","productViewModels","aProductPrice","bProductPrice","extras","hasOptions","_isChoicesLockedAsync","choicesCheckCounter","productSelected","selectedVariantId","setSelectedProductVariant","setSelectedProductVariantExtra","_step6","_iterator6","selectedVariant","_step7","_iterator7","_step8","_iterator8","ChoicesAreaModel","order","contactId","createdByIdentityUserId","orderCreatedByIdentityUserId","lockedByIdentityUserId","createdDate","orderCreatedDate","lockedDate","orderLockedDate","isOrderComplete","completedDate","costRevision","orderCostRevision","orderConcurrencyToken","isLocked","choicesPaymentCost","orderArea","isOrderAreaComplete","orderAreaNotes","orderAreaProductGroups","orderAreaProductGroupProducts","productGroups","pg","originalImageUrl","productGroupDto","ChoicesAreaViewModel","navigateToChoices","setApiStatusLoadingMessage","setApiStatusErrorMessage","addToOrder","canAddToOrder","productGroupViewModels","missingChoices","isChoiceSelected","_callee3","_context3","_x4","apiStatusLoadingMessage","apiStatusErrorMessage","choicesAreaPageStyles","renderSummaryText","areaImage","numberOfExtras","CheckIcon","ClearIcon","renderSubmit","ChoicesPageStyles","introductionSubTitle","choicesAreas","choicesArea","choicesAreaTitle","choicesAreaSubTitle","choicesAreasSummaryContainer","choicesAreasSummaryTitle","choicesAreasSummary","choicesAreaSummary","choicesAreaSummaryTitleContainer","choicesAreaSummaryTitle","choicesAreaSummarySubTitle","choicesAreaSummaryOptionsContainer","choicesAreaSummaryExtrasContainer","editIcon","productSummaryContainer","ChoiceModel","productGroupsAvailable","productGroupsUsed","ChoicesModel","choice","choiceModel","ChoicesViewModel","navigateToChoicesArea","loadChoicesAndRelated","choicesAndRelated","isChoicesLockedValue","choices","ProductGroupSummaryModel","productGroupSummary","AreaSummaryModel","areaSummary","productGroupsSummary","ChoicesSummaryModel","areasSummary","areaDto","ProductSummaryViewModel","hasVariant","ProductGroupSummaryViewModel","productSummaryViewModels","AreaSummaryViewModel","productGroupSummaryViewModels","ChoicesSummaryViewModel","addAreaId","setChoicesModels","areaSummaryViewModels","productBespokeViewModels","poaCount","items","choicesSummaryModels","itemC","bespokeItems","productsBespoke","poa","choicesSubTotal","choicesTotal","paidProductsCost","isCostNotANum","isPaid","productQty","choicesPOACount","choicesSummaryViewModel","choicesSummaryModel","choicesPageStyles","renderChoicesSummary","canEditChoices","EditIcon","prodIndex","productQuantity","productBespoke","bespoke","hasSelectedChoices","choicesAreasMainHeadingBlock","choicesAreasMainSummaryTitle","choicesAreasSummarySubtitle","choicesAreasSummarySubTotal","orderValue","outstandingBalanceTotal","renderChoicesAreas","ChoicesAreas","ProgressPageStyles","progresses","progress","progressTextRow","progressTitle","progressSubTitle","majorActivityIcon","minorActivityIcon","gradient","pointerEvents","zIndex","ProgressActivityModel","activities","parentId","activityColour","activityName","completedDateUTC","isNotApplicable","subActivities","activity","activityModel","ProgressModel","ProgressViewModel","Activities","sa","progressPageStyles","latestActivityEl","setLatestActivityEl","rect","getBoundingClientRect","containerRect","scrollTop","getActivityIconStyle","getActivityTextStyle","renderActivities","latestActivityId","renderMinorActivity","completedDateFormatted","renderProgress","HomeIcon","renderMajorActivity","hasActivities","InspectionStageSVG","colour","grayed","xmlns","viewBox","d","InspectionPageStyles","stages","stage","stageTextRow","stageTitle","stageSubTitle","icon","InspectionStageModel","inspectionStageDate","inspectionStageId","inspectionStageColor","inspectionStageType","inspectionStageStatusName","inspectionStageStatusType","InspectionModel","inspectionStageModel","inspectionStages","InspectionViewModel","inspectionPageStyles","getTextStyle","renderStages","AccountPageStyles","bodyContent","houseImageContainer","backgroundImage","backgroundSize","backgroundRepeat","backgroundPosition","customerPortalImageContainer","divider","logoImageContainer","gutterBottom","linkButton","LoginPageStyles","ForgotPasswordPageStyles","ChangePasswordPageStyles","ForgotPasswordModel","ForgotPasswordViewModel","tryAgain","navigateToForgotPassword","navigateToLogin","ForgotPasswordPage","accountPageStyles","forgotPasswordPageStyles","forgotPassword","emailAddress","canDisplayError","Divider","canDisplaySuccess","LoginModel","_dec13","_dec14","_dec15","_dec16","_dec17","_dec18","buildStageId","salesStatusId","basePurchasePrice","targetBuildDate","targetBuildDateMonth","targetBuildDateYear","certificateGenerated","SalesStatus","companyId","isTask","isSubTask","isContactOnly","isPropertyOnly","parentSalesStatusId","isDefault","isLastActivity","LoginViewModel","getModel","LoginPage","loginPageStyles","showPassword","setShowPassword","onClickShowPassword","login","endAdornment","InputAdornment","edge","Visibility","VisibilityOff","ResetPasswordModel","ResetPasswordViewModel","token","confirmPasswordValidationMessage","ResetPasswordPage","URLSearchParams","search","encodedToken","encodeURIComponent","changePasswordPageStyles","changePassword","renderPasswordVisibilityButton","handleResetLogoClick","loginAfterReset","SessionExpired","withRouter","AppRoutes","store","Switch","exact","routeProps","PageHeaderStyles","textContainer","PageHeaderViewModel","PageHeader","pageHeaderStyles","companyName","userName","Layout","canDisplayHeader","setConfig","showReactDomPatchNotification","App","StylesProvider","injectFirst","MuiThemeProvider","ThemeProvider","CssBaseline","Router","ReactDOM","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.0c3fbc12.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/noImageDefault.88daab05.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo-mastercard.ff6919d8.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo-visa.87ef567b.svg\";","module.exports = __webpack_public_path__ + \"static/media/editBlue.dafb2dd2.svg\";","import { createMuiTheme, Theme, ThemeOptions } from \"@material-ui/core/styles\";\r\nimport createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\r\nimport { colors } from \"@material-ui/core\";\r\n\r\nexport const pxToRem = (value: number) => {\r\n return `${value / 16}rem`;\r\n};\r\nlet coreBreakpointValues = {\r\n xs: 0,\r\n sm: 600,\r\n md: 960,\r\n lg: 1280,\r\n xl: 1920,\r\n};\r\nexport const coreBreakpoints = createBreakpoints({ values: coreBreakpointValues });\r\nexport const coreTheme = createMuiTheme({\r\n coreBreakpoints,\r\n typography: {\r\n fontFamily: `\"Montserrat\", sans-serif`,\r\n fontSize: 16,\r\n h1: {\r\n fontSize: pxToRem(96),\r\n [coreBreakpoints.down(\"sm\")]: {\r\n fontSize: pxToRem(56),\r\n },\r\n },\r\n h2: {\r\n fontSize: pxToRem(60),\r\n [coreBreakpoints.down(\"sm\")]: {\r\n fontSize: pxToRem(38),\r\n },\r\n },\r\n h3: {\r\n fontSize: pxToRem(48),\r\n [coreBreakpoints.down(\"sm\")]: {\r\n fontSize: pxToRem(32),\r\n },\r\n },\r\n h4: {\r\n fontSize: pxToRem(32),\r\n [coreBreakpoints.down(\"sm\")]: {\r\n fontSize: pxToRem(24),\r\n },\r\n },\r\n h5: {\r\n fontSize: pxToRem(20),\r\n [coreBreakpoints.down(\"sm\")]: {\r\n fontSize: pxToRem(18),\r\n },\r\n },\r\n h6: {\r\n fontSize: pxToRem(18),\r\n [coreBreakpoints.down(\"sm\")]: {\r\n fontSize: pxToRem(16),\r\n },\r\n },\r\n subtitle1: {\r\n fontSize: pxToRem(16),\r\n [coreBreakpoints.down(\"sm\")]: {\r\n fontSize: pxToRem(14),\r\n },\r\n },\r\n subtitle2: {\r\n fontSize: pxToRem(14),\r\n [coreBreakpoints.down(\"sm\")]: {\r\n fontSize: pxToRem(10),\r\n },\r\n },\r\n body1: {\r\n fontSize: pxToRem(16),\r\n [coreBreakpoints.down(\"sm\")]: {\r\n fontSize: pxToRem(14),\r\n },\r\n },\r\n body2: {\r\n fontSize: pxToRem(12),\r\n [coreBreakpoints.down(\"sm\")]: {\r\n fontSize: pxToRem(10),\r\n },\r\n },\r\n button: {\r\n fontSize: pxToRem(16),\r\n [coreBreakpoints.down(\"sm\")]: {\r\n fontSize: pxToRem(14),\r\n },\r\n },\r\n caption: {\r\n fontSize: pxToRem(14),\r\n [coreBreakpoints.down(\"sm\")]: {\r\n fontSize: pxToRem(10),\r\n },\r\n },\r\n },\r\n palette: {\r\n common: { black: \"#000\", white: \"#fff\" },\r\n background: { paper: \"#fff\", default: \"#fafafa\" },\r\n primary: { light: \"#7986cb\", main: \"#3C3C3B\", dark: \"#303f9f\", contrastText: \"#fff\" },\r\n secondary: { light: \"#ff4081\", main: \"#f50057\", dark: \"#c51162\", contrastText: \"#fff\" },\r\n error: { light: \"#e57373\", main: \"#f44336\", dark: \"#d32f2f\", contrastText: \"#fff\" },\r\n text: {\r\n primary: \"rgba(0,0,0, 1)\",\r\n secondary: \"rgba(255,255,255, 0.54)\",\r\n disabled: \"rgba(255,255,255, 0.38)\",\r\n hint: \"rgba(255,255,255, 0.38)\",\r\n },\r\n },\r\n} as ThemeOptions);\r\n//(window as any).theme = defaultTheme;\r\n","import React, { ComponentType } from \"react\";\r\n\r\nexport function withProps(Component: ComponentType) {\r\n return (props: T) => (ownProps: T) => ;\r\n}\r\n","import { Button, colors, createMuiTheme, darken, Theme, ThemeOptions } from \"@material-ui/core\";\r\nimport createBreakpoints from \"@material-ui/core/styles/createBreakpoints\";\r\nimport { Palette } from \"@material-ui/core/styles/createPalette\";\r\nimport styled from \"styled-components\";\r\nimport { Typography } from \"@material-ui/core\";\r\nimport { coreTheme } from \"./../../Core/Components/Styles/CoreStyling\";\r\nimport { withProps } from \"Core/Utils/React/WithProps\";\r\nimport { MuiPickersOverrides } from \"@material-ui/pickers/typings/overrides\";\r\n\r\n// #region MuiPicker\r\ntype overridesNameToClassKey = {\r\n [P in keyof MuiPickersOverrides]: keyof MuiPickersOverrides[P];\r\n};\r\n\r\ntype CustomType = {\r\n MuiPickersBasePicker: {\r\n pickerView: {\r\n maxWidth?: string;\r\n };\r\n };\r\n};\r\n\r\ndeclare module \"@material-ui/core/styles/overrides\" {\r\n interface ComponentNameToClassKey extends overridesNameToClassKey {}\r\n export interface ComponentNameToClassKey extends CustomType {}\r\n}\r\n// #endregion MuiPicker\r\n\r\n//Define your custom breakpoints here or accept the default values which are the standard common breakpoints\r\nlet customBreakpointValues = {\r\n xs: 0,\r\n sm: 600,\r\n md: 960,\r\n lg: 1280,\r\n xl: 1920,\r\n};\r\nexport const customBreakpoints = createBreakpoints({ values: customBreakpointValues });\r\n\r\n//Add your specific app styling here\r\ndeclare module \"@material-ui/core\" {\r\n export interface Theme {\r\n app: {\r\n colors: {\r\n success: {\r\n dark: string;\r\n light: string;\r\n };\r\n };\r\n };\r\n }\r\n}\r\n\r\nconst getTheme = () => {\r\n const theme = createMuiTheme(coreTheme as ThemeOptions);\r\n\r\n // Typography.\r\n const fontFamily = [\"Roboto\", \"Helvetica\", \"Arial\", \"sans-serif\"].join(\",\");\r\n\r\n theme.typography.fontFamily = fontFamily;\r\n\r\n theme.typography.caption = {\r\n ...theme.typography.caption,\r\n fontFamily: fontFamily,\r\n };\r\n theme.typography.body1 = {\r\n ...theme.typography.body1,\r\n fontFamily: fontFamily,\r\n };\r\n theme.typography.body2 = {\r\n ...theme.typography.body2,\r\n fontFamily: fontFamily,\r\n };\r\n theme.typography.button = {\r\n ...theme.typography.button,\r\n fontFamily: fontFamily,\r\n };\r\n theme.typography.h1 = {\r\n ...theme.typography.h1,\r\n fontFamily: fontFamily,\r\n };\r\n theme.typography.h2 = {\r\n ...theme.typography.h2,\r\n fontFamily: fontFamily,\r\n };\r\n theme.typography.h3 = {\r\n ...theme.typography.h3,\r\n fontFamily: fontFamily,\r\n };\r\n theme.typography.h4 = {\r\n ...theme.typography.h4,\r\n fontFamily: fontFamily,\r\n };\r\n theme.typography.h5 = {\r\n ...theme.typography.h5,\r\n fontFamily: fontFamily,\r\n };\r\n theme.typography.h6 = {\r\n ...theme.typography.h6,\r\n fontFamily: fontFamily,\r\n };\r\n theme.typography.overline = {\r\n ...theme.typography.overline,\r\n fontFamily: fontFamily,\r\n };\r\n theme.typography.subtitle1 = {\r\n ...theme.typography.subtitle1,\r\n fontFamily: fontFamily,\r\n };\r\n theme.typography.subtitle2 = {\r\n ...theme.typography.subtitle2,\r\n fontFamily: fontFamily,\r\n };\r\n\r\n // Overrides\r\n theme.overrides = {\r\n ...theme.overrides,\r\n MuiFormHelperText: {\r\n root: {\r\n fontSize: \"12px\",\r\n },\r\n contained: {\r\n marginLeft: \"0\",\r\n marginRight: \"0\",\r\n },\r\n },\r\n MuiOutlinedInput: {\r\n root: {\r\n backgroundColor: \"white\",\r\n borderRadius: \"none\",\r\n },\r\n input: {\r\n fontSize: \"12px\",\r\n paddingLeft: \"10px\",\r\n paddingRight: \"10px\",\r\n paddingBottom: \"7px\",\r\n paddingTop: \"7px\",\r\n },\r\n inputMarginDense: {\r\n paddingBottom: \"8px\",\r\n paddingTop: \"8px\",\r\n },\r\n notchedOutline: {\r\n borderColor: \"#CED4DA\",\r\n },\r\n },\r\n MuiInputLabel: {\r\n formControl: {\r\n color: \"black !important\",\r\n fontSize: \"12px\",\r\n fontWeight: \"bold\",\r\n padding: \"0 0 8px 0\",\r\n position: \"initial\",\r\n transform: \"translate(0, 0) scale(1)\",\r\n \"&$shrink\": {\r\n transform: \"translate(0, 0) scale(1)\",\r\n },\r\n },\r\n outlined: {\r\n \"&$shrink\": {\r\n transform: \"translate(0, 0) scale(1)\",\r\n },\r\n },\r\n },\r\n MuiIconButton: {\r\n edgeEnd: {\r\n marginRight: \"-20px\",\r\n },\r\n },\r\n MuiAccordion: {\r\n root: {\r\n border: \"none\",\r\n boxShadow: \"none\",\r\n \"&:not(:last-child)\": {\r\n borderBottom: 0,\r\n },\r\n \"&:before\": {\r\n display: \"none\",\r\n },\r\n \"&$expanded\": {\r\n margin: \"auto\",\r\n },\r\n },\r\n },\r\n MuiAccordionSummary: {\r\n root: {\r\n borderBottom: \"1px dashed #ced4da\",\r\n minHeight: 55,\r\n padding: \"0\",\r\n \"&$expanded\": {\r\n borderBottom: \"none\",\r\n minHeight: 55,\r\n },\r\n },\r\n content: {\r\n margin: \"0\",\r\n padding: \"18px 18px 15px 18px\",\r\n \"&$expanded\": {\r\n margin: \"0\",\r\n },\r\n \"& > p\": {\r\n fontSize: \"16px\",\r\n fontWeight: \"bold\",\r\n },\r\n },\r\n expanded: {},\r\n expandIcon: {\r\n marginRight: \"0px\",\r\n padding: \"8px 12px\",\r\n \"& svg\": {\r\n fill: \"#191919\",\r\n fontSize: \"40px\",\r\n },\r\n },\r\n },\r\n MuiCollapse: {\r\n container: {\r\n backgroundColor: \"#F9F9F9\",\r\n borderBottom: \"1px solid #ced4da\",\r\n boxShadow: `inset 0px -5px 10px -5px ${darken(\"#ced4da\", 0.2)}, inset 0 5px 10px -5px ${darken(\"#ced4da\", 0.2)}`,\r\n [theme.breakpoints.up(\"md\")]: {\r\n boxShadow: \"none\",\r\n margin: \"0 18px\",\r\n },\r\n },\r\n },\r\n MuiAccordionDetails: {\r\n root: {\r\n padding: \"18px\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: \"18px 0\",\r\n },\r\n },\r\n },\r\n MuiPickersBasePicker: {\r\n container: {\r\n \"& > div.MuiPickersDatePickerRoot-toolbar\": {\r\n alignItems: \"center\",\r\n flexDirection: \"row\",\r\n height: \"auto\",\r\n justifyContent: \"space-evenly\",\r\n \"& > button > span > h6\": {\r\n fontSize: \"16px\",\r\n },\r\n \"& > button > span > h4\": {\r\n fontSize: \"16px\",\r\n },\r\n },\r\n },\r\n pickerView: {\r\n \"& > div > div.MuiPickersYear-yearDisabled\": {\r\n color: \"#aaa\",\r\n },\r\n \"& > div > div.MuiPickersMonth-monthDisabled\": {\r\n color: \"#aaa\",\r\n },\r\n },\r\n },\r\n };\r\n\r\n return theme;\r\n};\r\n\r\nconst appTheme = {\r\n app: {\r\n colors: {\r\n success: {\r\n dark: colors.green[600],\r\n light: colors.green[300],\r\n },\r\n },\r\n },\r\n};\r\n\r\n//Overrides\r\nlet theme = getTheme();\r\n\r\ntheme.breakpoints = customBreakpoints;\r\n\r\ntheme.palette = {\r\n common: { black: \"#000\", white: \"#fff\" },\r\n background: { paper: \"#fff\", default: \"#fafafa\" },\r\n primary: { light: \"#7986cb\", main: \"#3C3C3B\", dark: \"#303f9f\", contrastText: \"#fff\" },\r\n secondary: { light: \"#ff4081\", main: \"#f50057\", dark: \"#c51162\", contrastText: \"#fff\" },\r\n error: { light: \"#e57373\", main: \"#f44336\", dark: \"#d32f2f\", contrastText: \"#fff\" },\r\n text: {\r\n primary: \"rgba(0,0,0, 1)\",\r\n secondary: \"rgba(255,255,255, 0.54)\",\r\n disabled: \"rgba(255,255,255, 0.38)\",\r\n hint: \"rgba(255,255,255, 0.38)\",\r\n },\r\n} as Palette;\r\n\r\ntheme = { ...getTheme(), ...appTheme };\r\n\r\nexport const defaultTheme = theme;\r\n\r\nexport const HeavyHeader = styled(Typography)`\r\n font-family: \"HelveticaNeue-Heavy\";\r\n letter-spacing: -2.76px;\r\n line-height: 100%;\r\n`;\r\n\r\nconst HeavyInputLabel = styled(HeavyHeader)`\r\n letter-spacing: -0.35px;\r\n`;\r\n\r\nexport const FormInputLabel = withProps(HeavyInputLabel)({\r\n variant: \"body1\",\r\n});\r\n\r\nconst OvalBtn = styled(Button)`\r\n border-radius: 1000px;\r\n text-transform: none;\r\n padding: 10px 54px;\r\n margin: 0 auto;\r\n pointer-events: all;\r\n line-height: 1.3em;\r\n\r\n span {\r\n font-weight: bold !important;\r\n }\r\n`;\r\n\r\nexport const FormBtn = withProps(OvalBtn)({\r\n variant: \"contained\",\r\n color: \"primary\",\r\n});\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === \"localhost\" ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === \"[::1]\" ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/),\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL((process as { env: { [key: string]: string } }).env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener(\"load\", () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\"This web app is being served cache-first by a service \" + \"worker. To learn more, visit https://bit.ly/CRA-PWA\");\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === \"installed\") {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\"New content is available and will be used when all \" + \"tabs for this page are closed. See https://bit.ly/CRA-PWA.\");\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log(\"Content is cached for offline use.\");\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error(\"Error during service worker registration:\", error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get(\"content-type\");\r\n if (response.status === 404 || (contentType != null && contentType.indexOf(\"javascript\") === -1)) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\"No internet connection found. App is running in offline mode.\");\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if (\"serviceWorker\" in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\r\nimport { Stores } from \"../../Custom/Stores/Stores\";\r\n// Libs\r\n\r\n// App\r\nimport { observable, computed, action } from \"mobx\";\r\n\r\nexport class BaseStore {\r\n public stores: Stores | null | undefined;\r\n @observable protected isLoadingCount = 0;\r\n @observable public isLoaded = true;\r\n @computed public get isLoading() {\r\n return this.isLoadingCount > 0;\r\n }\r\n public constructor(stores?: Stores) {\r\n if (stores) this.stores = stores;\r\n }\r\n\r\n @action protected setIsLoading = () => {\r\n this.isLoadingCount++;\r\n this.isLoaded = false;\r\n };\r\n @action protected unsetIsLoading = () => {\r\n this.isLoadingCount--;\r\n if (this.isLoadingCount === 0) {\r\n this.isLoaded = true;\r\n }\r\n };\r\n}\r\n","export const Client = {\r\n Path: {\r\n Account: {\r\n Login: \"/login\",\r\n Logout: \"/logout\",\r\n ForgotPassword: \"/forgotpassword\",\r\n ForgotPasswordEmail: \"/forgotpassword/:emailAddress\",\r\n ResetPassword: \"/resetpassword\",\r\n },\r\n Dashboard: \"/:propertyId?\",\r\n Choices: \"/choices/:propertyId\",\r\n ChoicesArea: \"/choicesarea/:propertyId/:areaId\",\r\n Documents: \"/documents/:propertyId\",\r\n Inspection: \"/inspection/:propertyId\",\r\n Progress: \"/progress/:propertyId\",\r\n Property: \"/property/:propertyId\",\r\n Snag: \"/snag/:propertyId/:snagId\",\r\n Snags: \"/snags/:propertyId\",\r\n },\r\n};\r\n\r\nexport const Server = {\r\n Api: {\r\n Account: {\r\n Login: \"./api/account/login\",\r\n Logout: \"./api/account/logout\",\r\n ChangePassword: \"./api/account/changepassword\",\r\n ForgotPassword: \"./api/account/forgotpassword\",\r\n },\r\n Dashboard: {\r\n Get: \"./api/dashboard/get\",\r\n GetByPropertyId: \"./api/dashboard/getbypropertyid\",\r\n GetChoices: \"./api/dashboard/getchoices\",\r\n GetChoicesAndRelated: \"./api/dashboard/getchoicesandrelated\",\r\n GetDocuments: \"./api/dashboard/getdocuments\",\r\n GetDocument: \"./api/dashboard/getdocument\",\r\n GetDevelopmentDocuments: \"./api/dashboard/getdevelopmentdocuments\",\r\n GetDevelopmentDocument: \"./api/dashboard/getdevelopmentdocument\",\r\n GetProgress: \"./api/dashboard/getprogress\",\r\n GetProperty: \"./api/dashboard/getproperty\",\r\n GetSnags: \"./api/dashboard/getsnags\",\r\n GetInspection: \"./api/dashboard/getinspection\",\r\n GetPropertyDrawingDocuments: \"./api/dashboard/getdrawingdocuments\",\r\n GetPropertyDrawingDocument: \"./api/dashboard/getdrawingdocument\",\r\n },\r\n Snags: {\r\n GetViewById: \"./api/snags/GetViewByid\",\r\n GetSnagRelated: \"./api/snags/getrelated\",\r\n Upsert: \"./api/snags/upsert\",\r\n },\r\n Choices: {\r\n GetChoicesArea: \"./api/choices/getchoicesarea\",\r\n GetChoicesAreaAndRelated: \"./api/choices/getchoicesareaandrelated\",\r\n AddToOrder: \"./api/choices/addtoorder\",\r\n GetChoicesSummary: \"./api/choices/getchoicessummary\",\r\n GetIsChoicesLocked: \"./api/choices/getischoiceslocked\",\r\n },\r\n Image: {\r\n GetCompanyImage: \"./api/image/getcompanyimage\",\r\n },\r\n\r\n // Likely redundant and can be removed.\r\n Admin: {\r\n ResetFailedLoginAttemptsCount: \"\",\r\n },\r\n },\r\n};\r\n","import \"url-search-params-polyfill\";\r\nimport { getPath } from \"ts-object-path\";\r\nimport { History, LocationState } from \"history\";\r\nimport { StoresInstance } from \"../../Custom/Stores\";\r\nimport { AccountStatus, LoginComplete } from \"../Models\";\r\nimport { GlobalHistory } from \"Core/CoreIndex\";\r\n\r\nexport type FieldType = Omit<\r\n T,\r\n | \"Errors\"\r\n | \"Dirty\"\r\n | \"Touched\"\r\n | \"Valid\"\r\n | \"getError\"\r\n | \"setError\"\r\n | \"getDirty\"\r\n | \"setDirty\"\r\n | \"getTouched\"\r\n | \"setTouched\"\r\n | \"getValid\"\r\n | \"setValid\"\r\n | \"getValue\"\r\n | \"setValue\"\r\n | \"fromDto\"\r\n | \"toDto\"\r\n>;\r\n\r\nexport const nameofFactory = () => (name: keyof T) => name;\r\n\r\nfunction _isNil(value: any) {\r\n return value == null;\r\n}\r\n\r\nexport const getHistory = (): History => {\r\n return GlobalHistory;\r\n};\r\n\r\nexport const setLoginState = (apiResult: LoginComplete) => {\r\n StoresInstance.domain.AccountStore.setLoginState(apiResult);\r\n};\r\n\r\n// export const getJWT = () => {\r\n// \treturn StoresInstance.domain.AccountStore.getJwt();\r\n// };\r\n\r\nexport const getParentObjectPath = (fieldName: string, action: \"Errors\" | \"Valid\" | \"Dirty\" | \"Touched\"): string[] => {\r\n let path: string[] = [];\r\n if (typeof fieldName === \"string\") {\r\n path = fieldName.split(\".\");\r\n } else {\r\n path = getPath(fieldName) as string[];\r\n // (fieldName as any).forEach((key: any) => {\r\n // \tpath.push(key);\r\n // });\r\n }\r\n path.splice(path.length - 1, 0, action);\r\n return path;\r\n};\r\n\r\nexport const generateID = function() {\r\n // Math.random should be unique because of its seeding algorithm.\r\n // Convert it to base 36 (numbers + letters), and grab the first 9 characters\r\n // after the decimal.\r\n return (\r\n \"_\" +\r\n Math.random()\r\n .toString(36)\r\n .substr(2, 9)\r\n );\r\n};\r\n\r\n/**\r\n * Test if a string is null, undefined, or empty.\r\n *\r\n * @param {string | undefined | null} text\r\n *\r\n * @returns true if null, undefined or empty, otherwise false.\r\n */\r\nexport const isNullOrEmpty = (text: string | undefined | null): boolean => {\r\n return text === undefined || text === null || text.length === 0;\r\n};\r\n\r\n/**\r\n * Test if a string is null, undefined, empty, or whitespace.\r\n *\r\n * @param {string | undefined | null} text\r\n *\r\n * @returns true if null, undefined, empty, or whitespace otherwise false.\r\n */\r\nexport const isEmptyOrWhitespace = (text: string | undefined | null): boolean => {\r\n return text === undefined || text === null || text.trim().length < 1;\r\n};\r\n\r\nexport const sortByString = (a: string | undefined, b: string | undefined, options?: Intl.CollatorOptions) => {\r\n if (a === undefined && b === undefined) {\r\n return 0;\r\n }\r\n if (a === undefined) {\r\n return -1;\r\n }\r\n if (b === undefined) {\r\n return 1;\r\n }\r\n\r\n return a.localeCompare(b, undefined, options);\r\n};\r\n\r\nexport const coalesce = (...args: (TArg | undefined)[]) => {\r\n for (const arg of args) {\r\n if (_isNil(arg) === false) {\r\n return arg;\r\n }\r\n }\r\n\r\n return null;\r\n};\r\nexport const getApiUrl = (): string => (window as any).apiurl;\r\n\r\nexport const getImageUrl = (imageUrl: string): string => {\r\n return getApiUrl() + imageUrl;\r\n};\r\n\r\nexport const getBaseUrl = (): string | undefined => {\r\n const baseElements = document.getElementsByTagName(\"base\");\r\n\r\n if (baseElements.length === 0) {\r\n throw new Error(\"Base element not found\");\r\n }\r\n\r\n if (baseElements.length > 1) {\r\n throw new Error(\"Multiple base elements found\");\r\n }\r\n\r\n const baseElement = baseElements[0];\r\n const baseUrl = baseElement.getAttribute(\"href\");\r\n\r\n if (baseUrl === undefined) {\r\n throw new Error(\"Base element 'href' attribute not found.\");\r\n }\r\n\r\n let retVal: string | undefined;\r\n if (baseUrl !== null) {\r\n retVal = baseUrl;\r\n }\r\n return retVal;\r\n};\r\n\r\nexport const parseJwt = (token: string) => {\r\n const base64Url = token.split(\".\")[1];\r\n let retval = \"\";\r\n try {\r\n const base64 = decodeURIComponent(\r\n atob(base64Url)\r\n .split(\"\")\r\n .map(c => {\r\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\r\n })\r\n .join(\"\"),\r\n );\r\n retval = JSON.parse(base64);\r\n } catch {}\r\n\r\n return retval;\r\n};\r\n\r\nexport const getCookie: (cname: string) => string = (cname: string): string => {\r\n var name: string = cname + \"=\";\r\n var decodedCookie: string = decodeURIComponent(document.cookie);\r\n var ca: string[] = decodedCookie.split(\";\");\r\n for (var i: number = 0; i < ca.length; i++) {\r\n var c: string = ca[i];\r\n while (c.charAt(0) === \" \") {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) === 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return \"\";\r\n};\r\n\r\nexport const getUrlSearchParams: () => URLSearchParams = () => {\r\n return new URLSearchParams(window.location.search);\r\n};\r\n","import axios, * as Axios from \"axios\";\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// App\r\nimport { GlobalSetting } from \"Custom/Models/GlobalSetting\";\r\nimport { GlobalSettingType } from \"Custom/Models/GlobalSettingType\";\r\nimport { LoginComplete } from \"Core/Models\";\r\nimport { ApiResult } from \"Core/Models/ApiResult\";\r\nimport { BaseStore } from \"Core/Stores/BaseStore\";\r\nimport { isNullOrUndefined } from \"util\";\r\n\r\nimport { Stores } from \"../Stores\";\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\nimport { InitialState } from \"Custom/Models\";\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { getWeekYearWithOptions } from \"date-fns/fp\";\r\n\r\nexport class AccountStore extends BaseStore {\r\n @observable public Id: string | undefined;\r\n @observable public DisplayName: string = \"\";\r\n @observable public ViewAsCompanyName = \"\";\r\n @observable public IsLoggedIn: boolean = false;\r\n @observable public ViewAsCompanyId = \"\";\r\n @observable public UserName: string = \"\";\r\n @observable public UserRoles: string[] = [];\r\n @observable public PropertyId: string | undefined = undefined;\r\n @observable public CompanyLogo: string = \"\";\r\n @observable public IsInTenYearWarranty: boolean = false;\r\n @observable public GlobalSettings = observable([]);\r\n @observable public GlobalSettingTypes = observable([]);\r\n @observable public StripePublicKey: string = \"\";\r\n\r\n public permissions = observable([]);\r\n\r\n @computed\r\n public get hasGlobalPermission() {\r\n const hasGlobalPermission = this.hasPermission(\"global\");\r\n\r\n return hasGlobalPermission;\r\n }\r\n\r\n @computed\r\n public get hasViewAsCompanyId() {\r\n const viewAsCompanyId = this.ViewAsCompanyId;\r\n const hasViewAsCompanyId = viewAsCompanyId != null && viewAsCompanyId !== \"\";\r\n\r\n return hasViewAsCompanyId;\r\n }\r\n\r\n @computed\r\n public get isSysAdminViewMode() {\r\n const hasGlobalPermission = this.hasGlobalPermission;\r\n const hasViewAsCompanyId = this.hasViewAsCompanyId;\r\n const isSysAdminViewMode = hasGlobalPermission === true && hasViewAsCompanyId === false;\r\n\r\n return isSysAdminViewMode;\r\n }\r\n\r\n @computed\r\n public get isCompanyViewMode() {\r\n const hasGlobalPermission = this.hasGlobalPermission;\r\n const hasViewAsCompanyId = this.hasViewAsCompanyId;\r\n const isCompanyViewMode = hasGlobalPermission === false || hasViewAsCompanyId === true;\r\n\r\n return isCompanyViewMode;\r\n }\r\n\r\n @action\r\n public getSettingByType = (settingType: number) => {\r\n // Find setting type that matches the setting type.\r\n let globalSettingType = this.GlobalSettingTypes.find(a => a.type === settingType);\r\n\r\n //No settings exist that match this setting type.\r\n if (globalSettingType === undefined || globalSettingType === null) {\r\n return undefined;\r\n }\r\n\r\n // Find the setting with that type.\r\n let setting = this.GlobalSettings.find(cs => cs.globalSettingTypeId === globalSettingType!.id);\r\n\r\n //Setting does not exist\r\n if (setting === undefined || setting === null) {\r\n return undefined;\r\n }\r\n\r\n return setting;\r\n };\r\n\r\n public constructor() {\r\n super();\r\n }\r\n\r\n public init(stores: Stores, initialState: InitialState) {\r\n if (initialState !== undefined) {\r\n if (initialState.accountStatus !== undefined) {\r\n this.Id = initialState.accountStatus.id;\r\n this.IsLoggedIn = initialState.accountStatus.isLoggedIn;\r\n this.DisplayName = initialState.accountStatus.displayName;\r\n this.ViewAsCompanyName = initialState.accountStatus.viewAsCompanyName;\r\n\r\n if (initialState.accountStatus.permissions) {\r\n this.permissions.replace(initialState.accountStatus.permissions);\r\n }\r\n }\r\n\r\n this.PropertyId = initialState.propertyId === null ? undefined : initialState.propertyId;\r\n this.IsInTenYearWarranty = initialState.isInTenYearWarranty;\r\n this.ViewAsCompanyId = initialState.viewAsCompanyId != null ? initialState.viewAsCompanyId : \"\";\r\n this.StripePublicKey = initialState.stripePublicKey;\r\n\r\n if (initialState.globalSettingTypes) {\r\n this.GlobalSettingTypes.replace(initialState.globalSettingTypes);\r\n } else {\r\n this.GlobalSettingTypes.clear();\r\n }\r\n\r\n if (initialState.globalSettings) {\r\n this.GlobalSettings.replace(initialState.globalSettings);\r\n } else {\r\n this.GlobalSettings.clear();\r\n }\r\n\r\n if (this.ViewAsCompanyId === \"\") {\r\n this.ViewAsCompanyId = initialState.accountStatus.companyViewId != null ? initialState.accountStatus.companyViewId : \"\";\r\n }\r\n }\r\n }\r\n\r\n @action\r\n public setLoginState = (apiResult: LoginComplete) => {\r\n this.Id = apiResult.id;\r\n this.IsLoggedIn = apiResult.accountStatus.isLoggedIn;\r\n this.DisplayName = apiResult.accountStatus.displayName;\r\n this.PropertyId = apiResult.propertyId;\r\n this.IsInTenYearWarranty = apiResult.isInTenYearWarranty;\r\n this.GlobalSettingTypes.replace(apiResult.globalSettingTypes);\r\n this.GlobalSettings.replace(apiResult.globalSettings);\r\n this.StripePublicKey = apiResult.stripePublicKey;\r\n\r\n if (apiResult.accountStatus.companyViewId) {\r\n this.ViewAsCompanyId = apiResult.accountStatus.companyViewId;\r\n }\r\n\r\n if (apiResult.accountStatus.viewAsCompanyName) {\r\n this.ViewAsCompanyName = apiResult.accountStatus.viewAsCompanyName;\r\n }\r\n\r\n if (apiResult.accountStatus.permissions) {\r\n this.permissions.replace(apiResult.accountStatus.permissions);\r\n } else {\r\n this.permissions.clear();\r\n }\r\n };\r\n\r\n public hasPermission = (target: string, level?: \"read\" | \"write\") => {\r\n for (const userPermission of this.permissions) {\r\n const userPermissionComponents = userPermission.split(\":\");\r\n const userPermissionTarget = userPermissionComponents[0];\r\n\r\n if (userPermissionTarget === \"global\") {\r\n return true;\r\n }\r\n\r\n if (userPermissionTarget === target) {\r\n if (userPermissionComponents.length === 1) {\r\n return true;\r\n }\r\n\r\n if (level == null) {\r\n return true;\r\n }\r\n\r\n const userPermissionLevel = userPermissionComponents[1];\r\n\r\n if (level === userPermissionLevel) {\r\n return true;\r\n }\r\n\r\n if (level === \"write\" && userPermissionLevel === \"read\") {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n @action\r\n public setIsLoggedIn(state: boolean) {\r\n this.IsLoggedIn = state;\r\n }\r\n\r\n public isInRole = (role: string): boolean => {\r\n if (this.UserRoles && this.UserRoles.length > 0) {\r\n return this.UserRoles.includes(role);\r\n }\r\n\r\n return false;\r\n };\r\n\r\n @action\r\n public Logout = (redirect: boolean = true): void => {\r\n this.IsLoggedIn = false;\r\n this.UserName = \"\";\r\n this.DisplayName = \"\";\r\n this.Id = \"\";\r\n this.ViewAsCompanyId = \"\";\r\n this.ViewAsCompanyName = \"\";\r\n this.permissions.clear();\r\n this.GlobalSettingTypes.clear();\r\n this.GlobalSettings.clear();\r\n\r\n if (redirect) {\r\n window.location.href = \"/login\";\r\n }\r\n };\r\n\r\n @action\r\n public setPropertyId = (val: string) => {\r\n // Potentially, properties can belong to different companies, so we\r\n // should reload the company logo if the property id changes.\r\n if (this.PropertyId !== val || isEmptyOrWhitespace(this.CompanyLogo)) {\r\n this.loadCompanyLogo(val);\r\n }\r\n\r\n this.PropertyId = val;\r\n };\r\n\r\n @action\r\n public setIsInTenYearWarranty = (val: boolean) => {\r\n this.IsInTenYearWarranty = val;\r\n };\r\n\r\n @action\r\n public setCompanyLogo = (val: string) => {\r\n this.CompanyLogo = val;\r\n };\r\n\r\n private loadCompanyLogo = async (id: string): Promise => {\r\n try {\r\n const apiResult = await axios.get(Server.Api.Image.GetCompanyImage + \"/\" + id);\r\n\r\n if (!isNullOrUndefined(apiResult.data) && apiResult.data.wasSuccessful) {\r\n this.setCompanyLogo(apiResult.data.payload!);\r\n }\r\n } catch (exception) {\r\n // Do nothing. If we cannot get the company logo, it is not a big deal!\r\n // It is secondary to the functionality of the application.\r\n }\r\n };\r\n}\r\n","import { BaseStore } from \"../../../Core/Stores/BaseStore\";\r\nimport { InitialState } from \"../../../Custom/Models\";\r\nimport { Stores } from \"..\";\r\nimport * as MobX from \"mobx\";\r\n\r\ndeclare var Stripe: any;\r\n\r\nexport class StripeStore extends BaseStore {\r\n @MobX.observable\r\n public loaded = false;\r\n\r\n public test = true;\r\n\r\n public tokenizationSpecification?: any;\r\n\r\n public merchantInfo?: any;\r\n\r\n public init(stores: Stores, initialState: InitialState) {\r\n if (initialState !== undefined) {\r\n if (Stripe) {\r\n Stripe.setPublishableKey(initialState.stripePublicKey);\r\n }\r\n\r\n this.test = initialState.useTestPaymentGateways;\r\n\r\n this.tokenizationSpecification = {\r\n type: \"PAYMENT_GATEWAY\",\r\n parameters: {\r\n gateway: \"stripe\",\r\n \"stripe:version\": \"2018-10-31\",\r\n \"stripe:publishableKey\": initialState.stripePublicKey,\r\n },\r\n };\r\n\r\n // this.merchantInfo = {\r\n // merchantName: initialState.appSettings.googleMerchantName,\r\n // merchantId: initialState.appSettings.googleMerchantId,\r\n // };\r\n }\r\n\r\n MobX.runInAction(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n}\r\n","import { observable, action } from \"mobx\";\r\nimport { set as _set } from \"lodash-es\";\r\nimport { get as _get } from \"lodash-es\";\r\nimport { IModel } from \"./IModel\";\r\nimport { InputValuesDirty, InputValuesTouched, InputValuesErrors, InputValuesValidity } from \"./IModel\";\r\nimport { FieldType, getParentObjectPath } from \"../Utils/Utils\";\r\n\r\nexport abstract class ModelBase implements IModel {\r\n @observable public Errors = {} as InputValuesErrors;\r\n @observable public Valid = {} as InputValuesValidity;\r\n @observable public Dirty = {} as InputValuesDirty;\r\n @observable public Touched = {} as InputValuesTouched;\r\n\r\n abstract fromDto(model: TDTO): void;\r\n abstract toDto(model: T): void;\r\n\r\n constructor() {\r\n //Loop through added properties setting their default values\r\n for (let prop in this) {\r\n if (prop != \"Errors\" && prop != \"Valid\" && prop != \"Dirty\" && prop != \"Touched\") {\r\n // @ts-ignore\r\n this.Errors[prop] = \"\";\r\n // @ts-ignore\r\n this.Valid[prop] = true;\r\n // @ts-ignore\r\n this.Dirty[prop] = false;\r\n // @ts-ignore\r\n this.Touched[prop] = false;\r\n }\r\n }\r\n }\r\n\r\n @action\r\n public setValue(fieldName: keyof FieldType, value: TR): void {\r\n _set(this, fieldName as any, value);\r\n }\r\n\r\n public getValue(fieldName: keyof FieldType): TR {\r\n return _get(this, fieldName as any);\r\n }\r\n\r\n @action\r\n public setError(fieldName: keyof FieldType, value: string): void {\r\n let path = getParentObjectPath(fieldName as any, \"Errors\");\r\n _set(this, path, value);\r\n }\r\n\r\n public getError(fieldName: keyof FieldType): string {\r\n let path = getParentObjectPath(fieldName as any, \"Errors\");\r\n return _get(this, path);\r\n }\r\n\r\n @action\r\n public setValid(fieldName: keyof FieldType, value: boolean): void {\r\n let path = getParentObjectPath(fieldName as any, \"Valid\");\r\n _set(this, path, value);\r\n }\r\n\r\n public getValid(fieldName: keyof FieldType): boolean {\r\n let path = getParentObjectPath(fieldName as any, \"Valid\");\r\n return _get(this, path);\r\n }\r\n\r\n @action\r\n public setDirty(fieldName: keyof FieldType, value: boolean): void {\r\n let path = getParentObjectPath(fieldName as any, \"Dirty\");\r\n _set(this, path, value);\r\n }\r\n\r\n public getDirty(fieldName: keyof FieldType): boolean {\r\n let path = getParentObjectPath(fieldName as any, \"Dirty\");\r\n return _get(this, path);\r\n }\r\n\r\n @action\r\n public setTouched(fieldName: keyof FieldType, value: boolean): void {\r\n let path = getParentObjectPath(fieldName as any, \"Touched\");\r\n _set(this, path, value);\r\n }\r\n\r\n public getTouched(fieldName: keyof FieldType): boolean {\r\n let path = getParentObjectPath(fieldName as any, \"Touched\");\r\n return _get(this, path);\r\n }\r\n}\r\n","// Libs\r\n\r\nimport * as MobX from \"mobx\";\r\n\r\nimport { IsEmail } from \"class-validator\";\r\nimport { ModelBase } from \"../../Core/Models/ModelBase\";\r\nimport { Role } from \".\";\r\n\r\n// App\r\n\r\nexport class User extends ModelBase {\r\n public id: string = \"\";\r\n @MobX.observable public firstName: string = \"\";\r\n @MobX.observable public lastName: string = \"\";\r\n @MobX.observable\r\n @IsEmail({}, { message: \"Email is not valid\" })\r\n public email: string = \"\";\r\n @MobX.observable public password: string = \"\";\r\n @MobX.observable public role: string = \"\";\r\n @MobX.observable public concurrencyToken: string = \"\";\r\n @MobX.observable public isDeleted: boolean = false;\r\n @MobX.observable public userRoles = MobX.observable([]);\r\n\r\n constructor(id: string) {\r\n super();\r\n this.id = id;\r\n }\r\n\r\n @MobX.action\r\n public fromDto = (model: UserDTO) => {\r\n for (let key in model) {\r\n if (model.hasOwnProperty(key)) {\r\n this[key] = model[key];\r\n }\r\n }\r\n // this.id = model.id;\r\n // this.firstName = model.firstName;\r\n // this.lastName = model.lastName;\r\n // this.email = model.email;\r\n // this.password = model.password;\r\n // this.role = model.role;\r\n // this.concurrencyToken = model.concurrencyToken;\r\n // this.isDeleted = model.isDeleted;\r\n };\r\n\r\n public toDto = (model: UserDTO) => {\r\n for (let key in model) {\r\n if (model.hasOwnProperty(key)) {\r\n model[key] = this[key];\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport interface UserDTO {\r\n id: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n password: string;\r\n role: string;\r\n concurrencyToken: string;\r\n isDeleted: boolean;\r\n}\r\n","// Libs\r\n\r\nimport * as MobX from \"mobx\";\r\n\r\nimport { BaseStore } from \"../../../../Core/Stores/BaseStore\";\r\nimport Moment from \"moment\";\r\nimport { Stores } from \"Custom/Stores/index\";\r\nimport { User } from \"Custom/Models/User\";\r\nimport { UserDTO } from \"Custom/Models/User\";\r\n\r\n// App\r\n\r\ninterface Filters {\r\n date: any;\r\n orderAsc: boolean;\r\n searchFilter: string;\r\n}\r\n\r\nexport class UserStore extends BaseStore {\r\n private users = MobX.observable([]);\r\n @MobX.observable private isLoadingData: boolean = false;\r\n @MobX.observable private filters: Filters = {\r\n date: Moment(),\r\n orderAsc: true,\r\n searchFilter: \"\",\r\n };\r\n @MobX.observable private lastUpdated: any = Moment();\r\n\r\n public constructor() {\r\n super();\r\n }\r\n\r\n public Init(stores: Stores) {}\r\n\r\n @MobX.computed get getUserCount(): number {\r\n return this.users.length;\r\n }\r\n\r\n @MobX.action\r\n public setUsers(users: UserDTO[]) {\r\n this.users.clear();\r\n users.forEach((user, index) => {\r\n let domainModel = this.users.find(dm => dm.id === user.id);\r\n\r\n if (!domainModel) {\r\n domainModel = new User(user.id);\r\n\r\n domainModel.fromDto(user);\r\n this.users.push(domainModel);\r\n }\r\n });\r\n this.isLoadingData = false;\r\n this.lastUpdated = Moment();\r\n }\r\n\r\n @MobX.action\r\n public clearUsers() {\r\n this.users.clear();\r\n }\r\n\r\n @MobX.action\r\n public setIsLoadingData(loading: boolean) {\r\n this.isLoadingData = loading;\r\n }\r\n\r\n @MobX.computed\r\n public get getUsers() {\r\n return this.users;\r\n }\r\n\r\n @MobX.computed\r\n public get getIsLoadingData() {\r\n return this.isLoadingData;\r\n }\r\n\r\n @MobX.computed\r\n public get getFilters() {\r\n return this.filters;\r\n }\r\n\r\n @MobX.computed\r\n public get getFilteredUsers() {\r\n let users = this.users.slice();\r\n if (this.filters.searchFilter) {\r\n users = this.users.filter(\r\n or =>\r\n or.email.toLowerCase().includes(this.filters.searchFilter) ||\r\n or.firstName.toLowerCase().includes(this.filters.searchFilter) ||\r\n or.lastName.toLowerCase().includes(this.filters.searchFilter),\r\n );\r\n }\r\n return users;\r\n }\r\n}\r\n","import * as MobX from \"mobx\";\r\n\r\nimport { IsNotEmpty } from \"class-validator\";\r\n// Libs\r\nimport { ModelBase } from \"../../Core/Models/ModelBase\";\r\n\r\n// App\r\n\r\nexport class Role extends ModelBase {\r\n public id: string = \"\";\r\n @IsNotEmpty({ message: \"Name is required\" })\r\n @MobX.observable\r\n public name: string = \"\";\r\n\r\n constructor(id: string) {\r\n super();\r\n this.id = id;\r\n }\r\n\r\n @MobX.action\r\n public fromDto = (model: RoleDTO) => {\r\n for (let key in model) {\r\n if (model.hasOwnProperty(key)) {\r\n this[key] = model[key];\r\n }\r\n }\r\n };\r\n\r\n public toDto = (model: Role) => {\r\n for (let key in model) {\r\n if (model.hasOwnProperty(key)) {\r\n model[key] = this[key];\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport interface RoleDTO {\r\n id: string;\r\n name: string;\r\n}\r\n","// Libs\r\nimport * as MobX from \"mobx\";\r\n\r\nimport { Role, RoleDTO } from \"../../../Models/Role\";\r\n\r\n// App\r\nimport { BaseStore } from \"../../../../Core/Stores/BaseStore\";\r\nimport Moment from \"moment\";\r\nimport { Stores } from \"Custom/Stores/index\";\r\n\r\ninterface Filters {\r\n date: any;\r\n orderAsc: boolean;\r\n searchFilter: string;\r\n}\r\n\r\nexport class RoleStore extends BaseStore {\r\n private roles = MobX.observable([]);\r\n @MobX.observable private isLoadingData: boolean = false;\r\n @MobX.observable private filters: Filters = {\r\n date: Moment(),\r\n orderAsc: true,\r\n searchFilter: \"\",\r\n };\r\n @MobX.observable private lastUpdated: any = Moment();\r\n\r\n public constructor() {\r\n super();\r\n }\r\n\r\n public Init(stores: Stores) {}\r\n\r\n @MobX.computed get getRoleCount(): number {\r\n return this.roles.length;\r\n }\r\n\r\n @MobX.action\r\n public setRoles(roles: RoleDTO[]) {\r\n this.roles.clear();\r\n roles.forEach((role, index) => {\r\n let domainModel = this.roles.find(dm => dm.id === role.id);\r\n\r\n if (!domainModel) {\r\n domainModel = new Role(role.id);\r\n\r\n domainModel.fromDto(role);\r\n this.roles.push(domainModel);\r\n }\r\n });\r\n this.isLoadingData = false;\r\n this.lastUpdated = Moment();\r\n }\r\n\r\n @MobX.action\r\n public clearRoles() {\r\n this.roles.clear();\r\n }\r\n\r\n @MobX.action\r\n public setIsLoadingData(loading: boolean) {\r\n this.isLoadingData = loading;\r\n }\r\n\r\n @MobX.computed\r\n public get getRoles() {\r\n return this.roles;\r\n }\r\n\r\n @MobX.computed\r\n public get getIsLoadingData() {\r\n return this.isLoadingData;\r\n }\r\n\r\n @MobX.computed\r\n public get getFilters() {\r\n return this.filters;\r\n }\r\n\r\n @MobX.computed\r\n public get getFilteredRoles() {\r\n let roles = this.roles.slice();\r\n if (this.filters.searchFilter) {\r\n roles = this.roles.filter(or => or.name.toLowerCase().includes(this.filters.searchFilter));\r\n }\r\n return roles;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\r\nimport { Stores } from \"../Stores\";\r\n// Libs\r\n\r\n// App\r\nimport { observable, computed, action } from \"mobx\";\r\n\r\nexport class BaseStore {\r\n public stores: Stores | null | undefined;\r\n @observable protected isLoadingCount = 0;\r\n @observable public isLoaded = true;\r\n @computed public get isLoading() {\r\n return this.isLoadingCount > 0;\r\n }\r\n public constructor(stores?: Stores) {\r\n if (stores) this.stores = stores;\r\n }\r\n\r\n @action protected setIsLoading = () => {\r\n this.isLoadingCount++;\r\n this.isLoaded = false;\r\n };\r\n @action protected unsetIsLoading = () => {\r\n this.isLoadingCount--;\r\n if (this.isLoadingCount === 0) {\r\n this.isLoaded = true;\r\n }\r\n };\r\n}\r\n","import * as MobX from \"mobx\";\r\n\r\n// Custom\r\nimport { CPItemModelDTO } from \"Custom/Models/DashboardModels/SnagModel\";\r\nimport { BaseStore } from \"./BaseStore\";\r\nimport { Stores } from \"../Stores\";\r\n\r\nexport class SnagTypeStore extends BaseStore {\r\n @MobX.observable\r\n private snagTypes: CPItemModelDTO[] = [];\r\n\r\n @MobX.action\r\n public populateSnagTypes(snagTypes: CPItemModelDTO[]) {\r\n this.snagTypes = snagTypes;\r\n }\r\n\r\n @MobX.computed\r\n public get getSnagTypes(): CPItemModelDTO[] {\r\n return this.snagTypes;\r\n }\r\n\r\n public Init(stores: Stores) {}\r\n}\r\n","import * as MobX from \"mobx\";\r\n\r\n// Custom\r\nimport { CPItemModelDTO } from \"Custom/Models/DashboardModels/SnagModel\";\r\nimport { BaseStore } from \"./BaseStore\";\r\nimport { Stores } from \"../Stores\";\r\n\r\nexport class HouseAreaStore extends BaseStore {\r\n @MobX.observable\r\n private houseAreas: CPItemModelDTO[] = [];\r\n\r\n @MobX.action\r\n public populateHouseAreas(houseAreas: CPItemModelDTO[]) {\r\n this.houseAreas = houseAreas;\r\n }\r\n\r\n @MobX.computed\r\n public get getHouseAreas(): CPItemModelDTO[] {\r\n return this.houseAreas;\r\n }\r\n\r\n public Init(stores: Stores) {}\r\n}\r\n","import * as MobX from \"mobx\";\r\n\r\n// Custom\r\nimport { SnagPhotoModelDTO } from \"Custom/Models/DashboardModels/SnagModel\";\r\nimport { BaseStore } from \"./BaseStore\";\r\nimport { Stores } from \"../Stores\";\r\n\r\nexport class SnagPhotoStore extends BaseStore {\r\n @MobX.observable\r\n private snagPhotos: SnagPhotoModelDTO[] = [];\r\n\r\n @MobX.observable\r\n private tmpPhotos: string[] = [];\r\n\r\n @MobX.action\r\n public populateSnagPhotos(snagPhotos: SnagPhotoModelDTO[]) {\r\n this.snagPhotos = snagPhotos;\r\n }\r\n\r\n @MobX.computed\r\n public get getSnagPhotos(): SnagPhotoModelDTO[] {\r\n return this.snagPhotos;\r\n }\r\n\r\n @MobX.action\r\n public populateTmpPhotos(files: string[]) {\r\n this.tmpPhotos = files;\r\n }\r\n\r\n @MobX.computed\r\n public get getTmpPhotos(): string[] {\r\n return this.tmpPhotos;\r\n }\r\n\r\n public Init(stores: Stores) {}\r\n}\r\n","import * as GoogleAnalytics from \"Core/Utils/App/GoogleAnalyticsUtils\";\r\nimport * as Models from \"../Models\";\r\nimport { action, computed, observable, runInAction } from \"mobx\";\r\nimport * as MobX from \"mobx\";\r\nimport { AccountStore, StripeStore } from \"./Domain\";\r\nimport { EditableCopy } from \"../Models/EditableCopy\";\r\nimport { EditableCopyRoute } from \"../Models/EditableCopyRoute\";\r\nimport { RoleStore } from \"./Domain/Admin\";\r\nimport { Stores } from \"./Stores\";\r\nimport { UserStore } from \"./Domain/Admin\";\r\n\r\nimport { SnagTypeStore } from \"./Domain/SnagTypeStore\";\r\nimport { HouseAreaStore } from \"./Domain/HouseAreaStore\";\r\nimport { SnagPhotoStore } from \"./Domain/SnagPhotoStore\";\r\n\r\nexport class DomainStores {\r\n @observable public openSnackBar = false;\r\n @observable public openErrorDialog = false;\r\n @observable public errorDialogContent: string = \"\";\r\n @observable public snackBarContent: string = \"\";\r\n @observable public editableCopies = MobX.observable([]);\r\n @observable public editableCopyRoutes = MobX.observable([]);\r\n public AccountStore: AccountStore = new AccountStore();\r\n public StripeStore: StripeStore = new StripeStore();\r\n public UserStore = new UserStore();\r\n public RoleStore = new RoleStore();\r\n public SnagTypeStore = new SnagTypeStore();\r\n public HouseAreaStore = new HouseAreaStore();\r\n public SnagPhotoStore = new SnagPhotoStore();\r\n\r\n public init(stores: Stores, initialState: Models.InitialState) {\r\n this.editableCopies.clear();\r\n this.editableCopyRoutes.clear();\r\n // initialState.editableCopies.forEach(editableCopy => {\r\n // this.editableCopies.push(editableCopy);\r\n // });\r\n // initialState.editableCopyRoutes.forEach(editableCopyRoute => {\r\n // this.editableCopyRoutes.push(editableCopyRoute);\r\n // });\r\n this.AccountStore.init(stores, initialState);\r\n this.StripeStore.init(stores, initialState);\r\n }\r\n\r\n @action\r\n public ShowSnackBar(content: string) {\r\n this.snackBarContent = content;\r\n this.openSnackBar = true;\r\n }\r\n\r\n @action\r\n public CloseSnackBar() {\r\n this.openSnackBar = false;\r\n }\r\n\r\n @action\r\n public ShowErrorDialog(content: string) {\r\n this.errorDialogContent = content;\r\n this.openErrorDialog = true;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-parameter-properties */\r\nimport { observable, runInAction } from \"mobx\";\r\nimport { defaultTheme } from \"../../Custom/StylesAppSpecific/AppStyling\";\r\nimport * as GoogleAnalytics from \"../Utils/App/GoogleAnalyticsUtils\";\r\nimport { EventArgs } from \"react-ga\";\r\nimport { FormLockConcurrencyHubStore } from \"./FormLockConcurrencyHubStore\";\r\nimport { Stores } from \"../../Custom/Stores\";\r\nimport { InitialState } from \"../../Custom/Models\";\r\nimport * as MobX from \"mobx\";\r\n\r\nexport class CoreStore {\r\n @observable public screenWidth = 0;\r\n @observable public isMobile = false;\r\n @observable public isTablet = false;\r\n @observable public isDesktop = false;\r\n //public FormLockConcurrencyHubStore = new FormLockConcurrencyHubStore();\r\n\r\n public constructor() {}\r\n\r\n public Init = (stores: Stores, initialState: InitialState) => {\r\n //GoogleAnalytics.Init(\"UA-1852243-71\");\r\n window.addEventListener(\"resize\", () => {\r\n this.setWidth();\r\n });\r\n this.setWidth();\r\n //this.FormLockConcurrencyHubStore.init(stores, initialState);\r\n\r\n //this.domain.History = history;\r\n // EN: For debugging\r\n (window as any).Stores = stores;\r\n (window as any).MobX = MobX;\r\n };\r\n\r\n private setWidth = () => {\r\n runInAction(() => {\r\n this.screenWidth = document.body.clientWidth;\r\n this.isMobile = this.screenWidth <= defaultTheme.breakpoints.values[\"md\"];\r\n this.isTablet = this.screenWidth > defaultTheme.breakpoints.values[\"md\"] && this.screenWidth <= defaultTheme.breakpoints.values[\"lg\"];\r\n this.isDesktop = this.screenWidth > defaultTheme.breakpoints.values[\"lg\"];\r\n // document.body.classList.remove(\"mobile\");\r\n // document.body.classList.remove(\"tablet\");\r\n // document.body.classList.remove(\"desktop\");\r\n // if (this.isMobile) {\r\n // \tdocument.body.classList.add(\"mobile\");\r\n // \tdocument.body.classList.remove(\"tablet\");\r\n // \tdocument.body.classList.remove(\"desktop\");\r\n // }\r\n // if (this.isTablet) {\r\n // \tdocument.body.classList.add(\"tablet\");\r\n // \tdocument.body.classList.remove(\"mobile\");\r\n // \tdocument.body.classList.remove(\"desktop\");\r\n // }\r\n // if (this.isDesktop) {\r\n // \tdocument.body.classList.add(\"desktop\");\r\n // \tdocument.body.classList.remove(\"mobile\");\r\n // \tdocument.body.classList.remove(\"tablet\");\r\n // }\r\n });\r\n //console.log(`Screen Mobile=${this.isMobile}, Tablet=${this.isTablet},Desktop=${this.isDesktop}`);\r\n };\r\n\r\n public PageView = (page: string) => {\r\n GoogleAnalytics.pageview(page);\r\n };\r\n\r\n public SendEvent = (args: EventArgs) => {\r\n GoogleAnalytics.sendEvent(args);\r\n };\r\n}\r\n","import GoogleAnalytics, { EventArgs, FieldsObject, TrackerNames } from \"react-ga\";\r\n\r\n//export { EventArgs, FieldsObject, TrackerNames };\r\n\r\n// GoogleAnalytics.initialize([\r\n// \t{\r\n// \t\ttrackingId: \"UA-1852243-71\", //UA-1852243-67\r\n// \t\tgaOptions: {\r\n// \t\t\tname: \"PPEExchange\",\r\n// \t\t},\r\n// \t},\r\n// ]);\r\nexport const Init = (UA: string) => {\r\n GoogleAnalytics.initialize(UA);\r\n GoogleAnalytics.set({ anonymizeIp: true });\r\n};\r\n\r\n///\r\n/// sendEvent\r\n///\r\n///https://developers.google.com/analytics/devguides/collection/analyticsjs/events\r\nexport const sendEvent = (args: EventArgs) => {\r\n //let eventArgs: EventArgs = {\r\n // category: category,\r\n // action: action,\r\n // label: label,\r\n // nonInteraction: nonInteraction,\r\n // transport: transport,\r\n // value: value\r\n //};\r\n //if (args != undefined && args.transport == undefined) {\r\n // `args.transport` must be either one of these values: `beacon`, `xhr` or `image`\r\n // args.transport = window.location.pathname;\r\n //}\r\n\r\n GoogleAnalytics.event(args);\r\n};\r\n\r\n///\r\n/// set\r\n///\r\nexport const set = (fieldsObject: FieldsObject, trackerNames?: TrackerNames) => {\r\n GoogleAnalytics.set({\r\n fieldsObject,\r\n trackerNames,\r\n });\r\n};\r\n\r\n///\r\n/// pageview\r\n///\r\nexport const pageview = (path: string, trackerNames?: TrackerNames, title?: string): void => {\r\n GoogleAnalytics.pageview(path);\r\n};\r\n","import { DomainStores } from \"./DomainStores\";\r\n/* eslint-disable @typescript-eslint/no-parameter-properties */\r\nimport * as Models from \"../Models\";\r\nimport * as MobX from \"mobx\";\r\nimport React, { createContext } from \"react\";\r\nimport { CoreStore } from \"../../Core/Stores/CoreStore\";\r\n\r\nexport class Stores {\r\n public coreStore: CoreStore = new CoreStore();\r\n public domain: DomainStores = new DomainStores();\r\n\r\n public constructor() {}\r\n\r\n public init(initialState: Models.InitialState) {\r\n this.coreStore.Init(this, initialState);\r\n this.domain.init(this, initialState);\r\n }\r\n}\r\nexport const StoresInstance = new Stores();\r\nexport const StoresContext: React.Context = createContext(StoresInstance);\r\n","// AJ: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\r\nexport class HttpError extends Error {\r\n public readonly httpStatusCode: number;\r\n\r\n public constructor(httpStatusCode: number, message: string) {\r\n // AJ: https://stackoverflow.com/questions/47941324/inherited-exceptions-and-instanceof\r\n const targetPrototype = new.target.prototype;\r\n super(message);\r\n Object.setPrototypeOf(this, targetPrototype);\r\n\r\n this.httpStatusCode = httpStatusCode;\r\n }\r\n}\r\n","import { HttpError } from \"./HttpError\";\r\n\r\n//AJ: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403\r\nexport class HttpForbiddenError extends HttpError {\r\n constructor() {\r\n //AJ: https://stackoverflow.com/questions/47941324/inherited-exceptions-and-instanceof\r\n const targetPrototype = new.target.prototype;\r\n super(403, \"Forbidden\");\r\n Object.setPrototypeOf(this, targetPrototype);\r\n }\r\n}\r\n","import { HttpError } from \"./HttpError\";\r\n\r\n//AJ: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401\r\nexport class HttpUnauthorizedError extends HttpError {\r\n constructor() {\r\n //AJ: https://stackoverflow.com/questions/47941324/inherited-exceptions-and-instanceof\r\n const targetPrototype = new.target.prototype;\r\n super(401, \"Unauthorized\");\r\n Object.setPrototypeOf(this, targetPrototype);\r\n }\r\n}\r\n","// Libs\r\nimport * as Axios from \"axios\";\r\n\r\n// App\r\nimport { HttpStatusToError } from \"./HttpStatusToError\";\r\n\r\nexport const CheckHttpStatus: (response: Axios.AxiosResponse) => void = response => {\r\n if (response.status !== 200) {\r\n throw HttpStatusToError(response.status, response.statusText);\r\n }\r\n};\r\n","export class RequestError extends Error {\r\n public readonly errorMessages: string[];\r\n\r\n constructor(errorMessages: string[]) {\r\n //AJ: https://stackoverflow.com/questions/47941324/inherited-exceptions-and-instanceof\r\n const targetPrototype = new.target.prototype;\r\n super(\"The request had errors.\");\r\n Object.setPrototypeOf(this, targetPrototype);\r\n\r\n this.errorMessages = errorMessages;\r\n }\r\n}\r\n","// App\r\nimport * as Errors from \"../../Errors\";\r\n\r\nexport const HttpStatusToError: (httpStatusCode: number, httpStatusText: string) => {} = (httpStatusCode, httpStatusText) => {\r\n if (httpStatusCode === 401) {\r\n return new Errors.HttpUnauthorizedError();\r\n } else if (httpStatusCode === 403) {\r\n return new Errors.HttpForbiddenError();\r\n } else {\r\n return new Errors.HttpError(httpStatusCode, httpStatusText);\r\n }\r\n};\r\n","// Libs\r\nimport * as Axios from \"axios\";\r\n\r\n// App\r\nimport { getApiUrl } from \"../Utils\";\r\n\r\nexport const GetDefaultConfig: () => Axios.AxiosRequestConfig = () => {\r\n return {\r\n validateStatus: undefined, // We handle the httpstatus validation throwing some custom errors objects.\r\n baseURL: getApiUrl(),\r\n };\r\n};\r\n","// Libs\r\nimport * as Axios from \"axios\";\r\nimport { merge as _merge } from \"lodash-es\";\r\n\r\n// App\r\nimport { GetDefaultConfig } from \"./GetDefaultConfig\";\r\n\r\nexport const MergeDefaultConfig: (...configs: (Axios.AxiosRequestConfig | undefined)[]) => Axios.AxiosRequestConfig = (...configs) => _merge(GetDefaultConfig(), ...configs);\r\n","import { AccountStatus, ApiResult, ModelBase } from \"../Models\";\r\nimport { CheckHttpStatus, MergeDefaultConfig } from \"../Utils/Axios\";\r\nimport { FieldType, getHistory, getParentObjectPath } from \"../Utils/Utils\";\r\nimport { History, LocationState } from \"history\";\r\nimport { MetadataStorage, Validator, getFromContainer, validate, validateOrReject } from \"class-validator\";\r\nimport { ObjPathProxy, createProxy } from \"ts-object-path\";\r\nimport { action, computed, observable, runInAction } from \"mobx\";\r\nimport axios, * as Axios from \"axios\";\r\n\r\nimport { IModel } from \"Core/Models/IModel\";\r\nimport { IViewModel } from \"Core/ViewModels/IViewModel\";\r\nimport { ValidationMetadata } from \"class-validator/metadata/ValidationMetadata\";\r\nimport { get as _get } from \"lodash-es\";\r\nimport { isBoolean as _isBoolean } from \"lodash-es\";\r\nimport { isString as _isString } from \"lodash-es\";\r\nimport { set as _set } from \"lodash-es\";\r\nimport { createViewModel } from \"mobx-utils\";\r\nimport dot from \"dot-object\";\r\nimport { match } from \"react-router\";\r\nimport { Stores, StoresInstance } from \"../../Custom/Stores\";\r\nimport { constants } from \"os\";\r\n//import { StoresInstance } from \"../../Custom/Stores\";\r\n\r\n//Give typing and intellisense to the field names\r\n\r\nexport type ValidationResponse = {\r\n isValid: boolean;\r\n errorMessage: string;\r\n};\r\nexport type Create = new (...args: any[]) => T;\r\nexport abstract class ViewModelBase = any> implements IViewModel {\r\n public model: T = {} as T;\r\n\r\n @observable public IsLoading: boolean = false;\r\n @observable public IsErrored = false;\r\n @observable public Errors: string = \"\";\r\n @observable public Valid: boolean = false;\r\n\r\n @action protected setIsLoading = (state: boolean) => (this.IsLoading = state);\r\n @action protected setIsErrored = (state: boolean) => (this.IsErrored = state);\r\n @action protected setErrors = (state: string) => (this.Errors = state);\r\n\r\n public history: History;\r\n public location: LocationState = {} as LocationState;\r\n public match = {} as match<{}>;\r\n\r\n public validatorStorage: MetadataStorage = getFromContainer(MetadataStorage);\r\n private meta = {} as ValidationMetadata[];\r\n private validator = new Validator();\r\n private proxy: T = {} as T;\r\n\r\n protected constructor(model: T, undoable: boolean = false, enableProxy: boolean = true) {\r\n this.history = getHistory();\r\n\r\n if (model) {\r\n if (enableProxy) {\r\n this.createNewProxy(model, undoable);\r\n } else {\r\n this.internalSetModel(model, undoable);\r\n }\r\n }\r\n (window as any).model = model;\r\n }\r\n\r\n public createNewProxy = (model: T, undoable: boolean) => {\r\n let self: IViewModel = this;\r\n this.proxy = new Proxy(model, {\r\n get(target: any, value: any, receiver: any) {\r\n let val = Reflect.get(target, value, receiver); // (1)\r\n return typeof value == \"function\" ? val.bind(target) : val;\r\n },\r\n set(target: any, prop: any, value: any, receiver: any) {\r\n let newValue = value;\r\n if (typeof self[\"beforeUpdate\"] === \"function\") {\r\n let tmpValue = self[\"beforeUpdate\"](prop, value);\r\n if (tmpValue !== null && tmpValue !== undefined) {\r\n newValue = tmpValue;\r\n }\r\n }\r\n let retval = Reflect.set(target, prop, newValue, receiver); // (1)\r\n if (typeof self[\"afterUpdate\"] === \"function\") {\r\n self[\"afterUpdate\"](prop, newValue);\r\n }\r\n return retval;\r\n },\r\n });\r\n this.internalSetModel(this.proxy, undoable);\r\n };\r\n\r\n private getType = (TCtor: new (...args: any[]) => T) => {\r\n return typeof TCtor;\r\n };\r\n\r\n //This must be overriden in any class that extends this base class\r\n abstract isFieldValid(fieldName: keyof FieldType, value: any): boolean;\r\n abstract beforeUpdate?(fieldName: keyof FieldType, value: any): any;\r\n abstract afterUpdate?(fieldName: keyof FieldType, value: any): void;\r\n\r\n @computed\r\n public get getModel(): T {\r\n return this.model;\r\n }\r\n @computed\r\n public get screenWidth(): number {\r\n return StoresInstance.coreStore.screenWidth;\r\n }\r\n @computed\r\n public get isMobile(): boolean {\r\n return StoresInstance.coreStore.isMobile;\r\n }\r\n @computed\r\n public get isTablet(): boolean {\r\n return StoresInstance.coreStore.isTablet;\r\n }\r\n @computed\r\n public get isDesktop(): boolean {\r\n return StoresInstance.coreStore.isDesktop;\r\n }\r\n @computed\r\n public get isLoggedIn(): boolean {\r\n return StoresInstance.domain.AccountStore.IsLoggedIn;\r\n }\r\n private internalSetModel(model: T, undoable: boolean = false) {\r\n if (undoable) {\r\n //This is a helper method to make the model undoable. You must call submit on the model to save changes\r\n this.model = createViewModel(model);\r\n return;\r\n }\r\n this.model = model;\r\n }\r\n\r\n public setModel(model: T, undoable: boolean = false) {\r\n for (let key in model) {\r\n if (model.hasOwnProperty(key)) {\r\n if (this.getValue(key as any) instanceof Date) {\r\n this.setValue(key as any, new Date(model[key] as any));\r\n } else {\r\n this.setValue(key as any, model[key]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public getContext = (): ObjPathProxy => {\r\n return createProxy();\r\n };\r\n\r\n public saveModel(): void {\r\n (this.model as any).submit();\r\n }\r\n\r\n public resetModel(): void {\r\n (this.model as any).reset();\r\n }\r\n\r\n @action\r\n public setValue(fieldName: keyof FieldType, value: TR) {\r\n this.model.setValue(fieldName, value);\r\n }\r\n\r\n public getValue(fieldName: keyof FieldType): TR {\r\n let value = this.model.getValue(fieldName);\r\n if (value === null) {\r\n if (_isString(value)) {\r\n ((value as any) as string) = \"\";\r\n } else if (_isBoolean(value)) {\r\n ((value as any) as boolean) = false;\r\n }\r\n this.model.setValue(fieldName, value);\r\n }\r\n return value;\r\n }\r\n\r\n @action\r\n public setError(fieldName: keyof FieldType | string, value: string) {\r\n this.model.setError(fieldName, value);\r\n }\r\n\r\n public getError(fieldName: keyof FieldType | string) {\r\n return this.model.getError(fieldName);\r\n }\r\n\r\n @action\r\n public setValid(fieldName: keyof FieldType | string, value: boolean): void {\r\n this.model.setValid(fieldName, value);\r\n }\r\n\r\n public getValid(fieldName: keyof FieldType | string): boolean {\r\n return this.model.getValid(fieldName);\r\n }\r\n\r\n @action\r\n public setDirty(fieldName: keyof FieldType | string, value: boolean): void {\r\n this.model.setDirty(fieldName, value);\r\n }\r\n\r\n public getDirty(fieldName: keyof FieldType | string): boolean {\r\n return this.model.getDirty(fieldName);\r\n }\r\n\r\n @action\r\n public setTouched(fieldName: keyof FieldType | string, value: boolean): void {\r\n this.model.setTouched(fieldName, value);\r\n }\r\n\r\n public getTouched(fieldName: keyof FieldType | string): boolean {\r\n return this.model.getTouched(fieldName);\r\n }\r\n\r\n public isModelValid = () => {\r\n let valid = true;\r\n //EN: Flatten the object into dot notation so we can iterate over nested objects\r\n let target = dot.dot(this.model);\r\n for (let prop in target) {\r\n if (prop.indexOf(\"Errors.\") < 0 && prop.indexOf(\"Dirty.\") < 0 && prop.indexOf(\"Touched.\") < 0 && prop.indexOf(\"Valid.\") < 0) {\r\n if (prop != \"getParentObjectPath\") {\r\n this[\"isFieldValid\"](prop as any, _get(this.model, prop));\r\n }\r\n }\r\n }\r\n\r\n // //Run through again checking properties of model\r\n for (let prop in target) {\r\n if (prop.indexOf(\"Errors.\") < 0 && prop.indexOf(\"Dirty.\") < 0 && prop.indexOf(\"Touched.\") < 0 && prop.indexOf(\"Valid.\") < 0) {\r\n if (valid) {\r\n let path = getParentObjectPath(prop, \"Valid\");\r\n valid = _get(this.model, path);\r\n }\r\n }\r\n }\r\n runInAction(() => {\r\n this.Valid = valid;\r\n });\r\n return valid;\r\n };\r\n\r\n private parseObjectProperties = (obj: any, parse: any) => {\r\n for (let k in obj) {\r\n if (typeof obj[k] === \"object\" && obj[k] !== null) {\r\n this.parseObjectProperties(obj[k], parse);\r\n } else if (obj.hasOwnProperty(k)) {\r\n parse(obj, k);\r\n }\r\n }\r\n };\r\n\r\n public setDecorators = (model: any) => {\r\n this.meta = this.validatorStorage.getTargetValidationMetadatas(model, \"\");\r\n };\r\n\r\n public validateDecorators = (fieldName: keyof FieldType): ValidationResponse => {\r\n let target = this.meta.filter(a => a.propertyName === fieldName).reverse();\r\n let message = \"\";\r\n if (target && target.length > 0) {\r\n let validated = false;\r\n target.some((t: ValidationMetadata) => {\r\n validated = this.validator.validateValueByMetadata(this.getValue(fieldName), t!);\r\n if (t.message) {\r\n message = t.message.toString();\r\n } else if (t.constraints.length > 0) {\r\n message = t.constraints[0].message;\r\n }\r\n return !validated;\r\n });\r\n //let vp = this.validator.length(\"\", 1, 10);\r\n //let ve = new ValidationExecutor(this.validator);\r\n //let promise = await validate(target!);\r\n return { isValid: validated, errorMessage: validated ? \"\" : message.toString() };\r\n } else {\r\n //No decorators found so presume no validation required\r\n return { isValid: true, errorMessage: \"\" };\r\n }\r\n };\r\n\r\n Get = >(\r\n url: string,\r\n //model?: any,\r\n config?: Axios.AxiosRequestConfig,\r\n ): Promise> => {\r\n this.setIsLoading(true);\r\n const postPromise = axios\r\n .get>(url, this.getConfig(config))\r\n .then(async response => {\r\n if (response.headers[\"token-expired\"]) {\r\n let newTokenResult = await axios.post>(\"/api/account/refresh\", {\r\n accessToken: localStorage.getItem(\".auth\"),\r\n });\r\n this.setLoginState(newTokenResult.data.payload);\r\n if (newTokenResult.data.payload.jwt === \"\") {\r\n //Go to session expired page\r\n window.location.href = \"/sessionexpired\";\r\n //return false;\r\n }\r\n //Make the original call again\r\n response = await axios.get>(url, this.getConfig(config));\r\n } else if (response.headers[\"unauthorized\"]) {\r\n this.logout();\r\n }\r\n CheckHttpStatus(response);\r\n this.setIsLoading(false);\r\n return response.data;\r\n })\r\n .catch(error => {\r\n this.setIsErrored(true);\r\n this.setIsLoading(false);\r\n this.setErrors(error);\r\n if (error.response.status === 401) {\r\n this.logout();\r\n }\r\n return { wasSuccessful: false };\r\n });\r\n\r\n return postPromise as Promise>;\r\n };\r\n\r\n Post = >(url: string, model?: any, config?: Axios.AxiosRequestConfig): Promise> => {\r\n this.setIsLoading(true);\r\n const postPromise = axios\r\n .post>(url, model, this.getConfig(config))\r\n .then(async response => {\r\n if (response.headers[\"token-expired\"]) {\r\n let newTokenResult = await axios.post>(\"/api/account/refresh\", {\r\n accessToken: localStorage.getItem(\".auth\"),\r\n });\r\n this.setLoginState(newTokenResult.data.payload);\r\n if (newTokenResult.data.payload.jwt === \"\") {\r\n //Go to session expired page\r\n window.location.href = \"/sessionexpired\";\r\n }\r\n response = await axios.post>(url, model, this.getConfig(config));\r\n } else if (response.headers[\"unauthorized\"]) {\r\n this.logout();\r\n }\r\n CheckHttpStatus(response);\r\n this.setIsLoading(false);\r\n\r\n return response.data;\r\n })\r\n .catch(error => {\r\n this.setIsErrored(true);\r\n this.setIsLoading(false);\r\n this.setErrors(error);\r\n if (error.response.status === 401) {\r\n this.logout();\r\n }\r\n return { wasSuccessful: false };\r\n });\r\n\r\n return postPromise as Promise>;\r\n };\r\n\r\n setLoginState = (apiResult: AccountStatus) => {\r\n //localStorage.setItem(\".auth\", apiResult.jwt as string);\r\n //EN: Hack at the moment so that we do not get cicular references\r\n // let stores = (window as any).Stores as Stores;\r\n // if (stores) {\r\n // \tstores.domain.AccountStore.getLoginState(apiResult);\r\n // }\r\n };\r\n logout = () => {\r\n //(window as any).Stores.domain.AccountStore.Logout();\r\n this.history.push(\"/logout\");\r\n };\r\n getConfig = (config?: Axios.AxiosRequestConfig) => {\r\n const requestConfig = MergeDefaultConfig(config);\r\n //Sets the bearer on every header if available\r\n //Note: You might need to remove this bearer if calling 3rd party api's\r\n let jwt = localStorage.getItem(\".auth\") as string;\r\n if (jwt && jwt.length > 0) {\r\n requestConfig.headers = {\r\n Authorization: \"Bearer \" + jwt,\r\n \"content-type\": \"application/json\",\r\n };\r\n } else {\r\n requestConfig.headers = {\r\n \"content-type\": \"application/json\",\r\n };\r\n }\r\n return requestConfig;\r\n };\r\n}\r\n","import * as MobX from \"mobx\";\r\nimport { InitialState, LoginModel } from \"../Models\";\r\nimport { AccountStatus, ApiResult } from \"Core/Models\";\r\nimport { ViewModelBase } from \"Core/ViewModels/ViewModelBase\";\r\nimport { runInAction } from \"mobx\";\r\nimport { StoresInstance } from \"../Stores\";\r\n\r\nexport class InitViewModel extends ViewModelBase {\r\n @MobX.observable\r\n public DataReady: boolean = false;\r\n public InitData: InitialState = {} as InitialState;\r\n constructor() {\r\n super({});\r\n }\r\n\r\n public getInitialState = async (): Promise => {\r\n let apiResult = await this.Get(\"/api/initialstate/getinitialstatejson\");\r\n\r\n runInAction(() => {\r\n // if (!apiResult.payload.accountStatus.isLoggedIn) {\r\n // \tStoresInstance.domain.AccountStore.Logout(false);\r\n // }\r\n StoresInstance.init(apiResult.payload);\r\n this.InitData = apiResult.payload;\r\n this.DataReady = true;\r\n });\r\n\r\n return apiResult.wasSuccessful;\r\n };\r\n\r\n public isFieldValid(fieldName: \"emailAddress\" | \"password\", value: any): boolean {\r\n return true;\r\n }\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n}\r\n","/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport \"./Error.scss\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\ntype Props = {\r\n error?: string;\r\n};\r\nexport const Error2: React.FC = (props: Props) => {\r\n return (\r\n
\r\n
500
\r\n \r\n Unfortunately the server has experienced an error\r\n \r\n \r\n Return to dashboard\r\n \r\n
\r\n );\r\n};\r\nError2.defaultProps = {\r\n error: \"Unknown error\",\r\n};\r\n","import * as MobX from \"mobx\";\r\nimport * as React from \"react\";\r\nimport * as ReactRouterDom from \"react-router-dom\";\r\nimport { getHistory } from \"./Core/Utils/Utils\";\r\nimport { Error2 } from \"./Core/Views/Error2\";\r\n\r\ninterface ErrorBoundaryProps {\r\n hasError: boolean;\r\n error: string;\r\n}\r\nexport class AppErrorBoundary extends React.Component<{}, ErrorBoundaryProps> {\r\n //@MobX.observable private error: any | undefined = undefined;\r\n constructor(props: ErrorBoundaryProps) {\r\n super(props);\r\n this.state = { hasError: false, error: \"\" };\r\n }\r\n static getDerivedStateFromError(error: any) {\r\n // Update state so the next render will show the fallback UI.\r\n return { hasError: true, error: error.toString() };\r\n }\r\n public componentDidCatch(error: any, info: any) {\r\n //this.setError(error.toString());\r\n console.log(\"Error => \" + error.toString());\r\n }\r\n\r\n public render() {\r\n // AJ: ErrorBoundaries don't catch event/promise errors... so no point handling them here...\r\n // AJ: https://reactjs.org/docs/error-boundaries.html#how-about-event-handlers\r\n if (this.state.hasError) {\r\n return (\r\n \r\n // return (\r\n // \t
\r\n // \t\t
\r\n // \t\t\t×\r\n // \t\t\t

App Crashed

\r\n // \t\t\t

Something has gone horribly wrong.

\r\n // \t\t\t{this.state.error}\r\n // \t\t
\r\n // \t
\r\n );\r\n //getHistory().push(\"/unknownerror\");\r\n //return ;\r\n }\r\n\r\n return this.props.children;\r\n }\r\n\r\n //@MobX.action private setError = (error: any) => (this.error = error);\r\n}\r\n","import styled, { keyframes } from \"styled-components\";\r\nimport { Button, Box, Paper, Container } from \"@material-ui/core\";\r\nexport type SuperDivProps = {\r\n pb?: string;\r\n pt?: string;\r\n mt?: string;\r\n mb?: string;\r\n inline?: boolean;\r\n color?: string;\r\n};\r\nexport const SuperDiv = styled.div`\r\n padding-bottom: ${props => props.pb};\r\n padding-top: ${props => props.pt};\r\n margin-top: ${props => props.mt};\r\n margin-bottom: ${props => props.mb};\r\n color: ${props => props.color};\r\n display: ${props => (props.inline ? \"inline\" : \"block\")};\r\n`;\r\n//https://github.com/azz/styled-css-grid\r\nconst autoRows = ({ minRowHeight = \"20px\" }) => `minmax(${minRowHeight}, auto)`;\r\nconst frGetter = (value: number | string) => (typeof value === \"number\" ? `repeat(${value}, 1fr)` : value);\r\nconst gap = ({ gap = \"8px\" }) => gap;\r\nconst flow = ({ flow = \"row\" }) => flow;\r\nconst formatAreas = (areas: string[]) => areas.map(area => `\"${area}\"`).join(\" \");\r\nexport type CSSGridProps = {\r\n className: string;\r\n columns: string | number;\r\n gap: string;\r\n columnGap: string;\r\n rowGap: string;\r\n height: string;\r\n minRowHeight: string;\r\n flow: string;\r\n rows: string | number;\r\n areas: string[];\r\n justifyContent: string;\r\n alignContent: string;\r\n};\r\nexport const CSSGrid = styled(SuperDiv)>`\r\n display: grid;\r\n height: ${({ height = \"auto\" }) => height};\r\n grid-auto-flow: ${flow};\r\n grid-auto-rows: ${autoRows};\r\n ${({ rows }) => rows && `grid-template-rows: ${frGetter(rows)}`};\r\n grid-template-columns: ${({ columns = 12 }) => frGetter(columns)};\r\n grid-gap: ${gap};\r\n ${({ columnGap }) => columnGap && `column-gap: ${columnGap}`};\r\n ${({ rowGap }) => rowGap && `row-gap: ${rowGap}`};\r\n ${({ areas }) => areas && `grid-template-areas: ${formatAreas(areas)}`};\r\n ${({ justifyContent }) => justifyContent && `justify-content: ${justifyContent}`};\r\n ${({ alignContent }) => alignContent && `align-content: ${alignContent}`};\r\n`;\r\n\r\nexport type CellProps = {\r\n className: string;\r\n width: number;\r\n height: number;\r\n top: number | string;\r\n left: number | string;\r\n middle: boolean;\r\n center: boolean;\r\n area: string;\r\n};\r\nexport const Cell = styled(SuperDiv)>`\r\n height: 100%;\r\n min-width: 0;\r\n grid-column-end: ${({ width = 1 }) => `span ${width}`};\r\n grid-row-end: ${({ height = 1 }) => `span ${height}`};\r\n ${({ left }) => left && `grid-column-start: ${left}`};\r\n ${({ top }) => top && `grid-row-start: ${top}`};\r\n ${({ center }) => center && `text-align: center`};\r\n ${({ area }) => area && `grid-area: ${area}`};\r\n ${/* prettier-ignore */\r\n ({ middle }) => middle && `\r\n display: inline-flex;\r\n flex-flow: column wrap;\r\n justify-content: center;\r\n justify-self: stretch;\r\n `};\r\n`;\r\n\r\nexport const AppHeader: any = styled(Box)`\r\n height: 0;\r\n min-height: 100px;\r\n @media screen and (min-width: 1040px) {\r\n min-height: 100px;\r\n }\r\n\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: calc(10px + 2vmin);\r\n color: white;\r\n background-position: 0 40%;\r\n max-width: 100%;\r\n margin: 0 auto;\r\n`;\r\n\r\nexport const StyledButton = styled.button`\r\n font-size: 1em;\r\n margin: 1em;\r\n padding: 0.25em 1em;\r\n border-radius: 3px;\r\n background-color: cyan;\r\n\r\n /* Color the border and text with theme.main */\r\n color: ${props => props.theme.main};\r\n border: 2px solid ${props => props.theme.main};\r\n`;\r\n\r\nexport const Uppercase = styled.div`\r\n * {\r\n text-transform: uppercase;\r\n }\r\n`;\r\n\r\nexport const Centered = styled.div`\r\n text-align: center;\r\n`;\r\n\r\nexport interface StyledProps {\r\n pb?: string;\r\n pt?: string;\r\n mt?: string;\r\n mb?: string;\r\n inline?: boolean;\r\n color?: string;\r\n}\r\n//&& bumps up the importance of the style to override global styles. The more you use the higher it will be\r\nexport const Header4 = styled.h4`\r\n text-shadow: rgb(255, 255, 255) 2px 2px 5px;\r\n text-transform: uppercase;\r\n padding-bottom: ${props => props.pb};\r\n padding-top: ${props => props.pt};\r\n margin-top: ${props => props.mt};\r\n margin-bottom: ${props => props.mb};\r\n color: ${props => props.color};\r\n margin: 0px;\r\n font-size: 52px;\r\n font-weight: 700;\r\n display: ${props => (props.inline ? \"inline\" : \"block\")};\r\n`;\r\n\r\nexport const FancyBox = styled(Box)`\r\n display: inline-block;\r\n transition: background-color 0.5s ease-in-out;\r\n &:hover {\r\n background-color: #f2893e;\r\n /* animation: color 4s ease-in-out; */\r\n }\r\n`;\r\n\r\nexport const GridContainer = styled(Box)`\r\n display: grid;\r\n`;\r\n\r\nexport const BoxMiddle = styled(Box)`\r\n text-align: center;\r\n`;\r\n\r\nexport const ShoothillPaper = styled(Box)`\r\n box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 2px 1px -1px rgba(0, 0, 0, 0.12);\r\n /* color: rgba(0, 0, 0, 0.54); */\r\n color: ${props => props.theme.palette.text.secondary};\r\n border-radius: 4px;\r\n transition: box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\r\n`;\r\n\r\nexport const PaperMiddle = styled(ShoothillPaper)`\r\n text-align: center;\r\n`;\r\n\r\nexport const PaperFullHeight = styled(Paper)`\r\n height: 90vh;\r\n padding-left: 10px;\r\n`;\r\n\r\nexport const LinkBox = styled(Box)`\r\n padding: 5px;\r\n cursor: pointer;\r\n`;\r\n\r\nexport const RightSide = styled(CSSGrid)`\r\n overflow: auto;\r\n width: 100%;\r\n height: 90vh;\r\n`;\r\n\r\nexport const BounceAnimation = keyframes`\r\n\t0% { margin-bottom: 0; }\r\n\t50% { margin-bottom: 15px }\r\n\t100% { margin-bottom: 0 }\r\n`;\r\n\r\nexport const DotWrapper = styled.div`\r\n display: flex;\r\n align-items: flex-end;\r\n`;\r\n\r\nexport const Dot = styled.div`\r\n background-color: black;\r\n border-radius: 50%;\r\n width: 10px;\r\n height: 10px;\r\n margin: 0 5px;\r\n /* Animation */\r\n animation: ${BounceAnimation} 0.5s linear infinite;\r\n animation-delay: ${props => props.delay};\r\n`;\r\n\r\nexport const HeaderStyles: any = styled(Box)`\r\n height: 0;\r\n min-height: 80px;\r\n @media screen and (min-width: 1040px) {\r\n min-height: 80px;\r\n }\r\n\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: calc(10px + 2vmin);\r\n color: white;\r\n background-position: 0 40%;\r\n max-width: 100%;\r\n margin: 0 auto;\r\n`;\r\n\r\nexport const Row1040: any = styled(CSSGrid)`\r\n max-width: 1040px;\r\n margin: 0 auto;\r\n padding: 0;\r\n`;\r\n\r\nexport const BtnGrid: any = styled(CSSGrid)`\r\n margin: 0 auto;\r\n button {\r\n max-width: 295px;\r\n }\r\n`;\r\n\r\nexport const LeftBox: any = styled(Box)`\r\n margin: 20px 22px 20px 61px;\r\n @media (max-width: 1040px) {\r\n margin: 10px auto;\r\n max-width: 295px;\r\n }\r\n`;\r\n\r\nexport const RightBox: any = styled(LeftBox)`\r\n margin: 20px 61px 20px 22px;\r\n`;\r\n\r\nexport const Row1076: any = styled(Row1040)`\r\n max-width: 1076px;\r\n`;\r\n\r\nexport const BRFormBox: any = styled(Box)`\r\n width: 100%;\r\n background-color: rgba(255, 255, 255, 0.5);\r\n border-radius: 16px;\r\n border: none;\r\n margin: 30px auto 200px;\r\n @media screen and (max-width: 1024px) {\r\n margin: 0px auto 60px;\r\n }\r\n`;\r\n","import { Grid } from \"@material-ui/core\";\r\nimport styled from \"styled-components\";\r\n\r\nexport interface IComponentProps {\r\n padding?: string;\r\n margin?: string;\r\n fontcolor?: string;\r\n backgroundcolor?: string;\r\n maxWidth?: string;\r\n additionalcss?: string;\r\n}\r\n\r\nexport const GridSpaced: any = styled(Grid)`\r\n padding: ${props => (props.padding !== undefined ? props.padding : \"unset\")};\r\n margin: ${props => (props.margin !== undefined ? props.margin : \"unset\")};\r\n background-color: ${props => (props.backgroundcolor !== undefined ? props.backgroundcolor : \"unset\")};\r\n ${props => props.additionalcss};\r\n`;\r\n\r\nexport const DivWrapper: any = styled.div`\r\n width: 100%;\r\n max-width: ${props => (props.maxWidth !== undefined ? props.maxWidth : \"unset\")};\r\n min-height: 100vh;\r\n height: auto;\r\n background-size: cover;\r\n background-position: center center;\r\n background-color: ${props => (props.backgroundcolor !== undefined ? props.backgroundcolor : \"unset\")};\r\n margin: ${props => (props.margin !== undefined ? props.margin : \"unset\")};\r\n padding: ${props => (props.padding !== undefined ? props.padding : \"unset\")};\r\n background-repeat: no-repeat;\r\n ${props => props.additionalcss};\r\n`;\r\n\r\nexport const DivWrapperNoVH: any = styled(DivWrapper)`\r\n min-height: unset;\r\n`;\r\n\r\nexport const DivWrapperBGFixed: any = styled(DivWrapper)`\r\n background-attachment: fixed;\r\n`;\r\n\r\nexport const FooterWrapper: any = styled(DivWrapper)`\r\n min-height: 1vh;\r\n padding-top: 1px;\r\n padding-bottom: 28px;\r\n\r\n @media (max-width: 767px) {\r\n padding-bottom: 18px;\r\n }\r\n\r\n ${props => props.additionalcss};\r\n`;\r\n\r\nexport const DialogueWrapper: any = styled.div`\r\n border: 10px solid #129bdb;\r\n border-radius: 30px;\r\n text-align: center;\r\n background: #e7f6fe 0% 0% no-repeat padding-box;\r\n color: #464545;\r\n padding: ${props => (props.padding !== undefined ? props.padding : \"20px\")};\r\n margin: ${props => (props.margin !== undefined ? props.margin : \"0 auto\")};\r\n width: 100%;\r\n @media (max-width: 767px) {\r\n width: 335px;\r\n padding: 10px 20px;\r\n }\r\n ${props => props.additionalcss};\r\n`;\r\n\r\nexport const MapWrapper: any = styled(DialogueWrapper)`\r\n border: 5px solid #129bdb;\r\n border-radius: 15px;\r\n overflow: hidden;\r\n width: 660px;\r\n height: 260px;\r\n padding: ${props => (props.padding !== undefined ? props.padding : \"20px\")};\r\n margin: ${props => (props.margin !== undefined ? props.margin : \"0 auto\")};\r\n @media (max-width: 767px) {\r\n width: 100%;\r\n border: none;\r\n border-radius: unset;\r\n padding: 0px;\r\n border-top: solid 5px #129bdb;\r\n border-bottom: solid 5px #129bdb;\r\n height: 256px;\r\n }\r\n`;\r\n\r\ninterface ITitleWrapperProps extends IComponentProps {\r\n thinSubheading?: boolean;\r\n}\r\n\r\nexport const TitleWrapper = styled.div`\r\n text-align: center;\r\n color: #464545;\r\n padding: ${props => (props.padding !== undefined ? props.padding : \"20px\")};\r\n margin: ${props => (props.margin !== undefined ? props.margin : \"0 auto\")};\r\n width: 100%;\r\n background-color: ${props => (props.backgroundcolor !== undefined ? props.backgroundcolor : \"unset\")};\r\n color: ${props => (props.fontcolor !== undefined ? props.fontcolor : \"#ffffff\")};\r\n span {\r\n color: #8cd2f7;\r\n font-weight: 700;\r\n letter-spacing: -0.35px;\r\n }\r\n\r\n h1 {\r\n margin: 15px 0px 27px;\r\n font-size: 32px;\r\n @media (max-width: 767px) {\r\n font-size: 18px;\r\n span {\r\n display: block;\r\n text-align: center;\r\n }\r\n max-width: 280px;\r\n margin: 0 auto 15px;\r\n }\r\n }\r\n\r\n h2 {\r\n font-weight: ${props => (props.thinSubheading ? 100 : \"bold\")};\r\n font-size: 24px;\r\n margin: 0px 0px 20px;\r\n @media (max-width: 767px) {\r\n font-size: 14px;\r\n margin: 0 auto 11px;\r\n max-width: 243px;\r\n }\r\n }\r\n\r\n p {\r\n font-size: 14px;\r\n @media (max-width: 767px) {\r\n font-size: 12px;\r\n width: 270px;\r\n span {\r\n display: block;\r\n text-align: center;\r\n width: 100%;\r\n }\r\n margin: 0px auto 11px;\r\n }\r\n }\r\n ${props => props.additionalcss};\r\n`;\r\n\r\nexport const TitleWrapper2 = styled(TitleWrapper)`\r\n h2 {\r\n margin: 15px 0 0;\r\n font-size: 32px;\r\n @media (max-width: 767px) {\r\n font-size: 18px;\r\n span {\r\n display: block;\r\n text-align: center;\r\n }\r\n max-width: 324px;\r\n margin: 0 auto 30px;\r\n }\r\n }\r\n\r\n h3 {\r\n font-weight: ${props => (props.thinSubheading ? 100 : \"bold\")};\r\n font-size: 24px;\r\n margin: 0px 0px 20px;\r\n @media (max-width: 767px) {\r\n font-size: 14px;\r\n max-width: 234px;\r\n margin: 0 auto 11px;\r\n }\r\n }\r\n`;\r\n\r\nexport const H3WithProp: any = styled.h3`\r\n font-size: 24px;\r\n font-weight: 700;\r\n text-align: center;\r\n @media (max-width: 767px) {\r\n font-size: 14px;\r\n max-width: 234px;\r\n margin: 0 auto 11px;\r\n }\r\n padding: ${props => (props.padding !== undefined ? props.padding : \"20px\")};\r\n margin: ${props => (props.margin !== undefined ? props.margin : \"0 auto\")};\r\n ${props => props.additionalcss};\r\n`;\r\n\r\nexport const SignUpWrapper: any = styled.div`\r\n border: 10px solid #129bdb;\r\n border-radius: 30px;\r\n text-align: center;\r\n background: #e7f6fe 0% 0% no-repeat padding-box;\r\n color: #464545;\r\n font-size: 16px;\r\n font-family: \"Montserrat\", Arial, Helvetica, sans-serif;\r\n font-weight: 500;\r\n padding: 20px;\r\n margin: 0 auto;\r\n width: 100%;\r\n span {\r\n color: #129bdb;\r\n font-size: 24px;\r\n font-weight: 700;\r\n letter-spacing: -1.2px;\r\n }\r\n ${props => props.additionalcss};\r\n`;\r\n\r\nexport const StartWrapper: any = styled.div`\r\n border: 10px solid #129bdb;\r\n border-radius: 30px;\r\n background: #e7f6fe 0% 0% no-repeat padding-box;\r\n color: #464545;\r\n font-size: 32px;\r\n font-weight: 500;\r\n font-family: \"Montserrat\", Arial, Helvetica, sans-serif;\r\n letter-spacing: -1.2px;\r\n padding: 30px;\r\n span {\r\n color: #129bdb;\r\n }\r\n ${props => props.additionalcss};\r\n`;\r\n","import React from \"react\";\r\n\r\nlet defaultPrefix = \"id\";\r\nlet lastId = 0;\r\n\r\nexport interface Props {\r\n defaultPrefix?: string;\r\n}\r\n\r\nexport class ResetElementIdGenerator extends React.Component {\r\n public constructor(props: Props) {\r\n super(props);\r\n\r\n lastId = 0;\r\n\r\n if (props.defaultPrefix != null) {\r\n defaultPrefix = props.defaultPrefix;\r\n }\r\n }\r\n\r\n public render() {\r\n return null;\r\n }\r\n}\r\n\r\nexport const getElementId = (prefix?: string) => `${prefix || defaultPrefix}_${++lastId}`;\r\n","import React from \"react\";\r\nimport { Route, Redirect, RouteProps } from \"react-router\";\r\n\r\ninterface Props extends RouteProps {\r\n component?: any;\r\n isAllowed: () => boolean;\r\n}\r\n\r\n// https://tylermcginnis.com/react-router-protected-routes-authentication/\r\n\r\n// const PrivateRoute = (props: Props) => {\r\nexport const PrivateRoute: React.FC = props => {\r\n // EN: Destructure component and RENAME it to Component!\r\n const { isAllowed, component: Component, render, ...rest } = props;\r\n\r\n return (\r\n {\r\n // return isAllowed() && ;\r\n return isAllowed() === true ? (\r\n Component ? (\r\n \r\n ) : render !== undefined ? (\r\n render(props)\r\n ) : null\r\n ) : (\r\n \r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\n// Usage\r\n{\r\n /* ; */\r\n // const redirectStart = props => \r\n}\r\ninterface DProps extends RouteProps {\r\n trueComponent: any;\r\n falseComponent: any;\r\n decisionFunc: any;\r\n}\r\n\r\nexport const DecisionRoute: React.FC = ({ trueComponent, falseComponent, decisionFunc, ...rest }) => {\r\n return ;\r\n};\r\n","import { LocationState } from \"history\";\r\nimport { Context, useContext, useEffect } from \"react\";\r\nimport { __RouterContext, RouteComponentProps, StaticContext } from \"react-router\";\r\nimport { useForceUpdate } from \"./UseForceUpdate\";\r\n\r\ntype AnyContext = Context>;\r\n\r\nconst INCORRECT_VERSION_ERROR: Error = new Error(\"use-react-router may only be used with react-router@^5.\");\r\n\r\nconst MISSING_CONTEXT_ERROR: Error = new Error(\"useReactRouter may only be called within a context.\");\r\n\r\nexport function useRouter

(): RouteComponentProps {\r\n // If this version of react-router does not support Context,\r\n if (!__RouterContext) {\r\n throw INCORRECT_VERSION_ERROR;\r\n }\r\n\r\n // If the react-router Context is not a parent Component,\r\n const context: RouteComponentProps = useContext>((__RouterContext as AnyContext) as Context>);\r\n if (!context) {\r\n throw MISSING_CONTEXT_ERROR;\r\n }\r\n\r\n const forceUpdate: VoidFunction = useForceUpdate();\r\n useEffect((): VoidFunction => context.history.listen(forceUpdate), [context]);\r\n return context;\r\n}\r\n","import { useState } from \"react\";\r\nexport const useForceUpdate = () => {\r\n const [, setIt] = useState(false);\r\n return () => setIt(it => !it);\r\n};\r\n","import { useState, useEffect } from \"react\";\r\n\r\ninterface WindowDimensions {\r\n innerWidth: number | null;\r\n innerHeight: number | null;\r\n outerWidth: number | null;\r\n outerHeight: number | null;\r\n}\r\n\r\nconst initialValue: WindowDimensions = {\r\n innerWidth: null,\r\n innerHeight: null,\r\n outerWidth: null,\r\n outerHeight: null,\r\n};\r\n\r\n/**\r\n * useWindowSize\r\n *\r\n * A hook that provides information of the dimensions of the window\r\n *\r\n * @return {WindowDimensions} Dimensions of the window\r\n *\r\n * Usage: const { innerWidth, innerHeight, outerHeight, outerWidth } = useWindowSize();\r\n *\r\n * https://github.com/imbhargav5/rooks/tree/dev/packages/window-size\r\n */\r\nexport function useWindowSize(): WindowDimensions {\r\n const [windowSize, setWindowSize] = useState(initialValue);\r\n\r\n function fetchWindowDimensionsAndSave() {\r\n setWindowSize({\r\n innerWidth: window.innerWidth,\r\n innerHeight: window.innerHeight,\r\n outerWidth: window.outerWidth,\r\n outerHeight: window.outerHeight,\r\n });\r\n }\r\n\r\n // run on mount\r\n useEffect(() => {\r\n // run only once\r\n fetchWindowDimensionsAndSave();\r\n }, []);\r\n\r\n // set resize handler once on mount and clean before unmount\r\n useEffect(() => {\r\n window.addEventListener(\"resize\", fetchWindowDimensionsAndSave);\r\n return () => {\r\n window.removeEventListener(\"resize\", fetchWindowDimensionsAndSave);\r\n };\r\n }, []);\r\n\r\n return windowSize;\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { StoresInstance } from \"Core/Base\";\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels/ViewModelBase\";\r\n\r\n// Custom\r\nimport { Client, Server } from \"Custom/Globals/AppUrls\";\r\n\r\nexport class HeaderViewModel extends ViewModelBase {\r\n constructor() {\r\n super({});\r\n }\r\n\r\n @action\r\n public logout = async (): Promise => {\r\n try {\r\n await this.Post(Server.Api.Account.Logout);\r\n\r\n // If logout is not successful, there isn't much we can do.\r\n } catch (exception) {\r\n // If logout is not successful, there isn't much we can do.\r\n } finally {\r\n StoresInstance.domain.AccountStore.Logout();\r\n this.history.push(Client.Path.Account.Login);\r\n }\r\n };\r\n\r\n // #region Bolierplate\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { StoresInstance } from \"Core/Base\";\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels/ViewModelBase\";\r\n\r\n// Custom\r\nimport { Client, Server } from \"Custom/Globals/AppUrls\";\r\n\r\nexport class HeaderLogoModel extends ViewModelBase {\r\n constructor() {\r\n super({});\r\n }\r\n\r\n @action\r\n public handleNavBarLogoClick = async (): Promise => {\r\n const propertyId = StoresInstance.domain.AccountStore.PropertyId;\r\n\r\n this.history.push(\"/:propertyId?\".replace(\":propertyId\", propertyId!));\r\n };\r\n\r\n @action\r\n public handleResetLogoClick = async (): Promise => {\r\n this.history.push(Client.Path.Account.Login);\r\n };\r\n\r\n // #region Bolierplate\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n}\r\n","import React, { useState, useContext } from \"react\";\r\nimport { Button, AppBar, Drawer, IconButton, Link, List, Toolbar, Typography } from \"@material-ui/core\";\r\nimport ChevronRightIcon from \"@material-ui/icons/ChevronRight\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport styled from \"styled-components\";\r\n\r\n// Core\r\nimport { useMediaQuery } from \"Core/Utils/Media\";\r\n\r\n// Custom\r\nimport { StoresContext, Stores } from \"Custom/Stores\";\r\nimport { GridSpaced } from \"Custom/StylesAppSpecific/GridHelperStyling\";\r\nimport { HeaderViewModel } from \"Custom/ViewModels/HeaderViewModel\";\r\nimport { HeaderLogoModel } from \"Custom/ViewModels/DashboardSubViewModels/HeaderLogoModel\";\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\n\r\nconst StyledIconButton = styled(IconButton)`\r\n padding: 0;\r\n color: white;\r\n`;\r\n\r\nconst DrawerList = styled(List)`\r\n button,\r\n a {\r\n width: 100%;\r\n }\r\n\r\n .MuiTypography-root {\r\n text-align: center;\r\n color: white;\r\n font-weight: bold;\r\n }\r\n`;\r\n\r\nexport const Header: React.FC = () => {\r\n // #region Code Behind\r\n\r\n const isMobile = !!useMediaQuery(\"screen and (max-width: 767px)\");\r\n const storesContext = useContext(StoresContext);\r\n\r\n const [viewModel] = useState(() => new HeaderViewModel());\r\n const [ViewModels] = useState(() => new HeaderLogoModel());\r\n const [open, setOpen] = useState(false);\r\n const handleDrawerOpen = () => setOpen(true);\r\n const handleDrawerClose = () => setOpen(false);\r\n\r\n // #endregion Code Behind\r\n\r\n const headerOptions = () => {\r\n return (\r\n <>\r\n \r\n \r\n );\r\n };\r\n\r\n return useObserver(() => (\r\n <>\r\n {storesContext.domain.AccountStore.IsLoggedIn ? (\r\n <>\r\n \r\n \r\n {storesContext.domain.AccountStore.IsLoggedIn ? (\r\n <>\r\n

\r\n \"Customer\r\n
\r\n \r\n {isMobile ? (\r\n \r\n \r\n \r\n ) : (\r\n {headerOptions()}\r\n )}\r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {headerOptions()}\r\n
\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n ));\r\n};\r\n","import { useEffect, useState } from \"react\";\r\n\r\nexport const useMediaQuery = (useQuery: string) => {\r\n const query = window.matchMedia(useQuery);\r\n const [match, setMatch] = useState(query.matches);\r\n useEffect(() => {\r\n const handleMatch = (mediaQuery: any) => setMatch(mediaQuery.matches);\r\n query.addListener(handleMatch);\r\n return () => query.removeListener(handleMatch);\r\n });\r\n return match ? true : false;\r\n};\r\n\r\n// usage useMediaQuery( e.g.`screen and (max-width: 30em)` ) returns true/false if device supports it\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { CircularProgress, Fade, Grid, Typography } from \"@material-ui/core\";\r\nimport { useTimeout } from \"Core/Utils\";\r\n\r\ninterface Props {\r\n delayBeforeShow?: number;\r\n loadingText?: string;\r\n}\r\n\r\nexport const Loader = (props: Props) => {\r\n const [show, setShow] = useState(false);\r\n const { start, clear } = useTimeout(() => {\r\n setShow(true);\r\n }, props.delayBeforeShow);\r\n\r\n useEffect(() => {\r\n start();\r\n return () => {\r\n clear();\r\n };\r\n }, []);\r\n\r\n if (show) {\r\n return (\r\n \r\n {\r\n if (el) {\r\n el.style.setProperty(\"flex-direction\", \"column\", \"important\");\r\n }\r\n }}\r\n style={{ flex: 1 }}\r\n container\r\n spacing={0}\r\n alignItems=\"center\"\r\n justify=\"center\"\r\n >\r\n \r\n \r\n \r\n \r\n {props.loadingText}\r\n \r\n \r\n \r\n );\r\n } else return <>;\r\n};\r\n\r\nLoader.defaultProps = {\r\n delayBeforeShow: 0,\r\n loadingText: \"Loading...\",\r\n};\r\n","import { useState, useRef, useEffect } from \"react\";\r\n\r\ninterface UseTimeoutHandler {\r\n start: () => any;\r\n clear: () => any;\r\n stop: () => any;\r\n isActive: boolean;\r\n}\r\n/**\r\n *\r\n * @param cb\r\n * @param timeoutDelayMs\r\n *\r\n * Usage: const { start, clear } = useTimeout(doAlert, 2000);\r\n *\r\n */\r\nfunction useTimeout(cb: () => void, timeoutDelayMs: number = 0): UseTimeoutHandler {\r\n const [isTimeoutActive, setIsTimeoutActive] = useState(false);\r\n const savedRefCallback = useRef<() => any>();\r\n\r\n useEffect(() => {\r\n savedRefCallback.current = cb;\r\n }, [cb]);\r\n\r\n function clear() {\r\n setIsTimeoutActive(false);\r\n }\r\n\r\n function start() {\r\n setIsTimeoutActive(true);\r\n }\r\n\r\n useEffect(() => {\r\n function callback() {\r\n savedRefCallback.current && savedRefCallback.current();\r\n clear();\r\n }\r\n\r\n if (isTimeoutActive) {\r\n const timeout = window.setTimeout(callback, timeoutDelayMs);\r\n return () => {\r\n window.clearTimeout(timeout);\r\n };\r\n }\r\n }, [isTimeoutActive]);\r\n\r\n return {\r\n clear,\r\n start,\r\n stop: clear,\r\n isActive: isTimeoutActive,\r\n };\r\n}\r\n\r\nexport { useTimeout };\r\n","import React from \"react\";\r\nimport { TextField } from \"@material-ui/core\";\r\nimport { TextFieldProps } from \"@material-ui/core/TextField\";\r\n\r\nexport const TextFieldMemo = React.memo((props: TextFieldProps) => {\r\n const { children, ...rest } = props;\r\n return {children};\r\n});\r\n","//EN Do not remove default theme from here\r\nimport \"Custom/StylesAppSpecific/AppStyling\";\r\n\r\n//EN: To support IE 11\r\n// Uncomment the two lines below\r\n// Revert MobX to 4.12.0\r\n// Delete node_modules directory and reinstall\r\n//import \"react-app-polyfill/ie11\";\r\n//import \"react-app-polyfill/stable\";\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport * as MobX from \"mobx\";\r\nimport \"index.scss\";\r\nimport App from \"App\";\r\nimport * as History from \"history\";\r\nimport { StoresInstance } from \"../Custom/Stores\";\r\nimport { getBaseUrl } from \"./Utils/Utils\";\r\nimport { InitViewModel } from \"../Custom/ViewModels/InitViewModel\";\r\nimport { AppErrorBoundary } from \"../AppErrorBoundary\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport { Error2 } from \"./Views/Error2\";\r\nimport { Loader } from \"./Components\";\r\n\r\nMobX.configure({ enforceActions: \"observed\" });\r\n\r\nconst baseUrl: string | undefined = getBaseUrl();\r\nexport const GlobalHistory = History.createBrowserHistory({\r\n basename: baseUrl,\r\n});\r\nGlobalHistory.listen((location: any) => {\r\n if (StoresInstance && StoresInstance.domain) {\r\n StoresInstance.coreStore.PageView(location.pathname);\r\n }\r\n // Use setTimeout to make sure this runs after React Router's own listener\r\n setTimeout(() => {\r\n // Keep default behavior of restoring scroll position when user:\r\n // - clicked back button\r\n // - clicked on a link that programmatically calls `history.goBack()`\r\n // - manually changed the URL in the address bar (here we might want\r\n // to scroll to top, but we can't differentiate it from the others)\r\n if (location.action === \"POP\") {\r\n return;\r\n }\r\n // In all other cases, check fragment/scroll to top\r\n let hash = window.location.hash;\r\n if (hash) {\r\n let element = document.querySelector(hash);\r\n if (element) {\r\n element.scrollIntoView({ block: \"start\", behavior: \"smooth\" });\r\n }\r\n } else {\r\n window.scrollTo(0, 0);\r\n }\r\n });\r\n});\r\n\r\nexport const IsDevMode: boolean = process.env.NODE_ENV === \"development\";\r\n(window as any).isDev = IsDevMode;\r\n// const devTools: JSX.Element | null = isDev ? : null;\r\n\r\ntype Props = {\r\n children: React.ReactNode;\r\n};\r\nexport const CoreIndex: React.FC = (props: Props) => {\r\n const [viewModel] = useState(() => new InitViewModel());\r\n useEffect(() => {\r\n let _ = viewModel.getInitialState();\r\n }, []);\r\n\r\n const getRender = () => {\r\n if (viewModel.IsLoading) {\r\n // EN: Delayed in code behind so we can see the loading text\r\n return ;\r\n } else if (viewModel.IsErrored) {\r\n return ;\r\n }\r\n\r\n if (viewModel.DataReady) {\r\n return {props.children};\r\n }\r\n return <>;\r\n };\r\n\r\n return useObserver(() => {\r\n return <>{getRender()};\r\n });\r\n};\r\n","/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport \"./Error.scss\";\r\nimport { Link as RouterLink } from \"react-router-dom\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Link from \"@material-ui/core/Link\";\r\nimport HomeIcon from \"@material-ui/icons/HomeOutlined\";\r\nimport { defaultTheme } from \"../../Custom/StylesAppSpecific/AppStyling\";\r\n\r\nexport const Container = styled.div`\r\n background-color: #d4d9ed;\r\n text-align: center;\r\n height: 100vh;\r\n\r\n .cont_principal {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n overflow: hidden;\r\n }\r\n .cont_error {\r\n position: absolute;\r\n width: 100%;\r\n height: 300px;\r\n top: 50%;\r\n margin-top: -150px;\r\n }\r\n\r\n .cont_error > h1 {\r\n font-family: \"Lato\", sans-serif;\r\n font-weight: 400;\r\n font-size: 150px;\r\n color: #fff;\r\n position: relative;\r\n left: -100%;\r\n transition: all 0.5s;\r\n }\r\n\r\n .cont_error > p {\r\n font-family: \"Lato\", sans-serif;\r\n font-weight: 300;\r\n font-size: 24px;\r\n letter-spacing: 5px;\r\n color: #9294ae;\r\n position: relative;\r\n left: 100%;\r\n transition: all 0.5s;\r\n transition-delay: 0.5s;\r\n -webkit-transition: all 0.5s;\r\n -webkit-transition-delay: 0.5s;\r\n }\r\n\r\n .cont_aura_1 {\r\n position: absolute;\r\n width: 300px;\r\n height: 120%;\r\n top: 25px;\r\n right: -340px;\r\n background-color: #8a65df;\r\n box-shadow: 0px 0px 60px 20px rgba(137, 100, 222, 0.5);\r\n -webkit-transition: all 0.5s;\r\n transition: all 0.5s;\r\n }\r\n\r\n .cont_aura_2 {\r\n position: absolute;\r\n width: 100%;\r\n height: 300px;\r\n right: -10%;\r\n bottom: -301px;\r\n background-color: #8b65e4;\r\n box-shadow: 0px 0px 60px 10px rgba(131, 95, 214, 0.5), 0px 0px 20px 0px rgba(0, 0, 0, 0.1);\r\n z-index: 5;\r\n transition: all 0.5s;\r\n -webkit-transition: all 0.5s;\r\n }\r\n\r\n .cont_error_active > .cont_error > h1 {\r\n left: 0%;\r\n }\r\n .cont_error_active > .cont_error > p {\r\n left: 0%;\r\n }\r\n\r\n .cont_error_active > .cont_aura_2 {\r\n animation-name: animation_error_2;\r\n animation-duration: 4s;\r\n animation-timing-function: linear;\r\n animation-iteration-count: infinite;\r\n animation-direction: alternate;\r\n transform: rotate(-20deg);\r\n }\r\n .cont_error_active > .cont_aura_1 {\r\n transform: rotate(20deg);\r\n right: -170px;\r\n animation-name: animation_error_1;\r\n animation-duration: 4s;\r\n animation-timing-function: linear;\r\n animation-iteration-count: infinite;\r\n animation-direction: alternate;\r\n }\r\n\r\n @-webkit-keyframes animation_error_1 {\r\n from {\r\n -webkit-transform: rotate(20deg);\r\n transform: rotate(20deg);\r\n }\r\n to {\r\n -webkit-transform: rotate(25deg);\r\n transform: rotate(25deg);\r\n }\r\n }\r\n @-o-keyframes animation_error_1 {\r\n from {\r\n -webkit-transform: rotate(20deg);\r\n transform: rotate(20deg);\r\n }\r\n to {\r\n -webkit-transform: rotate(25deg);\r\n transform: rotate(25deg);\r\n }\r\n }\r\n @-moz-keyframes animation_error_1 {\r\n from {\r\n -webkit-transform: rotate(20deg);\r\n transform: rotate(20deg);\r\n }\r\n to {\r\n -webkit-transform: rotate(25deg);\r\n transform: rotate(25deg);\r\n }\r\n }\r\n @keyframes animation_error_1 {\r\n from {\r\n -webkit-transform: rotate(20deg);\r\n transform: rotate(20deg);\r\n }\r\n to {\r\n -webkit-transform: rotate(25deg);\r\n transform: rotate(25deg);\r\n }\r\n }\r\n`;\r\n\r\nexport const NotFound: React.FC = () => {\r\n return (\r\n \r\n
\r\n
\r\n

The Page you're looking for isn't here.

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import { makeStyles } from \"@material-ui/core\";\r\nimport { Theme } from \"@material-ui/core/styles\";\r\n\r\nexport const ErrorStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n display: \"flex\",\r\n flex: \"1\",\r\n flexDirection: \"column !important\" as \"column\",\r\n justifyContent: \"center\",\r\n textAlign: \"center\",\r\n },\r\n}));\r\n","import { Box, Typography } from \"@material-ui/core\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\n\r\nimport { ErrorStyles } from \"Custom/StylesAppSpecific/ErrorStyling\";\r\n\r\ninterface IProps {\r\n errorText: string;\r\n}\r\n\r\nexport const Error: React.FC = props => {\r\n const errorStyles = ErrorStyles();\r\n\r\n return useObserver(() => (\r\n \r\n There seems to have been a problem\r\n {props.errorText}\r\n \r\n ));\r\n};\r\n","export enum ApiStatus {\r\n loading = 1,\r\n success = 2,\r\n error = 3,\r\n}\r\n","import { darken, lighten, makeStyles, Theme } from \"@material-ui/core\";\r\n\r\nexport const NavigationBarStyles = makeStyles((theme: Theme) => ({\r\n // Root defines the workspace container.\r\n // This is scrollable.\r\n root: {\r\n backgroundColor: \"#F9F9F9\",\r\n borderBottom: \"1px solid #ced4da\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n // The direct child of root is the workpace.\r\n // This is limited in width for desktops.\r\n workspace: {\r\n display: \"flex\",\r\n flex: \"1\",\r\n flexDirection: \"column\",\r\n marginBottom: \"-1px\",\r\n maxWidth: \"1146px\",\r\n \"& > div\": {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n margin: \"55px 13px -5px 13px\",\r\n \"&.cards-container\": {},\r\n \"&.company-logo-container\": {\r\n margin: \"60px 0 48px\",\r\n padding: 0,\r\n },\r\n },\r\n },\r\n titleRow: {\r\n alignItems: \"center\",\r\n backgroundColor: \"#F9F9F9\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n minHeight: \"72px\",\r\n \"& > h5\": {\r\n fontSize: \"16px\",\r\n fontWeight: \"bold\",\r\n padding: \"12px 18px\",\r\n },\r\n },\r\n plotsListDropdown: {\r\n position: \"absolute\",\r\n backgroundColor: \"#ffffff\",\r\n top: \"56px\",\r\n padding: \"10px\",\r\n borderRadius: \"5px\",\r\n boxShadow: \"5px 5px 5px rgb(0 0 0 / 40%)\",\r\n border: \"1px solid #000000\",\r\n \"> div\": {\r\n padding: \"10px 0px\",\r\n },\r\n },\r\n titleParent: {\r\n display: \"flex\",\r\n },\r\n}));\r\n","import { darken, lighten, makeStyles } from \"@material-ui/core\";\r\nimport { Theme } from \"@material-ui/core/styles\";\r\n\r\n/**\r\n * Contains style information common to the dashboard sub-pages.\r\n */\r\nexport const DashboardPageStyles = makeStyles((theme: Theme) => ({\r\n // Root defines the workspace container.\r\n // This is scrollable.\r\n root: {\r\n display: \"flex\",\r\n //flex: \"1\",\r\n justifyContent: \"center\",\r\n overflowY: \"auto\",\r\n },\r\n // The direct child of root is the workpace.\r\n // This is limited in width for desktops.\r\n workspace: {\r\n display: \"flex\",\r\n flex: \"1\",\r\n flexDirection: \"column\",\r\n maxWidth: \"1146px\",\r\n minHeight: \"1px\",\r\n },\r\n titleRow: {\r\n alignItems: \"center\",\r\n backgroundColor: \"#F9F9F9\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n minHeight: \"72px\",\r\n \"& > h5\": {\r\n fontSize: \"16px\",\r\n fontWeight: \"bold\",\r\n padding: \"12px 18px\",\r\n },\r\n },\r\n plotsListDropdown: {\r\n position: \"absolute\",\r\n backgroundColor: \"#ffffff\",\r\n top: \"56px\",\r\n padding: \"10px\",\r\n borderRadius: \"5px\",\r\n boxShadow: \"5px 5px 5px rgb(0 0 0 / 40%)\",\r\n border: \"1px solid #000000\",\r\n \"> div\": {\r\n padding: \"10px 0px\",\r\n },\r\n },\r\n titleParent: {\r\n display: \"flex\",\r\n },\r\n}));\r\n\r\n/**\r\n * Contains style information for the main page.\r\n */\r\nexport const MainPageStyles = makeStyles((theme: Theme) => ({\r\n root: {},\r\n workspace: {},\r\n logoContainer: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n paddingTop: \"13px\",\r\n flex: \"1 0 auto\",\r\n \"& > img\": {\r\n height: \"auto\",\r\n maxWidth: \"100%\",\r\n maxHeight: \"80px\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n maxHeight: \"50px\",\r\n },\r\n },\r\n },\r\n navigateToItem: {\r\n minHeight: \"52px\",\r\n \"& > button\": {\r\n \"& > div.MuiCardContent-root\": {\r\n padding: \"12px 18px\",\r\n },\r\n },\r\n \"&:not(:last-child)\": {\r\n borderBottom: \"1px dashed #ced4da\",\r\n },\r\n },\r\n navigateToPropertyItem: {\r\n minHeight: \"52px\",\r\n \"& > button\": {\r\n \"& > div.MuiCardMedia-root\": {\r\n minHeight: \"274px\",\r\n },\r\n \"& > div.MuiCardContent-root\": {\r\n padding: \"12px 18px\",\r\n },\r\n },\r\n \"&:not(:last-child)\": {\r\n borderBottom: \"1px dashed #ced4da\",\r\n },\r\n },\r\n navigateToArrow: {\r\n alignItems: \"center\",\r\n display: \"flex\",\r\n \"& svg\": {\r\n fill: \"#3aaa35\",\r\n marginLeft: \"-6px\",\r\n marginRight: \"-6px\",\r\n },\r\n },\r\n dropdownArrow: {\r\n alignItems: \"center\",\r\n display: \"flex\",\r\n transform: \"rotate(90deg)\",\r\n marginLeft: \"10px\",\r\n \"& svg\": {\r\n fill: \"#3aaa35\",\r\n marginLeft: \"-6px\",\r\n marginRight: \"-6px\",\r\n fontSize: \"16px\",\r\n },\r\n },\r\n content: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n },\r\n propertyTitleRow: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n marginRight: \"18px\",\r\n },\r\n titleRow: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n flex: \"1\",\r\n justifyContent: \"space-between\",\r\n marginRight: \"18px\",\r\n \"& > div\": {\r\n textAlign: \"right\",\r\n },\r\n },\r\n title: {\r\n fontSize: \"16px\",\r\n fontWeight: \"bold\",\r\n },\r\n subTitleRow: {},\r\n subTitle: {\r\n fontSize: \"10px\",\r\n },\r\n propertySubTitle: {\r\n fontSize: \"12px\",\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n workspace: {\r\n \"& > div\": {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n margin: \"55px 13px -5px 13px\",\r\n\r\n \"&.cards-container\": {\r\n height: \"100%\",\r\n minHeight: \"400px\",\r\n maxHeight: \"750px\",\r\n },\r\n\r\n \"&.company-logo-container\": {\r\n margin: \"60px 0 48px\",\r\n padding: 0,\r\n },\r\n },\r\n },\r\n navigateToItem: {\r\n boxShadow: \"none\",\r\n border: \"1px solid #ced4da !important\",\r\n flex: \"1\",\r\n margin: \"5px\",\r\n borderRadius: \"0\",\r\n backgroundColor: \"#F9F9F9\",\r\n \"&.active\": {\r\n backgroundColor: \"white\",\r\n },\r\n\r\n \"& > button\": {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"stretch\",\r\n\r\n \"& > div.MuiCardMedia-root\": {\r\n minHeight: \"274px\",\r\n flexGrow: 1,\r\n },\r\n \"& > div.MuiCardContent-root\": {\r\n flexDirection: \"column\",\r\n },\r\n },\r\n },\r\n navigateToPropertyItem: {\r\n boxShadow: \"none\",\r\n border: \"1px solid #ced4da !important\",\r\n flex: \"2\",\r\n margin: \"5px\",\r\n borderRadius: \"0\",\r\n backgroundColor: \"#F9F9F9\",\r\n \"&.active\": {\r\n backgroundColor: \"white\",\r\n },\r\n\r\n \"& > button\": {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"stretch\",\r\n\r\n \"& > div.MuiCardContent-root\": {\r\n flexDirection: \"column\",\r\n },\r\n\r\n \"& > div.MuiCardMedia-root\": {\r\n flexGrow: 1,\r\n },\r\n },\r\n },\r\n propertyTitleRow: {\r\n alignItems: \"flex-start\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n marginRight: \"0\",\r\n },\r\n titleRow: {\r\n alignItems: \"flex-start\",\r\n flexDirection: \"row\",\r\n marginRight: \"0\",\r\n },\r\n subTitleRow: {\r\n marginTop: \"10px\",\r\n minHeight: \"48px\",\r\n \"& > p:first-child\": {\r\n fontSize: \"12px\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n },\r\n },\r\n },\r\n}));\r\n\r\nexport const usePageAnimationStyles = makeStyles((theme: Theme) => ({\r\n container: {\r\n position: \"absolute\",\r\n top: \"110px\",\r\n right: 0,\r\n left: 0,\r\n bottom: 0,\r\n borderTop: \"1px solid #CED4DA\",\r\n backgroundColor: \"white\",\r\n transitionTimingFunction: \"ease !important\",\r\n \"& > div\": {\r\n height: \"100%\",\r\n },\r\n },\r\n pageWrapper: {\r\n overflowX: \"hidden\",\r\n position: \"relative\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n backgroundColor: \"#F9F9F9\",\r\n },\r\n },\r\n}));\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\nimport moment, { Moment } from \"moment\";\r\nimport \"moment-timezone\";\r\n\r\n// Core\r\nimport { ModelBase } from \"../../Core/Models/ModelBase\";\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { StoresInstance } from \"Custom/Stores\";\r\n\r\nexport class DashboardModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id = \"\";\r\n\r\n @observable\r\n public choicesModifiedDate: Moment | null = null;\r\n\r\n @observable\r\n public documentsModifiedDate: Moment | null = null;\r\n\r\n @observable\r\n public progressModifiedDate: Moment | null = null;\r\n\r\n @observable\r\n public snagsModifiedDate: Moment | null = null;\r\n\r\n @observable\r\n public inspectionStageModifiedDate: Moment | null = null;\r\n\r\n @observable\r\n public choicesMadePercentage = 0;\r\n\r\n @observable\r\n public documentCount = 0;\r\n\r\n @observable\r\n public snagCount = 0;\r\n\r\n @observable\r\n public developmentName = \"\";\r\n\r\n @observable\r\n public developmentId = \"\";\r\n\r\n @observable\r\n public houseTypeName = \"\";\r\n\r\n @observable\r\n public houseTypeImageUrl = \"\";\r\n\r\n @observable\r\n public houseTypeThumbnailUrl = \"\";\r\n\r\n @observable\r\n public plotNumber = \"\";\r\n\r\n @observable\r\n public progressName = \"\";\r\n\r\n @observable\r\n public availablePlots: AvailablePlotDTO[] = [];\r\n\r\n @observable\r\n public inspectionStageName = \"\";\r\n\r\n @observable\r\n public isChoicesLocked: boolean = false;\r\n\r\n @observable\r\n public isChoicesToPlot: boolean = false;\r\n\r\n @observable\r\n public isReportSnags: boolean = false;\r\n\r\n @observable\r\n public isTargetCompletionVisible: boolean = false;\r\n\r\n @observable\r\n public isViewBuildStages: boolean = false;\r\n\r\n // #endregion Properties\r\n @action\r\n public fromDto = (dto: DashboardModelDTO): void => {\r\n this.id = dto.id;\r\n this.choicesModifiedDate = !isEmptyOrWhitespace(dto.choicesModifiedDateUTC) ? moment.tz(dto.choicesModifiedDateUTC, \"Europe/London\") : null;\r\n this.documentsModifiedDate = !isEmptyOrWhitespace(dto.documentsModifiedDateUTC) ? moment.tz(dto.documentsModifiedDateUTC, \"Europe/London\") : null;\r\n this.progressModifiedDate = !isEmptyOrWhitespace(dto.progressModifiedDateUTC) ? moment.tz(dto.progressModifiedDateUTC, \"Europe/London\") : null;\r\n this.snagsModifiedDate = !isEmptyOrWhitespace(dto.snagsModifiedDateUTC) ? moment.tz(dto.snagsModifiedDateUTC, \"Europe/London\") : null;\r\n this.inspectionStageModifiedDate = !isEmptyOrWhitespace(dto.inspectionStageModifiedDateUTC) ? moment.tz(dto.inspectionStageModifiedDateUTC, \"Europe/London\") : null;\r\n this.choicesMadePercentage = dto.choicesMadePercentage;\r\n this.documentCount = dto.documentCount;\r\n this.snagCount = dto.snagCount;\r\n this.developmentName = dto.developmentName;\r\n this.developmentId = dto.developmentId;\r\n this.houseTypeName = dto.houseTypeName;\r\n this.houseTypeImageUrl = dto.houseTypeImageUrl;\r\n this.houseTypeThumbnailUrl = dto.houseTypeThumbnailUrl;\r\n this.plotNumber = dto.plotNumber;\r\n this.progressName = dto.progressName;\r\n this.availablePlots = dto.availablePlots;\r\n this.inspectionStageName = dto.inspectionStageName;\r\n this.isChoicesLocked = dto.isChoicesLocked;\r\n this.isChoicesToPlot = dto.isChoicesToPlot;\r\n this.isReportSnags = dto.isReportSnags;\r\n this.isTargetCompletionVisible = dto.isTargetCompletionVisible;\r\n this.isViewBuildStages = dto.isViewBuildStages;\r\n };\r\n\r\n public toDto = (): DashboardModelDTO => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n\r\nexport interface DashboardModelDTO {\r\n id: string;\r\n choicesModifiedDateUTC: string;\r\n documentsModifiedDateUTC: string;\r\n progressModifiedDateUTC: string;\r\n snagsModifiedDateUTC: string;\r\n inspectionStageModifiedDateUTC: string;\r\n choicesMadePercentage: number;\r\n documentCount: number;\r\n snagCount: number;\r\n developmentName: string;\r\n developmentId: string;\r\n houseTypeName: string;\r\n houseTypeImageUrl: string;\r\n houseTypeThumbnailUrl: string;\r\n plotNumber: string;\r\n progressName: string;\r\n inspectionStageName: string;\r\n availablePlots: AvailablePlotDTO[];\r\n isInTenYearWarranty: boolean;\r\n isChoicesLocked: boolean;\r\n isChoicesToPlot: boolean;\r\n isReportSnags: boolean;\r\n isTargetCompletionVisible: boolean;\r\n isViewBuildStages: boolean;\r\n}\r\n\r\nexport interface AvailablePlotDTO {\r\n id: string;\r\n plotNumber: string;\r\n developmentName: string;\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ViewModelBase } from \"Core/ViewModels/ViewModelBase\";\r\nimport { FieldType, isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { isNullOrUndefined } from \"util\";\r\n\r\n// Custom\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\nimport { DashboardModel, DashboardModelDTO } from \"Custom/Models/DashboardModel\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { StoresInstance } from \"Custom/Stores\";\r\n\r\n//Pass in as the generic type because we are showing the use of nested classes\r\nexport class DashboardViewModel extends ViewModelBase {\r\n constructor(propertyId?: string) {\r\n super(new DashboardModel());\r\n this.setDecorators(DashboardModel);\r\n\r\n //console.log(\"DASHBOARDVM CONSTRUCTOR: PropertyId\", propertyId);\r\n this.propertyId = propertyId ? propertyId : StoresInstance.domain.AccountStore.PropertyId ? StoresInstance.domain.AccountStore.PropertyId : \"\";\r\n\r\n if (!isEmptyOrWhitespace(this.propertyId)) {\r\n this.loadByPropertyId(this.propertyId!);\r\n } else {\r\n this.load();\r\n }\r\n }\r\n\r\n // #region Properties\r\n\r\n @observable\r\n public propertyId: string = \"\";\r\n\r\n @observable\r\n public showPlotsList = false;\r\n\r\n @observable\r\n public apiStatus: ApiStatus = ApiStatus.loading;\r\n\r\n // #endregion Properties\r\n\r\n // #region Computeds\r\n\r\n @computed\r\n public get getCurrentPropertyId() {\r\n return this.propertyId;\r\n }\r\n\r\n @computed\r\n public get Summary() {\r\n return this.model;\r\n }\r\n\r\n @computed\r\n public get availablePlotOptions() {\r\n return this.model.availablePlots;\r\n }\r\n\r\n @computed\r\n public get isCompleted() {\r\n return false;\r\n }\r\n\r\n @computed\r\n public get canViewSnags() {\r\n return StoresInstance.domain.AccountStore.IsInTenYearWarranty;\r\n }\r\n\r\n @computed\r\n public get canViewReportSnags() {\r\n return this.model.isReportSnags;\r\n }\r\n\r\n @computed\r\n public get canViewBuildStages() {\r\n return this.model.isViewBuildStages;\r\n }\r\n\r\n @computed\r\n public get canViewIsChoicesToPlot() {\r\n return this.model.isChoicesToPlot;\r\n }\r\n\r\n @computed\r\n public get canDisplayCompanyLogo(): boolean {\r\n return !isEmptyOrWhitespace(StoresInstance.domain.AccountStore.CompanyLogo);\r\n }\r\n\r\n @computed\r\n public get companyLogo(): string {\r\n return StoresInstance.domain.AccountStore.CompanyLogo;\r\n }\r\n\r\n @computed\r\n public get ApiStatus(): ApiStatus {\r\n return this.apiStatus;\r\n }\r\n\r\n @computed\r\n public get ChoicesDate(): string {\r\n return isNullOrUndefined(this.model.choicesModifiedDate) ? \"Not available\" : this.model.choicesModifiedDate.format(\"DD/MM/YYYY HH:mm\");\r\n }\r\n\r\n @computed\r\n public get ChoicesSummary(): string {\r\n if (this.model.isChoicesLocked) {\r\n return \"Choices are in view only mode.\";\r\n //todo check best phrasing with devops\r\n } else {\r\n return `${this.model.choicesMadePercentage}% complete`;\r\n }\r\n }\r\n\r\n @computed\r\n public get InspectionDate(): string {\r\n return isNullOrUndefined(this.model.inspectionStageModifiedDate) ? \"Not available\" : this.model.inspectionStageModifiedDate.format(\"DD/MM/YYYY HH:mm\");\r\n }\r\n\r\n @computed\r\n public get InspectionSummary(): string {\r\n return `${this.model.inspectionStageName}`;\r\n }\r\n\r\n @computed\r\n public get ProgressDate(): string {\r\n return isNullOrUndefined(this.model.progressModifiedDate) ? \"Not available\" : this.model.progressModifiedDate.format(\"DD/MM/YYYY HH:mm\");\r\n }\r\n\r\n @computed\r\n public get ProgressSummary(): string {\r\n return isEmptyOrWhitespace(this.model.progressName) ? \"None\" : this.model.progressName;\r\n }\r\n\r\n @computed\r\n public get PropertySummary(): string {\r\n return `Plot ${this.model.plotNumber} ${this.model.developmentName}`;\r\n }\r\n\r\n @computed\r\n public get SnagsDate(): string {\r\n return isNullOrUndefined(this.model.snagsModifiedDate) ? \"Not available\" : this.model.snagsModifiedDate.format(\"DD/MM/YYYY HH:mm\");\r\n }\r\n\r\n @computed\r\n public get SnagsSummary(): string {\r\n return `${this.model.snagCount} snags reported`;\r\n }\r\n\r\n @computed\r\n public get DocumentsDate(): string {\r\n return isNullOrUndefined(this.model.documentsModifiedDate) ? \"Not available\" : this.model.documentsModifiedDate.format(\"DD/MM/YYYY HH:mm\");\r\n }\r\n\r\n @computed\r\n public get DocumentsSummary(): string {\r\n return `${this.model.documentCount} docs uploaded`;\r\n }\r\n\r\n // #endregion Computeds\r\n\r\n // #region Actions\r\n\r\n @action\r\n public setApiStatus(apiStatus: ApiStatus) {\r\n this.apiStatus = apiStatus;\r\n }\r\n\r\n @action\r\n public toggleShowPlotsList = (e: React.MouseEvent) => {\r\n if (this.model.availablePlots.length > 1) {\r\n e.stopPropagation();\r\n\r\n this.showPlotsList = !this.showPlotsList;\r\n }\r\n };\r\n\r\n @computed\r\n public get navigateToChoicesPathname() {\r\n return `/choices/${this.propertyId}`;\r\n }\r\n\r\n @computed\r\n public get navigateToDocumentsPathname() {\r\n return `/documents/${this.propertyId}`;\r\n }\r\n\r\n @computed\r\n public get navigateToProgressPathname() {\r\n return `/progress/${this.propertyId}`;\r\n }\r\n\r\n @computed\r\n public get navigateToPropertyPathname() {\r\n return `/property/${this.propertyId}`;\r\n }\r\n\r\n @computed\r\n public get navigateToSnagsPathname() {\r\n return `/snags/${this.propertyId}`;\r\n }\r\n\r\n @computed\r\n public get navigateToInspectionPathname() {\r\n return `/inspection/${this.propertyId}`;\r\n }\r\n\r\n @action\r\n public changePlot = (id: string) => {\r\n this.history.push(`/${id}`);\r\n };\r\n\r\n private load = async (): Promise => {\r\n this.setApiStatus(ApiStatus.loading);\r\n\r\n try {\r\n const apiResult = await this.Get(Server.Api.Dashboard.Get);\r\n\r\n if (apiResult.wasSuccessful) {\r\n this.model.fromDto(apiResult.payload);\r\n StoresInstance.domain.AccountStore.setPropertyId(apiResult.payload.id);\r\n StoresInstance.domain.AccountStore.setIsInTenYearWarranty(apiResult.payload.isInTenYearWarranty);\r\n this.setApiStatus(ApiStatus.success);\r\n } else {\r\n this.setApiStatus(ApiStatus.error);\r\n }\r\n } catch (exception) {\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n public loadByPropertyId = async (id: string): Promise => {\r\n this.setApiStatus(ApiStatus.loading);\r\n\r\n try {\r\n const apiResult = await this.Get(Server.Api.Dashboard.GetByPropertyId + \"/\" + id);\r\n\r\n if (apiResult.wasSuccessful) {\r\n this.model.fromDto(apiResult.payload);\r\n StoresInstance.domain.AccountStore.setPropertyId(apiResult.payload.id);\r\n StoresInstance.domain.AccountStore.setIsInTenYearWarranty(apiResult.payload.isInTenYearWarranty);\r\n this.setApiStatus(ApiStatus.success);\r\n } else {\r\n this.setApiStatus(ApiStatus.error);\r\n }\r\n } catch (exception) {\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n // #endregion Actions\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { Box, Card, CardActionArea, CardContent, Menu, MenuItem, Typography } from \"@material-ui/core\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport ArrowForwardIosOutlinedIcon from \"@material-ui/icons/ArrowForwardIosOutlined\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\n\r\n// Core\r\nimport { useRouter } from \"Core/Base\";\r\nimport { Loader } from \"Core/Components/Loader\";\r\n\r\n// Custom\r\nimport { Error } from \"Custom/Components/Error\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { NavigationBarStyles } from \"Custom/StylesAppSpecific/NavigationBarStyling\";\r\nimport { MainPageStyles } from \"Custom/StylesAppSpecific/DashboardPagesStyling\";\r\nimport { DashboardViewModel } from \"Custom/ViewModels/DashboardViewModel\";\r\n\r\nexport const NavigationBar: React.FC = () => {\r\n // #region Code Behind\r\n\r\n const router = useRouter();\r\n const theme = useTheme();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"md\")) ? true : false;\r\n\r\n const navigationBarStyles = NavigationBarStyles();\r\n const mainPageStyles = MainPageStyles();\r\n\r\n //console.log(\"NAVIGATIONBARVIEW: PropertyId\", router.match.params);\r\n\r\n const [viewModel] = useState(() => new DashboardViewModel((router.match.params as any).propertyId));\r\n\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n const handleClick = (event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n setAnchorEl(event.currentTarget.parentElement!.parentElement!);\r\n };\r\n\r\n const handleClose = (event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleItemClick = (event: React.MouseEvent, id: string) => {\r\n event.stopPropagation();\r\n setAnchorEl(null);\r\n viewModel.changePlot(id);\r\n };\r\n\r\n const mouseDown = (event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n const renderBusy = () => ;\r\n\r\n const renderError = () => ;\r\n\r\n const renderPropertyItemCardContent = (title: string, subTitle: string) => {\r\n return (\r\n \r\n \r\n \r\n {title}\r\n {viewModel.availablePlotOptions.length > 1 && (\r\n handleClick(e)} onMouseDown={e => mouseDown(e)}>\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {viewModel.availablePlotOptions && (\r\n \r\n {viewModel.availablePlotOptions.map((plot, index) => (\r\n handleItemClick(e, plot.id)} selected={plot.id === viewModel.getCurrentPropertyId}>\r\n {`${plot.plotNumber} ${plot.developmentName}`}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n const renderPropertyItem = (image: string, title: string, subTitle: string, propertyItemPathname: string) => {\r\n return (\r\n \r\n router.history.push(propertyItemPathname)}>{renderPropertyItemCardContent(title, subTitle)}\r\n \r\n );\r\n };\r\n\r\n const renderItemCardContent = (title: string, subTitle: string, date: string) => {\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const renderItem = (image: string, title: string, subTitle: string, date: string, itemPathname: string) => {\r\n return (\r\n \r\n router.history.push(itemPathname)}>{renderItemCardContent(title, subTitle, date)}\r\n \r\n );\r\n };\r\n\r\n const renderItems = () => {\r\n return (\r\n \r\n {renderPropertyItem(viewModel.Summary.houseTypeImageUrl, viewModel.PropertySummary, viewModel.Summary.houseTypeName, viewModel.navigateToPropertyPathname)}\r\n {viewModel.canViewBuildStages &&\r\n renderItem(\"resources/build.png\", \"Build\", viewModel.InspectionSummary, viewModel.InspectionDate, viewModel.navigateToInspectionPathname)}\r\n {renderItem(\"resources/progress.png\", \"Progress\", viewModel.ProgressSummary, viewModel.ProgressDate, viewModel.navigateToProgressPathname)}\r\n {viewModel.canViewIsChoicesToPlot &&\r\n renderItem(\"resources/choices.png\", \"Choices\", viewModel.ChoicesSummary, viewModel.ChoicesDate, viewModel.navigateToChoicesPathname)}\r\n {renderItem(\"resources/documents.png\", \"Documents\", viewModel.DocumentsSummary, viewModel.DocumentsDate, viewModel.navigateToDocumentsPathname)}\r\n {viewModel.canViewSnags &&\r\n viewModel.canViewReportSnags &&\r\n renderItem(\"resources/snags.png\", \"Snags\", viewModel.SnagsSummary, viewModel.SnagsDate, viewModel.navigateToSnagsPathname)}\r\n \r\n );\r\n };\r\n\r\n return useObserver(() =>\r\n isDesktop ? (\r\n \r\n \r\n {viewModel.ApiStatus === ApiStatus.success && {renderItems()}}\r\n {viewModel.ApiStatus === ApiStatus.loading && {renderBusy()}}\r\n {viewModel.ApiStatus === ApiStatus.error && {renderError()}}\r\n \r\n \r\n ) : (\r\n \r\n ),\r\n );\r\n};\r\n","import React, { useEffect } from \"react\";\r\n\r\ninterface IProps {\r\n title: string;\r\n}\r\n\r\nexport const PageTitle: React.FC = props => {\r\n useEffect(() => {\r\n document.title = props.title;\r\n }, [props.title]);\r\n\r\n return ;\r\n};\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\nexport class DocumentModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id = \"\";\r\n\r\n @observable\r\n public documentName = \"\";\r\n\r\n @observable\r\n public documentUrl = \"\";\r\n\r\n @observable\r\n public subCategoryName = \"\";\r\n\r\n @observable\r\n public type = 0;\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: DocumentModelDTO): void => {\r\n this.id = dto.id;\r\n this.documentName = dto.documentName;\r\n this.documentUrl = dto.documentUrl;\r\n this.subCategoryName = dto.subCategoryName;\r\n this.type = dto.type;\r\n };\r\n\r\n public toDto = (): DocumentModelDTO => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n\r\nexport interface DocumentModelDTO {\r\n id: string;\r\n documentName: string;\r\n documentUrl: string;\r\n subCategoryName: string;\r\n type: number;\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\n// Custom\r\nimport { DocumentModel, DocumentModelDTO } from \"./DocumentModel\";\r\n\r\nexport class DocumentsModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public categoryName = \"\";\r\n\r\n @observable\r\n public documents = observable([]);\r\n\r\n @observable\r\n public canDisplay = false;\r\n\r\n @action\r\n public setCanDisplay = (value: boolean): void => {\r\n this.canDisplay = value;\r\n };\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: DocumentsModelDTO): void => {\r\n this.categoryName = dto.categoryName;\r\n\r\n for (const document of dto.documents) {\r\n const documentModel = new DocumentModel();\r\n\r\n documentModel.fromDto(document);\r\n\r\n this.documents.push(documentModel);\r\n }\r\n };\r\n\r\n public toDto = (): DocumentsModelDTO[] => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n\r\nexport interface DocumentsModelDTO {\r\n categoryName: string;\r\n documents: DocumentModelDTO[];\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\n// Custom\r\nimport { DocumentsModel, DocumentsModelDTO } from \"./DocumentsModel\";\r\n\r\nexport class DocumentCategoriesModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public documentCategories = observable([]);\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: DocumentsModelDTO[]): void => {\r\n for (const documentCategory of dto) {\r\n const documentsModel = new DocumentsModel();\r\n\r\n documentsModel.fromDto(documentCategory);\r\n\r\n this.documentCategories.push(documentsModel);\r\n }\r\n };\r\n\r\n public toDto = (): DocumentsModelDTO[] => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n","export const contentTypeHelper = (type: string) => {\r\n switch (type.toLocaleLowerCase()) {\r\n case \"png\":\r\n return \"image/png\";\r\n\r\n case \"jpg\":\r\n return \"image/jpeg\";\r\n\r\n case \"jpeg\":\r\n return \"image/jpeg\";\r\n\r\n case \"mov\":\r\n return \"video/quicktime\";\r\n\r\n case \"mp4\":\r\n return \"video/mp4\";\r\n\r\n case \"docx\":\r\n return \"application/msword\";\r\n\r\n case \"xlsx\":\r\n return \"application/vnd.ms-excel\";\r\n\r\n case \"pdf\":\r\n return \"application/pdf\";\r\n }\r\n};\r\n","// Libraries\r\nimport { action, computed, observable, runInAction } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\n\r\n// Custom\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\nimport { DocumentCategoriesModel } from \"Custom/Models/DashboardModels/DocumentCategoriesModel\";\r\nimport { DocumentsModelDTO } from \"Custom/Models/DashboardModels/DocumentsModel\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { StoresInstance } from \"../../Stores\";\r\nimport { DocumentModel } from \"Custom/Models/DashboardModels/DocumentModel\";\r\nimport axios from \"axios\";\r\nimport { contentTypeHelper } from \"Custom/Utils/Format/contentTypeHelper\";\r\n\r\nexport class DocumentsViewModel extends ViewModelBase {\r\n constructor(propertyId: string) {\r\n super(new DocumentCategoriesModel());\r\n this.setDecorators(DocumentCategoriesModel);\r\n\r\n //console.log(\"DOCUMENTSVM CONSTRUCTOR: PropertyId\", propertyId);\r\n this.propertyId = propertyId;\r\n\r\n if (propertyId !== null && propertyId !== undefined && propertyId !== \"\") {\r\n this.load(propertyId);\r\n }\r\n }\r\n\r\n // #region Properties\r\n\r\n @observable\r\n public propertyId: string = \"\";\r\n\r\n @observable\r\n public apiStatus: ApiStatus = ApiStatus.loading;\r\n\r\n // #endregion Properties\r\n\r\n // #region Computeds\r\n\r\n @computed\r\n public get DocumentCategories() {\r\n console.table(this.model.documentCategories);\r\n return this.model.documentCategories;\r\n }\r\n\r\n @computed\r\n public get DocumentCategoriesLength() {\r\n return `${this.model.documentCategories.length} docs uploaded`;\r\n }\r\n\r\n @computed\r\n public get DocumentsLength() {\r\n let totalLength = 0;\r\n let docList: DocumentModel[] = [];\r\n\r\n this.model.documentCategories.map(category => {\r\n category.documents.forEach(doc => {\r\n doc.documentUrl && docList.push(doc);\r\n });\r\n\r\n totalLength = docList.length;\r\n });\r\n\r\n return totalLength;\r\n }\r\n\r\n @computed\r\n public get ApiStatus(): ApiStatus {\r\n return this.apiStatus;\r\n }\r\n\r\n @observable\r\n public canDisplay = false;\r\n\r\n @action\r\n public setCanDisplay = (value: boolean): void => {\r\n this.canDisplay = value;\r\n };\r\n\r\n // #endregion Computeds\r\n\r\n // #region Actions\r\n\r\n @action\r\n public setApiStatus(apiStatus: ApiStatus) {\r\n this.apiStatus = apiStatus;\r\n }\r\n\r\n public navigateToDashboard = () => {\r\n this.history.push(`/${this.propertyId}`);\r\n };\r\n\r\n private load = async (id: string): Promise => {\r\n this.setApiStatus(ApiStatus.loading);\r\n\r\n try {\r\n const apiResult = await this.Get(Server.Api.Dashboard.GetDocuments + \"/\" + id);\r\n\r\n if (apiResult.wasSuccessful) {\r\n this.model.fromDto(apiResult.payload);\r\n this.setApiStatus(ApiStatus.success);\r\n } else {\r\n this.setApiStatus(ApiStatus.error);\r\n }\r\n } catch (exception) {\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n public getDocument = async (id: string, fileName: string) => {\r\n this.setApiStatus(ApiStatus.loading);\r\n\r\n let filenameWithoutType = fileName.substring(0, fileName.lastIndexOf(\".\"));\r\n let fileType = fileName.substring(fileName.lastIndexOf(\".\") + 1);\r\n\r\n try {\r\n const apiResult = await axios.get(Server.Api.Dashboard.GetDocument + \"/\" + id, {\r\n responseType: \"blob\",\r\n headers: {\r\n \"Content-Type\": contentTypeHelper(fileType),\r\n },\r\n });\r\n runInAction(() => {\r\n const response = apiResult as any;\r\n const url = window.URL.createObjectURL(new Blob([response.data], { type: contentTypeHelper(fileType) }));\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n link.setAttribute(\"download\", filenameWithoutType + fileName.substring(fileName.lastIndexOf(\".\")));\r\n document.body.appendChild(link);\r\n link.click();\r\n this.setApiStatus(ApiStatus.success);\r\n });\r\n } catch (exception) {\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n // #endregion Actions\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { action, computed, observable, runInAction } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\n\r\n// Custom\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\nimport { DocumentCategoriesModel } from \"Custom/Models/DashboardModels/DocumentCategoriesModel\";\r\nimport { DocumentsModelDTO } from \"Custom/Models/DashboardModels/DocumentsModel\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { StoresInstance } from \"../../Stores\";\r\nimport { DocumentModel } from \"Custom/Models/DashboardModels/DocumentModel\";\r\n\r\nimport { FileDownloadResponse } from \"Custom/Models/FileDownloadResponse\";\r\n\r\nimport axios from \"axios\";\r\nimport { contentTypeHelper } from \"Custom/Utils/Format/contentTypeHelper\";\r\n\r\nexport class DevelopmentDocumentsViewModel extends ViewModelBase {\r\n constructor(propertyId: string) {\r\n super(new DocumentCategoriesModel());\r\n this.setDecorators(DocumentCategoriesModel);\r\n\r\n //console.log(\"DOCUMENTSVM CONSTRUCTOR: PropertyId\", propertyId);\r\n this.propertyId = propertyId;\r\n\r\n if (propertyId !== null && propertyId !== undefined && propertyId !== \"\") {\r\n this.load(propertyId);\r\n }\r\n }\r\n\r\n // #region Properties\r\n\r\n @observable\r\n public propertyId: string = \"\";\r\n\r\n @observable\r\n public apiStatus: ApiStatus = ApiStatus.loading;\r\n\r\n // #endregion Properties\r\n\r\n // #region Computeds\r\n\r\n @computed\r\n public get DocumentCategories() {\r\n console.table(this.model.documentCategories);\r\n return this.model.documentCategories;\r\n }\r\n\r\n @computed\r\n public get DocumentCategoriesLength() {\r\n return `${this.model.documentCategories.length} docs uploaded`;\r\n }\r\n\r\n @computed\r\n public get DocumentsLength() {\r\n let totalLength = 0;\r\n let docList: DocumentModel[] = [];\r\n\r\n this.model.documentCategories.map(category => {\r\n // totalLength += category.documents.length;\r\n category.documents.forEach(doc => {\r\n doc.documentUrl && docList.push(doc);\r\n });\r\n\r\n totalLength = docList.length;\r\n });\r\n\r\n return totalLength;\r\n }\r\n\r\n @computed\r\n public get ApiStatus(): ApiStatus {\r\n return this.apiStatus;\r\n }\r\n\r\n @observable\r\n public canDisplay = false;\r\n\r\n @action\r\n public setCanDisplay = (value: boolean): void => {\r\n this.canDisplay = value;\r\n };\r\n\r\n // #endregion Computeds\r\n\r\n // #region Actions\r\n\r\n @action\r\n public setApiStatus(apiStatus: ApiStatus) {\r\n this.apiStatus = apiStatus;\r\n }\r\n\r\n public navigateToDashboard = () => {\r\n this.history.push(`/${this.propertyId}`);\r\n };\r\n\r\n private load = async (id: string): Promise => {\r\n this.setApiStatus(ApiStatus.loading);\r\n\r\n try {\r\n const apiResult = await this.Get(Server.Api.Dashboard.GetDevelopmentDocuments + \"/\" + id);\r\n\r\n if (apiResult.wasSuccessful) {\r\n this.model.fromDto(apiResult.payload);\r\n this.setApiStatus(ApiStatus.success);\r\n } else {\r\n this.setApiStatus(ApiStatus.error);\r\n }\r\n } catch (exception) {\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n public getDocument = async (id: string, fileName: string) => {\r\n this.setApiStatus(ApiStatus.loading);\r\n let filenameWithoutType = fileName.substring(0, fileName.lastIndexOf(\".\"));\r\n let fileType = fileName.substring(fileName.lastIndexOf(\".\") + 1);\r\n\r\n try {\r\n const apiResult = await axios.get(Server.Api.Dashboard.GetDevelopmentDocument + \"/\" + id, {\r\n responseType: \"blob\",\r\n headers: {\r\n \"Content-Type\": contentTypeHelper(fileType),\r\n },\r\n });\r\n runInAction(() => {\r\n const response = apiResult as any;\r\n const url = window.URL.createObjectURL(new Blob([response.data], { type: contentTypeHelper(fileType) }));\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n link.setAttribute(\"download\", filenameWithoutType + fileName.substring(fileName.lastIndexOf(\".\")));\r\n document.body.appendChild(link);\r\n link.click();\r\n this.setApiStatus(ApiStatus.success);\r\n });\r\n } catch (exception) {\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n // #endregion Actions\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\nexport class PropertyDrawingDocumentModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id = \"\";\r\n\r\n @observable\r\n public fileName = \"\";\r\n\r\n @observable\r\n public documentUrl = \"\";\r\n\r\n @observable\r\n public systemFileName = \"\";\r\n\r\n @observable\r\n public revision = \"\";\r\n\r\n // #endregion Properties\r\n\r\n @computed\r\n public get DocumentName() {\r\n return this.revision ? `${this.systemFileName} - ${this.revision}` : this.systemFileName;\r\n }\r\n\r\n @action\r\n public fromDto = (dto: PropertyDrawingDocumentModelDTO): void => {\r\n this.id = dto.id;\r\n this.fileName = dto.fileName;\r\n this.documentUrl = dto.documentUrl;\r\n this.systemFileName = dto.systemFileName;\r\n this.revision = dto.revision;\r\n };\r\n\r\n public toDto = (): PropertyDrawingDocumentModelDTO => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n\r\nexport interface PropertyDrawingDocumentModelDTO {\r\n id: string;\r\n fileName: string;\r\n documentUrl: string;\r\n systemFileName: string;\r\n revision: string;\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\n// Custom\r\nimport { PropertyDrawingDocumentModel, PropertyDrawingDocumentModelDTO } from \"./PropertyDrawingDocumentModel\";\r\n\r\nexport class PropertyDrawingDocumentsModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public documents = observable([]);\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: PropertyDrawingDocumentsModelDTO): void => {\r\n for (const document of dto.propertyDrawingDocuments) {\r\n const documentModel = new PropertyDrawingDocumentModel();\r\n\r\n documentModel.fromDto(document);\r\n\r\n this.documents.push(documentModel);\r\n }\r\n };\r\n\r\n public toDto = (): PropertyDrawingDocumentsModelDTO[] => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n\r\nexport interface PropertyDrawingDocumentsModelDTO {\r\n propertyDrawingDocuments: PropertyDrawingDocumentModelDTO[];\r\n}\r\n","// Libraries\r\nimport { action, computed, observable, runInAction } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\n\r\n// Custom\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\nimport { PropertyDrawingDocumentsModel } from \"Custom/Models/DashboardModels/PropertyDrawingDocumentsModel\";\r\nimport { PropertyDrawingDocumentsModelDTO } from \"Custom/Models/DashboardModels/PropertyDrawingDocumentsModel\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport axios from \"axios\";\r\nimport { contentTypeHelper } from \"Custom/Utils/Format/contentTypeHelper\";\r\n\r\nexport class PropertyDrawingDocumentsViewModel extends ViewModelBase {\r\n constructor(propertyId: string) {\r\n super(new PropertyDrawingDocumentsModel());\r\n this.setDecorators(PropertyDrawingDocumentsModel);\r\n\r\n //console.log(\"DOCUMENTSVM CONSTRUCTOR: PropertyId\", propertyId);\r\n // this.developmentId = developmentId;\r\n this.propertyId = propertyId;\r\n\r\n if (propertyId !== null && propertyId !== undefined && propertyId !== \"\") {\r\n this.load(propertyId);\r\n }\r\n }\r\n\r\n // #region Properties\r\n\r\n @observable\r\n public developmentId: string = \"\";\r\n\r\n @observable\r\n public propertyId: string = \"\";\r\n\r\n @observable\r\n public apiStatus: ApiStatus = ApiStatus.loading;\r\n\r\n // #endregion Properties\r\n\r\n // #region Computeds\r\n\r\n @computed\r\n public get Documents() {\r\n console.table(this.model.documents);\r\n return this.model.documents;\r\n }\r\n\r\n @computed\r\n public get DocumentsLength() {\r\n return `${this.model.documents.length} docs uploaded`;\r\n }\r\n\r\n @computed\r\n public get ApiStatus(): ApiStatus {\r\n return this.apiStatus;\r\n }\r\n\r\n // @observable\r\n // public canDisplay = false;\r\n\r\n // @action\r\n // public setCanDisplay = (value: boolean): void => {\r\n // this.canDisplay = value;\r\n // };\r\n\r\n // #endregion Computeds\r\n\r\n // #region Actions\r\n\r\n @action\r\n public setApiStatus(apiStatus: ApiStatus) {\r\n this.apiStatus = apiStatus;\r\n }\r\n\r\n public navigateToDashboard = () => {\r\n this.history.push(`/${this.propertyId}`);\r\n };\r\n\r\n private load = async (id: string): Promise => {\r\n this.setApiStatus(ApiStatus.loading);\r\n\r\n try {\r\n const apiResult = await this.Get(Server.Api.Dashboard.GetPropertyDrawingDocuments + \"/\" + id);\r\n\r\n if (apiResult.wasSuccessful) {\r\n this.model.fromDto(apiResult.payload);\r\n this.setApiStatus(ApiStatus.success);\r\n } else {\r\n this.setApiStatus(ApiStatus.error);\r\n }\r\n } catch (exception) {\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n public getDocument = async (id: string, fileName: string) => {\r\n this.setApiStatus(ApiStatus.loading);\r\n\r\n let filenameWithoutType = fileName.substring(0, fileName.lastIndexOf(\".\"));\r\n let fileType = fileName.substring(fileName.lastIndexOf(\".\") + 1);\r\n\r\n try {\r\n //const apiResult = await this.Get(Server.Api.Dashboard.GetPropertyDrawingDocument + \"/\" + id);\r\n const apiResult = await axios.get(Server.Api.Dashboard.GetPropertyDrawingDocument + \"/\" + id, {\r\n responseType: \"blob\",\r\n headers: {\r\n \"Content-Type\": contentTypeHelper(fileType),\r\n },\r\n });\r\n runInAction(() => {\r\n const response = apiResult as any;\r\n const url = window.URL.createObjectURL(new Blob([response.data], { type: contentTypeHelper(fileType) }));\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n link.setAttribute(\"download\", filenameWithoutType + fileName.substring(fileName.lastIndexOf(\".\")));\r\n document.body.appendChild(link);\r\n link.click();\r\n this.setApiStatus(ApiStatus.success);\r\n });\r\n } catch (exception) {\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n // #endregion Actions\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { Box, Card, CardActionArea, CardContent, CardMedia, Menu, MenuItem, Typography } from \"@material-ui/core\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport ArrowForwardIosOutlinedIcon from \"@material-ui/icons/ArrowForwardIosOutlined\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\n\r\n// Core\r\nimport { useRouter } from \"Core/Base\";\r\nimport { Loader } from \"Core/Components/Loader\";\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\n\r\n// Custom\r\nimport { Error } from \"Custom/Components/Error\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { DashboardPageStyles, MainPageStyles, usePageAnimationStyles } from \"Custom/StylesAppSpecific/DashboardPagesStyling\";\r\nimport { DashboardViewModel } from \"Custom/ViewModels/DashboardViewModel\";\r\nimport { DocumentsViewModel } from \"Custom/ViewModels/DashboardSubViewModels/DocumentsViewModel\";\r\nimport { DevelopmentDocumentsViewModel } from \"Custom/ViewModels/DashboardSubViewModels/DevelopmentDocumentsViewModel\";\r\nimport { PropertyDrawingDocumentsViewModel } from \"Custom/ViewModels/DashboardSubViewModels/PropertyDrawingDocumentsViewModel\";\r\n\r\nexport const Dashboard: React.FC = () => {\r\n // #region Code Behind\r\n\r\n const router = useRouter();\r\n const theme = useTheme();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"md\")) ? true : false;\r\n\r\n const dashboardPageStyles = DashboardPageStyles();\r\n const mainPageStyles = MainPageStyles();\r\n const pageAnimationStyles = usePageAnimationStyles();\r\n const propertyId = (router.match.params as any).propertyId;\r\n\r\n const [viewModel] = useState(() => new DashboardViewModel(propertyId));\r\n const [viewDocumentModel] = useState(() => new DocumentsViewModel(propertyId));\r\n const [developmentViewModel] = useState(() => new DevelopmentDocumentsViewModel(propertyId));\r\n const [viewDrawingDocumentModel] = useState(() => new PropertyDrawingDocumentsViewModel(propertyId));\r\n\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n const handleClick = (event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n setAnchorEl(event.currentTarget.parentElement!.parentElement!);\r\n };\r\n\r\n const handleClose = (event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleItemClick = (event: React.MouseEvent, id: string) => {\r\n event.stopPropagation();\r\n setAnchorEl(null);\r\n viewModel.changePlot(id);\r\n };\r\n\r\n const mouseDown = (event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n const renderBusy = () => ;\r\n\r\n const renderError = () => ;\r\n\r\n const renderPropertyItemCardContentDesktop = (title: string, subTitle: string) => {\r\n const hasSubtitle = !isEmptyOrWhitespace(subTitle);\r\n return (\r\n \r\n \r\n \r\n {title}\r\n {viewModel.availablePlotOptions.length > 1 && (\r\n handleClick(e)} onMouseDown={e => mouseDown(e)}>\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {hasSubtitle && {subTitle}}\r\n {viewModel.availablePlotOptions && (\r\n \r\n {viewModel.availablePlotOptions.map((plot, index) => (\r\n handleItemClick(e, plot.id)} selected={plot.id === viewModel.getCurrentPropertyId}>\r\n {`${plot.plotNumber} ${plot.developmentName}`}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n const renderPropertyItemCardContentMobile = (title: string, subTitle: string) => {\r\n const hasSubtitle = !isEmptyOrWhitespace(subTitle);\r\n\r\n return (\r\n \r\n handleClick(e)} onMouseDown={e => mouseDown(e)}>\r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n {hasSubtitle && {subTitle}}\r\n \r\n {viewModel.availablePlotOptions && (\r\n \r\n {viewModel.availablePlotOptions.map((plot, index) => (\r\n handleItemClick(e, plot.id)} selected={plot.id === viewModel.getCurrentPropertyId}>\r\n {`${plot.plotNumber} ${plot.developmentName}`}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const renderPropertyItem = (image: string, title: string, subTitle: string, propertyItemPathname: string, thumbnail: string) => {\r\n const hasImage = !isEmptyOrWhitespace(image);\r\n return (\r\n \r\n router.history.push(propertyItemPathname)}>\r\n {isDesktop ? renderPropertyItemCardContentDesktop(title, subTitle) : renderPropertyItemCardContentMobile(title, subTitle)}\r\n {hasImage ? (\r\n \r\n ) : isDesktop ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n );\r\n };\r\n\r\n const renderItemCardContentDesktop = (title: string, subTitle: string, date: string) => {\r\n const hasSubtitle = !isEmptyOrWhitespace(subTitle);\r\n const hasDate = !isEmptyOrWhitespace(date);\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n {hasSubtitle && {subTitle}}\r\n {hasDate && {`Last update: ${date}`}}\r\n \r\n \r\n );\r\n };\r\n\r\n const renderItemCardContentMobile = (title: string, subTitle: string, date: string) => {\r\n const hasSubtitle = !isEmptyOrWhitespace(subTitle);\r\n const hasDate = !isEmptyOrWhitespace(date);\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n {hasSubtitle && {subTitle}}\r\n {hasDate && {`Last update: ${date}`}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const renderItem = (image: string, title: string, subTitle: string, date: string, itemPathname: string) => {\r\n const hasImage = !isEmptyOrWhitespace(image) && isDesktop;\r\n\r\n return (\r\n \r\n router.history.push(itemPathname)}>\r\n {isDesktop ? renderItemCardContentDesktop(title, subTitle, date) : renderItemCardContentMobile(title, subTitle, date)}\r\n {hasImage && }\r\n \r\n \r\n );\r\n };\r\n\r\n const renderItems = () => {\r\n const docLength = viewDocumentModel.DocumentsLength;\r\n const documentlength = viewDrawingDocumentModel.model.documents.length;\r\n const devdocumentlength = developmentViewModel.DocumentsLength;\r\n\r\n const totalDocuments = `${docLength + documentlength + devdocumentlength} docs uploaded`;\r\n return (\r\n \r\n {renderPropertyItem(\r\n viewModel.Summary.houseTypeImageUrl,\r\n viewModel.PropertySummary,\r\n viewModel.Summary.houseTypeName,\r\n viewModel.navigateToPropertyPathname,\r\n viewModel.Summary.houseTypeThumbnailUrl,\r\n )}\r\n {viewModel.canViewBuildStages &&\r\n renderItem(\"resources/build.png\", \"Build\", viewModel.InspectionSummary, viewModel.InspectionDate, viewModel.navigateToInspectionPathname)}\r\n {renderItem(\"resources/progress.png\", \"Progress\", viewModel.ProgressSummary, viewModel.ProgressDate, viewModel.navigateToProgressPathname)}\r\n {viewModel.canViewIsChoicesToPlot &&\r\n renderItem(\"resources/choices.png\", \"Choices\", viewModel.ChoicesSummary, viewModel.ChoicesDate, viewModel.navigateToChoicesPathname)}\r\n {renderItem(\"resources/documents.png\", \"Documents\", totalDocuments, viewModel.DocumentsDate, viewModel.navigateToDocumentsPathname)}\r\n {viewModel.canViewSnags &&\r\n viewModel.canViewReportSnags &&\r\n renderItem(\"resources/snags.png\", \"Snags\", viewModel.SnagsSummary, viewModel.SnagsDate, viewModel.navigateToSnagsPathname)}\r\n \r\n );\r\n };\r\n\r\n const renderLogo = () => {\r\n return (\r\n \r\n {viewModel.canDisplayCompanyLogo && \"Company}\r\n \r\n );\r\n };\r\n\r\n return useObserver(() => (\r\n \r\n \r\n {viewModel.ApiStatus === ApiStatus.success && (\r\n \r\n {renderItems()}\r\n {renderLogo()}\r\n \r\n )}\r\n {viewModel.ApiStatus === ApiStatus.loading && {renderBusy()}}\r\n {viewModel.ApiStatus === ApiStatus.error && {renderError()}}\r\n \r\n \r\n ));\r\n};\r\n","import { darken, lighten, makeStyles, Theme } from \"@material-ui/core\";\r\n\r\nexport const CloseButtonStyle = makeStyles((theme: Theme) => ({\r\n root: {\r\n color: \"#dc3546\",\r\n \"& svg\": {\r\n fontSize: \"40px\",\r\n },\r\n },\r\n}));\r\n\r\nexport const CancelButtonStyle = makeStyles((theme: Theme) => ({\r\n root: {\r\n backgroundColor: \"#d1556e\",\r\n color: \"white\",\r\n fontSize: \"10px\",\r\n textTransform: \"none\",\r\n \"&:hover\": {\r\n backgroundColor: darken(\"#d1556e\", 0.2),\r\n },\r\n },\r\n}));\r\n\r\nexport const StandardButtonStyle = makeStyles((theme: Theme) => ({\r\n root: {\r\n backgroundColor: \"#556ed1\",\r\n color: \"white\",\r\n fontSize: \"10px\",\r\n textTransform: \"none\",\r\n \"&:hover\": {\r\n backgroundColor: darken(\"#556ed1\", 0.2),\r\n },\r\n },\r\n}));\r\n\r\nexport const NavButtonStyle = makeStyles((theme: Theme) => ({\r\n root: {\r\n color: \"#556ED1\",\r\n fontSize: \"16px\",\r\n fontWeight: \"bold\",\r\n padding: \"0\",\r\n textDecoration: \"underline\",\r\n textTransform: \"none\",\r\n \"&:hover\": {\r\n color: darken(\"#556ED1\", 0.2),\r\n },\r\n },\r\n}));\r\n","// Libraries\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\n\r\n// Core\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { isNullOrUndefined } from \"util\";\r\n\r\n// Custom\r\nimport { CloseButtonStyle } from \"./ButtonStyling\";\r\n\r\ninterface IProps {\r\n canExecute?: boolean;\r\n className?: string;\r\n execute: () => void;\r\n}\r\n\r\nexport const CloseButton: React.FC = props => {\r\n // #region Code Behind\r\n\r\n const closeButtonStyle = CloseButtonStyle();\r\n\r\n const getClassNames = (): string => {\r\n let classNames = closeButtonStyle.root;\r\n\r\n if (!isEmptyOrWhitespace(props.className)) {\r\n classNames = `${classNames} ${props.className}`;\r\n }\r\n\r\n return classNames;\r\n };\r\n\r\n const isDisabled = (): boolean => {\r\n return !isNullOrUndefined(props.canExecute) ? !props.canExecute : false;\r\n };\r\n\r\n const onClick = (): void => {\r\n props.execute();\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n return useObserver(() => (\r\n \r\n \r\n \r\n ));\r\n};\r\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\r\n//Based on https://github.com/wsmd/react-use-form-state\r\n\r\nimport { FieldType, generateID } from \"../Utils/Utils\";\r\nimport { IObservableArray, isObservableArray, observable, runInAction } from \"mobx\";\r\nimport { ObjPathProxy, getPath } from \"ts-object-path\";\r\nimport { useCallback, useEffect, useMemo, useReducer, useRef, useState } from \"react\";\r\n\r\nimport { EditableInputProps } from \"./EditableInput\";\r\nimport { IModel } from \"../Models\";\r\nimport { IViewModel } from \"../ViewModels\";\r\nimport moment, { Moment } from \"moment\";\r\nimport React from \"react\";\r\n\r\nexport const CHECKBOX = \"checkbox\";\r\nexport const COLOR = \"color\";\r\nexport const DATE = \"date\";\r\nexport const EMAIL = \"email\";\r\nexport const MONTH = \"month\";\r\nexport const NUMBER = \"number\";\r\nexport const PASSWORD = \"password\";\r\nexport const RADIO = \"radio\";\r\nexport const RANGE = \"range\";\r\nexport const SEARCH = \"search\";\r\nexport const SELECT = \"select\";\r\nexport const TEL = \"tel\";\r\nexport const TEXT = \"text\";\r\nexport const TIME = \"time\";\r\nexport const URL = \"url\";\r\nexport const WEEK = \"week\";\r\nexport const MULTISELECT = \"multiselect\";\r\n/**\r\n * @todo add support for datetime-local\r\n */\r\nexport const DATETIME_LOCAL = \"datetime-local\";\r\n/**\r\n * @todo add support for a multiple select\r\n */\r\nexport const MULTIPLE = \"multiple\";\r\n\r\nexport const TYPES = [CHECKBOX, COLOR, DATE, EMAIL, MONTH, NUMBER, PASSWORD, RADIO, RANGE, SEARCH, SELECT, TEL, TEXT, NUMBER, TIME, URL, WEEK, MULTISELECT];\r\n\r\ntype Maybe = T;\r\n\r\ntype TModel = IModel & any;\r\n\r\ninterface InputOptions {\r\n id?: string;\r\n validateOnBlur?: boolean;\r\n}\r\n\r\ninterface Inputs> {\r\n select(fieldName: keyof FieldType, inputOptions?: InputOptions): Omit;\r\n email(fieldName: keyof FieldType, inputOptions?: InputOptions): InputProps;\r\n color(fieldName: keyof FieldType, inputOptions?: InputOptions): InputProps;\r\n password(fieldName: keyof FieldType, inputOptions?: InputOptions): InputProps;\r\n text(fieldName: keyof FieldType | string, inputOptions?: InputOptions): InputProps;\r\n number(fieldName: keyof FieldType, inputOptions?: InputOptions): InputProps;\r\n url(fieldName: keyof FieldType, inputOptions?: InputOptions): InputProps;\r\n search(fieldName: keyof FieldType, inputOptions?: InputOptions): InputProps;\r\n number(fieldName: keyof FieldType, inputOptions?: InputOptions): InputProps;\r\n range(fieldName: keyof FieldType, inputOptions?: InputOptions): InputProps;\r\n tel(fieldName: keyof FieldType, inputOptions?: InputOptions): InputProps;\r\n radio(\r\n fieldName: keyof FieldType,\r\n inputOptions: InputOptions | null,\r\n ): //ownValue: string,\r\n Omit;\r\n checkbox(fieldName: keyof FieldType, inputOptions?: InputOptions): Omit;\r\n date(fieldName: keyof FieldType, inputOptions?: InputOptions): InputProps;\r\n month(fieldName: keyof FieldType, inputOptions?: InputOptions): InputProps;\r\n week(fieldName: keyof FieldType, inputOptions?: InputOptions): InputProps;\r\n time(fieldName: keyof FieldType, inputOptions?: InputOptions): InputProps;\r\n multiselect(fieldName: keyof FieldType, inputOptions?: InputOptions): InputProps;\r\n}\r\n\r\ninterface CheckedProp {\r\n checked: boolean;\r\n}\r\n\r\ninterface InputProps {\r\n onChange(e: any): void;\r\n onBlur(e: any): void;\r\n onFocus(e: any): void;\r\n checked: boolean;\r\n value: string | number | string[] | undefined;\r\n id: string;\r\n type?: string;\r\n error: boolean;\r\n}\r\n\r\nexport function Validation>(viewModel: IViewModel): [ObjPathProxy, Inputs] {\r\n // const formHandler = useState(defaultValues);\r\n //const [mounted, setMounted] = useState(false);\r\n const uniqueId = useRef(generateID());\r\n\r\n // initial mounted flag\r\n useEffect(() => {}, []);\r\n\r\n const validate = (fieldName: keyof FieldType, value: any) => {\r\n // if (props.required) {\r\n // \tif (props.type === \"text\") {\r\n // \t\tlet isValid = value !== \"\";\r\n // \t\tprops.viewModel.setValid(props.fieldName, isValid);\r\n // \t\tprops.viewModel.setError(props.fieldName, `${props.label} is required.`);\r\n // \t\treturn;\r\n // \t}\r\n // }\r\n viewModel.isFieldValid(fieldName, value);\r\n };\r\n\r\n const createPropsGetter = (type: any) => (fieldName: keyof FieldType, inputOptions: InputOptions | null, ownValue: string = \"\") => {\r\n if (!inputOptions) {\r\n inputOptions = {};\r\n }\r\n //EN: If we are passing in a proxy convert it back into an object string path\r\n if (typeof fieldName !== \"string\") {\r\n let p = getPath(fieldName as string);\r\n // @ts-ignore\r\n fieldName = p.join(\".\") as string;\r\n }\r\n\r\n const onDateChange = (value: Moment) => {\r\n if (value) {\r\n let d = value.toDate();\r\n if (!isNaN(d.getTime())) {\r\n viewModel.setValue(fieldName, d);\r\n viewModel.setDirty(fieldName, true);\r\n\r\n if (!inputOptions!.validateOnBlur) {\r\n validate(fieldName, d.toISOString());\r\n }\r\n }\r\n }\r\n };\r\n\r\n const getTargetValue = (e: any): string | boolean | Date | number | null | any[] => {\r\n let value: string | number | boolean | Date | Moment | null;\r\n if (type === \"number\") {\r\n value = e.target.value;\r\n if (isNaN(parseFloat(value as any))) {\r\n return null;\r\n }\r\n return parseFloat(value as any);\r\n } else if (type === \"date\") {\r\n if (e === null) return null;\r\n return (e as Moment).toISOString();\r\n //return (e as Moment).toDate();\r\n } else if (type === \"checkbox\") {\r\n return e.target.checked;\r\n } else {\r\n return e.target.value;\r\n }\r\n };\r\n\r\n const inputProps = {\r\n get name() {\r\n return fieldName;\r\n },\r\n get id() {\r\n if (type !== SELECT && type !== RADIO) {\r\n if (!inputOptions!.id || inputOptions!.id === \"\") {\r\n return fieldName + \"-\" + uniqueId.current;\r\n }\r\n return inputOptions!.id;\r\n }\r\n return inputOptions!.id;\r\n },\r\n get error() {\r\n if (!viewModel.getValid(fieldName)) {\r\n return true;\r\n }\r\n return undefined;\r\n },\r\n get type() {\r\n if (type === DATE || type === TIME) {\r\n return \"text\";\r\n }\r\n if (type !== SELECT && type !== RADIO) {\r\n return type;\r\n }\r\n if (type === RADIO) {\r\n return \"radio\";\r\n }\r\n return undefined;\r\n },\r\n get checked() {\r\n return viewModel.getValue(fieldName);\r\n },\r\n get value() {\r\n const value = viewModel.getValue(fieldName);\r\n if (type === MULTISELECT && isObservableArray(value)) {\r\n return (value as IObservableArray).toJS();\r\n }\r\n return value;\r\n },\r\n get multiple() {\r\n return type === MULTISELECT ? true : undefined;\r\n },\r\n onClick(e: any) {\r\n const { value: targetValue, checked } = e.target;\r\n if (type === RADIO) {\r\n }\r\n },\r\n onChange(e: React.ChangeEvent) {\r\n let value = getTargetValue(e);\r\n const currentValue = viewModel.getValue(fieldName);\r\n\r\n if (type === MULTISELECT && isObservableArray(currentValue)) {\r\n viewModel.setValue(fieldName, observable(value! as any[]));\r\n } else {\r\n if (type === DATE && moment(value! as string).isValid()) {\r\n value = new Date(value! as string);\r\n }\r\n viewModel.setValue(fieldName, value!);\r\n }\r\n\r\n viewModel.setDirty(fieldName, true);\r\n\r\n if (!inputOptions!.validateOnBlur) {\r\n validate(fieldName, value);\r\n }\r\n },\r\n onFocus(e: React.ChangeEvent) {\r\n viewModel.setTouched(fieldName, true);\r\n },\r\n onBlur(e: React.ChangeEvent) {\r\n let value;\r\n if (type !== DATE) {\r\n value = getTargetValue(e);\r\n } else {\r\n value = viewModel.getValue(fieldName);\r\n }\r\n if (inputOptions!.validateOnBlur) {\r\n validate(fieldName, value);\r\n }\r\n },\r\n };\r\n return inputProps;\r\n };\r\n\r\n const typeMethods = TYPES.reduce(\r\n (methods: any, type: string) => ({\r\n ...methods,\r\n [type]: createPropsGetter(type),\r\n }),\r\n {},\r\n );\r\n\r\n return [viewModel.getContext(), typeMethods];\r\n}\r\n","// Libraries\r\nimport MomentUtils from \"@date-io/moment\";\r\nimport {\r\n Box,\r\n Checkbox,\r\n FormControl,\r\n FormControlLabel,\r\n FormHelperText,\r\n FormLabel,\r\n InputLabel,\r\n MenuItem,\r\n OutlinedInputProps,\r\n Radio,\r\n RadioGroup,\r\n Select,\r\n TextField,\r\n InputLabelProps,\r\n} from \"@material-ui/core\";\r\nimport { DatePickerView, KeyboardDatePicker, KeyboardTimePicker, MuiPickersUtilsProvider } from \"@material-ui/pickers\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React, { useEffect, useRef } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { getPath } from \"ts-object-path\";\r\n\r\n// Core\r\nimport { Validation } from \"Core/Components/Validation\";\r\nimport { KeyValuePair } from \"Core/Models/KeyValuePair\";\r\nimport { FieldType, generateID } from \"Core/Utils/Utils\";\r\nimport { IViewModel } from \"Core/ViewModels/IViewModel\";\r\nimport { property } from \"lodash-es\";\r\n\r\nconst Control = styled(FormControl)`\r\n min-width: 120px;\r\n`;\r\n\r\ntype InputProps = {\r\n autoComplete?: string;\r\n autoOk?: boolean;\r\n disablePast?: boolean;\r\n displayEmpty?: boolean;\r\n format?: string;\r\n id?: string;\r\n InputProps?: Partial;\r\n InputLabelProps?: Partial;\r\n mask?: string;\r\n multiline?: boolean;\r\n openTo?: DatePickerView;\r\n placeholder?: string;\r\n rows?: number;\r\n type?: string;\r\n maxLength?: number;\r\n minDateMessage?: string;\r\n renderValue?: (selected: any) => JSX.Element;\r\n views?: DatePickerView[];\r\n};\r\n\r\nexport type EditableInputProps = {\r\n className?: string;\r\n viewModel: IViewModel;\r\n fieldName: keyof FieldType | string;\r\n selectItems?: KeyValuePair[];\r\n inputProps?: InputProps;\r\n required?: boolean;\r\n editMode?: boolean;\r\n validateOnStart?: boolean;\r\n validateOnBlur?: boolean;\r\n fullwidth?: boolean;\r\n type?: \"text\" | \"number\" | \"password\" | \"email\" | \"checkbox\" | \"radio\" | \"select\" | \"date\" | \"time\" | \"datetime\" | \"multiselect\";\r\n label?: string;\r\n onChange?: (event: any) => void;\r\n};\r\n\r\nexport function EditableInput(props: EditableInputProps) {\r\n const rendered = useRef(false);\r\n const { multiline } = props.inputProps!;\r\n const [bind, { text, password, radio, checkbox, date, time, email, select, number, multiselect }] = Validation(props.viewModel);\r\n\r\n let fieldName: keyof FieldType = props.fieldName as any;\r\n\r\n if (typeof props.fieldName !== \"string\") {\r\n let p = getPath(fieldName as string);\r\n\r\n fieldName = p.join(\".\") as any;\r\n }\r\n\r\n useEffect(() => {\r\n rendered.current = true;\r\n\r\n if (props.validateOnStart) {\r\n validate(props.viewModel.getValue(fieldName));\r\n }\r\n }, []);\r\n\r\n const validate = (value: any) => {\r\n props.viewModel.isFieldValid(fieldName, value);\r\n };\r\n\r\n const isInError = (): boolean => {\r\n let isValid = props.viewModel.getValid(fieldName);\r\n if (props.validateOnStart) {\r\n return !isValid;\r\n }\r\n\r\n if (!rendered.current) {\r\n return false;\r\n }\r\n return !isValid;\r\n };\r\n\r\n const renderControl = () => {\r\n if (props.type === \"checkbox\") {\r\n return checkBox();\r\n } else if (props.type === \"radio\") {\r\n return radiocomp();\r\n } else if (props.type === \"select\" || props.type === \"multiselect\") {\r\n return selectField();\r\n } else if (props.type === \"date\") {\r\n return dateComp();\r\n } else if (props.type === \"time\") {\r\n return timeComp();\r\n } else if (props.type === \"password\") {\r\n return textField();\r\n } else {\r\n return textField();\r\n }\r\n };\r\n\r\n const dateComp = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const timeComp = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const radiocomp = () => {\r\n return (\r\n \r\n \r\n {props.label}\r\n \r\n \r\n {props.selectItems!.map((item: KeyValuePair) => {\r\n return } key={generateID()} label={item.key} name={props.label} value={item.value} />;\r\n })}\r\n \r\n {isInError() && {props.viewModel.getError(fieldName)}}\r\n \r\n );\r\n };\r\n\r\n const selectField = () => {\r\n return (\r\n \r\n {props.label}\r\n \r\n {props.selectItems!.map((item: KeyValuePair, index: number) => {\r\n return (\r\n \r\n {item.key}\r\n \r\n );\r\n })}\r\n \r\n {isInError() && {props.viewModel.getError(fieldName)}}\r\n \r\n );\r\n };\r\n\r\n const getTypeOfInput = () => {\r\n if (props.type === \"number\") {\r\n return number(fieldName, { validateOnBlur: props.validateOnBlur });\r\n } else if (props.type === \"password\") {\r\n return password(fieldName, { validateOnBlur: props.validateOnBlur });\r\n } else if (props.type === \"email\") {\r\n return email(fieldName, { validateOnBlur: props.validateOnBlur });\r\n }\r\n\r\n return text(fieldName, { validateOnBlur: props.validateOnBlur });\r\n };\r\n\r\n const textField = () => {\r\n if (props.editMode) {\r\n if (props.onChange) {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n } else {\r\n return {props.label};\r\n }\r\n };\r\n\r\n const checkBox = () => {\r\n return (\r\n <>\r\n }\r\n label={props.label}\r\n style={{ color: isInError() ? \"red\" : \"black\" }}\r\n />\r\n {isInError() && {props.viewModel.getError(fieldName)}}\r\n \r\n );\r\n };\r\n\r\n const formatSelectValue = (value: any) => {\r\n let retval = props.selectItems!.find(a => a.value == value);\r\n if (retval) return retval!.key;\r\n else return \"\";\r\n };\r\n\r\n return useObserver(() => {renderControl()});\r\n}\r\n\r\nEditableInput.defaultProps = {\r\n type: \"text\",\r\n editMode: true,\r\n validateOnStart: false,\r\n validateOnBlur: true,\r\n fullwidth: true,\r\n inputProps: {\r\n multline: undefined,\r\n },\r\n};\r\n","import { ModelBase } from \"../../Core/Models/ModelBase\";\r\nimport * as MobX from \"mobx\";\r\n\r\nexport class BuyModel extends ModelBase {\r\n @MobX.observable\r\n public token: string = \"\";\r\n\r\n @MobX.observable\r\n public name: string = \"\";\r\n\r\n @MobX.observable\r\n public type: string = \"\";\r\n\r\n @MobX.observable\r\n public expiry: Date | null = null;\r\n\r\n @MobX.observable\r\n public security: string = \"\";\r\n\r\n @MobX.observable\r\n public cardNumber: string = \"\";\r\n\r\n @MobX.observable\r\n public propertyId: string = \"\";\r\n\r\n @MobX.observable\r\n public paymentSuccess: boolean | undefined;\r\n\r\n @MobX.observable\r\n public stripeResponse: string = \"\";\r\n\r\n public fromDto = (model: BuyModelDTO) => {};\r\n public toDto = (model: BuyModel) => {};\r\n}\r\n\r\nexport interface BuyModelDTO {\r\n name: string;\r\n type: string;\r\n expiry: Date | null;\r\n security: string;\r\n cardNumber: string;\r\n propertyId: string;\r\n updatedStripePaymentRequests: UpdateStripePaymentRequestDTO[];\r\n paymentType: string;\r\n price: number;\r\n paymentSuccess: boolean;\r\n actionUrl: string;\r\n intentId: string;\r\n stripeResponse: string;\r\n}\r\n\r\nexport interface UpdateStripePaymentRequestDTO {\r\n id: string;\r\n paidByIdentityUserId: string;\r\n}\r\n","import { ViewModelBase } from \"../../Core/ViewModels/ViewModelBase\";\r\nimport { FieldType, getHistory } from \"../../Core/Utils/Utils\";\r\nimport { action, computed, observable } from \"mobx\";\r\nimport { BuyModel, BuyModelDTO } from \"../../Custom/Models/BuyModel\";\r\nimport { IProperty } from \"../Models/IProperty\";\r\nimport { ApiResult } from \"../../Core/Models\";\r\nimport { CardPaymentModel, CardPaymentModelDTO } from \"../Models/CardPaymentModel\";\r\n\r\ndeclare var Stripe: any;\r\n\r\nexport class BuyViewModel extends ViewModelBase {\r\n private static _instance: BuyViewModel;\r\n public static get Instance() {\r\n return this._instance || (this._instance = new this());\r\n }\r\n\r\n @observable\r\n public errorMessage = \"\";\r\n\r\n constructor() {\r\n super(new BuyModel());\r\n this.setDecorators(BuyModel);\r\n getHistory().listen(change => {\r\n const lowerPathname = change.pathname.toLowerCase();\r\n if (!lowerPathname.includes(\"/buy\") && !lowerPathname.includes(\"/checkout\")) {\r\n this.resetPurchase();\r\n }\r\n });\r\n }\r\n\r\n @action\r\n public resetPurchase() {\r\n this.errorMessage = \"\";\r\n this.setValue(\"propertyId\", \"\");\r\n }\r\n\r\n private async doPayment(buyModelDTO: BuyModelDTO): Promise {\r\n try {\r\n this.setErrorMessage(\"\");\r\n const response = await this.Post(\"/api/pay/payment\", buyModelDTO);\r\n if (response && response.wasSuccessful) {\r\n let responsePayload: any = response.payload;\r\n if (responsePayload && responsePayload.actionUrl && responsePayload.actionUrl !== \"\") {\r\n this.setValue(\"paymentSuccess\", false);\r\n this.setValue(\"stripeResponse\", responsePayload.actionUrl + \"||\" + responsePayload.intentId);\r\n return false;\r\n } else {\r\n this.setValue(\"paymentSuccess\", true);\r\n this.setValue(\"stripeResponse\", \"\");\r\n return true;\r\n }\r\n } else if (response && response.errors && response.errors[0] && response.errors[0].message) {\r\n this.setErrorMessage(response.errors[0].message);\r\n this.setValue(\"paymentSuccess\", false);\r\n this.setValue(\"stripeResponse\", \"\");\r\n } else {\r\n this.unknownError();\r\n }\r\n } catch {\r\n this.unknownError();\r\n }\r\n return false;\r\n }\r\n\r\n // public applePay = (result: any, completion: any) => {\r\n // this.doPayment(\"applepay\", result.token.id).then(success => {\r\n // if (success) {\r\n // completion(Stripe.ApplePaySession.STATUS_SUCCESS);\r\n // //getHistory().push(\"/tickets\");\r\n // } else {\r\n // completion(Stripe.ApplePaySession.STATUS_FAILURE);\r\n // }\r\n // });\r\n // };\r\n\r\n // public googlePay = (paymentData: any) => {\r\n // this.doPayment(\"googlepay\", JSON.parse(paymentData.paymentMethodData.tokenizationData.token).id).then(success => {\r\n // if (success) {\r\n // //getHistory().push(\"/tickets\");\r\n // } else {\r\n // }\r\n // });\r\n // };\r\n\r\n public cardPayment = async (buyModelDTO: BuyModelDTO) => {\r\n const success = await this.doPayment(buyModelDTO);\r\n if (success) {\r\n getHistory().push(\"/property/\" + buyModelDTO.propertyId);\r\n } else {\r\n }\r\n };\r\n\r\n private unknownError = () => {\r\n this.setErrorMessage(\"An unknown error occured.\");\r\n };\r\n\r\n @action\r\n public setErrorMessage(msg: string) {\r\n this.errorMessage = msg;\r\n }\r\n\r\n @computed\r\n public get price() {\r\n return this.getPrice(false) as number;\r\n }\r\n\r\n public getPrice(formatted: boolean) {\r\n let price = 0;\r\n price = this.price || 0;\r\n\r\n if (!formatted) return price;\r\n\r\n return `£${price.toFixed(2)}`;\r\n }\r\n\r\n public isFieldValid(fieldName: keyof FieldType, value: any): boolean {\r\n let { isValid, errorMessage } = this.validateDecorators(fieldName);\r\n\r\n this.setError(fieldName, errorMessage);\r\n this.setValid(fieldName, isValid);\r\n\r\n return isValid;\r\n }\r\n\r\n // public afterUpdate(fieldName: keyof FieldType, value: any) {\r\n // if (fieldName === \"route\" && value) {\r\n // this.fetchRouteFares(value);\r\n // }\r\n // }\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n}\r\n","import { ModelBase } from \"../../Core/Models/ModelBase\";\r\nimport * as MobX from \"mobx\";\r\nimport { IsNotEmpty, IsCreditCard, IsNumberString, Length, IsDate } from \"class-validator\";\r\nimport { CARD_TYPE } from \"../../Custom/ViewModels/CardPaymentViewModel\";\r\n\r\nexport class CardPaymentModel extends ModelBase {\r\n @IsNotEmpty({ message: \"Name is required\" })\r\n @MobX.observable\r\n public name: string = \"\";\r\n\r\n @IsNotEmpty({ message: \"Card number is required\" })\r\n @IsCreditCard({ message: \"Card number is invalid\" })\r\n @MobX.observable\r\n public cardNumber: string = \"\";\r\n\r\n @IsNotEmpty({ message: \"Security code is required\" })\r\n @IsNumberString({ message: \"Security code is invalid\" }, { maxDecimalPlaces: 0 })\r\n @Length(3, 3, { message: \"Security code is invalid\" })\r\n @MobX.observable\r\n public security: string = \"\";\r\n\r\n @IsNotEmpty({ message: \"Expiry is required\" })\r\n @IsDate({ message: \"Expiry is invalid\" })\r\n @MobX.observable\r\n public expiry: Date | null = null;\r\n\r\n public type: CARD_TYPE;\r\n\r\n constructor(type: CARD_TYPE) {\r\n super();\r\n\r\n this.type = type;\r\n }\r\n\r\n public fromDto = (model: CardPaymentModelDTO) => {};\r\n public toDto = (model: CardPaymentModel) => {};\r\n}\r\n\r\nexport interface CardPaymentModelDTO {\r\n name: string;\r\n type: string;\r\n expiry: Date | null;\r\n security: string;\r\n cardNumber: string;\r\n}\r\n","// Libraries\r\nimport { action, observable } from \"mobx\";\r\nimport { startOfMonth, isDate, endOfMonth } from \"date-fns\";\r\n\r\n// Core\r\nimport { ViewModelBase } from \"../../Core/ViewModels/ViewModelBase\";\r\nimport { FieldType } from \"../../Core/Utils/Utils\";\r\n\r\n// Custom\r\nimport { CardPaymentModel } from \"../Models/CardPaymentModel\";\r\n\r\nexport enum CARD_TYPE {\r\n Visa = \"visa\",\r\n Mastercard = \"mastercard\",\r\n}\r\n\r\nexport class CardPaymentViewModel extends ViewModelBase {\r\n constructor(type: CARD_TYPE) {\r\n super(new CardPaymentModel(type));\r\n this.setDecorators(CardPaymentModel);\r\n }\r\n\r\n // #region Server Properties and Actions\r\n // #endregion Server Properties and Actions\r\n\r\n // #region Bolierplate\r\n\r\n public afterUpdate: undefined;\r\n\r\n public beforeUpdate(fieldName: keyof FieldType, value: any): any {\r\n if (fieldName === \"expiry\" && isDate(value)) {\r\n value = endOfMonth(value);\r\n }\r\n return value;\r\n }\r\n\r\n public isFieldValid(fieldName: keyof FieldType, value: any): boolean {\r\n let { isValid, errorMessage } = this.validateDecorators(fieldName);\r\n\r\n if (isValid && fieldName === \"cardNumber\") {\r\n if (this.getValue(\"type\") === CARD_TYPE.Visa) {\r\n if (!/^4\\d{3}(| |-)(?:\\d{4}\\1){2}\\d{4}$/.test(value)) {\r\n isValid = false;\r\n errorMessage = \"Invalid card type\";\r\n }\r\n } else if (this.getValue(\"type\") === CARD_TYPE.Mastercard) {\r\n if (!/^5[1-5]\\d{2}(| |-)(?:\\d{4}\\1){2}\\d{4}$/.test(value)) {\r\n isValid = false;\r\n errorMessage = \"Invalid card type\";\r\n }\r\n } else {\r\n isValid = false;\r\n errorMessage = \"Error validating card type\";\r\n }\r\n } else if (fieldName === \"expiry\") {\r\n const month = startOfMonth(new Date());\r\n if (value < month) {\r\n isValid = false;\r\n }\r\n }\r\n\r\n this.setError(fieldName, errorMessage);\r\n this.setValid(fieldName, isValid);\r\n\r\n return isValid;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","import { makeStyles, Theme } from \"@material-ui/core\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const Container = styled.div`\r\n border-top: 1px solid #ced4da;\r\n padding: 10px 50px 20px;\r\n\r\n input:-webkit-autofill {\r\n background-color: #ffffff !important;\r\n }\r\n\r\n p:not(.MuiFormHelperText-root) {\r\n margin-top: 18px;\r\n margin-bottom: 7px;\r\n }\r\n\r\n p.MuiFormHelperText-root:not(.Mui-Error) {\r\n margin-left: 14px;\r\n margin-right: 14px;\r\n }\r\n\r\n .MuiFormControl-marginDense {\r\n margin: 0;\r\n }\r\n\r\n .exp-date {\r\n .MuiFormControl-root {\r\n width: 100%;\r\n\r\n .MuiInputBase-root {\r\n width: 50%;\r\n }\r\n }\r\n\r\n .MuiOutlinedInput-adornedEnd {\r\n padding-right: 5px;\r\n }\r\n\r\n .MuiButtonBase-root {\r\n padding: 0;\r\n }\r\n\r\n .muiinput-underline: before {\r\n border-bottom: 0px;\r\n }\r\n\r\n .muiinput-underline.mui-error: after {\r\n border-bottom: 0px;\r\n }\r\n\r\n .MuiInputBase-input {\r\n border: 1px solid #ced4da !important;\r\n padding: 10px;\r\n }\r\n }\r\n\r\n div.btns {\r\n margin-top: 60px;\r\n /* display: flex;\r\n flex-direction: column; */\r\n\r\n button {\r\n margin-bottom: 15px;\r\n }\r\n }\r\n\r\n #card-input-exp-helper-text {\r\n color: red;\r\n }\r\n`;\r\n\r\nexport const CardPaymentStyles = makeStyles((theme: Theme) => ({\r\n paymentForm: {\r\n backgroundColor: \"#F9F9F9\",\r\n borderTop: \"1px solid #D6D6D6\",\r\n margin: \"0 18px\",\r\n padding: \"16px 18px 24px 18px\",\r\n },\r\n dateControl: {\r\n \"& > div > div\": {\r\n \"& > .MuiIconButton-root\": {\r\n marginRight: \"-20px\",\r\n \"& > .MuiIconButton-label\": {\r\n marginTop: \"3px\",\r\n },\r\n },\r\n },\r\n },\r\n // Grid row spacing override - see note 1\r\n rowGridItemSpacing: {\r\n marginTop: \"-14px\",\r\n },\r\n buttonRowGridItemSpacing: {\r\n display: \"none\",\r\n },\r\n payNowButton: {\r\n width: \"100%\",\r\n },\r\n cancelButton: {\r\n width: \"100%\",\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n // Grid row spacing override - see note 1\r\n rowOverrideSmGridItemSpacing: {\r\n marginTop: \"0\",\r\n },\r\n // Grid row spacing override - see note 1\r\n rowOverrideSmSmallGridItemSpacing: {\r\n marginTop: \"-14px\",\r\n },\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n paymentForm: {\r\n margin: \"0 18px\",\r\n },\r\n // Grid row spacing override - see note 1\r\n rowOverrideSmSmallGridItemSpacing: {\r\n marginTop: \"0\",\r\n },\r\n buttonRowGridItemSpacing: {\r\n display: \"block\",\r\n visibility: \"hidden\",\r\n },\r\n },\r\n}));\r\n\r\n// Note 1\r\n// MUI Grid v4 does not support separate spacing for rows and columns.\r\n// Therefore some override styling has been added on the breakpoints\r\n// xs, sm and md. The overrides need to be applied on a per control\r\n// basis to ensure the alignment works as the layout changes.\r\n//\r\n// This issue is resolved in MUI 5, but that requires a React upgrade\r\n// to v17 which I'm not willing to risk at this time.\r\n","// Libraries\r\nimport { Button } from \"@material-ui/core\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\n\r\n// Core\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { isNullOrUndefined } from \"util\";\r\n\r\n// Custom\r\nimport { CancelButtonStyle } from \"./ButtonStyling\";\r\n\r\ninterface IProps {\r\n canExecute?: boolean;\r\n className?: string;\r\n displayName: string;\r\n execute?: () => void;\r\n}\r\n\r\nexport const CancelButton: React.FC = props => {\r\n // #region Code Behind\r\n\r\n const standardButtonStyle = CancelButtonStyle();\r\n\r\n const getClassNames = (): string => {\r\n let classNames = standardButtonStyle.root;\r\n\r\n if (!isEmptyOrWhitespace(props.className)) {\r\n classNames = `${classNames} ${props.className}`;\r\n }\r\n\r\n return classNames;\r\n };\r\n\r\n const getType = (): \"button\" | \"submit\" | \"reset\" => {\r\n return \"button\";\r\n };\r\n\r\n const isDisabled = (): boolean => {\r\n return !isNullOrUndefined(props.canExecute) ? !props.canExecute : false;\r\n };\r\n\r\n const onClick = (): void => {\r\n if (!isNullOrUndefined(props.execute)) {\r\n props.execute();\r\n }\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n return useObserver(() => (\r\n \r\n ));\r\n};\r\n","// Libraries\r\nimport { Button } from \"@material-ui/core\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\n\r\n// Core\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { isNullOrUndefined } from \"util\";\r\n\r\n// Custom\r\nimport { StandardButtonStyle } from \"./ButtonStyling\";\r\n\r\ninterface IProps {\r\n canExecute?: boolean;\r\n className?: string;\r\n displayName: string;\r\n execute?: () => void;\r\n isSubmit?: boolean;\r\n}\r\n\r\nexport const StandardButton: React.FC = props => {\r\n // #region Code Behind\r\n\r\n const standardButtonStyle = StandardButtonStyle();\r\n\r\n const getClassNames = (): string => {\r\n let classNames = standardButtonStyle.root;\r\n\r\n if (!isEmptyOrWhitespace(props.className)) {\r\n classNames = `${classNames} ${props.className}`;\r\n }\r\n\r\n return classNames;\r\n };\r\n\r\n const getType = (): \"button\" | \"submit\" | \"reset\" => {\r\n return !isNullOrUndefined(props.isSubmit) && props.isSubmit ? \"submit\" : \"button\";\r\n };\r\n\r\n const isDisabled = (): boolean => {\r\n return !isNullOrUndefined(props.canExecute) ? !props.canExecute : false;\r\n };\r\n\r\n const onClick = (): void => {\r\n if (!isNullOrUndefined(props.execute)) {\r\n props.execute();\r\n }\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n return useObserver(() => (\r\n \r\n ));\r\n};\r\n","import { Box, Grid } from \"@material-ui/core\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\n\r\n// Core\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\n\r\n// Custom\r\nimport { EditableInput } from \"Custom/Components/Edits/EditableInput\";\r\nimport { BuyModelDTO, UpdateStripePaymentRequestDTO } from \"Custom/Models/BuyModel\";\r\nimport { CardPaymentModel } from \"Custom/Models/CardPaymentModel\";\r\nimport { BuyViewModel } from \"Custom/ViewModels/BuyViewModel\";\r\nimport { CardPaymentViewModel, CARD_TYPE } from \"Custom/ViewModels/CardPaymentViewModel\";\r\nimport { CardPaymentStyles } from \"./CardPayment.styling\";\r\nimport { CancelButton } from \"../Buttons/CancelButton\";\r\nimport { StandardButton } from \"../Buttons/StandardButton\";\r\n\r\ninterface IProps {\r\n cardType: CARD_TYPE;\r\n totalPrice: number;\r\n propertyToProcessId: string;\r\n reservationRequestId: string | undefined;\r\n orderRequestId: string | undefined;\r\n currentUserId: string | undefined;\r\n onCancel: () => void;\r\n}\r\n\r\nexport const CardPayment: React.FC = ({ cardType, totalPrice, propertyToProcessId, reservationRequestId, orderRequestId, currentUserId, onCancel }) => {\r\n const [viewModel] = React.useState(() => new CardPaymentViewModel(cardType));\r\n const [buyViewModel] = React.useState(() => BuyViewModel.Instance);\r\n const bind = viewModel.getContext();\r\n const cardPaymentStyles = CardPaymentStyles();\r\n const [showStripeAction, setShowStripeAction] = React.useState(false);\r\n const [showStripeUrl, setShowStripeUrl] = React.useState(\"\");\r\n\r\n React.useEffect(() => {\r\n buyViewModel.setErrorMessage(\"\");\r\n }, []);\r\n\r\n const onSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault();\r\n // set the paymentDTO\r\n const requests: UpdateStripePaymentRequestDTO[] = [];\r\n if (reservationRequestId) {\r\n const reservationRequest: UpdateStripePaymentRequestDTO = {\r\n id: reservationRequestId,\r\n paidByIdentityUserId: currentUserId ? currentUserId : \"\",\r\n };\r\n requests.push(reservationRequest);\r\n }\r\n if (orderRequestId) {\r\n const reservationRequest: UpdateStripePaymentRequestDTO = {\r\n id: orderRequestId,\r\n paidByIdentityUserId: currentUserId ? currentUserId : \"\",\r\n };\r\n requests.push(reservationRequest);\r\n }\r\n\r\n const model: BuyModelDTO = {\r\n name: viewModel.model.name,\r\n type: viewModel.model.type,\r\n expiry: viewModel.model.expiry,\r\n security: viewModel.model.security,\r\n cardNumber: viewModel.model.cardNumber,\r\n propertyId: propertyToProcessId,\r\n updatedStripePaymentRequests: requests,\r\n paymentType: \"card\",\r\n price: totalPrice,\r\n paymentSuccess: false,\r\n actionUrl: \"\",\r\n intentId: \"\",\r\n stripeResponse: \"\",\r\n };\r\n\r\n await buyViewModel.cardPayment(model);\r\n const stripeResponse: string = buyViewModel.getValue(\"stripeResponse\");\r\n if (stripeResponse !== \"\") {\r\n let stripeResponseArray = stripeResponse.split(\"||\");\r\n setShowStripeAction(true);\r\n setShowStripeUrl(stripeResponseArray[0]);\r\n const retryStripe = setInterval(async () => {\r\n model.intentId = stripeResponseArray[1];\r\n await buyViewModel.cardPayment(model);\r\n const stripeResponse: string = buyViewModel.getValue(\"stripeResponse\");\r\n if (stripeResponse === \"\") {\r\n clearInterval(retryStripe);\r\n setShowStripeAction(false);\r\n setShowStripeUrl(\"\");\r\n }\r\n }, 5000);\r\n } else {\r\n setShowStripeAction(false);\r\n setShowStripeUrl(\"\");\r\n }\r\n };\r\n\r\n return useObserver(() => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n className={cardPaymentStyles.dateControl}\r\n fieldName={\"expiry\"}\r\n inputProps={{\r\n autoComplete: \"cc-exp\",\r\n autoOk: true,\r\n disablePast: true,\r\n format: \"MM/YY\",\r\n id: \"card-input-exp\",\r\n mask: \"__/__\",\r\n minDateMessage: \"Card is expired\",\r\n openTo: \"month\",\r\n placeholder: \"MM/YY\",\r\n type: \"tel\",\r\n views: [\"year\", \"month\"],\r\n InputProps: {\r\n notched: false,\r\n },\r\n InputLabelProps: {\r\n shrink: true,\r\n },\r\n }}\r\n label=\"Expiry date\"\r\n type=\"date\"\r\n validateOnBlur={false}\r\n viewModel={viewModel}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {showStripeAction && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n )}\r\n {!showStripeAction && (\r\n <>\r\n \r\n \r\n {!isEmptyOrWhitespace(buyViewModel.errorMessage) && (\r\n \r\n

{buyViewModel.errorMessage}

\r\n
\r\n )}\r\n {buyViewModel.IsLoading && (\r\n \r\n

Please stand by...

\r\n
\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n ));\r\n};\r\n","import { makeStyles } from \"@material-ui/core\";\r\n\r\nexport const useStyles = makeStyles(() => ({\r\n lightboxRoot: {\r\n backgroundColor: \"rgba(0, 0, 0, 0.2)\",\r\n },\r\n lightboxPaper: {\r\n backgroundColor: \"black\",\r\n padding: \"8px\",\r\n boxShadow: \"none\",\r\n overflow: \"hidden\",\r\n borderRadius: 0,\r\n },\r\n lightboxImg: {\r\n maxWidth: \"100%\",\r\n alignSelf: \"center\", //iOS fix for stretched image in flex container\r\n },\r\n closeWrapper: {\r\n cursor: \"pointer\",\r\n },\r\n closeTxt: {\r\n fontSize: \"12px\",\r\n color: \"#FFFFFF\",\r\n },\r\n closeIcon: {\r\n fontSize: \"14px\",\r\n color: \"#FFFFFF\",\r\n marginLeft: \"6px\",\r\n },\r\n caption: {\r\n marginTop: \"5px\",\r\n padding: \"5px\",\r\n backgroundColor: \"#FFFFFF\",\r\n },\r\n}));\r\n\r\nexport default useStyles;\r\n","import React from \"react\";\r\nimport * as Mui from \"@material-ui/core\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\n\r\nimport { useStyles } from \"./Lightbox.Style\";\r\n\r\ninterface Props {\r\n isOpen: boolean;\r\n imageUrl: string;\r\n fileName?: string;\r\n imageCaption?: string;\r\n onClose(isOpen: boolean): void;\r\n}\r\n\r\nexport const Lightbox: React.FC = (props: Props) => {\r\n const { isOpen, imageUrl, fileName, onClose, imageCaption } = props;\r\n const styles = useStyles();\r\n\r\n return (\r\n onClose(false)}\r\n fullWidth={true}\r\n maxWidth=\"md\"\r\n BackdropProps={{\r\n classes: {\r\n root: styles.lightboxRoot,\r\n },\r\n }}\r\n PaperProps={{\r\n classes: {\r\n root: styles.lightboxPaper,\r\n },\r\n }}\r\n >\r\n \r\n \"Lightbox\r\n \r\n {imageCaption && (\r\n \r\n
{imageCaption}
\r\n
\r\n )}\r\n \r\n \r\n {fileName}\r\n \r\n onClose(false)}>\r\n \r\n Close\r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Lightbox;\r\n","import { darken, lighten, makeStyles } from \"@material-ui/core\";\r\nimport styled from \"styled-components\";\r\nimport { Typography } from \"@material-ui/core\";\r\nimport { Theme } from \"@material-ui/core/styles\";\r\nimport { withProps } from \"../../../Core/Utils/React/WithProps\";\r\n\r\nexport const HeavyHeader = styled(Typography)`\r\n font-family: \"HelveticaNeue-Heavy\";\r\n letter-spacing: -2.76px;\r\n line-height: 100%;\r\n`;\r\n\r\nconst _HeavyParagraph = styled(HeavyHeader)`\r\n letter-spacing: -0.35px;\r\n margin-bottom: 6px;\r\n margin-top: 15px;\r\n`;\r\n\r\nexport const HeavyParagraph = withProps(_HeavyParagraph)({ component: \"p\" } as any);\r\n\r\nexport const PaymentMethods = styled.div``;\r\n\r\n/**\r\n * Contains style information for the property page.\r\n */\r\nexport const PropertyPageStyles = makeStyles((theme: Theme) => ({\r\n root: {},\r\n introduction: {\r\n margin: \"18px 18px 12px 18px\",\r\n },\r\n introductionTitle: {\r\n fontSize: \"12px\",\r\n },\r\n description: {\r\n margin: \"0px 18px 12px 18px\",\r\n lineClamp: 2,\r\n \"& > div\": {\r\n padding: \"0\",\r\n margin: \"8px 0\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n display: \"-webkit-box\",\r\n WebkitBoxOrient: \"vertical\",\r\n },\r\n \"& > div > a\": {\r\n color: \"#556ED1\",\r\n textDecoration: \"underline\",\r\n cursor: \"pointer\",\r\n },\r\n },\r\n reservation: {\r\n borderTop: \"1px solid #7F7F7F\",\r\n margin: \"0px 18px 5px 18px\",\r\n },\r\n reservationTitle: {\r\n display: \"flex\",\r\n fontSize: \"12px\",\r\n marginBottom: \"11px\",\r\n marginTop: \"10px\",\r\n \"& > div:first-child\": {\r\n fontWeight: \"bold\",\r\n minWidth: \"145px\",\r\n },\r\n },\r\n status: {\r\n borderBottom: \"1px solid #7F7F7F\",\r\n borderTop: \"1px solid #7F7F7F\",\r\n padding: \"9px 18px 8px 18px\",\r\n \"& > div\": {\r\n margin: \"9px 0\",\r\n },\r\n \"& > div > h5\": {\r\n fontSize: \"12px\",\r\n fontWeight: \"bold\",\r\n marginBottom: \"2px\",\r\n textTransform: \"uppercase\",\r\n },\r\n \"& > div > div\": {\r\n display: \"flex\",\r\n },\r\n },\r\n statusTitle: {\r\n display: \"flex\",\r\n flex: \"1\",\r\n fontSize: \"12px\",\r\n marginBottom: \"2px\",\r\n \"& > div:first-child\": {\r\n fontWeight: \"bold\",\r\n minWidth: \"60px\",\r\n },\r\n },\r\n titleRow: {\r\n alignItems: \"center\",\r\n backgroundColor: \"#F9F9F9\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n minHeight: \"72px\",\r\n \"& > div\": {\r\n padding: \"12px 18px\",\r\n \"& > h5\": {\r\n fontSize: \"16px\",\r\n fontWeight: \"bold\",\r\n },\r\n \"& > p\": {\r\n fontSize: \"12px\",\r\n },\r\n },\r\n },\r\n propertyBox: {\r\n margin: \"18px 18px 15px 18px\",\r\n },\r\n propertyImages: {\r\n width: \"100%\",\r\n maxWidth: \"400px\",\r\n },\r\n topMarginWrapper: {\r\n paddingTop: \"24px\",\r\n },\r\n accordion: {\r\n margin: \"0 !important\",\r\n \"& > div.MuiCollapse-container\": {},\r\n },\r\n accordionSummary: {},\r\n [theme.breakpoints.up(\"md\")]: {\r\n titleRow: {\r\n alignItems: \"flex-start\",\r\n background: \"none\",\r\n flexDirection: \"column\",\r\n padding: \"27px 18px 15px 18px\",\r\n \"& > h5\": {\r\n fontSize: \"16px\",\r\n fontWeight: \"bold\",\r\n marginBottom: \"8px\",\r\n },\r\n \"& > p\": {\r\n fontSize: \"12px\",\r\n padding: \"0px\",\r\n },\r\n },\r\n introduction: {\r\n margin: \"27px 18px 15px 18px\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"flex-start\",\r\n flex: \"0 0 auto\",\r\n \"& > button\": {\r\n padding: \"0\",\r\n },\r\n \"& .MuiSvgIcon-root\": {\r\n margin: \"-7px\",\r\n fontSize: \"35px\",\r\n },\r\n },\r\n introductionTitle: {\r\n fontSize: \"22px\",\r\n fontWeight: \"bold\",\r\n },\r\n reservation: {\r\n display: \"flex\",\r\n margin: \"6px 18px 15px 18px\",\r\n flex: \"0 0 auto\",\r\n \"& > div\": {\r\n flex: \"1\",\r\n },\r\n \"& > div:last-child > div > div:first-child\": {\r\n // Overrides the reservationTitle first-child width below.\r\n minWidth: \"115px\",\r\n },\r\n },\r\n reservationTitle: {\r\n fontSize: \"16px\",\r\n marginBottom: \"2px\",\r\n marginRight: \"54px\",\r\n \"& > div:first-child\": {\r\n minWidth: \"200px\",\r\n },\r\n },\r\n status: {\r\n margin: \"8px 18px 12px 18px\",\r\n padding: \"1px 0\",\r\n flex: \"0 0 auto\",\r\n \"& > div\": {\r\n margin: \"10px 54px 8px 0\",\r\n },\r\n display: \"flex\",\r\n \"& > div > h5\": {\r\n fontSize: \"14px\",\r\n marginBottom: \"3px\",\r\n },\r\n \"& > div > div\": {\r\n flexDirection: \"column\",\r\n },\r\n },\r\n statusTitle: {\r\n \"& > div:first-child\": {\r\n minWidth: \"70px\",\r\n },\r\n },\r\n accordion: {\r\n \"& > div.MuiCollapse-container\": {\r\n background: \"none\",\r\n borderTop: \"1px dashed #ced4da\",\r\n \"& div.MuiAccordionDetails-root\": {\r\n padding: \"30px 0px\",\r\n },\r\n },\r\n },\r\n accordionSummary: {\r\n margin: \"0 18px\",\r\n \"& > div.MuiAccordionSummary-content\": {\r\n marginLeft: \"-18px\",\r\n \"& > p\": {\r\n fontSize: \"14px\",\r\n },\r\n },\r\n \"& > div.MuiAccordionSummary-expandIcon\": {\r\n marginRight: \"-18px\",\r\n },\r\n },\r\n },\r\n caption: {\r\n textAlign: \"center\",\r\n },\r\n}));\r\n\r\n/**\r\n * Contains style information for the payment section.\r\n */\r\nexport const PaymentSectionStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n paymentRow: {\r\n backgroundColor: \"#F9F9F9\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n margin: \"16px 18px 0 18px\",\r\n padding: \"16px 18px\",\r\n },\r\n paymentRowTitle: {\r\n fontSize: \"16px\",\r\n fontWeight: \"bold\",\r\n marginBottom: \"6px\",\r\n marginTop: \"12px\",\r\n },\r\n paymentRowSubTitle: {\r\n display: \"flex\",\r\n fontSize: \"12px\",\r\n marginBottom: \"2px\",\r\n justifyContent: \"space-between\",\r\n \"& > div:first-child\": {\r\n fontWeight: \"bold\",\r\n marginRight: \"12px\",\r\n },\r\n },\r\n paymentSelection: {\r\n display: \"flex\",\r\n flexDirection: \"column-reverse\",\r\n },\r\n paymentMethodRow: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n marginBottom: \"4px\",\r\n position: \"sticky\",\r\n },\r\n paymentMethod: {\r\n display: \"flex\",\r\n backgroundColor: \"white\",\r\n border: \"1px solid #D6D6D6\",\r\n borderRadius: \"10px\",\r\n cursor: \"pointer\",\r\n height: \"72px\",\r\n margin: \"2px\",\r\n padding: \"8px\",\r\n width: \"72px\",\r\n },\r\n paymentMethodSelected: {\r\n border: \"2px solid #000\",\r\n cursor: \"default\",\r\n boxShadow: \"2px 2px 15px 2px rgba(105,105,105,0.50)\",\r\n },\r\n paymentMethodSelectionTitle: {\r\n fontSize: \"12px\",\r\n fontWeight: \"bold\",\r\n marginBottom: \"10px\",\r\n textAlign: \"left\",\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n paymentRowSubTitle: {\r\n justifyContent: \"flex-start\",\r\n },\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n paymentRow: {\r\n backgroundColor: \"#F9F9F9\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n },\r\n paymentSelection: {\r\n flexDirection: \"column\",\r\n },\r\n paymentMethodSelectionTitle: {\r\n fontSize: \"10px\",\r\n marginBottom: \"0px\",\r\n textAlign: \"center\",\r\n },\r\n },\r\n}));\r\n\r\n/**\r\n * Contains style information for the payment history section.\r\n */\r\nexport const PaymentHistoryStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n paymentRow: {\r\n backgroundColor: \"#F9F9F9\",\r\n borderTop: \"1px solid #D6D6D6\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flexWrap: \"wrap\",\r\n margin: \"0 18px\",\r\n padding: \"16px 18px\",\r\n },\r\n paymentRowTitle: {\r\n fontSize: \"16px\",\r\n fontWeight: \"bold\",\r\n marginBottom: \"6px\",\r\n marginTop: \"12px\",\r\n },\r\n paymentRowSubTitle: {\r\n display: \"flex\",\r\n fontSize: \"12px\",\r\n marginBottom: \"2px\",\r\n justifyContent: \"space-between\",\r\n \"& > div:first-child\": {\r\n fontWeight: \"bold\",\r\n marginRight: \"12px\",\r\n },\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n paymentRowSubTitle: {\r\n justifyContent: \"flex-start\",\r\n },\r\n },\r\n}));\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\nimport moment, { Moment } from \"moment\";\r\nimport \"moment-timezone\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { StripePaymentRequest } from \"../../../Custom/Models/StripePaymentRequest\";\r\nimport { propertyHouseTypeImages } from \"../PropertyHouseTypeImages\";\r\n\r\nexport class PropertyModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id = \"\";\r\n\r\n @observable\r\n public agreedPurchasePrice = 0.0;\r\n\r\n @observable\r\n public reservationFeePaid = 0.0;\r\n\r\n @observable\r\n public tempChoicesTargetDate: Moment | null = null;\r\n\r\n @observable\r\n public tempChoicesActualDate: Moment | null = null;\r\n\r\n @observable\r\n public addressLine1 = \"\";\r\n\r\n @observable\r\n public addressLine2 = \"\";\r\n\r\n @observable\r\n public developmentContactEmail = \"\";\r\n\r\n @observable\r\n public developmentContactNumber = \"\";\r\n\r\n @observable\r\n public developmentName = \"\";\r\n\r\n @observable\r\n public developmentDescription = \"\";\r\n\r\n @observable\r\n public houseTypeImageUrl = \"\";\r\n\r\n @observable\r\n public houseTypeImageUrlTwo = \"\";\r\n\r\n @observable\r\n public houseTypeName = \"\";\r\n\r\n @observable\r\n public houseTypeDescription = \"\";\r\n\r\n @observable\r\n public numberOfBedrooms = 0;\r\n\r\n @observable\r\n public propertyNumberOfBedrooms = 0;\r\n\r\n @observable\r\n public plotNumber = 0;\r\n\r\n @observable\r\n public plotDescription = \"\";\r\n\r\n @observable\r\n public postcode = \"\";\r\n\r\n @observable\r\n public propertyTypeName = \"\";\r\n\r\n @observable\r\n public plotTypeName = \"\";\r\n\r\n @observable\r\n public salesAgentName = \"\";\r\n\r\n // Build dates\r\n @observable\r\n public buildActualDate: Moment | null = null;\r\n\r\n @observable\r\n public buildTargetDate: Moment | null = null;\r\n\r\n @observable\r\n public buildTargetDateMonth: string | null = null;\r\n\r\n @observable\r\n public buildTargetDateYear: string | null = null;\r\n\r\n // Choice dates\r\n @observable\r\n public choicesActualDate: Moment | null = null;\r\n\r\n @observable\r\n public choicesTargetDate: Moment | null = null;\r\n\r\n // Contract dates\r\n @observable\r\n public contractActualDate: Moment | null = null;\r\n\r\n @observable\r\n public contractTargetDate: Moment | null = null;\r\n\r\n // Legal dates\r\n @observable\r\n public legalActualDate: Moment | null = null;\r\n\r\n @observable\r\n public legalTargetMonth = \"\";\r\n\r\n @observable\r\n public legalTargetYear = \"\";\r\n\r\n @observable\r\n public stripePaymentRequests: StripePaymentRequest[] = [];\r\n\r\n @observable\r\n public hasReservationType1: boolean = false;\r\n\r\n @observable\r\n public hasOrder: boolean = false;\r\n\r\n @observable\r\n public orderCompletedDate: Moment | null = null;\r\n\r\n @observable\r\n public developmentId: string = \"\";\r\n\r\n @observable\r\n public houseTypeId: string = \"\";\r\n\r\n @observable\r\n public propertyHouseTypeImages: propertyHouseTypeImages[] = [];\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: PropertyModelDTO): void => {\r\n this.id = dto.id;\r\n this.agreedPurchasePrice = dto.agreedPurchasePrice;\r\n this.reservationFeePaid = dto.reservationFeePaid;\r\n this.tempChoicesActualDate = !isEmptyOrWhitespace(dto.tempChoicesActualDate) ? moment.tz(dto.tempChoicesActualDate, \"Europe/London\") : null;\r\n this.tempChoicesTargetDate = !isEmptyOrWhitespace(dto.tempChoicesTargetDate) ? moment.tz(dto.tempChoicesTargetDate, \"Europe/London\") : null;\r\n this.addressLine1 = dto.addressLine1;\r\n this.addressLine2 = dto.addressLine2;\r\n this.developmentContactEmail = dto.developmentContactEmail;\r\n this.developmentContactNumber = dto.developmentContactNumber;\r\n this.developmentName = dto.developmentName;\r\n this.developmentDescription = dto.developmentDescription;\r\n this.houseTypeImageUrlTwo = dto.houseTypeImageUrlTwo;\r\n this.houseTypeName = dto.houseTypeName;\r\n this.houseTypeDescription = dto.houseTypeDescription;\r\n this.numberOfBedrooms = dto.numberOfBedrooms;\r\n this.propertyNumberOfBedrooms = dto.propertyNumberOfBedrooms;\r\n this.plotNumber = dto.plotNumber;\r\n this.plotDescription = dto.plotDescription;\r\n this.postcode = dto.postcode;\r\n this.propertyTypeName = dto.propertyTypeName;\r\n this.plotTypeName = dto.plotTypeName;\r\n this.salesAgentName = dto.salesAgentName;\r\n this.houseTypeId = dto.houseTypeId;\r\n this.developmentId = dto.developmentId;\r\n\r\n // Build dates\r\n this.buildActualDate = !isEmptyOrWhitespace(dto.buildActualDateUTC) ? moment.tz(dto.buildActualDateUTC, \"Europe/London\") : null;\r\n this.buildTargetDate = !isEmptyOrWhitespace(dto.buildTargetDateUTC) ? moment.tz(dto.buildTargetDateUTC, \"Europe/London\") : null;\r\n this.buildTargetDateMonth = dto.buildTargetDateMonth;\r\n this.buildTargetDateYear = dto.buildTargetDateYear;\r\n // Choice dates\r\n this.choicesActualDate = !isEmptyOrWhitespace(dto.choicesActualDateUTC) ? moment.tz(dto.choicesActualDateUTC, \"Europe/London\") : null;\r\n this.choicesTargetDate = !isEmptyOrWhitespace(dto.choicesTargetDateUTC) ? moment.tz(dto.choicesTargetDateUTC, \"Europe/London\") : null;\r\n\r\n // Contract dates\r\n this.contractActualDate = !isEmptyOrWhitespace(dto.contractActualDateUTC) ? moment.tz(dto.contractActualDateUTC, \"Europe/London\") : null;\r\n this.contractTargetDate = !isEmptyOrWhitespace(dto.contractTargetDateUTC) ? moment.tz(dto.contractTargetDateUTC, \"Europe/London\") : null;\r\n\r\n // Legal dates\r\n this.legalActualDate = !isEmptyOrWhitespace(dto.legalActualDateUTC) ? moment.tz(dto.legalActualDateUTC, \"Europe/London\") : null;\r\n this.legalTargetMonth = dto.legalTargetMonth;\r\n this.legalTargetYear = dto.legalTargetYear;\r\n\r\n this.stripePaymentRequests = dto.stripePaymentRequests;\r\n\r\n this.hasReservationType1 = dto.hasReservationType1;\r\n this.hasOrder = dto.hasOrder;\r\n this.orderCompletedDate = !isEmptyOrWhitespace(dto.orderCompletedDate) ? moment.tz(dto.orderCompletedDate, \"Europe/London\") : null;\r\n this.propertyHouseTypeImages = dto.propertyHouseTypeImages;\r\n };\r\n\r\n public toDto = (): PropertyModelDTO => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n\r\nexport interface PropertyModelDTO {\r\n id: string;\r\n agreedPurchasePrice: number;\r\n reservationFeePaid: number;\r\n tempChoicesTargetDate: string;\r\n tempChoicesActualDate: string;\r\n addressLine1: string;\r\n addressLine2: string;\r\n developmentContactEmail: string;\r\n developmentContactNumber: string;\r\n developmentName: string;\r\n developmentDescription: string;\r\n houseTypeImageUrl: string;\r\n houseTypeImageUrlTwo: string;\r\n houseTypeName: string;\r\n houseTypeDescription: string;\r\n numberOfBedrooms: number;\r\n propertyNumberOfBedrooms: number;\r\n plotNumber: number;\r\n plotDescription: string;\r\n postcode: string;\r\n propertyTypeName: string;\r\n plotTypeName: string;\r\n salesAgentName: string;\r\n houseTypeId: string;\r\n developmentId: string;\r\n\r\n // Build dates\r\n buildActualDateUTC: string;\r\n buildTargetDateUTC: string;\r\n buildTargetDateMonth: string;\r\n buildTargetDateYear: string;\r\n\r\n // Choice dates\r\n choicesActualDateUTC: string;\r\n choicesTargetDateUTC: string;\r\n\r\n // Contract dates\r\n contractActualDateUTC: string;\r\n contractTargetDateUTC: string;\r\n\r\n // Legal dates\r\n legalActualDateUTC: string;\r\n legalTargetMonth: string;\r\n legalTargetYear: string;\r\n\r\n stripePaymentRequests: StripePaymentRequest[];\r\n\r\n hasReservationType1: boolean;\r\n hasOrder: boolean;\r\n orderCompletedDate: string;\r\n propertyHouseTypeImages: propertyHouseTypeImages[];\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\nimport moment, { Moment } from \"moment\";\r\n\r\n// Core\r\nimport { FieldType, isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\nimport { isNullOrUndefined } from \"util\";\r\nimport { AccountStore } from \"../../Stores/Domain/AccountStores\";\r\n\r\n// Custom\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\nimport { PropertyModel, PropertyModelDTO } from \"Custom/Models/DashboardModels/PropertyModel\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { StoresInstance } from \"Custom/Stores/Stores\";\r\nimport { GlobalSetting } from \"Custom/Models\";\r\n\r\nexport class PropertyViewModel extends ViewModelBase {\r\n constructor(propertyId: string) {\r\n super(new PropertyModel());\r\n this.setDecorators(PropertyModel);\r\n\r\n //console.log(\"PROPERTYVM CONSTRUCTOR: PropertyId\", propertyId);\r\n this.propertyId = propertyId;\r\n\r\n if (propertyId !== null && propertyId !== undefined && propertyId !== \"\") {\r\n this.load(propertyId);\r\n }\r\n }\r\n\r\n // #region Properties\r\n\r\n @observable\r\n public propertyId: string = \"\";\r\n\r\n @observable\r\n public apiStatus: ApiStatus = ApiStatus.loading;\r\n\r\n // #endregion Properties\r\n\r\n // #region Computeds\r\n\r\n @computed\r\n public get Property() {\r\n return this.model;\r\n }\r\n\r\n @computed\r\n public get ApiStatus(): ApiStatus {\r\n return this.apiStatus;\r\n }\r\n\r\n @computed\r\n public get PropertyAddress() {\r\n let address = [this.model.addressLine1, this.model.addressLine2, this.model.postcode].filter(i => !isEmptyOrWhitespace(i)).join(\", \");\r\n\r\n return isEmptyOrWhitespace(address) ? \"No address available for this plot\" : address;\r\n }\r\n\r\n @computed\r\n public get showStripePaymentRequest() {\r\n const setting = StoresInstance.domain.AccountStore.getSettingByType(22);\r\n\r\n if (setting) {\r\n if (setting.settingValue === \"0\") {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n @computed\r\n public get currentUserId() {\r\n return StoresInstance.domain.AccountStore.Id;\r\n }\r\n\r\n @computed\r\n public get hasStripePaymentRequest() {\r\n const hasPendingPaymentRequests = this.model.stripePaymentRequests.filter(p => p.hasPaid === false && p.propertyId === this.model.id);\r\n\r\n if (hasPendingPaymentRequests) {\r\n return hasPendingPaymentRequests.length > 0;\r\n }\r\n return false;\r\n }\r\n\r\n @computed\r\n public get hasPaidStripeReservationPaymentRequest() {\r\n const hasPaidPendingPaymentRequest = this.model.stripePaymentRequests.find(p => p.hasPaid === true && p.propertyId === this.model.id && p.type === 1);\r\n\r\n if (hasPaidPendingPaymentRequest) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n @computed\r\n public get PaidReservationDate() {\r\n const hasPaidPendingPaymentRequest = this.model.stripePaymentRequests.find(p => p.hasPaid === true && p.propertyId === this.model.id && p.type === 1);\r\n\r\n if (hasPaidPendingPaymentRequest) {\r\n let paidDate = moment(hasPaidPendingPaymentRequest.paidDate);\r\n return paidDate.format(\"DD/MM/YYYY\");\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n @computed\r\n public get PaidOrderDate() {\r\n const hasPaidPendingPaymentRequest = this.model.stripePaymentRequests.find(p => p.hasPaid === true && p.propertyId === this.model.id && p.type === 2);\r\n\r\n if (hasPaidPendingPaymentRequest) {\r\n let paidDate = moment(hasPaidPendingPaymentRequest.paidDate);\r\n return paidDate.format(\"DD/MM/YYYY\");\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n @computed\r\n public get hasPaidStripeOrderPaymentRequest() {\r\n const hasPaidPendingPaymentRequest = this.model.stripePaymentRequests.find(p => p.hasPaid === true && p.propertyId === this.model.id && p.type === 2);\r\n\r\n if (hasPaidPendingPaymentRequest) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n @computed\r\n public get getReservationStripePaymentRequest() {\r\n const hasPendingPaymentRequest = this.model.stripePaymentRequests.find(p => p.propertyId === this.model.id && p.type === 1);\r\n\r\n if (hasPendingPaymentRequest) {\r\n return `£${hasPendingPaymentRequest.payment.toLocaleString(\"en-GB\", { minimumFractionDigits: 2 })}`;\r\n }\r\n return \"\";\r\n }\r\n\r\n @computed\r\n public get getPropertyHouseTypeGeneralImages() {\r\n const images = this.model.propertyHouseTypeImages.filter(image => image.imageTypeName === \"General\");\r\n\r\n let i = 1;\r\n let imageLength = images.sort((a, b) => b.ordinal - a.ordinal)[0];\r\n let HouseTypeDevelopmentImage = [\r\n {\r\n imageUrl: \"\",\r\n caption: \"\",\r\n thumbnailImageUrl: \"\",\r\n },\r\n ];\r\n\r\n if (imageLength && imageLength.ordinal) {\r\n while (i <= imageLength.ordinal) {\r\n if (images && images.length > 0) {\r\n const image = this.getHouseTypeImageWithOrdinal(i, \"General\");\r\n if (image && image.imageUrl.length > 0) {\r\n HouseTypeDevelopmentImage.push({ ...image, imageUrl: image.imageUrl, caption: image.caption, thumbnailImageUrl: image.thumbnailImageUrl });\r\n }\r\n const propertyImage = this.getPropertyImage(\"General\", i);\r\n\r\n if (propertyImage && propertyImage.imageUrl) {\r\n HouseTypeDevelopmentImage.push({\r\n imageUrl: propertyImage.imageUrl,\r\n caption: propertyImage.caption,\r\n thumbnailImageUrl: propertyImage.thumbnailImageUrl,\r\n });\r\n }\r\n }\r\n i++;\r\n }\r\n }\r\n\r\n return HouseTypeDevelopmentImage;\r\n }\r\n\r\n @computed\r\n public get getPropertyHouseTypeFloorplanImages() {\r\n const images = this.model.propertyHouseTypeImages.filter(image => image.imageTypeName === \"Floorplan\");\r\n\r\n let i = 1;\r\n let imageLength = images.sort((a, b) => b.ordinal - a.ordinal)[0];\r\n let HouseTypeDevelopmentImage = [\r\n {\r\n imageUrl: \"\",\r\n caption: \"\",\r\n thumbnailImageUrl: \"\",\r\n },\r\n ];\r\n\r\n if (imageLength && imageLength.ordinal) {\r\n while (i <= imageLength.ordinal) {\r\n if (images && images.length > 0) {\r\n const image = this.getHouseTypeImageWithOrdinal(i, \"Floorplan\");\r\n if (image && image.imageUrl.length > 0) {\r\n HouseTypeDevelopmentImage.push({ ...image, imageUrl: image.imageUrl, caption: image.caption, thumbnailImageUrl: image.thumbnailImageUrl });\r\n }\r\n\r\n const propertyImage = this.getPropertyImage(\"Floorplan\", i);\r\n\r\n if (propertyImage && propertyImage.imageUrl) {\r\n HouseTypeDevelopmentImage.push({\r\n imageUrl: propertyImage.imageUrl,\r\n caption: propertyImage.caption,\r\n thumbnailImageUrl: propertyImage.thumbnailImageUrl,\r\n });\r\n }\r\n }\r\n i++;\r\n }\r\n }\r\n\r\n return HouseTypeDevelopmentImage;\r\n }\r\n\r\n @action\r\n private getHouseTypeImageWithOrdinal(ordinal: number, imageType: string) {\r\n const { propertyHouseTypeImages, houseTypeId, developmentId } = this.model;\r\n let imageUrl = \"\";\r\n let caption = \"\";\r\n let thumbnailImageUrl = \"\";\r\n\r\n if (propertyHouseTypeImages && propertyHouseTypeImages.length > 0) {\r\n const developmentImages = propertyHouseTypeImages.filter(\r\n htdi =>\r\n htdi.houseTypeId === houseTypeId &&\r\n htdi.developmentId === developmentId &&\r\n htdi.ordinal === ordinal &&\r\n htdi.imageTypeName === imageType &&\r\n htdi.imageUrl.length > 0,\r\n );\r\n if (developmentImages && developmentImages.length > 0) {\r\n imageUrl = developmentImages[0].imageUrl;\r\n caption = developmentImages[0].caption;\r\n thumbnailImageUrl = developmentImages[0].thumbnailImageUrl;\r\n if (imageUrl) return { imageUrl, caption, thumbnailImageUrl };\r\n }\r\n const houseTypeWithAllImage: { imageUrl: string; caption: string; thumbnailImageUrl: string } = this.gethouseTypeAllImages(ordinal, imageType);\r\n imageUrl = houseTypeWithAllImage.imageUrl;\r\n caption = houseTypeWithAllImage.caption;\r\n thumbnailImageUrl = houseTypeWithAllImage.thumbnailImageUrl;\r\n }\r\n\r\n return { imageUrl, caption, thumbnailImageUrl };\r\n }\r\n\r\n @action\r\n private gethouseTypeAllImages(ordinal: number, imageType: string) {\r\n const { propertyHouseTypeImages, houseTypeId } = this.model;\r\n let imageUrl = \"\",\r\n caption = \"\",\r\n thumbnailImageUrl = \"\";\r\n if (propertyHouseTypeImages && propertyHouseTypeImages.length > 0) {\r\n const housetypeImages = propertyHouseTypeImages.filter(\r\n htdi => htdi.houseTypeId === houseTypeId && htdi.developmentId === null && htdi.ordinal === ordinal && htdi.imageTypeName === imageType,\r\n );\r\n if (housetypeImages && housetypeImages.length > 0) {\r\n imageUrl = housetypeImages[0].imageUrl;\r\n caption = housetypeImages[0].caption;\r\n thumbnailImageUrl = housetypeImages[0].thumbnailImageUrl;\r\n }\r\n }\r\n return { imageUrl, caption, thumbnailImageUrl };\r\n }\r\n\r\n @action\r\n private getPropertyImage(imageType: string, ordinal: number) {\r\n const { propertyHouseTypeImages } = this.model;\r\n let imageUrl = \"\",\r\n caption = \"\",\r\n thumbnailImageUrl = \"\";\r\n\r\n if (propertyHouseTypeImages && propertyHouseTypeImages.length > 0) {\r\n const propertyImages = propertyHouseTypeImages\r\n .filter(htdi => isNullOrUndefined(htdi.houseTypeId) && htdi.imageTypeName == imageType && htdi.ordinal == ordinal && htdi.imageUrl.length > 0)\r\n .sort((a, b) => a.ordinal - b.ordinal);\r\n if (propertyImages && propertyImages.length > 0) {\r\n imageUrl = propertyImages[0].imageUrl;\r\n caption = propertyImages[0].caption;\r\n thumbnailImageUrl = propertyImages[0].thumbnailImageUrl;\r\n\r\n if (imageUrl) return { imageUrl, caption, thumbnailImageUrl };\r\n }\r\n }\r\n\r\n return { imageUrl, caption, thumbnailImageUrl };\r\n }\r\n\r\n @computed\r\n public get getReservationStripePaymentRequestId() {\r\n const hasPendingPaymentRequest = this.model.stripePaymentRequests.find(p => p.hasPaid === false && p.propertyId === this.model.id && p.type === 1);\r\n\r\n if (hasPendingPaymentRequest) {\r\n return hasPendingPaymentRequest.id;\r\n }\r\n return \"\";\r\n }\r\n\r\n @computed\r\n public get getChoicesStripePaymentRequestId() {\r\n const hasPendingPaymentRequest = this.model.stripePaymentRequests.find(p => p.hasPaid === false && p.propertyId === this.model.id && p.type === 2);\r\n\r\n if (hasPendingPaymentRequest) {\r\n return hasPendingPaymentRequest.id;\r\n }\r\n return \"\";\r\n }\r\n\r\n @computed\r\n public get getChoicesStripePaymentRequest() {\r\n const hasPendingPaymentRequest = this.model.stripePaymentRequests.find(p => p.propertyId === this.model.id && p.type === 2);\r\n\r\n if (hasPendingPaymentRequest) {\r\n return `£${hasPendingPaymentRequest.payment.toLocaleString(\"en-GB\", { minimumFractionDigits: 2 })}`;\r\n }\r\n return \"\";\r\n }\r\n\r\n @computed\r\n public get getPaymentPrice() {\r\n const hasPendingReservationPaymentRequest = this.model.stripePaymentRequests.find(p => p.hasPaid === false && p.propertyId === this.model.id && p.type === 1);\r\n const hasPendingChoicesPaymentRequest = this.model.stripePaymentRequests.find(p => p.hasPaid === false && p.propertyId === this.model.id && p.type === 2);\r\n let totalPrice: number = 0;\r\n if (hasPendingReservationPaymentRequest) {\r\n totalPrice += hasPendingReservationPaymentRequest.payment;\r\n }\r\n if (hasPendingChoicesPaymentRequest) {\r\n totalPrice += hasPendingChoicesPaymentRequest.payment;\r\n }\r\n return totalPrice;\r\n }\r\n\r\n @computed\r\n public get PropertyOverview() {\r\n return `${this.model.houseTypeName}, ${this.propertyTypeName} with ${this.numberOfBeds} bedrooms`;\r\n }\r\n\r\n @computed\r\n public get PropertyTitle() {\r\n return `Plot ${this.model.plotNumber} ${this.model.developmentName}`;\r\n }\r\n\r\n @computed\r\n public get CanDisplaySalesAgent() {\r\n return !isEmptyOrWhitespace(this.model.salesAgentName);\r\n }\r\n\r\n @computed\r\n public get CanDisplayAgreedPurchasePrice() {\r\n return this.model.agreedPurchasePrice > 0.0;\r\n }\r\n\r\n @computed\r\n public get AgreedPurchasePrice() {\r\n return `£${this.model.agreedPurchasePrice.toLocaleString(\"en-GB\", { minimumFractionDigits: 2 })}`;\r\n }\r\n\r\n @computed\r\n public get CanDisplayReservationFeePaid() {\r\n return this.model.reservationFeePaid > 0.0;\r\n }\r\n\r\n @computed\r\n public get ReservationFeePaid() {\r\n return `£${this.model.reservationFeePaid.toLocaleString(\"en-GB\", { minimumFractionDigits: 2 })}`;\r\n }\r\n\r\n // Build dates.\r\n @computed\r\n public get propertyTypeName() {\r\n let propertyTypeName = \"\";\r\n\r\n if (this.model.plotTypeName != \"\" && this.model.plotTypeName != null) {\r\n propertyTypeName = this.model.plotTypeName;\r\n } else {\r\n propertyTypeName = this.model.propertyTypeName;\r\n }\r\n\r\n return propertyTypeName;\r\n }\r\n\r\n @computed\r\n public get Description() {\r\n let description = \"\";\r\n\r\n if (this.model.plotDescription != \"\" && this.model.plotDescription != null) {\r\n description = this.model.plotDescription;\r\n } else {\r\n description = this.model.houseTypeDescription;\r\n }\r\n\r\n return description;\r\n }\r\n\r\n @computed\r\n public get numberOfBeds() {\r\n let numberOfBeds = 0;\r\n\r\n if (this.model.propertyNumberOfBedrooms != 0 && this.model.propertyNumberOfBedrooms != null) {\r\n numberOfBeds = this.model.propertyNumberOfBedrooms;\r\n } else {\r\n numberOfBeds = this.model.numberOfBedrooms;\r\n }\r\n\r\n return numberOfBeds;\r\n }\r\n\r\n @computed\r\n public get BuildActualDate() {\r\n return isNullOrUndefined(this.model.buildActualDate) ? \"-\" : this.model.buildActualDate.format(\"DD/MM/YYYY\");\r\n }\r\n\r\n @computed\r\n public get showDatePicker() {\r\n const setting: GlobalSetting | undefined = StoresInstance.domain.AccountStore.getSettingByType(14);\r\n\r\n if (setting) {\r\n if (setting.settingValue === \"0\") {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n @computed\r\n public get BuildTargetDate() {\r\n let retVal: string = \"\";\r\n if (this.showDatePicker) {\r\n retVal = isNullOrUndefined(this.model.buildTargetDate) ? \"-\" : this.model.buildTargetDate.format(\"DD/MM/YYYY\");\r\n } else {\r\n const month = this.model.buildTargetDateMonth ? this.model.buildTargetDateMonth : \"\";\r\n const year = this.model.buildTargetDateYear ? this.model.buildTargetDateYear : \"\";\r\n retVal = `${month} ${year}`;\r\n }\r\n return retVal;\r\n }\r\n\r\n // Choice dates\r\n @computed\r\n public get ChoicesActualDate() {\r\n if (this.model.hasOrder) {\r\n return isNullOrUndefined(this.model.orderCompletedDate) ? \"-\" : this.model.orderCompletedDate.format(\"DD/MM/YYYY\");\r\n } else {\r\n return isNullOrUndefined(this.model.tempChoicesActualDate) ? \"-\" : this.model.tempChoicesActualDate.format(\"DD/MM/YYYY\");\r\n }\r\n }\r\n\r\n @computed\r\n public get ChoicesTargetDate() {\r\n if (!this.model.hasReservationType1) {\r\n return isNullOrUndefined(this.model.tempChoicesTargetDate) ? \"-\" : this.model.tempChoicesTargetDate.format(\"DD/MM/YYYY\");\r\n } else {\r\n return isNullOrUndefined(this.model.choicesTargetDate)\r\n ? isNullOrUndefined(this.model.tempChoicesTargetDate)\r\n ? \"-\"\r\n : this.model.tempChoicesTargetDate.format(\"DD/MM/YYYY\")\r\n : this.model.choicesTargetDate.format(\"DD/MM/YYYY\");\r\n }\r\n }\r\n\r\n // Contract dates\r\n @computed\r\n public get ContractActualDate() {\r\n return isNullOrUndefined(this.model.contractActualDate) ? \"-\" : this.model.contractActualDate.format(\"DD/MM/YYYY\");\r\n }\r\n\r\n @computed\r\n public get ContractTargetDate() {\r\n return isNullOrUndefined(this.model.contractTargetDate) ? \"-\" : this.model.contractTargetDate.format(\"DD/MM/YYYY\");\r\n }\r\n\r\n // Legal dates\r\n @computed\r\n public get LegalActualDate() {\r\n return isNullOrUndefined(this.model.legalActualDate) ? \"-\" : this.model.legalActualDate.format(\"DD/MM/YYYY\");\r\n }\r\n\r\n @computed\r\n public get LegalTargetDate() {\r\n return isEmptyOrWhitespace(this.model.legalTargetMonth) || isEmptyOrWhitespace(this.model.legalTargetYear)\r\n ? \"-\"\r\n : `${this.model.legalTargetMonth} ${this.model.legalTargetYear}`;\r\n }\r\n\r\n // #endregion Computeds\r\n\r\n // #region Actions\r\n\r\n @action\r\n public setApiStatus(apiStatus: ApiStatus) {\r\n this.apiStatus = apiStatus;\r\n }\r\n\r\n @action\r\n public setPaymentComplete() {\r\n const hasPaidPendingPaymentRequests = this.model.stripePaymentRequests.filter(p => p.hasPaid === false && p.propertyId === this.model.id);\r\n if (hasPaidPendingPaymentRequests) {\r\n hasPaidPendingPaymentRequests.forEach(hasPaidPendingPaymentRequest => {\r\n hasPaidPendingPaymentRequest.hasPaid = true;\r\n });\r\n }\r\n }\r\n\r\n public navigateToDashboard = () => {\r\n this.history.push(`/${this.propertyId}`);\r\n };\r\n\r\n private load = async (id: string): Promise => {\r\n this.setApiStatus(ApiStatus.loading);\r\n\r\n try {\r\n const apiResult = await this.Get(Server.Api.Dashboard.GetProperty + \"/\" + id);\r\n\r\n if (apiResult.wasSuccessful) {\r\n this.model.fromDto(apiResult.payload);\r\n this.setApiStatus(ApiStatus.success);\r\n } else {\r\n this.setApiStatus(ApiStatus.error);\r\n }\r\n } catch (exception) {\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n // #endregion Actions\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","import { Accordion, AccordionDetails, AccordionSummary, Box, Button, Grid, Typography } from \"@material-ui/core\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\nimport Stickyfill from \"stickyfilljs\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport RemoveCircleIcon from \"@material-ui/icons/RemoveCircle\";\r\n\r\n// Core\r\nimport { Loader } from \"Core/Components/Loader\";\r\nimport { useRouter } from \"Core/Utils\";\r\n\r\n// Custom\r\nimport { CloseButton } from \"Custom/Components/Buttons/CloseButton\";\r\nimport { Error } from \"Custom/Components/Error\";\r\nimport { CardPayment } from \"Custom/Components/PaymentMethods/CardPayment\";\r\nimport Lightbox from \"Custom/Components/Popups/Lightbox\";\r\nimport logoMastercard from \"Custom/Content/logo-mastercard.svg\";\r\nimport logoVisa from \"Custom/Content/logo-visa.svg\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { DashboardPageStyles } from \"Custom/StylesAppSpecific/DashboardPagesStyling\";\r\nimport { PropertyPageStyles, PaymentMethods, PaymentSectionStyles, PaymentHistoryStyles } from \"Custom/StylesAppSpecific/DashboardSubViews/PropertyPageStyling\";\r\nimport { BuyViewModel } from \"Custom/ViewModels/BuyViewModel\";\r\nimport { CARD_TYPE } from \"Custom/ViewModels/CardPaymentViewModel\";\r\nimport { PropertyViewModel } from \"Custom/ViewModels/DashboardSubViewModels/PropertyViewModel\";\r\n\r\nimport CheckCircleOutlineIcon from \"@material-ui/icons/CheckCircleOutline\";\r\nimport { DashboardViewModel } from \"Custom/ViewModels/DashboardViewModel\";\r\n\r\nenum PAYMENT_METHOD {\r\n Visa,\r\n Mastercard,\r\n}\r\n\r\nexport const Property: React.FC = () => {\r\n // #region Code Behind\r\n\r\n const router = useRouter();\r\n const theme = useTheme();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"md\")) ? true : false;\r\n\r\n //console.log(\"PROPERTYVIEW: PropertyId\", router.match.params);\r\n const propertyId = (router.match.params as any).propertyId;\r\n\r\n const dashboardPageStyles = DashboardPageStyles();\r\n const propertyPageStyles = PropertyPageStyles();\r\n const paymentSectionStyles = PaymentSectionStyles();\r\n const paymentHistoryStyles = PaymentHistoryStyles();\r\n\r\n const [viewModel] = useState(() => new PropertyViewModel(propertyId));\r\n const [dashboardViewModel] = useState(() => new DashboardViewModel(propertyId));\r\n\r\n const onAccordionChange = () => (event: React.ChangeEvent<{}>, expanded: boolean) => {\r\n setCanDisplay(!canDisplay);\r\n };\r\n\r\n const onGalleryAccordionChange = () => (event: React.ChangeEvent<{}>, expanded: boolean) => {\r\n setCanGalleryDisplay(!canGalleryDisplay);\r\n };\r\n\r\n const onFloorplanAccordionChange = () => (event: React.ChangeEvent<{}>, expanded: boolean) => {\r\n setCanFloorplanDisplay(!canFloorplanDisplay);\r\n };\r\n const [buyViewModel] = React.useState(() => BuyViewModel.Instance);\r\n const [selectedPaymentMethod, setPaymentMethod] = React.useState(null);\r\n const paymentMethods = React.useRef(null);\r\n\r\n const [lightboxImg, setLightboxImg] = useState(\"\");\r\n const [lightboxOpen, setLightboxOpen] = useState(false);\r\n const [lightboxCaption, setLightboxCaption] = useState(\"\");\r\n const [paymentSuccess, setPaymentSuccess] = useState(false);\r\n const [showMore, setShowMore] = useState(false);\r\n const [isMobile, setIsMobile] = useState(false);\r\n const [canDisplay, setCanDisplay] = useState(false);\r\n const [canGalleryDisplay, setCanGalleryDisplay] = useState(false);\r\n const [canFloorplanDisplay, setCanFloorplanDisplay] = useState(false);\r\n\r\n const setFinish = () => {\r\n setPaymentSuccess(true);\r\n viewModel.setPaymentComplete();\r\n };\r\n\r\n const canDisplayPaymentRow = (): boolean => {\r\n return (\r\n viewModel.showStripePaymentRequest &&\r\n viewModel.hasStripePaymentRequest &&\r\n (!viewModel.hasPaidStripeReservationPaymentRequest || !viewModel.hasPaidStripeOrderPaymentRequest)\r\n );\r\n };\r\n\r\n const canDisplayPaymentMethodRow = (): boolean => {\r\n return canDisplayPaymentRow();\r\n };\r\n\r\n const canDisplayPaymentHistoryRow = (): boolean => {\r\n return viewModel.hasPaidStripeReservationPaymentRequest || viewModel.hasPaidStripeOrderPaymentRequest;\r\n };\r\n\r\n //choose the screen size\r\n const handleResize = () => {\r\n if (window.innerWidth < 720) {\r\n setIsMobile(true);\r\n } else {\r\n setIsMobile(false);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n handleResize();\r\n });\r\n\r\n React.useEffect(() => {\r\n if (selectedPaymentMethod !== null) {\r\n window.scrollTo({ top: document.body.scrollHeight - window.innerHeight, behavior: \"smooth\" });\r\n }\r\n }, [selectedPaymentMethod]);\r\n\r\n React.useEffect(() => {\r\n if (paymentMethods.current) {\r\n Stickyfill.addOne(paymentMethods.current);\r\n }\r\n }, [paymentMethods.current]);\r\n\r\n // #endregion Code Behind\r\n\r\n const renderBusy = () => ;\r\n\r\n const renderError = () => ;\r\n\r\n const renderTitleRow = () =>\r\n isDesktop || (\r\n \r\n \r\n {viewModel.PropertyTitle}\r\n {viewModel.Property.houseTypeName}\r\n \r\n \r\n \r\n );\r\n\r\n const renderIntroductionRow = () => (\r\n \r\n \r\n {viewModel.PropertyOverview}\r\n {viewModel.PropertyAddress}\r\n \r\n {isDesktop && }\r\n \r\n );\r\n\r\n const renderDesriptionRow = () => (\r\n \r\n \r\n {viewModel.Description != null && viewModel.Description != \"\"\r\n ? isMobile\r\n ? showMore\r\n ? viewModel.Description\r\n : `${viewModel.Description.substring(0, 130)}...`\r\n : viewModel.Description\r\n : \"\"}\r\n setShowMore(!showMore)}>\r\n {viewModel.Description != null && viewModel.Description != \"\" ? (isMobile ? (showMore ? \" read less\" : \"read more\") : \"\") : \"\"}\r\n \r\n \r\n \r\n );\r\n\r\n const renderReservationRow = () => (\r\n \r\n \r\n {viewModel.CanDisplaySalesAgent && (\r\n \r\n
Sales agent:
\r\n
{viewModel.Property.salesAgentName}
\r\n
\r\n )}\r\n \r\n
Development contact no:
\r\n \r\n
\r\n \r\n
Development email:
\r\n \r\n
\r\n
\r\n \r\n {viewModel.CanDisplayAgreedPurchasePrice && (\r\n \r\n
Agreed price:
\r\n
{viewModel.AgreedPurchasePrice}
\r\n
\r\n )}\r\n {viewModel.CanDisplayReservationFeePaid && (\r\n \r\n
Deposit:
\r\n
{viewModel.ReservationFeePaid}
\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n\r\n const renderStatusRow = () => (\r\n \r\n \r\n Build completion\r\n \r\n \r\n
Target:
\r\n
{viewModel.BuildTargetDate}
\r\n
\r\n \r\n
Actual:
\r\n
{viewModel.BuildActualDate}
\r\n
\r\n
\r\n
\r\n \r\n Choices complete\r\n \r\n \r\n
Target:
\r\n
{viewModel.ChoicesTargetDate}
\r\n
\r\n \r\n
Actual:
\r\n
{viewModel.ChoicesActualDate}
\r\n
\r\n
\r\n
\r\n \r\n Contract exchange\r\n \r\n \r\n
Deadline:
\r\n
{viewModel.ContractTargetDate}
\r\n
\r\n \r\n
Actual:
\r\n
{viewModel.ContractActualDate}
\r\n
\r\n
\r\n
\r\n \r\n Legal completion\r\n \r\n \r\n
Target:
\r\n
{viewModel.LegalTargetDate}
\r\n
\r\n \r\n
Actual:
\r\n
{viewModel.LegalActualDate}
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n\r\n const renderPaymentRow = (): JSX.Element => (\r\n \r\n \r\n \r\n \r\n Payments outstanding\r\n \r\n \r\n \r\n
Reservation fee:
\r\n
{viewModel.getReservationStripePaymentRequest}
\r\n
\r\n \r\n
Choices:
\r\n
{viewModel.getChoicesStripePaymentRequest}
\r\n
\r\n
\r\n
\r\n \r\n \r\n setPaymentMethod(PAYMENT_METHOD.Visa)}\r\n role=\"button\"\r\n >\r\n \"Visa\"\r\n
\r\n setPaymentMethod(PAYMENT_METHOD.Mastercard)}\r\n role=\"button\"\r\n >\r\n \"Mastercard\"\r\n \r\n \r\n Please select a payment method\r\n
\r\n
\r\n \r\n );\r\n\r\n const renderPaymentMethod = (): JSX.Element => {\r\n switch (selectedPaymentMethod) {\r\n case PAYMENT_METHOD.Visa:\r\n return (\r\n setPaymentMethod(null)}\r\n />\r\n );\r\n\r\n case PAYMENT_METHOD.Mastercard:\r\n return (\r\n setPaymentMethod(null)}\r\n />\r\n );\r\n\r\n default:\r\n return ;\r\n }\r\n };\r\n\r\n const renderPaymentHistoryRow = (): JSX.Element => (\r\n <>\r\n \r\n \r\n \r\n Payments history\r\n \r\n \r\n {viewModel.hasPaidStripeReservationPaymentRequest && (\r\n \r\n
{viewModel.PaidReservationDate} - Reservation fee:
\r\n
{viewModel.getReservationStripePaymentRequest}
\r\n
\r\n )}\r\n {viewModel.hasPaidStripeOrderPaymentRequest && (\r\n \r\n
{viewModel.PaidOrderDate} - Choices fee:
\r\n
{viewModel.getChoicesStripePaymentRequest}
\r\n
\r\n )}\r\n
\r\n \r\n );\r\n\r\n const renderPaymentSection = (): JSX.Element => (\r\n \r\n {buyViewModel.getValue(\"paymentSuccess\") && renderSuccessMethod()}\r\n {canDisplayPaymentRow() && renderPaymentRow()}\r\n {canDisplayPaymentMethodRow() && renderPaymentMethod()}\r\n {canDisplayPaymentHistoryRow() && renderPaymentHistoryRow()}\r\n \r\n );\r\n\r\n const renderNewPropertyImages = () => (\r\n <>\r\n \r\n : }>\r\n Gallery\r\n \r\n \r\n \r\n \r\n {viewModel.getPropertyHouseTypeGeneralImages &&\r\n viewModel.getPropertyHouseTypeGeneralImages.map(\r\n image =>\r\n image.imageUrl && (\r\n \r\n {\r\n setLightboxImg(image.imageUrl.split(\".\").pop() !== \"pdf\" ? image.imageUrl : image.thumbnailImageUrl);\r\n setLightboxCaption(image.caption);\r\n setLightboxOpen(true);\r\n }}\r\n />\r\n
{image.caption}
\r\n
\r\n ),\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n : }>\r\n Floorplan\r\n \r\n \r\n \r\n \r\n {viewModel.getPropertyHouseTypeFloorplanImages &&\r\n viewModel.getPropertyHouseTypeFloorplanImages.map(\r\n image =>\r\n image.imageUrl && (\r\n \r\n {\r\n setLightboxImg(image.imageUrl.split(\".\").pop() !== \"pdf\" ? image.imageUrl : image.thumbnailImageUrl);\r\n setLightboxCaption(image.caption);\r\n setLightboxOpen(true);\r\n }}\r\n />\r\n
{image.caption}
\r\n
\r\n ),\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n\r\n const renderDevelopment = () => (\r\n \r\n : }>\r\n {viewModel.Property.developmentName}\r\n \r\n {viewModel.Property.developmentDescription}\r\n \r\n );\r\n\r\n const renderSuccessMethod = () =>\r\n !paymentSuccess ? (\r\n
\r\n
\r\n \r\n \r\n \r\n
Success
\r\n
\r\n \r\n
\r\n ) : (\r\n \"\"\r\n );\r\n\r\n return useObserver(() => (\r\n \r\n \r\n {viewModel.ApiStatus === ApiStatus.success && (\r\n \r\n {renderTitleRow()}\r\n {renderIntroductionRow()}\r\n {renderDesriptionRow()}\r\n {renderReservationRow()}\r\n {dashboardViewModel.model.isTargetCompletionVisible && renderStatusRow()}\r\n {renderPaymentSection()}\r\n {renderNewPropertyImages()}\r\n \r\n )}\r\n {viewModel.Property.developmentDescription != null && viewModel.Property.developmentDescription != \"\" && {renderDevelopment()}}\r\n {viewModel.ApiStatus === ApiStatus.loading && {renderBusy()}}\r\n {viewModel.ApiStatus === ApiStatus.error && {renderError()}}\r\n \r\n \r\n \r\n ));\r\n};\r\n","// Libraries\r\nimport { Button } from \"@material-ui/core\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\n\r\n// Core\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { isNullOrUndefined } from \"util\";\r\n\r\n// Custom\r\nimport { NavButtonStyle } from \"./ButtonStyling\";\r\n\r\ninterface IProps {\r\n canExecute?: boolean;\r\n className?: string;\r\n displayName: string;\r\n execute?: () => void;\r\n isSubmit?: boolean;\r\n}\r\n\r\nexport const NavButton: React.FC = props => {\r\n // #region Code Behind\r\n\r\n const navButtonStyle = NavButtonStyle();\r\n\r\n const getClassNames = (): string => {\r\n let classNames = navButtonStyle.root;\r\n\r\n if (!isEmptyOrWhitespace(props.className)) {\r\n classNames = `${classNames} ${props.className}`;\r\n }\r\n\r\n return classNames;\r\n };\r\n\r\n const getType = (): \"button\" | \"submit\" | \"reset\" => {\r\n return !isNullOrUndefined(props.isSubmit) && props.isSubmit ? \"submit\" : \"button\";\r\n };\r\n\r\n const isDisabled = (): boolean => {\r\n return !isNullOrUndefined(props.canExecute) ? !props.canExecute : false;\r\n };\r\n\r\n const onClick = (): void => {\r\n if (!isNullOrUndefined(props.execute)) {\r\n props.execute();\r\n }\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n return useObserver(() => (\r\n \r\n ));\r\n};\r\n","import { darken, lighten, makeStyles } from \"@material-ui/core\";\r\nimport { Theme } from \"@material-ui/core/styles\";\r\n\r\nexport const ViewSnagStyle = makeStyles((theme: Theme) => ({\r\n root: {\r\n \"& > div\": {\r\n backgroundColor: \"#F9F9F9\",\r\n },\r\n },\r\n header: {},\r\n headerRowA: {\r\n backgroundColor: \"#F9F9F9\",\r\n borderBottom: \"1px solid #CED4DA\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n \"& > div:first-child\": {\r\n padding: \"17px 9px 24px 9px\",\r\n },\r\n \"& > div:last-child\": {\r\n paddingTop: \"4px\",\r\n },\r\n },\r\n headerRowB: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n padding: \"17px 9px 0px 9px\",\r\n },\r\n headerRowC: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n padding: \"0px 9px 0px 9px\",\r\n },\r\n headerRowD: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n padding: \"9px 9px 0px 9px\",\r\n },\r\n resolvedSnagTitle: {\r\n color: \"#3AAA35\",\r\n },\r\n rejectedSnagTitle: {\r\n color: \"#DC3545\",\r\n },\r\n title: {\r\n padding: \"10px 9px 0px 9px\",\r\n \"& > h5\": {\r\n fontSize: \"16px\",\r\n fontWeight: \"bold\",\r\n textTransform: \"uppercase\",\r\n },\r\n },\r\n date: {\r\n padding: \"0 10px 5px\",\r\n \"& > h5\": {\r\n fontSize: \"10px\",\r\n fontWeight: \"bold\",\r\n textTransform: \"uppercase\",\r\n },\r\n },\r\n navSnag: {\r\n \"& > button\": {\r\n fontSize: \"10px\",\r\n },\r\n },\r\n navSnags: {},\r\n detailsTitle: {\r\n padding: \"0 10px 10px 10px\",\r\n \"& > h5\": {\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n },\r\n },\r\n details: {\r\n padding: \"0 10px\",\r\n \"& > p\": {\r\n fontSize: \"12px\",\r\n textAlign: \"justify\",\r\n // whiteSpace: \"pre\",\r\n },\r\n },\r\n rejectedReason: {\r\n padding: \"10px 10px 6px\",\r\n \"& > p\": {\r\n fontSize: \"12px\",\r\n whiteSpace: \"pre-wrap\",\r\n color: \"#DC3545\",\r\n },\r\n },\r\n completedBy: {\r\n padding: \"0 10px 5px\",\r\n \"& > h5\": {\r\n fontSize: \"10px\",\r\n whiteSpace: \"pre-wrap\",\r\n },\r\n },\r\n selectionRow: {},\r\n textAreaRow: {},\r\n buttonRow: {},\r\n formControl: {},\r\n formInputControl: {},\r\n formTextAreaControl: {},\r\n submitButton: {},\r\n editRoot: {\r\n marginLeft: \"20px\",\r\n marginRight: \"20px\",\r\n paddingBottom: \"20px\",\r\n \"& div.MuiFormControl-root\": {\r\n marginBottom: \"16px\",\r\n width: \"100%\",\r\n },\r\n \"& div.MuiOutlinedInput-multiline\": {\r\n padding: \"8px 10px\",\r\n \"& textarea\": {\r\n minHeight: \"70px\",\r\n },\r\n },\r\n \"& button\": {\r\n width: \"100%\",\r\n },\r\n },\r\n deleteBtn: {\r\n marginTop: \"10px\",\r\n backgroundColor: \"#3C3C3B\",\r\n },\r\n saveBtn: {\r\n marginTop: \"24px\",\r\n },\r\n paddedBox: {\r\n paddingLeft: \"20px\",\r\n paddingRight: \"20px\",\r\n paddingTop: \"17px\",\r\n \"& h5\": {\r\n fontSize: \"16px\",\r\n fontWeight: \"bold\",\r\n },\r\n },\r\n dashedBorderBox: {\r\n borderTop: \"1px dashed #ced4da\",\r\n paddingTop: \"13px\",\r\n },\r\n linkTxt: {\r\n color: \"#556ED1\",\r\n textDecoration: \"underline\",\r\n \"&:hover\": {\r\n cursor: \"pointer\",\r\n },\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n root: {\r\n \"& > div\": {\r\n background: \"none\",\r\n },\r\n },\r\n header: {},\r\n headerRowA: {\r\n background: \"none\",\r\n borderBottom: \"none\",\r\n padding: \"17px 9px 0px 9px\",\r\n \"& > div\": {\r\n padding: \"6px 9px 0px 9px !important\",\r\n },\r\n },\r\n headerRowB: {\r\n padding: \"17px 9px 9px 9px\",\r\n },\r\n headerRowC: {\r\n padding: \"0px 9px 7px 9px\",\r\n },\r\n headerRowD: {\r\n padding: \"9px 9px 7px 9px\",\r\n },\r\n title: {\r\n padding: \"0px 9px 0px 9px\",\r\n },\r\n dateContainer: {\r\n textAlign: \"right\",\r\n },\r\n date: {\r\n \"& > h5\": {\r\n fontSize: \"20px\",\r\n },\r\n },\r\n completedBy: {\r\n \"& > h5\": {\r\n fontSize: \"12px\",\r\n },\r\n },\r\n navSnag: {\r\n \"& > button\": {\r\n fontSize: \"16px\",\r\n },\r\n },\r\n navSnags: {},\r\n detailsTitle: {\r\n padding: \"0 10px 8px 10px\",\r\n \"& > h5\": {\r\n fontSize: \"16px\",\r\n },\r\n },\r\n selectionRow: {\r\n display: \"flex\",\r\n flex: \"1\",\r\n margin: \"0 -15px\",\r\n paddingBottom: \"10px\",\r\n },\r\n textAreaRow: {\r\n display: \"flex\",\r\n flex: \"1\",\r\n margin: \"0 -15px\",\r\n paddingBottom: \"10px\",\r\n \"& > div\": {\r\n flex: 1,\r\n },\r\n },\r\n buttonRow: {\r\n paddingTop: \"8px\",\r\n margin: \"0 -15px\",\r\n },\r\n formControl: {\r\n padding: \"0 15px\",\r\n },\r\n formInputControl: {\r\n minWidth: \"285px !important\",\r\n },\r\n formTextAreaControl: {\r\n minWidth: \"100%\",\r\n },\r\n deleteBtn: {\r\n margin: \"0 15px\",\r\n maxWidth: \"255px\",\r\n },\r\n saveBtn: {\r\n margin: \"0 15px\",\r\n maxWidth: \"255px\",\r\n },\r\n editRoot: {\r\n borderTop: \"1px dashed #ced4da\",\r\n padding: \"30px 0\",\r\n \"& > form > div > div.form-group > div\": {\r\n backgroundColor: \"#F9F9F9\",\r\n },\r\n },\r\n rejectedReason: {\r\n padding: \"0 10px\",\r\n \"& > p\": {\r\n fontSize: \"12px\",\r\n whiteSpace: \"pre-wrap\",\r\n color: \"#DC3545\",\r\n },\r\n },\r\n },\r\n}));\r\n","// Libraries\r\nimport { action, observable } from \"mobx\";\r\nimport \"moment-timezone\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\nexport class SnagModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id: string | undefined = \"\";\r\n\r\n @observable\r\n public propertyId: string = \"\";\r\n\r\n @observable\r\n public title: string = \"\";\r\n\r\n @observable\r\n public dueDate: string | undefined = \"\";\r\n\r\n @observable\r\n public areaId: string = \"\";\r\n\r\n @observable\r\n public details: string = \"\";\r\n\r\n @observable\r\n public snagNumber: string = \"\";\r\n\r\n @observable\r\n public resolved: boolean = false;\r\n\r\n @observable\r\n public actionTaken: string = \"\";\r\n\r\n @observable\r\n public isDeleted: boolean = false;\r\n\r\n @observable\r\n public propertySnagCategoryId: string | undefined = \"\";\r\n\r\n @observable\r\n public propertySnagDepartmentId: string | undefined = \"\";\r\n\r\n @observable\r\n public concurrencyToken: string = \"\";\r\n\r\n @observable\r\n public reportedDate: string = \"\";\r\n\r\n @observable\r\n public resolverIdentityUserId: string | undefined = \"\";\r\n\r\n @observable\r\n public resolvedDate: string | undefined = \"\";\r\n\r\n @observable\r\n public isCreatedByCustomer: boolean = false;\r\n\r\n @observable\r\n public snagStatus: number = 0;\r\n\r\n @observable\r\n public snagStatusUpdatedDate: string | undefined = \"\";\r\n\r\n @observable\r\n public rejectedReason: string | undefined = \"\";\r\n\r\n @observable\r\n public resolvedBy: string = \"\";\r\n\r\n @observable\r\n public areaName: string = \"\";\r\n\r\n @observable\r\n public houseAreas: CPItemModelDTO[] = [];\r\n\r\n @observable\r\n public snagTypes: CPItemModelDTO[] = [];\r\n\r\n @observable\r\n public snagPhotos: SnagPhotoModelDTO[] = [];\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: SnagModelDTO): void => {\r\n this.id = dto.id;\r\n this.propertyId = dto.propertyId;\r\n this.title = dto.title;\r\n this.dueDate = dto.dueDate;\r\n this.areaId = dto.areaId;\r\n this.details = dto.details;\r\n this.snagNumber = dto.snagNumber;\r\n this.resolved = dto.resolved;\r\n this.actionTaken = dto.actionTaken;\r\n this.isDeleted = dto.isDeleted;\r\n this.propertySnagCategoryId = dto.propertySnagCategoryId;\r\n this.propertySnagDepartmentId = dto.propertySnagDepartmentId;\r\n this.concurrencyToken = dto.concurrencyToken;\r\n this.reportedDate = dto.reportedDate;\r\n this.resolverIdentityUserId = dto.resolverIdentityUserId;\r\n this.resolvedDate = dto.resolvedDate;\r\n this.isCreatedByCustomer = dto.isCreatedByCustomer;\r\n this.snagStatus = dto.snagStatus;\r\n this.snagStatusUpdatedDate = dto.snagStatusUpdatedDate;\r\n this.rejectedReason = dto.rejectedReason;\r\n this.resolvedBy = dto.resolvedBy;\r\n this.areaName = dto.areaName;\r\n };\r\n\r\n public toDto = (): SnagFormModelDTO => {\r\n let isCreatedByCustomer = true;\r\n\r\n let snag: SnagModelDTO = {\r\n id: this.id,\r\n propertyId: this.propertyId,\r\n title: this.title,\r\n dueDate: this.dueDate,\r\n areaId: this.areaId,\r\n details: this.details,\r\n snagNumber: this.snagNumber,\r\n resolved: this.resolved,\r\n actionTaken: this.actionTaken,\r\n isDeleted: this.isDeleted,\r\n propertySnagCategoryId: this.propertySnagCategoryId,\r\n propertySnagDepartmentId: this.propertySnagDepartmentId,\r\n concurrencyToken: this.concurrencyToken,\r\n reportedDate: this.reportedDate,\r\n resolverIdentityUserId: this.resolverIdentityUserId,\r\n resolvedDate: this.resolvedDate,\r\n isCreatedByCustomer: isCreatedByCustomer,\r\n snagStatus: this.snagStatus,\r\n snagStatusUpdatedDate: this.snagStatusUpdatedDate,\r\n rejectedReason: this.rejectedReason,\r\n resolvedBy: this.resolvedBy,\r\n areaName: this.areaName,\r\n };\r\n\r\n // Photos retrived in parent call.\r\n let snagPhotos: SnagPhotoModelDTO[] = [];\r\n\r\n let model: SnagFormModelDTO = {\r\n snag: snag,\r\n snagPhotos: snagPhotos,\r\n };\r\n\r\n return model;\r\n };\r\n}\r\n\r\nexport interface SnagModelDTO {\r\n id: string | undefined;\r\n propertyId: string;\r\n title: string;\r\n dueDate?: string;\r\n areaId: string;\r\n details: string;\r\n snagNumber: string;\r\n resolved: boolean;\r\n actionTaken: string;\r\n isDeleted: boolean;\r\n propertySnagCategoryId?: string;\r\n propertySnagDepartmentId?: string;\r\n concurrencyToken: string;\r\n reportedDate: string;\r\n resolverIdentityUserId?: string;\r\n resolvedDate?: string;\r\n isCreatedByCustomer: boolean;\r\n snagStatus: number;\r\n snagStatusUpdatedDate: string | undefined;\r\n rejectedReason?: string;\r\n resolvedBy: string;\r\n areaName: string;\r\n}\r\n\r\nexport interface SnagFormModelDTO {\r\n snag: SnagModelDTO;\r\n snagPhotos: SnagPhotoModelDTO[];\r\n}\r\n\r\nexport interface ViewSnagDTO {\r\n houseAreas: CPItemModelDTO[];\r\n snag: SnagModelDTO;\r\n snagPhotos: SnagPhotoModelDTO[];\r\n}\r\n\r\nexport interface CPItemModelDTO {\r\n id: string;\r\n name: string;\r\n}\r\n\r\nexport interface SnagPhotoModelDTO {\r\n id: string;\r\n fileName: string;\r\n azureFileName: string;\r\n base64: string;\r\n azureFileNameFullResolution: string;\r\n azureThumbnailURL: string;\r\n resolvedImage: boolean;\r\n propertySnagId?: string | undefined;\r\n uploadedIdentityId: string | undefined;\r\n uploadedBy: string;\r\n uploadedDate: string;\r\n originalIsDeletedState: boolean;\r\n isDeleted: boolean;\r\n type: number;\r\n}\r\n","export enum SnagStatusType {\r\n Reported = 0,\r\n Rejected = 1,\r\n Approved = 2,\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\nimport moment from \"moment\";\r\n\r\n// Core\r\nimport { FieldType, isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\nimport { KeyValuePair } from \"Core/Models/KeyValuePair\";\r\n\r\n// Custom\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\nimport { SnagModel, ViewSnagDTO, SnagPhotoModelDTO } from \"Custom/Models/DashboardModels/SnagModel\";\r\nimport { StoresInstance } from \"Custom/Stores/Stores\";\r\nimport { SnagPhotoStore } from \"Custom/Stores/Domain/SnagPhotoStore\";\r\nimport { HouseAreaStore } from \"Custom/Stores/Domain/HouseAreaStore\";\r\nimport { SnagTypeStore } from \"Custom/Stores/Domain/SnagTypeStore\";\r\nimport { SnagStatusType } from \"../../Models/Enums/SnagStatusType\";\r\n\r\nexport class ViewSnagViewModel extends ViewModelBase {\r\n constructor(propertyId: string, id: string) {\r\n super(new SnagModel(), false);\r\n this.setDecorators(SnagModel);\r\n\r\n //console.log(\"VIEWSNAGVM CONSTRUCTOR: PropertyId\", propertyId);\r\n this.propertyId = propertyId;\r\n\r\n if (propertyId !== null && propertyId !== undefined && propertyId !== \"\") {\r\n this.load(propertyId, id);\r\n }\r\n }\r\n\r\n // #region Properties\r\n\r\n @observable\r\n public propertyId: string = \"\";\r\n\r\n private snagPhotoStore: SnagPhotoStore = StoresInstance.domain.SnagPhotoStore;\r\n\r\n private houseAreaStore: HouseAreaStore = StoresInstance.domain.HouseAreaStore;\r\n\r\n private snagTypeStore: SnagTypeStore = StoresInstance.domain.SnagTypeStore;\r\n\r\n @observable\r\n public haveSubmittedToServer = false;\r\n\r\n @observable\r\n public serverValidationMessage = \"\";\r\n\r\n // #endregion Properties\r\n\r\n // #region Computeds\r\n\r\n @computed\r\n public get getSnagPhotos(): SnagPhotoModelDTO[] {\r\n return this.snagPhotoStore.getSnagPhotos.filter(sp => !sp.isDeleted);\r\n }\r\n\r\n @computed\r\n public get getSnagPhotosTmp(): string[] {\r\n return this.snagPhotoStore.getTmpPhotos;\r\n }\r\n\r\n @computed\r\n public get getAreaName(): string {\r\n let area = this.houseAreaStore.getHouseAreas.find(a => a.id === this.model.areaId);\r\n return area !== undefined ? area.name : \"\";\r\n }\r\n\r\n @computed\r\n public get getTitle(): string {\r\n return this.model.title;\r\n }\r\n\r\n @computed\r\n public get getHouseAreasKeyValue(): KeyValuePair[] {\r\n let arr: KeyValuePair[] = [];\r\n this.houseAreaStore.getHouseAreas.map(item => {\r\n let keyValue: KeyValuePair = {\r\n key: item.name,\r\n value: item.name,\r\n };\r\n arr.push(keyValue);\r\n });\r\n\r\n return arr;\r\n }\r\n\r\n @computed\r\n public get getSnagTypesKeyValue(): KeyValuePair[] {\r\n let arr: KeyValuePair[] = [];\r\n if (this.snagTypeStore.getSnagTypes) {\r\n this.snagTypeStore.getSnagTypes.map(item => {\r\n let keyValue: KeyValuePair = {\r\n key: item.name,\r\n value: item.name,\r\n };\r\n arr.push(keyValue);\r\n });\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n @computed\r\n public get ReportedDate(): string {\r\n return this.model.reportedDate ? `${moment(this.model.reportedDate).format(\"DD/MM/YYYY\")}` : `Unknown date`;\r\n }\r\n\r\n @computed\r\n public get isCompleted(): boolean {\r\n return this.model.resolved;\r\n }\r\n\r\n @computed\r\n public get isRejected(): boolean {\r\n return this.model.snagStatus === SnagStatusType.Rejected;\r\n }\r\n\r\n @computed\r\n public get rejectedReason(): string | undefined {\r\n return this.model.rejectedReason;\r\n }\r\n\r\n @computed\r\n public get hasRejectedReason(): boolean {\r\n return this.rejectedReason !== \"\" && this.rejectedReason !== null && this.rejectedReason !== undefined && this.isRejected && !this.isCompleted;\r\n }\r\n\r\n @computed\r\n public get FormattedSnagStatus(): string {\r\n if (this.isCompleted) {\r\n const resolvedDate = this.model.resolvedDate !== null && this.model.resolvedDate !== undefined ? moment(this.model.resolvedDate).format(\"DD/MM/YYYY\") : \"Unknown date\";\r\n return `COMPLETED: ${resolvedDate}`;\r\n }\r\n\r\n if (this.isRejected) {\r\n const snagStatusUpdatedDate =\r\n this.model.snagStatusUpdatedDate !== null && this.model.snagStatusUpdatedDate !== undefined\r\n ? moment(this.model.snagStatusUpdatedDate).format(\"DD/MM/YYYY\")\r\n : \"Unknown date\";\r\n return `REJECTED: ${snagStatusUpdatedDate}`;\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n @computed\r\n public get resolvedBy(): string {\r\n return this.model.resolvedBy !== \"\" && this.model.resolvedBy !== null && this.model.resolvedBy !== undefined ? this.model.resolvedBy : \"Unknown\";\r\n }\r\n\r\n // #endregion Computeds\r\n\r\n // #region Actions\r\n\r\n public naviagateToSnagList = () => {\r\n if (this.propertyId !== undefined) {\r\n this.history.push(`/snags/${this.propertyId}`);\r\n }\r\n };\r\n\r\n @action\r\n public setHaveSubmittedToServer = (value: boolean) => {\r\n this.haveSubmittedToServer = value;\r\n };\r\n\r\n @action\r\n public setServerValidationMessage = (value: string) => {\r\n this.serverValidationMessage = value;\r\n };\r\n\r\n private load = async (propertyId: string, id: string): Promise => {\r\n try {\r\n this.setServerValidationMessage(\"\");\r\n\r\n const apiResult = await this.Get(Server.Api.Snags.GetViewById + \"/\" + propertyId + \"/\" + id);\r\n\r\n if (apiResult.wasSuccessful) {\r\n this.model.fromDto(apiResult.payload.snag);\r\n\r\n this.snagPhotoStore.populateSnagPhotos(apiResult.payload.snagPhotos);\r\n this.houseAreaStore.populateHouseAreas(apiResult.payload.houseAreas);\r\n } else {\r\n if (apiResult.errors.length > 0) {\r\n const error = apiResult.errors[0];\r\n\r\n if (!isEmptyOrWhitespace(error.message)) {\r\n this.setServerValidationMessage(error.message);\r\n } else {\r\n this.setServerValidationMessage(\"There was an unknown error getting data related for the snag.\");\r\n }\r\n }\r\n }\r\n } catch (exception) {\r\n this.setServerValidationMessage(\"There was an unknown error getting data related for the snag.\");\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n // #endregion Actions\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","import React from \"react\";\r\nimport { Box, Grid, Typography } from \"@material-ui/core\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\n\r\n// Core\r\nimport { useRouter } from \"Core/Base\";\r\nimport { KeyValuePair } from \"Core/Models/KeyValuePair\";\r\nimport { UploadableImage } from \"Core/Components/Forms\";\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\n\r\n// Custom\r\nimport { CloseButton } from \"Custom/Components/Buttons/CloseButton\";\r\nimport { NavButton } from \"Custom/Components/Buttons/NavButton\";\r\n\r\nimport { DashboardPageStyles } from \"Custom/StylesAppSpecific/DashboardPagesStyling\";\r\nimport { ViewSnagStyle } from \"Custom/StylesAppSpecific/DashboardSubViews/ViewSnagStyling\";\r\nimport { ViewSnagViewModel } from \"Custom/ViewModels/DashboardSubViewModels/ViewSnagViewModel\";\r\nimport { SnagPhotoModelDTO } from \"Custom/Models/DashboardModels/SnagModel\";\r\nimport { StandardButton } from \"Custom/Components/Buttons/StandardButton\";\r\nimport { EditableInput } from \"Custom/Components/Edits/EditableInput\";\r\nimport Lightbox from \"Custom/Components/Popups/Lightbox\";\r\n\r\ninterface IProps {\r\n propertyId: string;\r\n}\r\n\r\nexport const ViewSnag: React.FC = props => {\r\n const dashboardPageStyles = DashboardPageStyles();\r\n const viewSnagStyle = ViewSnagStyle();\r\n\r\n const router = useRouter();\r\n const theme = useTheme();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"md\")) ? true : false;\r\n\r\n const snagId = (router.match.params as any).snagId;\r\n const propertyId = (router.match.params as any).propertyId;\r\n\r\n const [viewModel] = React.useState(() => new ViewSnagViewModel(propertyId, snagId));\r\n\r\n const [lightboxImg, setLightboxImg] = React.useState(\"\");\r\n const [lightboxImgName, setLightboxImgName] = React.useState(\"\");\r\n const [lightboxOpen, setLightboxOpen] = React.useState(false);\r\n\r\n /**\r\n * Create the contents of the title for the desktop.\r\n */\r\n const desktopSnagTitle = () => {\r\n const parts: string[] = [];\r\n\r\n parts.push(viewModel.model.snagNumber);\r\n\r\n if (!isEmptyOrWhitespace(viewModel.getAreaName)) {\r\n parts.push(viewModel.getAreaName);\r\n }\r\n\r\n if (!isEmptyOrWhitespace(viewModel.getTitle)) {\r\n parts.push(viewModel.getTitle);\r\n }\r\n\r\n return parts.join(\" - \");\r\n };\r\n\r\n /**\r\n * Create the contents of the title for the mobile.\r\n */\r\n const mobileSnagTitle = () => {\r\n const parts: string[] = [];\r\n\r\n parts.push(viewModel.model.snagNumber);\r\n\r\n if (!isEmptyOrWhitespace(viewModel.getAreaName)) {\r\n parts.push(viewModel.getAreaName);\r\n }\r\n\r\n return parts.join(\" - \");\r\n };\r\n\r\n /**\r\n * Create the contents of the details. If none are available, display\r\n * something to that effect.\r\n */\r\n const detailsDescription = () => {\r\n let description = viewModel.model.details;\r\n\r\n if (isEmptyOrWhitespace(description)) {\r\n description = \"None specified.\";\r\n }\r\n\r\n return description;\r\n };\r\n\r\n const canDisplayThumbnails = () => {\r\n return viewModel.getSnagPhotos.length > 0;\r\n };\r\n\r\n const getSnagDateClasses = (viewSnagViewModel: ViewSnagViewModel): string => {\r\n let classes = viewSnagStyle.date;\r\n\r\n if (viewSnagViewModel.isCompleted) {\r\n classes = `${classes} ${viewSnagStyle.resolvedSnagTitle}`;\r\n } else if (viewSnagViewModel.isRejected) {\r\n classes = `${classes} ${viewSnagStyle.rejectedSnagTitle}`;\r\n }\r\n\r\n return classes;\r\n };\r\n\r\n /**\r\n * Renders the snag header. This varies between mobile and desktop\r\n * devices.\r\n */\r\n const renderSnagHeader = () =>\r\n isDesktop ? (\r\n \r\n \r\n \r\n viewModel.naviagateToSnagList()} />\r\n \r\n \r\n \r\n \r\n {desktopSnagTitle()}\r\n \r\n\r\n \r\n \r\n REPORTED: {viewModel.ReportedDate}\r\n \r\n {viewModel.FormattedSnagStatus !== \"\" && (\r\n \r\n {viewModel.FormattedSnagStatus}\r\n \r\n )}\r\n {viewModel.isCompleted && (\r\n \r\n \r\n WORK COMPLETED BY: {viewModel.resolvedBy}\r\n \r\n \r\n )}\r\n \r\n \r\n\r\n {viewModel.hasRejectedReason && viewModel.isRejected && (\r\n \r\n \r\n {viewModel.rejectedReason}\r\n \r\n \r\n )}\r\n \r\n \r\n Details\r\n \r\n \r\n {detailsDescription()}\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n {mobileSnagTitle()}\r\n \r\n \r\n {viewModel.getTitle}\r\n \r\n \r\n \r\n \r\n viewModel.naviagateToSnagList()} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n REPORTED: {viewModel.ReportedDate}\r\n \r\n\r\n {viewModel.FormattedSnagStatus !== \"\" && (\r\n \r\n {viewModel.FormattedSnagStatus}\r\n \r\n )}\r\n {viewModel.isCompleted && (\r\n \r\n \r\n WORK COMPLETED BY: {viewModel.resolvedBy}\r\n \r\n \r\n )}\r\n \r\n \r\n\r\n {viewModel.hasRejectedReason && viewModel.isRejected && (\r\n \r\n \r\n {viewModel.rejectedReason}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n Details\r\n \r\n \r\n {detailsDescription()}\r\n \r\n \r\n \r\n );\r\n\r\n const renderAttatchedImagesRow = () => (\r\n \r\n \r\n Attatched images\r\n {canDisplayThumbnails() && (\r\n \r\n {viewModel.getSnagPhotos.map((photo: SnagPhotoModelDTO, index: number) => {\r\n return (\r\n \r\n {\r\n setLightboxImg(photo.azureFileName);\r\n setLightboxImgName(photo.fileName);\r\n setLightboxOpen(true);\r\n }}\r\n />\r\n {photo.fileName}\r\n \r\n );\r\n })}\r\n \r\n )}\r\n {!canDisplayThumbnails() && No attatched images found.}\r\n \r\n \r\n );\r\n\r\n return useObserver(() => (\r\n \r\n \r\n {renderSnagHeader()}\r\n\r\n {renderAttatchedImagesRow()}\r\n \r\n \r\n \r\n ));\r\n};\r\n","import { darken, lighten, makeStyles } from \"@material-ui/core\";\r\nimport { Theme } from \"@material-ui/core/styles\";\r\n\r\n/**\r\n * Contains style information for the snags page.\r\n */\r\nexport const SnagsPageStyles = makeStyles((theme: Theme) => ({\r\n root: {},\r\n introduction: {\r\n borderBottom: \"1px solid #ced4da\",\r\n padding: \"18px 18px 15px 18px\",\r\n },\r\n introductionTitle: {\r\n fontSize: \"16px\",\r\n fontWeight: \"bold\",\r\n lineHeight: \"1.25\",\r\n },\r\n snags: {},\r\n snag: {\r\n \"& > button\": {\r\n \"& > div.MuiCardContent-root\": {\r\n padding: \"16px 18px\",\r\n },\r\n },\r\n \"&:not(:last-child)\": {\r\n borderBottom: \"1px dashed #ced4da\",\r\n },\r\n },\r\n snagTitleRow: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n marginBottom: \"3px\",\r\n },\r\n snagTitle: {\r\n fontWeight: \"bold\",\r\n textTransform: \"uppercase\",\r\n },\r\n resolvedSnagTitle: {\r\n color: \"#3AAA35\",\r\n },\r\n rejectedSnagTitle: {\r\n color: \"#DC3545\",\r\n },\r\n snagContentRow: {\r\n alignItems: \"center\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n },\r\n snagContentTitleRow: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n marginBottom: \"3px\",\r\n },\r\n snagDetails: {\r\n boxOrient: \"vertical\",\r\n display: \"-webkit-box\",\r\n lineClamp: 2,\r\n marginRight: \"18px\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n },\r\n snagArrow: {\r\n alignItems: \"center\",\r\n display: \"flex\",\r\n \"& svg\": {\r\n fill: \"#3aaa35\",\r\n marginLeft: \"-6px\",\r\n marginRight: \"-6px\",\r\n },\r\n },\r\n accordion: {\r\n margin: \"0 !important\",\r\n \"& > div.MuiCollapse-container\": {},\r\n },\r\n accordionSummary: {},\r\n [theme.breakpoints.up(\"md\")]: {\r\n titleRow: {\r\n padding: \"27px 18px 15px 18px\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n flex: \"0 0 auto\",\r\n \"& > button\": {\r\n padding: \"0\",\r\n },\r\n \"& > h5\": {\r\n padding: \"0px\",\r\n },\r\n \"& .MuiSvgIcon-root\": {\r\n margin: \"-7px\",\r\n fontSize: \"35px\",\r\n },\r\n },\r\n title: {\r\n fontSize: \"20px\",\r\n fontWeight: \"bold\",\r\n },\r\n titleBorder: {\r\n borderBottom: \"1px solid #CED4DA\",\r\n margin: \"0 18px 16px\",\r\n },\r\n accordion: {\r\n \"& > div.MuiCollapse-container\": {\r\n background: \"none\",\r\n borderTop: \"1px dashed #ced4da\",\r\n \"& div.MuiAccordionDetails-root\": {\r\n padding: \"30px 0px\",\r\n },\r\n },\r\n },\r\n accordionSummary: {\r\n margin: \"0 18px\",\r\n \"& > div.MuiAccordionSummary-content\": {\r\n marginLeft: \"-18px\",\r\n \"& > p\": {\r\n fontSize: \"14px\",\r\n },\r\n },\r\n \"& > div.MuiAccordionSummary-expandIcon\": {\r\n marginRight: \"-18px\",\r\n },\r\n },\r\n introduction: {\r\n margin: \"0 18px\",\r\n padding: \"18px 0 15px 0\",\r\n },\r\n introductionTitle: {\r\n fontSize: \"14px\",\r\n },\r\n snag: {\r\n margin: \"0 18px\",\r\n boxShadow: \"none\",\r\n borderBottom: \"1px solid #ced4da\",\r\n borderRadius: \"0\",\r\n \"& > button\": {\r\n \"& > div.MuiCardContent-root\": {\r\n padding: \"16px 0\",\r\n },\r\n },\r\n },\r\n },\r\n}));\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\n// Custom\r\nimport { SnagModel, SnagModelDTO } from \"./SnagModel\";\r\n\r\nexport class SnagsModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public snags = observable([]);\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public addFromDto = (dto: SnagModelDTO): void => {\r\n const snagModel = new SnagModel();\r\n\r\n snagModel.fromDto(dto);\r\n\r\n this.snags.unshift(snagModel);\r\n };\r\n\r\n @action\r\n public fromDto = (dto: SnagModelDTO[]): void => {\r\n for (const snagDto of dto) {\r\n const snagModel = new SnagModel();\r\n\r\n snagModel.fromDto(snagDto);\r\n\r\n this.snags.push(snagModel);\r\n }\r\n };\r\n\r\n public toDto = (): SnagModelDTO[] => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n","// Libraries\r\nimport { action, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\nexport class NewSnagModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id: string | undefined = \"\";\r\n\r\n @observable\r\n public propertyId: string = \"\";\r\n\r\n @observable\r\n public title: string = \"\";\r\n\r\n @observable\r\n public dueDate: string | undefined = \"\";\r\n\r\n @observable\r\n public areaId: string = \"\";\r\n\r\n @observable\r\n public details: string = \"\";\r\n\r\n @observable\r\n public snagNumber: string = \"\";\r\n\r\n @observable\r\n public resolved: boolean = false;\r\n\r\n @observable\r\n public actionTaken: string = \"\";\r\n\r\n @observable\r\n public isDeleted: boolean = false;\r\n\r\n @observable\r\n public propertySnagCategoryId: string | undefined = \"\";\r\n\r\n @observable\r\n public propertySnagDepartmentId: string | undefined = \"\";\r\n\r\n @observable\r\n public concurrencyToken: string = \"\";\r\n\r\n @observable\r\n public reportedDate: string = \"\";\r\n\r\n @observable\r\n public resolverIdentityUserId: string | undefined = \"\";\r\n\r\n @observable\r\n public resolvedDate: string | undefined = \"\";\r\n\r\n @observable\r\n public assignedToIdentityUserId: string | undefined = undefined;\r\n\r\n @observable\r\n public assignedToIndustryContactId: string | undefined = undefined;\r\n\r\n @observable\r\n public assignedToIndustryContactAdditionalContactId: string | undefined = undefined;\r\n\r\n // @observable\r\n // public createdByIdentityUserId: string | undefined = \"\";\r\n\r\n @observable\r\n public isCreatedByCustomer: boolean = false;\r\n\r\n // @observable\r\n // public snagStatus: number = 0;\r\n\r\n // @observable\r\n // public reasonForRejection: string = \"\";\r\n\r\n // @observable\r\n // public notes: string = \"\";\r\n\r\n @observable\r\n public snagPhotos: NewSnagPhotoModelDTO[] = [];\r\n\r\n //\r\n\r\n @observable\r\n public imageFile: File | undefined = undefined;\r\n\r\n @observable\r\n public imageBase64: string = \"\";\r\n\r\n @observable\r\n public houseAreas = observable([\r\n {\r\n key: \"Select area\",\r\n value: \"\",\r\n },\r\n ]);\r\n\r\n @action\r\n public setSnagTitle = (value: string) => {\r\n this.title = value;\r\n };\r\n\r\n @action\r\n public setHouseArea = (value: string) => {\r\n this.areaId = value;\r\n };\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: NewSnagRelatedModelDTO): void => {\r\n for (const houseAreaDto of dto.houseAreas) {\r\n this.houseAreas.push({\r\n key: houseAreaDto.name,\r\n value: houseAreaDto.id,\r\n });\r\n }\r\n };\r\n\r\n public toDto = (): NewSnagFormModelDTO => {\r\n let isCreatedByCustomer = true;\r\n\r\n let snag: NewSnagModelDTO = {\r\n id: this.id,\r\n propertyId: this.propertyId,\r\n title: this.title,\r\n dueDate: this.dueDate,\r\n areaId: this.areaId,\r\n details: this.details,\r\n snagNumber: this.snagNumber,\r\n resolved: this.resolved,\r\n actionTaken: this.actionTaken,\r\n isDeleted: this.isDeleted,\r\n propertySnagCategoryId: this.propertySnagCategoryId,\r\n propertySnagDepartmentId: this.propertySnagDepartmentId,\r\n concurrencyToken: this.concurrencyToken,\r\n reportedDate: this.reportedDate,\r\n resolverIdentityUserId: this.resolverIdentityUserId,\r\n resolvedDate: this.resolvedDate,\r\n assignedToIdentityUserId: this.assignedToIdentityUserId,\r\n assignedToIndustryContactId: this.assignedToIndustryContactId,\r\n assignedToIndustryContactAdditionalContactId: this.assignedToIndustryContactAdditionalContactId,\r\n //createdByIdentityUserId: this.createdByIdentityUserId,\r\n isCreatedByCustomer: isCreatedByCustomer,\r\n //snagStatus: this.snagStatus,\r\n //reasonForRejection: this.reasonForRejection,\r\n //notes: this.notes\r\n };\r\n\r\n let snagPhotos: NewSnagPhotoModelDTO[] = [];\r\n\r\n let model: NewSnagFormModelDTO = {\r\n snag: snag,\r\n snagPhotos: snagPhotos,\r\n };\r\n\r\n return model;\r\n };\r\n}\r\n\r\nexport interface NewSnagRelatedModelDTO {\r\n houseAreas: any[];\r\n}\r\n\r\nexport interface NewSnagFormModelDTO {\r\n snag: NewSnagModelDTO;\r\n snagPhotos: NewSnagPhotoModelDTO[];\r\n}\r\n\r\nexport interface NewSnagModelDTO {\r\n id: string | undefined;\r\n propertyId: string;\r\n title: string;\r\n dueDate?: string;\r\n areaId: string;\r\n details: string;\r\n snagNumber: string;\r\n resolved: boolean;\r\n actionTaken: string;\r\n isDeleted: boolean;\r\n propertySnagCategoryId?: string;\r\n propertySnagDepartmentId?: string;\r\n concurrencyToken: string;\r\n reportedDate: string;\r\n resolverIdentityUserId?: string;\r\n resolvedDate?: string;\r\n assignedToIdentityUserId?: string;\r\n assignedToIndustryContactId?: string;\r\n assignedToIndustryContactAdditionalContactId?: string;\r\n //createdByIdentityUserId?: string;\r\n isCreatedByCustomer: boolean;\r\n //snagStatus: number;\r\n //reasonForRejection?: string;\r\n //notes?: string;\r\n}\r\n\r\nexport interface NewSnagPhotoModelDTO {\r\n // id: string;\r\n // fileName: string;\r\n // azureFileName: string;\r\n // base64: string;\r\n // isDeleted: boolean;\r\n id: string | undefined;\r\n fileName: string;\r\n azureFileName: string;\r\n azureFileNameFullResolution: string;\r\n azureThumbnailURL: string;\r\n resolvedImage: boolean;\r\n propertySnagId?: string | undefined;\r\n uploadedIdentityId: string | undefined;\r\n uploadedBy: string;\r\n uploadedDate: string;\r\n originalIsDeletedState: boolean;\r\n isDeleted: boolean;\r\n type: number;\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType, isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\n\r\n// Custom\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\nimport { NewSnagModel, NewSnagRelatedModelDTO } from \"Custom/Models/DashboardModels/NewSnagModel\";\r\nimport { SnagModelDTO, SnagPhotoModelDTO } from \"Custom/Models/DashboardModels/SnagModel\";\r\nimport { SnagsViewModel } from \"./SnagsViewModel\";\r\nimport { StoresInstance } from \"../../Stores\";\r\nimport { SnagPhotoStore } from \"Custom/Stores/Domain/SnagPhotoStore\";\r\n\r\nexport class NewSnagViewModel extends ViewModelBase {\r\n private snagsViewModel: SnagsViewModel;\r\n\r\n public imageSubDirectory: string = StoresInstance.domain!.AccountStore.ViewAsCompanyId + \"/productsnag\";\r\n public longestSideLength: number = 720;\r\n\r\n private snagPhotoStore: SnagPhotoStore = StoresInstance.domain.SnagPhotoStore;\r\n\r\n constructor(snagsViewModel: SnagsViewModel, propertyId: string) {\r\n super(new NewSnagModel());\r\n this.setDecorators(NewSnagModel);\r\n\r\n this.snagsViewModel = snagsViewModel;\r\n\r\n if (propertyId !== null && propertyId !== undefined && propertyId !== \"\") {\r\n this.load(propertyId);\r\n }\r\n }\r\n\r\n // #region Server Properties and Actions\r\n\r\n @observable\r\n public haveSubmittedToServer = false;\r\n\r\n @action\r\n public setHaveSubmittedToServer = (value: boolean) => {\r\n this.haveSubmittedToServer = value;\r\n };\r\n\r\n @observable\r\n public serverValidationMessage = \"\";\r\n\r\n @action\r\n public setServerValidationMessage = (value: string) => {\r\n this.serverValidationMessage = value;\r\n };\r\n\r\n @action\r\n public addTmpPhoto(file: File) {\r\n let tmpArr = this.snagPhotoStore.getSnagPhotos.slice();\r\n\r\n let blob = URL.createObjectURL(file);\r\n\r\n var reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onloadend = () => {\r\n var base64data = reader.result;\r\n let item: SnagPhotoModelDTO = {\r\n id: \"\",\r\n fileName: file.name,\r\n azureFileName: blob,\r\n azureFileNameFullResolution: blob,\r\n azureThumbnailURL: blob,\r\n base64: base64data as string,\r\n resolvedImage: false,\r\n propertySnagId: \"\",\r\n uploadedIdentityId: \"\",\r\n uploadedBy: \"\",\r\n uploadedDate: new Date().toUTCString(),\r\n originalIsDeletedState: false,\r\n isDeleted: false,\r\n type: 0,\r\n };\r\n tmpArr.push(item);\r\n this.snagPhotoStore.populateSnagPhotos(tmpArr);\r\n };\r\n }\r\n\r\n @action\r\n public removePhoto(index: number) {\r\n let tmpObj = this.snagPhotoStore.getSnagPhotos[index];\r\n if (tmpObj) {\r\n if (tmpObj.id) {\r\n this.snagPhotoStore.getSnagPhotos[index].isDeleted = true;\r\n } else {\r\n this.snagPhotoStore.getSnagPhotos.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n private load = async (id: string): Promise => {\r\n try {\r\n this.setServerValidationMessage(\"\");\r\n\r\n const apiResult = await this.Get(Server.Api.Snags.GetSnagRelated + \"/\" + id);\r\n\r\n if (apiResult.wasSuccessful) {\r\n this.model.fromDto(apiResult.payload);\r\n } else {\r\n if (apiResult.errors.length > 0) {\r\n const error = apiResult.errors[0];\r\n\r\n if (!isEmptyOrWhitespace(error.message)) {\r\n this.setServerValidationMessage(error.message);\r\n } else {\r\n this.setServerValidationMessage(\"There was an unknown error getting data related for the new snag.\");\r\n }\r\n }\r\n }\r\n } catch (exception) {\r\n this.setServerValidationMessage(\"There was an unknown error getting data related for the new snag.\");\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n public save = async (propertyId: string): Promise => {\r\n try {\r\n const isHouseAreaValid = !isEmptyOrWhitespace(this.model.areaId);\r\n const isSnagTypeValid = !isEmptyOrWhitespace(this.model.title) && this.model.title.length <= 75;\r\n const isDetailsValid = !isEmptyOrWhitespace(this.model.details);\r\n\r\n if (isHouseAreaValid && isSnagTypeValid && isDetailsValid) {\r\n this.setTitleErrorMessage(\"\");\r\n this.setAreaErrorMessage(\"\");\r\n this.setDetailsErrorMessage(\"\");\r\n\r\n this.setServerValidationMessage(\"\");\r\n this.setHaveSubmittedToServer(true);\r\n\r\n let model = this.model.toDto();\r\n\r\n model.snag.propertyId = propertyId;\r\n model.snagPhotos = this.getSnagPhotos;\r\n\r\n const apiResult = await this.Post(Server.Api.Snags.Upsert, model);\r\n\r\n if (apiResult.wasSuccessful) {\r\n this.snagsViewModel.add(apiResult.payload, propertyId);\r\n this.snagPhotoStore.populateSnagPhotos([]);\r\n } else {\r\n if (apiResult.errors.length > 0) {\r\n const error = apiResult.errors[0];\r\n\r\n if (!isEmptyOrWhitespace(error.message)) {\r\n this.setServerValidationMessage(error.message);\r\n } else {\r\n this.setServerValidationMessage(\"There was an unknown error saving the snag.\");\r\n }\r\n }\r\n }\r\n } else {\r\n this.setTitleErrorMessage(\"\");\r\n this.setAreaErrorMessage(\"\");\r\n this.setDetailsErrorMessage(\"\");\r\n\r\n if (isEmptyOrWhitespace(this.model.title)) {\r\n this.setTitleErrorMessage(\"You must enter a brief description\");\r\n } else if (this.model.title.length > 75) {\r\n this.setTitleErrorMessage(\"Brief description must be 75 characters or less\");\r\n }\r\n\r\n this.setAreaErrorMessage(isEmptyOrWhitespace(this.model.areaId) ? \"You must select an area\" : \"\");\r\n this.setDetailsErrorMessage(isEmptyOrWhitespace(this.model.details) ? \"You must enter some detail\" : \"\");\r\n }\r\n } catch (exception) {\r\n this.setServerValidationMessage(\"There was an unknown error saving the snag.\");\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n @observable\r\n public areaErrorMessage = \"\";\r\n\r\n @action\r\n public setAreaErrorMessage = (value: string) => {\r\n this.areaErrorMessage = value;\r\n };\r\n\r\n @observable\r\n public titleErrorMessage = \"\";\r\n\r\n @action\r\n public setTitleErrorMessage = (value: string) => {\r\n this.titleErrorMessage = value;\r\n };\r\n\r\n @observable\r\n public detailsErrorMessage = \"\";\r\n\r\n @action\r\n public setDetailsErrorMessage = (value: string) => {\r\n this.detailsErrorMessage = value;\r\n };\r\n\r\n public tryLoadAgain = (propertyId: string) => {\r\n this.load(propertyId);\r\n };\r\n\r\n public trySaveAgain = () => {\r\n this.setServerValidationMessage(\"\");\r\n this.setHaveSubmittedToServer(false);\r\n };\r\n\r\n // #endregion Server Properties and Actions\r\n\r\n // #region Can Display Properties\r\n\r\n @observable\r\n public canDisplay = false;\r\n\r\n @action\r\n public setCanDisplay = (value: boolean): void => {\r\n this.canDisplay = value;\r\n };\r\n\r\n @computed\r\n public get canDisplayBusy(): boolean {\r\n return this.IsLoading;\r\n }\r\n\r\n @computed\r\n public get canDisplayLoadError(): boolean {\r\n return !this.haveSubmittedToServer && !this.IsLoading && !isEmptyOrWhitespace(this.serverValidationMessage);\r\n }\r\n\r\n @computed\r\n public get canDisplaySubmittedError(): boolean {\r\n return this.haveSubmittedToServer && !this.IsLoading && !isEmptyOrWhitespace(this.serverValidationMessage);\r\n }\r\n\r\n @computed\r\n public get canDisplayForm(): boolean {\r\n return !this.canDisplayLoadError && !this.canDisplaySubmittedError && !this.haveSubmittedToServer && !this.IsLoading;\r\n }\r\n\r\n @computed\r\n public get getSnagPhotos(): SnagPhotoModelDTO[] {\r\n return this.snagPhotoStore.getSnagPhotos.filter(sp => !sp.isDeleted && (sp.id === undefined || sp.id === \"\"));\r\n }\r\n\r\n @computed\r\n public get getSnagPhotosTmp(): string[] {\r\n return this.snagPhotoStore.getTmpPhotos;\r\n }\r\n\r\n // #endregion Can Display Properties\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // public isFieldValid(fieldName: keyof FieldType): boolean {\r\n // const { isValid, errorMessage } = this.validateDecorators(fieldName);\r\n\r\n // this.setError(fieldName, errorMessage);\r\n // this.setValid(fieldName, isValid);\r\n\r\n // return isValid;\r\n // }\r\n\r\n // public isFieldValid(fieldName: \"title\" | \"details\" | \"areaId\", value: any): boolean {\r\n // if (fieldName === \"title\" || fieldName === \"details\" || fieldName === \"areaId\") {\r\n // const { isValid, errorMessage } = this.validateDecorators(fieldName);\r\n\r\n // this.setError(fieldName, errorMessage);\r\n // this.setValid(fieldName, isValid);\r\n\r\n // return isValid;\r\n // }\r\n // else\r\n // {\r\n // return true;\r\n // }\r\n // }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { computed } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\n\r\n// Custom\r\nimport { SnagModel } from \"Custom/Models/DashboardModels/SnagModel\";\r\nimport moment from \"moment\";\r\nimport { SnagStatusType } from \"../../Models/Enums/SnagStatusType\";\r\n\r\nexport class SnagViewModel extends ViewModelBase {\r\n constructor(model: SnagModel) {\r\n super(new SnagModel());\r\n\r\n this.model = model;\r\n }\r\n\r\n @computed\r\n public get Details(): string {\r\n return this.model.details;\r\n }\r\n\r\n @computed\r\n public get isCompleted(): boolean {\r\n return this.model.resolved;\r\n }\r\n\r\n @computed\r\n public get isRejected(): boolean {\r\n return this.model.snagStatus === SnagStatusType.Rejected;\r\n }\r\n\r\n @computed\r\n public get FormattedSnagStatus(): string {\r\n if (this.isCompleted) {\r\n const resolvedDate = this.model.resolvedDate !== null && this.model.resolvedDate !== undefined ? moment(this.model.resolvedDate).format(\"DD/MM/YYYY\") : \"Unknown date\";\r\n return `COMPLETED: ${resolvedDate}`;\r\n }\r\n\r\n if (this.isRejected) {\r\n const snagStatusUpdatedDate =\r\n this.model.snagStatusUpdatedDate !== null && this.model.snagStatusUpdatedDate !== undefined\r\n ? moment(this.model.snagStatusUpdatedDate).format(\"DD/MM/YYYY\")\r\n : \"Unknown date\";\r\n return `REJECTED: ${snagStatusUpdatedDate}`;\r\n }\r\n\r\n // If reported or approved\r\n const reportedDate = this.model.reportedDate !== null && this.model.reportedDate !== undefined ? moment(this.model.reportedDate).format(\"DD/MM/YYYY\") : \"Unknown date\";\r\n return `REPORTED: ${reportedDate}`;\r\n }\r\n\r\n @computed\r\n public get Number(): string {\r\n return this.model.snagNumber;\r\n }\r\n\r\n @computed\r\n public get NumberAndArea(): string {\r\n let areaName = this.model.areaName !== null && this.model.areaName !== undefined ? this.model.areaName.toUpperCase() : \"\";\r\n return `${this.model.snagNumber} - ${areaName}`;\r\n }\r\n\r\n @computed\r\n public get Title(): string {\r\n return this.model.title;\r\n }\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\n\r\n// Custom\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\nimport { SnagModelDTO } from \"Custom/Models/DashboardModels/SnagModel\";\r\nimport { SnagsModel } from \"Custom/Models/DashboardModels/SnagsModel\";\r\nimport { NewSnagViewModel } from \"Custom/ViewModels/DashboardSubViewModels/NewSnagViewModel\";\r\nimport { SnagViewModel } from \"Custom/ViewModels/DashboardSubViewModels/SnagViewModel\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { StoresInstance } from \"../../Stores\";\r\n\r\nexport class SnagsViewModel extends ViewModelBase {\r\n constructor(propertyId: string) {\r\n super(new SnagsModel());\r\n this.setDecorators(SnagsModel);\r\n\r\n //console.log(\"SNAGSVM CONSTRUCTOR: PropertyId\", propertyId);\r\n this.propertyId = propertyId;\r\n\r\n this.newSnagViewModel = new NewSnagViewModel(this, propertyId);\r\n\r\n if (propertyId !== null && propertyId !== undefined && propertyId !== \"\") {\r\n this.load(propertyId);\r\n }\r\n }\r\n\r\n // #region Properties\r\n\r\n @observable\r\n public propertyId: string = \"\";\r\n\r\n @observable\r\n public apiStatus: ApiStatus = ApiStatus.loading;\r\n\r\n @observable\r\n public newSnagViewModel: NewSnagViewModel;\r\n\r\n // #endregion Properties\r\n\r\n // #region Computeds\r\n\r\n @computed\r\n public get SnagViewModels() {\r\n return this.model.snags.map(snag => new SnagViewModel(snag));\r\n }\r\n\r\n @computed\r\n public get ApiStatus(): ApiStatus {\r\n return this.apiStatus;\r\n }\r\n\r\n // #endregion Computeds\r\n\r\n // #region Actions\r\n\r\n @action\r\n public setApiStatus(apiStatus: ApiStatus) {\r\n this.apiStatus = apiStatus;\r\n }\r\n\r\n @action\r\n public setNewSnagsViewModel = (propertyId: string) => {\r\n this.newSnagViewModel = new NewSnagViewModel(this, propertyId);\r\n };\r\n\r\n public add = (dto: SnagModelDTO, propertyId: string): void => {\r\n this.model.addFromDto(dto);\r\n\r\n // Reset its viewmodel.\r\n this.setNewSnagsViewModel(propertyId);\r\n };\r\n\r\n public navigateToDashboard = () => {\r\n this.history.push(`/${this.propertyId}`);\r\n };\r\n\r\n public naviagateToViewSnag = (propertyId: string, snagId: string) => {\r\n this.history.push(\"/snag/:propertyId/:snagId\".replace(\":propertyId\", propertyId).replace(\":snagId\", snagId));\r\n };\r\n\r\n private load = async (id: string): Promise => {\r\n this.setApiStatus(ApiStatus.loading);\r\n\r\n try {\r\n const apiResult = await this.Get(Server.Api.Dashboard.GetSnags + \"/\" + id);\r\n\r\n if (apiResult.wasSuccessful) {\r\n this.model.fromDto(apiResult.payload);\r\n this.setApiStatus(ApiStatus.success);\r\n } else {\r\n this.setApiStatus(ApiStatus.error);\r\n }\r\n } catch (exception) {\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n // #endregion Actions\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","import { Theme } from \"@material-ui/core\";\r\nimport { useTheme, makeStyles } from \"@material-ui/core/styles\";\r\nimport React from \"react\";\r\nimport Dropzone, { useDropzone } from \"react-dropzone\";\r\n\r\nconst useStyles: any = makeStyles((theme: Theme) => ({\r\n dropzone: {\r\n alignItems: \"center\",\r\n backgroundColor: \"white\",\r\n borderColor: \"#D4D2D7\",\r\n borderRadius: \"0px\",\r\n borderStyle: \"dashed\",\r\n borderWidth: \"1px\",\r\n cursor: \"pointer\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n marginBottom: \"16px\",\r\n minHeight: \"90px\",\r\n \"& > p\": {\r\n color: \"#7F7F7F\",\r\n fontSize: \"12px\",\r\n maxWidth: \"200px\",\r\n textAlign: \"center\",\r\n },\r\n },\r\n}));\r\n\r\nexport interface IUploadableImageProps {\r\n imageUrl?: string;\r\n className?: string;\r\n onImageSelected?: (imageFile: File) => any;\r\n}\r\n\r\nconst allowedImageTypes = [\"image/jpeg\", \"image/png\"];\r\nconst maxSize = 100000000; // 100mb\r\n\r\nexport const UploadableImage: React.FC = props => {\r\n const { imageUrl, className } = props;\r\n const theme: any = useTheme();\r\n const classes: any = useStyles(theme);\r\n\r\n const onDrop = (acceptedFiles: any) => {\r\n const { onImageSelected } = props;\r\n const selectedImage = acceptedFiles[0];\r\n\r\n if (onImageSelected) {\r\n onImageSelected(selectedImage);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {({ getRootProps, getInputProps, isDragActive }) => {\r\n return (\r\n
\r\n
\r\n \r\n

Click or drag a file to attach an image (.JPG .PNG)

\r\n {imageUrl && (\r\n
\r\n {\"Upload\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }}\r\n
\r\n );\r\n};\r\n","import { darken, lighten, makeStyles } from \"@material-ui/core\";\r\nimport { Theme } from \"@material-ui/core/styles\";\r\n\r\n/**\r\n * Contains style information for the new snag form.\r\n */\r\nexport const NewSnagFormStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n display: \"flex\",\r\n flex: \"1\",\r\n flexDirection: \"column\",\r\n \"& div.MuiFormControl-root\": {\r\n marginBottom: \"16px\",\r\n width: \"100%\",\r\n },\r\n \"& div.MuiOutlinedInput-multiline\": {\r\n padding: \"8px 10px\",\r\n \"& textarea\": {\r\n minHeight: \"70px\",\r\n },\r\n },\r\n \"& button\": {\r\n width: \"100%\",\r\n },\r\n },\r\n selectionRow: {},\r\n textAreaRow: {},\r\n buttonRow: {},\r\n formControl: {},\r\n formInputControl: {},\r\n formTextAreaControl: {},\r\n submitButton: {},\r\n [theme.breakpoints.up(\"md\")]: {\r\n root: {\r\n \"& > form > div.form-group > div\": {\r\n backgroundColor: \"#F9F9F9\",\r\n },\r\n },\r\n selectionRow: {\r\n display: \"flex\",\r\n flex: \"1\",\r\n margin: \"0 -15px\",\r\n paddingBottom: \"10px\",\r\n },\r\n selectionCol: {\r\n display: \"flex\",\r\n flex: \"1\",\r\n margin: \"0 -15px\",\r\n paddingBottom: \"10px\",\r\n flexDirection: \"column\",\r\n },\r\n textAreaRow: {\r\n display: \"flex\",\r\n flex: \"1\",\r\n margin: \"0 -15px\",\r\n paddingBottom: \"10px\",\r\n \"& > div\": {\r\n flex: 1,\r\n },\r\n },\r\n textAreaCol: {\r\n display: \"flex\",\r\n flex: \"1\",\r\n margin: \"0 -15px\",\r\n paddingBottom: \"10px\",\r\n flexDirection: \"column\",\r\n \"& > div\": {\r\n flex: 1,\r\n },\r\n },\r\n buttonRow: {\r\n paddingTop: \"8px\",\r\n },\r\n formControl: {\r\n padding: \"0 15px\",\r\n },\r\n formInputControl: {\r\n minWidth: \"285px !important\",\r\n },\r\n formTextAreaControl: {\r\n minWidth: \"100%\",\r\n },\r\n submitButton: {\r\n maxWidth: \"255px\",\r\n },\r\n },\r\n}));\r\n","// Libraries\r\nimport { Box, Button, Grid, Modal, Typography } from \"@material-ui/core\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\n\r\n// Core\r\nimport { UploadableImage } from \"Core/Components/Forms\";\r\nimport { Loader } from \"Core/Components/Loader\";\r\nimport { KeyValuePair } from \"Core/Models/KeyValuePair\";\r\n\r\n// Custom\r\nimport { NewSnagFormStyles } from \"Custom/StylesAppSpecific/DashboardSubViews/NewSnagFormStyling\";\r\n\r\nimport { StandardButton } from \"Custom/Components/Buttons/StandardButton\";\r\nimport { EditableInput } from \"Custom/Components/Edits/EditableInput\";\r\nimport { NewSnagViewModel } from \"Custom/ViewModels/DashboardSubViewModels/NewSnagViewModel\";\r\nimport { useRouter } from \"Core/Utils\";\r\nimport { SnagPhotoModelDTO } from \"Custom/Models/DashboardModels/SnagModel\";\r\nimport Lightbox from \"Custom/Components/Popups/Lightbox\";\r\n\r\ninterface IProps {\r\n viewModel: NewSnagViewModel;\r\n}\r\n\r\nexport const NewSnag: React.FC = props => {\r\n // #region Code Behind\r\n const { match } = useRouter();\r\n const { propertyId } = match.params as any;\r\n\r\n const [lightboxImg, setLightboxImg] = React.useState(\"\");\r\n const [lightboxImgName, setLightboxImgName] = React.useState(\"\");\r\n const [lightboxOpen, setLightboxOpen] = React.useState(false);\r\n\r\n const newSnagFormStyles = NewSnagFormStyles();\r\n\r\n const getImageFileUrl = () => {\r\n const imageFile = props.viewModel.model.imageFile;\r\n\r\n if (imageFile) {\r\n return imageFile.name;\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n\r\n const canDisplayThumbnails = () => {\r\n return props.viewModel.getSnagPhotos.length > 0;\r\n };\r\n\r\n const addPhoto = (file: File) => {\r\n props.viewModel.addTmpPhoto(file);\r\n };\r\n\r\n const deletePhoto = (index: number) => {\r\n props.viewModel.removePhoto(index);\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n const renderBusy = () => ;\r\n\r\n const renderLoadError = () => (\r\n \r\n There seems to have been a problem.\r\n {props.viewModel.serverValidationMessage}\r\n props.viewModel.tryLoadAgain(propertyId)} />\r\n \r\n );\r\n\r\n const renderSubmittedError = () => (\r\n \r\n There seems to have been a problem.\r\n {props.viewModel.serverValidationMessage}\r\n \r\n \r\n );\r\n\r\n const renderForm = () => (\r\n \r\n
\r\n \r\n \r\n {props.viewModel.areaErrorMessage !== \"\" && (\r\n \r\n {props.viewModel.areaErrorMessage}\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n\r\n {props.viewModel.titleErrorMessage !== \"\" && (\r\n \r\n {props.viewModel.titleErrorMessage}\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n\r\n {props.viewModel.detailsErrorMessage !== \"\" && (\r\n \r\n {props.viewModel.detailsErrorMessage}\r\n \r\n )}\r\n \r\n \r\n {canDisplayThumbnails() && (\r\n \r\n {props.viewModel.getSnagPhotos.map((photo: SnagPhotoModelDTO, index: number) => {\r\n return (\r\n \r\n {\r\n setLightboxImg(photo.azureFileName);\r\n setLightboxImgName(photo.fileName);\r\n setLightboxOpen(true);\r\n }}\r\n />\r\n \r\n deletePhoto(index)}\r\n />\r\n \r\n {photo.fileName}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n )}\r\n \r\n props.viewModel.save(propertyId)} />\r\n \r\n \r\n
\r\n );\r\n\r\n return useObserver(() => (\r\n \r\n {props.viewModel.canDisplayBusy && renderBusy()}\r\n {props.viewModel.canDisplayLoadError && renderLoadError()}\r\n {props.viewModel.canDisplaySubmittedError && renderSubmittedError()}\r\n {props.viewModel.canDisplayForm && renderForm()}\r\n \r\n \r\n ));\r\n};\r\n","import { Accordion, AccordionDetails, AccordionSummary, Box, Card, CardActionArea, CardContent, Typography } from \"@material-ui/core\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport RemoveCircleIcon from \"@material-ui/icons/RemoveCircle\";\r\nimport ArrowForwardIosOutlinedIcon from \"@material-ui/icons/ArrowForwardIosOutlined\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\n\r\n// Core\r\nimport { Loader } from \"Core/Components/Loader\";\r\nimport { useRouter } from \"Core/Utils\";\r\n\r\n// Custom\r\nimport { CloseButton } from \"Custom/Components/Buttons/CloseButton\";\r\nimport { Error } from \"Custom/Components/Error\";\r\n\r\nimport { DashboardPageStyles } from \"Custom/StylesAppSpecific/DashboardPagesStyling\";\r\nimport { SnagsPageStyles } from \"Custom/StylesAppSpecific/DashboardSubViews/SnagsPageStyling\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { SnagsViewModel } from \"Custom/ViewModels/DashboardSubViewModels/SnagsViewModel\";\r\nimport { SnagViewModel } from \"Custom/ViewModels/DashboardSubViewModels/SnagViewModel\";\r\nimport { NewSnag } from \"Custom/Views/DashboardSubViews/NewSnag\";\r\nimport { sortByString } from \"Core/Utils/Utils\";\r\n\r\nexport const Snags: React.FC = () => {\r\n // #region Code Behind\r\n\r\n const router = useRouter();\r\n const theme = useTheme();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"md\")) ? true : false;\r\n\r\n //console.log(\"SNAGSVIEW: PropertyId\", router.match.params);\r\n const propertyId = (router.match.params as any).propertyId;\r\n\r\n const dashboardPageStyles = DashboardPageStyles();\r\n const snagsPageStyles = SnagsPageStyles();\r\n\r\n const [viewModel] = useState(() => new SnagsViewModel(propertyId));\r\n\r\n const onAccordionChange = () => (event: React.ChangeEvent<{}>, expanded: boolean) => {\r\n viewModel.newSnagViewModel.setCanDisplay(!viewModel.newSnagViewModel.canDisplay);\r\n };\r\n\r\n const getSnagDateClasses = (snagViewModel: SnagViewModel): string => {\r\n let classes = snagsPageStyles.snagTitle;\r\n\r\n if (snagViewModel.isCompleted) {\r\n classes = `${classes} ${snagsPageStyles.resolvedSnagTitle}`;\r\n } else if (snagViewModel.isRejected) {\r\n classes = `${classes} ${snagsPageStyles.rejectedSnagTitle}`;\r\n }\r\n\r\n return classes;\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n const renderBusy = () => ;\r\n\r\n const renderError = () => ;\r\n\r\n const renderTitleRow = () =>\r\n isDesktop ? (\r\n <>\r\n \r\n \r\n Customer Care\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n Customer Care\r\n \r\n \r\n );\r\n\r\n const renderIntroductionRow = () => (\r\n \r\n Your snags\r\n \r\n );\r\n\r\n const renderSnags = () => (\r\n \r\n {viewModel.SnagViewModels.slice()\r\n .sort((a, b) => sortByString(a.model.reportedDate, b.model.reportedDate))\r\n .map((snagViewModel, index) => (\r\n viewModel.naviagateToViewSnag(propertyId, snagViewModel.model.id!)}>\r\n \r\n \r\n \r\n \r\n {console.log(\"SnagViewModel\", snagViewModel)}\r\n {snagViewModel.NumberAndArea}\r\n \r\n \r\n {snagViewModel.FormattedSnagStatus}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {snagViewModel.Title}\r\n \r\n \r\n \r\n {snagViewModel.Details}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n );\r\n\r\n const renderForm = () => {\r\n return (\r\n \r\n : }>\r\n Report a snag\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return useObserver(() => (\r\n \r\n \r\n {viewModel.ApiStatus === ApiStatus.success && (\r\n \r\n {renderTitleRow()}\r\n {renderForm()}\r\n {renderIntroductionRow()}\r\n {renderSnags()}\r\n \r\n )}\r\n {viewModel.ApiStatus === ApiStatus.loading && {renderBusy()}}\r\n {viewModel.ApiStatus === ApiStatus.error && {renderError()}}\r\n \r\n \r\n ));\r\n};\r\n","import { darken, lighten, makeStyles, Theme } from \"@material-ui/core\";\r\n\r\nexport const DocumentLinkStyle = makeStyles((theme: Theme) => ({\r\n root: {\r\n color: \"black\",\r\n \"& > div\": {\r\n alignItems: \"center\",\r\n display: \"flex\",\r\n fontSize: \"12px\",\r\n \"& > svg\": {\r\n fill: \"#575756\",\r\n fontSize: \"30px\",\r\n marginRight: \"6px\",\r\n },\r\n },\r\n },\r\n}));\r\n","// Libraries\r\nimport { Box, Link } from \"@material-ui/core\";\r\nimport InsertDriveFileOutlinedIcon from \"@material-ui/icons/InsertDriveFileOutlined\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\n\r\n// Core\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\n\r\n// Custom\r\nimport { DocumentLinkStyle } from \"./LinksStyling\";\r\nimport { DocumentType } from \"Custom/Models/Enums/DocumentTypes\";\r\nimport { DocumentsViewModel } from \"Custom/ViewModels/DashboardSubViewModels/DocumentsViewModel\";\r\nimport { DevelopmentDocumentsViewModel } from \"Custom/ViewModels/DashboardSubViewModels/DevelopmentDocumentsViewModel\";\r\nimport { PropertyDrawingDocumentsViewModel } from \"Custom/ViewModels/DashboardSubViewModels/PropertyDrawingDocumentsViewModel\";\r\n\r\ninterface IProps {\r\n id: string;\r\n className?: string;\r\n displayName: string;\r\n link: string;\r\n type: DocumentType;\r\n viewModel: DocumentsViewModel | PropertyDrawingDocumentsViewModel | DevelopmentDocumentsViewModel;\r\n}\r\n\r\nexport const DocumentLink: React.FC = props => {\r\n // #region Code Behind\r\n\r\n const documentLinkStyle = DocumentLinkStyle();\r\n\r\n const getClassNames = (): string => {\r\n let classNames = documentLinkStyle.root;\r\n\r\n if (!isEmptyOrWhitespace(props.className)) {\r\n classNames = `${classNames} ${props.className}`;\r\n }\r\n\r\n return classNames;\r\n };\r\n\r\n const handleClick = () => {\r\n props.viewModel.getDocument(props.id, props.displayName);\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n return useObserver(() => (\r\n \r\n \r\n \r\n {props.displayName}\r\n \r\n \r\n ));\r\n};\r\n","import { darken, lighten, makeStyles } from \"@material-ui/core\";\r\nimport { Theme } from \"@material-ui/core/styles\";\r\nimport { nth } from \"lodash-es\";\r\nimport { Children } from \"react\";\r\n\r\n/**\r\n * Contains style information for the documnents page.\r\n */\r\nexport const DocumentsPageStyles = makeStyles((theme: Theme) => ({\r\n root: {},\r\n documentCategories: {\r\n margin: \"0 18px\",\r\n },\r\n documentCategory: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n padding: \"17.5px 0 15px 0\",\r\n \"&:not(:last-child)\": {\r\n borderBottom: \"1px dashed #ced4da\",\r\n },\r\n },\r\n documentCategoryTitle: {\r\n fontSize: \"12px\",\r\n fontWeight: \"bold\",\r\n marginBottom: \"10px\",\r\n },\r\n documentLink: {\r\n overflowWrap: \"anywhere\",\r\n \"& > div\": {\r\n margin: \"2.5px 0 2.5px -4px\",\r\n },\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n titleRow: {\r\n padding: \"27px 18px 15px 18px\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n \"& > button\": {\r\n padding: \"0\",\r\n },\r\n \"& > h5\": {\r\n padding: \"0px\",\r\n },\r\n \"& .MuiSvgIcon-root\": {\r\n margin: \"-7px\",\r\n fontSize: \"35px\",\r\n },\r\n },\r\n title: {\r\n fontSize: \"20px\",\r\n fontWeight: \"bold\",\r\n },\r\n titleBorder: {\r\n borderBottom: \"1px solid #CED4DA\",\r\n margin: \"0 18px 16px\",\r\n },\r\n documentCategories: {\r\n margin: \"-10px 18px 0 18px\",\r\n },\r\n documentCategory: {\r\n \"& > div\": {\r\n display: \"grid\",\r\n gridTemplateColumns: \"repeat(auto-fill,minmax(300px, 1fr))\",\r\n columnGap: \"18px\",\r\n },\r\n },\r\n },\r\n accordion: {\r\n \"& > div.MuiCollapse-container\": {\r\n background: \"none\",\r\n },\r\n },\r\n accordionSummary: {},\r\n productGroupAccordionDetails: {\r\n padding: \"0px\",\r\n flexWrap: \"wrap\",\r\n },\r\n productGroupAccordionDetail: {},\r\n productGroupTitleContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n flex: \"1 1 auto\",\r\n \"& > p\": {\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n marginRight: \"10px\",\r\n },\r\n },\r\n productGroupCounterContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n marginLeft: \"auto\",\r\n },\r\n productGroupChoiceCounterContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n marginLeft: \"20px\",\r\n alignItems: \"center\",\r\n \"& > svg\": {\r\n fontSize: \"15px\",\r\n stroke: \"black\",\r\n strokeWidth: \"0.5px\",\r\n },\r\n },\r\n checklistSubCategory: {\r\n fontSize: \"12px\",\r\n fontWeight: \"bold\",\r\n margin: \"15px 0px\",\r\n padding: \"10px 0px\",\r\n flexBasis: \"100%\",\r\n borderTop: \"1px dashed #ced4da\",\r\n },\r\n}));\r\n","export enum DocumentType {\r\n drawing = 0,\r\n property = 1,\r\n development = 2,\r\n}\r\n","import { Accordion, AccordionDetails, AccordionSummary, Box, Typography } from \"@material-ui/core\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\n\r\n// Core\r\nimport { Loader } from \"Core/Components/Loader\";\r\nimport { useRouter } from \"Core/Utils\";\r\n\r\n// Custom\r\nimport { CloseButton } from \"Custom/Components/Buttons/CloseButton\";\r\nimport { Error } from \"Custom/Components/Error\";\r\nimport { DocumentLink } from \"Custom/Components/Links/DocumentLink\";\r\n\r\nimport { DashboardPageStyles } from \"Custom/StylesAppSpecific/DashboardPagesStyling\";\r\nimport { DocumentsPageStyles } from \"Custom/StylesAppSpecific/DashboardSubViews/DocumentPageStyling\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { DocumentsViewModel } from \"Custom/ViewModels/DashboardSubViewModels/DocumentsViewModel\";\r\nimport { DevelopmentDocumentsViewModel } from \"Custom/ViewModels/DashboardSubViewModels/DevelopmentDocumentsViewModel\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport CancelIcon from \"@material-ui/icons/Cancel\";\r\nimport { DocumentsModel } from \"Custom/Models/DashboardModels/DocumentsModel\";\r\nimport { DocumentModel } from \"Custom/Models/DashboardModels/DocumentModel\";\r\nimport { PropertyDrawingDocumentsViewModel } from \"Custom/ViewModels/DashboardSubViewModels/PropertyDrawingDocumentsViewModel\";\r\nimport { DocumentCategoryType } from \"Custom/Models/Enums/DocumentCategoryType\";\r\nimport { isNullOrEmpty } from \"Core/Utils/Utils\";\r\nimport { DashboardViewModel } from \"Custom/ViewModels/DashboardViewModel\";\r\nimport { StoresInstance } from \"Custom/Stores\";\r\nimport { DocumentType } from \"Custom/Models/Enums/DocumentTypes\";\r\n\r\nexport const Documents: React.FC = () => {\r\n // #region Code Behind\r\n\r\n const router = useRouter();\r\n const theme = useTheme();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"md\")) ? true : false;\r\n\r\n const documentType = DocumentType;\r\n\r\n //console.log(\"DOCUMENTSVIEW: PropertyId\", router.match.params);\r\n const propertyId = (router.match.params as any).propertyId;\r\n\r\n const dashboardPageStyles = DashboardPageStyles();\r\n const documentsPageStyles = DocumentsPageStyles();\r\n\r\n const [viewModel] = useState(() => new DocumentsViewModel(propertyId));\r\n const [developmentViewModel] = useState(() => new DevelopmentDocumentsViewModel(propertyId));\r\n const [viewDrawingDocumentModel] = useState(() => new PropertyDrawingDocumentsViewModel(propertyId));\r\n\r\n const onAccordionChange = (document: DocumentsModel) => (event: React.ChangeEvent<{}>, expanded: boolean) => {\r\n document.setCanDisplay(!document.canDisplay);\r\n };\r\n\r\n const getDocumentLength = (documents: DocumentModel[]) => {\r\n let count = 0;\r\n if (documents && documents.length) {\r\n documents.map(document => {\r\n if (!isNullOrEmpty(document.documentUrl) && document.type != 3) {\r\n count++;\r\n }\r\n });\r\n }\r\n\r\n return count > 1 ? `${count} documents` : `${count} document`;\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n const renderBusy = () => ;\r\n\r\n const renderError = () => ;\r\n\r\n const renderTitleRow = () =>\r\n isDesktop ? (\r\n <>\r\n \r\n \r\n Property Documents\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n Property Documents\r\n \r\n \r\n );\r\n\r\n const renderDevelopmentTitleRow = () =>\r\n isDesktop ? (\r\n <>\r\n \r\n \r\n Development Documents\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n Development Documents\r\n \r\n \r\n );\r\n\r\n const renderDrawingTitleRow = () =>\r\n isDesktop ? (\r\n <>\r\n \r\n \r\n Drawing Documents\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n Drawing Documents\r\n \r\n \r\n );\r\n\r\n const renderDocuments = (documents: any[], type: DocumentType, viewModel: DocumentsViewModel | PropertyDrawingDocumentsViewModel | DevelopmentDocumentsViewModel) => (\r\n documents.map((document, index) =>\r\n document.type == 3 ? (\r\n
\r\n \r\n
\r\n ) : (\r\n document.documentUrl && (\r\n \r\n )\r\n )\r\n ));\r\n\r\n const renderDocumentCategories = () => (\r\n \r\n {viewModel.DocumentCategories.length > 0\r\n ? viewModel.DocumentCategories.map((documentCategory, index) => (\r\n \r\n : }\r\n aria-label=\"Expand\"\r\n aria-controls={`additional-content${index}`}\r\n id={`additional-header${index}`}\r\n >\r\n \r\n {documentCategory.categoryName.split(/(?=[A-Z])/).join(\" \")}\r\n \r\n {getDocumentLength(documentCategory.documents)}\r\n \r\n \r\n \r\n \r\n {renderDocuments(documentCategory.documents, documentType.property, viewModel)}\r\n \r\n \r\n ))\r\n : \"There are currently no documents to show. If you think this may be incorrect, please contact your sales representative.\"}\r\n \r\n );\r\n\r\n const renderDevelopmentDocumentCategories = () => (\r\n \r\n {developmentViewModel.DocumentCategories.length > 0\r\n ? developmentViewModel.DocumentCategories.map((documentCategory, index) => (\r\n \r\n : }\r\n aria-label=\"Expand\"\r\n aria-controls={`additional-content${index}`}\r\n id={`additional-header${index}`}\r\n >\r\n \r\n {documentCategory.categoryName.split(/(?=[A-Z])/).join(\" \")}\r\n \r\n {getDocumentLength(documentCategory.documents)}\r\n \r\n \r\n \r\n \r\n {renderDocuments(documentCategory.documents, documentType.development, developmentViewModel)}\r\n \r\n \r\n ))\r\n : \"There are currently no documents to show.\"}\r\n \r\n );\r\n\r\n const renderDrawingCategories = () => (\r\n \r\n {viewDrawingDocumentModel.Documents.length > 0\r\n ? viewDrawingDocumentModel.Documents.map((document, index) => (\r\n \r\n \r\n {document.DocumentName.split(/(?=[A-Z])/).join(\" \")}\r\n {/* \r\n {viewDrawingDocumentModel.Documents.length}\r\n */}\r\n \r\n {document.documentUrl && (\r\n \r\n )}\r\n \r\n ))\r\n : \"There are currently no documents to show. If you think this may be incorrect, please contact your sales representative.\"}\r\n \r\n );\r\n\r\n return useObserver(() => (\r\n <>\r\n \r\n \r\n {developmentViewModel.ApiStatus === ApiStatus.success && (\r\n \r\n {renderDevelopmentTitleRow()}\r\n {renderDevelopmentDocumentCategories()}\r\n \r\n )}\r\n {developmentViewModel.ApiStatus === ApiStatus.loading && {renderBusy()}}\r\n {developmentViewModel.ApiStatus === ApiStatus.error && {renderError()}}\r\n \r\n \r\n \r\n \r\n {viewModel.ApiStatus === ApiStatus.success && (\r\n \r\n {renderTitleRow()}\r\n {renderDocumentCategories()}\r\n \r\n )}\r\n {viewModel.ApiStatus === ApiStatus.loading && {renderBusy()}}\r\n {viewModel.ApiStatus === ApiStatus.error && {renderError()}}\r\n \r\n \r\n \r\n \r\n {viewModel.ApiStatus === ApiStatus.success && (\r\n \r\n {renderDrawingTitleRow()}\r\n {renderDrawingCategories()}\r\n \r\n )}\r\n {viewModel.ApiStatus === ApiStatus.loading && {renderBusy()}}\r\n {viewModel.ApiStatus === ApiStatus.error && {renderError()}}\r\n \r\n \r\n \r\n ));\r\n};\r\n","import { Box, darken, lighten, makeStyles } from \"@material-ui/core\";\r\nimport { Theme } from \"@material-ui/core/styles\";\r\nimport styled from \"styled-components\";\r\n\r\n/**\r\n * Contains style information for the choices product group component.\r\n */\r\nexport const ChoicesProductGroupStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n width: \"100%\",\r\n },\r\n productContainer: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n padding: \"10px\",\r\n \"& > div\": {\r\n padding: \"10px\",\r\n },\r\n \"&:not(:last-child)\": {\r\n borderBottom: \"1px dashed #ced4da\",\r\n },\r\n },\r\n productContentRow: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n width: \"100%\",\r\n maxWidth: \"calc(100% - 135px)\",\r\n },\r\n productContentContainer: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flex: \"1 1 auto\",\r\n alignItems: \"center\",\r\n gap: \"10px\",\r\n \"& > div:first-child\": {\r\n flex: \"1\",\r\n flexDirection: \"column\",\r\n },\r\n \"& > div:last-child\": {\r\n display: \"flex\",\r\n \"& > div\": {\r\n flex: \"1\",\r\n \"& > div\": {\r\n wordBreak: \"break-all\",\r\n whiteSpace: \"normal\",\r\n },\r\n },\r\n },\r\n },\r\n productImageContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n margin: \"0px 20px 0px 0px\",\r\n maxWidth: \"91px\",\r\n width: \"100%\",\r\n maxHeight: \"91px\",\r\n height: \"100%\",\r\n minHeight: \"100%\",\r\n minWidth: \"91px\",\r\n\r\n \"& > img\": {\r\n maxWidth: \"91px\",\r\n maxHeight: \"91px\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n minHeight: \"100%\",\r\n minWidth: \"91px\",\r\n },\r\n },\r\n productTitleDesc: {\r\n minWidth: \"500px\",\r\n },\r\n productTitle: {\r\n fontWeight: \"bold\",\r\n },\r\n productDescription: {},\r\n productVariantsContainer: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n productRadio: {\r\n border: \"1px solid #CED4DA\",\r\n borderRadius: \"5px\",\r\n padding: \"3px 10px\",\r\n width: \"100%\",\r\n margin: \"0px\",\r\n maxHeight: \"41px\",\r\n },\r\n productRadioChecked: {\r\n border: \"1px solid #CED4DA\",\r\n borderRadius: \"5px\",\r\n padding: \"3px 10px\",\r\n width: \"100%\",\r\n margin: \"0px\",\r\n backgroundColor: \"#50C14A\",\r\n color: \"#FFFFFF\",\r\n \"& > span > span > div > svg\": {\r\n color: \"#FFFFFF\",\r\n },\r\n },\r\n radioButton: {\r\n color: \"#7F7F7F\",\r\n padding: \"0 5px 0 0\",\r\n \"& > span > div > svg\": {\r\n height: \"22px\",\r\n width: \"22px\",\r\n },\r\n },\r\n productCheckbox: {\r\n border: \"1px solid #CED4DA\",\r\n borderRadius: \"5px\",\r\n padding: \"3px 10px\",\r\n width: \"100%\",\r\n margin: \"0px\",\r\n maxHeight: \"41px\",\r\n },\r\n productCheckboxChecked: {\r\n border: \"1px solid #CED4DA\",\r\n borderRadius: \"5px\",\r\n padding: \"3px 10px\",\r\n width: \"100%\",\r\n margin: \"0px\",\r\n backgroundColor: \"#50C14A\",\r\n color: \"#FFFFFF\",\r\n \"& > span > span > svg\": {\r\n color: \"#FFFFFF\",\r\n },\r\n },\r\n checkboxButton: {\r\n color: \"#7F7F7F\",\r\n padding: \"0 5px 0 0\",\r\n \"& > span > svg\": {\r\n height: \"22px\",\r\n width: \"22px\",\r\n },\r\n },\r\n subtitle: {\r\n backgroundColor: \"#3C3C3B\",\r\n color: \"#FFFFFF\",\r\n padding: \"7px 18px\",\r\n },\r\n productVariantSelect: {\r\n marginTop: \"auto\",\r\n maxWidth: \"255px\",\r\n },\r\n noneoftheabovecontainer: {\r\n padding: \"10px\",\r\n \"& > div\": {\r\n padding: \"10px\",\r\n },\r\n },\r\n productRadioNoneOfTheAbove: {\r\n border: \"1px solid transparent\",\r\n borderRadius: \"5px\",\r\n padding: \"3px 10px\",\r\n width: \"100%\",\r\n margin: \"0px\",\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n productContainer: {\r\n alignItems: \"center\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n },\r\n productContentContainer: {\r\n flexDirection: \"row\",\r\n minWidth: \"750px\",\r\n },\r\n productContentRow: {\r\n alignItems: \"center\",\r\n },\r\n productRadioNoneOfTheAbove: {\r\n border: \"none\",\r\n color: \"#191919\",\r\n margin: \"0px\",\r\n \"& > span\": {\r\n padding: \"0 0 0 10px\",\r\n },\r\n },\r\n productRadio: {\r\n border: \"none\",\r\n color: \"#191919\",\r\n margin: \"0px\",\r\n \"& > span\": {\r\n padding: \"0 0 0 10px\",\r\n },\r\n },\r\n productRadioChecked: {\r\n background: \"none\",\r\n color: \"#191919\",\r\n border: \"none\",\r\n margin: \"0px\",\r\n \"& > span\": {\r\n padding: \"0 0 0 10px\",\r\n },\r\n \"& > span > span > div > svg\": {\r\n color: \"#7F7F7F\",\r\n },\r\n },\r\n productCheckbox: {\r\n border: \"none\",\r\n color: \"#191919\",\r\n margin: \"0px\",\r\n \"& > span\": {\r\n padding: \"0 0 0 10px\",\r\n },\r\n },\r\n productCheckboxChecked: {\r\n background: \"none\",\r\n color: \"#191919\",\r\n border: \"none\",\r\n margin: \"0px\",\r\n \"& > span\": {\r\n padding: \"0 0 0 10px\",\r\n },\r\n \"& > span > span > svg\": {\r\n color: \"#7F7F7F\",\r\n },\r\n },\r\n productVariantSelect: {\r\n minWidth: \"255px\",\r\n \"& .MuiSelect-icon\": {\r\n top: \"auto !important\",\r\n },\r\n },\r\n },\r\n counterButton: {\r\n color: \"black\",\r\n width: \"30px\",\r\n height: \"30px\",\r\n maxWidth: \"30px\",\r\n maxHeight: \"30px\",\r\n background: \"#ffffff 0% 0% no-repeat padding-box\",\r\n border: \"1px solid #ced4da\",\r\n cursor: \"pointer\",\r\n },\r\n counterLabel: {\r\n marginRight: \"5px\",\r\n fontWeight: \"bold\",\r\n },\r\n counterInput: {\r\n width: \"112px\",\r\n },\r\n}));\r\n\r\nexport const GridContainerCounter: any = styled(Box)`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n","import { Box, FormControlLabel, MenuItem, Radio, Checkbox, Select, Typography } from \"@material-ui/core\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\n\r\nimport { ChoicesProductGroupStyles, GridContainerCounter } from \"Custom/StylesAppSpecific/DashboardSubViews/ChoicesProductGroupStyling\";\r\nimport { ProductViewModel } from \"Custom/ViewModels/DashboardSubViewModels/ProductViewModel\";\r\nimport { ProductGroupViewModel } from \"Custom/ViewModels/DashboardSubViewModels/ProductGroupViewModel\";\r\nimport { KeyValuePair } from \"Core/Models/KeyValuePair\";\r\nimport { CheckedIcon } from \"../../Content/Components/CheckedIcon\";\r\nimport Lightbox from \"Custom/Components/Popups/Lightbox\";\r\nimport { action } from \"mobx\";\r\nimport { EditableInput } from \"Custom/Components/Edits/EditableInput\";\r\nimport { ProductSummaryModel } from \"Custom/Models/DashboardModels/ProductSummary\";\r\n\r\ninterface IProps {\r\n viewModel: ProductViewModel;\r\n productGroupViewModel: ProductGroupViewModel;\r\n index: number;\r\n isExtra: boolean;\r\n isDisabled: boolean;\r\n}\r\n\r\nexport const ChoicesProduct: React.FC = props => {\r\n const theme = useTheme();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"md\")) ? true : false;\r\n const [productImage, setProductImage] = useState(\"\");\r\n const [isProductImgOpen, setIsProductImageOpen] = useState(false);\r\n const [productVariantErrorMessage, setProductVariantErrorMessage] = useState(\"\");\r\n const choicesProductGroupStyles = ChoicesProductGroupStyles();\r\n\r\n const inputCSSClassNames = (defaultCSS: string) => {\r\n let CSSRetVal = defaultCSS;\r\n\r\n if (props.isDisabled) {\r\n CSSRetVal += \" choices-product__input--disabled\";\r\n }\r\n\r\n return CSSRetVal;\r\n };\r\n\r\n const handleProductIsSelectOption = () => {\r\n setProductVariantErrorMessage(\"\");\r\n if (!props.isDisabled) {\r\n if (props.viewModel.hasVariants) {\r\n setProductVariantErrorMessage(\"Please select a variant\");\r\n }\r\n props.productGroupViewModel.setProductIsSelected(props.viewModel);\r\n }\r\n };\r\n\r\n const handleProductIsSelectExtra = () => {\r\n setProductVariantErrorMessage(\"\");\r\n if (!props.isDisabled) {\r\n if (props.viewModel.hasVariants && !props.viewModel.model.isSelected) {\r\n setProductVariantErrorMessage(\"Please select a variant\");\r\n }\r\n props.productGroupViewModel.setProductExtraIsSelected(props.viewModel, !props.viewModel.model.isSelected);\r\n }\r\n };\r\n\r\n const handleSelectProductVariant = (val: string) => {\r\n setProductVariantErrorMessage(\"\");\r\n if (!props.isDisabled) {\r\n props.productGroupViewModel.selectProductVariant(val, props.viewModel);\r\n }\r\n };\r\n\r\n const productSummary = props.viewModel.model.productsSummary.find(p => p.productId === props.viewModel.model.productId);\r\n return useObserver(() => (\r\n \r\n \r\n \r\n {\r\n if (props.viewModel.productOriginalImage) {\r\n setProductImage(props.viewModel.productOriginalImage);\r\n setIsProductImageOpen(true);\r\n }\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n {props.viewModel.productTitle}\r\n \r\n \r\n {props.viewModel.model.productDescription}\r\n \r\n \r\n {props.viewModel.model.isQuantityAllowed && (\r\n \r\n \r\n \r\n \r\n )}\r\n {props.viewModel.hasVariants && (\r\n \r\n handleSelectProductVariant(e.target.value as string)}\r\n placeholder={!props.isDisabled ? \"Please select variant...\" : \"\"}\r\n className={choicesProductGroupStyles.productVariantSelect}\r\n value={props.viewModel.getSelectedVariant}\r\n >\r\n {props.viewModel.productVariantsOptions!.map((item: KeyValuePair, index: number) => {\r\n return (\r\n \r\n {item.key}\r\n \r\n );\r\n })}\r\n \r\n {productVariantErrorMessage !== \"\" && (\r\n \r\n {productVariantErrorMessage}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n {console.log(\"props.viewModel.model.price\", props.viewModel.model.price)}\r\n \r\n {props.viewModel.isOption && (\r\n }\r\n checked={props.viewModel.model.isSelected}\r\n label={\r\n \r\n {props.viewModel.model.isQuantityAllowed && props.viewModel.model.getPriceOnAddQuantity()\r\n ? props.viewModel.model.getPriceOnAddQuantity()\r\n : props.viewModel.model.price}\r\n \r\n }\r\n labelPlacement={isDesktop ? \"start\" : \"end\"}\r\n name={`${props.productGroupViewModel.model.productGroupName + props.index}`}\r\n value={props.viewModel.model.productId}\r\n onChange={() => handleProductIsSelectOption()}\r\n className={inputCSSClassNames(props.viewModel.model.isSelected ? choicesProductGroupStyles.productRadioChecked : choicesProductGroupStyles.productRadio)}\r\n />\r\n )}\r\n\r\n {props.viewModel.isExtra && (\r\n }\r\n checked={props.viewModel.model.isSelected}\r\n label={{props.viewModel.model.extraPrice}}\r\n labelPlacement={isDesktop ? \"start\" : \"end\"}\r\n name={`${props.productGroupViewModel.model.productGroupName + props.index}-extra`}\r\n value={props.viewModel.model.productId}\r\n onChange={e => handleProductIsSelectExtra()}\r\n className={inputCSSClassNames(\r\n props.viewModel.model.isSelected ? choicesProductGroupStyles.productCheckboxChecked : choicesProductGroupStyles.productCheckbox,\r\n )}\r\n />\r\n )}\r\n \r\n \r\n \r\n ));\r\n};\r\n\r\nexport default ChoicesProduct;\r\n","import { Box, FormControlLabel, Radio, Typography } from \"@material-ui/core\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\n\r\nimport { ChoicesProductGroupStyles } from \"Custom/StylesAppSpecific/DashboardSubViews/ChoicesProductGroupStyling\";\r\nimport { ProductGroupViewModel } from \"Custom/ViewModels/DashboardSubViewModels/ProductGroupViewModel\";\r\n\r\nimport { ChoicesProduct } from \"Custom/Views/DashboardSubViews/ChoicesProduct\";\r\n\r\ninterface IProps {\r\n viewModel: ProductGroupViewModel;\r\n accordionLabel: string;\r\n isDisabled: boolean;\r\n}\r\n\r\nexport const ChoicesProductGroup: React.FC = props => {\r\n const theme = useTheme();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"md\")) ? true : false;\r\n\r\n const choicesProductGroupStyles = ChoicesProductGroupStyles();\r\n\r\n const renderChoices = () => {\r\n const isDisabled = props.isDisabled;\r\n\r\n return props.viewModel.sortedProducts.map((product, index) => (\r\n \r\n ));\r\n };\r\n\r\n const renderExtras = () => {\r\n const isDisabled = props.isDisabled;\r\n\r\n return props.viewModel.sortedExtras.map((product, index) => (\r\n \r\n ));\r\n };\r\n\r\n const renderSubTitle = (subtitle: string) => (\r\n \r\n {subtitle}\r\n \r\n );\r\n\r\n const inputCSSClassNames = (defaultCSS: string) => {\r\n let CSSRetVal = defaultCSS;\r\n\r\n if (props.isDisabled) {\r\n CSSRetVal += \" choices-product__input--disabled\";\r\n }\r\n\r\n return CSSRetVal;\r\n };\r\n\r\n const renderNoneOfTheAbove = () => (\r\n \r\n \r\n }\r\n checked={props.viewModel.model.isNoneOfTheAbove}\r\n label={None of the above}\r\n labelPlacement={isDesktop ? \"start\" : \"end\"}\r\n name={`${props.viewModel.model.productGroupName}-${`nonoftheabove`}`}\r\n onChange={() => !props.isDisabled && props.viewModel.setNoneOfTheAbove()}\r\n className={inputCSSClassNames(\r\n props.viewModel.model.isNoneOfTheAbove ? choicesProductGroupStyles.productRadioChecked : choicesProductGroupStyles.productRadioNoneOfTheAbove,\r\n )}\r\n />\r\n \r\n \r\n );\r\n\r\n return useObserver(() => (\r\n \r\n {renderSubTitle(props.accordionLabel)}\r\n {renderChoices()}\r\n {renderNoneOfTheAbove()}\r\n {props.viewModel.hasExtras && (\r\n \r\n {renderSubTitle(\"...and any extras (if required)\")}\r\n {renderExtras()}\r\n \r\n )}\r\n \r\n ));\r\n};\r\n\r\nexport default ChoicesProductGroup;\r\n","import { darken, lighten, makeStyles } from \"@material-ui/core\";\r\nimport { Theme } from \"@material-ui/core/styles\";\r\n\r\n/**\r\n * Contains style information for the choices area page.\r\n */\r\nexport const ChoicesAreaPageStyles = makeStyles((theme: Theme) => ({\r\n root: {},\r\n titleRow: {\r\n backgroundColor: \"#F9F9F9\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flex: \"0 0 auto\",\r\n \"& > h5\": {\r\n fontSize: \"16px\",\r\n fontWeight: \"bold\",\r\n padding: \"0 18px\",\r\n textAlign: \"center\",\r\n },\r\n \"& > p\": {\r\n fontSize: \"12px\",\r\n lineHeight: 1.25,\r\n padding: \"4px 18px 22px 18px\",\r\n textAlign: \"center\",\r\n },\r\n },\r\n titleImageRow: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n marginTop: \"4px\",\r\n flex: \"0 0 auto\",\r\n \"& > div:first-child\": {\r\n flex: 1,\r\n },\r\n \"& > div.MuiCardMedia-root\": {\r\n borderRadius: \"50%\",\r\n height: \"160px\",\r\n margin: \"21px\",\r\n width: \"160px\",\r\n },\r\n \"& > div:last-child\": {\r\n alignItems: \"flex-start\",\r\n display: \"flex\",\r\n flex: 1,\r\n justifyContent: \"flex-end\",\r\n },\r\n },\r\n submitButton: {\r\n maxWidth: \"295px\",\r\n margin: \"0 auto\",\r\n padding: \"18px 0px\",\r\n \"& > button\": {\r\n width: \"100%\",\r\n },\r\n },\r\n productGroupAccordionDetails: {\r\n padding: \"0px\",\r\n },\r\n productGroupTitleContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n flex: \"1 1 auto\",\r\n \"& > p\": {\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n marginRight: \"10px\",\r\n },\r\n },\r\n productGroupCounterContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n marginLeft: \"auto\",\r\n },\r\n productGroupChoiceCounterContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n marginLeft: \"20px\",\r\n alignItems: \"center\",\r\n \"& > svg\": {\r\n fontSize: \"15px\",\r\n stroke: \"black\",\r\n strokeWidth: \"0.5px\",\r\n },\r\n },\r\n productGroupChoiceCounterContainerComplete: {\r\n color: \"#3AAA35\",\r\n \"& > svg\": {\r\n stroke: \"3AAA35\",\r\n },\r\n },\r\n accordion: {\r\n \"& > div.MuiCollapse-container\": {\r\n background: \"none\",\r\n },\r\n },\r\n accordionSummary: {},\r\n [theme.breakpoints.up(\"md\")]: {\r\n titleRow: {\r\n background: \"none\",\r\n flexDirection: \"row\",\r\n },\r\n titleImageRow: {\r\n marginTop: \"0px\",\r\n \"& > div.MuiCardMedia-root\": {\r\n height: \"132px\",\r\n margin: \"17px 15px\",\r\n width: \"132px\",\r\n },\r\n },\r\n titleTextRow: {\r\n flex: \"1\",\r\n margin: \"17px 18px\",\r\n \"& > div\": {\r\n padding: \"5px 0 0 0\",\r\n },\r\n \"& > h5\": {\r\n fontSize: \"16px\",\r\n fontWeight: \"bold\",\r\n padding: \"18px 0 0 0\",\r\n textAlign: \"left\",\r\n },\r\n \"& > p\": {\r\n fontSize: \"12px\",\r\n lineHeight: 1.25,\r\n padding: \"9px 0 0 0\",\r\n textAlign: \"left\",\r\n },\r\n },\r\n submitButton: {\r\n padding: \"30px 0\",\r\n },\r\n accordion: {\r\n \"& > div.MuiCollapse-container\": {\r\n backgroundColor: \"#F9F9F9\",\r\n },\r\n },\r\n accordionSummary: {\r\n margin: \"0 18px\",\r\n \"& > div.MuiAccordionSummary-content\": {\r\n marginLeft: \"-18px\",\r\n },\r\n \"& > div.MuiAccordionSummary-expandIcon\": {\r\n marginRight: \"-18px\",\r\n },\r\n },\r\n },\r\n}));\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\n// Custom\r\n\r\nexport class ProductVariantModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id: string = \"\";\r\n\r\n @observable\r\n public productId: string = \"\";\r\n\r\n @observable\r\n public productVariantCode: string = \"\";\r\n\r\n @observable\r\n public productVariantName: string = \"\";\r\n\r\n @observable\r\n public productVariantThumbnailImageUrl: string = \"\";\r\n\r\n @observable\r\n public productVariantOriginalImageUrl: string = \"\";\r\n\r\n @observable\r\n public isSelected: boolean = false;\r\n\r\n @observable\r\n public productVariantIsHidden: boolean = false;\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: ProductVariantModelDTO): void => {\r\n this.id = dto.id;\r\n this.productId = dto.productId;\r\n this.productVariantCode = dto.productVariantCode;\r\n this.productVariantName = dto.productVariantName;\r\n this.productVariantThumbnailImageUrl = dto.productVariantThumbnailImageUrl;\r\n this.productVariantOriginalImageUrl = dto.productVariantOriginalImageUrl;\r\n this.productVariantIsHidden = dto.productVariantIsHidden;\r\n };\r\n\r\n public toDto = (): ProductVariantModelDTO[] => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n\r\nexport interface ProductVariantModelDTO {\r\n id: string;\r\n productId: string;\r\n productVariantCode: string;\r\n productVariantName: string;\r\n productVariantThumbnailImageUrl: string;\r\n productVariantOriginalImageUrl: string;\r\n productVariantIsHidden: boolean;\r\n}\r\n\r\nexport interface ProductVariantToOrderDTO {\r\n id: string;\r\n productId: string;\r\n productVariantCode: string;\r\n productVariantName: string;\r\n isSelected: boolean;\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\n\r\n// App\r\nimport { ProductVariantModel } from \"Custom/Models/DashboardModels/ProductVariantModel\";\r\n\r\nexport class ProductVariantViewModel extends ViewModelBase {\r\n constructor(productVariant: ProductVariantModel, isSelected: boolean) {\r\n super(productVariant);\r\n this.setDecorators(ProductVariantModel);\r\n\r\n this.setInitialValues(productVariant, isSelected);\r\n }\r\n\r\n @action\r\n private setInitialValues(productVariant: ProductVariantModel, isSelected: boolean) {\r\n if (isSelected) {\r\n this.model.isSelected = true;\r\n }\r\n }\r\n\r\n @computed\r\n public get productVariantTitle() {\r\n return this.model.productVariantCode + \" - \" + this.model.productVariantName;\r\n }\r\n\r\n @computed\r\n public get id() {\r\n return this.model.id;\r\n }\r\n\r\n @computed\r\n public get productId() {\r\n return this.model.productId;\r\n }\r\n\r\n @computed\r\n public get code() {\r\n return this.model.productVariantCode;\r\n }\r\n\r\n @computed\r\n public get name() {\r\n return this.model.productVariantName;\r\n }\r\n\r\n @computed\r\n public get isHidden() {\r\n return String(this.model.productVariantIsHidden);\r\n }\r\n\r\n @computed\r\n public get productVariantThumbnailImage() {\r\n return this.model.productVariantThumbnailImageUrl;\r\n }\r\n\r\n @computed\r\n public get productVariantOriginalImage() {\r\n return this.model.productVariantOriginalImageUrl;\r\n }\r\n\r\n @action\r\n public setIsSelected(val: boolean) {\r\n this.model.isSelected = val;\r\n }\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\n// Custom\r\n\r\nexport class SpecificationHouseTypeProductModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id: string = \"\";\r\n\r\n @observable\r\n public specificationId: string = \"\";\r\n\r\n @observable\r\n public houseTypeId: string = \"\";\r\n\r\n @observable\r\n public areaId: string = \"\";\r\n\r\n @observable\r\n public productGroupId: string = \"\";\r\n\r\n @observable\r\n public productId: string = \"\";\r\n\r\n @observable\r\n public defaultOverridePrice: string = \"\";\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: SpecificationHouseTypeProductModelDTO): void => {\r\n this.id = dto.id;\r\n this.specificationId = dto.specificationId;\r\n this.houseTypeId = dto.houseTypeId;\r\n this.areaId = dto.areaId;\r\n this.productGroupId = dto.productGroupId;\r\n this.productId = dto.productId;\r\n this.defaultOverridePrice = dto.defaultOverridePrice;\r\n };\r\n\r\n public toDto = (): SpecificationHouseTypeProductModelDTO[] => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n\r\nexport interface SpecificationHouseTypeProductModelDTO {\r\n id: string;\r\n specificationId: string;\r\n houseTypeId: string;\r\n areaId: string;\r\n productGroupId: string;\r\n productId: string;\r\n defaultOverridePrice: string;\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\n// Custom\r\n\r\nexport class SpecificationProductModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id: string = \"\";\r\n\r\n @observable\r\n public specificationId: string = \"\";\r\n\r\n @observable\r\n public areaId: string = \"\";\r\n\r\n @observable\r\n public productGroupId: string = \"\";\r\n\r\n @observable\r\n public productId: string = \"\";\r\n\r\n @observable\r\n public isIncluded: boolean = false;\r\n\r\n @observable\r\n public isUpgrade: boolean = false;\r\n\r\n @observable\r\n public isOptional: boolean = false;\r\n\r\n @observable\r\n public price: string = \"\";\r\n\r\n @observable\r\n public isOverride: boolean = false;\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: SpecificationProductModelDTO): void => {\r\n this.id = dto.id;\r\n this.specificationId = dto.specificationId;\r\n this.areaId = dto.areaId;\r\n this.productGroupId = dto.productGroupId;\r\n this.productId = dto.productId;\r\n this.isIncluded = dto.isIncluded;\r\n this.isUpgrade = dto.isUpgrade;\r\n this.isOptional = dto.isOptional;\r\n this.price = dto.price;\r\n this.isOverride = dto.isOverride;\r\n };\r\n\r\n public toDto = (): SpecificationProductModelDTO[] => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n\r\nexport interface SpecificationProductModelDTO {\r\n id: string;\r\n specificationId: string;\r\n areaId: string;\r\n productGroupId: string;\r\n productId: string;\r\n isIncluded: boolean;\r\n isUpgrade: boolean;\r\n isOptional: boolean;\r\n price: string;\r\n isOverride: boolean;\r\n}\r\n","/**\r\n * Regex to match all non numerical values and decimal points.\r\n */\r\nconst regexRemoveNonNumeric = /[^\\d.]/g;\r\n\r\n/**\r\n * Regex to match all non numerical values, decimal points and minus signs.\r\n */\r\nconst regexRemoveNonNumericNegative = /[^\\d.-]/g;\r\n\r\n/**\r\n * Formats the currency value with the pound sign, thousands separator and 2 decimal places.\r\n * @param {string} amount Price or currency value.\r\n * @param {boolean} [allowNegatives=false] Flag to allow negative values, false by default.\r\n * @returns {string} Formatted currency value.\r\n */\r\nexport const currencyFormat = (amount: string, allowNegatives: boolean = false) => {\r\n //JC: Remove \"£\" character for now, as the regex fails on the production build. (£ becomes \\xa3 so the regex validation fails.)\r\n // 1234567.89 => £1,234,567.89\r\n // 12a34b56c7.89 => £1,234,567.89\r\n\r\n // TODO: Allow params to set format options.\r\n let options = {\r\n //style: \"currency\",\r\n //currency: \"GBP\",\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2,\r\n };\r\n\r\n const formatter = new Intl.NumberFormat(\"en-GB\", options);\r\n\r\n // JC: To remove any gibberish entered by the user before we format the value.\r\n let numValue = +amount.toString().replace(allowNegatives ? regexRemoveNonNumericNegative : regexRemoveNonNumeric, \"\");\r\n\r\n if (isNaN(numValue)) {\r\n // JC: Just echo the value back to the user if we can't format it.\r\n return amount;\r\n } else {\r\n let formattedValue = formatter.format(numValue);\r\n return formattedValue;\r\n }\r\n};\r\n\r\n/**\r\n * Unformats the currency value before upserting. Removes everything but numbers and decimal.\r\n * @param {string} amount Price or currency value.\r\n * @param {boolean} [allowNegatives=false] Flag to allow negative values, false by default.\r\n * @returns {string} Unformatted currency value.\r\n */\r\nexport const currencyFormatForUpsert = (amount: string, allowNegatives: boolean = false) => {\r\n // £1,234,567.89 => 1234567.89\r\n\r\n return amount.toString().replace(allowNegatives ? regexRemoveNonNumericNegative : regexRemoveNonNumeric, \"\");\r\n};\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\n// Custom\r\n//import { ChoiceModel, ChoiceModelDTO } from \"./ChoiceModel\";\r\n\r\nexport class ProductSummaryModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id: string = \"\";\r\n\r\n @observable\r\n public orderId: string = \"\";\r\n\r\n @observable\r\n public productId: string = \"\";\r\n\r\n @observable\r\n public productName: string = \"\";\r\n\r\n @observable\r\n public productCode: string = \"\";\r\n\r\n @observable\r\n public productVariantId: string = \"\";\r\n\r\n @observable\r\n public productVariantName: string = \"\";\r\n\r\n @observable\r\n public productVariantCode: string = \"\";\r\n\r\n @observable\r\n public orderAreaId: string = \"\";\r\n\r\n @observable\r\n public orderAreaProductGroupId: string = \"\";\r\n\r\n @observable\r\n public isIncluded: boolean = false;\r\n\r\n @observable\r\n public isUpgrade: boolean = false;\r\n\r\n @observable\r\n public isOptional: boolean = false;\r\n\r\n @observable\r\n public cost: string = \"\";\r\n\r\n @observable\r\n public isPOA: boolean = false;\r\n\r\n @observable\r\n public quantity: number = 0;\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: ProductSummaryModelDTO): void => {\r\n this.id = dto.id;\r\n this.orderId = dto.orderId;\r\n this.productId = dto.productId;\r\n this.productName = dto.productName;\r\n this.productCode = dto.productCode;\r\n this.productVariantId = dto.productVariantId;\r\n this.productVariantName = dto.productVariantName;\r\n this.productVariantCode = dto.productVariantCode;\r\n this.orderAreaId = dto.orderAreaId;\r\n this.orderAreaProductGroupId = dto.orderAreaProductGroupId;\r\n this.isIncluded = dto.isIncluded;\r\n this.isUpgrade = dto.isUpgrade;\r\n this.isOptional = dto.isOptional;\r\n this.cost = dto.cost;\r\n this.isPOA = dto.isPOA;\r\n this.quantity = dto.quantity;\r\n };\r\n\r\n public toDto = (): ProductSummaryModelDTO => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n\r\nexport interface ProductSummaryModelDTO {\r\n id: string;\r\n orderId: string;\r\n productId: string;\r\n productName: string;\r\n productCode: string;\r\n productVariantId: string;\r\n productVariantName: string;\r\n productVariantCode: string;\r\n orderAreaId: string;\r\n orderAreaProductGroupId: string;\r\n isIncluded: boolean;\r\n isUpgrade: boolean;\r\n isOptional: boolean;\r\n cost: string;\r\n isPOA: boolean;\r\n quantity: number;\r\n isPaid: boolean;\r\n}\r\n","// Libraries\r\nimport { action, computed, observable, runInAction } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\n// Custom\r\nimport { ProductVariantModel, ProductVariantModelDTO, ProductVariantToOrderDTO } from \"./ProductVariantModel\";\r\nimport { SpecificationHouseTypeProductModel, SpecificationHouseTypeProductModelDTO } from \"./SpecificationHouseTypeProductModel\";\r\nimport { SpecificationProductModel, SpecificationProductModelDTO } from \"./SpecificationProductModel\";\r\nimport { Format } from \"Custom/Utils\";\r\nimport { isNaN, multiply } from \"lodash-es\";\r\nimport { GlobalSettingType } from \"../Enums/GlobalSettingType\";\r\nimport { ProductSummaryModel, ProductSummaryModelDTO } from \"./ProductSummary\";\r\n\r\nexport class ProductModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id: string = \"\";\r\n\r\n @observable\r\n public productId: string = \"\";\r\n\r\n @observable\r\n public productGroupId: string = \"\";\r\n\r\n @observable\r\n public orderAreaProductGroupProductId: string = \"\";\r\n\r\n @observable\r\n public productCode: string = \"\";\r\n\r\n @observable\r\n public productName: string = \"\";\r\n\r\n @observable\r\n public productDescription: string = \"\";\r\n\r\n @observable\r\n public productThumbnailImageUrl: string = \"\";\r\n\r\n @observable\r\n public productOriginalImageUrl: string = \"\";\r\n\r\n @observable\r\n public productPrice: string = \"\";\r\n\r\n @observable\r\n public houseTypeProductPrice: string = \"\";\r\n\r\n @observable\r\n public orderPrice: string = \"\";\r\n\r\n @observable\r\n public isIncluded: boolean = false;\r\n\r\n @observable\r\n public isUpgrade: boolean = false;\r\n\r\n @observable\r\n public isOptional: boolean = false;\r\n\r\n @observable\r\n public productPOA: boolean = false;\r\n\r\n @observable\r\n public orderPOA: boolean = false;\r\n\r\n @observable\r\n public productVariantId: string = \"\";\r\n\r\n @observable\r\n public orderId: string = \"\";\r\n\r\n @observable\r\n public specificationId: string = \"\";\r\n\r\n @observable\r\n public houseTypeId: string = \"\";\r\n\r\n @observable\r\n public areaId: string = \"\";\r\n\r\n @observable\r\n public isOverride: boolean = false;\r\n\r\n @observable\r\n public productGropuId: string = \"\";\r\n\r\n @observable\r\n public highestIncludedProductCost: string = \"\";\r\n\r\n @observable\r\n public productVariants = observable([]);\r\n\r\n @observable\r\n public products = observable([]);\r\n\r\n @observable\r\n public specificationProducts = observable([]);\r\n\r\n @observable\r\n public specificationHouseTypeProducts = observable([]);\r\n\r\n @observable\r\n public productsSummary = observable([]);\r\n\r\n @observable\r\n public isSelected: boolean = false;\r\n\r\n @observable\r\n public orderQuantity: number = 0;\r\n\r\n @observable\r\n public isQuantityAllowed: boolean = false;\r\n\r\n @action\r\n private setNewOrderQuantity = (value: any) => {\r\n this.orderQuantity = value;\r\n };\r\n\r\n // #endregion Properties\r\n public onQuantityChange = (event: any) => {\r\n if (event.target.value) {\r\n this.setNewOrderQuantity(event.target.value);\r\n }\r\n };\r\n\r\n private specificationProductHasPrice = () => {\r\n if (this.isOverride) {\r\n if (this.houseTypeProductPrice !== undefined && this.houseTypeProductPrice !== null && this.houseTypeProductPrice !== \"\") {\r\n return true;\r\n }\r\n } else {\r\n if (this.houseTypeProductPrice !== undefined && this.houseTypeProductPrice !== null && this.houseTypeProductPrice !== \"\" && this.houseTypeProductPrice !== \"0.00\") {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n @computed\r\n private get showChoicesSum() {\r\n //TODO implement\r\n return true;\r\n // const setting = this.props.stores!.domain.globalSetting.getSettingByType(GlobalSettingType.ShowChoicesSum);\r\n\r\n // if (setting) {\r\n // if (setting.settingValue === \"0\") {\r\n // return false;\r\n // } else {\r\n // return true;\r\n // }\r\n // }\r\n\r\n // return true;\r\n }\r\n\r\n @computed\r\n public get getProductPrice() {\r\n if (this.orderPrice !== null && this.orderPrice !== undefined && this.orderPrice !== \"\") {\r\n return this.orderPrice;\r\n }\r\n\r\n if (this.highestIncludedProductCost !== null && this.highestIncludedProductCost !== undefined && this.highestIncludedProductCost !== \"\") {\r\n return this.highestIncludedProductCost;\r\n }\r\n\r\n if (this.houseTypeProductPrice !== null && this.houseTypeProductPrice !== undefined && this.houseTypeProductPrice !== \"\") {\r\n return this.houseTypeProductPrice;\r\n }\r\n\r\n return this.productPrice;\r\n }\r\n\r\n @computed\r\n public get extraPrice() {\r\n let retVal = \"\";\r\n if (this.isOptional) {\r\n if (!this.isOverride) {\r\n if (this.productPOA) {\r\n retVal = \"£POA\";\r\n } else {\r\n retVal = `£${Format.currencyFormat(this.productPrice, true)}`;\r\n }\r\n } else {\r\n const specificationHouseTypeProduct = this.specificationHouseTypeProducts.find(\r\n p =>\r\n p.specificationId === this.specificationId &&\r\n p.houseTypeId === this.houseTypeId &&\r\n p.areaId === this.areaId &&\r\n p.productGroupId === this.productGroupId &&\r\n p.productId === this.productId,\r\n );\r\n\r\n if (specificationHouseTypeProduct) {\r\n if (specificationHouseTypeProduct.defaultOverridePrice.toUpperCase() === \"POA\") {\r\n retVal = \"£POA\";\r\n } else {\r\n retVal = `£${Format.currencyFormat(specificationHouseTypeProduct.defaultOverridePrice, true)}`;\r\n }\r\n } else {\r\n if (this.houseTypeProductPrice !== undefined && this.houseTypeProductPrice !== null && this.houseTypeProductPrice !== \"\") {\r\n if (this.houseTypeProductPrice.toUpperCase() === \"POA\") {\r\n retVal = \"£POA\";\r\n } else {\r\n retVal = `£${Format.currencyFormat(this.houseTypeProductPrice, true)}`;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return retVal;\r\n }\r\n\r\n @action\r\n public getPriceOnAddQuantity = () => {\r\n if (this.orderPrice !== null && this.orderPrice !== undefined) {\r\n if (this.isIncluded) {\r\n return \"INCLUDED\";\r\n }\r\n if (this.productPOA) {\r\n return \"£POA\";\r\n }\r\n\r\n let productCost = this.orderPrice;\r\n if (this.orderQuantity) {\r\n productCost = multiply(parseInt(this.orderPrice), this.orderQuantity).toString();\r\n }\r\n return `£${Format.currencyFormat(productCost, true)}`;\r\n }\r\n return \"\";\r\n };\r\n\r\n @computed\r\n public get price() {\r\n //SW rules for checking price\r\n //1) Order table price first check - OrderAreaProductGroupProduct\r\n //2) Then House type override second check - SpecificationHouseTypeProduct\r\n //3) Then Default override third check - SpecificationProduct\r\n //4) Then retail price as the final check - Product\r\n\r\n let displayCost: string = \"\";\r\n\r\n //1) Order table price first check\r\n if (this.orderPrice !== null && this.orderPrice !== undefined && this.orderPrice !== \"\") {\r\n if (this.isIncluded) {\r\n return \"INCLUDED\";\r\n }\r\n if (this.productPOA) {\r\n return \"£POA\";\r\n }\r\n\r\n displayCost = this.orderPrice;\r\n }\r\n\r\n //2) Then House type override second check\r\n const specificationHouseTypeProduct = this.specificationHouseTypeProducts.find(\r\n p =>\r\n p.specificationId === this.specificationId &&\r\n p.houseTypeId === this.houseTypeId &&\r\n p.areaId === this.areaId &&\r\n p.productGroupId === this.productGroupId &&\r\n p.productId === this.productId,\r\n );\r\n\r\n if (specificationHouseTypeProduct) {\r\n displayCost = specificationHouseTypeProduct.defaultOverridePrice;\r\n }\r\n\r\n //3) Then Default override third check\r\n if (this.isIncluded) {\r\n return \"included\";\r\n }\r\n\r\n if (!this.isOverride) {\r\n displayCost = this.productPrice;\r\n }\r\n\r\n //4) Then retail price as the final check\r\n if (this.isIncluded) {\r\n return \"included\";\r\n }\r\n\r\n // Handle non upgrade\r\n if (this.specificationProductHasPrice() && !this.isUpgrade) {\r\n if (this.productPrice.toUpperCase() === \"POA\") {\r\n return \"£POA\";\r\n } else {\r\n displayCost = this.houseTypeProductPrice;\r\n }\r\n }\r\n\r\n if (this.productPOA) {\r\n return \"£POA\";\r\n }\r\n\r\n if (!this.showChoicesSum) {\r\n return `£${Format.currencyFormat(displayCost, true)}`;\r\n }\r\n\r\n // Handle upgrade\r\n if (this.isUpgrade && this.showChoicesSum) {\r\n // SW the value is always the value minus the highest 'Included' product cost\r\n // within the product group\r\n let highestCost: number = 0;\r\n const productCosts: number[] = [];\r\n const includedProducts = this.specificationProducts.filter(\r\n p => p.specificationId === this.specificationId && p.areaId === this.areaId && p.productGroupId === this.productGroupId && p.isIncluded === true,\r\n );\r\n\r\n console.log(\"product: \" + this.productName + \" this.specificationProducts: \" + this.specificationProducts);\r\n\r\n // Get a list of the prices for all included products in this group\r\n includedProducts.forEach(specificationProductIncluded => {\r\n const productWithCost = this.products.find(p => p.productId === specificationProductIncluded.productId);\r\n\r\n // Get the SpecificationHouseTypeProduct for the current included product in the loop.\r\n const specificationHouseTypeProductIncluded = this.specificationHouseTypeProducts.find(\r\n p =>\r\n p.specificationId === specificationProductIncluded.specificationId &&\r\n p.houseTypeId === this.houseTypeId &&\r\n p.areaId === specificationProductIncluded.areaId &&\r\n p.productGroupId === specificationProductIncluded.productGroupId &&\r\n p.productId === specificationProductIncluded.productId &&\r\n specificationProductIncluded.productId !== \"\",\r\n );\r\n\r\n // Use HTP price if it exists, else use the specification product, otherwise use the product price.\r\n // TODO: Refactor this to reduce code duplication like the code below this foreach loop.\r\n if (\r\n specificationHouseTypeProductIncluded &&\r\n specificationProductIncluded.isOverride &&\r\n specificationHouseTypeProductIncluded.defaultOverridePrice !== undefined &&\r\n specificationHouseTypeProductIncluded.defaultOverridePrice !== null &&\r\n specificationHouseTypeProductIncluded.defaultOverridePrice !== \"\"\r\n ) {\r\n var unformattedHTPPrice: number = Number(Format.currencyFormatForUpsert(specificationHouseTypeProductIncluded.defaultOverridePrice, true));\r\n productCosts.push(unformattedHTPPrice);\r\n } else if (this.specificationProductHasPrice() && specificationProductIncluded.price.toUpperCase() !== \"POA\" && specificationProductIncluded.isOverride) {\r\n var unformattedHTPPrice: number = Number(Format.currencyFormatForUpsert(specificationProductIncluded.price, true));\r\n productCosts.push(unformattedHTPPrice);\r\n } else if (productWithCost) {\r\n if (productWithCost.productPrice !== \"0.00\" && productWithCost.productPrice !== undefined) {\r\n var unformattedProductPrice: number = Number(Format.currencyFormatForUpsert(productWithCost.productPrice, true));\r\n\r\n productCosts.push(unformattedProductPrice);\r\n }\r\n }\r\n });\r\n\r\n var processedPrice: number = 0;\r\n\r\n // Calculate the cost of the current product based on the highest price of the included products.\r\n // Use HTP price if it exists, else use the specification product, otherwise use the product price.\r\n if (\r\n specificationHouseTypeProduct &&\r\n this.isOverride &&\r\n specificationHouseTypeProduct.defaultOverridePrice !== undefined &&\r\n specificationHouseTypeProduct.defaultOverridePrice !== null &&\r\n specificationHouseTypeProduct.defaultOverridePrice !== \"\"\r\n ) {\r\n processedPrice = Number(Format.currencyFormatForUpsert(specificationHouseTypeProduct.defaultOverridePrice, true));\r\n } else if (this.specificationProductHasPrice() && this.houseTypeProductPrice.toUpperCase() !== \"POA\" && this.isOverride) {\r\n processedPrice = Number(Format.currencyFormatForUpsert(this.houseTypeProductPrice, true));\r\n } else {\r\n processedPrice = Number(Format.currencyFormatForUpsert(this.productPrice, true));\r\n }\r\n\r\n if (productCosts.length > 0) {\r\n highestCost = Math.max.apply(Math, productCosts);\r\n displayCost = (processedPrice - highestCost).toFixed(2);\r\n } else {\r\n displayCost = processedPrice.toFixed(2);\r\n }\r\n\r\n return this.productPOA ? \"£POA\" : `£${Format.currencyFormat(displayCost, true)}`;\r\n }\r\n\r\n // let retVal = \"\";\r\n\r\n // if (this.isUpgrade) {\r\n // if (this.highestIncludedProductCost) {\r\n // retVal = `£${Format.currencyFormat(this.highestIncludedProductCost, true)}`;\r\n // } else {\r\n // retVal = `£${Format.currencyFormat(this.getProductPrice, true)}`;\r\n // }\r\n // }\r\n\r\n // if (this.houseTypeProductPrice !== undefined && this.houseTypeProductPrice !== null && this.houseTypeProductPrice !== \"\") {\r\n // if (this.houseTypeProductPrice.toUpperCase() === \"POA\") {\r\n // retVal = \"£POA\";\r\n // } else {\r\n // retVal = `£${Format.currencyFormat(this.houseTypeProductPrice, true)}`;\r\n // }\r\n // }\r\n\r\n // if (this.isOptional) {\r\n // retVal = `£${Format.currencyFormat(this.getProductPrice, true)}`;\r\n // }\r\n\r\n // return retVal;\r\n }\r\n\r\n @action\r\n public fromDto = (dto: ProductAndRelatedModelDTO): void => {\r\n this.id = dto.product.id;\r\n this.productId = dto.product.productId;\r\n this.productGroupId = dto.product.productGroupId;\r\n this.orderAreaProductGroupProductId = dto.product.orderAreaProductGroupProductId;\r\n this.productCode = dto.product.productCode;\r\n this.productName = dto.product.productName;\r\n this.productDescription = dto.product.productDescription;\r\n this.productThumbnailImageUrl = dto.product.productThumbnailImageUrl;\r\n this.productOriginalImageUrl = dto.product.productOriginalImageUrl;\r\n this.productPrice = dto.product.productPrice;\r\n this.houseTypeProductPrice = dto.product.houseTypeProductPrice;\r\n this.orderPrice = dto.product.orderPrice;\r\n this.isIncluded = dto.product.isIncluded;\r\n this.isUpgrade = dto.product.isUpgrade;\r\n this.isOptional = dto.product.isOptional;\r\n this.productPOA = dto.product.productPOA;\r\n this.orderPOA = dto.product.orderPOA;\r\n this.productVariantId = dto.product.productVariantId;\r\n this.orderId = dto.product.orderId;\r\n this.specificationId = dto.product.specificationId;\r\n this.houseTypeId = dto.product.houseTypeId;\r\n this.areaId = dto.product.areaId;\r\n this.isOverride = dto.product.isOverride;\r\n this.highestIncludedProductCost = dto.product.highestIncludedProductCost;\r\n this.orderQuantity = dto.product.orderQuantity;\r\n this.isQuantityAllowed = dto.product.isQuantityAllowed;\r\n\r\n for (const productVariantDto of dto.productVariants) {\r\n const productVariant = new ProductVariantModel();\r\n\r\n productVariant.fromDto(productVariantDto);\r\n\r\n this.productVariants.push(productVariant);\r\n }\r\n\r\n for (const specificationHouseTypeProductDto of dto.specificationHouseTypeProducts) {\r\n const specificationHouseTypeProduct = new SpecificationHouseTypeProductModel();\r\n\r\n specificationHouseTypeProduct.fromDto(specificationHouseTypeProductDto);\r\n\r\n this.specificationHouseTypeProducts.push(specificationHouseTypeProduct);\r\n }\r\n\r\n for (const specificationProductDto of dto.specificationProducts) {\r\n const specificationProduct = new SpecificationProductModel();\r\n\r\n specificationProduct.fromDto(specificationProductDto);\r\n\r\n this.specificationProducts.push(specificationProduct);\r\n }\r\n\r\n for (const productsSummaryDto of dto.productsSummary) {\r\n const productsSummary = new ProductSummaryModel();\r\n\r\n productsSummary.fromDto(productsSummaryDto);\r\n\r\n this.productsSummary.push(productsSummary);\r\n }\r\n\r\n for (const product of dto.products) {\r\n this.products.push(product);\r\n }\r\n };\r\n\r\n public toDto = (): OrderAreaProductGroupProductModelDTO => {\r\n let cost = this.price !== undefined ? this.price : \"\";\r\n\r\n const productCost = Number.isNaN(parseFloat(cost.replace(\"£\", \"\").replace(\",\", \"\"))) ? 0 : parseFloat(cost.replace(\"£\", \"\").replace(\",\", \"\"));\r\n\r\n let orderAreaProductGroupProduct: OrderAreaProductGroupProductModelDTO = {\r\n id: this.orderAreaProductGroupProductId,\r\n orderId: this.orderId,\r\n orderAreaId: \"\",\r\n orderAreaProductGroupId: this.productGroupId,\r\n productId: this.productId,\r\n cost: productCost.toString(),\r\n isIncluded: this.isIncluded,\r\n isUpgrade: this.isUpgrade,\r\n isOptional: this.isOptional,\r\n isBespoke: false,\r\n notes: \"\",\r\n bespokeName: \"\",\r\n bespokeNotes: \"\",\r\n isPOA: this.orderId !== null && this.orderId !== \"\" ? this.orderPOA : this.productPOA,\r\n productVariantId: this.productVariants.length > 0 ? this.productVariants.find(pv => pv.isSelected === true)!.id : \"\",\r\n quantity: this.orderQuantity,\r\n };\r\n\r\n return orderAreaProductGroupProduct;\r\n };\r\n}\r\n\r\nexport interface ProductModelDTO {\r\n id: string;\r\n productId: string;\r\n productGroupId: string;\r\n orderAreaProductGroupProductId: string;\r\n productCode: string;\r\n productName: string;\r\n productDescription: string;\r\n productThumbnailImageUrl: string;\r\n productOriginalImageUrl: string;\r\n productPrice: string;\r\n houseTypeProductPrice: string;\r\n orderPrice: string;\r\n isIncluded: boolean;\r\n isUpgrade: boolean;\r\n isOptional: boolean;\r\n productPOA: boolean;\r\n orderPOA: boolean;\r\n productVariantId: string;\r\n orderId: string;\r\n specificationId: string;\r\n houseTypeId: string;\r\n areaId: string;\r\n isOverride: boolean;\r\n highestIncludedProductCost: string;\r\n orderQuantity: number;\r\n isQuantityAllowed: boolean;\r\n}\r\n\r\nexport interface ProductAndRelatedModelDTO {\r\n product: ProductModelDTO;\r\n productVariants: ProductVariantModelDTO[];\r\n specificationHouseTypeProducts: SpecificationHouseTypeProductModelDTO[];\r\n specificationProducts: SpecificationProductModelDTO[];\r\n productsSummary: ProductSummaryModelDTO[];\r\n products: ProductModelDTO[];\r\n}\r\n\r\nexport interface OrderAreaProductGroupProductModelDTO {\r\n id: string;\r\n orderId: string;\r\n orderAreaId: string;\r\n orderAreaProductGroupId: string;\r\n productId: string;\r\n cost: string;\r\n isIncluded: boolean;\r\n isUpgrade: boolean;\r\n isOptional: boolean;\r\n isBespoke: boolean;\r\n notes: string;\r\n bespokeName: string;\r\n bespokeNotes: string;\r\n isPOA: boolean;\r\n productVariantId: string;\r\n quantity: number;\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\n\r\n// App\r\nimport { ProductVariantViewModel } from \"./ProductVariantViewModel\";\r\nimport { ProductModel } from \"Custom/Models/DashboardModels/ProductModel\";\r\nimport { Format } from \"../../Utils\";\r\nimport { KeyValuePair } from \"Core/Models/KeyValuePair\";\r\nimport HouseType1Svg from \"../../Content/Images/noImageDefault.svg\";\r\n\r\nexport class ProductViewModel extends ViewModelBase {\r\n @observable\r\n public productVariantViewModels: ProductVariantViewModel[] = [];\r\n\r\n constructor(product: ProductModel) {\r\n super(product);\r\n this.setDecorators(ProductModel);\r\n\r\n this.setInitialValues(product);\r\n this.createViewModels(this.getIsValid(product.productVariantId));\r\n }\r\n\r\n private getIsValid(val: string) {\r\n if (val !== null && val !== undefined && val !== \"\") {\r\n return val;\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n @action\r\n private setInitialValues(product: ProductModel) {\r\n if (this.getIsValid(product.orderAreaProductGroupProductId)) {\r\n this.model.isSelected = true;\r\n }\r\n }\r\n\r\n @computed\r\n public get OrderId() {\r\n return this.model.orderId;\r\n }\r\n\r\n @computed\r\n public get productImage() {\r\n if (this.hasVariants) {\r\n const variantId = this.getSelectedVariant ? this.getSelectedVariant : \"\";\r\n let variant = this.productVariantViewModels.find(pv => pv.model.id === variantId);\r\n if (variant && variant.productVariantThumbnailImage) {\r\n return variant.productVariantThumbnailImage;\r\n }\r\n }\r\n if (this.model.productThumbnailImageUrl !== null && this.model.productThumbnailImageUrl !== undefined && this.model.productThumbnailImageUrl !== \"\") {\r\n return this.model.productThumbnailImageUrl;\r\n }\r\n\r\n return HouseType1Svg;\r\n }\r\n\r\n @computed\r\n public get productOriginalImage() {\r\n if (this.hasVariants) {\r\n const variantId = this.getSelectedVariant ? this.getSelectedVariant : \"\";\r\n let variant = this.productVariantViewModels.find(pv => pv.model.id === variantId);\r\n if (variant && variant.productVariantOriginalImage) {\r\n return variant.productVariantOriginalImage;\r\n }\r\n }\r\n if (this.model.productOriginalImageUrl !== null && this.model.productOriginalImageUrl !== undefined && this.model.productOriginalImageUrl !== \"\") {\r\n return this.model.productOriginalImageUrl;\r\n }\r\n\r\n return HouseType1Svg;\r\n }\r\n\r\n @computed\r\n public get productTitle() {\r\n return this.model.productCode + \" - \" + this.model.productName;\r\n }\r\n\r\n @computed\r\n public get productVariants() {\r\n return this.productVariantViewModels;\r\n }\r\n\r\n @computed\r\n public get productsSummary() {\r\n return this.model.productsSummary;\r\n }\r\n\r\n @computed\r\n public get productVariantsOptions() {\r\n let options: KeyValuePair[] = [];\r\n\r\n let productSummary = this.productsSummary.find(\r\n item => item.orderAreaId === this.model.areaId && item.orderAreaProductGroupId === this.model.productGroupId && item.productId === this.model.productId,\r\n );\r\n let variants = this.productVariants.slice().sort((a, b) => a.model.productVariantName.localeCompare(b.model.productVariantName));\r\n\r\n if (variants.length > 0) {\r\n for (let variant of variants.filter(v => v.isHidden == \"False\")) {\r\n options.push({\r\n key: variant.productVariantTitle,\r\n value: variant.id,\r\n });\r\n }\r\n }\r\n\r\n if (productSummary !== undefined) {\r\n if (options.findIndex(o => o.value === productSummary!.productVariantId) === -1) {\r\n let variant = this.productVariants.find(pv => pv.productId === this.model.productId && pv.id === productSummary!.productVariantId);\r\n\r\n if (variant) {\r\n options.push({\r\n key: variant.productVariantTitle,\r\n value: variant.id,\r\n });\r\n }\r\n }\r\n }\r\n\r\n return options;\r\n }\r\n\r\n @computed\r\n public get hasVariants() {\r\n // If ProductVariants > 0\r\n // If product.hasVariants\r\n // If order already has variant selected\r\n\r\n return this.productVariants.length > 0;\r\n }\r\n\r\n @computed\r\n public get isOption() {\r\n return this.model.isIncluded || this.model.isUpgrade;\r\n }\r\n\r\n @computed\r\n public get isExtra() {\r\n return this.model.isOptional;\r\n }\r\n\r\n @computed\r\n public get getSelectedVariant() {\r\n let variant = this.productVariantViewModels.find(pv => pv.model.isSelected === true);\r\n\r\n return variant ? variant.model.id : \"\";\r\n }\r\n\r\n @action\r\n public setIsSelected(val: boolean) {\r\n this.model.isSelected = val;\r\n\r\n if (val === false) {\r\n for (const productVariant of this.productVariantViewModels) {\r\n productVariant.setIsSelected(false);\r\n }\r\n }\r\n }\r\n\r\n @action\r\n private createViewModels(productVariantId: string) {\r\n let isSelected: boolean = false;\r\n for (const productVariant of this.model.productVariants) {\r\n if (productVariant.id === productVariantId) {\r\n isSelected = true;\r\n this.productVariantViewModels.push(new ProductVariantViewModel(productVariant, isSelected));\r\n } else {\r\n this.productVariantViewModels.push(new ProductVariantViewModel(productVariant, isSelected));\r\n }\r\n }\r\n }\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\n// Custom\r\nimport { ProductModel, ProductModelDTO } from \"./ProductModel\";\r\nimport { ProductVariantModelDTO } from \"./ProductVariantModel\";\r\nimport { SpecificationHouseTypeProductModelDTO } from \"./SpecificationHouseTypeProductModel\";\r\nimport { SpecificationProductModelDTO } from \"./SpecificationProductModel\";\r\nimport { Format } from \"Custom/Utils\";\r\nimport { isFinite } from \"lodash-es\";\r\nimport { ProductSummaryModelDTO } from \"./ProductSummary\";\r\n\r\nexport class ProductGroupModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id: string = \"\";\r\n\r\n @observable\r\n public productGroupName: string = \"\";\r\n\r\n @observable\r\n public orderAreaProductGroupId: string = \"\";\r\n\r\n @observable\r\n public isOrderAreaProductGroupComplete: boolean = false;\r\n\r\n @observable\r\n public orderAreaProductGroupNotes: string = \"\";\r\n\r\n @observable\r\n public isNoneOfTheAbove: boolean = false;\r\n\r\n @observable\r\n public areaId: string = \"\";\r\n\r\n @observable\r\n public products = observable([]);\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: ProductGroupAndRelatedModelDTO): void => {\r\n this.id = dto.productGroup.id;\r\n this.productGroupName = dto.productGroup.productGroupName;\r\n this.orderAreaProductGroupId = dto.productGroup.orderAreaProductGroupId;\r\n this.isOrderAreaProductGroupComplete = dto.productGroup.isOrderAreaProductGroupComplete;\r\n this.orderAreaProductGroupNotes = dto.productGroup.orderAreaProductGroupNotes;\r\n this.isNoneOfTheAbove = dto.productGroup.isNoneOfTheAbove;\r\n this.areaId = dto.productGroup.areaId;\r\n\r\n // The value is always the value minus the highest 'Included' product cost within the product group if isUpgrade\r\n // See PropertyChoiceSelectorNestedProductListIncluded.tsx > getProductPrice() in HBP.\r\n let includedProductsWithPrice = dto.products.filter(\r\n p => p.isIncluded === true && p.productPrice !== \"\" && p.productPrice !== \"POA\" && p.productPrice !== null && p.productPrice !== undefined,\r\n );\r\n\r\n const productCosts: number[] = [];\r\n\r\n let includedProducts = dto.products.filter(\r\n p => p.isIncluded === true && p.productPrice !== \"\" && p.houseTypeProductPrice !== \"POA\" && p.productPrice !== null && p.productPrice !== undefined,\r\n );\r\n\r\n includedProducts.forEach(houseTypeProductIncluded => {\r\n // Use HTP price if it exists, otherwise use the product price.\r\n if (this.houseTypeProductHasPrice(houseTypeProductIncluded) && houseTypeProductIncluded.houseTypeProductPrice.toUpperCase() !== \"POA\") {\r\n let unformattedHTPPrice: number = Number(Format.currencyFormatForUpsert(houseTypeProductIncluded.houseTypeProductPrice));\r\n productCosts.push(unformattedHTPPrice);\r\n } else if (houseTypeProductIncluded.productPrice) {\r\n if (houseTypeProductIncluded.productPrice !== \"0.00\") {\r\n let unformattedProductPrice: number = Number(Format.currencyFormatForUpsert(houseTypeProductIncluded.productPrice));\r\n\r\n productCosts.push(unformattedProductPrice);\r\n }\r\n }\r\n });\r\n\r\n //! highest included prices get's assigned infinity if product costs is empty\r\n\r\n let highestIncludedProductCost = Math.max.apply(Math, productCosts);\r\n\r\n for (const productDto of dto.products) {\r\n const product = new ProductModel();\r\n\r\n let productVariants = dto.productVariants.filter(pv => pv.productId === productDto.productId);\r\n\r\n if (productDto.isUpgrade) {\r\n if (\r\n productDto.houseTypeProductPrice !== undefined &&\r\n productDto.houseTypeProductPrice !== null &&\r\n productDto.houseTypeProductPrice !== \"\" &&\r\n productDto.houseTypeProductPrice.toUpperCase() !== \"POA\"\r\n ) {\r\n let unformattedHTPPrice: number = Number(Format.currencyFormatForUpsert(productDto.houseTypeProductPrice, true));\r\n\r\n if (Number.isFinite(highestIncludedProductCost) == false) {\r\n productDto.highestIncludedProductCost = unformattedHTPPrice.toFixed(2);\r\n } else {\r\n if (highestIncludedProductCost !== null && highestIncludedProductCost !== undefined) {\r\n productDto.highestIncludedProductCost = (unformattedHTPPrice - highestIncludedProductCost).toFixed(2);\r\n } else {\r\n productDto.highestIncludedProductCost = unformattedHTPPrice.toFixed(2);\r\n }\r\n }\r\n } else {\r\n let unformattedProductPrice: number = Number(Format.currencyFormatForUpsert(productDto.productPrice, true));\r\n\r\n if (Number.isFinite(highestIncludedProductCost) == false) {\r\n productDto.highestIncludedProductCost = unformattedProductPrice.toFixed(2);\r\n } else {\r\n if (highestIncludedProductCost !== null && highestIncludedProductCost !== undefined) {\r\n productDto.highestIncludedProductCost = (unformattedProductPrice - highestIncludedProductCost).toFixed(2);\r\n } else {\r\n productDto.highestIncludedProductCost = unformattedProductPrice.toFixed(2);\r\n }\r\n }\r\n }\r\n }\r\n\r\n productDto.orderQuantity === 0 ? (productDto.orderQuantity = 1) : productDto.orderQuantity;\r\n\r\n product.fromDto({\r\n product: productDto,\r\n productVariants: productVariants,\r\n specificationHouseTypeProducts: dto.specificationHouseTypeProducts,\r\n specificationProducts: dto.specificationProducts,\r\n productsSummary: dto.productsSummary,\r\n products: dto.products,\r\n });\r\n\r\n this.products.push(product);\r\n }\r\n };\r\n\r\n public toDto = (): OrderAreaProductGroupModelDTO => {\r\n let orderAreaProductGroup: OrderAreaProductGroupModelDTO = {\r\n id: this.orderAreaProductGroupId,\r\n orderId: \"\",\r\n areaId: \"\",\r\n productGroupId: this.id,\r\n isComplete: this.isOrderAreaProductGroupComplete,\r\n notes: this.orderAreaProductGroupNotes,\r\n isNoneOfTheAbove: this.isNoneOfTheAbove,\r\n };\r\n\r\n return orderAreaProductGroup;\r\n };\r\n\r\n private houseTypeProductHasPrice = (houseTypeProduct: ProductModelDTO) => {\r\n return houseTypeProduct.houseTypeProductPrice !== undefined && houseTypeProduct.houseTypeProductPrice !== null && houseTypeProduct.houseTypeProductPrice !== \"\";\r\n };\r\n}\r\n\r\nexport interface ProductGroupModelDTO {\r\n id: string;\r\n productGroupName: string;\r\n orderAreaProductGroupId: string;\r\n isOrderAreaProductGroupComplete: boolean;\r\n orderAreaProductGroupNotes: string;\r\n isNoneOfTheAbove: boolean;\r\n areaId: string;\r\n}\r\n\r\nexport interface ProductGroupAndRelatedModelDTO {\r\n productGroup: ProductGroupModelDTO;\r\n products: ProductModelDTO[];\r\n productVariants: ProductVariantModelDTO[];\r\n specificationHouseTypeProducts: SpecificationHouseTypeProductModelDTO[];\r\n specificationProducts: SpecificationProductModelDTO[];\r\n productsSummary: ProductSummaryModelDTO[];\r\n}\r\n\r\nexport interface OrderAreaProductGroupModelDTO {\r\n id: string;\r\n orderId: string;\r\n areaId: string;\r\n productGroupId: string;\r\n isComplete: boolean;\r\n notes: string;\r\n isNoneOfTheAbove: boolean;\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\n\r\n// App\r\nimport { ProductViewModel } from \"./ProductViewModel\";\r\nimport { ProductGroupModel } from \"Custom/Models/DashboardModels/ProductGroupModel\";\r\nimport { Format } from \"Custom/Utils\";\r\n\r\nexport class ProductGroupViewModel extends ViewModelBase {\r\n @observable\r\n private productViewModels: ProductViewModel[] = [];\r\n\r\n @observable\r\n private choicesCheckCounter: number = 0;\r\n\r\n @observable\r\n private isChoicesLocked: boolean = false;\r\n\r\n constructor(productGroup: ProductGroupModel) {\r\n super(productGroup);\r\n this.setDecorators(ProductGroupModel);\r\n\r\n this.createViewModels();\r\n }\r\n\r\n @computed\r\n public get products() {\r\n const retVal = this.productViewModels.filter(p => p.isOption === true);\r\n return retVal;\r\n }\r\n\r\n @computed\r\n public get extras() {\r\n return this.productViewModels.filter(p => p.isExtra === true);\r\n }\r\n\r\n @computed\r\n public get sortedProducts() {\r\n // Order:\r\n // - Included\r\n // - Figure (Lowest to highest)\r\n // - POA\r\n\r\n const arr = this.products.sort((a, b) => {\r\n // Re-renders cause the list to sort again, so ensure the \"None of the above\" option as at the bottom.\r\n if (a.model.productId === \"00000000-0000-0000-0000-000000000000\") {\r\n return 1;\r\n }\r\n\r\n // Get the prices that are displayed to the user.\r\n let aProductPrice = a.model.price;\r\n let bProductPrice = b.model.price;\r\n\r\n if (aProductPrice !== undefined && aProductPrice !== \"£POA\" && aProductPrice.toUpperCase() !== \"INCLUDED\") {\r\n aProductPrice = Format.currencyFormatForUpsert(aProductPrice, true);\r\n }\r\n\r\n if (bProductPrice !== undefined && bProductPrice !== \"£POA\" && bProductPrice.toUpperCase() !== \"INCLUDED\") {\r\n bProductPrice = Format.currencyFormatForUpsert(bProductPrice, true);\r\n }\r\n\r\n if (aProductPrice === null) {\r\n return 1;\r\n }\r\n\r\n if (bProductPrice === null) {\r\n return -1;\r\n }\r\n\r\n // If the first item is included and the second isn't, move the first item up.\r\n if (aProductPrice !== undefined && bProductPrice !== undefined && aProductPrice.toUpperCase() === \"INCLUDED\" && bProductPrice.toUpperCase() !== \"INCLUDED\") {\r\n return -1;\r\n }\r\n\r\n // If the first item isn't included and the second is, move the first item down.\r\n if (aProductPrice !== undefined && bProductPrice !== undefined && aProductPrice.toUpperCase() !== \"INCLUDED\" && bProductPrice.toUpperCase() === \"INCLUDED\") {\r\n return 1;\r\n }\r\n\r\n // Compare non POA prices\r\n if (aProductPrice !== undefined && bProductPrice !== undefined && aProductPrice.toUpperCase() !== \"£POA\" && bProductPrice.toUpperCase() !== \"£POA\") {\r\n // If the first item has a lower price than the second, move the first item up.\r\n if (Number(aProductPrice) < Number(bProductPrice)) {\r\n return -1;\r\n }\r\n\r\n // If the first item has a higher price than the second, move the first item down.\r\n if (Number(aProductPrice) > Number(bProductPrice)) {\r\n return 1;\r\n }\r\n }\r\n\r\n // Compare price if POA\r\n if (aProductPrice !== undefined && bProductPrice !== undefined && aProductPrice.toUpperCase() !== \"£POA\" && bProductPrice.toUpperCase() === \"£POA\") {\r\n return -1;\r\n }\r\n\r\n if (aProductPrice !== undefined && bProductPrice !== undefined && aProductPrice.toUpperCase() === \"£POA\" && bProductPrice.toUpperCase() !== \"£POA\") {\r\n return 1;\r\n }\r\n\r\n return -1;\r\n });\r\n\r\n return arr;\r\n }\r\n\r\n @computed\r\n public get sortedExtras() {\r\n // Order:\r\n // - Included\r\n // - Figure (Lowest to highest)\r\n // - POA\r\n\r\n const arr = this.extras.sort((a, b) => {\r\n // Get the prices that are displayed to the user.\r\n let aProductPrice = a.model.extraPrice;\r\n let bProductPrice = b.model.extraPrice;\r\n\r\n if (aProductPrice !== undefined && aProductPrice !== \"£POA\") {\r\n aProductPrice = Format.currencyFormatForUpsert(aProductPrice, true);\r\n }\r\n\r\n if (bProductPrice !== undefined && bProductPrice !== \"£POA\") {\r\n bProductPrice = Format.currencyFormatForUpsert(bProductPrice, true);\r\n }\r\n\r\n if (aProductPrice === null) {\r\n return 1;\r\n }\r\n\r\n if (bProductPrice === null) {\r\n return -1;\r\n }\r\n\r\n // Compare non POA prices\r\n if (aProductPrice !== undefined && bProductPrice !== undefined && aProductPrice.toUpperCase() !== \"£POA\" && bProductPrice.toUpperCase() !== \"£POA\") {\r\n // If the first item has a lower price than the second, move the first item up.\r\n if (Number(aProductPrice) < Number(bProductPrice)) {\r\n return -1;\r\n }\r\n\r\n // If the first item has a higher price than the second, move the first item down.\r\n if (Number(aProductPrice) > Number(bProductPrice)) {\r\n return 1;\r\n }\r\n }\r\n\r\n // Compare price if POA\r\n if (aProductPrice !== undefined && bProductPrice !== undefined && aProductPrice.toUpperCase() !== \"£POA\" && bProductPrice.toUpperCase() === \"£POA\") {\r\n return -1;\r\n }\r\n\r\n if (aProductPrice !== undefined && bProductPrice !== undefined && aProductPrice.toUpperCase() === \"£POA\" && bProductPrice.toUpperCase() !== \"£POA\") {\r\n return 1;\r\n }\r\n\r\n return -1;\r\n });\r\n\r\n return arr;\r\n }\r\n\r\n @computed\r\n public get numberOfExtras() {\r\n return this.products.filter(p => p.isExtra === true && p.model.isSelected === true).length;\r\n }\r\n\r\n @computed\r\n public get isChoiceSelected() {\r\n let choiceSelected = this.products.findIndex(p => p.isOption === true && p.model.isSelected === true) !== -1 || this.model.isNoneOfTheAbove;\r\n\r\n return choiceSelected;\r\n }\r\n\r\n @computed\r\n public get hasOptions() {\r\n return this.productViewModels.filter(p => p.isOption === true).length > 0;\r\n }\r\n\r\n @computed\r\n public get hasExtras() {\r\n return this.productViewModels.filter(p => p.isExtra === true).length > 0;\r\n }\r\n\r\n @computed\r\n public get hasChoices() {\r\n return this.hasOptions && this.hasExtras;\r\n }\r\n\r\n @action\r\n public async isChoicesLockedAsync(orderId: string): Promise {\r\n //this function checks once when a user selects option if the choices sections is locked\r\n //this is done in order to prevent the user from making multiple time consuming selection just to realize that the task can't be finalized\r\n // only allow one check to minimize server requests\r\n\r\n if (this.choicesCheckCounter == 0) {\r\n try {\r\n const apiResult = await this.Get(Server.Api.Choices.GetIsChoicesLocked + \"/\" + orderId);\r\n\r\n if (apiResult.wasSuccessful) {\r\n // this.setApiStatus(ApiStatus.success);\r\n this.choicesCheckCounter = 1; // only change value on success\r\n this.isChoicesLocked = apiResult.payload;\r\n return this.isChoicesLocked;\r\n } else {\r\n // this.setApiStatusErrorMessage(\"Failed to retrieve the choices.\");\r\n // this.setApiStatus(ApiStatus.error);\r\n }\r\n } catch (exception) {\r\n // this.setApiStatusErrorMessage(\"Failed to retrieve the choices.\");\r\n // this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n this.setIsLoading(false);\r\n }\r\n } else {\r\n //if the check is already been done return value.\r\n return this.isChoicesLocked;\r\n }\r\n }\r\n\r\n @action\r\n public setNoneOfTheAbove(val: boolean = true) {\r\n this.model.isNoneOfTheAbove = val;\r\n\r\n for (const product of this.productViewModels.filter(p => p.isOption === true)) {\r\n product.setIsSelected(false);\r\n\r\n for (const productVariant of product.productVariantViewModels) {\r\n productVariant.setIsSelected(false);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Sets whether a product is selected.\r\n * @param productSelected\r\n */\r\n @action\r\n public setProductIsSelected(productSelected: ProductViewModel) {\r\n // this.isChoicesLockedAsync(productSelected.OrderId).then(response => {\r\n // if (!response) {\r\n\r\n // }\r\n // });\r\n if (productSelected.hasVariants === false) {\r\n this.setNoneOfTheAbove(false);\r\n\r\n for (const product of this.productViewModels.filter(p => p.isOption === true)) {\r\n if (product.model.id === productSelected.model.id) {\r\n product.setIsSelected(true);\r\n } else {\r\n product.setIsSelected(false);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Sets whether a product variant or product variant extra is selected.\r\n * @param selectedVariantId\r\n * @param productSelected\r\n */\r\n @action\r\n public selectProductVariant(selectedVariantId: string, productSelected: ProductViewModel) {\r\n if (productSelected.isOption) {\r\n this.setSelectedProductVariant(selectedVariantId, productSelected);\r\n } else if (productSelected.isExtra) {\r\n this.setSelectedProductVariantExtra(selectedVariantId, productSelected);\r\n }\r\n }\r\n\r\n /**\r\n * Sets whether a product is selected.\r\n * @param selectedVariantId\r\n * @param productSelected\r\n */\r\n @action\r\n public setSelectedProductVariant(selectedVariantId: string, productSelected: ProductViewModel) {\r\n this.setNoneOfTheAbove(false);\r\n\r\n for (const product of this.productViewModels.filter(p => p.isOption === true)) {\r\n if (product.model.id === productSelected.model.id) {\r\n product.setIsSelected(true);\r\n } else {\r\n product.setIsSelected(false);\r\n }\r\n\r\n for (const productVariant of product.productVariantViewModels) {\r\n if (productVariant.model.id === selectedVariantId) {\r\n productVariant.setIsSelected(true);\r\n } else {\r\n productVariant.setIsSelected(false);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Sets whether a product extra is selected.\r\n * @param productSelected\r\n * @param isSelected\r\n */\r\n @action\r\n public setProductExtraIsSelected(productSelected: ProductViewModel, isSelected: boolean) {\r\n if (isSelected) {\r\n if (productSelected.hasVariants === false) {\r\n productSelected.setIsSelected(isSelected);\r\n }\r\n } else {\r\n productSelected.setIsSelected(isSelected);\r\n for (const productVariant of productSelected.productVariantViewModels) {\r\n productVariant.setIsSelected(isSelected);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Sets whether a product variant extra is selected.\r\n * @param selectedVariantId\r\n * @param productSelected\r\n */\r\n @action\r\n public setSelectedProductVariantExtra(selectedVariantId: string, productSelected: ProductViewModel) {\r\n let selectedVariant = productSelected.productVariantViewModels.find(pv => pv.model.id === selectedVariantId);\r\n\r\n productSelected.setIsSelected(true);\r\n\r\n if (selectedVariant) {\r\n selectedVariant.setIsSelected(true);\r\n\r\n for (const productVariant of productSelected.productVariantViewModels) {\r\n if (productVariant.model.id === selectedVariantId) {\r\n productVariant.setIsSelected(true);\r\n } else {\r\n productVariant.setIsSelected(false);\r\n }\r\n }\r\n }\r\n }\r\n\r\n @action\r\n private createViewModels() {\r\n for (const product of this.model.products) {\r\n this.productViewModels.push(new ProductViewModel(product));\r\n }\r\n }\r\n\r\n // #region Can Display Properties\r\n\r\n @observable\r\n public canDisplay = false;\r\n\r\n @action\r\n public setCanDisplay = (value: boolean): void => {\r\n this.canDisplay = value;\r\n };\r\n\r\n // #endregion Can Display Properties\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\nimport { OrderAreaProductGroupModelDTO, ProductGroupAndRelatedModelDTO, ProductGroupModel } from \"./ProductGroupModel\";\r\nimport { ChoicesAreaAndRelatedModelDTO, UpsertOrderModelDTO } from \"Custom/ViewModels/DashboardSubViewModels/ChoicesAreaViewModel\";\r\nimport { OrderAreaProductGroupProductModelDTO } from \"./ProductModel\";\r\n\r\n// Custom\r\n//import { ChoiceModel, ChoiceModelDTO } from \"./ChoiceModel\";\r\n\r\nexport class ChoicesAreaModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id: string = \"\";\r\n\r\n @observable\r\n public areaName: string = \"\";\r\n\r\n @observable\r\n public orderId: string = \"\";\r\n\r\n @observable\r\n public isOrderComplete: boolean = false;\r\n\r\n @observable\r\n public orderAreaId: string = \"\";\r\n\r\n @observable\r\n public isOrderAreaComplete: boolean = false;\r\n\r\n @observable\r\n public propertyId: string = \"\";\r\n\r\n @observable\r\n public orderCreatedDate: string = \"\";\r\n\r\n @observable\r\n public orderCreatedByIdentityUserId: string = \"\";\r\n\r\n @observable\r\n public orderLockedDate: string = \"\";\r\n\r\n @observable\r\n public orderCompletedDate: string = \"\";\r\n\r\n @observable\r\n public orderCostRevision: number = 0;\r\n\r\n @observable\r\n public orderConcurrencyToken: string = \"\";\r\n\r\n @observable\r\n public orderAreaNotes: string = \"\";\r\n\r\n @observable\r\n public contactId: string = \"\";\r\n\r\n @observable\r\n public imageUrl = \"\";\r\n\r\n @observable\r\n public originalImageUrl = \"\";\r\n\r\n @observable\r\n public thumbnailImageUrl = \"\";\r\n\r\n @observable\r\n public productGroups: ProductGroupModel[] = [];\r\n\r\n @observable\r\n public isChoicesLocked: boolean = false;\r\n\r\n @observable\r\n public choicesPaymentCost: number = 0;\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: ChoicesAreaAndRelatedModelDTO): void => {\r\n this.id = dto.area.id;\r\n this.areaName = dto.area.areaName;\r\n this.orderId = dto.area.orderId;\r\n this.isOrderComplete = dto.area.isOrderComplete;\r\n this.orderAreaId = dto.area.orderAreaId;\r\n this.isOrderAreaComplete = dto.area.isOrderAreaComplete;\r\n this.propertyId = dto.area.propertyId;\r\n this.orderCreatedDate = dto.area.orderCreatedDate;\r\n this.orderCreatedByIdentityUserId = dto.area.orderCreatedByIdentityUserId;\r\n this.orderLockedDate = dto.area.orderLockedDate;\r\n this.orderCompletedDate = dto.area.orderCompletedDate;\r\n this.orderCostRevision = dto.area.orderCostRevision;\r\n this.orderConcurrencyToken = dto.area.orderConcurrencyToken;\r\n this.orderAreaNotes = dto.area.orderAreaNotes;\r\n this.contactId = dto.area.contactId;\r\n this.imageUrl = dto.area.imageUrl;\r\n this.originalImageUrl = dto.area.originalImageUrl;\r\n this.thumbnailImageUrl = dto.area.thumbnailImageUrl;\r\n this.isChoicesLocked = dto.isChoicesLocked;\r\n\r\n for (const productGroupDto of dto.productGroups) {\r\n const productGroup = new ProductGroupModel();\r\n\r\n let products = dto.products.filter(p => p.productGroupId === productGroupDto.id);\r\n let productVariants = dto.productVariants.filter(pv => products.findIndex(p => p.id === pv.productId) !== 0);\r\n\r\n productGroup.fromDto({\r\n productGroup: productGroupDto,\r\n products: products,\r\n productVariants: productVariants,\r\n specificationHouseTypeProducts: dto.specificationHouseTypeProducts,\r\n specificationProducts: dto.specificationProducts,\r\n productsSummary: dto.productsSummary,\r\n });\r\n\r\n this.productGroups.push(productGroup);\r\n }\r\n };\r\n\r\n public toDto = (): UpsertOrderModelDTO => {\r\n let order: OrderModelDTO = {\r\n id: this.orderId,\r\n contactId: this.contactId,\r\n createdByIdentityUserId: this.orderCreatedByIdentityUserId,\r\n lockedByIdentityUserId: \"\",\r\n propertyId: this.propertyId,\r\n createdDate: this.orderCreatedDate,\r\n lockedDate: this.orderLockedDate,\r\n isComplete: this.isOrderComplete,\r\n completedDate: this.orderCompletedDate,\r\n costRevision: this.orderCostRevision,\r\n concurrencyToken: this.orderConcurrencyToken,\r\n isDeleted: false,\r\n isLocked: false,\r\n choicesPaymentCost: this.choicesPaymentCost,\r\n };\r\n\r\n let orderArea: OrderAreaModelDTO = {\r\n id: this.orderAreaId,\r\n orderId: this.orderId,\r\n areaId: this.id,\r\n isComplete: this.isOrderAreaComplete,\r\n notes: this.orderAreaNotes,\r\n };\r\n\r\n let orderAreaProductGroups: OrderAreaProductGroupModelDTO[] = [];\r\n\r\n let orderAreaProductGroupProducts: OrderAreaProductGroupProductModelDTO[] = [];\r\n\r\n this.productGroups.forEach(pg => {\r\n let productGroup: OrderAreaProductGroupModelDTO = pg.toDto();\r\n\r\n productGroup.areaId = this.id;\r\n\r\n orderAreaProductGroups.push(productGroup);\r\n\r\n pg.products\r\n .filter(p => p.isSelected === true)\r\n .forEach(p => {\r\n let product: OrderAreaProductGroupProductModelDTO = p.toDto();\r\n\r\n product.orderAreaProductGroupId = pg.id;\r\n product.orderAreaId = this.id;\r\n product.isPOA = p.productPOA;\r\n\r\n orderAreaProductGroupProducts.push(product);\r\n });\r\n });\r\n\r\n let model: UpsertOrderModelDTO = {\r\n order: order,\r\n orderArea: orderArea,\r\n orderAreaProductGroups: orderAreaProductGroups,\r\n orderAreaProductGroupProducts: orderAreaProductGroupProducts,\r\n };\r\n\r\n return model;\r\n };\r\n}\r\n\r\nexport interface ChoicesAreaModelDTO {\r\n id: string;\r\n areaName: string;\r\n orderId: string;\r\n isOrderComplete: boolean;\r\n orderAreaId: string;\r\n isOrderAreaComplete: boolean;\r\n propertyId: string;\r\n orderCreatedDate: string;\r\n orderCreatedByIdentityUserId: string;\r\n orderLockedDate: string;\r\n orderCompletedDate: string;\r\n orderCostRevision: number;\r\n orderConcurrencyToken: string;\r\n orderAreaNotes: string;\r\n contactId: string;\r\n imageUrl: string;\r\n originalImageUrl: string;\r\n thumbnailImageUrl: string;\r\n}\r\n\r\nexport interface OrderModelDTO {\r\n id: string;\r\n contactId: string;\r\n createdByIdentityUserId: string;\r\n lockedByIdentityUserId: string;\r\n propertyId: string;\r\n createdDate: string;\r\n lockedDate: string;\r\n isComplete: boolean;\r\n completedDate: string;\r\n costRevision: number;\r\n choicesPaymentCost: number;\r\n concurrencyToken: string;\r\n isDeleted: boolean;\r\n isLocked: boolean;\r\n}\r\n\r\nexport interface OrderAreaModelDTO {\r\n id: string;\r\n orderId: string;\r\n areaId: string;\r\n isComplete: boolean;\r\n notes: string;\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\n\r\n// Custom\r\nimport { ProductGroupViewModel } from \"./ProductGroupViewModel\";\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\nimport { ChoicesAreaModelDTO, OrderAreaModelDTO, OrderModelDTO } from \"Custom/Models/DashboardModels/ChoicesAreaModel\";\r\nimport { ChoicesAreaModel } from \"Custom/Models/DashboardModels/ChoicesAreaModel\";\r\nimport { OrderAreaProductGroupModelDTO, ProductGroupModelDTO } from \"Custom/Models/DashboardModels/ProductGroupModel\";\r\nimport { OrderAreaProductGroupProductModelDTO, ProductModelDTO } from \"Custom/Models/DashboardModels/ProductModel\";\r\nimport { ProductVariantModelDTO } from \"Custom/Models/DashboardModels/ProductVariantModel\";\r\nimport { SpecificationHouseTypeProductModelDTO } from \"Custom/Models/DashboardModels/SpecificationHouseTypeProductModel\";\r\nimport { SpecificationProductModelDTO } from \"Custom/Models/DashboardModels/SpecificationProductModel\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { StoresInstance } from \"../../Stores\";\r\n\r\n// Content\r\nimport HouseType1Svg from \"../../Content/Images/noImageDefault.svg\";\r\nimport { ProductSummaryModelDTO } from \"Custom/Models/DashboardModels/ProductSummary\";\r\n\r\nexport class ChoicesAreaViewModel extends ViewModelBase {\r\n constructor(propertyId: string, areaId: string) {\r\n super(new ChoicesAreaModel());\r\n this.setDecorators(ChoicesAreaModel);\r\n\r\n //console.log(\"CHOICESAREAVM CONSTRUCTOR: PropertyId\", propertyId);\r\n this.propertyId = propertyId;\r\n\r\n if (propertyId !== null && propertyId !== undefined && propertyId !== \"\") {\r\n this.load(propertyId, areaId);\r\n }\r\n }\r\n\r\n // #region Properties\r\n\r\n @observable\r\n public propertyId: string = \"\";\r\n\r\n @observable\r\n private productGroupViewModels: ProductGroupViewModel[] = [];\r\n\r\n @observable\r\n public apiStatus: ApiStatus = ApiStatus.loading;\r\n\r\n @observable\r\n public apiStatusLoadingMessage: string = \"Fetching choices...\";\r\n\r\n @observable\r\n public apiStatusErrorMessage: string = \"Failed to retrieve the choices.\";\r\n\r\n @observable\r\n private choicesCheckCounter: number = 0;\r\n\r\n // #endregion Properties\r\n\r\n // #region Computeds\r\n\r\n @computed\r\n public get areaImage() {\r\n if (this.model.imageUrl !== null && this.model.imageUrl !== undefined && this.model.imageUrl !== \"\") {\r\n return this.model.imageUrl;\r\n }\r\n\r\n return HouseType1Svg;\r\n }\r\n\r\n @computed\r\n public get productGroups() {\r\n return this.productGroupViewModels;\r\n }\r\n\r\n @computed\r\n public get canAddToOrder() {\r\n const missingChoices = this.productGroups.filter(pg => pg.isChoiceSelected === false);\r\n\r\n if (this.productGroups.length > 0) {\r\n if (missingChoices != undefined) {\r\n return this.productGroups.length - missingChoices.length >= 1;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n @action\r\n public async isChoicesLockedAsync(propertyId: string, id: string): Promise {\r\n //this function checks once when a user selects option if the choices sections is locked\r\n //this is done in order to prevent the user from making multiple time consuming selection just to realize that the task can't be finalized\r\n // only allow one check to minimize server requests\r\n this.setApiStatusLoadingMessage(\"Saving choices...\");\r\n this.setApiStatus(ApiStatus.loading);\r\n\r\n if (this.choicesCheckCounter == 0) {\r\n try {\r\n const apiResult = await this.Get(Server.Api.Choices.GetIsChoicesLocked + \"/\" + propertyId);\r\n\r\n if (apiResult.wasSuccessful) {\r\n this.setApiStatus(ApiStatus.success);\r\n this.choicesCheckCounter = 1; // only change value on success\r\n return apiResult.payload;\r\n } else {\r\n this.setApiStatusErrorMessage(\"Failed to retrieve the choices.\");\r\n this.setApiStatus(ApiStatus.error);\r\n }\r\n } catch (exception) {\r\n this.setApiStatusErrorMessage(\"Failed to retrieve the choices.\");\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n this.setIsLoading(false);\r\n }\r\n }\r\n }\r\n\r\n @computed\r\n public get ApiStatus(): ApiStatus {\r\n return this.apiStatus;\r\n }\r\n\r\n @computed\r\n public get ApiStatusLoadingMessage(): string {\r\n return this.apiStatusLoadingMessage;\r\n }\r\n\r\n @computed\r\n public get ApiStatusErrorMessage(): string {\r\n return this.apiStatusErrorMessage;\r\n }\r\n\r\n @computed\r\n public get isChoicesLocked() {\r\n return this.model.isChoicesLocked;\r\n }\r\n\r\n // #end region computed\r\n\r\n // #region Actions\r\n\r\n @action\r\n private createViewModels() {\r\n for (const productGroup of this.model.productGroups) {\r\n this.productGroupViewModels.push(new ProductGroupViewModel(productGroup));\r\n }\r\n }\r\n\r\n @action\r\n public setApiStatus(apiStatus: ApiStatus) {\r\n this.apiStatus = apiStatus;\r\n }\r\n\r\n @action\r\n public setApiStatusLoadingMessage(message: string) {\r\n this.apiStatusLoadingMessage = message;\r\n }\r\n\r\n @action\r\n public setApiStatusErrorMessage(message: string) {\r\n this.apiStatusErrorMessage = message;\r\n }\r\n\r\n public navigateToChoices = (propertyId: string) => {\r\n this.history.push(`/choices/${propertyId}`);\r\n };\r\n\r\n private load = async (propertyId: string, id: string): Promise => {\r\n this.setApiStatusLoadingMessage(\"Fetching choices...\");\r\n this.setApiStatus(ApiStatus.loading);\r\n\r\n try {\r\n const apiResult = await this.Get(Server.Api.Choices.GetChoicesAreaAndRelated + \"/\" + propertyId + \"/\" + id);\r\n\r\n if (apiResult.wasSuccessful) {\r\n this.model.fromDto(apiResult.payload);\r\n this.createViewModels();\r\n this.setApiStatus(ApiStatus.success);\r\n } else {\r\n this.setApiStatusErrorMessage(\"Failed to retrieve the choices.\");\r\n this.setApiStatus(ApiStatus.error);\r\n }\r\n } catch (exception) {\r\n this.setApiStatusErrorMessage(\"Failed to retrieve the choices.\");\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n this.setIsLoading(false);\r\n }\r\n };\r\n\r\n public addToOrder = async (): Promise => {\r\n if (this.canAddToOrder) {\r\n this.setApiStatusLoadingMessage(\"Saving choices...\");\r\n this.setApiStatus(ApiStatus.loading);\r\n\r\n try {\r\n let model = this.model.toDto();\r\n\r\n const apiResult = await this.Post(Server.Api.Choices.AddToOrder, model);\r\n\r\n if (apiResult.wasSuccessful) {\r\n //this.model.fromDto(apiResult.payload);\r\n this.navigateToChoices(apiResult.payload.area.propertyId);\r\n this.setApiStatus(ApiStatus.success);\r\n } else {\r\n // Error\r\n this.setApiStatusErrorMessage(apiResult.errors[0].message);\r\n this.setApiStatus(ApiStatus.error);\r\n }\r\n } catch (exception) {\r\n // Exceptional error\r\n this.setApiStatusErrorMessage(\"Failed to save the choices.\");\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n this.setIsLoading(false);\r\n }\r\n }\r\n };\r\n\r\n // #endregion Actions\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n\r\nexport interface ChoicesAreaAndRelatedModelDTO {\r\n area: ChoicesAreaModelDTO;\r\n productGroups: ProductGroupModelDTO[];\r\n products: ProductModelDTO[];\r\n productVariants: ProductVariantModelDTO[];\r\n specificationHouseTypeProducts: SpecificationHouseTypeProductModelDTO[];\r\n specificationProducts: SpecificationProductModelDTO[];\r\n productsSummary: ProductSummaryModelDTO[];\r\n isChoicesLocked: boolean;\r\n}\r\n\r\nexport interface UpsertOrderModelDTO {\r\n order: OrderModelDTO;\r\n orderArea: OrderAreaModelDTO;\r\n orderAreaProductGroups: OrderAreaProductGroupModelDTO[];\r\n orderAreaProductGroupProducts: OrderAreaProductGroupProductModelDTO[];\r\n}\r\n","import { Accordion, AccordionDetails, AccordionSummary, Box, CardMedia, Typography } from \"@material-ui/core\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\r\nimport RemoveCircleIcon from \"@material-ui/icons/RemoveCircle\";\r\nimport CheckIcon from \"@material-ui/icons/Check\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\n\r\n// Core\r\nimport { Loader } from \"Core/Components/Loader\";\r\nimport { useRouter } from \"Core/Utils\";\r\n\r\n// Custom\r\nimport { CloseButton } from \"Custom/Components/Buttons/CloseButton\";\r\nimport { NavButton } from \"Custom/Components/Buttons/NavButton\";\r\nimport { StandardButton } from \"Custom/Components/Buttons/StandardButton\";\r\nimport { Error } from \"Custom/Components/Error\";\r\nimport { ChoicesProductGroup } from \"Custom/Views/DashboardSubViews/ChoicesProductGroup\";\r\n\r\nimport { DashboardPageStyles } from \"Custom/StylesAppSpecific/DashboardPagesStyling\";\r\nimport { ChoicesAreaPageStyles } from \"Custom/StylesAppSpecific/DashboardSubViews/ChoiceAreaPageStyling\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { ChoicesAreaViewModel } from \"Custom/ViewModels/DashboardSubViewModels/ChoicesAreaViewModel\";\r\nimport { ProductGroupViewModel } from \"Custom/ViewModels/DashboardSubViewModels/ProductGroupViewModel\";\r\n\r\nexport const ChoicesArea: React.FC = () => {\r\n // #region Code Behind\r\n\r\n const router = useRouter();\r\n const theme = useTheme();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"md\")) ? true : false;\r\n\r\n //console.log(\"CHOICESAREAVIEW: PropertyId\", router.match.params);\r\n const areaId = (router.match.params as any).areaId;\r\n const propertyId = (router.match.params as any).propertyId;\r\n\r\n const dashboardPageStyles = DashboardPageStyles();\r\n const choicesAreaPageStyles = ChoicesAreaPageStyles();\r\n\r\n const [viewModel] = useState(() => new ChoicesAreaViewModel(propertyId, areaId));\r\n\r\n const onAccordionChange = (productGroup: ProductGroupViewModel) => (event: React.ChangeEvent<{}>, expanded: boolean) => {\r\n productGroup.setCanDisplay(!productGroup.canDisplay);\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n const renderBusy = () => ;\r\n\r\n const renderError = () => ;\r\n\r\n const renderSummaryText = () => {\r\n if (viewModel.isChoicesLocked) {\r\n return Choices are disabled. You can view but you can't add or remove any. If you wish to make changes, please contact your sales agent.;\r\n } else {\r\n return (\r\n Select an option then choose to upgrade and add any extras. Once you have finished add them to your order via the \"add to order\" button.\r\n );\r\n }\r\n };\r\n\r\n const renderTitleRow = () =>\r\n isDesktop ? (\r\n \r\n \r\n \r\n viewModel.navigateToChoices(propertyId)} />\r\n \r\n {viewModel.model.areaName}\r\n {renderSummaryText()}\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n {/* This is a dummy element - do not remove */}\r\n \r\n \r\n \r\n viewModel.navigateToChoices(propertyId)} />\r\n \r\n \r\n {viewModel.model.areaName}\r\n {renderSummaryText()}\r\n \r\n );\r\n\r\n const renderOptionsAccordionLabel = () => {\r\n if (viewModel.isChoicesLocked) {\r\n return \"Options are in view only mode\";\r\n } else {\r\n return \"Please select your options...\";\r\n }\r\n };\r\n\r\n const renderForms = () => (\r\n \r\n {viewModel.productGroups.map((productGroup, index) => (\r\n \r\n : }\r\n aria-label=\"Expand\"\r\n aria-controls={`additional-content${index}`}\r\n id={`additional-header${index}`}\r\n >\r\n \r\n {productGroup.model.productGroupName}\r\n \r\n {`${productGroup.numberOfExtras} extras added`}\r\n \r\n {productGroup.isChoiceSelected && }\r\n {!productGroup.isChoiceSelected && }\r\n {` option selected`}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n );\r\n\r\n const renderSubmit = () => {\r\n if (!viewModel.isChoicesLocked) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n return useObserver(() => (\r\n \r\n \r\n {viewModel.ApiStatus === ApiStatus.success && (\r\n \r\n {renderTitleRow()}\r\n {renderForms()}\r\n {renderSubmit()}\r\n \r\n )}\r\n {viewModel.ApiStatus === ApiStatus.loading && {renderBusy()}}\r\n {viewModel.ApiStatus === ApiStatus.error && {renderError()}}\r\n \r\n \r\n ));\r\n};\r\n\r\n//export default withRouter(ChoicesArea);\r\n","import { darken, lighten, makeStyles } from \"@material-ui/core\";\r\nimport { Theme } from \"@material-ui/core/styles\";\r\n\r\n/**\r\n * Contains style information for the choices page.\r\n */\r\nexport const ChoicesPageStyles = makeStyles((theme: Theme) => ({\r\n root: {},\r\n introduction: {\r\n margin: \"18px 18px 15px 18px\",\r\n },\r\n introductionTitle: {\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n lineHeight: \"1.25\",\r\n marginBottom: \"14px\",\r\n },\r\n introductionSubTitle: {\r\n fontSize: \"12px\",\r\n lineHeight: \"1.25\",\r\n },\r\n choicesAreas: {\r\n borderBottom: \"1px solid #ced4da\",\r\n borderTop: \"1px solid #ced4da\",\r\n margin: \"0 18px\",\r\n padding: \"15px 0\",\r\n \"& > div\": {\r\n display: \"grid\",\r\n gridTemplateColumns: \"repeat(auto-fill,minmax(120px, 1fr))\",\r\n margin: \"0 -5px\",\r\n },\r\n },\r\n choicesArea: {\r\n border: \"1px solid #ced4da\",\r\n borderRadius: \"0\",\r\n boxShadow: \"none\",\r\n margin: \"5px\",\r\n \"& > button\": {\r\n \"& > div.MuiCardMedia-root\": {\r\n minHeight: \"90px\",\r\n },\r\n \"& > div.MuiCardContent-root\": {\r\n padding: \"10px\",\r\n textAlign: \"center\",\r\n },\r\n },\r\n },\r\n choicesAreaTitle: {\r\n fontSize: \"14px\",\r\n },\r\n choicesAreaSubTitle: {\r\n fontSize: \"10px\",\r\n },\r\n choicesAreasSummaryContainer: {\r\n margin: \"0px 18px 30px 18px\",\r\n padding: \"0 0 16px 0\",\r\n },\r\n choicesAreasSummaryTitle: {\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n lineHeight: \"1.25\",\r\n margin: \"14px 0px\",\r\n },\r\n choicesAreasSummary: {\r\n \"& > div\": {},\r\n },\r\n choicesAreaSummary: {\r\n border: \"1px solid #CED4DA\",\r\n borderRadius: \"0px\",\r\n padding: \"12px 10px\",\r\n margin: \"0px 0px 10px 0px\",\r\n boxShadow: \"0px 3px 3px #0000001a\",\r\n \"& > .MuiCardContent-root\": {\r\n padding: \"0px\",\r\n },\r\n \"&:last-child\": {\r\n marginBottom: \"0\",\r\n },\r\n },\r\n choicesAreaSummaryTitleContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n \"& button\": {\r\n width: \"auto\",\r\n \"& img\": {\r\n maxWidth: \"30px\",\r\n maxHeight: \"30px\",\r\n },\r\n },\r\n },\r\n choicesAreaSummaryTitle: {\r\n fontSize: \"14px\",\r\n },\r\n choicesAreaSummarySubTitle: {\r\n fontSize: \"12px\",\r\n fontWeight: \"bold\",\r\n marginBottom: \"10px\",\r\n },\r\n choicesAreaSummaryOptionsContainer: {\r\n fontSize: \"12px\",\r\n },\r\n choicesAreaSummaryExtrasContainer: {\r\n fontSize: \"12px\",\r\n },\r\n editIcon: {},\r\n productSummaryContainer: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n marginBottom: \"10px\",\r\n \"& > div:first-child\": {\r\n paddingRight: \"30px\",\r\n },\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n introduction: {\r\n margin: \"28px 18px 15px 18px\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"flex-start\",\r\n flex: \"0 0 auto\", // Fix for MacBook Safari - Catalina\r\n \"& > button\": {\r\n padding: \"0\",\r\n },\r\n \"& .MuiSvgIcon-root\": {\r\n margin: \"-7px\",\r\n fontSize: \"35px\",\r\n },\r\n },\r\n introductionTitle: {\r\n fontSize: \"20px\",\r\n marginBottom: \"8px\",\r\n },\r\n choicesAreas: {\r\n borderTop: \"none\",\r\n marginTop: \"-3px\",\r\n paddingTop: \"0px\",\r\n \"& > div\": {\r\n display: \"grid\",\r\n gridTemplateColumns: \"repeat(auto-fill,minmax(180px, 1fr))\",\r\n margin: \"0 -13px\",\r\n },\r\n },\r\n choicesArea: {\r\n margin: \"13px\",\r\n },\r\n choicesAreaSummary: {\r\n margin: \"0px 0px 6px 0px\",\r\n padding: \"24px 30px 18px 30px\",\r\n \"& > .MuiCardContent-root\": {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n },\r\n choicesAreasSummaryTitle: {\r\n fontSize: \"16px\",\r\n marginTop: \"27px\",\r\n },\r\n choicesAreaSummaryTitle: {\r\n fontSize: \"16px\",\r\n marginBottom: \"12px\",\r\n },\r\n choicesAreaSummarySubTitle: {\r\n marginBottom: \"8px\",\r\n },\r\n choicesAreaSummaryOptionsContainer: {\r\n margin: \"4px 0\",\r\n },\r\n productSummaryContainer: {\r\n marginBottom: \"5px\",\r\n },\r\n },\r\n choicesAreasSummarySubTotal: {\r\n display: \"flex\",\r\n fontSize: \"12px\",\r\n \"& > div:first-child\": {\r\n fontWeight: \"bold\",\r\n marginRight: \"12px\",\r\n },\r\n [\"@media (max-width:365px)\"]: {\r\n display: \"block\",\r\n },\r\n },\r\n choicesAreasMainSummaryTitle: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n fontWeight: \"bold\",\r\n },\r\n choicesAreasSummarySubtitle: {\r\n display: \"flex\",\r\n gap: \"10px 30px\",\r\n },\r\n choicesAreasMainHeadingBlock: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n margin: \"20px 0\",\r\n gap: \"80px\",\r\n [\"@media (max-width:610px)\"]: {\r\n display: \"block\",\r\n },\r\n },\r\n}));\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\n// Content\r\nimport HouseType1Svg from \"../../Content/Images/noImageDefault.svg\";\r\n\r\nexport class ChoiceModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id = \"\";\r\n\r\n @observable\r\n public areaName = \"\";\r\n\r\n @observable\r\n public productGroupsAvailable = 0;\r\n\r\n @observable\r\n public productGroupsUsed = 0;\r\n\r\n @observable\r\n public imageUrl = \"\";\r\n\r\n @observable\r\n public originalImageUrl = \"\";\r\n\r\n @observable\r\n public thumbnailImageUrl = \"\";\r\n\r\n // #endregion Properties\r\n\r\n @computed\r\n public get areaImage() {\r\n if (this.thumbnailImageUrl !== null && this.thumbnailImageUrl !== undefined && this.thumbnailImageUrl !== \"\") {\r\n return this.thumbnailImageUrl;\r\n }\r\n\r\n return HouseType1Svg;\r\n }\r\n\r\n @action\r\n public fromDto = (dto: ChoiceModelDTO): void => {\r\n this.id = dto.id;\r\n this.areaName = dto.areaName;\r\n this.productGroupsAvailable = dto.productGroupsAvailable;\r\n this.productGroupsUsed = dto.productGroupsUsed;\r\n this.imageUrl = dto.imageUrl;\r\n this.originalImageUrl = dto.originalImageUrl;\r\n this.thumbnailImageUrl = dto.thumbnailImageUrl;\r\n };\r\n\r\n public toDto = (): ChoiceModelDTO => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n\r\nexport interface ChoiceModelDTO {\r\n id: string;\r\n areaName: string;\r\n productGroupsAvailable: number;\r\n productGroupsUsed: number;\r\n imageUrl: string;\r\n originalImageUrl: string;\r\n thumbnailImageUrl: string;\r\n}\r\n\r\nexport interface ChoicesAndRelatedModelDTO {\r\n choices: ChoiceModelDTO[];\r\n isChoicesLocked: boolean;\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\n// Custom\r\nimport { ChoiceModel, ChoiceModelDTO } from \"./ChoiceModel\";\r\n\r\nexport class ChoicesModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public choicesAreas = observable([]);\r\n\r\n @observable\r\n public isChoicesLocked: boolean = false;\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: ChoiceModelDTO[]): void => {\r\n for (const choice of dto) {\r\n const choiceModel = new ChoiceModel();\r\n\r\n choiceModel.fromDto(choice);\r\n\r\n this.choicesAreas.push(choiceModel);\r\n }\r\n };\r\n\r\n public toDto = (): ChoiceModelDTO[] => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\n\r\n// Custom\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\nimport { ChoiceModelDTO, ChoicesAndRelatedModelDTO } from \"Custom/Models/DashboardModels/ChoiceModel\";\r\nimport { ChoicesModel } from \"Custom/Models/DashboardModels/ChoicesModel\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { StoresInstance } from \"../../Stores\";\r\n\r\nexport class ChoicesViewModel extends ViewModelBase {\r\n constructor(propertyId: string) {\r\n super(new ChoicesModel());\r\n this.setDecorators(ChoicesModel);\r\n\r\n //console.log(\"CHOICESSVM CONSTRUCTOR: PropertyId\", propertyId);\r\n this.propertyId = propertyId;\r\n\r\n if (propertyId !== null && propertyId !== undefined && propertyId !== \"\") {\r\n // this.load(propertyId);\r\n this.loadChoicesAndRelated(propertyId);\r\n }\r\n }\r\n\r\n // #region Properties\r\n\r\n @observable\r\n public propertyId: string = \"\";\r\n\r\n @observable\r\n public apiStatus: ApiStatus = ApiStatus.loading;\r\n\r\n @observable\r\n private isChoicesLockedValue: boolean = false;\r\n\r\n @computed\r\n public get isChoicesLocked() {\r\n return this.isChoicesLockedValue;\r\n }\r\n\r\n // #endregion Properties\r\n\r\n // #region Computeds\r\n\r\n @computed\r\n public get ChoicesAreas() {\r\n return this.model.choicesAreas;\r\n }\r\n\r\n @computed\r\n public get ApiStatus(): ApiStatus {\r\n return this.apiStatus;\r\n }\r\n\r\n // #endregion Computeds\r\n\r\n // #region Actions\r\n\r\n @action\r\n public setApiStatus(apiStatus: ApiStatus) {\r\n this.apiStatus = apiStatus;\r\n }\r\n\r\n public navigateToChoicesArea = (propertyId: string, areaId: string) => {\r\n this.history.push(`/choicesarea/${propertyId}/${areaId}`);\r\n };\r\n\r\n public navigateToDashboard = () => {\r\n this.history.push(`/${this.propertyId}`);\r\n };\r\n\r\n private load = async (id: string): Promise => {\r\n this.setApiStatus(ApiStatus.loading);\r\n\r\n try {\r\n const apiResult = await this.Get(Server.Api.Dashboard.GetChoices + \"/\" + id);\r\n\r\n if (apiResult.wasSuccessful) {\r\n this.model.fromDto(apiResult.payload);\r\n this.setApiStatus(ApiStatus.success);\r\n } else {\r\n this.setApiStatus(ApiStatus.error);\r\n }\r\n } catch (exception) {\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n private loadChoicesAndRelated = async (id: string): Promise => {\r\n this.setApiStatus(ApiStatus.loading);\r\n\r\n try {\r\n const apiResult = await this.Get(Server.Api.Dashboard.GetChoicesAndRelated + \"/\" + id);\r\n\r\n if (apiResult.wasSuccessful) {\r\n const choicesAndRelated: ChoicesAndRelatedModelDTO = apiResult.payload;\r\n\r\n this.isChoicesLockedValue = choicesAndRelated.isChoicesLocked;\r\n this.model.fromDto(choicesAndRelated.choices);\r\n this.setApiStatus(ApiStatus.success);\r\n } else {\r\n this.setApiStatus(ApiStatus.error);\r\n }\r\n } catch (exception) {\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n // #endregion Actions\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\nimport { ProductSummaryModel, ProductSummaryModelDTO } from \"./ProductSummary\";\r\n\r\n// Custom\r\n//import { ChoiceModel, ChoiceModelDTO } from \"./ChoiceModel\";\r\n\r\nexport class ProductGroupSummaryModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id: string = \"\";\r\n\r\n @observable\r\n public isCompleted: boolean = false;\r\n\r\n @observable\r\n public orderId: string = \"\";\r\n\r\n @observable\r\n public productGroupId: string = \"\";\r\n\r\n @observable\r\n public productGroupName: string = \"\";\r\n\r\n @observable\r\n public areaId: string = \"\";\r\n\r\n @observable\r\n public isNoneOfTheAbove: boolean = false;\r\n\r\n @observable\r\n public products: ProductSummaryModel[] = [];\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: ProductGroupSummaryAndRelatedModelDTO): void => {\r\n this.id = dto.productGroupSummary.id;\r\n this.isCompleted = dto.productGroupSummary.isComplete;\r\n this.orderId = dto.productGroupSummary.orderId;\r\n this.productGroupId = dto.productGroupSummary.productGroupId;\r\n this.productGroupName = dto.productGroupSummary.productGroupName;\r\n this.areaId = dto.productGroupSummary.areaId;\r\n this.isNoneOfTheAbove = dto.productGroupSummary.isNoneOfTheAbove;\r\n\r\n for (const productDto of dto.productsSummary) {\r\n const product = new ProductSummaryModel();\r\n\r\n product.fromDto(productDto);\r\n\r\n this.products.push(product);\r\n }\r\n };\r\n\r\n public toDto = (): ProductGroupSummaryAndRelatedModelDTO => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n\r\nexport interface ProductGroupSummaryModelDTO {\r\n id: string;\r\n isComplete: boolean;\r\n orderId: string;\r\n productGroupId: string;\r\n productGroupName: string;\r\n areaId: string;\r\n isNoneOfTheAbove: boolean;\r\n}\r\n\r\nexport interface ProductGroupSummaryAndRelatedModelDTO {\r\n productGroupSummary: ProductGroupSummaryModelDTO;\r\n productsSummary: ProductSummaryModelDTO[];\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\nimport { ProductGroupSummaryModel, ProductGroupSummaryModelDTO } from \"./ProductGroupSummary\";\r\nimport { ProductSummaryModelDTO } from \"./ProductSummary\";\r\n\r\n// Custom\r\n//import { ChoiceModel, ChoiceModelDTO } from \"./ChoiceModel\";\r\n\r\nexport class AreaSummaryModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id: string = \"\";\r\n\r\n @observable\r\n public isComplete: boolean = false;\r\n\r\n @observable\r\n public orderId: string = \"\";\r\n\r\n @observable\r\n public areaId: string = \"\";\r\n\r\n @observable\r\n public areaName: string = \"\";\r\n\r\n @observable\r\n public productGroups: ProductGroupSummaryModel[] = [];\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: AreaSummaryAndRelatedModelDTO): void => {\r\n this.id = dto.areaSummary.id;\r\n this.isComplete = dto.areaSummary.isComplete;\r\n this.orderId = dto.areaSummary.orderId;\r\n this.areaId = dto.areaSummary.areaId;\r\n this.areaName = dto.areaSummary.areaName;\r\n\r\n for (const productGroupDto of dto.productGroupsSummary) {\r\n const productGroup = new ProductGroupSummaryModel();\r\n\r\n let products = dto.productsSummary.filter(p => p.orderAreaProductGroupId === productGroupDto.productGroupId && p.orderAreaId === productGroupDto.areaId);\r\n\r\n productGroup.fromDto({\r\n productGroupSummary: productGroupDto,\r\n productsSummary: products,\r\n });\r\n\r\n this.productGroups.push(productGroup);\r\n }\r\n };\r\n\r\n public toDto = (): AreaSummaryAndRelatedModelDTO => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n\r\nexport interface AreaSummaryModelDTO {\r\n id: string;\r\n isComplete: boolean;\r\n orderId: string;\r\n areaId: string;\r\n areaName: string;\r\n}\r\n\r\nexport interface AreaSummaryAndRelatedModelDTO {\r\n areaSummary: AreaSummaryModelDTO;\r\n productGroupsSummary: ProductGroupSummaryModelDTO[];\r\n productsSummary: ProductSummaryModelDTO[];\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\nimport { AreaSummaryModel } from \"./AreaSummaryModel\";\r\nimport { ChoicesSummaryModelDTO } from \"Custom/ViewModels/DashboardSubViewModels/ChoicesSummaryViewModel\";\r\n\r\n// Custom\r\n//import { ChoiceModel, ChoiceModelDTO } from \"./ChoiceModel\";\r\n\r\nexport class ChoicesSummaryModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public areas: AreaSummaryModel[] = [];\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: ChoicesSummaryModelDTO): void => {\r\n for (const areaDto of dto.areasSummary) {\r\n const area = new AreaSummaryModel();\r\n\r\n let productGroups = dto.productGroupsSummary.filter(pg => pg.areaId === areaDto.areaId);\r\n //let products = dto.products.filter(p => p.productGroupId === productGroupDto.id);\r\n //let productVariants = dto.productVariants.filter(pv => products.findIndex(p => p.id === pv.productId) !== 0)\r\n\r\n area.fromDto({\r\n areaSummary: areaDto,\r\n productGroupsSummary: productGroups,\r\n productsSummary: dto.productsSummary,\r\n });\r\n\r\n this.areas.push(area);\r\n }\r\n // for (const productGroupDto of dto.productGroups) {\r\n // const productGroup = new ProductGroupModel();\r\n\r\n // let products = dto.products.filter(p => p.productGroupId === productGroupDto.id);\r\n // let productVariants = dto.productVariants.filter(pv => products.findIndex(p => p.id === pv.productId) !== 0)\r\n\r\n // productGroup.fromDto({\r\n // productGroup: productGroupDto,\r\n // products: products,\r\n // productVariants: productVariants\r\n // });\r\n\r\n // this.productGroups.push(productGroup);\r\n // }\r\n };\r\n\r\n public toDto = (): ChoicesSummaryModelDTO => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\n\r\n// App\r\nimport { ProductSummaryModel } from \"Custom/Models/DashboardModels/ProductSummary\";\r\nimport { Format } from \"Custom/Utils\";\r\n\r\nexport class ProductSummaryViewModel extends ViewModelBase {\r\n constructor(product: ProductSummaryModel) {\r\n super(product);\r\n this.setDecorators(ProductSummaryModel);\r\n }\r\n\r\n @computed\r\n public get productTitle() {\r\n if (this.hasVariant) {\r\n return this.model.productVariantCode + \" - \" + this.model.productVariantName;\r\n }\r\n\r\n return this.model.productCode + \" - \" + this.model.productName;\r\n }\r\n\r\n @computed\r\n public get productQuantity() {\r\n return this.model.quantity == 0 || this.model.quantity == null ? 1 : this.model.quantity;\r\n }\r\n\r\n @computed\r\n public get hasVariant() {\r\n if (this.model.productVariantId !== \"\" && this.model.productVariantId !== null && this.model.productVariantId !== undefined) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n @computed\r\n public get cost() {\r\n if (this.model.isPOA) {\r\n return \"POA\";\r\n }\r\n\r\n if (this.model.isIncluded) {\r\n return \"Included\";\r\n }\r\n\r\n return `£${Format.currencyFormat(this.model.cost)}`;\r\n }\r\n\r\n @computed\r\n public get isOption() {\r\n return this.model.isIncluded || this.model.isUpgrade;\r\n }\r\n\r\n @computed\r\n public get isExtra() {\r\n return this.model.isOptional;\r\n }\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\n\r\n// App\r\nimport { ProductGroupSummaryModel } from \"../../Models/DashboardModels/ProductGroupSummary\";\r\nimport { ProductSummaryViewModel } from \"Custom/ViewModels/DashboardSubViewModels/ProductSummaryViewModel\";\r\n\r\nexport class ProductGroupSummaryViewModel extends ViewModelBase {\r\n @observable\r\n private productSummaryViewModels: ProductSummaryViewModel[] = [];\r\n\r\n constructor(productGroup: ProductGroupSummaryModel) {\r\n super(productGroup);\r\n this.setDecorators(ProductGroupSummaryModel);\r\n\r\n this.createViewModels();\r\n }\r\n\r\n @computed\r\n public get products() {\r\n return this.productSummaryViewModels;\r\n }\r\n\r\n @computed\r\n public get options() {\r\n return this.products.filter(p => p.isOption === true);\r\n }\r\n\r\n @computed\r\n public get extras() {\r\n return this.products.filter(p => p.isExtra === true);\r\n }\r\n\r\n @computed\r\n public get isNoneOfTheAbove() {\r\n return this.model.isNoneOfTheAbove;\r\n }\r\n\r\n @action\r\n private createViewModels() {\r\n for (const product of this.model.products) {\r\n this.productSummaryViewModels.push(new ProductSummaryViewModel(product));\r\n }\r\n }\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\n\r\n// Custom\r\nimport { AreaSummaryModel } from \"../../Models/DashboardModels/AreaSummaryModel\";\r\nimport { ProductGroupSummaryViewModel } from \"Custom/ViewModels/DashboardSubViewModels/ProductGroupSummaryViewModel\";\r\n\r\nexport class AreaSummaryViewModel extends ViewModelBase {\r\n @observable\r\n private productGroupSummaryViewModels: ProductGroupSummaryViewModel[] = [];\r\n\r\n constructor(areaSummary: AreaSummaryModel) {\r\n super(areaSummary);\r\n this.setDecorators(AreaSummaryModel);\r\n\r\n this.createViewModels();\r\n }\r\n\r\n // #region Properties\r\n\r\n @computed\r\n public get productGroupsSummary() {\r\n return this.productGroupSummaryViewModels;\r\n }\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n private createViewModels() {\r\n for (const productGroup of this.model.productGroups) {\r\n this.productGroupSummaryViewModels.push(new ProductGroupSummaryViewModel(productGroup));\r\n }\r\n }\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\n\r\n// Custom\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\nimport { ChoicesSummaryModel } from \"Custom/Models/DashboardModels/ChoicesSummaryModel\";\r\nimport { AreaSummaryModelDTO } from \"Custom/Models/DashboardModels/AreaSummaryModel\";\r\nimport { ProductGroupSummaryModelDTO } from \"Custom/Models/DashboardModels/ProductGroupSummary\";\r\nimport { ProductSummaryModelDTO } from \"Custom/Models/DashboardModels/ProductSummary\";\r\nimport { AreaSummaryViewModel } from \"Custom/ViewModels/DashboardSubViewModels/AreaSummaryViewModel\";\r\nimport { StoresInstance } from \"../../Stores\";\r\nimport { OrderModelDTO } from \"Custom/Models/DashboardModels/ChoicesAreaModel\";\r\nimport { ProductBespokeModelDTO } from \"Custom/Models/DashboardModels/ProductBespoke\";\r\nimport { Format } from \"Custom/Utils\";\r\n\r\nexport class ChoicesSummaryViewModel extends ViewModelBase {\r\n @observable\r\n private areaSummaryViewModels: AreaSummaryViewModel[] = [];\r\n\r\n @observable\r\n private productBespokeViewModels: ProductBespokeModelDTO[] = [];\r\n\r\n @observable\r\n public choicesSummaryModels = observable([]);\r\n\r\n @observable\r\n public areaId: any[] = [];\r\n\r\n constructor(propertyId: string) {\r\n super(new ChoicesSummaryModel());\r\n this.setDecorators(ChoicesSummaryModel);\r\n\r\n if (propertyId !== null && propertyId !== undefined && propertyId !== \"\") {\r\n this.load(propertyId);\r\n }\r\n }\r\n\r\n // #region Properties\r\n\r\n @computed\r\n public get areas() {\r\n return this.areaSummaryViewModels;\r\n }\r\n\r\n @computed\r\n public get productBespoke() {\r\n return this.productBespokeViewModels;\r\n }\r\n\r\n @computed\r\n public get hasSelectedChoices() {\r\n return this.areaSummaryViewModels.length > 0;\r\n }\r\n\r\n @computed\r\n public get choicesPOACount() {\r\n let poaCount = 0;\r\n const items = this.choicesSummaryModels.find(i => i.productsSummary != undefined)!;\r\n const productsSummary = items && items.productsSummary;\r\n\r\n if (productsSummary) {\r\n productsSummary.forEach(item => {\r\n const itemC = parseInt(item.cost, undefined);\r\n if (item.isPOA && !item.isIncluded && itemC === 0) {\r\n poaCount++;\r\n }\r\n });\r\n }\r\n\r\n const bespokeItems = this.choicesSummaryModels.find(i => i.productsBespoke != undefined)!;\r\n const productsBespoke = bespokeItems && bespokeItems.productsBespoke;\r\n\r\n productsBespoke &&\r\n productsBespoke.forEach((item: any) => {\r\n const itemC = parseInt(item.cost, undefined);\r\n if (item.poa && itemC === 0) {\r\n poaCount++;\r\n }\r\n });\r\n\r\n return poaCount;\r\n }\r\n\r\n @computed\r\n public get choicesSubTotal() {\r\n const items = this.choicesSummaryModels.find(i => i.productsSummary != undefined)!;\r\n const productsSummary = items && items.productsSummary;\r\n let choicesSubTotal = 0;\r\n\r\n productsSummary &&\r\n productsSummary.forEach((item: any) => {\r\n if (item.cost) {\r\n if (item.cost !== \"-\" && item.cost !== \"P\" && item.cost !== \"PO\" && item.cost !== \"POA\") {\r\n if (item.quantity > 0) {\r\n choicesSubTotal += parseFloat(item.cost) * item.quantity;\r\n } else {\r\n choicesSubTotal += parseFloat(item.cost);\r\n }\r\n }\r\n }\r\n });\r\n\r\n const bespokeItems = this.choicesSummaryModels.find(i => i.productsBespoke != undefined)!;\r\n const productsBespoke = bespokeItems && bespokeItems.productsBespoke;\r\n\r\n productsBespoke &&\r\n productsBespoke.forEach((item: any) => {\r\n if (item.cost) {\r\n if (item.cost !== \"-\" && item.cost !== \"P\" && item.cost !== \"PO\" && item.cost !== \"POA\") {\r\n choicesSubTotal += parseFloat(item.cost);\r\n }\r\n }\r\n });\r\n\r\n return choicesSubTotal;\r\n }\r\n\r\n @computed\r\n public get choicesTotal() {\r\n const items = this.choicesSummaryModels.find(i => i.order != undefined);\r\n\r\n const order = items && items.order;\r\n\r\n let choicesTotal = this.choicesSubTotal;\r\n\r\n if (order && order.costRevision != undefined) {\r\n choicesTotal += order.costRevision;\r\n }\r\n\r\n return choicesTotal;\r\n }\r\n\r\n @computed\r\n public get choicesPaymentCost() {\r\n const items = this.choicesSummaryModels.find(i => i.order != undefined);\r\n\r\n const order = items && items.order;\r\n\r\n let choicesPaymentCost = 0;\r\n\r\n if (order && order.choicesPaymentCost != undefined) {\r\n choicesPaymentCost = order.choicesPaymentCost;\r\n }\r\n\r\n return choicesPaymentCost;\r\n }\r\n\r\n @computed\r\n public get outstandingBalanceTotal() {\r\n const items = this.choicesSummaryModels.find(i => i.productsSummary != undefined)!;\r\n const productsSummary = items && items.productsSummary;\r\n //outstanding balance = choices total - cost of all paid products\r\n\r\n let paidProductsCost = 0;\r\n let retVal = 0;\r\n //get total cost of all paid products\r\n productsSummary &&\r\n productsSummary.forEach(p => {\r\n const isCostNotANum = isNaN(parseFloat(p.cost));\r\n if (p.productName !== \"None of the above\" && p.isPaid && !isCostNotANum) {\r\n const productQty = p.quantity == 0 ? 1 : p.quantity;\r\n paidProductsCost += parseFloat(p.cost) * productQty;\r\n }\r\n });\r\n\r\n const bespokeItems = this.choicesSummaryModels.find(i => i.productsBespoke != undefined)!;\r\n const productsBespoke = bespokeItems && bespokeItems.productsBespoke;\r\n\r\n productsBespoke &&\r\n productsBespoke.forEach((item: any) => {\r\n const isCostNotANum = isNaN(parseFloat(item.cost));\r\n if (item.productName !== \"None of the above\" && item.isPaid && !isCostNotANum) {\r\n paidProductsCost += parseFloat(item.cost);\r\n }\r\n });\r\n\r\n retVal = this.choicesTotal - paidProductsCost;\r\n\r\n if (this.choicesPaymentCost) retVal = retVal - this.choicesPaymentCost;\r\n return Format.currencyFormat(retVal.toString(), true);\r\n }\r\n\r\n @computed\r\n public get orderValue() {\r\n let formattedValue = \"\";\r\n\r\n if (this.choicesTotal) {\r\n formattedValue = Format.currencyFormat(this.choicesTotal.toString(), true);\r\n\r\n if (this.choicesPOACount) {\r\n if (this.choicesPOACount > 0) {\r\n formattedValue = formattedValue + \" + (\" + this.choicesPOACount + \" POA)\";\r\n }\r\n }\r\n }\r\n return formattedValue;\r\n }\r\n\r\n // #endregion Properties\r\n public addAreaId = (id: any) => {\r\n this.areaId.push(id);\r\n };\r\n\r\n public navigateToChoicesArea = (propertyId: string, areaId: string) => {\r\n this.history.push(`/choicesarea/${propertyId}/${areaId}`);\r\n };\r\n\r\n private load = async (id: string): Promise => {\r\n try {\r\n const apiResult = await this.Get(Server.Api.Choices.GetChoicesSummary + \"/\" + id);\r\n\r\n if (apiResult.wasSuccessful) {\r\n this.model.fromDto(apiResult.payload);\r\n\r\n this.createViewModels();\r\n this.setChoicesModels(apiResult.payload);\r\n } else {\r\n // Error\r\n }\r\n } catch (exception) {\r\n // Exceptional error\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n @action\r\n private createViewModels() {\r\n for (const area of this.model.areas) {\r\n this.areaSummaryViewModels.push(new AreaSummaryViewModel(area));\r\n }\r\n }\r\n\r\n @action\r\n private setChoicesModels(choicesSummaryViewModel: ChoicesSummaryModelDTO) {\r\n this.choicesSummaryModels.push(choicesSummaryViewModel);\r\n\r\n const choicesSummaryModel = this.choicesSummaryModels.find(i => i.productsBespoke != null);\r\n choicesSummaryModel &&\r\n choicesSummaryModel.productsBespoke &&\r\n choicesSummaryModel.productsBespoke.forEach(item => {\r\n this.productBespokeViewModels.push(item);\r\n });\r\n }\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n\r\nexport interface ChoicesSummaryModelDTO {\r\n areasSummary: AreaSummaryModelDTO[];\r\n productGroupsSummary: ProductGroupSummaryModelDTO[];\r\n productsSummary: ProductSummaryModelDTO[];\r\n order: OrderModelDTO;\r\n productsBespoke: ProductBespokeModelDTO[];\r\n}\r\n","import { Box, Card, CardActionArea, CardContent, CardMedia, Grid, Typography } from \"@material-ui/core\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\n\r\nimport { DashboardPageStyles } from \"Custom/StylesAppSpecific/DashboardPagesStyling\";\r\nimport { ChoicesPageStyles } from \"Custom/StylesAppSpecific/DashboardSubViews/ChoicesPageStyling\";\r\nimport { ChoicesSummaryViewModel } from \"Custom/ViewModels/DashboardSubViewModels/ChoicesSummaryViewModel\";\r\nimport EditIcon from \"Custom/Content/Images/editBlue.svg\";\r\nimport { useRouter } from \"Core/Utils\";\r\nimport { ChoicesSummaryModel } from \"Custom/Models/DashboardModels/ChoicesSummaryModel\";\r\nimport { ChoicesProductGroupStyles } from \"Custom/StylesAppSpecific/DashboardSubViews/ChoicesProductGroupStyling\";\r\nimport { Format } from \"Custom/Utils\";\r\n\r\ninterface IProps {\r\n propertyId: string;\r\n canEditChoices?: boolean;\r\n}\r\n\r\nexport const ChoicesSummary: React.FC = props => {\r\n // #region Code Behind\r\n\r\n const { match } = useRouter();\r\n //const { propertyId } = match.params as any;\r\n const propertyId = props.propertyId; //match.params as any;\r\n\r\n const choicesPageStyles = ChoicesPageStyles();\r\n const choicesProductGroupStyles = ChoicesProductGroupStyles();\r\n\r\n const [viewModel] = useState(() => new ChoicesSummaryViewModel(propertyId));\r\n\r\n const onChoicesAreaClick = (areaId: string) => {\r\n viewModel.navigateToChoicesArea(propertyId, areaId);\r\n };\r\n // #endregion Code Behind\r\n\r\n const renderTitleRow = () => (\r\n \r\n Choices selected so far...\r\n
\r\n \r\n
Order value:
\r\n
{viewModel.orderValue ? \"£\" + viewModel.orderValue : \"-\"}
\r\n
\r\n \r\n
Outstanding balance:
\r\n
{viewModel.outstandingBalanceTotal ? \"£\" + viewModel.outstandingBalanceTotal : \"-\"}
\r\n
\r\n
\r\n
\r\n );\r\n\r\n const renderViewEditChoicesButton = () => {\r\n if (props.canEditChoices !== undefined && props.canEditChoices === false) {\r\n return View choices;\r\n } else {\r\n return \"Edit;\r\n }\r\n };\r\n\r\n const renderChoicesSummary = () => (\r\n \r\n {viewModel.areas.map((choicesArea, index) => (\r\n \r\n \r\n \r\n {choicesArea.model.areaName}\r\n onChoicesAreaClick(choicesArea.model.areaId)}>{renderViewEditChoicesButton()}\r\n \r\n \r\n Options you selected:\r\n\r\n {choicesArea.productGroupsSummary.map((productGroup, index) => (\r\n \r\n {productGroup.options.map((product, prodIndex) => (\r\n \r\n {product.productTitle}\r\n {product.productQuantity && (\r\n \r\n Quanity: {product.productQuantity}\r\n \r\n )}\r\n {product.cost}\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n Extras, you selected:\r\n\r\n {choicesArea.productGroupsSummary.map((productGroup, index) => (\r\n \r\n {productGroup.extras.map((product, prodIndex) => (\r\n \r\n {product.productTitle}\r\n {product.cost}\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n\r\n {viewModel.productBespoke &&\r\n viewModel.productBespoke.map(\r\n (bespoke, index) =>\r\n bespoke.areaId === choicesArea.model.areaId && (\r\n \r\n {!viewModel.areaId.includes(bespoke.areaId) && (\r\n Bespoke:\r\n )}\r\n\r\n \r\n {`${bespoke.name} - ${bespoke.notes}`}\r\n {bespoke.poa ? \"POA\" : bespoke.isPaid ? \"Paid\" : `£${Format.currencyFormat(bespoke.cost)}`}\r\n \r\n {viewModel.addAreaId(bespoke.areaId)}\r\n \r\n ),\r\n )}\r\n \r\n \r\n ))}\r\n \r\n );\r\n\r\n return useObserver(() => (\r\n \r\n {viewModel.hasSelectedChoices && renderTitleRow()}\r\n {renderChoicesSummary()}\r\n \r\n ));\r\n};\r\n","import { Box, Card, CardActionArea, CardContent, CardMedia, Typography } from \"@material-ui/core\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\n\r\n// Core\r\nimport { Loader } from \"Core/Components/Loader\";\r\nimport { useRouter } from \"Core/Utils\";\r\n\r\n// Custom\r\nimport { CloseButton } from \"Custom/Components/Buttons/CloseButton\";\r\nimport { Error } from \"Custom/Components/Error\";\r\n\r\nimport { DashboardPageStyles } from \"Custom/StylesAppSpecific/DashboardPagesStyling\";\r\nimport { ChoicesPageStyles } from \"Custom/StylesAppSpecific/DashboardSubViews/ChoicesPageStyling\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { ChoicesViewModel } from \"Custom/ViewModels/DashboardSubViewModels/ChoicesViewModel\";\r\nimport { ChoicesSummary } from \"./ChoicesSummary\";\r\n\r\nexport const Choices: React.FC = () => {\r\n // #region Code Behind\r\n\r\n const router = useRouter();\r\n const theme = useTheme();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"md\")) ? true : false;\r\n\r\n //console.log(\"CHOICESVIEW: PropertyId\", router.match.params);\r\n const propertyId = (router.match.params as any).propertyId;\r\n\r\n const dashboardPageStyles = DashboardPageStyles();\r\n const choicesPageStyles = ChoicesPageStyles();\r\n\r\n const [viewModel] = useState(() => new ChoicesViewModel(propertyId));\r\n\r\n const onChoicesAreaClick = (areaId: string) => {\r\n viewModel.navigateToChoicesArea(propertyId, areaId);\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n const renderBusy = () => ;\r\n\r\n const renderError = () => ;\r\n\r\n const renderTitleRow = () =>\r\n isDesktop ? (\r\n \r\n ) : (\r\n \r\n Choices\r\n \r\n \r\n );\r\n\r\n const renderIntroductionRow = () => {\r\n const introductionText = () => {\r\n if (viewModel.isChoicesLocked) {\r\n return (\r\n <>\r\n Your choices\r\n\r\n \r\n Currently, you can only view your choices. Please contact your sales agent if you need to make any changes.\r\n \r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n Choose how you want your house\r\n Select an area of the house to select your options and choose your upgrades.\r\n \r\n );\r\n }\r\n };\r\n\r\n return (\r\n \r\n {introductionText()}\r\n {isDesktop && }\r\n \r\n );\r\n };\r\n\r\n const renderChoicesAreas = () => (\r\n \r\n \r\n {viewModel.ChoicesAreas.map((choicesArea, index) => (\r\n \r\n onChoicesAreaClick(choicesArea.id)}>\r\n \r\n \r\n \r\n {choicesArea.areaName}\r\n \r\n \r\n {`${choicesArea.productGroupsUsed} of ${choicesArea.productGroupsAvailable}`} choices made\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n\r\n const renderChoicesSummary = () => (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n return useObserver(() => (\r\n \r\n \r\n {viewModel.ApiStatus === ApiStatus.success && (\r\n \r\n {renderTitleRow()}\r\n {renderIntroductionRow()}\r\n {renderChoicesAreas()}\r\n {renderChoicesSummary()}\r\n \r\n )}\r\n {viewModel.ApiStatus === ApiStatus.loading && {renderBusy()}}\r\n {viewModel.ApiStatus === ApiStatus.error && {renderError()}}\r\n \r\n \r\n ));\r\n};\r\n","import { darken, lighten, makeStyles } from \"@material-ui/core\";\r\nimport { Theme } from \"@material-ui/core/styles\";\r\n\r\n/**\r\n * Contains style information for the progress page.\r\n */\r\nexport const ProgressPageStyles = makeStyles((theme: Theme) => ({\r\n root: {},\r\n progresses: {\r\n padding: \"20px 0 16px 0\",\r\n overflowY: \"auto\",\r\n paddingBottom: \"150px\",\r\n },\r\n progress: {\r\n display: \"flex\",\r\n margin: \"0 18px\",\r\n \"& > div:first-child\": {\r\n minHeight: \"80px\",\r\n minWidth: \"80px\",\r\n position: \"relative\",\r\n \"& > div\": {\r\n position: \"absolute\",\r\n },\r\n // Link element.\r\n \"& > div:first-child\": {\r\n backgroundColor: \"#ced4da\",\r\n minHeight: \"100%\",\r\n minWidth: \"8px\",\r\n transform: \"translate(36px, 0px)\",\r\n },\r\n },\r\n // First progress element.\r\n \"&:first-child\": {\r\n \"& > div:first-child\": {\r\n // Link element.\r\n \"& > div:first-child\": {\r\n bottom: \"0\",\r\n minHeight: \"50%\",\r\n },\r\n },\r\n },\r\n // Last progress element.\r\n \"&:last-child\": {\r\n marginBottom: \"40vh\",\r\n\r\n \"& > div:first-child\": {\r\n // Link element.\r\n \"& > div:first-child\": {\r\n minHeight: \"50%\",\r\n top: \"0\",\r\n },\r\n },\r\n },\r\n // Latest\r\n \"&.latest\": {\r\n border: \"1px solid #CED4DA\",\r\n margin: \"-1px 17px\",\r\n borderRadius: \"10px\",\r\n },\r\n },\r\n progressTextRow: {\r\n color: \"#808080\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n },\r\n progressTitle: {\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n textTransform: \"uppercase\",\r\n },\r\n progressSubTitle: {\r\n fontSize: \"12px\",\r\n },\r\n majorActivityIcon: {\r\n alignItems: \"center\",\r\n backgroundColor: \"#ced4da\",\r\n border: \"5px solid white\",\r\n borderRadius: \"50%\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n \"& > svg\": {\r\n fill: \"white\",\r\n },\r\n minHeight: \"60px\",\r\n minWidth: \"60px\",\r\n transform: \"translate(10px, 10px)\",\r\n },\r\n minorActivityIcon: {\r\n backgroundColor: \"#ced4da\",\r\n border: \"5px solid white\",\r\n borderRadius: \"50%\",\r\n minHeight: \"26px\",\r\n minWidth: \"26px\",\r\n transform: \"translate(27px, 27px)\",\r\n },\r\n gradient: {\r\n position: \"absolute\",\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: \"36px\",\r\n background: \"linear-gradient(0deg, rgba(255,255,255,1) 10%, rgba(255,255,255,0) 25%)\",\r\n pointerEvents: \"none\",\r\n zIndex: 1,\r\n },\r\n workspace: {\r\n position: \"relative\",\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n progresses: {\r\n padding: \"0 0 16px 0\",\r\n marginRight: \"18px\",\r\n paddingBottom: \"150px\",\r\n },\r\n titleRow: {\r\n padding: \"27px 18px\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n flex: \"1 0 auto\", // Fix for MacBook Safari - Catalina\r\n \"& > h4\": {\r\n padding: \"0px\",\r\n },\r\n \"& > button\": {\r\n padding: \"0\",\r\n },\r\n \"& .MuiSvgIcon-root\": {\r\n margin: \"-7px\",\r\n fontSize: \"35px\",\r\n },\r\n },\r\n title: {\r\n fontSize: \"22px\",\r\n fontWeight: \"bold\",\r\n },\r\n },\r\n}));\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\nimport moment, { Moment } from \"moment\";\r\nimport \"moment-timezone\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { isNullOrUndefined } from \"util\";\r\n\r\nexport class ProgressActivityModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public id = \"\";\r\n\r\n @observable\r\n public parentId = \"\";\r\n\r\n @observable\r\n public activityColour = \"\";\r\n\r\n @observable\r\n public activityName = \"\";\r\n\r\n @observable\r\n public completedDate: Moment | null = null;\r\n\r\n @observable\r\n public isCompleted: boolean = false;\r\n\r\n @observable\r\n public isNotApplicable: boolean = false;\r\n\r\n @observable\r\n public activities = observable([]);\r\n\r\n // #endregion Properties\r\n\r\n @computed\r\n public get Activities() {\r\n return this.activities;\r\n }\r\n\r\n @computed\r\n public get hasActivities() {\r\n return this.activities !== null && this.activities !== undefined && this.activities.length > 0;\r\n }\r\n\r\n @computed\r\n public get completedDateFormatted() {\r\n return this.completedDate !== null && this.completedDate !== undefined ? this.completedDate.format(\"DD/MM/YYYY\") : \"\";\r\n }\r\n\r\n @action\r\n public fromDto = (dto: ProgressActivityModelDTO): void => {\r\n this.id = dto.id;\r\n this.parentId = dto.parentId;\r\n this.activityColour = dto.activityColour;\r\n this.activityName = dto.activityName;\r\n this.completedDate = !isEmptyOrWhitespace(dto.completedDateUTC) ? moment.tz(dto.completedDateUTC, \"Europe/London\") : null;\r\n this.isCompleted = dto.isComplete;\r\n this.isNotApplicable = dto.isNotApplicable;\r\n\r\n if (!isNullOrUndefined(dto.subActivities)) {\r\n for (const activity of dto.subActivities) {\r\n const activityModel = new ProgressActivityModel();\r\n\r\n activityModel.fromDto(activity);\r\n\r\n this.activities.push(activityModel);\r\n }\r\n }\r\n };\r\n\r\n public toDto = (): ProgressActivityModelDTO => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n\r\nexport interface ProgressActivityModelDTO {\r\n id: string;\r\n parentId: string;\r\n activityColour: string;\r\n activityName: string;\r\n completedDateUTC: string;\r\n isComplete: boolean;\r\n isNotApplicable: boolean;\r\n subActivities: ProgressActivityModelDTO[];\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\n// Custom\r\nimport { ProgressActivityModel, ProgressActivityModelDTO } from \"./ProgressActivityModel\";\r\n\r\nexport class ProgressModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public activities = observable([]);\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: ProgressActivityModelDTO[]): void => {\r\n for (const activity of dto) {\r\n const activityModel = new ProgressActivityModel();\r\n\r\n activityModel.fromDto(activity);\r\n\r\n this.activities.push(activityModel);\r\n }\r\n };\r\n\r\n public toDto = (): ProgressActivityModelDTO[] => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\n\r\n// Custom\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\nimport { ProgressActivityModelDTO } from \"Custom/Models/DashboardModels/ProgressActivityModel\";\r\nimport { ProgressModel } from \"Custom/Models/DashboardModels/ProgressModel\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { StoresInstance } from \"../../Stores\";\r\n\r\nexport class ProgressViewModel extends ViewModelBase {\r\n constructor(propertyId: string) {\r\n super(new ProgressModel());\r\n this.setDecorators(ProgressModel);\r\n\r\n //console.log(\"PROGRESSSVM CONSTRUCTOR: PropertyId\", propertyId);\r\n this.propertyId = propertyId;\r\n\r\n if (propertyId !== null && propertyId !== undefined && propertyId !== \"\") {\r\n this.load(propertyId);\r\n }\r\n }\r\n\r\n // #region Properties\r\n\r\n @observable\r\n public propertyId: string = \"\";\r\n\r\n @observable\r\n public apiStatus: ApiStatus = ApiStatus.loading;\r\n\r\n // #endregion Properties\r\n\r\n // #region Computeds\r\n\r\n @computed\r\n public get Activities() {\r\n return this.model.activities;\r\n }\r\n\r\n @computed\r\n public get hasActivities() {\r\n return this.Activities !== null && this.Activities !== undefined && this.Activities.length > 0;\r\n }\r\n\r\n @computed\r\n public get ApiStatus(): ApiStatus {\r\n return this.apiStatus;\r\n }\r\n\r\n @computed\r\n public get latestActivityId(): string {\r\n let id = \"\";\r\n Array.from(this.Activities)\r\n .reverse()\r\n .find(a => {\r\n const sa = Array.from(a.Activities)\r\n .reverse()\r\n .find(sa => sa.isCompleted);\r\n if (sa) {\r\n id = sa.getValue(\"id\");\r\n return true;\r\n }\r\n if (a.getValue(\"isCompleted\")) {\r\n id = a.getValue(\"id\");\r\n return true;\r\n }\r\n return false;\r\n });\r\n return id;\r\n }\r\n\r\n // #endregion Computeds\r\n\r\n // #region Actions\r\n\r\n @action\r\n public setApiStatus(apiStatus: ApiStatus) {\r\n this.apiStatus = apiStatus;\r\n }\r\n\r\n public navigateToDashboard = () => {\r\n this.history.push(`/${this.propertyId}`);\r\n };\r\n\r\n private load = async (id: string): Promise => {\r\n this.setApiStatus(ApiStatus.loading);\r\n\r\n try {\r\n const apiResult = await this.Get(Server.Api.Dashboard.GetProgress + \"/\" + id);\r\n\r\n if (apiResult.wasSuccessful) {\r\n this.model.fromDto(apiResult.payload);\r\n this.setApiStatus(ApiStatus.success);\r\n } else {\r\n this.setApiStatus(ApiStatus.error);\r\n }\r\n } catch (exception) {\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n // #endregion Actions\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","import { Box, Typography } from \"@material-ui/core\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport HomeIcon from \"@material-ui/icons/Home\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\n\r\n// Core\r\nimport { Loader } from \"Core/Components/Loader\";\r\nimport { useRouter } from \"Core/Utils\";\r\n\r\n// Custom\r\nimport { CloseButton } from \"Custom/Components/Buttons/CloseButton\";\r\nimport { Error } from \"Custom/Components/Error\";\r\n\r\nimport { DashboardPageStyles } from \"Custom/StylesAppSpecific/DashboardPagesStyling\";\r\nimport { ProgressPageStyles } from \"Custom/StylesAppSpecific/DashboardSubViews/ProgressPageStyling\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { ProgressViewModel } from \"Custom/ViewModels/DashboardSubViewModels/ProgressViewModel\";\r\nimport { IObservableArray } from \"mobx\";\r\nimport { ProgressActivityModel } from \"Custom/Models/DashboardModels/ProgressActivityModel\";\r\n\r\nexport const Progress: React.FC = () => {\r\n // #region Code Behind\r\n\r\n const router = useRouter();\r\n const theme = useTheme();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"md\")) ? true : false;\r\n\r\n //console.log(\"PROGRESSVIEW: PropertyId\", router.match.params);\r\n const propertyId = (router.match.params as any).propertyId;\r\n\r\n const dashboardPageStyles = DashboardPageStyles();\r\n const progressPageStyles = ProgressPageStyles();\r\n\r\n const [viewModel] = useState(() => new ProgressViewModel(propertyId));\r\n\r\n const [latestActivityEl, setLatestActivityEl] = useState(null);\r\n\r\n React.useEffect(() => {\r\n if (latestActivityEl) {\r\n const rect = latestActivityEl.getBoundingClientRect();\r\n if (latestActivityEl.parentElement) {\r\n const containerRect = latestActivityEl.parentElement.getBoundingClientRect();\r\n latestActivityEl.parentElement.scrollTop = rect.top - containerRect.top - containerRect.height / 2 + rect.height / 2;\r\n }\r\n }\r\n }, [latestActivityEl]);\r\n\r\n const getActivityIconStyle = (activity: any) => {\r\n const colour = activity.isCompleted ? activity.activityColour : \"#ced4da\";\r\n\r\n return {\r\n backgroundColor: colour,\r\n };\r\n };\r\n\r\n const getActivityTextStyle = (activity: any) => {\r\n const colour = activity.isCompleted ? \"#191919\" : \"#808080\";\r\n\r\n return {\r\n color: colour,\r\n };\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n const renderBusy = () => ;\r\n\r\n const renderError = () => ;\r\n\r\n const renderTitleRow = () =>\r\n isDesktop ? (\r\n \r\n \r\n Progress\r\n \r\n \r\n \r\n ) : (\r\n \r\n Progress\r\n \r\n \r\n );\r\n\r\n const renderMajorActivity = (activity: any) => (\r\n \r\n {/* Dummy box for link - do not remove */}\r\n \r\n {/* Major activity icon */}\r\n \r\n \r\n \r\n \r\n );\r\n\r\n const renderMinorActivity = (activity: any) => (\r\n \r\n {/* Dummy box for link - do not remove */}\r\n \r\n {/* Minor activity icon */}\r\n \r\n \r\n );\r\n\r\n const renderActivities = (activities: IObservableArray) => {\r\n const latestActivityId = viewModel.latestActivityId;\r\n\r\n return Array.from(activities)\r\n .slice()\r\n .map((activity, index) => (\r\n \r\n ref && latestActivityId === activity.getValue(\"id\") && ref !== latestActivityEl && setLatestActivityEl(ref)}\r\n className={`${progressPageStyles.progress} ${latestActivityId === activity.getValue(\"id\") ? \"latest\" : \"\"}`}\r\n key={index}\r\n >\r\n {renderMinorActivity(activity)}\r\n \r\n {activity.activityName}\r\n {activity.completedDateFormatted}\r\n \r\n \r\n \r\n ));\r\n };\r\n\r\n const renderProgress = () => {\r\n const latestActivityId = viewModel.latestActivityId;\r\n\r\n return (\r\n \r\n \r\n {Array.from(viewModel.Activities)\r\n .slice()\r\n .filter(a => a.isNotApplicable == false)\r\n .map((activity, index) => (\r\n \r\n ref && latestActivityId === activity.getValue(\"id\") && ref !== latestActivityEl && setLatestActivityEl(ref)}\r\n className={`${progressPageStyles.progress} ${latestActivityId === activity.getValue(\"id\") ? \"latest\" : \"\"}`}\r\n key={index}\r\n >\r\n {renderMajorActivity(activity)}\r\n \r\n {activity.activityName}\r\n {activity.completedDateFormatted}\r\n \r\n \r\n {activity.hasActivities && renderActivities(activity.Activities)}\r\n \r\n ))}\r\n \r\n );\r\n };\r\n\r\n return useObserver(() => (\r\n \r\n \r\n {viewModel.ApiStatus === ApiStatus.success && (\r\n \r\n {renderTitleRow()}\r\n {viewModel.hasActivities && renderProgress()}\r\n \r\n )}\r\n {viewModel.ApiStatus === ApiStatus.loading && {renderBusy()}}\r\n {viewModel.ApiStatus === ApiStatus.error && {renderError()}}\r\n \r\n \r\n ));\r\n};\r\n","// Lib\r\nimport * as React from \"react\";\r\n\r\n//App\r\nimport * as Models from \"../../Models\";\r\n\r\ninterface Props {\r\n colour: string;\r\n grayed: boolean;\r\n}\r\n\r\nexport const InspectionStagePresetHelper = (colour: string, type: number) => {\r\n if (colour) {\r\n return ;\r\n } else {\r\n return <>;\r\n }\r\n};\r\n\r\nexport const InspectionStageSVG = (props: Props) => {\r\n const { colour, grayed } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import { darken, lighten, makeStyles } from \"@material-ui/core\";\r\nimport { Theme } from \"@material-ui/core/styles\";\r\n\r\n/**\r\n * Contains style information for the documnents page.\r\n */\r\nexport const InspectionPageStyles = makeStyles((theme: Theme) => ({\r\n root: {},\r\n stages: {\r\n padding: \"20px 0 16px 0\",\r\n overflowY: \"auto\",\r\n paddingBottom: \"150px\",\r\n },\r\n stage: {\r\n display: \"flex\",\r\n margin: \"0 18px\",\r\n \"& > div:first-child\": {\r\n minHeight: \"80px\",\r\n minWidth: \"80px\",\r\n position: \"relative\",\r\n \"& > div\": {\r\n position: \"absolute\",\r\n },\r\n // Link element.\r\n \"& > div:first-child\": {\r\n backgroundColor: \"#ced4da\",\r\n minHeight: \"10%\",\r\n minWidth: \"8px\",\r\n transform: \"translate(26px, 0px)\",\r\n },\r\n \"& > div:last-child\": {\r\n backgroundColor: \"#ced4da\",\r\n minHeight: \"15%\",\r\n minWidth: \"8px\",\r\n transform: \"translate(26px, 0px)\",\r\n bottom: \"0\",\r\n },\r\n },\r\n // First progress element.\r\n \"&:nth-child(2)\": {\r\n \"& > div:first-child\": {\r\n // Link element.\r\n \"& > div:first-child\": {\r\n display: \"none\",\r\n },\r\n },\r\n },\r\n // Last progress element.\r\n \"&:last-child\": {\r\n \"& > div:first-child\": {\r\n // Link element.\r\n \"& > div:last-child\": {\r\n display: \"none\",\r\n },\r\n },\r\n },\r\n },\r\n stageTextRow: {\r\n color: \"#808080\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n marginLeft: \"10px\",\r\n },\r\n stageTitle: {\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n textTransform: \"uppercase\",\r\n },\r\n stageSubTitle: {\r\n fontSize: \"12px\",\r\n },\r\n icon: {\r\n alignItems: \"center\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n width: \"60px\",\r\n height: \"60px\",\r\n margin: \"10% 0 10%\",\r\n },\r\n gradient: {\r\n position: \"absolute\",\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: \"36px\",\r\n background: \"linear-gradient(0deg, rgba(255,255,255,1) 10%, rgba(255,255,255,0) 25%)\",\r\n pointerEvents: \"none\",\r\n zIndex: 1,\r\n },\r\n workspace: {\r\n position: \"relative\",\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n stages: {\r\n padding: \"0 0 16px 0\",\r\n marginRight: \"18px\",\r\n paddingBottom: \"150px\",\r\n },\r\n titleRow: {\r\n padding: \"27px 18px\",\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n \"& > h4\": {\r\n padding: \"0px\",\r\n },\r\n \"& > button\": {\r\n padding: \"0\",\r\n },\r\n \"& .MuiSvgIcon-root\": {\r\n margin: \"-7px\",\r\n fontSize: \"35px\",\r\n },\r\n },\r\n title: {\r\n fontSize: \"22px\",\r\n fontWeight: \"bold\",\r\n },\r\n },\r\n}));\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\nimport moment, { Moment } from \"moment\";\r\nimport \"moment-timezone\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { isNullOrUndefined } from \"util\";\r\n\r\nexport class InspectionStageModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n inspectionStageId = \"\";\r\n\r\n @observable\r\n inspectionStageName = \"\";\r\n\r\n @observable\r\n inspectionStageColor = \"\";\r\n\r\n @observable\r\n inspectionStageType = 0;\r\n\r\n @observable\r\n inspectionStageDate: Moment | null = null;\r\n\r\n @observable\r\n inspectionStageStatusName = \"\";\r\n\r\n @observable\r\n inspectionStageStatusType = 0;\r\n\r\n // #endregion Properties\r\n\r\n @computed\r\n public get inspectionStageDateFormatted() {\r\n return this.inspectionStageDate !== null && this.inspectionStageDate !== undefined ? this.inspectionStageDate.format(\"DD/MM/YYYY\") : \"\";\r\n }\r\n\r\n @action\r\n public fromDto = (dto: InspectionStageModelDTO): void => {\r\n this.inspectionStageId = dto.inspectionStageId;\r\n this.inspectionStageName = dto.inspectionStageName;\r\n this.inspectionStageColor = dto.inspectionStageColor;\r\n this.inspectionStageType = dto.inspectionStageType;\r\n this.inspectionStageDate = !isEmptyOrWhitespace(dto.inspectionStageDate) ? moment.tz(dto.inspectionStageDate, \"Europe/London\") : null;\r\n this.inspectionStageStatusName = dto.inspectionStageStatusName;\r\n this.inspectionStageStatusType = dto.inspectionStageStatusType;\r\n };\r\n\r\n public toDto = (): InspectionStageModelDTO => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n\r\nexport interface InspectionStageModelDTO {\r\n inspectionStageId: string;\r\n inspectionStageName: string;\r\n inspectionStageColor: string;\r\n inspectionStageType: number;\r\n inspectionStageDate: string;\r\n inspectionStageStatusName: string;\r\n inspectionStageStatusType: number;\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\n\r\n// Custom\r\nimport { InspectionStageModel, InspectionStageModelDTO } from \"./InspectionStageModel\";\r\n\r\nexport class InspectionModel extends ModelBase {\r\n // #region Properties\r\n\r\n @observable\r\n public inspectionStages = observable([]);\r\n\r\n // #endregion Properties\r\n\r\n @action\r\n public fromDto = (dto: InspectionStageModelDTO[]): void => {\r\n for (const stage of dto) {\r\n const inspectionStageModel = new InspectionStageModel();\r\n\r\n inspectionStageModel.fromDto(stage);\r\n\r\n this.inspectionStages.push(inspectionStageModel);\r\n }\r\n };\r\n\r\n public toDto = (): InspectionStageModelDTO[] => {\r\n throw \"toDto is not supported\";\r\n };\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { FieldType } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels\";\r\n\r\n// Custom\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\nimport { InspectionStageModelDTO } from \"Custom/Models/DashboardModels/InspectionStageModel\";\r\nimport { InspectionModel } from \"Custom/Models/DashboardModels/InspectionModel\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { StoresInstance } from \"../../Stores\";\r\n\r\nexport class InspectionViewModel extends ViewModelBase {\r\n constructor(propertyId: string) {\r\n super(new InspectionModel());\r\n this.setDecorators(InspectionModel);\r\n\r\n //console.log(\"BUILDVM CONSTRUCTOR: PropertyId\", propertyId);\r\n this.propertyId = propertyId;\r\n\r\n if (propertyId !== null && propertyId !== undefined && propertyId !== \"\") {\r\n this.load(propertyId);\r\n }\r\n }\r\n\r\n // #region Properties\r\n\r\n @observable\r\n public propertyId: string = \"\";\r\n\r\n @observable\r\n public apiStatus: ApiStatus = ApiStatus.loading;\r\n\r\n // #endregion Properties\r\n\r\n // #region Computeds\r\n\r\n @computed\r\n public get ApiStatus(): ApiStatus {\r\n return this.apiStatus;\r\n }\r\n\r\n @computed\r\n public get inspectionStages() {\r\n return this.model.inspectionStages;\r\n }\r\n\r\n // #endregion Computeds\r\n\r\n // #region Actions\r\n\r\n @action\r\n public setApiStatus(apiStatus: ApiStatus) {\r\n this.apiStatus = apiStatus;\r\n }\r\n\r\n public navigateToDashboard = () => {\r\n this.history.push(`/${this.propertyId}`);\r\n };\r\n\r\n private load = async (id: string): Promise => {\r\n this.setApiStatus(ApiStatus.loading);\r\n\r\n try {\r\n const apiResult = await this.Get(Server.Api.Dashboard.GetInspection + \"/\" + id);\r\n\r\n if (apiResult.wasSuccessful) {\r\n this.model.fromDto(apiResult.payload);\r\n this.setApiStatus(ApiStatus.success);\r\n } else {\r\n this.setApiStatus(ApiStatus.error);\r\n }\r\n } catch (exception) {\r\n this.setApiStatus(ApiStatus.error);\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n // #endregion Actions\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","import { Box, Typography } from \"@material-ui/core\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\n\r\n// Core\r\nimport { Loader } from \"Core/Components/Loader\";\r\nimport { useRouter } from \"Core/Utils\";\r\n\r\n// Custom\r\nimport { CloseButton } from \"Custom/Components/Buttons/CloseButton\";\r\nimport { Error } from \"Custom/Components/Error\";\r\nimport { InspectionStagePresetHelper } from \"Custom/Content/Components/InspectionStageSVG\";\r\nimport { DashboardPageStyles } from \"Custom/StylesAppSpecific/DashboardPagesStyling\";\r\nimport { InspectionPageStyles } from \"Custom/StylesAppSpecific/DashboardSubViews/InspectionPageStyling\";\r\nimport { ApiStatus } from \"Custom/Models/Enums/ApiStatus\";\r\nimport { InspectionViewModel } from \"Custom/ViewModels/DashboardSubViewModels/InspectionViewModel\";\r\n\r\nexport const Inspection: React.FC = () => {\r\n // #region Code Behind\r\n\r\n const router = useRouter();\r\n const theme = useTheme();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"md\")) ? true : false;\r\n\r\n //console.log(\"BUILDVIEW: PropertyId\", router.match.params);\r\n const propertyId = (router.match.params as any).propertyId;\r\n\r\n const dashboardPageStyles = DashboardPageStyles();\r\n const inspectionPageStyles = InspectionPageStyles();\r\n\r\n const [viewModel] = useState(() => new InspectionViewModel(propertyId));\r\n\r\n const getTextStyle = (inspectionStageStatusType: any) => {\r\n if (inspectionStageStatusType != null) {\r\n return {\r\n color: \"black\",\r\n };\r\n }\r\n };\r\n const getSubTextStyle = (inspectionStageStatusType: any) => {\r\n let colour = \"\";\r\n switch (inspectionStageStatusType) {\r\n case 2:\r\n colour = \"#dc3545\"; // Red\r\n break;\r\n case 4:\r\n colour = \"#5bb44e\"; // Green\r\n break;\r\n }\r\n return {\r\n color: colour,\r\n };\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n const renderBusy = () => ;\r\n const renderError = () => ;\r\n const renderTitleRow = () =>\r\n isDesktop ? (\r\n <>\r\n \r\n \r\n Build\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n Inspection\r\n \r\n \r\n );\r\n\r\n const renderStages = () => (\r\n \r\n \r\n {Array.from(viewModel.inspectionStages)\r\n .slice()\r\n .map((stage, index) => (\r\n \r\n
\r\n \r\n {/* Dummy box for link - do not remove */}\r\n \r\n {InspectionStagePresetHelper(stage.inspectionStageColor, stage.inspectionStageStatusType)}\r\n {/* Dummy box for link - do not remove */}\r\n \r\n \r\n \r\n \r\n {stage.inspectionStageName}\r\n \r\n {/* \r\n {stage.inspectionStageStatusName}\r\n */}\r\n \r\n
\r\n
\r\n ))}\r\n
\r\n );\r\n\r\n return useObserver(() => (\r\n \r\n \r\n {viewModel.ApiStatus === ApiStatus.success && (\r\n \r\n {renderTitleRow()}\r\n {renderStages()}\r\n \r\n )}\r\n {viewModel.ApiStatus === ApiStatus.loading && {renderBusy()}}\r\n {viewModel.ApiStatus === ApiStatus.error && {renderError()}}\r\n \r\n \r\n ));\r\n};\r\n","import { darken, lighten, makeStyles } from \"@material-ui/core\";\r\nimport { Theme } from \"@material-ui/core/styles\";\r\n\r\n/**\r\n * Contains style information common to the login, forgot password and change password pages.\r\n */\r\nexport const AccountPageStyles = makeStyles((theme: Theme) => ({\r\n root: {},\r\n body: {},\r\n bodyContent: {\r\n margin: \"40px\",\r\n },\r\n submitButton: {\r\n width: \"100%\",\r\n },\r\n houseImageContainer: {\r\n height: \"220px\",\r\n backgroundImage: \"url(resources/GenericHouse.png)\",\r\n backgroundSize: \"cover\",\r\n backgroundRepeat: \"no-repeat\",\r\n backgroundPosition: \"center\",\r\n },\r\n customerPortalImageContainer: {\r\n height: \"38px\",\r\n margin: \"40px 40px 0 40px\",\r\n backgroundImage: \"url(resources/logo.png)\",\r\n backgroundSize: \"contain\",\r\n backgroundRepeat: \"no-repeat\",\r\n backgroundPosition: \"center\",\r\n cursor: \"pointer\",\r\n },\r\n divider: {\r\n display: \"none\",\r\n },\r\n error: {},\r\n logoImageContainer: {\r\n height: \"35px\",\r\n margin: \"40px 40px 0 40px\",\r\n backgroundImage: \"url(resources/LogoLandscape.svg)\",\r\n backgroundSize: \"contain\",\r\n backgroundRepeat: \"no-repeat\",\r\n backgroundPosition: \"center\",\r\n },\r\n gutterBottom: {\r\n marginBottom: \"20px\",\r\n },\r\n title: {\r\n fontSize: \"16px\",\r\n fontWeight: \"bold\",\r\n marginBottom: \"10px\",\r\n marginTop: \"-5px\",\r\n textAlign: \"center\",\r\n },\r\n subTitle: {\r\n fontSize: \"12px\",\r\n lineHeight: \"1.4\",\r\n marginBottom: \"16px\",\r\n textAlign: \"center\",\r\n },\r\n linkButton: {\r\n fontSize: \"10px\",\r\n padding: \"16px 6px\",\r\n width: \"100%\",\r\n color: \"#556ED1\",\r\n textDecoration: \"underline\",\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n body: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n \"& > div\": {\r\n flex: \"1 0 auto\",\r\n maxWidth: \"1190px\",\r\n width: \"100%\",\r\n },\r\n },\r\n bodyContent: {\r\n marginTop: \"30px\",\r\n \"& > form > div\": {\r\n display: \"flex\",\r\n margin: \"0 -15px\",\r\n paddingBottom: \"10px\",\r\n },\r\n },\r\n error: {\r\n \"& > div\": {\r\n display: \"flex\",\r\n margin: \"0 -15px\",\r\n paddingBottom: \"10px\",\r\n },\r\n },\r\n houseImageContainer: {\r\n backgroundImage: \"url(resources/GenericHouses.jpg)\",\r\n minHeight: \"290px\",\r\n },\r\n logoImageContainer: {\r\n backgroundPosition: \"left center\",\r\n },\r\n customerPortalImageContainer: {\r\n backgroundPosition: \"left center\",\r\n marginTop: \"60px\",\r\n },\r\n divider: {\r\n display: \"block\",\r\n },\r\n formControl: {\r\n padding: \"0 15px\",\r\n },\r\n formInputControl: {\r\n minWidth: \"255px\",\r\n },\r\n submitButton: {\r\n minWidth: \"115px\",\r\n },\r\n title: {\r\n textAlign: \"left\",\r\n },\r\n subTitle: {\r\n marginBottom: \"20px\",\r\n textAlign: \"left\",\r\n },\r\n linkButton: {\r\n padding: \"6px 0 0 0 !important\",\r\n },\r\n },\r\n}));\r\n\r\n/**\r\n * Contains style information for the login page.\r\n */\r\nexport const LoginPageStyles = makeStyles((theme: Theme) => ({\r\n root: {},\r\n linkButton: {\r\n fontSize: \"10px\",\r\n padding: \"16px 6px\",\r\n width: \"100%\",\r\n color: \"#556ED1\",\r\n textDecoration: \"underline\",\r\n },\r\n}));\r\n\r\n/**\r\n * Contains style information for the forgot password page.\r\n */\r\nexport const ForgotPasswordPageStyles = makeStyles((theme: Theme) => ({\r\n root: {},\r\n}));\r\n\r\n/**\r\n * Contains style information for the change password page.\r\n */\r\nexport const ChangePasswordPageStyles = makeStyles((theme: Theme) => ({\r\n root: {},\r\n}));\r\n","import * as MobX from \"mobx\";\r\n\r\nimport { IsEmail, IsNotEmpty } from \"class-validator\";\r\n\r\nimport { ModelBase } from \"../../Core/Models/ModelBase\";\r\n\r\nexport class ForgotPasswordModel extends ModelBase {\r\n @MobX.observable\r\n @IsNotEmpty({ message: \"You must enter an email address\" })\r\n @IsEmail({}, { message: \"Email address is not in a valid format\" })\r\n public emailAddress: string = \"\";\r\n\r\n fromDto(model: ForgotPasswordModelDTO): void {}\r\n\r\n toDto(model: ForgotPasswordModel): void {}\r\n}\r\n\r\nexport interface ForgotPasswordModelDTO {\r\n emailAddress: string;\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels/ViewModelBase\";\r\n\r\n// Custom\r\nimport { ForgotPasswordModel } from \"Custom/Models/ForgotPasswordModel\";\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\n\r\nexport class ForgotPasswordViewModel extends ViewModelBase {\r\n constructor() {\r\n super(new ForgotPasswordModel());\r\n this.setDecorators(ForgotPasswordModel);\r\n }\r\n\r\n // #region Server Properties and Actions\r\n\r\n @observable\r\n public haveSubmittedToServer = false;\r\n\r\n @action\r\n public setHaveSubmittedToServer = (value: boolean) => {\r\n this.haveSubmittedToServer = value;\r\n };\r\n\r\n @observable\r\n public serverValidationMessage = \"\";\r\n\r\n @action\r\n public setServerValidationMessage = (value: string) => {\r\n this.serverValidationMessage = value;\r\n };\r\n\r\n @action\r\n public forgotPassword = async (): Promise => {\r\n try {\r\n if (this.isModelValid()) {\r\n this.setServerValidationMessage(\"\");\r\n this.setHaveSubmittedToServer(true);\r\n\r\n const apiResult = await this.Post(Server.Api.Account.ForgotPassword, this.model);\r\n if (apiResult.wasSuccessful) {\r\n // Nothing to do.\r\n } else {\r\n if (apiResult.errors.length > 0) {\r\n const error = apiResult.errors[0];\r\n\r\n if (!isEmptyOrWhitespace(error.message)) {\r\n this.setServerValidationMessage(error.message);\r\n } else {\r\n this.setServerValidationMessage(\"There was an unknown error trying to allow you to change the password.\");\r\n }\r\n }\r\n }\r\n }\r\n } catch (exception) {\r\n this.setServerValidationMessage(\"There was an unknown error trying to allow you to change the password.\");\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n public tryAgain = () => {\r\n this.setHaveSubmittedToServer(false);\r\n this.setServerValidationMessage(\"\");\r\n };\r\n\r\n // #endregion Server Properties and Actions\r\n\r\n // #region Can Display Properties\r\n\r\n @computed\r\n public get canDisplayBusy(): boolean {\r\n return this.IsLoading;\r\n }\r\n\r\n @computed\r\n public get canDisplayError(): boolean {\r\n return this.haveSubmittedToServer && !this.IsLoading && !isEmptyOrWhitespace(this.serverValidationMessage);\r\n }\r\n\r\n @computed\r\n public get canDisplaySuccess(): boolean {\r\n return this.haveSubmittedToServer && !this.IsLoading && isEmptyOrWhitespace(this.serverValidationMessage);\r\n }\r\n\r\n @computed\r\n public get canDisplayForm(): boolean {\r\n return !this.haveSubmittedToServer && !this.IsLoading;\r\n }\r\n\r\n // #endregion Can Display Properties\r\n\r\n // #region Navigation Actions\r\n\r\n public navigateToForgotPassword = () => {\r\n this.history.push(\"/forgotpassword\");\r\n };\r\n\r\n public navigateToLogin = () => {\r\n this.history.push(\"/login\");\r\n };\r\n\r\n // #endregion Navigation Actions\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: \"emailAddress\", value: any): boolean {\r\n const { isValid, errorMessage } = this.validateDecorators(fieldName);\r\n\r\n this.setError(fieldName, errorMessage);\r\n this.setValid(fieldName, isValid);\r\n\r\n return isValid;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { Box, CardMedia, Divider, Typography, Link } from \"@material-ui/core\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\n\r\n// Core\r\nimport { Loader } from \"Core/Components\";\r\n\r\n// Custom\r\nimport { StandardButton } from \"Custom/Components/Buttons/StandardButton\";\r\nimport { EditableInput } from \"Custom/Components/Edits/EditableInput\";\r\nimport { ForgotPasswordModel } from \"Custom/Models/ForgotPasswordModel\";\r\nimport { AccountPageStyles, ForgotPasswordPageStyles } from \"Custom/StylesAppSpecific/AccountPagesStyling\";\r\nimport { ForgotPasswordViewModel } from \"Custom/ViewModels/ForgotPasswordViewModel\";\r\nimport { runInAction } from \"mobx\";\r\n\r\nexport const ForgotPasswordPage = () => {\r\n // #region Code Behind\r\n\r\n const accountPageStyles = AccountPageStyles();\r\n const forgotPasswordPageStyles = ForgotPasswordPageStyles();\r\n const query = window.location.pathname;\r\n const email = query.split(\"/\")[2];\r\n\r\n const [viewModel] = useState(() => new ForgotPasswordViewModel());\r\n\r\n const onSubmit = async (event: any) => {\r\n event.preventDefault();\r\n\r\n viewModel.forgotPassword();\r\n };\r\n\r\n runInAction(() => {\r\n email ? (viewModel.model.emailAddress = email) : \"\";\r\n });\r\n\r\n // #endregion Code Behind\r\n\r\n const renderBusy = () => ;\r\n\r\n const renderError = () => (\r\n \r\n \r\n \r\n There seems to have been a problem\r\n \r\n \r\n {viewModel.serverValidationMessage}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const renderForm = () => (\r\n
\r\n \r\n You've forgotten your password\r\n \r\n \r\n Please enter the email address you use to log in below and click on the \"Forgot password\" button. We will then send you an email containing a link for you to reset\r\n your password.\r\n \r\n \r\n \r\n className={`${accountPageStyles.gutterBottom} ${accountPageStyles.formControl} ${accountPageStyles.formInputControl}`}\r\n fieldName=\"emailAddress\"\r\n inputProps={{\r\n placeholder: \"Your email address\",\r\n }}\r\n type=\"email\"\r\n validateOnBlur={true}\r\n viewModel={viewModel}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Go back\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const renderSuccess = () => (\r\n \r\n \r\n An email has been sent to your inbox with a link to change your password.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n return useObserver(() => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {viewModel.canDisplayBusy && renderBusy()}\r\n {viewModel.canDisplayError && renderError()}\r\n {viewModel.canDisplayForm && renderForm()}\r\n {viewModel.canDisplaySuccess && renderSuccess()}\r\n \r\n \r\n \r\n \r\n \r\n ));\r\n};\r\n","import * as MobX from \"mobx\";\r\nimport { ModelBase } from \"Core/Models/ModelBase\";\r\nimport { IsEmail, IsNotEmpty } from \"class-validator\";\r\nimport { IObservable } from \"mobx\";\r\n\r\nexport class LoginModel extends ModelBase {\r\n @MobX.observable\r\n @IsNotEmpty({ message: \"You must enter an email address\" })\r\n @IsEmail({}, { message: \"Email address is not in a valid format\" })\r\n public emailAddress: string = \"\";\r\n\r\n @MobX.observable\r\n @IsNotEmpty({ message: \"You must enter a password\" })\r\n public password: string = \"\";\r\n\r\n @MobX.observable\r\n public rememberMe: boolean = false;\r\n\r\n fromDto(model: LoginModelDTO): void {}\r\n\r\n toDto(model: LoginModel): void {}\r\n}\r\n\r\nexport interface LoginModelDTO {\r\n emailAddress: string;\r\n password: string;\r\n rememberMe: boolean;\r\n}\r\n","// Libraries\r\nimport * as MobX from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"../../Core/Models/ModelBase\";\r\n\r\nexport class Property extends ModelBase {\r\n @MobX.observable\r\n public id: string = \"\";\r\n\r\n @MobX.observable\r\n public houseTypeId = \"\";\r\n\r\n @MobX.observable\r\n public developmentId = \"\";\r\n\r\n @MobX.observable\r\n public buildStageId = \"\";\r\n\r\n @MobX.observable\r\n public salesStatusId = \"\";\r\n\r\n @MobX.observable\r\n public addressLine1 = \"\";\r\n\r\n @MobX.observable\r\n public addressLine2 = \"\";\r\n\r\n @MobX.observable\r\n public postcode = \"\";\r\n\r\n @MobX.observable\r\n public plotNumber = \"\";\r\n\r\n @MobX.observable\r\n public basePurchasePrice = \"\";\r\n\r\n @MobX.observable\r\n public concurrencyToken = \"\";\r\n\r\n @MobX.observable\r\n public isDeleted = false;\r\n\r\n @MobX.observable\r\n public targetBuildDate = \"\";\r\n\r\n @MobX.observable\r\n public targetBuildDateMonth = \"\";\r\n\r\n @MobX.observable\r\n public targetBuildDateYear = \"\";\r\n\r\n @MobX.observable\r\n public certificateGenerated = false;\r\n\r\n @MobX.action\r\n public fromDto = (model: PropertyDTO): void => {\r\n this.id = model.id;\r\n this.houseTypeId = model.houseTypeId;\r\n this.developmentId = model.developmentId;\r\n this.buildStageId = model.buildStageId;\r\n this.salesStatusId = model.salesStatusId;\r\n this.addressLine1 = model.addressLine1;\r\n this.addressLine2 = model.addressLine2;\r\n this.postcode = model.postcode;\r\n this.plotNumber = model.plotNumber;\r\n this.basePurchasePrice = model.basePurchasePrice;\r\n this.concurrencyToken = model.concurrencyToken;\r\n this.isDeleted = model.isDeleted;\r\n this.targetBuildDate = model.targetBuildDate;\r\n this.targetBuildDateMonth = model.targetBuildDateMonth;\r\n this.targetBuildDateYear = model.targetBuildDateYear;\r\n this.certificateGenerated = model.certificateGenerated;\r\n };\r\n\r\n public toDto = (): PropertyDTO => {\r\n throw \"toDto is not supported\";\r\n };\r\n\r\n @MobX.action\r\n public reset = (): void => {\r\n this.id = \"\";\r\n this.houseTypeId = \"\";\r\n this.developmentId = \"\";\r\n this.buildStageId = \"\";\r\n this.salesStatusId = \"\";\r\n this.addressLine1 = \"\";\r\n this.addressLine2 = \"\";\r\n this.postcode = \"\";\r\n this.plotNumber = \"\";\r\n this.basePurchasePrice = \"\";\r\n this.concurrencyToken = \"\";\r\n this.isDeleted = false;\r\n this.targetBuildDate = \"\";\r\n this.targetBuildDateMonth = \"\";\r\n this.targetBuildDateYear = \"\";\r\n this.certificateGenerated = false;\r\n };\r\n}\r\n\r\nexport interface PropertyDTO {\r\n id: string;\r\n houseTypeId: string;\r\n developmentId: string;\r\n buildStageId: string;\r\n salesStatusId: string;\r\n addressLine1: string;\r\n addressLine2: string;\r\n postcode: string;\r\n plotNumber: string;\r\n basePurchasePrice: string;\r\n concurrencyToken: string;\r\n isDeleted: boolean;\r\n targetBuildDate: string;\r\n targetBuildDateMonth: string;\r\n targetBuildDateYear: string;\r\n certificateGenerated: boolean;\r\n}\r\n","// Libraries\r\nimport * as MobX from \"mobx\";\r\n\r\n// Core\r\nimport { ModelBase } from \"../../Core/Models/ModelBase\";\r\n\r\nexport class SalesStatus extends ModelBase {\r\n @MobX.observable\r\n public id: string = \"\";\r\n\r\n @MobX.observable\r\n public name = \"\";\r\n\r\n @MobX.observable\r\n public companyId = \"\";\r\n\r\n @MobX.observable\r\n public type = 0;\r\n\r\n @MobX.observable\r\n public ordinal = 0;\r\n\r\n @MobX.observable\r\n public isTask = false;\r\n\r\n @MobX.observable\r\n public isSubTask = false;\r\n\r\n @MobX.observable\r\n public isDeleted = false;\r\n\r\n @MobX.observable\r\n public isContactOnly = false;\r\n\r\n @MobX.observable\r\n public isPropertyOnly = false;\r\n\r\n @MobX.observable\r\n public colour = \"\";\r\n\r\n @MobX.observable\r\n public parentSalesStatusId = \"\";\r\n\r\n @MobX.observable\r\n public isDefault = false;\r\n\r\n @MobX.observable\r\n public isLastActivity = false;\r\n\r\n @MobX.action\r\n public fromDto = (model: SalesStatusDTO): void => {\r\n this.id = model.id;\r\n this.name = model.name;\r\n this.companyId = model.companyId;\r\n this.type = model.type;\r\n this.ordinal = model.ordinal;\r\n this.isTask = model.isTask;\r\n this.isSubTask = model.isSubTask;\r\n this.isDeleted = model.isDeleted;\r\n this.isContactOnly = model.isContactOnly;\r\n this.isPropertyOnly = model.isPropertyOnly;\r\n this.colour = model.colour;\r\n this.parentSalesStatusId = model.parentSalesStatusId;\r\n this.isDefault = model.isDefault;\r\n this.isLastActivity = model.isLastActivity;\r\n };\r\n\r\n public toDto = (): SalesStatusDTO => {\r\n throw \"toDto is not supported\";\r\n };\r\n\r\n @MobX.action\r\n public reset = (): void => {\r\n this.id = \"\";\r\n this.name = \"\";\r\n this.companyId = \"\";\r\n this.type = 0;\r\n this.ordinal = 0;\r\n this.isTask = false;\r\n this.isSubTask = false;\r\n this.isDeleted = false;\r\n this.isContactOnly = false;\r\n this.isPropertyOnly = false;\r\n this.colour = \"\";\r\n this.parentSalesStatusId = \"\";\r\n this.isDefault = false;\r\n this.isLastActivity = false;\r\n };\r\n}\r\n\r\nexport interface SalesStatusDTO {\r\n id: string;\r\n name: string;\r\n companyId: string;\r\n type: number;\r\n ordinal: number;\r\n isTask: boolean;\r\n isSubTask: boolean;\r\n isDeleted: boolean;\r\n isContactOnly: boolean;\r\n isPropertyOnly: boolean;\r\n colour: string;\r\n parentSalesStatusId: string;\r\n isDefault: boolean;\r\n isLastActivity: boolean;\r\n}\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { StoresInstance } from \"Core/Base\";\r\nimport { LoginComplete } from \"Core/Models\";\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels/ViewModelBase\";\r\n\r\n// Custom\r\nimport { LoginModel } from \"../Models\";\r\nimport { Client, Server } from \"Custom/Globals/AppUrls\";\r\n\r\nexport class LoginViewModel extends ViewModelBase {\r\n constructor() {\r\n super(new LoginModel());\r\n this.setDecorators(LoginModel);\r\n }\r\n\r\n // #region Server Properties and Actions\r\n\r\n @observable\r\n public haveSubmittedToServer = false;\r\n\r\n @action\r\n public setHaveSubmittedToServer = (value: boolean) => {\r\n this.haveSubmittedToServer = value;\r\n };\r\n\r\n @observable\r\n public serverValidationMessage = \"\";\r\n\r\n @action\r\n public setServerValidationMessage = (value: string) => {\r\n this.serverValidationMessage = value;\r\n };\r\n\r\n @action\r\n public login = async (): Promise => {\r\n try {\r\n if (this.isModelValid()) {\r\n this.setServerValidationMessage(\"\");\r\n this.setHaveSubmittedToServer(true);\r\n\r\n const apiResult = await this.Post(Server.Api.Account.Login, this.getModel);\r\n\r\n if (apiResult.wasSuccessful) {\r\n StoresInstance.domain.AccountStore.setLoginState(apiResult.payload);\r\n\r\n const { from } = (this.history.location.state as any) || { from: { pathname: `/${apiResult.payload.propertyId}` } };\r\n\r\n if (from) {\r\n this.history.replace(from.pathname);\r\n }\r\n } else {\r\n if (apiResult.errors.length > 0) {\r\n const error = apiResult.errors[0];\r\n\r\n if (!isEmptyOrWhitespace(error.message)) {\r\n this.setServerValidationMessage(error.message);\r\n } else {\r\n this.setServerValidationMessage(\"There was an unknown error trying to log in.\");\r\n }\r\n }\r\n }\r\n }\r\n } catch (exception) {\r\n this.setServerValidationMessage(\"There was an unknown error trying to log in.\");\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n public tryAgain = () => {\r\n this.setHaveSubmittedToServer(false);\r\n this.setServerValidationMessage(\"\");\r\n };\r\n\r\n // #endregion Server Properties and Actions\r\n\r\n // #region Can Display Properties\r\n\r\n @computed\r\n public get canDisplayBusy(): boolean {\r\n return this.IsLoading;\r\n }\r\n\r\n @computed\r\n public get canDisplayError(): boolean {\r\n return this.haveSubmittedToServer && !this.IsLoading && !isEmptyOrWhitespace(this.serverValidationMessage);\r\n }\r\n\r\n @computed\r\n public get canDisplayForm(): boolean {\r\n return !this.haveSubmittedToServer && !this.IsLoading;\r\n }\r\n\r\n // #endregion Can Display Properties\r\n\r\n // #region Navigation Actions\r\n\r\n public navigateToForgotPassword = () => {\r\n this.model.emailAddress\r\n ? this.history.push(Client.Path.Account.ForgotPasswordEmail.replace(\":emailAddress\", this.model.emailAddress))\r\n : this.history.push(Client.Path.Account.ForgotPassword);\r\n };\r\n\r\n // #endregion Navigation Actions\r\n\r\n @computed\r\n public get isEmailAddressValid(): string {\r\n let retval = \"\";\r\n if (isEmptyOrWhitespace(this.getValue(\"emailAddress\"))) return \"Email address is required\";\r\n if (this.getValue(\"emailAddress\").length < 4) return \"Email address must be greater than 4 characters\";\r\n\r\n return retval;\r\n }\r\n\r\n @computed\r\n public get isPasswordValid(): string {\r\n let retval = \"\";\r\n if (isEmptyOrWhitespace(this.getValue(\"password\") as string)) return \"Password is required\";\r\n if (this.getValue(\"password\").length < 4) return \"Password must be greater than 4 characters\";\r\n\r\n return retval;\r\n }\r\n\r\n // #region Bolierplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: \"emailAddress\" | \"password\", value: any): boolean {\r\n const { isValid, errorMessage } = this.validateDecorators(fieldName);\r\n\r\n this.setError(fieldName, errorMessage);\r\n this.setValid(fieldName, isValid);\r\n\r\n return isValid;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { Box, CardMedia, Divider, IconButton, InputAdornment, Link, Typography } from \"@material-ui/core\";\r\nimport Visibility from \"@material-ui/icons/Visibility\";\r\nimport VisibilityOff from \"@material-ui/icons/VisibilityOff\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\nimport { Redirect } from \"react-router\";\r\n\r\n// Core\r\nimport { Loader } from \"Core/Components\";\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\n\r\n// Custom\r\nimport { StandardButton } from \"Custom/Components/Buttons/StandardButton\";\r\nimport { EditableInput } from \"Custom/Components/Edits/EditableInput\";\r\nimport { AccountPageStyles, LoginPageStyles } from \"Custom/StylesAppSpecific/AccountPagesStyling\";\r\nimport { LoginViewModel } from \"Custom/ViewModels/LoginViewModel\";\r\n\r\nexport const LoginPage: React.FunctionComponent = () => {\r\n // #region Code Behind\r\n\r\n const accountPageStyles = AccountPageStyles();\r\n const loginPageStyles = LoginPageStyles();\r\n\r\n const [viewModel] = useState(() => new LoginViewModel());\r\n const [showPassword, setShowPassword] = React.useState(false);\r\n\r\n const onClickShowPassword = () => {\r\n setShowPassword(!showPassword);\r\n };\r\n\r\n const onSubmit = async (event: any) => {\r\n event.preventDefault();\r\n\r\n viewModel.login();\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n const renderPasswordVisibilityButton = () => (\r\n \r\n \r\n {showPassword ? : }\r\n \r\n \r\n );\r\n\r\n const renderBusy = () => ;\r\n\r\n const renderError = () => (\r\n \r\n \r\n \r\n There seems to have been a problem\r\n \r\n \r\n {viewModel.serverValidationMessage}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const renderForm = () => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n I've forgotten my password...\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n return useObserver(() => {\r\n if (viewModel.isLoggedIn) {\r\n return ;\r\n } else {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {viewModel.canDisplayBusy && renderBusy()}\r\n {viewModel.canDisplayError && renderError()}\r\n {viewModel.canDisplayForm && renderForm()}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n });\r\n};\r\n","/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { StoresInstance } from \"Custom/Stores\";\r\n\r\nexport const Logout: React.FC = () => {\r\n useEffect(() => {\r\n StoresInstance.domain.AccountStore.Logout();\r\n }, []);\r\n\r\n return <>;\r\n};\r\n","import * as MobX from \"mobx\";\r\n\r\nimport { IsEmail, IsNotEmpty } from \"class-validator\";\r\n\r\nimport { ModelBase } from \"../../Core/Models/ModelBase\";\r\n\r\nexport class ResetPasswordModel extends ModelBase {\r\n @MobX.observable\r\n @IsNotEmpty({ message: \"Email is required\" })\r\n @IsEmail({}, { message: \"Email address is not in a valid format\" })\r\n public emailAddress: string = \"\";\r\n\r\n @MobX.observable\r\n @IsNotEmpty({ message: \"Password is required\" })\r\n public password: string = \"\";\r\n\r\n @MobX.observable\r\n @IsNotEmpty({ message: \"Confirm password is required\" })\r\n public confirmPassword: string = \"\";\r\n\r\n @MobX.observable\r\n public token: string = \"\";\r\n\r\n fromDto(model: ResetPasswordModelDTO): void {}\r\n\r\n toDto(model: ResetPasswordModel): void {}\r\n}\r\n\r\nexport interface ResetPasswordModelDTO {}\r\n","import { action, computed, observable } from \"mobx\";\r\n\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels/ViewModelBase\";\r\n\r\nimport { ResetPasswordModel } from \"Custom/Models/ResetPasswordModel\";\r\nimport { Server } from \"Custom/Globals/AppUrls\";\r\nimport { StoresInstance } from \"Core/Base\";\r\nimport { LoginComplete } from \"Core/Models\";\r\nexport class ResetPasswordViewModel extends ViewModelBase {\r\n @observable\r\n public tokenValid?: boolean;\r\n\r\n constructor(token: string) {\r\n super(new ResetPasswordModel());\r\n this.setDecorators(ResetPasswordModel);\r\n\r\n this.model.token = token;\r\n }\r\n\r\n // #region Server Properties and Actions\r\n\r\n @observable\r\n public haveSubmittedToServer = false;\r\n\r\n @action\r\n public setHaveSubmittedToServer = (value: boolean) => {\r\n this.haveSubmittedToServer = value;\r\n };\r\n\r\n @observable\r\n public serverValidationMessage = \"\";\r\n\r\n @action\r\n public setServerValidationMessage = (value: string) => {\r\n this.serverValidationMessage = value;\r\n };\r\n\r\n @action\r\n public changePassword = async (): Promise => {\r\n try {\r\n if (this.isModelValid()) {\r\n this.setServerValidationMessage(\"\");\r\n this.setHaveSubmittedToServer(true);\r\n\r\n const apiResult = await this.Post(Server.Api.Account.ChangePassword, this.model);\r\n\r\n if (apiResult.wasSuccessful) {\r\n // Nothing to do.\r\n } else {\r\n if (apiResult.errors.length > 0) {\r\n const error = apiResult.errors[0];\r\n\r\n if (!isEmptyOrWhitespace(error.message)) {\r\n this.setServerValidationMessage(error.message);\r\n } else {\r\n this.setServerValidationMessage(\"There was an unknown error attempting to change the password.\");\r\n }\r\n }\r\n }\r\n }\r\n } catch (exception) {\r\n this.setServerValidationMessage(\"There was an unknown error attempting to change the password.\");\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n @action\r\n public loginAfterReset = async (): Promise => {\r\n try {\r\n if (this.isModelValid()) {\r\n this.setServerValidationMessage(\"\");\r\n this.setHaveSubmittedToServer(true);\r\n\r\n const apiResult = await this.Post(Server.Api.Account.Login, this.getModel);\r\n\r\n if (apiResult.wasSuccessful) {\r\n StoresInstance.domain.AccountStore.setLoginState(apiResult.payload);\r\n\r\n const { from } = (this.history.location.state as any) || { from: { pathname: `/${apiResult.payload.propertyId}` } };\r\n\r\n if (from) {\r\n this.history.replace(from.pathname);\r\n }\r\n } else {\r\n if (apiResult.errors.length > 0) {\r\n const error = apiResult.errors[0];\r\n\r\n if (!isEmptyOrWhitespace(error.message)) {\r\n this.setServerValidationMessage(error.message);\r\n } else {\r\n this.setServerValidationMessage(\"There was an unknown error trying to log in.\");\r\n }\r\n }\r\n }\r\n }\r\n } catch (exception) {\r\n this.setServerValidationMessage(\"There was an unknown error trying to log in.\");\r\n } finally {\r\n // Finally\r\n }\r\n };\r\n\r\n public tryAgain = () => {\r\n this.setHaveSubmittedToServer(false);\r\n this.setServerValidationMessage(\"\");\r\n };\r\n\r\n // #endregion Server Properties and Actions\r\n\r\n // #region Can Display Properties\r\n\r\n @computed\r\n public get canDisplayBusy(): boolean {\r\n return this.IsLoading;\r\n }\r\n\r\n @computed\r\n public get canDisplayError(): boolean {\r\n return this.haveSubmittedToServer && !this.IsLoading && !isEmptyOrWhitespace(this.serverValidationMessage);\r\n }\r\n\r\n @computed\r\n public get canDisplaySuccess(): boolean {\r\n return this.haveSubmittedToServer && !this.IsLoading && isEmptyOrWhitespace(this.serverValidationMessage);\r\n }\r\n\r\n @computed\r\n public get canDisplayForm(): boolean {\r\n return !this.haveSubmittedToServer && !this.IsLoading;\r\n }\r\n\r\n // #endregion Can Display Properties\r\n\r\n // #region Navigation Actions\r\n\r\n public navigateToLogin = () => {\r\n this.history.replace(\"/login\");\r\n };\r\n\r\n // #endregion Navigation Actions\r\n\r\n public get confirmPasswordValidationMessage(): string {\r\n //Check against any decorators in the model.\r\n const result = this.validateDecorators(\"confirmPassword\");\r\n\r\n if (!result.isValid) {\r\n return result.errorMessage;\r\n }\r\n\r\n // Compare the confirm password against the password.\r\n if (this.getValue(\"password\") !== this.getValue(\"confirmPassword\") && this.getValue(\"password\") !== \"\") {\r\n return \"Passwords must match\";\r\n }\r\n\r\n // No validation issues.\r\n return \"\";\r\n }\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: \"emailAddress\" | \"password\" | \"confirmPassword\", value: any): boolean {\r\n let { isValid, errorMessage } = this.validateDecorators(fieldName);\r\n\r\n if (fieldName === \"confirmPassword\") {\r\n errorMessage = this.confirmPasswordValidationMessage;\r\n isValid = errorMessage === \"\";\r\n }\r\n\r\n this.setError(fieldName, errorMessage);\r\n this.setValid(fieldName, isValid);\r\n\r\n return isValid;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { Box, CardMedia, Divider, IconButton, InputAdornment, Typography } from \"@material-ui/core\";\r\nimport Visibility from \"@material-ui/icons/Visibility\";\r\nimport VisibilityOff from \"@material-ui/icons/VisibilityOff\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\n\r\n// Core\r\nimport { Loader } from \"Core/Components\";\r\nimport { isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\n\r\n// Custom\r\nimport { StandardButton } from \"Custom/Components/Buttons/StandardButton\";\r\nimport { EditableInput } from \"Custom/Components/Edits/EditableInput\";\r\nimport { ResetPasswordModel } from \"Custom/Models/ResetPasswordModel\";\r\nimport { AccountPageStyles, ChangePasswordPageStyles } from \"Custom/StylesAppSpecific/AccountPagesStyling\";\r\nimport { ResetPasswordViewModel } from \"Custom/ViewModels/ResetPasswordViewModel\";\r\nimport { HeaderLogoModel } from \"Custom/ViewModels/DashboardSubViewModels/HeaderLogoModel\";\r\nimport { runInAction } from \"mobx\";\r\n\r\nexport const ResetPasswordPage: React.FC = props => {\r\n // #region Code Behind\r\n\r\n // Get the token from the Url query string. Note that doing this unescapes any\r\n // escaped characters, so we need to reescape them before passing off to the\r\n // server.\r\n const query = new URLSearchParams(props.location.search);\r\n const email = query.get(\"email\");\r\n const token = query.get(\"token\");\r\n const encodedToken = token ? encodeURIComponent(token!) : encodeURIComponent(\"No Token Parameter\");\r\n\r\n const accountPageStyles = AccountPageStyles();\r\n const changePasswordPageStyles = ChangePasswordPageStyles();\r\n const [viewModel] = useState(() => new ResetPasswordViewModel(encodedToken));\r\n const [ViewModels] = useState(() => new HeaderLogoModel());\r\n const [showPassword, setShowPassword] = React.useState(false);\r\n\r\n runInAction(() => {\r\n viewModel.model.emailAddress = email!;\r\n });\r\n\r\n const onClickShowPassword = () => {\r\n setShowPassword(!showPassword);\r\n };\r\n\r\n const onSubmit = async (event: any) => {\r\n event.preventDefault();\r\n\r\n viewModel.changePassword();\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n const renderPasswordVisibilityButton = () => (\r\n \r\n \r\n {showPassword ? : }\r\n \r\n \r\n );\r\n\r\n const renderBusy = () => ;\r\n\r\n const renderError = () => (\r\n \r\n \r\n \r\n There seems to have been a problem\r\n \r\n \r\n {viewModel.serverValidationMessage}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const renderForm = () => (\r\n
\r\n \r\n Reset your password\r\n \r\n \r\n Please enter the email address you use to log in below and provide the password you want to use.\r\n \r\n \r\n \r\n className={`${accountPageStyles.gutterBottom} ${accountPageStyles.formControl} ${accountPageStyles.formInputControl}`}\r\n fieldName=\"emailAddress\"\r\n inputProps={{\r\n placeholder: \"Your email address\",\r\n }}\r\n type=\"email\"\r\n validateOnBlur={true}\r\n viewModel={viewModel}\r\n editMode={false}\r\n />\r\n \r\n className={`${accountPageStyles.gutterBottom} ${accountPageStyles.formControl} ${accountPageStyles.formInputControl}`}\r\n fieldName=\"password\"\r\n inputProps={{\r\n InputProps: {\r\n endAdornment: renderPasswordVisibilityButton(),\r\n },\r\n placeholder: \"Your new password\",\r\n }}\r\n type={showPassword ? \"text\" : \"password\"}\r\n validateOnBlur={true}\r\n viewModel={viewModel}\r\n />\r\n \r\n className={`${accountPageStyles.gutterBottom} ${accountPageStyles.formControl} ${accountPageStyles.formInputControl}`}\r\n fieldName=\"confirmPassword\"\r\n inputProps={{\r\n InputProps: {\r\n endAdornment: renderPasswordVisibilityButton(),\r\n },\r\n placeholder: \"Confirm your new password\",\r\n }}\r\n type={showPassword ? \"text\" : \"password\"}\r\n validateOnBlur={true}\r\n viewModel={viewModel}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const renderSuccess = () => (\r\n \r\n \r\n Success! Your password has been changed.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n return useObserver(() => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {viewModel.canDisplayBusy && renderBusy()}\r\n {viewModel.canDisplayError && renderError()}\r\n {viewModel.canDisplayForm && renderForm()}\r\n {viewModel.canDisplaySuccess && renderSuccess()}\r\n \r\n \r\n \r\n \r\n \r\n ));\r\n};\r\n\r\nexport default withRouter(ResetPasswordPage);\r\n","/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { Typography } from \"@material-ui/core\";\r\n\r\nexport const SessionExpired: React.FC = () => {\r\n return (\r\n \r\n Your session has expired!\r\n \r\n );\r\n};\r\n","// Libraries\r\nimport React, { useContext } from \"react\";\r\nimport { Route } from \"react-router\";\r\nimport { Switch } from \"react-router-dom\";\r\n\r\n// Core\r\nimport { PrivateRoute } from \"Core/Utils\";\r\nimport { Error2 } from \"Core/Views/Error2\";\r\nimport { NotFound } from \"Core/Views/NotFound\";\r\n\r\n// Custom\r\nimport { NavigationBar } from \"Custom/Components/NavigationBar\";\r\nimport { PageTitle } from \"Custom/Components/PageTitle\";\r\nimport { Client } from \"Custom/Globals/AppUrls\";\r\nimport { Stores, StoresContext } from \"Custom/Stores\";\r\n\r\nimport { Dashboard } from \"Custom/Views/Dashboard\";\r\nimport { Property } from \"Custom/Views/DashboardSubViews/Property\";\r\nimport { ViewSnag } from \"Custom/Views/DashboardSubViews/ViewSnag\";\r\nimport { Snags } from \"Custom/Views/DashboardSubViews/Snags\";\r\nimport { Documents } from \"Custom/Views/DashboardSubViews/Documents\";\r\nimport { ChoicesArea } from \"Custom/Views/DashboardSubViews/ChoicesArea\";\r\nimport { Choices } from \"Custom/Views/DashboardSubViews/Choices\";\r\nimport { Progress } from \"Custom/Views/DashboardSubViews/Progress\";\r\nimport { Inspection } from \"Custom/Views/DashboardSubViews/Inspection\";\r\nimport { ForgotPasswordPage } from \"Custom/Views/ForgotPasswordPage\";\r\nimport { LoginPage } from \"Custom/Views/LoginPage\";\r\nimport { Logout } from \"Custom/Views/Logout\";\r\nimport { ResetPasswordPage } from \"Custom/Views/ResetPasswordPage\";\r\nimport { SessionExpired } from \"Custom/Views/SessionExpired\";\r\n\r\nexport const AppRoutes: React.FC = () => {\r\n const store = useContext(StoresContext);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n store.domain.AccountStore.IsLoggedIn}\r\n path={Client.Path.Dashboard}\r\n render={routeProps => (\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n store.domain.AccountStore.IsLoggedIn}\r\n path={Client.Path.Property}\r\n render={routeProps => (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n store.domain.AccountStore.IsLoggedIn}\r\n path={Client.Path.Inspection}\r\n render={routeProps => (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n store.domain.AccountStore.IsLoggedIn}\r\n path={Client.Path.Documents}\r\n render={routeProps => (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n store.domain.AccountStore.IsLoggedIn}\r\n path={Client.Path.Progress}\r\n render={routeProps => (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n store.domain.AccountStore.IsLoggedIn}\r\n path={Client.Path.Choices}\r\n render={routeProps => (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n store.domain.AccountStore.IsLoggedIn}\r\n path={Client.Path.ChoicesArea}\r\n render={routeProps => (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n store.domain.AccountStore.IsLoggedIn}\r\n path={Client.Path.Snags}\r\n render={routeProps => (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n store.domain.AccountStore.IsLoggedIn}\r\n path={Client.Path.Snag}\r\n render={routeProps => (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n );\r\n};\r\n","import { darken, lighten, makeStyles, Theme } from \"@material-ui/core\";\r\n\r\nexport const PageHeaderStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n alignItems: \"center\",\r\n //borderBottom: \"1px solid #ced4da\",\r\n display: \"flex\",\r\n height: \"75px\",\r\n justifyContent: \"space-between\",\r\n padding: \"0 18px\",\r\n },\r\n logoContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n height: \"100%\",\r\n maxWidth: \"75px\",\r\n \"& > img\": {\r\n width: \"100%\",\r\n minWidth: \"60px\",\r\n },\r\n },\r\n textContainer: {\r\n textAlign: \"right\",\r\n },\r\n title: {\r\n fontSize: \"16px\",\r\n fontWeight: \"bold\",\r\n lineHeight: \"1\",\r\n marginLeft: \"10px\",\r\n [\"@media (max-width:399px)\"]: {\r\n fontSize: \"12px\",\r\n },\r\n },\r\n link: {},\r\n}));\r\n","// Libraries\r\nimport { action, computed, observable } from \"mobx\";\r\n\r\n// Core\r\nimport { StoresInstance } from \"Core/Base\";\r\nimport { FieldType, isEmptyOrWhitespace } from \"Core/Utils/Utils\";\r\nimport { ViewModelBase } from \"Core/ViewModels/ViewModelBase\";\r\n\r\nexport class PageHeaderViewModel extends ViewModelBase {\r\n constructor() {\r\n super({});\r\n }\r\n\r\n @action\r\n public navigateToUserDetails = (): void => {\r\n this.history.push(\"mydetails\");\r\n };\r\n\r\n @computed\r\n public get companyName(): string {\r\n return \"\";\r\n }\r\n\r\n @computed\r\n public get canDisplayCompanyLogo(): boolean {\r\n return !isEmptyOrWhitespace(StoresInstance.domain.AccountStore.CompanyLogo);\r\n }\r\n\r\n @computed\r\n public get companyLogo(): string {\r\n return StoresInstance.domain.AccountStore.CompanyLogo;\r\n }\r\n\r\n @computed\r\n public get userName(): string {\r\n return StoresInstance.domain.AccountStore.DisplayName;\r\n }\r\n\r\n // #region Boilerplate\r\n\r\n public afterUpdate: undefined;\r\n public beforeUpdate: undefined;\r\n\r\n public isFieldValid(fieldName: keyof FieldType): boolean {\r\n return true;\r\n }\r\n\r\n // #endregion Boilerplate\r\n}\r\n","// Libraries\r\nimport { Box, Link, Typography } from \"@material-ui/core\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React, { useState } from \"react\";\r\n\r\n// Custom\r\nimport { PageHeaderStyles } from \"Custom/StylesAppSpecific/PageHeaderStyling\";\r\nimport { PageHeaderViewModel } from \"Custom/ViewModels/PageHeaderViewModel\";\r\n\r\nexport const PageHeader: React.FC = () => {\r\n // #region Code Behind\r\n\r\n const pageHeaderStyles = PageHeaderStyles();\r\n\r\n const [viewModel] = useState(() => new PageHeaderViewModel());\r\n\r\n const onMyDetailsClick = () => {\r\n viewModel.navigateToUserDetails();\r\n };\r\n\r\n // #endregion Code Behind\r\n\r\n return useObserver(() => (\r\n \r\n {viewModel.canDisplayCompanyLogo && {viewModel.companyName}}\r\n \r\n Hi, {viewModel.userName}\r\n {/* No page has been defined to edit user details, so disable for now.\r\n \r\n my details\r\n \r\n */}\r\n \r\n \r\n ));\r\n};\r\n","// Libraries\r\nimport { Box } from \"@material-ui/core\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport { useObserver } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\n\r\n// Core\r\nimport { StoresInstance } from \"Core/Base\";\r\nimport { CSSGrid, Cell } from \"Core/Components/Styles\";\r\n\r\n// Custom\r\nimport { Header } from \"./Header\";\r\n\r\nimport { NavigationBar } from \"Custom/Components/NavigationBar\";\r\nimport { PageHeader } from \"Custom/Components/PageHeader\";\r\n\r\n//EN: use empty generic type to get default react props\r\nexport const Layout: React.FC<{}> = props => {\r\n const theme = useTheme();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"md\")) ? true : false;\r\n\r\n return useObserver(() => {\r\n const canDisplayHeader = StoresInstance.domain.AccountStore.IsLoggedIn;\r\n const areas = canDisplayHeader ? [\"header\", \"content\"] : [\"content\"];\r\n\r\n const renderUserRow = () => (isDesktop ? null : );\r\n\r\n return (\r\n \r\n {canDisplayHeader && (\r\n \r\n
\r\n \r\n )}\r\n \r\n
\r\n {canDisplayHeader && renderUserRow()}\r\n {props.children}\r\n
\r\n
\r\n \r\n );\r\n });\r\n};\r\n","// Libraries\r\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\r\nimport { MuiThemeProvider, StylesProvider } from \"@material-ui/core/styles\";\r\nimport React from \"react\";\r\nimport { hot, setConfig } from \"react-hot-loader\";\r\nimport { Router } from \"react-router-dom\";\r\nimport { ThemeProvider } from \"styled-components\";\r\n\r\n// Core\r\nimport { GlobalHistory } from \"Core/CoreIndex\";\r\n\r\n// Custom\r\nimport { AppRoutes } from \"./AppRoutes\";\r\nimport { Layout } from \"Custom/Views/Layout\";\r\nimport { defaultTheme } from \"Custom/StylesAppSpecific/AppStyling\";\r\n\r\nsetConfig({\r\n showReactDomPatchNotification: false,\r\n});\r\n\r\nconst App: React.FC = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default hot(module)(App);\r\n","import \"core-js/es/map\";\r\nimport \"core-js/es/set\";\r\nimport \"core-js/es/symbol\";\r\nimport \"core-js/es/string/repeat\";\r\nimport \"core-js/features/string/repeat\";\r\nimport \"core-js/stable/symbol\";\r\nimport \"babel-polyfill\";\r\nimport \"proxy-polyfill\";\r\n\r\n//EN Do not remove default theme from here\r\nimport \"Custom/StylesAppSpecific/AppStyling\";\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"index.scss\";\r\nimport * as serviceWorker from \"serviceWorker\";\r\nimport { CoreIndex } from \"./Core/CoreIndex\";\r\nimport App from \"./App\";\r\n\r\nconst Init: React.FC = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nReactDOM.render(, document.getElementById(\"root\"));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}