{"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","sendingInOrSavingCase","Array","isArray","addAttachment","newAttachment","findIndex","attachment","removeAttachment","fileGid","setActiveKey","keyWithoutHash","getPanelByKey","itemKeyPanel","setSendingInOrSavingCase","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.e00bcf5d.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 sendingInOrSavingCase: false\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 setSendingInOrSavingCase: value => {\r\n self.sendingInOrSavingCase = value;\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":""}