{"version":3,"sources":["lib/icons/status/approved.svg","lib/icons/status/closed.svg","lib/icons/status/created.svg","lib/icons/status/declined.svg","lib/icons/status/processed.svg","lib/icons/status/registered.svg","lib/icons/status/requiresAdditionalInformation.svg","lib/icons/status/revoked.svg","lib/icons/status/workDone.svg","utils/caseHelper.js","utils/forms/validateMessages.js","utils/dateTime.js","utils/enumerations/accountType.js","components/Forms/FormItemComponent.jsx","models/applications/blocks/applicantBlockModel.js","models/applications/blocks/billingInformationBlockModel.js","models/applications/blocks/entrepreneurBlockModel.js","models/applications/blocks/purposeBlockModel.js","models/applications/blocks/DepthAndWorkMethodBlockModel.js","models/applications/blocks/caseInfoModel.js","models/applications/blocks/dateTimeBlockModel.js","models/rowModel.js","models/applications/geometry/spatialReference.js","models/applications/geometry/point.js","models/applications/geometry/polyline.js","models/applications/geometry/polygon.js","models/applications/geometry/taGeometryAttributes.js","models/applications/geometry/taRegulationPoint.js","models/applications/geometry/taRegulationPolyline.js","models/applications/geometry/taRegulationPolygon.js","components/ErrorHandler/ErrorHandlerContext.jsx","models/middleware/deltaTracker.js","models/trackableModel.js","models/applications/caseReferenceModel.js","models/applications/applicationBaseModel.js","cases/shared/CaseApplicationContext.jsx","utils/panelContext.js","models/applications/diggingPermitModel.js","models/applications/blocks/caseinfoTaPlanBlockModel.js","models/applications/blocks/managerBlockModel.js","models/applications/roadSignRegulationModel.js","models/applications/taPlanModel.js","models/applications/leaseholdModel.js","models/Settings/mapUrlSettingsModel.js","utils/api/diggingPermitApi.js","utils/routeUtils.js","utils/enumerations/caseTypes.js","utils/parseResponse.js","utils/api/attachmentApi.js","utils/api/connectionApi.js","utils/api/settingApi.js","lib/icons/digging.svg","lib/icons/leasehold.svg","lib/icons/ta-plan.svg","lib/PanZoomElement/PanZoomElement.jsx","models/applications/attachmentModel.js","utils/endpoints.js","lib/icons/geosecma-background.svg","utils/i18n.js","utils/locale.js","utils/api/generalApi.js","lib/Antd/Preview/PreviewBlock.jsx","lib/Antd/Preview/RedSquigglyLine.jsx","lib/Antd/Preview/Selectable.jsx","lib/Antd/Preview/previewComponents.js","lib/api-authorization/ApiAuthorizationConstants.js","utils/enumerations/caseStatus.js","utils/enumerations/blocks.js","utils/enumerations/uploadedBy.js","utils/enumerations/steps.js","utils/enumerations/domainNames.js","lib/api-authorization/AuthorizeService.js","lib/api-authorization/Login.js","lib/api-authorization/Logout.js","lib/api-authorization/ApiAuthorizationRoutes.js","lib/api-authorization/AuthorizeRoute.js","routes/SelectMunicipality/SelectMunicipality.jsx","utils/domainLoader.js","components/Shell/Configuration/Configuration.jsx","components/EditUser/EditUserHeader.jsx","components/EditUser/EditUserForm.jsx","components/EditUser/EditUserMenu.jsx","components/CustomSidebar/AboutDiggingPermit/VersionInfo.jsx","components/CustomSidebar/SelectMunicipality/SelectMunicipality.jsx","components/CustomSidebar/CustomSidebar.jsx","components/Layout/Layout.jsx","routes/TenantHandler/TenantHandler.jsx","app.js","index.js","utils/DomPurifyHooks.js","utils/api/codedValueDomain.js","utils/api/dashboardApi.js","utils/api/proxyApi.js","utils/api/searchApi.js","utils/api/tenantApi.js","utils/api/vtDomain.js","utils/api/vtLeaseholdTypeApi.js","utils/api/vtRecoveryTypeApi.js","utils/panelUtils.js","models/ApplicationsWithTestData.js","models/domains/domainModel.js","models/municipalityModel.js","models/Settings/applicationTypesModel.js","models/Settings/confirmationTextsModel.js","models/Settings/textsConfigurationModel.js","models/Settings/externalApplicationSettingsModel.js","models/Settings/GeneralSettingsModel.js","models/Settings/mapConfigurationModel.js","models/settingsModel.js","models/userModel.js","models/rootModel.js"],"names":["_g","_excluded","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgApproved","_ref","svgRef","title","titleId","props","xmlns","width","height","viewBox","ref","id","transform","d","fill","ForwardRef","SvgClosed","SvgCreated","SvgDeclined","SvgProcessed","SvgRegistered","SvgRequiresAdditionalInformation","SvgRevoked","SvgWorkDone","getCaseTypeIcon","caseType","CaseType","DiggingPermit","DiggingPermitIcon","Leasehold","LeaseholdIcon","TrafficArrangementPlan","TAPlanIcon","QuestionCircleOutlined","getCaseStatusGroup","caseStatus","CaseStatus","Created","Registered","Processed","Approved","RequiresAdditionalInformation","CaseStatusGroup","Ongoing","Closed","Declined","Revoked","WorkDone","Completed","getCaseStatusesFromGroup","caseStatusGroup","getCaseStatusGroupName","t","getCaseStatusColor","getCaseStatusIcon","CreatedIcon","RegisteredIcon","ProcessedIcon","ApprovedIcon","WorkDoneIcon","ClosedIcon","RequiresAdditionalInformationIcon","DeclinedIcon","RevokedIcon","getCaseTypeName","getCaseStatusName","New","convertCaseStatusNumberToRuleName","openCase","navigate","tenantId","caseNumber","getRoutePath","saveCase","application","newStatus","a","sketchVM","complete","snapshot","JSON","parse","stringify","setAttachmentRemoved","savedApplication","undefined","tracker","status","updateDiggingPermit","applySnapshot","createDiggingPermit","clearTrackedState","updateTAPlan","createTAPlan","updateLeasehold","createLeasehold","getDomainCheckboxOptions","rootStore","domainName","currentValues","domain","getDomainByName","codedValues","filter","codedValue","inactive","includes","code","map","label","description","value","formatMobilePhoneNumber","substr","validateMessages","required","types","email","number","range","organisationNumberValidation","rules","regex","Promise","reject","match","isValidLuhn","resolve","socialSecurityNumberValidation","pnr","checksum","parseInt","charAt","startAndStopTimeValidation","dateFrom","startTime","endTime","dateTo","startMoment","dateAndTimeToMoment","stopMoment","isAfter","getDateWithoutTime","moment","isValid","convertedValue","isNullOrUndefiend","format","getTimeWithoutDate","getTime","date","splitValue","split","hours","minutes","toISOString","getMomentDateTime","getLocalDateTime","dateToMoment","time","dateTime","startOf","momentTime","AccountType","Personal","Organisation","StyledFormItem","styled","Item","FormItemComponent","observer","name","children","ApplicantBlockModel","model","applicantName","maybe","string","organisationName","phoneNumber","mobilePhoneNumber","socialSecurityNumber","organisationNumber","actions","self","setValues","changedValues","BillingInformationBlockModel","billingAddress","billingPostalCode","billingPostalCity","alternativeBillingAddress","alternativeBillingPostalCode","alternativeBillingPostalCity","invoiceMarking","volatile","useSameAsApplicant","EntrepreneurBlockModel","entrepreneurName","entrepreneurAddress","entrepreneurPostalCode","entrepreneurPostalCity","entrepreneurOrganisationNumber","supervisorName","supervisorPhoneNumber","supervisorMobilePhoneNumber","supervisorEmail","useSameAsApplicantForEntrepreneur","PurposeBlockModel","purpose","workTypes","array","integer","DepthAndWorkMethodBlockModel","workMethod","depth","keyValue","isNaN","toString","slice","CaseInfoModel","caseName","location","ledningskollenId","DateTimeBlockModel","maybeNull","RowModel","identification","modificationDate","SpatialReference","latestWkid","wkid","PointGeometry","gid","spatialReference","x","y","PolylineGeometry","paths","PolygonGeometry","rings","TAPlanGeometryAttributes","objectType","comment","snapshotIndex","regulationType","rotation","TAPoint","point","update","graphic","attributes","geometry","toJSON","TARegulationPoint","compose","named","TAPolyline","polyline","TARegulationPolyline","TAPolygon","polygon","TARegulationPolygon","addError","error","errorKeys","getOwnPropertyNames","formatted","reduce","acc","current","index","indexOfStackTrace","msg","msgText","message","duration","style","whiteSpace","ErrorHandlerContext","createContext","Provider","useErrorHandler","errorContext","useContext","Error","areEqual","original","comparer","modelType","originalCopy","comparerCopy","equal","walkUntilType","root","targetType","pathParts","leaf","element","type","getType","_subType","item","ItemTrackerModel","identifier","frozen","hasChanges","boolean","isRemoved","isNew","updateHasChanges","updateIsRemoved","updateIsNew","DeltaTracker","views","itemsWithChanges","newItems","removedItems","isChildOfInitiateStore","parentCall","deltaRecorderMiddleware","createActionTrackingMiddleware2","env","context","onStart","recorder","recordPatches","tree","_patch","_inversePatch","actionContext","isActionContextThisOrChildOf","resume","prePatchContext","onFinish","stop","trackState2","undo","updateTrackedStateForTests","listOfChanges","patches","forEach","patch","path","startsWith","op","ItemAdded","ItemRemoved","ItemModified","splitJsonPath","getRoot","found","identifierAttribute","find","attributePath","pathWithoutIndex","join","get","arr","splice","set","getOriginal","getSnapshot","push","foundByIdentifier","contextType","resolveTypeAfterRemove","foundByContextIdentifier","contextIdentifier","afterCreate","parent","getParent","selfRoot","targetStore","getEnv","addDisposer","addMiddleware","TrackableModel","optional","CaseReferenceModel","referenceApplicationGID","applicationGID","childEntityType","parentEntityType","owner","isOwner","ApplicationModel","applicant","billingInformation","dateTimeInformation","internalDiaryNumber","statusMotivation","handlingOfficer","handlingOfficerName","geometrySnapshot","approvedDate","registrationDate","additionalInformation","version","points","polylines","polygons","attachments","AttachmentModel","childCases","parentCases","termsAndConditions","touchedPanelIndex","touchedStep","mapState","geometriesHasChanged","currentStep","Step","Basic","currentPanel","Panel","Case","activeKey","form","showNewRegisterModal","isScreenshotEnabled","invalidGeometryType","continueToAfterScreenshot","attachmentRemoved","showView","Array","isArray","addAttachment","newAttachment","findIndex","attachment","removeAttachment","fileGid","setActiveKey","keyWithoutHash","getPanelByKey","itemKeyPanel","setStatus","nextPanel","setPanel","setTouchedPanelIndex","setStep","step","setFirstPanel","Map","Extent","Errand","Purpose","Finish","AdditionalInformation","locationSpecific","CreateTAPlan","Managers","MarkingManager","CreateLeasehold","isStepEnabled","goToStep","skipValidation","window","validateFields","then","setScreenshotEnabled","setContinueToAfterScreenshot","catch","errorInfo","errorFields","fieldName","fieldKey","console","log","setForm","setMapState","currentState","setGeometriesHasChanged","setShowNewRegisterModal","setTouchedStep","isEnabled","setInvalidGeometryType","setChildCaseReference","caseReference","setParentCaseReference","removeParentCaseReference","removeChildCaseReference","child","addGeometry","geometryType","deleteAllGeometries","deleteGeometrySnapshot","removeGeometry","removeSuccessful","pointIndex","geo","polylineIndex","polygonIndex","switchView","setSketchVM","ApplicationBaseModel","CaseApplicationContext","CaseApplicationProvider","useCaseApplication","caseAppContext","PanelContext","PanelProvider","usePanel","panel","CompletePage","div","DiggingPermitSpecificModel","caseInfo","entrepreneur","executedIns","workMethodAndDepth","locationDescription","approvalStatement","prolongedTo","newEndTime","prolongedStatus","prolongedApprovedDate","workDone","inspectionDate","recoveryInspectionDate","recoveryInspectionNeeded","sendRecoveryInvoice","recoveryInvoiceDate","DiggingPermitModel","getPreview","domains","answer","isPanelTouchedOrHasValue","Questioneer","billingInfo","InvoiceAddress","EntrepreneurAndSupervisor","DateAndTimePeriod","dateTimeInfo","isMapPage","span","offset","justify","className","src","alt","itemKey","dpPanelWithKeys","panelKey","panelName","setProlong","newEndDate","diggingPermitPanelOrderList","touchedPanel","panelHasAnyValue","currentPanelIndex","diggingPermitStepPanels","steps","panels","CaseInfoTaPlanBlockModel","ManagerBlockModel","markingManager","markingManagerMobilePhoneNumber","inspectionManager","inspectionManagerMobilePhoneNumber","useSameMarkingManagerAsApplicant","useSameInspectionManangerAsMarkingManager","RoadSignRegulationModel","TAPlanSpecificModel","projectNumber","workType","roadSignRegulations","managers","streetClosed","regulationsNeeded","regulationSnapShot","regulationPoints","regulationPolylines","regulationPolygons","TAPlanModel","WorkType","Preview","taRegulationPoints","taRegulationPolylines","taRegulationPolygons","tapPanelWithKeys","taPlanPanelOrderList","addTAGeometry","graphicToAdd","updateTaGeometry","setGeometryHasChanged","deleteAllTAGeometries","deleteRegulationSnapshot","removeTAGeometry","taPlanStepPanels","setSwitchValues","LeaseholdSpecificModel","originRegistrationDate","decisionDate","leaseholdType","createdInternally","initialStatus","policeCaseNumber","internallyCreatedBy","statement","applicationAdditionalInfo","LeaseholdModel","LeaseholdTypes","lhPanelWithKeys","leaseholdPanelOrderList","leaseholdStepPanels","MapUrlSettingsModel","mapUrl","setHasChanges","MapUrlSettingsStore","getDiggingPermit","srid","fetch","endpoints","diggingPermit","encodeURIComponent","getHeader","parseResponse","getTAPlan","taplan","getLeasehold","leasehold","body","taPlan","prolongDiggingPermit","prolongedToDate","prolongedToTime","prolongedReason","prolongTAPlan","downloadDiggingPermitPdf","response","parseFile","getFileNameFromHeader","downloadTAPlanPdf","downloadLeaseholdPdf","setDiggingPermitToDone","doneValues","Items","removeConnectionToApplication","request","connection","createConnectionToApplication","generatePath","getNewRoutePath","ok","etag","headers","json","jsonResponse","eTag","parseError","fileName","contentType","blob","blobResponse","Blob","navigator","msSaveOrOpenBlob","link","document","createElement","href","URL","createObjectURL","setAttribute","appendChild","click","removeChild","contentDescription","contentDescriptionParts","part","fileNameUtf8","decodeURI","replace","geosecmaSolution","extensions","GeosecmaSolution","geosecmaCode","GeosecmaError","statusCode","InnerMessage","reason","detail","stackTrace","downloadApplicationFile","applicationFile","getConnections","getSettingsByIdentification","settings","getSelectedSettings","identifications","ids","saveSettings","testServerUrl","serverInfo","mapserver","_defs","SvgDigging","xmlnsXlink","_path","_path2","_path3","SvgLeasehold","cx","cy","r","SvgTaPlan","StyledPanZoomElement","StyledZoomButtonRow","StyledZoomButtonContainer","StyledSearchSymbolContainer","StyledZoomButton","PanZoomContext","PanZoomElement","useTranslation","pageRef","React","useRef","zoomRef","useState","loaded","setLoaded","zoomDisabled","setZoomDisabled","scrollDisabled","setScrollDisabled","panDisabled","setPanDisabled","xMin","xMax","yMin","yMax","bounds","setBounds","margin","isDragging","setIsDragging","scale","translation","setValue","setWidth","setHeight","onLoad","useCallback","offsetWidth","offsetHeight","childNodes","cursor","useEffect","onMouseDown","activeElement","blur","onMouseUp","onResize","newWidth","newHeight","oldValue","onChange","newValue","disableScroll","disablePan","reScale","newScale","onButtonZoomIn","onButtonZoomOut","enableZoom","event","keyCode","disableZoom","onWheel","deltaY","scrollToActivePanel","querySelector","visibleHeight","parentElement","offsetTop","offsetParent","scrollToMap","prevStep","setTimeout","zoomHandler","addEventListener","removeEventListener","icon","disabled","onClick","color","translationBounds","minScale","maxScale","role","onTouchEnd","content","uploadedBy","uploadDate","uid","updateUid","updateContent","dashboards","search","license","codedValueDomain","vtDomain","vtRecoveryTypes","vtLeaseholdTypes","proxy","user","tenant","DPVersionNumber","SvgGeosecmaBackground","opacity","i18n","use","LanguageDetector","initReactI18next","init","detection","order","lookupQuerystring","lookupCookie","lookupLocalStorage","caches","cookieMinutes","cookieOptions","htmlTag","documentElement","debug","ns","defaultNs","interpolation","escapeValue","load","lngWhiteList","fallbackLng","resources","en","enResource","sv","svResource","getLanguage","lang","language","svSE","plPL","enUS","method","header","getLanguageString","languages","municipality","authService","getAccessToken","token","getLicense","getUser","getExternalUsers","updateUser","getLocatorSuggestions","url","getVersionNumber","shortLanguageString","BlockDiv","BlockHeader","PreviewBlock","getPreviewPanel","Span","isSelected","Selectable","itemValue","panZoomContext","handleOnClick","e","shouldGoto","tabIndex","onKeyDown","textLength","PaddingBlock","PreviewSubHeader","PreviewValue","PreviewLineThroughValue","PreviewFormattedValue","groupBy","list","keyGetter","geometryEngine","unit","collection","dimension","planarLength","planarArea","count","SelectedItem","lineThrough","MultiSelectableItem","values","nestedKey","keyIndex","valkey","PreviewBlockSection","showLabel","spaceAbove","dataTestId","val","getPreviewPostAddress","zipCode","city","postalAddress","getPreviewDateTime","getPreviewConnectedCaseShortTypeName","ApplicantPreviewBlock","gutter","MapLegendBlock","useRootStore","taRegulationPointsGroup","ta","taRegulationPolylinesGroup","taRegulationPolygonsGroup","from","taRegulationPoint","taDomains","c","taRegulationPolyline","toFixed","taRegulationPolygon","BillingPreviewBlock","CaseInfoPreviewBlock","TaPlanInfoPreviewBlock","LeaseholdInfoPreviewBlock","LeaseholdTypePreviewBlock","setVtLeaseholdTypes","isLoaded","loadDomains","getLeaseholdTypes","myTypes","leaseholdTypeCode","myType","typeCode","getLeaseholdTypeName","WorkTypePreviewBlock","ManagersPreviewBlock","InspectionManager","ComplementingFactsPreviewBlock","childCase","parentCase","DateAndTimePreviewBlock","EntrepreneurPreviewBlock","InspectionPreviewBlock","InvoicePreviewBlock","MotivationPreviewBlock","RecoveryPreviewBlock","PurposePreviewBlock","DomainName","WorkPerformed","domainValue","executedIn","convertExecutedIns","convertWorkTypes","WorkMethod","convertWorkMethods","ApplicationName","QueryParameterNames","ReturnUrl","Message","LogoutActions","LogoutCallback","Logout","LoggedOut","LoginActions","Login","LoginCallback","LoginFailed","Profile","Register","prefix","ApplicationPaths","ApiAuthorizationClientConfigurationUrl","ApiAuthorizationPrefix","LogOut","LogOutCallback","IdentityRegisterPath","IdentityManagePath","WorkPerformedIn","Location","ConnectedCases","Recovery","TermsAndConditions","UploadedBy","Applicant","Geosecma","HandlingOfficer","ApprovalStatement","Department","DepartmentMember","LeaseholdType","RecoveryType","Regulation","Reviewer","Status","AuthorizeService","_callbacks","_nextSubscriptionId","_user","_isAuthenticated","_popUpDisabled","ensureUserManagerInitialized","userManager","expired","profile","access_token","state","signinSilent","createArguments","silentUser","updateState","success","signinPopup","popUpUser","signinRedirect","redirect","localStorage","removeItem","signinCallback","signoutPopup","signoutRedirect","signoutCallback","data","notifySubscribers","callback","subscription","subscriptionId","subscriptionIndex","useReplaceToNavigate","AuthenticationResultStatus","Fail","Success","Redirect","automaticSilentRenew","includeIdTokenInSilentRenew","userStore","WebStorageStateStore","UserManager","events","addUserSignedOut","removeUser","ResultContainer","action","login","getReturnUrl","processLoginCallback","URLSearchParams","setState","SyncOutlined","spin","returnUrl","signIn","result","navigateToReturnUrl","completeSignIn","fromQuery","baseURI","Component","withTranslation","isReady","authenticated","logout","processLogoutCallback","populateAuthenticationState","isAuthenticated","signOut","completeSignOut","loginAction","logoutAction","ApiAuthorizationRoutes","AuthorizeRoute","ready","_subscription","subscribe","authenticationChanged","unsubscribe","cookie","baseUrl","endsWith","pathname","hash","redirectUrl","encodeURI","to","AuthorizeRouteParent","useParams","SelectCol","StyledContainer","StyledBackgroundIcon","Icon","StyledTypeContainer","StyledButtonContainer","StyledHeader","h1","StyledFlexbox","StyledDescriptionDiv","getRandomColor","Math","floor","random","SelectMunicipality","tenants","overflow","wrap","flex","sort","b","toLowerCase","displayName","size","component","GeosecmaIcon","defaultProps","domainNamesList","domainNames","loadAllDomains","getVTDomains","Configuration","setup","setSettings","setDomains","getTADomainValues","setTADomains","setUser","getTenant","setMunicipality","NameContainer","HeaderContainer","StyledButton","RegExp","EditUserHeader","logoutApi","visibleFnc","backgroundColor","verticalAlign","initials","LabelContainer","FormContainer","ButtonContainer","StyledRadioGroup","Group","formatSocialAndOrgNumber","EditUserForm","editable","setEditable","useForm","accountType","userType","setUserType","numberRequiredValidator","minLength","Number","onSave","updateOpenApplication","openApplication","activeApplication","address","reload","onCancelEdit","savedUser","setFieldsValue","onChangeAccountType","orgNrValidation","socNrValidation","onValuesChange","initialValues","maxLength","placeholder","validator","_","pattern","test","EditOutlined","PopupContainer","EditUserMenu","visible","setVisible","placement","trigger","arrowPointAtCenter","onVisibleChange","getPopupContainer","triggerNode","parentNode","theme","selectable","StyledInfo","VersionInfo","ignore","fetchVersion","as","mode","popupClassName","shape","QuestionOutlined","grcLicenses","MapConfigDependencies","dependency","grcLicense","repository","licenseType","MapDependencies","FileUploaderDependencies","SettingsDependencies","DashboardDependencies","SidebarDependencies","CustomSidebar","getMunicipalityLinkPath","linkPath","logoutUrl","sidebarMenu","useMemo","collapsedTitle","isCollapsed","localStorageKey","firstMenu","hasAccess","HomeOutlined","menuComponent","LinkMenu","FormOutlined","secondMenu","SettingOutlined","about","jsLicenses","diggingPermitLicenses","nugetLicenses","licensesListText","versionNumberComponent","showSupportLinks","AboutMenu","Content","StyledLayout","ContentContainer","Layout","TenantHandler","rootState","removeAllApplications","CenterDiv","Dashboard","lazy","CaseHandler","AdminSettings","App","setTenants","useReducer","newState","active","backendError","setBackendError","createError","getTenants","tenantDatabases","listOfTenants","all","tenantInstance","subTitle","extra","fallback","route","rest","absolute","translationKey","tip","esriConfig","assetsPath","process","getElementsByTagName","getAttribute","rootElement","getElementById","DOMPurify","addHook","node","hasAttribute","locale","ReactDOM","render","basename","getDashboards","sendToCache","credentials","clearCache","services","getSearchResults","requestData","nms","getRecoveryTypes","valueObject","keyPanels","propKey","constructor","panelwithKey","prop","diggingPermitCase","taPlanCase","CodedValueModel","union","DomainModel","CodeNameModel","TADomainModel","MunicipalityModel","logo","ApplicationTypesModel","trafficArrangementPlan","ConfirmationTextsModel","signUp","TextsConfigurationModel","applicationHeaderText","confirmationTexts","ExternalApplicationSettings","textsConfiguration","availableApplicationTypes","typeName","applicationTypes","ExternalApplicationSettingsModel","GeneralSettingsStore","GeneralSettingsModel","MapConfigurationAttributes","rowVersion","MapConfigurationStore","MapConfigurationModel","SettingsModel","mapConfiguration","generalSettings","externalApplicationSettings","mapUrlSettings","s","updateSettings","settingsName","create","UserModel","RootModel","applications","late","reference","setActiveApplication","chosenDomain","addApplication","app","removeApplication","tabKey","currentApp","newActiveAppIndex","lastIndex","baseLayer","initialState","getItem","diggingPermitTestCase","locators","onSnapshot","rootSnapshot","minimalSnapshot","setItem","RootStoreContext","RootStoreProvider","store"],"mappings":"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","file":"static/js/main.60f16ad1.chunk.js","sourcesContent":["var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgApproved(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1.5 1.5)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.8,21H13.6l-1.169,0-1.191,0L9.384,21H9.369L7.507,21H1.688A1.689,1.689,0,0,1,0,19.312V10.688A1.689,1.689,0,0,1,1.688,9H4.341A2.9,2.9,0,0,0,6.272,7.863c.411-.658.809-1.352,1.195-2.023l.05-.087c.1-.168.194-.338.293-.509l.222-.384a.386.386,0,0,0,.052-.232c-.02-.439-.029-.887-.038-1.319l0-.127c0-.215-.009-.437-.014-.657l0-.191A2.051,2.051,0,0,1,9.194.387,3.308,3.308,0,0,1,10.737,0a3.44,3.44,0,0,1,1.378.3,2.231,2.231,0,0,1,1.258,1.331c.071.183.141.368.212.554l.051.135c.174.457.353.929.516,1.4a5.317,5.317,0,0,1,.12,2.808c-.058.3-.107.6-.159.91l-.008.046h2.009c.676,0,1.375,0,2.06,0h.019a3.614,3.614,0,0,1,1.16.19,2.411,2.411,0,0,1,1.561,1.8.645.645,0,0,0,.019.066l.009.029.022.07.037.12v1.031l-.091.12a3.188,3.188,0,0,1-.462,1.046,3.194,3.194,0,0,1,.114.693,3.03,3.03,0,0,1-.541,1.8,2.728,2.728,0,0,1,.1.57,3.187,3.187,0,0,1-.532,1.948,3.682,3.682,0,0,1,.061,1.076,3.05,3.05,0,0,1-2.165,2.738A5.382,5.382,0,0,1,15.8,21ZM1.688,10.688v8.625H4.313V10.688ZM11.241,19.3h1.19l.588,0,.582,0h2.2a3.751,3.751,0,0,0,1.166-.146,1.464,1.464,0,0,0,.716-.481,1.4,1.4,0,0,0,.289-.78V17.89l0-.014a1.86,1.86,0,0,0-.032-.57l-.019-.079-.124-.591.371-.586a1.523,1.523,0,0,0,.272-.923.964.964,0,0,0-.038-.208l-.222-.758.44-.656a1.323,1.323,0,0,0,.256-.785,1.444,1.444,0,0,0-.051-.3l-.219-.76.444-.653a1.515,1.515,0,0,0,.218-.495l.044-.183v-.319a.235.235,0,0,0-.019-.074.517.517,0,0,1-.018-.057c-.11-.431-.3-.555-.479-.618a1.958,1.958,0,0,0-.607-.1h-.009l-.012,0-.013,0c-.726-.006-1.427-.006-2.046-.006h-.757c-.251,0-.5,0-.745,0H12.119L12.443,7.2c.067-.413.12-.715.177-1.011a3.663,3.663,0,0,0-.058-1.933c-.17-.492-.356-.983-.548-1.484-.044-.118-.089-.236-.134-.355L11.8,2.212a.552.552,0,0,0-.33-.368,1.937,1.937,0,0,0-.729-.157,1.606,1.606,0,0,0-.76.194.557.557,0,0,0-.22.181.388.388,0,0,0-.044.225c0,.167.008.335.012.515v.017c0,.105,0,.215.007.331v.04c.008.5.017.925.035,1.341A2.049,2.049,0,0,1,9.492,5.71c-.039.069-.079.138-.12.207l-.061.1-.293.511-.032.056,0,.005-.016.025c-.382.666-.815,1.42-1.258,2.133l0,0,0,0a4.058,4.058,0,0,1-1.676,1.463L6.007,19.31h1.5c.678,0,1.359,0,2.013,0C10.123,19.3,10.7,19.3,11.241,19.3Z\",\n transform: \"translate(0 0)\"\n })), /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgApproved);\nexport default __webpack_public_path__ + \"static/media/approved.6c572a4b.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgClosed(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 12.693,\n height: 10.171,\n viewBox: \"0 0 12.693 10.171\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.254.248l-7.676,7.7-2-3.5A.843.843,0,0,0,.112,5.28l2.55,4.465a.845.845,0,0,0,.734.427.836.836,0,0,0,.417-.11.88.88,0,0,0,.2-.157l.009-.009,8.426-8.452a.844.844,0,0,0,0-1.193A.837.837,0,0,0,11.254.248Z\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgClosed);\nexport default __webpack_public_path__ + \"static/media/closed.b41515b6.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCreated(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(2.243 2.59)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.4,18.8H2.111A2.112,2.112,0,0,1,0,16.695V2.934A2.114,2.114,0,0,1,2.111.822H8.077a.839.839,0,0,1,0,1.678H2.11a.437.437,0,0,0-.436.436V16.7a.437.437,0,0,0,.436.436H15.4a.437.437,0,0,0,.437-.436V11.918a.84.84,0,0,1,1.68,0v4.774A2.114,2.114,0,0,1,15.4,18.8ZM7.465,10.3a.657.657,0,0,1-.12-.01.84.84,0,0,1-.71-.949A8.5,8.5,0,0,1,7.913,6.152,7.052,7.052,0,0,1,13.4,2.97V.839A.837.837,0,0,1,14.239,0a.826.826,0,0,1,.576.232l4.453,4.24a.848.848,0,0,1-.04,1.254l-4.456,3.71a.839.839,0,0,1-.535.193.805.805,0,0,1-.354-.08.841.841,0,0,1-.485-.759V6.2a.839.839,0,0,1,1.679,0V7l2.357-1.964L15.08,2.793v.987a.84.84,0,0,1-.839.839l-.052,0-.033,0A5.478,5.478,0,0,0,9.338,7.043,7.058,7.058,0,0,0,8.294,9.586.845.845,0,0,1,7.465,10.3Z\",\n transform: \"translate(0 0)\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCreated);\nexport default __webpack_public_path__ + \"static/media/created.b1d63920.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDeclined(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1.5 1.495)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.737,21a3.3,3.3,0,0,1-1.543-.386,2.056,2.056,0,0,1-1.169-1.948l0-.2c.005-.219.01-.438.014-.651l0-.129c.009-.431.018-.876.038-1.317a.369.369,0,0,0-.052-.232l-.192-.333,0-.006c-.107-.185-.215-.371-.319-.554l-.049-.086c-.386-.672-.785-1.366-1.2-2.024A2.9,2.9,0,0,0,4.341,12H1.688A1.689,1.689,0,0,1,0,10.312V1.688A1.689,1.689,0,0,1,1.688,0H7.507L9.371,0h.016l1.851,0,1.186,0L13.6,0h2.2a5.382,5.382,0,0,1,1.687.23,3.056,3.056,0,0,1,2.165,2.738,3.593,3.593,0,0,1-.061,1.076,3.2,3.2,0,0,1,.532,1.948,2.723,2.723,0,0,1-.1.57,2.869,2.869,0,0,1,.427,2.489,3.251,3.251,0,0,1,.462,1.045l.091.12v1.031l-.035.126-.021.071c-.012.035-.022.07-.028.094a2.425,2.425,0,0,1-1.562,1.8,3.606,3.606,0,0,1-1.16.19h-.019c-.684,0-1.384,0-2.06,0H14.107c.054.34.108.653.167.956a5.308,5.308,0,0,1-.119,2.808c-.178.52-.378,1.046-.568,1.537-.07.182-.14.366-.209.55a2.244,2.244,0,0,1-1.259,1.334A3.565,3.565,0,0,1,10.737,21ZM6.007,1.692l.014,9.087A4.035,4.035,0,0,1,7.7,12.242l0,0c.446.717.879,1.471,1.261,2.137l.016.025,0,.005c.069.123.141.247.213.372l.113.2c.031.051.061.1.09.156s.06.1.09.156a2.05,2.05,0,0,1,.279,1.179c-.016.426-.025.865-.034,1.29v.091c0,.251-.009.471-.015.682l0,.18a.369.369,0,0,0,.044.225.59.59,0,0,0,.221.181,1.606,1.606,0,0,0,.76.194,1.872,1.872,0,0,0,.729-.157.557.557,0,0,0,.33-.367l.066-.175c.048-.129.1-.259.147-.387.192-.5.378-.992.548-1.484a3.706,3.706,0,0,0,.059-1.933c-.062-.318-.116-.634-.178-1.011l-.319-1.959h3.991c.578,0,1.285,0,2.046-.007l.013,0,.012,0h.009a1.907,1.907,0,0,0,.607-.1c.184-.068.37-.19.479-.619,0-.017.011-.034.017-.05a.269.269,0,0,0,.02-.08v-.321l-.044-.183a1.481,1.481,0,0,0-.218-.5l-.444-.653.219-.76a1.444,1.444,0,0,0,.051-.3,1.323,1.323,0,0,0-.256-.785l-.44-.656.222-.758a1.083,1.083,0,0,0,.038-.208,1.545,1.545,0,0,0-.272-.923L17.8,4.367l.124-.591.019-.079a1.872,1.872,0,0,0,.032-.57l0-.014V3.1a1.4,1.4,0,0,0-.289-.78,1.464,1.464,0,0,0-.716-.481A3.761,3.761,0,0,0,15.8,1.692H13.6l-.582,0-.588,0h-1.19c-.535,0-1.116,0-1.721,0H9.507c-.651,0-1.328,0-2,0Zm-4.319,0v8.626H4.313V1.692Z\",\n transform: \"translate(0 0)\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDeclined);\nexport default __webpack_public_path__ + \"static/media/declined.16a665d4.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgProcessed(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(4.186 1.542)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.793,20.956a.845.845,0,0,1-.843-.844A6.132,6.132,0,0,0,3.483,15.776a6.088,6.088,0,0,0-1.8,4.335.844.844,0,1,1-1.687,0,7.828,7.828,0,0,1,4.774-7.2,7.632,7.632,0,0,1,.97-.337A6.467,6.467,0,0,1,1.362,6.455,6.453,6.453,0,0,1,12.38,1.892a6.449,6.449,0,0,1,0,9.126,6.388,6.388,0,0,1-2.491,1.552,8.162,8.162,0,0,1,.97.337,7.833,7.833,0,0,1,4.779,7.2A.845.845,0,0,1,14.793,20.956ZM7.814,1.688a4.767,4.767,0,1,0,4.767,4.767A4.773,4.773,0,0,0,7.814,1.688Z\",\n transform: \"translate(0 0)\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgProcessed);\nexport default __webpack_public_path__ + \"static/media/processed.b865e69e.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgRegistered(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12,24A12,12,0,0,1,3.514,3.514,12,12,0,0,1,20.486,20.486,11.922,11.922,0,0,1,12,24ZM12,1.688A10.313,10.313,0,1,0,22.313,12,10.324,10.324,0,0,0,12,1.688Zm5.039,17.2H15.126L10.561,12.71h-.532v6.179H8.508V5.343h2.653a14.514,14.514,0,0,1,2.92.2,3.567,3.567,0,0,1,1.382.658,3.217,3.217,0,0,1,.919,1.193,3.849,3.849,0,0,1,.338,1.619,3.494,3.494,0,0,1-1.1,2.694,4.548,4.548,0,0,1-3.168,1.007l4.583,6.18ZM10.031,6.9v4.254H12.2a3.948,3.948,0,0,0,2.2-.488,1.843,1.843,0,0,0,.743-1.629,1.858,1.858,0,0,0-.725-1.629A4,4,0,0,0,12.155,6.9Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRegistered);\nexport default __webpack_public_path__ + \"static/media/registered.a7ccb62d.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgRequiresAdditionalInformation(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12,24A12,12,0,0,1,3.515,3.515,12,12,0,0,1,20.486,20.486,11.922,11.922,0,0,1,12,24ZM12,1.688A10.316,10.316,0,0,0,7.988,21.5a10.314,10.314,0,0,0,11.3-16.8A10.268,10.268,0,0,0,12,1.688Zm0,16.922a1.055,1.055,0,1,1,1.055-1.055A1.056,1.056,0,0,1,12,18.609ZM12,15a.938.938,0,0,1-.937-.938V5.414a.937.937,0,1,1,1.875,0v8.648A.939.939,0,0,1,12,15Z\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRequiresAdditionalInformation);\nexport default __webpack_public_path__ + \"static/media/requiresAdditionalInformation.7a28f02c.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgRevoked(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12,24A12,12,0,0,1,3.514,3.514,12,12,0,0,1,20.486,20.486,11.922,11.922,0,0,1,12,24ZM12,1.688A10.316,10.316,0,0,0,7.988,21.5a10.314,10.314,0,0,0,11.3-16.8A10.268,10.268,0,0,0,12,1.688Zm4.215,15.385a.831.831,0,0,1-.6-.248L12,13.195,8.384,16.821a.844.844,0,0,1-1.441-.592.84.84,0,0,1,.246-.6L10.809,12,7.188,8.369a.843.843,0,1,1,1.2-1.19L12,10.8l3.617-3.625a.842.842,0,1,1,1.193,1.19L13.19,12l3.622,3.633a.844.844,0,0,1-.6,1.439Z\",\n transform: \"translate(0)\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRevoked);\nexport default __webpack_public_path__ + \"static/media/revoked.7be71680.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgWorkDone(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 3)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.313,18H1.688A1.689,1.689,0,0,1,0,16.313V3.188A1.689,1.689,0,0,1,1.688,1.5H3.656V.843a.844.844,0,0,1,1.688,0V1.5h5.813V.843a.844.844,0,0,1,1.688,0V1.5h5.812V.843a.844.844,0,0,1,1.688,0V1.5h1.969A1.689,1.689,0,0,1,24,3.188V16.313A1.689,1.689,0,0,1,22.313,18ZM1.688,7.5v8.813H22.313V7.5Zm0-4.312V5.812H22.313V3.188H20.344v.468a.844.844,0,1,1-1.687,0V3.188H12.844v.468a.844.844,0,1,1-1.687,0V3.188H5.343v.468a.844.844,0,1,1-1.688,0V3.188Zm13.58,12.117a.781.781,0,0,1-.556-.23l-.082-.082-.021-.022-.022-.021-1.99-1.99a.844.844,0,1,1,1.193-1.193l1.474,1.474L19.88,8.627a.785.785,0,0,1,1.111,0l.082.082a.785.785,0,0,1,0,1.111l-5.25,5.255A.781.781,0,0,1,15.267,15.305ZM9.691,13.594H3.809A.81.81,0,0,1,3,12.785v-.07a.81.81,0,0,1,.809-.809H9.691a.81.81,0,0,1,.809.809v.07A.81.81,0,0,1,9.691,13.594Zm3-2.906H3.809A.81.81,0,0,1,3,9.879V9.808A.81.81,0,0,1,3.809,9h8.883a.809.809,0,0,1,.808.808v.071A.809.809,0,0,1,12.692,10.688Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWorkDone);\nexport default __webpack_public_path__ + \"static/media/workDone.fca4fbc3.svg\";\nexport { ForwardRef as ReactComponent };","import { QuestionCircleOutlined } from '@ant-design/icons';\r\nimport { ReactComponent as DiggingPermitIcon } from 'lib/icons/digging.svg';\r\nimport { ReactComponent as LeaseholdIcon } from 'lib/icons/leasehold.svg';\r\nimport { ReactComponent as ApprovedIcon } from 'lib/icons/status/approved.svg';\r\nimport { ReactComponent as ClosedIcon } from 'lib/icons/status/closed.svg';\r\nimport { ReactComponent as CreatedIcon } from 'lib/icons/status/created.svg';\r\nimport { ReactComponent as DeclinedIcon } from 'lib/icons/status/declined.svg';\r\nimport { ReactComponent as ProcessedIcon } from 'lib/icons/status/processed.svg';\r\nimport { ReactComponent as RegisteredIcon } from 'lib/icons/status/registered.svg';\r\nimport { ReactComponent as RequiresAdditionalInformationIcon } from 'lib/icons/status/requiresAdditionalInformation.svg';\r\nimport { ReactComponent as RevokedIcon } from 'lib/icons/status/revoked.svg';\r\nimport { ReactComponent as WorkDoneIcon } from 'lib/icons/status/workDone.svg';\r\nimport { ReactComponent as TAPlanIcon } from 'lib/icons/ta-plan.svg';\r\nimport { applySnapshot } from 'mobx-state-tree';\r\nimport {\r\n createDiggingPermit,\r\n createLeasehold,\r\n createTAPlan,\r\n updateDiggingPermit,\r\n updateLeasehold,\r\n updateTAPlan\r\n} from 'utils/api';\r\nimport { CaseStatus, CaseStatusGroup, CaseType } from 'utils/enumerations';\r\nimport { getRoutePath } from './routeUtils';\r\n\r\nexport const getCaseTypeIcon = caseType => {\r\n switch (caseType) {\r\n case CaseType.DiggingPermit:\r\n return DiggingPermitIcon;\r\n case CaseType.Leasehold:\r\n return LeaseholdIcon;\r\n case CaseType.TrafficArrangementPlan:\r\n return TAPlanIcon;\r\n default:\r\n return QuestionCircleOutlined;\r\n }\r\n};\r\n\r\nexport const getCaseStatusGroup = caseStatus => {\r\n switch (caseStatus) {\r\n case CaseStatus.Created:\r\n case CaseStatus.Registered:\r\n case CaseStatus.Processed:\r\n case CaseStatus.Approved:\r\n case CaseStatus.RequiresAdditionalInformation:\r\n return CaseStatusGroup.Ongoing;\r\n case CaseStatus.Closed:\r\n case CaseStatus.Declined:\r\n case CaseStatus.Revoked:\r\n case CaseStatus.WorkDone:\r\n return CaseStatusGroup.Completed;\r\n default:\r\n break;\r\n }\r\n};\r\n\r\nexport const getCaseStatusesFromGroup = caseStatusGroup => {\r\n switch (caseStatusGroup) {\r\n case CaseStatusGroup.Ongoing:\r\n return [\r\n CaseStatus.Created,\r\n CaseStatus.Registered,\r\n CaseStatus.Processed,\r\n CaseStatus.Approved,\r\n CaseStatus.RequiresAdditionalInformation\r\n ];\r\n case CaseStatusGroup.Completed:\r\n return [CaseStatus.WorkDone, CaseStatus.Closed, CaseStatus.Declined, CaseStatus.Revoked];\r\n default:\r\n return [];\r\n }\r\n};\r\n\r\nexport const getCaseStatusGroupName = (t, caseStatusGroup) => {\r\n switch (caseStatusGroup) {\r\n case CaseStatusGroup.Ongoing:\r\n return t('applicationStatus:Ongoing');\r\n case CaseStatusGroup.Completed:\r\n return t('applicationStatus:Completed');\r\n default:\r\n return 'unknown';\r\n }\r\n};\r\n\r\nexport const getCaseStatusColor = caseStatus => {\r\n switch (caseStatus) {\r\n case CaseStatus.Created:\r\n case CaseStatus.Registered:\r\n case CaseStatus.Processed:\r\n case CaseStatus.Approved:\r\n return '#1075e0';\r\n case CaseStatus.Closed:\r\n case CaseStatus.Declined:\r\n case CaseStatus.Revoked:\r\n case CaseStatus.WorkDone:\r\n return '#707689';\r\n case CaseStatus.RequiresAdditionalInformation:\r\n return '#c71d1d';\r\n default:\r\n return '#1075e0';\r\n }\r\n};\r\n\r\nexport const getCaseStatusIcon = caseStatus => {\r\n switch (caseStatus) {\r\n case CaseStatus.Created:\r\n return CreatedIcon;\r\n case CaseStatus.Registered:\r\n return RegisteredIcon;\r\n case CaseStatus.Processed:\r\n return ProcessedIcon;\r\n case CaseStatus.Approved:\r\n return ApprovedIcon;\r\n case CaseStatus.WorkDone:\r\n return WorkDoneIcon;\r\n case CaseStatus.Closed:\r\n return ClosedIcon;\r\n case CaseStatus.RequiresAdditionalInformation:\r\n return RequiresAdditionalInformationIcon;\r\n case CaseStatus.Declined:\r\n return DeclinedIcon;\r\n case CaseStatus.Revoked:\r\n return RevokedIcon;\r\n default:\r\n return QuestionCircleOutlined;\r\n }\r\n};\r\n\r\nexport const getCaseTypeName = (t, caseType) => {\r\n switch (caseType) {\r\n case CaseType.DiggingPermit:\r\n return t('diggingPermits:DiggingPermit');\r\n case CaseType.Leasehold:\r\n return t('diggingPermits:GenericLeasehold');\r\n case CaseType.TrafficArrangementPlan:\r\n return t('diggingPermits:TAPlan');\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\nexport const getCaseStatusName = (t, caseStatus) => {\r\n switch (caseStatus) {\r\n case CaseStatus.New:\r\n return t('applicationStatus:New');\r\n case CaseStatus.Created:\r\n return t('applicationStatus:Created');\r\n case CaseStatus.Registered:\r\n return t('applicationStatus:Registered');\r\n case CaseStatus.Processed:\r\n return t('applicationStatus:Processed');\r\n case CaseStatus.Approved:\r\n return t('applicationStatus:Approved');\r\n case CaseStatus.WorkDone:\r\n return t('applicationStatus:WorkDone');\r\n case CaseStatus.Closed:\r\n return t('applicationStatus:Closed');\r\n case CaseStatus.RequiresAdditionalInformation:\r\n return t('applicationStatus:RequiresAdditionalInformation');\r\n case CaseStatus.Declined:\r\n return t('applicationStatus:Declined');\r\n case CaseStatus.Revoked:\r\n return t('applicationStatus:Revoked');\r\n default:\r\n return 'unknown';\r\n }\r\n};\r\n\r\nexport const convertCaseStatusNumberToRuleName = caseStatus => {\r\n switch (caseStatus) {\r\n case CaseStatus.New:\r\n return 'new';\r\n case CaseStatus.Created:\r\n return 'created';\r\n case CaseStatus.Registered:\r\n return 'registered';\r\n case CaseStatus.Processed:\r\n return 'processed';\r\n case CaseStatus.Approved:\r\n return 'approved';\r\n case CaseStatus.WorkDone:\r\n return 'workDone';\r\n case CaseStatus.Closed:\r\n return 'closed';\r\n case CaseStatus.RequiresAdditionalInformation:\r\n return 'requiresAdditionalInformation';\r\n case CaseStatus.Declined:\r\n return 'declined';\r\n case CaseStatus.Revoked:\r\n return 'revoked';\r\n default:\r\n return 'unknown';\r\n }\r\n};\r\n\r\nexport const openCase = (navigate, tenantId, caseType, caseNumber) => {\r\n navigate(`${getRoutePath(tenantId, caseType)}/${caseNumber}`);\r\n};\r\n\r\nexport const saveCase = async (application, newStatus) => {\r\n application.sketchVM?.complete();\r\n const snapshot = JSON.parse(JSON.stringify(application));\r\n application.setAttachmentRemoved(false);\r\n let savedApplication = undefined;\r\n\r\n snapshot.tracker = undefined;\r\n if (application.caseType === CaseType.DiggingPermit) {\r\n if (application.status !== CaseStatus.New) {\r\n if (newStatus != null) snapshot.status = newStatus;\r\n savedApplication = await updateDiggingPermit(snapshot);\r\n applySnapshot(application, savedApplication);\r\n } else {\r\n snapshot.status = newStatus != null ? newStatus : CaseStatus.Created;\r\n savedApplication = await createDiggingPermit(snapshot);\r\n applySnapshot(application, savedApplication);\r\n }\r\n application.tracker.clearTrackedState();\r\n return savedApplication;\r\n } else if (application.caseType === CaseType.TrafficArrangementPlan) {\r\n if (application.status !== CaseStatus.New) {\r\n if (newStatus != null) snapshot.status = newStatus;\r\n savedApplication = await updateTAPlan(snapshot);\r\n applySnapshot(application, savedApplication);\r\n } else {\r\n snapshot.status = newStatus != null ? newStatus : CaseStatus.Created;\r\n savedApplication = await createTAPlan(snapshot);\r\n applySnapshot(application, savedApplication);\r\n }\r\n application.tracker.clearTrackedState();\r\n return savedApplication;\r\n } else if (application.caseType === CaseType.Leasehold) {\r\n if (application.status !== CaseStatus.New) {\r\n if (newStatus != null) snapshot.status = newStatus;\r\n savedApplication = await updateLeasehold(snapshot);\r\n applySnapshot(application, savedApplication);\r\n } else {\r\n snapshot.status = newStatus != null ? newStatus : CaseStatus.Created;\r\n savedApplication = await createLeasehold(snapshot);\r\n applySnapshot(application, savedApplication);\r\n }\r\n application.tracker.clearTrackedState();\r\n return savedApplication;\r\n }\r\n};\r\n\r\nexport const getDomainCheckboxOptions = (rootStore, domainName, currentValues) => {\r\n const domain = rootStore.getDomainByName(domainName);\r\n return domain?.codedValues\r\n .filter(codedValue => !codedValue.inactive || currentValues?.includes(codedValue.code))\r\n .map(codedValue => ({ label: codedValue.description, value: codedValue.code }));\r\n};\r\n\r\nexport const formatMobilePhoneNumber = value => {\r\n return value && value.length === 10\r\n ? `${value.substr(0, 3)}-${value.substr(3, 3)} ${value.substr(6, 2)} ${value.substr(8, 2)}`\r\n : value;\r\n};\r\n","import { dateAndTimeToMoment } from 'utils/dateTime';\r\n\r\nexport function validateMessages(t) {\r\n return {\r\n required: t('validateMessage:required'),\r\n types: {\r\n email: t('validateMessage:email'),\r\n number: t('validateMessage:number')\r\n },\r\n number: {\r\n range: t('validateMessage:range')\r\n }\r\n };\r\n}\r\n\r\nexport function organisationNumberValidation(t) {\r\n return async (rules, value) => {\r\n const regex = '^[0-9]{10}$';\r\n if (!value && rules.required) {\r\n return Promise.reject(validateMessages(t).required);\r\n } else if (value && !value.match(regex)) {\r\n return Promise.reject(t('validateMessage:orgRegexMismatch'));\r\n } else if (value && !isValidLuhn(value)) {\r\n return Promise.reject(t('validateMessage:invalidOrgNumber'));\r\n } else {\r\n return Promise.resolve();\r\n }\r\n };\r\n}\r\n\r\nexport function socialSecurityNumberValidation(t) {\r\n return async (rules, value) => {\r\n const regex = '^[0-9]{10}$';\r\n if (!value && rules.required) {\r\n return Promise.reject(validateMessages(t).required);\r\n } else if (value && !value.match(regex)) {\r\n return Promise.reject(t('validateMessage:socSecurityNrRegexMisMatch'));\r\n } else if (value && !isValidLuhn(value)) {\r\n return Promise.reject(t('validateMessage:invalidSocSecurityNr'));\r\n } else {\r\n return Promise.resolve();\r\n }\r\n };\r\n}\r\n\r\nexport const isValidLuhn = pnr => {\r\n let number;\r\n let checksum = 0;\r\n for (let i = pnr.length - 1; i >= 0; i--) {\r\n number = parseInt(pnr.charAt(i));\r\n if (i % 2 === 1) {\r\n checksum += number;\r\n } else {\r\n checksum += number * 2 > 9 ? number * 2 - 9 : number * 2;\r\n }\r\n }\r\n return checksum % 10 === 0;\r\n};\r\n\r\nexport function startAndStopTimeValidation(t, dateFrom, startTime, endTime) {\r\n return async (rules, dateTo) => {\r\n let startMoment = dateAndTimeToMoment(dateFrom, startTime);\r\n let stopMoment = dateAndTimeToMoment(dateTo, endTime);\r\n if (!dateTo && rules.required) {\r\n return Promise.reject(validateMessages(t).required);\r\n } else if (startMoment && startMoment.isAfter(stopMoment)) {\r\n return Promise.reject(t('validateMessage:startTimeBeforeStopTime'));\r\n } else {\r\n return Promise.resolve();\r\n }\r\n };\r\n}\r\n","import moment from 'moment';\r\n\r\nexport const dateFormat = 'YYYY-MM-DD';\r\nexport const timeFormat = 'HH:mm';\r\nexport const dateTimeFormat = 'YYYY-MM-DD HH:mm';\r\nexport const dateTextMonthFormat = 'D MMMM YYYY';\r\nexport const dateTextMonthAndDayFormat = 'D MMMM';\r\n\r\nexport function getDate(value) {\r\n if (!moment(value).isValid()) {\r\n return undefined;\r\n }\r\n const convertedValue = moment(value);\r\n return convertedValue && value ? convertedValue.utc().toISOString() : undefined;\r\n}\r\n\r\nexport function getDateWithoutTime(value) {\r\n if (!moment(value).isValid()) {\r\n return undefined;\r\n }\r\n const convertedValue = moment(value);\r\n return convertedValue && !isNullOrUndefiend(value) ? convertedValue.format(dateFormat) : undefined;\r\n}\r\n\r\nexport function getTimeWithoutDate(value) {\r\n if (!moment(getTime(value)).isValid()) {\r\n return undefined;\r\n }\r\n const convertedValue = moment(getTime(value));\r\n return convertedValue && !isNullOrUndefiend(value) ? convertedValue.format(timeFormat) : undefined;\r\n}\r\n\r\nexport function getTime(value) {\r\n if (typeof value === 'string' && value && value.length <= 5) {\r\n const date = moment();\r\n const splitValue = value.split(':');\r\n date.hours(splitValue[0]);\r\n date.minutes(splitValue[1]);\r\n return date.toISOString();\r\n } else if (typeof value === 'string' && value) {\r\n return value;\r\n } else if (value) {\r\n return moment(value).toISOString();\r\n }\r\n return undefined;\r\n}\r\n\r\nexport function getMomentDateTime(value) {\r\n if (!moment(value).isValid()) {\r\n return undefined;\r\n }\r\n return value ? moment(value) : undefined;\r\n}\r\n\r\nexport function getDateDateTime(value) {\r\n if (!moment(value).isValid()) {\r\n return undefined;\r\n }\r\n return value ? moment(value).toDate() : undefined;\r\n}\r\n\r\nexport function getLocalDateTime(value) {\r\n if (!moment(value).isValid()) {\r\n return undefined;\r\n }\r\n return value ? moment(value).format(dateTimeFormat) : undefined;\r\n}\r\n\r\nexport function dateToMoment(date) {\r\n if (!moment(date).isValid()) {\r\n return undefined;\r\n }\r\n return date ? moment(date) : undefined;\r\n}\r\n\r\nexport function dateAndTimeToMoment(date, time) {\r\n const dateTime = date ? moment(date) : undefined;\r\n if (dateTime) {\r\n dateTime.startOf('day');\r\n if (time) {\r\n const momentTime = moment(time);\r\n dateTime.hours(momentTime.hours());\r\n dateTime.minutes(momentTime.minutes());\r\n }\r\n }\r\n return dateTime;\r\n}\r\n\r\nfunction isNullOrUndefiend(value) {\r\n if (value === null || value === undefined) {\r\n return true;\r\n }\r\n}\r\n","export const AccountType = {\r\n Personal: 'Personal',\r\n Organisation: 'Organisation'\r\n};\r\n","import PropTypes from 'prop-types';\r\nimport { observer } from 'mobx-react';\r\nimport { Form } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledFormItem = styled(Form.Item)`\r\n &&& {\r\n margin: 6px 0;\r\n width: 100%;\r\n }\r\n &&& .ant-form-item-label {\r\n line-height: 20px;\r\n padding: 0 0 3px;\r\n }\r\n`;\r\n\r\nexport const FormItemComponent = observer(props => {\r\n const { name, label } = props;\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n});\r\n\r\nFormItemComponent.propTypes = {\r\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]).isRequired,\r\n label: PropTypes.oneOfType([PropTypes.element, PropTypes.string])\r\n};\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const ApplicantBlockModel = types\r\n .model('ApplicantBlockModel', {\r\n applicantName: types.maybe(types.string),\r\n organisationName: types.maybe(types.string),\r\n phoneNumber: types.maybe(types.string),\r\n mobilePhoneNumber: types.maybe(types.string),\r\n email: types.maybe(types.string),\r\n socialSecurityNumber: types.maybe(types.string),\r\n organisationNumber: types.maybe(types.string)\r\n })\r\n .actions(self => ({\r\n setValues(changedValues) {\r\n for (let key in changedValues) {\r\n self[key] = changedValues[key];\r\n }\r\n }\r\n }));\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const BillingInformationBlockModel = types\r\n .model('BillingInformationBlockModel', {\r\n billingAddress: types.maybe(types.string),\r\n billingPostalCode: types.maybe(types.string),\r\n billingPostalCity: types.maybe(types.string),\r\n alternativeBillingAddress: types.maybe(types.string),\r\n alternativeBillingPostalCode: types.maybe(types.string),\r\n alternativeBillingPostalCity: types.maybe(types.string),\r\n invoiceMarking: types.maybe(types.string)\r\n })\r\n .volatile(() => ({\r\n useSameAsApplicant: false\r\n }))\r\n .actions(self => ({\r\n setValues(changedValues) {\r\n for (let key in changedValues) {\r\n self[key] = changedValues[key];\r\n }\r\n }\r\n }));\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const EntrepreneurBlockModel = types\r\n .model('EntrepreneurBlockModel', {\r\n entrepreneurName: types.maybe(types.string),\r\n entrepreneurAddress: types.maybe(types.string),\r\n entrepreneurPostalCode: types.maybe(types.string),\r\n entrepreneurPostalCity: types.maybe(types.string),\r\n entrepreneurOrganisationNumber: types.maybe(types.string),\r\n supervisorName: types.maybe(types.string),\r\n supervisorPhoneNumber: types.maybe(types.string),\r\n supervisorMobilePhoneNumber: types.maybe(types.string),\r\n supervisorEmail: types.maybe(types.string)\r\n })\r\n .volatile(() => ({\r\n useSameAsApplicantForEntrepreneur: false\r\n }))\r\n .actions(self => ({\r\n setValues(changedValues) {\r\n for (let key in changedValues) {\r\n self[key] = changedValues[key];\r\n }\r\n }\r\n }));\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const PurposeBlockModel = types.model('PurposeBlockModel', {\r\n purpose: types.maybe(types.string),\r\n workTypes: types.array(types.integer)\r\n});\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const DepthAndWorkMethodBlockModel = types\r\n .model('DepthAndWorkMethodBlockModel', {\r\n workMethod: types.maybe(types.array(types.integer)),\r\n depth: types.maybe(types.number)\r\n })\r\n .actions(self => ({\r\n setValues(changedValues) {\r\n for (let key in changedValues) {\r\n const keyValue = changedValues[key];\r\n if (keyValue === '' || keyValue === null) {\r\n self[key] = undefined;\r\n } else if (key === 'depth') {\r\n if (!isNaN(keyValue) && keyValue !== null && keyValue.toString().slice(-1) !== '.') {\r\n self[key] = keyValue;\r\n }\r\n } else {\r\n self[key] = changedValues[key];\r\n }\r\n }\r\n }\r\n }));\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const CaseInfoModel = types\r\n .model('CaseInfoModel', {\r\n caseName: types.maybe(types.string),\r\n location: types.maybe(types.string),\r\n ledningskollenId: types.maybe(types.string)\r\n })\r\n .actions(self => ({\r\n setValues(changedValues) {\r\n for (let key in changedValues) {\r\n self[key] = changedValues[key];\r\n }\r\n }\r\n }));\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const DateTimeBlockModel = types\r\n .model('DateTimeBlockModel', {\r\n dateFrom: types.maybe(types.string),\r\n dateTo: types.maybe(types.string),\r\n startTime: types.maybeNull(types.string),\r\n endTime: types.maybeNull(types.string)\r\n })\r\n .actions(self => ({\r\n setValues(changedValues) {\r\n for (let key in changedValues) {\r\n self[key] = changedValues[key];\r\n }\r\n }\r\n }));\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const RowModel = types.model('RowModel', {\r\n identification: types.string,\r\n modificationDate: types.string\r\n});\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const SpatialReference = types.model('SpatialReference', {\r\n latestWkid: types.maybeNull(types.number),\r\n wkid: types.maybeNull(types.number)\r\n});\r\n","import { types } from 'mobx-state-tree';\r\nimport { SpatialReference } from './spatialReference';\r\n\r\nexport const PointGeometry = types.model('PointGeometry', {\r\n gid: types.maybeNull(types.string),\r\n spatialReference: SpatialReference,\r\n x: types.maybe(types.number),\r\n y: types.maybe(types.number)\r\n});\r\n","import { types } from 'mobx-state-tree';\r\nimport { SpatialReference } from './spatialReference';\r\n\r\nexport const PolylineGeometry = types.model('PolylineGeometry', {\r\n gid: types.maybeNull(types.string),\r\n spatialReference: SpatialReference,\r\n paths: types.array(types.array(types.array(types.number)))\r\n});\r\n","import { types } from 'mobx-state-tree';\r\nimport { SpatialReference } from './spatialReference';\r\n\r\nexport const PolygonGeometry = types.model('PolygonGeometry', {\r\n gid: types.maybeNull(types.string),\r\n spatialReference: SpatialReference,\r\n rings: types.array(types.array(types.array(types.number)))\r\n});\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const TAPlanGeometryAttributes = types.model('TAPlanGeometryAttributes', {\r\n gid: types.maybeNull(types.string),\r\n objectType: types.integer,\r\n comment: types.maybe(types.string),\r\n snapshotIndex: types.maybeNull(types.integer),\r\n regulationType: types.maybe(types.integer),\r\n rotation: 0\r\n});\r\n","import { types } from 'mobx-state-tree';\r\nimport { PointGeometry } from './point';\r\nimport { TAPlanGeometryAttributes } from './taGeometryAttributes';\r\n\r\nconst TAPoint = types\r\n .model('TAPoint', {\r\n point: types.maybe(PointGeometry)\r\n })\r\n .actions(self => ({\r\n update: graphic => {\r\n self.comment = graphic.attributes.comment;\r\n self.snapshotIndex = graphic.attributes.snapshotIndex;\r\n self.point = graphic.geometry.toJSON();\r\n }\r\n }));\r\n\r\nexport const TARegulationPoint = types.compose(TAPlanGeometryAttributes, TAPoint).named('TARegulationPoint');\r\n","import { types } from 'mobx-state-tree';\r\nimport { PolylineGeometry } from './polyline';\r\nimport { TAPlanGeometryAttributes } from './taGeometryAttributes';\r\n\r\nconst TAPolyline = types\r\n .model('TAPolyline', {\r\n polyline: types.maybe(PolylineGeometry)\r\n })\r\n .actions(self => ({\r\n update: graphic => {\r\n self.comment = graphic.attributes.comment;\r\n self.snapshotIndex = graphic.attributes.snapshotIndex;\r\n self.polyline = graphic.geometry.toJSON();\r\n }\r\n }));\r\n\r\nexport const TARegulationPolyline = types.compose(TAPlanGeometryAttributes, TAPolyline).named('TARegulationPolyline');\r\n","import { types } from 'mobx-state-tree';\r\nimport { PolygonGeometry } from './polygon';\r\nimport { TAPlanGeometryAttributes } from './taGeometryAttributes';\r\n\r\nconst TAPolygon = types\r\n .model('TAPolygon', {\r\n polygon: types.maybe(PolygonGeometry)\r\n })\r\n .actions(self => ({\r\n update: graphic => {\r\n self.comment = graphic.attributes.comment;\r\n self.snapshotIndex = graphic.attributes.snapshotIndex;\r\n self.polygon = graphic.geometry.toJSON();\r\n }\r\n }));\r\n\r\nexport const TARegulationPolygon = types.compose(TAPlanGeometryAttributes, TAPolygon).named('TARegulationPolygon');\r\n","import { createContext, useContext } from 'react';\r\nimport { notification as antdNotification } from 'antd';\r\nconst addError = async (error, title) => {\r\n const errorKeys = Object.getOwnPropertyNames(error);\r\n const formatted = errorKeys.reduce((acc, current, index) => (acc += `${errorKeys[index]}: ${error[current]}\\n`), '');\r\n const indexOfStackTrace = formatted ? formatted.indexOf(`stackTrace: `) : -1;\r\n const msg = indexOfStackTrace >= 0 ? formatted.substr(0, indexOfStackTrace) : formatted;\r\n antdNotification['error']({\r\n description: msg && msg.split('\\\\n').map(msgText =>

{msgText}

),\r\n message: title,\r\n duration: 10,\r\n style: {\r\n whiteSpace: 'pre-line'\r\n }\r\n });\r\n};\r\nconst ErrorHandlerContext = createContext({ addError });\r\n\r\nexport const ErrorHandlerProvider = ErrorHandlerContext.Provider;\r\n\r\nexport function useErrorHandler() {\r\n const errorContext = useContext(ErrorHandlerContext);\r\n if (errorContext === null) {\r\n throw new Error('ErrorHandlerContext cannot be null, please add the context provider for ErrorHandlerContext');\r\n }\r\n return errorContext;\r\n}\r\n","import {\r\n addDisposer,\r\n addMiddleware,\r\n createActionTrackingMiddleware2,\r\n getEnv,\r\n getRoot,\r\n getType,\r\n isActionContextThisOrChildOf,\r\n recordPatches,\r\n types,\r\n getParent,\r\n splitJsonPath,\r\n getSnapshot\r\n} from 'mobx-state-tree';\r\nimport equal from 'fast-deep-equal/react';\r\nimport set from 'set-value';\r\nimport get from 'get-value';\r\n\r\nconst getOriginal = (original, attributePath) => {\r\n const pathWithoutIndex = attributePath.slice(0, attributePath.length - 1).join('.');\r\n const index = attributePath.slice(attributePath.length - 1);\r\n let value = get(original, pathWithoutIndex);\r\n const arr = value.map(x => x);\r\n arr.splice(parseInt(index, 10), 1);\r\n value = arr;\r\n const newValue = set(original, pathWithoutIndex, value);\r\n return newValue;\r\n};\r\n\r\nconst resolveTypeAfterRemove = (targetType, contextType, call, patch, item, pathParts, prePatchContext) => {\r\n return prePatchContext;\r\n};\r\n\r\nconst areEqual = (original, comparer, modelType) => {\r\n const originalCopy = JSON.parse(JSON.stringify(original));\r\n const comparerCopy = JSON.parse(JSON.stringify(comparer));\r\n\r\n return equal(originalCopy, comparerCopy);\r\n};\r\n\r\nconst walkUntilType = (root, targetType, pathParts) => {\r\n let element = root;\r\n let leaf;\r\n let i = 0;\r\n while (!leaf) {\r\n element = element[pathParts[i]];\r\n let type = getType(element);\r\n if (type._subType) {\r\n type = type._subType;\r\n }\r\n if (type === targetType) {\r\n leaf = element;\r\n } else {\r\n i++;\r\n }\r\n }\r\n return { item: leaf, index: i };\r\n};\r\n\r\nconst ItemTrackerModel = types\r\n .model('ItemTrackerModel', {\r\n modelType: types.string,\r\n identifier: types.string,\r\n original: types.frozen(),\r\n hasChanges: types.boolean,\r\n isRemoved: types.boolean,\r\n isNew: types.boolean\r\n })\r\n .actions(self => ({\r\n updateHasChanges(value) {\r\n self.hasChanges = value;\r\n },\r\n updateIsRemoved(value) {\r\n self.isRemoved = value;\r\n },\r\n updateIsNew(value) {\r\n self.isNew = value;\r\n }\r\n }));\r\n\r\nconst DeltaTracker = types\r\n .model('DeltaTracker', {\r\n tracker: types.array(ItemTrackerModel)\r\n })\r\n .views(self => ({\r\n get hasChanges() {\r\n const itemsWithChanges = self.tracker.filter(\r\n t => t.hasChanges === true && t.isNew !== true && t.isRemoved !== true\r\n );\r\n const newItems = self.tracker.filter(t => t.isNew === true && t.isRemoved !== true);\r\n const removedItems = self.tracker.filter(t => t.isRemoved === true && t.isNew !== true);\r\n\r\n return itemsWithChanges.length > 0 || newItems.length > 0 || removedItems.length > 0;\r\n }\r\n }))\r\n .actions(self => {\r\n const isChildOfInitiateStore = call => {\r\n if (call.parentCall) {\r\n return isChildOfInitiateStore(call.parentCall);\r\n }\r\n if (call.name === 'initiateStore') {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n const deltaRecorderMiddleware = createActionTrackingMiddleware2({\r\n filter(call) {\r\n if (call.env) {\r\n // already recording\r\n return false;\r\n }\r\n if (call.context === self) {\r\n // skip actions on self\r\n return false;\r\n }\r\n if (call.name === 'initiateStore') {\r\n // skip if we are initializing the store\r\n return false;\r\n }\r\n if (call.name === 'updateVersion') {\r\n // skip if we are just updating the entity version\r\n return false;\r\n }\r\n if (isChildOfInitiateStore(call)) {\r\n // skip if action is child action from initializeStore\r\n return false;\r\n }\r\n if (getType(call.context).name === 'ItemTrackerModel' || getType(call.context).name === 'ItemTrackerModel[]') {\r\n // don't record the tracker items\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n onStart(call) {\r\n const recorder = recordPatches(call.tree, (_patch, _inversePatch, actionContext) => {\r\n return !!actionContext && isActionContextThisOrChildOf(actionContext, call.id);\r\n });\r\n recorder.resume();\r\n call.env = {\r\n recorder,\r\n prePatchContext: call.context.toJSON()\r\n };\r\n },\r\n onFinish(call, error) {\r\n const recorder = call.env.recorder;\r\n const prePatchContext = call.env.prePatchContext;\r\n call.env = undefined;\r\n recorder.stop();\r\n if (error === undefined) {\r\n self.trackState2(recorder, call, prePatchContext);\r\n } else {\r\n recorder.undo();\r\n }\r\n }\r\n });\r\n return {\r\n clearTrackedState() {\r\n self.tracker = [];\r\n },\r\n updateTrackedStateForTests(listOfChanges) {\r\n self.tracker = listOfChanges;\r\n },\r\n trackState2(recorder, call, prePatchContext) {\r\n if (recorder.patches.length === 0) {\r\n return;\r\n }\r\n\r\n recorder.patches.forEach(patch => {\r\n if (!patch.path.startsWith('/tracker')) {\r\n // eslint-disable-next-line default-case\r\n switch (patch.op) {\r\n case 'add':\r\n self.ItemAdded(patch, call, prePatchContext);\r\n break;\r\n case 'remove':\r\n self.ItemRemoved(patch, call, prePatchContext);\r\n break;\r\n case 'replace':\r\n self.ItemModified(call, prePatchContext);\r\n break;\r\n }\r\n }\r\n });\r\n },\r\n ItemAdded(patch) {\r\n const pathParts = splitJsonPath(patch.path);\r\n\r\n let modelType = getType(getRoot(self)[pathParts[0]]);\r\n if (modelType._subType) {\r\n modelType = modelType._subType;\r\n }\r\n\r\n if (pathParts.length > 2) {\r\n // it's a modification of a property on a model\r\n const { item, index } = walkUntilType(getRoot(self), modelType, pathParts);\r\n const identifier = item[modelType.identifierAttribute];\r\n let found;\r\n if (identifier) {\r\n found = self.tracker.find(t => t.identifier === identifier && t.modelType === modelType.name);\r\n } else {\r\n found = self.tracker.find(t => t.modelType === modelType.name);\r\n }\r\n\r\n if (found) {\r\n found.updateHasChanges(!areEqual(found.original, item.toJSON(), modelType.name));\r\n } else {\r\n const original = getOriginal(JSON.parse(JSON.stringify(getSnapshot(item))), pathParts.slice(index + 1));\r\n self.tracker.push({\r\n modelType: modelType.name,\r\n identifier: identifier || 'n/a',\r\n original: original,\r\n hasChanges: true,\r\n isRemoved: false,\r\n isNew: false\r\n });\r\n }\r\n } else {\r\n // adding a new model\r\n self.tracker.push({\r\n modelType: modelType.name,\r\n identifier: patch.value[modelType.identifierAttribute] || 'n/a',\r\n original: patch.value,\r\n hasChanges: false,\r\n isRemoved: false,\r\n isNew: true\r\n });\r\n }\r\n },\r\n ItemRemoved(patch, call, prePatchContext) {\r\n const pathParts = splitJsonPath(patch.path);\r\n\r\n let modelType = getType(getRoot(self)[pathParts[0]]);\r\n if (modelType._subType) {\r\n modelType = modelType._subType;\r\n }\r\n\r\n if (pathParts.length > 2) {\r\n // it's a modification of a property on a model\r\n const { item, index } = walkUntilType(getRoot(self), modelType, pathParts);\r\n const identifier = item[modelType.identifierAttribute];\r\n let foundByIdentifier;\r\n if (identifier) {\r\n foundByIdentifier = self.tracker.find(t => t.identifier === identifier && t.modelType === modelType.name);\r\n } else {\r\n foundByIdentifier = self.tracker.find(t => t.modelType === modelType.name);\r\n }\r\n if (foundByIdentifier) {\r\n foundByIdentifier.updateHasChanges(!areEqual(foundByIdentifier.original, item.toJSON(), modelType.name));\r\n } else {\r\n //const original = getOriginal(Object.assign({}, item.toJSON()), pathParts.slice(index + 1));\r\n const contextType = getType(call.context);\r\n const original =\r\n contextType.name === modelType.name\r\n ? prePatchContext\r\n : resolveTypeAfterRemove(\r\n modelType,\r\n contextType,\r\n call,\r\n patch,\r\n Object.assign({}, item.toJSON()),\r\n pathParts.slice(index + 1),\r\n prePatchContext\r\n );\r\n self.tracker.push({\r\n modelType: modelType.name,\r\n identifier: identifier || 'n/a',\r\n original: original,\r\n hasChanges: true,\r\n isRemoved: false,\r\n isNew: false\r\n });\r\n }\r\n } else {\r\n // removal of model\r\n const modelType = getType(call.context);\r\n const context = call.context.toJSON();\r\n const contextIdentifier = context[modelType.identifierAttribute];\r\n let foundByContextIdentifier;\r\n if (contextIdentifier) {\r\n foundByContextIdentifier = self.tracker.find(\r\n t => t.identifier === contextIdentifier && t.modelType === modelType.name\r\n );\r\n } else {\r\n foundByContextIdentifier = self.tracker.find(t => t.modelType === modelType.name);\r\n }\r\n if (foundByContextIdentifier) {\r\n foundByContextIdentifier.updateIsRemoved(true);\r\n } else {\r\n self.tracker.push({\r\n modelType: modelType.name,\r\n identifier: context[modelType.identifierAttribute] || 'n/a',\r\n original: prePatchContext,\r\n hasChanges: false,\r\n isRemoved: true,\r\n isNew: false\r\n });\r\n }\r\n }\r\n },\r\n ItemModified(call, prePatchContext) {\r\n const modelType = getType(call.context);\r\n const identifier = call.context[modelType.identifierAttribute];\r\n let found;\r\n if (identifier) {\r\n found = self.tracker.find(t => t.identifier === identifier && t.modelType === modelType.name);\r\n } else {\r\n found = self.tracker.find(t => t.modelType === modelType.name);\r\n }\r\n if (found) {\r\n found.updateHasChanges(!areEqual(found.original, call.context.toJSON(), modelType.name));\r\n } else {\r\n self.tracker.push({\r\n modelType: modelType.name,\r\n identifier: identifier || 'n/a',\r\n original: prePatchContext,\r\n hasChanges: true,\r\n isRemoved: false,\r\n isNew: false\r\n });\r\n }\r\n },\r\n afterCreate() {\r\n const parent = getParent(self);\r\n const selfRoot = getRoot(self);\r\n const targetStore = parent || getEnv(self).targetStore || selfRoot;\r\n if (targetStore === self) {\r\n throw new Error(\r\n \"DeltaTracker should be created as part of a tree, or with `targetStore` in it's environment\"\r\n );\r\n }\r\n addDisposer(self, addMiddleware(targetStore, deltaRecorderMiddleware, false));\r\n }\r\n };\r\n });\r\n\r\nexport default DeltaTracker;\r\n","import { types } from 'mobx-state-tree';\r\nimport DeltaTracker from './middleware/deltaTracker';\r\n\r\nexport const TrackableModel = types\r\n .model('TrackableModel', {\r\n tracker: types.optional(DeltaTracker, {})\r\n })\r\n .views(self => ({\r\n get hasChanges() {\r\n return self.tracker.hasChanges;\r\n }\r\n }));\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const CaseReferenceModel = types.model('CaseReferenceModel', {\r\n referenceApplicationGID: types.maybe(types.string),\r\n applicationGID: types.maybe(types.string),\r\n caseNumber: types.maybe(types.string),\r\n childEntityType: types.maybe(types.integer),\r\n parentEntityType: types.maybe(types.integer),\r\n owner: types.maybe(types.string),\r\n purpose: types.maybe(types.string),\r\n isOwner: types.maybe(types.boolean)\r\n});\r\n","import { types } from 'mobx-state-tree';\r\nimport { CaseStatus, CaseType, Panel, Step } from 'utils/enumerations';\r\nimport { TrackableModel } from '../trackableModel';\r\nimport { AttachmentModel } from './attachmentModel';\r\nimport { ApplicantBlockModel, BillingInformationBlockModel, DateTimeBlockModel, PurposeBlockModel } from './blocks';\r\nimport { CaseReferenceModel } from './caseReferenceModel';\r\nimport { PointGeometry, PolygonGeometry, PolylineGeometry } from './geometry';\r\n\r\nconst ApplicationModel = types\r\n .model('ApplicationModel', {\r\n gid: types.identifier,\r\n caseNumber: types.maybe(types.string),\r\n caseType: types.maybe(types.integer),\r\n applicant: types.optional(ApplicantBlockModel, {}),\r\n purpose: types.optional(PurposeBlockModel, {}),\r\n billingInformation: types.optional(BillingInformationBlockModel, {}),\r\n dateTimeInformation: types.optional(DateTimeBlockModel, {}),\r\n internalDiaryNumber: types.maybe(types.string),\r\n status: types.maybe(types.integer),\r\n statusMotivation: types.maybe(types.string),\r\n handlingOfficer: types.maybe(types.integer),\r\n handlingOfficerName: types.maybe(types.string),\r\n location: types.maybe(types.string),\r\n geometrySnapshot: types.maybe(types.string),\r\n approvedDate: types.maybe(types.string),\r\n registrationDate: types.maybe(types.string),\r\n modificationDate: types.maybe(types.string),\r\n additionalInformation: types.maybe(types.string),\r\n version: types.maybe(types.number),\r\n points: types.array(PointGeometry),\r\n polylines: types.array(PolylineGeometry),\r\n polygons: types.array(PolygonGeometry),\r\n attachments: types.array(AttachmentModel),\r\n childCases: types.array(CaseReferenceModel),\r\n parentCases: types.array(CaseReferenceModel),\r\n termsAndConditions: types.maybe(types.boolean),\r\n touchedPanelIndex: 0,\r\n touchedStep: 0\r\n })\r\n .volatile(() => ({\r\n mapState: {},\r\n geometriesHasChanged: false,\r\n currentStep: Step.Basic,\r\n currentPanel: Panel.Case,\r\n activeKey: undefined,\r\n form: undefined,\r\n showNewRegisterModal: false,\r\n isScreenshotEnabled: false,\r\n invalidGeometryType: undefined,\r\n continueToAfterScreenshot: -1,\r\n attachmentRemoved: false,\r\n showView: 'form',\r\n sketchVM: null\r\n }))\r\n .actions(self => ({\r\n setValues(changedValues) {\r\n for (let key in changedValues) {\r\n if (typeof self[key] === 'object') {\r\n if (self[key].setValues) {\r\n self[key].setValues(changedValues[key]);\r\n } else if (Array.isArray(self[key])) {\r\n self[key] = changedValues[key];\r\n } else {\r\n self[key] = { ...self[key], ...changedValues[key] };\r\n }\r\n } else {\r\n self[key] = changedValues[key];\r\n }\r\n }\r\n },\r\n addAttachment: newAttachment => {\r\n if (self.attachments.findIndex(attachment => attachment.gid === newAttachment.gid) === -1) {\r\n self.attachments.push(newAttachment);\r\n }\r\n },\r\n removeAttachment: fileGid => {\r\n const index = self.attachments.findIndex(attachment => attachment.gid === fileGid);\r\n if (index !== -1) {\r\n self.attachments.splice(index, 1);\r\n self.attachmentRemoved = true;\r\n }\r\n },\r\n setAttachmentRemoved: value => {\r\n self.attachmentRemoved = value;\r\n },\r\n setActiveKey: key => {\r\n const keyWithoutHash = key?.indexOf('#') > 0 ? key?.substr(0, key.indexOf('#')) : key;\r\n if (self.getPanelByKey) {\r\n const itemKeyPanel = self.getPanelByKey(keyWithoutHash);\r\n if (itemKeyPanel && itemKeyPanel !== self.currentPanel) {\r\n self.currentPanel = itemKeyPanel;\r\n }\r\n }\r\n self.activeKey = keyWithoutHash;\r\n },\r\n setStatus: status => {\r\n self.status = status;\r\n },\r\n nextPanel: key => {\r\n self.setPanel(key);\r\n },\r\n setPanel: key => {\r\n self.currentPanel = key;\r\n if (self.setTouchedPanelIndex) {\r\n self.setTouchedPanelIndex(key);\r\n }\r\n },\r\n //setStep is used by goToStep after validation.\r\n setStep: (step, setFirstPanel) => {\r\n self.currentStep = step;\r\n if (setFirstPanel) {\r\n switch (self.caseType) {\r\n case CaseType.DiggingPermit:\r\n switch (step) {\r\n case Step.Basic:\r\n self.setPanel(Panel.Case);\r\n break;\r\n case Step.Map:\r\n self.setPanel(Panel.Extent);\r\n break;\r\n case Step.Errand:\r\n self.setPanel(Panel.Purpose);\r\n break;\r\n case Step.Finish:\r\n self.setPanel(Panel.AdditionalInformation);\r\n break;\r\n default:\r\n break;\r\n }\r\n break;\r\n case CaseType.TrafficArrangementPlan:\r\n if (!self.locationSpecific) {\r\n switch (step) {\r\n case 0:\r\n self.setPanel(Panel.CreateTAPlan);\r\n break;\r\n case 1:\r\n self.setPanel(Panel.MarkingManager);\r\n break;\r\n case 2:\r\n self.setPanel(Panel.AdditionalInformation);\r\n break;\r\n default:\r\n break;\r\n }\r\n } else {\r\n switch (step) {\r\n case Step.Basic:\r\n self.setPanel(Panel.CreateTAPlan);\r\n break;\r\n case Step.Map:\r\n self.setPanel(Panel.Extent);\r\n break;\r\n case Step.Managers:\r\n self.setPanel(Panel.MarkingManager);\r\n break;\r\n case Step.Finish:\r\n self.setPanel(Panel.AdditionalInformation);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n break;\r\n case CaseType.Leasehold:\r\n switch (step) {\r\n case Step.Basic:\r\n self.setPanel(Panel.CreateLeasehold);\r\n break;\r\n case Step.Map:\r\n self.setPanel(Panel.Extent);\r\n break;\r\n case Step.Finish:\r\n self.setPanel(Panel.AdditionalInformation);\r\n break;\r\n default:\r\n break;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n },\r\n isStepEnabled: step => {\r\n return self.status >= CaseStatus.Registered || step <= self.currentStep + 1 || step <= self.touchedStep;\r\n },\r\n goToStep: (step, setFirstPanel = true) => {\r\n const skipValidation =\r\n step < self.currentStep ||\r\n (self.currentStep !== Step.Map &&\r\n (self.status > CaseStatus.Registered || window.skipValidation || self.currentStep >= step));\r\n\r\n if (self.form && !skipValidation) {\r\n self.form\r\n .validateFields()\r\n .then(() => {\r\n if (step > self.currentStep + 1 && step > self.touchedStep) {\r\n return;\r\n }\r\n if (self.currentStep === Step.Map && (self.locationSpecific || self.caseType !== 3)) {\r\n if (self.geometriesHasChanged || !self.geometrySnapshot) {\r\n if (self.points.length || self.polygons.length || self.polylines.length) {\r\n self.setScreenshotEnabled(true);\r\n self.setContinueToAfterScreenshot(step);\r\n } else {\r\n self.setScreenshotEnabled(false);\r\n }\r\n } else if (!self.invalidGeometryType) {\r\n self.setStep(step, setFirstPanel);\r\n }\r\n } else {\r\n self.setStep(step, setFirstPanel);\r\n }\r\n })\r\n .catch(errorInfo => {\r\n if (errorInfo.errorFields) {\r\n const fieldName = errorInfo.errorFields[0].name;\r\n const fieldKey =\r\n Array.isArray(fieldName) && fieldName.length ? fieldName[fieldName.length - 1] : fieldName;\r\n self.setActiveKey(null); //Clear the old activeKey so the useEffect can properly open the block.\r\n self.setActiveKey(fieldKey);\r\n } else {\r\n console.log(errorInfo);\r\n }\r\n });\r\n } else {\r\n self.setStep(step, setFirstPanel);\r\n }\r\n },\r\n setForm: form => {\r\n self.form = form;\r\n },\r\n setMapState: currentState => {\r\n self.mapState = currentState;\r\n },\r\n setGeometriesHasChanged: geometriesHasChanged => {\r\n self.geometriesHasChanged = geometriesHasChanged;\r\n },\r\n setShowNewRegisterModal: value => {\r\n self.showNewRegisterModal = value;\r\n },\r\n setTouchedStep: step => {\r\n if (self.touchedStep < step) {\r\n self.touchedStep = step;\r\n }\r\n },\r\n setScreenshotEnabled: isEnabled => {\r\n self.isScreenshotEnabled = isEnabled;\r\n },\r\n setContinueToAfterScreenshot: (step = -1) => {\r\n self.continueToAfterScreenshot = step;\r\n },\r\n setInvalidGeometryType: value => {\r\n self.invalidGeometryType = value;\r\n },\r\n setChildCaseReference: caseReference => {\r\n self.childCases.push(caseReference);\r\n },\r\n setParentCaseReference: caseReference => {\r\n self.parentCases.push(caseReference);\r\n },\r\n removeParentCaseReference: () => {\r\n self.parentCases = [];\r\n },\r\n removeChildCaseReference: gid => {\r\n self.childCases = self.childCases.filter(child => child.referenceApplicationGID !== gid);\r\n },\r\n addGeometry: (geometryType, geometry) => {\r\n if (geometryType && geometry) {\r\n self.geometriesHasChanged = true;\r\n geometry = { ...geometry.toJSON() };\r\n switch (geometryType) {\r\n case 'point':\r\n self.points.push(geometry);\r\n break;\r\n case 'polyline':\r\n self.polylines.push(geometry);\r\n break;\r\n case 'polygon':\r\n self.polygons.push(geometry);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n },\r\n deleteAllGeometries: () => {\r\n self.points = [];\r\n self.polygons = [];\r\n self.polylines = [];\r\n self.geometriesHasChanged = true;\r\n },\r\n deleteGeometrySnapshot: () => {\r\n self.geometrySnapshot = undefined;\r\n },\r\n removeGeometry: (geometryType, gid) => {\r\n let removeSuccessful = false;\r\n switch (geometryType) {\r\n case 'point':\r\n const pointIndex = self.points.findIndex(geo => geo.gid === gid);\r\n if (pointIndex !== -1) {\r\n self.points.splice(pointIndex, 1);\r\n removeSuccessful = true;\r\n }\r\n break;\r\n case 'polyline':\r\n const polylineIndex = self.polylines.findIndex(geo => geo.gid === gid);\r\n if (polylineIndex !== -1) {\r\n self.polylines.splice(polylineIndex, 1);\r\n removeSuccessful = true;\r\n }\r\n break;\r\n case 'polygon':\r\n const polygonIndex = self.polygons.findIndex(geo => geo.gid === gid);\r\n if (polygonIndex !== -1) {\r\n self.polygons.splice(polygonIndex, 1);\r\n removeSuccessful = true;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n if (removeSuccessful) {\r\n self.geometriesHasChanged = true;\r\n }\r\n return removeSuccessful;\r\n },\r\n switchView: () => {\r\n if (self.showView === 'form') {\r\n self.showView = 'preview';\r\n } else {\r\n self.showView = 'form';\r\n }\r\n },\r\n setSketchVM: sketchVM => {\r\n self.sketchVM = sketchVM;\r\n }\r\n }));\r\n\r\nexport const ApplicationBaseModel = types.compose(ApplicationModel, TrackableModel).named('ApplicationBaseModel');\r\n","import { createContext, useContext } from 'react';\r\nconst CaseApplicationContext = createContext(null);\r\n\r\nexport const CaseApplicationProvider = CaseApplicationContext.Provider;\r\n\r\nexport function useCaseApplication() {\r\n const caseAppContext = useContext(CaseApplicationContext);\r\n if (caseAppContext === null) {\r\n throw new Error('DiggingPermitApp cannot be null, please add the context provider for DiggingPermitApp');\r\n }\r\n return caseAppContext;\r\n}\r\n","import { createContext, useContext } from 'react';\r\n\r\nexport const PanelContext = createContext();\r\n\r\nexport const PanelProvider = PanelContext.Provider;\r\n\r\nexport function usePanel() {\r\n const panel = useContext(PanelContext);\r\n if (panel === null) {\r\n throw new Error('panel cannot be null, please add the context provider for Panel');\r\n }\r\n return panel;\r\n}\r\n","import { Col, Row } from 'antd';\r\nimport {\r\n ApplicantPreviewBlock,\r\n BillingPreviewBlock,\r\n CaseInfoPreviewBlock,\r\n ComplementingFactsPreviewBlock,\r\n DateAndTimePreviewBlock,\r\n EntrepreneurPreviewBlock,\r\n InspectionPreviewBlock,\r\n InvoicePreviewBlock,\r\n MotivationPreviewBlock,\r\n PaddingBlock,\r\n PreviewBlock,\r\n PurposePreviewBlock,\r\n RecoveryPreviewBlock\r\n} from 'lib/Antd/Preview';\r\nimport { types } from 'mobx-state-tree';\r\nimport styled from 'styled-components';\r\nimport { CaseStatus, Panel, Step } from 'utils/enumerations';\r\nimport {\r\n diggingPermitPanelOrderList,\r\n diggingPermitStepPanels,\r\n dpPanelWithKeys,\r\n panelHasAnyValue\r\n} from 'utils/panelUtils';\r\nimport { ApplicationBaseModel } from './applicationBaseModel';\r\nimport { CaseInfoModel, DepthAndWorkMethodBlockModel, EntrepreneurBlockModel } from './blocks';\r\n\r\nconst CompletePage = styled.div`\r\n height: 22.3cm;\r\n`;\r\n//22.3 actual paper height excluding the paper margin and the header margin\r\n\r\nconst DiggingPermitSpecificModel = types\r\n .model('DiggingPermitSpecificModel', {\r\n caseInfo: types.optional(CaseInfoModel, {}),\r\n entrepreneur: types.optional(EntrepreneurBlockModel, {}),\r\n executedIns: types.maybe(types.array(types.integer)),\r\n workMethodAndDepth: types.optional(DepthAndWorkMethodBlockModel, {}),\r\n locationDescription: types.maybe(types.string),\r\n approvalStatement: types.maybe(types.string),\r\n prolongedTo: types.maybe(types.string),\r\n newEndTime: types.maybe(types.string),\r\n prolongedStatus: types.maybe(types.integer),\r\n prolongedApprovedDate: types.maybe(types.string),\r\n workDone: types.maybe(types.string),\r\n inspectionDate: types.maybe(types.string),\r\n recoveryInspectionDate: types.maybe(types.string),\r\n recoveryInspectionNeeded: types.maybe(types.boolean),\r\n sendRecoveryInvoice: types.maybe(types.boolean),\r\n recoveryInvoiceDate: types.maybe(types.string),\r\n statusMotivation: types.maybe(types.string)\r\n })\r\n .views(self => ({\r\n get name() {\r\n return self.caseInfo.caseName ? self.caseInfo.caseName : self.purpose.purpose;\r\n }\r\n }));\r\n\r\nexport const DiggingPermitModel = types\r\n .compose(ApplicationBaseModel, DiggingPermitSpecificModel)\r\n .named('DiggingPermitModel')\r\n .views(self => ({\r\n getPreview(t, domains) {\r\n return (\r\n <>\r\n {self.status >= CaseStatus.Processed && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {self.isPanelTouchedOrHasValue(Panel.Questioneer) && (\r\n \r\n )}\r\n {self.isPanelTouchedOrHasValue(Panel.InvoiceAddress) && (\r\n \r\n )}\r\n {self.isPanelTouchedOrHasValue(Panel.EntrepreneurAndSupervisor) && (\r\n \r\n )}\r\n {self.isPanelTouchedOrHasValue(Panel.DateAndTimePeriod) && (\r\n \r\n )}\r\n {self.isPanelTouchedOrHasValue(Panel.Purpose) && (\r\n \r\n )}\r\n {self.childCases.length > 0 || self.isPanelTouchedOrHasValue(Panel.AdditionalInformation) ? (\r\n \r\n ) : null}\r\n {self.geometrySnapshot && (\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 getPanelByKey: itemKey => {\r\n return dpPanelWithKeys.find(panel => panel.keys.find(panelKey => panelKey === itemKey))?.panelName;\r\n }\r\n }))\r\n .actions(self => ({\r\n setProlong: (prolongedTo, newEndDate, prolongedStatus) => {\r\n self.prolongedTo = prolongedTo;\r\n self.newEndTime = newEndDate;\r\n self.prolongedStatus = prolongedStatus;\r\n },\r\n isPanelTouchedOrHasValue: panel => {\r\n if (self.status >= CaseStatus.Registered) {\r\n self.setTouchedPanelIndex(panel);\r\n return true;\r\n }\r\n const currentPanelIndex = diggingPermitPanelOrderList.findIndex(touchedPanel => touchedPanel === panel);\r\n if (currentPanelIndex <= self.touchedPanelIndex) {\r\n return true;\r\n } else if (panelHasAnyValue(self.toJSON(), panel, dpPanelWithKeys)) {\r\n self.setTouchedPanelIndex(panel);\r\n return true;\r\n }\r\n return false;\r\n },\r\n setTouchedPanelIndex: panel => {\r\n const currentPanelIndex = diggingPermitPanelOrderList.findIndex(touchedPanel => touchedPanel === panel);\r\n if (self.touchedPanelIndex < currentPanelIndex) {\r\n self.touchedPanelIndex = currentPanelIndex;\r\n const step = diggingPermitStepPanels.find(steps => steps.panels.find(panelName => panel === panelName))?.step;\r\n self.setTouchedStep(step);\r\n }\r\n }\r\n }));\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const CaseInfoTaPlanBlockModel = types\r\n .model('CaseInfoTaPlanBlockModel', {\r\n caseName: types.maybe(types.string),\r\n location: types.maybe(types.string)\r\n })\r\n .actions(self => ({\r\n setValues(changedValues) {\r\n for (let key in changedValues) {\r\n self[key] = changedValues[key];\r\n }\r\n }\r\n }));\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const ManagerBlockModel = types\r\n .model('ManagerBlockModel', {\r\n markingManager: types.maybe(types.string),\r\n markingManagerMobilePhoneNumber: types.maybe(types.string),\r\n inspectionManager: types.maybe(types.string),\r\n inspectionManagerMobilePhoneNumber: types.maybe(types.string)\r\n })\r\n .volatile(() => ({\r\n useSameMarkingManagerAsApplicant: false,\r\n useSameInspectionManangerAsMarkingManager: false\r\n }))\r\n .actions(self => ({\r\n setValues(changedValues) {\r\n for (let key in changedValues) {\r\n self[key] = changedValues[key];\r\n }\r\n }\r\n }));\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const RoadSignRegulationModel = types.model('RoadSignRegulationModel', {\r\n code: types.maybe(types.integer),\r\n comment: types.maybe(types.string)\r\n});\r\n","import { Col, Row } from 'antd';\r\nimport {\r\n ApplicantPreviewBlock,\r\n BillingPreviewBlock,\r\n ComplementingFactsPreviewBlock,\r\n DateAndTimePreviewBlock,\r\n ManagersPreviewBlock,\r\n MapLegendBlock,\r\n MotivationPreviewBlock,\r\n PaddingBlock,\r\n PreviewBlock,\r\n TaPlanInfoPreviewBlock,\r\n WorkTypePreviewBlock\r\n} from 'lib/Antd/Preview';\r\nimport { types } from 'mobx-state-tree';\r\nimport styled from 'styled-components';\r\nimport { CaseStatus, Panel, Step } from 'utils/enumerations';\r\nimport { panelHasAnyValue, taPlanPanelOrderList, taPlanStepPanels, tapPanelWithKeys } from 'utils/panelUtils';\r\nimport { ApplicationBaseModel } from './applicationBaseModel';\r\nimport { CaseInfoTaPlanBlockModel } from './blocks/caseinfoTaPlanBlockModel';\r\nimport { ManagerBlockModel } from './blocks/managerBlockModel';\r\nimport { TARegulationPoint, TARegulationPolygon, TARegulationPolyline } from './geometry';\r\nimport { RoadSignRegulationModel } from './roadSignRegulationModel';\r\n\r\nconst CompletePage = styled.div`\r\n height: 22.3cm;\r\n`;\r\n\r\nconst TAPlanSpecificModel = types\r\n .model('TAPlanSpecificModel', {\r\n projectNumber: types.maybe(types.string),\r\n caseInfo: types.optional(CaseInfoTaPlanBlockModel, {}),\r\n workType: types.maybe(types.string),\r\n prolongedTo: types.maybe(types.string),\r\n locationDescription: types.maybe(types.string),\r\n roadSignRegulations: types.array(RoadSignRegulationModel),\r\n newEndTime: types.maybe(types.string),\r\n managers: types.optional(ManagerBlockModel, {}),\r\n approvalStatement: types.maybe(types.string),\r\n streetClosed: types.maybe(types.boolean),\r\n regulationsNeeded: types.maybe(types.boolean),\r\n locationSpecific: true,\r\n regulationSnapShot: types.maybe(types.string),\r\n regulationPoints: types.array(TARegulationPoint),\r\n regulationPolylines: types.array(TARegulationPolyline),\r\n regulationPolygons: types.array(TARegulationPolygon),\r\n prolongedStatus: types.maybe(types.integer),\r\n prolongedApprovedDate: types.maybe(types.string)\r\n })\r\n .views(self => ({\r\n get name() {\r\n return self.caseInfo.caseName ? self.caseInfo.caseName : self.workType;\r\n }\r\n }));\r\n\r\nexport const TAPlanModel = types\r\n .compose(ApplicationBaseModel, TAPlanSpecificModel)\r\n .named('TAPlanModel')\r\n .views(self => ({\r\n getPreview(t) {\r\n return (\r\n <>\r\n {self.status >= CaseStatus.Processed && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {self.isPanelTouchedOrHasValue(Panel.Questioneer) && (\r\n \r\n )}\r\n {self.isPanelTouchedOrHasValue(Panel.InvoiceAddress) && (\r\n \r\n )}\r\n {self.isPanelTouchedOrHasValue(Panel.WorkType) && (\r\n \r\n )}\r\n {self.isPanelTouchedOrHasValue(Panel.DateAndTimePeriod) && (\r\n \r\n )}\r\n {self.isPanelTouchedOrHasValue(Panel.MarkingManager) && (\r\n \r\n )}\r\n {self.childCases.length ||\r\n self.parentCases.length ||\r\n self.isPanelTouchedOrHasValue(Panel.AdditionalInformation) ? (\r\n \r\n ) : null}\r\n {self.geometrySnapshot && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!self.regulationSnapShot && (\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n {self.regulationSnapShot && (\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 getPanelByKey: itemKey => {\r\n return tapPanelWithKeys.find(panel => panel.keys.find(panelKey => panelKey === itemKey))?.panelName;\r\n }\r\n }))\r\n .actions(self => ({\r\n setProlong: (prolongedTo, newEndDate, prolongedStatus) => {\r\n self.prolongedTo = prolongedTo;\r\n self.newEndTime = newEndDate;\r\n self.prolongedStatus = prolongedStatus;\r\n },\r\n isPanelTouchedOrHasValue: panel => {\r\n if (self.status >= CaseStatus.Registered) {\r\n self.setTouchedPanelIndex(panel);\r\n return true;\r\n }\r\n const currentPanelIndex = taPlanPanelOrderList.findIndex(touchedPanel => touchedPanel === panel);\r\n if (currentPanelIndex <= self.touchedPanelIndex) {\r\n return true;\r\n } else if (panelHasAnyValue(self.toJSON(), panel, tapPanelWithKeys)) {\r\n self.setTouchedPanelIndex(panel);\r\n return true;\r\n }\r\n return false;\r\n },\r\n addTAGeometry: (geometryType, graphic) => {\r\n if (geometryType && graphic) {\r\n self.geometriesHasChanged = true;\r\n const graphicToAdd = {\r\n ...graphic.attributes,\r\n objectType: parseInt(graphic.attributes.objectType)\r\n };\r\n switch (geometryType) {\r\n case 'point':\r\n graphicToAdd.point = graphic.geometry.toJSON();\r\n self.regulationPoints.push(graphicToAdd);\r\n break;\r\n case 'polyline':\r\n graphicToAdd.polyline = graphic.geometry.toJSON();\r\n self.regulationPolylines.push(graphicToAdd);\r\n break;\r\n case 'polygon':\r\n graphicToAdd.polygon = graphic.geometry.toJSON();\r\n self.regulationPolygons.push(graphicToAdd);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n },\r\n updateTaGeometry: (geometryType, graphic) => {\r\n switch (geometryType) {\r\n case 'point':\r\n const point = self.regulationPoints.find(geo => geo.gid === graphic.attributes.gid);\r\n if (point) {\r\n point.update(graphic);\r\n }\r\n break;\r\n case 'polyline':\r\n const polyline = self.regulationPolylines.find(geo => geo.gid === graphic.attributes.gid);\r\n if (polyline) {\r\n polyline.update(graphic);\r\n }\r\n break;\r\n case 'polygon':\r\n const polygon = self.regulationPolygons.find(geo => geo.gid === graphic.attributes.gid);\r\n if (polygon) {\r\n polygon.update(graphic);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n self.geometriesHasChanged = true;\r\n },\r\n setGeometryHasChanged: value => {\r\n self.geometriesHasChanged = value;\r\n },\r\n deleteAllTAGeometries: () => {\r\n self.regulationPoints = [];\r\n self.regulationPolylines = [];\r\n self.regulationPolygons = [];\r\n self.geometriesHasChanged = true;\r\n },\r\n deleteRegulationSnapshot: () => {\r\n self.regulationSnapShot = undefined;\r\n },\r\n removeTAGeometry: (geometryType, gid) => {\r\n let removeSuccessful = false;\r\n switch (geometryType) {\r\n case 'point':\r\n const pointIndex = self.regulationPoints.findIndex(geo => geo.gid === gid);\r\n if (pointIndex !== -1) {\r\n self.regulationPoints.splice(pointIndex, 1);\r\n removeSuccessful = true;\r\n }\r\n break;\r\n case 'polyline':\r\n const polylineIndex = self.regulationPolylines.findIndex(geo => geo.gid === gid);\r\n if (polylineIndex !== -1) {\r\n self.regulationPolylines.splice(polylineIndex, 1);\r\n removeSuccessful = true;\r\n }\r\n break;\r\n case 'polygon':\r\n const polygonIndex = self.regulationPolygons.findIndex(geo => geo.gid === gid);\r\n if (polygonIndex !== -1) {\r\n self.regulationPolygons.splice(polygonIndex, 1);\r\n removeSuccessful = true;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n if (removeSuccessful) {\r\n self.geometriesHasChanged = true;\r\n }\r\n return removeSuccessful;\r\n },\r\n setTouchedPanelIndex: panel => {\r\n const currentPanelIndex = taPlanPanelOrderList.findIndex(touchedPanel => touchedPanel === panel);\r\n if (self.touchedPanelIndex < currentPanelIndex) {\r\n self.touchedPanelIndex = currentPanelIndex;\r\n const step = taPlanStepPanels.find(steps => steps.panels.find(panelName => panel === panelName))?.step;\r\n self.setTouchedStep(step);\r\n }\r\n },\r\n setSwitchValues(changedValues) {\r\n for (let key in changedValues) {\r\n self[key] = changedValues[key];\r\n }\r\n }\r\n }));\r\n","import { Col, Row } from 'antd';\r\nimport {\r\n ApplicantPreviewBlock,\r\n BillingPreviewBlock,\r\n ComplementingFactsPreviewBlock,\r\n DateAndTimePreviewBlock,\r\n LeaseholdInfoPreviewBlock,\r\n LeaseholdTypePreviewBlock,\r\n MotivationPreviewBlock,\r\n PaddingBlock,\r\n PreviewBlock\r\n} from 'lib/Antd/Preview';\r\nimport { types } from 'mobx-state-tree';\r\nimport styled from 'styled-components';\r\nimport { CaseStatus, Panel, Step } from 'utils/enumerations';\r\nimport { leaseholdPanelOrderList, leaseholdStepPanels, lhPanelWithKeys, panelHasAnyValue } from 'utils/panelUtils';\r\nimport { ApplicationBaseModel } from './applicationBaseModel';\r\n\r\nconst CompletePage = styled.div`\r\n height: 22.3cm;\r\n`;\r\n//22.3 actual paper height excluding the paper margin and the header margin\r\n\r\nconst LeaseholdSpecificModel = types\r\n .model('LeaseholdSpecificModel', {\r\n purpose: types.maybe(types.string),\r\n type: types.maybe(types.string),\r\n originRegistrationDate: types.maybe(types.string),\r\n decisionDate: types.maybe(types.string),\r\n leaseholdType: types.maybe(types.integer),\r\n createdInternally: types.maybe(types.boolean),\r\n initialStatus: types.maybe(types.integer),\r\n locationDescription: types.maybe(types.string),\r\n location: types.maybe(types.string),\r\n policeCaseNumber: types.maybe(types.string),\r\n internallyCreatedBy: types.maybe(types.string),\r\n statement: types.maybe(types.string),\r\n applicationAdditionalInfo: types.maybe(types.string)\r\n })\r\n .views(self => ({\r\n get name() {\r\n return self.purpose;\r\n }\r\n }));\r\n\r\nexport const LeaseholdModel = types\r\n .compose(ApplicationBaseModel, LeaseholdSpecificModel)\r\n .named('LeaseholdModel')\r\n .views(self => ({\r\n getPreview(t) {\r\n return (\r\n <>\r\n {self.status >= CaseStatus.Processed && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {self.isPanelTouchedOrHasValue(Panel.LeaseholdTypes) && (\r\n \r\n )}\r\n {self.isPanelTouchedOrHasValue(Panel.Questioneer) && (\r\n \r\n )}\r\n {self.isPanelTouchedOrHasValue(Panel.InvoiceAddress) && (\r\n \r\n )}\r\n {self.isPanelTouchedOrHasValue(Panel.DateAndTimePeriod) && (\r\n \r\n )}\r\n {self.childCases.length > 0 ||\r\n self.parentCases.length ||\r\n self.isPanelTouchedOrHasValue(Panel.AdditionalInformation) ? (\r\n \r\n ) : null}\r\n {self.geometrySnapshot && (\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 getPanelByKey: itemKey => {\r\n return lhPanelWithKeys.find(panel => panel.keys.find(panelKey => panelKey === itemKey))?.panelName;\r\n }\r\n }))\r\n .actions(self => ({\r\n isPanelTouchedOrHasValue: panel => {\r\n if (self.status >= CaseStatus.Registered) {\r\n self.setTouchedPanelIndex(panel);\r\n return true;\r\n }\r\n const currentPanelIndex = leaseholdPanelOrderList.findIndex(touchedPanel => touchedPanel === panel);\r\n if (currentPanelIndex <= self.touchedPanelIndex) {\r\n return true;\r\n } else if (panelHasAnyValue(self.toJSON(), panel, lhPanelWithKeys)) {\r\n self.setTouchedPanelIndex(panel);\r\n return true;\r\n }\r\n return false;\r\n },\r\n setTouchedPanelIndex: panel => {\r\n const currentPanelIndex = leaseholdPanelOrderList.findIndex(touchedPanel => touchedPanel === panel);\r\n if (self.touchedPanelIndex < currentPanelIndex) {\r\n self.touchedPanelIndex = currentPanelIndex;\r\n const step = leaseholdStepPanels.find(steps => steps.panels.find(panelName => panel === panelName))?.step;\r\n self.setTouchedStep(step);\r\n }\r\n }\r\n }));\r\n","import { types } from 'mobx-state-tree';\r\nimport { RowModel } from '../rowModel';\r\n\r\nexport const MapUrlSettingsModel = types\r\n .model('MapUrlSettingsModel', {\r\n mapUrl: types.maybe(types.string)\r\n })\r\n .volatile(() => ({\r\n hasChanges: false\r\n }))\r\n .actions(self => ({\r\n setHasChanges(hasChanges) {\r\n self.hasChanges = hasChanges;\r\n },\r\n update({ mapUrl }) {\r\n self.mapUrl = mapUrl;\r\n }\r\n }));\r\n\r\nexport const MapUrlSettingsStore = types.compose(RowModel, MapUrlSettingsModel).named('MapUrlSettingsStore');\r\n","import { endpoints } from '../endpoints';\r\nimport { getFileNameFromHeader, parseFile, parseResponse } from '../parseResponse';\r\nimport { getHeader } from './generalApi';\r\n\r\nexport async function getDiggingPermit(caseNumber, srid) {\r\n return fetch(`${endpoints.diggingPermit}/?caseNumber=${encodeURIComponent(caseNumber)}&srid=${srid}`, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function getTAPlan(caseNumber, srid) {\r\n return fetch(`${endpoints.taplan}/?caseNumber=${encodeURIComponent(caseNumber)}&srid=${srid}`, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function getLeasehold(caseNumber, srid) {\r\n return fetch(`${endpoints.leasehold}/?caseNumber=${encodeURIComponent(caseNumber)}&srid=${srid}`, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function createDiggingPermit(diggingPermit) {\r\n return fetch(`${endpoints.diggingPermit}`, {\r\n ...(await getHeader('POST')),\r\n body: JSON.stringify(diggingPermit)\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function createTAPlan(taPlan) {\r\n return fetch(`${endpoints.taplan}`, {\r\n ...(await getHeader('POST')),\r\n body: JSON.stringify(taPlan)\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function createLeasehold(leasehold) {\r\n return fetch(`${endpoints.leasehold}`, {\r\n ...(await getHeader('POST')),\r\n body: JSON.stringify(leasehold)\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function updateDiggingPermit(diggingPermit) {\r\n return fetch(`${endpoints.diggingPermit}`, {\r\n ...(await getHeader('PUT')),\r\n body: JSON.stringify(diggingPermit)\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function updateTAPlan(taPlan) {\r\n return fetch(`${endpoints.taplan}`, {\r\n ...(await getHeader('PUT')),\r\n body: JSON.stringify(taPlan)\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function updateLeasehold(leasehold) {\r\n return fetch(`${endpoints.leasehold}`, {\r\n ...(await getHeader('PUT')),\r\n body: JSON.stringify(leasehold)\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function prolongDiggingPermit(gid, prolongedToDate, prolongedToTime, prolongedReason) {\r\n return fetch(`${endpoints.diggingPermit}/prolong`, {\r\n ...(await getHeader('PUT')),\r\n body: JSON.stringify({ gid, prolongedToDate, prolongedToTime, prolongedReason })\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function prolongTAPlan(gid, prolongedToDate, prolongedToTime, prolongedReason) {\r\n return fetch(`${endpoints.taplan}/prolong`, {\r\n ...(await getHeader('PUT')),\r\n body: JSON.stringify({ gid, prolongedToDate, prolongedToTime, prolongedReason })\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function downloadDiggingPermitPdf(gid) {\r\n return fetch(`${endpoints.diggingPermit}/pdfreport/${gid}`, {\r\n ...(await getHeader('GET'))\r\n }).then(response => parseFile(response, getFileNameFromHeader(response)));\r\n}\r\n\r\nexport async function downloadTAPlanPdf(gid) {\r\n return fetch(`${endpoints.taplan}/pdfreport/${gid}`, {\r\n ...(await getHeader('GET'))\r\n }).then(response => parseFile(response, getFileNameFromHeader(response)));\r\n}\r\n\r\nexport async function downloadLeaseholdPdf(gid) {\r\n return fetch(`${endpoints.leasehold}/pdfreport/${gid}`, {\r\n ...(await getHeader('GET'))\r\n }).then(response => parseFile(response, getFileNameFromHeader(response)));\r\n}\r\n\r\nexport async function setDiggingPermitToDone(gid, doneValues) {\r\n return fetch(`${endpoints.diggingPermit}/UpdateStatusToWorkDone`, {\r\n ...(await getHeader('PUT')),\r\n body: JSON.stringify({ gid, Items: doneValues })\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function removeConnectionToApplication(request) {\r\n return fetch(`${endpoints.connection}/PutDisconnectionFromApplication`, {\r\n ...(await getHeader('PUT')),\r\n body: JSON.stringify(request)\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function createConnectionToApplication(request) {\r\n return fetch(`${endpoints.connection}/PutConnectionToApplication`, {\r\n ...(await getHeader('PUT')),\r\n body: JSON.stringify(request)\r\n }).then(parseResponse);\r\n}\r\n","import { generatePath } from 'react-router-dom';\r\n\r\nexport const getRoutePath = (tenantId, caseType) =>\r\n generatePath('/:tenantId/case/:caseType', {\r\n tenantId: tenantId,\r\n caseType: caseType\r\n });\r\n\r\nexport const getNewRoutePath = tenantId =>\r\n generatePath('/:tenantId/case/new', {\r\n tenantId: tenantId\r\n });\r\n\r\nexport const getRootMunicipalityPath = tenantId =>\r\n generatePath('/:tenantId', {\r\n tenantId: tenantId\r\n });\r\n","export const CaseType = {\r\n DiggingPermit: 1,\r\n Leasehold: 2,\r\n TrafficArrangementPlan: 3\r\n};\r\n","export function parseResponse(response) {\r\n if (response.ok) {\r\n if (response.status === 204 || response.status === 202) {\r\n return undefined;\r\n }\r\n const etag = response.headers.get('ETag');\r\n return response.json().then(function (jsonResponse) {\r\n if (typeof jsonResponse === 'object') {\r\n jsonResponse.eTag = etag;\r\n }\r\n return jsonResponse;\r\n });\r\n } else {\r\n return response.json().then(function (message) {\r\n const error = parseError(message);\r\n throw error;\r\n });\r\n }\r\n}\r\n\r\nexport function parseFile(response, fileName, contentType) {\r\n if (response.ok) {\r\n return response.blob().then(function (blobResponse) {\r\n const blob = new Blob([blobResponse], { type: contentType || blobResponse.type });\r\n\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // IE and Edge\r\n window.navigator.msSaveOrOpenBlob(blob, fileName);\r\n } else {\r\n // In FF link must be added to DOM to be clicked\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n });\r\n } else {\r\n return response.json().then(function (message) {\r\n const error = parseError(message);\r\n throw error;\r\n });\r\n }\r\n}\r\n\r\nconst convertBlobToBase64 = blobResponse =>\r\n new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onerror = reject;\r\n reader.onload = () => {\r\n resolve(reader.result);\r\n };\r\n reader.readAsDataURL(blobResponse);\r\n });\r\n\r\nexport function parseFileAsBase64(response) {\r\n if (response.ok) {\r\n return response.blob().then(convertBlobToBase64);\r\n } else {\r\n return response.json().then(function (message) {\r\n const error = parseError(message);\r\n throw error;\r\n });\r\n }\r\n}\r\n\r\nexport function getFileNameFromHeader(response) {\r\n const contentDescription = response.headers.get('Content-Disposition');\r\n\r\n if (!contentDescription) {\r\n return null;\r\n }\r\n\r\n const contentDescriptionParts = contentDescription.split(';');\r\n const fileName = contentDescriptionParts.find(part => part.indexOf('filename=') !== -1);\r\n const fileNameUtf8 = contentDescriptionParts.find(part => part.indexOf(\"filename*=UTF-8''\") !== -1);\r\n\r\n if (fileNameUtf8) {\r\n return decodeURI(fileNameUtf8.split('=')[1].substr(7)).replace(/\"/g, '');\r\n }\r\n return fileName.split('=')[1].replace(/\"/g, '');\r\n}\r\n\r\nfunction parseError(message) {\r\n const error = {\r\n title: message.title,\r\n geosecmaSolution: message.extensions?.GeosecmaSolution,\r\n geosecmaCode: message.extensions?.GeosecmaError ?? 500,\r\n statusCode: message.status\r\n };\r\n if (message.extensions.InnerMessage && message.extensions.InnerMessage !== '') {\r\n error.reason = message.extensions.InnerMessage;\r\n }\r\n if (message.detail && message.detail !== '') {\r\n error.stackTrace = message.detail;\r\n }\r\n return error;\r\n}\r\n","import { endpoints } from '../endpoints';\r\nimport { parseFile } from '../parseResponse';\r\nimport { getHeader } from './generalApi';\r\n\r\nexport async function downloadApplicationFile(applicationFile) {\r\n return fetch(`${endpoints.attachments}/applicationFile?gid=${applicationFile.gid}`, {\r\n ...(await getHeader('GET'))\r\n }).then(response => parseFile(response, applicationFile.fileName, applicationFile.contentType));\r\n}\r\n\r\nexport async function downloadCaseEventAttachment(caseEventAttachment) {\r\n return fetch(`${endpoints.attachments}/caseEventAttachment?gid=${caseEventAttachment.gid}`, {\r\n ...(await getHeader('GET'))\r\n }).then(response => parseFile(response, caseEventAttachment.fileName, caseEventAttachment.contentType));\r\n}\r\n","import { endpoints } from '../endpoints';\r\nimport { parseResponse } from '../parseResponse';\r\nimport { getHeader } from './generalApi';\r\n\r\nexport async function getConnections(gid, caseNumber, caseType) {\r\n return fetch(\r\n `${endpoints.connection}/?caseNumber=${encodeURIComponent(caseNumber)}&entityType=${caseType}&gid=${gid}`,\r\n {\r\n ...(await getHeader('GET'))\r\n }\r\n ).then(parseResponse);\r\n}\r\n","import { endpoints } from '../endpoints';\r\nimport { parseResponse } from '../parseResponse';\r\nimport { getHeader } from './generalApi';\r\n\r\nexport async function getSettingsByIdentification(identification) {\r\n return fetch(`${endpoints.settings}/${identification}`, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function getSelectedSettings(identifications) {\r\n const ids = identifications.join('&identifications=');\r\n return fetch(`${endpoints.settings}/identifications?identifications=${ids}`, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function saveSettings(settings) {\r\n return fetch(`${endpoints.settings}`, {\r\n ...(await getHeader('PUT')),\r\n body: JSON.stringify(settings)\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function testServerUrl(serverInfo) {\r\n return fetch(`${endpoints.mapserver}/server`, {\r\n ...(await getHeader('POST')),\r\n body: JSON.stringify(serverInfo)\r\n }).then(parseResponse);\r\n}\r\n","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDigging(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Icon_dig_permit_shovel_transparent\",\n \"data-name\": \"Icon dig permit shovel transparent\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 17.505,\n height: 23.504,\n viewBox: \"0 0 17.505 23.504\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_17129\",\n \"data-name\": \"Rectangle 17129\",\n className: \"cls-3\",\n width: 17.505,\n height: 23.504,\n transform: \"translate(0 0)\"\n })))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1853\",\n \"data-name\": \"Group 1853\",\n className: \"cls-2\",\n transform: \"translate(0 0)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_870\",\n \"data-name\": \"Path 870\",\n className: \"cls-1\",\n d: \"M17.041,2.638C12.613-.2,12.6-.2,12,.174l-.01,0a4.244,4.244,0,0,0-1.1,2.878,3.046,3.046,0,0,0,.691,1.952L5.8,14.38,3.761,13.121a1,1,0,0,0-1.354.287C2.343,13.5.841,15.72.323,16.792a8.2,8.2,0,0,0,.151,4.974,2.487,2.487,0,0,0,1.239,1.547,3.674,3.674,0,0,0,2.064.093A7,7,0,0,0,7.81,21.328c.648-.973,1.984-3.2,2.039-3.294a1,1,0,0,0-.33-1.366L7.512,15.434l5.767-9.341a2.773,2.773,0,0,0,1.264.056.9.9,0,0,0,.165-.041A4.832,4.832,0,0,0,17.36,4a.994.994,0,0,0-.319-1.358M6.141,20.216A5.942,5.942,0,0,1,2.59,21.524c-.5-.469-.762-3.233-.458-3.859.267-.547.908-1.56,1.409-2.334l1.216.747-.417.676a1.012,1.012,0,0,0,.324,1.388,1,1,0,0,0,.7.126.983.983,0,0,0,.671-.458l.416-.677,1.159.717c-.445.743-1.1,1.8-1.474,2.366m8.1-16.05a.974.974,0,0,1-.793-.161L13.4,3.972a1.051,1.051,0,0,1-.474-.647,1.949,1.949,0,0,1,.054-.875c.539.329,1.264.788,2.023,1.262a1.933,1.933,0,0,1-.763.454\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDigging);\nexport default __webpack_public_path__ + \"static/media/digging.da49b0f1.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLeasehold(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Icon_Leasehold_White_fill\",\n \"data-name\": \"Icon Leasehold White fill\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20.95,\n height: 22.77,\n viewBox: \"0 0 20.95 22.77\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_854\",\n \"data-name\": \"Path 854\",\n className: \"cls-2\",\n d: \"M10.92,59.225v-.01c-1.79-2.33-3.84-5.56-3.84-7.84a5.041,5.041,0,0,1,5.03-4.94h.25a5.027,5.027,0,0,1,5.01,4.92c0,2.31-2.06,5.54-3.85,7.87.23.01.46.02.68.05\",\n transform: \"translate(-1.61 -44.615)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_855\",\n \"data-name\": \"Path 855\",\n className: \"cls-2\",\n d: \"M13.51,59.235c-.46.6-.9,1.14-1.29,1.59-.39-.45-.83-.99-1.3-1.6\",\n transform: \"translate(-1.61 -44.615)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_856\",\n \"data-name\": \"Path 856\",\n className: \"cls-2\",\n d: \"M10.08,61.085c.8,1,1.4,1.65,1.48,1.73l.66.7.67-.7c.08-.08.68-.72,1.47-1.71,4.21.35,6.38,1.6,6.38,2.18,0,.68-2.95,2.28-8.66,2.28s-8.65-1.6-8.65-2.28c0-.59,2.25-1.89,6.64-2.2h.01\",\n transform: \"translate(-1.61 -44.615)\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon_markupp_blue\",\n \"data-name\": \"icon markupp blue\",\n transform: \"translate(-1.61 -44.615)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1474\",\n \"data-name\": \"Group 1474\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_237\",\n \"data-name\": \"Ellipse 237\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_857\",\n \"data-name\": \"Path 857\",\n className: \"cls-2\",\n d: \"M20.74,63.285c0,.68-2.95,2.28-8.66,2.28s-8.65-1.6-8.65-2.28c0-.59,2.25-1.89,6.64-2.2h.01c.8,1,1.4,1.65,1.48,1.73l.66.7.67-.7c.08-.08.68-.72,1.47-1.71C18.57,61.455,20.74,62.705,20.74,63.285Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_858\",\n \"data-name\": \"Path 858\",\n className: \"cls-1\",\n d: \"M1.66,63.705c.4,2.01,3.73,3.15,7.49,3.52C5.13,66.765,2.1,65.395,1.66,63.705Zm7.11-4.32c-3.65.43-6.72,1.61-7.11,3.48.43-1.62,3.28-2.97,7.13-3.46C8.78,59.4,8.78,59.4,8.77,59.385Zm6.25,7.84c3.76-.37,7.09-1.51,7.49-3.52C22.07,65.395,19.04,66.765,15.02,67.225Zm.64-7.81-.02.02c3.71.52,6.45,1.84,6.87,3.43C22.13,61.045,19.2,59.875,15.66,59.415Z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1848\",\n \"data-name\": \"Group 1848\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_859\",\n \"data-name\": \"Path 859\",\n className: \"cls-1\",\n d: \"M13.52,59.225a.01.01,0,0,1-.01.01c.23.01.46.03.69.04C13.98,59.245,13.75,59.235,13.52,59.225Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_860\",\n \"data-name\": \"Path 860\",\n className: \"cls-1\",\n d: \"M22.54,63.035a.508.508,0,0,0-.03-.17c-.42-1.59-3.16-2.91-6.87-3.43l.02-.02c1.69-2.34,3.53-5.48,3.53-8.08a6.856,6.856,0,0,0-6.86-6.72h-.22a6.864,6.864,0,0,0-6.85,6.74c0,2.57,1.83,5.7,3.51,8.03.01.01.01.02.02.02-3.85.49-6.7,1.84-7.13,3.46a.508.508,0,0,0-.03.17,2.105,2.105,0,0,0-.02.25,2.275,2.275,0,0,0,.02.26.453.453,0,0,0,.03.16c.44,1.69,3.47,3.06,7.49,3.52.27.03.54.06.82.08.24.02.48.03.72.04.46.03.93.04,1.39.04s.94-.01,1.41-.04c.24-.01.47-.02.71-.04.28-.02.55-.05.82-.08,4.02-.46,7.05-1.83,7.49-3.52a.453.453,0,0,0,.03-.16,2.276,2.276,0,0,0,.02-.26A2.106,2.106,0,0,0,22.54,63.035ZM7.08,51.375a5.041,5.041,0,0,1,5.03-4.94h.25a5.027,5.027,0,0,1,5.01,4.92c0,2.31-2.06,5.54-3.85,7.87.23.01.46.02.68.05-.23-.01-.46-.03-.69-.04-.46.6-.9,1.14-1.29,1.59-.39-.45-.83-.99-1.3-1.6v-.01C9.13,56.885,7.08,53.655,7.08,51.375Zm5,14.19c-5.71,0-8.65-1.6-8.65-2.28,0-.59,2.25-1.89,6.64-2.2h.01c.8,1,1.4,1.65,1.48,1.73l.66.7.67-.7c.08-.08.68-.72,1.47-1.71,4.21.35,6.38,1.6,6.38,2.18C20.74,63.965,17.79,65.565,12.08,65.565Z\"\n })), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Ellipse_3\",\n \"data-name\": \"Ellipse 3\",\n className: \"cls-1\",\n cx: 3.08,\n cy: 3.08,\n r: 3.08,\n transform: \"translate(9.104 48.251)\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLeasehold);\nexport default __webpack_public_path__ + \"static/media/leasehold.a2010241.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgTaPlan(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 25.999,\n viewBox: \"0 0 20 25.999\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon_TA-plan_blue\",\n \"data-name\": \"icon TA-plan blue\",\n transform: \"translate(1 1)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1473\",\n \"data-name\": \"Group 1473\",\n transform: \"translate(-2.52 -0.34)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_846\",\n \"data-name\": \"Path 846\",\n className: \"cls-1\",\n d: \"M18.69,19.04H17.21L12.94,1.58a1.645,1.645,0,0,0-3.19.01L5.48,19.04H4a1.477,1.477,0,0,0-1.48,1.48v1.29A1.49,1.49,0,0,0,4,23.29H18.69a1.492,1.492,0,0,0,1.48-1.49V20.51A1.487,1.487,0,0,0,18.69,19.04ZM11.34,2.5l1.6,6.52H9.74ZM18.4,21.52H4.28V20.8H6.22a.75.75,0,0,0,.65-.27,2.255,2.255,0,0,0,.22-.66L8.7,13.31h5.29l1.6,6.52a2.587,2.587,0,0,0,.22.68.807.807,0,0,0,.66.29H18.4Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTaPlan);\nexport default __webpack_public_path__ + \"static/media/ta-plan.8f3ceb96.svg\";\nexport { ForwardRef as ReactComponent };","import React, { createContext, useCallback, useEffect } from 'react';\r\nimport styled from 'styled-components';\r\nimport { MapInteractionCSS } from 'react-map-interaction';\r\nimport { SearchOutlined, MinusOutlined, PlusOutlined } from '@ant-design/icons';\r\nimport { Button, Tooltip } from 'antd';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useCaseApplication } from '../../cases/shared/CaseApplicationContext';\r\nimport { Step } from 'utils/enumerations';\r\nimport { observer } from 'mobx-react';\r\n\r\nconst StyledPanZoomElement = styled.div`\r\n position: relative;\r\n height: 100%;\r\n & .content-container {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n }\r\n &&& div div div {\r\n transition: all 0.2s;\r\n }\r\n`;\r\n\r\nconst StyledZoomButtonRow = styled.div`\r\n position: absolute;\r\n left: 0px;\r\n top: 0px;\r\n width: 100%;\r\n background-color: transparent;\r\n display: flex;\r\n justify-content: center;\r\n z-index: 10;\r\n`;\r\n\r\nconst StyledZoomButtonContainer = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n z-index: 11;\r\n background-color: white;\r\n border-radius: 3px;\r\n border: 1px solid #948f8f;\r\n position: relative;\r\n top: 6px;\r\n\r\n &:focus-within {\r\n border-width: 2px;\r\n }\r\n`;\r\n\r\nconst StyledSearchSymbolContainer = styled.div`\r\n font-size: 1.5em;\r\n margin-left: 5px;\r\n margin-right: 5px;\r\n`;\r\n\r\nconst StyledZoomButton = styled(Button)`\r\n & {\r\n color: #3795ed;\r\n }\r\n\r\n &:focus,\r\n &:hover {\r\n color: #1454a3;\r\n }\r\n`;\r\n\r\nexport const PanZoomContext = createContext();\r\n\r\nexport const PanZoomElement = observer(({ children }) => {\r\n const [t] = useTranslation();\r\n const application = useCaseApplication();\r\n const pageRef = React.useRef();\r\n const zoomRef = React.useRef();\r\n const [loaded, setLoaded] = React.useState(false);\r\n const [zoomDisabled, setZoomDisabled] = React.useState(true);\r\n const [scrollDisabled, setScrollDisabled] = React.useState(false);\r\n const [panDisabled, setPanDisabled] = React.useState(false);\r\n const [bounds, setBounds] = React.useState({\r\n xMin: 0,\r\n xMax: 0,\r\n yMin: 0,\r\n yMax: 0\r\n });\r\n const margin = 100;\r\n\r\n const [isDragging, setIsDragging] = React.useState(false);\r\n const [value, setValue] = React.useState({ scale: 0.85, translation: { x: 0, y: 0 } });\r\n const [width, setWidth] = React.useState(0);\r\n const [height, setHeight] = React.useState(0);\r\n\r\n const onLoad = React.useCallback(() => {\r\n const bounds = {\r\n xMin: -(pageRef.current.offsetWidth / 2),\r\n xMax: zoomRef.current.offsetWidth - pageRef.current.offsetWidth / 2,\r\n yMin: -(pageRef.current.offsetHeight / 2),\r\n yMax: zoomRef.current.offsetHeight - pageRef.current.offsetHeight / 2\r\n };\r\n\r\n setBounds(bounds);\r\n setWidth(zoomRef.current.offsetWidth);\r\n setHeight(zoomRef.current.offsetHeight);\r\n\r\n //Fix mouse cursor style.\r\n zoomRef.current.childNodes[0].childNodes[0].style.cursor = 'default';\r\n setLoaded(true);\r\n }, []);\r\n\r\n useEffect(() => {\r\n onLoad();\r\n }, [onLoad]);\r\n\r\n const onMouseDown = useCallback(() => {\r\n setIsDragging(isDragging => (isDragging ? false : isDragging));\r\n document.activeElement.blur();\r\n }, []);\r\n\r\n const onMouseUp = useCallback(() => {\r\n setPanDisabled(false);\r\n }, []);\r\n\r\n const onResize = useCallback(() => {\r\n const newWidth = zoomRef.current?.offsetWidth ?? 0;\r\n const newHeight = zoomRef.current?.offsetHeight ?? 0;\r\n\r\n setWidth(newWidth);\r\n setHeight(newHeight);\r\n setValue(oldValue => {\r\n const translation = {\r\n x: oldValue.translation.x + (newWidth - width) / 2,\r\n y: oldValue.translation.y + (newHeight - height) / 2\r\n };\r\n return { ...oldValue, translation };\r\n });\r\n }, [height, width]);\r\n\r\n const onChange = useCallback(newValue => {\r\n const bounds = {\r\n xMin: -pageRef.current.offsetWidth * newValue.scale + margin,\r\n xMax: zoomRef.current.offsetWidth - margin,\r\n yMin: -pageRef.current.offsetHeight * newValue.scale + margin,\r\n yMax: zoomRef.current.offsetHeight - margin\r\n };\r\n setBounds(bounds);\r\n setIsDragging(true);\r\n setValue(newValue);\r\n }, []);\r\n\r\n const disableScroll = useCallback(value => {\r\n setScrollDisabled(value);\r\n }, []);\r\n\r\n const disablePan = useCallback(value => {\r\n setPanDisabled(value);\r\n }, []);\r\n\r\n const reScale = useCallback(newScale => {\r\n const bounds = {\r\n xMin: -pageRef.current.offsetWidth * newScale + margin,\r\n xMax: zoomRef.current.offsetWidth - margin,\r\n yMin: -pageRef.current.offsetHeight * newScale + margin,\r\n yMax: zoomRef.current.offsetHeight - margin\r\n };\r\n setBounds(bounds);\r\n\r\n setValue(oldValue => {\r\n const translation = {\r\n x:\r\n zoomRef.current.offsetWidth / 2 -\r\n ((zoomRef.current.offsetWidth / 2 - oldValue.translation.x) * newScale) / oldValue.scale,\r\n y:\r\n zoomRef.current.offsetHeight / 2 -\r\n ((zoomRef.current.offsetHeight / 2 - oldValue.translation.y) * newScale) / oldValue.scale\r\n };\r\n return { scale: newScale, translation };\r\n });\r\n }, []);\r\n\r\n const onButtonZoomIn = useCallback(() => {\r\n let newScale = value.scale * 1.25;\r\n newScale = newScale > 3 ? 3 : newScale;\r\n reScale(newScale);\r\n }, [value.scale, reScale]);\r\n\r\n const onButtonZoomOut = useCallback(() => {\r\n let newScale = value.scale * 0.8;\r\n newScale = newScale < 0.3 ? 0.3 : newScale;\r\n reScale(newScale);\r\n }, [value.scale, reScale]);\r\n\r\n const enableZoom = useCallback(\r\n event => {\r\n if (event.keyCode === 17 && zoomDisabled === true && scrollDisabled === false) {\r\n setZoomDisabled(false);\r\n } else if (event.keyCode === 17 && scrollDisabled === true) {\r\n setZoomDisabled(true);\r\n }\r\n },\r\n [scrollDisabled, zoomDisabled]\r\n );\r\n\r\n const disableZoom = useCallback(\r\n event => {\r\n if (event.keyCode === 17 && zoomDisabled === false) {\r\n setZoomDisabled(true);\r\n }\r\n },\r\n [zoomDisabled]\r\n );\r\n\r\n const onWheel = useCallback(\r\n event => {\r\n if (!scrollDisabled && pageRef.current && zoomRef.current) {\r\n setValue(oldValue => {\r\n const translation = { x: oldValue.translation.x, y: oldValue.translation.y - event.deltaY };\r\n if (\r\n translation.y > -pageRef.current.offsetHeight * oldValue.scale + margin &&\r\n translation.y < zoomRef.current.offsetHeight - margin\r\n ) {\r\n return { ...oldValue, translation };\r\n } else {\r\n return oldValue;\r\n }\r\n });\r\n }\r\n },\r\n [scrollDisabled]\r\n );\r\n\r\n const scrollToActivePanel = useCallback(() => {\r\n const element = pageRef.current?.querySelector('.selectedPanel');\r\n if (element) {\r\n setValue(oldValue => {\r\n const visibleHeight = pageRef.current.parentElement.parentElement.parentElement.parentElement.offsetHeight;\r\n const offsetTop = element.offsetTop + (element.offsetParent ? element.offsetParent.offsetTop : 0);\r\n const translation = oldValue.translation;\r\n if (-oldValue.translation.y > offsetTop * oldValue.scale) {\r\n translation.y = (-offsetTop + element.offsetHeight * 0.5) * oldValue.scale;\r\n } else if (-oldValue.translation.y + visibleHeight < (offsetTop + element.offsetHeight) * oldValue.scale) {\r\n translation.y = (visibleHeight / oldValue.scale - offsetTop - element.offsetHeight * 2) * oldValue.scale;\r\n }\r\n return { ...oldValue, translation };\r\n });\r\n }\r\n }, []);\r\n\r\n const scrollToMap = useCallback(() => {\r\n const element = pageRef.current?.querySelector('.preview-map');\r\n if (element) {\r\n setValue(oldValue => {\r\n const visibleHeight = pageRef.current.parentElement.parentElement.parentElement.parentElement.offsetHeight;\r\n const offsetTop = element.offsetTop + (element.offsetParent ? element.offsetParent.offsetTop : 0);\r\n const translation = oldValue.translation;\r\n translation.y = (visibleHeight / oldValue.scale - offsetTop - element.offsetHeight * 2) * oldValue.scale;\r\n return { ...oldValue, translation };\r\n });\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n scrollToActivePanel();\r\n }, [application.currentPanel, scrollToActivePanel]);\r\n\r\n useEffect(() => {\r\n const prevStep = application.currentStep;\r\n\r\n return () => {\r\n //TODO: Improve this when screenshot functionality changes.\r\n if (prevStep === Step.Map) {\r\n setTimeout(() => {\r\n scrollToMap();\r\n scrollToActivePanel();\r\n }, 100);\r\n }\r\n };\r\n }, [application.currentStep, scrollToMap, scrollToActivePanel]);\r\n\r\n useEffect(() => {\r\n const zoomHandler = zoomRef.current;\r\n if (zoomHandler) {\r\n zoomHandler.addEventListener('wheel', onWheel);\r\n }\r\n window.addEventListener('resize', onResize);\r\n window.addEventListener('keydown', enableZoom);\r\n window.addEventListener('keyup', disableZoom);\r\n return () => {\r\n if (zoomHandler) {\r\n zoomHandler.removeEventListener('wheel', onWheel);\r\n }\r\n window.removeEventListener('resize', onResize);\r\n window.removeEventListener('keydown', enableZoom);\r\n window.removeEventListener('keyup', disableZoom);\r\n };\r\n }, [disableZoom, enableZoom, onResize, onWheel]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n }\r\n disabled={value.scale <= 0.3}\r\n onClick={onButtonZoomOut}\r\n type=\"link\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n }\r\n disabled={value.scale >= 3}\r\n onClick={onButtonZoomIn}\r\n type=\"link\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n );\r\n});\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const AttachmentModel = types\r\n .model('AttachmentModel', {\r\n gid: types.maybe(types.string),\r\n content: types.maybe(types.string),\r\n contentType: types.string,\r\n fileName: types.string,\r\n uploadedBy: types.maybe(types.integer),\r\n uploadDate: types.maybe(types.string),\r\n uid: ''\r\n })\r\n .actions(self => ({\r\n updateUid(uid) {\r\n self.uid = uid;\r\n },\r\n updateContent(content) {\r\n self.content = content;\r\n }\r\n }));\r\n","export const endpoints = {\r\n attachments: 'api/v1/attachment',\r\n connection: 'api/v1/connection',\r\n dashboards: 'api/v1/dashboard',\r\n diggingPermit: 'api/v1/diggingpermit',\r\n leasehold: 'api/v1/leasehold',\r\n taplan: 'api/v1/taplan',\r\n search: 'api/v1/search',\r\n mapserver: 'api/v1/mapserver',\r\n license: 'api/v1/license',\r\n codedValueDomain: 'api/v1/codedValueDomain',\r\n vtDomain: 'api/v1/vtDomain',\r\n vtRecoveryTypes: 'api/v1/vTRecoveryType',\r\n vtLeaseholdTypes: 'api/v1/vTLeaseholdType',\r\n settings: 'api/v1/setting',\r\n proxy: 'api/proxy',\r\n user: 'api/v1/user',\r\n tenant: 'api/v1/tenant',\r\n DPVersionNumber: 'api/v1/version'\r\n};\r\n","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgGeosecmaBackground(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 673.262,\n height: 672.736,\n viewBox: \"0 0 673.262 672.736\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.05\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M410.87,185.7H262.132L233.225,214.6l-48.878,48.878H327.3a.515.515,0,0,1-.526.525c-1.051,2.628-2.1,4.73-3.154,7.358-2.1,4.2-4.73,8.409-7.358,12.614a113.429,113.429,0,0,1-14.19,17.344,80.819,80.819,0,0,1-6.833,6.307,78.337,78.337,0,0,1-10.511,7.884c-4.2,2.628-8.409,5.256-12.614,7.358-2.1,1.051-4.2,2.1-6.833,3.154h-.526a118.862,118.862,0,0,1-44.674,8.935,116.846,116.846,0,0,1-44.674-8.935,99.809,99.809,0,0,1-19.446-10.511,112.606,112.606,0,0,1-31.534-31.535,99.812,99.812,0,0,1-10.512-19.446,118.863,118.863,0,0,1-8.935-44.674,116.847,116.847,0,0,1,8.935-44.674,99.8,99.8,0,0,1,10.512-19.446,112.611,112.611,0,0,1,31.534-31.534,99.787,99.787,0,0,1,19.446-10.511,118.862,118.862,0,0,1,44.674-8.935,113.37,113.37,0,0,1,26.8,3.153,138.747,138.747,0,0,1,24.7,8.935,85.091,85.091,0,0,1,21.549,14.19c1.051.526,1.577,1.577,2.628,2.1l35.214-35.214,19.446-19.446a91.312,91.312,0,0,0-7.884-6.832A165.583,165.583,0,0,0,306.28,48a190.511,190.511,0,0,0-86.72-20.5A192.082,192.082,0,0,0,144.4,42.742c-22.074,8.409-42.571,22.074-60.441,39.944a195.457,195.457,0,0,0-41.52,61.492,192.923,192.923,0,0,0,0,150.315A194.914,194.914,0,0,0,145.454,397.5a192.081,192.081,0,0,0,75.157,15.242,199.355,199.355,0,0,0,70.427-13.14,191.255,191.255,0,0,0,58.864-36.79,194.924,194.924,0,0,0,37.316-45.725,208.961,208.961,0,0,0,22.074-56.237,181.028,181.028,0,0,0,4.2-40.995,198.919,198.919,0,0,0-2.628-30.483Z\",\n transform: \"translate(115.756 117.033)\",\n fill: \"#707689\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M672.736,326.382a304.751,304.751,0,0,0-6.832-57.813A324.749,324.749,0,0,0,646.457,205.5a334.693,334.693,0,0,0-31.009-57.288,330.3,330.3,0,0,0-90.924-90.924,334.7,334.7,0,0,0-57.288-31.009c-20.5-8.409-41.52-15.242-63.069-19.446a339.8,339.8,0,0,0-135.6,0C247.02,11.037,226,17.87,205.5,26.279a334.7,334.7,0,0,0-57.288,31.009,330.3,330.3,0,0,0-90.924,90.924A334.7,334.7,0,0,0,26.279,205.5C17.87,226,11.037,247.02,6.832,268.569a339.8,339.8,0,0,0,0,135.6c4.2,21.549,11.037,42.572,19.446,63.069a334.7,334.7,0,0,0,31.009,57.288,330.3,330.3,0,0,0,90.924,90.924A334.685,334.685,0,0,0,205.5,646.457c20.5,8.409,41.52,15.242,63.069,19.446a339.807,339.807,0,0,0,135.6,0,324.749,324.749,0,0,0,63.069-19.446,334.694,334.694,0,0,0,57.288-31.009,339.685,339.685,0,0,0,49.93-40.995c7.884-7.884,15.242-16.293,22.6-25.228v123.51h0l34.162-34.162,42.046-42.046V336.368l-.526-9.986ZM336.368,597.053c-144.008,0-260.685-116.678-260.685-260.685S192.36,75.683,336.368,75.683,597.053,192.36,597.053,336.368,480.376,597.053,336.368,597.053Z\",\n fill: \"#707689\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGeosecmaBackground);\nexport default __webpack_public_path__ + \"static/media/geosecma-background.b7a31482.svg\";\nexport { ForwardRef as ReactComponent };","import i18n from 'i18next';\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport enResource from '../locales/en/Resources.json';\r\nimport svResource from '../locales/sv/Resources.json';\r\n\r\ni18n\r\n .use(LanguageDetector)\r\n .use(initReactI18next)\r\n .init({\r\n detection: {\r\n order: ['querystring', 'localStorage', 'cookie'],\r\n lookupQuerystring: 'lng',\r\n lookupCookie: 'i18next',\r\n lookupLocalStorage: 'i18nextLng',\r\n caches: ['localStorage', 'cookie'],\r\n cookieMinutes: 10,\r\n cookieOptions: { path: '/' },\r\n htmlTag: document.documentElement\r\n },\r\n debug: false,\r\n ns: ['resources'],\r\n defaultNs: 'resources',\r\n interpolation: {\r\n escapeValue: false // not needed for react!!\r\n },\r\n load: 'languageOnly',\r\n lngWhiteList: ['en', 'sv'],\r\n fallbackLng: 'sv',\r\n resources: {\r\n en: enResource,\r\n sv: svResource\r\n }\r\n });\r\n\r\nexport default i18n;\r\n","import svSE from 'antd/lib/locale-provider/sv_SE';\r\nimport enUS from 'antd/lib/locale-provider/en_US';\r\nimport plPL from 'antd/lib/locale-provider/pl_PL';\r\nimport i18n from './i18n';\r\n\r\nexport const getLanguage = () => {\r\n document.documentElement.lang = i18n.language;\r\n switch (i18n.language) {\r\n case 'sv':\r\n case 'sv-SE':\r\n return svSE;\r\n case 'pl':\r\n case 'pl-PL':\r\n return plPL;\r\n default:\r\n return enUS;\r\n }\r\n};\r\n","import i18n from 'i18next';\r\nimport authService from 'lib/api-authorization/AuthorizeService';\r\nimport { rootStore } from 'models/rootModel';\r\nimport { endpoints } from '../endpoints';\r\nimport { parseResponse } from '../parseResponse';\r\n\r\nexport async function getHeader(method, tenantId) {\r\n const header = {\r\n method,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept-Language': getLanguageString(i18n.languages[0])\r\n }\r\n };\r\n\r\n if (tenantId || rootStore.municipality.tenantId) {\r\n header.headers.tenantId = tenantId ? tenantId : rootStore.municipality.tenantId;\r\n }\r\n\r\n const token = await authService.getAccessToken();\r\n if (token) {\r\n header.headers['Authorization'] = `Bearer ${token}`;\r\n }\r\n\r\n return header;\r\n}\r\n\r\nexport async function getLicense() {\r\n return fetch(`${endpoints.license}`, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function getUser() {\r\n return fetch(`${endpoints.user}`, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function getExternalUsers() {\r\n return fetch(`${endpoints.user}/ExternalUsers`, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function updateUser(user) {\r\n return fetch(`${endpoints.user}`, {\r\n ...(await getHeader('PUT')),\r\n body: JSON.stringify(user)\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function getLocatorSuggestions(url) {\r\n return fetch(url, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n\r\nexport function getVersionNumber() {\r\n return fetch(`${endpoints.DPVersionNumber}`, {\r\n ...getHeader('GET')\r\n }).then(parseResponse);\r\n}\r\n\r\nfunction getLanguageString(shortLanguageString) {\r\n if (shortLanguageString.startsWith('sv')) {\r\n return 'sv-SE';\r\n } else if (shortLanguageString.startsWith('pl')) {\r\n return 'pl-PL';\r\n } else {\r\n return 'en-US';\r\n }\r\n}\r\n","import styled from 'styled-components';\r\nimport { PanelProvider } from 'utils/panelContext';\r\nimport { Row } from 'antd';\r\nimport { getPreviewPanel } from 'utils/panelUtils';\r\n\r\nconst BlockDiv = styled.div`\r\n margin-bottom: 0.5cm;\r\n padding-bottom: 0.5cm;\r\n border-bottom: 1px solid #dddde3;\r\n &.selectedPanel {\r\n border: 1px solid #1890ff;\r\n padding: 6px;\r\n margin-bottom: 2px;\r\n margin-top: 2px;\r\n box-sizing: border-box;\r\n border-top-width: 1.02px;\r\n border-radius: 4px;\r\n outline: none;\r\n margin-left: -6px;\r\n }\r\n overflow-wrap: anywhere;\r\n`;\r\n\r\nconst BlockHeader = styled.span`\r\n font-weight: bold;\r\n font-size: 14px;\r\n color: #004190;\r\n`;\r\n\r\nexport const PreviewBlock = ({ step, panel, title, currentPanel, children }) => (\r\n \r\n {title}\r\n \r\n {children}\r\n \r\n \r\n);\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nexport const SpacedSpan = styled.span`\r\n padding-right: 15px;\r\n`;\r\n\r\nconst SquigglyError = styled.div`\r\n display: inline-block;\r\n position: relative;\r\n background: url(\"data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%206%203'%20enable-background%3D'new%200%200%206%203'%20height%3D'3'%20width%3D'6'%3E%3Cg%20fill%3D'%23c24038'%3E%3Cpolygon%20points%3D'5.5%2C0%202.5%2C3%201.1%2C3%204.1%2C0'%2F%3E%3Cpolygon%20points%3D'4%2C0%206%2C2%206%2C0.6%205.4%2C0'%2F%3E%3Cpolygon%20points%3D'0%2C2%201%2C3%202.4%2C3%200%2C0.6'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\")\r\n repeat-x bottom left;\r\n`;\r\n\r\nexport const RedSquigglyLine = ({ children }) => {\r\n return {children};\r\n};\r\n\r\nexport const RedSquigglySpace = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import { useCaseApplication } from 'cases/shared/CaseApplicationContext';\r\nimport { RedSquigglyLine, RedSquigglySpace } from 'lib/Antd/Preview/RedSquigglyLine';\r\nimport { PanZoomContext } from 'lib/PanZoomElement/PanZoomElement';\r\nimport { observer } from 'mobx-react';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useContext } from 'react';\r\nimport styled from 'styled-components';\r\nimport { usePanel } from 'utils/panelContext';\r\n\r\nconst Span = styled.span`\r\n background-color: ${props => (props.isSelected ? '#c3daff' : '')};\r\n border: ${props => (props.isSelected ? '1px solid #4ba0f0' : 'none')};\r\n border-radius: 2px;\r\n padding: ${props => (props.isSelected ? '0 2px 0 2px' : '1px 0 1px 0')};\r\n margin: 0px;\r\n min-width: 30px;\r\n height: 22px;\r\n\r\n :hover {\r\n background-color: #c3daff;\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\nexport const Selectable = observer(({ itemKey, itemValue }) => {\r\n const application = useCaseApplication();\r\n const { step, panel } = usePanel();\r\n const panZoomContext = useContext(PanZoomContext);\r\n const { setActiveKey, activeKey, goToStep, setPanel } = application;\r\n const isValid = true;\r\n const isDisable = false;\r\n\r\n const handleOnKeyDown = e => {\r\n if (e.keyCode === 32 || e.keyCode === 13) {\r\n shouldGoto(e);\r\n }\r\n };\r\n\r\n const handleOnClick = e => {\r\n shouldGoto(e);\r\n };\r\n\r\n const shouldGoto = e => {\r\n if (e.type !== 'touchend') {\r\n if (panZoomContext.isDragging) {\r\n return;\r\n }\r\n }\r\n goToStep(step, false);\r\n setPanel(panel);\r\n setActiveKey(itemKey);\r\n };\r\n\r\n return isDisable ? (\r\n {itemValue}\r\n ) : (\r\n \r\n {isValid ? itemValue : itemValue ? {itemValue} : }\r\n \r\n );\r\n});\r\n\r\nSelectable.propTypes = {\r\n itemKey: PropTypes.string,\r\n itemValue: PropTypes.node\r\n};\r\n","import * as geometryEngine from '@arcgis/core/geometry/geometryEngine';\r\nimport { Col, Row } from 'antd';\r\nimport { observer } from 'mobx-react';\r\nimport { useRootStore } from 'models/rootModel';\r\nimport { Fragment, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styled from 'styled-components';\r\nimport { getLeaseholdTypes } from 'utils/api';\r\nimport { formatMobilePhoneNumber, getCaseStatusName } from 'utils/caseHelper';\r\nimport { getDateWithoutTime, getTimeWithoutDate } from 'utils/dateTime';\r\nimport { CaseStatus, CaseType, DomainName, Panel, Step } from 'utils/enumerations';\r\nimport { PreviewBlock } from './PreviewBlock';\r\nimport { Selectable } from './Selectable';\r\n\r\nexport const PaddingBlock = styled.div`\r\n padding-bottom: 0.5cm;\r\n`;\r\n\r\nexport const PreviewSubHeader = styled(Col)`\r\n font-weight: regular;\r\n font-size: 10px;\r\n color: #454954;\r\n`;\r\n\r\nexport const PreviewValue = styled(Col)`\r\n font-weight: regular;\r\n font-size: 12px;\r\n color: #23IF20;\r\n`;\r\n\r\nexport const PreviewLineThroughValue = styled(Col)`\r\n font-weight: regular;\r\n font-size: 12px;\r\n color: #23IF20;\r\n text-decoration: line-through;\r\n`;\r\nexport const PreviewFormattedValue = styled(Col)`\r\n font-weight: regular;\r\n font-size: 12px;\r\n color: #23IF20;\r\n white-space: pre-wrap;\r\n`;\r\n\r\nconst RegulationPointDomainName = 'DP_TAREGULATION_POINT';\r\nconst RegulationPolylineDomainName = 'DP_TAREGULATION_POLYLINE';\r\nconst RegulationPolygonDomainName = 'DP_TAREGULATION_POLYGON';\r\n\r\nfunction groupBy(list, keyGetter, geometryEngine, unit) {\r\n const map = new Map();\r\n list.forEach(item => {\r\n const key = keyGetter(item);\r\n const collection = map.get(key);\r\n if (!collection) {\r\n let dimension = '';\r\n if (unit === 'meters') {\r\n dimension = geometryEngine?.planarLength(item.polyline, unit);\r\n } else if (unit === 'square-meters') {\r\n dimension = geometryEngine?.planarArea(item.polygon, unit);\r\n }\r\n map.set(key, [{ ...item, count: 1, dimension }]);\r\n } else {\r\n if (unit === 'meters') {\r\n collection[0].dimension += geometryEngine?.planarLength(item.polyline, unit);\r\n } else if (unit === 'square-meters') {\r\n collection[0].dimension += geometryEngine?.planarArea(item.polygon, unit);\r\n }\r\n collection[0].count = ++collection[0].count;\r\n }\r\n });\r\n return map;\r\n}\r\n\r\nconst SelectedItem = ({ itemKey, itemValue, lineThrough, formatted = false }) => {\r\n return (\r\n \r\n {lineThrough ? (\r\n {}\r\n ) : formatted ? (\r\n {}\r\n ) : (\r\n {}\r\n )}\r\n \r\n );\r\n};\r\n\r\nconst MultiSelectableItem = ({ values }) => {\r\n return values.key.map(nestedKey => {\r\n const keyIndex = values.key.findIndex(valkey => valkey === nestedKey);\r\n const value = values.value[keyIndex];\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n });\r\n};\r\n\r\nexport const PreviewBlockSection = ({\r\n showLabel,\r\n label,\r\n values,\r\n span = 12,\r\n offset = 0,\r\n lineThrough = false,\r\n formatted = false,\r\n spaceAbove = false,\r\n dataTestId\r\n}) => {\r\n return (\r\n \r\n {spaceAbove ? : null}\r\n \r\n {showLabel ? {label}: : ''}\r\n \r\n {values?.map((val, index) => {\r\n if (Array.isArray(val.key)) {\r\n return lineThrough ? (\r\n \r\n {}\r\n \r\n ) : (\r\n {}\r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport const getPreviewPostAddress = (zipCode, city) => {\r\n let postalAddress = '';\r\n if (zipCode) {\r\n if (zipCode.length >= 5) {\r\n postalAddress = zipCode.substr(0, 3) + ' ' + zipCode.substr(3, 2);\r\n } else {\r\n postalAddress = zipCode;\r\n }\r\n }\r\n if (city) {\r\n postalAddress += ' ' + city;\r\n }\r\n return postalAddress;\r\n};\r\n\r\nconst getPreviewDateTime = (date, time) => {\r\n return `${date ? getDateWithoutTime(date) : ''} ${time ? getTimeWithoutDate(time) : ''}`;\r\n};\r\n\r\nconst getPreviewConnectedCaseShortTypeName = (t, caseType) => {\r\n switch (caseType) {\r\n case CaseType.DiggingPermit:\r\n return t('diggingPermits:DiggingPermit');\r\n case CaseType.Leasehold:\r\n return t('diggingPermits:GenericLeasehold');\r\n case CaseType.TrafficArrangementPlan:\r\n return t('preview:taPlan');\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\nexport const ApplicantPreviewBlock = observer(({ applicant, billingInfo, currentPanel, showLabel = true }) => {\r\n const [t] = useTranslation();\r\n\r\n const formatSocialAndOrgNumber = value => {\r\n return value && value.length === 10 ? `${value.substr(0, 6)}-${value.substr(6, 4)}` : value;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {applicant.phoneNumber && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n});\r\n\r\nexport const MapLegendBlock = observer(({ taRegulationPoints, taRegulationPolylines, taRegulationPolygons }) => {\r\n const rootStore = useRootStore();\r\n const [t] = useTranslation();\r\n const taRegulationPointsGroup = groupBy(taRegulationPoints, ta => ta.objectType + ta.comment);\r\n const taRegulationPolylinesGroup = groupBy(\r\n taRegulationPolylines,\r\n ta => ta.objectType + ta.comment,\r\n geometryEngine,\r\n 'meters'\r\n );\r\n const taRegulationPolygonsGroup = groupBy(\r\n taRegulationPolygons,\r\n ta => ta.objectType + ta.comment,\r\n geometryEngine,\r\n 'square-meters'\r\n );\r\n return (\r\n <>\r\n \r\n {t('preview:index')}\r\n {t('preview:name')}\r\n {t('preview:comment')}\r\n {t('preview:count')}\r\n {t('preview:dimensions')}\r\n \r\n {Array.from(taRegulationPointsGroup.values()).map(values =>\r\n values.map(taRegulationPoint => {\r\n return (\r\n \r\n {taRegulationPoint.snapshotIndex}\r\n \r\n {\r\n rootStore.taDomains\r\n .find(x => x.domainName === RegulationPointDomainName)\r\n ?.codedValues.find(c => c.code + '' === taRegulationPoint.objectType + '')?.name\r\n }\r\n \r\n {taRegulationPoint.comment}\r\n {taRegulationPoint.count}\r\n \r\n \r\n );\r\n })\r\n )}\r\n {Array.from(taRegulationPolylinesGroup.values()).map(values =>\r\n values.map(taRegulationPolyline => {\r\n return (\r\n \r\n {taRegulationPolyline.snapshotIndex}\r\n \r\n {\r\n rootStore.taDomains\r\n .find(x => x.domainName === RegulationPolylineDomainName)\r\n ?.codedValues.find(c => c.code + '' === taRegulationPolyline.objectType + '')?.name\r\n }\r\n \r\n {taRegulationPolyline.comment}\r\n {taRegulationPolyline.count}\r\n {taRegulationPolyline.dimension?.toFixed(2)} m\r\n \r\n );\r\n })\r\n )}\r\n {Array.from(taRegulationPolygonsGroup.values()).map(values =>\r\n values.map(taRegulationPolygon => {\r\n return (\r\n \r\n {taRegulationPolygon.snapshotIndex}\r\n \r\n {\r\n rootStore.taDomains\r\n .find(x => x.domainName === RegulationPolygonDomainName)\r\n ?.codedValues.find(c => c.code + '' === taRegulationPolygon.objectType + '')?.name\r\n }\r\n \r\n {taRegulationPolygon.comment}\r\n {taRegulationPolygon.count}\r\n \r\n {taRegulationPolygon.dimension?.toFixed(2)} m2\r\n \r\n \r\n );\r\n })\r\n )}\r\n \r\n );\r\n});\r\n\r\nexport const BillingPreviewBlock = observer(({ billingInfo, applicant, currentPanel, showLabel = true }) => {\r\n const [t] = useTranslation();\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n );\r\n});\r\n\r\nexport const CaseInfoPreviewBlock = observer(\r\n ({ caseInfo, caseStatus, currentPanel, prolongedStatus, showLabel = true }) => {\r\n const [t] = useTranslation();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {t('preview:status')}:\r\n \r\n \r\n \r\n {getCaseStatusName(t, caseStatus)}\r\n \r\n \r\n \r\n \r\n {caseStatus === CaseStatus.Approved && prolongedStatus !== null && typeof prolongedStatus !== 'undefined' ? (\r\n \r\n \r\n \r\n {t('preview:prolongStatus')}:\r\n \r\n \r\n \r\n {getCaseStatusName(t, prolongedStatus)}\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n }\r\n);\r\n\r\nexport const TaPlanInfoPreviewBlock = observer(\r\n ({ caseInfo, caseStatus, currentPanel, prolongedStatus, showLabel = true }) => {\r\n const [t] = useTranslation();\r\n return (\r\n \r\n \r\n \r\n \r\n {t('preview:status')}:\r\n \r\n \r\n \r\n {getCaseStatusName(t, caseStatus)}\r\n \r\n \r\n \r\n \r\n {caseStatus === CaseStatus.Approved && prolongedStatus !== null && typeof prolongedStatus !== 'undefined' ? (\r\n \r\n \r\n \r\n {t('preview:prolongStatus')}:\r\n \r\n \r\n \r\n {getCaseStatusName(t, prolongedStatus)}\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n }\r\n);\r\n\r\nexport const LeaseholdInfoPreviewBlock = observer(\r\n ({ caseStatus, currentPanel, purpose, policeCaseNumber, location, showLabel = true }) => {\r\n const [t] = useTranslation();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {t('preview:status')}:\r\n \r\n \r\n \r\n {getCaseStatusName(t, caseStatus)}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n);\r\n\r\nexport const LeaseholdTypePreviewBlock = observer(({ type, leaseholdType, currentPanel, showLabel = true }) => {\r\n const [t] = useTranslation();\r\n const [vtLeaseholdTypes, setVtLeaseholdTypes] = useState([]);\r\n\r\n useEffect(() => {\r\n let isLoaded = true;\r\n const loadDomains = async () => {\r\n const myTypes = await getLeaseholdTypes();\r\n if (isLoaded) {\r\n setVtLeaseholdTypes(myTypes.filter(x => x.inactive === false));\r\n }\r\n };\r\n\r\n loadDomains();\r\n return () => {\r\n isLoaded = false;\r\n };\r\n }, []);\r\n\r\n const getLeaseholdTypeName = leaseholdTypeCode => {\r\n if (leaseholdTypeCode === undefined) {\r\n return '';\r\n }\r\n const myType = vtLeaseholdTypes.find(typeCode => typeCode.code === leaseholdTypeCode);\r\n return myType ? myType.name : '';\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n});\r\n\r\nexport const WorkTypePreviewBlock = observer(({ workType, currentPanel, showLabel = false }) => {\r\n const [t] = useTranslation();\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n\r\nexport const ManagersPreviewBlock = observer(\r\n ({ managers, currentPanel, locationSpecific = true, showLabel = true }) => {\r\n const [t] = useTranslation();\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 }\r\n);\r\n\r\nexport const ComplementingFactsPreviewBlock = observer(\r\n ({\r\n additionalInformation,\r\n childCases,\r\n parentCases,\r\n attachments,\r\n currentPanel,\r\n locationSpecific = true,\r\n showLabel = true\r\n }) => {\r\n const [t] = useTranslation();\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n {t('preview:relatedCases')}: {/* StyledCol */}\r\n {t('preview:caseOwner')}\r\n \r\n {childCases?.map(childCase => (\r\n \r\n \r\n {childCase.purpose !== undefined\r\n ? `${getPreviewConnectedCaseShortTypeName(t, childCase.childEntityType)} ${childCase.caseNumber} ${\r\n childCase.purpose\r\n }`\r\n : `${getPreviewConnectedCaseShortTypeName(t, childCase.childEntityType)} ${childCase.caseNumber}`}\r\n \r\n {`${childCase.owner}`}\r\n \r\n ))}\r\n {parentCases?.map(parentCase => (\r\n \r\n \r\n {parentCase.purpose !== undefined\r\n ? `${getPreviewConnectedCaseShortTypeName(t, parentCase.parentEntityType)} ${parentCase.caseNumber} ${\r\n parentCase.purpose\r\n }`\r\n : `${getPreviewConnectedCaseShortTypeName(t, parentCase.parentEntityType)} ${parentCase.caseNumber}`}\r\n \r\n {`${parentCase.owner}`}\r\n \r\n ))}\r\n \r\n\r\n a.fileName).join(', ')\r\n }\r\n ]}\r\n />\r\n \r\n );\r\n }\r\n);\r\n\r\nexport const DateAndTimePreviewBlock = observer(\r\n ({ dateTimeInfo, prolongedTo, currentPanel, showLabel = true, prolongedStatus }) => {\r\n const [t] = useTranslation();\r\n return (\r\n \r\n \r\n \r\n {prolongedTo && prolongedStatus === CaseStatus.Approved ? (\r\n \r\n ) : null}\r\n \r\n );\r\n }\r\n);\r\n\r\nexport const EntrepreneurPreviewBlock = observer(({ entrepreneur, currentPanel, showLabel = true }) => {\r\n const [t] = useTranslation();\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n );\r\n});\r\n\r\nexport const InspectionPreviewBlock = observer(({ inspectionDate, location, showLabel = true }) => {\r\n const [t] = useTranslation();\r\n return inspectionDate === undefined && location === undefined ? null : (\r\n \r\n \r\n \r\n \r\n );\r\n});\r\n\r\nexport const InvoicePreviewBlock = observer(({ recoveryInvoiceDate, sendRecoveryInvoice, showLabel = true }) => {\r\n const [t] = useTranslation();\r\n return recoveryInvoiceDate === undefined && sendRecoveryInvoice === undefined ? null : (\r\n \r\n \r\n \r\n \r\n );\r\n});\r\n\r\nexport const MotivationPreviewBlock = observer(({ answer, handlingOfficerName, showLabel = true }) => {\r\n const [t] = useTranslation();\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n );\r\n});\r\n\r\nexport const RecoveryPreviewBlock = observer(\r\n ({ recoveryInspectionDate, recoveryInspectionNeeded, showLabel = true }) => {\r\n const [t] = useTranslation();\r\n return recoveryInspectionDate === undefined && recoveryInspectionNeeded === undefined ? null : (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n);\r\n\r\nexport const PurposePreviewBlock = observer(\r\n ({ purpose, executedIns, domains, workMethodAndDepth, currentPanel, showLabel = true }) => {\r\n const [t] = useTranslation();\r\n const convertWorkTypes = () => {\r\n return domains\r\n ?.find(d => d.domainName === DomainName.WorkType)\r\n ?.codedValues.filter(domainValue => purpose.workTypes?.includes(domainValue.code))\r\n .map(domainValue => domainValue.description)\r\n .map(type => ({\r\n key: `workType#${type}`,\r\n value: type\r\n }));\r\n };\r\n const convertExecutedIns = () => {\r\n return domains\r\n ?.find(d => d.domainName === DomainName.WorkPerformed)\r\n ?.codedValues.filter(domainValue => executedIns?.includes(domainValue.code))\r\n .map(domainValue => domainValue.description)\r\n .map(executedIn => ({\r\n key: `executedIns#${executedIn}`,\r\n value: executedIn\r\n }));\r\n };\r\n const convertWorkMethods = () => {\r\n return domains\r\n ?.find(d => d.domainName === DomainName.WorkMethod)\r\n ?.codedValues.filter(domainValue => workMethodAndDepth.workMethod?.includes(domainValue.code))\r\n .map(domainValue => domainValue.description)\r\n .map(method => ({\r\n key: `workMethod#${method}`,\r\n value: method\r\n }));\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 \r\n \r\n \r\n \r\n );\r\n }\r\n);\r\n","export const ApplicationName = 'diggingPermitClient';\r\n\r\nexport const QueryParameterNames = {\r\n ReturnUrl: 'returnUrl',\r\n Message: 'message'\r\n};\r\n\r\nexport const LogoutActions = {\r\n LogoutCallback: 'logout-callback',\r\n Logout: 'logout',\r\n LoggedOut: 'logged-out'\r\n};\r\n\r\nexport const LoginActions = {\r\n Login: 'login',\r\n LoginCallback: 'login-callback',\r\n LoginFailed: 'login-failed',\r\n Profile: 'profile',\r\n Register: 'register'\r\n};\r\n\r\nconst prefix = '/authentication';\r\n\r\nexport const ApplicationPaths = {\r\n ApiAuthorizationClientConfigurationUrl: `_configuration/${ApplicationName}`,\r\n ApiAuthorizationPrefix: prefix,\r\n Login: `${prefix}/${LoginActions.Login}`,\r\n LoginFailed: `${prefix}/${LoginActions.LoginFailed}`,\r\n LoginCallback: `${prefix}/${LoginActions.LoginCallback}`,\r\n Register: `${prefix}/${LoginActions.Register}`,\r\n Profile: `${prefix}/${LoginActions.Profile}`,\r\n LogOut: `${prefix}/${LogoutActions.Logout}`,\r\n LoggedOut: `${prefix}/${LogoutActions.LoggedOut}`,\r\n LogOutCallback: `${prefix}/${LogoutActions.LogoutCallback}`,\r\n IdentityRegisterPath: 'Identity/Account/Register',\r\n IdentityManagePath: 'Identity/Account/Manage'\r\n};\r\n","export const CaseStatus = {\r\n New: -2,\r\n Created: -1,\r\n Registered: 0,\r\n Processed: 1,\r\n Approved: 2,\r\n WorkDone: 3,\r\n Closed: 4,\r\n RequiresAdditionalInformation: 5,\r\n Declined: 6,\r\n Revoked: 7\r\n};\r\n\r\nexport const CaseStatusGroup = {\r\n Ongoing: 0,\r\n Completed: 1\r\n};\r\n","export const Panel = {\r\n Case: 'case',\r\n Questioneer: 'questioneer',\r\n InvoiceAddress: 'invoiceAdress',\r\n EntrepreneurAndSupervisor: 'entrepreneur&supervisor',\r\n Purpose: 'purpose',\r\n WorkPerformedIn: 'workPerformed',\r\n WorkMethod: 'workMethod',\r\n AdditionalInformation: 'additionalInformation',\r\n DateAndTimePeriod: 'dateAndTimePeriod',\r\n Location: 'location',\r\n Extent: 'extent',\r\n ConnectedCases: 'connectedCases',\r\n Recovery: 'recovery',\r\n TermsAndConditions: 'termsAndCoditions',\r\n CreateTAPlan: 'createTAPlan',\r\n WorkType: 'workType',\r\n MarkingManager: 'markingManager',\r\n InspectionManager: 'inspectionManager',\r\n CreateLeasehold: 'createLeasehold',\r\n LeaseholdTypes: 'leaseholdTypes'\r\n};\r\n","export const UploadedBy = {\r\n Applicant: 0,\r\n Geosecma: 1,\r\n HandlingOfficer: 2\r\n};\r\n","export const Step = {\r\n Basic: 0,\r\n Map: 1,\r\n Errand: 2,\r\n Managers: 2,\r\n Finish: 3\r\n};\r\n","export const DomainName = {\r\n ApprovalStatement: 'ApprovalStatement',\r\n Department: 'Department',\r\n DepartmentMember: 'DepartmentMember',\r\n HandlingOfficer: 'HandlingOfficer',\r\n LeaseholdType: 'LeaseholdType',\r\n RecoveryType: 'RecoveryType',\r\n Regulation: 'Regulation',\r\n Reviewer: 'Reviewer',\r\n Status: 'Status',\r\n WorkMethod: 'WorkMethod',\r\n WorkPerformed: 'WorkPerformed',\r\n WorkType: 'WorkType'\r\n};\r\n","import { UserManager, WebStorageStateStore } from 'oidc-client';\r\nimport { ApplicationName, ApplicationPaths } from './ApiAuthorizationConstants';\r\n\r\nexport class AuthorizeService {\r\n _callbacks = [];\r\n _nextSubscriptionId = 0;\r\n _user = null;\r\n _isAuthenticated = false;\r\n\r\n // By default pop ups are disabled because they don't work properly on Edge.\r\n // If you want to enable pop up authentication simply set this flag to false.\r\n _popUpDisabled = true;\r\n\r\n async isAuthenticated() {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && !user.expired;\r\n //const user = await this.getUser();\r\n //return !!user;\r\n }\r\n\r\n async getUser() {\r\n if (this._user && this._user.profile) {\r\n return this._user.profile;\r\n }\r\n\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.profile;\r\n }\r\n\r\n async getAccessToken() {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.access_token;\r\n }\r\n\r\n // We try to authenticate the user in three different ways:\r\n // 1) We try to see if we can authenticate the user silently. This happens\r\n // when the user is already logged in on the IdP and is done using a hidden iframe\r\n // on the client.\r\n // 2) We try to authenticate the user using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 3) If the two methods above fail, we redirect the browser to the IdP to perform a traditional\r\n // redirect flow.\r\n async signIn(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const silentUser = await this.userManager.signinSilent(this.createArguments());\r\n this.updateState(silentUser);\r\n return this.success(state);\r\n } catch (silentError) {\r\n // User might not be authenticated, fallback to popup authentication\r\n console.log('Silent authentication error: ', silentError);\r\n\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error(\r\n \"Popup disabled. Change 'AuthorizeService.js:AuthorizeService._popupDisabled' to false to enable it.\"\r\n );\r\n }\r\n\r\n const popUpUser = await this.userManager.signinPopup(this.createArguments());\r\n this.updateState(popUpUser);\r\n return this.success(state);\r\n } catch (popUpError) {\r\n if (popUpError.message === 'Popup window closed') {\r\n // The user explicitly cancelled the login action by closing an opened popup.\r\n return this.error('The user closed the window.');\r\n } else if (!this._popUpDisabled) {\r\n console.log('Popup authentication error: ', popUpError);\r\n }\r\n\r\n // PopUps might be blocked by the user, fallback to redirect\r\n try {\r\n await this.userManager.signinRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectError) {\r\n console.log('Redirect authentication error: ', redirectError);\r\n return this.error(redirectError);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async completeSignIn(url) {\r\n try {\r\n localStorage.removeItem('DiggingPermitApplicant_geosecma_dashboard_1');\r\n localStorage.removeItem('rootState');\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.signinCallback(url);\r\n this.updateState(user);\r\n return this.success(user && user.state);\r\n } catch (error) {\r\n console.log('There was an error signing in: ', error);\r\n return this.error('There was an error signing in.');\r\n }\r\n }\r\n\r\n // We try to sign out the user in two different ways:\r\n // 1) We try to do a sign-out using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 2) If the method above fails, we redirect the browser to the IdP to perform a traditional\r\n // post logout redirect flow.\r\n async signOut(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error(\r\n \"Popup disabled. Change 'AuthorizeService.js:AuthorizeService._popupDisabled' to false to enable it.\"\r\n );\r\n }\r\n\r\n await this.userManager.signoutPopup(this.createArguments());\r\n this.updateState(undefined);\r\n return this.success(state);\r\n } catch (popupSignOutError) {\r\n console.log('Popup signout error: ', popupSignOutError);\r\n try {\r\n await this.userManager.signoutRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectSignOutError) {\r\n console.log('Redirect signout error: ', redirectSignOutError);\r\n return this.error(redirectSignOutError);\r\n }\r\n }\r\n }\r\n\r\n async completeSignOut(url) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const response = await this.userManager.signoutCallback(url);\r\n this.updateState(null);\r\n return this.success(response && response.data);\r\n } catch (error) {\r\n console.log(`There was an error trying to log out '${error}'.`);\r\n return this.error(error);\r\n }\r\n }\r\n\r\n updateState(user) {\r\n this._user = user;\r\n this._isAuthenticated = !!this._user;\r\n this.notifySubscribers();\r\n }\r\n\r\n subscribe(callback) {\r\n this._callbacks.push({ callback, subscription: this._nextSubscriptionId++ });\r\n return this._nextSubscriptionId - 1;\r\n }\r\n\r\n unsubscribe(subscriptionId) {\r\n const subscriptionIndex = this._callbacks\r\n .map((element, index) => (element.subscription === subscriptionId ? { found: true, index } : { found: false }))\r\n .filter(element => element.found === true);\r\n if (subscriptionIndex.length !== 1) {\r\n throw new Error(`Found an invalid number of subscriptions ${subscriptionIndex.length}`);\r\n }\r\n\r\n this._callbacks.splice(subscriptionIndex[0].index, 1);\r\n }\r\n\r\n notifySubscribers() {\r\n for (let i = 0; i < this._callbacks.length; i++) {\r\n const callback = this._callbacks[i].callback;\r\n callback();\r\n }\r\n }\r\n\r\n createArguments(state) {\r\n return { useReplaceToNavigate: true, data: state };\r\n }\r\n\r\n error(message) {\r\n return { status: AuthenticationResultStatus.Fail, message };\r\n }\r\n\r\n success(state) {\r\n return { status: AuthenticationResultStatus.Success, state };\r\n }\r\n\r\n redirect() {\r\n return { status: AuthenticationResultStatus.Redirect };\r\n }\r\n\r\n async ensureUserManagerInitialized() {\r\n if (this.userManager !== undefined) {\r\n return;\r\n }\r\n\r\n let response = await fetch(ApplicationPaths.ApiAuthorizationClientConfigurationUrl);\r\n if (!response.ok) {\r\n throw new Error(`Could not load settings for '${ApplicationName}'`);\r\n }\r\n\r\n let settings = await response.json();\r\n settings.automaticSilentRenew = true;\r\n settings.includeIdTokenInSilentRenew = true;\r\n settings.userStore = new WebStorageStateStore({\r\n prefix: ApplicationName\r\n });\r\n\r\n this.userManager = new UserManager(settings);\r\n\r\n this.userManager.events.addUserSignedOut(async () => {\r\n await this.userManager.removeUser();\r\n this.updateState(undefined);\r\n });\r\n }\r\n\r\n static get instance() {\r\n return authService;\r\n }\r\n}\r\n\r\nconst authService = new AuthorizeService();\r\n\r\nexport default authService;\r\n\r\nexport const AuthenticationResultStatus = {\r\n Redirect: 'redirect',\r\n Success: 'success',\r\n Fail: 'fail'\r\n};\r\n","import { SyncOutlined } from '@ant-design/icons';\r\nimport { Result } from 'antd';\r\nimport React, { Component } from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport styled from 'styled-components';\r\nimport { LoginActions, QueryParameterNames } from './ApiAuthorizationConstants';\r\nimport authService, { AuthenticationResultStatus } from './AuthorizeService';\r\n\r\n// The main responsibility of this component is to handle the user's login process.\r\n// This is the starting point for the login process. Any component that needs to authenticate\r\n// a user can simply perform a redirect to this component with a returnUrl query parameter and\r\n// let the component perform the login and return back to the return url.\r\n\r\nconst ResultContainer = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n height: 100vh;\r\n align-items: center;\r\n`;\r\n\r\nclass Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LoginActions.Login:\r\n this.login(this.getReturnUrl());\r\n break;\r\n case LoginActions.LoginCallback:\r\n this.processLoginCallback();\r\n break;\r\n case LoginActions.LoginFailed:\r\n const params = new URLSearchParams(window.location.search);\r\n const error = params.get(QueryParameterNames.Message);\r\n this.setState({ message: error });\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n render() {\r\n const action = this.props.action;\r\n const { message } = this.state;\r\n const { t } = this.props;\r\n if (!!message) {\r\n return
{message}
;\r\n } else {\r\n switch (action) {\r\n case LoginActions.Login:\r\n return (\r\n \r\n } title={t('general:loggingIn')} />\r\n \r\n );\r\n case LoginActions.LoginCallback:\r\n return (\r\n \r\n } title={t('general:loggingIn')} />\r\n \r\n );\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async login(returnUrl) {\r\n const state = { returnUrl };\r\n const result = await authService.signIn(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid status result ${result.status}.`);\r\n }\r\n }\r\n\r\n async processLoginCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignIn(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeSignIn finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid authentication result status '${result.status}'.`);\r\n }\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${document.baseURI}`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error('Invalid return url. The return url needs to have the same origin as the current page.');\r\n }\r\n return (state && state.returnUrl) || fromQuery || `${document.baseURI}`;\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n // It's important that we do a replace here so that we remove the callback uri with the\r\n // fragment containing the tokens from the browser history.\r\n window.location.replace(returnUrl);\r\n }\r\n}\r\nexport default withTranslation()(Login);\r\n","import { SyncOutlined } from '@ant-design/icons';\r\nimport { Result } from 'antd';\r\nimport React, { Component } from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport styled from 'styled-components';\r\nimport { LogoutActions, QueryParameterNames } from './ApiAuthorizationConstants';\r\nimport authService, { AuthenticationResultStatus } from './AuthorizeService';\r\n\r\nconst ResultContainer = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n height: 100vh;\r\n align-items: center;\r\n`;\r\n\r\n// The main responsibility of this component is to handle the user's logout process.\r\n// This is the starting point for the logout process, which is usually initiated when a\r\n// user clicks on the logout button on the LoginMenu component.\r\n\r\nclass Logout extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined,\r\n isReady: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const { t } = this.props;\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n this.logout(this.getReturnUrl());\r\n break;\r\n case LogoutActions.LogoutCallback:\r\n this.processLogoutCallback();\r\n break;\r\n case LogoutActions.LoggedOut:\r\n this.setState({ isReady: true, message: t('general:successfulLogOut') });\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n\r\n this.populateAuthenticationState();\r\n }\r\n\r\n render() {\r\n const { isReady, message } = this.state;\r\n const { t } = this.props;\r\n if (!isReady) {\r\n return
;\r\n }\r\n if (!!message) {\r\n return
{message}
;\r\n } else {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n return (\r\n \r\n } title={t('general:loggingOut')} />\r\n \r\n );\r\n case LogoutActions.LogoutCallback:\r\n return (\r\n \r\n } title={t('general:loggingOut')} />\r\n \r\n );\r\n case LogoutActions.LoggedOut:\r\n return (\r\n \r\n \r\n \r\n );\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async logout(returnUrl) {\r\n const state = { returnUrl };\r\n const isauthenticated = await authService.isAuthenticated();\r\n if (isauthenticated) {\r\n const result = await authService.signOut(state);\r\n //Clear localStorage when user logs out.\r\n localStorage.removeItem('DiggingPermitApplicant_geosecma_dashboard_1');\r\n localStorage.removeItem('rootState');\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error('Invalid authentication result status.');\r\n }\r\n } else {\r\n this.setState({ message: 'You successfully logged out!' });\r\n }\r\n }\r\n\r\n async processLogoutCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignOut(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeAuthentication finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error('Invalid authentication result status.');\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ isReady: true, authenticated });\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${document.baseURI}`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error('Invalid return url. The return url needs to have the same origin as the current page.');\r\n }\r\n return (state && state.returnUrl) || fromQuery || `${document.baseURI}`;\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n return window.location.replace(returnUrl);\r\n }\r\n}\r\n\r\nexport default withTranslation()(Logout);\r\n","import { ApplicationPaths, LoginActions, LogoutActions } from './ApiAuthorizationConstants';\r\nimport Login from './Login';\r\nimport Logout from './Logout';\r\n\r\nconst ApiAuthorizationRoutes = [\r\n {\r\n path: ApplicationPaths.Login,\r\n element: loginAction(LoginActions.Login)\r\n },\r\n {\r\n path: ApplicationPaths.LoginFailed,\r\n element: loginAction(LoginActions.LoginFailed)\r\n },\r\n {\r\n path: ApplicationPaths.LoginCallback,\r\n element: loginAction(LoginActions.LoginCallback)\r\n },\r\n {\r\n path: ApplicationPaths.Profile,\r\n element: loginAction(LoginActions.Profile)\r\n },\r\n {\r\n path: ApplicationPaths.Register,\r\n element: loginAction(LoginActions.Register)\r\n },\r\n {\r\n path: ApplicationPaths.LogOut,\r\n element: logoutAction(LogoutActions.Logout)\r\n },\r\n {\r\n path: ApplicationPaths.LogOutCallback,\r\n element: logoutAction(LogoutActions.LogoutCallback)\r\n },\r\n {\r\n path: ApplicationPaths.LoggedOut,\r\n element: logoutAction(LogoutActions.LoggedOut)\r\n }\r\n];\r\n\r\nfunction loginAction(name) {\r\n return ;\r\n}\r\n\r\nfunction logoutAction(name) {\r\n return ;\r\n}\r\n\r\nexport default ApiAuthorizationRoutes;\r\n","//import React from 'react'\r\nimport { Component } from 'react';\r\nimport { Navigate, useParams } from 'react-router-dom';\r\nimport { ApplicationPaths, QueryParameterNames } from './ApiAuthorizationConstants';\r\nimport authService from './AuthorizeService';\r\n\r\nconst AuthorizeRouteParent = props => {\r\n const { tenantId } = useParams();\r\n return ;\r\n};\r\n\r\nclass AuthorizeRoute extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ready: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._subscription = authService.subscribe(() => this.authenticationChanged());\r\n this.populateAuthenticationState();\r\n }\r\n\r\n componentWillUnmount() {\r\n authService.unsubscribe(this._subscription);\r\n }\r\n\r\n render() {\r\n const { ready, authenticated } = this.state;\r\n let link = document.createElement('a');\r\n link.href = this.props.path;\r\n document.cookie = `tenantId=${this.props.tenantId}; path=/`;\r\n const baseUrl = document.baseURI.endsWith('/') ? document.baseURI.slice(0, -1) : document.baseURI;\r\n let returnUrl = `${baseUrl}${link.pathname}${link.search}${link.hash}`;\r\n returnUrl = returnUrl.replace(':tenantId', this.props.tenantId);\r\n const redirectUrl = `${ApplicationPaths.Login}?${QueryParameterNames.ReturnUrl}=${encodeURI(returnUrl)}`;\r\n if (!ready) {\r\n return
;\r\n } else {\r\n const { element } = this.props;\r\n return authenticated ? element : ;\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ ready: true, authenticated });\r\n }\r\n\r\n async authenticationChanged() {\r\n this.setState({ ready: false, authenticated: false });\r\n await this.populateAuthenticationState();\r\n }\r\n}\r\n\r\nexport default AuthorizeRouteParent;\r\n","import Icon from '@ant-design/icons';\r\nimport { Button, Col, Row } from 'antd';\r\nimport { ReactComponent as GeosecmaIcon } from 'lib/icons/geosecma-background.svg';\r\nimport PropTypes from 'prop-types';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Link, Navigate } from 'react-router-dom';\r\nimport styled from 'styled-components';\r\n\r\nconst SelectCol = styled(Col)`\r\n height: 100%;\r\n border-left: 1px solid #f0f2f5;\r\n transition: flex 0.5s;\r\n background-color: white;\r\n display: flex;\r\n justify-content: center;\r\n`;\r\nconst StyledContainer = styled.div`\r\n margin-top: 7%;\r\n`;\r\nconst StyledBackgroundIcon = styled(Icon)`\r\n position: absolute;\r\n left: -15px;\r\n bottom: -50px;\r\n font-size: 35em;\r\n`;\r\nconst StyledTypeContainer = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.2);\r\n text-align: center;\r\n margin-left: 20px;\r\n margin-right: 20px;\r\n font-size: 1.5em;\r\n border-radius: 5px;\r\n z-index: 2;\r\n`;\r\n\r\nconst StyledButtonContainer = styled.div`\r\n margin: 15px;\r\n`;\r\n\r\nconst StyledHeader = styled.h1`\r\n text-align: center;\r\n color: #231f20;\r\n font-size: 2em;\r\n margin-bottom: 25px;\r\n`;\r\nconst StyledFlexbox = styled.div`\r\n display: flex;\r\n flex-wrap: nowrap;\r\n`;\r\n\r\nconst StyledDescriptionDiv = styled.div`\r\n width: calc(100% - 30px);\r\n font-size: 0.6em;\r\n height: 3em;\r\n margin-top: 10px;\r\n margin-bottom: 10px;\r\n margin-left: 25px;\r\n margin-right: 25px;\r\n`;\r\n\r\nfunction getRandomColor() {\r\n const letters = '0123456789ABCDEF';\r\n let color = '';\r\n for (let i = 0; i < 6; i++) {\r\n color += letters[Math.floor(Math.random() * 16)];\r\n }\r\n return color;\r\n}\r\n/**\r\n * Component where you will choose active tenant\r\n *\r\n * @param {*} tenants\r\n */\r\nconst SelectMunicipality = ({ tenants }) => {\r\n const [t] = useTranslation();\r\n if (tenants.length === 1) {\r\n return ;\r\n }\r\n return (\r\n \r\n \r\n \r\n {t('general:chooseMunicipality')}\r\n \r\n {tenants\r\n .sort((a, b) => (a.tenantId.toLowerCase() > b.tenantId.toLowerCase() ? 1 : -1))\r\n .map(tenant => (\r\n \r\n {tenant.icon?.content ? (\r\n {t('preview:municipalityLogo')}\r\n ) : (\r\n \r\n )}\r\n
\r\n {tenant.displayName ? tenant.displayName : tenant.tenantId}\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\nSelectMunicipality.propTypes = {\r\n /**\r\n * Tenants is an array of { tenantId: '', displayName: ''}\r\n */\r\n tenants: PropTypes.array\r\n};\r\n\r\nSelectMunicipality.defaultProps = {\r\n tenants: [\r\n { tenantId: 'local', displayName: 'Gislaved' },\r\n { tenantId: 'local', displayName: 'Gislaved2' },\r\n { tenantId: 'local', displayName: 'Gislaved3' }\r\n ]\r\n};\r\n\r\nexport default SelectMunicipality;\r\n","import { getVTDomains } from './api';\r\n\r\nexport const domainNamesList = {\r\n domainNames: ['WorkMethod', 'WorkPerformed', 'WorkType']\r\n};\r\n\r\nexport const loadAllDomains = async () => {\r\n try {\r\n return await getVTDomains(domainNamesList);\r\n } catch (error) {\r\n throw error;\r\n }\r\n};\r\n","import { useErrorHandler } from 'components/ErrorHandler/ErrorHandlerContext';\r\nimport { useRootStore } from 'models/rootModel';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { getSelectedSettings, getTADomainValues, getTenant, getUser } from 'utils/api';\r\nimport { loadAllDomains } from 'utils/domainLoader';\r\n\r\nexport const Configuration = ({ children }) => {\r\n const rootStore = useRootStore();\r\n const [loaded, setLoaded] = React.useState(false);\r\n const [t] = useTranslation();\r\n const { addError } = useErrorHandler();\r\n\r\n React.useEffect(() => {\r\n const setup = async () => {\r\n try {\r\n const settings = await getSelectedSettings([\r\n 'ExternalApplicationSettings',\r\n 'MapConfiguration',\r\n 'GeneralSettings',\r\n 'MapUrlSettings'\r\n ]);\r\n rootStore.settings.setSettings(settings);\r\n } catch (error) {\r\n addError(error, t('general:errorSettings'));\r\n }\r\n\r\n loadAllDomains()\r\n .then(domains => {\r\n rootStore.setDomains(domains);\r\n })\r\n .catch(error => {\r\n addError(error, t('general:errorDomains'));\r\n });\r\n\r\n getTADomainValues()\r\n .then(taDomains => {\r\n rootStore.setTADomains(taDomains);\r\n })\r\n .catch(error => {\r\n addError(error, t('general:errorDomains'));\r\n });\r\n\r\n try {\r\n const user = await getUser();\r\n rootStore.setUser(user);\r\n } catch (error) {\r\n addError(error, t('general:errorUser'));\r\n }\r\n\r\n try {\r\n const tenant = await getTenant(rootStore.municipality.tenantId);\r\n rootStore.setMunicipality(tenant);\r\n } catch (error) {\r\n addError(error, t('general:errorTenant'));\r\n }\r\n\r\n setLoaded(true);\r\n };\r\n\r\n if (!loaded) {\r\n setup();\r\n }\r\n }, [loaded, rootStore, addError, t]);\r\n\r\n return loaded ? children : null;\r\n};\r\n","import { Avatar, Button, Col, Row } from 'antd';\r\nimport initials from 'initials';\r\nimport { observer } from 'mobx-react';\r\nimport { useRootStore } from 'models/rootModel';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styled from 'styled-components';\r\n\r\nconst NameContainer = styled.div`\r\n font-weight: bold;\r\n padding-top: 8px;\r\n text-align: center;\r\n`;\r\n\r\nconst HeaderContainer = styled.div`\r\n padding-bottom: 8px;\r\n`;\r\n\r\nconst StyledButton = styled(Button)`\r\n padding-top: 7px;\r\n padding-left: 0;\r\n`;\r\n\r\nconst regex = new RegExp(/[&/\\\\#[\\]|,+()$~%.'\":*?<>{}!¤=]/g);\r\n\r\nexport const EditUserHeader = observer(({ logoutApi, visibleFnc }) => {\r\n const { t } = useTranslation('geosecma-sidebar');\r\n const rootStore = useRootStore();\r\n const { user } = rootStore;\r\n\r\n const onLogout = () => {\r\n window.location = logoutApi;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {initials(user.name.replace(regex, ''))}\r\n \r\n \r\n \r\n {user.name}\r\n \r\n \r\n e.key === 'Escape' && visibleFnc(false)}\r\n >\r\n {t('general:logout')}\r\n \r\n \r\n \r\n \r\n );\r\n});\r\n","import { EditOutlined } from '@ant-design/icons';\r\nimport { Button, Col, Form, Input, Radio, Row } from 'antd';\r\nimport { EditUserHeader } from 'components/EditUser/EditUserHeader';\r\nimport { useErrorHandler } from 'components/ErrorHandler/ErrorHandlerContext';\r\nimport { StyledFormItem } from 'components/Forms/FormItemComponent';\r\nimport { getPreviewPostAddress } from 'lib/Antd/Preview';\r\nimport { observer } from 'mobx-react';\r\nimport { useRootStore } from 'models/rootModel';\r\nimport { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styled from 'styled-components';\r\nimport { getUser, updateUser } from 'utils/api';\r\nimport { formatMobilePhoneNumber } from 'utils/caseHelper';\r\nimport { CaseStatus } from 'utils/enumerations';\r\nimport { AccountType } from 'utils/enumerations/accountType';\r\nimport {\r\n organisationNumberValidation,\r\n socialSecurityNumberValidation,\r\n validateMessages\r\n} from 'utils/forms/validateMessages';\r\n\r\nconst LabelContainer = styled.div`\r\n font-weight: bold;\r\n`;\r\n\r\nconst FormContainer = styled.div`\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n`;\r\nconst ButtonContainer = styled.div`\r\n padding-top: 15px;\r\n`;\r\n\r\nconst StyledRadioGroup = styled(Radio.Group)`\r\n margin-top: 10px;\r\n`;\r\n\r\nconst formatSocialAndOrgNumber = value => {\r\n return value && value.length === 10 ? `${value.substr(0, 6)}-${value.substr(6, 4)}` : value;\r\n};\r\n\r\nexport const EditUserForm = observer(({ logoutApi, visibleFnc }) => {\r\n const { t } = useTranslation();\r\n const [editable, setEditable] = useState(false);\r\n const rootStore = useRootStore();\r\n const [form] = Form.useForm();\r\n const { addError } = useErrorHandler();\r\n const { user } = rootStore;\r\n const [userType, setUserType] = useState(user.accountType);\r\n\r\n const numberRequiredValidator = async (value, minLength) => {\r\n if (value && isNaN(Number(value))) {\r\n return Promise.reject(validateMessages(t).types.number);\r\n } else if (!value) {\r\n return Promise.reject(validateMessages(t).required);\r\n } else if (value.length < minLength) {\r\n return Promise.reject(t('validateMessage:requiredMinLength', { length: minLength }));\r\n } else {\r\n return Promise.resolve();\r\n }\r\n };\r\n\r\n const onEdit = () => {\r\n setEditable(!editable);\r\n };\r\n\r\n const onSave = async () => {\r\n await form.validateFields();\r\n if (userType === AccountType.Personal) {\r\n if (user.socialSecurityNumber) {\r\n user.setValues({\r\n organisationName: '',\r\n organisationNumber: ''\r\n });\r\n }\r\n } else {\r\n if (user.organisationName && user.organisationNumber) {\r\n user.setValues({\r\n socialSecurityNumber: ''\r\n });\r\n }\r\n }\r\n setEditable(!editable);\r\n await updateUser(user);\r\n updateOpenApplication();\r\n };\r\n\r\n const updateOpenApplication = () => {\r\n let openApplication = rootStore.activeApplication;\r\n if (openApplication) {\r\n if (openApplication.status <= CaseStatus.Created) {\r\n openApplication.applicant.setValues({\r\n applicantName: user.name,\r\n organisationName: user.organisationName,\r\n phoneNumber: user.phoneNumber,\r\n mobilePhoneNumber: user.mobilePhoneNumber,\r\n email: user.email,\r\n socialSecurityNumber: user.socialSecurityNumber,\r\n organisationNumber: user.organisationNumber\r\n });\r\n\r\n openApplication.billingInformation.setValues({\r\n billingAddress: user.address,\r\n billingPostalCode: user.zipCode,\r\n billingPostalCity: user.city\r\n });\r\n }\r\n } else {\r\n //no open applications, dashboard need to fetch applications from backend again\r\n window.location.reload();\r\n }\r\n };\r\n\r\n const onCancelEdit = async () => {\r\n try {\r\n let savedUser = await getUser();\r\n rootStore.setUser(savedUser);\r\n form.setFieldsValue(savedUser);\r\n } catch (error) {\r\n addError(error, t('general:errorUser'));\r\n }\r\n setEditable(false);\r\n };\r\n\r\n const onValuesChange = changedValues => {\r\n user.setValues(changedValues);\r\n };\r\n\r\n const onChangeAccountType = e => {\r\n setUserType(e.target.value);\r\n };\r\n const orgNrValidation = organisationNumberValidation(t);\r\n const socNrValidation = socialSecurityNumberValidation(t);\r\n\r\n return (\r\n <>\r\n \r\n\r\n {editable ? (\r\n <>\r\n \r\n \r\n {t('identity:person')}\r\n \r\n \r\n {t('identity:organization')}\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n {t('applicationFields:name')}\r\n \r\n \r\n \r\n \r\n \r\n {userType === AccountType.Organisation && (\r\n \r\n \r\n {t('applicationFields:organisationName')}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {userType === AccountType.Personal ? (\r\n <>\r\n {t('applicationFields:socialSecurityNumber')}\r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n {t('applicationFields:organisationNumber')}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {t('applicationFields:email')}\r\n
{user.email}
\r\n \r\n
\r\n \r\n \r\n <>\r\n {t('applicationFields:address')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('applicationFields:postalCode')}\r\n numberRequiredValidator(value, 5)\r\n }\r\n ]}\r\n >\r\n \r\n \r\n \r\n \r\n {t('applicationFields:city')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('applicationFields:mobilePhoneNumber')}\r\n numberRequiredValidator(value, 10)\r\n }\r\n ]}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('applicationFields:phoneNumber')}\r\n {\r\n //if value exist, only numbers\r\n if (!value || (value && /^[0-9]+$/.test(value))) {\r\n //correct length\r\n if (value.length === 0 || (value.length >= 8 && value.length <= 10)) {\r\n return Promise.resolve();\r\n } else {\r\n return Promise.reject(t('validateMessage:allowedPhoneNrLength'));\r\n }\r\n } else {\r\n return Promise.reject(validateMessages(t).types.number);\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 \r\n \r\n \r\n
\r\n
\r\n \r\n ) : (\r\n \r\n \r\n \r\n {t('applicationFields:name')}\r\n
{user.name}
\r\n {user.accountType === AccountType.Organisation && (\r\n
{user.organisationName}
\r\n )}\r\n \r\n
\r\n \r\n \r\n {user.accountType === AccountType.Personal ? (\r\n <>\r\n {t('applicationFields:socialSecurityNumber')}\r\n
{formatSocialAndOrgNumber(user.socialSecurityNumber)}
\r\n \r\n ) : (\r\n <>\r\n {t('applicationFields:organisationNumber')}\r\n
{formatSocialAndOrgNumber(user.organisationNumber)}
\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n {t('applicationFields:email')}\r\n
{user.email}
\r\n \r\n
\r\n \r\n \r\n {t('applicationFields:address')}\r\n
{user.address}
\r\n
{getPreviewPostAddress(user.zipCode, user.city)}
\r\n \r\n
\r\n \r\n \r\n {t('applicationFields:mobilePhoneNumber')}\r\n
{formatMobilePhoneNumber(user.mobilePhoneNumber)}
\r\n \r\n
\r\n {user.phoneNumber && user.phoneNumber.length > 0 ? (\r\n \r\n \r\n {t('applicationFields:phoneNumber')}\r\n
{user.phoneNumber}
\r\n \r\n
\r\n ) : null}\r\n \r\n \r\n {!editable && (\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 { StyledAvatar, StyledMenu } from '@geosecma/sidebar';\r\nimport { Menu, Popover } from 'antd';\r\nimport { EditUserForm } from 'components/EditUser/EditUserForm';\r\nimport initials from 'initials';\r\nimport { observer } from 'mobx-react';\r\nimport { useRootStore } from 'models/rootModel';\r\nimport React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nconst PopupContainer = styled.div`\r\n overflow-y: auto;\r\n height: 450px;\r\n`;\r\n\r\nconst regex = new RegExp(/[&/\\\\#[\\]|,+()$~%.'\":*?<>{}!¤=]/g);\r\n\r\nexport const EditUserMenu = observer(({ logoutApi, ...props }) => {\r\n const [visible, setVisible] = React.useState(false);\r\n const rootStore = useRootStore();\r\n\r\n const { user } = rootStore;\r\n\r\n const onKeyDown = e => {\r\n if (e.key === 'Enter') {\r\n setVisible(!visible);\r\n } else if (e.key === 'Escape') {\r\n setVisible(false);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n }\r\n trigger=\"click\"\r\n arrowPointAtCenter\r\n visible={visible}\r\n onVisibleChange={value => setVisible(value)}\r\n getPopupContainer={triggerNode => triggerNode.parentNode}\r\n >\r\n \r\n \r\n \r\n \r\n {initials(user.name.replace(regex, ''))}\r\n \r\n \r\n {user.name}\r\n \r\n \r\n \r\n
\r\n );\r\n});\r\n","import { useErrorHandler } from 'components/ErrorHandler/ErrorHandlerContext';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport styled from 'styled-components';\r\nimport { getVersionNumber } from 'utils/api';\r\n\r\nconst StyledInfo = styled.div`\r\n color: #231f20;\r\n`;\r\n\r\nexport const VersionInfo = () => {\r\n const [t] = useTranslation();\r\n const [state, setState] = useState();\r\n const { addError } = useErrorHandler();\r\n\r\n useEffect(() => {\r\n let ignore = false;\r\n\r\n const fetchVersion = async () => {\r\n try {\r\n const result = await getVersionNumber();\r\n if (!ignore) {\r\n setState(result.version);\r\n }\r\n } catch (error) {\r\n addError(error);\r\n }\r\n };\r\n\r\n fetchVersion();\r\n\r\n return () => (ignore = true);\r\n }, [addError]);\r\n\r\n return (\r\n
\r\n \r\n {t('general:applicationName') + ' version ' + state}\r\n \r\n
\r\n );\r\n};\r\n","import { QuestionOutlined } from '@ant-design/icons';\r\nimport { StyledAvatar, StyledMenu } from '@geosecma/sidebar';\r\nimport SubMenu from 'antd/lib/menu/SubMenu';\r\nimport { observer } from 'mobx-react';\r\nimport { useRootStore } from 'models/rootModel';\r\n\r\n//WCAG: Not possible to control ant visiblity with keyboard. https://github.com/ant-design/ant-design/issues/14356\r\n\r\nconst SelectMunicipality = () => {\r\n const { municipality } = useRootStore();\r\n\r\n return (\r\n \r\n \r\n \r\n {municipality.icon ? (\r\n \r\n ) : (\r\n } data-testid=\"showMunicipalitiesButton\" />\r\n )}\r\n \r\n {municipality.displayName ? municipality.displayName : municipality.tenantId}\r\n \r\n }\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default observer(SelectMunicipality);\r\n","import { FormOutlined, HomeOutlined, SettingOutlined } from '@ant-design/icons';\r\nimport DashboardDependencies from '@geosecma/dashboard/dist/dependencies.json';\r\nimport FileUploaderDependencies from '@geosecma/file-uploader/dist/dependencies.json';\r\nimport MapConfigDependencies from '@geosecma/map-configuration/dist/dependencies.json';\r\nimport MapDependencies from '@geosecma/map/dist/dependencies.json';\r\nimport SettingsDependencies from '@geosecma/settings/dist/dependencies.json';\r\nimport { AboutMenu, LinkMenu, Sidebar } from '@geosecma/sidebar';\r\nimport SidebarDependencies from '@geosecma/sidebar/dist/dependencies.json';\r\nimport { EditUserMenu } from 'components/EditUser/EditUserMenu';\r\nimport { ApplicationPaths } from 'lib/api-authorization/ApiAuthorizationConstants';\r\nimport authService from 'lib/api-authorization/AuthorizeService';\r\nimport { useRootStore } from 'models/rootModel';\r\nimport { useCallback, useEffect, useMemo, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport diggingPermitLicenses from 'utils/diggingPermit.json';\r\nimport nugetLicenses from 'utils/packagesList.json';\r\nimport { VersionInfo } from './AboutDiggingPermit/VersionInfo';\r\nimport SelectMunicipality from './SelectMunicipality/SelectMunicipality';\r\n\r\nconst grcLicenses = [];\r\nMapConfigDependencies.forEach(dependency => {\r\n if (!grcLicenses.find(grcLicense => grcLicense.name === dependency.name)) {\r\n grcLicenses.push({\r\n name: dependency.name,\r\n link: dependency.repository.url,\r\n licenseType: dependency.license,\r\n comment: dependency.version\r\n });\r\n }\r\n});\r\nMapDependencies.forEach(dependency => {\r\n if (!grcLicenses.find(grcLicense => grcLicense.name === dependency.name)) {\r\n grcLicenses.push({\r\n name: dependency.name,\r\n link: dependency.repository.url,\r\n licenseType: dependency.license,\r\n comment: dependency.version\r\n });\r\n }\r\n});\r\nFileUploaderDependencies.forEach(dependency => {\r\n if (!grcLicenses.find(grcLicense => grcLicense.name === dependency.name)) {\r\n grcLicenses.push({\r\n name: dependency.name,\r\n link: dependency.repository.url,\r\n licenseType: dependency.license,\r\n comment: dependency.version\r\n });\r\n }\r\n});\r\nSettingsDependencies.forEach(dependency => {\r\n if (!grcLicenses.find(grcLicense => grcLicense.name === dependency.name)) {\r\n grcLicenses.push({\r\n name: dependency.name,\r\n link: dependency.repository.url,\r\n licenseType: dependency.license,\r\n comment: dependency.version\r\n });\r\n }\r\n});\r\nDashboardDependencies.forEach(dependency => {\r\n if (!grcLicenses.find(grcLicense => grcLicense.name === dependency.name)) {\r\n grcLicenses.push({\r\n name: dependency.name,\r\n link: dependency.repository.url,\r\n licenseType: dependency.license,\r\n comment: dependency.version\r\n });\r\n }\r\n});\r\nSidebarDependencies.forEach(dependency => {\r\n if (!grcLicenses.find(grcLicense => grcLicense.name === dependency.name)) {\r\n grcLicenses.push({\r\n name: dependency.name,\r\n link: dependency.repository.url,\r\n licenseType: dependency.license,\r\n comment: dependency.version\r\n });\r\n }\r\n});\r\n\r\nexport const CustomSidebar = () => {\r\n const [t] = useTranslation();\r\n const { municipality } = useRootStore();\r\n const [user, setUser] = useState();\r\n\r\n const getMunicipalityLinkPath = useCallback(\r\n linkPath => `/${municipality.tenantId}/${linkPath}`,\r\n [municipality.tenantId]\r\n );\r\n\r\n useEffect(() => {\r\n authService.getUser().then(setUser);\r\n }, []);\r\n\r\n const baseUrl = document.baseURI.endsWith('/') ? document.baseURI.slice(0, -1) : document.baseURI;\r\n const logoutUrl = `${baseUrl}${ApplicationPaths.LogOut}?returnUrl=${baseUrl}/`;\r\n\r\n const sidebarMenu = useMemo(\r\n () => ({\r\n title: t('application:title'),\r\n collapsedTitle: t('application:expand'),\r\n isCollapsed: true,\r\n localStorageKey: 'geosecma:application:sidebarCollapsed',\r\n firstMenu: [\r\n {\r\n hasAccess: true,\r\n props: {\r\n linkPath: getMunicipalityLinkPath('dashboard'),\r\n icon: ,\r\n title: t('application:dashboard'),\r\n key: 'dashboard'\r\n },\r\n menuComponent: LinkMenu\r\n },\r\n {\r\n hasAccess: true,\r\n props: {\r\n linkPath: getMunicipalityLinkPath('case'),\r\n icon: ,\r\n title: t('application:createCase'),\r\n key: 'case'\r\n },\r\n menuComponent: LinkMenu\r\n }\r\n ],\r\n secondMenu: [\r\n {\r\n hasAccess: true,\r\n props: {\r\n key: 'selectMunicipality'\r\n },\r\n menuComponent: SelectMunicipality\r\n },\r\n {\r\n hasAccess: true,\r\n props: {\r\n key: 'user',\r\n logoutApi: logoutUrl\r\n },\r\n menuComponent: EditUserMenu\r\n },\r\n {\r\n hasAccess: user?.role === 'Admin',\r\n props: {\r\n linkPath: getMunicipalityLinkPath('settings'),\r\n key: 'settings',\r\n icon: ,\r\n title: t('application:settings')\r\n },\r\n menuComponent: LinkMenu\r\n },\r\n {\r\n hasAccess: true,\r\n props: {\r\n key: 'about',\r\n about: t('application:about'),\r\n title: t('general:licensesTitle'),\r\n jsLicenses: diggingPermitLicenses,\r\n nugetLicenses,\r\n grcLicenses,\r\n licensesListText: t('general:licensesList'),\r\n versionNumberComponent: ,\r\n showSupportLinks: false\r\n },\r\n menuComponent: AboutMenu\r\n }\r\n ]\r\n }),\r\n [t, getMunicipalityLinkPath, user, logoutUrl]\r\n );\r\n\r\n return ;\r\n};\r\n","import { Layout as AntdLayout } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport styled from 'styled-components';\r\nimport { CustomSidebar } from '../CustomSidebar/CustomSidebar';\r\n\r\nconst { Content } = AntdLayout;\r\n\r\nconst StyledLayout = styled(AntdLayout)`\r\n height: 100vh;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n padding: 30px;\r\n`;\r\n\r\nconst ContentContainer = styled(Content)`\r\n background-color: #f2f2f2;\r\n`;\r\n\r\n/**\r\n * Layout with a sidebar and content area\r\n */\r\nexport const Layout = props => {\r\n return (\r\n \r\n \r\n \r\n {props.children}\r\n \r\n \r\n );\r\n};\r\n\r\nLayout.propTypes = {\r\n /**\r\n * HTML elements or React nodes\r\n */\r\n children: PropTypes.node\r\n};\r\n","import { Configuration } from 'components/Shell/Configuration/Configuration';\r\nimport { useRootStore } from 'models/rootModel';\r\nimport { Outlet, useParams } from 'react-router-dom';\r\nimport { Layout } from '../../components/Layout/Layout';\r\n\r\n/**\r\n * Handles tenant routes and renders each route inside of a tenantId\r\n */\r\nconst TenantHandler = () => {\r\n const rootStore = useRootStore();\r\n const { tenantId } = useParams();\r\n\r\n if (rootStore.municipality.tenantId !== tenantId) {\r\n //TODO Change tenant, fetch settings etc maybe?\r\n //TODO Check what tenants the user has access to and only set municipality if it exists, otherwise redirect to current tenantId\r\n if (localStorage && localStorage.rootState) {\r\n localStorage.removeItem('rootState');\r\n }\r\n rootStore.removeAllApplications();\r\n rootStore.setMunicipality({ tenantId });\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TenantHandler;\r\n","import { Button, Result, Spin } from 'antd';\r\nimport ApiAuthorizationRoutes from 'lib/api-authorization/ApiAuthorizationRoutes';\r\nimport AuthorizeRoute from 'lib/api-authorization/AuthorizeRoute';\r\nimport authService from 'lib/api-authorization/AuthorizeService';\r\nimport React, { lazy, Suspense, useCallback, useEffect, useReducer, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Navigate, Route, Routes } from 'react-router-dom';\r\nimport SelectMunicipality from 'routes/SelectMunicipality/SelectMunicipality';\r\nimport TenantHandler from 'routes/TenantHandler/TenantHandler';\r\nimport styled from 'styled-components';\r\nimport { getLicense, getTenant, getTenants } from 'utils/api';\r\nimport './custom.css';\r\n\r\nconst CenterDiv = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 100vh;\r\n`;\r\n\r\nconst Dashboard = lazy(() => import('routes/TenantHandler/Dashboard/Dashboard'));\r\nconst CaseHandler = lazy(() => import('routes/TenantHandler/CaseHandler/CaseHandler'));\r\nconst AdminSettings = lazy(() => import('routes/TenantHandler/AdminSettings/AdminSettings'));\r\n\r\nconst App = () => {\r\n const [tenants, setTenants] = useState([]);\r\n const [loaded, setLoaded] = useState(false);\r\n const [user, setUser] = useState();\r\n\r\n useEffect(() => {\r\n authService.getUser().then(setUser);\r\n }, []);\r\n const [backendError, setBackendError] = useReducer((state, newState) => ({ ...state, ...newState }), {\r\n active: false,\r\n status: '500' //'success' | 'error' | 'info' | 'warning'| '404' | '403' | '500'\r\n });\r\n\r\n const [t] = useTranslation();\r\n\r\n const onLogout = () => {\r\n window.location = 'api/user/logout';\r\n };\r\n\r\n const createError = useCallback(({ message, title, status }) => {\r\n setBackendError({\r\n active: true,\r\n message,\r\n title,\r\n status\r\n });\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const setup = async () => {\r\n try {\r\n const hasLicence = await getLicense();\r\n if (!hasLicence) {\r\n createError({\r\n message: t('general:noLicense'),\r\n title: t('general:noLicenseTitle'),\r\n status: '404'\r\n });\r\n setLoaded(true);\r\n return;\r\n }\r\n } catch (error) {\r\n createError({\r\n message: error.reason,\r\n title: error.title,\r\n status: '500'\r\n });\r\n }\r\n try {\r\n const tenantDatabases = await getTenants();\r\n let listOfTenants = [];\r\n await Promise.all(\r\n tenantDatabases.map(async tenant => {\r\n const tenantInstance = await getTenant(tenant.tenantId);\r\n listOfTenants.push(tenantInstance);\r\n })\r\n );\r\n setTenants(listOfTenants);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n setLoaded(true);\r\n };\r\n\r\n if (!loaded) {\r\n setup();\r\n }\r\n }, [createError, loaded, t]);\r\n\r\n if (!loaded) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return backendError.active ? (\r\n \r\n \r\n {t('general:logout')}\r\n \r\n ) : null\r\n }\r\n />\r\n \r\n ) : (\r\n \r\n \r\n \r\n }\r\n >\r\n \r\n {ApiAuthorizationRoutes.map((route, index) => {\r\n const { element, ...rest } = route;\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\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 }\r\n >\r\n \r\n \r\n }\r\n />\r\n {user?.role === 'Admin' && (\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 App;\r\n","import esriConfig from '@arcgis/core/config.js';\r\nimport { ConfigProvider } from 'antd';\r\nimport { rootStore, RootStoreProvider } from 'models/rootModel';\r\nimport moment from 'moment';\r\nimport 'moment/locale/sv';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { domPurifyOpenLinksInNewWindow } from 'utils/DomPurifyHooks';\r\nimport { getLanguage } from 'utils/locale';\r\nimport App from './app';\r\n\r\nesriConfig.assetsPath = `${process.env.PUBLIC_URL}/assets`;\r\n\r\nlet baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nbaseUrl = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;\r\nconst rootElement = document.getElementById('root');\r\n\r\ndomPurifyOpenLinksInNewWindow();\r\n\r\nmoment.locale('sv');\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n rootElement\r\n);\r\n","import DOMPurify from 'dompurify';\r\n\r\nexport function domPurifyOpenLinksInNewWindow() {\r\n DOMPurify.addHook('afterSanitizeAttributes', function (node) {\r\n if ('target' in node) {\r\n node.setAttribute('target', '_blank');\r\n node.setAttribute('rel', 'noopener noreferrer');\r\n }\r\n if (!node.hasAttribute('target') && (node.hasAttribute('xlink:href') || node.hasAttribute('href'))) {\r\n node.setAttribute('xlink:show', 'new');\r\n }\r\n return node;\r\n });\r\n}\r\n","import { endpoints } from '../endpoints';\r\nimport { parseResponse } from '../parseResponse';\r\nimport { getHeader } from './generalApi';\r\n\r\nexport async function getCodedValueDomains(domainNamesList) {\r\n const nms = domainNamesList.domainNames.join('&domainNames=');\r\n return fetch(`${endpoints.codedValueDomain}/domainNames?domainNames=${nms}`, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function getCodedValueByDomainName(domainName) {\r\n return fetch(`${endpoints.codedValueDomain}/domainNames?domainNames=${domainName}`, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function getTADomainValues() {\r\n return fetch(`${endpoints.codedValueDomain}/taDomainValues`, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n","import { endpoints } from '../endpoints';\r\nimport { parseResponse } from '../parseResponse';\r\nimport { getHeader } from './generalApi';\r\n\r\nexport async function getDashboards() {\r\n return fetch(`${endpoints.dashboards}`, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n","import { parseResponse } from '../parseResponse';\r\nimport { endpoints } from '../endpoints';\r\nimport { getHeader } from './generalApi';\r\n\r\nexport async function sendToCache(credentials) {\r\n return fetch(`${endpoints.proxy}/saveTempCredentials`, {\r\n ...(await getHeader('POST')),\r\n body: JSON.stringify(credentials)\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function clearCache(services) {\r\n return fetch(`${endpoints.proxy}/clearTempCredentials`, {\r\n ...(await getHeader('DELETE')),\r\n body: JSON.stringify(services)\r\n }).then(parseResponse);\r\n}\r\n","import { endpoints } from '../endpoints';\r\nimport { parseResponse } from '../parseResponse';\r\nimport { getHeader } from './generalApi';\r\n\r\nexport async function getSearchResults(requestData) {\r\n return fetch(`${endpoints.search}`, {\r\n ...(await getHeader('POST')),\r\n body: JSON.stringify(requestData)\r\n }).then(parseResponse);\r\n}\r\n","import { parseResponse } from 'utils/parseResponse';\r\nimport { endpoints } from '../endpoints';\r\nimport { getHeader } from './generalApi';\r\n\r\nexport async function getTenants() {\r\n return fetch(`${endpoints.tenant}`, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n\r\nexport async function getTenant(tenantId) {\r\n return fetch(`${endpoints.tenant}/${tenantId}`, {\r\n ...(await getHeader('GET', tenantId))\r\n }).then(parseResponse);\r\n}\r\n","import { endpoints } from '../endpoints';\r\nimport { parseResponse } from '../parseResponse';\r\nimport { getHeader } from './generalApi';\r\n\r\nexport async function getVTDomains(domainNamesList) {\r\n const nms = domainNamesList.domainNames.join('&domainNames=');\r\n return fetch(`${endpoints.vtDomain}/domainNames?domainNames=${nms}`, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n","import { parseResponse } from 'utils/parseResponse';\r\nimport { endpoints } from '../endpoints';\r\nimport { getHeader } from './generalApi';\r\n\r\nexport async function getLeaseholdTypes() {\r\n return fetch(`${endpoints.vtLeaseholdTypes}`, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n","import { parseResponse } from 'utils/parseResponse';\r\nimport { endpoints } from '../endpoints';\r\nimport { getHeader } from './generalApi';\r\n\r\nexport async function getRecoveryTypes() {\r\n return fetch(`${endpoints.vtRecoveryTypes}`, {\r\n ...(await getHeader('GET'))\r\n }).then(parseResponse);\r\n}\r\n","import { Panel, Step } from 'utils/enumerations';\r\n\r\nexport const diggingPermitPanelOrderList = [\r\n Panel.Case,\r\n Panel.Questioneer,\r\n Panel.InvoiceAddress,\r\n Panel.EntrepreneurAndSupervisor,\r\n Panel.DateAndTimePeriod,\r\n Panel.Extent,\r\n Panel.Purpose,\r\n Panel.WorkPerformedIn,\r\n Panel.WorkMethod,\r\n Panel.AdditionalInformation,\r\n Panel.ConnectedCases\r\n];\r\n\r\nexport const taPlanPanelOrderList = [\r\n Panel.CreateTAPlan,\r\n Panel.Questioneer,\r\n Panel.InvoiceAddress,\r\n Panel.WorkType,\r\n Panel.DateAndTimePeriod,\r\n Panel.Extent,\r\n Panel.MarkingManager,\r\n Panel.InspectionManager,\r\n Panel.AdditionalInformation\r\n];\r\n\r\nexport const leaseholdPanelOrderList = [\r\n Panel.CreateLeasehold,\r\n Panel.Questioneer,\r\n Panel.InvoiceAddress,\r\n Panel.DateAndTimePeriod,\r\n Panel.Extent,\r\n Panel.AdditionalInformation\r\n];\r\n\r\nexport const diggingPermitStepPanels = [\r\n {\r\n step: Step.Basic,\r\n panels: [\r\n Panel.Case,\r\n Panel.Questioneer,\r\n Panel.InvoiceAddress,\r\n Panel.DateAndTimePeriod,\r\n Panel.EntrepreneurAndSupervisor\r\n ]\r\n },\r\n { step: Step.Map, panels: [] },\r\n { step: Step.Errand, panels: [Panel.Purpose, Panel.WorkPerformedIn, Panel.WorkMethod] },\r\n { step: Step.Finish, panels: [Panel.AdditionalInformation, Panel.ConnectedCases] }\r\n];\r\n\r\nexport const taPlanStepPanels = [\r\n {\r\n step: Step.Basic,\r\n panels: [Panel.CreateTAPlan, Panel.Questioneer, Panel.InvoiceAddress, Panel.WorkType, Panel.DateAndTimePeriod]\r\n },\r\n { step: Step.Map, panels: [] },\r\n { step: Step.Managers, panels: [Panel.MarkingManager, Panel.InspectionManager] },\r\n { step: Step.Finish, panels: [Panel.AdditionalInformation] }\r\n];\r\n\r\nexport const leaseholdStepPanels = [\r\n {\r\n step: Step.Basic,\r\n panels: [Panel.CreateLeasehold, Panel.Questioneer, Panel.InvoiceAddress, Panel.DateAndTimePeriod]\r\n },\r\n { step: Step.Map, panels: [] },\r\n { step: Step.Finish, panels: [Panel.AdditionalInformation] }\r\n];\r\n\r\nconst hasValue = value => {\r\n if (value === undefined || value === null || value === '') {\r\n return false;\r\n }\r\n if (Array.isArray(value) && value.length === 0) {\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\nexport function panelHasAnyValue(valueObject, panelName, keyPanels, propKey) {\r\n if (!hasValue(valueObject)) {\r\n return false;\r\n }\r\n\r\n if (valueObject.constructor !== Object) {\r\n const indexInPanel = keyPanels\r\n .find(panelwithKey => panelwithKey.panelName === panelName)\r\n ?.keys.findIndex(key => key === propKey);\r\n if (indexInPanel > -1) {\r\n return true;\r\n }\r\n return false;\r\n } else if (valueObject.constructor === Object) {\r\n for (const prop in valueObject) {\r\n const foundValue = panelHasAnyValue(valueObject[prop], panelName, keyPanels, prop);\r\n if (foundValue) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nexport const getPreviewPanel = panel => {\r\n switch (panel) {\r\n case Panel.Purpose:\r\n case Panel.WorkPerformedIn:\r\n case Panel.WorkMethod:\r\n return Panel.Purpose;\r\n default:\r\n return panel;\r\n }\r\n};\r\n\r\nexport const dpPanelWithKeys = [\r\n {\r\n panelName: Panel.Case,\r\n keys: ['caseName', 'location', 'ledningskollenId']\r\n },\r\n {\r\n panelName: Panel.Questioneer,\r\n keys: [\r\n 'organisationName',\r\n 'organisationNumber',\r\n 'billingAddress',\r\n 'billingPostalCode',\r\n 'applicantName',\r\n 'email',\r\n 'phone',\r\n 'mobilePhoneNumber'\r\n ]\r\n },\r\n {\r\n panelName: Panel.InvoiceAddress,\r\n keys: [\r\n 'alternativeBillingAddress',\r\n 'alternativeBillingPostalCode',\r\n 'alternativeBillingPostalCity',\r\n 'invoiceMarking'\r\n ]\r\n },\r\n {\r\n panelName: Panel.EntrepreneurAndSupervisor,\r\n keys: [\r\n 'entrepreneurName',\r\n 'entrepreneurOrganisationNumber',\r\n 'entrepreneurAddress',\r\n 'entrepreneurPostalCode',\r\n 'supervisorName',\r\n 'supervisorPhoneNumber',\r\n 'supervisorMobilePhoneNumber',\r\n 'supervisorEmail'\r\n ]\r\n },\r\n {\r\n panelName: Panel.DateAndTimePeriod,\r\n keys: ['dateFrom', 'dateTo', 'prolongedTo']\r\n },\r\n {\r\n panelName: Panel.Purpose,\r\n keys: ['purpose', 'workTypes']\r\n },\r\n {\r\n panelName: Panel.WorkPerformedIn,\r\n keys: ['executedIns']\r\n },\r\n {\r\n panelName: Panel.WorkMethod,\r\n keys: ['depth', 'workMethod']\r\n },\r\n {\r\n panelName: Panel.AdditionalInformation,\r\n keys: ['additionalInformation', 'attachments']\r\n }\r\n];\r\n\r\nexport const lhPanelWithKeys = [\r\n {\r\n panelName: Panel.CreateLeasehold,\r\n keys: ['purpose', 'location']\r\n },\r\n {\r\n panelName: Panel.Questioneer,\r\n keys: [\r\n 'organisationName',\r\n 'organisationNumber',\r\n 'billingAddress',\r\n 'billingPostalCode',\r\n 'applicantName',\r\n 'email',\r\n 'phone',\r\n 'mobilePhoneNumber'\r\n ]\r\n },\r\n {\r\n panelName: Panel.InvoiceAddress,\r\n keys: [\r\n 'alternativeBillingAddress',\r\n 'alternativeBillingPostalCode',\r\n 'alternativeBillingPostalCity',\r\n 'invoiceMarking'\r\n ]\r\n },\r\n {\r\n panelName: Panel.DateAndTimePeriod,\r\n keys: ['dateFrom', 'dateTo', 'prolongedTo']\r\n },\r\n {\r\n panelName: Panel.AdditionalInformation,\r\n keys: ['additionalInformation', 'attachments']\r\n }\r\n];\r\n\r\nexport const tapPanelWithKeys = [\r\n {\r\n panelName: Panel.CreateTAPlan,\r\n keys: ['caseName', 'location']\r\n },\r\n {\r\n panelName: Panel.Questioneer,\r\n keys: [\r\n 'organisationName',\r\n 'organisationNumber',\r\n 'billingAddress',\r\n 'billingPostalCode',\r\n 'applicantName',\r\n 'email',\r\n 'phone',\r\n 'mobilePhoneNumber'\r\n ]\r\n },\r\n {\r\n panelName: Panel.InvoiceAddress,\r\n keys: [\r\n 'alternativeBillingAddress',\r\n 'alternativeBillingPostalCode',\r\n 'alternativeBillingPostalCity',\r\n 'invoiceMarking'\r\n ]\r\n },\r\n {\r\n panelName: Panel.WorkType,\r\n keys: ['workType']\r\n },\r\n {\r\n panelName: Panel.DateAndTimePeriod,\r\n keys: ['dateFrom', 'dateTo', 'prolongedTo']\r\n },\r\n {\r\n panelName: Panel.MarkingManager,\r\n keys: ['markingManager', 'markingManagerMobilePhoneNumber']\r\n },\r\n {\r\n panelName: Panel.InspectionManager,\r\n keys: ['inspectionManager', 'inspectionManagerMobilePhoneNumber']\r\n },\r\n {\r\n panelName: Panel.AdditionalInformation,\r\n keys: ['additionalInformation', 'attachments']\r\n }\r\n];\r\n","import { Step } from 'utils/enumerations';\r\n\r\nexport const diggingPermitCase = {\r\n gid: 'test',\r\n caseType: 1,\r\n currentStep: Step.Basic,\r\n caseNumber: `testdiggingpermit1`,\r\n applicant: {\r\n applicantName: 'Applicant A',\r\n organisationName: 'Org A',\r\n phoneNumber: '+4609876534',\r\n mobilePhoneNumber: '09080780909',\r\n email: 'name@esri-sgroup.com',\r\n socialSecurityNumber: '',\r\n organisationNumber: '2220000315'\r\n },\r\n billingInformation: {\r\n billingAddress: 'Address 1',\r\n billingPostalCode: '11111',\r\n billingPostalCity: 'PostalCity 1',\r\n alternativeBillingAddress: 'Address 2',\r\n alternativeBillingPostalCode: '22222',\r\n alternativeBillingPostalCity: 'PostalCity 2',\r\n invoiceMarking: 'Mark1'\r\n },\r\n entrepreneur: {\r\n entrepreneurName: 'Entrepreneur 1',\r\n entrepreneurAddress: 'Address 3',\r\n entrepreneurPostalCode: '33333',\r\n entrepreneurPostalCity: 'PostalCity 3',\r\n entrepreneurOrganisationNumber: '',\r\n supervisorName: 'Foreman Supervisor',\r\n supervisorPhoneNumber: '012345678',\r\n supervisorMobilePhoneNumber: '123456789',\r\n supervisorEmail: 'b@b.se'\r\n },\r\n purpose: {\r\n workTypes: []\r\n },\r\n executedIns: [],\r\n workMethodAndDepth: {\r\n workMethod: []\r\n },\r\n points: [],\r\n polylines: [],\r\n polygons: [],\r\n attachments: [],\r\n childCases: []\r\n};\r\n\r\nexport const taPlanCase = {\r\n gid: 'test2',\r\n caseType: 3,\r\n currentStep: Step.Basic,\r\n caseNumber: `testtaplan1`,\r\n applicant: {\r\n applicantName: 'Applicant A',\r\n organisationName: 'Org A',\r\n phoneNumber: '+4609876534',\r\n mobilePhoneNumber: '09080780909',\r\n email: 'name@esri-sgroup.com',\r\n socialSecurityNumber: '',\r\n organisationNumber: '2220000315'\r\n },\r\n billingInformation: {\r\n billingAddress: 'Address 1',\r\n billingPostalCode: '11111',\r\n billingPostalCity: 'PostalCity 1',\r\n alternativeBillingAddress: 'Address 2',\r\n alternativeBillingPostalCode: '22222',\r\n alternativeBillingPostalCity: 'PostalCity 2',\r\n invoiceMarking: 'Mark1'\r\n },\r\n caseInfo: {\r\n caseName: 'Entrepreneur 1',\r\n location: 'Address 3'\r\n },\r\n roadSignRegulations: [],\r\n managers: {\r\n markingManager: 'MarkingManager 1',\r\n markingManagerMobilePhoneNumber: '09080780909',\r\n inspectionManager: 'InspectorManager 1',\r\n inspectionManagerMobilePhoneNumber: '09080755509'\r\n },\r\n points: [],\r\n polylines: [],\r\n polygons: [],\r\n attachments: [],\r\n childCases: []\r\n};\r\n","import { types } from 'mobx-state-tree';\r\n\r\nconst CodedValueModel = types.model('CodedValueModel', {\r\n code: types.maybe(types.union(types.number, types.string)),\r\n description: types.string,\r\n inactive: types.boolean\r\n});\r\n\r\nexport const DomainModel = types.model('DomainModel', {\r\n domainName: types.string,\r\n codedValues: types.array(CodedValueModel)\r\n});\r\n\r\nconst CodeNameModel = types.model('CodeNameModel', {\r\n code: types.maybe(types.union(types.number, types.string)),\r\n name: types.string\r\n});\r\n\r\nexport const TADomainModel = types.model('TADomainModel', {\r\n domainName: types.string,\r\n codedValues: types.array(CodeNameModel)\r\n});\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const MunicipalityModel = types.model('MunicipalityModel', {\r\n tenantId: types.string,\r\n displayName: types.maybe(types.string),\r\n icon: types.maybe(types.frozen()),\r\n logo: types.maybe(types.frozen())\r\n});\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const ApplicationTypesModel = types.model('ApplicationTypesModel', {\r\n diggingPermit: types.boolean,\r\n leasehold: types.boolean,\r\n trafficArrangementPlan: types.boolean\r\n});\r\n","import { types } from 'mobx-state-tree';\r\n\r\nexport const ConfirmationTextsModel = types.model('ConfirmationTextsModel', {\r\n diggingPermit: types.maybe(types.string),\r\n leasehold: types.maybe(types.string),\r\n taPlan: types.maybe(types.string),\r\n signUp: types.maybe(types.string)\r\n});\r\n","import { types } from 'mobx-state-tree';\r\nimport { ConfirmationTextsModel } from './confirmationTextsModel';\r\n\r\nexport const TextsConfigurationModel = types.model('TextsConfigurationModel', {\r\n applicationHeaderText: types.maybe(types.string),\r\n confirmationTexts: types.maybe(ConfirmationTextsModel)\r\n});\r\n","import { types } from 'mobx-state-tree';\r\nimport { RowModel } from '../rowModel';\r\nimport { ApplicationTypesModel } from './applicationTypesModel';\r\nimport { TextsConfigurationModel } from './textsConfigurationModel';\r\n\r\nconst ExternalApplicationSettings = types\r\n .model('ExternalApplicationSettingsModel', {\r\n textsConfiguration: types.maybe(TextsConfigurationModel),\r\n availableApplicationTypes: types.maybe(ApplicationTypesModel),\r\n mapUrl: types.maybe(types.string),\r\n typeName: types.maybe(types.string),\r\n content: '{}'\r\n })\r\n .volatile(() => ({\r\n hasChanges: false\r\n }))\r\n .actions(self => ({\r\n setHasChanges(hasChanges) {\r\n self.hasChanges = hasChanges;\r\n },\r\n update({ mapUrl, ...applicationTypes }) {\r\n self.availableApplicationTypes = applicationTypes;\r\n self.mapUrl = mapUrl;\r\n }\r\n }));\r\n\r\nexport const ExternalApplicationSettingsModel = types\r\n .compose(RowModel, ExternalApplicationSettings)\r\n .named('ExternalApplicationSettingsStore');\r\n","import { GeneralSettingsModel } from '@geosecma/settings';\r\nimport { types } from 'mobx-state-tree';\r\nimport { RowModel } from '../rowModel';\r\n\r\nexport const GeneralSettingsStore = types.compose(RowModel, GeneralSettingsModel).named('GeneralSettingsStore');\r\n","import { MapConfigurationModel } from '@geosecma/settings';\r\nimport { types } from 'mobx-state-tree';\r\nimport { RowModel } from 'models/rowModel';\r\n\r\nconst MapConfigurationAttributes = types.model('MapConfigurationAttributes', {\r\n typeName: types.maybe(types.string),\r\n rowVersion: types.maybe(types.string),\r\n content: '{}'\r\n});\r\n\r\nexport const MapConfigurationStore = types\r\n .compose(RowModel, MapConfigurationAttributes, MapConfigurationModel)\r\n .named('MapConfigurationStore');\r\n","import { types } from 'mobx-state-tree';\r\nimport { ExternalApplicationSettingsModel } from './Settings/externalApplicationSettingsModel';\r\nimport { GeneralSettingsStore } from './Settings/GeneralSettingsModel';\r\nimport { MapConfigurationStore } from './Settings/mapConfigurationModel';\r\nimport { MapUrlSettingsStore } from './Settings/mapUrlSettingsModel';\r\n\r\nexport const SettingsModel = types\r\n .model('SettingsModel', {\r\n mapConfiguration: types.maybe(MapConfigurationStore),\r\n generalSettings: types.maybe(GeneralSettingsStore),\r\n externalApplicationSettings: types.maybe(ExternalApplicationSettingsModel),\r\n mapUrlSettings: types.maybe(MapUrlSettingsStore)\r\n })\r\n .actions(self => ({\r\n setSettings: settings => {\r\n settings.forEach(s => self.updateSettings(s.identification, s));\r\n },\r\n updateSettings: (settingsName, settings) => {\r\n let content = JSON.parse(settings.content);\r\n settings = { ...settings, ...content };\r\n switch (settingsName.toLowerCase()) {\r\n case 'mapconfiguration':\r\n self.mapConfiguration = MapConfigurationStore.create(settings);\r\n break;\r\n case 'externalapplicationsettings':\r\n self.externalApplicationSettings = ExternalApplicationSettingsModel.create(settings);\r\n break;\r\n case 'generalsettings':\r\n self.generalSettings = GeneralSettingsStore.create(settings);\r\n break;\r\n case 'mapurlsettings':\r\n self.mapUrlSettings = MapUrlSettingsStore.create(settings);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }));\r\n","import { types } from 'mobx-state-tree';\r\nimport { AccountType } from 'utils/enumerations/accountType';\r\n\r\nexport const UserModel = types\r\n .model('UserModel', {\r\n name: types.string,\r\n organisationNumber: types.maybe(types.string),\r\n organisationName: types.maybe(types.string),\r\n socialSecurityNumber: types.maybe(types.string),\r\n phoneNumber: types.maybe(types.string),\r\n mobilePhoneNumber: types.string,\r\n email: types.string,\r\n address: types.string,\r\n zipCode: types.string,\r\n city: types.string\r\n })\r\n .views(self => ({\r\n get accountType() {\r\n if (self.organisationNumber) {\r\n return AccountType.Organisation;\r\n } else {\r\n return AccountType.Personal;\r\n }\r\n }\r\n }))\r\n .actions(self => ({\r\n setValues(changedValues) {\r\n for (let key in changedValues) {\r\n self[key] = changedValues[key];\r\n }\r\n }\r\n }));\r\n","import { onSnapshot, types } from 'mobx-state-tree';\r\nimport { createContext, useContext } from 'react';\r\nimport { DiggingPermitModel } from './applications/diggingPermitModel';\r\nimport { LeaseholdModel } from './applications/leaseholdModel';\r\nimport { TAPlanModel } from './applications/taPlanModel';\r\nimport { diggingPermitCase, taPlanCase } from './ApplicationsWithTestData';\r\nimport { DomainModel, TADomainModel } from './domains/domainModel';\r\nimport { MunicipalityModel } from './municipalityModel';\r\nimport { SettingsModel } from './settingsModel';\r\nimport { UserModel } from './userModel';\r\n\r\nexport const RootModel = types\r\n .model('RootModel', {\r\n settings: SettingsModel,\r\n user: types.maybe(UserModel),\r\n domains: types.array(DomainModel),\r\n taDomains: types.array(TADomainModel),\r\n municipality: MunicipalityModel,\r\n applications: types.array(types.union(DiggingPermitModel, LeaseholdModel, TAPlanModel)),\r\n activeApplication: types.maybe(\r\n types.late(() => types.reference(types.union(DiggingPermitModel, LeaseholdModel, TAPlanModel)))\r\n )\r\n })\r\n .actions(self => ({\r\n setActiveApplication: (caseNumber, caseType) => {\r\n const application = self.applications.find(a => a.caseNumber === caseNumber && a.caseType === caseType);\r\n if (application) {\r\n self.activeApplication = application;\r\n } else {\r\n if (caseNumber === null) {\r\n self.activeApplication = undefined;\r\n } else if (self.applications.length > 0) {\r\n self.activeApplication = self.applications[0];\r\n } else {\r\n self.activeApplication = undefined;\r\n }\r\n }\r\n },\r\n setDomains: domains => {\r\n self.domains = domains;\r\n },\r\n setTADomains: taDomains => {\r\n self.taDomains = taDomains;\r\n },\r\n getDomainByName: domainName => {\r\n const chosenDomain = self.domains.find(d => d.domainName === domainName);\r\n return chosenDomain ? chosenDomain : { codedValues: [] };\r\n },\r\n addApplication: app => {\r\n self.applications.push(app);\r\n self.setActiveApplication(app.caseNumber, app.caseType);\r\n },\r\n removeApplication: tabKey => {\r\n let caseType = parseInt(tabKey.slice(0, 1));\r\n let caseNumber = tabKey.slice(1);\r\n const index = self.applications.findIndex(x => x.caseNumber === caseNumber && x.caseType === caseType);\r\n const currentApp = self.applications[index];\r\n const numberOfApplications = self.applications.length;\r\n\r\n if (numberOfApplications > 1 && self.activeApplication?.caseNumber === caseNumber) {\r\n const newActiveAppIndex = index === 0 ? index + 1 : index - 1;\r\n self.activeApplication = self.applications[newActiveAppIndex];\r\n }\r\n if (self.activeApplication?.caseNumber === caseNumber && self.activeApplication?.caseType === caseType) {\r\n let lastIndex = index - 1;\r\n\r\n if (lastIndex >= 0) {\r\n self.activeApplication = self.applications[lastIndex];\r\n } else {\r\n self.activeApplication = undefined;\r\n }\r\n }\r\n\r\n self.applications = self.applications.filter(a => a.gid !== currentApp.gid);\r\n },\r\n removeAllApplications: () => {\r\n self.applications = [];\r\n self.activeApplication = undefined;\r\n },\r\n setMunicipality: municipality => (self.municipality = municipality),\r\n setUser: user => (self.user = user)\r\n }))\r\n .views(self => ({\r\n get srid() {\r\n return self.settings?.mapConfiguration?.baseLayer?.wkid;\r\n }\r\n }));\r\n\r\nlet initialState = RootModel.create({\r\n activeApplication: undefined,\r\n applications: [],\r\n municipality: { tenantId: 'local' },\r\n settings: {}\r\n});\r\n\r\nconst data = localStorage.getItem('rootState');\r\nif (data) {\r\n const json = JSON.parse(data);\r\n if (json.applications) {\r\n json.applications.forEach(a => initialState.addApplication(a));\r\n }\r\n if (json.activeApplication) {\r\n initialState.setActiveApplication(json.activeApplication.caseNumber, json.activeApplication.caseType);\r\n }\r\n}\r\n\r\nconst diggingPermitTestCase = DiggingPermitModel.create(diggingPermitCase);\r\nexport const rootStoreForTests = RootModel.create({\r\n activeApplication: diggingPermitTestCase,\r\n applications: [diggingPermitTestCase, TAPlanModel.create(taPlanCase)],\r\n municipality: { tenantId: 'local' },\r\n settings: {\r\n externalApplicationSettings: {\r\n identification: 'externalApplicationSettings',\r\n modificationDate: 'today',\r\n availableApplicationTypes: {\r\n diggingPermit: true,\r\n leasehold: true,\r\n trafficArrangementPlan: true\r\n },\r\n textsConfiguration: {\r\n confirmationTexts: {\r\n diggingPermit: '*Digging Permit confirmationtext*',\r\n leasehold: '*Leasehold confirmationtext*',\r\n taPlan: '*TAPlan confirmationtext*'\r\n }\r\n }\r\n },\r\n generalSettings: {\r\n identification: 'GeneralSettings',\r\n modificationDate: 'today',\r\n locators: [\r\n {\r\n url: 'https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer',\r\n key: 15\r\n }\r\n ]\r\n }\r\n },\r\n user: {\r\n address: 'Adress 1b',\r\n city: 'Gislaved',\r\n email: 'name@esri-sgroup.com',\r\n mobilePhoneNumber: '0000000000',\r\n name: 'FirstName LastName',\r\n organisationName: undefined,\r\n organisationNumber: undefined,\r\n phoneNumber: '0000000000',\r\n socialSecurityNumber: '2206012383', //taken from Skatteverket testpersonnr\r\n zipCode: '11111',\r\n accountType: 'Personal'\r\n }\r\n});\r\n\r\nexport const rootStore = initialState;\r\n\r\nonSnapshot(rootStore, snapshot => {\r\n const rootSnapshot = JSON.parse(JSON.stringify(snapshot));\r\n rootSnapshot.applications.forEach(application => {\r\n application.attachments = [];\r\n application.tracker.tracker = [];\r\n });\r\n const minimalSnapshot = {\r\n applications: rootSnapshot.applications,\r\n activeApplication: rootSnapshot.activeApplication\r\n };\r\n try {\r\n localStorage.setItem('rootState', JSON.stringify(minimalSnapshot));\r\n } catch (e) {\r\n console.log(minimalSnapshot);\r\n throw e;\r\n }\r\n});\r\n\r\nconst RootStoreContext = createContext(null);\r\n\r\nexport const RootStoreProvider = RootStoreContext.Provider;\r\n\r\nexport function useRootStore() {\r\n const store = useContext(RootStoreContext);\r\n if (store === null) {\r\n throw new Error('RootStore cannot be null, please add the context provider for RootStore');\r\n }\r\n return store;\r\n}\r\n"],"sourceRoot":""}