{"version":3,"sources":["libs/fetch/index.ts","config/runtime-config.ts","serviceWorker.ts","state/MyInfoStateProvider.tsx","state/persistance.ts","store/application/application-types.ts","store/application/application-reducer.ts","store/reducers.ts","store/store.ts","entrypoint/application/Providers.tsx","pages/login/Version.tsx","pages/login/Login.tsx","components/router-navbar-tab/RouterNavbarTab.tsx","pages/home/UserTooltip.tsx","pages/home/Header.tsx","pages/home/index.tsx","components/form/details-table.tsx","pages/accident-report-form/form/components/array-items/other-vehicle-item.tsx","pages/accident-report-form/form/components/array-items/foreign-vehicle-item.tsx","pages/accident-report-form/form/components/array-items/passenger-item.tsx","pages/accident-report-form/form/components/fields/vehicle-model-field.tsx","pages/accident-report-form/form/components/array-items/third-party-item.tsx","pages/accident-report-form/form/components/array-items/injured-item.tsx","pages/accident-report-form/form/components/array-items/witness-item.tsx","pages/accident-report-form/form/components/array-items/phone-item.tsx","pages/accident-report-form/form/components/sections/DriverSection.tsx","pages/accident-report-form/form/components/array-items/driving-license-item.tsx","components/form/fields/time-input.tsx","pages/accident-report-form/form/components/sections/OwnVehicleSection.tsx","pages/accident-report-form/form/components/sections/OwnVehiclePolicySection.tsx","pages/accident-report-form/form/components/sections/AccidentSection.tsx","pages/accident-report-form/form/components/sections/ThirdPartySection.tsx","pages/accident-report-form/form/components/sections/InjuredSection.tsx","pages/accident-report-form/form/components/sections/WitnessSection.tsx","pages/accident-report-form/form/components/sections/AttachmentsSection.tsx","pages/accident-report-form/form/components/sections/AdditionalCommentSection.tsx","pages/accident-report-form/form/components/AccidentReportForm.tsx","pages/accident-report-form/form/containers/AccidentReportForm.tsx","pages/accident-report-form/form/index.tsx","pages/accident-report-form/submitted/components/AccidentReportSubmitted.tsx","pages/accident-report-form/submitted/containers/AccidentReportSubmitted.tsx","pages/accident-report-form/submitted/index.tsx","store/application/application-actions.ts","pages/settings/Settings.tsx","pages/settings/index.tsx","pages/reports/reporting.tsx","pages/reports/index.tsx","utils/mapping/mapMyInfoToReportState.ts","config/myinfo.ts","utils/mapping/mapReportStateToGears/constants/vehicleFuels.ts","utils/mapping/mapReportStateToGears/constants/vehicleMakes.ts","utils/mapping/mapReportStateToGears/constants/vehicleModels.ts","utils/mapping/mapReportStateToGears/constants/vehicleTypes.ts","utils/mapping/mapReportStateToGears/mapVehicle.ts","utils/mapping/mapReportStateToGears/getMapping.ts","utils/mapping/mapReportStateToGears/mapReportStateToGears.ts","pages/myinfo-reporting/vehicle-information.tsx","pages/myinfo-reporting/callback.tsx","pages/myinfo-reporting/driver-owner.tsx","entrypoint/application/LoggedContent.tsx","entrypoint/application/Application.tsx","entrypoint/application/ApplicationWrapper.tsx","index.tsx","utils/mapping/mapReportStateToGears/constants/drivingLicenseValidityStatuses.ts","utils/mapping/mapReportStateToGears/mappers.ts","pages/Page.tsx","config/widgets/TextWidget.tsx","config/widgets/NoopWidget.tsx","config/widgets/CardWidget.tsx","config/widgets/SelectWidget.tsx","config/widgets/LinksWidget.tsx","config/widgets/DownloadWidget.tsx","config/widgets/DocumentLinkWidget.tsx","containers/billableAction/BillableLinkAction.tsx","config/widgets/LinksBillableActionWidget.tsx","config/widgets/LinksExplorationSearchWidgetter.tsx","components/Table/Filters/DateInputFilter.tsx","components/Table/Filters/DateFilter.tsx","components/Table/Filters/TextFilter.tsx","components/Table/Filters/SelectFilter.tsx","components/Table/Filters/EnumFilter.tsx","components/Table/Filters/BooleanFilter.tsx","components/Table/Filters/IntegerInputFilter.tsx","components/Table/Filters/IntegerFilter.tsx","components/Table/Filters/DaysLeftFilter.tsx","components/Table/Filters/DaysSinceFilter.tsx","components/Table/Filters/EqualValueBooleanFilter.tsx","config/widgets/filters/LiabilityFilterWidget.tsx","components/Table/Filters/LiabilityFilter.tsx","config/widgets/filters/TextFilterWidget.tsx","config/widgets/filters/DateFilterWidget.tsx","config/widgets/filters/BooleanFilterWidget.tsx","config/widgets/filters/DaysLeftFilterWidget.tsx","config/widgets/filters/DaysSinceFilterWidget.tsx","config/widgets/filters/IntegerFilterWidget.tsx","config/widgets/filters/index.ts","config/widgets/filters/EnumFilterWidgettterFactory.tsx","config/widgets/filters/EqualConditionBooleanFilterWidget.tsx","config/widgets/TrajectoryIconWidget.tsx","config/widgets/PercentageWidget.tsx","config/widgets/MultiLineTextWidget.tsx","config/widgets/MaxWidthTextWidget.tsx","config/widgets/TextInlineWidget.tsx","config/widgets/index.ts","config/widgets/MultiWidget.tsx","utils/forms/formatters.ts","utils/forms/validations.ts","../../../Gears.ARUI.Translations/index.js","graphql/mutation-builder.ts","libs/auth/Security.tsx","libs/await.ts","utils/hooks/useLocalStorage.ts","libs/filters/sort.ts","utils/forms/enumValues.ts","config/formatters/TranslateValueFormatter.ts","components/button/SecondaryTextButton.tsx","config/configuration/GearsConfigProvider/GearsConfigProvider.ts","libs/config/QueryConfig.ts","utils/forms/myInfoPopulatedValues.ts","graphql/mocks/accidentReportingsMock.ts","graphql/mocks/accidentReportsMock.ts","graphql/mocks/explorationMock.ts","graphql/mocks/enumsMock.ts","graphql/mocks/entitiesMock.ts","graphql/mocks/mocks.ts","graphql/mocks/recoveryMock.ts","graphql/mocks/arcsMock.ts","config/configuration/clients/tests/index.ts","graphql/mocks/MockedProvider.tsx","graphql/GraphQLProvider.tsx","libs/auth/State.ts","utils/hooks/useEnums.ts","utils/index.ts","graphql/form-query-builder.ts","utils/documents/download.ts","config/routes.ts","libs/auth/okta/OktaAuthenticator.ts","entrypoint/application/auth.ts","components/button/PrimaryTextButton.tsx","config/query-options.ts","libs/graphql-query-options/GraphQLQueryOptionsProvider.tsx","components/TextInput/TextInput.tsx","libs/fetch/FetchProvider.tsx","components/form/change-tracker.tsx","components/form/fields/single-label.tsx","config/configuration/clients/GIA/common/giaConfigHelpers.ts","config/configuration/clients/GIA/accidentReportsConfig-GIA.ts","config/configuration/clients/GIA/exploration/historiesTable.ts","config/configuration/clients/GIA/exploration/person.ts","config/configuration/clients/GIA/exploration/vehicle.ts","config/configuration/clients/GIA/exploration/expandableRowSections.ts","config/configuration/clients/GIA/explorationConfig-GIA.ts","config/configuration/clients/GIA/exploration/requestStatusFromInsurer.ts","config/configuration/clients/GIA/recoveryConfig-GIA.ts","config/configuration/clients/GIA/folderConfig-GIA.ts","config/configuration/clients/GIA/gearsConfig-GIA.ts","config/configuration/clients/GIA/ncdConfig-GIA.ts","config/configuration/clients/GIA/insurerEnquiryConfig-GIA.ts","config/configuration/clients/GIA/arcConfig-GIA.ts","config/configuration/clients/GIA/thirdPartyReportConfig-GIA.ts","config/formatters/NationalIdentifierFormatter.tsx","config/formatters/SingleValueFormatter.ts","constants/index.ts","constants/colors.ts","constants/theme.ts","constants/variants.ts","constants/dates.ts","entrypoint/application/graphql.ts","config/configuration/index.ts","pages/exploration/constants.ts","config/form/AccidentReportFormSections/accident-section.ts","config/form/AccidentReportFormSections/driver-section.ts","config/form/AccidentReportFormSections/index.ts","config/form/AccidentReportFormSections/additional-comment-section.ts","config/form/AccidentReportFormSections/own-vehicle-section.ts","config/form/AccidentReportFormSections/own-vehicle-policy-section.ts","config/form/AccidentReportFormSections/third-party-section.ts","config/form/AccidentReportFormSections/injured-section.ts","config/form/AccidentReportFormSections/witness-section.ts","config/form/AccidentReportFormSections/attachments-section.ts","utils/translation/moment-config.ts","libs/auth/Secure.tsx","libs/auth/SecureRoute.tsx","pages/login/login_background.jpg","entrypoint/application/Telemetry.tsx","entrypoint/application/TrackingRouterRuleMap.ts","libs/config/QueryConfigTypes.ts","templates/useAsyncQuery.ts","libs/config/ConfigProvider.tsx","libs/config/ConfigBuilder.tsx","config/form/Recovery/initiateRecovery.ts","config/form/Recovery/drmAdjudication.ts","config/form/Recovery/waiveRecovery.ts","config/form/Recovery/withdrawOrRejectRecoveryDRM.ts","config/form/Recovery/confirmPayment.ts","config/form/Recovery/reinitiate.ts","config/form/Recovery/sendBackRecovery.ts","utils/hooks/useListFromBackend.ts","utils/translation/context-translate.tsx","constants/rows.ts","config/form/Recovery/acceptOffer.ts","config/form/Recovery/acceptCounterOffer.ts","config/form/Recovery/acceptFinalOffer.ts","config/form/Recovery/counterOffer.ts","config/form/Recovery/drmOffer.ts","libs/filters/filters.ts","graphql/queryHelper.ts","components/Route.tsx","components/form/form-field.tsx","components/form/expandable-field.tsx","components/button/TernaryTextButton.tsx","components/form/fields/enum-select-input.tsx","libs/filters/filtersConfig.ts","libs/filters/FilterProvider.tsx","containers/billableAction/ModalBillableAction.tsx","containers/billableAction/BillableAction.tsx","config/permissions.ts","utils/forms/utils.ts","config/formatters/ListFormatter.ts","config/formatters/JoinsValuesFormatter.ts","config/formatters/EnumValuesFormatter.ts","config/formatters/BooleanValueFormatter.ts","config/formatters/DateTimeFormatters.ts","config/formatters/DocumentLinkFormatter.ts","config/formatters/ThumbnailFormatter.ts","config/formatters/PDFLinkFormatter.ts","config/formatters/IdLinkFormatter.ts","config/formatters/LinksBillableActionFormatter.ts","config/formatters/PhoneNumberFormatter.ts","config/formatters/PartyConditionalFormatter.ts","config/formatters/LiabilityFormatter.ts","config/formatters/NcdValuesFormatter.ts","config/formatters/ExplorationReferenceFormatter.ts","config/formatters/PurchasedByFormatter.ts","config/formatters/RecoveryDeadlineFormatter.ts","config/formatters/NameAndCompanyFormatter.ts","config/formatters/VehicleFormatters.ts","config/formatters/DefaultValueFormatter.ts","config/formatters/EnumListValuesCommaFormatter.ts","config/formatters/ClaimantEnumFormatter.ts","config/formatters/PassengerFromatter.ts","config/formatters/DrivingLicenseClassEnumFormatter.ts","config/formatters/DrivingLicenseValidityFromatter.ts","config/formatters/index.ts","config/formatters/TernaryConditionFormatter.ts","config/formatters/LinksExplorationSearchFormatter.ts","config/formatters/MultiFormatter.ts","config/formatters/VehicleNumberSelectFormatter.ts","config/formatters/ElementAtFormatterFactory.ts","config/index.ts","graphql/query-builder.ts","graphql/mocks/recoveryMockObjects.ts","config/configuration/types/index.ts","config/configuration/GearsConfigProvider/index.ts","config/widgets/ThumbnailWidget.tsx","types/DocumentCategory.ts","components/form/conditional-form-field.tsx","libs/hooks/useKeyboardFocusableToggle.ts","components/form/form-section.jsx","components/form/FormSideBar.tsx","components/form/fields/YesNoRadio.tsx","components/form/fields/date-input.tsx","components/form/fields/integer-input.tsx","components/form/fields/files-upload.tsx","utils/documents/upload.ts","components/form/fields/files-selection.tsx","components/form/fields/split-date-input.tsx","pages/login/login_background.webp","pages/login/gia_logo.svg","pages/login/gears_logo.svg","pages/home/gears_logo.svg","resources/myinfo_retrival.png","resources/myinfo_retrival_disabled.png","utils/hooks/useIdFromParams.ts","utils/hooks/useOctopusConfig.ts","utils/hooks/useUpdateEffect.ts","MessageModal.tsx","libs/filters/FilterText.tsx","types/index.ts","components/SubHeader/SubHeaderForm.tsx","utils/translation/index.ts","components/Loader/GridCenteredCircularLoader.tsx"],"names":["runtimeConfig","config","window","Error","forEach","k","startsWith","endsWith","getConfig","googleMapClientId","googleMapApiKey","Boolean","location","hostname","match","myInfoInitialState","myInfoState","updateState","updateAndStore","clearReportState","MyInfoStateContext","createContext","loadedState","initialState","serializedState","sessionStorage","getItem","JSON","parse","e","console","log","loadState","MyInfoStateProvider","children","React","useState","setMyInfoState","useCallback","payload","prev","newState","state","stringify","setItem","saveState","removeItem","clearState","Provider","value","useMyInfoState","useContext","SET_LOCALE","fromJS","locale","Locale","en","RootReducer","combineReducers","application","action","type","set","store","createStore","compose","applyMiddleware","thunkMiddleware","Providers","StrictMode","colors","theme","variants","basename","MessageModal","auth","GearsConfigProvider","configuration","gearsConfig","GraphQLProvider","client","graphql","FetchProvider","token","accessToken","Telemetry","VersionContainer","styled","div","Version","octopusConfig","useOctopusConfig","deploymentDate","projectName","releaseVersion","StylableStyledText","withCustomStyles","StyledText","InputLabel","style","marginBottom","size","weight","MainGridItem","margin","FormGridItem","FormGrid","onSubmit","minWidth","width","direction","LoginFormContent","button","links","error","footer","ThemeContext","justifySpacing","alignSpacing","Array","isArray","map","l","i","key","color","status","message","ResumeRecoveryForm","resumeRecovery","cancel","setToken","history","useHistory","event","preventDefault","disabled","onClick","push","textStyle","textAlign","TextInput","name","onChange","LoginForm","useSecurity","login","forgotPassword","recoveringPassword","setRecoveringPassword","username","setUsername","password","setPassword","url","useRouteMatch","matched","params","useRecoveryToken","useLayoutEffect","s","autocomplete","EnrollFactorForm","factors","translate","Object","entries","factor","enroll","RequiredFactorForm","isFactorUnique","keys","length","useEffect","object","verify","CodeTextInput","label","tooltipText","tooltip","ChallengeFactorForm","factorType","code","setCode","ActivateFactorForm","activate","FACTOR_TYPES","AUTH_OTP","AuthOtpActivateFactorInfo","src","qrCode","href","height","alt","sharedSecret","ChangePasswordForm","changePassword","skip","RecoveryChallengeForm","AuthForm","LoginContent","authenticating","GridCenteredCircularLoader","giaLogo","Login","grow","position","overflow","srcSet","backgroundWebp","background","right","top","opacity","gearsLogo","RouterNavbarTab","path","exact","to","isActive","UserTooltipWrapper","Tooltip","UserOption","border","default","noMarginBottom","css","UserTooltip","anchorRef","onClickOutside","user","logout","moveCrossAxisWhenCropped","reflectMainAxisWhenCropped","orientation","wrap","text","secondary","email","noBottomBorder","NavbarTab","BaseNavbarTab","TabStyledText","HeaderTab","SecureHeaderTab","p","permissions","headerProps","LoginIcon","Header","hasAccreditationsIfArc","isExplorationRoute","exploration","id","Menu","loginIconRef","useRef","isLoginOpen","toggleLoginTooltip","padding","verticalAlign","logo","u","accidentReportList","recoveries","ncd","insurerEnquiry","thirdPartyReports","arcList","folderList","process","reporting","float","ref","withDefault","SubNavbar","withCustomVariant","Navbar","ExplorationSubMenu","ExplorationRoutes","person","vehicle","Home","props","Page","ArrayFieldWrapper","Item","fields","fieldName","index","setItemPath","item","itemIndex","TableInfo","fieldInfo","validate","paddingBottom","target","OtherVehicleItem","itemInformation","formSections","driverSection","otherVehicles","className","number","component","insurance","EnumSelectInput","enumName","ForeignVehicleItem","accidentSection","foreignVehicles","category","GetPassengerItem","gender","InternalField","vehicleMake","vehicleModel","modelTextFieldPath","modelText","useField","subscription","input","useVehicleModelsList","vehicleModelList","options","loading","refetch","computedValue","useMemo","update","model","make","find","m","undefined","isNoneEnum","VehicleModelField","manufacturerFieldInfo","modelFieldInfo","ThirdPartyItem","thirdPartySection","vehiclesOrProperties","PassengerItem","passengers","vehicleNumber","manufacturer","sort","sourceField","targetFields","manufacturerText","condition","enumValue","insuranceCompany","propertyDetails","damageNature","driverName","driverIdType","exclude","driverId","driverContactNumber","PhoneInput","defaultValue","sgCountryCode","driverAddress1","driverAddress2","driverPostCode","passengerCount","NumberInput","min","itemTitle","addItemLabel","InjuredItem","injuredSection","injuredPersons","tpVehicles","vehicleSelection","injuredVehicle","onSelectionChange","vehiclesList","list","computeInjuredVehicleList","selectedItem","primaryMobilePhone","address1","address2","postCode","age","injuriesDescription","Textarea","maxCharacterLength","maxTextAreaCharacterLength","hadSeatBeltOn","YesNoRadio","tookAmbulance","WitnessItem","witnessSection","witnesses","phone","GetPhoneItem","OwnDriverSection","initialValue","title","idTypes","useEnumOptions","filteredIdTypes","filter","idType","companyRegistrationNumberEnum","PhoneItem","altPhones","DrivingLicenseItem","startDate","licenseTypeSourceName","displayLabel","DateInput","GetDrivingLicenseItem","drivingPassInformation","isMyInfoInitiatedStatus","isMyInfoInitiated","generalInformation","accidentInformation","Name","formTranslate","isDriverPolicyHolder","typeOfId","driverOwnerRelation","driverOwnerRelationDescription","render","countryCode","isDriverSameAsOwner","isValuePopulatedByMyinfo","date","birthDate","SplitDateInput","formatValue","getYearsFromAccident","moment","DateFormat","toDate","availableDrivingLicenseInformation","passClass","passDate","passClassSourceName","drivingLicenseValidity","drivingLicenseValiditySourceName","emptyElement","postcode","occupation","SelectInput","getOccupationTypes","isOtherPersonRelation","hasOtherVehicles","initialItemsCount","enableAdd","TimePicker","otherProps","format","OwnVehicleSection","ownVehicleSection","transmissionTypes","useEnumRadioOptions","StyledTimePickerDiv","registrationNumber","variant","transmission","RadioGroupInput","engineDisplacement","IntegerInput","firstRegistrationDateUtc","vIN","purchaseDateUtc","purchaseTime","vehicleFuel","vehicleFuelText","alignItems","usagePurpose","OwnVehiclePolicySection","insurerCodeList","useArcInsurersList","ownVehiclePolicySection","policyNumber","registeredOwnerIdType","registeredOwnerId","registeredOwnerName","minCount","AccidentSection","policeStationsList","usePoliceStationsList","claimant","reportPurpose","areaOrState","countriesOrStates","maxDate","now","time","LocationPickerInput","countryRestriction","defaultLatLng","lat","lng","googleMapApiClientId","enSG","locationAdditionalInformation","hasNumberValue","weatherCondition","weatherConditionDescription","roadSurface","roadSurfaceDescription","description","foreignVehicleInvolved","vehicleCount","approachedByAssistance","reportedToPolice","policeStation","policeStationName","policeReport","contactInfo","contactInformation","marginTop","address","fax","SubHeaderForm","FilesUpload","addText","maxFileSize","acceptedFormats","FileFormats","JPG","JPEG","PNG","TIF","TIFF","documentCategory","DocumentCategory","PoliceTranscript","isMulti","noticeOfProsecutionGiven","prosecutedName","isTranslatedReport","translatorName","translatorTypeOfId","translatorId","translatorMobilePhone","translatorEmail","originalReport","PDF","UnClassified","originalLanguage","languages","originalLanguageOthers","translatedReport","ThirdPartySection","lastId","setLastId","anyThirdParties","vehiclePolicy","InjuredSection","anyInjuredPersons","anyInjuredTookAmbulance","WitnessSection","anyWitnesses","AttachmentsSection","attachmentsSection","gray","marginRight","anyAccidentPhoto","anyAccidentVideo","sketchPlan","SketchPlan","accidentOrVehiclePhotos","IncidentPhoto","privateHirePhoto","privateHireVehicle","PrivateHireCertificate","addendumForm","isDraft","AddendumForm","accidentVideos","canUploadVideo","noVideoUploadReason","MP4","MKV","MOV","AVI","_3GP","IncidentVideo","personalDocuments","DOC","DOCX","MP3","otherDocuments","AdditionalCommentSection","additionalCommentSection","useDifferentSectionIcon","collapsible","additionalComment","trim","isAddendum","isAdditionalCommentSectionVisible","specializations","mapping_Claim_FreeText","eventDescription","AccidentReportForm","submitting","submittingDraft","setSubmittingDraft","visibleFormSections","values","it","noop","initialValues","workspace","classNames","sections","onlyPreventDefault","autoComplete","enabled","errors","submitValues","submitErrors","justifyContent","marginLeft","mutators","arrayMutators","defaultProps","AccidentReportFormPage","accidentReportId","useIdFromParams","displayMessage","MessageModalContext","draft","setDraft","useMutation","insertAccidentReportMutation","insertForm","validationErrors","validateForm","field","formatErrorMessage","variables","accidentReport","transformForm","saveAsDraft","fetchPolicy","then","resp","formatGQLErrors","clearStore","data","insertAccidentReport","catch","graphQLErrors","accidentReportFormQuery","buildFormAccidentReportQuery","useQuery","displayName","GqlQueryName","getAccidentReport","loadError","entryReportInitialInformation","mapping_Claim_Statement","entryReportDateOffset","loadForm","DateOffsetFormat","accidenReport","formErrors","PDFLinkFormatter","Formatters","AccidentReportSubmitted","isDownloadingPdf","setIsDownloadingPdf","dl","useFetch","download","isDraftFn","isAR","inProgressObjectEnum","closedObjectEnum","lastVersionNumber","versions","lastSubmitDate","submissionDate","referenceCode","paddingRight","submitDate","versionNumber","transform","filename","downloader","finally","alignPlacement","brand","primary","base","AccidentReportSubmittedPage","reportSubmittedConfig","useAccidentReportsConfig","formQuery","buildQuery","context","getSubmittedAccidentReport","claim","setLocale","dispatch","changeLanguage","gridItemStyle","Settings","useSelector","get","useDispatch","rel","fontSize","claimName","claimValue","Reporting","goodDataEncryptedClaims","formUrl","setFormUrl","targetUrl","setTargetUrl","SSOProvider","setSSOProvider","encryptedClaims","setEncryptedClaims","dashboard","setDashboard","formRef","isGIASecretariat","isAdmin","dashboardLink","gia","insurer","apiConfig","reportingSecuredClaimsUri","res","json","ssoProvider","current","submit","method","getPhoneNumber","dialCode","localDialCode","COUNTRIES_INFOS","x","replace","myInfoFields","myInfoClientId","myInfoRedirectUrl","myInfoPurpose","myInfoEnvironment","myInfoAuthUrl","myInfoPersonUrl","MyInfo","authUrl","clientId","redirectUrl","attributes","split","attr","includes","join","purpose","environment","personUrl","vehicleFuels","vehicleMakes","alpina","ankai","BeiBen","Bertone","BlueCar","Bollore","BRP","Bsa","Cadillac","Cagiva","Camc","Carbodies","Carmichael","Changjiang","Chunlan","Columbia","Condiesel","COSA","Cpi","Daimler","Datsun","Daytona","Dennis","ElectricBicycle","FTBCI","Gac","Galloper","Gasgas","GoldenDragon","Hartford","Higer","HockNamSeng","Hummer","Inokom","Italjet","Jac","JianShe","Jinbei","Johnston","Joylong","KimEngSeng","Kinglong","Lada","Lambretta","Lancia","Liebherr","Linde","Mark","Megelli","MLE","Morgan","MotoGuzzi","Norton","Paijifa","Puyuan","Sachs","Sany","Sanyang","SCNeustar","Scomadi","Shuchi","Sinotruk","SoongWingTrailer","Specialized","TD2000","Tesla","TheLondonTaxiCompany","Tiger","Trailer","Treelektrik","Victory","Wuling","XMXGZG","XuGong","YoungMan","Zhongtong","Zipstar","ZonDa","Zoomlion","Zotye","Adiva","AlexanderDennis","AlfaRomeo","Aprilia","AstonMartin","Audi","Austin","Bajaj","Benelli","Bentley","Bmw","Brixton","Bugati","Byd","CanAm","Chana","Chery","Chevrolet","Chrysler","Citroen","Crown","Daelim","Daewoo","Daf","Daihatsu","Demag","Derbi","Dodge","Dongfeng","Ducati","Dulevo","Ferrari","Fiat","Ford","Foton","Geely","Gilera","Grove","Hafei","HarleyDavidson","Hdk","Hillman","Hino","Holden","Honda","Husqvarna","Hyosung","Hyundai","Indian","Infiniti","Isuzu","Iveco","Jaguar","Jeep","Kasinski","Kawasaki","Keeway","Kia","Komatsu","Ktm","Kymco","Lamborghini","LandRover","Lexbuild","Lexus","Leyland","Lifan","Lml","Lotus","Man","Manitou","Maserati","Maxus","Mazda","McLaren","Mercedes","Mg","MgRover","Mini","Mitsubishi","Mitsuoka","Modenas","Morris","Mvagusta","Naza","Nissan","Noble","Opel","Pagani","Perodua","Peugeot","Pgo","Piaggio","Porsche","Proton","Renault","Rieju","RollsRoyce","Rover","RoyalEnfield","Saab","Scania","Seat","Shacman","ShenyangBrillianceJinbei","Skoda","Smart","Ssangyong","Subaru","Sunlong","Suzuki","Sym","Tadano","Tennant","Terex","Tgb","Toyota","Triumph","Tvs","UDTrucks","Vespa","Volkswagen","Volvo","Yamaha","Yutong","Zongshen","Mutt","vehicleModels","Adiva_Ad1","Adiva_Ad200","Adiva_Ad3","Adiva_Ar3","AlfaRomeo_147","AlfaRomeo_156","AlfaRomeo_159","AlfaRomeo_166","AlfaRomeo_170","AlfaRomeo_1750","AlfaRomeo_4c","AlfaRomeo_A147","AlfaRomeo_A156","AlfaRomeo_A159","AlfaRomeo_Brera","AlfaRomeo_Giulietta","AlfaRomeo_Gt","AlfaRomeo_Gtv","AlfaRomeo_Mito","AlfaRomeo_Spider","Aprilia_Atlantic","Aprilia_Caponord","Aprilia_Dorsoduro","Aprilia_Mojito","Aprilia_Tuono","AstonMartin_Db7","AstonMartin_Db9","AstonMartin_Dbs","AstonMartin_Rapide","AstonMartin_V8","AstonMartin_Valkyrie","AstonMartin_Vanquish","Audi_A1","Audi_A3","Audi_A4","Audi_A5","Audi_A6","Audi_A7","Audi_A8","Audi_A8l","Audi_Allroad","Audi_Q2","Audi_Q3","Audi_Q5","Audi_Q7","Audi_Q8","Audi_Quat","Audi_R8","Audi_Rs3","Audi_Rs4","Audi_Rs5","Audi_Rs6","Audi_S3","Audi_S4","Audi_S5","Audi_S6","Audi_S7","Audi_S8","Audi_Tt","Audi_Ttc","Audi_Tts","Austin_A40","Bajaj_Avenger","Bajaj_Ct100","Bajaj_Pulsar","Benelli_Adiva","Bentley_Arnage","Bentley_Azure","Bentley_Continental","Bentley_Mulsanne","Bmw_116d","Bmw_116i","Bmw_118","Bmw_118i","Bmw_120i","Bmw_125i","Bmw_130i","Bmw_135i","Bmw_216d","Bmw_216i","Bmw_218d","Bmw_218i","Bmw_220i","Bmw_225xe","Bmw_228i","Bmw_230i","Bmw_316i","Bmw_318","Bmw_318ci","Bmw_318i","Bmw_320ci","Bmw_320d","Bmw_320i","Bmw_320im","Bmw_323i","Bmw_323ia","Bmw_325ci","Bmw_325i","Bmw_328i","Bmw_330ci","Bmw_330i","Bmw_335i","Bmw_340i","Bmw_420i","Bmw_428i","Bmw_430i","Bmw_435i","Bmw_440i","Bmw_520d","Bmw_520i","Bmw_523i","Bmw_525i","Bmw_528i","Bmw_530i","Bmw_535d","Bmw_535i","Bmw_540i","Bmw_550i","Bmw_630ci","Bmw_630i","Bmw_640i","Bmw_645","Bmw_645ci","Bmw_650ci","Bmw_650i","Bmw_725d","Bmw_728i","Bmw_730","Bmw_730i","Bmw_730li","Bmw_735i","Bmw_735li","Bmw_740","Bmw_740i","Bmw_740le","Bmw_740li","Bmw_745i","Bmw_745li","Bmw_750i","Bmw_750li","Bmw_760li","Bmw_840i","Bmw_Activehybrid","Bmw_C650gt","Bmw_F650gs","Bmw_F800gs","Bmw_G310","Bmw_I3","Bmw_I8","Bmw_M135i","Bmw_M140i","Bmw_M2","Bmw_M235i","Bmw_M240i","Bmw_M3","Bmw_M4","Bmw_M5","Bmw_M6","Bmw_X1","Bmw_X2","Bmw_X3","Bmw_X4","Bmw_X5","Bmw_X6","Bmw_X7","Bmw_Z3","Bmw_Z4","Brixton_Bx125","Bugati_Veyron","Byd_E6h","Byd_E6y","CanAm_Spyder","Chana_Benni","Chery_A168","Chery_Oriental","Chery_Qq","Chery_T11","Chery_V5","Chevrolet_Aveo","Chevrolet_Aveo5","Chevrolet_Captiva","Chevrolet_Cruze","Chevrolet_Epica","Chevrolet_Lumina","Chevrolet_Malibu","Chevrolet_Mw","Chevrolet_Optra","Chevrolet_Optra5","Chevrolet_Orlando","Chevrolet_Sonic","Chevrolet_Spark","Chevrolet_Vivant","Chrysler_300b","Chrysler_300c","Chrysler_Crossfire","Chrysler_Pt","Chrysler_Sebring","Citroen_Berlingo","Citroen_C1","Citroen_C3","Citroen_C4","Citroen_C5","Citroen_C6","Citroen_Dispatch","Citroen_Ds3","Citroen_Ds4","Citroen_Ds5","Citroen_Jumpy","Citroen_Nemo","Citroen_Xsara","Daelim_Citi","Daelim_Daystar","Daelim_Delfino","Daelim_Roadwin","Daewoo_Kalos","Daewoo_Lanos","Daf_Cf75","Daf_Cf85","Daf_Sb220","Daihatsu_Copen","Daihatsu_Extol","Daihatsu_Hijet","Daihatsu_Materia","Daihatsu_Sirion","Daihatsu_Terios","Daihatsu_Yrv","Daihatsu_Zebra","Derbi_Senda","Dodge_Atitude","Dodge_Caliber","Dodge_Dart","Dodge_Journey","Dongfeng_Eq5021","Dongfeng_Eq6380","Dongfeng_Star","Ducati_1199","Ducati_848","Ducati_916","Ducati_996sps","Ducati_Diavel","Ducati_Monster","Ducati_Multistrada","Dulevo_5000","Ferrari_360","Ferrari_430","Ferrari_456","Ferrari_458","Ferrari_575m","Ferrari_599","Ferrari_612","Ferrari_California","Ferrari_Challenge","Ferrari_Enzo","Ferrari_F12berlinetta","Ferrari_F430","Ferrari_Ff","Fiat_124","Fiat_500","Fiat_Bravo","Fiat_Cinquecento","Fiat_Croma","Fiat_Doblo","Fiat_Ducato","Fiat_Fiorino","Fiat_Idea","Fiat_Multipla","Fiat_Panda","Fiat_Panorama","Fiat_Punto","Fiat_Scudo","Fiat_Stilo","Fiat_Ulysse","Ford_Anglia","Ford_Econ","Ford_Escape","Ford_Everest","Ford_Fiesta","Ford_Focus","Ford_Galaxie","Ford_Galaxy","Ford_Kuga","Ford_Laser","Ford_Mondeo","Ford_Mustang","Ford_Ranger","Ford_Spectron","Ford_Transit","Foton_Bj1041","Foton_Bj6103","Foton_Bj6940","Geely_Ck","Geely_Mk","Gilera_Fucco","Gilera_Runner","Hafei_Minz","HarleyDavidson_Flhr","HarleyDavidson_Flhrc","HarleyDavidson_Flht","HarleyDavidson_Flhtcu","HarleyDavidson_Flhx","HarleyDavidson_Flstc","HarleyDavidson_Flstf","HarleyDavidson_Flstn","HarleyDavidson_Flsts","HarleyDavidson_Flstsb","HarleyDavidson_Fltrx","HarleyDavidson_Fxcw","HarleyDavidson_Fxcwc","HarleyDavidson_Fxd","HarleyDavidson_Fxdb","HarleyDavidson_Fxdc","HarleyDavidson_Fxdf","HarleyDavidson_Fxdl","HarleyDavidson_Fxstb","HarleyDavidson_Fxstc","HarleyDavidson_Fxstd","HarleyDavidson_Fxstf","HarleyDavidson_Street","Hillman_Minx","Hino_Fc3jlka","Hino_Fc4jgpa","Hino_Fd1jpka","Hino_Fd8jlka","Hino_Fd8jpka","Hino_Fd9jpna","Hino_Fg8jr1a","Hino_Fr1k","Hino_Fs1elkd","Hino_Fs1etka","Hino_Fs1etla","Hino_Fs1etma","Hino_Fs275ka","Hino_Fs3frka","Hino_Fy1euka","Hino_Gd1jppa","Hino_Gh1jpla","Hino_Gh1jrka","Hino_Gh1jrpa","Hino_Gh8jrka","Hino_Sh1eeka","Hino_Sh1eera","Hino_Sh273ka","Holden_Cascada","Holden_Colorado","Honda_400x","Honda_Accord","Honda_Acty","Honda_Airwave","Honda_Ambition","Honda_C100","Honda_Ca125t","Honda_Ca125x","Honda_Cb1000r","Honda_Cb125","Honda_Cb1300","Honda_Cb150r","Honda_Cb190r","Honda_Cb190x","Honda_Cb250p","Honda_Cb400","Honda_Cb4008j","Honda_Cb400a8j","Honda_Cb400asfyj","Honda_Cb400f","Honda_Cb400sf","Honda_Cb400sf2j","Honda_Cb400sf4j","Honda_Cb400sfhv","Honda_Cb400sfvt","Honda_Cb400sfxj","Honda_Cb400sfy","Honda_Cb400sfyj","Honda_Cb400x","Honda_Cb750f21","Honda_Cb900f","Honda_Cbf","Honda_Cbf1000","Honda_Cbf125r","Honda_Cbf150","Honda_Cbf190wh","Honda_Cbf600m","Honda_Cbf87lhsa","Honda_Cbr","Honda_Cbr1000rr","Honda_Cbr1100xx","Honda_Cbr125r","Honda_Cbr150r","Honda_Cbr250r","Honda_Cbr400rr","Honda_Cbr400rrr","Honda_Cbr600f","Honda_Cbr600rr","Honda_Cbr900","Honda_Cbx200","Honda_Cbx250","Honda_Cbx400x","Honda_Cg125","Honda_City","Honda_Civic","Honda_Click","Honda_Cn250","Honda_Crf1000a","Honda_Crf250r","Honda_Crossroad","Honda_Cs1","Honda_Deauville","Honda_Dream","Honda_Edix","Honda_Elysion","Honda_Ex5","Honda_Fes250","Honda_Fireblade","Honda_Fit","Honda_Fjs400","Honda_Fjs600","Honda_Fmx650","Honda_Freed","Honda_Fs150f","Honda_Fs150fh3","Honda_Fs150gh3","Honda_Future","Honda_Gl","Honda_Gl156s","Honda_Gl1800","Honda_Glh125","Honda_Gls200","Honda_Goldwing","Honda_Grace","Honda_Insight","Honda_Inspire","Honda_Integra","Honda_Jade","Honda_Jazz","Honda_Mobilio","Honda_Msx125","Honda_Nc700sa","Honda_Nc700x","Honda_Nc750d","Honda_Nc750s","Honda_Nc750sa","Honda_Nc750xa","Honda_Nf100","Honda_Nf110m","Honda_Nf125","Honda_Nf125md","Honda_Nice","Honda_Nighthawk250","Honda_Nsx","Honda_Nv400c","Honda_Odyssey","Honda_Pcx125","Honda_Pcx150a","Honda_Prelude","Honda_Ps150i","Honda_S2000","Honda_S660","Honda_Shadow","Honda_Shuttle","Honda_Silverwing","Honda_Sonic","Honda_Steed","Honda_Stepwagon","Honda_Stream","Honda_Tiger","Honda_Varadero","Honda_Vario","Honda_Vezel","Honda_Wave","Husqvarna_701","Hyosung_Comet","Hyundai_Accent","Hyundai_Atos","Hyundai_Avante","Hyundai_Azera","Hyundai_Coupe","Hyundai_Elantra","Hyundai_Eon","Hyundai_Genesis","Hyundai_Getz","Hyundai_Grandeur","Hyundai_I30","Hyundai_I40","Hyundai_I45","Hyundai_Ioniq","Hyundai_Matrix","Hyundai_Scoupe","Hyundai_Sonata","Hyundai_Starex","Hyundai_Terracan","Hyundai_Tg","Hyundai_Trajet","Hyundai_Tucson","Hyundai_Tuscani","Hyundai_Veloster","Hyundai_Verna","Infiniti_Fx37","Infiniti_Fx50","Infiniti_G37","Infiniti_M25","Infiniti_M35h","Infiniti_M37","Infiniti_Q30","Infiniti_Q50","Infiniti_Q60","Infiniti_Q70","Isuzu_Cxh51s","Isuzu_Cxz50k","Isuzu_Cxz50q","Isuzu_Cxz71q","Isuzu_Cxz81k","Isuzu_Cyh52s","Isuzu_Cyh52t","Isuzu_Cyz52k","Isuzu_Cyz52l","Isuzu_Cyz52r","Isuzu_Exr50d","Isuzu_Exr52e","Isuzu_Exz52k","Isuzu_Frr33p","Isuzu_Fsr","Isuzu_Ftr33f","Isuzu_Ftr33p","Isuzu_Ftr34p","Isuzu_Fvr34p","Isuzu_Fvr34suqdc","Isuzu_Fxz77m","Isuzu_Mt112l","Isuzu_Nhr55e","Isuzu_Nhr69e","Isuzu_Nhr69eu3es","Isuzu_Nhr85aue4a","Isuzu_Nhr85aue4aa","Isuzu_Nhr85eu3es","Isuzu_Nhr85uh4aa","Isuzu_Nhr87aue4aa","Isuzu_Reward","Iveco_Mll190el25","Iveco_Stralis","Iveco_Trakker","Jaguar_Xe","Jaguar_Xf","Jaguar_Xfr","Jaguar_Xj","Jaguar_Xj6","Jaguar_Xj8","Jaguar_Xjl","Jaguar_Xjr","Jaguar_Xk8","Jaguar_Xkr","Jeep_Cherokee","Jeep_Commander","Jeep_Compass","Jeep_Patriot","Jeep_Renegade","Jeep_Wrangler","Kawasaki_1400gtr","Kawasaki_300i","Kawasaki_Eliminator","Kawasaki_Er250","Kawasaki_Estrella","Kawasaki_Ex250k","Kawasaki_Ex300b","Kawasaki_F4","Kawasaki_Ninja","Kawasaki_Z800","Kawasaki_Zg1400a","Kawasaki_Zg1400e","Kawasaki_Zr1000","Kawasaki_Zr1000a2h","Kawasaki_Zr800b","Kawasaki_Zx1000e","Kawasaki_Zx1000f","Kawasaki_Zx10r","Kawasaki_Zx1100d6","Kawasaki_Zx130","Kawasaki_Zx1400d","Kawasaki_Zx150","Kawasaki_Zx6r","Kawasaki_Zxr","Kawasaki_Zzr1200","Kawasaki_Zzr1400","Kia_Carens","Kia_Carnival","Kia_Cerato","Kia_Combi","Kia_Forte","Kia_Magentis","Kia_Niro","Kia_Optima","Kia_Picanto","Kia_Pregio","Kia_Rio","Kia_Sephia","Kia_Sorento","Kia_Spectra","Kia_Sportage","Kia_Stinger","Kia_Stonic","Ktm_1190","Ktm_125","Ktm_1290","Ktm_200","Ktm_350","Ktm_390","Ktm_525","Ktm_690","Ktm_690smc","Ktm_950","Ktm_990","Kymco_Dink","Kymco_Downtown","Kymco_Myroad","Kymco_People","Kymco_Sk60ae","Kymco_Xciting","Lamborghini_Aventador","Lamborghini_Gallardo","Lamborghini_Huracan","Lamborghini_Murcielago","Lamborghini_Urus","LandRover_88","LandRover_Defender","LandRover_Discovery","LandRover_Evoque","LandRover_Freelander","Lexus_Ct200h","Lexus_Es250","Lexus_Es300","Lexus_Es300f","Lexus_Es300h","Lexus_Gs200t","Lexus_Gs250","Lexus_Gs300","Lexus_Gs350","Lexus_Gs450h","Lexus_Is200","Lexus_Is250","Lexus_Is300","Lexus_Is350","Lexus_Ls","Lexus_Ls460l","Lexus_Nx200t","Lexus_Nx300","Lexus_Nx300h","Lexus_Rx200t","Lexus_Rx270","Lexus_Rx300","Lexus_Rx350","Lexus_Rx400h","Lexus_Rx450","Lexus_Rx450h","Lexus_Sc","Leyland_Mgb","Lifan_520","Lml_Star","Lotus_Elise","Lotus_Europa","Lotus_Evora","Lotus_Exige","Man_Ng363f","Man_Tga","Man_Tgl","Man_Tgm","Man_Tgs","Maserati_3200","Maserati_Coupe","Maserati_Ghibli","Maserati_Grancabrio","Maserati_Quattroporte","Maserati_Spyder","Mazda_2","Mazda_5","Mazda_3","Mazda_323","Mazda_6","Mazda_8","Mazda_Atenza","Mazda_Axela","Mazda_Biante","Mazda_Demio","Mazda_E2500","Mazda_Mpv","Mazda_Premacy","Mercedes_190e","Mercedes_200e","Mercedes_220","Mercedes_220ce","Mercedes_220e","Mercedes_220s","Mercedes_230ce","Mercedes_230e","Mercedes_230s","Mercedes_230te","Mercedes_250","Mercedes_250s","Mercedes_260e","Mercedes_280","Mercedes_280e","Mercedes_280s","Mercedes_280sel","Mercedes_280sl","Mercedes_300ce","Mercedes_300e","Mercedes_300se","Mercedes_300sel","Mercedes_300sl","Mercedes_320ce","Mercedes_320sel","Mercedes_350sl","Mercedes_380sec","Mercedes_380sel","Mercedes_380slc","Mercedes_400sel","Mercedes_420sec","Mercedes_420sel","Mercedes_500se","Mercedes_500sec","Mercedes_500sel","Mercedes_500sl","Mercedes_515","Mercedes_600","Mercedes_A150","Mercedes_A160l","Mercedes_A170","Mercedes_A180","Mercedes_A180d","Mercedes_A190","Mercedes_A190l","Mercedes_A200","Mercedes_A220","Mercedes_A250","Mercedes_A35","Mercedes_A45","Mercedes_Actros","Mercedes_Amg","Mercedes_Atego","Mercedes_B160","Mercedes_B170","Mercedes_B180","Mercedes_B200","Mercedes_C180","Mercedes_C180k","Mercedes_C200","Mercedes_C200k","Mercedes_C220","Mercedes_C230","Mercedes_C240","Mercedes_C250","Mercedes_C280","Mercedes_C300","Mercedes_C32","Mercedes_C320","Mercedes_C350","Mercedes_C350e","Mercedes_C43","Mercedes_C55","Mercedes_C63","Mercedes_Citan","Mercedes_Citaro","Mercedes_Cl500","Mercedes_Cl500a","Mercedes_Cl55","Mercedes_Cl550","Mercedes_Cl600","Mercedes_Cl63","Mercedes_Cla180","Mercedes_Cla200","Mercedes_Cla220","Mercedes_Cla250","Mercedes_Cla45","Mercedes_Clc180","Mercedes_Clc230","Mercedes_Clk","Mercedes_Clk200","Mercedes_Clk200ml","Mercedes_Clk230","Mercedes_Clk240","Mercedes_Clk280","Mercedes_Clk320","Mercedes_Clk350","Mercedes_Clk500","Mercedes_Clk55","Mercedes_Cls250","Mercedes_Cls280","Mercedes_Cls300","Mercedes_Cls350","Mercedes_Cls400","Mercedes_Cls450","Mercedes_Cls500","Mercedes_Cls55","Mercedes_Cls63","Mercedes_E200","Mercedes_E200k","Mercedes_E200ml","Mercedes_E220","Mercedes_E220d","Mercedes_E230","Mercedes_E240","Mercedes_E250","Mercedes_E280","Mercedes_E300","Mercedes_E320","Mercedes_E350","Mercedes_E350d","Mercedes_E400","Mercedes_E43","Mercedes_E500","Mercedes_E53","Mercedes_E55","Mercedes_E63","Mercedes_E63s","Mercedes_G350","Mercedes_G55","Mercedes_G63","Mercedes_Gl350","Mercedes_Gl400","Mercedes_Gl450","Mercedes_Gla180","Mercedes_Gla200","Mercedes_Gla250","Mercedes_Gla45","Mercedes_Glc200","Mercedes_Glc220","Mercedes_Glc250","Mercedes_Glc43","Mercedes_Gle250","Mercedes_Gle400","Mercedes_Gle450","Mercedes_Gls400","Mercedes_Mb100","Mercedes_Mb100d","Mercedes_Mb140d","Mercedes_Ml250","Mercedes_Ml300","Mercedes_Ml320","Mercedes_Ml350","Mercedes_Ml400","Mercedes_Ml430","Mercedes_Ml500","Mercedes_Ml55","Mercedes_Ml63","Mercedes_O405g","Mercedes_R350l","Mercedes_R500l","Mercedes_S280","Mercedes_S280l","Mercedes_S300","Mercedes_S300l","Mercedes_S320","Mercedes_S320l","Mercedes_S350","Mercedes_S350l","Mercedes_S400","Mercedes_S400l","Mercedes_S420l","Mercedes_S430","Mercedes_S430l","Mercedes_S450l","Mercedes_S500","Mercedes_S500l","Mercedes_S55l","Mercedes_S560l","Mercedes_S600","Mercedes_S600l","Mercedes_S65","Mercedes_Sl280","Mercedes_Sl300","Mercedes_Sl320","Mercedes_Sl350","Mercedes_Sl500","Mercedes_Sl55","Mercedes_Sl600","Mercedes_Sl63","Mercedes_Sl65","Mercedes_Slc180","Mercedes_Slc280","Mercedes_Slk200","Mercedes_Slk230","Mercedes_Slk250","Mercedes_Slk280","Mercedes_Slk300","Mercedes_Slk320","Mercedes_Slk350","Mercedes_Slk55","Mercedes_Slr","Mercedes_Slr722","Mercedes_Sls","Mercedes_Sprinter","Mercedes_Viano","Mercedes_Vito","Mg_Midget","Mini_7","Mini_850","Mini_Brick","Mini_Checkmate","Mini_Clubman","Mini_Convertible","Mini_Cooper","Mini_Mini","Mini_Minor","Mini_One","Mini_Park","Mini_Seven","Mitsubishi_Airtrek","Mitsubishi_Asx","Mitsubishi_Attrage","Mitsubishi_Canter","Mitsubishi_Colt","Mitsubishi_Delica","Mitsubishi_Dion","Mitsubishi_Evo","Mitsubishi_Fb511b0jrdeb","Mitsubishi_Fb511b0srdea","Mitsubishi_Fb511ba46391","Mitsubishi_Fb511bojrdec","Mitsubishi_Fb511bojsrde","Mitsubishi_Fb511bosrdea","Mitsubishi_Fb70abosrdea","Mitsubishi_Fb70abosrdeb","Mitsubishi_Fb70bb1srdea","Mitsubishi_Fe424","Mitsubishi_Fe639c6srdea","Mitsubishi_Fe639e6rde","Mitsubishi_Fe639et0rde","Mitsubishi_Fe639et0srde","Mitsubishi_Fe639etorde","Mitsubishi_Fe639etosrde","Mitsubishi_Fe659f6rde","Mitsubishi_Fe659f6srde","Mitsubishi_Fe83be6srdea","Mitsubishi_Fe83beosrdea","Mitsubishi_Fe83pe6srdeb","Mitsubishi_Fe83peosrdea","Mitsubishi_Fe84be6srdea","Mitsubishi_Fe85djzsrdea","Mitsubishi_Fe85pg6srde","Mitsubishi_Feb21cr4sdeb","Mitsubishi_Feb21er3sden","Mitsubishi_Fk617msjrdec","Mitsubishi_Fk61fm","Mitsubishi_Fk61fmj1rdea","Mitsubishi_Fm657msrdec","Mitsubishi_Fm65fm1rdea","Mitsubishi_Fp517dr2rdeb","Mitsubishi_Fp51jdr4rdea","Mitsubishi_Fp51sdr3vdea","Mitsubishi_Fq62fs2rdec","Mitsubishi_Fs527s","Mitsubishi_Fto","Mitsubishi_Fuso","Mitsubishi_Fv515hr","Mitsubishi_Fv517","Mitsubishi_Fv51j","Mitsubishi_Fv51jp","Mitsubishi_Galant","Mitsubishi_Grandis","Mitsubishi_i","Mitsubishi_L200","Mitsubishi_L300","Mitsubishi_Lancer","Mitsubishi_Minicab","Mitsubishi_Montero","Mitsubishi_Outlander","Mitsubishi_Pajero","Mitsubishi_Rosa","Mitsubishi_Shogun","Mitsubishi_Triton","Morris_Eight","Morris_Minor","Mvagusta_Brutale","Mvagusta_Stradale","Nissan_350z","Nissan_370z","Nissan_Ad","Nissan_Almera","Nissan_Atlas","Nissan_Cabstar","Nissan_Caravan","Nissan_Cedric","Nissan_Cefiro","Nissan_Cgb45clsmnb","Nissan_Cgb45lsmnb","Nissan_Ck20","Nissan_Ckb45abtn2","Nissan_Ckb536","Nissan_Cmf87h05441","Nissan_Cmf87lhsa","Nissan_Cpb14nhr","Nissan_Cube","Nissan_Cwb45ahtn2","Nissan_Cwb45aphn2","Nissan_Cwb45clldn","Nissan_Cwb45clphnb","Nissan_Cwb4cll00058","Nissan_Cwb520","Nissan_Dualis","Nissan_Elgrand","Nissan_Fairlady","Nissan_Frontier","Nissan_Fuga","Nissan_Gd21","Nissan_Gkb45clbhnb","Nissan_Infinity","Nissan_Juke","Nissan_Lafesta","Nissan_Latio","Nissan_March","Nissan_Mkb210","Nissan_Mkb212","Nissan_Mkb37","Nissan_Mkb8","Nissan_Murano","Nissan_Navara","Nissan_Note","Nissan_Nv150","Nissan_Nv200","Nissan_Nv350","Nissan_Prairie","Nissan_Presage","Nissan_Presea","Nissan_Primera","Nissan_Pu41h4","Nissan_Pu41t4","Nissan_Pulsar","Nissan_Qashqai","Nissan_Sentra","Nissan_Serena","Nissan_Silvia","Nissan_Skyline","Nissan_Sunny","Nissan_Sylphy","Nissan_Teana","Nissan_Urvan","Nissan_Vanette","Noble_Gto","Noble_M14","Noble_M400","Opel_Adam","Opel_Astra","Opel_Combo","Opel_Corsa","Opel_Crossland","Opel_Grandland","Opel_Insignia","Opel_Meriva","Opel_Mokka","Opel_Movano","Opel_Omega","Opel_Tigra","Opel_Vectra","Opel_Vivaro","Opel_Zafira","Pagani_Zonda","Perodua_Alza","Perodua_Axia","Perodua_Bezza","Perodua_Kancil","Perodua_Kelisa","Perodua_Kembara","Perodua_Kenari","Perodua_Myvi","Perodua_Viva","Peugeot_1007","Peugeot_107","Peugeot_2008","Peugeot_206","Peugeot_207","Peugeot_207cc","Peugeot_208","Peugeot_3008","Peugeot_307","Peugeot_308","Peugeot_308cc","Peugeot_406","Peugeot_407","Peugeot_408","Peugeot_5008","Peugeot_508","Peugeot_508sw","Peugeot_607","Peugeot_Expert","Peugeot_Partner","Peugeot_Rcz","Peugeot_Vivacity","Piaggio_Beverly","Piaggio_Fly","Piaggio_Mp3","Piaggio_Sfera","Piaggio_X10","Piaggio_X8","Piaggio_X9","Porsche_911","Porsche_928","Porsche_356b","Porsche_550","Porsche_718","Porsche_Boxster","Porsche_C4","Porsche_C4s","Porsche_Cayenne","Porsche_Cayman","Porsche_Gt3","Porsche_Macan","Porsche_Panamera","Proton_Exora","Proton_Gen2","Proton_Inspira","Proton_Iriz","Proton_Iswara","Proton_Perdana","Proton_Persona","Proton_Preve","Proton_Satria","Proton_Savvy","Proton_Waja","Proton_Wira","Renault_Alpine","Renault_Captur","Renault_Clio","Renault_Espace","Renault_Fluence","Renault_Kadjar","Renault_Kangoo","Renault_Kng","Renault_Koleos","Renault_Laguna","Renault_Latitude","Renault_Master","Renault_Megane","Renault_Megcla","Renault_Modus","Renault_Scenic","Renault_Trafic","Rieju_Marathon","RollsRoyce_Dawn","RollsRoyce_Ghost","RollsRoyce_Phantom","RollsRoyce_Silvershadow","RollsRoyce_Wraith","Rover_216","Saab_44077","Saab_44079","Saab_940","Scania_G410la4x2msz","Scania_G420cb","Seat_Arona","Seat_Ateca","Seat_Ibiza","Seat_Leon","Seat_Toledo","Skoda_Fabia","Skoda_Karoq","Skoda_Kodiaq","Skoda_Octavia","Skoda_Rapid","Skoda_Superb","Skoda_Yeti","Smart_Fortwo","Ssangyong_Actyon","Ssangyong_Chairman","Ssangyong_Korando","Ssangyong_Musso","Ssangyong_Rexton","Ssangyong_Rodius","Ssangyong_Stavic","Ssangyong_Tivoli","Subaru_B9","Subaru_Brz","Subaru_Exiga","Subaru_Forester","Subaru_Impreza","Subaru_Legacy","Subaru_Outback","Subaru_R1","Subaru_R2","Subaru_Tribeca","Subaru_Vivio","Subaru_Wrx","Subaru_Xv","Sunlong_Slk6110","Sunlong_Slk6905","Suzuki_Alto","Suzuki_Apv","Suzuki_Arena","Suzuki_Baleno","Suzuki_Bandit","Suzuki_Belang","Suzuki_Carry","Suzuki_Cervo","Suzuki_Ciaz","Suzuki_Delta","Suzuki_Dl1000k2","Suzuki_Dl650al1","Suzuki_Dr","Suzuki_Dr100","Suzuki_Drz400sm","Suzuki_Drz400smk5","Suzuki_Drz400smk7","Suzuki_Drz400smk8","Suzuki_Drz400smk9","Suzuki_Drz400sml0","Suzuki_Escudo","Suzuki_Every","Suzuki_Fd110ks","Suzuki_Fd110xcsdu","Suzuki_Fd125xsu","Suzuki_Fh125m","Suzuki_Fl125fsd","Suzuki_Fu150scd","Suzuki_Gn125","Suzuki_Gn125e","Suzuki_Gn125h","Suzuki_Gn250e","Suzuki_Gs150","Suzuki_Gsf1250","Suzuki_Gsf400","Suzuki_Gsr400","Suzuki_Gsr600","Suzuki_Gsx1300","Suzuki_Gsx400","Suzuki_Gsx750","Suzuki_Ignis","Suzuki_Intruder","Suzuki_Jimny","Suzuki_Katana","Suzuki_Kizashi","Suzuki_Lapin","Suzuki_Liana","Suzuki_Sfv650","Suzuki_Skydrive","Suzuki_Smash","Suzuki_Solio","Suzuki_Splash","Suzuki_Stingray","Suzuki_Swift","Suzuki_Sx4","Suzuki_Vitara","Sym_Combiz","Sym_Cruisym","Sym_En","Sym_Evo","Sym_Maxsym","Tennant_Atlv","Tgb_Express","Toyota_86","Toyota_Allion","Toyota_Alphard","Toyota_Altezza","Toyota_Aqua","Toyota_Auris","Toyota_Avanza","Toyota_Axio","Toyota_Aygo","Toyota_Bb","Toyota_Belta","Toyota_Caldina","Toyota_Camry","Toyota_Celica","Toyota_Coaster","Toyota_Corolla","Toyota_Corona","Toyota_Crown","Toyota_Dyna","Toyota_Echo","Toyota_Esquire","Toyota_Estima","Toyota_Fortuner","Toyota_Harrier","Toyota_Hiace","Toyota_Hilux","Toyota_Innova","Toyota_Iq","Toyota_Isis","Toyota_Ist","Toyota_Liteace","Toyota_Mark","Toyota_Noah","Toyota_Passo","Toyota_Picnic","Toyota_Porte","Toyota_Prado","Toyota_Premio","Toyota_Previa","Toyota_Prius","Toyota_Proace","Toyota_Probox","Toyota_Ractics","Toyota_Rav4","Toyota_Regius","Toyota_Regiusace","Toyota_Royal","Toyota_Rush","Toyota_Sera","Toyota_Sienta","Toyota_Soluna","Toyota_Starlet","Toyota_Townace","Toyota_Toyoace","Toyota_Unser","Toyota_Vanguard","Toyota_Vellfire","Toyota_Verossa","Toyota_Vios","Toyota_Vitz","Toyota_Voltz","Toyota_Voxy","Toyota_Will","Toyota_Wish","Toyota_Yaris","Triumph_Bonneville","Triumph_Daytona","Triumph_Scrambler","Triumph_Spitfire","Triumph_Sprint","Triumph_Street","Triumph_Tiger","Triumph_Tr3","Tvs_Apache","UDTrucks_Condor","UDTrucks_Cwb5elldnt","UDTrucks_Cwb5elphnt","UDTrucks_Escot","Vespa_Et8","Vespa_Excel","Vespa_Gt200a","Vespa_Gts","Vespa_Lx","Vespa_Primavera","Vespa_Px","Vespa_Px15","Vespa_Px150","Vespa_Px20","Vespa_Px200","Vespa_Px200e","Vespa_Sprint","Volkswagen_Arteon","Volkswagen_Beetle","Volkswagen_Bora","Volkswagen_Caddy","Volkswagen_Caravelle","Volkswagen_Cc","Volkswagen_Crosspolo","Volkswagen_Eos","Volkswagen_Golf","Volkswagen_Jetta","Volkswagen_Kombi","Volkswagen_Multivan","Volkswagen_Passat","Volkswagen_Phaeton","Volkswagen_Polo","Volkswagen_Scirocco","Volkswagen_Sharan","Volkswagen_Tiguan","Volkswagen_Touareg","Volkswagen_Touran","Volkswagen_Vento","Volvo_240","Volvo_B10tl","Volvo_B11r","Volvo_B5lh","Volvo_B7r","Volvo_B7rle","Volvo_B8r","Volvo_B9l","Volvo_B9r","Volvo_B9tl","Volvo_C30","Volvo_C70","Volvo_Fee300","Volvo_Flh290","Volvo_Fm370","Volvo_Fm420","Volvo_Fmx370","Volvo_Fmx410","Volvo_Fmx420","Volvo_S40","Volvo_S60","Volvo_S80","Volvo_S90","Volvo_V40","Volvo_V50","Volvo_V60","Volvo_V70","Volvo_V90","Volvo_X60","Volvo_Xc40","Volvo_Xc60","Volvo_Xc70","Volvo_Xc90","Yamaha_135lc","Yamaha_Aerox","Yamaha_Czd300a","Yamaha_Dt125r","Yamaha_Dt200wr","Yamaha_Ego","Yamaha_Fino","Yamaha_Fjr1300","Yamaha_Fjr1300abs","Yamaha_Fz150","Yamaha_Fz150i","Yamaha_Fz16","Yamaha_Fz16st","Yamaha_Fzn150","Yamaha_Fzs1000","Yamaha_Gdr155a","Yamaha_Mio","Yamaha_Mtm850a","Yamaha_Mtn155","Yamaha_Nouvo","Yamaha_Pw50","Yamaha_Pw80","Yamaha_Rx115","Yamaha_Ttx","Yamaha_Xabre","Yamaha_Xj6","Yamaha_Xj6s","Yamaha_Xj900s","Yamaha_Xjr1300","Yamaha_Xjr400r","Yamaha_Xmax","Yamaha_Xtz","Yamaha_Xvs","Yutong_Zk6100h","Yutong_Zk6107h","Yutong_Zk6107he","Yutong_Zk6118hga","Yutong_Zk6119h","Yutong_Zk6122he9","Yutong_Zk6127h","Yutong_Zk6898he","Yutong_Zk6930h","Yutong_Zk6938h","Zongshen_Evo","AlexanderDennis_ENVIRO500","Bollore_BLUECAR","Maserati_GRANSPORT","Maserati_GRANTURISMO","Grove_GMK6300L","Hdk_DEL3042CX2","Kasinski_MIRAGE","Lexbuild_FTBCI","Maxus_G10","Maxus_V80","MgRover_75","MgRover_TF","Mitsuoka_GALUE","Mitsuoka_NOUERA","Modenas_ELEGAN","Naza_BLADE","Naza_CITRA","Naza_NBF250RI","RoyalEnfield_BULLET","RoyalEnfield_CLIPPER","Shacman_F3000","Sunlong_SLK6972B25R143","Tadano_FAUN","Terex_AC140KA","vehicleTypes","Empty","mapVehicle","isVehicleOwner","vi","vehicleInfo","mapping_Object_Motor_Vehicle","mapFuel","mapMake","mapModel","mapType","mapEngineCapacity","mapEffectiveOwnershipDate","mapChassisNo","mapFirstRegistrationDate","mappedType","toLocaleLowerCase","lowercaseMake","makeNotInEnum","makeDescription","models","desc","lowercaseModel","lowercaseFuel","propellant","vehicleFuelSourceName","enginecapacity","engineCapacityValue","effectiveownershipdate","result","toUtcDateTimeFormat","utc","DateUtcFormat","chassisno","firstregistrationdate","toUtcDateFormat","isOnlyDriver","isVehicleDriver","isBoth","isDriver","mapClaimant","rs","concat","mapReportStateToGears","reportState","obj","gearsPath","mappingFn","vehicleno","personalInfo","onlyIf","ufin","mapIdentifierType","regAdd","mapFullAddress","sex","mapGender","dob","mapDate","licenceInfo","validity","mapIsLicenceRevoked","mapDrivingLicenses","mapLicenseValidity","getMapping","element","mappedValue","levels","level","array","cleanLevel","putValue","MyinfoErrors","VehicleInformation","ownedVehicles","setVehicleInfo","isSubmitting","selectionValues","vrnDropdownValue","setVrnDropdownValue","Container","Content","Title","SubTitle","Label","StyledSubmitButton","SubmitButton","CallbackPage","search","useLocation","isLoaded","setIsLoaded","setIsSubmitting","setAccidentReportId","query","URLSearchParams","myinfoAuthCode","myinfoAuthState","myinfoError","requestData","authCode","requestOptions","headers","Accept","body","insertReport","source","fetchMyInfoData","fetch","mappedMyInfoState","myInfo","uinfin","mobileno","nbr","areacode","regadd","country","unit","street","block","postal","floor","building","vehicles","effectiveownership","classes","drivinglicence","qdl","class","issueDate","issuedate","validityDesc","mapMyInfoToReportState","AccessDenied","arcPreForm","accidentReportFormPath","arcForm","selectedVehicle","DriverOwner","isSelected","setIsSelected","Space","both","labelName","driver","owner","selected","ImageButton","logoDisabled","authState","Math","random","authoriseUrl","encodeURIComponent","StyledLink","img","Link","AccidentReportDetails","lazy","AccidentReports","RecoveryPage","RecoveriesPage","RecoveryTestsPage","ExplorationPage","NcdPage","InsurerEnquiryPage","AccountPage","ThirdPartyReportsPage","ArcsPage","FolderListPage","FolderDetailPage","Page404","hasPermission","perm","LoggedContent","isArcOnly","Suspense","fallback","accidentReportDetail","arcSubmitted","recovery","recoveryTests","settings","account","from","folderDetail","callback","intercomId","intercom","args","Intercom","Application","app_id","useAsyncQuery","getUserCompany","getCompany","user_id","sub","me","company","ApplicationContainer","ApplicationWrapper","initApm","telemetryConfig","setDefaultTimeZone","configureLocale","ReactDOM","document","getElementById","navigator","serviceWorker","ready","registration","unregister","vehicleDrivingLicenseValidityStatuses","V","E","I","N","dateOfBirth","year","month","genderStr","toLowerCase","formattedGender","charAt","toUpperCase","slice","mapDrivingLicenceClass","licenseClass","mappedClass","toLocaleUpperCase","license","resultValidity","resultSourceValidity","licenseValidity","drivingLicenseNumber","licenseValiditySourceName","licenseType","toShiftDateTimeOffsetFormat","drivingLicenseHasBeenRevoked","titleTemplate","Text","TextWidgetter","NoopWidgetter","CardWidget","CardLabelWidgetter","CardValueWidgetter","maxWidth","defaultOptions","currentIndex","onSelect","_idx","SelectWidgetter","opts","choice","idx","isClearable","isSearchable","LinksWidget","content","link","LinksWidgetter","LoaderWrapper","span","DownloadWidgetter","setLoading","StyledIcon","Icon","DocumentLinkWidgetter","isLink","brandPrimaryBaseColor","BillableLinkAction","request","paidAccess","i18nModal","BillableAction","reportId","actions","isAllowed","arDetailContent","explorationContent","arDetailLink","explorationLink","arDetailAction","explorationAction","arPurchasePermissions","explorationPermissions","currentPath","pathname","justifyPlacement","cleanCache","mutationQuery","billReportPurchaseMutation","paddingLeft","LinksBillableActionWidgetter","child","permission","transformedContent","searchType","formatNationalIdentifier","LinksExplorationSearchWidgetter","getStep","endDate","DateInputFilter","onFilterChange","toDateTimeWithoutTz","updateDates","focus","setFocus","placeholder","enGB","startOf","endOf","isOpen","max","DateFilter","operation","useFieldSort","setSort","useFieldFilter","setFilter","pendingFilter","setPendingFilter","isUtc","parameters","ParameterType","DateTimeUtc","parseUtcDate","parseOffsetDate","pendingStartDate","pendingEndDate","activeFilter","sDate","eDate","onClear","FilterComponent","buttonText","clearText","sortAscText","sortDescText","order","mapOrder","onOrderChange","o","unmapOrder","TextFilter","side","TextSearchFilter","SelectFilter","parameterType","sortable","checkboxOptions","reduce","c","newValue","filterParam","filterToOptions","checkboxes","optionsParam","enableFilters","mappedFilter","optionsToFilter","SelectSearchFilter","selectAllText","deselectAllText","EnumFilter","enums","Enum","BooleanFilter","IntegerInputFilter","minValue","maxValue","toString","val","parseInt","IntegerFilter","pendingMinValue","pendingMaxValue","Number","isInteger","DaysLeftFilter","DefaultTZUtcNow","setNow","diff","instant","clone","add","DaysSinceFilter","DefaultTZNow","subtract","revertOrder","optionOperationMap","SearchOperationType","Equal","NotEqual","EqualValueBooleanFilter","checkedOption","LiabilityFilter","Decimal","TextFilterWidgetterFactory","TextFilterWidgetter","DateFilterWidgetter","BooleanFilterWidgetterFactory","BooleanFilterWidgetter","DaysLeftFilterWidgetter","DaysSinceFilterWidgetter","LiabilityFilterWidgetter","IntegerFilterWidgetter","FilterFactories","EnumFilterWidgetterFactory","EqualConditionBooleanFilterWidgetterFactory","Filter","TrajectoryIconWidget","currentNcd","renewalNcd","isEqual","isRenewalGreaterThanCurrent","Arrow","ArrowUp","ArrowDown","PercentageWidgetExpandableRow","PercentageWidget","MultiLineTextWidgetter","isMultiLine","line","MultiLineWidgetter","MaxWidthTextWidgetter","TextInlineWidgetter","Widgetters","ThumbnailWidgetter","MultiWidgetterFactory","widgetter","param","VoidFormatter","getOffsetDateFormatter","timeField","dateTimeFormat","dateFormat","additionalSources","additionalData","formatOffsetDateTime","DrivingLicenseTypeFormatter","drivingLicenseClass","FileWithTypeFormatter","files","file","documentName","LocationFormatter","fullAddress","latitude","longitude","coordinates","FormatEnum","isNumber","PhoneNumberFormatter","phoneNumber","r","phoneNumberType","phoneTypeEnum","phoneType","DrivingLicenseFormatter","RadioFormatter","Type","EnumFormatter","otherEnum","option","CheckboxesToEnumFormatter","reasonEnumIdentifier","reasonEnumValueId","BackendListFormatter","PoliceStationFormatter","recordOwner","EnumIdentifierValuePairFormatter","identifier","valueId","getFileFormatter","documentUri","thumbnailSrc","documentPreviewUri","docs","EnumNoTypeFormatterFactory","noTypeEnum","noType","OtherNoEnumTypeFormatter","UnknownNoEnumTypeFormatter","unknownEnum","obfuscateNationalIdentifier","ident","AccidentDateFormatter","formData","accidentTimezone","getStateTimezone","tz","DefaultTimezone","mergeDateTime","AccidentTimeFormatter","hour","minute","FirstRegistrationDateTimeFormatter","firstRegistrationDate","PurchaseDateFormatter","dateUtc","sgTime","PurchaseTimeFormatter","UpperCaseFormatter","TrimWhitespacesFormatter","isRequired","isRequiredIfCondition","requiredFunc","formValues","phoneNumberRequired","isValidFile","some","validateIfCondition","validateFunc","validateListIfCondition","conditionFieldName","validatePassengerListCount","listFieldName","countValue","expectedCount","actualCount","count","upperBound","isValidDate","DateFormatRegex","test","isValid","isValidPassDate","formBirthDate","isValidLocation","isValidPhoneNumber","isValidFileWithType","f","isValidCCValue","isValidRegexFactory","regex","invalidMessageTranslationKey","isValidEmail","isValidAlphanumeric","isValidLossAmount","isValidNationalIdentifier","typeFieldName","icArray","theAlpha","temp","isValidNRIC","isSectionValid","formSection","section","validateFieldData","arrayField","itemField","singleField","validationError","require","extended","languagesResources","resource","fallbackMap","extendedLanguage","prefix","defaultLanguage","init","i18n","debug","resources","fallbackLng","interpolation","escapeValue","t","bind","useTranslations","makeTranslationFunc","gql","executeRecoveryStepMutation","assignOfficerInChargeMutation","uploadWorkflowDocumentMutation","sendTPReportRequest","merge","transformFieldData","formatter","additionalPath","arrayResult","arrayMerge","combineMerge","setValue","additionalValue","newValues","setDataOnTarget","updateClaimStatusMutation","insertAccidentReportCommentMutation","insertRecoveryCommentMutation","billExplorationSearchMutation","assignArcMutation","objectKeys","SecurityContext","a","SecurityProvider","setState","checkState","tx","deps","cb","useOnLocationChange","unpromise","st","resend","previous","acc","mapState","sec","authenticated","useSecurityInternal","useLocalStorage","storage","localStorage","getFullKey","err","OrderType","Asc","DSOrder","Desc","None","getOptions","num","statesTimezones","timezone","thirdParty","TranslateValueFormatter","TranslateWithNamespaceValueFormatter","namespace","TranslateAndJoinWithNamespaceValueFormatter","SecondaryTextButton","TextButton","SecondaryIconButton","IconButton","SecondarySubmitButton","configProviderFactory","GearsConfigConsumer","Consumer","useGearsConfig","useConfig","subContext","useRecoveryConfig","useArcConfig","useFolderConfig","pathToString","segment","isValidSegmentName","segmentName","buildFields","transforms","flatMap","chrooters","chrooter","getAllFieldsFromPath","paths","selector","buildI18n","i18Namespace","hasSeveralChrooter","i18NId","splitContext","findIndex","parseSingleValueCardConfig","configType","initContext","restContext","transformers","SingleValueFormatter","handlePermissions","func","queryConfig","cards","getSingleField","getLabelValueFields","header","ListFormatter","table","getHeaderColumnFields","getMergedTableFields","rows","useBuiltQuery","apiName","fieldValue","qdlValues","accidentReportMock","dateOffset","mapping_Claim_Motor_RoadAccident","mapping_Claim_Cause","enumIdentifier","enumValueId","detailedCircumstances","mapping_Claim_Event","eventDateOffset","mapping_Claim_Motor_Checklist","anyPoliceReport","anyProsecutionGiven","mapping_Claim_PurposeIndication","accidentAddress","complement","policeStationInformation","mapping_Person_Gears","prosecutionInformation","mapping_Assessment_FreeText","translation","mapping_Person_NationalIdentifier","nationalIdentifier","ownVehicle","mapping_Object_Motor_VehicleRegistration","mapping_Person_Individual","policy","mapping_Policy_Motor","primaryPhoneNumber","alternativePhoneNumbers","mapping_ClaimPerson","mapping_ClaimPerson_DrivingLicense","isOccupationOutdoor","driverOwnsOtherVehicles","otherVehiclesOwnedByDriver","mapping_Policy_Insurer","thirdPartyVehicles","accidentReportingsMock","newData","report","referenceCodeResult","verison","Date","isCommentAllowed","isRecoveriesAccessAllowed","isRecoveryCreationAllowed","policies","effectiveDateOffset","expirationDateOffset","objects","mapping_PolicyObject","mapping_PolicyObject_NoClaimsDiscount","coefficient","mapping_PolicyObject_Motor_TerminationReason","Value","personNumberAccident","reconstruction","explorePerson","shift_Person_Motor_ClaimHistoryStatistics","numberOfAccidentReportsThatThePersonWasInvolvedAsFirstPartyDriver","numberOfAccidentReportsThatThePersonWasInvolvedAsFirstPartyDriverAndVehicleOwner","numberOfAccidentReportsThatThePersonWasInvolvedAsFirstPartyVehicleOwner","personTotalClaimAmount","totalClaimedAmountsWhereThePersonWasInvolvedAsFirstPartyVehicleOwner","vehicleNumberAccident","exploreVehicle","shift_Object_Motor_ClaimHistoryStatistics","numberOfAccidentReportsThatTheVehicleInvolvedAsFirstPartyVehicle","vehicleTotalClaimAmount","totalClaimedAmountsWhereTheVehicleWasInvolvedAsFirstPartyVehicle","enumsMock","getEnums","InsurerCode","ValueId","AccidentType","MotorClaimCause","ClaimCause","CoverageType","CoverType","OwnerDriverRelationship","VehicleMake","VehicleType","VehicleTransmission","VehiclePurpose","Color","RoadSurface","WeatherCondition","Gender","PhoneNumberType","NationalIdentifierType","ReportPurpose","MotorRecoveryType","ClosingType","BolaScenario","ODRecoveryDocumentCategory","TPRecoveryDocumentCategory","RecoveryState","RecoverySendbackReason","RecoveryWaiveReason","RecoveryIPWaiveReason","RecoveryRPWaiveReason","RecoveryIPWithdrawReason","RecoveryRPWithdrawReason","PersonRelation","PaymentMode","insurersMock","getArcInsurers","identityId","arcEntity","arc","insurers","insurerCode","officersMock","getOfficers","insurerEntity","insurerEntities","identity","policeStationsMock","getPoliceStations","policeStations","addresses","phoneNumbers","bolaMock","getBolaCases","bolaCases","caseEnumIdentifier","caseEnumValueId","vehicleModelsMock","getVehicleModels","mocks","buildListQuery","start","filters","claimList","totalCount","itemsCount","items","persons","ownDriver","mails","firstName","lastName","ownPolicy","creationDate","constructionDateOffset","mapping_ClaimObject","mapping_ClaimObject_Motor_InvolvedVehicle","accidentLocation","accident","InjuredPersons","createDateUtc","hasPoliceReport","numberOfVehicles","anyForeignVehicle","anyInjuredPersonConveyedByAmbulance","anyWitness","anyUnknownPersonAssistance","anyVehiclePhoto","statement","fraudElements","score","officerInCharge","mapping_RecoveryTarget","entityRoleEnumIdentifier","entityRoleEnumValueId","workflow","lastWorkflowStep","claims","ui_WorkflowToClaim","roleEnumValueId","attachments","documents","modifyDateUtc","document_Document_DestinationDiskStorageInformation","storagePath","comments","close","updateStatus","initiateRecovery","mapping_Claim_Insurer","roleEnumIdentifier","accidentReportsMock","recoveryList","recoveryData","ipInformation","rpInformation","descriptions","accidentReports","recoveryCase","plateNumber","recoveryMock","arcsMock","buildExplorationQuery","personDetails","vehiclesByPerson","vrn","buildNcdEmailQuery","requestStatusFromInsurer","explorationMock","tests","kvCard","baseGearsConfig","MockedProvider","providedMock","addTypename","watchQuery","cacheableTypesWithSchemaPrefix","mapping_Claim","mapping_Person","mapping_Object","mapping_Policy","document_Document","ui_Comment","mapping_Address","mapping_Mail","mapping_PhoneNumber","excludedTypes","Identity","errorLog","warn","createLink","uri","ApolloLink","setContext","_request","previousContext","authorization","onError","networkError","locations","createHttpLink","newGraphQL","ApolloClient","resourceUri","cache","InMemoryCache","dataIdFromObject","__typename","hasOwnProperty","indexOf","useMock","toggleMocked","ToggleMockProvider","mocked","setMocked","userSub","ApolloProvider","checkBox","ToggleMockConsumer","fontWeight","defaultChecked","enumsTranslate","useEnums","notifyOnNetworkStatusChange","networkStatus","NetworkStatus","emptyList","useEnum","selectedEnum","b","stringCompare","customTranslateContext","translateFunc","useEnumItemById","defaultResult","capitalize","string","substring","InputDateOffsetFormat","displayDate","displayDateTime","DateTimeDisplayFormat","first","second","enumAnyEquals","es","other","getClaimByRecoveryRole","role","getAccidentReportByRecoverySide","recoveryInitiatingParty","mapping_RecoveryClaim","momentDate","hours","minutes","getFileExtension","stringArray","rawFormat","formatKey","stringDefault","suffix","concatenateUri","scheme","userInfo","host","port","fragment","pathToQueryArray","isNaN","fieldsArrays","buildFieldPath","subField","arrayTarget","loadFieldData","valueArray","resultItem","targetValue","getFieldValue","loadPreview","imgPreview","setData","fileFormat","canReadReport","canListReport","canListArc","canCreateOrUpdateReport","canListRecovery","canReadRecovery","canSeeExploration","canSeeNcd","canSeeInsurerEnquiry","canSeeThirdPartyReports","accountChangePassword","accountCreateAccount","accountChangeLanguage","canSeeDashboard","extractTokens","tokens","idToken","FACTOR_MAP","EMAIL","getFactorType","vendorName","factorExistPredicate","filterFactors","filterMapFactors","mapFunction","OktaAuthenticator","okta","scopes","currentState","this","challengeStepVerify","requireStepVerify","wasAuth","tokenManager","validateTokens","clear","loginWithSession","isAccessToken","isIDToken","getUserInfo","at","Promise","all","sessionToken","getWithoutPrompt","responseType","validateAndSaveTokens","signIn","oldPassword","transition","verifyRecoveryToken","recoveryToken","signOut","currentToken","passCode","newPassword","resetPassword","enrollment","required","rawFactor","_embedded","activation","_links","qrcode","deepEqual","secure","normalizeOptions","OktaAuth","newOkta","oktaConfig","issuer","redirectUri","pkce","QUERY_OPTIONS_KEYS","AR_LIST","TPR_LIST","GraphQLQueryOptionsProvider","__keys","graphQLQueryOptions","setGraphQLQueryOptions","useGraphQLQueryOptions","ctx","queryOptions","setQueryOptions","newQueryOptions","graphQLQueryOptionsContextFactory","disableAutoComplete","inp","Request","append","Blob","blob","fileName","msSaveOrOpenBlob","blobUrl","URL","createObjectURL","el","createElement","click","IMAGE_FORMATS","ChangeTrackerProvider","ChangeTracker","hasChanged","SingleLabel","giaConfigHelpers","selectors","firstPartyPersons","driverOfVehicle","nric","anyIds","policiesPolicyHolder","rootContext","ownDriverContext","ownVehicleContext","matchedReportsContext","policyHolderContext","translatorContext","accidentReportsConfig","GoToDetailPageFormatter","ClaimFields","ReferenceCode","Match","String","VersionsCount","Between","IntegerParameter","UtcDateTimeFormatter","SubmissionDate","FirstSubmissionDate","ARCName","OffsetDateTimeFormatter","AccidentDate","DateTimeOffset","EnumValuesFormatter","canSeeInsurerColumn","OwnInsurer","PolicyNo","OwnerName","LinksExplorationSearchFormatter","OwnerId","VehicleNo","EnumValuesIdFormatter","TypeOfAccident","EnumIdEqual","DriverName","DriverId","Status","canUpdateStatus","ConditionalBooleanValueFormatterFactory","isDraftEnum","formatType","SearchOperationFormatSpecificType","ConditionalBooleanEquality","canSeeDraftColumn","BooleanValueFormatter","LateReport","LinksBillableActionFormatter","canSeeMatchedReports","OffsetDateFormatter","DrivingLicenseClassEnumFormatter","DrivingLicenseValidityFormatter","licenseDate","eventDate","modifyDate","licenseMoment","eventMoment","nbYears","nbMonths","monthLabel","abs","yearLabel","MultiFormatterFactory","types","ownerIds","driverIds","identifiers","ids","every","VehicleMakeFormatter","VehicleModelFormatter","VehicleVariantFormatter","UtcDateFormatter","VehicleFuelFormatter","BindedNameEnumValueFormatterFactory","PassengerFormatter","GenderFormatter","VehicleNumberSelectFormatter","MultipleFormatters","TernaryConditionFormatter","conditionFct","BooleanValueFallbackNoFormatter","FormatterFactories","DefaultValueFormatterFactory","unknownObjectEnum","injured","dobDate","dobMoment","witness","passenger","ClaimantEnumFormatter","OffsetDateTimeSuffixFormatter","ElementAtFormatterFactory","UtcDateTimeSuffixFormatter","otherInformation","ThumbnailFormatter","GoToRecoveryPageFormatter","OtherPartyFormatterFactory","matchedReports","reportSubmitted","attachmentSummary","policeAction","noopWidgetter","policyHistories","ExplorationReferenceFormatter","claimHistories","accidentReportHistories","canPurchaseReportsInExploration","mergedHistories","ExplorationHistorySearch","HistoryByType","HistoryByDate","HistoryByInsurer","HistoryByPolicy","HistoryByVrn","HistoryByNric","HistoryByReference","personInformation","getter","ListFormatterWithOptions","isDistinct","NcdValuesFormatter","vehicleInformation","expandableRowSections","policyExpandableSection1","policyExpandableSection2","CurrentNcdValuesFormatter","claimExpandableSection1","OffsetYearFormatter","claimExpandableSection2","claimExpandableSection3","accidentReportExpandableSection1","accidentReportExpandableSection2","accidentReportExpandableSection3","PurchasedByFormatter","explorationConfig","defaultColumns","RecoveriesFields","initiationDate","InitiationDate","deadline","RecoveryDeadlineFormatter","Deadline","accidentDate","Action","caseType","CaseType","OfficerInCharge","OwnSide","LiabilityFormatter","OwnLiability","OwnPartyFormatter","OwnClaimNumber","OwnVehicleNumber","OtherPartyInsurer","OtherPartyFormatter","OtherPartyVehicleNumber","giaList","recoveryStates","pendingDrmGiaAdjudication","DaysFromFormatter","DaysInDrm","InitiatingPartyFormatterFactory","InitiatingPartyFormatter","OtherLiability","ReceivingPartyFormatterFactory","ReceivingPartyFormatter","EnumListValuesCommaFormatter","UnwarrantedDRM","tpInformation","DefaultTranslationValueFormatterFactory","OffsetDateIntervalFormatter","NameAndCompanyFormatter","ProviderFields","PhoneNumber","Address","Insurer","folder","GoToFolderPageFormatter","DocumentFields","Category","Description","details","DocumentLinkFormatter","thirdPartyReport","TpReportFields","FpVehicleNumber","TpVehicleNumber","CreateDate","canSeeCompleteId","NationalIdentifierFormatter","Transform","idValue","RecoveryWorkflowStepDeadlineState","lighten8","lighten4","darken4","darken8","hover","active","focused","interactive","information","white","navbar","card","modal","headerCell","backgroundColor","checkbox","labelColor","gearsModal","_theme","maxHeight","subheader","tab","explorationHistories","cell","_expanded","opacify","tag","remaingTime","borderRadius","DateTimeFileNameFormat","draftObjectEnum","statementOnGoingObjectEnum","notificationOnlyObjectEnum","faxType","tpReportBillableItemName","insurerEnquiryBillableItemName","statusName","initiatingPartyEnum","receivingPartyEnum","neutralPartyEnum","recoveryReceivingParty","recoverableAmountEnum","recoveredAmountEnum","bolaCaseCommentType","insuredCommentType","managerCommentType","recoveryCommentEnumValue","thirdPartyVehicleDamageEnumValue","recoveryTypeThirdPartyDamage","recoveryActions","initiate","waive","accept","sendback","counterOffer","finalOffer","sendPayment","acknowledgePayment","drmInitiateEscalation","drmApproveInitiateEscalation","drmRespondEscalation","drmApproveRespondEscalation","drmWithdraw","drmAcknowledgeWithdraw","drmRejectWithdraw","drmCancel","drmGiaAdjudicate","drmGiaReject","reinitiate","defaultPayment","pendingCounterActionByRp","pendingSecondActionByIp","pendingFinalActionByRp","sentback","closed","pendingPayment","pendingPaymentAcknowledgeByIp","paymentDefaulted","pendingDrmApproveInitiateEscalation","pendingDrmEscalationResponseByCounterParty","pendingDrmApproveRespondEscalation","pendingDrmAcknowledgeWithdrawal","WorflowPartySide","InitiatingParty","ReceivingParty","ThirdParty","recoveryDrmWithdrawReasons","NeutralParty","WaiveAcceptReason","WithdrawAcceptReason","WithdrawAmicableReason","WEBP","VEHICLE_CONTEXT","PERSON_CONTEXT","NCD_CONTEXT","INSURER_ENQUIRY_CONTEXT","OWNED_VEHICLE_CONTEXT","PERSON_CHROOTER_CONTEXT","VEHICLE_CHROOTER_CONTEXT","NCD_CHROOTER_CONTEXT","isDriverPolicyHolderCondition","requiredFunction","startNewReportDate","splittedValues","lastIndexOf","reworkedPath","englishMomentConfig","parentLocale","months","monthsShort","weekdays","weekdaysShort","weekdaysMin","longDateFormat","LT","LTS","L","LL","LLL","LLLL","updateLocale","defineLocale","fn","toJSON","setDefault","Secure","SecureRoute","Route","module","exports","analyticsCode","TelemetryProvider","setupTelemetry","projectId","apollo","autoLink","GAPlugin","usage","gaKey","ruleMap","rule","strict","APMPlugin","agentConfig","LoggerPlugin","env","logOnProd","errorFn","DEV","PROD","verbose","forLazyRoute","Component","_forLazyRoute","isConfig","isConfigFactory","isProcessedConfig","isQueryConfig","isTableQueryConfig","isKeyValueQueryConfig","isSingleValueQueryConfig","useLazyQuery","execute","resolveRef","called","resolve","ConfigProvider","configurationContext","fromEntries","processConfig","rawConfig","mainContext","mainConfig","subConfig","defaultConfig","configContext","configContextFactory","caseInformationStep","actionType","recoveryType","officer","initiatingPartyInsurer","initiatingPartyPolicyholder","initiatingPartyVehiclePlateNumber","initiatingPartyLossAmount","initiatingPartyClaimPaymentDate","initiatingPartyClaimNumber","receivingPartyInsurer","receivingPartyVehiclePlateNumber","thirdPartyLossAmount","thirdPartyClaimPaymentDate","thirdPartyLegalCost","thirdPartyVehiclePlateNumber","bolaScenarioStep","bolaScenario","comment","commentType","importedDocumentsStep","attachmentsStep","drmAdjudication","singleSection","workflowId","liability","losingParty","decisionDocument","waiveRecovery","waiveReason","withdrawOrRejectRecoveryDRM","confirmPayment","amount","paymentSentDate","paymentMode","sendPaymentDate","receivePaymentDate","lossAmount","sendBackRecovery","sendBackReason","useListFromBackend","gqlQuery","buildFn","querySettings","backendList","buildArcInsurers","entity","buildArcNames","useArcNameList","getArcNames","buildRecoveryOfficers","useOfficersList","buildPoliceStations","phones","faxes","buildBolaCases","bolaScenarioList","enumItem","liabilities","mapping_AccidentCase_LiabilityScenario_Gia","xLiablity","yLiablity","subTitle","BolaScenarioInsurerFilter","useBolaCaseList","loadingEnum","bolaEnum","stack","buildVehicleModels","otherList","buildLosingReasons","recoveryDrmAdjudicationLosingParty","mappedPrice","itemPrice","recoveryDrmAdjudicationLosingPartyItemPrices","useLosingReasons","getDrmAdjudicationReasonItemPrices","getRecoveryDrmAdjudicationLosingPartyItemPrices","recoveryDrmAdjudicationLosingPartyEnum","ContextTranslateProvider","ContextTranslate","REGULAR_ROW_TYPE","Symbol","ITALIC_ROW_TYPE","MISSING_ROW_TYPE","LOADING_ROW_TYPE","NO_DATA_ROW_TYPE","EXPANDABLE_ROW_TYPE","EXPANDABLE_CLAIM_ROW_TYPE","REGULAR_CLAIM_ROW_TYPE","EXPANDABLE_AR_ROW_TYPE","REGULAR_AR_ROW_TYPE","EXPANDABLE_POLICY_ROW_TYPE","REGULAR_POLICY_ROW_TYPE","acceptOffer","claimNumber","acceptCounterOffer","acceptFinalOffer","drmOffer","termsConditionsStep","approveStep","cancelStep","accidentCircumstances","accidentCircumstancesCommentType","textInformation","titleContent","fetchRecoveryInitData","accidentReportReferenceCode","historyExploration","explorationNric","recoveryAccidentReports","recoveryDetails","tableFilter","keyValueCard","locationCard","commentsList","keyValueList","searchResultKeyValuesCard","accidentReportAttachments","getBillableItem","useQueryBase","mutation","useMutationBase","FormField","displayErrorText","hint","inputPosition","newRender","renderProps","others","convertComponentToRender","meta","visited","dirty","SubHeader","withIcon","onClose","keyboardListener","useKeyboardNavigation","onEnter","icon","onKeyDown","tabIndex","aria-label","setCount","scroll","setScroll","getEmptyElement","newCount","setTimeout","pop","scrollTo","remove","scrollY","ExpandableField","TernaryIconButton","CustomLink","Loader","display","makeDisabledOption","displayOption","isDisabled","enumNameOptions","enumNameLoading","enumNameError","enumNameRefetch","selectOptions","selectLoading","selectError","selectRefetch","labelledValue","v","loadingOption","errorOption","onChangeCb","opt","defaultSortConfig","Recoveries","GiaRecoveries","ThirdPartyReports","defaultFilterState","defaultSavedFiltersState","namedFilters","defaultFilter","ExplorationHistories","Arcs","Folders","defaultFiltersState","defaultSortsState","defaultPagesState","filtersContext","sortsContext","pagesContext","tableContext","FilterProvider","setFilters","sorts","setSorts","pages","savedFilter","savedFilters","getDefaultSavedFilters","filterTablesState","sortTablesState","FilterTableProvider","tableType","tctx","newFilters","useFilters","filtersState","clearField","setAllField","clearAllField","useSort","clearSort","usePagination","setPage","page","tableSavedFilter","useSavedFilterTableState","currentFilters","makeDefault","_","CustomModal","Modal","CustomCheckboxInput","CheckboxInput","ModalBillableAction","isVisible","onConfirm","onCancel","showModalAgain","setShowModalAgain","visible","onHide","checked","BILLABLE_ACTIONS","UN_MATCH_AR","NCD_SEARCH","INSURER_ENQUIRY_TAB","THIRD_PARTY_REPORTS_TAB","EXPLORATION_SEARCH","EXPLORATION_SEARCH_PERSON","EXPLORATION_SEARCH_VEHICLE","onFetchCompleted","onFetchStarted","OnFetchSucceeded","accessIsFree","skipConfirmationModal","useApolloClient","displayModal","setDisplayModal","executeMutationThenClick","mutate","response","billExplorationSearch","actionableChildren","cloneElement","alwaysSkipModal","Roles","Permissions","permissionsMap","Admin","All","InsurerUnderwriter","InsurerClaimHandler","InsurerRecovery","InsurerRecoveryManager","InsurerSiu","Arc","ArcArManager","ArcClaimsManager","GiaSecretariat","Lawyer","TrafficPoliceCad","Intermediaries","MotorInsuranceBureau","roles","hasPermissionAny","perms","hasPermissionAnyAndNot","notPerms","canCreateReport","canEditDraft","canCreateAddendum","canSeeVersions","canPurchaseReports","canDownloadDecisionDocument","isNeutralUser","dateTime","arraytargets","d","destination","cloneUnlessOtherwiseSpecified","isMergeableObject","_day","_month","_year","duration","years","InnerListFormatter","JoinsValuesFormatter","flat","enumValues","currentValue","EnumFormatters","bool","dateStr","fromDateTimeFormat","times","DateTimeFormatters","UtcYearFormatter","DaysLeftFormatter","stringValue","sinceTimeSpanFormat","end","policyObjectEndDate","parseDate","startF","policyEndDate","isBefore","getPolicyEndDate","resultEndF","intervalDateFormat","endPointUri","apiEndPoint","ftIdentifiers","ftDescriptions","unavailableTextIdx","ftId","version","formattedVersion","pdfUri","IdLinkFormatterFactory","addVrn","addVrnParam","PartyConditionalFormatterFactory","party","partyIndex","UserPartyConditionalFormatterFactory","ownParty","partySide","partySideInt","ownPartyIndex","correspondingPartySideIndex","PartyConditionalChainableFormatterFactory","UserPartyConditionalChainableFormatterFactory","PartyFormatters","OwnPartyFormatterFactory","policyObjectTerminationReason","arr","tt","expirationDateUtc","recoverWorkflowDeadlineState","WaitingAction","names","companies","namesLen","companiesLen","formattedValues","isNotEnum","makeEnum","makeText","fuelEnum","fuelText","raw","isOwner","mapping_ClaimPerson_Function","rr","claimantEnum","filterPassengers","cp","passengerNames","passengerGenders","validityEnum","validitySourceName","conditionValue","InnerTernaryConditionFormatter","vrns","isStatusUpdateAllowed","explorationPath","vrnPath","LinkBillableActionFormatterFactory","variable","skipEmptyValues","spec","datum","InnerVehicleNumberSelectFormatter","formatters","tmp","removeTrailingSlash","authUri","telemetryEnabled","telemetryUri","telemetryEnv","baseUrl","disableHttpsCheck","upload","pdf","documentPreview","documentZip","importedDocument","letterOfDemand","uploadUri","documentZipUri","importedDocumentUri","letterOfDemandUri","serviceName","serverUrl","serviceVersion","breakdownMetrics","distributedTracingOrigins","propagateTracestate","memoize","fct","additionalParam","contextFactory","searchContextFactory","explorationContextFactory","ncdEmailContextFactory","_category","ncdContextFactory","insurerEnquiryContextFactory","buildLinePrint","tree","indent","node","buildFieldTree","isString","initial","rest","buildQueryString","factory","buildNcdQuery","buildInsurerEnquiryQuery","getInsurerEmail","ip","rp","initiateStep","effectiveDateUtc","creator","accidentCase","ui_WorkflowStep_Reason","ui_WorkflowStepToComment","acceptStep","acceptDefaultedStep","waiveStep","waiveAcceptStep","sendPaymentStep","acknowledgePaymentStep","initiateDrmStep","cancelDrmIpStep","cancelDrmRpStep","approveInitiateDrmStep","counterOfferStep","acceptCounterOfferStep","acceptCounterOfferDefaultedStep","counterOfferNoLiabilityStep","acceptCounterOfferNoLiabilityStep","acceptCounterOfferNoLiabilityDefaultedStep","finalOfferStep","acceptFinalOfferStep","acceptFinalOfferDefaultedStep","withdrawDrmStep","withdrawDrmAcceptStep","withdrawDrmStepWithAcknowledge","withdrawDrmAcknowledgedStep","withdrawDrmRejectedStep","withdrawDrmDefaultedStep","respondDrmStep","approveRespondDrmStep","respondDrmDefaultedStep","sendBackStep","sendBackNoReinitiateStep","reinitiateStep","drmGiaAdjudicateIpStep","drmGiaAdjudicateRpStep","drmGiaRejectStep","sendPaymentDefaultedStep","acknowledgePaymentDefaultedStep","fileSize","ui_WorkflowToDocument","payments","amounts","mapping_Recovery_Amount","currency","ThumbnailWidget","thumbnailData","setThumbnailData","downloadCallback","readOnly","ResetFormInput","ConditionalFormField","useKeyboardFocusableToggle","keyboardFocusables","setKeyboardFocusables","querySelectorAll","hasAttribute","getKeyboardFocusableElements","setAttribute","FormSection","collapsed","setCollapsed","bodyPanelRef","toggleFocusable","valid","offsetTop","DriverPolicyInfos","FormSideBar","selectedSection","setSelectedSection","handleScroll","sectionName","elementRect","getBoundingClientRect","addEventListener","removeEventListener","fullNumber","computedClassNames","onFocus","onBlur","true","false","minDate","openUp","inline","guess","CustomSecondaryTextButton","DownloadButton","FilesUploadWrapper","downscaleImage","dataUrl","imageType","resolution","quality","reject","image","Image","onload","onerror","lineno","colno","getImage","oldWidth","naturalWidth","oldHeight","naturalHeight","longestDimension","newSize","newWidth","newHeight","canvas","getContext","drawImage","newDataUrl","toDataURL","handleAdd","newFiles","cbs","updateLabel","newList","updateItem","currentId","tempId","fr","FileReader","downscaledImage","readAsDataURL","onProgress","onFinish","xhr","XMLHttpRequest","onprogress","loaded","total","onreadystatechange","readyState","DONE","open","setRequestHeader","encodeURI","FormData","send","uploadFile","progress","idString","onFinishUpload","errorMessage","onFail","isInProgress","BUTTON_VARIANTS","hasIcon","hasDownloadAllButton","onDownloadAll","commonTranslate","useReplaceLabel","setUseReplaceLabel","previews","updatePreviews","useDebouncedCallback","updateErrorsDisplay","onChangeCallback","onAddCb","preview","prevs","uploadButtonHasIcon","uploadButtonText","onAdd","onRemove","onClickOnFile","uploadButtonVariants","secondaryButton","FilesUploadWithType","onTypeChanged","documentType","FilesSelection","selectableFiles","reportReference","setFiles","selection","newFileList","_url","pageSize","getFullYear","getMonth","day","getDate","useParams","setOctopusConfig","useUpdateEffect","effect","dependencies","isInitialMount","MessageModalProvider","messages","setMessage","msg","CustomCard","Card","zIndex","flex","FilterText","or","operationType","formatted","formatParameterValue","borderBottom","textTransform"],"mappings":"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","file":"static/js/main.d6825a40.chunk.js","sourcesContent":["export * from './FetchProvider';\r\n","declare global {\r\n interface Window { config: any }\r\n}\r\n\r\ntype IndexHTMLConfig = {\r\n clientId: string;\r\n authUri: string;\r\n redirectUri: string;\r\n resourceUri: string;\r\n projectName: string;\r\n releaseVersion: string;\r\n deploymentDate: string;\r\n analyticsCode: string;\r\n tpReportExternal: string;\r\n tpReportLegal: string;\r\n tpReportPurchasesGstRate: string;\r\n telemetryEnabled: string;\r\n telemetryUri: string;\r\n telemetryEnv: string;\r\n intercomId: string;\r\n myInfoClientId: string;\r\n myInfoRedirectUrl: string;\r\n myInfoPurpose: string;\r\n myInfoEnvironment: string;\r\n myInfoPersonUrl: string;\r\n myInfoAuthUrl: string;\r\n};\r\n\r\nexport type RuntimeConfig = IndexHTMLConfig & {\r\n googleMapClientId: string;\r\n googleMapApiKey: string;\r\n};\r\n\r\nconst getConfig = (): IndexHTMLConfig => {\r\n const { config } = window;\r\n if (!config || typeof config !== 'object') {\r\n if (process.env.NODE_ENV === 'test') { // in test mode, we don't need the config\r\n return {\r\n authUri: 'https://shift-technology.okta.com/',\r\n } as any;\r\n }\r\n throw new Error('invalid config');\r\n }\r\n const keys = [\r\n 'clientId',\r\n 'authUri',\r\n 'redirectUri',\r\n 'resourceUri',\r\n 'projectName',\r\n 'releaseVersion',\r\n 'deploymentDate',\r\n 'analyticsCode',\r\n 'tpReportExternal',\r\n 'tpReportLegal',\r\n 'tpReportPurchasesGstRate',\r\n 'telemetryEnabled',\r\n 'telemetryUri',\r\n 'telemetryEnv',\r\n 'intercomId',\r\n 'myInfoClientId',\r\n 'myInfoRedirectUrl',\r\n 'myInfoPurpose',\r\n 'myInfoEnvironment',\r\n 'myInfoPersonUrl',\r\n ];\r\n keys.forEach((k) => {\r\n if (!config[k] || config[k].startsWith('#{') || config[k].endsWith('}')) {\r\n throw new Error(`invalid config: key ${k}`);\r\n }\r\n });\r\n return config;\r\n};\r\n\r\nexport const runtimeConfig = (): RuntimeConfig => ({\r\n ...getConfig(),\r\n googleMapClientId: 'gme-shifttechnology',\r\n googleMapApiKey: 'AIzaSyAGqQ2Jda3J-CZ5mjK0iY_2o5Zeomgk8HQ',\r\n});\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(\r\n (process as { env: { [key: string]: string } }).env.PUBLIC_URL,\r\n window.location.href\r\n );\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React, { createContext, useCallback } from 'react';\r\nimport { IMyInfo, IMyInfoState } from 'src/types/myInfo';\r\nimport { clearState, loadState, saveState } from './persistance';\r\n\r\n\r\nconst myInfoInitialState: IMyInfo = {\r\n myInfoState: {},\r\n updateState: () => null,\r\n updateAndStore: () => null,\r\n clearReportState: () => null,\r\n};\r\n\r\nconst MyInfoStateContext = createContext(myInfoInitialState);\r\n\r\nconst loadedState = loadState(myInfoInitialState.myInfoState);\r\n\r\nexport const MyInfoStateProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\r\n const [myInfoState, setMyInfoState] = React.useState({\r\n myInfoState: loadedState, updateState: () => null, updateAndStore: () => null, clearReportState: () => null,\r\n });\r\n\r\n myInfoState.updateState = useCallback((payload: IMyInfoState) => {\r\n setMyInfoState((prev) => {\r\n const newState = { ...prev, myInfoState: { ...prev.myInfoState, ...payload } };\r\n return newState;\r\n });\r\n }, []);\r\n\r\n myInfoState.updateAndStore = useCallback((payload: IMyInfoState) => {\r\n setMyInfoState((prev) => {\r\n const newState = { ...prev, myInfoState: { ...prev.myInfoState, ...payload } };\r\n saveState(newState.myInfoState);\r\n return newState;\r\n });\r\n }, []);\r\n\r\n myInfoState.clearReportState = useCallback(() => {\r\n setMyInfoState((prev) => {\r\n const newState = { ...prev, myInfoState: {} };\r\n clearState();\r\n return newState;\r\n });\r\n }, []);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\n\r\nexport const useMyInfoState = () => React.useContext(MyInfoStateContext);\r\n","import { IMyInfoState } from 'src/types/myInfo';\r\n\r\nconst key = 'myInfoState';\r\n\r\nexport function loadState(initialState: IMyInfoState): IMyInfoState {\r\n try {\r\n /* global sessionStorage */\r\n const serializedState = sessionStorage.getItem(key);\r\n\r\n if (!serializedState) return initialState;\r\n\r\n return JSON.parse(serializedState);\r\n } catch (e) {\r\n // eslint-disable-next-line no-console\r\n console.log(`Failed to load state: ${e}`);\r\n return initialState;\r\n }\r\n}\r\n\r\nexport function saveState(state: IMyInfoState) {\r\n try {\r\n const serializedState = JSON.stringify(state);\r\n sessionStorage.setItem(key, serializedState);\r\n } catch (e) {\r\n // eslint-disable-next-line no-console\r\n console.log(`Failed to save state: ${e}`);\r\n }\r\n}\r\n\r\nexport function clearState() {\r\n try {\r\n sessionStorage.removeItem(key);\r\n } catch (e) {\r\n // eslint-disable-next-line no-console\r\n console.log(`Failed to save state: ${e}`);\r\n }\r\n}\r\n","import { Record } from 'immutable';\r\nimport { Locale } from '@gears/translations';\r\n\r\ninterface BaseApplicationState {\r\n locale: Locale;\r\n}\r\n\r\nexport type ApplicationState = Record\r\n\r\nexport const SET_LOCALE = '@APPLICATION/SET_LOCALE';\r\n\r\ninterface SetLocaleAction {\r\n type: typeof SET_LOCALE;\r\n locale: Locale;\r\n}\r\n\r\nexport type ApplicationActionTypes = SetLocaleAction\r\n","import { fromJS } from 'immutable';\r\nimport { Locale } from '@gears/translations';\r\nimport { ApplicationState, ApplicationActionTypes, SET_LOCALE } from './application-types';\r\n\r\nexport const initialState: ApplicationState = fromJS(\r\n { locale: Locale.en },\r\n);\r\n\r\nexport const applicationReducer = (\r\n state = initialState,\r\n action: ApplicationActionTypes,\r\n): ApplicationState => {\r\n switch (action.type) {\r\n case SET_LOCALE:\r\n return state.set('locale', action.locale);\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { combineReducers } from 'redux-immutable';\r\nimport { Record } from 'immutable';\r\n\r\nimport { applicationReducer } from './application/application-reducer';\r\n\r\nexport const RootReducer = combineReducers({\r\n application: applicationReducer,\r\n});\r\n\r\nexport type RootReducerType = Record>\r\n","import {\r\n createStore, compose, applyMiddleware, Store,\r\n} from 'redux';\r\nimport thunkMiddleware from 'redux-thunk';\r\nimport { composeWithDevTools } from 'redux-devtools-extension';\r\n\r\nimport { RootReducer } from './reducers';\r\n\r\nlet reduxStore: Store;\r\nif (process.env.NODE_ENV === 'production') {\r\n reduxStore = createStore((RootReducer), compose(applyMiddleware(thunkMiddleware)));\r\n} else {\r\n const composeEnhancers = composeWithDevTools({});\r\n reduxStore = createStore(RootReducer, composeEnhancers(\r\n applyMiddleware(thunkMiddleware),\r\n ));\r\n}\r\n\r\nexport const store = reduxStore;\r\n","import React from 'react';\r\nimport { BrowserRouter as Router } from 'react-router-dom';\r\nimport { colors, theme, variants } from 'src/constants';\r\nimport { GraphQLProvider } from 'src/graphql/GraphQLProvider';\r\nimport { Provider as ReduxProvider } from 'react-redux';\r\nimport { ThemeProvider } from '@shift/design-system';\r\nimport { store } from 'src/store/store';\r\n\r\nimport { SecurityProvider } from 'src/libs/auth';\r\nimport { FetchProvider } from 'src/libs/fetch/FetchProvider';\r\n\r\nimport { MessageModalProvider } from 'src/MessageModal';\r\nimport { FilterProvider } from 'src/libs/filters';\r\n\r\nimport { GraphQLQueryOptionsProvider } from 'src/config/query-options';\r\nimport { gearsConfig } from '../../config/configuration/clients/GIA';\r\nimport { GearsConfigProvider } from '../../config/configuration/GearsConfigProvider/GearsConfigProvider';\r\n\r\nimport { TelemetryProvider } from './Telemetry';\r\nimport { auth, accessToken } from './auth';\r\nimport { graphql } from './graphql';\r\n\r\nexport const Providers = ({ children }: { children: React.ReactNode }) => (\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 {children}\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","/* eslint-disable @typescript-eslint/camelcase */\r\nimport React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { useOctopusConfig } from 'src/utils/hooks';\r\n\r\nconst VersionContainer = styled.div`\r\n position: absolute;\r\n bottom: 15px;\r\n right: 15px;\r\n`;\r\n\r\nexport const Version = () => {\r\n const octopusConfig = useOctopusConfig();\r\n\r\n if (!octopusConfig) return null;\r\n\r\n const { deploymentDate, projectName, releaseVersion } = octopusConfig;\r\n\r\n return (\r\n \r\n {`${projectName} - ${deploymentDate} - v${releaseVersion}`}\r\n \r\n );\r\n};\r\n","import React, { useState } from 'react';\r\nimport { useRouteMatch, useHistory } from 'react-router-dom';\r\nimport {\r\n Grid, GridItem, Button, StyledHeader, StyledText, withCustomStyles,\r\n PasswordInput, ThemeContext, StyledLink, InputForm, InputComponentProps,\r\n} from '@shift/design-system';\r\n\r\n\r\nimport { useSecurity } from 'src/libs/auth';\r\nimport { translate } from '@gears/translations';\r\n\r\nimport { FactorActivate, FACTOR_TYPES } from 'src/libs/auth/State';\r\nimport background from './login_background.jpg';\r\nimport backgroundWebp from './login_background.webp';\r\nimport giaLogo from './gia_logo.svg';\r\nimport gearsLogo from './gears_logo.svg';\r\nimport { GridCenteredCircularLoader } from '../../components/Loader/GridCenteredCircularLoader';\r\nimport { Version } from './Version';\r\nimport { TextInput } from '../../components/TextInput/TextInput';\r\n\r\nconst objectKeys = (object: T): (keyof T)[] => Object.keys(object) as any;\r\n\r\nconst StylableStyledText = withCustomStyles(StyledText);\r\n\r\nconst InputLabel = ({ children }: { children: React.ReactNode }) => (\r\n {children}\r\n);\r\n\r\nconst MainGridItem = ({ children }: { children: React.ReactNode }) => (\r\n {children}\r\n);\r\n\r\nconst FormGridItem = ({ children }: { children: React.ReactNode }) => (\r\n {children}\r\n);\r\n\r\nconst FormGrid = ({ onSubmit, children }: { onSubmit: (ev: React.FormEvent) => void; children: React.ReactNode }) => (\r\n
\r\n \r\n {children}\r\n \r\n
\r\n);\r\n\r\nconst useRecoveryToken = (url: string) => {\r\n const match = useRouteMatch(url);\r\n\r\n if (!match) {\r\n return { matched: false };\r\n }\r\n\r\n const { token = '' } = match.params as any;\r\n\r\n return { matched: true, token: token as string };\r\n};\r\n\r\nconst LoginFormContent = ({\r\n children, button, links, error, footer,\r\n}: {\r\n children: React.ReactNode;\r\n button: React.ReactNode;\r\n links?: React.ReactNode | React.ReactNode[];\r\n error?: Error | null;\r\n footer?: React.ReactNode;\r\n}) => {\r\n const { colors } = React.useContext(ThemeContext);\r\n\r\n return (\r\n <>\r\n {children}\r\n \r\n \r\n \r\n {button}\r\n \r\n {links && (Array.isArray(links) ? links : [links]).map((l, i) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n {l}\r\n ))}\r\n \r\n \r\n {error && (\r\n \r\n {error.message}\r\n \r\n )}\r\n {footer && (\r\n \r\n {footer}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst ResumeRecoveryForm = ({ error, resumeRecovery, cancel }: any) => {\r\n const [token, setToken] = useState('');\r\n const history = useHistory();\r\n\r\n const cb = (event: React.FormEvent) => {\r\n event.preventDefault();\r\n resumeRecovery(token);\r\n };\r\n\r\n return (\r\n \r\n ({})}>Recover Password\r\n }\r\n links={ { history.push('/'); })}>Cancel}\r\n error={error}\r\n footer={(\r\n \r\n Check your emails. You should have received the recovery code. Copy/paste it here to reset your password.\r\n \r\n )}\r\n >\r\n \r\n Recovery Code\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst LoginForm = () => {\r\n const {\r\n error, login, forgotPassword, resumeRecovery,\r\n } = useSecurity('UNAUTHENTICATED');\r\n const [recoveringPassword, setRecoveringPassword] = useState(false);\r\n const [username, setUsername] = useState('');\r\n const [password, setPassword] = useState('');\r\n const history = useHistory();\r\n const { matched, token } = useRecoveryToken('/reset-password/:token?');\r\n\r\n React.useLayoutEffect(() => {\r\n if (!matched || error) {\r\n return;\r\n }\r\n\r\n if (token) {\r\n history.push('/');\r\n resumeRecovery(token);\r\n }\r\n // we disable the `exhaustive-deps` because `resumeRecovery` we ignore changes to it on purpose\r\n // (its reference can change between renders and we don't want this effect to execute)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [matched, token, error]);\r\n\r\n const cb = (event: React.FormEvent) => {\r\n event.preventDefault();\r\n if (recoveringPassword) {\r\n forgotPassword(username);\r\n } else {\r\n login(username, password);\r\n }\r\n };\r\n\r\n if (matched && !token) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n ({})}>\r\n {recoveringPassword ? 'Recover' : 'Login'}\r\n \r\n )}\r\n links={ setRecoveringPassword((s) => !s)}>{recoveringPassword ? 'Cancel' : 'Forgot Password?'}}\r\n error={error}\r\n >\r\n \r\n Email\r\n setUsername(value)} />\r\n \r\n {recoveringPassword || (\r\n \r\n Password\r\n setPassword(value)} />\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nconst EnrollFactorForm = () => {\r\n const { factors, error } = useSecurity('FACTOR_ENROLL');\r\n const { colors } = React.useContext(ThemeContext);\r\n\r\n return (\r\n {\r\n event.preventDefault();\r\n }}\r\n >\r\n \r\n {translate('account:factor:enroll-prompt')}\r\n \r\n {\r\n Object.entries(factors)\r\n .map(([key, factor]) => !!factor && (\r\n \r\n \r\n \r\n ))\r\n }\r\n {error && (\r\n \r\n {error.message}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst RequiredFactorForm = () => {\r\n const { factors, error } = useSecurity('FACTOR_REQUIRED');\r\n const { colors } = React.useContext(ThemeContext);\r\n\r\n const isFactorUnique = Object.keys(factors).length === 1;\r\n\r\n React.useEffect(() => {\r\n if (!error && isFactorUnique) {\r\n factors[objectKeys(factors)[0]]!.verify();\r\n }\r\n }, [factors, error, isFactorUnique]);\r\n\r\n return isFactorUnique\r\n ? null\r\n : (\r\n {\r\n event.preventDefault();\r\n }}\r\n >\r\n \r\n {translate('account:factor:required-prompt')}\r\n \r\n {\r\n Object.entries(factors)\r\n .map(([key, factor]) => !!factor && (\r\n \r\n \r\n \r\n ))\r\n }\r\n {error && (\r\n \r\n {error.message}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst CodeTextInput = ({\r\n value, onChange, label, tooltipText,\r\n}: InputComponentProps & {label: string; tooltipText: string}) => (\r\n \r\n \r\n \r\n);\r\n\r\nconst ChallengeFactorForm = () => {\r\n const { verify, error, factorType } = useSecurity('FACTOR_CHALLENGE');\r\n const [code, setCode] = useState('');\r\n const { colors } = React.useContext(ThemeContext);\r\n\r\n return (\r\n {\r\n event.preventDefault();\r\n verify(code);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n {/* login function call has been moved to the form in order to avoid page refresh (happens only in edge) */}\r\n \r\n \r\n {error && (\r\n \r\n {error.message}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst ActivateFactorForm = () => {\r\n const {\r\n activate, factor, error,\r\n } = useSecurity('FACTOR_ACTIVATE');\r\n const { colors } = React.useContext(ThemeContext);\r\n\r\n const [code, setCode] = useState('');\r\n\r\n return (\r\n {\r\n event.preventDefault();\r\n activate(code);\r\n }}\r\n >\r\n {factor.type === FACTOR_TYPES.AUTH_OTP && }\r\n\r\n \r\n \r\n \r\n \r\n {/* login function call has been moved to the form in order to avoid page refresh (happens only in edge) */}\r\n \r\n \r\n {error && (\r\n \r\n {error.message}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst AuthOtpActivateFactorInfo = ({ factor }: {factor: FactorActivate}) => (\r\n <>\r\n \r\n \"auth\r\n \r\n \r\n {translate('account:factor:enroll-otp-auth-prompt', { sharedSecret: factor.sharedSecret })}\r\n \r\n \r\n);\r\n\r\nconst ChangePasswordForm = () => {\r\n const {\r\n changePassword, cancel, skip, error,\r\n } = useSecurity('PASSWORD_EXPIRATION');\r\n const [password, setPassword] = useState('');\r\n\r\n return (\r\n {\r\n event.preventDefault();\r\n changePassword(password);\r\n }}\r\n >\r\n ({})}>Confirm\r\n }\r\n links={(cancel || skip) && {skip ? 'Skip' : 'Cancel'}}\r\n error={error}\r\n >\r\n \r\n New Password\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst RecoveryChallengeForm = () => {\r\n const { error, resumeRecovery, cancel } = useSecurity('RECOVERY_CHALLENGE');\r\n\r\n return ;\r\n};\r\n\r\nconst AuthForm = () => {\r\n const { status } = useSecurity();\r\n\r\n switch (status) {\r\n case 'UNAUTHENTICATED':\r\n return ;\r\n case 'FACTOR_ENROLL':\r\n return ;\r\n case 'FACTOR_ACTIVATE':\r\n return ;\r\n case 'FACTOR_REQUIRED':\r\n return ;\r\n case 'FACTOR_CHALLENGE':\r\n return ;\r\n case 'PASSWORD_EXPIRATION':\r\n return ;\r\n case 'RECOVERY_CHALLENGE':\r\n return ;\r\n default:\r\n throw new Error('unreachable');\r\n }\r\n};\r\n\r\nconst LoginContent = () => {\r\n const { authenticating } = useSecurity();\r\n\r\n if (authenticating) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n \"gia\r\n \r\n \r\n Login\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const Login = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import React from 'react';\r\nimport { NavbarTab } from '@shift/design-system';\r\nimport { Link, useRouteMatch } from 'react-router-dom';\r\n\r\ninterface RouterNavbarTabProps {\r\n path: string;\r\n}\r\n\r\nexport const RouterNavbarTab: React.FC = ({ path, children }) => {\r\n const match = useRouteMatch({\r\n path,\r\n exact: false,\r\n });\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\n\r\nimport styled, { css } from 'styled-components';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport {\r\n Tooltip, TooltipSection, TooltipProps, StyledText, Icon,\r\n} from '@shift/design-system';\r\nimport { CogSvg, SignOutSvg } from '@shift/icons';\r\n\r\nimport { useSecurity } from 'src/libs/auth';\r\nimport { translate } from 'src/utils/forms';\r\nimport { colors } from 'src/constants';\r\n\r\nexport type UserTooltipProps = Pick\r\n\r\nconst UserTooltipWrapper = styled(Tooltip)`\r\n width: 250px; \r\n`;\r\n\r\nconst UserOption = styled(StyledText)<{noMarginBottom?: boolean}>`\r\n display: flex;\r\n align-items: center;\r\n cursor: pointer;\r\n\r\n & > span:last-child {\r\n border-bottom: 1px dashed transparent;\r\n transition-property: border-bottom;\r\n transition-duration: .1s;\r\n transition-timing-function: ease-in-out;\r\n }\r\n\r\n &:hover {\r\n & > span:last-child {\r\n border-bottom: 1px dashed ${colors.border?.default};\r\n }\r\n }\r\n\r\n & > span:first-child {\r\n margin-right: 15px;\r\n }\r\n\r\n ${({ noMarginBottom }) => !noMarginBottom && css`\r\n margin-bottom: 15px;\r\n `}\r\n`;\r\n\r\nexport const UserTooltip = ({\r\n anchorRef,\r\n onClickOutside,\r\n}: UserTooltipProps) => {\r\n const { user, logout } = useSecurity('AUTHENTICATED');\r\n const history = useHistory();\r\n\r\n return (\r\n \r\n \r\n {user?.name}\r\n {user?.email}\r\n \r\n \r\n history.push('/account')}>\r\n \r\n {translate('pages:account')}\r\n \r\n \r\n \r\n {translate('common:logout')}\r\n \r\n \r\n \r\n );\r\n};\r\n","/* eslint-disable max-len */\r\nimport React, { PropsWithChildren, useRef, useState } from 'react';\r\nimport { useHistory, useRouteMatch } from 'react-router-dom';\r\n\r\nimport styled from 'styled-components';\r\n\r\nimport {\r\n Navbar, NavbarTab as BaseNavbarTab, withCustomStyles, StyledText, withCustomVariant,\r\n} from '@shift/design-system';\r\nimport { UserCircleSvg } from '@shift/icons';\r\n\r\nimport { useSecurity, Secure } from 'src/libs/auth';\r\nimport { SecureProps } from 'src/libs/auth/Secure';\r\nimport { translate } from 'src/utils/forms';\r\n\r\nimport { RouterNavbarTab } from '../../components/router-navbar-tab';\r\nimport {\r\n accidentReportList, recoveries, exploration,\r\n settings, ncd, arcList, insurerEnquiry, folderList, thirdPartyReports, reporting,\r\n} from '../../config/routes';\r\nimport logo from './gears_logo.svg';\r\nimport { UserTooltip } from './UserTooltip';\r\nimport { ExplorationRoutes } from '../exploration/constants';\r\n\r\nconst NavbarTab = withCustomStyles(BaseNavbarTab);\r\n\r\nconst TabStyledText: React.FC = ({ children }) => {children};\r\n\r\nconst HeaderTab: React.FC<{ path: string }> = ({ path, children }) => (\r\n \r\n \r\n {children}\r\n \r\n \r\n);\r\n\r\nconst SecureHeaderTab = ({ permissions: p, ...headerProps }: SecureProps & PropsWithChildren<{ path: string }>) => (\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n \r\n);\r\n\r\nconst LoginIcon = styled.div`\r\n font-size: 2em;\r\n`;\r\n\r\nexport type HeaderProps = {\r\n hasAccreditationsIfArc: boolean;\r\n}\r\nexport const Header = ({ hasAccreditationsIfArc }: HeaderProps) => {\r\n const isExplorationRoute = useRouteMatch(exploration.path);\r\n return (\r\n <>\r\n {/*\r\n Disable StickyContainer since we have still some issues\r\n before the go live\r\n \r\n */}\r\n \r\n {\r\n isExplorationRoute && (\r\n \r\n )\r\n }\r\n \r\n // \r\n );\r\n};\r\n\r\nconst Menu = ({ id, hasAccreditationsIfArc }: { id?: string} & HeaderProps) => {\r\n const loginIconRef = useRef(null);\r\n const [isLoginOpen, toggleLoginTooltip] = useState(false);\r\n const { user } = useSecurity();\r\n const history = useHistory();\r\n\r\n return (\r\n \r\n history.push('/')}>\r\n \"logo\"\r\n \r\n {user && (\r\n <>\r\n accidentReportList.permissions!(u) && hasAccreditationsIfArc} path={accidentReportList.path}>\r\n {translate('pages:accident-reports')}\r\n \r\n \r\n {translate('pages:recoveries')}\r\n \r\n \r\n {translate('pages:exploration')}\r\n \r\n \r\n {translate('pages:ncd')}\r\n \r\n \r\n {translate('pages:insurer-enquiry')}\r\n \r\n \r\n {translate('pages:third-party-reports')}\r\n \r\n \r\n {translate('pages:arcs')}\r\n \r\n \r\n {translate('pages:files')}\r\n \r\n {process.env.NODE_ENV === 'development' && (\r\n \r\n {translate('pages:settings')}\r\n \r\n )}\r\n \r\n {translate('pages:reporting')}\r\n \r\n toggleLoginTooltip(!isLoginOpen)}\r\n >\r\n \r\n \r\n \r\n {isLoginOpen && toggleLoginTooltip(false)} anchorRef={loginIconRef} />}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst SubNavbar = withCustomVariant(Navbar, 'navbar', 'subheader');\r\n\r\nconst ExplorationSubMenu = () => {\r\n const history = useHistory();\r\n return (\r\n \r\n history.push(ExplorationRoutes.person)}>{translate('exploration:person-header')}\r\n history.push(ExplorationRoutes.vehicle)}>{translate('exploration:vehicle-header')}\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { Page } from '../Page';\r\nimport { Header as BaseHome, HeaderProps } from './Header';\r\n\r\n// eslint-disable-next-line react/jsx-props-no-spreading\r\nexport const Home = (props: HeaderProps) => ;\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable react/jsx-props-no-spreading */\r\nimport { Grid, GridItem } from '@shift/design-system';\r\nimport React from 'react';\r\nimport { FieldArray } from 'react-final-form-arrays';\r\nimport { AnyType, ArrayFieldInformation, SingleFieldInformation } from 'src/types';\r\nimport {\r\n\r\n} from 'src/utils/forms';\r\nimport { SingleLabel } from './fields/single-label';\r\n\r\nexport type ArrayItemProps = {\r\n setItemPath: (item: T) => T;\r\n itemIndex: number;\r\n}\r\n\r\nexport interface ArrayFieldWrapperProps {\r\n itemTitle?: string;\r\n Item: React.ComponentType;\r\n emptyElement?: (() => AnyType) | AnyType;\r\n addItemLabel?: string;\r\n initialItemsCount?: number;\r\n}\r\n\r\ninterface ArrayFieldValues {\r\n push: (value: any) => void;\r\n remove: (index: number) => any;\r\n map: (iterator: (name: string, index: number) => R) => R[];\r\n pop: () => any;\r\n length?: number;\r\n}\r\ninterface InternalArrayFieldProps extends ArrayFieldWrapperProps {\r\n fields: ArrayFieldValues;\r\n}\r\n\r\nexport interface ExpandableFieldProps extends ArrayFieldWrapperProps {\r\n fieldInfo: ArrayFieldInformation;\r\n label: string;\r\n}\r\n\r\nexport const ArrayFieldWrapper = ({\r\n Item,\r\n fields,\r\n}: InternalArrayFieldProps) => (\r\n
\r\n {fields.map((fieldName: string, index: number) => (\r\n ({ ...item, path: `${fieldName}.${(item).path}` })\r\n }\r\n itemIndex={index}\r\n />\r\n ))}\r\n
\r\n);\r\n\r\nexport const TableInfo = (props: ExpandableFieldProps) => {\r\n const { fieldInfo, label } = props;\r\n return (\r\n \r\n\r\n {({ fields }) => (\r\n <>\r\n {fields.length !== 0\r\n && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { FormField, ArrayItemProps, EnumSelectInput } from 'src/components/form';\r\nimport { formSections } from 'src/config/form';\r\nimport { TextInput } from '../../../../../components/TextInput/TextInput';\r\n\r\nexport const OtherVehicleItem = ({ setItemPath }: ArrayItemProps) => {\r\n const { item: itemInformation } = formSections.driverSection.fields.otherVehicles;\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","import React from 'react';\r\nimport { FormField, ArrayItemProps, EnumSelectInput } from 'src/components/form';\r\nimport { formSections } from 'src/config/form';\r\nimport { TextInput } from '../../../../../components/TextInput/TextInput';\r\n\r\nexport const ForeignVehicleItem = ({ setItemPath }: ArrayItemProps) => {\r\n const { item: itemInformation } = formSections.accidentSection.fields.foreignVehicles;\r\n\r\n const number = setItemPath(itemInformation.number);\r\n const category = setItemPath(itemInformation.category);\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","import React from 'react';\r\nimport {\r\n FormField, ArrayItemProps, EnumSelectInput,\r\n} from 'src/components/form';\r\nimport { SingleFieldInformation } from 'src/types';\r\nimport { TextInput } from '../../../../../components/TextInput/TextInput';\r\n\r\nexport interface PassengerItemFields {\r\n name: SingleFieldInformation;\r\n gender: SingleFieldInformation;\r\n}\r\n\r\nexport const GetPassengerItem = ({ name, gender }: PassengerItemFields) => ({ setItemPath }: ArrayItemProps) => (\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 React, { useMemo } from 'react';\r\nimport { FieldRenderProps, Field, useField } from 'react-final-form';\r\nimport { SelectInputOption } from '@shift/design-system';\r\nimport { useVehicleModelsList } from 'src/utils/hooks';\r\nimport { FormField, EnumSelectInput } from 'src/components/form';\r\nimport { SingleFieldInformation, VehicleModelSelectInputOption } from 'src/types';\r\nimport { isNoneEnum } from 'src/utils/forms';\r\n\r\nconst InternalField = ({\r\n fieldInfo, vehicleMake, vehicleModel, modelTextFieldPath, disabled, onChange,\r\n}: {\r\n fieldInfo: SingleFieldInformation;\r\n vehicleMake: string;\r\n vehicleModel: VehicleModelSelectInputOption;\r\n modelTextFieldPath: string;\r\n disabled: boolean | undefined;\r\n onChange?: (value: SelectInputOption | undefined) => void;\r\n}) => {\r\n const { input: modelText } = useField(modelTextFieldPath, { subscription: {} });\r\n const {\r\n options: vehicleModelList, loading, error, refetch,\r\n } = useVehicleModelsList(vehicleMake);\r\n const computedValue = useMemo(() => {\r\n let update = false;\r\n let model: SelectInputOption | undefined = vehicleModel;\r\n // This is triggered when retrieving from backend\r\n if (vehicleModelList && vehicleModelList?.length > 0 && vehicleModel.value && !vehicleModel.make) {\r\n model = vehicleModelList.find((m) => m.value === vehicleModel.value);\r\n // Set model to 'Other' if the value cannot be found in the list and update the description\r\n if (!model) {\r\n modelText.onChange(vehicleModel.value);\r\n model = vehicleModelList[vehicleModelList.length - 1];\r\n }\r\n update = true;\r\n } else if (!vehicleMake || vehicleModel.make !== vehicleMake) {\r\n // Reset model when make has been cleared or changed\r\n model = undefined;\r\n update = true;\r\n }\r\n // Set model to 'Other' automatically when make is 'Other'\r\n // This is trigerred when retrieving value from backend or ONCE after setting the make to 'Other'\r\n if (vehicleModelList && isNoneEnum(vehicleMake) && !vehicleModel.make) {\r\n model = vehicleModelList[vehicleModelList.length - 1];\r\n modelText.onChange(vehicleModel.value);\r\n update = true;\r\n }\r\n if (update && onChange) {\r\n onChange(model);\r\n }\r\n\r\n return model;\r\n }, [vehicleModelList, vehicleMake, vehicleModel, modelText, onChange]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport interface VehicleModelFieldProps {\r\n manufacturerFieldInfo: SingleFieldInformation;\r\n modelFieldInfo: SingleFieldInformation;\r\n modelTextFieldPath: string;\r\n disabled: boolean | undefined;\r\n}\r\n\r\nexport const VehicleModelField = ({\r\n manufacturerFieldInfo,\r\n modelFieldInfo,\r\n modelTextFieldPath,\r\n disabled,\r\n}: VehicleModelFieldProps) => (\r\n \r\n {({ input: make }: FieldRenderProps) => (\r\n \r\n {({ input: model }: FieldRenderProps) => (\r\n \r\n )}\r\n \r\n )}\r\n \r\n);\r\n","import React, { useMemo } from 'react';\r\nimport {\r\n NumberInput, SelectInputOption, PhoneInput,\r\n} from '@shift/design-system';\r\nimport { formSections } from 'src/config/form';\r\nimport {\r\n FormField, ArrayItemProps, ExpandableField,\r\n EnumSelectInput, ConditionalFormField,\r\n} from 'src/components/form';\r\nimport { isNoneEnum } from 'src/utils/forms';\r\nimport { sgCountryCode } from 'src/constants';\r\nimport { VehicleModelField } from '../fields';\r\nimport { GetPassengerItem } from './passenger-item';\r\nimport { TextInput } from '../../../../../components/TextInput/TextInput';\r\n\r\nexport const ThirdPartyItem = ({ setItemPath }: ArrayItemProps) => {\r\n const { item: itemInformation } = formSections.thirdPartySection.fields.vehiclesOrProperties;\r\n const PassengerItem = useMemo(() => GetPassengerItem(itemInformation.passengers.item), [itemInformation]);\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 isNoneEnum(enumValue.value)}\r\n >\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n isNoneEnum(enumValue.value)}\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
\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","import React, { useMemo } from 'react';\r\nimport { useField } from 'react-final-form';\r\nimport {\r\n Textarea,\r\n NumberInput, PhoneInput,\r\n} from '@shift/design-system';\r\n\r\nimport { formSections } from 'src/config/form';\r\nimport {\r\n FormField, ArrayItemProps, YesNoRadio, EnumSelectInput,\r\n} from 'src/components/form';\r\nimport { computeInjuredVehicleList } from 'src/utils/forms';\r\nimport { maxTextAreaCharacterLength, sgCountryCode } from 'src/constants';\r\nimport { TextInput } from '../../../../../components/TextInput/TextInput';\r\n\r\nexport const InjuredItem = ({ setItemPath }: ArrayItemProps) => {\r\n const { item: itemInformation } = formSections.injuredSection.fields.injuredPersons;\r\n\r\n const { input: tpVehicles } = useField(formSections.thirdPartySection.fields.vehiclesOrProperties.path, { subscription: { value: true } });\r\n const { input: vehicleSelection } = useField(setItemPath(itemInformation.injuredVehicle).path, { subscription: { value: true } });\r\n const onSelectionChange = vehicleSelection.onChange;\r\n const vehiclesList = useMemo(() => {\r\n const list = computeInjuredVehicleList(tpVehicles.value);\r\n const selectedItem = list.find((item) => item.value === vehicleSelection.value.value);\r\n\r\n if (vehicleSelection.value) {\r\n if (!selectedItem) onSelectionChange(undefined);\r\n else if (selectedItem.label !== vehicleSelection.value.label) onSelectionChange(selectedItem);\r\n }\r\n return list;\r\n }, [tpVehicles.value, vehicleSelection.value, onSelectionChange]);\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
\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","import React from 'react';\r\nimport { PhoneInput } from '@shift/design-system';\r\nimport { formSections } from 'src/config/form';\r\nimport {\r\n FormField, ArrayItemProps,\r\n} from 'src/components/form';\r\nimport { sgCountryCode } from 'src/constants';\r\nimport { TextInput } from '../../../../../components/TextInput/TextInput';\r\n\r\nexport const WitnessItem = ({ setItemPath }: ArrayItemProps) => {\r\n const { item: itemInformation } = formSections.witnessSection.fields.witnesses;\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","import React from 'react';\r\nimport { PhoneInput } from '@shift/design-system';\r\nimport {\r\n FormField, ArrayItemProps, EnumSelectInput,\r\n} from 'src/components/form';\r\nimport { sgCountryCode } from 'src/constants';\r\nimport { SingleFieldInformation } from 'src/types';\r\n\r\nexport interface PhoneItemFields {\r\n phone: SingleFieldInformation;\r\n type: SingleFieldInformation;\r\n}\r\n\r\nexport const GetPhoneItem = ({ phone, type }: PhoneItemFields) => ({ setItemPath }: ArrayItemProps) => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n);\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport React, { useMemo } from 'react';\r\nimport moment from 'moment-timezone';\r\nimport {\r\n Field, FieldRenderProps,\r\n} from 'react-final-form';\r\nimport {\r\n SelectInput, SelectInputOption, PhoneInput,\r\n} from '@shift/design-system';\r\nimport { formSections } from 'src/config/form';\r\nimport {\r\n formTranslate,\r\n getOccupationTypes,\r\n isOtherPersonRelation,\r\n getYearsFromAccident, translate,\r\n isNoneEnum,\r\n isValuePopulatedByMyinfo,\r\n availableDrivingLicenseInformation,\r\n} from 'src/utils/forms';\r\nimport {\r\n sgCountryCode, companyRegistrationNumberEnum, DateFormat, isMyInfoInitiated,\r\n} from 'src/constants';\r\nimport { useEnumOptions } from 'src/utils/hooks';\r\nimport {\r\n FormField, FormSection, YesNoRadio,\r\n ExpandableField, SplitDateInput, ConditionalFormField, EnumSelectInput,\r\n} from 'src/components/form';\r\nimport { TableInfo } from 'src/components/form/details-table';\r\nimport { AnyType } from 'src/types';\r\nimport {\r\n OtherVehicleItem, GetPhoneItem,\r\n} from '../array-items';\r\nimport { TextInput } from '../../../../../components/TextInput/TextInput';\r\nimport { GetDrivingLicenseItem } from '../array-items/driving-license-item';\r\n\r\nexport const OwnDriverSection = ({ initialValue }: AnyType) => {\r\n const { name, title, fields } = formSections.driverSection;\r\n const { options: idTypes } = useEnumOptions('NationalIdentifierType');\r\n const filteredIdTypes = useMemo(() => idTypes.filter((idType) => idType.value !== companyRegistrationNumberEnum), [idTypes]);\r\n const PhoneItem = useMemo(() => GetPhoneItem(fields.altPhones.item), [fields]);\r\n const DrivingLicenseItem = useMemo(() => GetDrivingLicenseItem(fields.drivingPassInformation.item), [fields]);\r\n const isMyInfoInitiatedStatus = isMyInfoInitiated(initialValue?.generalInformation?.accidentInformation?.status?.Name);\r\n\r\n return (\r\n \r\n !value}\r\n >\r\n {\r\n // some magic to set the country code when reseting the phone input...\r\n if (!value) {\r\n onChange({ countryCode: 'SG' });\r\n }\r\n return null;\r\n }}\r\n />\r\n \r\n \r\n {({ input: isDriverSameAsOwner }: FieldRenderProps) => (\r\n <>\r\n
\r\n
\r\n { !isMyInfoInitiatedStatus && (\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 {({ input }: FieldRenderProps) => (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n {\r\n availableDrivingLicenseInformation(fields.drivingPassInformation.path, initialValue) && (\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 isNoneEnum(enumValue.value)}\r\n >\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n isNoneEnum(enumValue.value)}\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 isOtherPersonRelation(enumValue.value)}\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 {({ input }: FieldRenderProps) => (\r\n \r\n )}\r\n \r\n
\r\n );\r\n};\r\n","import { TextInput } from '@shift/design-system';\r\nimport React from 'react';\r\nimport {\r\n ArrayItemProps,\r\n DateInput,\r\n FormField,\r\n} from 'src/components/form';\r\nimport { SingleFieldInformation } from 'src/types';\r\n\r\nexport interface DrivingLicenseBackendInfo {\r\n startDate: SingleFieldInformation;\r\n endDate: SingleFieldInformation;\r\n licenseTypeSourceName: SingleFieldInformation;\r\n}\r\n\r\n// eslint-disable-next-line max-len\r\nexport const GetDrivingLicenseItem = ({ startDate, licenseTypeSourceName }: DrivingLicenseBackendInfo) => ({ setItemPath, itemIndex }: ArrayItemProps) => (\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 React from 'react';\r\nimport { TimePicker as TimePickerBase, TimePickerProps as TimePickerPropsBase } from '@shift/design-system';\r\n\r\nexport const TimePicker = ({\r\n ...otherProps\r\n}: TimePickerPropsBase) => (\r\n \r\n);\r\n","import React, { useMemo } from 'react';\r\nimport {\r\n Grid, GridItem,\r\n SelectInputOption, NumberInput, RadioGroupInput,\r\n} from '@shift/design-system';\r\n\r\nimport { formSections } from 'src/config/form';\r\nimport {\r\n formTranslate, isNoneEnum,\r\n isValuePopulatedByMyinfo,\r\n} from 'src/utils/forms';\r\nimport {\r\n FormField, FormSection, ExpandableField,\r\n ConditionalFormField,\r\n EnumSelectInput,\r\n IntegerInput,\r\n DateInput,\r\n} from 'src/components/form';\r\nimport { useEnumRadioOptions } from 'src/utils/hooks';\r\nimport { AnyType } from 'src/types';\r\nimport { isMyInfoInitiated } from 'src/constants';\r\nimport styled from 'styled-components';\r\nimport { TimePicker } from '../../../../../components/form/fields/time-input';\r\nimport { VehicleModelField } from '../fields';\r\nimport { GetPassengerItem } from '../array-items';\r\nimport { TextInput } from '../../../../../components/TextInput/TextInput';\r\n\r\nexport const OwnVehicleSection = ({ initialValue }: AnyType) => {\r\n const { name, title, fields } = formSections.ownVehicleSection;\r\n const PassengerItem = useMemo(() => GetPassengerItem(fields.passengers.item), [fields]);\r\n const isMyInfoInitiatedStatus = isMyInfoInitiated(initialValue?.generalInformation?.accidentInformation?.status?.Name);\r\n const transmissionTypes = useEnumRadioOptions('VehicleTransmission');\r\n const StyledTimePickerDiv = styled.div`\r\n svg {\r\n display: none !important;\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 isNoneEnum(enumValue.value)}\r\n >\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n isNoneEnum(enumValue.value)}\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 {isMyInfoInitiatedStatus && isValuePopulatedByMyinfo(fields.purchaseTime.path, initialValue) ? (\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 isNoneEnum(enumValue.value)}\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","import React, { useMemo } from 'react';\r\nimport { PhoneInput } from '@shift/design-system';\r\nimport { formSections } from 'src/config/form';\r\nimport { formTranslate, isValuePopulatedByMyinfo } from 'src/utils/forms';\r\nimport { useArcInsurersList } from 'src/utils/hooks';\r\nimport {\r\n FormField, FormSection, EnumSelectInput, ExpandableField,\r\n} from 'src/components/form';\r\nimport { isMyInfoInitiated, sgCountryCode } from 'src/constants';\r\nimport { AnyType } from 'src/types';\r\nimport { GetPhoneItem } from '../array-items';\r\nimport { TextInput } from '../../../../../components/TextInput/TextInput';\r\n\r\nexport const OwnVehiclePolicySection = ({ initialValue }: AnyType) => {\r\n const insurerCodeList = useArcInsurersList();\r\n const { name, title, fields } = formSections.ownVehiclePolicySection;\r\n const PhoneItem = useMemo(() => GetPhoneItem(fields.altPhones.item), [fields]);\r\n const isMyInfoInitiatedStatus = isMyInfoInitiated(initialValue?.generalInformation?.accidentInformation?.status?.Name);\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
\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport React, { useMemo } from 'react';\r\nimport { Field, FieldRenderProps } from 'react-final-form';\r\nimport {\r\n Textarea, FileFormats,\r\n\r\n SelectInput, SelectInputOption, NumberInput, LocationPickerInput, PhoneInput,\r\n} from '@shift/design-system';\r\nimport { Locale } from '@gears/translations';\r\n\r\nimport { formSections } from 'src/config/form';\r\nimport { SubHeaderForm } from 'src/components/SubHeader/SubHeaderForm';\r\nimport {\r\n formTranslate,\r\n countriesOrStates,\r\n languages,\r\n isNoneEnum,\r\n} from 'src/utils/forms';\r\nimport {\r\n now, maxTextAreaCharacterLength, companyRegistrationNumberEnum, sgCountryCode,\r\n isMyInfoInitiated,\r\n} from 'src/constants';\r\nimport { AnyType, DocumentCategory } from 'src/types';\r\nimport { usePoliceStationsList, useEnumOptions } from 'src/utils/hooks';\r\nimport {\r\n FormField, FormSection, ConditionalFormField,\r\n YesNoRadio, DateInput, FilesUpload, EnumSelectInput, ExpandableField,\r\n} from 'src/components/form';\r\nimport { ForeignVehicleItem } from '../array-items';\r\nimport { runtimeConfig } from '../../../../../config/runtime-config';\r\nimport { TextInput } from '../../../../../components/TextInput/TextInput';\r\nimport { TimePicker } from '../../../../../components/form/fields/time-input';\r\n\r\nconst { googleMapClientId, googleMapApiKey } = runtimeConfig();\r\nexport const AccidentSection = ({ initialValue }: AnyType) => {\r\n const policeStationsList = usePoliceStationsList();\r\n const { name, title, fields } = formSections.accidentSection;\r\n const { options: idTypes } = useEnumOptions('NationalIdentifierType');\r\n const filteredIdTypes = useMemo(() => idTypes.filter((idType) => idType.value !== companyRegistrationNumberEnum), [idTypes]);\r\n const isMyInfoInitiatedStatus = isMyInfoInitiated(initialValue?.generalInformation?.accidentInformation?.status?.Name);\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 \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 isNoneEnum(enumValue.value)}\r\n >\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n isNoneEnum(enumValue.value)}\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 {({ input }: FieldRenderProps) => (\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n Including own vehicle\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 {({ input }: FieldRenderProps) => {\r\n const contactInfo = input?.value?.contactInformation as AnyType;\r\n return (contactInfo) ? (\r\n
\r\n {`Address: ${contactInfo.address ? contactInfo.address : ''}`}\r\n
\r\n {`Phone: ${contactInfo.phone ? contactInfo.phone : ''}`}\r\n
\r\n {`Fax: ${contactInfo.fax ? contactInfo.fax : ''}`}\r\n
\r\n
\r\n ) : null;\r\n }}\r\n
\r\n isNoneEnum(enumValue.value)}\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 \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 isNoneEnum(enumValue.value)}\r\n >\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n","import React, { useState } from 'react';\r\nimport { Field, FieldRenderProps } from 'react-final-form';\r\nimport { formSections } from 'src/config/form';\r\nimport {\r\n formTranslate,\r\n} from 'src/utils/forms';\r\nimport {\r\n FormField, FormSection,\r\n YesNoRadio, ExpandableField,\r\n} from 'src/components/form';\r\nimport { ThirdPartyItem } from '../array-items';\r\n\r\nexport const ThirdPartySection = () => {\r\n const { name, title, fields } = formSections.thirdPartySection;\r\n\r\n const [lastId, setLastId] = useState(-1);\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {({ input }: FieldRenderProps) => (\r\n {\r\n // Assign temporary id (negative) in order to track the third parties when adding/removing some.\r\n const id = lastId - 1;\r\n setLastId(id);\r\n return { vehiclePolicy: { vehicle: { id } } };\r\n }}\r\n />\r\n )}\r\n \r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Field, FieldRenderProps } from 'react-final-form';\r\nimport { formSections } from 'src/config/form';\r\nimport { formTranslate } from 'src/utils/forms';\r\nimport {\r\n FormField, FormSection,\r\n YesNoRadio, ExpandableField, ConditionalFormField,\r\n} from 'src/components/form';\r\nimport { InjuredItem } from '../array-items';\r\n\r\nexport const InjuredSection = () => {\r\n const { name, title, fields } = formSections.injuredSection;\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 {({ input }: FieldRenderProps) => (\r\n \r\n )}\r\n \r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Field, FieldRenderProps } from 'react-final-form';\r\nimport { formSections } from 'src/config/form';\r\nimport { formTranslate } from 'src/utils/forms';\r\nimport {\r\n FormField, FormSection,\r\n YesNoRadio, ExpandableField,\r\n} from 'src/components/form';\r\nimport { WitnessItem } from '../array-items';\r\n\r\nexport const WitnessSection = () => {\r\n const { name, title, fields } = formSections.witnessSection;\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {({ input }: FieldRenderProps) => (\r\n \r\n )}\r\n \r\n
\r\n );\r\n};\r\n","import React, { useContext } from 'react';\r\nimport {\r\n Textarea, FileFormats, SelectInputOption, Icon,\r\n Grid, GridItem, StyledText, ThemeContext,\r\n} from '@shift/design-system';\r\nimport { InfoCircleSvg } from '@shift/icons';\r\n\r\nimport { formTranslate } from 'src/utils/forms';\r\nimport { formSections } from 'src/config/form';\r\nimport {\r\n FormField, ConditionalFormField,\r\n FormSection, FilesUpload,\r\n YesNoRadio,\r\n} from 'src/components/form';\r\nimport { ContextTranslate as CT } from 'src/utils/translation';\r\nimport { SubHeaderForm } from 'src/components/SubHeader/SubHeaderForm';\r\nimport {\r\n privateHireVehicle, maxTextAreaCharacterLength, isDraft, isMyInfoInitiated,\r\n} from 'src/constants';\r\nimport { EnumValue, DocumentCategory } from 'src/types';\r\n\r\nexport const AttachmentsSection = () => {\r\n const { colors } = useContext(ThemeContext);\r\n const { name, title, fields } = formSections.attachmentsSection;\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 (enumValue.value === privateHireVehicle)}\r\n >\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n (status && !isDraft(status.Name) && !isMyInfoInitiated(status.Name))}\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 (anyAccidentVideo === false)}\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","import React from 'react';\r\nimport { StyledText } from '@shift/design-system';\r\nimport { formSections } from 'src/config/form';\r\nimport { formTranslate } from 'src/utils/forms';\r\nimport { FormSection } from 'src/components/form';\r\nimport { Field } from 'react-final-form';\r\n\r\nexport const AdditionalCommentSection = () => {\r\n const {\r\n name, title, useDifferentSectionIcon, collapsible, fields,\r\n } = formSections.additionalCommentSection;\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n (value.trim().length === 0 ? formTranslate('no-additional-comment') : `\"${value}\"`)}\r\n />\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n","/* eslint-disable react/jsx-props-no-spreading */\r\nimport React, { useState } from 'react';\r\nimport classNames from 'classnames';\r\nimport { Form, FormSpy } from 'react-final-form';\r\nimport arrayMutators from 'final-form-arrays';\r\nimport {\r\n Grid, GridItem,\r\n SubmitButton,\r\n} from '@shift/design-system';\r\nimport { FormSideBar, ChangeTrackerProvider } from 'src/components/form';\r\nimport { formSections } from 'src/config/form';\r\nimport { AnyType } from 'src/types';\r\n\r\nimport { SecondarySubmitButton } from 'src/components/button';\r\nimport { ContextTranslateProvider, ContextTranslate as CT } from 'src/utils/translation';\r\nimport { isDraft, isMyInfoInitiated } from 'src/constants';\r\nimport { onlyPreventDefault } from 'src/utils/forms';\r\nimport { noop } from 'src/utils';\r\nimport {\r\n AccidentSection,\r\n OwnVehicleSection,\r\n OwnVehiclePolicySection,\r\n OwnDriverSection,\r\n ThirdPartySection,\r\n InjuredSection,\r\n WitnessSection,\r\n AttachmentsSection,\r\n AdditionalCommentSection,\r\n} from './sections';\r\n\r\ninterface FormProps {\r\n onSubmit: (accidenReport: AnyType, formErrors: AnyType, isDraft: boolean) => void;\r\n initialValue: AnyType;\r\n submitting: boolean;\r\n isDraft: boolean;\r\n}\r\n\r\nconst isAddendum = (initialValue: AnyType) => (\r\n initialValue?.generalInformation?.accidentInformation?.status\r\n && (!isDraft(initialValue.generalInformation.accidentInformation.status.Name)\r\n && !isMyInfoInitiated(initialValue.generalInformation.accidentInformation.status.Name))\r\n);\r\n\r\nconst isAdditionalCommentSectionVisible = (initialValue: AnyType) => initialValue?.generalInformation?.accidentInformation?.status\r\n && isDraft(initialValue.generalInformation.accidentInformation.status.Name)\r\n && initialValue?.generalInformation?.accidentInformation?.specializations?.mapping_Claim_FreeText?.eventDescription\r\n && initialValue.generalInformation.accidentInformation.specializations.mapping_Claim_FreeText.eventDescription.trim().length !== 0;\r\n\r\nconst AccidentReportForm = ({\r\n onSubmit, initialValue, submitting,\r\n}: FormProps) => {\r\n const [submittingDraft, setSubmittingDraft] = useState(false);\r\n let visibleFormSections = {};\r\n if (isAdditionalCommentSectionVisible(initialValue)) {\r\n visibleFormSections = formSections;\r\n } else {\r\n visibleFormSections = Object.values(formSections).filter((it) => it.name !== 'additionalComment');\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 {isAdditionalCommentSectionVisible(initialValue) && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {({ values: submitValues, errors: submitErrors }) => (\r\n \r\n {!isAddendum(initialValue) && (\r\n \r\n {\r\n setSubmittingDraft(true);\r\n onSubmit(submitValues, submitErrors, true);\r\n }}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n {\r\n setSubmittingDraft(false);\r\n onSubmit(submitValues, submitErrors, false);\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 mutators={{\r\n ...arrayMutators,\r\n }}\r\n subscription={{}}\r\n />\r\n );\r\n};\r\n\r\nAccidentReportForm.defaultProps = {\r\n initialValue: {},\r\n error: null,\r\n};\r\n\r\nexport { AccidentReportForm };\r\n","/* eslint-disable max-len */\r\nimport React, {\r\n useEffect, useMemo, useContext, useState,\r\n} from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { ApolloConsumer } from '@apollo/react-hooks';\r\nimport { ApolloClient } from '@apollo/client';\r\nimport { useIdFromParams } from 'src/utils/hooks';\r\nimport { validateForm } from 'src/utils/forms';\r\nimport {\r\n insertAccidentReportMutation, transformForm,\r\n buildFormAccidentReportQuery, loadForm, useQuery, useMutation, GqlQueryName,\r\n} from 'src/graphql';\r\nimport { AnyType, ValidationError } from 'src/types';\r\nimport { GridCenteredCircularLoader } from 'src/components/Loader/GridCenteredCircularLoader';\r\nimport { formSections } from 'src/config/form';\r\nimport { MessageModalContext } from 'src/MessageModal';\r\nimport { formTranslate, formatGQLErrors } from 'src/utils/forms/utils';\r\nimport { DateOffsetFormat, now } from 'src/constants';\r\nimport { AccidentReportForm } from '../components/AccidentReportForm';\r\n\r\nconst formatErrorMessage = (errors: ValidationError[]): string[] => ([\r\n formTranslate('invalid-fields'),\r\n ...errors.map((error) => (`\\n\\u2022 ${error.field}: ${error.error}`))]\r\n);\r\n\r\nexport const AccidentReportFormPage = () => {\r\n const accidentReportId = useIdFromParams();\r\n const history = useHistory();\r\n const { displayMessage } = useContext(MessageModalContext);\r\n\r\n const [draft, setDraft] = useState(false);\r\n const [insertForm, { loading: submitting }] = useMutation(insertAccidentReportMutation);\r\n\r\n const onSubmit = (client: ApolloClient, values: AnyType, errors: AnyType, isDraft: boolean) => {\r\n setDraft(isDraft);\r\n const validationErrors = validateForm(formSections, values, errors, isDraft);\r\n if (validationErrors.length) {\r\n displayMessage(formatErrorMessage(validationErrors));\r\n return;\r\n }\r\n\r\n insertForm({\r\n variables: {\r\n accidentReport: transformForm(formSections, values),\r\n saveAsDraft: isDraft,\r\n },\r\n fetchPolicy: 'no-cache',\r\n }).then((resp) => {\r\n if (resp.errors?.length) {\r\n displayMessage(formatGQLErrors(resp.errors));\r\n } else {\r\n client.clearStore().then(() => {\r\n history.push(`/accident-report-submitted/${resp.data.insertAccidentReport.id}`);\r\n });\r\n }\r\n }).catch((error) => {\r\n displayMessage(formatGQLErrors(error.graphQLErrors));\r\n });\r\n };\r\n\r\n const accidentReportFormQuery = buildFormAccidentReportQuery();\r\n const { loading, error: loadError, data } = useQuery(\r\n accidentReportFormQuery,\r\n {\r\n variables: {\r\n id: accidentReportId,\r\n },\r\n skip: !accidentReportId,\r\n displayName: GqlQueryName.getAccidentReport,\r\n },\r\n );\r\n\r\n // eslint-disable-next-line @typescript-eslint/camelcase\r\n const entryReportInitialInformation = { generalInformation: { accidentInformation: { specializations: { mapping_Claim_Statement: [{ entryReportDateOffset: '' }] } } } };\r\n const accidentReport = useMemo(() => {\r\n if (data?.accidentReport) {\r\n return loadForm(data.accidentReport);\r\n }\r\n entryReportInitialInformation.generalInformation.accidentInformation.specializations\r\n .mapping_Claim_Statement[0].entryReportDateOffset = now.format(DateOffsetFormat);\r\n return entryReportInitialInformation;\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [data]);\r\n\r\n useEffect(() => {\r\n if (loadError?.graphQLErrors?.length) {\r\n displayMessage(formatGQLErrors(loadError?.graphQLErrors.map((e) => e)));\r\n }\r\n }, [loadError, displayMessage]);\r\n\r\n if (loading) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n <>\r\n \r\n {(client) => (\r\n onSubmit(\r\n client as ApolloClient,\r\n accidenReport,\r\n formErrors,\r\n isDraft,\r\n )\r\n }\r\n submitting={submitting}\r\n initialValue={accidentReport}\r\n isDraft={draft}\r\n />\r\n )}\r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { translate } from '@gears/translations';\r\nimport { Page } from '../../Page';\r\nimport { AccidentReportFormPage as BaseAccidentReportFormPage } from './containers/AccidentReportForm';\r\n\r\nexport const AccidentReportFormPage = () => (\r\n
\r\n \r\n \r\n \r\n
\r\n);\r\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\r\n/* eslint-disable jsx-a11y/no-static-element-interactions */\r\n/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useContext, useState } from 'react';\r\nimport {\r\n CircularLoader, Grid, GridItem, Icon, ThemeContext,\r\n} from '@shift/design-system';\r\nimport { InfoCircleSvg } from '@shift/icons';\r\nimport { translate } from '@gears/translations';\r\nimport { AnyType } from 'src/types';\r\nimport { DownloadType, useFetch } from 'src/libs/fetch';\r\nimport { inProgressObjectEnum, closedObjectEnum, isDraft as isDraftFn } from 'src/constants';\r\nimport { Formatters } from 'src/config/formatters';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst { PDFLinkFormatter } = Formatters;\r\n\r\nexport interface AccidentReportSubmittedProps {\r\n accidentReport: AnyType;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst downloader = (dl: DownloadType, id: string, referenceCode: string, submitDate: number, versionNumber: number) => {\r\n // when submitting through the UI, the lastVersion is equal to both the submitDate and version so it's used twice here\r\n const { filename, url } = PDFLinkFormatter.transform([id, referenceCode, submitDate, versionNumber]);\r\n return dl(url, filename);\r\n};\r\n\r\nexport const AccidentReportSubmitted = ({\r\n accidentReport,\r\n}: AccidentReportSubmittedProps) => {\r\n const [isDownloadingPdf, setIsDownloadingPdf] = useState(false);\r\n const { colors } = useContext(ThemeContext);\r\n const { download: dl } = useFetch();\r\n const isDraft = isDraftFn(accidentReport?.status?.Name);\r\n const isAddendum = accidentReport?.status?.Name === 'Addendum';\r\n const isAR = (accidentReport?.status?.Name === inProgressObjectEnum.Name || accidentReport?.status?.Name === closedObjectEnum.Name);\r\n const lastVersionNumber = accidentReport?.versions?.[0]?.number;\r\n const lastSubmitDate = accidentReport?.versions?.[0]?.submissionDate;\r\n return (\r\n
\r\n
\r\n

{translate('accident-report-submitted:thank-you')}

\r\n

\r\n {isDraft && translate('accident-report-submitted:draft-saved')}\r\n {isAddendum && translate('accident-report-submitted:addendum-submitted')}\r\n {isAR && translate('accident-report-submitted:report-submitted')}\r\n

\r\n
{translate('accident-report-submitted:report-number')}
\r\n

\r\n {accidentReport?.referenceCode}\r\n

\r\n {isDraft && (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {translate('accident-report-submitted:draft-saved-message')}\r\n \r\n \r\n
\r\n )}\r\n {isDraft && (\r\n \r\n {translate('accident-report-submitted:resume-report')}\r\n \r\n )}\r\n {isAR && (\r\n {\r\n if (lastVersionNumber == null) {\r\n return undefined;\r\n }\r\n setIsDownloadingPdf(true);\r\n return downloader(dl, accidentReport?.id, accidentReport?.referenceCode, lastSubmitDate, lastVersionNumber)\r\n .finally(() => setIsDownloadingPdf(false));\r\n }}\r\n download\r\n >\r\n \r\n \r\n {translate('accident-report-submitted:download-pdf')}\r\n \r\n {\r\n isDownloadingPdf && (\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n )}\r\n {translate('accident-report-submitted:go-to-list')}\r\n
\r\n
\r\n );\r\n};\r\n","import React, { useContext } from 'react';\r\nimport { buildQuery, GqlQueryName, useQuery } from 'src/graphql';\r\nimport { useIdFromParams } from 'src/utils/hooks';\r\nimport { useAccidentReportsConfig } from 'src/config/configuration/GearsConfigProvider/GearsConfigProvider';\r\nimport { GridCenteredCircularLoader } from 'src/components/Loader/GridCenteredCircularLoader';\r\nimport { formatGQLErrors } from 'src/utils/forms';\r\nimport { MessageModalContext } from 'src/MessageModal';\r\nimport { AccidentReportSubmitted } from '../components/AccidentReportSubmitted';\r\n\r\nexport const AccidentReportSubmittedPage = () => {\r\n const accidentReportId = useIdFromParams();\r\n const reportSubmittedConfig = useAccidentReportsConfig('reportSubmitted');\r\n const { displayMessage } = useContext(MessageModalContext);\r\n const formQuery = buildQuery(reportSubmittedConfig.context, reportSubmittedConfig.fields);\r\n const { data, loading, error } = useQuery(\r\n formQuery, { variables: { id: accidentReportId }, displayName: GqlQueryName.getSubmittedAccidentReport },\r\n );\r\n\r\n if (loading) {\r\n return (\r\n \r\n );\r\n }\r\n if (error?.graphQLErrors?.length) {\r\n displayMessage(formatGQLErrors(error?.graphQLErrors.map((e) => e)));\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { translate } from '@gears/translations';\r\nimport { Page } from '../../Page';\r\nimport { AccidentReportSubmittedPage as BaseAccidentReportSubmittedPage } from './containers/AccidentReportSubmitted';\r\n\r\nexport const AccidentReportSubmittedPage = () => (\r\n
\r\n \r\n \r\n \r\n
\r\n);\r\n","import { changeLanguage, Locale } from '@gears/translations';\r\nimport { ThunkAction } from 'redux-thunk';\r\nimport { ApplicationActionTypes, SET_LOCALE } from './application-types';\r\n\r\nexport const setLocale = (locale: Locale): ThunkAction => (dispatch) => {\r\n changeLanguage((locale as string));\r\n dispatch({\r\n type: SET_LOCALE,\r\n locale,\r\n });\r\n};\r\n","/* eslint-disable react/no-array-index-key */\r\nimport React from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { Locale } from '@gears/translations';\r\nimport { RootReducerType } from 'src/store/reducers';\r\nimport { setLocale } from 'src/store/application/application-actions';\r\nimport { Button, Grid, GridItem } from '@shift/design-system';\r\nimport { ToggleMockConsumer } from 'src/graphql/GraphQLProvider';\r\nimport { useSecurity } from 'src/libs/auth';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nconst gridItemStyle = { marginTop: '1rem' };\r\n\r\nexport const Settings = () => {\r\n const history = useHistory();\r\n const locale = useSelector((state: RootReducerType) => state.get('application').get('locale'));\r\n const dispatch = useDispatch();\r\n const { user } = useSecurity();\r\n\r\n const gridStyle = {\r\n border: 'black 1px solid',\r\n width: '100%',\r\n };\r\n\r\n const style = {\r\n width: '600px',\r\n padding: '0 0 0 10px',\r\n border: 'black 1px solid',\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n

\r\n Current Language:\r\n { locale}\r\n

\r\n
\r\n \r\n

Change language:

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {user && (\r\n \r\n

\r\n Below is the information from your ID token which was obtained during the \r\n \r\n PKCE Flow\r\n \r\n  and is now stored in local storage.\r\n

\r\n \r\n \r\n \r\n \r\n

Claim

\r\n
\r\n \r\n

Value

\r\n
\r\n
\r\n
\r\n {Object.entries(user).map(([claimName, claimValue], index) => (\r\n \r\n \r\n \r\n

{claimName}

\r\n
\r\n \r\n

{JSON.stringify(claimValue, null, 4)}

\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { translate } from '@gears/translations';\r\n\r\nimport { Page } from 'src/pages/Page';\r\nimport { Settings as BaseSettings } from './Settings';\r\n\r\nexport const Settings = () => ;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { useFetch } from 'src/libs/fetch';\r\nimport { apiConfig, dashboardLink } from 'src/config';\r\nimport { permissions } from 'src/config/permissions';\r\nimport { useSecurity } from 'src/libs/auth';\r\n\r\nexport const Reporting = () => {\r\n const { goodDataEncryptedClaims } = useFetch();\r\n\r\n const [formUrl, setFormUrl] = useState('');\r\n const [targetUrl, setTargetUrl] = useState();\r\n const [SSOProvider, setSSOProvider] = useState();\r\n const [encryptedClaims, setEncryptedClaims] = useState();\r\n const [dashboard, setDashboard] = useState('');\r\n const { user } = useSecurity();\r\n const formRef = useRef(null);\r\n useEffect(() => {\r\n if (user != null && (permissions.isGIASecretariat(user) || permissions.isAdmin(user))) {\r\n setDashboard(dashboardLink.gia);\r\n } else {\r\n setDashboard(dashboardLink.insurer);\r\n }\r\n\r\n if (dashboard) {\r\n goodDataEncryptedClaims(`${apiConfig.reportingSecuredClaimsUri}/${dashboard}`)\r\n .then((res) => res.json())\r\n .then((data) => {\r\n setEncryptedClaims(data.encryptedClaims);\r\n setSSOProvider(data.ssoProvider);\r\n setTargetUrl(data.targetUrl);\r\n setFormUrl(data.formUrl);\r\n // eslint-disable-next-line no-unused-expressions\r\n formRef?.current?.submit();\r\n });\r\n }\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [formRef, dashboard]);\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","import React from 'react';\r\nimport { translate } from '@gears/translations';\r\n\r\nimport { Page } from '../Page';\r\nimport { Reporting as BaseReporting } from './reporting';\r\n\r\n// eslint-disable-next-line import/no-default-export\r\nexport const Reporting = () => ;\r\n","import { COUNTRIES_INFOS, PhoneNumber } from '@shift/design-system';\r\nimport { IMyInfoState, IVehicleInfo } from 'src/types/myInfo';\r\n\r\nconst getPhoneNumber = (\r\n number: string | undefined,\r\n dialCode: string | undefined,\r\n) => {\r\n let localDialCode = dialCode;\r\n if (dialCode && !dialCode.startsWith('+')) {\r\n localDialCode = `+${dialCode.trim()}`;\r\n }\r\n const countryCode = COUNTRIES_INFOS.find(\r\n (x) => x.dialCode === localDialCode,\r\n )?.code;\r\n const phoneNumber: PhoneNumber = {\r\n countryCode,\r\n dialCode: localDialCode?.replace('+', ''),\r\n number,\r\n };\r\n return phoneNumber;\r\n};\r\n\r\nexport const mapMyInfoToReportState = (myInfo: any): IMyInfoState => {\r\n const state: IMyInfoState = {\r\n personalInfo: {\r\n ufin: myInfo.uinfin?.value,\r\n name: myInfo.name?.value,\r\n sex: myInfo.sex?.desc,\r\n dob: myInfo.dob?.value,\r\n },\r\n contactInfo: {\r\n email: myInfo.email?.value,\r\n phone: getPhoneNumber(\r\n myInfo.mobileno?.nbr.value,\r\n myInfo.mobileno?.areacode.value,\r\n ),\r\n },\r\n regAdd: {\r\n countryCode: myInfo.regadd?.country?.code,\r\n country: myInfo.regadd?.country?.desc,\r\n unit: myInfo.regadd?.unit?.value,\r\n street: myInfo.regadd?.street?.value,\r\n block: myInfo.regadd?.block?.value,\r\n postal: myInfo.regadd?.postal?.value,\r\n floor: myInfo.regadd?.floor?.value,\r\n building: myInfo.regadd?.building?.value,\r\n },\r\n ownedVehicles: myInfo.vehicles?.map((item: any) => {\r\n const vehicleInfo: IVehicleInfo = {\r\n vehicleno: item.vehicleno?.value,\r\n type: item.type?.value,\r\n make: item.make?.value,\r\n model: item.model?.value,\r\n propellant: item.propellant?.value,\r\n enginecapacity: item.enginecapacity.value,\r\n chassisno: item.chassisno?.value,\r\n firstregistrationdate: item.firstregistrationdate?.value,\r\n effectiveownershipdate: item.effectiveownership?.value,\r\n };\r\n return vehicleInfo;\r\n }),\r\n licenceInfo: {\r\n classes: myInfo.drivinglicence?.qdl?.classes.map((item: any) => ({ class: item.class?.value, issueDate: item.issuedate?.value })),\r\n validity: myInfo.drivinglicence?.qdl?.validity?.code,\r\n validityDesc: myInfo.drivinglicence?.qdl?.validity?.desc,\r\n },\r\n };\r\n return state;\r\n};\r\n","import { runtimeConfig } from './runtime-config';\r\n\r\n// eslint-disable-next-line\r\nconst MYINFO_ATTRIBUTES = 'uinfin,name,sex,dob,email,mobileno,regadd,drivinglicence.qdl.classes,drivinglicence.qdl.validity,vehicles.vehicleno,vehicles.type,vehicles.make,vehicles.model,vehicles.enginecapacity,vehicles.chassisno,vehicles.firstregistrationdate,vehicles.propellant,vehicles.effectiveownership';\r\n\r\nconst myInfoFields = [\r\n 'uinfin',\r\n 'name',\r\n 'sex',\r\n 'race',\r\n 'dob',\r\n 'email',\r\n 'mobileno',\r\n 'regadd',\r\n 'drivinglicence.qdl.classes',\r\n 'drivinglicence.qdl.validity',\r\n 'vehicles.vehicleno',\r\n 'vehicles.type',\r\n 'vehicles.make',\r\n 'vehicles.model',\r\n 'vehicles.propellant',\r\n 'vehicles.enginecapacity',\r\n 'vehicles.chassisno',\r\n 'vehicles.firstregistrationdate',\r\n 'vehicles.effectiveownership',\r\n];\r\n\r\nconst {\r\n myInfoClientId,\r\n myInfoRedirectUrl,\r\n myInfoPurpose,\r\n myInfoEnvironment,\r\n myInfoAuthUrl,\r\n myInfoPersonUrl,\r\n\r\n} = runtimeConfig();\r\n\r\nexport const MyInfo = {\r\n authUrl: myInfoAuthUrl,\r\n clientId: myInfoClientId,\r\n redirectUrl: myInfoRedirectUrl,\r\n attributes: (MYINFO_ATTRIBUTES as string)\r\n .split(',')\r\n .filter((attr) => myInfoFields.includes(attr))\r\n .join(','),\r\n purpose: myInfoPurpose,\r\n environment: myInfoEnvironment,\r\n personUrl: myInfoPersonUrl,\r\n};\r\n","export const vehicleFuels: Record = {\r\n //\"MyInfo value\": \"Gears value\"\r\n 'Compressed Natural Gas': 'NaturalGas',\r\n 'Diesel': 'Diesel',\r\n 'Diesel-CNG': 'Lpg',\r\n 'Diesel-Electric': 'HybridDiesel',\r\n 'Diesel-Electric (Plug-In)': 'HybridDieselPlugIn',\r\n 'Electric': 'Electric',\r\n 'Petrol': 'Gasoline',\r\n 'Petrol-CNG': 'Lpg',\r\n 'Petrol-Electric': 'HybridGasoline',\r\n 'Petrol-Electric (Plug-In)': 'HybridGasolinePlugIn',\r\n};\r\n\r\n// GEARS values:\r\n// Gasoline = 0,\r\n// Diesel = 1,\r\n// Lpg = 2,\r\n// Electric = 3,\r\n// NaturalGas = 4,\r\n// HybridGasoline = 5,\r\n// HybridDiesel = 6,\r\n// Hydrogen = 7,\r\n// Hybrid = 8\r\n","export const vehicleMakes: Record = {\r\n // \"Gears value\": \"MyInfo value\"\r\n alpina: 'Alpina',\r\n ankai: 'Ankai',\r\n BeiBen: 'BeiBen',\r\n Bertone: 'Bertone',\r\n BlueCar: 'Bluecar',\r\n Bollore: 'Bollore',\r\n BRP: 'BRP',\r\n Bsa: 'BSA',\r\n Cadillac: 'Cadillac',\r\n Cagiva: 'Cagiva',\r\n Camc: 'CAMC',\r\n Carbodies: 'Carbodies',\r\n Carmichael: 'Carmichael',\r\n Changjiang: 'Changjiang',\r\n Chunlan: 'Chunlan',\r\n Columbia: 'Columbia',\r\n Condiesel: 'Condiesel',\r\n COSA: 'COSA',\r\n Cpi: 'CPI',\r\n Daimler: 'Daimler',\r\n Datsun: 'Datsun',\r\n Daytona: 'Daytona',\r\n Dennis: 'Dennis',\r\n ElectricBicycle: 'Electric Bicycle',\r\n FTBCI: 'FTBCI',\r\n Gac: 'GAC',\r\n Galloper: 'Galloper',\r\n Gasgas: 'GasGas',\r\n GoldenDragon: 'Golden Dragon',\r\n Hartford: 'Hartford',\r\n Higer: 'Higer',\r\n HockNamSeng: 'Hock Nam Seng',\r\n Hummer: 'Hummer',\r\n Inokom: 'Inokom',\r\n Italjet: 'Italjet',\r\n Jac: 'JAC',\r\n JianShe: 'Jianshe',\r\n Jinbei: 'Jinbei',\r\n Johnston: 'Johnston',\r\n Joylong: 'Joylong',\r\n KimEngSeng: 'Kim Eng Seng',\r\n Kinglong: 'King Long',\r\n Lada: 'Lada',\r\n Lambretta: 'Lambretta',\r\n Lancia: 'Lancia',\r\n Liebherr: 'Liebherr',\r\n Linde: 'Linde',\r\n Mark: 'Mark',\r\n Megelli: 'Megelli',\r\n MLE: 'MLE',\r\n Morgan: 'Morgan',\r\n MotoGuzzi: 'Moto Guzzi',\r\n Norton: 'Norton',\r\n Paijifa: 'Paijifa',\r\n Puyuan: 'Puyuan',\r\n Sachs: 'Sachs',\r\n Sany: 'Sany',\r\n Sanyang: 'Sanyang',\r\n SCNeustar: 'SC Neustar',\r\n Scomadi: 'Scomadi',\r\n Shuchi: 'Shuchi',\r\n Sinotruk: 'Sinotruk',\r\n SoongWingTrailer: 'Soong Wing Trailer',\r\n Specialized: 'Specialized',\r\n TD2000: 'TD2000',\r\n Tesla: 'Tesla',\r\n TheLondonTaxiCompany: 'The London Taxi Company',\r\n Tiger: 'Tiger',\r\n Trailer: 'Trailer',\r\n Treelektrik: 'Treelektrik',\r\n Victory: 'Victory',\r\n Wuling: 'Wuling',\r\n XMXGZG: 'XMXGZG',\r\n XuGong: 'XuGong',\r\n YoungMan: 'Youngman',\r\n Zhongtong: 'Zhongtong',\r\n Zipstar: 'Zipstar',\r\n ZonDa: 'Zonda',\r\n Zoomlion: 'Zoomlion',\r\n Zotye: 'Zotye',\r\n Adiva: 'Adiva',\r\n AlexanderDennis: 'Alexander Dennis',\r\n AlfaRomeo: 'Alfa Romeo',\r\n Aprilia: 'Aprilia',\r\n AstonMartin: 'Aston Martin',\r\n Audi: 'Audi',\r\n Austin: 'Austin',\r\n Bajaj: 'Bajaj',\r\n Benelli: 'Benelli',\r\n Bentley: 'Bentley',\r\n Bmw: 'BMW',\r\n Brixton: 'Brixton',\r\n Bugati: 'Bugatti',\r\n Byd: 'Byd',\r\n CanAm: 'Can-Am',\r\n Chana: 'Chana',\r\n Chery: 'Chery',\r\n Chevrolet: 'Chevrolet',\r\n Chrysler: 'Chrysler',\r\n Citroen: 'Citroen',\r\n Crown: 'Crown',\r\n Daelim: 'Daelim',\r\n Daewoo: 'Daewoo',\r\n Daf: 'Daf',\r\n Daihatsu: 'Daihatsu',\r\n Demag: 'Demag',\r\n Derbi: 'Derbi',\r\n Dodge: 'Dodge',\r\n Dongfeng: 'Dongfeng',\r\n Ducati: 'Ducati',\r\n Dulevo: 'Dulevo',\r\n Ferrari: 'Ferrari',\r\n Fiat: 'Fiat',\r\n Ford: 'Ford',\r\n Foton: 'Foton',\r\n Geely: 'Geely',\r\n Gilera: 'Gilera',\r\n Grove: 'Grove',\r\n Hafei: 'Hafei',\r\n HarleyDavidson: 'Harley Davidson',\r\n Hdk: 'Hdk',\r\n Hillman: 'Hillman',\r\n Hino: 'Hino',\r\n Holden: 'Holden',\r\n Honda: 'Honda',\r\n Husqvarna: 'Husqvarna',\r\n Hyosung: 'Hyosung',\r\n Hyundai: 'Hyundai',\r\n Indian: 'Indian',\r\n Infiniti: 'Infiniti',\r\n Isuzu: 'Isuzu',\r\n Iveco: 'Iveco',\r\n Jaguar: 'Jaguar',\r\n Jeep: 'Jeep',\r\n Kasinski: 'Kasinski',\r\n Kawasaki: 'Kawasaki',\r\n Keeway: 'Keeway',\r\n Kia: 'Kia',\r\n Komatsu: 'Komatsu',\r\n Ktm: 'Ktm',\r\n Kymco: 'Kymco',\r\n Lamborghini: 'Lamborghini',\r\n LandRover: 'LandRover',\r\n Lexbuild: 'Lexbuild',\r\n Lexus: 'Lexus',\r\n Leyland: 'Leyland',\r\n Lifan: 'Lifan',\r\n Lml: 'Lml',\r\n Lotus: 'Lotus',\r\n Man: 'Man',\r\n Manitou: 'Manitou',\r\n Maserati: 'Maserati',\r\n Maxus: 'Maxus',\r\n Mazda: 'Mazda',\r\n McLaren: 'McLaren',\r\n Mercedes: 'Mercedes',\r\n Mg: 'MG',\r\n MgRover: 'MG Rover',\r\n Mini: 'Mini',\r\n Mitsubishi: 'Mitsubishi',\r\n Mitsuoka: 'Mitsuoka',\r\n Modenas: 'Modenas',\r\n Morris: 'Morris',\r\n Mvagusta: 'Mvagusta',\r\n Naza: 'Naza',\r\n Nissan: 'Nissan',\r\n Noble: 'Noble',\r\n Opel: 'Opel',\r\n Pagani: 'Pagani',\r\n Perodua: 'Perodua',\r\n Peugeot: 'Peugeot',\r\n Pgo: 'Pgo',\r\n Piaggio: 'Piaggio',\r\n Porsche: 'Porsche',\r\n Proton: 'Proton',\r\n Renault: 'Renault',\r\n Rieju: 'Rieju',\r\n RollsRoyce: 'Rolls Royce',\r\n Rover: 'Rover',\r\n RoyalEnfield: 'Royal Enfield',\r\n Saab: 'Saab',\r\n Scania: 'Scania',\r\n Seat: 'Seat',\r\n Shacman: 'Shacman',\r\n ShenyangBrillianceJinbei: 'Shenyang Brilliance Jinbei',\r\n Skoda: 'Skoda',\r\n Smart: 'Smart',\r\n Ssangyong: 'Ssangyong',\r\n Subaru: 'Subaru',\r\n Sunlong: 'Sunlong',\r\n Suzuki: 'Suzuki',\r\n Sym: 'Sym',\r\n Tadano: 'Tadano',\r\n Tennant: 'Tennant',\r\n Terex: 'Terex',\r\n Tgb: 'Tgb',\r\n Toyota: 'Toyota',\r\n Triumph: 'Triumph',\r\n Tvs: 'Tvs',\r\n UDTrucks: 'UDTrucks',\r\n Vespa: 'Vespa',\r\n Volkswagen: 'Volkswagen',\r\n Volvo: 'Volvo',\r\n Yamaha: 'Yamaha',\r\n Yutong: 'Yutong',\r\n Zongshen: 'Zongshen',\r\n Mutt: 'Mutt',\r\n};\r\n","export const vehicleModels: Record = {\r\n // \"Gears value\": \"MyInfo value\"\r\n Adiva_Ad1: 'Ad1',\r\n Adiva_Ad200: 'Ad200',\r\n Adiva_Ad3: 'Ad3',\r\n Adiva_Ar3: 'Ar3',\r\n AlfaRomeo_147: '147',\r\n AlfaRomeo_156: '156',\r\n AlfaRomeo_159: '159',\r\n AlfaRomeo_166: '166',\r\n AlfaRomeo_170: '170',\r\n AlfaRomeo_1750: '1750',\r\n AlfaRomeo_4c: '4c',\r\n AlfaRomeo_A147: 'A147',\r\n AlfaRomeo_A156: 'A156',\r\n AlfaRomeo_A159: 'A159',\r\n AlfaRomeo_Brera: 'Brera',\r\n AlfaRomeo_Giulietta: 'Giulietta',\r\n AlfaRomeo_Gt: 'Gt',\r\n AlfaRomeo_Gtv: 'Gtv',\r\n AlfaRomeo_Mito: 'Mito',\r\n AlfaRomeo_Spider: 'Spider',\r\n Aprilia_Atlantic: 'Atlantic',\r\n Aprilia_Caponord: 'Caponord',\r\n Aprilia_Dorsoduro: 'Dorsoduro',\r\n Aprilia_Mojito: 'Mojito',\r\n Aprilia_Tuono: 'Tuono',\r\n AstonMartin_Db7: 'Db7',\r\n AstonMartin_Db9: 'Db9',\r\n AstonMartin_Dbs: 'Dbs',\r\n AstonMartin_Rapide: 'Rapide',\r\n AstonMartin_V8: 'V8',\r\n AstonMartin_Valkyrie: 'Valkyrie',\r\n AstonMartin_Vanquish: 'Vanquish',\r\n Audi_A1: 'A1',\r\n Audi_A3: 'A3',\r\n Audi_A4: 'A4',\r\n Audi_A5: 'A5',\r\n Audi_A6: 'A6',\r\n Audi_A7: 'A7',\r\n Audi_A8: 'A8',\r\n Audi_A8l: 'A8l',\r\n Audi_Allroad: 'Allroad',\r\n Audi_Q2: 'Q2',\r\n Audi_Q3: 'Q3',\r\n Audi_Q5: 'Q5',\r\n Audi_Q7: 'Q7',\r\n Audi_Q8: 'Q8',\r\n Audi_Quat: 'Quat',\r\n Audi_R8: 'R8',\r\n Audi_Rs3: 'RS 3',\r\n Audi_Rs4: 'RS 4',\r\n Audi_Rs5: 'RS 5',\r\n Audi_Rs6: 'RS 6',\r\n Audi_S3: 'S3',\r\n Audi_S4: 'S4',\r\n Audi_S5: 'S5',\r\n Audi_S6: 'S6',\r\n Audi_S7: 'S7',\r\n Audi_S8: 'S8',\r\n Audi_Tt: 'TT',\r\n Audi_Ttc: 'Ttc',\r\n Audi_Tts: 'TTS',\r\n Austin_A40: 'A40',\r\n Bajaj_Avenger: 'Avenger',\r\n Bajaj_Ct100: 'Ct100',\r\n Bajaj_Pulsar: 'Pulsar',\r\n Benelli_Adiva: 'Adiva',\r\n Bentley_Arnage: 'Arnage',\r\n Bentley_Azure: 'Azure',\r\n Bentley_Continental: 'Continental',\r\n 'Bentley_Flying spur': 'Flying spur',\r\n Bentley_Mulsanne: 'Mulsanne',\r\n Bmw_116d: '116d',\r\n Bmw_116i: '116i',\r\n Bmw_118: '118',\r\n Bmw_118i: '118i',\r\n Bmw_120i: '120i',\r\n Bmw_125i: '125i',\r\n Bmw_130i: '130i',\r\n Bmw_135i: '135i',\r\n Bmw_216d: '216d',\r\n Bmw_216i: '216i',\r\n Bmw_218d: '218d',\r\n Bmw_218i: '218i',\r\n Bmw_220i: '220i',\r\n Bmw_225xe: '225xe',\r\n Bmw_228i: '228i',\r\n Bmw_230i: '230i',\r\n 'Bmw_315cdi/4325': '315cdi/4325',\r\n 'Bmw_316cdi/3665': '316cdi/3665',\r\n Bmw_316i: '316i',\r\n Bmw_318: '318',\r\n Bmw_318ci: '318ci',\r\n Bmw_318i: '318i',\r\n Bmw_320ci: '320ci',\r\n Bmw_320d: '320d',\r\n Bmw_320i: '320i',\r\n Bmw_320im: '320im',\r\n Bmw_323i: '323i',\r\n Bmw_323ia: '323ia',\r\n Bmw_325ci: '325ci',\r\n Bmw_325i: '325i',\r\n Bmw_328i: '328i',\r\n Bmw_330ci: '330ci',\r\n Bmw_330i: '330i',\r\n Bmw_335i: '335i',\r\n Bmw_340i: '340i',\r\n Bmw_420i: '420i',\r\n Bmw_428i: '428i',\r\n Bmw_430i: '430i',\r\n Bmw_435i: '435i',\r\n Bmw_440i: '440i',\r\n Bmw_520d: '520d',\r\n Bmw_520i: '520i',\r\n Bmw_523i: '523i',\r\n Bmw_525i: '525i',\r\n Bmw_528i: '528i',\r\n Bmw_530i: '530i',\r\n Bmw_535d: '535d',\r\n Bmw_535i: '535i',\r\n Bmw_540i: '540i',\r\n Bmw_550i: '550i',\r\n Bmw_630ci: '630ci',\r\n Bmw_630i: '630i',\r\n Bmw_640i: '640i',\r\n Bmw_645: '645',\r\n Bmw_645ci: '645ci',\r\n Bmw_650ci: '650ci',\r\n Bmw_650i: '650i',\r\n Bmw_725d: '725d',\r\n Bmw_728i: '728i',\r\n Bmw_730: '730',\r\n Bmw_730i: '730i',\r\n Bmw_730li: '730li',\r\n Bmw_735i: '735i',\r\n Bmw_735li: '735li',\r\n Bmw_740: '740',\r\n Bmw_740i: '740i',\r\n Bmw_740le: '740le',\r\n Bmw_740li: '740li',\r\n Bmw_745i: '745i',\r\n Bmw_745li: '745li',\r\n Bmw_750i: '750i',\r\n Bmw_750li: '750li',\r\n Bmw_760li: '760li',\r\n Bmw_840i: '840i',\r\n Bmw_Activehybrid: 'Activehybrid',\r\n 'Bmw_Alpina b3': 'Alpina b3',\r\n 'Bmw_Alpina b4': 'Alpina b4',\r\n 'Bmw_Alpina d5': 'Alpina d5',\r\n Bmw_C650gt: 'C650gt',\r\n Bmw_F650gs: 'F650gs',\r\n Bmw_F800gs: 'F800gs',\r\n Bmw_G310: 'G310',\r\n Bmw_I3: 'I3',\r\n Bmw_I8: 'I8',\r\n Bmw_M135i: 'M135i',\r\n Bmw_M140i: 'M140i',\r\n Bmw_M2: 'M2',\r\n Bmw_M235i: 'M235i',\r\n Bmw_M240i: 'M240i',\r\n Bmw_M3: 'M3',\r\n Bmw_M4: 'M4',\r\n Bmw_M5: 'M5',\r\n Bmw_M6: 'M6',\r\n Bmw_X1: 'X1',\r\n Bmw_X2: 'X2',\r\n Bmw_X3: 'X3',\r\n Bmw_X4: 'X4',\r\n Bmw_X5: 'X5',\r\n Bmw_X6: 'X6',\r\n Bmw_X7: 'X7',\r\n Bmw_Z3: 'Z3',\r\n Bmw_Z4: 'Z4',\r\n Brixton_Bx125: 'Bx125',\r\n 'Bugati_Eb 110': 'Eb 110',\r\n Bugati_Veyron: 'Veyron',\r\n Byd_E6h: 'E6h',\r\n Byd_E6y: 'E6y',\r\n CanAm_Spyder: 'Spyder',\r\n Chana_Benni: 'Benni',\r\n Chery_A168: 'A168',\r\n Chery_Oriental: 'Oriental',\r\n Chery_Qq: 'Qq',\r\n Chery_T11: 'T11',\r\n Chery_V5: 'V5',\r\n Chevrolet_Aveo: 'Aveo',\r\n Chevrolet_Aveo5: 'Aveo5',\r\n Chevrolet_Captiva: 'Captiva',\r\n Chevrolet_Cruze: 'Cruze',\r\n Chevrolet_Epica: 'Epica',\r\n Chevrolet_Lumina: 'Lumina',\r\n Chevrolet_Malibu: 'Malibu',\r\n Chevrolet_Mw: 'Mw',\r\n Chevrolet_Optra: 'Optra',\r\n Chevrolet_Optra5: 'Optra5',\r\n Chevrolet_Orlando: 'Orlando',\r\n Chevrolet_Sonic: 'Sonic',\r\n Chevrolet_Spark: 'Spark',\r\n Chevrolet_Vivant: 'Vivant',\r\n Chrysler_300b: '300b',\r\n Chrysler_300c: '300c',\r\n Chrysler_Crossfire: 'Crossfire',\r\n 'Chrysler_Grand voyager': 'Grand voyager',\r\n Chrysler_Pt: 'Pt',\r\n Chrysler_Sebring: 'Sebring',\r\n Citroen_Berlingo: 'Berlingo',\r\n Citroen_C1: 'C1',\r\n Citroen_C3: 'C3',\r\n Citroen_C4: 'C4',\r\n 'Citroen_C4 picasso': 'C4 picasso',\r\n 'Citroen_C4 spacetourer': 'C4 spacetourer',\r\n Citroen_C5: 'C5',\r\n Citroen_C6: 'C6',\r\n Citroen_Dispatch: 'Dispatch',\r\n Citroen_Ds3: 'Ds3',\r\n Citroen_Ds4: 'Ds4',\r\n Citroen_Ds5: 'Ds5',\r\n Citroen_Jumpy: 'Jumpy',\r\n Citroen_Nemo: 'Nemo',\r\n 'Citroen_Traction avant': 'Traction avant',\r\n Citroen_Xsara: 'Xsara',\r\n 'Daelim_B-bone': 'B-bone',\r\n Daelim_Citi: 'Citi',\r\n Daelim_Daystar: 'Daystar',\r\n Daelim_Delfino: 'Delfino',\r\n Daelim_Roadwin: 'Roadwin',\r\n 'Daelim_Roadwin r125': 'Roadwin r125',\r\n 'Daelim_Roadwin r250': 'Roadwin r250',\r\n 'Daelim_Roadwin x5': 'Roadwin x5',\r\n Daewoo_Kalos: 'Kalos',\r\n Daewoo_Lanos: 'Lanos',\r\n Daf_Cf75: 'Cf75',\r\n Daf_Cf85: 'Cf85',\r\n Daf_Sb220: 'Sb220',\r\n Daihatsu_Copen: 'Copen',\r\n Daihatsu_Extol: 'Extol',\r\n 'Daihatsu_Gran move': 'Gran move',\r\n Daihatsu_Hijet: 'Hijet',\r\n Daihatsu_Materia: 'Materia',\r\n 'Daihatsu_Move canbus': 'Move canbus',\r\n 'Daihatsu_S200rv-smlk': 'S200rv-smlk',\r\n 'Daihatsu_S221rv-smlf': 'S221rv-smlf',\r\n 'Daihatsu_S221rv-zmlf': 'S221rv-zmlf',\r\n Daihatsu_Sirion: 'Sirion',\r\n Daihatsu_Terios: 'Terios',\r\n 'Daihatsu_V99luc(p': 'V99luc(p',\r\n Daihatsu_Yrv: 'Yrv',\r\n Daihatsu_Zebra: 'Zebra',\r\n Derbi_Senda: 'Senda',\r\n Dodge_Atitude: 'Atitude',\r\n Dodge_Caliber: 'Caliber',\r\n Dodge_Dart: 'Dart',\r\n Dodge_Journey: 'Journey',\r\n Dongfeng_Eq5021: 'Eq5021',\r\n Dongfeng_Eq6380: 'Eq6380',\r\n Dongfeng_Star: 'Star',\r\n Ducati_1199: '1199',\r\n Ducati_848: '848',\r\n Ducati_916: '916',\r\n Ducati_996sps: '996sps',\r\n Ducati_Diavel: 'Diavel',\r\n Ducati_Monster: 'Monster',\r\n Ducati_Multistrada: 'Multistrada',\r\n Dulevo_5000: '5000',\r\n Ferrari_360: '360',\r\n Ferrari_430: '430',\r\n Ferrari_456: '456',\r\n Ferrari_458: '458',\r\n Ferrari_575m: '575m',\r\n Ferrari_599: '599',\r\n Ferrari_612: '612',\r\n Ferrari_California: 'California',\r\n Ferrari_Challenge: 'Challenge',\r\n 'Ferrari_Challenge stradale': 'Challenge stradale',\r\n Ferrari_Enzo: 'Enzo',\r\n Ferrari_F12berlinetta: 'F12berlinetta',\r\n Ferrari_F430: 'F430',\r\n Ferrari_Ff: 'Ff',\r\n Fiat_124: '124',\r\n Fiat_500: '500',\r\n Fiat_Bravo: 'Bravo',\r\n Fiat_Cinquecento: 'Cinquecento',\r\n Fiat_Croma: 'Croma',\r\n Fiat_Doblo: 'Doblo',\r\n Fiat_Ducato: 'Ducato',\r\n Fiat_Fiorino: 'Fiorino',\r\n Fiat_Idea: 'Idea',\r\n Fiat_Multipla: 'Multipla',\r\n Fiat_Panda: 'Panda',\r\n Fiat_Panorama: 'Panorama',\r\n Fiat_Punto: 'Punto',\r\n Fiat_Scudo: 'Scudo',\r\n Fiat_Stilo: 'Stilo',\r\n Fiat_Ulysse: 'Ulysse',\r\n Ford_Anglia: 'Anglia',\r\n Ford_Econ: 'Econ',\r\n Ford_Escape: 'Escape',\r\n Ford_Everest: 'Everest',\r\n Ford_Fiesta: 'Fiesta',\r\n Ford_Focus: 'Focus',\r\n Ford_Galaxie: 'Galaxie',\r\n Ford_Galaxy: 'Galaxy',\r\n Ford_Kuga: 'Kuga',\r\n Ford_Laser: 'Laser',\r\n Ford_Mondeo: 'Mondeo',\r\n Ford_Mustang: 'Mustang',\r\n Ford_Ranger: 'Ranger',\r\n 'Ford_S-max': 'S-max',\r\n Ford_Spectron: 'Spectron',\r\n Ford_Transit: 'Transit',\r\n Foton_Bj1041: 'Bj1041',\r\n Foton_Bj6103: 'Bj6103',\r\n Foton_Bj6940: 'Bj6940',\r\n Geely_Ck: 'Ck',\r\n Geely_Mk: 'Mk',\r\n Gilera_Fucco: 'Fucco',\r\n 'Gilera_Nexus 300': 'Nexus 300',\r\n 'Gilera_Nexus 500': 'Nexus 500',\r\n Gilera_Runner: 'Runner',\r\n Hafei_Minz: 'Minz',\r\n HarleyDavidson_Flhr: 'Flhr',\r\n HarleyDavidson_Flhrc: 'Flhrc',\r\n HarleyDavidson_Flht: 'Flht',\r\n HarleyDavidson_Flhtcu: 'Flhtcu',\r\n HarleyDavidson_Flhx: 'Flhx',\r\n HarleyDavidson_Flstc: 'Flstc',\r\n HarleyDavidson_Flstf: 'Flstf',\r\n HarleyDavidson_Flstn: 'Flstn',\r\n HarleyDavidson_Flsts: 'Flsts',\r\n HarleyDavidson_Flstsb: 'Flstsb',\r\n HarleyDavidson_Fltrx: 'Fltrx',\r\n HarleyDavidson_Fxcw: 'Fxcw',\r\n HarleyDavidson_Fxcwc: 'Fxcwc',\r\n HarleyDavidson_Fxd: 'Fxd',\r\n HarleyDavidson_Fxdb: 'Fxdb',\r\n HarleyDavidson_Fxdc: 'Fxdc',\r\n HarleyDavidson_Fxdf: 'Fxdf',\r\n HarleyDavidson_Fxdl: 'Fxdl',\r\n HarleyDavidson_Fxstb: 'Fxstb',\r\n HarleyDavidson_Fxstc: 'Fxstc',\r\n HarleyDavidson_Fxstd: 'Fxstd',\r\n HarleyDavidson_Fxstf: 'Fxstf',\r\n HarleyDavidson_Street: 'Street',\r\n 'HarleyDavidson_Xl 1000': 'Xl 1000',\r\n 'HarleyDavidson_Xl 1200c': 'Xl 1200c',\r\n 'HarleyDavidson_Xl 1200l': 'Xl 1200l',\r\n 'HarleyDavidson_Xl 1200n': 'Xl 1200n',\r\n 'HarleyDavidson_Xl 1200r': 'Xl 1200r',\r\n 'HarleyDavidson_Xl 125': 'Xl 125',\r\n 'HarleyDavidson_Xl 883': 'Xl 883',\r\n 'HarleyDavidson_Xl 883c': 'Xl 883c',\r\n 'HarleyDavidson_Xl 883l': 'Xl 883l',\r\n 'HarleyDavidson_Xl 883r': 'Xl 883r',\r\n Hillman_Minx: 'Minx',\r\n 'Hino_700 series': '700 series',\r\n Hino_Fc3jlka: 'Fc3jlka',\r\n Hino_Fc4jgpa: 'Fc4jgpa',\r\n Hino_Fd1jpka: 'Fd1jpka',\r\n 'Hino_Fd7jpma-has': 'Fd7jpma-has',\r\n Hino_Fd8jlka: 'Fd8jlka',\r\n Hino_Fd8jpka: 'Fd8jpka',\r\n Hino_Fd9jpna: 'Fd9jpna',\r\n Hino_Fg8jr1a: 'Fg8jr1a',\r\n Hino_Fr1k: 'Fr1k',\r\n Hino_Fs1elkd: 'Fs1elkd',\r\n Hino_Fs1etka: 'Fs1etka',\r\n Hino_Fs1etla: 'Fs1etla',\r\n Hino_Fs1etma: 'Fs1etma',\r\n Hino_Fs275ka: 'Fs275ka',\r\n Hino_Fs3frka: 'Fs3frka',\r\n Hino_Fy1euka: 'Fy1euka',\r\n Hino_Gd1jppa: 'Gd1jppa',\r\n Hino_Gh1jpla: 'Gh1jpla',\r\n Hino_Gh1jrka: 'Gh1jrka',\r\n Hino_Gh1jrpa: 'Gh1jrpa',\r\n Hino_Gh8jrka: 'Gh8jrka',\r\n 'Hino_Gh8jrma-qgs': 'Gh8jrma-qgs',\r\n Hino_Sh1eeka: 'Sh1eeka',\r\n 'Hino_Sh1eema-kas': 'Sh1eema-kas',\r\n Hino_Sh1eera: 'Sh1eera',\r\n Hino_Sh273ka: 'Sh273ka',\r\n Holden_Cascada: 'Cascada',\r\n Holden_Colorado: 'Colorado',\r\n Honda_400x: '400x',\r\n Honda_Accord: 'Accord',\r\n Honda_Acty: 'Acty',\r\n 'Honda_Adv 750': 'Adv 750',\r\n 'Honda_Afx-110': 'Afx-110',\r\n Honda_Airwave: 'Airwave',\r\n Honda_Ambition: 'Ambition',\r\n 'Honda_Anf 125': 'Anf 125',\r\n Honda_C100: 'C100',\r\n Honda_Ca125t: 'Ca125t',\r\n Honda_Ca125x: 'Ca125x',\r\n Honda_Cb1000r: 'Cb1000r',\r\n Honda_Cb125: 'Cb125',\r\n Honda_Cb1300: 'Cb1300',\r\n Honda_Cb150r: 'Cb150r',\r\n Honda_Cb190r: 'Cb190r',\r\n Honda_Cb190x: 'Cb190x',\r\n Honda_Cb250p: 'Cb250p',\r\n Honda_Cb400: 'Cb400',\r\n Honda_Cb4008j: 'Cb4008j',\r\n Honda_Cb400a8j: 'Cb400a8j',\r\n Honda_Cb400asfyj: 'Cb400asfyj',\r\n Honda_Cb400f: 'Cb400f',\r\n Honda_Cb400sf: 'Cb400sf',\r\n Honda_Cb400sf2j: 'Cb400sf2j',\r\n Honda_Cb400sf4j: 'Cb400sf4j',\r\n Honda_Cb400sfhv: 'Cb400sfhv',\r\n Honda_Cb400sfvt: 'Cb400sfvt',\r\n Honda_Cb400sfxj: 'Cb400sfxj',\r\n Honda_Cb400sfy: 'Cb400sfy',\r\n Honda_Cb400sfyj: 'Cb400sfyj',\r\n Honda_Cb400x: 'Cb400x',\r\n 'Honda_Cb600fa-pc41': 'Cb600fa-pc41',\r\n Honda_Cb750f21: 'Cb750f21',\r\n Honda_Cb900f: 'Cb900f',\r\n Honda_Cbf: 'Cbf',\r\n Honda_Cbf1000: 'Cbf1000',\r\n Honda_Cbf125r: 'Cbf125r',\r\n Honda_Cbf150: 'Cbf150',\r\n Honda_Cbf190wh: 'Cbf190wh',\r\n Honda_Cbf600m: 'Cbf600m',\r\n Honda_Cbf87lhsa: 'Cbf87lhsa',\r\n Honda_Cbr: 'Cbr',\r\n Honda_Cbr1000rr: 'Cbr1000rr',\r\n Honda_Cbr1100xx: 'Cbr1100xx',\r\n Honda_Cbr125r: 'Cbr125r',\r\n Honda_Cbr150r: 'Cbr150r',\r\n Honda_Cbr250r: 'Cbr250r',\r\n Honda_Cbr400rr: 'Cbr400rr',\r\n Honda_Cbr400rrr: 'Cbr400rrr',\r\n Honda_Cbr600f: 'Cbr600f',\r\n Honda_Cbr600rr: 'Cbr600rr',\r\n Honda_Cbr900: 'Cbr900',\r\n Honda_Cbx200: 'Cbx200',\r\n Honda_Cbx250: 'Cbx250',\r\n Honda_Cbx400x: 'Cbx400x',\r\n Honda_Cg125: 'Cg125',\r\n Honda_City: 'City',\r\n Honda_Civic: 'Civic',\r\n 'Honda_Civic mugen': 'Civic mugen',\r\n Honda_Click: 'Click',\r\n 'Honda_Cm 125': 'Cm 125',\r\n Honda_Cn250: 'Cn250',\r\n 'Honda_Cr-v': 'Cr-v',\r\n 'Honda_Cr-z': 'Cr-z',\r\n Honda_Crf1000a: 'Crf1000a',\r\n Honda_Crf250r: 'Crf250r',\r\n Honda_Crossroad: 'Crossroad',\r\n Honda_Cs1: 'Cs1',\r\n Honda_Deauville: 'Deauville',\r\n 'Honda_Dn-01': 'Dn-01',\r\n Honda_Dream: 'Dream',\r\n Honda_Edix: 'Edix',\r\n Honda_Elysion: 'Elysion',\r\n Honda_Ex5: 'Ex5',\r\n Honda_Fes250: 'Fes250',\r\n Honda_Fireblade: 'Fireblade',\r\n Honda_Fit: 'Fit',\r\n Honda_Fjs400: 'Fjs400',\r\n Honda_Fjs600: 'Fjs600',\r\n Honda_Fmx650: 'Fmx650',\r\n 'Honda_Forza 300': 'Forza 300',\r\n Honda_Freed: 'Freed',\r\n Honda_Fs150f: 'Fs150f',\r\n Honda_Fs150fh3: 'Fs150fh3',\r\n Honda_Fs150gh3: 'Fs150gh3',\r\n Honda_Future: 'Future',\r\n Honda_Gl: 'Gl',\r\n Honda_Gl156s: 'Gl156s',\r\n Honda_Gl1800: 'Gl1800',\r\n Honda_Glh125: 'Glh125',\r\n Honda_Gls200: 'Gls200',\r\n Honda_Goldwing: 'Goldwing',\r\n Honda_Grace: 'Grace',\r\n 'Honda_Hr-v': 'Hr-v',\r\n Honda_Insight: 'Insight',\r\n Honda_Inspire: 'Inspire',\r\n Honda_Integra: 'Integra',\r\n Honda_Jade: 'Jade',\r\n Honda_Jazz: 'Jazz',\r\n Honda_Mobilio: 'Mobilio',\r\n Honda_Msx125: 'Msx125',\r\n 'Honda_N-box': 'N-box',\r\n Honda_Nc700sa: 'Nc700sa',\r\n Honda_Nc700x: 'Nc700x',\r\n Honda_Nc750d: 'Nc750d',\r\n Honda_Nc750s: 'Nc750s',\r\n Honda_Nc750sa: 'Nc750sa',\r\n Honda_Nc750xa: 'Nc750xa',\r\n Honda_Nf100: 'Nf100',\r\n Honda_Nf110m: 'Nf110m',\r\n Honda_Nf125: 'Nf125',\r\n Honda_Nf125md: 'Nf125md',\r\n Honda_Nice: 'Nice',\r\n Honda_Nighthawk250: 'Nighthawk250',\r\n Honda_Nsx: 'Nsx',\r\n Honda_Nv400c: 'Nv400c',\r\n Honda_Odyssey: 'Odyssey',\r\n Honda_Pcx125: 'Pcx125',\r\n Honda_Pcx150a: 'Pcx150a',\r\n Honda_Prelude: 'Prelude',\r\n Honda_Ps150i: 'Ps150i',\r\n Honda_S2000: 'S2000',\r\n Honda_S660: 'S660',\r\n Honda_Shadow: 'Shadow',\r\n Honda_Shuttle: 'Shuttle',\r\n Honda_Silverwing: 'Silverwing',\r\n Honda_Sonic: 'Sonic',\r\n Honda_Steed: 'Steed',\r\n Honda_Stepwagon: 'Stepwagon',\r\n Honda_Stream: 'Stream',\r\n Honda_Tiger: 'Tiger',\r\n Honda_Varadero: 'Varadero',\r\n Honda_Vario: 'Vario',\r\n Honda_Vezel: 'Vezel',\r\n Honda_Wave: 'Wave',\r\n 'Honda_Xl 400': 'Xl 400',\r\n Husqvarna_701: '701',\r\n Hyosung_Comet: 'Comet',\r\n 'Hyosung_Fx-110': 'Fx-110',\r\n Hyundai_Accent: 'Accent',\r\n 'Hyundai_Ae ioniq': 'Ae ioniq',\r\n Hyundai_Atos: 'Atos',\r\n Hyundai_Avante: 'Avante',\r\n Hyundai_Azera: 'Azera',\r\n Hyundai_Coupe: 'Coupe',\r\n Hyundai_Elantra: 'Elantra',\r\n Hyundai_Eon: 'Eon',\r\n Hyundai_Genesis: 'Genesis',\r\n Hyundai_Getz: 'Getz',\r\n Hyundai_Grandeur: 'Grandeur',\r\n Hyundai_I30: 'I30',\r\n Hyundai_I40: 'I40',\r\n Hyundai_I45: 'I45',\r\n Hyundai_Ioniq: 'Ioniq',\r\n Hyundai_Matrix: 'Matrix',\r\n 'Hyundai_Santa fe': 'Santa fe',\r\n Hyundai_Scoupe: 'Scoupe',\r\n Hyundai_Sonata: 'Sonata',\r\n Hyundai_Starex: 'Starex',\r\n Hyundai_Terracan: 'Terracan',\r\n Hyundai_Tg: 'Tg',\r\n Hyundai_Trajet: 'Trajet',\r\n Hyundai_Tucson: 'Tucson',\r\n Hyundai_Tuscani: 'Tuscani',\r\n Hyundai_Veloster: 'Veloster',\r\n Hyundai_Verna: 'Verna',\r\n 'Indian_Chief darkhorse': 'Chief darkhorse',\r\n Infiniti_Fx37: 'Fx37',\r\n Infiniti_Fx50: 'Fx50',\r\n Infiniti_G37: 'G37',\r\n Infiniti_M25: 'M25',\r\n Infiniti_M35h: 'M35h',\r\n Infiniti_M37: 'M37',\r\n Infiniti_Q30: 'Q30',\r\n Infiniti_Q50: 'Q50',\r\n Infiniti_Q60: 'Q60',\r\n Infiniti_Q70: 'Q70',\r\n Isuzu_Cxh51s: 'Cxh51s',\r\n Isuzu_Cxz50k: 'Cxz50k',\r\n Isuzu_Cxz50q: 'Cxz50q',\r\n Isuzu_Cxz71q: 'Cxz71q',\r\n Isuzu_Cxz81k: 'Cxz81k',\r\n Isuzu_Cyh52s: 'Cyh52s',\r\n Isuzu_Cyh52t: 'Cyh52t',\r\n Isuzu_Cyz52k: 'Cyz52k',\r\n Isuzu_Cyz52l: 'Cyz52l',\r\n Isuzu_Cyz52r: 'Cyz52r',\r\n 'Isuzu_D-max': 'D-max',\r\n Isuzu_Exr50d: 'Exr50d',\r\n Isuzu_Exr52e: 'Exr52e',\r\n Isuzu_Exz52k: 'Exz52k',\r\n Isuzu_Frr33p: 'Frr33p',\r\n 'Isuzu_Frr90suqa-c': 'Frr90suqa-c',\r\n Isuzu_Fsr: 'Fsr',\r\n Isuzu_Ftr33f: 'Ftr33f',\r\n Isuzu_Ftr33p: 'Ftr33p',\r\n Isuzu_Ftr34p: 'Ftr34p',\r\n Isuzu_Fvr34p: 'Fvr34p',\r\n Isuzu_Fvr34suqdc: 'Fvr34suqdc',\r\n Isuzu_Fxz77m: 'Fxz77m',\r\n Isuzu_Mt112l: 'Mt112l',\r\n Isuzu_Nhr55e: 'Nhr55e',\r\n Isuzu_Nhr69e: 'Nhr69e',\r\n Isuzu_Nhr69eu3es: 'Nhr69eu3es',\r\n Isuzu_Nhr85aue4a: 'Nhr85aue4a',\r\n Isuzu_Nhr85aue4aa: 'Nhr85aue4aa',\r\n Isuzu_Nhr85eu3es: 'Nhr85eu3es',\r\n Isuzu_Nhr85uh4aa: 'Nhr85uh4aa',\r\n Isuzu_Nhr87aue4aa: 'Nhr87aue4aa',\r\n Isuzu_Reward: 'Reward',\r\n 'Iveco_Ml 190 el': 'Ml 190 el',\r\n Iveco_Mll190el25: 'Mll190el25',\r\n Iveco_Stralis: 'Stralis',\r\n Iveco_Trakker: 'Trakker',\r\n 'Jaguar_E-pace': 'E-pace',\r\n 'Jaguar_F-pace': 'F-pace',\r\n 'Jaguar_F-type': 'F-type',\r\n 'Jaguar_S-type': 'S-type',\r\n 'Jaguar_X-type': 'X-type',\r\n Jaguar_Xe: 'Xe',\r\n Jaguar_Xf: 'Xf',\r\n Jaguar_Xfr: 'Xfr',\r\n Jaguar_Xj: 'Xj',\r\n Jaguar_Xj6: 'Xj6',\r\n Jaguar_Xj8: 'Xj8',\r\n Jaguar_Xjl: 'Xjl',\r\n Jaguar_Xjr: 'Xjr',\r\n Jaguar_Xk8: 'Xk8',\r\n Jaguar_Xkr: 'Xkr',\r\n Jeep_Cherokee: 'Cherokee',\r\n Jeep_Commander: 'Commander',\r\n Jeep_Compass: 'Compass',\r\n 'Jeep_Grand cherokee': 'Grand cherokee',\r\n Jeep_Patriot: 'Patriot',\r\n Jeep_Renegade: 'Renegade',\r\n Jeep_Wrangler: 'Wrangler',\r\n Kawasaki_1400gtr: '1400gtr',\r\n Kawasaki_300i: '300i',\r\n Kawasaki_Eliminator: 'Eliminator',\r\n 'Kawasaki_Er-6n': 'Er-6n',\r\n Kawasaki_Er250: 'Er250',\r\n 'Kawasaki_Er250-c': 'Er250-c',\r\n 'Kawasaki_Er650-e': 'Er650-e',\r\n Kawasaki_Estrella: 'Estrella',\r\n 'Kawasaki_Ex250-l': 'Ex250-l',\r\n Kawasaki_Ex250k: 'Ex250k',\r\n Kawasaki_Ex300b: 'Ex300b',\r\n Kawasaki_F4: 'F4',\r\n Kawasaki_Ninja: 'Ninja',\r\n Kawasaki_Z800: 'Z800',\r\n 'Kawasaki_Zg1000-a9': 'Zg1000-a9',\r\n Kawasaki_Zg1400a: 'Zg1400a',\r\n Kawasaki_Zg1400e: 'Zg1400e',\r\n Kawasaki_Zr1000: 'Zr1000',\r\n Kawasaki_Zr1000a2h: 'Zr1000a2h',\r\n Kawasaki_Zr800b: 'Zr800b',\r\n Kawasaki_Zx1000e: 'Zx1000e',\r\n Kawasaki_Zx1000f: 'Zx1000f',\r\n Kawasaki_Zx10r: 'Zx10r',\r\n Kawasaki_Zx1100d6: 'Zx1100d6',\r\n Kawasaki_Zx130: 'Zx130',\r\n Kawasaki_Zx1400d: 'Zx1400d',\r\n Kawasaki_Zx150: 'Zx150',\r\n Kawasaki_Zx6r: 'Zx6r',\r\n Kawasaki_Zxr: 'Zxr',\r\n Kawasaki_Zzr1200: 'Zzr1200',\r\n Kawasaki_Zzr1400: 'Zzr1400',\r\n 'Keeway_F-act150': 'F-act150',\r\n Kia_Carens: 'Carens',\r\n Kia_Carnival: 'Carnival',\r\n Kia_Cerato: 'Cerato',\r\n Kia_Combi: 'Combi',\r\n Kia_Forte: 'Forte',\r\n Kia_Magentis: 'Magentis',\r\n Kia_Niro: 'Niro',\r\n Kia_Optima: 'Optima',\r\n Kia_Picanto: 'Picanto',\r\n Kia_Pregio: 'Pregio',\r\n Kia_Rio: 'Rio',\r\n Kia_Sephia: 'Sephia',\r\n Kia_Sorento: 'Sorento',\r\n Kia_Spectra: 'Spectra',\r\n Kia_Sportage: 'Sportage',\r\n Kia_Stinger: 'Stinger',\r\n Kia_Stonic: 'Stonic',\r\n 'Komatsu_Fd30t-14': 'Fd30t-14',\r\n Ktm_1190: '1190',\r\n Ktm_125: '125',\r\n Ktm_1290: '1290',\r\n Ktm_200: '200',\r\n Ktm_350: '350',\r\n Ktm_390: '390',\r\n 'Ktm_400 exc': '400 exc',\r\n Ktm_525: '525',\r\n Ktm_690: '690',\r\n Ktm_690smc: '690smc',\r\n Ktm_950: '950',\r\n Ktm_990: '990',\r\n 'Ktm_Rc 200': 'Rc 200',\r\n 'Ktm_Rc 390': 'Rc 390',\r\n Kymco_Dink: 'Dink',\r\n Kymco_Downtown: 'Downtown',\r\n Kymco_Myroad: 'Myroad',\r\n Kymco_People: 'People',\r\n Kymco_Sk60ae: 'Sk60ae',\r\n Kymco_Xciting: 'Xciting',\r\n Lamborghini_Aventador: 'Aventador',\r\n Lamborghini_Gallardo: 'Gallardo',\r\n Lamborghini_Huracan: 'Huracan',\r\n Lamborghini_Murcielago: 'Murcielago',\r\n Lamborghini_Urus: 'Urus',\r\n LandRover_88: '88',\r\n LandRover_Defender: 'Defender',\r\n LandRover_Discovery: 'Discovery',\r\n LandRover_Evoque: 'Evoque',\r\n LandRover_Freelander: 'Freelander',\r\n 'LandRover_Land rover': 'Land rover',\r\n 'LandRover_Range rover': 'Range rover',\r\n Lexus_Ct200h: 'Ct200h',\r\n Lexus_Es250: 'Es250',\r\n Lexus_Es300: 'Es300',\r\n Lexus_Es300f: 'Es300f',\r\n Lexus_Es300h: 'Es300h',\r\n Lexus_Gs200t: 'Gs200t',\r\n Lexus_Gs250: 'Gs250',\r\n Lexus_Gs300: 'Gs300',\r\n Lexus_Gs350: 'Gs350',\r\n Lexus_Gs450h: 'Gs450h',\r\n 'Lexus_Is 250': 'Is 250',\r\n 'Lexus_Is 5.0': 'Is 5.0',\r\n Lexus_Is200: 'Is200',\r\n Lexus_Is250: 'Is250',\r\n Lexus_Is300: 'Is300',\r\n Lexus_Is350: 'Is350',\r\n Lexus_Ls: 'Ls',\r\n Lexus_Ls460l: 'Ls460l',\r\n Lexus_Nx200t: 'Nx200t',\r\n Lexus_Nx300: 'Nx300',\r\n Lexus_Nx300h: 'Nx300h',\r\n 'Lexus_Rc 350': 'Rc 350',\r\n Lexus_Rx200t: 'Rx200t',\r\n Lexus_Rx270: 'Rx270',\r\n Lexus_Rx300: 'Rx300',\r\n Lexus_Rx350: 'Rx350',\r\n Lexus_Rx400h: 'Rx400h',\r\n Lexus_Rx450: 'Rx450',\r\n Lexus_Rx450h: 'Rx450h',\r\n Lexus_Sc: 'Sc',\r\n Leyland_Mgb: 'Mgb',\r\n Lifan_520: '520',\r\n Lml_Star: 'Star',\r\n Lotus_Elise: 'Elise',\r\n Lotus_Europa: 'Europa',\r\n Lotus_Evora: 'Evora',\r\n Lotus_Exige: 'Exige',\r\n Man_Ng363f: 'Ng363f',\r\n Man_Tga: 'Tga',\r\n Man_Tgl: 'Tgl',\r\n Man_Tgm: 'Tgm',\r\n Man_Tgs: 'Tgs',\r\n Maserati_3200: '3200',\r\n Maserati_Coupe: 'Coupe',\r\n Maserati_Ghibli: 'Ghibli',\r\n Maserati_Grancabrio: 'Grancabrio',\r\n Maserati_Quattroporte: 'Quattroporte',\r\n Maserati_Spyder: 'Spyder',\r\n Mazda_2: '2',\r\n Mazda_5: '5',\r\n Mazda_3: '3',\r\n Mazda_323: '323',\r\n Mazda_6: '6',\r\n Mazda_8: '8',\r\n Mazda_Atenza: 'Atenza',\r\n Mazda_Axela: 'Axela',\r\n Mazda_Biante: 'Biante',\r\n 'Mazda_Cx-3': 'Cx-3',\r\n 'Mazda_Cx-5': 'Cx-5',\r\n 'Mazda_Cx-7': 'Cx-7',\r\n 'Mazda_Cx-9': 'Cx-9',\r\n Mazda_Demio: 'Demio',\r\n Mazda_E2500: 'E2500',\r\n Mazda_Mpv: 'Mpv',\r\n 'Mazda_Mx-5': 'Mx-5',\r\n Mazda_Premacy: 'Premacy',\r\n 'Mazda_Rx-8': 'Rx-8',\r\n 'McLaren_Mp4-12c': 'Mp4-12c',\r\n Mercedes_190e: '190e',\r\n Mercedes_200e: '200e',\r\n Mercedes_220: '220',\r\n Mercedes_220ce: '220ce',\r\n Mercedes_220e: '220e',\r\n Mercedes_220s: '220s',\r\n Mercedes_230ce: '230ce',\r\n Mercedes_230e: '230e',\r\n Mercedes_230s: '230s',\r\n Mercedes_230te: '230te',\r\n Mercedes_250: '250',\r\n Mercedes_250s: '250s',\r\n Mercedes_260e: '260e',\r\n Mercedes_280: '280',\r\n Mercedes_280e: '280e',\r\n Mercedes_280s: '280s',\r\n Mercedes_280sel: '280sel',\r\n Mercedes_280sl: '280sl',\r\n Mercedes_300ce: '300ce',\r\n Mercedes_300e: '300e',\r\n Mercedes_300se: '300se',\r\n Mercedes_300sel: '300sel',\r\n Mercedes_300sl: '300sl',\r\n Mercedes_320ce: '320ce',\r\n Mercedes_320sel: '320sel',\r\n 'Mercedes_3336/6x4': '3336/6x4',\r\n 'Mercedes_3336k/6x4': '3336k/6x4',\r\n 'Mercedes_3341s/6x4': '3341s/6x4',\r\n Mercedes_350sl: '350sl',\r\n Mercedes_380sec: '380sec',\r\n Mercedes_380sel: '380sel',\r\n Mercedes_380slc: '380slc',\r\n Mercedes_400sel: '400sel',\r\n Mercedes_420sec: '420sec',\r\n Mercedes_420sel: '420sel',\r\n Mercedes_500se: '500se',\r\n Mercedes_500sec: '500sec',\r\n Mercedes_500sel: '500sel',\r\n Mercedes_500sl: '500sl',\r\n Mercedes_515: '515',\r\n Mercedes_600: '600',\r\n Mercedes_A150: 'A150',\r\n Mercedes_A160l: 'A160l',\r\n Mercedes_A170: 'A170',\r\n Mercedes_A180: 'A180',\r\n Mercedes_A180d: 'A180d',\r\n Mercedes_A190: 'A190',\r\n Mercedes_A190l: 'A190l',\r\n Mercedes_A200: 'A200',\r\n Mercedes_A220: 'A220',\r\n Mercedes_A250: 'A250',\r\n Mercedes_A35: 'A35',\r\n Mercedes_A45: 'A45',\r\n Mercedes_Actros: 'Actros',\r\n Mercedes_Amg: 'Amg',\r\n Mercedes_Atego: 'Atego',\r\n Mercedes_B160: 'B160',\r\n Mercedes_B170: 'B170',\r\n Mercedes_B180: 'B180',\r\n Mercedes_B200: 'B200',\r\n Mercedes_C180: 'C180',\r\n Mercedes_C180k: 'C180k',\r\n Mercedes_C200: 'C200',\r\n Mercedes_C200k: 'C200k',\r\n Mercedes_C220: 'C220',\r\n Mercedes_C230: 'C230',\r\n Mercedes_C240: 'C240',\r\n Mercedes_C250: 'C250',\r\n Mercedes_C280: 'C280',\r\n Mercedes_C300: 'C300',\r\n Mercedes_C32: 'C32',\r\n Mercedes_C320: 'C320',\r\n Mercedes_C350: 'C350',\r\n Mercedes_C350e: 'C350e',\r\n Mercedes_C43: 'C43',\r\n Mercedes_C55: 'C55',\r\n Mercedes_C63: 'C63',\r\n Mercedes_Citan: 'Citan',\r\n Mercedes_Citaro: 'Citaro',\r\n Mercedes_Cl500: 'Cl500',\r\n Mercedes_Cl500a: 'Cl500a',\r\n Mercedes_Cl55: 'Cl55',\r\n Mercedes_Cl550: 'Cl550',\r\n Mercedes_Cl600: 'Cl600',\r\n Mercedes_Cl63: 'Cl63',\r\n Mercedes_Cla180: 'Cla180',\r\n Mercedes_Cla200: 'Cla200',\r\n Mercedes_Cla220: 'Cla220',\r\n Mercedes_Cla250: 'Cla250',\r\n Mercedes_Cla45: 'Cla45',\r\n Mercedes_Clc180: 'Clc180',\r\n Mercedes_Clc230: 'Clc230',\r\n Mercedes_Clk: 'Clk',\r\n Mercedes_Clk200: 'Clk200',\r\n Mercedes_Clk200ml: 'Clk200ml',\r\n Mercedes_Clk230: 'Clk230',\r\n Mercedes_Clk240: 'Clk240',\r\n Mercedes_Clk280: 'Clk280',\r\n Mercedes_Clk320: 'Clk320',\r\n Mercedes_Clk350: 'Clk350',\r\n Mercedes_Clk500: 'Clk500',\r\n Mercedes_Clk55: 'Clk55',\r\n Mercedes_Cls250: 'Cls250',\r\n Mercedes_Cls280: 'Cls280',\r\n Mercedes_Cls300: 'Cls300',\r\n Mercedes_Cls350: 'Cls350',\r\n Mercedes_Cls400: 'Cls400',\r\n Mercedes_Cls450: 'Cls450',\r\n Mercedes_Cls500: 'Cls500',\r\n Mercedes_Cls55: 'Cls55',\r\n Mercedes_Cls63: 'Cls63',\r\n Mercedes_E200: 'E200',\r\n Mercedes_E200k: 'E200k',\r\n Mercedes_E200ml: 'E200ml',\r\n Mercedes_E220: 'E220',\r\n Mercedes_E220d: 'E220d',\r\n Mercedes_E230: 'E230',\r\n Mercedes_E240: 'E240',\r\n Mercedes_E250: 'E250',\r\n Mercedes_E280: 'E280',\r\n Mercedes_E300: 'E300',\r\n Mercedes_E320: 'E320',\r\n Mercedes_E350: 'E350',\r\n Mercedes_E350d: 'E350d',\r\n Mercedes_E400: 'E400',\r\n Mercedes_E43: 'E43',\r\n Mercedes_E500: 'E500',\r\n Mercedes_E53: 'E53',\r\n Mercedes_E55: 'E55',\r\n Mercedes_E63: 'E63',\r\n Mercedes_E63s: 'E63s',\r\n Mercedes_G350: 'G350',\r\n Mercedes_G55: 'G55',\r\n Mercedes_G63: 'G63',\r\n Mercedes_Gl350: 'Gl350',\r\n Mercedes_Gl400: 'Gl400',\r\n Mercedes_Gl450: 'Gl450',\r\n Mercedes_Gla180: 'Gla180',\r\n Mercedes_Gla200: 'Gla200',\r\n Mercedes_Gla250: 'Gla250',\r\n Mercedes_Gla45: 'Gla45',\r\n Mercedes_Glc200: 'Glc200',\r\n Mercedes_Glc220: 'Glc220',\r\n Mercedes_Glc250: 'Glc250',\r\n Mercedes_Glc43: 'Glc43',\r\n Mercedes_Gle250: 'Gle250',\r\n Mercedes_Gle400: 'Gle400',\r\n Mercedes_Gle450: 'Gle450',\r\n Mercedes_Gls400: 'Gls400',\r\n 'Mercedes_Mb actros': 'Mb actros',\r\n Mercedes_Mb100: 'Mb100',\r\n Mercedes_Mb100d: 'Mb100d',\r\n Mercedes_Mb140d: 'Mb140d',\r\n Mercedes_Ml250: 'Ml250',\r\n Mercedes_Ml300: 'Ml300',\r\n Mercedes_Ml320: 'Ml320',\r\n Mercedes_Ml350: 'Ml350',\r\n Mercedes_Ml400: 'Ml400',\r\n Mercedes_Ml430: 'Ml430',\r\n Mercedes_Ml500: 'Ml500',\r\n Mercedes_Ml55: 'Ml55',\r\n Mercedes_Ml63: 'Ml63',\r\n Mercedes_O405g: 'O405g',\r\n Mercedes_R350l: 'R350l',\r\n Mercedes_R500l: 'R500l',\r\n Mercedes_S280: 'S280',\r\n Mercedes_S280l: 'S280l',\r\n Mercedes_S300: 'S300',\r\n Mercedes_S300l: 'S300l',\r\n Mercedes_S320: 'S320',\r\n Mercedes_S320l: 'S320l',\r\n Mercedes_S350: 'S350',\r\n Mercedes_S350l: 'S350l',\r\n Mercedes_S400: 'S400',\r\n Mercedes_S400l: 'S400l',\r\n Mercedes_S420l: 'S420l',\r\n Mercedes_S430: 'S430',\r\n Mercedes_S430l: 'S430l',\r\n Mercedes_S450l: 'S450l',\r\n Mercedes_S500: 'S500',\r\n Mercedes_S500l: 'S500l',\r\n Mercedes_S55l: 'S55l',\r\n Mercedes_S560l: 'S560l',\r\n Mercedes_S600: 'S600',\r\n Mercedes_S600l: 'S600l',\r\n Mercedes_S65: 'S65',\r\n Mercedes_Sl280: 'Sl280',\r\n Mercedes_Sl300: 'Sl300',\r\n Mercedes_Sl320: 'Sl320',\r\n Mercedes_Sl350: 'Sl350',\r\n Mercedes_Sl500: 'Sl500',\r\n Mercedes_Sl55: 'Sl55',\r\n Mercedes_Sl600: 'Sl600',\r\n Mercedes_Sl63: 'Sl63',\r\n Mercedes_Sl65: 'Sl65',\r\n Mercedes_Slc180: 'Slc180',\r\n Mercedes_Slc280: 'Slc280',\r\n Mercedes_Slk200: 'Slk200',\r\n Mercedes_Slk230: 'Slk230',\r\n Mercedes_Slk250: 'Slk250',\r\n Mercedes_Slk280: 'Slk280',\r\n Mercedes_Slk300: 'Slk300',\r\n Mercedes_Slk320: 'Slk320',\r\n Mercedes_Slk350: 'Slk350',\r\n Mercedes_Slk55: 'Slk55',\r\n Mercedes_Slr: 'Slr',\r\n Mercedes_Slr722: 'Slr722',\r\n Mercedes_Sls: 'Sls',\r\n Mercedes_Sprinter: 'Sprinter',\r\n Mercedes_Viano: 'Viano',\r\n Mercedes_Vito: 'Vito',\r\n Mg_Midget: 'Midget',\r\n Mini_7: '7',\r\n Mini_850: '850',\r\n Mini_Brick: 'Brick',\r\n Mini_Checkmate: 'Checkmate',\r\n Mini_Clubman: 'Clubman',\r\n Mini_Convertible: 'Convertible',\r\n Mini_Cooper: 'Cooper',\r\n 'Mini_John cooper works': 'John cooper works',\r\n Mini_Mini: 'Mini',\r\n Mini_Minor: 'Minor',\r\n Mini_One: 'One',\r\n Mini_Park: 'Park',\r\n Mini_Seven: 'Seven',\r\n Mitsubishi_Airtrek: 'Airtrek',\r\n Mitsubishi_Asx: 'Asx',\r\n Mitsubishi_Attrage: 'Attrage',\r\n Mitsubishi_Canter: 'Canter',\r\n Mitsubishi_Colt: 'Colt',\r\n Mitsubishi_Delica: 'Delica',\r\n Mitsubishi_Dion: 'Dion',\r\n 'Mitsubishi_Eclipse cross': 'Eclipse cross',\r\n 'Mitsubishi_Ek wagon': 'Ek wagon',\r\n Mitsubishi_Evo: 'Evo',\r\n 'Mitsubishi_Evo-10': 'Evo-10',\r\n Mitsubishi_Fb511b0jrdeb: 'Fb511b0jrdeb',\r\n Mitsubishi_Fb511b0srdea: 'Fb511b0srdea',\r\n Mitsubishi_Fb511ba46391: 'Fb511ba46391',\r\n Mitsubishi_Fb511bojrdec: 'Fb511bojrdec',\r\n Mitsubishi_Fb511bojsrde: 'Fb511bojsrde',\r\n Mitsubishi_Fb511bosrdea: 'Fb511bosrdea',\r\n Mitsubishi_Fb70abosrdea: 'Fb70abosrdea',\r\n Mitsubishi_Fb70abosrdeb: 'Fb70abosrdeb',\r\n Mitsubishi_Fb70bb1srdea: 'Fb70bb1srdea',\r\n Mitsubishi_Fe424: 'Fe424',\r\n Mitsubishi_Fe639c6srdea: 'Fe639c6srdea',\r\n Mitsubishi_Fe639e6rde: 'Fe639e6rde',\r\n Mitsubishi_Fe639et0rde: 'Fe639et0rde',\r\n Mitsubishi_Fe639et0srde: 'Fe639et0srde',\r\n Mitsubishi_Fe639etorde: 'Fe639etorde',\r\n Mitsubishi_Fe639etosrde: 'Fe639etosrde',\r\n Mitsubishi_Fe659f6rde: 'Fe659f6rde',\r\n Mitsubishi_Fe659f6srde: 'Fe659f6srde',\r\n Mitsubishi_Fe83be6srdea: 'Fe83be6srdea',\r\n Mitsubishi_Fe83beosrdea: 'Fe83beosrdea',\r\n Mitsubishi_Fe83pe6srdeb: 'Fe83pe6srdeb',\r\n Mitsubishi_Fe83peosrdea: 'Fe83peosrdea',\r\n Mitsubishi_Fe84be6srdea: 'Fe84be6srdea',\r\n Mitsubishi_Fe85djzsrdea: 'Fe85djzsrdea',\r\n Mitsubishi_Fe85pg6srde: 'Fe85pg6srde',\r\n Mitsubishi_Feb21cr4sdeb: 'Feb21cr4sdeb',\r\n Mitsubishi_Feb21er3sden: 'Feb21er3sden',\r\n Mitsubishi_Fk617msjrdec: 'Fk617msjrdec',\r\n Mitsubishi_Fk61fm: 'Fk61fm',\r\n Mitsubishi_Fk61fmj1rdea: 'Fk61fmj1rdea',\r\n Mitsubishi_Fm657msrdec: 'Fm657msrdec',\r\n Mitsubishi_Fm65fm1rdea: 'Fm65fm1rdea',\r\n Mitsubishi_Fp517dr2rdeb: 'Fp517dr2rdeb',\r\n Mitsubishi_Fp51jdr4rdea: 'Fp51jdr4rdea',\r\n Mitsubishi_Fp51sdr3vdea: 'Fp51sdr3vdea',\r\n Mitsubishi_Fq62fs2rdec: 'Fq62fs2rdec',\r\n Mitsubishi_Fs527s: 'Fs527s',\r\n Mitsubishi_Fto: 'Fto',\r\n Mitsubishi_Fuso: 'Fuso',\r\n 'Mitsubishi_Fuso rosa': 'Fuso rosa',\r\n Mitsubishi_Fv515hr: 'Fv515hr',\r\n Mitsubishi_Fv517: 'Fv517',\r\n Mitsubishi_Fv51j: 'Fv51j',\r\n Mitsubishi_Fv51jp: 'Fv51jp',\r\n Mitsubishi_Galant: 'Galant',\r\n Mitsubishi_Grandis: 'Grandis',\r\n Mitsubishi_i: 'i',\r\n Mitsubishi_L200: 'L200',\r\n Mitsubishi_L300: 'L300',\r\n Mitsubishi_Lancer: 'Lancer',\r\n Mitsubishi_Minicab: 'Minicab',\r\n Mitsubishi_Montero: 'Montero',\r\n Mitsubishi_Outlander: 'Outlander',\r\n Mitsubishi_Pajero: 'Pajero',\r\n Mitsubishi_Rosa: 'Rosa',\r\n Mitsubishi_Shogun: 'Shogun',\r\n Mitsubishi_Triton: 'Triton',\r\n Morris_Eight: 'Eight',\r\n Morris_Minor: 'Minor',\r\n Mvagusta_Brutale: 'Brutale',\r\n Mvagusta_Stradale: 'Stradale',\r\n Nissan_350z: '350z',\r\n Nissan_370z: '370z',\r\n Nissan_Ad: 'Ad',\r\n Nissan_Almera: 'Almera',\r\n Nissan_Atlas: 'Atlas',\r\n Nissan_Cabstar: 'Cabstar',\r\n Nissan_Caravan: 'Caravan',\r\n Nissan_Cedric: 'Cedric',\r\n Nissan_Cefiro: 'Cefiro',\r\n Nissan_Cgb45clsmnb: 'Cgb45clsmnb',\r\n Nissan_Cgb45lsmnb: 'Cgb45lsmnb',\r\n Nissan_Ck20: 'Ck20',\r\n Nissan_Ckb45abtn2: 'Ckb45abtn2',\r\n Nissan_Ckb536: 'Ckb536',\r\n Nissan_Cmf87h05441: 'Cmf87h05441',\r\n Nissan_Cmf87lhsa: 'Cmf87lhsa',\r\n Nissan_Cpb14nhr: 'Cpb14nhr',\r\n Nissan_Cube: 'Cube',\r\n Nissan_Cwb45ahtn2: 'Cwb45ahtn2',\r\n Nissan_Cwb45aphn2: 'Cwb45aphn2',\r\n Nissan_Cwb45clldn: 'Cwb45clldn',\r\n Nissan_Cwb45clphnb: 'Cwb45clphnb',\r\n Nissan_Cwb4cll00058: 'Cwb4cll00058',\r\n Nissan_Cwb520: 'Cwb520',\r\n Nissan_Dualis: 'Dualis',\r\n Nissan_Elgrand: 'Elgrand',\r\n Nissan_Fairlady: 'Fairlady',\r\n Nissan_Frontier: 'Frontier',\r\n Nissan_Fuga: 'Fuga',\r\n Nissan_Gd21: 'Gd21',\r\n Nissan_Gkb45clbhnb: 'Gkb45clbhnb',\r\n 'Nissan_Grand livina': 'Grand livina',\r\n Nissan_Infinity: 'Infinity',\r\n Nissan_Juke: 'Juke',\r\n Nissan_Lafesta: 'Lafesta',\r\n Nissan_Latio: 'Latio',\r\n Nissan_March: 'March',\r\n Nissan_Mkb210: 'Mkb210',\r\n Nissan_Mkb212: 'Mkb212',\r\n Nissan_Mkb37: 'Mkb37',\r\n Nissan_Mkb8: 'Mkb8',\r\n Nissan_Murano: 'Murano',\r\n Nissan_Navara: 'Navara',\r\n Nissan_Note: 'Note',\r\n Nissan_Nv150: 'Nv150',\r\n Nissan_Nv200: 'Nv200',\r\n Nissan_Nv350: 'Nv350',\r\n Nissan_Prairie: 'Prairie',\r\n Nissan_Presage: 'Presage',\r\n Nissan_Presea: 'Presea',\r\n Nissan_Primera: 'Primera',\r\n Nissan_Pu41h4: 'Pu41h4',\r\n Nissan_Pu41t4: 'Pu41t4',\r\n Nissan_Pulsar: 'Pulsar',\r\n Nissan_Qashqai: 'Qashqai',\r\n Nissan_Sentra: 'Sentra',\r\n Nissan_Serena: 'Serena',\r\n Nissan_Silvia: 'Silvia',\r\n Nissan_Skyline: 'Skyline',\r\n Nissan_Sunny: 'Sunny',\r\n Nissan_Sylphy: 'Sylphy',\r\n Nissan_Teana: 'Teana',\r\n Nissan_Urvan: 'Urvan',\r\n Nissan_Vanette: 'Vanette',\r\n 'Nissan_X-trail': 'X-trail',\r\n Noble_Gto: 'Gto',\r\n Noble_M14: 'M14',\r\n Noble_M400: 'M400',\r\n Opel_Adam: 'Adam',\r\n Opel_Astra: 'Astra',\r\n Opel_Combo: 'Combo',\r\n 'Opel_Combo-c': 'Combo-c',\r\n Opel_Corsa: 'Corsa',\r\n 'Opel_Corsa-d': 'Corsa-d',\r\n Opel_Crossland: 'Crossland',\r\n Opel_Grandland: 'Grandland',\r\n Opel_Insignia: 'Insignia',\r\n Opel_Meriva: 'Meriva',\r\n Opel_Mokka: 'Mokka',\r\n Opel_Movano: 'Movano',\r\n Opel_Omega: 'Omega',\r\n Opel_Tigra: 'Tigra',\r\n Opel_Vectra: 'Vectra',\r\n Opel_Vivaro: 'Vivaro',\r\n Opel_Zafira: 'Zafira',\r\n Pagani_Zonda: 'Zonda',\r\n Perodua_Alza: 'Alza',\r\n Perodua_Axia: 'Axia',\r\n Perodua_Bezza: 'Bezza',\r\n Perodua_Kancil: 'Kancil',\r\n Perodua_Kelisa: 'Kelisa',\r\n Perodua_Kembara: 'Kembara',\r\n Perodua_Kenari: 'Kenari',\r\n Perodua_Myvi: 'Myvi',\r\n Perodua_Viva: 'Viva',\r\n Peugeot_1007: '1007',\r\n Peugeot_107: '107',\r\n Peugeot_2008: '2008',\r\n Peugeot_206: '206',\r\n Peugeot_207: '207',\r\n Peugeot_207cc: '207cc',\r\n Peugeot_208: '208',\r\n Peugeot_3008: '3008',\r\n Peugeot_307: '307',\r\n Peugeot_308: '308',\r\n Peugeot_308cc: '308cc',\r\n Peugeot_406: '406',\r\n Peugeot_407: '407',\r\n Peugeot_408: '408',\r\n Peugeot_5008: '5008',\r\n Peugeot_508: '508',\r\n Peugeot_508sw: '508sw',\r\n Peugeot_607: '607',\r\n Peugeot_Expert: 'Expert',\r\n Peugeot_Partner: 'Partner',\r\n Peugeot_Rcz: 'Rcz',\r\n Peugeot_Vivacity: 'Vivacity',\r\n 'Pgo_G-max': 'G-max',\r\n 'Pgo_I me 150': 'I me 150',\r\n Piaggio_Beverly: 'Beverly',\r\n Piaggio_Fly: 'Fly',\r\n Piaggio_Mp3: 'Mp3',\r\n Piaggio_Sfera: 'Sfera',\r\n 'Piaggio_Skipper 125': 'Skipper 125',\r\n 'Piaggio_Skipper 150': 'Skipper 150',\r\n Piaggio_X10: 'X10',\r\n Piaggio_X8: 'X8',\r\n Piaggio_X9: 'X9',\r\n Porsche_911: '911',\r\n Porsche_928: '928',\r\n Porsche_356b: '356b',\r\n Porsche_550: '550',\r\n Porsche_718: '718',\r\n Porsche_Boxster: 'Boxster',\r\n Porsche_C4: 'C4',\r\n Porsche_C4s: 'C4s',\r\n Porsche_Cayenne: 'Cayenne',\r\n Porsche_Cayman: 'Cayman',\r\n Porsche_Gt3: 'Gt3',\r\n Porsche_Macan: 'Macan',\r\n Porsche_Panamera: 'Panamera',\r\n Proton_Exora: 'Exora',\r\n Proton_Gen2: 'Gen2',\r\n Proton_Inspira: 'Inspira',\r\n Proton_Iriz: 'Iriz',\r\n Proton_Iswara: 'Iswara',\r\n Proton_Perdana: 'Perdana',\r\n Proton_Persona: 'Persona',\r\n Proton_Preve: 'Preve',\r\n Proton_Satria: 'Satria',\r\n Proton_Savvy: 'Savvy',\r\n Proton_Waja: 'Waja',\r\n Proton_Wira: 'Wira',\r\n Renault_Alpine: 'Alpine',\r\n Renault_Captur: 'Captur',\r\n Renault_Clio: 'Clio',\r\n Renault_Espace: 'Espace',\r\n Renault_Fluence: 'Fluence',\r\n Renault_Kadjar: 'Kadjar',\r\n Renault_Kangoo: 'Kangoo',\r\n Renault_Kng: 'Kng',\r\n Renault_Koleos: 'Koleos',\r\n Renault_Laguna: 'Laguna',\r\n Renault_Latitude: 'Latitude',\r\n Renault_Master: 'Master',\r\n Renault_Megane: 'Megane',\r\n Renault_Megcla: 'Megcla',\r\n Renault_Modus: 'Modus',\r\n Renault_Scenic: 'Scenic',\r\n Renault_Trafic: 'Trafic',\r\n Rieju_Marathon: 'Marathon',\r\n RollsRoyce_Dawn: 'Dawn',\r\n RollsRoyce_Ghost: 'Ghost',\r\n RollsRoyce_Phantom: 'Phantom',\r\n RollsRoyce_Silvershadow: 'Silvershadow',\r\n RollsRoyce_Wraith: 'Wraith',\r\n Rover_216: '216',\r\n Saab_44077: '44077',\r\n Saab_44079: '44079',\r\n Saab_940: '940',\r\n Scania_G410la4x2msz: 'G410la4x2msz',\r\n Scania_G420cb: 'G420cb',\r\n Seat_Arona: 'Arona',\r\n Seat_Ateca: 'Ateca',\r\n Seat_Ibiza: 'Ibiza',\r\n Seat_Leon: 'Leon',\r\n Seat_Toledo: 'Toledo',\r\n Skoda_Fabia: 'Fabia',\r\n Skoda_Karoq: 'Karoq',\r\n Skoda_Kodiaq: 'Kodiaq',\r\n Skoda_Octavia: 'Octavia',\r\n Skoda_Rapid: 'Rapid',\r\n Skoda_Superb: 'Superb',\r\n Skoda_Yeti: 'Yeti',\r\n Smart_Fortwo: 'Fortwo',\r\n Ssangyong_Actyon: 'Actyon',\r\n Ssangyong_Chairman: 'Chairman',\r\n Ssangyong_Korando: 'Korando',\r\n Ssangyong_Musso: 'Musso',\r\n Ssangyong_Rexton: 'Rexton',\r\n Ssangyong_Rodius: 'Rodius',\r\n Ssangyong_Stavic: 'Stavic',\r\n Ssangyong_Tivoli: 'Tivoli',\r\n Subaru_B9: 'B9',\r\n Subaru_Brz: 'Brz',\r\n Subaru_Exiga: 'Exiga',\r\n Subaru_Forester: 'Forester',\r\n Subaru_Impreza: 'Impreza',\r\n Subaru_Legacy: 'Legacy',\r\n Subaru_Outback: 'Outback',\r\n Subaru_R1: 'R1',\r\n Subaru_R2: 'R2',\r\n Subaru_Tribeca: 'Tribeca',\r\n Subaru_Vivio: 'Vivio',\r\n Subaru_Wrx: 'Wrx',\r\n Subaru_Xv: 'Xv',\r\n Sunlong_Slk6110: 'Slk6110',\r\n Sunlong_Slk6905: 'Slk6905',\r\n Suzuki_Alto: 'Alto',\r\n 'Suzuki_An 125 burgman': 'An 125 burgman',\r\n 'Suzuki_An 400 burgman': 'An 400 burgman',\r\n 'Suzuki_An 650 burgman': 'An 650 burgman',\r\n Suzuki_Apv: 'Apv',\r\n Suzuki_Arena: 'Arena',\r\n Suzuki_Baleno: 'Baleno',\r\n Suzuki_Bandit: 'Bandit',\r\n Suzuki_Belang: 'Belang',\r\n Suzuki_Carry: 'Carry',\r\n Suzuki_Cervo: 'Cervo',\r\n Suzuki_Ciaz: 'Ciaz',\r\n Suzuki_Delta: 'Delta',\r\n Suzuki_Dl1000k2: 'Dl1000k2',\r\n Suzuki_Dl650al1: 'Dl650al1',\r\n Suzuki_Dr: 'Dr',\r\n Suzuki_Dr100: 'Dr100',\r\n Suzuki_Drz400sm: 'Drz400sm',\r\n Suzuki_Drz400smk5: 'Drz400smk5',\r\n Suzuki_Drz400smk7: 'Drz400smk7',\r\n Suzuki_Drz400smk8: 'Drz400smk8',\r\n Suzuki_Drz400smk9: 'Drz400smk9',\r\n Suzuki_Drz400sml0: 'Drz400sml0',\r\n Suzuki_Escudo: 'Escudo',\r\n Suzuki_Every: 'Every',\r\n Suzuki_Fd110ks: 'Fd110ks',\r\n Suzuki_Fd110xcsdu: 'Fd110xcsdu',\r\n Suzuki_Fd125xsu: 'Fd125xsu',\r\n Suzuki_Fh125m: 'Fh125m',\r\n Suzuki_Fl125fsd: 'Fl125fsd',\r\n Suzuki_Fu150scd: 'Fu150scd',\r\n Suzuki_Gn125: 'Gn125',\r\n Suzuki_Gn125e: 'Gn125e',\r\n Suzuki_Gn125h: 'Gn125h',\r\n Suzuki_Gn250e: 'Gn250e',\r\n 'Suzuki_Grand vitara': 'Grand vitara',\r\n Suzuki_Gs150: 'Gs150',\r\n Suzuki_Gsf1250: 'Gsf1250',\r\n Suzuki_Gsf400: 'Gsf400',\r\n Suzuki_Gsr400: 'Gsr400',\r\n Suzuki_Gsr600: 'Gsr600',\r\n 'Suzuki_Gsx-r1000': 'Gsx-r1000',\r\n 'Suzuki_Gsx-r1100': 'Gsx-r1100',\r\n 'Suzuki_Gsx-r150': 'Gsx-r150',\r\n 'Suzuki_Gsx-r400': 'Gsx-r400',\r\n 'Suzuki_Gsx-r600': 'Gsx-r600',\r\n 'Suzuki_Gsx-r750': 'Gsx-r750',\r\n 'Suzuki_Gsx-s1000': 'Gsx-s1000',\r\n Suzuki_Gsx1300: 'Gsx1300',\r\n Suzuki_Gsx400: 'Gsx400',\r\n Suzuki_Gsx750: 'Gsx750',\r\n Suzuki_Ignis: 'Ignis',\r\n Suzuki_Intruder: 'Intruder',\r\n Suzuki_Jimny: 'Jimny',\r\n Suzuki_Katana: 'Katana',\r\n Suzuki_Kizashi: 'Kizashi',\r\n Suzuki_Lapin: 'Lapin',\r\n Suzuki_Liana: 'Liana',\r\n 'Suzuki_S-cross': 'S-cross',\r\n Suzuki_Sfv650: 'Sfv650',\r\n Suzuki_Skydrive: 'Skydrive',\r\n Suzuki_Smash: 'Smash',\r\n Suzuki_Solio: 'Solio',\r\n Suzuki_Splash: 'Splash',\r\n Suzuki_Stingray: 'Stingray',\r\n Suzuki_Swift: 'Swift',\r\n Suzuki_Sx4: 'Sx4',\r\n Suzuki_Vitara: 'Vitara',\r\n 'Sym_Bonus 110': 'Bonus 110',\r\n Sym_Combiz: 'Combiz',\r\n Sym_Cruisym: 'Cruisym',\r\n Sym_En: 'En',\r\n Sym_Evo: 'Evo',\r\n 'Sym_Joymax 300': 'Joymax 300',\r\n 'Sym_Joymax 300i': 'Joymax 300i',\r\n 'Sym_Joyride 200': 'Joyride 200',\r\n 'Sym_Joyride 200i': 'Joyride 200i',\r\n Sym_Maxsym: 'Maxsym',\r\n Tennant_Atlv: 'Atlv',\r\n Tgb_Express: 'Express',\r\n Toyota_86: '86',\r\n Toyota_Allion: 'Allion',\r\n Toyota_Alphard: 'Alphard',\r\n Toyota_Altezza: 'Altezza',\r\n Toyota_Aqua: 'Aqua',\r\n Toyota_Auris: 'Auris',\r\n Toyota_Avanza: 'Avanza',\r\n Toyota_Axio: 'Axio',\r\n Toyota_Aygo: 'Aygo',\r\n Toyota_Bb: 'Bb',\r\n Toyota_Belta: 'Belta',\r\n 'Toyota_C-hr': 'C-hr',\r\n Toyota_Caldina: 'Caldina',\r\n Toyota_Camry: 'Camry',\r\n Toyota_Celica: 'Celica',\r\n Toyota_Coaster: 'Coaster',\r\n Toyota_Corolla: 'Corolla',\r\n Toyota_Corona: 'Corona',\r\n Toyota_Crown: 'Crown',\r\n Toyota_Dyna: 'Dyna',\r\n Toyota_Echo: 'Echo',\r\n Toyota_Esquire: 'Esquire',\r\n Toyota_Estima: 'Estima',\r\n 'Toyota_Fj cruiser': 'Fj cruiser',\r\n Toyota_Fortuner: 'Fortuner',\r\n Toyota_Harrier: 'Harrier',\r\n Toyota_Hiace: 'Hiace',\r\n Toyota_Hilux: 'Hilux',\r\n Toyota_Innova: 'Innova',\r\n Toyota_Iq: 'Iq',\r\n Toyota_Isis: 'Isis',\r\n Toyota_Ist: 'Ist',\r\n 'Toyota_Land cruiser': 'Land cruiser',\r\n Toyota_Liteace: 'Liteace',\r\n Toyota_Mark: 'Mark',\r\n 'Toyota_Mr-2': 'Mr-2',\r\n 'Toyota_Mr-s': 'Mr-s',\r\n Toyota_Noah: 'Noah',\r\n Toyota_Passo: 'Passo',\r\n Toyota_Picnic: 'Picnic',\r\n Toyota_Porte: 'Porte',\r\n Toyota_Prado: 'Prado',\r\n Toyota_Premio: 'Premio',\r\n Toyota_Previa: 'Previa',\r\n Toyota_Prius: 'Prius',\r\n Toyota_Proace: 'Proace',\r\n Toyota_Probox: 'Probox',\r\n Toyota_Ractics: 'Ractics',\r\n Toyota_Rav4: 'Rav4',\r\n Toyota_Regius: 'Regius',\r\n Toyota_Regiusace: 'Regiusace',\r\n Toyota_Royal: 'Royal',\r\n Toyota_Rush: 'Rush',\r\n Toyota_Sera: 'Sera',\r\n Toyota_Sienta: 'Sienta',\r\n Toyota_Soluna: 'Soluna',\r\n 'Toyota_Spade y': 'Spade y',\r\n Toyota_Starlet: 'Starlet',\r\n Toyota_Townace: 'Townace',\r\n Toyota_Toyoace: 'Toyoace',\r\n Toyota_Unser: 'Unser',\r\n Toyota_Vanguard: 'Vanguard',\r\n Toyota_Vellfire: 'Vellfire',\r\n Toyota_Verossa: 'Verossa',\r\n Toyota_Vios: 'Vios',\r\n Toyota_Vitz: 'Vitz',\r\n Toyota_Voltz: 'Voltz',\r\n Toyota_Voxy: 'Voxy',\r\n Toyota_Will: 'Will',\r\n Toyota_Wish: 'Wish',\r\n Toyota_Yaris: 'Yaris',\r\n Triumph_Bonneville: 'Bonneville',\r\n Triumph_Daytona: 'Daytona',\r\n Triumph_Scrambler: 'Scrambler',\r\n 'Triumph_Speed triple': 'Speed triple',\r\n Triumph_Spitfire: 'Spitfire',\r\n Triumph_Sprint: 'Sprint',\r\n Triumph_Street: 'Street',\r\n Triumph_Tiger: 'Tiger',\r\n Triumph_Tr3: 'Tr3',\r\n Tvs_Apache: 'Apache',\r\n UDTrucks_Condor: 'Condor',\r\n UDTrucks_Cwb5elldnt: 'Cwb5elldnt',\r\n UDTrucks_Cwb5elphnt: 'Cwb5elphnt',\r\n UDTrucks_Escot: 'Escot',\r\n Vespa_Et8: 'Et8',\r\n Vespa_Excel: 'Excel',\r\n Vespa_Gt200a: 'Gt200a',\r\n Vespa_Gts: 'Gts',\r\n Vespa_Lx: 'Lx',\r\n Vespa_Primavera: 'Primavera',\r\n Vespa_Px: 'Px',\r\n Vespa_Px15: 'Px15',\r\n Vespa_Px150: 'Px150',\r\n Vespa_Px20: 'Px20',\r\n Vespa_Px200: 'Px200',\r\n Vespa_Px200e: 'Px200e',\r\n Vespa_Sprint: 'Sprint',\r\n Volkswagen_Arteon: 'Arteon',\r\n Volkswagen_Beetle: 'Beetle',\r\n Volkswagen_Bora: 'Bora',\r\n Volkswagen_Caddy: 'Caddy',\r\n Volkswagen_Caravelle: 'Caravelle',\r\n Volkswagen_Cc: 'Cc',\r\n Volkswagen_Crosspolo: 'Crosspolo',\r\n Volkswagen_Eos: 'Eos',\r\n Volkswagen_Golf: 'Golf',\r\n Volkswagen_Jetta: 'Jetta',\r\n Volkswagen_Kombi: 'Kombi',\r\n Volkswagen_Multivan: 'Multivan',\r\n Volkswagen_Passat: 'Passat',\r\n Volkswagen_Phaeton: 'Phaeton',\r\n Volkswagen_Polo: 'Polo',\r\n Volkswagen_Scirocco: 'Scirocco',\r\n Volkswagen_Sharan: 'Sharan',\r\n Volkswagen_Tiguan: 'Tiguan',\r\n Volkswagen_Touareg: 'Touareg',\r\n Volkswagen_Touran: 'Touran',\r\n Volkswagen_Vento: 'Vento',\r\n Volvo_240: '240',\r\n 'Volvo_B10m-60': 'B10m-60',\r\n Volvo_B10tl: 'B10tl',\r\n Volvo_B11r: 'B11r',\r\n Volvo_B5lh: 'B5lh',\r\n Volvo_B7r: 'B7r',\r\n Volvo_B7rle: 'B7rle',\r\n Volvo_B8r: 'B8r',\r\n Volvo_B9l: 'B9l',\r\n Volvo_B9r: 'B9r',\r\n Volvo_B9tl: 'B9tl',\r\n Volvo_C30: 'C30',\r\n Volvo_C70: 'C70',\r\n 'Volvo_Cross country': 'Cross country',\r\n Volvo_Fee300: 'Fee300',\r\n Volvo_Flh290: 'Flh290',\r\n Volvo_Fm370: 'Fm370',\r\n Volvo_Fm420: 'Fm420',\r\n Volvo_Fmx370: 'Fmx370',\r\n Volvo_Fmx410: 'Fmx410',\r\n Volvo_Fmx420: 'Fmx420',\r\n Volvo_S40: 'S40',\r\n Volvo_S60: 'S60',\r\n Volvo_S80: 'S80',\r\n Volvo_S90: 'S90',\r\n Volvo_V40: 'V40',\r\n Volvo_V50: 'V50',\r\n Volvo_V60: 'V60',\r\n Volvo_V70: 'V70',\r\n Volvo_V90: 'V90',\r\n Volvo_X60: 'X60',\r\n Volvo_Xc40: 'Xc40',\r\n Volvo_Xc60: 'Xc60',\r\n Volvo_Xc70: 'Xc70',\r\n Volvo_Xc90: 'Xc90',\r\n Yamaha_135lc: '135lc',\r\n Yamaha_Aerox: 'Aerox',\r\n Yamaha_Czd300a: 'Czd300a',\r\n Yamaha_Dt125r: 'Dt125r',\r\n Yamaha_Dt200wr: 'Dt200wr',\r\n Yamaha_Ego: 'Ego',\r\n Yamaha_Fino: 'Fino',\r\n Yamaha_Fjr1300: 'Fjr1300',\r\n Yamaha_Fjr1300abs: 'Fjr1300abs',\r\n 'Yamaha_Fz1-n': 'Fz1-n',\r\n 'Yamaha_Fz1-s': 'Fz1-s',\r\n Yamaha_Fz150: 'Fz150',\r\n Yamaha_Fz150i: 'Fz150i',\r\n Yamaha_Fz16: 'Fz16',\r\n Yamaha_Fz16st: 'Fz16st',\r\n 'Yamaha_Fz6-n': 'Fz6-n',\r\n 'Yamaha_Fz6-s': 'Fz6-s',\r\n 'Yamaha_Fz8-n': 'Fz8-n',\r\n 'Yamaha_Fz8-s': 'Fz8-s',\r\n Yamaha_Fzn150: 'Fzn150',\r\n Yamaha_Fzs1000: 'Fzs1000',\r\n Yamaha_Gdr155a: 'Gdr155a',\r\n 'Yamaha_Jupiter lc135': 'Jupiter lc135',\r\n 'Yamaha_Jupiter mx 135': 'Jupiter mx 135',\r\n 'Yamaha_Jupiter t150': 'Jupiter t150',\r\n 'Yamaha_Jupiter z1': 'Jupiter z1',\r\n 'Yamaha_Majesty 400': 'Majesty 400',\r\n Yamaha_Mio: 'Mio',\r\n 'Yamaha_Mt-01': 'Mt-01',\r\n 'Yamaha_Mt-03': 'Mt-03',\r\n 'Yamaha_Mt-07': 'Mt-07',\r\n 'Yamaha_Mt-09': 'Mt-09',\r\n 'Yamaha_Mt-10': 'Mt-10',\r\n 'Yamaha_Mt-15': 'Mt-15',\r\n Yamaha_Mtm850a: 'Mtm850a',\r\n Yamaha_Mtn155: 'Mtn155',\r\n 'Yamaha_Mw 125': 'Mw 125',\r\n 'Yamaha_Mx king t150': 'Mx king t150',\r\n Yamaha_Nouvo: 'Nouvo',\r\n Yamaha_Pw50: 'Pw50',\r\n Yamaha_Pw80: 'Pw80',\r\n Yamaha_Rx115: 'Rx115',\r\n Yamaha_Ttx: 'Ttx',\r\n 'Yamaha_V-max': 'V-max',\r\n 'Yamaha_X-1r': 'X-1r',\r\n 'Yamaha_X-1t': 'X-1t',\r\n Yamaha_Xabre: 'Xabre',\r\n Yamaha_Xj6: 'Xj6',\r\n Yamaha_Xj6s: 'Xj6s',\r\n Yamaha_Xj900s: 'Xj900s',\r\n Yamaha_Xjr1300: 'Xjr1300',\r\n Yamaha_Xjr400r: 'Xjr400r',\r\n Yamaha_Xmax: 'Xmax',\r\n Yamaha_Xtz: 'Xtz',\r\n Yamaha_Xvs: 'Xvs',\r\n Yutong_Zk6100h: 'Zk6100h',\r\n Yutong_Zk6107h: 'Zk6107h',\r\n Yutong_Zk6107he: 'Zk6107he',\r\n Yutong_Zk6118hga: 'Zk6118hga',\r\n Yutong_Zk6119h: 'Zk6119h',\r\n Yutong_Zk6122he9: 'Zk6122he9',\r\n Yutong_Zk6127h: 'Zk6127h',\r\n Yutong_Zk6898he: 'Zk6898he',\r\n Yutong_Zk6930h: 'Zk6930h',\r\n Yutong_Zk6938h: 'Zk6938h',\r\n Zongshen_Evo: 'Evo',\r\n 'Zongshen_Zs125-47': 'Zs125-47',\r\n 'Zongshen_Zs125-50': 'Zs125-50',\r\n 'Zongshen_Zs125-58': 'Zs125-58',\r\n AlexanderDennis_ENVIRO500: 'ENVIRO500',\r\n Bollore_BLUECAR: 'BLUECAR',\r\n 'Crown_FIGHTER 150': 'FIGHTER 150',\r\n 'Demag_15.9': '15.9',\r\n Maserati_GRANSPORT: 'GRANSPORT',\r\n Maserati_GRANTURISMO: 'GRANTURISMO',\r\n Grove_GMK6300L: 'GMK6300L',\r\n Hdk_DEL3042CX2: 'DEL3042CX2',\r\n Kasinski_MIRAGE: 'MIRAGE',\r\n Lexbuild_FTBCI: 'FTBCI',\r\n 'Manitou_MHT 860 LT': 'MHT 860 LT',\r\n Maxus_G10: 'G10',\r\n Maxus_V80: 'V80',\r\n MgRover_75: '75',\r\n MgRover_TF: 'TF',\r\n Mitsuoka_GALUE: 'GALUE',\r\n Mitsuoka_NOUERA: 'NOUERA',\r\n Modenas_ELEGAN: 'ELEGAN',\r\n Naza_BLADE: 'BLADE',\r\n Naza_CITRA: 'CITRA',\r\n Naza_NBF250RI: 'NBF250RI',\r\n RoyalEnfield_BULLET: 'BULLET',\r\n RoyalEnfield_CLIPPER: 'CLIPPER',\r\n Shacman_F3000: 'F3000',\r\n 'ShenyangBrillianceJinbei_ERA JINBEI': 'ERA JINBEI',\r\n Sunlong_SLK6972B25R143: 'SLK6972B25R143',\r\n Tadano_FAUN: 'FAUN',\r\n 'Terex_AC 160': 'AC 160',\r\n Terex_AC140KA: 'AC140KA',\r\n};\r\n","export const vehicleTypes: any = {\r\n Empty: 'Mapping',\r\n};\r\n","import { toUtcDateFormat, toUtcDateTimeFormat } from 'src/utils';\r\nimport { vehicleFuels } from './constants/vehicleFuels';\r\nimport { vehicleMakes } from './constants/vehicleMakes';\r\nimport { vehicleModels } from './constants/vehicleModels';\r\nimport { vehicleTypes } from './constants/vehicleTypes';\r\nimport { DateUtcFormat } from 'src/constants';\r\n\r\nexport interface IVehicleInfo {\r\n vehicleno?: string;\r\n type?: string;\r\n make?: string;\r\n model?: string;\r\n propellant?: string;\r\n transmission?: string;\r\n enginecapacity?: number;\r\n chassisno?: string;\r\n firstregistrationdate? : string;\r\n effectiveownershipdate? : string;\r\n }\r\n\r\nexport const mapVehicle = (state: any) => {\r\n const { isVehicleOwner, vehicleInfo: vi } = state;\r\n if (!vi || !isVehicleOwner) return {};\r\n\r\n const mapping_Object_Motor_Vehicle: any = {};\r\n\r\n mapFuel(mapping_Object_Motor_Vehicle, vi);\r\n\r\n const make = mapMake(mapping_Object_Motor_Vehicle, vi);\r\n\r\n mapModel(mapping_Object_Motor_Vehicle, vi, make);\r\n\r\n mapType(mapping_Object_Motor_Vehicle, vi);\r\n\r\n mapEngineCapacity(mapping_Object_Motor_Vehicle, vi);\r\n mapEffectiveOwnershipDate(mapping_Object_Motor_Vehicle, vi);\r\n\r\n mapFuel(mapping_Object_Motor_Vehicle, vi);\r\n mapChassisNo(mapping_Object_Motor_Vehicle, vi);\r\n \r\n mapFirstRegistrationDate(mapping_Object_Motor_Vehicle, vi);\r\n\r\n return mapping_Object_Motor_Vehicle;\r\n};\r\n\r\nconst mapType = (mapping_Object_Motor_Vehicle: any, vi: IVehicleInfo) => {\r\n if (!vi.type) return;\r\n\r\n const mappedType = Object.entries(vehicleTypes).find(\r\n (x) => x[0].toLocaleLowerCase() === vi.type?.toLocaleLowerCase()\r\n );\r\n if (mappedType) {\r\n mapping_Object_Motor_Vehicle.type = `VehicleType.${mappedType}`;\r\n }\r\n};\r\n\r\nconst mapMake = (mapping_Object_Motor_Vehicle: any, vi: IVehicleInfo) => {\r\n if (!vi.make) return;\r\n\r\n const lowercaseMake = vi.make?.toLocaleLowerCase();\r\n const make = Object.entries(vehicleMakes).find(\r\n (x) => x[1].toLocaleLowerCase() === lowercaseMake\r\n )?.[0];\r\n\r\n if (make) {\r\n mapping_Object_Motor_Vehicle.make = `VehicleMake.${make}`;\r\n } else {\r\n mapping_Object_Motor_Vehicle.makeNotInEnum = true;\r\n mapping_Object_Motor_Vehicle.makeDescription = vi.make;\r\n }\r\n\r\n return make;\r\n};\r\n\r\nconst mapModel = (\r\n mapping_Object_Motor_Vehicle: any,\r\n vi: IVehicleInfo,\r\n make: string | undefined\r\n) => {\r\n if (!vi.model) return;\r\n\r\n if (!make) {\r\n mapping_Object_Motor_Vehicle.model = `${vi.model}___`;\r\n return;\r\n }\r\n\r\n const models = Object.entries(vehicleModels)\r\n .filter((x) => x[0].startsWith(`${make}_`))\r\n ?.map((x) => ({\r\n code: x[0].split('_')[1],\r\n desc: x[1].toLocaleLowerCase(),\r\n }));\r\n\r\n const lowercaseModel = vi.model?.toLocaleLowerCase();\r\n const model = models?.find((x) => x.desc === lowercaseModel)?.code;\r\n mapping_Object_Motor_Vehicle.model = `${model ?? vi.model}___`;\r\n};\r\n\r\nconst mapFuel = (mapping_Object_Motor_Vehicle: any, vi: IVehicleInfo) => {\r\n\r\n const lowercaseFuel = vi.propellant?.toLocaleLowerCase();\r\n const vehicleFuel = Object.entries(vehicleFuels).find(\r\n (x) => x[0].toLocaleLowerCase() === lowercaseFuel\r\n )?.[1];\r\n if (vehicleFuel) {\r\n mapping_Object_Motor_Vehicle.vehicleFuel = `VehicleFuel.${vehicleFuel}`;\r\n } else {\r\n mapping_Object_Motor_Vehicle.vehicleFuelSourceName = vi.propellant;\r\n }\r\n };\r\n\r\nconst mapEngineCapacity = (\r\n mapping_Object_Motor_Vehicle: any,\r\n vi: IVehicleInfo\r\n) => {\r\n if (!vi.enginecapacity) return;\r\n\r\n mapping_Object_Motor_Vehicle.engineCapacityValue = vi.enginecapacity;\r\n};\r\n\r\nconst mapEffectiveOwnershipDate = (mapping_Object_Motor_Vehicle: any, vi: IVehicleInfo) => {\r\n if (!vi.effectiveownershipdate) return;\r\n var result = toUtcDateTimeFormat(vi.effectiveownershipdate);\r\n mapping_Object_Motor_Vehicle.purchaseDateUtc = result !== undefined ?`${result?.utc().format(DateUtcFormat)}`: undefined;\r\n }\r\n\r\n const mapChassisNo = (mapping_Object_Motor_Vehicle: any, vi: IVehicleInfo) => {\r\n if (!vi.chassisno) return;\r\n \r\n mapping_Object_Motor_Vehicle.vIN = vi.chassisno;\r\n }\r\n \r\n \r\n const mapFirstRegistrationDate = (mapping_Object_Motor_Vehicle: any, vi: IVehicleInfo) => {\r\n if (!vi.firstregistrationdate) return;\r\n \r\n const result = toUtcDateFormat(vi.firstregistrationdate);\r\n \r\n mapping_Object_Motor_Vehicle.firstRegistrationDateUtc = result;\r\n }","import { IMyInfoState } from 'src/types/myInfo';\r\nimport { mapVehicle } from './mapVehicle';\r\nimport {\r\n mapIdentifierType,\r\n mapFullAddress,\r\n mapGender,\r\n mapDate,\r\n mapIsLicenceRevoked,\r\n mapDrivingLicenses,\r\n mapLicenseValidity,\r\n} from './mappers';\r\n\r\ninterface IMapping {\r\n gearsPath: string;\r\n value: any;\r\n mappingFn?: Function;\r\n onlyIf?: boolean;\r\n}\r\n\r\nconst isOnlyDriver = ({ isVehicleDriver, isVehicleOwner }: IMyInfoState) => isVehicleDriver && !isVehicleOwner;\r\n\r\nconst isBoth = ({ isVehicleDriver, isVehicleOwner }: IMyInfoState) => isVehicleDriver && isVehicleOwner;\r\n\r\nconst isDriver = ({ isVehicleDriver }: IMyInfoState) => isVehicleDriver;\r\n\r\n\r\nconst mapClaimant = (rs: IMyInfoState) => {\r\n const claimant = 'Claimant.';\r\n\r\n if (isBoth(rs)) return claimant.concat('Both');\r\n if (isOnlyDriver(rs)) return claimant.concat('Driver');\r\n return claimant.concat('Owner');\r\n};\r\n\r\nexport const getMapping = (reportState: IMyInfoState): IMapping[] => [\r\n {\r\n gearsPath: 'ownVehicle.claimant',\r\n value: reportState,\r\n mappingFn: mapClaimant,\r\n },\r\n {\r\n gearsPath: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_VehicleRegistration',\r\n value: reportState.vehicleInfo?.vehicleno,\r\n mappingFn: (value: string) => [{ number: value }],\r\n },\r\n {\r\n gearsPath:\r\n 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle',\r\n value: reportState,\r\n mappingFn: mapVehicle,\r\n },\r\n {\r\n gearsPath:\r\n 'ownVehicle.owner.person.specializations.mapping_Person_Gears.name',\r\n value: reportState.personalInfo?.name,\r\n onlyIf: reportState.isVehicleOwner,\r\n },\r\n {\r\n gearsPath:\r\n 'ownVehicle.owner.person.specializations.[mapping_Person_NationalIdentifier].0.identifier',\r\n value: reportState.personalInfo?.ufin,\r\n onlyIf: reportState.isVehicleOwner,\r\n mappingFn: (value: string) => `NationalIdentifierType.${mapIdentifierType(value)}`,\r\n },\r\n {\r\n gearsPath:\r\n 'ownVehicle.owner.person.specializations.[mapping_Person_NationalIdentifier].0.nationalIdentifier',\r\n value: reportState.personalInfo?.ufin,\r\n onlyIf: reportState.isVehicleOwner,\r\n },\r\n {\r\n gearsPath: 'ownVehicle.owner.email.address',\r\n value: reportState.contactInfo?.email,\r\n onlyIf: reportState.isVehicleOwner,\r\n },\r\n {\r\n gearsPath: 'ownVehicle.owner.primaryPhoneNumber.number',\r\n value: reportState.contactInfo?.phone?.number,\r\n onlyIf: reportState.isVehicleOwner,\r\n },\r\n {\r\n gearsPath: 'ownVehicle.owner.primaryPhoneNumber.countryCode',\r\n value: reportState.contactInfo?.phone?.dialCode,\r\n onlyIf: reportState.isVehicleOwner,\r\n },\r\n {\r\n gearsPath: 'ownVehicle.owner.primaryPhoneNumber.phoneNumberType',\r\n value: reportState.contactInfo?.phone?.number,\r\n onlyIf: reportState.isVehicleOwner,\r\n mappingFn: () => 'PhoneNumberType.Phone',\r\n },\r\n {\r\n gearsPath: 'ownVehicle.driverIsSameAsOwner',\r\n value: isBoth(reportState),\r\n },\r\n {\r\n gearsPath: 'ownVehicle.driver.address.fullAddress',\r\n value: reportState.regAdd,\r\n mappingFn: mapFullAddress,\r\n onlyIf: reportState.isVehicleDriver,\r\n },\r\n {\r\n gearsPath:\r\n 'ownVehicle.driver.person.specializations.mapping_Person_Individual.gender',\r\n value: reportState.personalInfo?.sex,\r\n mappingFn: mapGender,\r\n onlyIf: reportState.isVehicleDriver,\r\n },\r\n {\r\n gearsPath:\r\n 'ownVehicle.driver.person.specializations.mapping_Person_Individual.dateOfBirth',\r\n value: reportState.personalInfo?.dob,\r\n mappingFn: mapDate,\r\n onlyIf: reportState.isVehicleDriver,\r\n },\r\n {\r\n gearsPath:\r\n 'ownVehicle.driver.person.specializations.[mapping_Person_DrivingLicenseInformation].0.drivingLicenseHasBeenRevoked',\r\n value: reportState.licenceInfo?.validity,\r\n mappingFn: mapIsLicenceRevoked,\r\n onlyIf: reportState.isVehicleDriver,\r\n },\r\n {\r\n gearsPath:\r\n 'ownVehicle.driver.person.specializations.mapping_Person_Gears.name',\r\n value: reportState.personalInfo?.name,\r\n onlyIf: isOnlyDriver(reportState),\r\n },\r\n {\r\n gearsPath:\r\n 'ownVehicle.driver.person.specializations.[mapping_Person_NationalIdentifier].0.identifier',\r\n value: reportState.personalInfo?.ufin,\r\n onlyIf: isOnlyDriver(reportState),\r\n mappingFn: (value: string) => `NationalIdentifierType.${mapIdentifierType(value)}`,\r\n },\r\n {\r\n gearsPath:\r\n 'ownVehicle.driver.person.specializations.[mapping_Person_NationalIdentifier].0.nationalIdentifier',\r\n value: reportState.personalInfo?.ufin,\r\n onlyIf: isOnlyDriver(reportState),\r\n },\r\n {\r\n gearsPath: 'ownVehicle.driver.primaryPhoneNumber.number',\r\n value: reportState.contactInfo?.phone?.number,\r\n onlyIf: isOnlyDriver(reportState),\r\n },\r\n {\r\n gearsPath: 'ownVehicle.driver.primaryPhoneNumber.countryCode',\r\n value: reportState.contactInfo?.phone?.dialCode,\r\n onlyIf: isOnlyDriver(reportState),\r\n },\r\n {\r\n gearsPath: 'ownVehicle.driver.primaryPhoneNumber.phoneNumberType',\r\n value: reportState.contactInfo?.phone?.number,\r\n onlyIf: isOnlyDriver(reportState),\r\n mappingFn: () => 'PhoneNumberType.Phone',\r\n },\r\n {\r\n gearsPath: 'ownVehicle.driver.email.address',\r\n value: reportState.contactInfo?.email,\r\n onlyIf: isOnlyDriver(reportState),\r\n },\r\n {\r\n gearsPath: 'ownVehicle.driver.person.specializations.[mapping_Person_DrivingLicenseInformation]',\r\n value: reportState.licenceInfo,\r\n onlyIf: isDriver(reportState),\r\n mappingFn: mapDrivingLicenses,\r\n },\r\n {\r\n gearsPath: 'ownVehicle.driverLicence',\r\n value: reportState.licenceInfo,\r\n onlyIf: isDriver(reportState),\r\n mappingFn: mapLicenseValidity,\r\n },\r\n];\r\n","import { IMyInfoState } from 'src/types/myInfo';\r\nimport { getMapping } from './getMapping';\r\n\r\nexport const mapReportStateToGears = (reportState: IMyInfoState) => {\r\n const obj: any = {};\r\n\r\n getMapping(reportState).forEach((element) => {\r\n if (element.onlyIf !== undefined && element.onlyIf === false) return;\r\n\r\n if (element.value != null && element.value !== '') {\r\n const mappedValue = element.mappingFn ? element.mappingFn(element.value) : element.value;\r\n // eslint-disable-next-line\r\n if (mappedValue != null && mappedValue !== '') putValue(mappedValue, obj, element.gearsPath);\r\n }\r\n });\r\n\r\n return obj;\r\n};\r\n\r\nfunction putValue(value: any, obj: any, path: string) {\r\n const levels = path.split('.');\r\n let current = obj;\r\n\r\n levels.forEach((level, index, array) => {\r\n const cleanLevel = level.replace('[', '').replace(']', '');\r\n if (index > array.length - 2) current[cleanLevel] = value;\r\n else if (current[cleanLevel] === undefined) current[cleanLevel] = level.startsWith('[') ? [] : {};\r\n current = current[cleanLevel];\r\n });\r\n}\r\n","import { SelectInput, SelectInputOption, SubmitButton } from '@shift/design-system';\r\nimport React, { useState } from 'react';\r\nimport { IVehicleInfo } from 'src/types/myInfo';\r\nimport styled from 'styled-components';\r\n\r\ninterface VehicleInformationProps {\r\n ownedVehicles: IVehicleInfo[] | undefined;\r\n setVehicleInfo: (vehicleInfo: IVehicleInfo) => void;\r\n onSubmit: () => void;\r\n isSubmitting: boolean;\r\n}\r\n\r\nexport const VehicleInformation: React.FC = ({\r\n ownedVehicles, setVehicleInfo, onSubmit, isSubmitting,\r\n}) => {\r\n const isSelectInputOption = (value: any): value is SelectInputOption => (!Array.isArray(value));\r\n\r\n const otherOption = { label: 'Other', value: 'other' };\r\n const selectionValues: SelectInputOption[] = (\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n ownedVehicles?.filter((x) => !!x.vehicleno).map((x) => ({ label: x.vehicleno!, value: x.vehicleno! }))\r\n ?? []\r\n ).concat([otherOption]);\r\n\r\n const [vrnDropdownValue, setVrnDropdownValue] = useState();\r\n\r\n const onVrnSelection = (e: SelectInputOption[]) => {\r\n if (isSelectInputOption(e)) {\r\n setVrnDropdownValue(e);\r\n setVehicleInfo(ownedVehicles?.find((x) => x.vehicleno === e.value) ?? {});\r\n }\r\n };\r\n\r\n const title = 'Vehicle Information';\r\n const subtitle = 'Select the vehicle registration number of the vehicle that was involved in the accident.';\r\n const vrn = 'Vehicle registration number';\r\n const submitText = 'Confirm and continue';\r\n\r\n\r\n return (\r\n \r\n \r\n {title}\r\n {subtitle}\r\n \r\n \r\n \r\n {submitText}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst Container = styled.div`\r\n width: 500px;\r\n margin: 0 auto;\r\n display: flex;\r\n flex-direction: column;\r\n flex-wrap: nowrap;\r\n align-items: center;\r\n`;\r\n\r\nconst Content = styled.div`\r\n width: 100%;\r\n display: flex; /* Use flexbox layout */\r\n justify-content: flex-start; /* Center content horizontally */\r\n flex-direction: column;\r\n height: 100vh; /* Make the container take up the full viewport height */\r\n`;\r\n\r\nconst Title = styled.div`\r\n font-weight: 700;\r\n font-size: 24px;\r\n padding-top: 20px;\r\n width: 100%; // Add this line to make the title full width\r\n`;\r\n\r\nconst SubTitle = styled.div`\r\n font-size: 16px;\r\n padding: 20px 0;\r\n width: 100%; // Add this line to make the subtitle full width\r\n`;\r\n\r\nconst Label = styled.div`\r\n font-weight: 700;\r\n`;\r\n\r\nconst StyledSubmitButton = styled(SubmitButton)`\r\n margin-top: 10px;\r\n`;\r\n","import React, {\r\n useEffect, useContext, useState, useCallback,\r\n} from 'react';\r\nimport { Redirect, useHistory, useLocation } from 'react-router-dom';\r\nimport { insertAccidentReportMutation, useMutation } from 'src/graphql';\r\nimport { mapMyInfoToReportState } from 'src/utils/mapping/mapMyInfoToReportState';\r\nimport { MessageModalContext } from 'src/MessageModal';\r\nimport { MyInfo } from 'src/config/myinfo';\r\nimport { IVehicleInfo } from 'src/types/myInfo';\r\nimport { mapReportStateToGears } from 'src/utils/mapping/mapReportStateToGears';\r\nimport { formatGQLErrors } from 'src/utils/forms';\r\nimport { useMyInfoState } from 'src/state/MyInfoStateProvider';\r\nimport { GridCenteredCircularLoader } from 'src/components/Loader/GridCenteredCircularLoader';\r\nimport { arcForm, arcPreForm } from 'src/config/routes';\r\nimport { VehicleInformation } from './vehicle-information';\r\n\r\nenum MyinfoErrors {\r\n AccessDenied = 'access_denied'\r\n}\r\n\r\nexport const CallbackPage = () => {\r\n const { search } = useLocation();\r\n const history = useHistory();\r\n const [isLoaded, setIsLoaded] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const [accidentReportId, setAccidentReportId] = useState(0);\r\n const {\r\n myInfoState,\r\n updateState,\r\n clearReportState,\r\n } = useMyInfoState();\r\n\r\n const query = new URLSearchParams(search);\r\n\r\n const myinfoAuthCode = query.get('code');\r\n const myinfoAuthState = query.get('state');\r\n const myinfoError = query.get('error');\r\n\r\n const requestData = {\r\n authCode: myinfoAuthCode,\r\n state: myinfoAuthState,\r\n };\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n },\r\n body: JSON.stringify(requestData),\r\n };\r\n\r\n const [insertForm] = useMutation(insertAccidentReportMutation);\r\n const { displayMessage } = useContext(MessageModalContext);\r\n\r\n const insertReport = () => {\r\n setIsSubmitting(true);\r\n insertForm({\r\n variables: {\r\n accidentReport: mapReportStateToGears(myInfoState),\r\n saveAsDraft: true,\r\n source: 'AccidentReportSourceEnum.MyInfoInitiated',\r\n },\r\n }).then((resp) => {\r\n clearReportState();\r\n if (resp.errors?.length) {\r\n displayMessage(formatGQLErrors(resp.errors));\r\n } else {\r\n setAccidentReportId(\r\n resp.data?.insertAccidentReport?.id,\r\n );\r\n }\r\n });\r\n };\r\n\r\n const fetchMyInfoData = useCallback(() => {\r\n /* global fetch */\r\n fetch(MyInfo.personUrl, requestOptions)\r\n .then((res) => res.json())\r\n .then((result) => {\r\n const mappedMyInfoState = mapMyInfoToReportState(result);\r\n updateState(mappedMyInfoState);\r\n setIsLoaded(true);\r\n });\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (myinfoError === MyinfoErrors.AccessDenied) {\r\n history.push(arcPreForm.path);\r\n // eslint-disable-next-line max-len\r\n displayMessage(['In order to use Myinfo data to prefill the form, give consent so the data can be retrieved or fill the report manually']);\r\n return;\r\n }\r\n fetchMyInfoData();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (isLoaded && (myInfoState.ownedVehicles?.length === 0 || myInfoState.isVehicleOwner === false)) {\r\n insertReport();\r\n clearReportState();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [myInfoState.ownedVehicles, myInfoState.isVehicleOwner, isLoaded]);\r\n\r\n const accidentReportFormPath = arcForm.path.split('/')[1];\r\n\r\n if (accidentReportId > 0) {\r\n return ();\r\n }\r\n if (isLoaded && myInfoState?.ownedVehicles && myInfoState?.ownedVehicles?.length > 0) {\r\n return (\r\n { updateState({ vehicleInfo: selectedVehicle }); }}\r\n onSubmit={insertReport}\r\n isSubmitting={isSubmitting}\r\n />\r\n );\r\n }\r\n return (\r\n \r\n );\r\n};\r\n","import {\r\n RadioGroupInput, RadioGroupInputProps, StyledText,\r\n} from '@shift/design-system';\r\nimport React from 'react';\r\nimport styled from 'styled-components';\r\nimport { MyInfo } from 'src/config/myinfo';\r\nimport { useMyInfoState } from 'src/state/MyInfoStateProvider';\r\nimport { Link } from 'react-router-dom';\r\nimport { arcForm } from 'src/config/routes';\r\nimport logo from '../../resources/myinfo_retrival.png';\r\nimport logoDisabled from '../../resources/myinfo_retrival_disabled.png';\r\n\r\nexport type DriverOwnerProps = Omit;\r\n\r\nexport const DriverOwner = ({\r\n value,\r\n}: DriverOwnerProps) => {\r\n const [isSelected, setIsSelected] = React.useState(false);\r\n const {\r\n updateAndStore,\r\n } = useMyInfoState();\r\n const title = 'Accident Report prefilled with Myinfo';\r\n\r\n const options = {\r\n both: {\r\n labelName: 'The person is the driver and owner of the vehicle',\r\n },\r\n driver: {\r\n labelName: 'The person is only the driver',\r\n },\r\n owner: {\r\n labelName: 'The person is only the owner',\r\n },\r\n };\r\n\r\n const handleClick = () => {\r\n if (isSelected) {\r\n const authState = Math.floor(Math.random() * 100000);\r\n\r\n const authoriseUrl = `${MyInfo.authUrl\r\n }?client_id=${\r\n MyInfo.clientId\r\n }&attributes=${\r\n MyInfo.attributes\r\n }&purpose=${\r\n MyInfo.purpose\r\n }&state=${\r\n encodeURIComponent(authState)\r\n }&redirect_uri=${\r\n MyInfo.redirectUrl}`;\r\n\r\n window.location.href = authoriseUrl;\r\n }\r\n };\r\n\r\n const onSelect = (selected: string) => {\r\n setIsSelected(true);\r\n if (selected === 'both') {\r\n updateAndStore({ isVehicleDriver: true, isVehicleOwner: true });\r\n } else if (selected === 'driver') {\r\n updateAndStore({ isVehicleDriver: true, isVehicleOwner: false });\r\n } else if (selected === 'owner') {\r\n updateAndStore({ isVehicleDriver: false, isVehicleOwner: true });\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n If the person doesn’t have singpass you can\r\n {' '}\r\n fill the report manually\r\n \r\n
\r\n \r\n After retrieving Myinfo data please complete the AR by saving it as a Draft or an Open accident report within 2 hours.\r\n The AR will become inaccessible after this period.\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nconst Container = styled.div`\r\n width: 500px;\r\n margin: 0 auto;\r\n display: flex;\r\n flex-direction: column;\r\n flex-wrap: nowrap;\r\n align-items: center;\r\n`;\r\n\r\nconst Content = styled.div`\r\n display: flex; /* Use flexbox layout */\r\n justify-content: flex-start; /* Center content horizontally */\r\n flex-direction: column;\r\n height: 100vh; /* Make the container take up the full viewport height */\r\n`;\r\n\r\nconst Title = styled.div`\r\n font-weight: 700;\r\n font-size: 24px;\r\n padding-top: 11px;\r\n`;\r\n\r\nconst Space = styled.div`\r\n padding-top: 32px;\r\n padding-bottom: 32px;\r\n`;\r\n\r\nconst ImageButton = styled.img<{ isSelected: boolean }>`\r\n width: 272px;\r\n padding-bottom: 32px;\r\n\r\n &:hover {\r\n cursor: ${(props) => (props.isSelected ? 'pointer' : 'auto')};\r\n opacity: 0.9;\r\n }\r\n`;\r\nconst StyledLink = styled(Link)`\r\n color: #D86018;\r\n &:hover {\r\n color: #D86018;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport {\r\n Switch, Redirect, Route,\r\n} from 'react-router-dom';\r\n\r\nimport { Route as SupervisedRoute } from '@shift/telemetry';\r\n\r\nimport { Home } from 'src/pages/home';\r\nimport { SecureRoute, useSecurity } from 'src/libs/auth';\r\nimport { AccidentReportFormPage } from 'src/pages/accident-report-form/form';\r\nimport { AccidentReportSubmittedPage } from 'src/pages/accident-report-form/submitted';\r\nimport { Settings } from 'src/pages/settings';\r\nimport { Reporting } from 'src/pages/reports';\r\nimport { Claims } from 'src/libs/auth/Authenticator';\r\nimport { TokenPredicate, permissions } from 'src/config/permissions';\r\nimport { useArcInsurersList } from 'src/utils/hooks';\r\nimport { CallbackPage } from 'src/pages/myinfo-reporting/callback';\r\nimport { DriverOwner } from 'src/pages/myinfo-reporting/driver-owner';\r\nimport { GridCenteredCircularLoader } from '../../components/Loader/GridCenteredCircularLoader';\r\nimport {\r\n accidentReportDetail,\r\n accidentReportList,\r\n arcForm,\r\n arcList,\r\n ncd,\r\n insurerEnquiry,\r\n arcSubmitted,\r\n recoveries,\r\n recovery,\r\n recoveryTests,\r\n exploration,\r\n settings,\r\n thirdPartyReports,\r\n folderList,\r\n folderDetail,\r\n account,\r\n reporting,\r\n callback,\r\n arcPreForm,\r\n} from '../../config/routes';\r\n\r\nconst AccidentReportDetails = React.lazy(() => import('src/pages/accident-reports/details'));\r\nconst AccidentReports = React.lazy(() => import('src/pages/accident-reports/list'));\r\nconst RecoveryPage = React.lazy(() => import('src/pages/recoveries/details'));\r\nconst RecoveriesPage = React.lazy(() => import('src/pages/recoveries/list'));\r\nconst RecoveryTestsPage = React.lazy(() => import('src/pages/recoveries/tests'));\r\nconst ExplorationPage = React.lazy(() => import('src/pages/exploration'));\r\nconst NcdPage = React.lazy(() => import('src/pages/ncd'));\r\nconst InsurerEnquiryPage = React.lazy(() => import('src/pages/insurer-enquiry'));\r\nconst AccountPage = React.lazy(() => import('src/pages/account'));\r\nconst ThirdPartyReportsPage = React.lazy(() => import('src/pages/third-party-reports'));\r\nconst ArcsPage = React.lazy(() => import('src/pages/arcs/list'));\r\nconst FolderListPage = React.lazy(() => import('src/pages/folders/list'));\r\nconst FolderDetailPage = React.lazy(() => import('src/pages/folders/details'));\r\n\r\nconst Page404 = () =>

Oops, you got lost...

;\r\n\r\nconst hasPermission = (\r\n user: Claims | null,\r\n { permissions: perm }: { permissions: TokenPredicate | undefined },\r\n) => {\r\n if (!user) {\r\n return false;\r\n }\r\n if (!perm) {\r\n return true;\r\n }\r\n return perm(user);\r\n};\r\n\r\nexport const LoggedContent = () => {\r\n const { user } = useSecurity();\r\n\r\n const { options, loading } = useArcInsurersList();\r\n\r\n const hasAccreditationsIfArc = user && permissions.isArcOnly(user) ? !!options.length : true;\r\n\r\n return loading ? : (\r\n <>\r\n { /* eslint-disable-next-line react/jsx-props-no-spreading */}\r\n } />\r\n \r\n )}\r\n >\r\n \r\n {hasPermission(user, accidentReportDetail) && hasAccreditationsIfArc && (\r\n \r\n )}\r\n {hasPermission(user, accidentReportList) && hasAccreditationsIfArc && (\r\n \r\n )}\r\n {hasPermission(user, arcList) && (\r\n \r\n )}\r\n {hasPermission(user, arcPreForm) && hasAccreditationsIfArc && (\r\n \r\n )}\r\n {hasPermission(user, arcForm) && hasAccreditationsIfArc && (\r\n \r\n )}\r\n {hasPermission(user, arcSubmitted) && (\r\n \r\n )}\r\n {hasPermission(user, recovery) && (\r\n \r\n )}\r\n {hasPermission(user, recoveries) && (\r\n \r\n )}\r\n {hasPermission(user, recoveryTests) && (\r\n \r\n )}\r\n {hasPermission(user, exploration) && (\r\n \r\n )}\r\n {hasPermission(user, ncd) && (\r\n \r\n )}\r\n {hasPermission(user, insurerEnquiry) && (\r\n \r\n )}\r\n {hasPermission(user, thirdPartyReports) && (\r\n \r\n )}\r\n {hasPermission(user, settings) && (\r\n \r\n )}\r\n {hasPermission(user, reporting) && (\r\n \r\n )}\r\n {hasPermission(user, account) && (\r\n \r\n )}\r\n {hasPermission(user, accidentReportList) && hasAccreditationsIfArc && (\r\n \r\n )}\r\n {hasPermission(user, arcForm) && hasAccreditationsIfArc && (\r\n \r\n )}\r\n {hasPermission(user, ncd) && (\r\n \r\n )}\r\n {hasPermission(user, insurerEnquiry) && (\r\n \r\n )}\r\n {hasPermission(user, folderDetail) && (\r\n \r\n )}\r\n {hasPermission(user, folderList) && (\r\n \r\n )}\r\n {hasPermission(user, folderList) && !hasAccreditationsIfArc && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nimport { Login } from 'src/pages/login/Login';\r\nimport { useSecurity } from 'src/libs/auth';\r\nimport { getUserCompany } from 'src/graphql';\r\nimport { useAsyncQuery } from 'src/templates/useAsyncQuery';\r\nimport { LoggedContent } from './LoggedContent';\r\n\r\nimport { runtimeConfig } from '../../config/runtime-config';\r\n\r\nconst { intercomId } = runtimeConfig();\r\n\r\nconst intercom = (...args: any[]) => (window as any).Intercom?.(...args);\r\n\r\nexport const Application = () => {\r\n useEffect(() => {\r\n intercom('boot', {\r\n // eslint-disable-next-line @typescript-eslint/camelcase\r\n app_id: intercomId,\r\n });\r\n });\r\n\r\n const { user } = useSecurity();\r\n const [getCompany, { data }] = useAsyncQuery(getUserCompany);\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n if (!user) {\r\n intercom('shutdown');\r\n return;\r\n }\r\n intercom('update', {\r\n // eslint-disable-next-line @typescript-eslint/camelcase\r\n user_id: user.sub,\r\n name: user.name,\r\n email: user.email,\r\n });\r\n }, [user]);\r\n\r\n useEffect(() => {\r\n intercom('update');\r\n }, [location]);\r\n\r\n useEffect(() => {\r\n if (!data && user) {\r\n getCompany();\r\n }\r\n if (user && data && data.me && data.me.company && data.me.company.name && data.me.company.id) {\r\n intercom('update', {\r\n company: {\r\n name: data.me.company.name,\r\n id: data.me.company.id,\r\n },\r\n });\r\n }\r\n }, [data, user, getCompany]);\r\n\r\n return !user ? : ;\r\n};\r\n","import React from 'react';\r\nimport Helmet from 'react-helmet';\r\nimport styled from 'styled-components';\r\n\r\nimport { StyledText, withCustomStyles } from '@shift/design-system';\r\n\r\nimport { MyInfoStateProvider } from 'src/state/MyInfoStateProvider';\r\nimport { Providers } from './Providers';\r\nimport { Application } from './Application';\r\n\r\nconst ApplicationContainer = styled(withCustomStyles(StyledText))`\r\n min-height: 100vh;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nexport const ApplicationWrapper = () => (\r\n \r\n \r\n GIA GEARS\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import 'react-app-polyfill/ie9';\r\nimport 'react-app-polyfill/stable';\r\nimport './oktaPolyfill';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { init as initApm } from '@elastic/apm-rum';\r\nimport { Locale } from '@gears/translations';\r\nimport './styles/index.scss';\r\nimport * as serviceWorker from 'src/serviceWorker';\r\nimport { ApplicationWrapper } from 'src/entrypoint/application/ApplicationWrapper';\r\nimport { configureLocale } from 'src/utils/translation';\r\nimport { setDefaultTimeZone } from './utils/translation/moment-config';\r\nimport { telemetryConfig } from './config';\r\n\r\ninitApm(telemetryConfig);\r\n\r\nsetDefaultTimeZone();\r\nconfigureLocale(Locale.enSG);\r\n/* eslint-env browser */\r\nReactDOM.render(\r\n ,\r\n document.getElementById('root'),\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","export const vehicleDrivingLicenseValidityStatuses: Record = {\r\n V: 'Valid',\r\n E: 'Expired',\r\n I: 'Invalid',\r\n N: 'NotHoldingQDL',\r\n};\r\n","import { IAddressInfo, ILicenceInfo } from 'src/types/myInfo';\r\nimport { toShiftDateTimeOffsetFormat } from 'src/utils';\r\nimport { vehicleDrivingLicenseValidityStatuses } from './constants/drivingLicenseValidityStatuses';\r\n\r\nexport const mapIdentifierType = (id: string) => (id.startsWith('F') || id.startsWith('G') || id.startsWith('M') ? 'Passport' : 'NationalIdentifier');\r\n\r\nexport const mapFullAddress = ({\r\n block, street, floor, unit, building, country, postal,\r\n}: IAddressInfo) => `BLK ${block} ${street} ${floor}-${unit} ${building} ${country} ${postal}`;\r\n\r\nexport const mapDate = (dateOfBirth: string | undefined) => {\r\n if (!dateOfBirth) return '';\r\n\r\n const [year, month, date] = dateOfBirth.split('-');\r\n\r\n return `${date ?? '01'}/${month ?? '01'}/${year ?? '1980'}T00:00:00+00:00`;\r\n};\r\n\r\nexport const mapGender = (gender: any) => {\r\n if (gender == null) return '';\r\n\r\n const genderStr = gender.toLowerCase();\r\n const formattedGender = genderStr.charAt(0).toUpperCase() + genderStr.slice(1);\r\n\r\n return `EntityGender.${formattedGender}`;\r\n};\r\n\r\nexport const mapIsLicenceRevoked = (value: string | undefined) => (!(value == null || value === 'V'));\r\n\r\nexport const mapDrivingLicenceClass = (licenseClass: string) => {\r\n if (licenseClass == null) return '';\r\n\r\n let mappedClass;\r\n switch (licenseClass.toLocaleUpperCase()) {\r\n case '2':\r\n case '2A':\r\n case '2B':\r\n mappedClass = 'Motorcycle';\r\n break;\r\n case '3CA':\r\n case '3A':\r\n case '3C':\r\n case '3':\r\n mappedClass = 'Car';\r\n break;\r\n case '4A':\r\n case '4':\r\n mappedClass = 'Bus';\r\n break;\r\n case '5':\r\n mappedClass = 'Truck';\r\n break;\r\n default: mappedClass = undefined;\r\n }\r\n if (mappedClass !== undefined) {\r\n return `DrivingLicenseType.${mappedClass}`;\r\n } return undefined;\r\n};\r\n\r\nexport const mapLicenseValidity = (license: ILicenceInfo) => {\r\n if (!license.validity) return undefined;\r\n const licenseValidity = vehicleDrivingLicenseValidityStatuses[license.validity.toLocaleUpperCase() ?? ''];\r\n let resultValidity;\r\n let resultSourceValidity;\r\n if (licenseValidity) {\r\n resultValidity = `DrivingLicenseValidityStatus.${licenseValidity}`;\r\n } else {\r\n resultSourceValidity = license.validity;\r\n }\r\n const mappedValidity = {\r\n drivingLicenseNumber: '-1',\r\n licenseValidity: resultValidity,\r\n licenseValiditySourceName: resultSourceValidity,\r\n };\r\n return mappedValidity;\r\n};\r\n\r\nexport const mapDrivingLicenses = (license: ILicenceInfo) => license.classes?.map((item, i) => ({\r\n number: `-${i + 1}`,\r\n licenseType: mapDrivingLicenceClass(item.class),\r\n startDate: toShiftDateTimeOffsetFormat(item.issueDate),\r\n licenseTypeSourceName: item.class,\r\n drivingLicenseHasBeenRevoked: mapIsLicenceRevoked(license.validity),\r\n licenseValidity: mapLicenseValidity(license)?.licenseValidity,\r\n licenseValiditySourceName: mapLicenseValidity(license)?.licenseValiditySourceName,\r\n}));\r\n","import React from 'react';\r\nimport { Helmet } from 'react-helmet';\r\n\r\nexport interface PageProps {\r\n title?: string;\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const Page = ({ title, children }: PageProps) => (\r\n <>\r\n \r\n {title || 'GEARS'}\r\n \r\n {children}\r\n \r\n);\r\n","import React, { useContext } from 'react';\r\nimport styled from 'styled-components';\r\nimport { StyledText, ThemeContext } from '@shift/design-system';\r\nimport { Widgetter } from '@shift/transform';\r\n\r\nconst Text = styled(StyledText)`\r\n white-space: pre-line;\r\n max-width: 400px;\r\n overflow-x: auto;\r\n`;\r\n\r\nconst TextWidget = ({ children }: { children: string[] }) => {\r\n const { colors } = useContext(ThemeContext);\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\nexport const TextWidgetter: Widgetter<{ children: string[] }> = {\r\n transform: TextWidget,\r\n};\r\n","import React from 'react';\r\nimport { Widgetter } from '@shift/transform';\r\n\r\n\r\nexport const NoopWidgetter: Widgetter<{ children: string[] }> = {\r\n transform: ({ children }: { children: string[] }) => (\r\n <>\r\n {children}\r\n \r\n ),\r\n};\r\n","import React, { useContext } from 'react';\r\nimport { StyledText, ThemeContext } from '@shift/design-system';\r\nimport { Widgetter } from '@shift/transform';\r\n\r\nconst LabelWidget = ({ children }: { children: string[] }) => {\r\n const { colors } = useContext(ThemeContext);\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\nconst CardLabelWidgetter: Widgetter<{ children: string[] }> = {\r\n transform: LabelWidget,\r\n};\r\nconst ValueWidget = ({ children }: { children: string[] }) => {\r\n const { colors } = useContext(ThemeContext);\r\n return (\r\n
\r\n \r\n {children}\r\n \r\n
\r\n );\r\n};\r\nexport const CardValueWidgetter: Widgetter<{ children: string[] }> = {\r\n transform: ValueWidget,\r\n};\r\n\r\n\r\nexport const CardWidget = {\r\n CardLabelWidgetter,\r\n CardValueWidgetter,\r\n};\r\n","import React from 'react';\r\n\r\nimport { Widgetter } from '@shift/transform';\r\nimport { SelectInput, SelectInputOption } from '@shift/design-system';\r\n\r\nconst defaultOptions = {\r\n currentIndex: 0,\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onSelect: (_idx: number) => {},\r\n};\r\n\r\nexport const SelectWidgetter: Widgetter<{ children: string[] }, {}, { currentIndex: number; onSelect: (idx: number) => void }> = {\r\n transform: ({ children }, opts = defaultOptions) => {\r\n const { currentIndex, onSelect } = opts;\r\n const options = children.map((choice, idx) => ({ idx, label: choice, value: choice }));\r\n return (\r\n onSelect((values as any).idx)}\r\n />\r\n );\r\n },\r\n};\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { StyledText } from '@shift/design-system';\r\nimport { Widgetter } from '@shift/transform';\r\n\r\nconst LinksWidget = ({ children }: LinksWidgetterProps) => (\r\n <>\r\n {children.map(({ content, link }, idx) => (\r\n \r\n {link ? {content} : content}\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport interface LinksWidgetterProps {\r\n children: { content: string; link: string | null }[];\r\n}\r\nexport const LinksWidgetter: Widgetter = {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n transform: (props) => ,\r\n};\r\n","import React, { useContext, ReactElement } from 'react';\r\nimport styled from 'styled-components';\r\nimport { StyledLink, CircularLoader, ThemeContext } from '@shift/design-system';\r\nimport { Widgetter } from '@shift/transform';\r\nimport { useFetch } from 'src/libs/fetch';\r\nimport { download } from 'src/utils/documents/download';\r\n\r\nexport const LoaderWrapper = styled.span`\r\n display: inline-block;\r\n margin: auto 0.5rem;\r\n vertical-align: top;\r\n`;\r\n\r\nconst DownloadWidget = ({\r\n children, filename, url,\r\n}: DownloadWidgetterProps) => {\r\n const { download: dl } = useFetch();\r\n const theme = useContext(ThemeContext);\r\n const [loading, setLoading] = React.useState(false);\r\n const onClick = React.useCallback(() => {\r\n if (!loading) download(dl, url, setLoading, filename);\r\n }, [dl, filename, url, setLoading, loading]);\r\n return (\r\n \r\n {loading\r\n ? (\r\n <>\r\n \r\n \r\n \r\n {children}\r\n \r\n )\r\n : children}\r\n \r\n );\r\n};\r\n\r\nexport interface DownloadWidgetterProps {\r\n children: string | ReactElement;\r\n filename?: string;\r\n url: string;\r\n}\r\n\r\nexport const DownloadWidgetter: Widgetter = {\r\n transform: DownloadWidget,\r\n};\r\n","import React, { useContext } from 'react';\r\nimport { File, LinkSvg } from '@shift/icons';\r\nimport { Widgetter } from '@shift/transform';\r\nimport { Icon, ThemeContext, withCustomStyles } from '@shift/design-system';\r\nimport { DownloadWidgetter, DownloadWidgetterProps } from './DownloadWidget';\r\n\r\ntype FileIconDownloadWidgetterProps = Omit\r\n\r\nexport interface DocumentLinkWidgetterProps extends FileIconDownloadWidgetterProps {\r\n isLink: boolean;\r\n}\r\n\r\n\r\nconst StyledIcon = withCustomStyles(Icon);\r\n\r\nconst DocumentLinkWidget = ({\r\n filename, url, isLink,\r\n}: DocumentLinkWidgetterProps) => {\r\n const { colors: { brand: { primary: { base: brandPrimaryBaseColor } } } } = useContext(ThemeContext);\r\n\r\n return !isLink ? (\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 DocumentLinkWidgetter: Widgetter = {\r\n transform: DocumentLinkWidget,\r\n};\r\n","import React from 'react';\r\nimport {\r\n StyledLinkProps, GridItem, Grid, Icon,\r\n} from '@shift/design-system';\r\nimport { FileInvoiceDollarSvg } from '@shift/icons';\r\nimport { useHistory, Link } from 'react-router-dom';\r\nimport { BillableActionProps, BillableAction } from './BillableAction';\r\n\r\nexport type BillableSubmitLinkActionProps = Omit\r\n & Omit\r\n & {\r\n href: string;\r\n style?: React.CSSProperties;\r\n };\r\n\r\n\r\nexport const BillableLinkAction = (\r\n {\r\n href,\r\n action,\r\n children,\r\n request,\r\n paidAccess,\r\n i18nModal,\r\n ...otherProps\r\n }: BillableSubmitLinkActionProps,\r\n) => {\r\n const history = useHistory();\r\n return (\r\n \r\n {\r\n history.push(href);\r\n }}\r\n // ability to open in a new tab\r\n to={href}\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n {...otherProps}\r\n >\r\n \r\n {paidAccess && (\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};\r\n","import React from 'react';\r\nimport {\r\n GridItem, Grid,\r\n} from '@shift/design-system';\r\nimport { Widgetter } from '@shift/transform';\r\nimport { BillableLinkAction } from '../../containers/billableAction/BillableLinkAction';\r\nimport { BILLABLE_ACTIONS } from '../../containers/billableAction/BillableAction';\r\nimport { TokenPredicate } from '../permissions';\r\nimport { billReportPurchaseMutation } from '../../graphql/mutation-builder';\r\nimport { Secure } from '../../libs/auth';\r\nimport { translate } from '../../utils/forms';\r\n\r\n\r\nconst LinksWidget = ({ children }: LinksBillableActionWidgetterProps) => (\r\n <>\r\n {children.map(({\r\n reportId, paidAccess, content, links, actions, permissions,\r\n isAllowed,\r\n }, idx) => {\r\n const [arDetailContent, explorationContent] = content;\r\n const [arDetailLink, explorationLink] = links;\r\n const [arDetailAction, explorationAction] = actions;\r\n const [arPurchasePermissions, explorationPermissions] = permissions;\r\n const { location } = window;\r\n const currentPath = `${location.pathname}${location.search}`;\r\n if (!isAllowed) {\r\n return null;\r\n }\r\n return (\r\n \r\n \r\n {\r\n arDetailLink ? (\r\n {arDetailContent}}\r\n permissions={arPurchasePermissions}\r\n >\r\n \r\n

\r\n {translate('billable-actions:ncd-modal-desc')}\r\n

\r\n

\r\n \r\n {translate('billable-actions:ncd-modal-dec-tp-report-investigation')}\r\n \r\n

\r\n \r\n ) : translate('billable-actions:ncd-modal-desc'),\r\n }\r\n }\r\n request={{\r\n cleanCache: true,\r\n mutationQuery: billReportPurchaseMutation,\r\n variables: {\r\n id: reportId,\r\n },\r\n }}\r\n >\r\n {arDetailContent}\r\n \r\n \r\n ) : arDetailContent\r\n }\r\n
\r\n \r\n {\r\n explorationLink\r\n // we are already searching for the content\r\n // no need to display a link\r\n && currentPath !== explorationLink\r\n ? (\r\n {explorationContent}}\r\n permissions={explorationPermissions}\r\n >\r\n \r\n {explorationContent}\r\n \r\n \r\n ) : explorationContent\r\n }\r\n \r\n \r\n );\r\n })}\r\n \r\n);\r\n\r\nexport interface LinksBillableActionWidgetterProps {\r\n children: {\r\n content: (string | undefined)[];\r\n links: (string | undefined)[];\r\n paidAccess: boolean | undefined;\r\n actions: (keyof typeof BILLABLE_ACTIONS)[];\r\n reportId?: number;\r\n permissions?: [TokenPredicate, TokenPredicate];\r\n skipConfirmation?: boolean;\r\n isAllowed?: boolean;\r\n }[];\r\n}\r\n\r\nexport const LinksBillableActionWidgetter: Widgetter = {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n transform: (props) => ,\r\n};\r\n","import React from 'react';\r\nimport { Widgetter } from '@shift/transform';\r\nimport { Grid, GridItem } from '@shift/design-system';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { BillableLinkAction } from '../../containers/billableAction/BillableLinkAction';\r\nimport { BILLABLE_ACTIONS } from '../../containers/billableAction/BillableAction';\r\nimport { TokenPredicate } from '../permissions';\r\nimport { Secure, useSecurity } from '../../libs/auth';\r\nimport { ExplorationSearchType } from '../../pages/exploration/constants';\r\nimport { formatNationalIdentifier } from '../formatters/NationalIdentifierFormatter';\r\n\r\nconst LinksWidget = ({ children }: LinksExplorationSearchWidgetterProps) => {\r\n const { pathname, search } = useLocation();\r\n const currentPath = `${pathname}${search}`;\r\n const { user } = useSecurity();\r\n return (\r\n \r\n {\r\n children.map((child, index) => {\r\n const {\r\n content, action, link, permission, searchType,\r\n } = child;\r\n const transformedContent = searchType === 'person' ? formatNationalIdentifier(user, content) : content;\r\n return (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n {\r\n link\r\n // we are already searching for the content\r\n // no need to display a link\r\n && currentPath !== link ? (\r\n {transformedContent}}\r\n permissions={permission}\r\n >\r\n \r\n {transformedContent}\r\n \r\n \r\n ) : content\r\n }\r\n \r\n );\r\n })\r\n }\r\n \r\n );\r\n};\r\n\r\n\r\nexport interface LinksExplorationSearchWidgetterProps {\r\n children: {\r\n content: string | undefined;\r\n link: string | undefined;\r\n searchType: ExplorationSearchType;\r\n action: keyof typeof BILLABLE_ACTIONS;\r\n permission?: TokenPredicate;\r\n }[];\r\n}\r\nexport const LinksExplorationSearchWidgetter: Widgetter = {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n transform: (props) => ,\r\n};\r\n","import React, { useState } from 'react';\r\n\r\nimport {\r\n SearchFilterProps, BaseFilterProps,\r\n SearchFilter, DatePicker, enGB,\r\n} from '@shift/design-system';\r\nimport moment from 'moment-timezone';\r\nimport { translate } from '../../../utils/forms';\r\nimport { toDateTimeWithoutTz } from '../../../utils';\r\n\r\nexport type DateRangeValue = {\r\n startDate: moment.Moment | null;\r\n endDate: moment.Moment | null;\r\n}\r\nexport type DateInputFilterProps = BaseFilterProps & SearchFilterProps\r\n\r\ntype StepEnum = 'startDate' | 'endDate';\r\n\r\nconst getStep = (startDate: Date | undefined, endDate: Date | undefined) => {\r\n if (startDate && !endDate) {\r\n return 'endDate';\r\n }\r\n if (!startDate && endDate) {\r\n return 'startDate';\r\n }\r\n return undefined;\r\n};\r\n\r\n\r\nexport const DateInputFilter = ({\r\n filter,\r\n onFilterChange,\r\n ...props\r\n}: DateInputFilterProps) => {\r\n const [{ startDate, endDate }, updateDates] = useState({\r\n startDate: filter?.startDate ? toDateTimeWithoutTz(filter?.startDate) : undefined,\r\n endDate: filter?.endDate ? toDateTimeWithoutTz(filter?.endDate) : undefined,\r\n });\r\n const [focus, setFocus] = useState(getStep(startDate, endDate));\r\n\r\n const onChangeStart = (date: Date | undefined) => {\r\n if (onFilterChange) {\r\n onFilterChange({ startDate: date ? moment(date).startOf('day') : null, endDate: endDate ? moment(endDate).endOf('day') : null });\r\n setFocus(getStep(date, endDate));\r\n updateDates({ startDate: date, endDate });\r\n }\r\n };\r\n\r\n const onChangeEnd = (date: Date | undefined) => {\r\n if (onFilterChange) {\r\n onFilterChange({ endDate: date ? moment(date).endOf('day') : null, startDate: startDate ? moment(startDate).startOf('day') : null });\r\n setFocus(getStep(startDate, date));\r\n updateDates({ endDate: date, startDate });\r\n }\r\n };\r\n\r\n return (\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { parseOffsetDate, parseUtcDate } from 'src/utils';\r\nimport { FilterableHeader } from '@shift/design-system';\r\nimport { DateOffsetFormat, DateUtcFormat } from 'src/constants';\r\nimport { Moment, utc } from 'moment-timezone';\r\nimport {\r\n useFieldSort, useFieldFilter, Operation, mapOrder, unmapOrder, Field, ParameterType,\r\n} from '../../../libs/filters';\r\nimport { translate } from '../../../utils/forms';\r\nimport { DateInputFilter } from './DateInputFilter';\r\n\r\n\r\nexport const DateFilter = ({\r\n children, field, operation,\r\n}: { field: Field; operation: Operation; children: React.ReactNode }) => {\r\n const [sort, setSort] = useFieldSort(field);\r\n const [filter, setFilter] = useFieldFilter(field);\r\n\r\n const [pendingFilter, setPendingFilter] = useState(filter);\r\n\r\n useEffect(() => {\r\n setPendingFilter(filter);\r\n }, [filter]);\r\n\r\n const isUtc = operation?.parameters[0]?.type === ParameterType.DateTimeUtc;\r\n const parse = isUtc ? parseUtcDate : parseOffsetDate;\r\n const format = (date: Moment) => {\r\n if (!date) {\r\n return null;\r\n }\r\n if (isUtc) {\r\n return utc(date).format(DateUtcFormat);\r\n }\r\n return date.format(DateOffsetFormat);\r\n };\r\n const pendingStartDate = pendingFilter?.parameters[0].value ? parse(pendingFilter?.parameters[0].value) : null;\r\n const pendingEndDate = pendingFilter?.parameters[1].value ? parse(pendingFilter?.parameters[1].value) : null;\r\n const startDate = filter?.parameters[0].value ? parse(filter?.parameters[0].value) : null;\r\n const endDate = filter?.parameters[1].value ? parse(filter?.parameters[1].value) : null;\r\n return (\r\n {\r\n setPendingFilter({\r\n ...operation,\r\n parameters: [\r\n { ...operation.parameters[0], value: format(sDate) ?? operation?.parameters[0].value },\r\n { ...operation.parameters[1], value: format(eDate) ?? operation?.parameters[1].value },\r\n ],\r\n });\r\n }}\r\n onSubmit={() => setFilter(pendingFilter)}\r\n onClear={() => { setFilter(null); setPendingFilter(null); setSort(null); }}\r\n FilterComponent={DateInputFilter}\r\n buttonText={translate('common:submit')}\r\n clearText={translate('common:clear')}\r\n sortAscText={translate('common:sort-date-asc')}\r\n sortDescText={translate('common:sort-date-desc')}\r\n order={mapOrder(sort)}\r\n onOrderChange={(o) => setSort(unmapOrder(o))}\r\n >\r\n {children}\r\n \r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { FilterableHeader, TextSearchFilter, FilterableHeaderSide } from '@shift/design-system';\r\n\r\nimport {\r\n useFieldSort, useFieldFilter, Operation, mapOrder, unmapOrder, Field,\r\n} from '../../../libs/filters';\r\nimport { translate } from '../../../utils/forms';\r\n\r\nexport interface TextFilterProps {\r\n field: Field;\r\n operation: Operation;\r\n children: React.ReactNode;\r\n side?: FilterableHeaderSide;\r\n}\r\n\r\nexport const TextFilter = ({\r\n children, field, operation, side,\r\n}: TextFilterProps) => {\r\n const [sort, setSort] = useFieldSort(field);\r\n const [filter, setFilter] = useFieldFilter(field);\r\n\r\n const [pendingFilter, setPendingFilter] = useState(filter);\r\n\r\n useEffect(() => {\r\n setPendingFilter(filter);\r\n }, [filter]);\r\n\r\n return (\r\n setPendingFilter({\r\n ...operation,\r\n parameters: [\r\n {\r\n ...operation.parameters[0],\r\n value: s,\r\n },\r\n ],\r\n })}\r\n onSubmit={() => setFilter(pendingFilter)}\r\n onClear={() => { setFilter(null); setSort(null); setPendingFilter(null); }}\r\n FilterComponent={TextSearchFilter}\r\n buttonText={translate('common:submit')}\r\n clearText={translate('common:clear')}\r\n sortAscText={translate('common:sort-string-asc')}\r\n sortDescText={translate('common:sort-string-desc')}\r\n order={mapOrder(sort)}\r\n onOrderChange={(o) => setSort(unmapOrder(o))}\r\n >\r\n {children}\r\n \r\n );\r\n};\r\n","import React, {\r\n useState, useEffect, useMemo,\r\n} from 'react';\r\n\r\nimport {\r\n FilterableHeader,\r\n CheckboxOptions,\r\n SelectInputOption,\r\n SelectSearchFilter,\r\n FilterableHeaderSide,\r\n} from '@shift/design-system';\r\n\r\n\r\nimport {\r\n useFieldFilter,\r\n Operation,\r\n Field,\r\n Parameter,\r\n ParameterType,\r\n useFieldSort,\r\n unmapOrder,\r\n mapOrder,\r\n} from '../../../libs/filters';\r\n\r\nimport { translate } from '../../../utils/forms';\r\n\r\nconst filterToOptions = (options: CheckboxOptions | undefined, filterParam: Operation | null): string[] | undefined => (options\r\n ? Object.keys(options)\r\n .filter((k) => filterParam?.parameters.map((p) => p.value).includes(k))\r\n : undefined);\r\n\r\nconst optionsToFilter = (operation: Operation, optionsParam: CheckboxOptions, enableFilters: string[], parameterType: ParameterType) => {\r\n const mappedFilter = Object.entries<{ labelName: string }>(optionsParam)\r\n .filter(([k]) => enableFilters.includes(k))\r\n .map(([k, v]) => (\r\n {\r\n name: v.labelName,\r\n type: parameterType,\r\n value: k,\r\n }));\r\n return mappedFilter\r\n && Array.isArray(mappedFilter)\r\n && mappedFilter.length > 0 ? {\r\n ...operation,\r\n parameters: mappedFilter,\r\n } : null;\r\n};\r\n\r\nexport interface SelectFilterProps {\r\n options?: SelectInputOption[];\r\n field: Field;\r\n operation: Operation;\r\n children: React.ReactNode;\r\n parameterType: ParameterType;\r\n side?: FilterableHeaderSide;\r\n sortable?: boolean;\r\n}\r\n\r\nexport function SelectFilter({\r\n children, field, operation, options, parameterType, side, sortable = false,\r\n}: SelectFilterProps) {\r\n const [filter, setFilter] = useFieldFilter(field);\r\n const [sort, setSort] = useFieldSort(field);\r\n\r\n const checkboxOptions: CheckboxOptions = useMemo(\r\n () => (options ? options.reduce((p, c) => ({ ...p, [c.value]: { labelName: c.label } }), {}) : {}), [options],\r\n );\r\n\r\n const [pendingFilter, setPendingFilter] = useState(Object.keys(options || {}));\r\n\r\n useEffect(() => {\r\n if (checkboxOptions) {\r\n const newValue = filterToOptions(checkboxOptions, filter);\r\n setPendingFilter(newValue || []);\r\n }\r\n }, [filter, checkboxOptions]);\r\n\r\n return (\r\n 0 : false}\r\n side={side}\r\n filter={pendingFilter}\r\n checkboxes={{\r\n options: checkboxOptions,\r\n }}\r\n onFilterChange={(o: string[]) => setPendingFilter(o)}\r\n onSubmit={() => setFilter(optionsToFilter(operation, checkboxOptions, pendingFilter, parameterType))}\r\n onClear={() => { setFilter(null); setPendingFilter([]); }}\r\n FilterComponent={SelectSearchFilter}\r\n buttonText={translate('common:submit')}\r\n clearText={translate('common:clear')}\r\n selectAllText={translate('common:all')}\r\n deselectAllText={translate('common:none')}\r\n sortAscText={translate('common:sort-number-asc')}\r\n sortDescText={translate('common:sort-number-desc')}\r\n order={mapOrder(sort)}\r\n onOrderChange={(o) => setSort(unmapOrder(o))}\r\n sortable={sortable}\r\n >\r\n {children}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\n\r\nimport { ParameterType } from 'src/libs/filters';\r\nimport { useEnumOptions } from '../../../utils/hooks';\r\n\r\nimport { SelectFilter, SelectFilterProps } from './SelectFilter';\r\n\r\nexport interface EnumFilterProps extends Omit{\r\n enumName: string;\r\n side?: SelectFilterProps['side'];\r\n}\r\n\r\nexport const EnumFilter = ({\r\n enumName, operation, field, children, side,\r\n}: EnumFilterProps) => {\r\n const { options: enums } = useEnumOptions(enumName);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n","import React, { useMemo } from 'react';\r\n\r\nimport { SelectInputOption } from '@shift/design-system';\r\nimport { translate } from '@gears/translations';\r\n\r\nimport { ParameterType } from 'src/libs/filters';\r\nimport { SelectFilter, SelectFilterProps } from './SelectFilter';\r\n\r\nexport type BooleanFilterProps = Omit;\r\n\r\nexport const BooleanFilter = ({\r\n operation, field, children, side,\r\n}: BooleanFilterProps) => {\r\n const options: SelectInputOption[] = useMemo(() => [\r\n { label: translate('common:yes'), value: 'true' },\r\n { label: translate('common:no'), value: 'false' },\r\n ], []);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n","import React from 'react';\r\n\r\nimport {\r\n SearchFilterProps, BaseFilterProps, SearchFilter, NumberInput,\r\n} from '@shift/design-system';\r\nimport { translate } from '../../../utils/forms';\r\n\r\nexport type IntegerRangeValue = {\r\n minValue: number | null;\r\n maxValue: number | null;\r\n}\r\nexport type IntegerInputFilterProps = BaseFilterProps & SearchFilterProps\r\n\r\nexport const IntegerInputFilter = ({\r\n filter,\r\n onFilterChange,\r\n ...props\r\n}: IntegerInputFilterProps) => {\r\n const { minValue, maxValue } = filter || { minValue: null, maxValue: null };\r\n return (\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n \r\n
\r\n onFilterChange && onFilterChange({ minValue: val ? parseInt(val, 10) : null, maxValue })}\r\n />\r\n onFilterChange && onFilterChange({ minValue, maxValue: val ? parseInt(val, 10) : null })}\r\n />\r\n
\r\n
\r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { FilterableHeader } from '@shift/design-system';\r\nimport {\r\n useFieldSort, useFieldFilter, Operation, mapOrder, unmapOrder, Field,\r\n} from '../../../libs/filters';\r\nimport { translate } from '../../../utils/forms';\r\nimport { IntegerInputFilter } from './IntegerInputFilter';\r\n\r\n\r\nexport const IntegerFilter = ({\r\n children, field, operation,\r\n}: { field: Field; operation: Operation; children: React.ReactNode }) => {\r\n const [sort, setSort] = useFieldSort(field);\r\n const [filter, setFilter] = useFieldFilter(field);\r\n\r\n const [pendingFilter, setPendingFilter] = useState(filter);\r\n\r\n useEffect(() => {\r\n setPendingFilter(filter);\r\n }, [filter]);\r\n\r\n const pendingMinValue = pendingFilter?.parameters[0].value ? parseInt(pendingFilter?.parameters[0].value, 10) : null;\r\n const pendingMaxValue = pendingFilter?.parameters[1].value ? parseInt(pendingFilter?.parameters[1].value, 10) : null;\r\n const minValue = filter?.parameters[0].value ? parseInt(filter?.parameters[0].value, 10) : null;\r\n const maxValue = filter?.parameters[1].value ? parseInt(filter?.parameters[1].value, 10) : null;\r\n\r\n return (\r\n {\r\n setPendingFilter({\r\n ...operation,\r\n parameters: [\r\n { ...operation.parameters[0], value: min?.toString() ?? operation?.parameters[0].value },\r\n { ...operation.parameters[1], value: max?.toString() ?? operation?.parameters[1].value },\r\n ],\r\n });\r\n }}\r\n onSubmit={() => setFilter(pendingFilter)}\r\n onClear={() => { setFilter(null); setPendingFilter(null); setSort(null); }}\r\n FilterComponent={IntegerInputFilter}\r\n buttonText={translate('common:submit')}\r\n clearText={translate('common:clear')}\r\n sortAscText={translate('common:sort-number-asc')}\r\n sortDescText={translate('common:sort-number-desc')}\r\n order={mapOrder(sort)}\r\n onOrderChange={(o) => setSort(unmapOrder(o))}\r\n >\r\n {children}\r\n \r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Moment, utc } from 'moment-timezone';\r\n\r\nimport { FilterableHeader } from '@shift/design-system';\r\nimport { DateUtcFormat, DefaultTZUtcNow } from 'src/constants';\r\nimport { parseUtcDate } from 'src/utils';\r\nimport {\r\n useFieldSort, useFieldFilter, Operation, mapOrder, unmapOrder, Field,\r\n} from 'src/libs/filters';\r\nimport { translate } from 'src/utils/forms';\r\nimport { IntegerInputFilter } from './IntegerInputFilter';\r\n\r\n\r\nexport const DaysLeftFilter = ({\r\n children, field, operation,\r\n}: { field: Field; operation: Operation; children: React.ReactNode }) => {\r\n const [sort, setSort] = useFieldSort(field);\r\n const [filter, setFilter] = useFieldFilter(field);\r\n const [now, setNow] = useState(DefaultTZUtcNow);\r\n\r\n const [pendingFilter, setPendingFilter] = useState(filter);\r\n\r\n useEffect(() => {\r\n setPendingFilter(filter);\r\n }, [filter]);\r\n\r\n const format = (date: Moment) => {\r\n if (!date) {\r\n return '';\r\n }\r\n return utc(date).format(DateUtcFormat);\r\n };\r\n\r\n const pendingMinValue = pendingFilter?.parameters[0].value\r\n ? parseUtcDate(pendingFilter?.parameters[0].value).diff(now, 'days') : null;\r\n const pendingMaxValue = pendingFilter?.parameters[1].value\r\n ? parseUtcDate(pendingFilter?.parameters[1].value).diff(now, 'days') : null;\r\n const minValue = filter?.parameters[0].value\r\n ? parseUtcDate(filter?.parameters[0].value).diff(now, 'days') : null;\r\n const maxValue = filter?.parameters[1].value\r\n ? parseUtcDate(filter?.parameters[1].value).diff(now, 'days') : null;\r\n\r\n return (\r\n {\r\n const instant = DefaultTZUtcNow;\r\n setNow(instant);\r\n setPendingFilter({\r\n ...operation,\r\n // expiration date is always set to midnight, so we have to set filter values to midnight as well\r\n parameters: [\r\n {\r\n ...operation.parameters[0],\r\n value: min ? format(instant.clone().add(min, 'days').endOf('day').add(1, 'seconds')) : operation?.parameters[0].value,\r\n },\r\n {\r\n ...operation.parameters[1],\r\n value: max ? format(instant.clone().add(max, 'days').endOf('day').add(1, 'seconds')) : operation?.parameters[1].value,\r\n },\r\n ],\r\n });\r\n }}\r\n onSubmit={() => setFilter(pendingFilter)}\r\n onClear={() => { setFilter(null); setPendingFilter(null); setSort(null); }}\r\n FilterComponent={IntegerInputFilter}\r\n buttonText={translate('common:submit')}\r\n clearText={translate('common:clear')}\r\n sortAscText={translate('common:sort-number-asc')}\r\n sortDescText={translate('common:sort-number-desc')}\r\n order={mapOrder(sort)}\r\n onOrderChange={(o) => setSort(unmapOrder(o))}\r\n >\r\n {children}\r\n \r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Moment, utc } from 'moment-timezone';\r\n\r\nimport { FilterableHeader } from '@shift/design-system';\r\nimport {\r\n useFieldSort, useFieldFilter, Operation,\r\n mapOrder, unmapOrder, Field, revertOrder,\r\n} from 'src/libs/filters';\r\nimport { translate } from 'src/utils/forms';\r\nimport { DateUtcFormat, DefaultTZNow } from 'src/constants';\r\nimport { parseUtcDate } from 'src/utils';\r\nimport { IntegerInputFilter } from './IntegerInputFilter';\r\n\r\n\r\nexport const DaysSinceFilter = ({\r\n children, field, operation,\r\n}: { field: Field; operation: Operation; children: React.ReactNode }) => {\r\n const [sort, setSort] = useFieldSort(field);\r\n const [filter, setFilter] = useFieldFilter(field);\r\n const [now, setNow] = useState(DefaultTZNow);\r\n\r\n const [pendingFilter, setPendingFilter] = useState(filter);\r\n\r\n const format = (date: Moment) => {\r\n if (!date) {\r\n return '';\r\n }\r\n return utc(date).format(DateUtcFormat);\r\n };\r\n\r\n useEffect(() => {\r\n setPendingFilter(filter);\r\n }, [filter]);\r\n\r\n\r\n const pendingMinValue = pendingFilter?.parameters[1].value\r\n ? now.diff(parseUtcDate(pendingFilter?.parameters[1].value), 'days') + 1 : null;\r\n const pendingMaxValue = pendingFilter?.parameters[0].value\r\n ? now.diff(parseUtcDate(pendingFilter?.parameters[0].value), 'days') : null;\r\n const minValue = filter?.parameters[1].value\r\n ? now.diff(parseUtcDate(filter?.parameters[1].value), 'days') + 1 : null;\r\n const maxValue = filter?.parameters[0].value\r\n ? now.diff(parseUtcDate(filter?.parameters[0].value), 'days') : null;\r\n\r\n return (\r\n {\r\n const instant = DefaultTZNow;\r\n setNow(instant);\r\n setPendingFilter({\r\n ...operation,\r\n parameters: [\r\n {\r\n ...operation.parameters[0],\r\n value: max\r\n ? format(instant.clone().subtract(max, 'days').subtract(1, 'seconds'))\r\n : operation?.parameters[0].value,\r\n },\r\n {\r\n ...operation.parameters[1],\r\n value: min\r\n ? format(instant.clone().subtract(min - 1, 'days').subtract(1, 'seconds'))\r\n : operation?.parameters[1].value,\r\n },\r\n ],\r\n });\r\n }}\r\n onSubmit={() => setFilter(pendingFilter)}\r\n onClear={() => { setFilter(null); setPendingFilter(null); setSort(null); }}\r\n FilterComponent={IntegerInputFilter}\r\n buttonText={translate('common:submit')}\r\n clearText={translate('common:clear')}\r\n sortAscText={translate('common:sort-number-asc')}\r\n sortDescText={translate('common:sort-number-desc')}\r\n order={revertOrder(mapOrder(sort))}\r\n onOrderChange={(o) => setSort(unmapOrder(revertOrder(o)))}\r\n >\r\n {children}\r\n \r\n );\r\n};\r\n","import React, { useMemo, useState, useEffect } from 'react';\r\n\r\nimport {\r\n SelectInputOption, FilterableHeaderSide, FilterableHeader, SelectSearchFilter, CheckboxOptions,\r\n} from '@shift/design-system';\r\nimport { translate } from '@gears/translations';\r\n\r\nimport {\r\n useFieldFilter, Field, ParameterType, Operation, SearchOperationType,\r\n} from '../../../libs/filters';\r\n\r\nconst TRUE = 'true';\r\nconst FALSE = 'false';\r\nconst StringBoolean = [TRUE, FALSE] as const;\r\ntype StringBoolean = typeof StringBoolean[number]\r\n\r\nconst optionOperationMap = {\r\n [TRUE]: SearchOperationType.Equal,\r\n [FALSE]: SearchOperationType.NotEqual,\r\n};\r\n\r\nconst filterToOptions = (filter: Operation | null): StringBoolean | null => {\r\n switch (filter?.type) {\r\n case SearchOperationType.Equal:\r\n return TRUE;\r\n case SearchOperationType.NotEqual:\r\n return FALSE;\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\nfunction optionsToFilter(\r\n value: string,\r\n checkedOption: StringBoolean | null,\r\n parameterType: ParameterType,\r\n): Operation | null {\r\n return value && checkedOption && parameterType\r\n ? {\r\n name: '',\r\n parameters: [{ name: '', type: parameterType, value }],\r\n type: optionOperationMap[checkedOption],\r\n }\r\n : null;\r\n}\r\n\r\nexport interface EqualValueBooleanFilterProps {\r\n field: Field;\r\n children: React.ReactNode;\r\n parameterType: ParameterType;\r\n value: string;\r\n side?: FilterableHeaderSide;\r\n}\r\n\r\nexport const EqualValueBooleanFilter = ({\r\n field, children, side, parameterType, value,\r\n}: EqualValueBooleanFilterProps) => {\r\n const options: SelectInputOption[] = useMemo(() => [\r\n { label: translate('common:yes'), value: TRUE },\r\n { label: translate('common:no'), value: FALSE },\r\n ], []);\r\n\r\n const [filter, setFilter] = useFieldFilter(field);\r\n const [pendingFilter, setPendingFilter] = useState(null);\r\n\r\n const checkboxOptions: CheckboxOptions = useMemo(\r\n () => (options ? options.reduce((p, c) => ({ ...p, [c.value]: { labelName: c.label } }), {}) : {}), [options],\r\n );\r\n\r\n useEffect(() => {\r\n if (checkboxOptions) {\r\n const newValue = filterToOptions(filter);\r\n setPendingFilter(newValue);\r\n }\r\n }, [filter, checkboxOptions]);\r\n\r\n return (\r\n setPendingFilter((o[1] ?? o[0]) as StringBoolean)}\r\n onSubmit={() => setFilter(optionsToFilter(value, pendingFilter, parameterType))}\r\n onClear={() => { setFilter(null); setPendingFilter(null); }}\r\n FilterComponent={SelectSearchFilter}\r\n buttonText={translate('common:submit')}\r\n clearText={translate('common:clear')}\r\n deselectAllText={translate('common:none')}\r\n sortable={false}\r\n >\r\n {children}\r\n \r\n );\r\n};\r\n","import React, { ReactElement } from 'react';\r\nimport { Widgetter } from '@shift/transform';\r\nimport { FilterProps, Filter } from '../../../libs/filters';\r\nimport { LiabilityFilter, LiabilityFilterProps } from '../../../components/Table/Filters';\r\n\r\nexport const LiabilityFilterWidgetterFactory:\r\n (side?: LiabilityFilterProps['side']) => Widgetter = (side) => ({\r\n transform: ({ children }, options) => (options ? (\r\n \r\n {children}\r\n \r\n ) : children as ReactElement),\r\n });\r\n\r\nexport const LiabilityFilterWidgetter = LiabilityFilterWidgetterFactory();\r\n","import React, { useMemo } from 'react';\r\n\r\nimport { SelectInputOption } from '@shift/design-system';\r\n\r\nimport { ParameterType } from 'src/libs/filters';\r\nimport { translate } from 'src/utils/forms';\r\nimport { SelectFilter, SelectFilterProps } from './SelectFilter';\r\n\r\nexport type LiabilityFilterProps = Omit & {flipValues?: boolean};\r\n\r\nexport const LiabilityFilter = ({\r\n operation, field, children, side,\r\n}: LiabilityFilterProps) => {\r\n const options: SelectInputOption[] = useMemo(() => [\r\n { label: '0%', value: '0' },\r\n { label: '50%', value: '50' },\r\n { label: '100%', value: '100' },\r\n { label: translate('common:NA'), value: '' },\r\n ], []);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n","import React, { ReactElement } from 'react';\r\nimport { Widgetter } from '@shift/transform';\r\nimport { FilterProps, Filter } from '../../../libs/filters';\r\nimport { TextFilter, TextFilterProps } from '../../../components/Table/Filters';\r\n\r\nexport const TextFilterWidgetterFactory:\r\n (side?: TextFilterProps['side']) => Widgetter = (side) => ({\r\n transform: ({ children }, options) => (options ? (\r\n \r\n {children}\r\n \r\n ) : children as ReactElement),\r\n });\r\n\r\nexport const TextFilterWidgetter = TextFilterWidgetterFactory();\r\n","import React, { ReactElement } from 'react';\r\nimport { Widgetter } from '@shift/transform';\r\nimport { FilterProps, Filter } from 'src/libs/filters';\r\nimport { DateFilter } from 'src/components/Table/Filters';\r\n\r\nexport const DateFilterWidgetter: Widgetter = {\r\n transform: ({ children }, options) => (options ? (\r\n \r\n {children}\r\n \r\n ) : children as ReactElement),\r\n};\r\n","import React, { ReactElement } from 'react';\r\nimport { Widgetter } from '@shift/transform';\r\nimport { FilterProps, Filter } from '../../../libs/filters';\r\nimport { BooleanFilter, BooleanFilterProps } from '../../../components/Table/Filters';\r\n\r\nexport const BooleanFilterWidgetterFactory:\r\n (side?: BooleanFilterProps['side']) => Widgetter = (side) => ({\r\n transform: ({ children }, options) => (options ? (\r\n \r\n {children}\r\n \r\n ) : children as ReactElement),\r\n });\r\n\r\nexport const BooleanFilterWidgetter = BooleanFilterWidgetterFactory();\r\n","import React, { ReactElement } from 'react';\r\nimport { Widgetter } from '@shift/transform';\r\nimport { FilterProps, Filter } from 'src/libs/filters';\r\nimport { DaysLeftFilter } from 'src/components/Table/Filters';\r\n\r\nexport const DaysLeftFilterWidgetter: Widgetter = {\r\n transform: ({ children }, options) => (options ? (\r\n \r\n {children}\r\n \r\n ) : children as ReactElement),\r\n};\r\n","import React, { ReactElement } from 'react';\r\nimport { Widgetter } from '@shift/transform';\r\nimport { FilterProps, Filter } from 'src/libs/filters';\r\nimport { DaysSinceFilter } from 'src/components/Table/Filters';\r\n\r\nexport const DaysSinceFilterWidgetter: Widgetter = {\r\n transform: ({ children }, options) => (options ? (\r\n \r\n {children}\r\n \r\n ) : children as ReactElement),\r\n};\r\n","import React, { ReactElement } from 'react';\r\nimport { Widgetter } from '@shift/transform';\r\nimport { FilterProps, Filter } from 'src/libs/filters';\r\nimport { IntegerFilter } from 'src/components/Table/Filters';\r\n\r\nexport const IntegerFilterWidgetter: Widgetter = {\r\n transform: ({ children }, options) => (options ? (\r\n \r\n {children}\r\n \r\n ) : children as ReactElement),\r\n};\r\n","import { TextFilterWidgetter, TextFilterWidgetterFactory } from './TextFilterWidget';\r\nimport { DateFilterWidgetter } from './DateFilterWidget';\r\nimport { BooleanFilterWidgetter, BooleanFilterWidgetterFactory } from './BooleanFilterWidget';\r\nimport { EqualConditionBooleanFilterWidgetterFactory } from './EqualConditionBooleanFilterWidget';\r\nimport { EnumFilterWidgetterFactory } from './EnumFilterWidgettterFactory';\r\nimport { DaysLeftFilterWidgetter } from './DaysLeftFilterWidget';\r\nimport { DaysSinceFilterWidgetter } from './DaysSinceFilterWidget';\r\nimport { LiabilityFilterWidgetter } from './LiabilityFilterWidget';\r\nimport { IntegerFilterWidgetter } from './IntegerFilterWidget';\r\n\r\nexport const FilterFactories = {\r\n EnumFilterWidgetterFactory,\r\n BooleanFilterWidgetterFactory,\r\n TextFilterWidgetterFactory,\r\n EqualConditionBooleanFilterWidgetterFactory,\r\n};\r\n\r\nexport const Filter = {\r\n ...FilterFactories,\r\n TextFilterWidgetter,\r\n DateFilterWidgetter,\r\n BooleanFilterWidgetter,\r\n DaysLeftFilterWidgetter,\r\n DaysSinceFilterWidgetter,\r\n LiabilityFilterWidgetter,\r\n IntegerFilterWidgetter,\r\n};\r\n","import React, { ReactElement } from 'react';\r\nimport { Widgetter } from '@shift/transform';\r\nimport { FilterProps, Filter } from '../../../libs/filters';\r\nimport { EnumFilter, EnumFilterProps } from '../../../components/Table/Filters';\r\n\r\nexport const EnumFilterWidgetterFactory:\r\n (enumName: string, side?: EnumFilterProps['side']) => Widgetter = (enumName, side) => ({\r\n transform: ({ children }, options) => (options ? (\r\n \r\n {children}\r\n \r\n ) : children as ReactElement),\r\n });\r\n","import React, { ReactElement } from 'react';\r\nimport { Widgetter } from '@shift/transform';\r\nimport { FilterProps, Filter, ParameterType } from '../../../libs/filters';\r\nimport { EqualValueBooleanFilterProps, EqualValueBooleanFilter } from '../../../components/Table/Filters';\r\n\r\nexport const EqualConditionBooleanFilterWidgetterFactory: (\r\n value: string,\r\n parameterType: ParameterType,\r\n side?: EqualValueBooleanFilterProps['side']\r\n ) => Widgetter = (\r\n value,\r\n parameterType,\r\n side,\r\n ) => ({\r\n transform: ({ children }, options) => (options ? (\r\n \r\n {children}\r\n \r\n ) : (\r\n (children as ReactElement)\r\n )),\r\n });\r\n","import React, { useContext } from 'react';\r\nimport { Widgetter } from '@shift/transform';\r\nimport { ArrowDown, ArrowUp } from '@shift/icons';\r\nimport {\r\n StyledText, Icon, Grid, GridItem, ThemeContext,\r\n} from '@shift/design-system';\r\nimport { translate } from '@gears/translations';\r\n\r\nexport interface TrajectoryIconWidgetProps {\r\n currentNcd: number;\r\n renewalNcd: number;\r\n}\r\n\r\nconst ValueWidget = ({ currentNcd, renewalNcd }: TrajectoryIconWidgetProps) => {\r\n const { colors } = useContext(ThemeContext);\r\n const isEqual = currentNcd === renewalNcd;\r\n const isRenewalGreaterThanCurrent = currentNcd && renewalNcd && currentNcd < renewalNcd;\r\n const Arrow = isRenewalGreaterThanCurrent ? ArrowUp : ArrowDown;\r\n return (\r\n \r\n \r\n {renewalNcd !== undefined ? (\r\n \r\n {`${renewalNcd} %`}\r\n \r\n )\r\n : (\r\n \r\n {translate('ncd:not-available')}\r\n \r\n\r\n )}\r\n \r\n {!!currentNcd && !!renewalNcd && !isEqual && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n );\r\n};\r\nexport const TrajectoryIconWidget: Widgetter = {\r\n transform: ValueWidget,\r\n};\r\n","import React, { useContext } from 'react';\r\nimport { Widgetter } from '@shift/transform';\r\nimport { StyledText, ThemeContext } from '@shift/design-system';\r\nimport { translate } from '@gears/translations';\r\n\r\nexport interface PercentageWidgetProps {\r\n currentNcd: number;\r\n}\r\n\r\nconst ValueWidget = ({ children }: { children: PercentageWidgetProps }) => {\r\n const { colors } = useContext(ThemeContext);\r\n return (\r\n children ? (\r\n \r\n {`${children} %`}\r\n \r\n )\r\n : (\r\n \r\n {translate('ncd:not-available')}\r\n \r\n\r\n )\r\n );\r\n};\r\n\r\nconst ValueWidgetExpandableRow = ({ currentNcd }: PercentageWidgetProps) => {\r\n const { colors } = useContext(ThemeContext);\r\n return (\r\n currentNcd !== undefined ? (\r\n \r\n {`${currentNcd} %`}\r\n \r\n )\r\n : (\r\n \r\n {translate('ncd:not-available')}\r\n \r\n\r\n )\r\n );\r\n};\r\n\r\nexport const PercentageWidgetExpandableRow: Widgetter = {\r\n transform: ValueWidgetExpandableRow,\r\n};\r\n\r\nexport const PercentageWidget: Widgetter<{ children: PercentageWidgetProps }> = {\r\n transform: ValueWidget,\r\n};\r\n","/* eslint-disable react/no-array-index-key */\r\nimport React from 'react';\r\nimport { Widgetter } from '@shift/transform';\r\n\r\nexport interface MultiLineTextWidgetterProps {\r\n children: string;\r\n}\r\n\r\nconst MultiLineTextWidget = ({ children }: MultiLineTextWidgetterProps) => {\r\n const text = children.split('\\n');\r\n const isMultiLine = text.length > 1;\r\n\r\n return (\r\n <>\r\n {isMultiLine ? text.map((line, index) =>
{line.trim()}
) : children}\r\n \r\n );\r\n};\r\nconst MultiLineWidget = ({ children }: { children: any[] }) => (\r\n <>\r\n {Array.isArray(children) ? children.map((line, index) =>
{line.trim()}
) : children}\r\n \r\n);\r\n\r\nexport const MultiLineTextWidgetter: Widgetter = {\r\n transform: MultiLineTextWidget,\r\n};\r\nexport const MultiLineWidgetter: Widgetter<{ children: any[] }> = {\r\n transform: MultiLineWidget,\r\n};\r\n","import React from 'react';\r\nimport { StyledText } from '@shift/design-system';\r\nimport { Widgetter } from '@shift/transform';\r\n\r\nconst MaxWidthTextWidget = ({ children }: { children: string[] }) => (\r\n
\r\n \r\n {children}\r\n \r\n
\r\n);\r\nexport const MaxWidthTextWidgetter: Widgetter<{ children: string[] }> = {\r\n transform: MaxWidthTextWidget,\r\n};\r\n","import React, { useContext } from 'react';\r\nimport styled from 'styled-components';\r\nimport { StyledText, ThemeContext } from '@shift/design-system';\r\nimport { Widgetter } from '@shift/transform';\r\n\r\nconst Text = styled(StyledText)`\r\n white-space: pre-line;\r\n max-width:570px;\r\n overflow-x: auto;\r\n display:flex;\r\n`;\r\n\r\nconst TextInlineWidget = ({ children }: { children: string[] }) => {\r\n const { colors } = useContext(ThemeContext);\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\nexport const TextInlineWidgetter: Widgetter<{ children: string[] }> = {\r\n transform: TextInlineWidget,\r\n};\r\n","import { TextWidgetter } from './TextWidget';\r\nimport { NoopWidgetter } from './NoopWidget';\r\nimport { CardWidget } from './CardWidget';\r\nimport { SelectWidgetter } from './SelectWidget';\r\nimport { LinksWidgetter } from './LinksWidget';\r\nimport { DownloadWidgetter } from './DownloadWidget';\r\nimport { DocumentLinkWidgetter } from './DocumentLinkWidget';\r\nimport { ThumbnailWidgetter } from './ThumbnailWidget';\r\nimport { MultiWidgetterFactory } from './MultiWidget';\r\nimport { LinksBillableActionWidgetter } from './LinksBillableActionWidget';\r\nimport { LinksExplorationSearchWidgetter } from './LinksExplorationSearchWidgetter';\r\nimport { Filter } from './filters';\r\nimport { TrajectoryIconWidget } from './TrajectoryIconWidget';\r\nimport { PercentageWidget, PercentageWidgetExpandableRow } from './PercentageWidget';\r\nimport { MultiLineTextWidgetter, MultiLineWidgetter } from './MultiLineTextWidget';\r\nimport { MaxWidthTextWidgetter } from './MaxWidthTextWidget';\r\nimport { TextInlineWidgetter } from './TextInlineWidget';\r\n\r\nexport const Widgetters = {\r\n ...CardWidget,\r\n DownloadWidgetter,\r\n DocumentLinkWidgetter,\r\n LinksWidgetter,\r\n NoopWidgetter,\r\n SelectWidgetter,\r\n TextWidgetter,\r\n ThumbnailWidgetter,\r\n LinksBillableActionWidgetter,\r\n LinksExplorationSearchWidgetter,\r\n MultiWidgetterFactory,\r\n Filter,\r\n TrajectoryIconWidget,\r\n PercentageWidget,\r\n PercentageWidgetExpandableRow,\r\n MultiLineTextWidgetter,\r\n MultiLineWidgetter,\r\n MaxWidthTextWidgetter,\r\n TextInlineWidgetter,\r\n};\r\n","import React from 'react';\r\nimport { Widgetter } from '@shift/transform';\r\n\r\nexport function MultiWidgetterFactory(widgetter: Widgetter): Widgetter {\r\n return {\r\n transform: (params) => (\r\n <>\r\n {\r\n params.map((param) => (\r\n \r\n { widgetter.transform(param) }\r\n \r\n ))\r\n }\r\n \r\n ),\r\n };\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport moment from 'moment-timezone';\r\nimport { get } from 'object-path';\r\nimport {\r\n Location, COUNTRIES_INFOS,\r\n TimeEntry, SelectInputOption, FileInfo, PhoneNumber,\r\n} from '@shift/design-system';\r\n\r\nimport { translate } from '@gears/translations';\r\nimport {\r\n Formatter, AnyType, EnumValue,\r\n} from 'src/types';\r\nimport {\r\n DateOffsetFormat, DateFormat, otherEnum, phoneTypeEnum, phoneType, DefaultTimezone, unknownEnum, DateUtcFormat,\r\n} from 'src/constants';\r\nimport { isNumber } from 'util';\r\nimport { parseOffsetDate } from 'src/utils/index';\r\nimport {\r\n formatOffsetDateTime, FormatEnum,\r\n isNoneEnum,\r\n mergeDateTime,\r\n} from './utils';\r\nimport { apiConfig } from '../../config';\r\nimport { getStateTimezone } from './enumValues';\r\nimport { vehicleDrivingLicenseClasses } from '../mapping/mapReportStateToGears/constants/drivingLicenseType';\r\nimport { mapDrivingLicenceClass } from '../mapping/mapReportStateToGears/mappers';\r\n\r\n\r\nexport const VoidFormatter: Formatter = {};\r\n\r\nexport const getOffsetDateFormatter = (\r\n timeField: string | null = null,\r\n dateTimeFormat: string = DateOffsetFormat,\r\n dateFormat: string = DateFormat,\r\n): Formatter => ({\r\n additionalSources: timeField ? { time: timeField } : undefined,\r\n format: (value: string) => parseOffsetDate(value, dateTimeFormat).format(dateFormat),\r\n transform: ({ value, additionalData }) => formatOffsetDateTime(value, timeField ? additionalData.time : null, dateTimeFormat),\r\n});\r\n\r\nexport const DrivingLicenseTypeFormatter: Formatter = {\r\n additionalSources: {\r\n drivingLicenseClass: 'ownVehicle.driverLicence.licenseTypeSourceName',\r\n },\r\n transform: ({ additionalData }: {\r\n additionalData:\r\n {\r\n drivingLicenseClass: { label: string; value: string };\r\n };\r\n }) => mapDrivingLicenceClass(additionalData.drivingLicenseClass.label),\r\n};\r\n\r\nexport const TimeFormatter: Formatter = {\r\n format: (value: string): TimeEntry | undefined => {\r\n if (value) {\r\n const date = moment(value, DateOffsetFormat);\r\n\r\n return {\r\n hour: date.hour(),\r\n minute: date.minute(),\r\n };\r\n }\r\n\r\n return undefined;\r\n },\r\n};\r\n\r\n\r\nexport const FileWithTypeFormatter: Formatter = {\r\n transform: ({ value: files }: { value: FileInfo[] }) => {\r\n if (!files?.length) {\r\n return undefined;\r\n }\r\n const docs = files?.map((file) => ({\r\n document: {\r\n id: file.id,\r\n documentName: file.name,\r\n },\r\n category: file.type?.value,\r\n }));\r\n return docs;\r\n },\r\n};\r\n\r\nexport interface LocationBackendInfo {\r\n fullAddress?: string;\r\n country?: any; // Enum\r\n postCode?: string;\r\n latitude?: number;\r\n longitude?: number;\r\n}\r\n\r\nexport const LocationFormatter: Formatter = {\r\n format: (value: LocationBackendInfo): Location | undefined => (value && value.fullAddress && value.latitude && value.longitude ? ({\r\n fullAddress: value.fullAddress,\r\n country: value.country?.Name,\r\n postCode: value.postCode,\r\n coordinates: {\r\n lat: value.latitude,\r\n lng: value.longitude,\r\n },\r\n }) : undefined),\r\n transform: ({ value }): LocationBackendInfo => ({\r\n fullAddress: value?.fullAddress,\r\n country: value?.country ? FormatEnum('Country', (value.country as string).replace(' ', '')) : undefined,\r\n postCode: value?.postCode,\r\n latitude: isNumber(value?.coordinates?.lat) ? value?.coordinates?.lat : value?.coordinates?.lat(),\r\n longitude: isNumber(value?.coordinates?.lng) ? value?.coordinates?.lng : value?.coordinates?.lng(),\r\n }),\r\n};\r\n\r\nexport interface PhoneNumberBackendInfo extends Omit {\r\n phoneNumberType: string;\r\n countryCode?: string;\r\n}\r\n\r\nexport const PhoneNumberFormatter: Formatter = {\r\n format: (value?: PhoneNumberBackendInfo): PhoneNumber | undefined => {\r\n if (value) {\r\n const phoneNumber: PhoneNumber = {\r\n number: value.number,\r\n };\r\n if (value.countryCode) {\r\n phoneNumber.dialCode = value.countryCode;\r\n phoneNumber.countryCode = COUNTRIES_INFOS.find((r) => r.dialCode === `+${value.countryCode}`)?.code;\r\n }\r\n return phoneNumber;\r\n }\r\n return undefined;\r\n },\r\n transform: ({ value }: { value: PhoneNumber }): PhoneNumberBackendInfo => ({\r\n number: value.number,\r\n countryCode: value.dialCode,\r\n phoneNumberType: `${phoneTypeEnum}.${phoneType}`,\r\n }),\r\n};\r\n\r\nexport interface DrivingLicenseBackendInfo {\r\n startDate: string;\r\n endDate?: string;\r\n licenseTypeSourceName: string;\r\n id: string;\r\n licenseType: string;\r\n licenseValidity: string;\r\n licenseValiditySourceName: string;\r\n}\r\nexport const DrivingLicenseFormatter: Formatter = {\r\n // eslint-disable-next-line arrow-body-style\r\n format: (value?: DrivingLicenseBackendInfo): DrivingLicenseBackendInfo | undefined => {\r\n if (value) { return value; }\r\n return undefined;\r\n },\r\n transform: ({ value }: { value: DrivingLicenseBackendInfo }): DrivingLicenseBackendInfo => ({\r\n startDate: value.startDate,\r\n endDate: value.endDate,\r\n licenseTypeSourceName: value.licenseTypeSourceName,\r\n id: value.id,\r\n licenseType: value.licenseType,\r\n licenseValiditySourceName: value.licenseValiditySourceName,\r\n licenseValidity: value.licenseValidity,\r\n }),\r\n};\r\n\r\nexport const DrivingLicenseClassFormatter: Formatter = {\r\n // eslint-disable-next-line arrow-body-style\r\n format: (value?: string): string | undefined => {\r\n if (value) { return translate(`enums:DrivingLicenseSourceType.${value}`); }\r\n return undefined;\r\n },\r\n transform: ({ value }): string => vehicleDrivingLicenseClasses[value],\r\n};\r\nexport const RadioFormatter: Formatter = {\r\n format: (value: EnumValue): string | undefined => (value ? `${value.Type}.${value.Name}` : undefined),\r\n transform: ({ value }): string => value,\r\n};\r\n\r\nexport const EnumFormatter: Formatter = {\r\n format: (value: EnumValue): SelectInputOption | undefined => {\r\n if (value) {\r\n const enumValue = value.Name !== '0' ? `${value.Type}.${value.Name}` : otherEnum;\r\n return {\r\n value: enumValue,\r\n label: translate(`enums:${enumValue}`, { defaultValue: value.Name }),\r\n };\r\n }\r\n return undefined;\r\n },\r\n transform: ({ value: option }): string => ((!option || isNoneEnum(option.value)) ? undefined : option.value),\r\n};\r\n\r\nexport const CheckboxesToEnumFormatter: Formatter = {\r\n transform: ({ value }) => {\r\n if (value) {\r\n const values = value.split('.');\r\n const reasonEnumIdentifier = values[0];\r\n const reasonEnumValueId = values[1];\r\n return {\r\n reasonEnumIdentifier,\r\n reasonEnumValueId: parseInt(reasonEnumValueId, 10),\r\n };\r\n }\r\n return undefined;\r\n },\r\n};\r\n\r\nexport const BackendListFormatter: Formatter = {\r\n format: (value: number): SelectInputOption | undefined => {\r\n if (value) {\r\n return {\r\n value,\r\n label: '',\r\n };\r\n }\r\n return undefined;\r\n },\r\n transform: ({ value: option }): string => ((!option || isNoneEnum(option.value)) ? undefined : option.value),\r\n};\r\n\r\nexport const PoliceStationFormatter: Formatter = {\r\n format: ({ id, recordOwner }: { id: number; recordOwner: EnumValue }): SelectInputOption | undefined => {\r\n if (!id) {\r\n return undefined;\r\n }\r\n\r\n return {\r\n value: (recordOwner.Name === 'SHIFT') ? 0 : id,\r\n label: '',\r\n };\r\n },\r\n transform: ({ value: option }) => ({\r\n id: (!option || isNoneEnum(option.value)) ? undefined : option.value,\r\n }),\r\n};\r\n\r\nexport const EnumIdentifierValuePairFormatter: Formatter = {\r\n format: (value): SelectInputOption | undefined => {\r\n if (!value) {\r\n return undefined;\r\n }\r\n return { value: `${value.identifier}.${value?.valueId}`, label: '' };\r\n },\r\n transform: ({ value: option }) => {\r\n const [identifier, valueId] = option.value.toString().split('.');\r\n return { identifier, valueId: parseInt(valueId, 10) };\r\n },\r\n};\r\n\r\nexport const ListEmptyFormatter: Formatter = {\r\n format: (value: AnyType[]): boolean => (value ? value.length > 0 : false),\r\n};\r\n\r\nexport const getFileFormatter = (isMulti = false): Formatter => ({\r\n format: (values: any): FileInfo[] | undefined => ((!values || Array.isArray(values)) ? values : [values])?.map((value: any) => ({\r\n id: value.id,\r\n name: value.name,\r\n size: value.size,\r\n src: `${apiConfig.documentUri}/${value.id}`,\r\n thumbnailSrc: `${apiConfig.documentPreviewUri}/${value.id}`,\r\n })),\r\n transform: ({ value: files }: { value: FileInfo[] }) => {\r\n if (!files?.length) {\r\n return undefined;\r\n }\r\n const docs = files?.map((file) => ({\r\n id: file.id,\r\n name: file.name,\r\n }));\r\n return isMulti ? docs : docs[0];\r\n },\r\n});\r\n\r\nexport interface EnumNoTypeBackendInfo {\r\n type?: EnumValue;\r\n noType?: boolean;\r\n}\r\n\r\nconst EnumNoTypeFormatterFactory: (noTypeEnum: string) => Formatter = (noTypeEnum: string) => ({\r\n format: (value: EnumNoTypeBackendInfo): SelectInputOption | undefined => {\r\n if (value && (value.type || value.noType)) {\r\n const enumValue = value.noType ? noTypeEnum : `${value.type?.Type}.${value.type?.Name}`;\r\n return {\r\n value: enumValue,\r\n label: translate(`enums:${enumValue}`, { defaultValue: value.type?.Name }),\r\n };\r\n }\r\n return undefined;\r\n },\r\n transform: ({ value: option }): EnumNoTypeBackendInfo | undefined => {\r\n if (!option) {\r\n return undefined;\r\n }\r\n return isNoneEnum(option.value) ? { noType: true } : { type: option.value };\r\n },\r\n});\r\n\r\n\r\nexport const OtherNoEnumTypeFormatter = EnumNoTypeFormatterFactory(otherEnum);\r\nexport const UnknownNoEnumTypeFormatter = EnumNoTypeFormatterFactory(unknownEnum);\r\n\r\nexport const obfuscateNationalIdentifier = (ident: string) => `${ident[0]}${ident.slice(1, -4).replace(/./g, 'X')}${ident.slice(-4)}`;\r\n\r\nexport const AccidentDateFormatter: Formatter = {\r\n additionalSources: {\r\n time: 'generalInformation.time',\r\n state: 'generalInformation.accidentAddress.areaOrState',\r\n },\r\n format: (value: string, formData?: AnyType) => {\r\n const accidentTimezone = formData ? getStateTimezone(get(formData, 'generalInformation.accidentAddress.areaOrState')) : null;\r\n return moment.tz(value, DateOffsetFormat, accidentTimezone ?? DefaultTimezone).format(DateFormat);\r\n },\r\n transform: ({ value, additionalData }: { value: string; additionalData: { time: TimeEntry; state: SelectInputOption } }) => {\r\n const accidentTimezone = getStateTimezone(additionalData.state?.value?.toString());\r\n return mergeDateTime(value, additionalData.time, accidentTimezone ?? DefaultTimezone)?.format(DateOffsetFormat);\r\n },\r\n};\r\n\r\nexport const AccidentTimeFormatter: Formatter = {\r\n additionalSources: {\r\n time: 'generalInformation.time',\r\n state: 'generalInformation.accidentAddress.areaOrState',\r\n },\r\n format: (value: string, formData?: AnyType) => {\r\n const accidentTimezone = formData ? getStateTimezone(get(formData, 'generalInformation.accidentAddress.areaOrState')) : null;\r\n const date = moment.tz(value, DateOffsetFormat, accidentTimezone ?? DefaultTimezone);\r\n if (!date) return undefined;\r\n return {\r\n hour: date.hour(),\r\n minute: date.minute(),\r\n };\r\n },\r\n transform: ({ value, additionalData }: { value: TimeEntry; additionalData: { date: string; state: SelectInputOption } }) => {\r\n const accidentTimezone = getStateTimezone(additionalData.state?.value?.toString());\r\n return mergeDateTime(additionalData.date, value, accidentTimezone ?? DefaultTimezone)?.format(DateOffsetFormat);\r\n },\r\n};\r\nexport const FirstRegistrationDateTimeFormatter: Formatter = {\r\n format: (value: string) => {\r\n if (value) { return value; }\r\n return undefined;\r\n },\r\n transform: ({ value }: { value: string }) => {\r\n const firstRegistrationDate = moment.utc(value, DateUtcFormat);\r\n return `${firstRegistrationDate.format(DateUtcFormat)}`;\r\n },\r\n};\r\nexport const PurchaseDateFormatter: Formatter = {\r\n additionalSources: {\r\n time: 'ownVehicle.time',\r\n state: 'generalInformation.accidentAddress.areaOrState',\r\n },\r\n format: (value: string) => {\r\n const dateUtc = moment.utc(value, DateUtcFormat);\r\n if (!dateUtc) return undefined;\r\n const result = dateUtc.tz(DefaultTimezone).format(DateFormat);\r\n return result;\r\n },\r\n transform: ({ value, additionalData }: { value: string; additionalData: { time: TimeEntry; state: SelectInputOption } }) => {\r\n const sgTime = mergeDateTime(value, additionalData.time, DefaultTimezone);\r\n return sgTime?.utc().format(DateUtcFormat);\r\n },\r\n};\r\n\r\nexport const PurchaseTimeFormatter: Formatter = {\r\n additionalSources: {\r\n time: 'ownVehicle.time',\r\n state: 'generalInformation.accidentAddress.areaOrState',\r\n },\r\n format: (value: string) => {\r\n const dateUtc = moment.utc(value, DateUtcFormat);\r\n if (!dateUtc) return undefined;\r\n const result = dateUtc.tz(DefaultTimezone);\r\n\r\n return {\r\n hour: result.format('HH'),\r\n minute: result.format('mm'),\r\n };\r\n },\r\n transform: ({ value, additionalData }: { value: TimeEntry; additionalData: { date: string; state: SelectInputOption } }) => {\r\n const sgTime = mergeDateTime(additionalData.date, value, DefaultTimezone);\r\n return sgTime?.utc().format(DateUtcFormat);\r\n },\r\n};\r\n\r\nexport const UpperCaseFormatter: Formatter = {\r\n format: (value) => value,\r\n transform: ({ value }: { value: string }) => value.toUpperCase(),\r\n};\r\n\r\nexport const TrimWhitespacesFormatter: Formatter = {\r\n format: (value) => value,\r\n transform: ({ value }: { value: string }) => value.trim(),\r\n};\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport moment from 'moment-timezone';\r\nimport { translate } from '@gears/translations';\r\nimport { get } from 'object-path';\r\nimport { PhoneNumber, FileInfo, Location } from '@shift/design-system';\r\n\r\nimport {\r\n AnyType, FormSectionInformation, SingleFieldInformation, ArrayFieldInformation, ValidationError, FieldInformation,\r\n} from 'src/types';\r\nimport { DateFormat, DateFormatRegex } from 'src/constants';\r\nimport { formTranslate } from 'src/utils/forms/utils';\r\nimport { OnChangeFileValue } from '../../components/form/fields/files-upload';\r\n\r\nexport const isRequired = (value: any) => {\r\n if (value === undefined || value === null || (Array.isArray(value) && value.length === 0)) {\r\n return formTranslate('field-mandatory');\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const isRequiredIfCondition = (\r\n condition: (formValues: AnyType) => any,\r\n requiredFunc: (value: any) => any = isRequired,\r\n) => (value: any, formValues: AnyType) => {\r\n if (formValues && condition(formValues)) {\r\n return requiredFunc(value);\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const phoneNumberRequired = (value: PhoneNumber) => {\r\n if (!value?.countryCode || !value?.number) {\r\n return formTranslate('field-mandatory');\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const isValidFile = (value: OnChangeFileValue[]) => {\r\n const hasUploadingFiles = value && value.some && value.some((file) => file.id <= 0);\r\n if (hasUploadingFiles) {\r\n return formTranslate('file-uploading-or-failed');\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const validateIfCondition = (\r\n condition: (formValues: AnyType) => any,\r\n validateFunc: (value: any, formValues: AnyType) => any,\r\n) => (value: any, formValues: AnyType) => {\r\n if (formValues && condition(formValues)) {\r\n return validateFunc(value, formValues);\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const validateListIfCondition = (conditionFieldName: string) => (value: any, formValues: AnyType) => {\r\n if (formValues && get(formValues, conditionFieldName) && (!value || value.length === 0)) {\r\n return 'There should be at least one item';\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const validateListCount = (listFieldName: string, elementLabel: string, offset: number) => (value: any, formValues: AnyType) => {\r\n const list = formValues ? get(formValues, listFieldName) : null;\r\n const countValue = value ? parseInt(value, 10) : 0;\r\n if (list && list.length > countValue - offset) {\r\n return `This field should be greater than the number of ${formTranslate(elementLabel)}s (${list.length + offset})`;\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const validatePassengerListCount = (listFieldName: string) => (value: any, formValues: AnyType) => {\r\n const list = formValues ? get(formValues, listFieldName) : null;\r\n const countValue = value ? parseInt(value, 10) : 0;\r\n const maximumRequiredPassengers = 7;\r\n\r\n const expectedCount = countValue === 0 ? 0 : (countValue - 1); // minus 1 to exclude the driver\r\n const actualCount = list?.length ?? 0;\r\n\r\n if (actualCount > expectedCount) {\r\n return translate('accident-report-form:remove-passengers', { count: actualCount - expectedCount });\r\n }\r\n\r\n const upperBound = Math.min(expectedCount, maximumRequiredPassengers);\r\n if (actualCount < upperBound) {\r\n return translate('accident-report-form:add-passengers', { count: upperBound - actualCount });\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const isValidDate = (value: string) => (\r\n value && (!DateFormatRegex.test(value) || !moment(value, DateFormat).isValid())\r\n ? translate('common:invalid-date')\r\n : undefined\r\n);\r\n\r\nexport const isValidPassDate = (dateOfBirth: string) => (value: any, formValues: AnyType) => {\r\n if (value && (!DateFormatRegex.test(value) || !moment(value, DateFormat).isValid())) {\r\n return translate('common:invalid-date');\r\n }\r\n const formBirthDate = formValues ? get(formValues, dateOfBirth) : null;\r\n const birthDate = moment(formBirthDate, DateFormat);\r\n const passDrivingDate = moment(value, DateFormat);\r\n if (birthDate > passDrivingDate) {\r\n return translate('common:invalid-pass-date');\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const isValidLocation = (value: Location) => (\r\n value && (!value.fullAddress || !value.coordinates || !value.coordinates.lat || !value.coordinates.lng)\r\n ? translate('common:invalid-location')\r\n : undefined\r\n);\r\n\r\nexport const isValidPhoneNumber = (value: PhoneNumber) => (\r\n value?.number && !value.countryCode\r\n ? translate('common:invalid-phone-number')\r\n : undefined\r\n);\r\n\r\nexport const isValidFileWithType = (value: FileInfo[]) => {\r\n if (!value) {\r\n return undefined;\r\n }\r\n const hasUploadingFiles = value.some((file) => file.id <= 0);\r\n if (hasUploadingFiles) {\r\n return formTranslate('file-uploading-or-failed');\r\n }\r\n const errors = value.some((f) => f?.name && !f.type?.value);\r\n return errors ? translate('document:invalid-document-type') : undefined;\r\n};\r\n\r\nexport const isValidCCValue = (value: number) => {\r\n if (!value) {\r\n return undefined;\r\n }\r\n return value < 0 || value > 20000 ? translate('common:invalid-cc') : undefined;\r\n};\r\n\r\n\r\nconst isValidRegexFactory = (regex: RegExp, invalidMessageTranslationKey: string) => (value: string) => {\r\n if (value && !regex.test(value)) {\r\n return translate(invalidMessageTranslationKey);\r\n }\r\n return undefined;\r\n};\r\n\r\n// copy-pasted from https://www.regular-expressions.info/email.html\r\n// eslint-disable-next-line max-len\r\nconst emailRegex = /^[a-z0-9!#$%&'*+/=?^_‘{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_‘{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;\r\nexport const isValidEmail = isValidRegexFactory(emailRegex, 'common:invalid-email');\r\n\r\nconst alphanumericRegex = /^[a-zA-Z0-9]*$/;\r\nexport const isValidAlphanumeric = isValidRegexFactory(alphanumericRegex, 'common:invalid-alpha-numeric');\r\n\r\nexport const isValidLossAmount = (value: number) => {\r\n if (value <= 999999999) {\r\n return undefined;\r\n }\r\n return translate('recovery:invalid-loss-amount');\r\n};\r\n\r\n// shamelessly copy-pasted and adapted from https://codepen.io/liakwee/pen/aGrVbG\r\nexport const isValidNRIC = (value: string) => {\r\n if (!value) {\r\n return undefined;\r\n }\r\n if (value.length !== 9) {\r\n return formTranslate('invalid-nric-length');\r\n }\r\n const icArray = new Array(9);\r\n for (let i = 0; i < 9; i += 1) {\r\n icArray[i] = value.charAt(i);\r\n }\r\n icArray[1] *= 2;\r\n icArray[2] *= 7;\r\n icArray[3] *= 6;\r\n icArray[4] *= 5;\r\n icArray[5] *= 4;\r\n icArray[6] *= 3;\r\n icArray[7] *= 2;\r\n\r\n let weight = 0;\r\n for (let i = 1; i < 8; i += 1) {\r\n weight += parseInt(icArray[i], 10);\r\n }\r\n\r\n let offset;\r\n if (icArray[0] === 'T' || icArray[0] === 'G') {\r\n offset = 4;\r\n } else if (icArray[0] === 'M') {\r\n offset = 3;\r\n } else {\r\n offset = 0;\r\n }\r\n const temp = (offset + weight) % 11;\r\n\r\n const st = ['J', 'Z', 'I', 'H', 'G', 'F', 'E', 'D', 'C', 'B', 'A'];\r\n const fg = ['X', 'W', 'U', 'T', 'R', 'Q', 'P', 'N', 'M', 'L', 'K'];\r\n const m = ['X', 'W', 'U', 'T', 'R', 'Q', 'P', 'N', 'J', 'L', 'K'];\r\n\r\n let theAlpha;\r\n if (icArray[0] === 'S' || icArray[0] === 'T') {\r\n theAlpha = st[temp];\r\n } else if (icArray[0] === 'F' || icArray[0] === 'G') {\r\n theAlpha = fg[temp];\r\n } else if (icArray[0] === 'M') {\r\n theAlpha = m[temp];\r\n }\r\n if (icArray[8] !== theAlpha) {\r\n return formTranslate('invalid-nric');\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const isValidNationalIdentifier = (typeFieldName: string) => (value: any, formValues: AnyType) => {\r\n const typeValue = get(formValues, typeFieldName)?.value;\r\n if (typeValue !== 'NationalIdentifierType.NationalIdentifier') {\r\n return undefined;\r\n }\r\n return isValidNRIC(value);\r\n};\r\n\r\nexport const composeValidators = (...validators: any[]) => (value: any) => validators.reduce(\r\n (error, validator) => error || validator(value),\r\n undefined,\r\n);\r\n\r\nexport const isSectionValid = (errors: AnyType, name: string) => !get(errors, name);\r\n\r\nconst validateFieldData = (field: FieldInformation, accidentReport: AnyType,\r\n errors: AnyType, isDraft: boolean): ValidationError[] => {\r\n const value = get(accidentReport, field.path);\r\n let result: ValidationError[] = [];\r\n\r\n const error = get(errors, field.path);\r\n if (!error) {\r\n return result;\r\n }\r\n\r\n const arrayField = field as ArrayFieldInformation;\r\n if (arrayField?.item && value) {\r\n value.forEach((item: AnyType, index: number) => {\r\n Object.values(arrayField.item).forEach((itemField) => {\r\n result = result.concat(validateFieldData(itemField, item, error[index], isDraft));\r\n });\r\n });\r\n return result;\r\n }\r\n\r\n const singleField = field as SingleFieldInformation;\r\n if (!isDraft) {\r\n result.push({ field: formTranslate(singleField.label), error });\r\n }\r\n\r\n if (isDraft && singleField.validate && value) {\r\n const validationError = singleField.validate(value, accidentReport);\r\n if (validationError) {\r\n result.push({ field: formTranslate(singleField.label), error: validationError });\r\n }\r\n }\r\n return result;\r\n};\r\n\r\nexport const validateForm = (formSections: AnyType, accidentReport: AnyType, errors: AnyType, isDraft: boolean): ValidationError[] => {\r\n let result: ValidationError[] = [];\r\n Object.values(formSections).forEach((formSection) => {\r\n const section = formSection as FormSectionInformation;\r\n Object.values(section.fields).forEach((field) => {\r\n result = result.concat(validateFieldData(field, accidentReport, errors, isDraft));\r\n });\r\n });\r\n return result;\r\n};\r\n","import i18n from 'i18next';\r\n\r\nexport const Locale = {\r\n en: 'en',\r\n enSG: 'en-SG'\r\n};\r\n\r\nconst languages = {\r\n primary: {\r\n 'en': require('./Locales/en.json')\r\n },\r\n extended: {\r\n 'en-SG': require('./Locales/en-SG.json')\r\n }\r\n};\r\n\r\nconst languagesResources = {};\r\nObject.entries(languages.primary).forEach(([code, resource]) => {\r\n\tlanguagesResources[code] = resource;\r\n});\r\n\r\nObject.entries(languages.extended).forEach(([code, resource]) => {\r\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n\tlanguagesResources[code] = resource;\r\n});\r\n\r\nconst fallbackMap = {};\r\nObject.keys(languages.extended).forEach((extendedLanguage) => {\r\n\tconst prefix = extendedLanguage.split('-')[0];\r\n\tif (Object.keys(languages.primary).includes(prefix)) {\r\n\t\tfallbackMap[extendedLanguage] = [prefix];\r\n\t}\r\n});\r\n\r\nconst [defaultLanguage] = Object.keys(languages.primary);\r\nfallbackMap.default = [defaultLanguage];\r\n\r\nexport const init = (locale) => {\r\n i18n\r\n .init({\r\n debug: process.env.NODE_ENV === 'development',\r\n resources: languagesResources,\r\n lng: locale,\r\n fallbackLng: fallbackMap,\r\n interpolation: {\r\n escapeValue: false,\r\n },\r\n });\r\n};\r\n\r\nexport const translate = i18n.t.bind(i18n);\r\n\r\nexport const useTranslations = (workspace) => {\r\n return (key, options) => translate(`${workspace}:${key}`, options);\r\n};\r\n\r\nexport const makeTranslationFunc = (workspace) => {\r\n return (key, options) => translate(`${workspace}:${key}`, options);\r\n};\r\n\r\n\r\nexport const changeLanguage = i18n.changeLanguage.bind(i18n);\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n// import { capitalize } from 'src/utils/utils';\r\nimport gql from 'graphql-tag';\r\nimport merge from 'deepmerge';\r\nimport { get, set } from 'object-path';\r\nimport {\r\n AnyType, FormSectionInformation, SingleFieldInformation, ArrayFieldInformation, FieldInformation,\r\n} from 'src/types';\r\nimport { setDataOnTarget, setValue, combineMerge } from 'src/utils/forms';\r\n\r\nexport const insertAccidentReportMutation = gql(`\r\nmutation SubmitAccidentReport($accidentReport: AccidentReportInput!, $saveAsDraft: Boolean, $source: ShiftEnum_AccidentReportSourceEnum) {\r\n insertAccidentReport(accidentReport: $accidentReport, saveAsDraft: $saveAsDraft, source: $source) {\r\n id\r\n }\r\n}`);\r\n\r\nexport const executeRecoveryStepMutation = gql(`\r\nmutation ExecuteRecoveryStep($recoveryStepInput: RecoveryStepInputInput!) {\r\n executeRecoveryStep(recoveryStepInput: $recoveryStepInput) {\r\n recovery {\r\n id\r\n }\r\n }\r\n}`);\r\n\r\nexport const assignOfficerInChargeMutation = gql(`\r\nmutation AssignOfficerInCharge($workflowId: Long, $officerId: String) {\r\n assignOfficer(workflowId: $workflowId, officerId: $officerId)\r\n}`);\r\n\r\nexport const uploadWorkflowDocumentMutation = gql(`\r\nmutation UploadWorkflowDocument($workflowId: Long, $documentId: Long) {\r\n uploadWorkflowDocument(workflowId: $workflowId, documentId: $documentId)\r\n}`);\r\n\r\nexport const sendTPReportRequest = gql(`\r\nmutation TPReportRequest($tpReportRequest : TPReportRequestInput!) {\r\n tPReportRequest(request: $tpReportRequest){\r\n date\r\n firstPartyVRN\r\n thirdPartyVRN\r\n referenceCode\r\n }\r\n}`);\r\n\r\nconst transformFieldData = (field: FieldInformation, accidentReport: AnyType): AnyType => {\r\n const value = get(accidentReport, field.path);\r\n if (value === undefined || value === null) {\r\n const hasAdditionalValues = field.formatter?.additionalSources ? Object.values(field.formatter?.additionalSources).some((additionalPath) => {\r\n const additionalData = get(accidentReport, additionalPath);\r\n return additionalData !== undefined && additionalData !== null;\r\n }) : false;\r\n\r\n if (!hasAdditionalValues) {\r\n return {};\r\n }\r\n }\r\n\r\n const arrayField = field as ArrayFieldInformation;\r\n if (arrayField?.item) {\r\n const arrayResult: AnyType[] = [];\r\n value.forEach((item: AnyType) => {\r\n let result: AnyType = {};\r\n Object.values(arrayField.item).forEach((itemField) => {\r\n result = merge(result, transformFieldData(itemField, item), { arrayMerge: combineMerge });\r\n });\r\n arrayResult.push(result);\r\n });\r\n return setValue({}, arrayField.target ?? arrayField.path, arrayResult);\r\n }\r\n const singleField = field as SingleFieldInformation;\r\n const additionalData: AnyType = {};\r\n if (singleField.formatter && singleField.formatter.additionalSources) {\r\n Object.entries(singleField.formatter.additionalSources).forEach(([key, val]) => {\r\n const additionalValue = get(accidentReport, val);\r\n set(additionalData, key, additionalValue);\r\n });\r\n }\r\n\r\n if (!singleField.formatter || singleField.formatter.transform) {\r\n const newValues = singleField.formatter?.transform ? singleField.formatter.transform({ value, additionalData }) : value;\r\n if (newValues === undefined) {\r\n return {};\r\n }\r\n\r\n if (singleField.target) {\r\n return setDataOnTarget(singleField.target, newValues);\r\n }\r\n return setValue({}, singleField.path, newValues);\r\n }\r\n return {};\r\n};\r\n\r\nexport const transformForm = (sections: AnyType, accidentReport: AnyType): AnyType => {\r\n let result: AnyType = {};\r\n\r\n Object.values(sections).forEach((formSection) => {\r\n const section = formSection as FormSectionInformation;\r\n Object.values(section.fields).forEach((field) => {\r\n result = merge(result, transformFieldData(field, accidentReport), { arrayMerge: combineMerge });\r\n });\r\n });\r\n return result;\r\n};\r\n\r\nexport const updateClaimStatusMutation = gql`\r\nmutation UpdateClaimStatus($id: Long, $close: Boolean) {\r\n updateStatus(claimId: $id, close: $close) {\r\n id\r\n status\r\n }\r\n}\r\n`;\r\n\r\nexport const insertAccidentReportCommentMutation = gql`\r\nmutation InsertAccidentReportComment($parentId: Long, $content: String) {\r\n insertAccidentReportComment(parentId: $parentId, content: $content) {\r\n id\r\n content\r\n createDateUtc\r\n author {\r\n id\r\n userName\r\n }\r\n }\r\n}\r\n`;\r\n\r\nexport const insertRecoveryCommentMutation = gql`\r\nmutation InsertRecoveryComment($parentId: Long, $content: String, $commentType: String) {\r\n insertRecoveryComment(parentId: $parentId, content: $content, commentType: $commentType) {\r\n id\r\n content\r\n createDateUtc\r\n author {\r\n id\r\n userName\r\n }\r\n }\r\n}\r\n`;\r\n\r\nexport const billExplorationSearchMutation = gql`\r\nmutation BillExplorationSearch ($vrn: String, $nric: String) {\r\n billExplorationSearch(vrn:$vrn, nric:$nric)\r\n}\r\n`;\r\n\r\nexport const billReportPurchaseMutation = gql`\r\nmutation BillExplorationSearch ($id:Long) {\r\n billReportPurchase(reportId:$id)\r\n}\r\n`;\r\n\r\nexport const assignArcMutation = gql`\r\nmutation AssignArc($referenceCode: String, $vehicleNo: String) {\r\n assignArc(referenceCode: $referenceCode, vehicleNo: $vehicleNo){\r\n reportId\r\n errorCode\r\n insurerCode\r\n } \r\n}\r\n`;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { useLocation } from 'react-router-dom';\r\nimport { State } from './State';\r\nimport { Authenticator, AuthState } from './Authenticator';\r\nimport { unawait } from '../await';\r\n\r\ninterface SecurityState {\r\n loading: boolean;\r\n error?: Error | null;\r\n}\r\n\r\nexport type Security = SecurityState & State & { token: () => Promise };\r\n\r\nconst objectKeys = (object: T): (keyof T)[] => Object.keys(object) as any;\r\n\r\nexport const SecurityContext = React.createContext({\r\n loading: false,\r\n error: null,\r\n status: 'UNAUTHENTICATED',\r\n login: () => { /* */ },\r\n forgotPassword: () => { /* */ },\r\n resumeRecovery: () => { /* */ },\r\n token: async () => null,\r\n});\r\n\r\nconst useOnLocationChange = (f: () => Promise, deps: React.DependencyList) => {\r\n const location = useLocation();\r\n\r\n useEffect(unawait(async () => {\r\n await f();\r\n }), [...deps, location]);\r\n};\r\n\r\ntype FlatState = {\r\n [P in keyof S]: S[P] extends (...params: infer U) => Promise\r\n ? (...params: U) => void\r\n : S[P] extends ((...params: infer U) => Promise) | undefined\r\n ? ((...params: U) => void) | undefined\r\n : S[P] extends (...params: any[]) => any\r\n ? never\r\n : S[P] extends object\r\n ? FlatState\r\n : S[P];\r\n};\r\n\r\ntype ContextState = FlatState;\r\n\r\nconst mapState = (s: AuthState, dispatch: React.Dispatch>): ContextState => {\r\n const unpromise = (p: Promise) => {\r\n dispatch((st) => ({ ...st, loading: true }));\r\n p\r\n .then(() => {\r\n dispatch((st) => ({ ...st, loading: false, error: null }));\r\n }, (e) => {\r\n dispatch((st) => ({ ...st, loading: false, error: e }));\r\n });\r\n };\r\n switch (s.status) {\r\n case 'UNAUTHENTICATED':\r\n return {\r\n status: 'UNAUTHENTICATED',\r\n login: (username: string, password: string) => unpromise(s.login(username, password)),\r\n forgotPassword: (username: string) => unpromise(s.forgotPassword(username)),\r\n resumeRecovery: (token: string) => unpromise(s.resumeRecovery(token)),\r\n };\r\n case 'AUTHENTICATED':\r\n return {\r\n status: 'AUTHENTICATED',\r\n user: s.user,\r\n logout: () => unpromise(s.logout()),\r\n token: undefined as never, // weird...\r\n };\r\n case 'FACTOR_ACTIVATE': {\r\n const { resend } = s;\r\n return {\r\n status: 'FACTOR_ACTIVATE',\r\n activate: (params) => unpromise(s.activate(params)),\r\n cancel: () => unpromise(s.cancel()),\r\n previous: () => unpromise(s.previous()),\r\n resend: resend ? () => unpromise(resend()) : undefined,\r\n factor: s.factor,\r\n };\r\n }\r\n case 'FACTOR_CHALLENGE':\r\n return {\r\n status: 'FACTOR_CHALLENGE',\r\n verify: (params) => unpromise(s.verify(params)),\r\n cancel: () => unpromise(s.cancel()),\r\n previous: () => unpromise(s.previous()),\r\n factorType: s.factorType,\r\n };\r\n case 'FACTOR_ENROLL':\r\n return {\r\n status: 'FACTOR_ENROLL',\r\n cancel: () => unpromise(s.cancel()),\r\n factors: objectKeys(s.factors).reduce((acc, k) => ({\r\n ...acc,\r\n [k]: {\r\n ...s.factors[k],\r\n enroll: () => unpromise(s.factors[k]!.enroll()),\r\n },\r\n }), {}),\r\n };\r\n case 'FACTOR_REQUIRED':\r\n return {\r\n status: 'FACTOR_REQUIRED',\r\n cancel: () => unpromise(s.cancel()),\r\n factors: objectKeys(s.factors).reduce((acc, k) => ({\r\n ...acc,\r\n [k]: {\r\n ...s.factors[k],\r\n verify: () => unpromise(s.factors[k]!.verify()),\r\n },\r\n }), {}),\r\n };\r\n case 'LOCKED_OUT':\r\n return {\r\n status: 'LOCKED_OUT',\r\n };\r\n case 'PASSWORD_EXPIRATION': {\r\n const { skip } = s;\r\n return {\r\n status: 'PASSWORD_EXPIRATION',\r\n changePassword: (username: string) => unpromise(s.changePassword(username)),\r\n skip: skip ? () => unpromise(skip()) : undefined,\r\n cancel: () => unpromise(s.cancel()),\r\n };\r\n }\r\n case 'RECOVERY_CHALLENGE': {\r\n return {\r\n status: 'RECOVERY_CHALLENGE',\r\n resumeRecovery: (token: string) => unpromise(s.resumeRecovery(token)),\r\n cancel: () => unpromise(s.cancel()),\r\n };\r\n }\r\n default:\r\n throw new Error('unreachable');\r\n }\r\n};\r\n\r\nexport const SecurityProvider = ({ auth, children }: { auth: Authenticator; children: React.ReactNode }) => {\r\n const [state, setState] = useState<{ loading: boolean; error?: Error | null }>({ loading: false });\r\n\r\n const { checkState, state: tx } = auth;\r\n\r\n const token = React.useCallback(async () => {\r\n const s = auth.state();\r\n if (s.status !== 'AUTHENTICATED') {\r\n return null;\r\n }\r\n return (await s.token()).accessToken;\r\n }, [auth]);\r\n\r\n useOnLocationChange(async () => {\r\n try {\r\n setState((s) => ({ ...s, loading: true }));\r\n await checkState();\r\n setState((s) => ({ ...s, loading: false }));\r\n } catch (e) {\r\n setState((s) => ({ ...s, loading: false, error: e }));\r\n }\r\n }, [auth]);\r\n\r\n const value = {\r\n ...mapState(tx(), setState),\r\n ...state,\r\n token,\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nconst useSecurityInternal = () => {\r\n const sec = React.useContext(SecurityContext);\r\n\r\n const authenticated = sec.status === 'AUTHENTICATED';\r\n const user = sec.status === 'AUTHENTICATED' ? sec.user : null;\r\n const authenticating = sec.loading; // for backward compatibility\r\n\r\n return {\r\n ...sec,\r\n authenticated,\r\n user,\r\n authenticating,\r\n };\r\n};\r\n\r\ntype UseSecurity = ReturnType\r\ntype SecurityWithStatus =\r\n S extends Security['status']\r\n ? Sec & { status: S }\r\n : Sec;\r\n\r\nexport const useSecurity = (status?: Status): SecurityWithStatus => {\r\n const sec = useSecurityInternal();\r\n\r\n if (!status) {\r\n return sec as never;\r\n }\r\n if (sec.status !== status) {\r\n throw new Error('invalid security status');\r\n }\r\n\r\n return sec as never;\r\n};\r\n","export type Unawait = T extends (...p: infer P) => Promise ? ((...p: P) => void) : never;\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const unawait =

(cb: (...p: P) => Promise): ((...p: P) => void) => (...p: P) => {\r\n cb(...p);\r\n};\r\n","import { useSecurity } from '../../libs/auth/Security';\r\n\r\nexport const useLocalStorage = () => {\r\n const { user } = useSecurity();\r\n const storage = window.localStorage;\r\n if (!storage) {\r\n throw new Error('Local storage not defined');\r\n }\r\n const getFullKey = (key: string) => `${user?.sub || ''}-${key}`;\r\n return {\r\n getItem: (key: string): T | undefined => {\r\n const item = storage.getItem(getFullKey(key));\r\n if (!item) {\r\n return undefined;\r\n }\r\n try {\r\n const typedItem = JSON.parse(item) as T;\r\n return typedItem;\r\n } catch (err) {\r\n return undefined;\r\n }\r\n },\r\n setItem: (key: string, data: T) => storage.setItem(getFullKey(key), JSON.stringify(data)),\r\n };\r\n};\r\n","import { Order as DSOrder } from '@shift/design-system';\r\nimport { Field } from './filters';\r\n\r\nexport enum OrderType {\r\n Asc = 'Order.Asc',\r\n Desc = 'Order.Desc',\r\n}\r\n\r\nexport interface Order {\r\n name: string;\r\n order: OrderType;\r\n}\r\n\r\nexport interface Sort {\r\n field: Field;\r\n order: Order;\r\n}\r\n\r\nexport const mapOrder = (o: Order | null): DSOrder => {\r\n if (!o) {\r\n return DSOrder.None;\r\n }\r\n\r\n return o.order === OrderType.Asc ? DSOrder.Asc : DSOrder.Desc;\r\n};\r\n\r\nexport const unmapOrder = (o: DSOrder): Order | null => {\r\n if (o === DSOrder.None) {\r\n return null;\r\n }\r\n\r\n return {\r\n name: '',\r\n order: o === DSOrder.Asc ? OrderType.Asc : OrderType.Desc,\r\n };\r\n};\r\n\r\nexport const revertOrder = (o: DSOrder): DSOrder => {\r\n if (o === DSOrder.None) return o;\r\n\r\n return o === DSOrder.Asc ? DSOrder.Desc : DSOrder.Asc;\r\n};\r\n","import { SelectInputOption } from '@shift/design-system';\r\nimport { AnyType } from 'src/types';\r\nimport { formTranslate } from './utils';\r\n\r\nconst getOptions = (values: string[]): SelectInputOption[] => values.map((item) => ({ value: item, label: item }));\r\nexport const days = Array.from(Array(31).keys()).map((num) => (num + 1));\r\nexport const months = Array.from(Array(12).keys()).map((num) => (num + 1));\r\nexport const years = Array.from(Array(100).keys()).map((num) => (num + 1920));\r\n\r\n// The values are defined in the context of the field `isOccupationOutdoor`\r\nexport const getOccupationTypes = (): SelectInputOption[] => [\r\n { value: 'false', label: formTranslate('indoor') },\r\n { value: 'true', label: formTranslate('outdoor') },\r\n];\r\n\r\nexport const statesTimezones = [\r\n { state: 'Singapore', timezone: 'Asia/Singapore' },\r\n { state: 'Malaysia', timezone: 'Asia/Kuala_Lumpur' },\r\n { state: 'Thailand', timezone: 'Asia/Bangkok' },\r\n];\r\n\r\nexport const countriesOrStates = getOptions(statesTimezones.map((item) => item.state));\r\nexport const languages = getOptions(['English', 'Mandarin', 'Malay', 'Tamil']).concat([{ value: 0, label: 'Others' }]);\r\n\r\nexport const getStateTimezone = (state: string) => statesTimezones.find((item) => item.state === state)?.timezone;\r\n\r\nexport const computeInjuredVehicleList = (tpVehicles: AnyType[]): SelectInputOption[] => {\r\n const vehicles = [\r\n { value: -1, label: 'Own Vehicle' },\r\n ];\r\n if (tpVehicles) {\r\n tpVehicles.map((thirdParty: AnyType, idx: number) => vehicles.push({\r\n value: thirdParty.vehiclePolicy.vehicle.id,\r\n label: `${formTranslate('injured-tp-vehicle')} ${idx + 1}`,\r\n }));\r\n }\r\n return vehicles;\r\n};\r\n","import { Formatter } from '@shift/transform';\r\nimport { translate } from '../../utils/forms';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const TranslateValueFormatter: Formatter = {\r\n transform: (params) => {\r\n const value = params && params.length > 0 && params[0];\r\n const i18Value = translate(value);\r\n return {\r\n children: i18Value,\r\n };\r\n },\r\n};\r\n\r\nexport const TranslateWithNamespaceValueFormatter: (namespace: string) => Formatter = (namespace: string) => ({\r\n transform: (params) => {\r\n const value = params && params.length > 0 && params[0];\r\n const i18Value = translate(`${namespace}:${value}`);\r\n\r\n return {\r\n children: i18Value,\r\n };\r\n },\r\n});\r\n\r\n// eslint-disable-next-line max-len\r\nexport const TranslateAndJoinWithNamespaceValueFormatter: (namespace: string, format: (val: any) => string) => Formatter = (namespace: string, format: (val: any) => string) => ({\r\n transform: (params) => {\r\n const [[key], [val]] = params;\r\n const i18Value = translate(`${namespace}:${key}-${format(val)}`);\r\n\r\n return {\r\n children: i18Value,\r\n };\r\n },\r\n});\r\n","import {\r\n withCustomVariant, TextButton, IconButton, SubmitButton,\r\n} from '@shift/design-system';\r\n\r\n\r\nexport const SecondaryTextButton = withCustomVariant(TextButton, 'button', 'secondary');\r\nexport const SecondaryIconButton = withCustomVariant(IconButton, 'button', 'secondary');\r\nexport const SecondarySubmitButton = withCustomVariant(SubmitButton, 'button', 'secondary');\r\n","import { configProviderFactory } from '../../../libs/config/ConfigBuilder';\r\nimport { GearsConfig, GearsSubConfigKeys } from '../types';\r\n\r\nexport const {\r\n Provider: GearsConfigProvider,\r\n Consumer: GearsConfigConsumer,\r\n useConfig: useGearsConfig,\r\n} = configProviderFactory();\r\n\r\nexport const useAccidentReportsConfig = >\r\n (subContext: K2) => useGearsConfig('accidentReport', subContext);\r\n\r\nexport const useRecoveryConfig = >\r\n (subContext: K2) => useGearsConfig('recovery', subContext);\r\n\r\nexport const useExplorationConfig = >\r\n (subContext: K2) => useGearsConfig('exploration', subContext);\r\n\r\nexport const useNcdConfig = >\r\n (subContext: K2) => useGearsConfig('ncd', subContext);\r\n\r\nexport const useArcConfig = >\r\n (subContext: K2) => useGearsConfig('arc', subContext);\r\n\r\nexport const useFolderConfig = >\r\n (subContext: K2) => useGearsConfig('folder', subContext);\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n Path, Segment,\r\n} from '@shift/transform';\r\nimport { Widgetters } from 'src/config/widgets';\r\nimport { Formatters } from 'src/config/formatters';\r\nimport { buildQuery, useQuery } from 'src/graphql';\r\nimport {\r\n TableConfig,\r\n SingleValueCardConfig,\r\n RawContentTransformConfig,\r\n KeyValueCardConfig,\r\n KeyValueQueryConfig,\r\n SingleValueQueryConfig,\r\n TableQueryConfig,\r\n RawConfig,\r\n MergedTableConfig,\r\n MergedTableQueryConfig,\r\n QueryConfig,\r\n} from './QueryConfigTypes';\r\nimport { Claims } from '../auth/Authenticator';\r\n\r\nconst pathToString = (path: Path) => path\r\n .map((segment) => (typeof segment === 'object' ? segment.name : segment))\r\n .filter((name) => name !== '');\r\n\r\nconst isValidSegmentName = (segmentName: string) => segmentName && segmentName !== '';\r\n\r\nconst getAllFieldsFromPath = (path: Path, currentPath: string[] = []): string[][] => {\r\n let paths: string[][] = [];\r\n path.forEach((segment) => {\r\n if (typeof segment === 'object') {\r\n if (isValidSegmentName(segment.name)) {\r\n currentPath.push(segment.name);\r\n }\r\n if (segment.selector) {\r\n const result = getAllFieldsFromPath(segment.selector.path, [...currentPath]);\r\n paths = paths.concat(result);\r\n }\r\n } else {\r\n // String\r\n currentPath.push(segment);\r\n }\r\n });\r\n paths.push(currentPath);\r\n return paths;\r\n};\r\n\r\nexport const buildFields = (context: Path, transforms: RawContentTransformConfig[]) => transforms\r\n .flatMap((t) => t.chrooters)\r\n .flatMap((chrooter) => getAllFieldsFromPath(context.concat(chrooter)));\r\n\r\nconst buildI18n = (transform: RawContentTransformConfig, context: Path, i18Namespace = '') => {\r\n const hasSeveralChrooter = transform.chrooters.length > 1;\r\n\r\n if (hasSeveralChrooter || transform?.i18NId) {\r\n return i18Namespace && transform.i18NId\r\n ? `${i18Namespace}:${transform.i18NId}` : '';\r\n }\r\n const p = transform.chrooters\r\n .flatMap((segment) => pathToString(segment));\r\n return `${i18Namespace}:${pathToString(context).join('-')}-${p.join('-')}`;\r\n};\r\n\r\nconst splitContext = (context: Path): [string[], Path] => {\r\n if (!context || context.length === 0) {\r\n throw new Error('empty context...');\r\n }\r\n const idx = context.findIndex((segment: Segment) => typeof segment === 'object' && segment.selector);\r\n if (idx === 0) {\r\n throw new Error('you cannot have selector on the first segment');\r\n }\r\n if (idx === -1) {\r\n return [pathToString(context), []];\r\n }\r\n return [pathToString(context.slice(0, idx)), context.slice(idx)];\r\n};\r\n\r\nconst parseSingleValueCardConfig = ({ context, transforms, configType }: SingleValueCardConfig): SingleValueQueryConfig => {\r\n const [initContext, restContext] = splitContext(context);\r\n const fields = buildFields(restContext, transforms);\r\n return ({\r\n type: configType,\r\n context: initContext,\r\n fields,\r\n transformers: {\r\n context,\r\n content: transforms.map((t) => [\r\n {\r\n chrooters: t?.chrooters,\r\n formatter: t.formatter ?? Formatters.SingleValueFormatter,\r\n widgetter: t.widgetter ?? Widgetters.TextWidgetter,\r\n },\r\n ]),\r\n },\r\n });\r\n};\r\n\r\nconst parseKeyValueCardConfig = ({\r\n context, i18Namespace, transforms, header, configType,\r\n}: KeyValueCardConfig & { header?: RawContentTransformConfig }): KeyValueQueryConfig => {\r\n const [initContext, restContext] = splitContext(context);\r\n const fields = buildFields(restContext, header ? transforms.concat(header) : transforms);\r\n return ({\r\n type: configType,\r\n context: initContext,\r\n fields,\r\n header: header ? {\r\n chrooters: header.chrooters,\r\n formatter: header.formatter ?? Formatters.ListFormatter,\r\n widgetter: header.widgetter ?? Widgetters.SelectWidgetter,\r\n } : null,\r\n transformers: {\r\n context,\r\n content: transforms.map((t) => [\r\n {\r\n i18NId: buildI18n(t, context, i18Namespace),\r\n formatter: Formatters.TranslateValueFormatter,\r\n widgetter: Widgetters.CardLabelWidgetter,\r\n },\r\n {\r\n chrooters: t?.chrooters,\r\n formatter: t.formatter ?? Formatters.SingleValueFormatter,\r\n widgetter: t.widgetter ?? Widgetters.CardValueWidgetter,\r\n },\r\n ]),\r\n },\r\n });\r\n};\r\n\r\nconst parseTableConfig = ({\r\n context, i18Namespace, transforms, configType,\r\n}: TableConfig): TableQueryConfig => {\r\n const [initContext, restContext] = splitContext(context);\r\n const fields = buildFields(restContext, transforms);\r\n\r\n return ({\r\n type: configType,\r\n context: initContext,\r\n fields,\r\n transformers: {\r\n context,\r\n content: transforms.map((t) => [\r\n {\r\n i18NId: buildI18n(t, context, i18Namespace),\r\n formatter: Formatters.TranslateValueFormatter,\r\n widgetter: Widgetters.MultiLineTextWidgetter,\r\n filter: t.filter ?? null,\r\n },\r\n {\r\n chrooters: t?.chrooters,\r\n formatter: t.formatter ?? Formatters.SingleValueFormatter,\r\n widgetter: t.widgetter ?? Widgetters.NoopWidgetter,\r\n },\r\n ]),\r\n },\r\n });\r\n};\r\nconst parseMergedTableConfig = ({\r\n transforms, header, i18Namespace,\r\n}: MergedTableConfig): MergedTableQueryConfig => {\r\n const mergedTableQueryConfig: MergedTableQueryConfig = {\r\n header: header.map((i) => ({\r\n i18NId: `${i18Namespace}:${i.i18n}`,\r\n formatter: Formatters.TranslateValueFormatter,\r\n widgetter: Widgetters.MultiLineTextWidgetter,\r\n filter: i.filter,\r\n })),\r\n rows: transforms.map((t) => parseSingleValueCardConfig(t)),\r\n };\r\n return mergedTableQueryConfig;\r\n};\r\n\r\nfunction handlePermissions

, T extends(config: P) => any>(func: T): (config: P, user?: Claims | null) => ReturnType {\r\n return (config: P, user?: Claims | null): ReturnType => func({\r\n ...config,\r\n transforms: config\r\n .transforms\r\n .filter((transform) => (transform.permissions && user ? transform.permissions(user) : true)),\r\n });\r\n}\r\n\r\nexport const queryConfig = {\r\n cards: {\r\n getSingleField: handlePermissions(parseSingleValueCardConfig),\r\n getLabelValueFields: handlePermissions(parseKeyValueCardConfig),\r\n },\r\n table: {\r\n getHeaderColumnFields: handlePermissions(parseTableConfig),\r\n getMergedTableFields: parseMergedTableConfig,\r\n },\r\n};\r\n\r\nexport const useBuiltQuery = (id: number, config: QueryConfig | TableQueryConfig, apiName?: string) => {\r\n const { fields, context } = config;\r\n const query = buildQuery(context, fields);\r\n\r\n const result = useQuery(query, {\r\n variables: { id },\r\n displayName: apiName,\r\n });\r\n\r\n return result;\r\n};\r\n","import { get } from 'object-path-immutable';\r\nimport { AnyType } from 'src/types';\r\n\r\nexport const isValuePopulatedByMyinfo = (path: string, initialValue: AnyType) => {\r\n const fieldValue = get(initialValue, path);\r\n return fieldValue !== undefined && fieldValue !== null;\r\n};\r\n\r\n\r\nexport const availableDrivingLicenseInformation = (path: string, initialValue: AnyType) => {\r\n const fieldValue = get(initialValue, path);\r\n let qdlValues = false;\r\n if (fieldValue !== undefined && fieldValue !== null) {\r\n fieldValue.forEach((element: { startDate: null | undefined; licenseTypeSourceName: null | undefined }) => {\r\n if ((element.startDate !== undefined && element.startDate !== null)\r\n || (element.licenseTypeSourceName !== undefined && element.licenseTypeSourceName !== null)) {\r\n qdlValues = true;\r\n } else {\r\n qdlValues = false;\r\n }\r\n });\r\n }\r\n return qdlValues;\r\n};\r\n","/* eslint-disable @typescript-eslint/camelcase */\r\n/* eslint-disable max-len */\r\nimport {\r\n insertAccidentReportMutation, buildFormAccidentReportQuery,\r\n} from '..';\r\n\r\nexport const accidentReportMock = {\r\n generalInformation: {\r\n accidentInformation: {\r\n id: 1,\r\n referenceCode: 'ABCD1234',\r\n status: { Type: 'ClosingType', Name: 'AtDraftStage' },\r\n specializations: {\r\n mapping_Claim_Statement: [\r\n {\r\n dateOffset: '07/04/2020T00:00:00+08:00',\r\n },\r\n ],\r\n mapping_Claim_Motor_RoadAccident: {\r\n weatherCondition: { Type: 'WeatherCondition', Name: 'Good' },\r\n roadSurface: { Type: 'RoadSurface', Name: 'Dry' },\r\n },\r\n mapping_Claim_Cause: {\r\n enumIdentifier: 'MotorClaimCause',\r\n enumValueId: 83,\r\n detailedCircumstances: 'I was driving my car along the road. There is a traffic light turning red so i then stopped. Suddenly a car from behind collided with my rear.',\r\n },\r\n mapping_Claim_Event: {\r\n eventDateOffset: '01/11/2019T11:30:00+08:00',\r\n },\r\n mapping_Claim_Motor_Checklist: {\r\n anyPoliceReport: true,\r\n anyProsecutionGiven: true,\r\n },\r\n mapping_Claim_PurposeIndication: {\r\n purpose: {\r\n Name: 'ClaimAgainstOwnInsuranceForCompensation',\r\n Type: 'ReportPurpose',\r\n },\r\n },\r\n },\r\n },\r\n accidentAddress: {\r\n fullAddress: '165 Tg Pagar Rd, Singapore 088539',\r\n complement: '#125',\r\n country: { Type: 'Country', Name: 'Singapore' },\r\n postCode: '088539',\r\n latitude: 1.2750316,\r\n longitude: 103.8435506,\r\n areaOrState: 'Singapore',\r\n },\r\n policeStationInformation: {\r\n person: {\r\n specializations: {\r\n mapping_Person_Gears: {\r\n name: 'Rochor Neighbourhood Police Centre',\r\n },\r\n },\r\n },\r\n },\r\n prosecutionInformation: {\r\n specializations: {\r\n mapping_Assessment_FreeText: [{\r\n text: 'John Doe',\r\n }],\r\n },\r\n },\r\n translation: {\r\n email: {\r\n address: 'text@email.com',\r\n },\r\n isTranslatedReport: true,\r\n person: {\r\n specializations: {\r\n mapping_Person_Gears: {\r\n name: 'sometranslator',\r\n },\r\n mapping_Person_NationalIdentifier: [{\r\n identifier: { Type: 'NationalIdentifierType', Name: 'NationalIdentifier' },\r\n nationalIdentifier: 'S0000001I',\r\n }],\r\n },\r\n },\r\n phoneNumber: {\r\n number: '+65 4444-2541',\r\n },\r\n translatedReport: undefined,\r\n },\r\n },\r\n ownVehicle: {\r\n vehiclePolicy: {\r\n vehicle: {\r\n specializations: {\r\n mapping_Object_Motor_VehicleRegistration: [\r\n {\r\n number: 'SCK1117J',\r\n },\r\n ],\r\n mapping_Object_Motor_Vehicle: {\r\n make: { Type: 'VehicleMake', Name: 'Honda' },\r\n model: 'Fit',\r\n type: { Type: 'VehicleType', Name: 'PrivateCar' },\r\n },\r\n },\r\n },\r\n usagePurpose: 'Private use',\r\n passengers: [\r\n {\r\n specializations: {\r\n mapping_Person_Gears: {\r\n id: 1,\r\n name: 'John W.',\r\n },\r\n mapping_Person_Individual: {\r\n gender: { Type: 'EntityGender', Name: 'Male' },\r\n },\r\n },\r\n },\r\n ],\r\n policy: {\r\n referenceCode: 'A26121269',\r\n specializations: {\r\n id: 1,\r\n mapping_Policy_Motor: {\r\n type: { Type: 'MotorPolicyType', Name: 'Fleet' },\r\n },\r\n },\r\n },\r\n },\r\n owner: {\r\n person: {\r\n specializations: {\r\n mapping_Person_Gears: {\r\n id: 1,\r\n name: 'John Tan',\r\n },\r\n mapping_Person_NationalIdentifier: [\r\n {\r\n identifier: { Type: 'NationalIdentifierType', Name: 'NationalIdentifier' },\r\n nationalIdentifier: 'S8284938B',\r\n },\r\n ],\r\n },\r\n },\r\n email: {\r\n address: 'john_tan@gmail.com',\r\n },\r\n primaryPhoneNumber: {\r\n number: '+65 8536-2541',\r\n },\r\n alternativePhoneNumbers: [\r\n {\r\n type: { Type: 'PhoneNumberType', Name: 'Landline' },\r\n number: '+65 1234-5678',\r\n },\r\n ],\r\n },\r\n driver: {\r\n person: {\r\n links: {\r\n mapping_ClaimPerson: {\r\n specializations: {\r\n mapping_ClaimPerson_DrivingLicense: {\r\n startDate: '10/11/2014T00:00:00.000 +01:00',\r\n },\r\n },\r\n },\r\n },\r\n specializations: {\r\n mapping_Person_Gears: {\r\n id: 1,\r\n name: 'Cheng Soh',\r\n },\r\n mapping_Person_NationalIdentifier: [\r\n {\r\n identifier: { Type: 'NationalIdentifierType', Name: 'Passport' },\r\n nationalIdentifier: 'S1191122A',\r\n },\r\n ],\r\n mapping_Person_Individual: {\r\n dateOfBirth: '11/02/1986T00:00:00.000 +01:00',\r\n isOccupationOutdoor: false,\r\n gender: { Type: 'EntityGender', Name: 'Male' },\r\n },\r\n },\r\n },\r\n primaryPhoneNumber: {\r\n countryCode: '65',\r\n number: '91158859',\r\n },\r\n alternativePhoneNumbers: [\r\n {\r\n phoneNumberType: { Type: 'PhoneNumberType', Name: 'Office' },\r\n countryCode: '65',\r\n number: '98765432',\r\n },\r\n ],\r\n address: {\r\n fullAddress: ' 171A Edgedale plains',\r\n complement: '#08-11',\r\n postCode: '415979',\r\n },\r\n email: {\r\n address: 'soh_chentiong@gmail.com',\r\n },\r\n },\r\n driverOwnerRelation: { Type: 'OwnerDriverRelationship', Name: 'Friend' },\r\n driverOwnsOtherVehicles: true,\r\n otherVehiclesOwnedByDriver: [\r\n {\r\n vehicle: {\r\n specializations: {\r\n mapping_Object_Motor_VehicleRegistration: [\r\n {\r\n number: 'SZR7283L',\r\n },\r\n ],\r\n },\r\n },\r\n policy: {\r\n specializations: {\r\n mapping_Policy_Insurer: {\r\n insurer: { Type: 'InsurerCode', Name: 'InsurerA' },\r\n },\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n thirdPartyVehicles: [\r\n {\r\n vehiclePolicy: {\r\n vehicle: {\r\n specializations: {\r\n mapping_Object_Motor_VehicleRegistration: [\r\n {\r\n number: 'SBZ2228E',\r\n },\r\n ],\r\n mapping_Object_Motor_Vehicle: {\r\n type: { Type: 'VehicleType', Name: 'Taxi' },\r\n },\r\n },\r\n },\r\n passengers: [\r\n {\r\n specializations: {\r\n mapping_Person_Gears: {\r\n id: 1,\r\n name: 'Jane V.',\r\n },\r\n mapping_Person_Individual: {\r\n gender: { Type: 'EntityGender', Name: 'Female' },\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n driver: {\r\n person: {\r\n specializations: {\r\n mapping_Person_Gears: {\r\n id: 1,\r\n name: 'Melissa Lee',\r\n },\r\n mapping_Person_NationalIdentifier: [\r\n {\r\n identifier: { Type: 'NationalIdentifierType', Name: 'NationalIdentifier' },\r\n nationalIdentifier: 'S2225469B',\r\n },\r\n ],\r\n },\r\n },\r\n primaryPhoneNumber: {\r\n number: '+65 9226-2886',\r\n },\r\n address: {\r\n fullAddress: '2 Hougang street',\r\n complement: 'Appartement 111',\r\n postCode: '75001',\r\n },\r\n },\r\n },\r\n ],\r\n injuredPersons: [\r\n {\r\n person: {\r\n specializations: {\r\n mapping_Person_Gears: {\r\n id: 1,\r\n name: 'Cheng Soh',\r\n },\r\n },\r\n },\r\n address: {\r\n fullAddress: ' 171A Edgedale plains',\r\n complement: '#08-11',\r\n postCode: '415979',\r\n },\r\n },\r\n ],\r\n witnesses: [\r\n {\r\n person: {\r\n specializations: {\r\n mapping_Person_Gears: {\r\n id: 1,\r\n name: 'Huan Qin',\r\n },\r\n },\r\n },\r\n primaryPhoneNumber: {\r\n number: '+65 5678-1234',\r\n },\r\n email: {\r\n address: 'huan.qin@gmail.com',\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const accidentReportingsMock = [\r\n // Get accident report\r\n {\r\n request: {\r\n query: buildFormAccidentReportQuery(),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n accidentReport: accidentReportMock,\r\n },\r\n }),\r\n },\r\n // Insert accident report\r\n {\r\n request: {\r\n query: insertAccidentReportMutation,\r\n variables: {\r\n report: accidentReportMock,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n accidentReport: accidentReportMock,\r\n },\r\n }),\r\n },\r\n];\r\n","/* eslint-disable @typescript-eslint/camelcase */\r\n/* eslint-disable max-len */\r\nimport { buildQuery, buildListQuery } from '..';\r\nimport { updateClaimStatusMutation } from '../mutation-builder';\r\nimport { AccidentReportConfig } from '../../config/configuration/types';\r\nimport { ProcessedSubConfiguration } from '../../libs/config/QueryConfigTypes';\r\n\r\nconst referenceCodeResult = {\r\n id: 0,\r\n referenceCode: 'TBD',\r\n status: { Type: 'ClosingType', Name: 'InProgress' },\r\n versions: [\r\n { id: 0, verison: new Date(2012, 9, 3), submissionDate: new Date(2012, 9, 3) },\r\n { id: 1, verison: new Date(2016, 2, 12), submissionDate: new Date(2016, 2, 12) },\r\n ],\r\n isCommentAllowed: true,\r\n isRecoveriesAccessAllowed: true,\r\n isRecoveryCreationAllowed: true,\r\n};\r\n\r\nexport const accidentReportsMock = (config: ProcessedSubConfiguration) => [\r\n // Basic list\r\n {\r\n request: {\r\n query: buildListQuery(\r\n config.list.context,\r\n config.list.fields,\r\n 'ClaimFields',\r\n ),\r\n variables: {\r\n parameters: {\r\n start: 0,\r\n length: 10,\r\n filters: [],\r\n sort: null,\r\n },\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claimList: {\r\n totalCount: 2,\r\n itemsCount: 2,\r\n items: [\r\n {\r\n id: 1,\r\n referenceCode: 'AR1011',\r\n policy: {\r\n id: 1,\r\n persons: [{\r\n id: 1,\r\n specializations: {\r\n id: 1,\r\n mapping_Person_Gears: {\r\n id: 1,\r\n name: 'John Tan',\r\n },\r\n },\r\n }],\r\n },\r\n status: 'closed',\r\n objects: {\r\n id: 1,\r\n specializations: {\r\n id: 1,\r\n mapping_Object_Motor_VehicleRegistration: [{\r\n id: 10,\r\n number: 'SCK1117J',\r\n }],\r\n },\r\n },\r\n specializations: {\r\n id: 1,\r\n mapping_Claim_Cause: {\r\n id: 1,\r\n enumIdentifier: null,\r\n },\r\n mapping_Claim_Statement: {\r\n id: 1,\r\n dateOffset: new Date(2020, 3, 14),\r\n },\r\n },\r\n versions: [\r\n { id: 0, verison: new Date(2020, 3, 21), submissionDate: new Date(2020, 3, 21) },\r\n { id: 1, verison: new Date(2020, 3, 23), submissionDate: new Date(2020, 3, 23) },\r\n { id: 2, verison: new Date(2020, 3, 23), submissionDate: new Date(2020, 3, 23) },\r\n ],\r\n },\r\n {\r\n id: 2,\r\n referenceCode: 'AR6061',\r\n policy: {\r\n id: 2,\r\n persons: [{\r\n id: 2,\r\n specializations: {\r\n id: 2,\r\n mapping_Person_Gears: {\r\n id: 2,\r\n name: 'Jane Lim',\r\n },\r\n },\r\n }],\r\n },\r\n objects: {\r\n id: 2,\r\n specializations: {\r\n id: 2,\r\n mapping_Object_Motor_VehicleRegistration: null,\r\n },\r\n },\r\n status: null,\r\n specializations: {\r\n id: 2,\r\n mapping_Claim_Cause: {\r\n id: 2,\r\n enumIdentifier: 'MotorClaimCause',\r\n enumValueId: 20,\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n }),\r\n },\r\n // List with filters\r\n {\r\n request: {\r\n query: buildListQuery(\r\n config.list.context,\r\n config.list.fields,\r\n 'ClaimFields',\r\n ),\r\n variables: {\r\n parameters: {\r\n start: 0,\r\n length: 10,\r\n filters: [{\r\n field: { name: 'ReferenceCode', object: 'Claim' },\r\n operation: {\r\n type: 'SearchOperationType.Match',\r\n name: 'StringMatch',\r\n parameters: [{ value: 'AR1011', name: 'searchedText', type: 'ParameterType.StringParameter' }],\r\n },\r\n }],\r\n sort: null,\r\n },\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claimList: {\r\n totalCount: 1,\r\n itemsCount: 1,\r\n items: [\r\n {\r\n id: 1,\r\n referenceCode: 'AR1011',\r\n policy: {\r\n id: 1,\r\n persons: [{\r\n id: 1,\r\n specializations: {\r\n id: 1,\r\n mapping_Person_Gears: {\r\n id: 1,\r\n name: 'John Tan',\r\n },\r\n },\r\n }],\r\n },\r\n status: 'closed',\r\n objects: {\r\n id: 1,\r\n specializations: {\r\n id: 1,\r\n mapping_Object_Motor_VehicleRegistration: [{\r\n id: 10,\r\n number: 'SCK1117J',\r\n }],\r\n },\r\n },\r\n specializations: {\r\n id: 1,\r\n mapping_Claim_Cause: {\r\n id: 1,\r\n enumIdentifier: null,\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n }),\r\n },\r\n // General information: Own insured\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.ownDriver.context,\r\n config.ownDriver.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n persons: [{\r\n id: 3,\r\n addresses: [{\r\n id: 3,\r\n fullAddress: '171A Edgedale plains',\r\n postcode: '821171',\r\n }],\r\n mails: [{\r\n id: 3,\r\n address: 'soh_chentiong@gmail.com',\r\n }],\r\n phoneNumbers: [{\r\n id: 3,\r\n number: '+65 91158859',\r\n }],\r\n links: {\r\n mapping_ClaimPerson: {\r\n specializations: {\r\n mapping_ClaimPerson_DrivingLicense: {\r\n startDate: '11/10/2014T09:30:00+08:00',\r\n },\r\n },\r\n },\r\n },\r\n specializations: {\r\n id: 3,\r\n mapping_Person_Gears: {\r\n id: 3,\r\n name: 'Cheng Soh',\r\n },\r\n mapping_Person_Individual: {\r\n id: 3,\r\n firstName: 'Soh',\r\n lastName: 'Cheng',\r\n gender: { Type: 'EntityGender', Name: 'Male' },\r\n dateOfBirth: '11/01/1986T02:15:00+08:00',\r\n },\r\n mapping_Person_NationalIdentifier: {\r\n id: 3,\r\n nationalIdentifier: 'S1191122A',\r\n identifier:\r\n {\r\n Type: 'NationalIdentifierType',\r\n Name: 'NationalIdentifier',\r\n },\r\n },\r\n },\r\n }, {\r\n id: 4,\r\n addresses: [{\r\n id: 3,\r\n fullAddress: '1 Main Street',\r\n postcode: '821171',\r\n }],\r\n mails: [{\r\n id: 4,\r\n address: 'li_ming@gmail.com',\r\n }],\r\n phoneNumbers: [{\r\n id: 4,\r\n number: '+65 91158859',\r\n }],\r\n links: {\r\n mapping_ClaimPerson: {\r\n specializations: {\r\n mapping_ClaimPerson_DrivingLicense: {\r\n startDate: '13/10/2014T09:30:00+08:00',\r\n },\r\n },\r\n },\r\n },\r\n specializations: {\r\n id: 4,\r\n mapping_Person_Gears: {\r\n id: 4,\r\n name: 'Li Ming',\r\n },\r\n mapping_Person_Individual: {\r\n id: 4,\r\n firstName: 'Li',\r\n lastName: 'Ming',\r\n gender: { Type: 'EntityGender', Name: 'Male' },\r\n dateOfBirth: '15/10/1986T04:10:00+08:00',\r\n },\r\n mapping_Person_NationalIdentifier: {\r\n id: 4,\r\n nationalIdentifier: 'S1191122A',\r\n identifier:\r\n {\r\n Type: 'NationalIdentifierType',\r\n Name: 'NationalIdentifier',\r\n },\r\n },\r\n },\r\n }],\r\n specializations: {\r\n id: 2,\r\n mapping_Claim_Cause: {\r\n id: 2,\r\n detailedCircumstances: `I was driving my car along the road.\r\n There is a traffic light turning red so i then stopped.\r\n Suddenly a car from behind collided with my rear.`,\r\n },\r\n },\r\n },\r\n },\r\n }),\r\n },\r\n // General information: Own policy\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.ownPolicy.context,\r\n config.ownPolicy.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n policy: {\r\n id: 1,\r\n recordOwner: { Type: 'RecordOwner', Name: 'Insurer A' },\r\n referenceCode: 'A26121269',\r\n creationDate: '11/10/2019T09:15:00+08:00',\r\n persons: [{\r\n id: 1,\r\n mails: [{\r\n id: 1,\r\n address: 'john_tan@gmail.com',\r\n }],\r\n phoneNumbers: [{\r\n id: 1,\r\n number: '+65 85362541',\r\n }],\r\n specializations: {\r\n id: 1,\r\n mapping_Person_Gears: {\r\n id: 1,\r\n name: 'John Tan',\r\n },\r\n mapping_Person_Individual: {\r\n id: 1,\r\n firstName: 'John',\r\n lastName: 'Tan',\r\n },\r\n mapping_Person_NationalIdentifier: {\r\n id: 1,\r\n nationalIdentifier: 'S8284938B',\r\n identifier: {\r\n Type: 'NationalIdentifierType',\r\n Name: 'NationalIdentifier',\r\n },\r\n },\r\n },\r\n }],\r\n specializations: {\r\n id: 1,\r\n mapping_Policy_Motor: {\r\n type: { Type: 'MotorPolicyType', Name: 'Fleet' },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n }),\r\n },\r\n // General information: Third party\r\n {\r\n\r\n request: {\r\n query: buildQuery(\r\n config.thirdParty.context,\r\n config.thirdParty.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n persons: [{\r\n id: 2,\r\n addresses: [{\r\n id: 2,\r\n fullAddress: '2 Hougang street 92200 Paris',\r\n }],\r\n mails: [{\r\n id: 3,\r\n address: 'melissa.lee@gmail.com',\r\n }],\r\n phoneNumbers: [{\r\n id: 2,\r\n number: '+65 92262886',\r\n }],\r\n policies: [{\r\n id: 2,\r\n recordOwner: { Type: 'RecordOwner', Name: 'Insurer B' },\r\n referenceCode: 'B26234669',\r\n }],\r\n specializations: {\r\n id: 2,\r\n mapping_Person_Gears: {\r\n id: 2,\r\n name: 'Melissa Lee',\r\n },\r\n mapping_Person_Individual: {\r\n id: 2,\r\n firstName: 'Melissa',\r\n lastName: 'Lee',\r\n },\r\n mapping_Person_NationalIdentifier: {\r\n id: 2,\r\n nationalIdentifier: 'S2225469B',\r\n },\r\n },\r\n }],\r\n objects: [{\r\n specializations: {\r\n mapping_Object_Motor_VehicleRegistration: [{\r\n number: 'SBZ2228E',\r\n }],\r\n mapping_Object_Motor_Vehicle: {\r\n make: { Type: 'VehicleMake', Name: 'Toyota' },\r\n model: 'Corolla Altis',\r\n type: { Type: 'VehicleType', Name: 'PrivateCar' },\r\n constructionDateOffset: '15/10/2016T09:25:00+08:00',\r\n },\r\n },\r\n }],\r\n },\r\n },\r\n }),\r\n },\r\n // General information: Own vehicle\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.ownVehicle.context,\r\n config.ownVehicle.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n objects: [{\r\n specializations: {\r\n mapping_Object_Motor_Vehicle: {\r\n make: { Type: 'VehicleMake', Name: 'Honda' },\r\n model: 'Fit',\r\n type: { Type: 'VehicleType', Name: 'PrivateCar' },\r\n constructionDateOffset: '15/11/2019T09:25:00+08:00',\r\n },\r\n mapping_Object_Motor_VehicleRegistration: [{\r\n number: 'SCK1117J',\r\n }],\r\n },\r\n links: {\r\n mapping_ClaimObject: [\r\n {\r\n specializations: {\r\n mapping_ClaimObject_Motor_InvolvedVehicle: {\r\n usagePurpose: 'Private use',\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n }],\r\n },\r\n },\r\n }),\r\n },\r\n // Accident summary: Accident location\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.accidentLocation.context,\r\n config.accidentLocation.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n addresses: [{\r\n id: 2,\r\n fullAddress: '165 Tanjong Pagar Plaza, Singapore 088539',\r\n latitude: 1.275651,\r\n longitude: 103.843374,\r\n }],\r\n },\r\n },\r\n }),\r\n },\r\n // Accident summary: Accident\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.accident.context,\r\n config.accident.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n InjuredPersons: 'Yes',\r\n createDateUtc: '26/11/2019T11:15:00Z',\r\n hasPoliceReport: 'Yes',\r\n specializations: {\r\n id: 2,\r\n mapping_Claim_Event: {\r\n id: 2,\r\n eventDateOffset: '25/11/2019T09:35:00+08:00',\r\n },\r\n mapping_Claim_Motor_RoadAccident: {\r\n id: 2,\r\n weatherCondition: {\r\n Type: 'WeatherCondition',\r\n Name: 'Clear',\r\n },\r\n weatherConditionDescription: 'It is clear sky',\r\n roadSurface: {\r\n Type: 'RoadSurface',\r\n Name: 'Dry',\r\n },\r\n },\r\n mapping_Claim_Motor_Checklist: {\r\n id: 3,\r\n numberOfVehicles: 2,\r\n anyForeignVehicle: 'No',\r\n anyInjuredPersons: 'No',\r\n anyInjuredPersonConveyedByAmbulance: 'No',\r\n anyWitness: 'No',\r\n anyUnknownPersonAssistance: 'No',\r\n anyPoliceReport: 'No',\r\n anyVehiclePhoto: 'No',\r\n anyAccidentPhoto: 'No',\r\n anyAccidentVideo: 'No',\r\n },\r\n },\r\n },\r\n },\r\n }),\r\n },\r\n // Accident summary: Statement\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.statement.context,\r\n config.statement.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n specializations: {\r\n id: 2,\r\n mapping_Claim_Cause: {\r\n id: 2,\r\n detailedCircumstances: `I was driving my car along the road.\r\n There is a traffic light turning red so i then stopped.\r\n Suddenly a car from behind collided with my rear.`,\r\n },\r\n },\r\n },\r\n },\r\n }),\r\n },\r\n // Fraud Elements\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.fraudElements.context,\r\n config.fraudElements.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n fraudElements: [{\r\n score: '0',\r\n link: 'https://newdemo.shift-technology.com',\r\n }],\r\n },\r\n },\r\n }),\r\n },\r\n // Recovery\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.recoveries.context,\r\n config.recoveries.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n recoveries: [\r\n {\r\n id: 1,\r\n referenceCode: 'RCV7104',\r\n insurer: 'Insurer A',\r\n officerInCharge: 'Thibault H',\r\n links: {\r\n mapping_RecoveryTarget: {\r\n entityRoleEnumIdentifier: 'MotorRecoveryType',\r\n entityRoleEnumValueId: 1,\r\n },\r\n },\r\n workflow: {\r\n id: 1,\r\n lastWorkflowStep: {\r\n id: 42,\r\n state: 'Initial offer',\r\n },\r\n claims: [\r\n {\r\n id: 12,\r\n links: {\r\n ui_WorkflowToClaim: {\r\n roleEnumValueId: 1,\r\n },\r\n },\r\n objects: [\r\n {\r\n id: 2,\r\n specializations: {\r\n id: 38393,\r\n mapping_Object_Motor_VehicleRegistration: [{ id: 2, number: 'SAK1915C' }],\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n id: 2,\r\n referenceCode: 'RCV9992',\r\n insurer: 'Insurer B',\r\n officerInCharge: 'Matthieu O H',\r\n links: {\r\n mapping_RecoveryTarget: {\r\n entityRoleEnumIdentifier: 'MotorRecoveryType',\r\n entityRoleEnumValueId: 1,\r\n },\r\n },\r\n workflow: {\r\n id: 2,\r\n lastWorkflowStep: {\r\n id: 22,\r\n state: 'Counter-offer',\r\n },\r\n claims: [\r\n {\r\n id: 2,\r\n links: {\r\n ui_WorkflowToClaim: {\r\n roleEnumValueId: 1,\r\n },\r\n },\r\n objects: [\r\n {\r\n id: 6,\r\n specializations: {\r\n id: 394720,\r\n mapping_Object_Motor_VehicleRegistration: [{ id: 6, number: 'SAK1110C' }],\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 // Reference code\r\n {\r\n request: {\r\n query: buildQuery(config.referenceCode.context, config.referenceCode.fields),\r\n variables: { id: 1 },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n ...referenceCodeResult,\r\n id: 1,\r\n referenceCode: 'AR6061',\r\n },\r\n },\r\n }),\r\n },\r\n // Reference code - Comments not allowed\r\n {\r\n request: {\r\n query: buildQuery(config.referenceCode.context, config.referenceCode.fields),\r\n variables: { id: 2 },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n ...referenceCodeResult,\r\n id: 2,\r\n referenceCode: 'AR6062',\r\n isCommentAllowed: false,\r\n },\r\n },\r\n }),\r\n },\r\n // Reference code - Recovery access not allowed\r\n {\r\n request: {\r\n query: buildQuery(config.referenceCode.context, config.referenceCode.fields),\r\n variables: { id: 3 },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n ...referenceCodeResult,\r\n id: 3,\r\n referenceCode: 'AR6063',\r\n isRecoveriesAccessAllowed: false,\r\n },\r\n },\r\n }),\r\n },\r\n // Reference code - Recovery creation not allowed\r\n {\r\n request: {\r\n query: buildQuery(config.referenceCode.context, config.referenceCode.fields),\r\n variables: { id: 4 },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n ...referenceCodeResult,\r\n id: 4,\r\n referenceCode: 'AR6064',\r\n isRecoveryCreationAllowed: false,\r\n },\r\n },\r\n }),\r\n },\r\n // Attachments\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.attachments.context,\r\n config.attachments.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n documents: [{\r\n id: 1,\r\n documentName: 'left_back',\r\n type: 'Damage pictures',\r\n modifyDateUtc: '27/01/2020T11:15:00Z',\r\n description: 'Accident photo #1',\r\n specializations: {\r\n id: 1,\r\n document_Document_DestinationDiskStorageInformation: {\r\n id: 1,\r\n storagePath: 'https://s3-alpha-sig.figma.com/img/8aa3/5440/09c5da4bb616f13ede9b88959f63ee72?Expires=1580083200&Signature=OCAcEJspetJDD5QBoGw~BmtmMHFsiAYZVBz2KsIxTCql-f6sIwXUn1oD862jHtP8-HiUvuC9LEWTWV43S20knWHqx8eAPFx3M9-kTJsNmkh-dPUzzEt2T2EtshGhAXFRy4usabnravyytiJwnd~dFWfOLD0QWJCHHqlsdqNV3g4BnflwGwUoFWlVbwAcH2hxk6rtRJOTaQQtr7uj~qr5q1kGJys7T09pIKavRpBi-kN6eJFvHd2mwA8qgV4gk1YcGNuzYG1Q-OKgEcDye59S8kHwXZtiFLTDPqJOWk8LBkwIs6UEB41FSpMEjfkCIHYch6x0rih8tdkeZY9DJj~iMg__&Key-Pair-Id=APKAINTVSUGEWH5XD5UA',\r\n },\r\n },\r\n persons: [{\r\n id: 1,\r\n specializations: {\r\n id: 1,\r\n mapping_Person_Gears: {\r\n id: 2,\r\n name: 'John Doe',\r\n },\r\n },\r\n }],\r\n },\r\n {\r\n id: 2,\r\n documentName: 'left_side',\r\n type: 'Damage pictures',\r\n modifyDateUtc: '27/02/2020T11:15:00Z',\r\n description: 'Accident photo #2',\r\n specializations: {\r\n id: 2,\r\n document_Document_DestinationDiskStorageInformation: {\r\n id: 2,\r\n storagePath: 'https://s3-alpha-sig.figma.com/img/b8c4/0e4a/3f5b104593c490784b746c9afeaeea68?Expires=1580083200&Signature=TFFQ5VX5E6F2oiApk8NtizRdEtIO~tGL7tVCjN4LN25eK9SgALJHht2ga6sHBirN7--Qtzfxx3bBtqMw~iWczkDzHCZKQ33KG3iOE6blnaUjgtM1hX7MqDQMaeX2MhvmogwtZ3fCilpT~wDP7STjGqizCEUaGfGjIcTKP6ChVtwPiGSxS56X9B9Esb3SAVrJHDrTtN0X4XwCUCQxZG1k3yyY6CMBawDMe6KYza26YFyH0XI3gFHdsYWbx1h8qbk510XofPcFvjho5btutIRkvkbDqagDD7Kv2UrFgaWDzAyOInnb7h~ECwKGaOlmDTiGRE-KLxEIBNhPkiBAms~g~g__&Key-Pair-Id=APKAINTVSUGEWH5XD5UA',\r\n },\r\n },\r\n persons: [{\r\n id: 1,\r\n specializations: {\r\n id: 1,\r\n mapping_Person_Gears: {\r\n id: 2,\r\n name: 'John Doe',\r\n },\r\n },\r\n }],\r\n }],\r\n },\r\n },\r\n }),\r\n },\r\n // Versions\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.versions.context,\r\n config.versions.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n versions: [\r\n { id: 0, verison: new Date(2012, 9, 3), submissionDate: new Date(2012, 9, 3) },\r\n { id: 1, verison: new Date(2016, 2, 12), submissionDate: new Date(2016, 2, 12) },\r\n ],\r\n },\r\n },\r\n }),\r\n },\r\n // Comments\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.comments.context,\r\n config.comments.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n comments: [{\r\n id: 1,\r\n content: 'A first comment',\r\n }],\r\n },\r\n },\r\n }),\r\n },\r\n // Update claim status: Closed\r\n {\r\n request: {\r\n query: updateClaimStatusMutation,\r\n variables: {\r\n id: 1, close: true,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n updateStatus: {\r\n id: 1,\r\n status: { Type: 'ClosingType', Name: 'Closed' },\r\n },\r\n },\r\n }),\r\n },\r\n // Update claim status: In progress\r\n {\r\n request: {\r\n query: updateClaimStatusMutation,\r\n variables: {\r\n id: 1, close: false,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n updateStatus: {\r\n id: 1,\r\n status: { Type: 'ClosingType', Name: 'InProgress' },\r\n },\r\n },\r\n }),\r\n },\r\n // Get information for initiate recovery\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.initiateRecovery.context,\r\n config.initiateRecovery.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n specializations: {\r\n id: 1,\r\n mapping_Claim_Insurer: {\r\n id: 1,\r\n insurer: { Type: 'RecordOwner', Name: 'Insurer A' },\r\n },\r\n },\r\n policy: {\r\n id: 1,\r\n persons: [{\r\n id: 1,\r\n specializations: {\r\n id: 1,\r\n mapping_Person_Gears: {\r\n id: 1,\r\n name: 'John Tan',\r\n },\r\n },\r\n }],\r\n },\r\n objects: [{\r\n id: 1,\r\n specializations: {\r\n mapping_Object_Motor_VehicleRegistration: [{\r\n number: 'SCK1117J',\r\n }],\r\n },\r\n links: {\r\n id: 1,\r\n mapping_ClaimObject: [{\r\n id: 1,\r\n roleEnumIdentifier: 'PartySide',\r\n roleEnumValueId: 1,\r\n }],\r\n },\r\n }],\r\n },\r\n },\r\n }),\r\n },\r\n];\r\n","/* eslint-disable @typescript-eslint/camelcase */\r\nimport { DateFormat, DateOffsetFormat } from 'src/constants';\r\nimport { parseOffsetDate } from 'src/utils';\r\nimport { buildExplorationQuery, buildNcdEmailQuery } from '../query-builder';\r\nimport { ProcessedSubConfiguration } from '../../libs/config/QueryConfigTypes';\r\nimport { ExplorationConfig } from '../../config/configuration/types/ExplorationConfig';\r\n\r\nconst id = 10001;\r\n\r\nconst policy = {\r\n id,\r\n effectiveDateOffset: '18/08/2019T07:09:36',\r\n expirationDateOffset: parseOffsetDate('14/10/2020', DateFormat).format(DateOffsetFormat),\r\n referenceCode: 'A26121269',\r\n specializations: {\r\n id,\r\n mapping_Policy_Insurer: {\r\n id,\r\n insurer: { Type: 'InsurerCode', Name: 'InsurerA' },\r\n },\r\n },\r\n objects: {\r\n id,\r\n specializations: {\r\n id,\r\n mapping_Object_Motor_Vehicle: {\r\n id,\r\n make: { Type: 'VehicleMake', Name: 'Toyota' },\r\n model: 'Prius',\r\n type: {\r\n Type: 'VehicleType', Name: 'PrivateCar',\r\n\r\n },\r\n },\r\n mapping_Object_Motor_VehicleRegistration: [\r\n { id, number: 'ABC1564DEF' },\r\n ],\r\n },\r\n links: {\r\n mapping_PolicyObject: {\r\n id,\r\n specializations: {\r\n id,\r\n mapping_PolicyObject_NoClaimsDiscount: [\r\n {\r\n identifier: { Type: 'NoClaimsDiscountType', Name: 'RenewalNcd' },\r\n coefficient: 30,\r\n },\r\n {\r\n identifier: { Type: 'NoClaimsDiscountType', Name: 'CurrentNcd' },\r\n coefficient: 20,\r\n },\r\n ],\r\n mapping_PolicyObject_Motor_TerminationReason: {\r\n Name: 'TerminationReason',\r\n Value: 'None',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n};\r\nconst policy1 = {\r\n id,\r\n effectiveDateOffset: '18/08/2019T07:09:36',\r\n expirationDateOffset: parseOffsetDate('16/10/2020', DateFormat).format(DateOffsetFormat),\r\n referenceCode: 'A26121269',\r\n specializations: {\r\n id,\r\n mapping_Policy_Insurer: {\r\n id,\r\n insurer: { Type: 'InsurerCode', Name: 'InsurerB' },\r\n },\r\n },\r\n objects: {\r\n id,\r\n specializations: {\r\n id,\r\n mapping_Object_Motor_Vehicle: {\r\n id,\r\n make: { Type: 'VehicleMake', Name: 'Toyota2' },\r\n model: 'Prius',\r\n type: {\r\n Type: 'VehicleType', Name: 'PrivateCar',\r\n\r\n },\r\n },\r\n mapping_Object_Motor_VehicleRegistration: [\r\n { id, number: 'FEG' },\r\n ],\r\n },\r\n links: {\r\n mapping_PolicyObject: {\r\n id,\r\n specializations: {\r\n id,\r\n mapping_PolicyObject_NoClaimsDiscount: [\r\n {\r\n identifier: { Type: 'NoClaimsDiscountType', Name: 'RenewalNcd' },\r\n coefficient: 30,\r\n },\r\n {\r\n identifier: { Type: 'NoClaimsDiscountType', Name: 'CurrentNcd' },\r\n coefficient: 20,\r\n },\r\n ],\r\n mapping_PolicyObject_Motor_TerminationReason: {\r\n Name: 'TerminationReason',\r\n Value: 'None',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nconst policies = [\r\n policy,\r\n policy1,\r\n];\r\n\r\nconst personNumberAccident = {\r\n reconstruction: {\r\n explorePerson: {\r\n specializations: {\r\n shift_Person_Motor_ClaimHistoryStatistics: [\r\n {\r\n startDate: '19/07/2017T07:09:36',\r\n endDate: '19/07/2020T07:09:36',\r\n numberOfAccidentReportsThatThePersonWasInvolvedAsFirstPartyDriver: 2,\r\n numberOfAccidentReportsThatThePersonWasInvolvedAsFirstPartyDriverAndVehicleOwner: 2,\r\n numberOfAccidentReportsThatThePersonWasInvolvedAsFirstPartyVehicleOwner: 5,\r\n },\r\n {\r\n startDate: '19/07/2015T07:09:36',\r\n endDate: '19/07/2020T07:09:36',\r\n numberOfAccidentReportsThatThePersonWasInvolvedAsFirstPartyDriver: 5,\r\n numberOfAccidentReportsThatThePersonWasInvolvedAsFirstPartyDriverAndVehicleOwner: 3,\r\n numberOfAccidentReportsThatThePersonWasInvolvedAsFirstPartyVehicleOwner: 8,\r\n },\r\n ],\r\n },\r\n },\r\n },\r\n};\r\nconst personTotalClaimAmount = {\r\n reconstruction: {\r\n explorePerson: {\r\n specializations: {\r\n shift_Person_Motor_ClaimHistoryStatistics: [\r\n {\r\n startDate: '19/07/2017T07:09:36',\r\n endDate: '19/07/2020T07:09:36',\r\n totalClaimedAmountsWhereThePersonWasInvolvedAsFirstPartyVehicleOwner: 999,\r\n },\r\n {\r\n startDate: '19/07/2015T07:09:36',\r\n endDate: '19/07/2020T07:09:36',\r\n totalClaimedAmountsWhereThePersonWasInvolvedAsFirstPartyVehicleOwner: 1999,\r\n },\r\n ],\r\n },\r\n },\r\n },\r\n};\r\nconst vehicleNumberAccident = {\r\n reconstruction: {\r\n exploreVehicle: {\r\n specializations: {\r\n shift_Object_Motor_ClaimHistoryStatistics: [\r\n {\r\n startDate: '19/07/2017T07:09:36',\r\n endDate: '19/07/2020T07:09:36',\r\n numberOfAccidentReportsThatTheVehicleInvolvedAsFirstPartyVehicle: 3,\r\n },\r\n {\r\n startDate: '19/07/2015T07:09:36',\r\n endDate: '19/07/2020T07:09:36',\r\n numberOfAccidentReportsThatTheVehicleInvolvedAsFirstPartyVehicle: 7,\r\n },\r\n ],\r\n },\r\n },\r\n },\r\n};\r\nconst vehicleTotalClaimAmount = {\r\n reconstruction: {\r\n exploreVehicle: {\r\n specializations: {\r\n shift_Object_Motor_ClaimHistoryStatistics: [\r\n {\r\n startDate: '19/07/2017T07:09:36',\r\n endDate: '19/07/2020T07:09:36',\r\n totalClaimedAmountsWhereTheVehicleWasInvolvedAsFirstPartyVehicle: 799,\r\n },\r\n {\r\n startDate: '19/07/2015T07:09:36',\r\n endDate: '19/07/2020T07:09:36',\r\n totalClaimedAmountsWhereTheVehicleWasInvolvedAsFirstPartyVehicle: 1799,\r\n },\r\n ],\r\n },\r\n },\r\n },\r\n};\r\n\r\n\r\nexport const explorationMock = (config: ProcessedSubConfiguration) => [\r\n {\r\n request: {\r\n query: buildExplorationQuery(\r\n config.personDetails.context,\r\n config.personDetails.fields,\r\n ),\r\n variables: {\r\n ident: 'a',\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n reconstruction: {\r\n explorePerson: {\r\n specializations: {\r\n mapping_Person_Gears: {\r\n id: 1,\r\n name: 'Cheng Soh',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n }),\r\n },\r\n {\r\n request: {\r\n query: buildExplorationQuery(\r\n config.vehiclesByPerson.context,\r\n config.vehiclesByPerson.fields,\r\n ),\r\n variables: {\r\n ident: 'a',\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n reconstruction: {\r\n explorePerson: {\r\n policies,\r\n },\r\n },\r\n },\r\n }),\r\n },\r\n {\r\n request: {\r\n query: buildExplorationQuery(\r\n config.personNumberAccident.context,\r\n config.personNumberAccident.fields,\r\n ),\r\n variables: {\r\n ident: 'a',\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n reconstruction: personNumberAccident.reconstruction,\r\n },\r\n }),\r\n },\r\n {\r\n request: {\r\n query: buildExplorationQuery(\r\n config.personTotalClaimAmount.context,\r\n config.personTotalClaimAmount.fields,\r\n ),\r\n variables: {\r\n ident: 'a',\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n reconstruction: personTotalClaimAmount.reconstruction,\r\n },\r\n }),\r\n },\r\n {\r\n request: {\r\n query: buildExplorationQuery(\r\n config.vehicleNumberAccident.context,\r\n config.vehicleNumberAccident.fields,\r\n ),\r\n variables: {\r\n vrn: 'a',\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n reconstruction: vehicleNumberAccident.reconstruction,\r\n },\r\n }),\r\n },\r\n {\r\n request: {\r\n query: buildExplorationQuery(\r\n config.vehicleTotalClaimAmount.context,\r\n config.vehicleTotalClaimAmount.fields,\r\n ),\r\n variables: {\r\n vrn: 'a',\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n reconstruction: vehicleTotalClaimAmount.reconstruction,\r\n },\r\n }),\r\n },\r\n {\r\n request: {\r\n query: buildNcdEmailQuery(\r\n config.requestStatusFromInsurer.context,\r\n config.requestStatusFromInsurer.fields,\r\n ),\r\n variables: {\r\n ident: 'a',\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n reconstruction: {\r\n explorePerson: {\r\n specializations: {\r\n mapping_Person_Gears: {\r\n id: 1,\r\n name: 'Cheng Soh',\r\n },\r\n },\r\n policies,\r\n },\r\n },\r\n },\r\n }),\r\n },\r\n];\r\n","/* eslint-disable max-len */\r\nimport { getEnums } from '..';\r\n\r\nexport const enumsMock = [\r\n {\r\n request: {\r\n query: getEnums,\r\n },\r\n newData: () => (\r\n {\r\n data: {\r\n enums: {\r\n InsurerCode: [{ Name: 'InsurerCode', Value: 'Aig', ValueId: 2 }, { Name: 'InsurerCode', Value: 'Allianz', ValueId: 4 }, { Name: 'InsurerCode', Value: 'Axa', ValueId: 6 }, { Name: 'InsurerCode', Value: 'Chubb', ValueId: 58 }, { Name: 'InsurerCode', Value: 'ChinaTaiping', ValueId: 7 }, { Name: 'InsurerCode', Value: 'FirstCapital', ValueId: 14 }, { Name: 'InsurerCode', Value: 'IndiaInternational', ValueId: 19 }, { Name: 'InsurerCode', Value: 'LibertyInsurance', ValueId: 20 }, { Name: 'InsurerCode', Value: 'Etiqa', ValueId: 12 }, { Name: 'InsurerCode', Value: 'Msig', ValueId: 27 }, { Name: 'InsurerCode', Value: 'Ntuc', ValueId: 28 }, { Name: 'InsurerCode', Value: 'GreatEastern', ValueId: 52 }, { Name: 'InsurerCode', Value: 'Qbe', ValueId: 31 }, { Name: 'InsurerCode', Value: 'AlliedWorld', ValueId: 3 }, { Name: 'InsurerCode', Value: 'Ergo', ValueId: 11 }, { Name: 'InsurerCode', Value: 'Sompo', ValueId: 47 }, { Name: 'InsurerCode', Value: 'TokioMarine', ValueId: 33 }, { Name: 'InsurerCode', Value: 'Uoi', ValueId: 34 }, { Name: 'InsurerCode', Value: 'Lonpac', ValueId: 21 }, { Name: 'InsurerCode', Value: 'Eq', ValueId: 10 }, { Name: 'InsurerCode', Value: 'Aviva', ValueId: 5 }, { Name: 'InsurerCode', Value: 'ZurichInsurance', ValueId: 151 }, { Name: 'InsurerCode', Value: 'DirectAsia', ValueId: 8 }, { Name: 'InsurerCode', Value: 'HongLeong', ValueId: 49 }, { Name: 'InsurerCode', Value: 'Ecics', ValueId: 48 }, { Name: 'InsurerCode', Value: 'GreatAmericanInsurance', ValueId: 50 }, { Name: 'InsurerCode', Value: 'Fwd', ValueId: 51 }, { Name: 'InsurerCode', Value: 'Agi', ValueId: 54 }], AccidentType: [{ Name: 'MotorClaimCause', Value: 'MultiVehicleCrash', ValueId: 28 }, { Name: 'MotorClaimCause', Value: 'CollisionWithBicyclist', ValueId: 41 }, { Name: 'MotorClaimCause', Value: 'CollisionWithMotorcyclist', ValueId: 81 }, { Name: 'MotorClaimCause', Value: 'ParkingAccidentOrCollision', ValueId: 21 }, { Name: 'MotorClaimCause', Value: 'CollisionWithPedestrian', ValueId: 42 }, { Name: 'MotorClaimCause', Value: 'CollisionWithProperty', ValueId: 45 }, { Name: 'MotorClaimCause', Value: 'ChangingLanes', ValueId: 71 }, { Name: 'MotorClaimCause', Value: 'CrossJunction', ValueId: 82 }, { Name: 'MotorClaimCause', Value: 'CollisionFront', ValueId: 30 }, { Name: 'MotorClaimCause', Value: 'CollisionFrontToRear', ValueId: 83 }, { Name: 'MotorClaimCause', Value: 'MajorMinorRoad', ValueId: 84 }, { Name: 'MotorClaimCause', Value: 'OpenedVehicleDoor', ValueId: 85 }, { Name: 'MotorClaimCause', Value: 'Roundabout', ValueId: 86 }, { Name: 'MotorClaimCause', Value: 'UTurn', ValueId: 87 }, { Name: 'MotorClaimCause', Value: 'DrinkOrDrugDriving', ValueId: 46 }, { Name: 'MotorClaimCause', Value: 'Explosion', ValueId: 72 }, { Name: 'ClaimCause', Value: 'Flood', ValueId: 3 }, { Name: 'MotorClaimCause', Value: 'MaliciousDamage', ValueId: 54 }, { Name: 'MotorClaimCause', Value: 'CollisionWithFixedObject', ValueId: 38 }, { Name: 'MotorClaimCause', Value: 'NoAccident', ValueId: 62 }, { Name: 'MotorClaimCause', Value: 'CollisionOnSide', ValueId: 33 }, { Name: 'MotorClaimCause', Value: 'TotalTheft', ValueId: 47 }], MotorClaimCause: [{ Name: 'MotorClaimCause', Value: 'MultiVehicleCrash', ValueId: 28 }, { Name: 'MotorClaimCause', Value: 'CollisionWithBicyclist', ValueId: 41 }, { Name: 'MotorClaimCause', Value: 'CollisionWithMotorcyclist', ValueId: 81 }, { Name: 'MotorClaimCause', Value: 'ParkingAccidentOrCollision', ValueId: 21 }, { Name: 'MotorClaimCause', Value: 'CollisionWithPedestrian', ValueId: 42 }, { Name: 'MotorClaimCause', Value: 'CollisionWithProperty', ValueId: 45 }, { Name: 'MotorClaimCause', Value: 'ChangingLanes', ValueId: 71 }, { Name: 'MotorClaimCause', Value: 'CrossJunction', ValueId: 82 }, { Name: 'MotorClaimCause', Value: 'CollisionFront', ValueId: 30 }, { Name: 'MotorClaimCause', Value: 'CollisionFrontToRear', ValueId: 83 }, { Name: 'MotorClaimCause', Value: 'MajorMinorRoad', ValueId: 84 }, { Name: 'MotorClaimCause', Value: 'OpenedVehicleDoor', ValueId: 85 }, { Name: 'MotorClaimCause', Value: 'Roundabout', ValueId: 86 }, { Name: 'MotorClaimCause', Value: 'UTurn', ValueId: 87 }, { Name: 'MotorClaimCause', Value: 'DrinkOrDrugDriving', ValueId: 46 }, { Name: 'MotorClaimCause', Value: 'Explosion', ValueId: 72 }, { Name: 'MotorClaimCause', Value: 'MaliciousDamage', ValueId: 54 }, { Name: 'MotorClaimCause', Value: 'CollisionWithFixedObject', ValueId: 38 }, { Name: 'MotorClaimCause', Value: 'NoAccident', ValueId: 62 }, { Name: 'MotorClaimCause', Value: 'CollisionOnSide', ValueId: 33 }, { Name: 'MotorClaimCause', Value: 'TotalTheft', ValueId: 47 }], ClaimCause: [{ Name: 'ClaimCause', Value: 'Flood', ValueId: 3 }], CoverageType: [{ Name: 'CoverType', Value: 'ActLiability', ValueId: 43 }, { Name: 'CoverType', Value: 'Comprehensive', ValueId: 2 }, { Name: 'CoverType', Value: 'ThirdParty', ValueId: 1 }, { Name: 'CoverType', Value: 'ThirdPartyFireTheft', ValueId: 89 }], CoverType: [{ Name: 'CoverType', Value: 'ActLiability', ValueId: 43 }, { Name: 'CoverType', Value: 'Comprehensive', ValueId: 2 }, { Name: 'CoverType', Value: 'ThirdParty', ValueId: 1 }, { Name: 'CoverType', Value: 'ThirdPartyFireTheft', ValueId: 89 }], OwnerDriverRelationship: [{ Name: 'PersonRelation', Value: 'Spouse', ValueId: 1 }, { Name: 'PersonRelation', Value: 'Child', ValueId: 16 }, { Name: 'PersonRelation', Value: 'Friend', ValueId: 6 }, { Name: 'PersonRelation', Value: 'Sibling', ValueId: 17 }, { Name: 'PersonRelation', Value: 'Parent', ValueId: 2 }, { Name: 'PersonRelation', Value: 'Relative', ValueId: 4 }, { Name: 'PersonRelation', Value: 'PaidDriver', ValueId: 15 }, { Name: 'PersonRelation', Value: 'Employee', ValueId: 9 }, { Name: 'PersonRelation', Value: 'Other', ValueId: 18 }], VehicleMake: [{ Name: 'VehicleMake', Value: 'Acura', ValueId: 0 }, { Name: 'VehicleMake', Value: 'Adiva', ValueId: 1 }, { Name: 'VehicleMake', Value: 'Adria', ValueId: 2 }, { Name: 'VehicleMake', Value: 'Aixam', ValueId: 3 }, { Name: 'VehicleMake', Value: 'AlfaRomeo', ValueId: 4 }, { Name: 'VehicleMake', Value: 'Ankai', ValueId: 5 }, { Name: 'VehicleMake', Value: 'Aprilia', ValueId: 6 }, { Name: 'VehicleMake', Value: 'AstonMartin', ValueId: 7 }, { Name: 'VehicleMake', Value: 'Audi', ValueId: 8 }, { Name: 'VehicleMake', Value: 'Austin', ValueId: 9 }, { Name: 'VehicleMake', Value: 'Bajaj', ValueId: 10 }, { Name: 'VehicleMake', Value: 'Baotian', ValueId: 11 }, { Name: 'VehicleMake', Value: 'Bentley', ValueId: 12 }, { Name: 'VehicleMake', Value: 'Betamotor', ValueId: 13 }, { Name: 'VehicleMake', Value: 'Buick', ValueId: 14 }, { Name: 'VehicleMake', Value: 'Bmw', ValueId: 15 }, { Name: 'VehicleMake', Value: 'Buell', ValueId: 16 }, { Name: 'VehicleMake', Value: 'Bugati', ValueId: 17 }, { Name: 'VehicleMake', Value: 'Burstner', ValueId: 18 }, { Name: 'VehicleMake', Value: 'Cadillac', ValueId: 19 }, { Name: 'VehicleMake', Value: 'Cagiva', ValueId: 20 }, { Name: 'VehicleMake', Value: 'CanAm', ValueId: 21 }, { Name: 'VehicleMake', Value: 'Carbodies', ValueId: 22 }, { Name: 'VehicleMake', Value: 'Cbo', ValueId: 23 }, { Name: 'VehicleMake', Value: 'Chausson', ValueId: 24 }, { Name: 'VehicleMake', Value: 'Chery', ValueId: 25 }, { Name: 'VehicleMake', Value: 'Chevrolet', ValueId: 26 }, { Name: 'VehicleMake', Value: 'Chrysler', ValueId: 27 }, { Name: 'VehicleMake', Value: 'Citroen', ValueId: 28 }, { Name: 'VehicleMake', Value: 'Cpi', ValueId: 29 }, { Name: 'VehicleMake', Value: 'Dacia', ValueId: 30 }, { Name: 'VehicleMake', Value: 'Daelim', ValueId: 31 }, { Name: 'VehicleMake', Value: 'Daewoo', ValueId: 32 }, { Name: 'VehicleMake', Value: 'Daf', ValueId: 33 }, { Name: 'VehicleMake', Value: 'Daihatsu', ValueId: 34 }, { Name: 'VehicleMake', Value: 'Datsun', ValueId: 35 }, { Name: 'VehicleMake', Value: 'Derbi', ValueId: 36 }, { Name: 'VehicleMake', Value: 'Dethleffs', ValueId: 37 }, { Name: 'VehicleMake', Value: 'Dina', ValueId: 38 }, { Name: 'VehicleMake', Value: 'Dodge', ValueId: 39 }, { Name: 'VehicleMake', Value: 'Dolly', ValueId: 40 }, { Name: 'VehicleMake', Value: 'Dongfeng', ValueId: 41 }, { Name: 'VehicleMake', Value: 'Ducati', ValueId: 42 }, { Name: 'VehicleMake', Value: 'Dulevo', ValueId: 43 }, { Name: 'VehicleMake', Value: 'Faw', ValueId: 44 }, { Name: 'VehicleMake', Value: 'Ferrari', ValueId: 45 }, { Name: 'VehicleMake', Value: 'Fiat', ValueId: 46 }, { Name: 'VehicleMake', Value: 'Ford', ValueId: 47 }, { Name: 'VehicleMake', Value: 'Foton', ValueId: 48 }, { Name: 'VehicleMake', Value: 'Freightliner', ValueId: 49 }, { Name: 'VehicleMake', Value: 'Gasgas', ValueId: 50 }, { Name: 'VehicleMake', Value: 'Geely', ValueId: 51 }, { Name: 'VehicleMake', Value: 'GeneralMotors', ValueId: 52 }, { Name: 'VehicleMake', Value: 'Gilera', ValueId: 53 }, { Name: 'VehicleMake', Value: 'GoldenDragon', ValueId: 54 }, { Name: 'VehicleMake', Value: 'Hafei', ValueId: 55 }, { Name: 'VehicleMake', Value: 'HarleyDavidson', ValueId: 56 }, { Name: 'VehicleMake', Value: 'Higer', ValueId: 57 }, { Name: 'VehicleMake', Value: 'Hino', ValueId: 58 }, { Name: 'VehicleMake', Value: 'Hm', ValueId: 59 }, { Name: 'VehicleMake', Value: 'Holden', ValueId: 60 }, { Name: 'VehicleMake', Value: 'Honda', ValueId: 61 }, { Name: 'VehicleMake', Value: 'Hummer', ValueId: 62 }, { Name: 'VehicleMake', Value: 'Husqvarna', ValueId: 63 }, { Name: 'VehicleMake', Value: 'Hymermobil', ValueId: 64 }, { Name: 'VehicleMake', Value: 'Hyosung', ValueId: 65 }, { Name: 'VehicleMake', Value: 'Hyundai', ValueId: 66 }, { Name: 'VehicleMake', Value: 'Ikarus', ValueId: 67 }, { Name: 'VehicleMake', Value: 'Infiniti', ValueId: 68 }, { Name: 'VehicleMake', Value: 'Isuzu', ValueId: 69 }, { Name: 'VehicleMake', Value: 'Italika', ValueId: 70 }, { Name: 'VehicleMake', Value: 'Iveco', ValueId: 71 }, { Name: 'VehicleMake', Value: 'Jaguar', ValueId: 72 }, { Name: 'VehicleMake', Value: 'Jeep', ValueId: 73 }, { Name: 'VehicleMake', Value: 'Jonway', ValueId: 74 }, { Name: 'VehicleMake', Value: 'Joylong', ValueId: 75 }, { Name: 'VehicleMake', Value: 'Kawasaki', ValueId: 76 }, { Name: 'VehicleMake', Value: 'Keeway', ValueId: 77 }, { Name: 'VehicleMake', Value: 'Kenworth', ValueId: 78 }, { Name: 'VehicleMake', Value: 'Kia', ValueId: 79 }, { Name: 'VehicleMake', Value: 'Ktm', ValueId: 80 }, { Name: 'VehicleMake', Value: 'Kurazai', ValueId: 81 }, { Name: 'VehicleMake', Value: 'Kymco', ValueId: 82 }, { Name: 'VehicleMake', Value: 'Lada', ValueId: 83 }, { Name: 'VehicleMake', Value: 'Lamborghini', ValueId: 84 }, { Name: 'VehicleMake', Value: 'Lancia', ValueId: 85 }, { Name: 'VehicleMake', Value: 'LandRover', ValueId: 86 }, { Name: 'VehicleMake', Value: 'Lexus', ValueId: 87 }, { Name: 'VehicleMake', Value: 'Liebherr', ValueId: 88 }, { Name: 'VehicleMake', Value: 'Ligier', ValueId: 89 }, { Name: 'VehicleMake', Value: 'Lincoln', ValueId: 90 }, { Name: 'VehicleMake', Value: 'Linhai', ValueId: 91 }, { Name: 'VehicleMake', Value: 'Lotus', ValueId: 92 }, { Name: 'VehicleMake', Value: 'Man', ValueId: 93 }, { Name: 'VehicleMake', Value: 'Masa', ValueId: 94 }, { Name: 'VehicleMake', Value: 'Maserati', ValueId: 95 }, { Name: 'VehicleMake', Value: 'Mazda', ValueId: 96 }, { Name: 'VehicleMake', Value: 'Mbk', ValueId: 97 }, { Name: 'VehicleMake', Value: 'McLaren', ValueId: 98 }, { Name: 'VehicleMake', Value: 'McLouis', ValueId: 99 }, { Name: 'VehicleMake', Value: 'Megelli', ValueId: 100 }, { Name: 'VehicleMake', Value: 'Mercedes', ValueId: 101 }, { Name: 'VehicleMake', Value: 'Mercury', ValueId: 102 }, { Name: 'VehicleMake', Value: 'Mg', ValueId: 103 }, { Name: 'VehicleMake', Value: 'Microcar', ValueId: 104 }, { Name: 'VehicleMake', Value: 'Mini', ValueId: 105 }, { Name: 'VehicleMake', Value: 'Mitsubishi', ValueId: 106 }, { Name: 'VehicleMake', Value: 'Motobecane', ValueId: 107 }, { Name: 'VehicleMake', Value: 'MotoGuzzi', ValueId: 108 }, { Name: 'VehicleMake', Value: 'Mustang', ValueId: 109 }, { Name: 'VehicleMake', Value: 'Navistar', ValueId: 110 }, { Name: 'VehicleMake', Value: 'Nissan', ValueId: 111 }, { Name: 'VehicleMake', Value: 'Noble', ValueId: 112 }, { Name: 'VehicleMake', Value: 'Opel', ValueId: 113 }, { Name: 'VehicleMake', Value: 'Pagani', ValueId: 114 }, { Name: 'VehicleMake', Value: 'Perodua', ValueId: 115 }, { Name: 'VehicleMake', Value: 'Peugeot', ValueId: 116 }, { Name: 'VehicleMake', Value: 'Pgo', ValueId: 117 }, { Name: 'VehicleMake', Value: 'Piaggio', ValueId: 118 }, { Name: 'VehicleMake', Value: 'Pilote', ValueId: 119 }, { Name: 'VehicleMake', Value: 'Polaris', ValueId: 120 }, { Name: 'VehicleMake', Value: 'Pontiac', ValueId: 121 }, { Name: 'VehicleMake', Value: 'Porsche', ValueId: 122 }, { Name: 'VehicleMake', Value: 'Proton', ValueId: 123 }, { Name: 'VehicleMake', Value: 'Rapido', ValueId: 124 }, { Name: 'VehicleMake', Value: 'Renault', ValueId: 125 }, { Name: 'VehicleMake', Value: 'Rieju', ValueId: 126 }, { Name: 'VehicleMake', Value: 'RollsRoyce', ValueId: 127 }, { Name: 'VehicleMake', Value: 'Rover', ValueId: 128 }, { Name: 'VehicleMake', Value: 'Saab', ValueId: 129 }, { Name: 'VehicleMake', Value: 'Santana', ValueId: 130 }, { Name: 'VehicleMake', Value: 'Sanyang', ValueId: 131 }, { Name: 'VehicleMake', Value: 'Saturn', ValueId: 132 }, { Name: 'VehicleMake', Value: 'Scania', ValueId: 133 }, { Name: 'VehicleMake', Value: 'Seat', ValueId: 134 }, { Name: 'VehicleMake', Value: 'Sherco', ValueId: 135 }, { Name: 'VehicleMake', Value: 'Shineray', ValueId: 136 }, { Name: 'VehicleMake', Value: 'Skoda', ValueId: 137 }, { Name: 'VehicleMake', Value: 'SkyTeam', ValueId: 138 }, { Name: 'VehicleMake', Value: 'Smart', ValueId: 139 }, { Name: 'VehicleMake', Value: 'Ssangyong', ValueId: 140 }, { Name: 'VehicleMake', Value: 'Sterling', ValueId: 141 }, { Name: 'VehicleMake', Value: 'Subaru', ValueId: 142 }, { Name: 'VehicleMake', Value: 'Sunlong', ValueId: 143 }, { Name: 'VehicleMake', Value: 'Suzuki', ValueId: 144 }, { Name: 'VehicleMake', Value: 'Sym', ValueId: 145 }, { Name: 'VehicleMake', Value: 'Tgb', ValueId: 146 }, { Name: 'VehicleMake', Value: 'TheLondonTaxiCompany', ValueId: 147 }, { Name: 'VehicleMake', Value: 'Toyota', ValueId: 148 }, { Name: 'VehicleMake', Value: 'Triumph', ValueId: 149 }, { Name: 'VehicleMake', Value: 'Tvs', ValueId: 150 }, { Name: 'VehicleMake', Value: 'Unic', ValueId: 151 }, { Name: 'VehicleMake', Value: 'Vespa', ValueId: 152 }, { Name: 'VehicleMake', Value: 'Volkswagen', ValueId: 153 }, { Name: 'VehicleMake', Value: 'Volvo', ValueId: 154 }, { Name: 'VehicleMake', Value: 'White', ValueId: 155 }, { Name: 'VehicleMake', Value: 'Wuling', ValueId: 156 }, { Name: 'VehicleMake', Value: 'Yamaha', ValueId: 157 }, { Name: 'VehicleMake', Value: 'Yiying', ValueId: 158 }, { Name: 'VehicleMake', Value: 'Yutong', ValueId: 159 }, { Name: 'VehicleMake', Value: 'Zhongtong', ValueId: 160 }, { Name: 'VehicleMake', Value: 'Zongshen', ValueId: 161 }, { Name: 'VehicleMake', Value: 'Zotye', ValueId: 162 }, { Name: 'VehicleMake', Value: 'Tesla', ValueId: 163 }, { Name: 'VehicleMake', Value: 'Fendt', ValueId: 164 }, { Name: 'VehicleMake', Value: 'Tabbert', ValueId: 165 }, { Name: 'VehicleMake', Value: 'Lmc', ValueId: 166 }, { Name: 'VehicleMake', Value: 'JohnDeere', ValueId: 167 }, { Name: 'VehicleMake', Value: 'Deutz', ValueId: 168 }, { Name: 'VehicleMake', Value: 'Vauxhall', ValueId: 169 }, { Name: 'VehicleMake', Value: 'Abarth', ValueId: 170 }, { Name: 'VehicleMake', Value: 'DsAutomobiles', ValueId: 171 }, { Name: 'VehicleMake', Value: 'Aro', ValueId: 172 }, { Name: 'VehicleMake', Value: 'Challenger', ValueId: 173 }, { Name: 'VehicleMake', Value: 'Bavaria', ValueId: 174 }, { Name: 'VehicleMake', Value: 'Weinsberg', ValueId: 175 }, { Name: 'VehicleMake', Value: 'Laika', ValueId: 176 }, { Name: 'VehicleMake', Value: 'Eriba', ValueId: 177 }, { Name: 'VehicleMake', Value: 'Knauss', ValueId: 178 }, { Name: 'VehicleMake', Value: 'Joint', ValueId: 179 }, { Name: 'VehicleMake', Value: 'CVAN', ValueId: 180 }, { Name: 'VehicleMake', Value: 'BlueBird', ValueId: 181 }, { Name: 'VehicleMake', Value: 'Caterpillar', ValueId: 182 }, { Name: 'VehicleMake', Value: 'IHC', ValueId: 183 }, { Name: 'VehicleMake', Value: 'Peterbilt', ValueId: 184 }, { Name: 'VehicleMake', Value: 'Vanhool', ValueId: 185 }, { Name: 'VehicleMake', Value: 'Plymouth', ValueId: 186 }, { Name: 'VehicleMake', Value: 'Mack', ValueId: 187 }, { Name: 'VehicleMake', Value: 'Penske', ValueId: 188 }, { Name: 'VehicleMake', Value: 'Prevost', ValueId: 189 }, { Name: 'VehicleMake', Value: 'Ram', ValueId: 190 }, { Name: 'VehicleMake', Value: 'WesternStar', ValueId: 191 }, { Name: 'VehicleMake', Value: 'GreatDane', ValueId: 192 }, { Name: 'VehicleMake', Value: 'Utility', ValueId: 193 }, { Name: 'VehicleMake', Value: 'WabashNational', ValueId: 194 }, { Name: 'VehicleMake', Value: 'Fruehauf', ValueId: 195 }, { Name: 'VehicleMake', Value: 'WellsCargo', ValueId: 196 }, { Name: 'VehicleMake', Value: 'Trailmobile', ValueId: 197 }, { Name: 'VehicleMake', Value: 'TrailKing', ValueId: 198 }, { Name: 'VehicleMake', Value: 'Fontaine', ValueId: 199 }, { Name: 'VehicleMake', Value: 'HaulMark', ValueId: 200 }, { Name: 'VehicleMake', Value: 'Transcraft', ValueId: 201 }, { Name: 'VehicleMake', Value: 'Dorsey', ValueId: 202 }, { Name: 'VehicleMake', Value: 'Tata', ValueId: 203 }, { Name: 'VehicleMake', Value: 'Lifan', ValueId: 204 }, { Name: 'VehicleMake', Value: 'Galloper', ValueId: 205 }, { Name: 'VehicleMake', Value: 'Lanvertti', ValueId: 206 }, { Name: 'VehicleMake', Value: 'Cooltra', ValueId: 207 }, { Name: 'VehicleMake', Value: 'JDMSimpa', ValueId: 208 }, { Name: 'VehicleMake', Value: 'Aiyumo', ValueId: 209 }, { Name: 'VehicleMake', Value: 'MxMotor', ValueId: 210 }, { Name: 'VehicleMake', Value: 'Lml', ValueId: 211 }, { Name: 'VehicleMake', Value: 'Adly', ValueId: 212 }, { Name: 'VehicleMake', Value: 'Mcc', ValueId: 213 }, { Name: 'VehicleMake', Value: 'Malaguti', ValueId: 214 }, { Name: 'VehicleMake', Value: 'Kenrod', ValueId: 215 }, { Name: 'VehicleMake', Value: 'MotorHispania', ValueId: 216 }, { Name: 'VehicleMake', Value: 'Mtr', ValueId: 217 }, { Name: 'VehicleMake', Value: 'Hanway', ValueId: 218 }, { Name: 'VehicleMake', Value: 'Ride', ValueId: 219 }, { Name: 'VehicleMake', Value: 'WildLander', ValueId: 220 }, { Name: 'VehicleMake', Value: 'Generic', ValueId: 221 }, { Name: 'VehicleMake', Value: 'Ebro', ValueId: 222 }, { Name: 'VehicleMake', Value: 'NewHolland', ValueId: 223 }, { Name: 'VehicleMake', Value: 'Same', ValueId: 224 }, { Name: 'VehicleMake', Value: 'GMC', ValueId: 225 }, { Name: 'VehicleMake', Value: 'Scion', ValueId: 226 }, { Name: 'VehicleMake', Value: 'Fuso', ValueId: 227 }, { Name: 'VehicleMake', Value: 'Sinotruk', ValueId: 228 }, { Name: 'VehicleMake', Value: 'Berliet', ValueId: 229 }, { Name: 'VehicleMake', Value: 'JCB', ValueId: 230 }, { Name: 'VehicleMake', Value: 'Doosan', ValueId: 231 }, { Name: 'VehicleMake', Value: 'BAW', ValueId: 232 }, { Name: 'VehicleMake', Value: 'JMC', ValueId: 233 }, { Name: 'VehicleMake', Value: 'Bedford', ValueId: 234 }, { Name: 'VehicleMake', Value: 'Mahindra', ValueId: 235 }, { Name: 'VehicleMake', Value: 'Caterham', ValueId: 236 }, { Name: 'VehicleMake', Value: 'TofasFiat', ValueId: 237 }, { Name: 'VehicleMake', Value: 'Bmc', ValueId: 238 }, { Name: 'VehicleMake', Value: 'Hfkanuni', ValueId: 239 }, { Name: 'VehicleMake', Value: 'Temsa', ValueId: 240 }, { Name: 'VehicleMake', Value: 'Karsan', ValueId: 241 }, { Name: 'VehicleMake', Value: 'Otokar', ValueId: 242 }, { Name: 'VehicleMake', Value: 'Dfm', ValueId: 243 }, { Name: 'VehicleMake', Value: 'Gaz', ValueId: 244 }, { Name: 'VehicleMake', Value: 'Guleryuz', ValueId: 245 }, { Name: 'VehicleMake', Value: 'Anadol', ValueId: 246 }, { Name: 'VehicleMake', Value: 'Samsung', ValueId: 247 }, { Name: 'VehicleMake', Value: 'Neoplan', ValueId: 248 }, { Name: 'VehicleMake', Value: 'Setra', ValueId: 249 }, { Name: 'VehicleMake', Value: 'BredaMenarinibus', ValueId: 250 }, { Name: 'VehicleMake', Value: 'Oldsmobile', ValueId: 251 }, { Name: 'VehicleMake', Value: 'Jac', ValueId: 252 }, { Name: 'VehicleMake', Value: 'Tezeller', ValueId: 253 }, { Name: 'VehicleMake', Value: 'Zaz', ValueId: 254 }, { Name: 'VehicleMake', Value: 'Morgan', ValueId: 255 }, { Name: 'VehicleMake', Value: 'Turkkar', ValueId: 256 }, { Name: 'VehicleMake', Value: 'Morris', ValueId: 258 }, { Name: 'VehicleMake', Value: 'Haskar', ValueId: 259 }, { Name: 'VehicleMake', Value: 'Leyland', ValueId: 260 }, { Name: 'VehicleMake', Value: 'Oltena', ValueId: 261 }, { Name: 'VehicleMake', Value: 'Aleko', ValueId: 262 }, { Name: 'VehicleMake', Value: 'Liaz', ValueId: 263 }, { Name: 'VehicleMake', Value: 'Topolino', ValueId: 264 }, { Name: 'VehicleMake', Value: 'Turkar', ValueId: 265 }, { Name: 'VehicleMake', Value: 'Oltcit', ValueId: 266 }, { Name: 'VehicleMake', Value: 'Izh', ValueId: 267 }, { Name: 'VehicleMake', Value: 'Folkvan', ValueId: 268 }, { Name: 'VehicleMake', Value: 'Moskwich', ValueId: 269 }, { Name: 'VehicleMake', Value: 'Maybach', ValueId: 270 }, { Name: 'VehicleMake', Value: 'Alpina', ValueId: 271 }, { Name: 'VehicleMake', Value: 'Dfsk', ValueId: 272 }, { Name: 'VehicleMake', Value: 'Fargo', ValueId: 273 }, { Name: 'VehicleMake', Value: 'Ikco', ValueId: 274 }, { Name: 'VehicleMake', Value: 'Yuejin', ValueId: 275 }, { Name: 'VehicleMake', Value: 'Chana', ValueId: 276 }, { Name: 'VehicleMake', Value: 'Matra', ValueId: 277 }, { Name: 'VehicleMake', Value: 'Docker', ValueId: 278 }, { Name: 'VehicleMake', Value: 'Rymco', ValueId: 279 }, { Name: 'VehicleMake', Value: 'Maruti', ValueId: 280 }, { Name: 'VehicleMake', Value: 'GreatWall', ValueId: 281 }, { Name: 'VehicleMake', Value: 'Changhe', ValueId: 282 }, { Name: 'VehicleMake', Value: 'Simca', ValueId: 283 }, { Name: 'VehicleMake', Value: 'Jinbei', ValueId: 294 }, { Name: 'VehicleMake', Value: 'Facchini', ValueId: 295 }, { Name: 'VehicleMake', Value: 'Engesa', ValueId: 296 }, { Name: 'VehicleMake', Value: 'Effa', ValueId: 297 }, { Name: 'VehicleMake', Value: 'Dafra', ValueId: 298 }, { Name: 'VehicleMake', Value: 'Buggy', ValueId: 299 }, { Name: 'VehicleMake', Value: 'Brilliance', ValueId: 300 }, { Name: 'VehicleMake', Value: 'Berco', ValueId: 301 }, { Name: 'VehicleMake', Value: 'Brm', ValueId: 302 }, { Name: 'VehicleMake', Value: 'Agrale', ValueId: 303 }, { Name: 'VehicleMake', Value: 'Recrusul', ValueId: 304 }, { Name: 'VehicleMake', Value: 'Randon', ValueId: 305 }, { Name: 'VehicleMake', Value: 'Niju', ValueId: 306 }, { Name: 'VehicleMake', Value: 'ModeloEspecial', ValueId: 307 }, { Name: 'VehicleMake', Value: 'Marcopolo', ValueId: 308 }, { Name: 'VehicleMake', Value: 'Hobby', ValueId: 309 }, { Name: 'VehicleMake', Value: 'Kip', ValueId: 310 }, { Name: 'VehicleMake', Value: 'Sir', ValueId: 311 }, { Name: 'VehicleMake', Value: 'Tec', ValueId: 312 }, { Name: 'VehicleMake', Value: 'Harbeck', ValueId: 313 }, { Name: 'VehicleMake', Value: 'Trigano', ValueId: 314 }, { Name: 'VehicleMake', Value: 'Sterckeman', ValueId: 315 }, { Name: 'VehicleMake', Value: 'Barthau', ValueId: 316 }, { Name: 'VehicleMake', Value: 'Polar', ValueId: 317 }, { Name: 'VehicleMake', Value: 'Wilk', ValueId: 318 }, { Name: 'VehicleMake', Value: 'Weippert', ValueId: 319 }, { Name: 'VehicleMake', Value: 'Nomad', ValueId: 320 }, { Name: 'VehicleMake', Value: 'Capron', ValueId: 321 }, { Name: 'VehicleMake', Value: 'Nova', ValueId: 322 }, { Name: 'VehicleMake', Value: 'Cristall', ValueId: 323 }, { Name: 'VehicleMake', Value: 'Roadmaster', ValueId: 324 }, { Name: 'VehicleMake', Value: 'Messager', ValueId: 325 }, { Name: 'VehicleMake', Value: 'Caravelair', ValueId: 326 }, { Name: 'VehicleMake', Value: 'Kingway', ValueId: 327 }, { Name: 'VehicleMake', Value: 'CaseIH', ValueId: 328 }, { Name: 'VehicleMake', Value: 'Bimantara', ValueId: 329 }, { Name: 'VehicleMake', Value: 'Timor', ValueId: 330 }, { Name: 'VehicleMake', Value: 'Schwarzmuller', ValueId: 331 }, { Name: 'VehicleMake', Value: 'Talbot', ValueId: 1275 }, { Name: 'VehicleMake', Value: 'Avia', ValueId: 1276 }, { Name: 'VehicleMake', Value: 'Pegaso', ValueId: 1277 }, { Name: 'VehicleMake', Value: 'Willis', ValueId: 1278 }, { Name: 'VehicleMake', Value: 'Acm', ValueId: 1280 }, { Name: 'VehicleMake', Value: 'Alpine', ValueId: 1281 }, { Name: 'VehicleMake', Value: 'Asiamotors', ValueId: 1282 }, { Name: 'VehicleMake', Value: 'Autobianchi', ValueId: 1283 }, { Name: 'VehicleMake', Value: 'Auverland', ValueId: 1284 }, { Name: 'VehicleMake', Value: 'Bertone', ValueId: 1285 }, { Name: 'VehicleMake', Value: 'Detomaso', ValueId: 1286 }, { Name: 'VehicleMake', Value: 'Fsm', ValueId: 1287 }, { Name: 'VehicleMake', Value: 'Fso', ValueId: 1288 }, { Name: 'VehicleMake', Value: 'Innocenti', ValueId: 1289 }, { Name: 'VehicleMake', Value: 'Umm', ValueId: 1291 }, { Name: 'VehicleMake', Value: 'Wartburg', ValueId: 1292 }, { Name: 'VehicleMake', Value: 'Yugo', ValueId: 1293 }, { Name: 'VehicleMake', Value: 'Uaz', ValueId: 1294 }, { Name: 'VehicleMake', Value: 'Sunbeam', ValueId: 1295 }, { Name: 'VehicleMake', Value: 'Trabant', ValueId: 1296 }, { Name: 'VehicleMake', Value: 'Ausa', ValueId: 1297 }, { Name: 'VehicleMake', Value: 'Biscuter', ValueId: 1298 }, { Name: 'VehicleMake', Value: 'Goggomobil', ValueId: 1299 }, { Name: 'VehicleMake', Value: 'Marcos', ValueId: 1300 }, { Name: 'VehicleMake', Value: 'Zastava', ValueId: 1301 }, { Name: 'VehicleMake', Value: 'Humber', ValueId: 1302 }, { Name: 'VehicleMake', Value: 'Ac', ValueId: 1303 }, { Name: 'VehicleMake', Value: 'Dax', ValueId: 1304 }, { Name: 'VehicleMake', Value: 'Leonart', ValueId: 1305 }, { Name: 'VehicleMake', Value: 'Faztek', ValueId: 1306 }, { Name: 'VehicleMake', Value: 'Britishleyland', ValueId: 1307 }, { Name: 'VehicleMake', Value: 'Daimler', ValueId: 1309 }, { Name: 'VehicleMake', Value: 'Delorean', ValueId: 1311 }, { Name: 'VehicleMake', Value: 'Dkw', ValueId: 1312 }, { Name: 'VehicleMake', Value: 'Donkervoort', ValueId: 1313 }, { Name: 'VehicleMake', Value: 'Eagle', ValueId: 1314 }, { Name: 'VehicleMake', Value: 'Excalibur', ValueId: 1315 }, { Name: 'VehicleMake', Value: 'Geo', ValueId: 1316 }, { Name: 'VehicleMake', Value: 'Hsun', ValueId: 1317 }, { Name: 'VehicleMake', Value: 'Hillman', ValueId: 1318 }, { Name: 'VehicleMake', Value: 'Hispanosuiza', ValueId: 1319 }, { Name: 'VehicleMake', Value: 'Sumomotor', ValueId: 1320 }, { Name: 'VehicleMake', Value: 'Vikers', ValueId: 1321 }, { Name: 'VehicleMake', Value: 'Znen', ValueId: 1322 }, { Name: 'VehicleMake', Value: 'Huatian', ValueId: 1323 }, { Name: 'VehicleMake', Value: 'Mega', ValueId: 1325 }, { Name: 'VehicleMake', Value: 'Mplafer', ValueId: 1326 }, { Name: 'VehicleMake', Value: 'Nsu', ValueId: 1327 }, { Name: 'VehicleMake', Value: 'Packard', ValueId: 1328 }, { Name: 'VehicleMake', Value: 'Asya', ValueId: 1329 }, { Name: 'VehicleMake', Value: 'Panther', ValueId: 1330 }, { Name: 'VehicleMake', Value: 'Polini', ValueId: 1331 }, { Name: 'VehicleMake', Value: 'Yamazu', ValueId: 1332 }, { Name: 'VehicleMake', Value: 'Reliant', ValueId: 1333 }, { Name: 'VehicleMake', Value: 'Saier', ValueId: 1334 }, { Name: 'VehicleMake', Value: 'Singer', ValueId: 1335 }, { Name: 'VehicleMake', Value: 'Studebaker', ValueId: 1336 }, { Name: 'VehicleMake', Value: 'Tvr', ValueId: 1337 }, { Name: 'VehicleMake', Value: 'Venturi', ValueId: 1338 }, { Name: 'VehicleMake', Value: 'Wolseley', ValueId: 1339 }, { Name: 'VehicleMake', Value: 'Uro', ValueId: 1340 }, { Name: 'VehicleMake', Value: 'Viasa', ValueId: 1341 }, { Name: 'VehicleMake', Value: 'Willys', ValueId: 1342 }, { Name: 'VehicleMake', Value: 'Tbq', ValueId: 1343 }, { Name: 'VehicleMake', Value: 'Siata', ValueId: 1344 }, { Name: 'VehicleMake', Value: 'Vespacar', ValueId: 1345 }, { Name: 'VehicleMake', Value: 'Alfer', ValueId: 1346 }, { Name: 'VehicleMake', Value: 'Benelli', ValueId: 1347 }, { Name: 'VehicleMake', Value: 'Beta', ValueId: 1348 }, { Name: 'VehicleMake', Value: 'Bimota', ValueId: 1349 }, { Name: 'VehicleMake', Value: 'Bsa', ValueId: 1350 }, { Name: 'VehicleMake', Value: 'Bultaco', ValueId: 1351 }, { Name: 'VehicleMake', Value: 'Dnepr', ValueId: 1352 }, { Name: 'VehicleMake', Value: 'Enfield', ValueId: 1353 }, { Name: 'VehicleMake', Value: 'Fantic', ValueId: 1354 }, { Name: 'VehicleMake', Value: 'Husaberg', ValueId: 1356 }, { Name: 'VehicleMake', Value: 'Italjet', ValueId: 1357 }, { Name: 'VehicleMake', Value: 'Jawa', ValueId: 1358 }, { Name: 'VehicleMake', Value: 'Lambretta', ValueId: 1359 }, { Name: 'VehicleMake', Value: 'Laverda', ValueId: 1360 }, { Name: 'VehicleMake', Value: 'Montesa', ValueId: 1362 }, { Name: 'VehicleMake', Value: 'Motogac', ValueId: 1363 }, { Name: 'VehicleMake', Value: 'Muz', ValueId: 1364 }, { Name: 'VehicleMake', Value: 'Mz', ValueId: 1365 }, { Name: 'VehicleMake', Value: 'Norton', ValueId: 1366 }, { Name: 'VehicleMake', Value: 'Ossa', ValueId: 1367 }, { Name: 'VehicleMake', Value: 'Puch', ValueId: 1368 }, { Name: 'VehicleMake', Value: 'Sanglas', ValueId: 1369 }, { Name: 'VehicleMake', Value: 'Scorpa', ValueId: 1370 }, { Name: 'VehicleMake', Value: 'Siam', ValueId: 1371 }, { Name: 'VehicleMake', Value: 'Sismorini', ValueId: 1372 }, { Name: 'VehicleMake', Value: 'Trimak', ValueId: 1374 }, { Name: 'VehicleMake', Value: 'Ural', ValueId: 1375 }, { Name: 'VehicleMake', Value: 'Ccmarmstrong', ValueId: 1376 }, { Name: 'VehicleMake', Value: 'Amc', ValueId: 1377 }, { Name: 'VehicleMake', Value: 'Hispanoaleman', ValueId: 1378 }, { Name: 'VehicleMake', Value: 'Lticarbodies', ValueId: 1379 }, { Name: 'VehicleMake', Value: 'Gme', ValueId: 1380 }, { Name: 'VehicleMake', Value: 'Ldv', ValueId: 1381 }, { Name: 'VehicleMake', Value: 'Sava', ValueId: 1382 }, { Name: 'VehicleMake', Value: 'Fiatagri', ValueId: 1383 }, { Name: 'VehicleMake', Value: 'Masseyferguson', ValueId: 1384 }, { Name: 'VehicleMake', Value: 'Caseinternational', ValueId: 1385 }, { Name: 'VehicleMake', Value: 'Kubota', ValueId: 1386 }, { Name: 'VehicleMake', Value: 'Ivecopegaso', ValueId: 1387 }, { Name: 'VehicleMake', Value: 'Case', ValueId: 1388 }, { Name: 'VehicleMake', Value: 'Fiathitachi', ValueId: 1389 }, { Name: 'VehicleMake', Value: 'Komatsu', ValueId: 1390 }, { Name: 'VehicleMake', Value: 'Fiori', ValueId: 1391 }, { Name: 'VehicleMake', Value: 'Fermec', ValueId: 1392 }, { Name: 'VehicleMake', Value: 'Bobcat', ValueId: 1393 }, { Name: 'VehicleMake', Value: 'Barreiros', ValueId: 1394 }, { Name: 'VehicleMake', Value: 'Erf', ValueId: 1395 }, { Name: 'VehicleMake', Value: 'Factory', ValueId: 1396 }, { Name: 'VehicleMake', Value: 'Grecav', ValueId: 1397 }, { Name: 'VehicleMake', Value: 'Chatenet', ValueId: 1398 }, { Name: 'VehicleMake', Value: 'Jdm', ValueId: 1399 }, { Name: 'VehicleMake', Value: 'Ifamulticar', ValueId: 1400 }, { Name: 'VehicleMake', Value: 'Casalini', ValueId: 1401 }, { Name: 'VehicleMake', Value: 'Articcat', ValueId: 1402 }, { Name: 'VehicleMake', Value: 'Universalmotor', ValueId: 1403 }, { Name: 'VehicleMake', Value: 'Linde', ValueId: 1404 }, { Name: 'VehicleMake', Value: 'Titan', ValueId: 1405 }, { Name: 'VehicleMake', Value: 'Mvagusta', ValueId: 1406 }, { Name: 'VehicleMake', Value: 'Rewaco', ValueId: 1407 }, { Name: 'VehicleMake', Value: 'Voisin', ValueId: 1408 }, { Name: 'VehicleMake', Value: 'Still', ValueId: 1409 }, { Name: 'VehicleMake', Value: 'International', ValueId: 1410 }, { Name: 'VehicleMake', Value: 'Motomorini', ValueId: 1411 }, { Name: 'VehicleMake', Value: 'Steyr', ValueId: 1412 }, { Name: 'VehicleMake', Value: 'Guria', ValueId: 1413 }, { Name: 'VehicleMake', Value: 'Bellier', ValueId: 1414 }, { Name: 'VehicleMake', Value: 'Clark', ValueId: 1415 }, { Name: 'VehicleMake', Value: 'Merlin', ValueId: 1416 }, { Name: 'VehicleMake', Value: 'Hanomag', ValueId: 1417 }, { Name: 'VehicleMake', Value: 'Vaz', ValueId: 1418 }, { Name: 'VehicleMake', Value: 'Bucher', ValueId: 1419 }, { Name: 'VehicleMake', Value: 'Schmidt', ValueId: 1420 }, { Name: 'VehicleMake', Value: 'Tennant', ValueId: 1421 }, { Name: 'VehicleMake', Value: 'Om', ValueId: 1422 }, { Name: 'VehicleMake', Value: 'Carmix', ValueId: 1423 }, { Name: 'VehicleMake', Value: 'Royalclassic', ValueId: 1424 }, { Name: 'VehicleMake', Value: 'Adlymoto', ValueId: 1425 }, { Name: 'VehicleMake', Value: 'Dynapac', ValueId: 1426 }, { Name: 'VehicleMake', Value: 'Clipic', ValueId: 1427 }, { Name: 'VehicleMake', Value: 'Smc', ValueId: 1428 }, { Name: 'VehicleMake', Value: 'Ginaf', ValueId: 1429 }, { Name: 'VehicleMake', Value: 'Voxan', ValueId: 1430 }, { Name: 'VehicleMake', Value: 'Vexel', ValueId: 1431 }, { Name: 'VehicleMake', Value: 'Mfh', ValueId: 1432 }, { Name: 'VehicleMake', Value: 'Bombardier', ValueId: 1433 }, { Name: 'VehicleMake', Value: 'Motobi', ValueId: 1434 }, { Name: 'VehicleMake', Value: 'Austinhealey', ValueId: 1435 }, { Name: 'VehicleMake', Value: 'Schaeff', ValueId: 1436 }, { Name: 'VehicleMake', Value: 'Tturo', ValueId: 1437 }, { Name: 'VehicleMake', Value: 'Ducson', ValueId: 1438 }, { Name: 'VehicleMake', Value: 'Jincheng', ValueId: 1439 }, { Name: 'VehicleMake', Value: 'Fdisambron', ValueId: 1440 }, { Name: 'VehicleMake', Value: 'Nichiyu', ValueId: 1441 }, { Name: 'VehicleMake', Value: 'Westfield', ValueId: 1442 }, { Name: 'VehicleMake', Value: 'Hako', ValueId: 1443 }, { Name: 'VehicleMake', Value: 'Pilgrim', ValueId: 1444 }, { Name: 'VehicleMake', Value: 'Boom', ValueId: 1445 }, { Name: 'VehicleMake', Value: 'Cpimotor', ValueId: 1446 }, { Name: 'VehicleMake', Value: 'Mondial', ValueId: 1448 }, { Name: 'VehicleMake', Value: 'Macbor', ValueId: 1449 }, { Name: 'VehicleMake', Value: 'Sole', ValueId: 1450 }, { Name: 'VehicleMake', Value: 'Eton', ValueId: 1451 }, { Name: 'VehicleMake', Value: 'Tortone', ValueId: 1452 }, { Name: 'VehicleMake', Value: 'Neuson', ValueId: 1453 }, { Name: 'VehicleMake', Value: 'Effedi', ValueId: 1454 }, { Name: 'VehicleMake', Value: 'Ezgo', ValueId: 1455 }, { Name: 'VehicleMake', Value: 'Garelli', ValueId: 1456 }, { Name: 'VehicleMake', Value: 'Aeon', ValueId: 1457 }, { Name: 'VehicleMake', Value: 'Shelby', ValueId: 1458 }, { Name: 'VehicleMake', Value: 'Swm', ValueId: 1459 }, { Name: 'VehicleMake', Value: 'Douglas', ValueId: 1460 }, { Name: 'VehicleMake', Value: 'Mbs', ValueId: 1461 }, { Name: 'VehicleMake', Value: 'Amilcar', ValueId: 1462 }, { Name: 'VehicleMake', Value: 'Clubcar', ValueId: 1463 }, { Name: 'VehicleMake', Value: 'Ultima', ValueId: 1464 }, { Name: 'VehicleMake', Value: 'Lube', ValueId: 1465 }, { Name: 'VehicleMake', Value: 'Piercearrow', ValueId: 1466 }, { Name: 'VehicleMake', Value: 'Dinli', ValueId: 1467 }, { Name: 'VehicleMake', Value: 'Explorer', ValueId: 1468 }, { Name: 'VehicleMake', Value: 'Vincent', ValueId: 1469 }, { Name: 'VehicleMake', Value: 'Zhongyu', ValueId: 1470 }, { Name: 'VehicleMake', Value: 'Comarth', ValueId: 1471 }, { Name: 'VehicleMake', Value: 'Gsmoon', ValueId: 1472 }, { Name: 'VehicleMake', Value: 'Hudson', ValueId: 1473 }, { Name: 'VehicleMake', Value: 'Barossa', ValueId: 1474 }, { Name: 'VehicleMake', Value: 'Csr', ValueId: 1475 }, { Name: 'VehicleMake', Value: 'Gem', ValueId: 1476 }, { Name: 'VehicleMake', Value: 'Jinma', ValueId: 1477 }, { Name: 'VehicleMake', Value: 'Herchee', ValueId: 1478 }, { Name: 'VehicleMake', Value: 'Cfmoto', ValueId: 1479 }, { Name: 'VehicleMake', Value: 'Hongyt', ValueId: 1480 }, { Name: 'VehicleMake', Value: 'Velocette', ValueId: 1481 }, { Name: 'VehicleMake', Value: 'Narcla', ValueId: 1482 }, { Name: 'VehicleMake', Value: 'Sadrian', ValueId: 1483 }, { Name: 'VehicleMake', Value: 'Hammel', ValueId: 1484 }, { Name: 'VehicleMake', Value: 'Masai', ValueId: 1485 }, { Name: 'VehicleMake', Value: 'Sumco', ValueId: 1486 }, { Name: 'VehicleMake', Value: 'Banhe', ValueId: 1487 }, { Name: 'VehicleMake', Value: 'Jinlun', ValueId: 1488 }, { Name: 'VehicleMake', Value: 'Metrakit', ValueId: 1489 }, { Name: 'VehicleMake', Value: 'Pioneer', ValueId: 1490 }, { Name: 'VehicleMake', Value: 'Azel', ValueId: 1491 }, { Name: 'VehicleMake', Value: 'Teycars', ValueId: 1492 }, { Name: 'VehicleMake', Value: 'Easytrike', ValueId: 1493 }, { Name: 'VehicleMake', Value: 'Beyond', ValueId: 1494 }, { Name: 'VehicleMake', Value: 'Qingqi', ValueId: 1495 }, { Name: 'VehicleMake', Value: 'Cosmopolitan', ValueId: 1496 }, { Name: 'VehicleMake', Value: 'Huoniao', ValueId: 1497 }, { Name: 'VehicleMake', Value: 'Corvette', ValueId: 1498 }, { Name: 'VehicleMake', Value: 'Indian', ValueId: 1499 }, { Name: 'VehicleMake', Value: 'Terrot', ValueId: 1500 }, { Name: 'VehicleMake', Value: 'Dazon', ValueId: 1501 }, { Name: 'VehicleMake', Value: 'Branson', ValueId: 1502 }, { Name: 'VehicleMake', Value: 'Twike', ValueId: 1503 }, { Name: 'VehicleMake', Value: 'Hudsonboss', ValueId: 1504 }, { Name: 'VehicleMake', Value: 'Colibri', ValueId: 1505 }, { Name: 'VehicleMake', Value: 'Brixton', ValueId: 1506 }, { Name: 'VehicleMake', Value: 'Niu', ValueId: 1507 }, { Name: 'VehicleMake', Value: 'Askoll', ValueId: 1508 }, { Name: 'VehicleMake', Value: 'Tianying', ValueId: 1509 }, { Name: 'VehicleMake', Value: 'Malcor', ValueId: 1510 }, { Name: 'VehicleMake', Value: 'Erskine', ValueId: 1511 }, { Name: 'VehicleMake', Value: 'Zontes', ValueId: 1512 }, { Name: 'VehicleMake', Value: 'Cupra', ValueId: 1513 }, { Name: 'VehicleMake', Value: 'Mademoto', ValueId: 1514 }, { Name: 'VehicleMake', Value: 'Taro', ValueId: 1515 }, { Name: 'VehicleMake', Value: 'Royalalloy', ValueId: 1516 }, { Name: 'VehicleMake', Value: 'Mpmmotors', ValueId: 1518 }, { Name: 'VehicleMake', Value: 'Esagonoenergia', ValueId: 1519 }, { Name: 'VehicleMake', Value: 'Motozeta', ValueId: 1520 }, { Name: 'VehicleMake', Value: 'Jialing', ValueId: 1521 }, { Name: 'VehicleMake', Value: 'Kinroad', ValueId: 1522 }, { Name: 'VehicleMake', Value: 'Zhongneng', ValueId: 1523 }, { Name: 'VehicleMake', Value: 'Essex', ValueId: 1524 }, { Name: 'VehicleMake', Value: 'Goupil', ValueId: 1525 }, { Name: 'VehicleMake', Value: 'Goes', ValueId: 1526 }, { Name: 'VehicleMake', Value: 'Roa', ValueId: 1527 }, { Name: 'VehicleMake', Value: 'Ajp', ValueId: 1528 }, { Name: 'VehicleMake', Value: 'Motivas', ValueId: 1529 }, { Name: 'VehicleMake', Value: 'Xinling', ValueId: 1530 }, { Name: 'VehicleMake', Value: 'Dorton', ValueId: 1531 }, { Name: 'VehicleMake', Value: 'Meko', ValueId: 1532 }, { Name: 'VehicleMake', Value: 'Changjiang', ValueId: 1533 }, { Name: 'VehicleMake', Value: 'Zentaurus', ValueId: 1534 }, { Name: 'VehicleMake', Value: 'Zimmer', ValueId: 1535 }, { Name: 'VehicleMake', Value: 'Sukida', ValueId: 1536 }, { Name: 'VehicleMake', Value: 'Sachs', ValueId: 1537 }, { Name: 'VehicleMake', Value: 'Longbo', ValueId: 1538 }, { Name: 'VehicleMake', Value: 'Chongqing', ValueId: 1539 }, { Name: 'VehicleMake', Value: 'Monkeybikes', ValueId: 1540 }, { Name: 'VehicleMake', Value: 'Yiben', ValueId: 1541 }, { Name: 'VehicleMake', Value: 'Senke', ValueId: 1542 }, { Name: 'VehicleMake', Value: 'Thumpstar', ValueId: 1543 }, { Name: 'VehicleMake', Value: 'Jmstar', ValueId: 1544 }, { Name: 'VehicleMake', Value: 'Pexma', ValueId: 1545 }, { Name: 'VehicleMake', Value: 'Zipstar', ValueId: 1546 }, { Name: 'VehicleMake', Value: 'Imoto', ValueId: 1547 }, { Name: 'VehicleMake', Value: 'Regalraptor', ValueId: 1548 }, { Name: 'VehicleMake', Value: 'Lezebre', ValueId: 1549 }, { Name: 'VehicleMake', Value: 'Xingyue', ValueId: 1550 }, { Name: 'VehicleMake', Value: 'Bashan', ValueId: 1551 }, { Name: 'VehicleMake', Value: 'Wangye', ValueId: 1552 }, { Name: 'VehicleMake', Value: 'Jiajue', ValueId: 1553 }, { Name: 'VehicleMake', Value: 'Chituma', ValueId: 1554 }, { Name: 'VehicleMake', Value: 'Ironhorse', ValueId: 1555 }, { Name: 'VehicleMake', Value: 'Fosti', ValueId: 1556 }, { Name: 'VehicleMake', Value: 'Kataya', ValueId: 1557 }, { Name: 'VehicleMake', Value: 'Skygo', ValueId: 1558 }, { Name: 'VehicleMake', Value: 'Snow', ValueId: 1559 }, { Name: 'VehicleMake', Value: 'Sanya', ValueId: 1560 }, { Name: 'VehicleMake', Value: 'Lingben', ValueId: 1561 }, { Name: 'VehicleMake', Value: 'Alke', ValueId: 1562 }, { Name: 'VehicleMake', Value: 'Honlei', ValueId: 1563 }, { Name: 'VehicleMake', Value: 'Jaxin', ValueId: 1564 }, { Name: 'VehicleMake', Value: 'Dayun', ValueId: 1565 }, { Name: 'VehicleMake', Value: 'Rmh', ValueId: 1566 }, { Name: 'VehicleMake', Value: 'Mxonda', ValueId: 1567 }, { Name: 'VehicleMake', Value: 'Xgjao', ValueId: 1568 }, { Name: 'VehicleMake', Value: 'Can', ValueId: 1569 }, { Name: 'VehicleMake', Value: 'Wolfboy', ValueId: 1570 }, { Name: 'VehicleMake', Value: 'Fym', ValueId: 1571 }, { Name: 'VehicleMake', Value: 'Vento', ValueId: 1572 }, { Name: 'VehicleMake', Value: 'Minelli', ValueId: 1573 }, { Name: 'VehicleMake', Value: 'Sidebike', ValueId: 1574 }, { Name: 'VehicleMake', Value: 'Meitian', ValueId: 1575 }, { Name: 'VehicleMake', Value: 'Newera', ValueId: 1576 }, { Name: 'VehicleMake', Value: 'Iso', ValueId: 1577 }, { Name: 'VehicleMake', Value: 'Auburn', ValueId: 1578 }, { Name: 'VehicleMake', Value: 'Dhhaotian', ValueId: 1579 }, { Name: 'VehicleMake', Value: 'Lingyun', ValueId: 1580 }, { Name: 'VehicleMake', Value: 'Vonroad', ValueId: 1581 }, { Name: 'VehicleMake', Value: 'Haizhimeng', ValueId: 1583 }, { Name: 'VehicleMake', Value: 'Revatto', ValueId: 1584 }, { Name: 'VehicleMake', Value: 'Devilstrike', ValueId: 1585 }, { Name: 'VehicleMake', Value: 'Zhejiang', ValueId: 1586 }, { Name: 'VehicleMake', Value: 'Iresa', ValueId: 1587 }, { Name: 'VehicleMake', Value: 'Wuyang', ValueId: 1588 }, { Name: 'VehicleMake', Value: 'Giantco', ValueId: 1589 }, { Name: 'VehicleMake', Value: 'Bunker', ValueId: 1591 }, { Name: 'VehicleMake', Value: 'Frc', ValueId: 1592 }, { Name: 'VehicleMake', Value: 'Directbikes', ValueId: 1593 }, { Name: 'VehicleMake', Value: 'Asiawing', ValueId: 1594 }, { Name: 'VehicleMake', Value: 'Emf', ValueId: 1595 }, { Name: 'VehicleMake', Value: 'Um', ValueId: 1596 }, { Name: 'VehicleMake', Value: 'Jensen', ValueId: 1597 }, { Name: 'VehicleMake', Value: 'Dflong', ValueId: 1598 }, { Name: 'VehicleMake', Value: 'Dak', ValueId: 1599 }, { Name: 'VehicleMake', Value: 'Samada', ValueId: 1600 }, { Name: 'VehicleMake', Value: 'Shenke', ValueId: 1601 }, { Name: 'VehicleMake', Value: 'Nash', ValueId: 1602 }, { Name: 'VehicleMake', Value: 'Twa', ValueId: 1603 }, { Name: 'VehicleMake', Value: 'Alpinarenania', ValueId: 1604 }, { Name: 'VehicleMake', Value: 'Jiaxin', ValueId: 1605 }, { Name: 'VehicleMake', Value: 'Moon', ValueId: 1606 }, { Name: 'VehicleMake', Value: 'Kangxin', ValueId: 1607 }, { Name: 'VehicleMake', Value: 'Delage', ValueId: 1608 }, { Name: 'VehicleMake', Value: 'Vectrix', ValueId: 1609 }, { Name: 'VehicleMake', Value: 'Hibird', ValueId: 1610 }, { Name: 'VehicleMake', Value: 'Riya', ValueId: 1611 }, { Name: 'VehicleMake', Value: 'Rhon', ValueId: 1612 }, { Name: 'VehicleMake', Value: 'Peda', ValueId: 1613 }, { Name: 'VehicleMake', Value: 'Motormania', ValueId: 1614 }, { Name: 'VehicleMake', Value: 'Hanglong', ValueId: 1615 }, { Name: 'VehicleMake', Value: 'Oakland', ValueId: 1616 }, { Name: 'VehicleMake', Value: 'Guoben', ValueId: 1617 }, { Name: 'VehicleMake', Value: 'Armstrongsiddeley', ValueId: 1618 }, { Name: 'VehicleMake', Value: 'Zhenhua', ValueId: 1619 }, { Name: 'VehicleMake', Value: 'Zealsun', ValueId: 1620 }, { Name: 'VehicleMake', Value: 'Xinlun', ValueId: 1621 }, { Name: 'VehicleMake', Value: 'Elig', ValueId: 1622 }, { Name: 'VehicleMake', Value: 'Bereco', ValueId: 1623 }, { Name: 'VehicleMake', Value: 'Lamuratti', ValueId: 1624 }, { Name: 'VehicleMake', Value: 'Bugsbuggies', ValueId: 1625 }, { Name: 'VehicleMake', Value: 'Hartford', ValueId: 1626 }, { Name: 'VehicleMake', Value: 'Victory', ValueId: 1627 }, { Name: 'VehicleMake', Value: 'Palmo', ValueId: 1628 }, { Name: 'VehicleMake', Value: 'Fuxin', ValueId: 1629 }, { Name: 'VehicleMake', Value: 'Raider', ValueId: 1630 }, { Name: 'VehicleMake', Value: 'Ptv', ValueId: 1631 }, { Name: 'VehicleMake', Value: 'Orion', ValueId: 1632 }, { Name: 'VehicleMake', Value: 'Emax', ValueId: 1633 }, { Name: 'VehicleMake', Value: 'Huawin', ValueId: 1634 }, { Name: 'VehicleMake', Value: 'Bigdog', ValueId: 1635 }, { Name: 'VehicleMake', Value: 'Shangben', ValueId: 1636 }, { Name: 'VehicleMake', Value: 'Nanfang', ValueId: 1637 }, { Name: 'VehicleMake', Value: 'Buyang', ValueId: 1638 }, { Name: 'VehicleMake', Value: 'Trakker', ValueId: 1639 }, { Name: 'VehicleMake', Value: 'Raydan', ValueId: 1640 }, { Name: 'VehicleMake', Value: 'Erider', ValueId: 1641 }, { Name: 'VehicleMake', Value: 'Ajs', ValueId: 1642 }, { Name: 'VehicleMake', Value: 'Keiyong', ValueId: 1643 }, { Name: 'VehicleMake', Value: 'Minauto', ValueId: 1644 }, { Name: 'VehicleMake', Value: 'Uvm', ValueId: 1645 }, { Name: 'VehicleMake', Value: 'Xispa', ValueId: 1646 }, { Name: 'VehicleMake', Value: 'Efun', ValueId: 1647 }, { Name: 'VehicleMake', Value: 'Btm', ValueId: 1648 }, { Name: 'VehicleMake', Value: 'Jinling', ValueId: 1649 }, { Name: 'VehicleMake', Value: 'Romet', ValueId: 1650 }, { Name: 'VehicleMake', Value: 'Shuanghuan', ValueId: 1651 }, { Name: 'VehicleMake', Value: 'Via', ValueId: 1652 }, { Name: 'VehicleMake', Value: 'Riley', ValueId: 1653 }, { Name: 'VehicleMake', Value: 'Govecs', ValueId: 1654 }, { Name: 'VehicleMake', Value: 'Nimbus', ValueId: 1655 }, { Name: 'VehicleMake', Value: 'Hurtan', ValueId: 1656 }, { Name: 'VehicleMake', Value: 'Xinyang', ValueId: 1657 }, { Name: 'VehicleMake', Value: 'Grahanpaige', ValueId: 1658 }, { Name: 'VehicleMake', Value: 'Zero', ValueId: 1659 }, { Name: 'VehicleMake', Value: 'Mowag', ValueId: 1660 }, { Name: 'VehicleMake', Value: 'Zundapp', ValueId: 1661 }, { Name: 'VehicleMake', Value: 'Ariel', ValueId: 1662 }, { Name: 'VehicleMake', Value: 'Sanyou', ValueId: 1663 }, { Name: 'VehicleMake', Value: 'Sarolea', ValueId: 1664 }, { Name: 'VehicleMake', Value: 'Wottan', ValueId: 1665 }, { Name: 'VehicleMake', Value: 'Estrima', ValueId: 1666 }, { Name: 'VehicleMake', Value: 'Vespino', ValueId: 1667 }, { Name: 'VehicleMake', Value: 'Aermacchi', ValueId: 1668 }, { Name: 'VehicleMake', Value: 'Sokon', ValueId: 1669 }, { Name: 'VehicleMake', Value: 'Borgward', ValueId: 1670 }, { Name: 'VehicleMake', Value: 'Garia', ValueId: 1671 }, { Name: 'VehicleMake', Value: 'Heron', ValueId: 1672 }, { Name: 'VehicleMake', Value: 'Tomberlin', ValueId: 1673 }, { Name: 'VehicleMake', Value: 'Gowinn', ValueId: 1674 }, { Name: 'VehicleMake', Value: 'Krone', ValueId: 1675 }, { Name: 'VehicleMake', Value: 'Yinmu', ValueId: 1676 }, { Name: 'VehicleMake', Value: 'Setter', ValueId: 1677 }, { Name: 'VehicleMake', Value: 'Sincro', ValueId: 1678 }, { Name: 'VehicleMake', Value: 'Dollar', ValueId: 1679 }, { Name: 'VehicleMake', Value: 'Lintex', ValueId: 1680 }, { Name: 'VehicleMake', Value: 'Turbho', ValueId: 1681 }, { Name: 'VehicleMake', Value: 'Helectra', ValueId: 1682 }, { Name: 'VehicleMake', Value: 'Lemev', ValueId: 1683 }, { Name: 'VehicleMake', Value: 'Alvis', ValueId: 1684 }, { Name: 'VehicleMake', Value: 'Quadro', ValueId: 1685 }, { Name: 'VehicleMake', Value: 'Jtg', ValueId: 1686 }, { Name: 'VehicleMake', Value: 'Lectric', ValueId: 1688 }, { Name: 'VehicleMake', Value: 'Brammo', ValueId: 1689 }, { Name: 'VehicleMake', Value: 'Nimoto', ValueId: 1690 }, { Name: 'VehicleMake', Value: 'Tuktuk', ValueId: 1691 }, { Name: 'VehicleMake', Value: 'Hotchkiss', ValueId: 1692 }, { Name: 'VehicleMake', Value: 'Luyuan', ValueId: 1693 }, { Name: 'VehicleMake', Value: 'Razzo', ValueId: 1694 }, { Name: 'VehicleMake', Value: 'Ksr', ValueId: 1695 }, { Name: 'VehicleMake', Value: 'Wakan', ValueId: 1696 }, { Name: 'VehicleMake', Value: 'Scutum', ValueId: 1697 }, { Name: 'VehicleMake', Value: 'Zeroengineering', ValueId: 1698 }, { Name: 'VehicleMake', Value: 'Tntmotor', ValueId: 1699 }, { Name: 'VehicleMake', Value: 'Sinnis', ValueId: 1700 }, { Name: 'VehicleMake', Value: 'Mash', ValueId: 1701 }, { Name: 'VehicleMake', Value: 'Scramblerducati', ValueId: 1702 }, { Name: 'VehicleMake', Value: 'Innocentijwg', ValueId: 1703 }, { Name: 'VehicleMake', Value: 'Lexmoto', ValueId: 1704 }, { Name: 'VehicleMake', Value: 'Motrac', ValueId: 1705 }, { Name: 'VehicleMake', Value: 'Metisse', ValueId: 1706 }, { Name: 'VehicleMake', Value: 'Ds', ValueId: 1707 }, { Name: 'VehicleMake', Value: 'Pulse', ValueId: 1708 }, { Name: 'VehicleMake', Value: 'Landwind', ValueId: 1710 }, { Name: 'VehicleMake', Value: 'Spyracing', ValueId: 1711 }, { Name: 'VehicleMake', Value: 'Scomadi', ValueId: 1712 }, { Name: 'VehicleMake', Value: 'Bullit', ValueId: 1713 }, { Name: 'VehicleMake', Value: 'Standard', ValueId: 1714 }, { Name: 'VehicleMake', Value: 'Trs', ValueId: 1715 }, { Name: 'VehicleMake', Value: 'Vertigo', ValueId: 1716 }, { Name: 'VehicleMake', Value: 'Astor', ValueId: 1717 }, { Name: 'VehicleMake', Value: 'UDTrucks', ValueId: 1718 }, { Name: 'VehicleMake', Value: 'Claas', ValueId: 1719 }, { Name: 'VehicleMake', Value: 'Valtra', ValueId: 1720 }, { Name: 'VehicleMake', Value: 'Landini', ValueId: 1721 }, { Name: 'VehicleMake', Value: 'Merlo', ValueId: 1722 }, { Name: 'VehicleMake', Value: 'Valmet', ValueId: 1723 }, { Name: 'VehicleMake', Value: 'Samro', ValueId: 1724 }, { Name: 'VehicleMake', Value: 'Zetor', ValueId: 1725 }, { Name: 'VehicleMake', Value: 'Autostar', ValueId: 1726 }, { Name: 'VehicleMake', Value: 'Fenwick', ValueId: 1727 }, { Name: 'VehicleMake', Value: 'Fleurette', ValueId: 1728 }, { Name: 'VehicleMake', Value: 'Rimor', ValueId: 1729 }, { Name: 'VehicleMake', Value: 'Benimar', ValueId: 1730 }, { Name: 'VehicleMake', Value: 'Hyster', ValueId: 1731 }, { Name: 'VehicleMake', Value: 'Yale', ValueId: 1732 }, { Name: 'VehicleMake', Value: 'Yamasaki', ValueId: 1733 }], VehicleType: [{ Name: 'VehicleType', Value: 'PrivateCar', ValueId: 12 }, { Name: 'VehicleType', Value: 'CommercialVehicle', ValueId: 40 }, { Name: 'VehicleType', Value: 'Taxi', ValueId: 15 }, { Name: 'VehicleType', Value: 'PrivateHire', ValueId: 17 }, { Name: 'VehicleType', Value: 'Bus', ValueId: 1 }, { Name: 'VehicleType', Value: 'Motorcycle', ValueId: 5 }, { Name: 'VehicleType', Value: 'GoodsVehicle', ValueId: 41 }, { Name: 'VehicleType', Value: 'MotorTrade', ValueId: 42 }, { Name: 'VehicleType', Value: 'Tanker', ValueId: 43 }, { Name: 'VehicleType', Value: 'Official', ValueId: 31 }, { Name: 'VehicleType', Value: 'MobileEquipment', ValueId: 44 }], VehicleTransmission: [{ Name: 'VehicleTransmission', Value: 'Manual', ValueId: 2 }, { Name: 'VehicleTransmission', Value: 'TraditionalAutomatic', ValueId: 1 }], VehiclePurpose: [{ Name: 'VehiclePurpose', Value: 'PrivateHire', ValueId: 1 }, { Name: 'VehiclePurpose', Value: 'Employment', ValueId: 2 }, { Name: 'VehiclePurpose', Value: 'PrivateUse', ValueId: 3 }], Color: [{ Name: 'Color', Value: 'Red', ValueId: 1 }, { Name: 'Color', Value: 'Yellow', ValueId: 2 }, { Name: 'Color', Value: 'Blue', ValueId: 3 }, { Name: 'Color', Value: 'Brown', ValueId: 4 }, { Name: 'Color', Value: 'Orange', ValueId: 5 }, { Name: 'Color', Value: 'Green', ValueId: 6 }, { Name: 'Color', Value: 'Violet', ValueId: 7 }, { Name: 'Color', Value: 'Black', ValueId: 8 }, { Name: 'Color', Value: 'CarnationPink', ValueId: 9 }, { Name: 'Color', Value: 'YellowOrange', ValueId: 10 }, { Name: 'Color', Value: 'BlueGreen', ValueId: 11 }, { Name: 'Color', Value: 'RedViolet', ValueId: 12 }, { Name: 'Color', Value: 'RedOrange', ValueId: 13 }, { Name: 'Color', Value: 'YellowGreen', ValueId: 14 }, { Name: 'Color', Value: 'BlueViolet', ValueId: 15 }, { Name: 'Color', Value: 'White', ValueId: 16 }, { Name: 'Color', Value: 'VioletRed', ValueId: 17 }, { Name: 'Color', Value: 'Dandelion', ValueId: 18 }, { Name: 'Color', Value: 'Cerulean', ValueId: 19 }, { Name: 'Color', Value: 'Apricot', ValueId: 20 }, { Name: 'Color', Value: 'Scarlet', ValueId: 21 }, { Name: 'Color', Value: 'GreenYellow', ValueId: 22 }, { Name: 'Color', Value: 'Indigo', ValueId: 23 }, { Name: 'Color', Value: 'Gray', ValueId: 24 }], RoadSurface: [{ Name: 'RoadSurface', Value: 'Dry', ValueId: 1 }, { Name: 'RoadSurface', Value: 'Wet', ValueId: 2 }, { Name: 'OtherEnum', Value: 'Other', ValueId: 0 }], WeatherCondition: [{ Name: 'WeatherCondition', Value: 'Good', ValueId: 1 }, { Name: 'WeatherCondition', Value: 'Rain', ValueId: 5 }, { Name: 'OtherEnum', Value: 'Other', ValueId: 0 }], Gender: [{ Name: 'EntityGender', Value: 'Male', ValueId: 1 }, { Name: 'EntityGender', Value: 'Female', ValueId: 2 }], PhoneNumberType: [{ Name: 'PhoneNumberType', Value: 'Landline', ValueId: 3 }, { Name: 'PhoneNumberType', Value: 'Office', ValueId: 5 }, { Name: 'OtherEnum', Value: 'Other', ValueId: 0 }], NationalIdentifierType: [{ Name: 'NationalIdentifierType', Value: 'CompanyIdentificationNumber', ValueId: 4 }, { Name: 'NationalIdentifierType', Value: 'NationalIdentifier', ValueId: 1 }, { Name: 'NationalIdentifierType', Value: 'Passport', ValueId: 2 }, { Name: 'NationalIdentifierType', Value: 'WorkPermitNumber', ValueId: 5 }], ReportPurpose: [{ Name: 'ReportPurpose', Value: 'ClaimAgainstOwnInsuranceForCompensation', ValueId: 3 }, { Name: 'ReportPurpose', Value: 'ClaimToThirdPartyForCompensation', ValueId: 2 }, { Name: 'ReportPurpose', Value: 'ReportingOnly', ValueId: 1 }], MotorRecoveryType: [{ Name: 'MotorRecoveryType', Value: 'OwnVehicleDamage', ValueId: 1 }, { Name: 'MotorRecoveryType', Value: 'ThirdPartyVehicleDamage', ValueId: 2 }], ClosingType: [{ Name: 'ClosingType', Value: 'AtDraftStage', ValueId: 22 }, { Name: 'ClosingType', Value: 'Closed', ValueId: 52 }, { Name: 'ClosingType', Value: 'InProgress', ValueId: 0 }], BolaScenario: [{ Name: 'BolaScenario', Value: 'Scenario1', ValueId: 1 }, { Name: 'BolaScenario', Value: 'Scenario2', ValueId: 2 }, { Name: 'BolaScenario', Value: 'Scenario3', ValueId: 3 }, { Name: 'BolaScenario', Value: 'Scenario4', ValueId: 4 }, { Name: 'BolaScenario', Value: 'Scenario4A', ValueId: 5 }, { Name: 'BolaScenario', Value: 'Scenario4B', ValueId: 6 }, { Name: 'BolaScenario', Value: 'Scenario5', ValueId: 7 }, { Name: 'BolaScenario', Value: 'Scenario5A', ValueId: 8 }, { Name: 'BolaScenario', Value: 'Scenario5B', ValueId: 9 }, { Name: 'BolaScenario', Value: 'Scenario6', ValueId: 10 }, { Name: 'BolaScenario', Value: 'Scenario6A', ValueId: 11 }, { Name: 'BolaScenario', Value: 'Scenario6B', ValueId: 12 }, { Name: 'BolaScenario', Value: 'Scenario6C', ValueId: 13 }, { Name: 'BolaScenario', Value: 'Scenario27', ValueId: 14 }, { Name: 'BolaScenario', Value: 'Scenario27A', ValueId: 15 }], DocumentCategory: [{ Name: 'DocumentCategory', Value: 'PoliceTranscript', ValueId: 13 }, { Name: 'DocumentCategory', Value: 'Handwritten', ValueId: 11 }, { Name: 'DocumentCategory', Value: 'Photo', ValueId: 2 }], ODRecoveryDocumentCategory: [{ Name: 'DocumentCategory', Value: 'PoliceTranscript', ValueId: 13 }, { Name: 'DocumentCategory', Value: 'LossAdjusterReport', ValueId: 17 }, { Name: 'DocumentCategory', Value: 'RepairInvoice', ValueId: 33 }, { Name: 'DocumentCategory', Value: 'IncidentPhoto', ValueId: 32 }, { Name: 'DocumentCategory', Value: 'IncidentVideo', ValueId: 30 }, { Name: 'DocumentCategory', Value: 'UnClassified', ValueId: 7 }], TPRecoveryDocumentCategory: [{ Name: 'DocumentCategory', Value: 'NotificationLetterForThirdPartyClaim', ValueId: 39 }, { Name: 'DocumentCategory', Value: 'LetterOfRecoveryDemand', ValueId: 34 }, { Name: 'DocumentCategory', Value: 'DischargeVoucher', ValueId: 38 }, { Name: 'DocumentCategory', Value: 'LegalInvoice', ValueId: 35 }, { Name: 'DocumentCategory', Value: 'PaymentVoucher', ValueId: 36 }, { Name: 'DocumentCategory', Value: 'IncidentPhoto', ValueId: 32 }, { Name: 'DocumentCategory', Value: 'IncidentVideo', ValueId: 30 }, { Name: 'DocumentCategory', Value: 'UnClassified', ValueId: 7 }], RecoveryState: [{ Name: 'RecoveryState', Value: 'None', ValueId: 1 }, { Name: 'RecoveryState', Value: 'PendingCounterActionByRp', ValueId: 2 }, { Name: 'RecoveryState', Value: 'Closed', ValueId: 3 }, { Name: 'RecoveryState', Value: 'PendingSecondActionByIp', ValueId: 4 }, { Name: 'RecoveryState', Value: 'PendingPayment', ValueId: 5 }, { Name: 'RecoveryState', Value: 'PendingFinalActionByRp', ValueId: 6 }, { Name: 'RecoveryState', Value: 'PendingPaymentAcknowledgeByIp', ValueId: 7 }, { Name: 'RecoveryState', Value: 'PaymentDefaulted', ValueId: 8 }, { Name: 'RecoveryState', Value: 'PendingDrmEscalationResponseByCounterParty', ValueId: 9 }, { Name: 'RecoveryState', Value: 'PendingDrmApproveInitiateEscalation', ValueId: 10 }, { Name: 'RecoveryState', Value: 'PendingDrmApproveRespondEscalation', ValueId: 11 }, { Name: 'RecoveryState', Value: 'PendingGiaAdjudication', ValueId: 12 }], RecoverySendbackReason: [{ Name: 'RecoverySendbackReason', Value: 'IncompleteSubmission', ValueId: 1 }, { Name: 'RecoverySendbackReason', Value: 'InvalidVehicleNumber', ValueId: 3 }, { Name: 'RecoverySendbackReason', Value: 'NoAccidentReportFromRp', ValueId: 4 }, { Name: 'RecoverySendbackReason', Value: 'VehicleNotInsuredWithRp', ValueId: 2 }], RecoveryWaiveReason: [{ Name: 'RecoveryWaiveReason', Value: 'AbandonRecovery', ValueId: 1 }, { Name: 'RecoveryWaiveReason', Value: 'OfflineSettlemnt', ValueId: 2 }, { Name: 'RecoveryWaiveReason', Value: 'AcceptInitialOffer', ValueId: 3 }], RecoveryIPWaiveReason: [{ Name: 'RecoveryWaiveReason', Value: 'AbandonRecovery', ValueId: 1 }, { Name: 'RecoveryWaiveReason', Value: 'OfflineSettlemnt', ValueId: 2 }], RecoveryRPWaiveReason: [{ Name: 'RecoveryWaiveReason', Value: 'AcceptInitialOffer', ValueId: 3 }], RecoveryIPWithdrawReason: [{ Name: 'RecoveryWithdrawReason', Value: 'WaiveSubrogation', ValueId: 1 }, { Name: 'RecoveryWithdrawReason', Value: 'AmicableSettlement', ValueId: 3 }, { Name: 'RecoveryWithdrawReason', Value: 'AcknowledgeWidrawal', ValueId: 4 }, { Name: 'RecoveryWithdrawReason', Value: 'PaymentReceived', ValueId: 5 }], RecoveryRPWithdrawReason: [{ Name: 'RecoveryWithdrawReason', Value: 'AcceptInitialOffer', ValueId: 2 }, { Name: 'RecoveryWithdrawReason', Value: 'AmicableSettlement', ValueId: 3 }], PersonRelation: [{ Name: 'PersonRelation', Value: 'Spouse', ValueId: 1 }, { Name: 'PersonRelation', Value: 'Parent', ValueId: 2 }, { Name: 'PersonRelation', Value: 'Colleague', ValueId: 3 }, { Name: 'PersonRelation', Value: 'Relative', ValueId: 4 }, { Name: 'PersonRelation', Value: 'Employer', ValueId: 5 }, { Name: 'PersonRelation', Value: 'Friend', ValueId: 6 }, { Name: 'PersonRelation', Value: 'Host', ValueId: 7 }, { Name: 'PersonRelation', Value: 'Manager', ValueId: 8 }, { Name: 'PersonRelation', Value: 'Employee', ValueId: 9 }, { Name: 'PersonRelation', Value: 'Member', ValueId: 10 }, { Name: 'PersonRelation', Value: 'SamePerson', ValueId: 11 }, { Name: 'PersonRelation', Value: 'PresumedSamePerson', ValueId: 12 }, { Name: 'PersonRelation', Value: 'Sponsor', ValueId: 13 }, { Name: 'PersonRelation', Value: 'PolicyHolderFor', ValueId: 14 }, { Name: 'PersonRelation', Value: 'PaidDriver', ValueId: 15 }, { Name: 'PersonRelation', Value: 'Child', ValueId: 16 }, { Name: 'PersonRelation', Value: 'Sibling', ValueId: 17 }, { Name: 'PersonRelation', Value: 'Other', ValueId: 18 }], PaymentMode: [{ Name: 'PaymentMode', Value: 'BankTransfer', ValueId: 1 }, { Name: 'PaymentMode', Value: 'Cheque', ValueId: 2 }, { Name: 'PaymentMode', Value: 'Cash', ValueId: 3 }, { Name: 'PaymentMode', Value: 'Currency', ValueId: 4 }, { Name: 'PaymentMode', Value: 'AutomaticDebit', ValueId: 5 }, { Name: 'PaymentMode', Value: 'Unknown', ValueId: 6 }],\r\n },\r\n },\r\n }\r\n ),\r\n },\r\n];\r\n","/* eslint-disable @typescript-eslint/camelcase */\r\n/* eslint-disable max-len */\r\nimport { getOfficers, getPoliceStations, getBolaCases } from '..';\r\nimport { getVehicleModels, getArcInsurers } from '../query-builder';\r\n\r\nexport const insurersMock = [\r\n {\r\n request: {\r\n query: getArcInsurers,\r\n },\r\n newData: () => ({\r\n data: {\r\n me: {\r\n identityId: '46d84dc9-a95e-420e-b6d4-a1c9402caf9f',\r\n arcEntity: {\r\n arc: {\r\n insurers: [\r\n {\r\n insurerCode: {\r\n Type: 'InsurerCode',\r\n Name: 'Aig',\r\n },\r\n },\r\n {\r\n insurerCode: {\r\n Type: 'InsurerCode',\r\n Name: 'Axa',\r\n },\r\n },\r\n {\r\n insurerCode: {\r\n Type: 'InsurerCode',\r\n Name: 'InsurerA',\r\n },\r\n },\r\n {\r\n insurerCode: {\r\n Type: 'InsurerCode',\r\n Name: 'InsurerB',\r\n },\r\n },\r\n {\r\n insurerCode: {\r\n Type: 'InsurerCode',\r\n Name: 'Ntuc',\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n },\r\n },\r\n }),\r\n }];\r\n\r\nexport const officersMock = [\r\n {\r\n request: {\r\n query: getOfficers,\r\n },\r\n newData: () => ({\r\n data: {\r\n me: {\r\n identityId: '46d84dc9-a95e-420e-b6d4-a1c9402caf9f',\r\n insurerEntity: [\r\n {\r\n insurer: {\r\n insurerEntities: [\r\n {\r\n person: {\r\n specializations: {\r\n id: 1,\r\n mapping_Person_Gears: {\r\n id: 1,\r\n name: 'Thibault H.',\r\n },\r\n },\r\n },\r\n identity: {\r\n identityId: '46d84dc9-a95e-420e-b6d4-a1c9402caf9f',\r\n },\r\n },\r\n {\r\n person: {\r\n specializations: {\r\n id: 2,\r\n mapping_Person_Gears: {\r\n id: 2,\r\n name: 'Siying Z.',\r\n },\r\n },\r\n },\r\n identity: {\r\n identityId: '8c10c1d4-7b06-4aa8-9c05-5531d7ec3eb9',\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 policeStationsMock = [\r\n {\r\n request: {\r\n query: getPoliceStations,\r\n },\r\n newData: () => ({\r\n data: {\r\n policeStations: [\r\n {\r\n id: 60,\r\n recordOwner: {\r\n Type: 'InsurerCode',\r\n Name: 'Gia',\r\n },\r\n specializations: {\r\n id: 60,\r\n mapping_Person_Gears: {\r\n id: 60,\r\n name: 'Rochor Neighbourhood Police Centre',\r\n },\r\n },\r\n addresses: [\r\n {\r\n fullAddress: '11 Kampong Kapor Rd, Singapore 208678',\r\n },\r\n ],\r\n phoneNumbers: [\r\n {\r\n phoneNumberType: {\r\n Type: 'PhoneNumberType',\r\n Name: 'Phone',\r\n },\r\n number: '12345678',\r\n },\r\n {\r\n phoneNumberType: {\r\n Type: 'PhoneNumberType',\r\n Name: 'Fax',\r\n },\r\n number: '123456780987',\r\n },\r\n ],\r\n },\r\n {\r\n id: 61,\r\n recordOwner: {\r\n Type: 'InsurerCode',\r\n Name: 'Gia',\r\n },\r\n specializations: {\r\n id: 61,\r\n mapping_Person_Gears: {\r\n id: 61,\r\n name: 'Central Police Division',\r\n },\r\n },\r\n addresses: [\r\n {\r\n fullAddress: 'Block A, 391 New Bridge Road, #03-112, Police Cantonment Complex, 088762',\r\n },\r\n ],\r\n phoneNumbers: [\r\n {\r\n phoneNumberType: {\r\n Type: 'PhoneNumberType',\r\n Name: 'Phone',\r\n },\r\n number: '87654321',\r\n },\r\n {\r\n phoneNumberType: {\r\n Type: 'PhoneNumberType',\r\n Name: 'Fax',\r\n },\r\n number: '876543217654',\r\n },\r\n ],\r\n },\r\n {\r\n id: 62,\r\n recordOwner: {\r\n Type: 'InsurerCode',\r\n Name: 'Gia',\r\n },\r\n specializations: {\r\n id: 62,\r\n mapping_Person_Gears: {\r\n id: 62,\r\n name: 'Traffic Police',\r\n },\r\n },\r\n addresses: [\r\n {\r\n fullAddress: '10 Ubi Ave 3, Singapore 408865',\r\n },\r\n ],\r\n phoneNumbers: [\r\n {\r\n phoneNumberType: {\r\n Type: 'PhoneNumberType',\r\n Name: 'Phone',\r\n },\r\n number: '12894376',\r\n },\r\n {\r\n phoneNumberType: {\r\n Type: 'PhoneNumberType',\r\n Name: 'Fax',\r\n },\r\n number: '128943761231',\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n }),\r\n }];\r\n\r\nexport const bolaMock = [\r\n {\r\n request: {\r\n query: getBolaCases,\r\n },\r\n newData: () => ({\r\n data: {\r\n bolaCases: [\r\n {\r\n caseEnumIdentifier: 'BolaScenario',\r\n caseEnumValueId: 1,\r\n description: 'Driver of the vehicle behind will be 100% liable for the losses occured to the vehicle in front.',\r\n document: {\r\n id: 1,\r\n },\r\n },\r\n ],\r\n },\r\n }),\r\n },\r\n];\r\n\r\nexport const vehicleModelsMock = [\r\n // BMW\r\n {\r\n request: {\r\n query: getVehicleModels,\r\n variables: {\r\n make: 'VehicleMake.Bmw',\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n vehicleModels: [\r\n { id: 1, make: { Type: 'VehicleMake', Name: 'Bmw' }, model: 'Serie 1' },\r\n { id: 2, make: { Type: 'VehicleMake', Name: 'Bmw' }, model: 'Serie 3' },\r\n { id: 3, make: { Type: 'VehicleMake', Name: 'Bmw' }, model: 'Serie 5' },\r\n ],\r\n },\r\n }),\r\n },\r\n // Nissan\r\n {\r\n request: {\r\n query: getVehicleModels,\r\n variables: {\r\n make: 'VehicleMake.Nissan',\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n vehicleModels: [\r\n { id: 4, make: { Type: 'VehicleMake', Name: 'Nissan' }, model: 'Qashqai' },\r\n { id: 5, make: { Type: 'VehicleMake', Name: 'Nissan' }, model: 'X-Trail' },\r\n { id: 6, make: { Type: 'VehicleMake', Name: 'Nissan' }, model: 'Note' },\r\n ],\r\n },\r\n }),\r\n },\r\n // Honda\r\n {\r\n request: {\r\n query: getVehicleModels,\r\n variables: {\r\n make: 'VehicleMake.Honda',\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n vehicleModels: [\r\n { id: 7, make: { Type: 'VehicleMake', Name: 'Honda' }, model: 'Civic' },\r\n { id: 8, make: { Type: 'VehicleMake', Name: 'Honda' }, model: 'Jazz' },\r\n { id: 9, make: { Type: 'VehicleMake', Name: 'Honda' }, model: 'CR-V' },\r\n ],\r\n },\r\n }),\r\n },\r\n];\r\n","import { ProcessedGearsConfig } from '../../config/configuration/types/GearsConfig';\r\nimport { buildQuery } from '..';\r\nimport { accidentReportingsMock } from './accidentReportingsMock';\r\nimport { accidentReportsMock } from './accidentReportsMock';\r\nimport { explorationMock } from './explorationMock';\r\nimport { arcsMock } from './arcsMock';\r\nimport { enumsMock } from './enumsMock';\r\nimport {\r\n officersMock, policeStationsMock, bolaMock,\r\n vehicleModelsMock, insurersMock,\r\n} from './entitiesMock';\r\nimport { recoveryMock } from './recoveryMock';\r\n\r\nexport const mocks = (config: ProcessedGearsConfig) => [\r\n ...accidentReportingsMock,\r\n ...accidentReportsMock(config.accidentReport),\r\n ...recoveryMock(config.recovery),\r\n ...arcsMock(config.arc),\r\n ...enumsMock,\r\n ...insurersMock,\r\n ...officersMock,\r\n ...policeStationsMock,\r\n ...bolaMock,\r\n ...vehicleModelsMock,\r\n ...explorationMock(config.exploration),\r\n {\r\n request: {\r\n query: buildQuery(['claim'], [['id'], ['referenceCode']]),\r\n variables: {\r\n id: 2,\r\n },\r\n },\r\n result: {\r\n data: {\r\n claim: { id: 2, referenceCode: 'CLAIM N1' },\r\n },\r\n },\r\n },\r\n {\r\n request: {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n query: buildQuery(config.tests.kvCard!.context, config.tests.kvCard!.fields),\r\n variables: {\r\n id: 5,\r\n },\r\n },\r\n result: {\r\n data: {\r\n claim: { id: 5, persons: [{ id: 5, name: 'John Doe', recordOwner: 'SHIFT' }] },\r\n },\r\n },\r\n },\r\n];\r\n","/* eslint-disable @typescript-eslint/camelcase */\r\n/* eslint-disable max-len */\r\nimport { DateFormat, DateOffsetFormat } from 'src/constants';\r\nimport { parseOffsetDate } from 'src/utils';\r\nimport { RecoveryConfig } from '../../config/configuration';\r\nimport { ProcessedSubConfiguration } from '../../libs/config';\r\nimport { buildQuery, buildListQuery } from '../query-builder';\r\nimport { recoveryData } from './recoveryMockObjects';\r\n\r\nexport const recoveryMock = (config: ProcessedSubConfiguration) => [\r\n // Recoveries list\r\n {\r\n request: {\r\n query: buildListQuery(\r\n config.list.context,\r\n config.list.fields,\r\n 'RecoveriesFields',\r\n ),\r\n variables: {\r\n parameters: { start: 0, length: 10 },\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n recoveryList: {\r\n totalCount: 2,\r\n itemsCount: 2,\r\n items: [\r\n {\r\n id: 1,\r\n referenceCode: 'RCV7104',\r\n accidentReport: {\r\n id: 12,\r\n objects: [\r\n {\r\n id: 2,\r\n specializations: {\r\n id: 38393,\r\n mapping_Object_Motor_VehicleRegistration: [{ id: 2, number: 'SAK1915C' }],\r\n },\r\n },\r\n ],\r\n specializations: {\r\n id: 12,\r\n mapping_Claim_Event: {\r\n id: 12,\r\n eventDateOffset: parseOffsetDate('15/02/2019', DateFormat).format(DateOffsetFormat),\r\n },\r\n },\r\n },\r\n workflow: {\r\n id: 54,\r\n lastWorkflowStep: {\r\n id: 42,\r\n state: 'Initial offer',\r\n type: 'OD recovery',\r\n },\r\n },\r\n },\r\n {\r\n id: 1,\r\n referenceCode: 'RCV9992',\r\n accidentReport: {\r\n id: 2,\r\n objects: [\r\n {\r\n id: 6,\r\n specializations: {\r\n id: 394720,\r\n mapping_Object_Motor_VehicleRegistration: [{ id: 6, number: 'SAK1110C' }],\r\n },\r\n },\r\n ],\r\n specializations: {\r\n id: 2,\r\n mapping_Claim_Event: {\r\n id: 2,\r\n eventDateOffset: parseOffsetDate('13/12/2017', DateFormat).format(DateOffsetFormat),\r\n },\r\n },\r\n },\r\n workflow: {\r\n id: 12,\r\n lastWorkflowStep: {\r\n id: 22,\r\n state: 'Counter-offer',\r\n type: 'OD recovery',\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n }),\r\n },\r\n // description\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.recovery.context,\r\n config.recovery.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n recovery: recoveryData,\r\n },\r\n }),\r\n },\r\n // IP information\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.ipInformation.context,\r\n config.ipInformation.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n specializations: {\r\n mapping_Claim_Insurer: {\r\n insurer: {\r\n Type: 'RecordOwner',\r\n Name: 'Insurer A',\r\n },\r\n },\r\n },\r\n referenceCode: 'A099714',\r\n persons: [\r\n {\r\n id: 1,\r\n name: 'Soh Cheng Tiong',\r\n specializations: {\r\n mapping_Person_NationalIdentifier: [\r\n {\r\n nationalIdentifier: 'S1191122A',\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n objects: [\r\n {\r\n id: 1,\r\n specializations: {\r\n mapping_Object_Motor_VehicleRegistration: [\r\n {\r\n number: 'SAK1110C',\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n officerInCharge: 'Thibault H',\r\n },\r\n },\r\n }),\r\n },\r\n // RP information\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.rpInformation.context,\r\n config.rpInformation.fields,\r\n ),\r\n variables: {\r\n id: 2,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n specializations: {\r\n mapping_Claim_Insurer: {\r\n insurer: {\r\n Type: 'RecordOwner',\r\n Name: 'Insurer B',\r\n },\r\n },\r\n },\r\n referenceCode: 'B052798',\r\n persons: [\r\n {\r\n id: 1,\r\n name: 'Soh Tang',\r\n specializations: {\r\n mapping_Person_NationalIdentifier: [\r\n {\r\n nationalIdentifier: 'S1191122A',\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n objects: [\r\n {\r\n id: 1,\r\n specializations: {\r\n mapping_Object_Motor_VehicleRegistration: [\r\n {\r\n number: 'ABC3210C',\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n officerInCharge: 'Thibault H',\r\n },\r\n },\r\n }),\r\n },\r\n // Description 1\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.descriptions.context,\r\n config.descriptions.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n specializations: {\r\n id: 1,\r\n mapping_Claim_Cause: {\r\n detailedCircumstances: `\r\n On 15/7/2018 at around 1950 hrs, I stopped my vehicle at the\r\n traffic light along Geylang Road, near to Lorong 16a Geylang\r\n as the traffic was red, I was rear ended by a black BMW, plate\r\n number: XXXXX. I am lodging this report for insurance claim.\r\n `,\r\n },\r\n },\r\n },\r\n },\r\n }),\r\n },\r\n // Description 2\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.descriptions.context,\r\n config.descriptions.fields,\r\n ),\r\n variables: {\r\n id: 2,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 2,\r\n specializations: {\r\n id: 2,\r\n mapping_Claim_Cause: {\r\n detailedCircumstances: `\r\n After traffic junction, the accident took place. I did not\r\n realised that car in front had stopped. I manage to brake but\r\n could not stop on time and collided onto the rear of the car.\r\n Damages to my car were on the front portion. No injuries\r\n were involved.\r\n `,\r\n },\r\n },\r\n },\r\n },\r\n }),\r\n },\r\n // Address 1\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.addresses.context,\r\n config.addresses.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n addresses: [{\r\n id: 1,\r\n fullAddress: '1 Raffles Blvd, Singapore 039593',\r\n }],\r\n },\r\n },\r\n }),\r\n },\r\n // Address 2\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.addresses.context,\r\n config.addresses.fields,\r\n ),\r\n variables: {\r\n id: 2,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n addresses: [{\r\n id: 2,\r\n fullAddress: '3 Raffles Blvd, Singapore 039593',\r\n }],\r\n },\r\n },\r\n }),\r\n },\r\n // Location 1\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.accidentLocation.context,\r\n config.accidentLocation.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 1,\r\n addresses: [\r\n {\r\n id: 1,\r\n latitude: 1.292626,\r\n longitude: 103.856797,\r\n fullAddress: 'Outram Road',\r\n },\r\n ],\r\n },\r\n },\r\n }),\r\n },\r\n // Location 2\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.accidentLocation.context,\r\n config.accidentLocation.fields,\r\n ),\r\n variables: {\r\n id: 2,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n claim: {\r\n id: 2,\r\n addresses: [\r\n {\r\n id: 2,\r\n latitude: 1.290626,\r\n longitude: 103.856797,\r\n fullAddress: 'Beach Road',\r\n },\r\n ],\r\n },\r\n },\r\n }),\r\n },\r\n // Accident reports\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.accidentReports.context,\r\n config.accidentReports.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n recoveryCase: {\r\n id: 1,\r\n accidentReports: [\r\n {\r\n id: 1,\r\n referenceCode: 'G1677325',\r\n plateNumber: 'SAK1110C',\r\n owner: 'IP',\r\n },\r\n {\r\n id: 2,\r\n referenceCode: 'KL865179',\r\n plateNumber: 'SBZ2228E',\r\n owner: 'RP',\r\n },\r\n {\r\n id: 3,\r\n referenceCode: 'G0242312',\r\n plateNumber: 'SL8434328E',\r\n owner: 'TP match',\r\n },\r\n ],\r\n },\r\n },\r\n }),\r\n },\r\n {\r\n request: {\r\n query: buildQuery(\r\n config.comments.context,\r\n config.comments.fields,\r\n ),\r\n variables: {\r\n id: 1,\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n recovery: {\r\n comments: [\r\n { content: 'First message' },\r\n { content: 'Second message' },\r\n ],\r\n },\r\n },\r\n }),\r\n },\r\n];\r\n","/* eslint-disable @typescript-eslint/camelcase */\r\nimport { ProcessedSubConfiguration } from 'src/libs/config';\r\nimport { ArcConfig } from 'src/config/configuration';\r\nimport { buildListQuery } from '..';\r\n\r\nexport const arcsMock = (config: ProcessedSubConfiguration) => [\r\n // Recoveries list\r\n {\r\n request: {\r\n query: buildListQuery(\r\n config.list.context,\r\n config.list.fields,\r\n 'ProviderFields',\r\n ),\r\n variables: {\r\n parameters: { start: 0, length: 10 },\r\n },\r\n },\r\n newData: () => ({\r\n data: {\r\n arcList: {\r\n totalCount: 2,\r\n itemsCount: 2,\r\n items: [\r\n {\r\n id: 1,\r\n person: {\r\n id: 1,\r\n specializations: {\r\n id: 1,\r\n mapping_Person_Gears: {\r\n id: 1,\r\n name: 'ARC1',\r\n },\r\n },\r\n addresses: [{\r\n id: 3,\r\n fullAddress: '171A Edgedale plains',\r\n postcode: '821171',\r\n }],\r\n phoneNumbers: [{\r\n id: 3,\r\n number: '91158859',\r\n countryCode: '65',\r\n }],\r\n },\r\n insurers: [\r\n {\r\n Type: 'InsurerCode',\r\n Name: 'InsurerA',\r\n },\r\n {\r\n Type: 'InsurerCode',\r\n Name: 'InsurerB',\r\n },\r\n ],\r\n },\r\n {\r\n id: 2,\r\n person: {\r\n id: 2,\r\n specializations: {\r\n id: 2,\r\n mapping_Person_Gears: {\r\n id: 2,\r\n name: 'ARC2',\r\n },\r\n },\r\n addresses: [{\r\n id: 3,\r\n fullAddress: '171A Other plains',\r\n postcode: '820071',\r\n }],\r\n phoneNumbers: [{\r\n id: 3,\r\n number: '12345698',\r\n countryCode: '65',\r\n }],\r\n },\r\n insurers: [\r\n {\r\n Type: 'InsurerCode',\r\n Name: 'InsurerB',\r\n },\r\n {\r\n Type: 'InsurerCode',\r\n Name: 'InsurerC',\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n }),\r\n },\r\n];\r\n","/**\r\n * Use GIA config for tests\r\n * This is used for tests of gears\r\n * Do not onfuse with Config library tests\r\n */\r\nimport { gearsConfig as baseGearsConfig } from '../GIA/gearsConfig-GIA';\r\nimport { GearsConfig } from '../../types';\r\n\r\nexport const gearsConfig: GearsConfig = {\r\n ...baseGearsConfig,\r\n tests: {\r\n kvCard: {\r\n configType: 'KeyValueCard',\r\n context: ['claim', 'persons'],\r\n transforms: [\r\n {\r\n chrooters: [\r\n ['id'],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n ['name'],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n ['recordOwner'],\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n};\r\n","import React, { ReactElement } from 'react';\r\nimport { MockedProvider as BaseMockedProvider, MockedResponse } from '@apollo/react-testing';\r\n\r\nimport { GraphQLQueryOptionsProvider } from 'src/config/query-options';\r\nimport { mocks } from './mocks';\r\nimport { GearsConfigProvider, GearsConfigConsumer, ProcessedGearsConfig } from '../../config/configuration';\r\nimport { gearsConfig } from '../../config/configuration/clients/tests';\r\n\r\ninterface MockedProviderProps {\r\n children: ReactElement;\r\n providedMock?: (config: ProcessedGearsConfig) => readonly MockedResponse[];\r\n}\r\n\r\nexport const MockedProvider = ({ children, providedMock }: MockedProviderProps) => (\r\n \r\n \r\n {(config) => (\r\n config\r\n && (\r\n \r\n \r\n {children}\r\n \r\n\r\n \r\n )\r\n )}\r\n \r\n \r\n);\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport React, {\r\n ReactElement,\r\n createContext, useState, useLayoutEffect,\r\n} from 'react';\r\nimport { ApolloProvider } from '@apollo/react-hooks';\r\nimport { ApolloClient, InMemoryCache, ApolloLink } from '@apollo/client';\r\nimport { onError } from '@apollo/client/link/error';\r\nimport { createHttpLink } from '@apollo/client/link/http';\r\nimport { setContext } from '@apollo/client/link/context';\r\n\r\nimport { MockedProvider } from 'src/graphql/mocks';\r\nimport { useSecurity } from 'src/libs/auth';\r\n\r\nimport { apiConfig } from '../config';\r\n\r\n// TODO this is a temporary fix to partially enable caching.\r\n// This reason is that caching is based on the id of the object which may not\r\n// be unique at the moment. For instance, non unique spes have an id but what\r\n// identify the data is actually a set of fields (which includes the id but\r\n// other fields as well). The non-unicity causes the cache to be invalid or\r\n// to have duplicates in the displayed data (which should not be duplicated to\r\n// begin with). However, the cache needs to be enabled in order to have\r\n// auto-updating data on mutation, which is why some types are hard-coded here\r\n// until a unique id is provided by the backend.\r\n/* eslint-disable @typescript-eslint/camelcase */\r\nconst cacheableTypesWithSchemaPrefix: object = {\r\n mapping_Claim: true,\r\n mapping_Person: true,\r\n mapping_Object: true,\r\n mapping_Policy: true,\r\n document_Document: true,\r\n ui_Comment: true,\r\n mapping_Address: true,\r\n mapping_Mail: true,\r\n mapping_PhoneNumber: true,\r\n};\r\n\r\nconst excludedTypes: object = {\r\n // Don't cache Identity. In Recoveries, in can be reached from Workflow -> Identity, or WorkflowStep -> Identity,\r\n // however these two paths were requesting different data. In some situations, the result was that\r\n // useQuery returned undefined data even if the network request was successfull.\r\n Identity: true,\r\n};\r\n/* eslint-enable @typescript-eslint/camelcase */\r\n\r\nconst createCache = () => (\r\n new InMemoryCache({\r\n // This was done because an object can be fetched from different paths and links inside the object would be different\r\n // TODO: Check if there is a better (more efficient) alternative\r\n // eslint-disable-next-line consistent-return\r\n dataIdFromObject: (object) => {\r\n const { __typename, id, links } = object;\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (__typename && !cacheableTypesWithSchemaPrefix.hasOwnProperty(__typename) && __typename.indexOf('_') !== -1) {\r\n return undefined;\r\n }\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (__typename && excludedTypes.hasOwnProperty(__typename)) {\r\n return undefined;\r\n }\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (links && typeof links === 'object' && links.hasOwnProperty('id')) {\r\n return `${__typename}:${id}:${(links as any).id}`;\r\n }\r\n\r\n if (id !== undefined) {\r\n return `${__typename}:${id}`;\r\n }\r\n },\r\n })\r\n);\r\n\r\n// eslint-disable-next-line no-console\r\nconst errorLog = process.env.NODE_ENV === 'production' ? console.warn.bind(console) : console.error.bind(console);\r\n\r\nconst createLink = (uri: string, token: () => Promise) => (\r\n ApolloLink.from([\r\n setContext(async (_request, previousContext) => {\r\n const t = await token();\r\n return {\r\n ...previousContext,\r\n headers: {\r\n ...previousContext.headers,\r\n authorization: t ? `Bearer ${t}` : '',\r\n },\r\n };\r\n }),\r\n onError(({ graphQLErrors, networkError }) => {\r\n // eslint-disable-next-line no-console\r\n if (graphQLErrors) {\r\n graphQLErrors.forEach(({ message, locations, path }) => (\r\n errorLog(`[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`)\r\n ));\r\n }\r\n if (networkError) {\r\n errorLog(`[Network error]: ${networkError}`);\r\n }\r\n }),\r\n createHttpLink({ uri }),\r\n ])\r\n);\r\n\r\nexport const newGraphQL = (token: () => Promise) => new ApolloClient({\r\n link: createLink(apiConfig.resourceUri, token),\r\n cache: createCache(),\r\n});\r\n\r\ninterface ToggleMockContext {\r\n useMock: boolean;\r\n toggleMocked: () => void;\r\n}\r\n\r\nconst { Provider: ToggleMockProvider, Consumer } = createContext({\r\n useMock: false,\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n toggleMocked: () => {},\r\n});\r\n\r\nexport const GraphQLProvider = ({ client, children }: { client: ApolloClient; children: ReactElement }) => {\r\n const [mocked, setMocked] = useState(process.env.REACT_APP_USE_MOCK === 'true');\r\n const { user } = useSecurity();\r\n const userSub = user?.sub;\r\n useLayoutEffect(() => {\r\n if (!userSub) {\r\n console.log('[GQL] clear cache', client, userSub, mocked);\r\n // client.stop();\r\n client.clearStore();\r\n }\r\n }, [client, userSub, mocked]);\r\n\r\n const Provider = mocked ? MockedProvider : ApolloProvider;\r\n return (\r\n setMocked(!mocked) }}>\r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nconst checkBox = {\r\n margin: '4px 6px 0px 6px',\r\n verticalAlign: 'top',\r\n};\r\n\r\nexport const ToggleMockConsumer = () => (\r\n \r\n {({ useMock, toggleMocked }) => (\r\n \r\n \r\n Mocked Provider\r\n \r\n )}\r\n \r\n);\r\n","export type Claims = {\r\n sub: string;\r\n [key: string]: any; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n};\r\n\r\nexport type UnauthenticatedState = {\r\n status: 'UNAUTHENTICATED';\r\n login: (username: string, password: string) => void;\r\n forgotPassword: (username: string) => void;\r\n resumeRecovery: (token: string) => void;\r\n};\r\n\r\nexport type AuthenticatedState = {\r\n status: 'AUTHENTICATED';\r\n user: Claims;\r\n logout: () => void;\r\n};\r\n\r\nexport type PasswordExpirationState = {\r\n status: 'PASSWORD_EXPIRATION';\r\n changePassword: (password: string) => void;\r\n skip?: () => void;\r\n cancel: () => void;\r\n};\r\n\r\nexport enum FACTOR_TYPES {\r\n AUTH_OTP = 'AUTH_OTP',\r\n EMAIL = 'EMAIL',\r\n}\r\n\r\nexport type FactorEnrollState = {\r\n status: 'FACTOR_ENROLL';\r\n factors: {\r\n [factorKey in FACTOR_TYPES]?: {\r\n required: boolean;\r\n enroll: () => void;\r\n };\r\n };\r\n cancel: () => void;\r\n};\r\n\r\ninterface Factor {\r\n type: FACTOR_TYPES;\r\n}\r\n\r\ninterface GoogleAuthFactorActivate extends Factor {\r\n sharedSecret?: string;\r\n qrCode?: {\r\n type: string;\r\n href: string;\r\n };\r\n}\r\n\r\nexport type FactorActivate = GoogleAuthFactorActivate;\r\n\r\nexport type FactorActivateState = {\r\n status: 'FACTOR_ACTIVATE';\r\n activate: (params: unknown) => void;\r\n previous: () => void;\r\n cancel: () => void;\r\n resend?: () => void;\r\n factor: FactorActivate;\r\n};\r\n\r\nexport type FactorRequiredState = {\r\n status: 'FACTOR_REQUIRED';\r\n factors: {\r\n [factorType in FACTOR_TYPES]?: {\r\n verify: () => void;\r\n };\r\n };\r\n cancel: () => void;\r\n};\r\n\r\nexport type FactorChallengeState = {\r\n status: 'FACTOR_CHALLENGE';\r\n verify: (params: unknown) => void;\r\n previous: () => void;\r\n cancel: () => void;\r\n factorType: FACTOR_TYPES;\r\n};\r\n\r\nexport type RecoveryChallengeState = {\r\n status: 'RECOVERY_CHALLENGE';\r\n resumeRecovery: (token: string) => void;\r\n cancel: () => void;\r\n};\r\n\r\nexport type LockedOutState = {\r\n status: 'LOCKED_OUT';\r\n};\r\n\r\nexport type State = UnauthenticatedState\r\n | AuthenticatedState\r\n | PasswordExpirationState\r\n | FactorActivateState\r\n | FactorChallengeState\r\n | FactorEnrollState\r\n | FactorRequiredState\r\n | RecoveryChallengeState\r\n | LockedOutState;\r\n\r\n// mark sure all state have a unique status\r\ntype Status = State['status'];\r\n","import { useMemo, useContext, useEffect } from 'react';\r\nimport { NetworkStatus } from '@apollo/client';\r\nimport { useTranslations, makeTranslationFunc } from '@gears/translations';\r\nimport { SelectInputOption, RadioOptions } from '@shift/design-system';\r\nimport { EnumsContainer, EnumItem } from 'src/types';\r\nimport { MessageModalContext } from 'src/MessageModal';\r\nimport { getEnums, GqlQueryName, useQuery } from 'src/graphql';\r\nimport { stringCompare } from '..';\r\nimport { translate } from '../forms';\r\n\r\nconst enumsTranslate = useTranslations('enums');\r\n\r\nexport const useEnums = () => {\r\n const {\r\n loading, data, error, refetch, networkStatus,\r\n } = useQuery(getEnums, { notifyOnNetworkStatusChange: true, displayName: GqlQueryName.enums });\r\n const { displayMessage } = useContext(MessageModalContext);\r\n\r\n useEffect(() => {\r\n if (!loading && !data) {\r\n displayMessage([`${translate('common:load-options-fail')}: ${error?.message}`]);\r\n }\r\n }, [loading, data, error, displayMessage]);\r\n\r\n return {\r\n enums: data?.enums as EnumsContainer | null,\r\n loading: loading || networkStatus === NetworkStatus.refetch,\r\n error,\r\n refetch: () => { refetch().catch(() => { /* silent error */ }); },\r\n };\r\n};\r\n\r\nconst emptyList: never[] = [];\r\n\r\ntype UseEnumOptions = {\r\n exclude?: string[];\r\n}\r\n\r\nexport const useEnum = (enumName: string, { exclude }: UseEnumOptions = { exclude: [] }) => {\r\n const {\r\n loading, enums, error, refetch,\r\n } = useEnums();\r\n const { displayMessage } = useContext(MessageModalContext);\r\n\r\n useEffect(() => {\r\n if (!enumName) {\r\n return;\r\n }\r\n if (!loading && enums && !enums[enumName]) {\r\n displayMessage([`${translate('common:load-option-fail')}: \"${enumName}\"`]);\r\n }\r\n }, [enums, enumName, loading, displayMessage]);\r\n\r\n return {\r\n selectedEnum: enumName && enums ? enums[enumName]?.filter((it) => !(exclude ?? []).includes(it.Value)) : emptyList,\r\n error,\r\n loading: enumName ? loading : false,\r\n refetch,\r\n };\r\n};\r\n\r\ninterface EnumOptionsResult {\r\n options: SelectInputOption[];\r\n loading: boolean;\r\n error?: Error;\r\n refetch: () => void;\r\n}\r\n\r\nexport const useEnumOptions = (\r\n enumName: string,\r\n hasNumberValue = false,\r\n sort = false,\r\n { exclude }: UseEnumOptions = { exclude: [] },\r\n): EnumOptionsResult => {\r\n const {\r\n loading, selectedEnum, error, refetch,\r\n } = useEnum(enumName, { exclude });\r\n\r\n const opts = useMemo(() => {\r\n if (!loading && selectedEnum) {\r\n const options = selectedEnum.map((item) => ({\r\n value: `${item.Name}.${hasNumberValue ? item.ValueId : item.Value}`,\r\n label: enumsTranslate(`${item.Name}.${item.Value}`, { defaultValue: item.Value }),\r\n }));\r\n\r\n if (sort) {\r\n options.sort((a, b) => stringCompare(a.label, b.label));\r\n }\r\n return options;\r\n }\r\n return [];\r\n }, [selectedEnum, hasNumberValue, sort, loading]);\r\n\r\n return {\r\n options: opts,\r\n loading,\r\n error,\r\n refetch,\r\n };\r\n};\r\n\r\nexport const useEnumRadioOptions = (enumName: string, hasNumberValue = false, customTranslateContext = ''): RadioOptions => {\r\n const { loading, selectedEnum } = useEnum(enumName);\r\n\r\n return useMemo(() => {\r\n if (!loading && selectedEnum) {\r\n const translateFunc = !customTranslateContext ? enumsTranslate : makeTranslationFunc(customTranslateContext);\r\n const options = selectedEnum.reduce((acc: RadioOptions, item: EnumItem) => {\r\n const value = `${item.Name}.${hasNumberValue ? item.ValueId : item.Value}`;\r\n acc[value] = {\r\n labelName: translateFunc(`${item.Name}.${item.Value}`, { defaultValue: item.Value }),\r\n };\r\n return acc;\r\n }, {});\r\n\r\n\r\n return options;\r\n }\r\n return {};\r\n }, [selectedEnum, hasNumberValue, loading, customTranslateContext]);\r\n};\r\n\r\n\r\nexport const useEnumItemById = (enumName?: string, valueId?: number) => {\r\n const { loading, enums } = useEnums();\r\n const { displayMessage } = useContext(MessageModalContext);\r\n\r\n return useMemo(() => {\r\n const defaultResult = {\r\n loading: false,\r\n selectedEnum: undefined,\r\n i18n: undefined,\r\n };\r\n if (!enumName) {\r\n return defaultResult;\r\n }\r\n if (!loading) {\r\n if (!enums || !enums[enumName]) {\r\n displayMessage([`${translate('common:load-option-fail')}: \"${enumName}\"`]);\r\n return defaultResult;\r\n }\r\n const selectedEnum = enums[enumName].find((r) => r.ValueId === valueId);\r\n const i18n = selectedEnum ? enumsTranslate(`${selectedEnum.Name}.${selectedEnum.Value}`) : undefined;\r\n return {\r\n loading,\r\n selectedEnum,\r\n i18n,\r\n };\r\n }\r\n\r\n return { ...defaultResult, loading };\r\n }, [enums, enumName, loading, displayMessage, valueId]);\r\n};\r\n\r\nexport const useBola = (enumName?: string, valueId?: number) => {\r\n const { selectedEnum: bolaEnum, i18n: bolaI18n } = useEnumItemById(enumName, valueId);\r\n\r\n return {\r\n title: bolaEnum ? `BOLA ${enumsTranslate(`BolaScenarioNumber.${bolaEnum.Value}`)}` : '',\r\n description: bolaI18n,\r\n };\r\n};\r\n","import moment, { Moment } from 'moment-timezone';\r\nimport { AnyType, EnumValue } from 'src/types';\r\nimport {\r\n DateTimeDisplayFormat, recoveryInitiatingParty,\r\n DateUtcFormat, DateOffsetFormat, DefaultTimezone, DateFormat,\r\n InputDateOffsetFormat,\r\n} from 'src/constants';\r\nimport { FileFormats } from '@shift/design-system';\r\n\r\ntype DateInput = string | Date | undefined;\r\nexport const capitalize = (string: string) => string.charAt(0).toUpperCase() + string.substring(1);\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-empty-function\r\nexport const noop = () => { };\r\n\r\nexport const parseUtcDate = (value: string, format: string = DateUtcFormat) => moment.utc(value, format, true).tz(DefaultTimezone);\r\nexport const parseOffsetDate = (value: string, format: string = DateOffsetFormat) => moment(value, format, true).tz(DefaultTimezone);\r\n// eslint-disable-next-line max-len\r\nexport const toShiftDateTimeOffsetFormat = (date: DateInput) => (date && moment(date).isValid() ? moment(date).tz(DefaultTimezone).format(DateOffsetFormat) : undefined);\r\n// eslint-disable-next-line max-len\r\nexport const toUtcDateTimeFormat = (date: string | undefined) => (date && moment(date).isValid() ? moment.utc(date, InputDateOffsetFormat, false) : undefined);\r\n// eslint-disable-next-line max-len\r\nexport const toUtcDateFormat = (date: string | undefined) => (date && moment(date).isValid() ? moment(date).tz(DefaultTimezone).format(DateUtcFormat) : undefined);\r\n\r\n\r\nexport const displayDate = (date: Moment) => (date ? date.format(DateFormat) : null);\r\nexport const displayDateTime = (date: Moment) => (date ? `${date.format(DateTimeDisplayFormat)} (SGT)` : null);\r\n\r\nexport const stringCompare = (first: string, second: string) => {\r\n if (first !== second) {\r\n return first > second ? 1 : -1;\r\n }\r\n return 0;\r\n};\r\n\r\ntype Nullable = T | null | undefined;\r\n\r\nexport const enumAnyEquals = (...es: Nullable[]) => (\r\n (other: Nullable) => es.findIndex((e) => other?.Name === e?.Name && other?.Type === e?.Type) !== -1\r\n);\r\n\r\nexport const getClaimByRecoveryRole = (claims: AnyType, role: number) => claims?.filter(\r\n (c: AnyType) => c.links.ui_WorkflowToClaim[0].roleEnumValueId === role)[0];\r\n\r\nexport const getAccidentReportByRecoverySide = (accidentReports: AnyType, role: number) => accidentReports?.filter(\r\n (c: AnyType) => {\r\n if (role === recoveryInitiatingParty && c.links?.mapping_RecoveryTarget?.length) {\r\n return c;\r\n }\r\n if (role !== recoveryInitiatingParty && c.links?.mapping_RecoveryClaim?.length\r\n && c.links.mapping_RecoveryClaim[0].roleEnumValueId === role) {\r\n return c;\r\n }\r\n return null;\r\n })[0];\r\n\r\nexport const toDateTimeWithoutTz = (momentDate?: Moment) => {\r\n if (!momentDate) {\r\n return undefined;\r\n }\r\n return new Date(momentDate.year(), momentDate.month(), momentDate.date(), momentDate.hours(), momentDate.minutes());\r\n};\r\n\r\nexport const getFileExtension = (name: string): FileFormats => {\r\n const stringArray = name.split('.');\r\n const rawFormat = `.${stringArray[stringArray.length - 1].toLowerCase()}`;\r\n\r\n const formatKey = Object\r\n .keys(FileFormats)\r\n .filter((key) => FileFormats[key as keyof typeof FileFormats] === rawFormat)[0] as keyof typeof FileFormats;\r\n\r\n return FileFormats[formatKey];\r\n};\r\n\r\nconst stringDefault = (val?: any, prefix?: string, suffix?: string): string => (\r\n val\r\n ? `${stringDefault(prefix)}${val}${stringDefault(suffix)}`\r\n : ''\r\n);\r\n\r\nexport const concatenateUri = (\r\n scheme: string,\r\n path: string,\r\n userInfo?: string,\r\n host?: string,\r\n port?: number,\r\n query?: string,\r\n fragment?: string,\r\n// eslint-disable-next-line max-len\r\n) => `${scheme}://${stringDefault(userInfo, undefined, '@')}${stringDefault(host)}${stringDefault(port, ':')}${path}${stringDefault(query)}${stringDefault(fragment)}`;\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable no-restricted-globals */\r\nimport merge from 'deepmerge';\r\nimport { get, set } from 'object-path';\r\nimport { formSections } from 'src/config/form';\r\nimport {\r\n SingleFieldInformation, FormSectionInformation, AnyType, ArrayFieldInformation, ArrayFieldTargets, FieldInformation,\r\n} from 'src/types';\r\nimport { combineMerge } from 'src/utils/forms';\r\nimport { buildQuery } from './query-builder';\r\n\r\nconst formContext = 'accidentReport';\r\n\r\nconst pathToQueryArray = (path: string) => path.split('.').filter((e: string) => isNaN(Number(e)));\r\n\r\nconst buildFieldPath = (field: SingleFieldInformation | ArrayFieldInformation, context: string[] = []): string[][] => {\r\n const arrayField = field as ArrayFieldInformation;\r\n if (arrayField?.item) {\r\n return Object.values(arrayField.item).flatMap((subField) => buildFieldPath(\r\n subField,\r\n context.concat(pathToQueryArray(arrayField.target ?? arrayField.path)),\r\n ));\r\n }\r\n\r\n const singleField = field as SingleFieldInformation;\r\n if (singleField) {\r\n /**\r\n * Check to see if this is really necessary\r\n * Can't have a single field with a transform function only\r\n */\r\n if (singleField.formatter && !singleField.formatter.format) {\r\n return [];\r\n }\r\n\r\n if (singleField.target) {\r\n if (typeof singleField.target === 'string') {\r\n return [context.concat(pathToQueryArray(singleField.target as string))];\r\n }\r\n const arrayTarget = singleField.target as ArrayFieldTargets;\r\n if (arrayTarget?.item) {\r\n return Object.values(arrayTarget.item).map((target) => context.concat(pathToQueryArray(`${arrayTarget.name}.${target}`)));\r\n }\r\n return Object.values(singleField.target).map((target) => context.concat(pathToQueryArray(target)));\r\n }\r\n\r\n return [context.concat(pathToQueryArray(singleField.path))];\r\n }\r\n\r\n return [];\r\n};\r\n\r\nexport const buildFormAccidentReportQuery = () => {\r\n const fieldsArrays: string[][] = Object.values(formSections)\r\n .flatMap((section) => Object.values(section.fields).flatMap((field) => buildFieldPath(field)).filter((e) => e.length > 0));\r\n return buildQuery(formContext, fieldsArrays);\r\n};\r\n\r\n// a small wrapper for set function that returns the object's value\r\nconst setValue = (object: AnyType, path: string, value: any): AnyType => {\r\n set(object, path, value);\r\n return object;\r\n};\r\n\r\nconst getFieldValue = (accidentReport: AnyType, field: FieldInformation): AnyType => {\r\n const target = (field as SingleFieldInformation)?.target;\r\n if (target) {\r\n if (typeof target === 'string') {\r\n return get(accidentReport, target as string);\r\n }\r\n\r\n let paths: [string, string][];\r\n const arrayTarget = target as ArrayFieldTargets;\r\n let value: any;\r\n if (arrayTarget?.item) {\r\n const valueArray = get(accidentReport, arrayTarget.name) as any[];\r\n paths = Object.entries(arrayTarget.item);\r\n value = valueArray?.map((item: AnyType) => {\r\n let resultItem: any;\r\n paths.forEach(([key, val]) => {\r\n const targetValue = get(item, val);\r\n if (targetValue) {\r\n resultItem = resultItem ?? {};\r\n set(resultItem, key, targetValue);\r\n }\r\n });\r\n return resultItem;\r\n }).filter((e) => !!e);\r\n } else {\r\n paths = Object.entries(target);\r\n paths.forEach(([key, val]) => {\r\n const targetValue = get(accidentReport, val);\r\n if (targetValue) {\r\n value = value ?? {};\r\n set(value, key, targetValue);\r\n }\r\n });\r\n }\r\n return value;\r\n }\r\n return get(accidentReport, field.path);\r\n};\r\n\r\nconst loadFieldData = (field: FieldInformation, accidentReport: AnyType): AnyType => {\r\n let value = getFieldValue(accidentReport, field);\r\n if (value !== undefined && value !== null) {\r\n const arrayField = field as ArrayFieldInformation;\r\n if (arrayField?.item) {\r\n const arrayResult: AnyType[] = [];\r\n value.forEach((item: AnyType) => {\r\n let result: AnyType = {};\r\n Object.values(arrayField.item).forEach((itemField) => {\r\n result = merge(result, loadFieldData(itemField, item), { arrayMerge: combineMerge });\r\n });\r\n arrayResult.push(result);\r\n });\r\n return setValue({}, arrayField.path, arrayResult);\r\n }\r\n\r\n if (field.formatter?.format) {\r\n value = field.formatter.format(value, accidentReport);\r\n }\r\n }\r\n return setValue({}, field.path, value);\r\n};\r\n\r\nexport const loadForm = (accidentReport: AnyType): AnyType => {\r\n let result: AnyType = {};\r\n\r\n Object.values(formSections).forEach((formSection) => {\r\n const section = formSection as FormSectionInformation;\r\n Object.values(section.fields).forEach((field) => {\r\n result = merge(result, loadFieldData(field, accidentReport), { arrayMerge: combineMerge });\r\n });\r\n });\r\n return result;\r\n};\r\n","import { DownloadType } from 'src/libs/fetch';\r\nimport { FileFormats } from '@shift/design-system';\r\n\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nexport const download = async (dl: DownloadType, url: string, setLoading: (b: boolean) => void, filename?: string) => {\r\n try {\r\n setLoading(true);\r\n await dl(url, filename);\r\n } finally {\r\n setLoading(false);\r\n }\r\n};\r\n\r\nexport const loadPreview = async (\r\n src: string,\r\n imgPreview: (url: string, fileFormat?: FileFormats | undefined) => Promise,\r\n setData: any,\r\n setLoading: any,\r\n fileFormat?: FileFormats,\r\n) => {\r\n try {\r\n setLoading(true);\r\n const result = await imgPreview(src, fileFormat);\r\n setData(result);\r\n } catch {\r\n setData('');\r\n } finally {\r\n setLoading(false);\r\n }\r\n};\r\n","import { permissions, TokenPredicate } from './permissions';\r\n\r\ntype RouteSetup = {\r\n path: string;\r\n permissions: TokenPredicate | undefined;\r\n};\r\n\r\nexport const accidentReportDetail: RouteSetup = {\r\n path: '/accident-reports/details/:id',\r\n permissions: permissions.canReadReport,\r\n};\r\nexport const accidentReportList: RouteSetup = {\r\n path: '/accident-reports',\r\n permissions: permissions.canListReport,\r\n};\r\nexport const arcList: RouteSetup = {\r\n path: '/arcs',\r\n permissions: permissions.canListArc,\r\n};\r\nexport const arcForm: RouteSetup = {\r\n path: '/accident-report-form/:id?',\r\n permissions: permissions.canCreateOrUpdateReport,\r\n};\r\nexport const arcPreForm: RouteSetup = {\r\n path: '/accident-report-form/create',\r\n permissions: permissions.canCreateOrUpdateReport,\r\n};\r\nexport const arcSubmitted: RouteSetup = {\r\n path: '/accident-report-submitted/:id?',\r\n permissions: undefined,\r\n};\r\nexport const recoveries: RouteSetup = {\r\n path: '/recoveries',\r\n permissions: permissions.canListRecovery,\r\n};\r\nexport const recovery: RouteSetup = {\r\n path: '/recoveries/details/:id',\r\n permissions: permissions.canReadRecovery,\r\n};\r\nexport const recoveryTests: RouteSetup = {\r\n path: '/recovery/tests',\r\n permissions: undefined,\r\n};\r\nexport const exploration: RouteSetup = {\r\n path: '/exploration',\r\n permissions: permissions.canSeeExploration,\r\n};\r\nexport const ncd: RouteSetup = {\r\n path: '/ncd',\r\n permissions: permissions.canSeeNcd,\r\n};\r\nexport const insurerEnquiry: RouteSetup = {\r\n path: '/insurer-enquiry',\r\n permissions: permissions.canSeeInsurerEnquiry,\r\n};\r\nexport const thirdPartyReports: RouteSetup = {\r\n path: '/third-party-reports',\r\n permissions: permissions.canSeeThirdPartyReports,\r\n};\r\nexport const folderList: RouteSetup = {\r\n path: '/folders',\r\n permissions: undefined,\r\n};\r\nexport const folderDetail: RouteSetup = {\r\n path: '/folders/details/:id',\r\n permissions: undefined,\r\n};\r\n\r\nexport const account: RouteSetup = {\r\n path: '/account',\r\n permissions: undefined,\r\n};\r\nexport const accountChangePassword: RouteSetup = {\r\n path: '/account/change-password',\r\n permissions: undefined,\r\n};\r\nexport const accountCreateAccount: RouteSetup = {\r\n path: '/account/create-account',\r\n permissions: permissions.isAdmin,\r\n};\r\nexport const accountChangeLanguage: RouteSetup = {\r\n path: '/account/change-language',\r\n permissions: undefined,\r\n};\r\n\r\nexport const settings: RouteSetup = {\r\n path: '/settings',\r\n permissions: undefined,\r\n};\r\n\r\nexport const reporting: RouteSetup = {\r\n path: '/reporting',\r\n permissions: permissions.canSeeDashboard,\r\n};\r\n\r\nexport const callback: RouteSetup = {\r\n path: '/callback',\r\n permissions: undefined,\r\n};\r\n","import {\r\n OktaAuth, isIDToken, isAccessToken, TokenResponse,\r\n IDToken, AccessToken, AuthTransaction, Token,\r\n} from '@okta/okta-auth-js';\r\n\r\nimport deepEqual from 'deep-equal';\r\nimport { Authenticator, AuthState, FactorActivate } from '../Authenticator';\r\nimport { FACTOR_TYPES } from '../State';\r\n\r\nexport type OktaOptions = {\r\n issuer: string;\r\n clientId?: string;\r\n redirectUri?: string;\r\n scopes?: string[];\r\n pkce?: boolean;\r\n};\r\n\r\nconst normalizeOptions = (options: OktaOptions) => ({\r\n ...options,\r\n tokenManager: {\r\n secure: true,\r\n },\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst extractTokens = (tokens: TokenResponse): [IDToken | undefined, AccessToken | undefined] => {\r\n if (!tokens.tokens) {\r\n console.warn('Missing tokens');\r\n }\r\n\r\n const { idToken, accessToken } = tokens.tokens;\r\n\r\n if (!idToken) {\r\n console.warn('idToken missing');\r\n }\r\n if (!accessToken) {\r\n console.warn('accessToken missing');\r\n }\r\n\r\n return [idToken, accessToken];\r\n};\r\n\r\nconst debugLog = (msg: any, ...params: any[]) => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n // eslint-disable-next-line no-console\r\n console.debug(`[okta] ${msg}`, ...params);\r\n }\r\n};\r\n\r\nconst EMAIL_FACTOR_ID = 'OKTA_email';\r\nconst GOOGLE_AUTH_FACTOR_ID = 'GOOGLE_token:software:totp';\r\n\r\nconst FACTOR_MAP = {\r\n [GOOGLE_AUTH_FACTOR_ID]: FACTOR_TYPES.AUTH_OTP,\r\n [EMAIL_FACTOR_ID]: FACTOR_TYPES.EMAIL,\r\n};\r\n\r\ntype Factor = AuthTransaction['factor'];\r\n\r\nconst getFactorType = (factor: T) => !!factor && (FACTOR_MAP as any)[`${factor.vendorName}_${factor.factorType}`];\r\n\r\nconst factorExistPredicate = (factor: T): factor is NonNullable => !!getFactorType(factor);\r\n\r\nconst filterFactors = (factors: T[]) => factors.filter(factorExistPredicate);\r\n\r\nconst filterMapFactors = (\r\n factors: T[],\r\n mapFunction: (factor: NonNullable) => K,\r\n) => filterFactors(factors)\r\n ?.reduce>((acc, factor) => ({\r\n ...acc,\r\n [getFactorType(factor)]: mapFunction(factor),\r\n }), {} as Record);\r\n\r\nclass OktaAuthenticator implements Authenticator {\r\n private okta: OktaAuth;\r\n\r\n private scopes: string[];\r\n\r\n private currentState: AuthState;\r\n\r\n // TODO remove `scopes` when upgrading okta-auth-js to 4.1.X\r\n // in 4.0.X, `scopes` must be provided directly to the `OktaAuth.token.getXXX`\r\n // but in 4.1.X, `scopes` is propagated by `OktaAuth` from its `options`\r\n constructor(okta: OktaAuth, scopes: string[]) {\r\n this.okta = okta;\r\n this.scopes = scopes;\r\n this.login = this.login.bind(this);\r\n this.logout = this.logout.bind(this);\r\n this.token = this.token.bind(this);\r\n this.forgotPassword = this.forgotPassword.bind(this);\r\n this.state = this.state.bind(this);\r\n this.checkState = this.checkState.bind(this);\r\n this.cancel = this.cancel.bind(this);\r\n this.resend = this.resend.bind(this);\r\n this.activate = this.activate.bind(this);\r\n this.challengeStepVerify = this.challengeStepVerify.bind(this);\r\n this.requireStepVerify = this.requireStepVerify.bind(this);\r\n this.enroll = this.enroll.bind(this);\r\n this.previous = this.previous.bind(this);\r\n this.resumeRecovery = this.resumeRecovery.bind(this);\r\n\r\n this.currentState = {\r\n status: 'UNAUTHENTICATED',\r\n login: this.login,\r\n forgotPassword: this.forgotPassword,\r\n resumeRecovery: this.resumeRecovery,\r\n };\r\n }\r\n\r\n\r\n async checkState() {\r\n const wasAuth = this.currentState.status === 'AUTHENTICATED';\r\n try {\r\n debugLog('checkUser:getTokens');\r\n const idToken = await this.okta.tokenManager.get('idToken');\r\n const accessToken = await this.okta.tokenManager.get('token');\r\n\r\n const { idToken: it } = await this.validateTokens(idToken, accessToken);\r\n\r\n debugLog('checkUser:successIdToken', it);\r\n\r\n this.currentState = {\r\n status: 'AUTHENTICATED',\r\n logout: this.logout,\r\n token: this.token,\r\n user: it.claims,\r\n };\r\n } catch (e) {\r\n await this.okta.tokenManager.clear();\r\n try {\r\n const it = await this.loginWithSession();\r\n\r\n this.currentState = {\r\n status: 'AUTHENTICATED',\r\n logout: this.logout,\r\n token: this.token,\r\n user: it.claims,\r\n };\r\n } catch (_) {\r\n this.currentState = {\r\n status: 'UNAUTHENTICATED',\r\n login: this.login,\r\n forgotPassword: this.forgotPassword,\r\n resumeRecovery: this.resumeRecovery,\r\n };\r\n if (wasAuth) {\r\n throw new Error('Your session has ended');\r\n }\r\n }\r\n }\r\n }\r\n\r\n state() { return this.currentState; }\r\n\r\n private async validateTokens(idToken: Token | undefined, accessToken: Token | undefined) {\r\n if (!accessToken || !idToken) {\r\n debugLog('login:error', 'missing tokens');\r\n throw new Error('missing tokens');\r\n }\r\n if (!isAccessToken(accessToken) || !isIDToken(idToken)) {\r\n debugLog('login:error', 'invalid tokens');\r\n throw new Error('invalid tokens');\r\n }\r\n if (!idToken.claims) {\r\n debugLog('login:error', 'emptyIdToken');\r\n throw new Error('no id');\r\n }\r\n\r\n debugLog('login:fetchUserInfo');\r\n const claims = await this.okta.token.getUserInfo(accessToken, idToken);\r\n if (claims.sub !== idToken.claims.sub) {\r\n debugLog('login:error', 'mismatched tokens');\r\n throw new Error('mismatch between id token and access token');\r\n }\r\n\r\n return { idToken, accessToken };\r\n }\r\n\r\n private async validateAndSaveTokens(idToken: Token | undefined, accessToken: Token | undefined) {\r\n const { idToken: it, accessToken: at } = await this.validateTokens(idToken, accessToken);\r\n debugLog('login:saveTokens');\r\n await Promise.all([\r\n this.okta.tokenManager.add('idToken', it),\r\n this.okta.tokenManager.add('token', at),\r\n ]);\r\n\r\n debugLog('login:success');\r\n return it;\r\n }\r\n\r\n private async loginWithSession(sessionToken?: string) {\r\n debugLog('login:promptTokensWithSession', sessionToken);\r\n const [idToken, token] = extractTokens(await this.okta.token.getWithoutPrompt({\r\n sessionToken,\r\n responseType: ['id_token', 'token'],\r\n scopes: this.scopes,\r\n }));\r\n\r\n return this.validateAndSaveTokens(idToken, token);\r\n }\r\n\r\n private async login(username: string, password: string) {\r\n const res = await this.okta.signIn({ username, password });\r\n\r\n // workaround to avoid having to enter the oldPassword again\r\n if (res.status === 'PASSWORD_WARN' || res.status === 'PASSWORD_EXPIRED') {\r\n (res as any).oldPassword = password;\r\n }\r\n\r\n await this.transition(res);\r\n }\r\n\r\n private async forgotPassword(username: string) {\r\n // TODO: fix to use either otp or email\r\n const res = await this.okta.forgotPassword({ username, factorType: 'EMAIL' });\r\n await this.transition(res);\r\n }\r\n\r\n private async resumeRecovery(token: string) {\r\n const res = await this.okta.verifyRecoveryToken({ recoveryToken: token });\r\n await this.transition(res);\r\n }\r\n\r\n private async logout() {\r\n await this.okta.signOut();\r\n this.currentState = {\r\n status: 'UNAUTHENTICATED',\r\n login: this.login,\r\n forgotPassword: this.forgotPassword,\r\n resumeRecovery: this.resumeRecovery,\r\n };\r\n }\r\n\r\n private async token() {\r\n debugLog('token:getAccessToken');\r\n const currentToken = await this.okta.tokenManager.get('token');\r\n if (!isAccessToken(currentToken)) {\r\n debugLog('token:error', 'missing token');\r\n throw new Error('no token');\r\n }\r\n\r\n debugLog('token:success');\r\n return currentToken;\r\n }\r\n\r\n private activate(activate: (params: unknown) => Promise) {\r\n return async (param: unknown) => {\r\n const res = await activate({ passCode: param });\r\n await this.transition(res);\r\n };\r\n }\r\n\r\n private enroll(enroll: () => Promise) {\r\n return async () => {\r\n const res = await enroll();\r\n await this.transition(res);\r\n };\r\n }\r\n\r\n private requireStepVerify(verify: (p: any) => Promise) {\r\n return async () => {\r\n const res = await verify({ passCode: '' });\r\n await this.transition(res);\r\n };\r\n }\r\n\r\n private challengeStepVerify(verify: (p: any) => Promise) {\r\n return async (params: unknown) => {\r\n if (typeof params !== 'string') {\r\n throw new Error('passCode format error');\r\n }\r\n const res = await verify({ passCode: params });\r\n await this.transition(res);\r\n };\r\n }\r\n\r\n private cancel(cancel?: () => Promise) {\r\n return async () => {\r\n if (!cancel) {\r\n throw new Error('impossible to cancel');\r\n }\r\n const res = await cancel();\r\n await this.transition(res);\r\n };\r\n }\r\n\r\n private resend(resend?: () => Promise) {\r\n if (!resend) {\r\n return undefined;\r\n }\r\n\r\n return async () => {\r\n const res = await resend();\r\n await this.transition(res);\r\n };\r\n }\r\n\r\n private previous(previous?: () => Promise) {\r\n return async () => {\r\n if (!previous) {\r\n throw new Error('impossible to go back');\r\n }\r\n const res = await previous();\r\n await this.transition(res);\r\n };\r\n }\r\n\r\n private changePassword(changePassword: (params: unknown) => Promise, oldPassword?: string) {\r\n return async (password: string) => {\r\n const param = oldPassword ? { newPassword: password, oldPassword } : { newPassword: password };\r\n const res = await changePassword(param);\r\n await this.transition(res);\r\n };\r\n }\r\n\r\n private skip(skip?: () => Promise) {\r\n if (!skip) {\r\n return undefined;\r\n }\r\n\r\n return async () => {\r\n const res = await skip();\r\n await this.transition(res);\r\n };\r\n }\r\n\r\n private async transition(res: AuthTransaction) {\r\n if (res.status === 'SUCCESS') {\r\n const { sessionToken } = res;\r\n\r\n const idToken = await this.loginWithSession(sessionToken!);\r\n\r\n this.currentState = {\r\n status: 'AUTHENTICATED',\r\n user: idToken.claims,\r\n token: this.token,\r\n logout: this.logout,\r\n };\r\n } else if (res.status === 'MFA_REQUIRED') {\r\n const { factors, cancel } = res;\r\n\r\n if (filterFactors(factors!).length === 0) {\r\n throw new Error('no 2FA available');\r\n }\r\n\r\n this.currentState = {\r\n status: 'FACTOR_REQUIRED',\r\n cancel: this.cancel(cancel),\r\n factors: filterMapFactors(factors!, ({ verify }) => ({\r\n verify: this.requireStepVerify(verify),\r\n })),\r\n };\r\n } else if (res.status === 'MFA_CHALLENGE') {\r\n const {\r\n cancel, prev, verify, factor,\r\n } = res as any;\r\n\r\n if (!factorExistPredicate(factor)) {\r\n throw new Error('factor not handled');\r\n }\r\n\r\n this.currentState = {\r\n status: 'FACTOR_CHALLENGE',\r\n cancel: this.cancel(cancel),\r\n previous: this.previous(prev),\r\n verify: this.challengeStepVerify(verify),\r\n factorType: getFactorType(factor),\r\n };\r\n } else if (res.status === 'PASSWORD_RESET') {\r\n const { resetPassword, cancel } = res as any;\r\n\r\n this.currentState = {\r\n status: 'PASSWORD_EXPIRATION',\r\n changePassword: this.changePassword(resetPassword),\r\n cancel: this.cancel(cancel),\r\n };\r\n } else if (res.status === 'PASSWORD_WARN' || res.status === 'PASSWORD_EXPIRED') {\r\n const {\r\n oldPassword, changePassword, cancel, skip,\r\n } = res as any;\r\n\r\n this.currentState = {\r\n status: 'PASSWORD_EXPIRATION',\r\n changePassword: this.changePassword(changePassword, oldPassword),\r\n cancel: this.cancel(cancel),\r\n skip: this.skip(skip),\r\n };\r\n } else if (res.status === 'RECOVERY_CHALLENGE') {\r\n const { cancel } = res;\r\n\r\n this.currentState = {\r\n status: 'RECOVERY_CHALLENGE',\r\n resumeRecovery: this.resumeRecovery,\r\n cancel: this.cancel(cancel),\r\n };\r\n } else if (res.status === 'MFA_ENROLL') {\r\n const { cancel, factors } = res;\r\n\r\n this.currentState = {\r\n status: 'FACTOR_ENROLL',\r\n factors: filterMapFactors(factors!, ({\r\n enrollment, enroll,\r\n }) => ({\r\n required: enrollment === 'REQUIRED',\r\n enroll: this.enroll(enroll),\r\n })),\r\n cancel: this.cancel(cancel),\r\n };\r\n } else if (res.status === 'MFA_ENROLL_ACTIVATE') {\r\n const {\r\n cancel, activate, resend, prev, data,\r\n } = res as any;\r\n\r\n const rawFactor = data?._embedded?.factor as NonNullable;\r\n\r\n if (!factorExistPredicate(rawFactor)) {\r\n throw new Error('Factor not handled');\r\n }\r\n\r\n const factorType = getFactorType(rawFactor);\r\n\r\n let factor: FactorActivate = { type: factorType };\r\n if (factorType === FACTOR_TYPES.AUTH_OTP) {\r\n factor = {\r\n ...factor,\r\n sharedSecret: rawFactor?._embedded?.activation?.sharedSecret,\r\n qrCode: rawFactor?._embedded?.activation?._links?.qrcode,\r\n };\r\n }\r\n\r\n this.currentState = {\r\n status: 'FACTOR_ACTIVATE',\r\n activate: this.activate(activate),\r\n previous: this.previous(prev),\r\n resend: this.resend(resend),\r\n cancel: this.cancel(cancel),\r\n factor,\r\n };\r\n } else {\r\n this.currentState = {\r\n status: 'UNAUTHENTICATED',\r\n forgotPassword: this.forgotPassword,\r\n login: this.login,\r\n resumeRecovery: this.resumeRecovery,\r\n };\r\n\r\n if (!(\r\n // when canceling, res == {}\r\n deepEqual(res, {})\r\n // and sometimes it's weird\r\n // like when canceling the password reset during a password recovery\r\n || deepEqual(res, { data: { _embedded: {} } })\r\n )) {\r\n throw new Error('invalid auth state');\r\n }\r\n }\r\n }\r\n}\r\n\r\n// TODO: id token and access token may be out of sync\r\nexport const newOkta = (options: OktaOptions): Authenticator => {\r\n const opts = normalizeOptions(options);\r\n const auth = new OktaAuth(opts);\r\n return new OktaAuthenticator(auth, opts.scopes || []);\r\n};\r\n","import { newOkta } from 'src/libs/auth/okta';\r\nimport { oktaConfig } from '../../config';\r\n\r\nexport const {\r\n clientId, issuer, redirectUri, scopes, pkce, // disableHttpsCheck,\r\n} = oktaConfig;\r\n\r\nexport const auth = newOkta({\r\n clientId,\r\n issuer,\r\n redirectUri,\r\n scopes,\r\n pkce,\r\n});\r\n\r\nexport const accessToken = async () => {\r\n const state = auth.state();\r\n if (state.status === 'AUTHENTICATED') {\r\n return (await state.token()).accessToken;\r\n }\r\n return null;\r\n};\r\n","import { withCustomVariant, TextButton } from '@shift/design-system';\r\n\r\n\r\nexport const PrimaryTextButton = withCustomVariant(TextButton, 'button', 'primary');\r\n","import { graphQLQueryOptionsContextFactory } from 'src/libs/graphql-query-options';\r\n\r\nconst AR_LIST = 'arList';\r\nconst TPR_LIST = 'tprList';\r\n\r\nexport const QUERY_OPTIONS_KEYS = {\r\n AR_LIST,\r\n TPR_LIST,\r\n} as const;\r\n\r\nconst keys = [AR_LIST, TPR_LIST] as const;\r\n\r\nexport const { GraphQLQueryOptionsProvider, useGraphQLQueryOptions } = graphQLQueryOptionsContextFactory(keys);\r\n\r\nexport type QueryOptionsKeys = Parameters[0];\r\n","/* eslint-disable no-underscore-dangle */\r\nimport { QueryOptions } from '@apollo/client';\r\nimport React, {\r\n createContext, useState, useContext,\r\n} from 'react';\r\n\r\nimport deepEqual from 'deep-equal';\r\n\r\ntype GraphQLQueryOptionsContextState = {\r\n index: {\r\n [key in T[number]]: QueryOptions;\r\n };\r\n __keys: T;\r\n};\r\n\r\ntype GraphQLQueryOptionsContext = [\r\n GraphQLQueryOptionsContextState,\r\n (queryOptionsContext: GraphQLQueryOptionsContextState) => void\r\n] | null;\r\n\r\n\r\nexport const graphQLQueryOptionsContextFactory = (keys: T) => {\r\n const context = createContext>(null);\r\n\r\n const GraphQLQueryOptionsProvider = ({ children }: {children: React.ReactNode}) => {\r\n const [graphQLQueryOptions, setGraphQLQueryOptions] = useState>({ __keys: keys, index: {} as any });\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n };\r\n\r\n const useGraphQLQueryOptions = (key?: T[number]): [QueryOptions | undefined, (queryOptions: QueryOptions) => void] => {\r\n const ctx = useContext(context);\r\n\r\n if (!ctx) {\r\n throw new Error('Query options context is null');\r\n }\r\n\r\n const [queryOptions, setQueryOptions] = ctx;\r\n\r\n const cb = React.useCallback((newQueryOptions: QueryOptions) => {\r\n // This check is required to avoid infinite updates in case it is used inside a useEffect\r\n if (key && !deepEqual(queryOptions.index[key], newQueryOptions)) {\r\n setQueryOptions({\r\n ...queryOptions,\r\n index: {\r\n ...queryOptions.index,\r\n [key as string]: newQueryOptions,\r\n },\r\n });\r\n }\r\n }, [queryOptions, setQueryOptions, key]);\r\n\r\n if (!key) {\r\n return [undefined, () => ({})];\r\n }\r\n\r\n if (!queryOptions.__keys.includes(key)) {\r\n throw new Error(`${key} is not supported by the query options provider`);\r\n }\r\n\r\n return [queryOptions.index[key], cb];\r\n };\r\n\r\n return {\r\n GraphQLQueryOptionsProvider,\r\n useGraphQLQueryOptions,\r\n };\r\n};\r\n","import React from 'react';\r\nimport { TextInput as BaseTextInput, TextInputProps } from '@shift/design-system';\r\n\r\n// eslint-disable-next-line react/jsx-props-no-spreading\r\nexport const TextInput = (props: TextInputProps) => ;\r\n","import React, { useContext } from 'react';\r\n\r\nimport { IMAGE_FORMATS } from 'src/constants';\r\nimport { FileFormats } from '@shift/design-system';\r\n\r\ntype FetchType = (input: RequestInfo, init?: RequestInit) => Promise;\r\nexport type DownloadType = (url: string, name?: string | undefined) => Promise;\r\n\r\nconst context = React.createContext(null);\r\n\r\nexport interface FetchProviderProps {\r\n token: () => Promise;\r\n}\r\n// eslint-disable-next-line no-console\r\nconst errorLog = process.env.NODE_ENV === 'production' ? console.warn : console.error;\r\n\r\nexport const FetchProvider: React.FC = ({ token, children }) => {\r\n const fetch: FetchType = React.useCallback(async (input, init) => {\r\n const inp = new window.Request(input);\r\n const t = await token();\r\n if (t) {\r\n inp.headers.append('Authorization', `Bearer ${t}`);\r\n } else {\r\n errorLog('Unauthorized to fetch data');\r\n }\r\n return window.fetch(inp, init);\r\n }, [token]);\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useFetch = () => {\r\n const fetch = useContext(context);\r\n if (!fetch) {\r\n throw new Error('missing provider');\r\n }\r\n const download = React.useCallback(async (url: string, name?: string) => {\r\n const res = await fetch(url);\r\n const blob = new window.Blob([await res.blob()]);\r\n const fileName = name ?? res.headers.get('content-disposition')?.split('filename=')[1]; // Name provided by backend\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob, fileName);\r\n } else {\r\n const blobUrl = window.URL.createObjectURL(blob);\r\n const el = document.createElement('a');\r\n el.href = blobUrl;\r\n if (fileName) {\r\n el.download = fileName; // Override with frontend name\r\n }\r\n el.click();\r\n }\r\n }, [fetch]);\r\n const imgPreview = React.useCallback(async (url: string, fileFormat?: FileFormats) => {\r\n if (fileFormat && !(IMAGE_FORMATS.includes(fileFormat))) {\r\n return '';\r\n }\r\n const res = await fetch(url);\r\n return window.URL.createObjectURL(new window.Blob([await res.blob()]));\r\n }, [fetch]);\r\n const goodDataEncryptedClaims = React.useCallback(async (url: string) => {\r\n const res = await fetch(url);\r\n return res;\r\n }, [fetch]);\r\n return {\r\n fetch,\r\n download,\r\n imgPreview,\r\n goodDataEncryptedClaims,\r\n };\r\n};\r\n","import React, { createContext } from 'react';\r\n\r\nconst { Provider, Consumer } = createContext(false);\r\n\r\nexport interface ChangeTrackerProviderProps {\r\n enabled: boolean;\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const ChangeTrackerProvider = ({ enabled, children }: ChangeTrackerProviderProps) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nexport interface ChangeTrackerProps {\r\n hasChanged: boolean;\r\n}\r\n\r\nexport const ChangeTracker = ({ hasChanged }: ChangeTrackerProps) => (\r\n \r\n {(value) => value && hasChanged && (

Changed
)}\r\n \r\n);\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { StyledText } from '@shift/design-system';\r\nimport { ContextTranslate as CT } from 'src/utils/translation';\r\nimport { SingleFieldInformation } from 'src/types';\r\n\r\nexport interface SingleLabelProps {\r\n fieldInfo: SingleFieldInformation;\r\n}\r\n\r\nexport const SingleLabel = ({ fieldInfo }: SingleLabelProps) => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n","export const giaConfigHelpers = {\r\n persons: {\r\n selectors: {\r\n firstPartyPersons: [\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_PartySide', 'partySide'],\r\n values: [{ Type: 'PartySide', Name: 'FirstParty' }],\r\n },\r\n },\r\n ],\r\n driver: [\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumValueId'],\r\n values: [3],\r\n },\r\n },\r\n ],\r\n owner: [\r\n {\r\n name: '',\r\n selector: {\r\n path: ['objects', 'links', 'mapping_ClaimPersonToClaimObject', 'roleEnumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['objects', 'links', 'mapping_ClaimPersonToClaimObject', 'roleEnumValueId'],\r\n values: [1],\r\n },\r\n },\r\n ],\r\n driverOfVehicle: [\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumValueId'],\r\n values: [3],\r\n },\r\n },\r\n ],\r\n nric: [\r\n 'specializations',\r\n {\r\n name: 'mapping_Person_NationalIdentifier',\r\n selector: {\r\n path: ['identifier'],\r\n values: [{ Type: 'NationalIdentifierType', Name: 'NationalIdentifier' }],\r\n },\r\n },\r\n 'nationalIdentifier',\r\n ],\r\n anyIds: [\r\n 'specializations', 'mapping_Person_NationalIdentifier', 'nationalIdentifier',\r\n ],\r\n policiesPolicyHolder: [\r\n {\r\n name: '',\r\n selector: {\r\n path: ['policies', 'links', 'mapping_PolicyPerson', 'roleEnumIdentifier'],\r\n values: ['PersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['policies', 'links', 'mapping_PolicyPerson', 'roleEnumValueId'],\r\n values: [1],\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n};\r\n","import { Path } from '@shift/transform';\r\n\r\nimport {\r\n ParameterType, SearchOperationType, ClaimFields, SearchOperationFormatSpecificType,\r\n} from 'src/libs/filters';\r\nimport { permissions } from 'src/config/permissions';\r\nimport { Formatters, FormatterFactories } from 'src/config/formatters';\r\nimport { EnumValue } from 'src/types';\r\nimport { Widgetters } from 'src/config/widgets';\r\nimport { isDraftEnum, unknownObjectEnum } from 'src/constants';\r\nimport { parseOffsetDate } from 'src/utils';\r\nimport { AccidentReportConfig } from '../../types';\r\nimport { giaConfigHelpers } from './common/giaConfigHelpers';\r\n\r\nconst rootContext: Path = ['claim'];\r\n\r\nconst ownDriverContext: Path = [\r\n 'persons',\r\n ...giaConfigHelpers.persons.selectors.firstPartyPersons,\r\n ...giaConfigHelpers.persons.selectors.driver,\r\n];\r\n\r\nconst ownVehicleContext: Path = [\r\n 'objects',\r\n { name: '', selector: { path: ['links', 'mapping_ClaimObject', 'roleEnumIdentifier'], values: ['PartySide'] } },\r\n { name: '', selector: { path: ['links', 'mapping_ClaimObject', 'roleEnumValueId'], values: [1] } },\r\n];\r\n\r\nconst matchedReportsContext: Path = [\r\n 'matchedReports',\r\n { name: '', selector: { path: ['type'], values: [{ Type: 'ClaimType', Name: 'ReportOnly' }] } },\r\n];\r\n\r\nconst policyHolderContext: Path = [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_PolicyPerson', 'roleEnumIdentifier'],\r\n values: ['PersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_PolicyPerson', 'roleEnumValueId'],\r\n values: [1],\r\n },\r\n },\r\n];\r\n\r\nconst translatorContext: Path = [\r\n {\r\n name: 'persons',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_PartySide', 'partySide'],\r\n values: [{ Type: 'PartySide', Name: 'Neutral' }],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector:\r\n {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumIdentifier'],\r\n values: ['ClaimPersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector:\r\n {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumValueId'],\r\n values: [17],\r\n },\r\n },\r\n];\r\n\r\nexport const accidentReportsConfig: AccidentReportConfig = {\r\n list: {\r\n configType: 'Table',\r\n context: rootContext,\r\n i18Namespace: 'accident-reports',\r\n transforms: [\r\n {\r\n i18NId: 'claim-referenceCode',\r\n chrooters: [\r\n ['id'],\r\n ['referenceCode'],\r\n ['status'], // added here to make sure it's fetched regardless of whether we show it\r\n ],\r\n formatter: Formatters.GoToDetailPageFormatter,\r\n widgetter: Widgetters.LinksWidgetter,\r\n filter: {\r\n field: { id: ClaimFields.ReferenceCode },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18NId: 'claim-version',\r\n chrooters: [\r\n ['versionsCount'],\r\n ],\r\n filter: {\r\n field: { id: ClaimFields.VersionsCount },\r\n operation: {\r\n type: SearchOperationType.Between,\r\n name: 'IntergerEqual',\r\n parameters: [\r\n { value: '', name: 'min', type: ParameterType.IntegerParameter },\r\n { value: '', name: 'max', type: ParameterType.IntegerParameter },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.IntegerFilterWidgetter,\r\n },\r\n },\r\n {\r\n // TODO: replace by spe\r\n chrooters: [\r\n ['submissionDate'],\r\n ],\r\n formatter: Formatters.UtcDateTimeFormatter,\r\n filter: {\r\n field: { id: ClaimFields.SubmissionDate },\r\n operation: {\r\n type: SearchOperationType.Between,\r\n name: 'DateBetween',\r\n parameters: [\r\n { value: '', name: 'StartDate', type: ParameterType.DateTimeUtc },\r\n { value: '', name: 'EndDate', type: ParameterType.DateTimeUtc },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.DateFilterWidgetter,\r\n\r\n },\r\n },\r\n {\r\n chrooters: [\r\n ['firstSubmissionDate'],\r\n ],\r\n formatter: Formatters.UtcDateTimeFormatter,\r\n filter: {\r\n field: { id: ClaimFields.FirstSubmissionDate },\r\n operation: {\r\n type: SearchOperationType.Between,\r\n name: 'DateBetween',\r\n parameters: [\r\n { value: '', name: 'StartDate', type: ParameterType.DateTimeUtc },\r\n { value: '', name: 'EndDate', type: ParameterType.DateTimeUtc },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.DateFilterWidgetter,\r\n\r\n },\r\n },\r\n {\r\n i18NId: 'arc-name',\r\n chrooters: [\r\n ['aRCName'],\r\n ],\r\n filter: {\r\n field: { id: ClaimFields.ARCName },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n chrooters: [\r\n ['accidentDate'],\r\n ],\r\n formatter: Formatters.OffsetDateTimeFormatter,\r\n filter: {\r\n field: { id: ClaimFields.AccidentDate },\r\n operation: {\r\n type: SearchOperationType.Between,\r\n name: 'DateBetween',\r\n parameters: [\r\n { value: '', name: 'StartDate', type: ParameterType.DateTimeOffset },\r\n { value: '', name: 'EndDate', type: ParameterType.DateTimeOffset },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.DateFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18NId: 'handling-insurer',\r\n chrooters: [\r\n ['ownInsurer'],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n permissions: permissions.canSeeInsurerColumn,\r\n filter: {\r\n field: { id: ClaimFields.OwnInsurer },\r\n operation: {\r\n type: SearchOperationType.Equal,\r\n name: 'EnumEqual',\r\n parameters: [\r\n { value: '', name: 'equalEnum', type: ParameterType.Enum },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.EnumFilterWidgetterFactory('InsurerCode'),\r\n },\r\n widgetter: Widgetters.MaxWidthTextWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n ['policyNo'],\r\n ],\r\n filter: {\r\n field: { id: ClaimFields.PolicyNo },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18NId: 'owner-name',\r\n chrooters: [\r\n ['ownerName'],\r\n ],\r\n filter: {\r\n field: { id: ClaimFields.OwnerName },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18NId: 'owner-id',\r\n chrooters: [\r\n ['ownerId'],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('person'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n filter: {\r\n field: { id: ClaimFields.OwnerId },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n chrooters: [\r\n ['vehicleNo'],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('vehicle'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n filter: {\r\n field: { id: ClaimFields.VehicleNo },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18NId: 'claim-cause',\r\n chrooters: [\r\n ['typeEnumIdentifier'],\r\n ['typeEnumValueId'],\r\n ],\r\n formatter: Formatters.EnumValuesIdFormatter,\r\n filter: {\r\n field: { id: ClaimFields.TypeOfAccident },\r\n operation: {\r\n type: SearchOperationType.EnumIdEqual,\r\n name: 'EnumIdEqual',\r\n parameters: [\r\n { value: '', name: 'equalEnumId', type: ParameterType.Enum },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.EnumFilterWidgetterFactory('AccidentType'),\r\n },\r\n },\r\n {\r\n i18NId: 'driver-name',\r\n chrooters: [\r\n ['driverName'],\r\n ],\r\n filter: {\r\n field: { id: ClaimFields.DriverName },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetterFactory('left'),\r\n },\r\n },\r\n {\r\n i18NId: 'driver-id',\r\n chrooters: [\r\n ['driverId'],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('person'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n filter: {\r\n field: { id: ClaimFields.DriverId },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetterFactory('left'),\r\n },\r\n },\r\n {\r\n chrooters: [\r\n ['status'],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n filter: {\r\n field: { id: ClaimFields.Status },\r\n operation: {\r\n type: SearchOperationType.Equal,\r\n name: 'StringEqual',\r\n parameters: [\r\n { value: '', name: 'equalEnum', type: ParameterType.Enum },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.EnumFilterWidgetterFactory('ClosingType', 'left'),\r\n },\r\n permissions: permissions.canUpdateStatus,\r\n },\r\n {\r\n i18NId: 'draft',\r\n chrooters: [\r\n ['status'],\r\n ],\r\n formatter: Formatters.ConditionalBooleanValueFormatterFactory(\r\n (val) => isDraftEnum(val),\r\n ),\r\n filter: {\r\n field: {\r\n id: ClaimFields.Status,\r\n formatType: SearchOperationFormatSpecificType.ConditionalBooleanEquality,\r\n },\r\n operation: {\r\n type: SearchOperationType.Equal,\r\n name: 'StringEqual',\r\n parameters: [\r\n { value: '', name: 'equalEnum', type: ParameterType.Enum },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.EqualConditionBooleanFilterWidgetterFactory('ClosingType.AtDraftStage', ParameterType.Enum),\r\n },\r\n permissions: permissions.canSeeDraftColumn,\r\n },\r\n {\r\n i18NId: 'claim-lateReport',\r\n chrooters: [\r\n ['lateReport'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n filter: {\r\n field: { id: ClaimFields.LateReport },\r\n operation: {\r\n type: SearchOperationType.Equal,\r\n name: 'BooleanEqual',\r\n parameters: [\r\n { value: '', name: 'boolean', type: ParameterType.Boolean },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.BooleanFilterWidgetterFactory('left'),\r\n },\r\n },\r\n {\r\n i18NId: 'claim-matchedReports',\r\n chrooters: [\r\n [...matchedReportsContext, 'id'],\r\n [...matchedReportsContext, 'referenceCode'],\r\n [...matchedReportsContext, 'paidAccess'],\r\n [...matchedReportsContext, 'policy', 'objects', 'specializations', 'mapping_Object_Motor_VehicleRegistration', 'number'],\r\n [...matchedReportsContext, 'isStatusUpdateAllowed'],\r\n ],\r\n formatter: Formatters.LinksBillableActionFormatter(\r\n ['UN_MATCH_AR', 'EXPLORATION_SEARCH'],\r\n [permissions.canSeeMatchedReports, permissions.canSeeExploration],\r\n true,\r\n ),\r\n widgetter: Widgetters.LinksBillableActionWidgetter,\r\n permissions: permissions.canSeeMatchedReports,\r\n },\r\n ],\r\n },\r\n\r\n ownDriver: {\r\n configType: 'SelectKeyValueCard',\r\n context: rootContext,\r\n i18Namespace: 'accident-report-details',\r\n header: {\r\n chrooters: [\r\n [\r\n ...ownDriverContext, 'specializations', 'mapping_Person_Gears', 'name',\r\n ],\r\n ],\r\n },\r\n transforms: [\r\n {\r\n chrooters: [\r\n [\r\n ...ownDriverContext, 'specializations', 'mapping_Person_Gears', 'name',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'id-type',\r\n chrooters: [\r\n [\r\n ...ownDriverContext, 'specializations', 'mapping_Person_NationalIdentifier', 'identifier',\r\n ],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n i18NId: 'id-number',\r\n chrooters: [\r\n [\r\n ...ownDriverContext,\r\n ...giaConfigHelpers.persons.selectors.anyIds,\r\n ],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('person'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n ...ownDriverContext, 'specializations', 'mapping_Person_Individual', 'gender',\r\n ],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n ...ownDriverContext, 'specializations', 'mapping_Person_Individual', 'dateOfBirth',\r\n ],\r\n ],\r\n formatter: Formatters.OffsetDateFormatter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n ...ownDriverContext, 'links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_DrivingLicense', 'startDate',\r\n ],\r\n ],\r\n formatter: Formatters.OffsetDateFormatter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n ...ownDriverContext,\r\n 'links',\r\n 'mapping_ClaimPerson',\r\n 'specializations',\r\n 'mapping_ClaimPerson_DrivingLicense',\r\n 'licenseTypeSourceName',\r\n ],\r\n ],\r\n formatter: Formatters.DrivingLicenseClassEnumFormatter,\r\n },\r\n {\r\n i18NId: 'driving-license-validity',\r\n chrooters: [\r\n [\r\n ...ownDriverContext,\r\n 'links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_DrivingLicense', 'licenseValidity',\r\n ],\r\n [\r\n ...ownDriverContext,\r\n 'links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_DrivingLicense', 'licenseValiditySourceName',\r\n ],\r\n\r\n ],\r\n formatter: Formatters.DrivingLicenseValidityFormatter,\r\n },\r\n {\r\n i18NId: 'driving-experience',\r\n chrooters: [\r\n [\r\n ...ownDriverContext, 'links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_DrivingLicense', 'startDate',\r\n ],\r\n [\r\n 'specializations', 'mapping_Claim_Event', 'eventDateOffset',\r\n ],\r\n [\r\n 'modifyDateUtc',\r\n ],\r\n ],\r\n formatter: {\r\n transform: (params: string[][]) => {\r\n const [[licenseDate], [eventDate], [modifyDate]] = params;\r\n const licenseMoment = parseOffsetDate(licenseDate);\r\n const eventMoment = parseOffsetDate(eventDate ?? modifyDate);\r\n let nbYears = eventMoment.year() - licenseMoment.year();\r\n let nbMonths = eventMoment.month() - licenseMoment.month();\r\n let result = '';\r\n const monthLabel = `Month${Math.abs(nbMonths) > 1 ? 's' : ''}`;\r\n const yearLabel = `Year${nbYears > 1 ? 's' : ''}`;\r\n\r\n if (nbMonths < 0) {\r\n nbYears -= 1;\r\n nbMonths += 12;\r\n }\r\n\r\n if (nbYears > 0) {\r\n if (nbMonths > 0) {\r\n result = `${nbYears} ${yearLabel} and ${nbMonths} ${monthLabel}`;\r\n } else {\r\n result = `${nbYears} ${yearLabel}`;\r\n }\r\n } else {\r\n result = `${nbMonths} ${monthLabel}`;\r\n }\r\n\r\n return { children: result };\r\n },\r\n },\r\n },\r\n {\r\n i18NId: 'main-phone',\r\n chrooters: [\r\n [\r\n ...ownDriverContext,\r\n 'phoneNumbers',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ContactInformation', 'role'],\r\n values: [{ Type: 'ContactInformationRole', Name: 'Primary' }],\r\n },\r\n },\r\n 'countryCode',\r\n ],\r\n [\r\n ...ownDriverContext,\r\n 'phoneNumbers',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ContactInformation', 'role'],\r\n values: [{ Type: 'ContactInformationRole', Name: 'Primary' }],\r\n },\r\n },\r\n 'number',\r\n ],\r\n ],\r\n formatter: Formatters.PhoneNumberFormatter,\r\n },\r\n {\r\n i18NId: 'alt-phone-type',\r\n chrooters: [\r\n // Hack: in order to display as many types as numbers, we need to chroot into the numbers themselves.\r\n // Otherwise an empty type would just be ignored.\r\n [\r\n ...ownDriverContext,\r\n 'phoneNumbers',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ContactInformation', 'role'],\r\n values: [{ Type: 'ContactInformationRole', Name: 'Secondary' }],\r\n },\r\n },\r\n 'number',\r\n ],\r\n [\r\n ...ownDriverContext,\r\n 'phoneNumbers',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ContactInformation', 'role'],\r\n values: [{ Type: 'ContactInformationRole', Name: 'Secondary' }],\r\n },\r\n },\r\n 'phoneNumberType',\r\n ],\r\n ],\r\n formatter: Formatters.MultiFormatterFactory({\r\n transform: (values: any) => {\r\n const types = values[1];\r\n if (!types || !types[0]) {\r\n return { children: 'N/A' };\r\n }\r\n return Formatters.EnumValuesFormatter.transform([types as EnumValue[]]);\r\n },\r\n }),\r\n widgetter: Widgetters.MultiWidgetterFactory(Widgetters.CardValueWidgetter),\r\n },\r\n {\r\n i18NId: 'alt-phone',\r\n chrooters: [\r\n [\r\n ...ownDriverContext,\r\n 'phoneNumbers',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ContactInformation', 'role'],\r\n values: [{ Type: 'ContactInformationRole', Name: 'Secondary' }],\r\n },\r\n },\r\n 'countryCode',\r\n ],\r\n [\r\n ...ownDriverContext,\r\n 'phoneNumbers',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ContactInformation', 'role'],\r\n values: [{ Type: 'ContactInformationRole', Name: 'Secondary' }],\r\n },\r\n },\r\n 'number',\r\n ],\r\n ],\r\n formatter: Formatters.MultiFormatterFactory(Formatters.PhoneNumberFormatter),\r\n widgetter: Widgetters.MultiWidgetterFactory(Widgetters.CardValueWidgetter),\r\n },\r\n {\r\n chrooters: [\r\n [\r\n ...ownDriverContext, 'mails', 'address',\r\n ],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n [\r\n ...ownDriverContext, 'addresses', 'fullAddress',\r\n ],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n [\r\n ...ownDriverContext, 'addresses', 'complement',\r\n ],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n [\r\n ...ownDriverContext, 'addresses', 'postCode',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'driver-occupation-outdoor',\r\n chrooters: [\r\n [\r\n ...ownDriverContext,\r\n 'specializations',\r\n 'mapping_Person_Individual',\r\n 'isOccupationOutdoor',\r\n ],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n i18NId: 'driver-owner-relation',\r\n chrooters: [\r\n [\r\n 'policy',\r\n ...policyHolderContext,\r\n 'id',\r\n ],\r\n [\r\n ...ownDriverContext,\r\n 'id',\r\n ],\r\n [\r\n ...ownDriverContext,\r\n 'personToPersonsByFirstPerson',\r\n 'roleEnumIdentifier',\r\n ],\r\n [\r\n ...ownDriverContext,\r\n 'personToPersonsByFirstPerson',\r\n 'roleEnumValueId',\r\n ],\r\n [\r\n ...ownDriverContext,\r\n 'personToPersonsByFirstPerson',\r\n 'specializations',\r\n 'mapping_PersonToPerson_RelationDetails',\r\n 'relationDescription',\r\n ],\r\n ],\r\n formatter: {\r\n transform: (values: any[][]) => {\r\n const ownerIds = values[0];\r\n const driverIds = values[1];\r\n const identifiers = values[2];\r\n const ids = values[3];\r\n const descriptions = values[4] as string[];\r\n\r\n if (ownerIds && ownerIds.length && driverIds && driverIds.length === ownerIds.length) {\r\n if (ownerIds.every((id, idx) => driverIds[idx] === id)) {\r\n return Formatters.EnumValuesIdFormatter.transform([['PersonRelation'], [11]]);\r\n }\r\n }\r\n\r\n if (descriptions && descriptions.length) {\r\n return { children: descriptions[0] };\r\n }\r\n\r\n return Formatters.EnumValuesIdFormatter.transform([identifiers, ids]);\r\n },\r\n },\r\n widgetter: Widgetters.CardValueWidgetter,\r\n },\r\n {\r\n i18NId: 'is-own-other-vehicle',\r\n chrooters: [\r\n [\r\n ...ownDriverContext,\r\n 'links',\r\n 'mapping_ClaimPerson',\r\n 'specializations',\r\n 'mapping_ClaimPerson_Motor_VehicleOwner',\r\n 'ownAnyVehicle',\r\n ],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n i18NId: 'other-driver-vehicle-number',\r\n chrooters: [\r\n [\r\n ...ownDriverContext,\r\n 'objects',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ObjectToPerson', 'roleEnumIdentifier'],\r\n values: ['PersonToObjectRole'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ObjectToPerson', 'roleEnumValueId'],\r\n values: [1],\r\n },\r\n },\r\n 'specializations',\r\n 'mapping_Object_Motor_VehicleRegistration',\r\n 'number',\r\n ],\r\n ],\r\n formatter: Formatters.MultiFormatterFactory(Formatters.SingleValueFormatter),\r\n widgetter: Widgetters.MultiWidgetterFactory(Widgetters.CardValueWidgetter),\r\n },\r\n {\r\n i18NId: 'other-driver-vehicle-insurer',\r\n chrooters: [\r\n [\r\n ...ownDriverContext,\r\n 'objects',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ObjectToPerson', 'roleEnumIdentifier'],\r\n values: ['PersonToObjectRole'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ObjectToPerson', 'roleEnumValueId'],\r\n values: [1],\r\n },\r\n },\r\n 'policies',\r\n 'specializations',\r\n 'mapping_Policy_Insurer',\r\n 'insurer',\r\n ],\r\n ],\r\n formatter: Formatters.MultiFormatterFactory(Formatters.EnumValuesFormatter),\r\n widgetter: Widgetters.MultiWidgetterFactory(Widgetters.CardValueWidgetter),\r\n },\r\n ],\r\n },\r\n ownPolicy: {\r\n configType: 'KeyValueCard',\r\n context: rootContext.concat(['policy']),\r\n i18Namespace: 'accident-report-details',\r\n transforms: [\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Policy_Insurer', 'insurer'],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n chrooters: [\r\n ['referenceCode'],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Policy_Motor', 'type'],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n ...policyHolderContext,\r\n 'specializations',\r\n 'mapping_Person_Gears',\r\n 'name',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'policyholder-id',\r\n chrooters: [\r\n [\r\n ...policyHolderContext,\r\n 'specializations',\r\n 'mapping_Person_NationalIdentifier',\r\n 'nationalIdentifier',\r\n ],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('person'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n {\r\n i18NId: 'policyholder-id-type',\r\n chrooters: [\r\n [\r\n ...policyHolderContext,\r\n 'specializations',\r\n 'mapping_Person_NationalIdentifier',\r\n 'identifier',\r\n ],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n i18NId: 'main-phone',\r\n chrooters: [\r\n [\r\n ...policyHolderContext,\r\n 'phoneNumbers',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ContactInformation', 'role'],\r\n values: [{ Type: 'ContactInformationRole', Name: 'Primary' }],\r\n },\r\n },\r\n 'countryCode',\r\n ],\r\n [\r\n ...policyHolderContext,\r\n 'phoneNumbers',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ContactInformation', 'role'],\r\n values: [{ Type: 'ContactInformationRole', Name: 'Primary' }],\r\n },\r\n },\r\n 'number',\r\n ],\r\n ],\r\n formatter: Formatters.PhoneNumberFormatter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n ...policyHolderContext,\r\n 'mails',\r\n 'address',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'alt-phone-type',\r\n chrooters: [\r\n // Hack: in order to display as many types as numbers, we need to chroot into the numbers themselves.\r\n // Otherwise an empty type would just be ignored.\r\n [\r\n ...policyHolderContext,\r\n 'phoneNumbers',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ContactInformation', 'role'],\r\n values: [{ Type: 'ContactInformationRole', Name: 'Secondary' }],\r\n },\r\n },\r\n 'number',\r\n ],\r\n [\r\n ...policyHolderContext,\r\n 'phoneNumbers',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ContactInformation', 'role'],\r\n values: [{ Type: 'ContactInformationRole', Name: 'Secondary' }],\r\n },\r\n },\r\n 'phoneNumberType',\r\n ],\r\n ],\r\n formatter: Formatters.MultiFormatterFactory({\r\n transform: (values: any) => {\r\n const types = values[1];\r\n if (!types || !types[0]) {\r\n return { children: 'N/A' };\r\n }\r\n return Formatters.EnumValuesFormatter.transform([types as EnumValue[]]);\r\n },\r\n }),\r\n widgetter: Widgetters.MultiWidgetterFactory(Widgetters.CardValueWidgetter),\r\n },\r\n {\r\n i18NId: 'alt-phone',\r\n chrooters: [\r\n [\r\n ...policyHolderContext,\r\n 'phoneNumbers',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ContactInformation', 'role'],\r\n values: [{ Type: 'ContactInformationRole', Name: 'Secondary' }],\r\n },\r\n },\r\n 'countryCode',\r\n ],\r\n [\r\n ...policyHolderContext,\r\n 'phoneNumbers',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ContactInformation', 'role'],\r\n values: [{ Type: 'ContactInformationRole', Name: 'Secondary' }],\r\n },\r\n },\r\n 'number',\r\n ],\r\n ],\r\n formatter: Formatters.MultiFormatterFactory(Formatters.PhoneNumberFormatter),\r\n widgetter: Widgetters.MultiWidgetterFactory(Widgetters.CardValueWidgetter),\r\n },\r\n ],\r\n },\r\n ownVehicle: {\r\n configType: 'KeyValueCard',\r\n context: rootContext,\r\n i18Namespace: 'accident-report-details',\r\n transforms: [\r\n {\r\n chrooters: [\r\n [\r\n ...ownVehicleContext,\r\n 'specializations', 'mapping_Object_Motor_VehicleRegistration', 'number',\r\n ],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('vehicle'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n {\r\n i18NId: 'vehicle-make',\r\n chrooters: [\r\n [\r\n ...ownVehicleContext,\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'makeNotInEnum',\r\n ],\r\n [\r\n ...ownVehicleContext,\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'make',\r\n ],\r\n [\r\n ...ownVehicleContext,\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'makeDescription',\r\n ],\r\n ],\r\n formatter: Formatters.VehicleMakeFormatter,\r\n },\r\n {\r\n i18NId: 'vehicle-model',\r\n chrooters: [\r\n [\r\n ...ownVehicleContext,\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'model',\r\n ],\r\n ],\r\n formatter: Formatters.VehicleModelFormatter,\r\n },\r\n {\r\n i18NId: 'vehicle-variant',\r\n chrooters: [\r\n [\r\n ...ownVehicleContext,\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'model',\r\n ],\r\n ],\r\n formatter: Formatters.VehicleVariantFormatter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n ...ownVehicleContext,\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'transmission',\r\n ],\r\n\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n ...ownVehicleContext,\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'engineCapacityValue',\r\n ],\r\n\r\n ],\r\n },\r\n {\r\n i18NId: 'date-time-of-ownership',\r\n chrooters: [\r\n [\r\n ...ownVehicleContext,\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'purchaseDateUtc',\r\n ],\r\n\r\n ],\r\n formatter: Formatters.UtcDateTimeFormatter,\r\n\r\n },\r\n {\r\n chrooters: [\r\n [\r\n ...ownVehicleContext,\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'type',\r\n ],\r\n\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n i18NId: 'vin',\r\n chrooters: [\r\n [\r\n ...ownVehicleContext,\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'vIN',\r\n ],\r\n\r\n ],\r\n },\r\n {\r\n i18NId: 'first-registration-date',\r\n chrooters: [\r\n [\r\n ...ownVehicleContext,\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'firstRegistrationDateUtc',\r\n ],\r\n\r\n ],\r\n formatter: Formatters.UtcDateFormatter,\r\n },\r\n {\r\n i18NId: 'vehicle-fuel',\r\n chrooters: [\r\n [\r\n ...ownVehicleContext,\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'vehicleFuel',\r\n ],\r\n [\r\n ...ownVehicleContext,\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'vehicleFuelSourceName',\r\n ],\r\n\r\n ],\r\n formatter: Formatters.VehicleFuelFormatter,\r\n },\r\n {\r\n i18NId: 'vehicle-usage-purpose',\r\n chrooters: [\r\n [\r\n ...ownVehicleContext,\r\n 'links', 'mapping_ClaimObject', 'specializations', 'mapping_ClaimObject_Motor_InvolvedVehicle', 'usagePurpose',\r\n ],\r\n ],\r\n formatter: Formatters.BindedNameEnumValueFormatterFactory('VehiclePurpose'),\r\n },\r\n {\r\n chrooters: [\r\n [\r\n ...ownVehicleContext,\r\n 'links', 'mapping_ClaimObject', 'specializations', 'mapping_ClaimObject_Motor_InvolvedVehicle', 'numOccupants',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'passenger-names',\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_PartySide', 'partySide'],\r\n values: [{ Type: 'PartySide', Name: 'FirstParty' }],\r\n },\r\n },\r\n\r\n ],\r\n [\r\n 'persons',\r\n 'links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumIdentifier',\r\n ],\r\n [\r\n 'persons',\r\n 'links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumValueId',\r\n ],\r\n [\r\n 'persons',\r\n 'specializations', 'mapping_Person_Gears', 'name',\r\n ],\r\n ],\r\n formatter: Formatters.MultiFormatterFactory(Formatters.PassengerFormatter, true),\r\n widgetter: Widgetters.MultiWidgetterFactory(Widgetters.CardValueWidgetter),\r\n },\r\n {\r\n i18NId: 'passenger-genders',\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_PartySide', 'partySide'],\r\n values: [{ Type: 'PartySide', Name: 'FirstParty' }],\r\n },\r\n },\r\n\r\n ],\r\n [\r\n 'persons',\r\n 'links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumIdentifier',\r\n ],\r\n [\r\n 'persons',\r\n 'links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumValueId',\r\n ],\r\n [\r\n 'persons',\r\n 'specializations', 'mapping_Person_Individual', 'gender',\r\n ],\r\n ],\r\n formatter: Formatters.MultiFormatterFactory(Formatters.GenderFormatter, true),\r\n widgetter: Widgetters.MultiWidgetterFactory(Widgetters.CardValueWidgetter),\r\n },\r\n ],\r\n },\r\n thirdParty: {\r\n configType: 'SelectKeyValueCard',\r\n context: rootContext.concat([\r\n 'objects',\r\n { name: '', selector: { path: ['links', 'mapping_ClaimObject', 'roleEnumIdentifier'], values: ['PartySide'] } },\r\n { name: '', selector: { path: ['links', 'mapping_ClaimObject', 'roleEnumValueId'], values: [3] } },\r\n ]),\r\n i18Namespace: 'accident-report-details',\r\n header: {\r\n chrooters: [\r\n [\r\n 'specializations',\r\n ],\r\n ],\r\n formatter: Formatters.VehicleNumberSelectFormatter({\r\n prefix: 'accident-report-details:tp',\r\n }),\r\n },\r\n transforms: [\r\n {\r\n i18NId: 'Vehicle-registration-number',\r\n chrooters: [\r\n [\r\n 'specializations',\r\n 'mapping_Object_Motor_VehicleRegistration',\r\n 'type',\r\n ],\r\n [\r\n 'specializations',\r\n 'mapping_Object_Motor_VehicleRegistration',\r\n {\r\n name: '',\r\n selector: { path: ['type'], values: [{ Type: 'RegistrationType', Name: 'Foreign' }] },\r\n },\r\n 'number',\r\n ],\r\n [\r\n 'specializations', 'mapping_Object_Motor_VehicleRegistration', 'number',\r\n ],\r\n ],\r\n formatter: Formatters.MultipleFormatters([\r\n Formatters.TernaryConditionFormatter({\r\n conditionFct: (type: EnumValue) => type?.Name === 'Foreign',\r\n }),\r\n Formatters.LinksExplorationSearchFormatter('vehicle'),\r\n ]),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n {\r\n i18NId: 'is-foreign-vehicle',\r\n chrooters: [\r\n [\r\n 'specializations',\r\n 'mapping_Object_Motor_VehicleRegistration',\r\n {\r\n name: '',\r\n selector: { path: ['type'], values: [{ Type: 'RegistrationType', Name: 'Foreign' }] },\r\n },\r\n 'type',\r\n ],\r\n ],\r\n formatter: Formatters.BooleanValueFallbackNoFormatter,\r\n },\r\n {\r\n i18NId: 'vehicle-make',\r\n chrooters: [\r\n [\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'makeNotInEnum',\r\n ],\r\n [\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'make',\r\n ],\r\n [\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'makeDescription',\r\n ],\r\n ],\r\n formatter: Formatters.VehicleMakeFormatter,\r\n },\r\n {\r\n i18NId: 'vehicle-model',\r\n chrooters: [\r\n [\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'model',\r\n ],\r\n ],\r\n formatter: Formatters.VehicleModelFormatter,\r\n },\r\n {\r\n i18NId: 'color',\r\n chrooters: [\r\n [\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'color',\r\n ],\r\n\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n i18NId: 'vehicle-type',\r\n chrooters: [\r\n [\r\n 'specializations',\r\n 'mapping_Object_Motor_VehicleRegistration',\r\n 'type',\r\n ],\r\n [\r\n 'specializations',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['mapping_Object_Motor_VehicleRegistration', 'type'],\r\n values: [{ Type: 'RegistrationType', Name: 'Foreign' }],\r\n },\r\n },\r\n 'mapping_Object_Motor_Vehicle',\r\n 'type',\r\n ],\r\n [\r\n 'specializations', 'mapping_Object_Motor_Vehicle', 'type',\r\n ],\r\n\r\n ],\r\n formatter: Formatters.MultipleFormatters([\r\n Formatters.TernaryConditionFormatter({\r\n conditionFct: (type: EnumValue) => type?.Name === 'Foreign',\r\n }),\r\n FormatterFactories.DefaultValueFormatterFactory(unknownObjectEnum),\r\n Formatters.EnumValuesFormatter,\r\n ]),\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'policies', 'specializations', 'mapping_Policy_Insurer', 'insurer',\r\n ],\r\n\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n i18NId: 'object-damage-description',\r\n chrooters: [\r\n [\r\n 'specializations', 'mapping_Object_FreeText', 'description',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'damage-description',\r\n chrooters: [\r\n [\r\n 'damages',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_DamageTarget', 'roleEnumIdentifier'],\r\n values: ['PropertyDamageCategory'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_DamageTarget', 'roleEnumValueId'],\r\n values: [1],\r\n },\r\n },\r\n 'specializations',\r\n 'mapping_Damage_FreeText',\r\n 'freeTextDescription',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'driver-name',\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n { name: '', selector: { path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumValueId'], values: [3] } },\r\n 'specializations', 'mapping_Person_Gears', 'name',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'driver-id-type',\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n { name: '', selector: { path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumValueId'], values: [3] } },\r\n 'specializations', 'mapping_Person_NationalIdentifier', 'identifier',\r\n ],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n i18NId: 'driver-id',\r\n chrooters: [\r\n [\r\n 'persons',\r\n { name: '', selector: { path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumValueId'], values: [3] } },\r\n ...giaConfigHelpers.persons.selectors.driverOfVehicle,\r\n ...giaConfigHelpers.persons.selectors.anyIds,\r\n ],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('person'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n {\r\n i18NId: 'driver-phone',\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n { name: '', selector: { path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumValueId'], values: [3] } },\r\n 'phoneNumbers', 'countryCode',\r\n ],\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n { name: '', selector: { path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumValueId'], values: [3] } },\r\n 'phoneNumbers', 'number',\r\n ],\r\n ],\r\n formatter: Formatters.PhoneNumberFormatter,\r\n },\r\n {\r\n i18NId: 'driver-address',\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n { name: '', selector: { path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumValueId'], values: [3] } },\r\n 'addresses', 'fullAddress',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'driver-address-complement',\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n { name: '', selector: { path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumValueId'], values: [3] } },\r\n 'addresses', 'complement',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'driver-postcode',\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n { name: '', selector: { path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumValueId'], values: [3] } },\r\n 'addresses', 'postCode',\r\n ],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'links',\r\n 'mapping_ClaimObject',\r\n 'specializations',\r\n 'mapping_ClaimObject_Motor_InvolvedVehicle',\r\n 'numOccupants',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'passenger-names',\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n { name: '', selector: { path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumValueId'], values: [4] } },\r\n 'specializations', 'mapping_Person_Gears', 'name',\r\n ],\r\n ],\r\n formatter: Formatters.MultiFormatterFactory(Formatters.SingleValueFormatter),\r\n widgetter: Widgetters.MultiWidgetterFactory(Widgetters.CardValueWidgetter),\r\n },\r\n {\r\n i18NId: 'passenger-genders',\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n { name: '', selector: { path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumValueId'], values: [4] } },\r\n 'specializations', 'mapping_Person_Individual', 'gender',\r\n ],\r\n ],\r\n formatter: Formatters.MultiFormatterFactory(Formatters.EnumValuesFormatter),\r\n widgetter: Widgetters.MultiWidgetterFactory(Widgetters.CardValueWidgetter),\r\n },\r\n ],\r\n },\r\n injured: {\r\n configType: 'SelectKeyValueCard',\r\n context: rootContext.concat([\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['damages', 'links', 'mapping_DamageTarget', 'roleEnumIdentifier'],\r\n values: ['PropertyDamageCategory'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['damages', 'links', 'mapping_DamageTarget', 'roleEnumValueId'],\r\n values: [28],\r\n },\r\n },\r\n ]),\r\n i18Namespace: 'accident-report-details',\r\n header: {\r\n chrooters: [\r\n [\r\n 'specializations', 'mapping_Person_Gears', 'name',\r\n ],\r\n ],\r\n },\r\n transforms: [\r\n {\r\n chrooters: [\r\n [\r\n 'specializations', 'mapping_Person_Gears', 'name',\r\n ],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'specializations', 'mapping_Person_Individual', 'gender',\r\n ],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n i18NId: 'phone-number',\r\n chrooters: [\r\n [\r\n 'phoneNumbers', 'countryCode',\r\n ],\r\n [\r\n 'phoneNumbers', 'number',\r\n ],\r\n ],\r\n formatter: Formatters.PhoneNumberFormatter,\r\n },\r\n {\r\n i18NId: 'injured-age',\r\n chrooters: [\r\n [\r\n 'specializations', 'mapping_Person_Individual', 'dateOfBirth',\r\n ],\r\n [\r\n 'claims',\r\n 'specializations',\r\n 'mapping_Claim_Event',\r\n 'eventDateOffset',\r\n ],\r\n [\r\n 'claims',\r\n 'modifyDateUtc',\r\n ],\r\n ],\r\n formatter: {\r\n transform: (params: string[][]) => {\r\n const [[dobDate], [eventDate], [modifyDate]] = params;\r\n\r\n const dobMoment = parseOffsetDate(dobDate);\r\n const eventMoment = parseOffsetDate(eventDate ?? modifyDate);\r\n\r\n const diff = dobMoment.isValid() && eventMoment.isValid()\r\n ? `${eventMoment.diff(dobMoment, 'years')} year(s) old`\r\n : '';\r\n\r\n return { children: diff };\r\n },\r\n },\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'addresses', 'fullAddress',\r\n ],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'addresses', 'complement',\r\n ],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'addresses', 'postCode',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'injuries-sustained',\r\n chrooters: [\r\n [\r\n 'damages', 'specializations', 'mapping_Damage_FreeText', 'freeTextDescription',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'seat-belt-worn',\r\n chrooters: [\r\n [\r\n 'links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Motor_Passenger', 'seatbeltWorn',\r\n ],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n i18NId: 'injured-vehicle',\r\n chrooters: [\r\n [\r\n 'objects',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumValueId'],\r\n values: [4],\r\n },\r\n },\r\n 'specializations',\r\n 'mapping_Object_Motor_VehicleRegistration',\r\n 'number',\r\n ],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('vehicle'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n {\r\n i18NId: 'injured-took-ambulance',\r\n chrooters: [\r\n [\r\n 'damages',\r\n 'links',\r\n 'mapping_DamageTarget',\r\n 'specializations',\r\n 'mapping_DamageTarget_BodilyInjury_Ambulance',\r\n 'victimUsedAmbulance',\r\n ],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n ],\r\n },\r\n witness: {\r\n configType: 'SelectKeyValueCard',\r\n context: rootContext.concat([\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_PartySide', 'partySide'],\r\n values: [{ Type: 'PartySide', Name: 'Neutral' }],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumIdentifier'],\r\n values: ['ClaimPersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumValueId'],\r\n values: [5],\r\n },\r\n },\r\n ]),\r\n i18Namespace: 'accident-report-details',\r\n header: {\r\n chrooters: [\r\n [\r\n 'specializations', 'mapping_Person_Gears', 'name',\r\n ],\r\n ],\r\n },\r\n transforms: [\r\n {\r\n chrooters: [\r\n [\r\n 'specializations', 'mapping_Person_Gears', 'name',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'phone-number',\r\n chrooters: [\r\n [\r\n 'phoneNumbers', 'countryCode',\r\n ],\r\n [\r\n 'phoneNumbers', 'number',\r\n ],\r\n ],\r\n formatter: Formatters.PhoneNumberFormatter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'mails', 'address',\r\n ],\r\n ],\r\n },\r\n ],\r\n },\r\n passenger: {\r\n configType: 'SelectKeyValueCard',\r\n context: rootContext,\r\n i18Namespace: 'accident-report-details',\r\n header: {\r\n chrooters: [\r\n [\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumValueId'],\r\n values: [4],\r\n },\r\n },\r\n 'persons', 'name',\r\n ],\r\n ],\r\n },\r\n transforms: [\r\n {\r\n chrooters: [\r\n [\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumValueId'],\r\n values: [4],\r\n },\r\n },\r\n 'persons', 'name',\r\n ],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n [\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumValueId'],\r\n values: [4],\r\n },\r\n },\r\n 'persons', 'specializations', 'mapping_Person_Individual', 'gender',\r\n ],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n [\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumValueId'],\r\n values: [4],\r\n },\r\n },\r\n 'persons', 'claims', 'objects', 'specializations', 'mapping_Object_Motor_VehicleRegistration', 'number',\r\n ],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('vehicle'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n ],\r\n },\r\n\r\n accident: {\r\n configType: 'KeyValueCard',\r\n context: rootContext,\r\n i18Namespace: 'accident-report-details',\r\n transforms: [\r\n {\r\n i18NId: 'who-claimant',\r\n chrooters: [\r\n [\r\n 'persons',\r\n 'links',\r\n 'mapping_ClaimPerson',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['specializations', 'mapping_ClaimPerson_Function', 'enumIdentifier'],\r\n values: ['ClaimPersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['specializations', 'mapping_ClaimPerson_Function', 'enumValueId'],\r\n values: [4],\r\n },\r\n },\r\n ],\r\n ],\r\n formatter: Formatters.ClaimantEnumFormatter,\r\n },\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Event', 'eventDateOffset'],\r\n ],\r\n formatter: Formatters.OffsetDateTimeSuffixFormatter,\r\n },\r\n {\r\n chrooters: [\r\n ['versions', 'submissionDate'],\r\n ],\r\n formatter: FormatterFactories.ElementAtFormatterFactory(0, Formatters.UtcDateTimeSuffixFormatter),\r\n },\r\n {\r\n i18NId: 'claim-lateReport',\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Accident', 'isLateReported'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n i18NId: 'claim-cause',\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Cause', 'enumIdentifier'],\r\n ['specializations', 'mapping_Claim_Cause', 'enumValueId'],\r\n ],\r\n formatter: Formatters.EnumValuesIdFormatter,\r\n },\r\n {\r\n i18NId: 'claim-underOwnPolicy',\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_PurposeIndication', 'purpose'],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n i18NId: 'claim-weatherCondition',\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Motor_RoadAccident', 'weatherConditionDescription'],\r\n ['specializations', 'mapping_Claim_Motor_RoadAccident', 'weatherCondition'],\r\n ],\r\n formatter: {\r\n transform: (values) => {\r\n const [[desc], enums] = values as [string[], EnumValue[]];\r\n return desc ? { children: desc as string } : Formatters.EnumValuesFormatter.transform([enums]);\r\n },\r\n },\r\n },\r\n {\r\n i18NId: 'claim-roadSurface',\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Motor_RoadAccident', 'roadSurfaceDescription'],\r\n ['specializations', 'mapping_Claim_Motor_RoadAccident', 'roadSurface'],\r\n ],\r\n formatter: {\r\n transform: (values) => {\r\n const [[desc], enums] = values as [string[], EnumValue[]];\r\n return desc ? { children: desc as string } : Formatters.EnumValuesFormatter.transform([enums]);\r\n },\r\n },\r\n },\r\n {\r\n i18NId: 'arc-name',\r\n chrooters: [\r\n [\r\n 'provider',\r\n { name: '', selector: { path: ['links', 'mapping_ClaimProvider', 'roleEnumIdentifier'], values: ['ProviderRole'] } },\r\n { name: '', selector: { path: ['links', 'mapping_ClaimProvider', 'roleEnumValueId'], values: [10] } },\r\n 'person',\r\n 'specializations',\r\n 'mapping_Person_Gears',\r\n 'name',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'arc-uid',\r\n chrooters: [\r\n [\r\n 'provider',\r\n { name: '', selector: { path: ['links', 'mapping_ClaimProvider', 'roleEnumIdentifier'], values: ['ProviderRole'] } },\r\n { name: '', selector: { path: ['links', 'mapping_ClaimProvider', 'roleEnumValueId'], values: [10] } },\r\n 'person',\r\n ...giaConfigHelpers.persons.selectors.anyIds,\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'arc-user-name',\r\n chrooters: [\r\n [\r\n 'providerEntity',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ProviderEntityToClaim', 'roleEnumIdentifier'],\r\n values: ['ProviderEntityToClaimRole'],\r\n },\r\n },\r\n { name: '', selector: { path: ['links', 'mapping_ProviderEntityToClaim', 'roleEnumValueId'], values: [1] } },\r\n 'person',\r\n 'specializations',\r\n 'mapping_Person_Gears',\r\n 'name',\r\n ],\r\n ],\r\n },\r\n ],\r\n },\r\n otherInformation: {\r\n configType: 'KeyValueCard',\r\n context: rootContext,\r\n i18Namespace: 'accident-report-details',\r\n transforms: [\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Motor_Checklist', 'numberOfVehicles'],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Motor_Checklist', 'anyInjuredPersons'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Motor_Checklist', 'anyInjuredPersonConveyedByAmbulance'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Motor_Checklist', 'anyWitness'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Motor_Checklist', 'anyUnknownPersonAssistance'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Motor_Checklist', 'anyPoliceReport'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'specializations', 'mapping_Claim_Motor_Checklist', 'anyOtherVehicleDamage',\r\n ],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n i18NId: 'any-foreign-vehicle',\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Motor_Checklist', 'anyForeignVehicle'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n i18NId: 'translator-name',\r\n chrooters: [\r\n [\r\n ...translatorContext,\r\n 'specializations',\r\n 'mapping_Person_Gears',\r\n 'name',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'translator-id',\r\n chrooters: [\r\n [\r\n ...translatorContext,\r\n 'specializations',\r\n 'mapping_Person_NationalIdentifier',\r\n 'nationalIdentifier',\r\n ],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('person'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n {\r\n i18NId: 'translator-phone',\r\n chrooters: [\r\n [\r\n ...translatorContext,\r\n 'phoneNumbers',\r\n 'countryCode',\r\n ],\r\n [\r\n ...translatorContext,\r\n 'phoneNumbers',\r\n 'number',\r\n ],\r\n ],\r\n formatter: Formatters.PhoneNumberFormatter,\r\n },\r\n {\r\n i18NId: 'translator-email',\r\n chrooters: [\r\n [\r\n ...translatorContext, 'mails', 'address',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'original-language',\r\n chrooters: [\r\n [\r\n {\r\n name: 'documents',\r\n selector: {\r\n path: ['specializations', 'document_Document_Classification', 'documentCategory'],\r\n values: [{ Type: 'DocumentCategory', Name: 'Report' }],\r\n },\r\n },\r\n 'specializations',\r\n {\r\n name: 'mapping_Document_FreeText',\r\n selector: { path: ['identifier'], values: [{ Type: 'DocumentFreeTextType', Name: 'Language' }] },\r\n },\r\n 'freeTextDescription',\r\n ],\r\n ],\r\n },\r\n ],\r\n },\r\n statement: {\r\n configType: 'SingleValueCard',\r\n context: rootContext,\r\n transforms: [\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Cause', 'detailedCircumstances'],\r\n ],\r\n formatter: Formatters.SingleValueFormatter,\r\n widgetter: Widgetters.TextWidgetter,\r\n },\r\n ],\r\n },\r\n\r\n fraudElements: {\r\n configType: 'Table',\r\n context: rootContext.concat(['fraud_elements']),\r\n i18Namespace: 'accident-report-details',\r\n transforms: [\r\n {\r\n chrooters: [\r\n ['score'],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n ['link'],\r\n ],\r\n },\r\n ],\r\n },\r\n\r\n attachments: {\r\n configType: 'Table',\r\n context: rootContext.concat(['documents']),\r\n i18Namespace: 'accident-report-details',\r\n transforms: [\r\n {\r\n i18NId: 'claim-documents-document',\r\n chrooters: [\r\n ['id'],\r\n ['specializations', 'mapping_Document_FreeText', 'identifier'],\r\n ['specializations', 'mapping_Document_FreeText', 'freeTextDescription'],\r\n ['documentName'],\r\n ['specializations', 'document_Document_DestinationDiskStorageInformation', 'fileSize'],\r\n ],\r\n formatter: Formatters.ThumbnailFormatter,\r\n widgetter: Widgetters.ThumbnailWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n ['modifyDateUtc'],\r\n ],\r\n formatter: Formatters.UtcDateFormatter,\r\n },\r\n ],\r\n },\r\n recoveries: {\r\n configType: 'Table',\r\n context: rootContext.concat(['recoveries']),\r\n i18Namespace: 'accident-report-details',\r\n transforms: [\r\n {\r\n i18NId: 'recovery-referenceCode',\r\n chrooters: [\r\n ['id'],\r\n ['referenceCode'],\r\n ],\r\n formatter: Formatters.GoToRecoveryPageFormatter,\r\n widgetter: Widgetters.LinksWidgetter,\r\n },\r\n {\r\n i18NId: 'officer-in-charge',\r\n chrooters: [['workflow', 'officer', 'identity', 'insurerEntity', 'person', 'specializations', 'mapping_Person_Gears', 'name']],\r\n },\r\n {\r\n i18NId: 'own-side',\r\n chrooters: [\r\n ['links', 'mapping_RecoveryClaim', 'roleEnumValueId'],\r\n ],\r\n formatter: {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n transform: (value: any) => {\r\n const val = value && value.length > 0 && value[0][0];\r\n let role = null;\r\n if (val) {\r\n role = val === 3 ? 'Third' : 'Receiving';\r\n } else {\r\n role = 'Initiating';\r\n }\r\n return {\r\n children: `${role} Party`,\r\n };\r\n },\r\n },\r\n },\r\n {\r\n i18NId: 'other-party-insurer',\r\n chrooters: [\r\n ['workflow', 'party'],\r\n ['workflow', 'claims', 'links', 'ui_WorkflowToClaim', 'roleEnumValueId'],\r\n [\r\n 'workflow',\r\n 'claims',\r\n 'specializations',\r\n 'mapping_Claim_Insurer',\r\n 'insurer',\r\n ]],\r\n formatter: Formatters.OtherPartyFormatterFactory(Formatters.EnumValuesFormatter),\r\n },\r\n {\r\n i18NId: 'other-party-vehicle-number',\r\n chrooters: [\r\n ['workflow', 'party'],\r\n ['workflow', 'claims', 'links', 'ui_WorkflowToClaim', 'roleEnumValueId'],\r\n [\r\n 'workflow',\r\n 'claims',\r\n 'objects',\r\n 'specializations',\r\n 'mapping_Object_Motor_VehicleRegistration',\r\n 'number',\r\n ],\r\n ],\r\n formatter: Formatters.OtherPartyFormatterFactory(Formatters.LinksExplorationSearchFormatter('vehicle')),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n ['workflow', 'lastWorkflowStep', 'state'],\r\n ],\r\n },\r\n {\r\n i18NId: 'case-type',\r\n chrooters: [\r\n ['accidentReports', 'links', 'mapping_RecoveryTarget', 'roleEnumIdentifier'],\r\n ['accidentReports', 'links', 'mapping_RecoveryTarget', 'roleEnumValueId'],\r\n ],\r\n formatter: Formatters.EnumValuesIdFormatter,\r\n },\r\n ],\r\n },\r\n versions: {\r\n configType: 'Table',\r\n context: rootContext,\r\n i18Namespace: 'accident-report-versions',\r\n transforms: [\r\n {\r\n chrooters: [['versions', 'submissionDate']],\r\n formatter: Formatters.UtcDateTimeSuffixFormatter,\r\n },\r\n {\r\n i18NId: 'claim_versions_pdf_link',\r\n chrooters: [\r\n ['id'],\r\n ['referenceCode'],\r\n ['versions', 'submissionDate'],\r\n ['versions', 'number'],\r\n ],\r\n formatter: Formatters.PDFLinkFormatter,\r\n widgetter: Widgetters.DownloadWidgetter,\r\n },\r\n ],\r\n },\r\n matchedReports: {\r\n configType: 'Table',\r\n context: [...rootContext, ...matchedReportsContext],\r\n i18Namespace: 'accident-report-matched-reports',\r\n transforms: [\r\n {\r\n i18NId: 'claim-referenceCode',\r\n chrooters: [\r\n ['id'],\r\n ['referenceCode'],\r\n ['status'], // This is just added here to figure out if the report is missing in a later stage (not used in widgetter)\r\n ],\r\n formatter: Formatters.GoToDetailPageFormatter,\r\n widgetter: Widgetters.LinksWidgetter,\r\n },\r\n {\r\n chrooters: [['specializations', 'mapping_Claim_Insurer', 'insurer']],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n { name: 'objects', selector: { path: ['links', 'mapping_ClaimObject', 'roleEnumIdentifier'], values: ['PartySide'] } },\r\n { name: '', selector: { path: ['links', 'mapping_ClaimObject', 'roleEnumValueId'], values: [1] } },\r\n 'specializations',\r\n 'mapping_Object_Motor_VehicleRegistration',\r\n 'number',\r\n ],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('vehicle'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n ],\r\n },\r\n initiateRecovery: {\r\n configType: 'KeyValueCard',\r\n context: rootContext,\r\n transforms: [\r\n {\r\n chrooters: [\r\n ['id'],\r\n ['importedDocuments', 'id'],\r\n ['importedDocuments', 'category'],\r\n ['importedDocuments', 'name'],\r\n ['referenceCode'],\r\n ],\r\n },\r\n { chrooters: [['specializations', 'mapping_Claim_Insurer', 'insurer']] },\r\n { chrooters: [['policy', 'persons', 'specializations', 'mapping_Person_Gears', 'name']] },\r\n {\r\n chrooters: [\r\n [\r\n 'objects',\r\n { name: '', selector: { path: ['links', 'mapping_ClaimObject', 'roleEnumIdentifier'], values: ['PartySide'] } },\r\n { name: '', selector: { path: ['links', 'mapping_ClaimObject', 'roleEnumValueId'], values: [1] } },\r\n 'specializations', 'mapping_Object_Motor_VehicleRegistration', 'number',\r\n ],\r\n ],\r\n },\r\n ],\r\n },\r\n reportSubmitted: {\r\n configType: 'KeyValueCard',\r\n context: rootContext,\r\n transforms: [\r\n {\r\n chrooters: [\r\n ['id'],\r\n ['referenceCode'],\r\n ['status'],\r\n ['versions', 'submissionDate'],\r\n ['versions', 'version'],\r\n ['versions', 'number'],\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n { name: '', selector: { path: ['links', 'mapping_ClaimPersonToClaimObject', 'roleEnumValueId'], values: [3] } },\r\n 'specializations', 'mapping_Person_Gears', 'name',\r\n ],\r\n ],\r\n },\r\n ],\r\n },\r\n attachmentSummary: {\r\n configType: 'KeyValueCard',\r\n context: rootContext,\r\n i18Namespace: 'accident-report-details',\r\n transforms: [\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Motor_Checklist', 'anyAccidentPhoto'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Motor_Checklist', 'anyAccidentVideo'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n ],\r\n },\r\n policeAction: {\r\n configType: 'KeyValueCard',\r\n context: rootContext,\r\n i18Namespace: 'accident-report-details',\r\n transforms: [\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Motor_Checklist', 'anyPoliceReport'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['specializations', 'mapping_Person_Organization', 'orgType'],\r\n values: [{ Type: 'OrgType', Name: 'Police' }],\r\n },\r\n },\r\n 'specializations',\r\n 'mapping_Person_Gears',\r\n 'name',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'phone-number',\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['specializations', 'mapping_Person_Organization', 'orgType'],\r\n values: [{ Type: 'OrgType', Name: 'Police' }],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['phoneNumbers', 'phoneNumberType'],\r\n values: [{ Type: 'PhoneNumberType', Name: 'Phone' }],\r\n },\r\n },\r\n 'phoneNumbers',\r\n 'countryCode',\r\n ],\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['specializations', 'mapping_Person_Organization', 'orgType'],\r\n values: [{ Type: 'OrgType', Name: 'Police' }],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['phoneNumbers', 'phoneNumberType'],\r\n values: [{ Type: 'PhoneNumberType', Name: 'Phone' }],\r\n },\r\n },\r\n 'phoneNumbers',\r\n 'number',\r\n ],\r\n ],\r\n formatter: Formatters.PhoneNumberFormatter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['specializations', 'mapping_Person_Organization', 'orgType'],\r\n values: [{ Type: 'OrgType', Name: 'Police' }],\r\n },\r\n },\r\n 'addresses',\r\n 'fullAddress',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'fax-number',\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['specializations', 'mapping_Person_Organization', 'orgType'],\r\n values: [{ Type: 'OrgType', Name: 'Police' }],\r\n },\r\n },\r\n 'phoneNumbers',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['phoneNumberType'],\r\n values: [{ Type: 'PhoneNumberType', Name: 'Fax' }],\r\n },\r\n },\r\n 'countryCode',\r\n ],\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['specializations', 'mapping_Person_Organization', 'orgType'],\r\n values: [{ Type: 'OrgType', Name: 'Police' }],\r\n },\r\n },\r\n 'phoneNumbers',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['phoneNumberType'],\r\n values: [{ Type: 'PhoneNumberType', Name: 'Fax' }],\r\n },\r\n },\r\n 'number',\r\n ],\r\n ],\r\n formatter: Formatters.PhoneNumberFormatter,\r\n },\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Motor_Checklist', 'anyProsecutionGiven'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n i18NId: 'assessment-text',\r\n chrooters: [\r\n [\r\n 'assessments',\r\n 'specializations',\r\n {\r\n name: 'mapping_Assessment_FreeText',\r\n selector: {\r\n path: ['identifier'],\r\n values: [{ Type: 'AssessmentFreeTextType', Name: 'Prosecution' }],\r\n },\r\n },\r\n 'text',\r\n ],\r\n ],\r\n },\r\n ],\r\n },\r\n referenceCode: {\r\n configType: 'Processed',\r\n context: ['claim'],\r\n fields: [\r\n ['referenceCode'],\r\n ['status'],\r\n ['versions', 'submissionDate'],\r\n ['versions', 'version'],\r\n ['versions', 'number'],\r\n ['isCommentAllowed'],\r\n ['isStatusUpdateAllowed'],\r\n ['isRecoveriesAccessAllowed'],\r\n ['isRecoveryCreationAllowed'],\r\n ],\r\n },\r\n comments: {\r\n configType: 'Processed',\r\n context: ['claim'],\r\n fields: [\r\n ['comments', 'content'],\r\n ['comments', 'createDateUtc'],\r\n ['comments', 'author', 'userName'],\r\n ],\r\n },\r\n accidentLocation: {\r\n configType: 'Processed',\r\n context: ['claim', 'addresses'],\r\n fields: [\r\n ['fullAddress'],\r\n ['country'],\r\n ['latitude'],\r\n ['longitude'],\r\n ['complement'],\r\n ],\r\n },\r\n};\r\n","import { SingleValueCardConfig, MergedTableConfig } from '../../../../../libs/config';\r\nimport { TranslateWithNamespaceValueFormatter, TranslateAndJoinWithNamespaceValueFormatter } from '../../../../formatters/TranslateValueFormatter';\r\nimport { Formatters } from '../../../../formatters';\r\nimport { AnyType } from '../../../../../types';\r\nimport { Widgetters } from '../../../../widgets';\r\nimport { ExplorationHistorySearch, ParameterType, SearchOperationType } from '../../../../../libs/filters/filters';\r\nimport { permissions } from '../../../../permissions';\r\nimport { giaConfigHelpers } from '../common/giaConfigHelpers';\r\n\r\nconst noopWidgetter = {\r\n widgetter: Widgetters.NoopWidgetter,\r\n};\r\nconst nric = {\r\n chrooters: [\r\n [\r\n 'persons',\r\n ...giaConfigHelpers.persons.selectors.firstPartyPersons,\r\n ...giaConfigHelpers.persons.selectors.driver,\r\n ...giaConfigHelpers.persons.selectors.nric,\r\n ],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('person'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n};\r\n\r\nconst policyHistories: SingleValueCardConfig = {\r\n configType: 'SingleValueCard',\r\n context: [\r\n 'policies',\r\n { name: '', selector: { path: ['creationChannel'], values: [{ Type: 'CommunicationChannel', Name: 'ElectronicDataInterchange' }] } },\r\n ],\r\n i18Namespace: 'history-exploration',\r\n transforms: [\r\n {\r\n chrooters: [\r\n [\r\n '__typename',\r\n ],\r\n ],\r\n formatter: TranslateWithNamespaceValueFormatter('history-exploration'),\r\n ...noopWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'effectiveDateOffset',\r\n ],\r\n ],\r\n formatter: Formatters.OffsetDateFormatter,\r\n ...noopWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Policy_Insurer', 'insurer'],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n ...noopWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'referenceCode'],\r\n ],\r\n ...noopWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n ['objects', 'specializations', 'mapping_Object_Motor_VehicleRegistration', 'number'],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('vehicle'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_PolicyPerson', 'roleEnumIdentifier'],\r\n values: ['PersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_PolicyPerson', 'roleEnumValueId'],\r\n values: [1],\r\n },\r\n },\r\n 'specializations',\r\n 'mapping_Person_NationalIdentifier',\r\n 'nationalIdentifier',\r\n ],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('person'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'objects',\r\n 'links',\r\n 'mapping_PolicyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_Motor_TerminationReason',\r\n 'policyObjectTerminationReason',\r\n ],\r\n ],\r\n formatter: Formatters.ExplorationReferenceFormatter,\r\n ...noopWidgetter,\r\n },\r\n ],\r\n};\r\n\r\nconst claimHistories: SingleValueCardConfig = {\r\n configType: 'SingleValueCard',\r\n context: ['claims',\r\n // we need data from Insurers side (NCD) side.\r\n // for now, we comment it\r\n { name: '', selector: { path: ['type'], values: [{ Type: 'ClaimType', Name: 'Insurance' }] } }],\r\n i18Namespace: 'history-exploration',\r\n transforms: [\r\n {\r\n\r\n chrooters: [\r\n [\r\n '__typename',\r\n ],\r\n [\r\n 'type',\r\n ],\r\n ],\r\n formatter: TranslateAndJoinWithNamespaceValueFormatter('history-exploration', (val: AnyType) => `${val?.Type}-${val?.Name}`),\r\n ...noopWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Event', 'eventDateOffset'],\r\n ],\r\n formatter: Formatters.OffsetDateFormatter,\r\n ...noopWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Insurer', 'insurer'],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n ...noopWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'policy', 'referenceCode'],\r\n ],\r\n ...noopWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n ['policy', 'objects', 'specializations', 'mapping_Object_Motor_VehicleRegistration', 'number'],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('vehicle'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n nric,\r\n {\r\n chrooters: [\r\n [\r\n 'referenceCode'],\r\n ],\r\n ...noopWidgetter,\r\n },\r\n ],\r\n};\r\n\r\nconst accidentReportHistories: SingleValueCardConfig = {\r\n configType: 'SingleValueCard',\r\n context: [\r\n 'claims',\r\n { name: '', selector: { path: ['type'], values: [{ Type: 'ClaimType', Name: 'ReportOnly' }] } },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['status'],\r\n values: [\r\n { Type: 'ClosingType', Name: 'Closed' },\r\n { Type: 'ClosingType', Name: 'InProgress' }],\r\n },\r\n },\r\n ],\r\n i18Namespace: 'history-exploration',\r\n transforms: [\r\n {\r\n chrooters: [\r\n [\r\n '__typename',\r\n ],\r\n [\r\n 'type',\r\n ],\r\n ],\r\n formatter: TranslateAndJoinWithNamespaceValueFormatter('history-exploration', (val: AnyType) => `${val?.Type}-${val?.Name}`),\r\n ...noopWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Event', 'eventDateOffset'],\r\n ],\r\n formatter: Formatters.OffsetDateFormatter,\r\n ...noopWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Insurer', 'insurer'],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n ...noopWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'policy', 'referenceCode'],\r\n ],\r\n ...noopWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n ['policy', 'objects', 'specializations', 'mapping_Object_Motor_VehicleRegistration', 'number'],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('vehicle'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n nric,\r\n {\r\n chrooters: [\r\n ['id'],\r\n ['referenceCode'],\r\n ['paidAccess'],\r\n ['policy', 'objects', 'specializations', 'mapping_Object_Motor_VehicleRegistration', 'number'],\r\n ['isStatusUpdateAllowed'],\r\n\r\n ],\r\n formatter: Formatters.LinksBillableActionFormatter(\r\n ['UN_MATCH_AR', 'EXPLORATION_SEARCH'],\r\n [permissions.canPurchaseReportsInExploration, permissions.canSeeExploration],\r\n true,\r\n ),\r\n widgetter: Widgetters.LinksBillableActionWidgetter,\r\n permissions: permissions.canSeeMatchedReports,\r\n },\r\n\r\n ],\r\n};\r\n\r\nexport const mergedHistories: MergedTableConfig = {\r\n configType: 'MergedTable',\r\n i18Namespace: 'history-exploration',\r\n header: [\r\n {\r\n i18n: 'type',\r\n filter: {\r\n\r\n field: { name: 'Type', id: ExplorationHistorySearch.HistoryByType },\r\n operation: {\r\n type: SearchOperationType.EnumIdEqual,\r\n name: 'EnumIdEqual',\r\n parameters: [\r\n { value: '', name: 'equalEnumId', type: ParameterType.Enum },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.EnumFilterWidgetterFactory('ExplorationHistoryType'),\r\n\r\n },\r\n },\r\n {\r\n i18n: 'date',\r\n filter: {\r\n\r\n field: { name: 'Date', id: ExplorationHistorySearch.HistoryByDate },\r\n operation: {\r\n type: SearchOperationType.Between,\r\n name: 'DateBetween',\r\n parameters: [\r\n { value: '', name: 'StartDate', type: ParameterType.DateTimeUtc },\r\n { value: '', name: 'EndDate', type: ParameterType.DateTimeUtc },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.DateFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18n: 'insurer',\r\n filter: {\r\n field: { name: 'Insurer', id: ExplorationHistorySearch.HistoryByInsurer },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18n: 'policy',\r\n filter: {\r\n\r\n field: { name: 'Policy', id: ExplorationHistorySearch.HistoryByPolicy },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18n: 'vrn',\r\n filter: {\r\n field: { name: 'Vrn', id: ExplorationHistorySearch.HistoryByVrn },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18n: 'nric',\r\n filter: {\r\n field: { name: 'Nric', id: ExplorationHistorySearch.HistoryByNric },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18n: 'reference',\r\n filter: {\r\n\r\n field: { name: 'Reference', id: ExplorationHistorySearch.HistoryByReference },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n ],\r\n transforms: [\r\n policyHistories,\r\n claimHistories,\r\n accidentReportHistories,\r\n ],\r\n};\r\n","import { unknownObjectEnum } from 'src/constants';\r\nimport { KeyValueCardConfig, SelectKeyValueCardConfig } from '../../../../../libs/config/QueryConfigTypes';\r\nimport { FormatterFactories, Formatters } from '../../../../formatters';\r\nimport { Widgetters } from '../../../../widgets';\r\n\r\nconst personDetails: KeyValueCardConfig = {\r\n configType: 'KeyValueCard',\r\n context: ['person'],\r\n i18Namespace: 'person-exploration',\r\n transforms: [\r\n {\r\n chrooters: [\r\n ['name'],\r\n ],\r\n },\r\n {\r\n i18NId: 'last-update',\r\n chrooters: [\r\n [\r\n 'modifyDateUtc',\r\n ],\r\n ],\r\n formatter: Formatters.UtcDateFormatter,\r\n },\r\n ],\r\n};\r\n\r\nconst vehiclesByPerson: SelectKeyValueCardConfig = {\r\n configType: 'SelectKeyValueCard',\r\n context: ['person', 'ownedVehicles'],\r\n i18Namespace: 'person-exploration',\r\n header: {\r\n chrooters: [\r\n ['vehicle'],\r\n ],\r\n formatter: Formatters.MultipleFormatters([\r\n Formatters.VehicleNumberSelectFormatter({\r\n getter: (vehicle) => vehicle?.vrn,\r\n prefix: 'person-exploration:vehicle-title',\r\n }),\r\n Formatters.ListFormatterWithOptions({\r\n isDistinct: true,\r\n }),\r\n ]),\r\n\r\n },\r\n transforms: [\r\n {\r\n chrooters: [\r\n ['vehicle', 'vrn'],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('vehicle'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n ['vehicle', 'type'],\r\n ],\r\n formatter: Formatters.MultipleFormatters([\r\n FormatterFactories.DefaultValueFormatterFactory(unknownObjectEnum),\r\n Formatters.EnumValuesFormatter,\r\n ]),\r\n },\r\n {\r\n i18NId: 'vehicle-make',\r\n chrooters: [\r\n ['vehicle', 'makeNotInEnum'],\r\n ['vehicle', 'make'],\r\n ['vehicle', 'makeDescription'],\r\n ],\r\n formatter: Formatters.VehicleMakeFormatter,\r\n },\r\n {\r\n chrooters: [\r\n ['vehicle', 'model'],\r\n ],\r\n formatter: Formatters.VehicleModelFormatter,\r\n },\r\n {\r\n i18NId: 'current-ncd',\r\n chrooters: [\r\n [\r\n 'policyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_NoClaimsDiscount',\r\n { name: '', selector: { path: ['identifier'], values: [{ Type: 'NoClaimsDiscountType', Name: 'CurrentNcd' }] } },\r\n 'coefficient',\r\n ],\r\n // Do not remove used to get the insurer code to get the email\r\n [\r\n 'policy',\r\n 'specializations',\r\n 'mapping_Policy_Insurer',\r\n 'insurer',\r\n ],\r\n ],\r\n widgetter: Widgetters.PercentageWidget,\r\n },\r\n {\r\n i18NId: 'renewal-ncd',\r\n chrooters: [\r\n [\r\n 'policyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_NoClaimsDiscount',\r\n {\r\n name: '', selector: { path: ['identifier'], values: [{ Type: 'NoClaimsDiscountType', Name: 'RenewalNcd' }] },\r\n },\r\n 'coefficient',\r\n ],\r\n [\r\n 'policyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_NoClaimsDiscount',\r\n { name: '', selector: { path: ['identifier'], values: [{ Type: 'NoClaimsDiscountType', Name: 'CurrentNcd' }] } },\r\n 'coefficient'],\r\n ],\r\n formatter: Formatters.NcdValuesFormatter,\r\n widgetter: Widgetters.TrajectoryIconWidget,\r\n },\r\n {\r\n i18NId: 'ncd-protection',\r\n chrooters: [\r\n [\r\n 'policyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_NoClaimsDiscount',\r\n { name: '', selector: { path: ['identifier'], values: [{ Type: 'NoClaimsDiscountType', Name: 'CurrentNcd' }] } },\r\n 'protection'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n i18NId: 'last-update',\r\n chrooters: [\r\n [\r\n 'vehicle', 'modifyDateUtc',\r\n ],\r\n ],\r\n formatter: Formatters.UtcDateFormatter,\r\n },\r\n ],\r\n};\r\n\r\nconst personNumberAccident: KeyValueCardConfig = {\r\n configType: 'KeyValueCard',\r\n context: ['person'],\r\n i18Namespace: 'statistic-exploration',\r\n transforms: [\r\n {\r\n i18NId: 'driver',\r\n chrooters: [\r\n [\r\n 'adhocStatistics',\r\n 'accidents',\r\n 'asDriver',\r\n ],\r\n [\r\n 'adhocStatistics',\r\n 'accidents',\r\n 'startDate',\r\n ],\r\n [\r\n 'adhocStatistics',\r\n 'accidents',\r\n 'endDate',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'insured',\r\n chrooters: [\r\n [\r\n 'adhocStatistics',\r\n 'accidents',\r\n 'asOwner',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'driver-insured',\r\n chrooters: [\r\n [\r\n 'adhocStatistics',\r\n 'accidents',\r\n 'asBoth',\r\n ],\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nconst personTotalClaimAmount: KeyValueCardConfig = {\r\n configType: 'KeyValueCard',\r\n context: ['person'],\r\n i18Namespace: 'statistic-exploration',\r\n transforms: [\r\n {\r\n i18NId: 'total',\r\n chrooters: [\r\n [\r\n 'statistics',\r\n 'totalClaimedAmountsWhereThePersonWasInvolvedAsFirstPartyVehicleOwner',\r\n ],\r\n [\r\n 'statistics',\r\n 'startDate',\r\n ],\r\n [\r\n 'statistics',\r\n 'endDate',\r\n ],\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nexport const personInformation = {\r\n personDetails,\r\n vehiclesByPerson,\r\n personTotalClaimAmount,\r\n personNumberAccident,\r\n};\r\n","import { unknownObjectEnum } from 'src/constants';\r\nimport { KeyValueCardConfig } from '../../../../../libs/config';\r\nimport { FormatterFactories, Formatters } from '../../../../formatters';\r\nimport { Widgetters } from '../../../../widgets';\r\n\r\nconst vehicle: KeyValueCardConfig = {\r\n configType: 'KeyValueCard',\r\n context: ['vehicle'],\r\n i18Namespace: 'vehicle-exploration',\r\n transforms: [\r\n {\r\n chrooters: [\r\n ['vrn'],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('vehicle'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n\r\n },\r\n {\r\n chrooters: [\r\n ['type'],\r\n ],\r\n formatter: Formatters.MultipleFormatters([\r\n FormatterFactories.DefaultValueFormatterFactory(unknownObjectEnum),\r\n Formatters.EnumValuesFormatter,\r\n ]),\r\n },\r\n {\r\n i18NId: 'vehicle-make',\r\n chrooters: [\r\n ['makeNotInEnum'],\r\n ['make'],\r\n ['makeDescription'],\r\n ],\r\n formatter: Formatters.VehicleMakeFormatter,\r\n },\r\n {\r\n chrooters: [\r\n ['model'],\r\n ],\r\n formatter: Formatters.VehicleModelFormatter,\r\n },\r\n {\r\n i18NId: 'current-ncd',\r\n chrooters: [\r\n [\r\n 'owner',\r\n 'policyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_NoClaimsDiscount',\r\n { name: '', selector: { path: ['identifier'], values: [{ Type: 'NoClaimsDiscountType', Name: 'CurrentNcd' }] } },\r\n 'coefficient',\r\n ],\r\n // Do not remove used to get the insurer code to get the email\r\n [\r\n 'owner',\r\n 'policy',\r\n 'specializations',\r\n 'mapping_Policy_Insurer',\r\n 'insurer',\r\n ],\r\n ],\r\n widgetter: Widgetters.PercentageWidget,\r\n },\r\n {\r\n i18NId: 'renewal-ncd',\r\n chrooters: [\r\n [\r\n 'owner',\r\n 'policyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_NoClaimsDiscount',\r\n {\r\n name: '', selector: { path: ['identifier'], values: [{ Type: 'NoClaimsDiscountType', Name: 'RenewalNcd' }] },\r\n },\r\n 'coefficient',\r\n ],\r\n [\r\n 'owner',\r\n 'policyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_NoClaimsDiscount',\r\n { name: '', selector: { path: ['identifier'], values: [{ Type: 'NoClaimsDiscountType', Name: 'CurrentNcd' }] } },\r\n 'coefficient'],\r\n ],\r\n formatter: Formatters.NcdValuesFormatter,\r\n widgetter: Widgetters.TrajectoryIconWidget,\r\n },\r\n {\r\n i18NId: 'ncd-protection',\r\n chrooters: [\r\n [\r\n 'owner',\r\n 'policyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_NoClaimsDiscount',\r\n { name: '', selector: { path: ['identifier'], values: [{ Type: 'NoClaimsDiscountType', Name: 'CurrentNcd' }] } },\r\n 'protection'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n i18NId: 'last-update',\r\n chrooters: [\r\n [\r\n 'modifyDateUtc',\r\n ],\r\n ],\r\n formatter: Formatters.UtcDateFormatter,\r\n },\r\n ],\r\n};\r\n\r\nconst vehicleNumberAccident: KeyValueCardConfig = {\r\n configType: 'KeyValueCard',\r\n context: ['vehicle'],\r\n i18Namespace: 'statistic-exploration',\r\n transforms: [\r\n {\r\n i18NId: 'total',\r\n chrooters: [\r\n [\r\n 'adhocStatistics',\r\n 'accidents',\r\n 'total',\r\n ],\r\n [\r\n 'adhocStatistics',\r\n 'accidents',\r\n 'startDate',\r\n ],\r\n [\r\n 'adhocStatistics',\r\n 'accidents',\r\n 'endDate',\r\n ],\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nconst vehicleTotalClaimAmount: KeyValueCardConfig = {\r\n configType: 'KeyValueCard',\r\n context: ['vehicle'],\r\n i18Namespace: 'statistic-exploration',\r\n transforms: [\r\n {\r\n i18NId: 'total',\r\n chrooters: [\r\n [\r\n 'statistics',\r\n 'totalClaimedAmountsWhereTheVehicleWasInvolvedAsFirstPartyVehicle',\r\n ],\r\n [\r\n 'statistics',\r\n 'startDate',\r\n ],\r\n [\r\n 'statistics',\r\n 'endDate',\r\n ],\r\n ],\r\n },\r\n ],\r\n};\r\nexport const vehicleInformation = {\r\n vehicle,\r\n vehicleTotalClaimAmount,\r\n vehicleNumberAccident,\r\n};\r\n","import { KeyValueCardConfig } from '../../../../../libs/config';\r\nimport { Formatters, FormatterFactories } from '../../../../formatters';\r\nimport { Widgetters } from '../../../../widgets';\r\nimport { permissions } from '../../../../permissions';\r\n\r\nconst policyExpandableSection1: KeyValueCardConfig = {\r\n configType: 'KeyValueCard',\r\n context: ['policy'],\r\n i18Namespace: 'history-exploration',\r\n transforms: [\r\n {\r\n i18NId: 'name',\r\n chrooters: [\r\n [\r\n 'persons',\r\n 'specializations',\r\n 'mapping_Person_Gears',\r\n 'name',\r\n ],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n ['objects', 'specializations', 'mapping_Object_Motor_VehicleRegistration', 'number'],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('vehicle'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n {\r\n i18NId: 'policy',\r\n chrooters: [\r\n [\r\n 'referenceCode'],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_PolicyPerson', 'roleEnumIdentifier'],\r\n values: ['PersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_PolicyPerson', 'roleEnumValueId'],\r\n values: [1],\r\n },\r\n },\r\n 'specializations',\r\n 'mapping_Person_NationalIdentifier',\r\n 'nationalIdentifier',\r\n ],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('person'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'effectiveDateOffset',\r\n ],\r\n ],\r\n formatter: Formatters.OffsetDateFormatter,\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'expirationDateOffset',\r\n ],\r\n ],\r\n formatter: Formatters.OffsetDateFormatter,\r\n },\r\n {\r\n i18NId: 'cancellationDateOffset',\r\n chrooters: [\r\n [\r\n 'objects',\r\n 'links',\r\n {\r\n name: 'mapping_PolicyObject',\r\n selector: {\r\n path: ['specializations',\r\n 'mapping_PolicyObject_Motor_TerminationReason',\r\n 'policyObjectTerminationReason'],\r\n values: [{ Type: 'PolicyObjectTerminationReason', Name: 'Cancelled' }],\r\n },\r\n },\r\n 'expirationDateOffset',\r\n ],\r\n ],\r\n formatter: Formatters.OffsetDateFormatter,\r\n },\r\n ],\r\n};\r\n\r\nconst policyExpandableSection2: KeyValueCardConfig = {\r\n configType: 'KeyValueCard',\r\n context: ['policy'],\r\n i18Namespace: 'history-exploration',\r\n transforms: [\r\n {\r\n i18NId: 'last-process-date',\r\n chrooters: [\r\n ['modifyDateUtc'],\r\n ],\r\n formatter: Formatters.UtcDateFormatter,\r\n },\r\n {\r\n i18NId: 'termination-reason',\r\n chrooters: [\r\n [\r\n 'objects',\r\n 'links',\r\n 'mapping_PolicyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_Motor_TerminationReason',\r\n 'policyObjectTerminationReason',\r\n ],\r\n ],\r\n formatter: Formatters.ExplorationReferenceFormatter,\r\n }, {\r\n i18NId: 'current-ncd',\r\n chrooters: [\r\n [\r\n 'objects',\r\n 'links',\r\n 'mapping_PolicyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_NoClaimsDiscount',\r\n { name: '', selector: { path: ['identifier'], values: [{ Type: 'NoClaimsDiscountType', Name: 'CurrentNcd' }] } },\r\n 'coefficient'],\r\n ],\r\n widgetter: Widgetters.PercentageWidgetExpandableRow,\r\n formatter: Formatters.CurrentNcdValuesFormatter,\r\n },\r\n {\r\n i18NId: 'renewal-ncd',\r\n chrooters: [\r\n [\r\n 'objects',\r\n 'links',\r\n 'mapping_PolicyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_NoClaimsDiscount',\r\n { name: '', selector: { path: ['identifier'], values: [{ Type: 'NoClaimsDiscountType', Name: 'RenewalNcd' }] } },\r\n 'coefficient'],\r\n ],\r\n widgetter: Widgetters.PercentageWidgetExpandableRow,\r\n formatter: Formatters.CurrentNcdValuesFormatter,\r\n },\r\n {\r\n i18NId: 'ncd-protection',\r\n chrooters: [\r\n [\r\n 'objects',\r\n 'links',\r\n 'mapping_PolicyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_NoClaimsDiscount',\r\n { name: '', selector: { path: ['identifier'], values: [{ Type: 'NoClaimsDiscountType', Name: 'CurrentNcd' }] } },\r\n 'protection'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Policy_Insurer', 'insurer'],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n ],\r\n};\r\n\r\nconst claimExpandableSection1: KeyValueCardConfig = {\r\n configType: 'KeyValueCard',\r\n context: ['explorationClaim'],\r\n i18Namespace: 'history-exploration',\r\n transforms: [\r\n {\r\n i18NId: 'claim-year',\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Handling', 'clientSystemCreateDateOffset'],\r\n ],\r\n formatter: Formatters.OffsetYearFormatter,\r\n },\r\n {\r\n i18NId: 'claim-type',\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Category', 'categoryEnumIdentifier'],\r\n ['specializations', 'mapping_Claim_Category', 'categoryEnumValueId'],\r\n ],\r\n formatter: Formatters.EnumValuesIdFormatter,\r\n },\r\n {\r\n i18NId: 'claim-status',\r\n chrooters: [\r\n ['status'],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n i18NId: 'incurred-amount',\r\n chrooters: [\r\n [\r\n 'specializations',\r\n { name: 'mapping_Claim_Amounts', selector: { path: ['identifier'], values: [{ Type: 'ClaimAmount', Name: 'ValueClaimed' }] } },\r\n 'amount',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'claim-accidentDate',\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Event', 'eventDateOffset'],\r\n ],\r\n formatter: Formatters.OffsetDateFormatter,\r\n },\r\n ],\r\n};\r\n\r\nconst claimExpandableSection2: KeyValueCardConfig = {\r\n configType: 'KeyValueCard',\r\n context: ['explorationClaim'],\r\n i18Namespace: 'history-exploration',\r\n transforms: [\r\n {\r\n i18NId: 'liability-code',\r\n chrooters: [\r\n [\r\n 'objects',\r\n 'links',\r\n 'mapping_ClaimObject',\r\n 'specializations',\r\n 'mapping_ClaimObject_Motor_Liability',\r\n 'liabilityCode',\r\n ],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n i18NId: 'liability-percent',\r\n chrooters: [\r\n [\r\n 'objects',\r\n 'links',\r\n 'mapping_ClaimObject',\r\n 'specializations',\r\n 'mapping_ClaimObject_Motor_Liability',\r\n 'liabilityPercent',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'policy',\r\n chrooters: [\r\n [\r\n 'policy', 'referenceCode'],\r\n ],\r\n },\r\n {\r\n i18NId: 'claim-insurer',\r\n chrooters: [\r\n ['policy', 'specializations', 'mapping_Policy_Insurer', 'insurer'],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n i18NId: 'claim-submissionDate',\r\n chrooters: [\r\n ['versions', 'submissionDate'],\r\n ],\r\n formatter: FormatterFactories.ElementAtFormatterFactory('last', Formatters.UtcDateTimeFormatter),\r\n },\r\n ],\r\n};\r\n\r\nconst claimExpandableSection3: KeyValueCardConfig = {\r\n configType: 'KeyValueCard',\r\n context: ['explorationClaim'],\r\n i18Namespace: 'history-exploration',\r\n transforms: [\r\n {\r\n i18NId: 'claim-detailedCircumstances',\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Cause', 'detailedCircumstances'],\r\n ],\r\n formatter: Formatters.SingleValueFormatter,\r\n widgetter: Widgetters.TextWidgetter,\r\n },\r\n\r\n ],\r\n};\r\n\r\nconst accidentReportExpandableSection1: KeyValueCardConfig = {\r\n configType: 'KeyValueCard',\r\n context: ['explorationClaim'],\r\n i18Namespace: 'history-exploration',\r\n transforms: [\r\n {\r\n i18NId: 'owner-name',\r\n chrooters: [\r\n [\r\n 'policy',\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_PolicyPerson', 'roleEnumIdentifier'],\r\n values: ['PersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_PolicyPerson', 'roleEnumValueId'],\r\n values: [1],\r\n },\r\n },\r\n 'specializations',\r\n 'mapping_Person_Gears',\r\n 'name',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'driver-name',\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_PartySide', 'partySide'],\r\n values: [{ Type: 'PartySide', Name: 'FirstParty' }],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumValueId'],\r\n values: [3],\r\n },\r\n },\r\n 'specializations',\r\n 'mapping_Person_Gears',\r\n 'name',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'driver-ic',\r\n chrooters: [\r\n [\r\n 'persons',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_PartySide', 'partySide'],\r\n values: [{ Type: 'PartySide', Name: 'FirstParty' }],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumIdentifier'],\r\n values: ['MotorClaimPersonFunction'],\r\n },\r\n },\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ClaimPerson', 'specializations', 'mapping_ClaimPerson_Function', 'enumValueId'],\r\n values: [3],\r\n },\r\n },\r\n 'specializations',\r\n 'mapping_Person_NationalIdentifier',\r\n 'nationalIdentifier',\r\n ],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('person'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n {\r\n i18NId: 'make',\r\n chrooters: [\r\n ['policy', 'objects', 'specializations', 'mapping_Object_Motor_Vehicle', 'makeNotInEnum'],\r\n ['policy', 'objects', 'specializations', 'mapping_Object_Motor_Vehicle', 'make'],\r\n ['policy', 'objects', 'specializations', 'mapping_Object_Motor_Vehicle', 'makeDescription'],\r\n ],\r\n formatter: Formatters.VehicleMakeFormatter,\r\n },\r\n {\r\n i18NId: 'claim-lateReport',\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Accident', 'isLateReported'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n i18NId: 'claim-anyInjuredPersons',\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Motor_Checklist', 'anyInjuredPersons'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n i18NId: 'claim-anyOtherVehicleDamage',\r\n chrooters: [\r\n ['specializations', 'mapping_Claim_Motor_Checklist', 'anyOtherVehicleDamage'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n i18NId: 'claim-insurer',\r\n chrooters: [\r\n ['policy', 'specializations', 'mapping_Policy_Insurer', 'insurer'],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n ],\r\n};\r\n\r\nconst accidentReportExpandableSection2: KeyValueCardConfig = {\r\n configType: 'KeyValueCard',\r\n context: ['explorationClaim'],\r\n i18Namespace: 'history-exploration',\r\n transforms: [\r\n {\r\n i18NId: 'claim-matchedReports',\r\n chrooters: [\r\n ['matchedReports', 'id'],\r\n ['matchedReports', 'referenceCode'],\r\n ['matchedReports', 'paidAccess'],\r\n ['matchedReports', 'policy', 'objects', 'specializations', 'mapping_Object_Motor_VehicleRegistration', 'number'],\r\n ['matchedReports', 'isStatusUpdateAllowed'],\r\n ],\r\n formatter: Formatters.LinksBillableActionFormatter(\r\n ['UN_MATCH_AR', 'EXPLORATION_SEARCH'],\r\n [permissions.canPurchaseReportsInExploration, permissions.canSeeExploration],\r\n true,\r\n ),\r\n widgetter: Widgetters.LinksBillableActionWidgetter,\r\n permissions: permissions.canSeeMatchedReports,\r\n },\r\n ],\r\n};\r\n\r\nconst accidentReportExpandableSection3: KeyValueCardConfig = {\r\n configType: 'KeyValueCard',\r\n context: ['explorationClaim'],\r\n i18Namespace: 'history-exploration',\r\n transforms: [\r\n {\r\n i18NId: 'purchased-by',\r\n chrooters: [\r\n ['billableActions', 'identity', 'insurerEntity', 'insurer', 'insurerCode'],\r\n ],\r\n formatter: Formatters.PurchasedByFormatter,\r\n widgetter: Widgetters.MultiLineWidgetter,\r\n },\r\n ],\r\n};\r\n\r\nexport const expandableRowSections = {\r\n policyExpandableSection1,\r\n policyExpandableSection2,\r\n claimExpandableSection1,\r\n claimExpandableSection2,\r\n claimExpandableSection3,\r\n accidentReportExpandableSection1,\r\n accidentReportExpandableSection2,\r\n accidentReportExpandableSection3,\r\n};\r\n","import { ExplorationConfig } from '../../types/ExplorationConfig';\r\nimport { mergedHistories } from './exploration/historiesTable';\r\nimport { requestStatusFromInsurer } from './exploration/requestStatusFromInsurer';\r\nimport { personInformation } from './exploration/person';\r\nimport { vehicleInformation } from './exploration/vehicle';\r\nimport { expandableRowSections } from './exploration/expandableRowSections';\r\n\r\n\r\nexport const explorationConfig: ExplorationConfig = {\r\n // Cards\r\n ...personInformation,\r\n ...vehicleInformation,\r\n // Email info\r\n requestStatusFromInsurer,\r\n // Exploration Histories Table\r\n mergedHistories,\r\n ...expandableRowSections,\r\n};\r\n","import { SingleValueCardConfig } from '../../../../../libs/config/QueryConfigTypes';\r\n\r\n\r\nexport const requestStatusFromInsurer: SingleValueCardConfig = {\r\n configType: 'SingleValueCard',\r\n context: ['ownedVehicle'],\r\n i18Namespace: 'person-exploration',\r\n transforms: [\r\n {\r\n chrooters: [\r\n ['person', 'name'],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n ['policy', 'referenceCode'],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n ['policy', 'effectiveDateOffset'],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n ['policy', 'expirationDateOffset'],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'policyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_Motor_TerminationReason',\r\n 'policyObjectTerminationReason',\r\n ],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n ['person', 'identifier'],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n ['person', 'nationalIdentifier'],\r\n ],\r\n },\r\n {\r\n chrooters: [\r\n ['vehicle', 'vrn'],\r\n ],\r\n },\r\n ],\r\n};\r\n","import {\r\n ParameterType, SearchOperationType, RecoveriesFields,\r\n} from 'src/libs/filters';\r\nimport { recoveryStates } from 'src/constants';\r\nimport { FormatterFactories, Formatters } from '../../../formatters';\r\nimport { Widgetters } from '../../../widgets';\r\nimport { RecoveryConfig } from '../../types';\r\n\r\nconst rootContext = ['recovery'];\r\n\r\nconst defaultColumns = {\r\n referenceCode: {\r\n i18NId: 'recovery-referenceCode',\r\n chrooters: [\r\n ['recoveryId'],\r\n ['referenceCode'],\r\n ],\r\n formatter: Formatters.GoToRecoveryPageFormatter,\r\n widgetter: Widgetters.LinksWidgetter,\r\n filter: {\r\n field: { id: RecoveriesFields.ReferenceCode },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n initiationDate: {\r\n i18NId: 'recovery-initiationDate',\r\n chrooters: [\r\n [\r\n 'initiationDate',\r\n ],\r\n ],\r\n formatter: Formatters.UtcDateFormatter,\r\n filter: {\r\n field: { id: RecoveriesFields.InitiationDate },\r\n operation: {\r\n type: SearchOperationType.Between,\r\n name: 'DateBetween',\r\n parameters: [\r\n { value: '', name: 'StartDate', type: ParameterType.DateTimeUtc },\r\n { value: '', name: 'EndDate', type: ParameterType.DateTimeUtc },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.DateFilterWidgetter,\r\n },\r\n },\r\n deadline: {\r\n i18NId: 'recovery-workflowStep-deadline',\r\n chrooters: [\r\n ['recovery', 'workflow', 'lastWorkflowStep', 'deadline', 'expirationDateUtc'],\r\n ['recovery', 'workflow', 'lastWorkflowStep', 'deadline', 'state'],\r\n ],\r\n formatter: Formatters.RecoveryDeadlineFormatter,\r\n filter: {\r\n field: { id: RecoveriesFields.Deadline },\r\n operation: {\r\n type: SearchOperationType.Between,\r\n name: 'DateBetween',\r\n parameters: [\r\n { value: '', name: 'StartDate', type: ParameterType.DateTimeUtc },\r\n { value: '', name: 'EndDate', type: ParameterType.DateTimeUtc },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.DaysLeftFilterWidgetter,\r\n },\r\n },\r\n accidentDate: {\r\n chrooters: [\r\n ['accidentDate'],\r\n ],\r\n formatter: Formatters.OffsetDateFormatter,\r\n filter: {\r\n field: { id: RecoveriesFields.AccidentDate },\r\n operation: {\r\n type: SearchOperationType.Between,\r\n name: 'DateBetween',\r\n parameters: [\r\n { value: '', name: 'StartDate', type: ParameterType.DateTimeOffset },\r\n { value: '', name: 'EndDate', type: ParameterType.DateTimeOffset },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.DateFilterWidgetter,\r\n },\r\n },\r\n status: {\r\n chrooters: [\r\n ['recovery', 'workflow', 'lastWorkflowStep', 'state'],\r\n ],\r\n formatter: Formatters.BindedNameEnumValueFormatterFactory('RecoveryState'),\r\n filter: {\r\n field: { id: RecoveriesFields.Status },\r\n operation: {\r\n type: SearchOperationType.Equal,\r\n name: 'EnumEqual',\r\n parameters: [\r\n { value: '', name: 'equalEnum', type: ParameterType.Enum },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.EnumFilterWidgetterFactory('RecoveryState'),\r\n },\r\n },\r\n action: {\r\n chrooters: [\r\n ['recovery', 'workflow', 'lastWorkflowStep', 'action'],\r\n ],\r\n formatter: Formatters.BindedNameEnumValueFormatterFactory('RecoveryAction'),\r\n filter: {\r\n field: { id: RecoveriesFields.Action },\r\n operation: {\r\n type: SearchOperationType.Equal,\r\n name: 'EnumEqual',\r\n parameters: [\r\n { value: '', name: 'equalEnum', type: ParameterType.Enum },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.EnumFilterWidgetterFactory('RecoveryAction'),\r\n },\r\n },\r\n caseType: {\r\n i18NId: 'case-type',\r\n chrooters: [\r\n ['caseTypeEnumIdentifier'],\r\n ['caseTypeEnumValueId'],\r\n ],\r\n formatter: Formatters.EnumValuesIdFormatter,\r\n filter: {\r\n field: { id: RecoveriesFields.CaseType },\r\n operation: {\r\n type: SearchOperationType.EnumIdEqual,\r\n name: 'EnumEqual',\r\n parameters: [\r\n { value: '', name: 'equalEnum', type: ParameterType.Enum },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.EnumFilterWidgetterFactory('MotorRecoveryType'),\r\n },\r\n },\r\n};\r\n\r\nexport const recoveryConfig: RecoveryConfig = {\r\n list: {\r\n configType: 'Table',\r\n context: rootContext,\r\n i18Namespace: 'recoveries',\r\n transforms: [\r\n defaultColumns.referenceCode,\r\n defaultColumns.initiationDate,\r\n defaultColumns.deadline,\r\n defaultColumns.accidentDate,\r\n defaultColumns.status,\r\n defaultColumns.action,\r\n defaultColumns.caseType,\r\n {\r\n chrooters: [\r\n [\r\n 'recovery', 'workflow', 'officer', 'identity', 'insurerEntity', 'person', 'specializations', 'mapping_Person_Gears', 'name',\r\n ],\r\n ],\r\n filter: {\r\n field: { id: RecoveriesFields.OfficerInCharge },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18NId: 'party-side',\r\n chrooters: [\r\n ['recovery', 'workflow', 'party'],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n filter: {\r\n field: { id: RecoveriesFields.OwnSide },\r\n operation: {\r\n type: SearchOperationType.EnumIdEqual,\r\n name: 'EnumEqual',\r\n parameters: [\r\n { value: '', name: 'equalEnum', type: ParameterType.Enum },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.EnumFilterWidgetterFactory('WorkflowPartySide'),\r\n },\r\n },\r\n {\r\n i18NId: 'own-liability',\r\n chrooters: [\r\n ['ownLiability'],\r\n ],\r\n formatter: Formatters.LiabilityFormatter,\r\n filter: {\r\n field: { id: RecoveriesFields.OwnLiability },\r\n operation: {\r\n type: SearchOperationType.Equal,\r\n name: '',\r\n parameters: [\r\n { value: '', name: '', type: ParameterType.Decimal },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.LiabilityFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18NId: 'own-claim-number',\r\n chrooters: [\r\n ['recovery', 'workflow', 'party'],\r\n ['recovery', 'workflow', 'claims', 'links', 'ui_WorkflowToClaim', 'roleEnumValueId'],\r\n ['recovery', 'workflow', 'claims', 'referenceCode'],\r\n ],\r\n formatter: Formatters.OwnPartyFormatter,\r\n filter: {\r\n field: { id: RecoveriesFields.OwnClaimNumber },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18NId: 'own-vehicle-number',\r\n chrooters: [\r\n ['recovery', 'workflow', 'party'],\r\n ['recovery', 'workflow', 'claims', 'links', 'ui_WorkflowToClaim', 'roleEnumValueId'],\r\n [\r\n 'recovery',\r\n 'workflow',\r\n 'claims',\r\n 'objects',\r\n {\r\n name: '',\r\n selector: { path: ['links', 'mapping_ClaimObject', 'roleEnumValueId'], values: [1] },\r\n },\r\n 'specializations',\r\n 'mapping_Object_Motor_VehicleRegistration',\r\n 'number',\r\n ],\r\n ],\r\n formatter: Formatters.OwnPartyFormatter,\r\n filter: {\r\n field: { id: RecoveriesFields.OwnVehicleNumber },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18NId: 'tp-insurance-company',\r\n chrooters: [\r\n ['recovery', 'workflow', 'party'],\r\n ['recovery', 'workflow', 'claims', 'links', 'ui_WorkflowToClaim', 'roleEnumValueId'],\r\n [\r\n 'recovery',\r\n 'workflow',\r\n 'claims',\r\n 'specializations',\r\n 'mapping_Claim_Insurer',\r\n 'insurer',\r\n ],\r\n ],\r\n formatter: Formatters.OtherPartyFormatterFactory(Formatters.EnumValuesFormatter),\r\n filter: {\r\n field: { id: RecoveriesFields.OtherPartyInsurer },\r\n operation: {\r\n type: SearchOperationType.Equal,\r\n name: 'EnumEqual',\r\n parameters: [\r\n { value: '', name: 'equalEnum', type: ParameterType.Enum },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.EnumFilterWidgetterFactory('InsurerCode'),\r\n },\r\n widgetter: Widgetters.MaxWidthTextWidgetter,\r\n },\r\n {\r\n i18NId: 'tp-vehicle-number',\r\n chrooters: [\r\n ['recovery', 'workflow', 'party'],\r\n ['recovery', 'workflow', 'claims', 'links', 'ui_WorkflowToClaim', 'roleEnumValueId'],\r\n [\r\n 'recovery',\r\n 'workflow',\r\n 'claims',\r\n 'objects',\r\n {\r\n name: '',\r\n selector: { path: ['links', 'mapping_ClaimObject', 'roleEnumValueId'], values: [1] },\r\n },\r\n 'specializations',\r\n 'mapping_Object_Motor_VehicleRegistration',\r\n 'number',\r\n ],\r\n ],\r\n formatter: Formatters.OtherPartyFormatter,\r\n filter: {\r\n field: { id: RecoveriesFields.OtherPartyVehicleNumber },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n ],\r\n },\r\n giaList: {\r\n configType: 'Table',\r\n context: rootContext,\r\n i18Namespace: 'recoveries',\r\n transforms: [\r\n defaultColumns.referenceCode,\r\n defaultColumns.initiationDate,\r\n defaultColumns.deadline,\r\n {\r\n i18NId: 'days-in-drm',\r\n chrooters: [\r\n [\r\n 'recovery',\r\n 'workflow',\r\n 'workflowSteps',\r\n {\r\n name: '',\r\n selector: { path: ['state'], values: [recoveryStates.pendingDrmGiaAdjudication] },\r\n },\r\n 'effectiveDateUtc',\r\n ],\r\n ],\r\n formatter: Formatters.DaysFromFormatter,\r\n filter: {\r\n field: { id: RecoveriesFields.DaysInDrm },\r\n operation: {\r\n type: SearchOperationType.Between,\r\n name: 'DateBetween',\r\n parameters: [\r\n { value: '', name: 'StartDate', type: ParameterType.DateTimeUtc },\r\n { value: '', name: 'EndDate', type: ParameterType.DateTimeUtc },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.DaysSinceFilterWidgetter,\r\n },\r\n },\r\n defaultColumns.accidentDate,\r\n defaultColumns.status,\r\n defaultColumns.action,\r\n defaultColumns.caseType,\r\n {\r\n i18NId: 'ip-liability',\r\n chrooters: [\r\n ['ownLiability'],\r\n ],\r\n formatter: Formatters.LiabilityFormatter,\r\n filter: {\r\n field: { id: RecoveriesFields.OwnLiability },\r\n operation: {\r\n type: SearchOperationType.Equal,\r\n name: '',\r\n parameters: [\r\n { value: '', name: '', type: ParameterType.Decimal },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.LiabilityFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18NId: 'ip-insurance-company',\r\n chrooters: [\r\n ['recovery', 'workflow', 'party'],\r\n ['recovery', 'workflow', 'claims', 'links', 'ui_WorkflowToClaim', 'roleEnumValueId'],\r\n [\r\n 'recovery',\r\n 'workflow',\r\n 'claims',\r\n 'specializations',\r\n 'mapping_Claim_Insurer',\r\n 'insurer',\r\n ],\r\n ],\r\n formatter: Formatters.InitiatingPartyFormatterFactory(Formatters.EnumValuesFormatter),\r\n filter: {\r\n field: { id: RecoveriesFields.OwnInsurer },\r\n operation: {\r\n type: SearchOperationType.Equal,\r\n name: 'EnumEqual',\r\n parameters: [\r\n { value: '', name: 'equalEnum', type: ParameterType.Enum },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.EnumFilterWidgetterFactory('InsurerCode'),\r\n },\r\n widgetter: Widgetters.MaxWidthTextWidgetter,\r\n },\r\n {\r\n i18NId: 'ip-vehicle-number',\r\n chrooters: [\r\n ['recovery', 'workflow', 'party'],\r\n ['recovery', 'workflow', 'claims', 'links', 'ui_WorkflowToClaim', 'roleEnumValueId'],\r\n [\r\n 'recovery',\r\n 'workflow',\r\n 'claims',\r\n 'objects',\r\n {\r\n name: '',\r\n selector: { path: ['links', 'mapping_ClaimObject', 'roleEnumValueId'], values: [1] },\r\n },\r\n 'specializations',\r\n 'mapping_Object_Motor_VehicleRegistration',\r\n 'number',\r\n ],\r\n ],\r\n // eslint-disable-next-line max-len\r\n formatter: Formatters.MultipleFormatters([Formatters.InitiatingPartyFormatter, Formatters.LinksExplorationSearchFormatter('vehicle')]),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n filter: {\r\n field: { id: RecoveriesFields.OwnVehicleNumber },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18NId: 'rp-liability',\r\n chrooters: [\r\n ['otherLiability'],\r\n ],\r\n formatter: Formatters.LiabilityFormatter,\r\n filter: {\r\n field: { id: RecoveriesFields.OtherLiability },\r\n operation: {\r\n type: SearchOperationType.Equal,\r\n name: '',\r\n parameters: [\r\n { value: '', name: '', type: ParameterType.Decimal },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.LiabilityFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18NId: 'rp-insurance-company',\r\n chrooters: [\r\n ['recovery', 'workflow', 'party'],\r\n ['recovery', 'workflow', 'claims', 'links', 'ui_WorkflowToClaim', 'roleEnumValueId'],\r\n [\r\n 'recovery',\r\n 'workflow',\r\n 'claims',\r\n 'specializations',\r\n 'mapping_Claim_Insurer',\r\n 'insurer',\r\n ],\r\n ],\r\n formatter: Formatters.ReceivingPartyFormatterFactory(Formatters.EnumValuesFormatter),\r\n filter: {\r\n field: { id: RecoveriesFields.OtherPartyInsurer },\r\n operation: {\r\n type: SearchOperationType.Equal,\r\n name: 'EnumEqual',\r\n parameters: [\r\n { value: '', name: 'equalEnum', type: ParameterType.Enum },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.EnumFilterWidgetterFactory('InsurerCode'),\r\n },\r\n widgetter: Widgetters.MaxWidthTextWidgetter,\r\n },\r\n {\r\n i18NId: 'rp-vehicle-number',\r\n chrooters: [\r\n ['recovery', 'workflow', 'party'],\r\n ['recovery', 'workflow', 'claims', 'links', 'ui_WorkflowToClaim', 'roleEnumValueId'],\r\n [\r\n 'recovery',\r\n 'workflow',\r\n 'claims',\r\n 'objects',\r\n {\r\n name: '',\r\n selector: { path: ['links', 'mapping_ClaimObject', 'roleEnumValueId'], values: [1] },\r\n },\r\n 'specializations',\r\n 'mapping_Object_Motor_VehicleRegistration',\r\n 'number',\r\n ],\r\n ],\r\n formatter: Formatters.MultipleFormatters([Formatters.ReceivingPartyFormatter, Formatters.LinksExplorationSearchFormatter('vehicle')]),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n filter: {\r\n field: { id: RecoveriesFields.OtherPartyVehicleNumber },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18NId: 'recovery-involved-insurer',\r\n chrooters: [\r\n ['involvedInsurers'],\r\n ],\r\n formatter: Formatters.EnumListValuesCommaFormatter,\r\n widgetter: Widgetters.MultiLineTextWidgetter,\r\n },\r\n {\r\n i18NId: 'unwarranted-drm',\r\n chrooters: [\r\n ['unwarrantedDrm'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n filter: {\r\n field: { id: RecoveriesFields.UnwarrantedDRM },\r\n operation: {\r\n type: SearchOperationType.Equal,\r\n name: 'BooleanEqual',\r\n parameters: [\r\n { value: '', name: 'boolean', type: ParameterType.Boolean },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.BooleanFilterWidgetterFactory('left'),\r\n },\r\n },\r\n ],\r\n },\r\n ipInformation: {\r\n configType: 'KeyValueCard',\r\n context: ['claim'],\r\n i18Namespace: 'recovery',\r\n transforms: [\r\n {\r\n chrooters: [['specializations', 'mapping_Claim_Insurer', 'insurer']],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n chrooters: [['persons', 'specializations', 'mapping_Person_Gears', 'name']],\r\n },\r\n {\r\n chrooters: [['objects', 'specializations', 'mapping_Object_Motor_VehicleRegistration', 'number']],\r\n formatter: Formatters.LinksExplorationSearchFormatter('vehicle'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n {\r\n chrooters: [['referenceCode']],\r\n },\r\n ],\r\n },\r\n rpInformation: {\r\n configType: 'KeyValueCard',\r\n context: ['claim'],\r\n i18Namespace: 'recovery',\r\n transforms: [\r\n {\r\n chrooters: [['specializations', 'mapping_Claim_Insurer', 'insurer']],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n chrooters: [['objects', 'specializations', 'mapping_Object_Motor_VehicleRegistration', 'number']],\r\n formatter: Formatters.LinksExplorationSearchFormatter('vehicle'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n {\r\n chrooters: [['referenceCode']],\r\n },\r\n ],\r\n },\r\n tpInformation: {\r\n configType: 'KeyValueCard',\r\n context: ['claim'],\r\n i18Namespace: 'recovery',\r\n transforms: [\r\n {\r\n i18NId: 'tp-vehicle-number',\r\n chrooters: [\r\n [\r\n 'objects',\r\n {\r\n name: '',\r\n selector: { path: ['links', 'mapping_ClaimObject', 'roleEnumValueId'], values: [3] },\r\n },\r\n 'specializations',\r\n 'mapping_Object_Motor_VehicleRegistration',\r\n 'number',\r\n ],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('vehicle'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n ],\r\n },\r\n addresses: {\r\n configType: 'SingleValueCard',\r\n context: ['claim'],\r\n transforms: [\r\n {\r\n chrooters: [['addresses', 'fullAddress']],\r\n formatter: FormatterFactories.DefaultTranslationValueFormatterFactory('common:no-content'),\r\n },\r\n ],\r\n },\r\n descriptions: {\r\n configType: 'SingleValueCard',\r\n context: ['claim'],\r\n i18Namespace: 'recovery',\r\n transforms: [\r\n {\r\n chrooters: [['specializations', 'mapping_Claim_Cause', 'detailedCircumstances']],\r\n formatter: FormatterFactories.DefaultTranslationValueFormatterFactory('common:no-content'),\r\n },\r\n ],\r\n },\r\n accidentReports: {\r\n configType: 'Table',\r\n context: rootContext.concat(['accidentReports']),\r\n i18Namespace: 'recovery',\r\n transforms: [\r\n {\r\n i18NId: 'accident-report-referenceCode',\r\n chrooters: [\r\n ['id'],\r\n ['referenceCode'],\r\n ],\r\n formatter: Formatters.GoToDetailPageFormatter,\r\n widgetter: Widgetters.LinksWidgetter,\r\n },\r\n {\r\n chrooters: [\r\n ['objects', 'specializations', 'mapping_Object_Motor_VehicleRegistration', 'number'],\r\n ],\r\n formatter: Formatters.LinksExplorationSearchFormatter('vehicle'),\r\n widgetter: Widgetters.LinksExplorationSearchWidgetter,\r\n },\r\n {\r\n // TODO: check if this is working and potentially fix\r\n chrooters: [\r\n ['links', 'mapping_RecoveryClaim', 'roleEnumValueId'],\r\n ],\r\n formatter: {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n transform: (value: any) => {\r\n const val = value && value.length > 0 && value[0][0];\r\n let role = null;\r\n if (val) {\r\n role = val === 3 ? 'TP' : 'RP';\r\n } else {\r\n role = 'IP';\r\n }\r\n return {\r\n children: role,\r\n };\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n recovery: {\r\n configType: 'Processed',\r\n context: rootContext,\r\n fields: [\r\n ['id'],\r\n ['referenceCode'],\r\n ['createDateUtc'],\r\n ['amounts', 'specializations', 'mapping_Recovery_Amount', 'identifier'],\r\n ['amounts', 'specializations', 'mapping_Recovery_Amount', 'amount'],\r\n ['amounts', 'specializations', 'mapping_Recovery_Amount', 'currency'],\r\n ['amounts', 'specializations', 'mapping_Recovery_Amount', 'createDateUtc'],\r\n ['payments', 'date'],\r\n ['payments', 'mode'],\r\n ['accidentReports', 'links', 'mapping_RecoveryTarget', 'entityRoleEnumValueId'],\r\n ['accidentReports', 'specializations', 'mapping_Claim_Event', 'eventDateOffset'],\r\n ['workflow', 'id'],\r\n ['workflow', 'party'],\r\n ['workflow', 'officer', 'identity', 'identityId'],\r\n ['workflow', 'officer', 'identity', 'email'],\r\n ['workflow', 'officer', 'partySide'],\r\n ['workflow', 'officer', 'identity', 'insurerEntity', 'person', 'specializations', 'mapping_Person_Gears', 'name'],\r\n ['workflow', 'ipOfficer', 'identity', 'identityId'],\r\n ['workflow', 'ipOfficer', 'identity', 'email'],\r\n ['workflow', 'ipOfficer', 'partySide'],\r\n ['workflow', 'ipOfficer', 'identity', 'insurerEntity', 'person', 'specializations', 'mapping_Person_Gears', 'name'],\r\n ['workflow', 'rpOfficer', 'identity', 'identityId'],\r\n ['workflow', 'rpOfficer', 'identity', 'email'],\r\n ['workflow', 'rpOfficer', 'partySide'],\r\n ['workflow', 'rpOfficer', 'identity', 'insurerEntity', 'person', 'specializations', 'mapping_Person_Gears', 'name'],\r\n ['workflow', 'claims', 'id'],\r\n ['workflow', 'claims', 'specializations', 'mapping_Claim_Insurer', 'insurer'],\r\n ['workflow', 'claims', 'specializations', 'mapping_Claim_Amounts', 'amount'],\r\n ['workflow', 'claims', 'specializations', 'mapping_Claim_Amounts', 'currency'],\r\n ['workflow', 'claims', 'links', 'ui_WorkflowToClaim', 'roleEnumValueId'],\r\n ['workflow', 'claims', 'objects', 'specializations', 'mapping_Object_Motor_VehicleRegistration', 'number'],\r\n ['workflow', 'nextWorkflowSteps'],\r\n ['workflow', 'workflowSteps', 'effectiveDateUtc'],\r\n ['workflow', 'workflowSteps', 'expirationDateUtc'],\r\n ['workflow', 'workflowSteps', 'id'],\r\n ['workflow', 'workflowSteps', 'state'],\r\n ['workflow', 'workflowSteps', 'action'],\r\n ['workflow', 'workflowSteps', 'creator', 'identity', 'insurerEntity', 'insurer', 'insurerCode'],\r\n ['workflow', 'workflowSteps', 'creator', 'partySide'],\r\n ['workflow', 'workflowSteps', 'comments', 'content'],\r\n ['workflow', 'workflowSteps', 'comments', 'links', 'ui_WorkflowStepToComment', 'roleEnumValueId'],\r\n ['workflow', 'workflowSteps', 'accidentCase', 'caseEnumValueId'],\r\n ['workflow', 'workflowSteps', 'accidentCase', 'caseEnumIdentifier'],\r\n ['workflow', 'workflowSteps', 'accidentCase', 'specializations', 'mapping_AccidentCase_LiabilityScenario_Gia', 'xLiablity'],\r\n ['workflow', 'workflowSteps', 'accidentCase', 'specializations', 'mapping_AccidentCase_LiabilityScenario_Gia', 'yLiablity'],\r\n ['workflow', 'workflowSteps', 'specializations', 'ui_WorkflowStep_Reason', 'reasonEnumIdentifier'],\r\n ['workflow', 'workflowSteps', 'specializations', 'ui_WorkflowStep_Reason', 'reasonEnumValueId'],\r\n ['workflow', 'workflowSteps', 'specializations', 'ui_WorkflowStep_Adjudication_Gia', 'ipDrmFee'],\r\n ['workflow', 'workflowSteps', 'specializations', 'ui_WorkflowStep_Adjudication_Gia', 'rpDrmFee'],\r\n ['workflow', 'workflowSteps', 'specializations', 'ui_WorkflowStep_Adjudication_Gia', 'rpLiabilityApportionment'],\r\n ['workflow', 'documents', 'id'],\r\n ['workflow', 'documents', 'documentName'],\r\n ['workflow', 'documents', 'specializations', 'document_Document_DestinationDiskStorageInformation', 'fileSize'],\r\n ['workflow', 'documents', 'links', 'ui_WorkflowToDocument', 'roleEnumValueId'],\r\n ['workflow', 'workflowSteps', 'documents', 'id'],\r\n ['workflow', 'workflowSteps', 'documents', 'documentName'],\r\n ['workflow', 'workflowSteps', 'documents', 'specializations', 'document_Document_DestinationDiskStorageInformation', 'fileSize'],\r\n ['workflow', 'workflowSteps', 'documents', 'links', 'ui_WorkflowStepToDocument', 'roleEnumValueId'],\r\n ],\r\n },\r\n accidentLocation: {\r\n configType: 'Processed',\r\n context: ['claim', 'addresses'],\r\n fields: [\r\n ['fullAddress'],\r\n ['latitude'],\r\n ['longitude'],\r\n ],\r\n },\r\n comments: {\r\n configType: 'Processed',\r\n context: rootContext.concat(['workflow']),\r\n fields: [\r\n ['workflowSteps', 'comments', 'content'],\r\n ['workflowSteps', 'comments', 'createDateUtc'],\r\n ['workflowSteps', 'comments', 'author', 'userName'],\r\n ['workflowSteps', 'comments', 'links', 'ui_WorkflowStepToComment', 'roleEnumValueId'],\r\n ],\r\n },\r\n};\r\n","import { Path } from '@shift/transform';\r\nimport { ParameterType, SearchOperationType, DocumentFields } from 'src/libs/filters';\r\nimport { Formatters } from '../../../formatters';\r\nimport { Widgetters } from '../../../widgets';\r\nimport { FolderConfig } from '../../types';\r\n\r\nconst rootContext: Path = ['folder'];\r\n\r\nexport const folderConfig: FolderConfig = {\r\n list: {\r\n configType: 'Table',\r\n context: rootContext,\r\n i18Namespace: 'folder-list',\r\n transforms: [\r\n {\r\n i18NId: 'folder-name',\r\n chrooters: [\r\n ['id'],\r\n ['documentName'],\r\n ],\r\n formatter: Formatters.GoToFolderPageFormatter,\r\n widgetter: Widgetters.LinksWidgetter,\r\n filter: {\r\n field: { id: DocumentFields.Name },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18NId: 'folder-category',\r\n chrooters: [\r\n ['specializations', 'document_Document_StatisticReport_Category', 'category'],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n filter: {\r\n field: { id: DocumentFields.Category },\r\n operation: {\r\n type: SearchOperationType.Equal,\r\n name: 'EnumEqual',\r\n parameters: [\r\n { value: '', name: 'equalEnum', type: ParameterType.Enum },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.EnumFilterWidgetterFactory('StatisticReportCategory'),\r\n },\r\n },\r\n {\r\n i18NId: 'folder-description',\r\n chrooters: [\r\n ['specializations', 'mapping_Document_FreeText', 'freeTextDescription'],\r\n ],\r\n filter: {\r\n field: { id: DocumentFields.Description },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n ],\r\n },\r\n documentName: {\r\n configType: 'Processed',\r\n context: rootContext.map((segment) => segment.toString()),\r\n fields: [\r\n ['documentName'],\r\n ],\r\n },\r\n details: {\r\n configType: 'KeyValueCard',\r\n context: rootContext,\r\n i18Namespace: 'folder-details',\r\n transforms: [\r\n {\r\n chrooters: [['documentName']],\r\n },\r\n ],\r\n },\r\n description: {\r\n configType: 'SingleValueCard',\r\n context: rootContext,\r\n transforms: [\r\n {\r\n chrooters: [\r\n ['specializations', 'mapping_Document_FreeText', 'freeTextDescription'],\r\n ],\r\n formatter: Formatters.SingleValueFormatter,\r\n widgetter: Widgetters.TextWidgetter,\r\n },\r\n ],\r\n },\r\n files: {\r\n configType: 'Table',\r\n context: rootContext.concat(['documentToDocumentsByFirstDocument']),\r\n i18Namespace: 'folder-details',\r\n transforms: [\r\n {\r\n i18NId: 'file-name',\r\n chrooters: [\r\n ['secondDocument', 'documentName'],\r\n ],\r\n },\r\n {\r\n i18NId: 'file-description',\r\n chrooters: [\r\n ['secondDocument', 'specializations', 'mapping_Document_FreeText', 'freeTextDescription'],\r\n ],\r\n },\r\n {\r\n i18NId: 'download',\r\n chrooters: [\r\n ['secondDocument', 'id'],\r\n ['secondDocument', 'documentName'],\r\n ['secondDocument', 'specializations', 'document_Document_ExternalStorageInformation', 'scheme'],\r\n ['secondDocument', 'specializations', 'document_Document_ExternalStorageInformation', 'userInfo'],\r\n ['secondDocument', 'specializations', 'document_Document_ExternalStorageInformation', 'host'],\r\n ['secondDocument', 'specializations', 'document_Document_ExternalStorageInformation', 'port'],\r\n ['secondDocument', 'specializations', 'document_Document_ExternalStorageInformation', 'path'],\r\n ['secondDocument', 'specializations', 'document_Document_ExternalStorageInformation', 'query'],\r\n ['secondDocument', 'specializations', 'document_Document_ExternalStorageInformation', 'fragment'],\r\n ],\r\n formatter: Formatters.DocumentLinkFormatter,\r\n widgetter: Widgetters.DocumentLinkWidgetter,\r\n },\r\n ],\r\n },\r\n};\r\n","import { GearsConfig } from '../../types';\r\nimport { accidentReportsConfig } from './accidentReportsConfig-GIA';\r\nimport { explorationConfig } from './explorationConfig-GIA';\r\nimport { recoveryConfig } from './recoveryConfig-GIA';\r\nimport { ncdConfig } from './ncdConfig-GIA';\r\nimport { insurerEnquiryConfig } from './insurerEnquiryConfig-GIA';\r\nimport { arcConfig } from './arcConfig-GIA';\r\nimport { folderConfig } from './folderConfig-GIA';\r\nimport { thirdPartyReportConfig } from './thirdPartyReportConfig-GIA';\r\n\r\nexport const gearsConfig: GearsConfig = {\r\n accidentReport: accidentReportsConfig,\r\n recovery: recoveryConfig,\r\n exploration: explorationConfig,\r\n ncd: ncdConfig,\r\n insurerEnquiry: insurerEnquiryConfig,\r\n arc: arcConfig,\r\n folder: folderConfig,\r\n thirdPartyReport: thirdPartyReportConfig,\r\n tests: {},\r\n};\r\n","import { NcdConfig } from '../../types/NcdConfig';\r\nimport { Formatters } from '../../../formatters';\r\nimport { Widgetters } from '../../../widgets';\r\n\r\nexport const ncdConfig: NcdConfig = {\r\n result: {\r\n configType: 'KeyValueCard',\r\n context: ['ncd'],\r\n i18Namespace: 'ncd',\r\n transforms: [\r\n {\r\n i18NId: 'renewal-ncd',\r\n chrooters: [\r\n [\r\n 'policyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_NoClaimsDiscount',\r\n {\r\n name: '', selector: { path: ['identifier'], values: [{ Type: 'NoClaimsDiscountType', Name: 'RenewalNcd' }] },\r\n },\r\n 'coefficient',\r\n ],\r\n [\r\n 'policyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_NoClaimsDiscount',\r\n { name: '', selector: { path: ['identifier'], values: [{ Type: 'NoClaimsDiscountType', Name: 'CurrentNcd' }] } },\r\n 'coefficient'],\r\n ],\r\n formatter: Formatters.NcdValuesFormatter,\r\n widgetter: Widgetters.TrajectoryIconWidget,\r\n },\r\n {\r\n i18NId: 'current-ncd',\r\n chrooters: [\r\n [\r\n 'policyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_NoClaimsDiscount',\r\n { name: '', selector: { path: ['identifier'], values: [{ Type: 'NoClaimsDiscountType', Name: 'CurrentNcd' }] } },\r\n 'coefficient'],\r\n ],\r\n widgetter: Widgetters.PercentageWidget,\r\n },\r\n {\r\n i18NId: 'accident-report-past-three-years',\r\n chrooters: [\r\n [\r\n 'numAccidents',\r\n ],\r\n ],\r\n },\r\n {\r\n i18NId: 'ncd-protection',\r\n chrooters: [\r\n [\r\n 'policyObject',\r\n 'specializations',\r\n 'mapping_PolicyObject_NoClaimsDiscount',\r\n { name: '', selector: { path: ['identifier'], values: [{ Type: 'NoClaimsDiscountType', Name: 'CurrentNcd' }] } },\r\n 'protection'],\r\n ],\r\n formatter: Formatters.BooleanValueFormatter,\r\n },\r\n {\r\n i18NId: 'cancellationDateOffset',\r\n chrooters: [\r\n [\r\n 'policyObject',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['specializations',\r\n 'mapping_PolicyObject_Motor_TerminationReason',\r\n 'policyObjectTerminationReason'],\r\n values: [{ Type: 'PolicyObjectTerminationReason', Name: 'Cancelled' }],\r\n },\r\n },\r\n 'expirationDateOffset',\r\n ],\r\n ],\r\n formatter: Formatters.OffsetDateFormatter,\r\n },\r\n {\r\n i18NId: 'expirationDateOffset',\r\n chrooters: [\r\n [\r\n 'policy',\r\n 'expirationDateOffset',\r\n ],\r\n ],\r\n formatter: Formatters.OffsetDateFormatter,\r\n },\r\n ],\r\n },\r\n};\r\n","import { InsurerEnquiryConfig } from '../../types/InsurerEnquiryConfig';\r\nimport { Formatters } from '../../../formatters';\r\n\r\nexport const insurerEnquiryConfig: InsurerEnquiryConfig = {\r\n result: {\r\n configType: 'KeyValueCard',\r\n context: ['unused'],\r\n i18Namespace: 'insurer-enquiry',\r\n transforms: [\r\n {\r\n i18NId: 'insurer',\r\n chrooters: [\r\n ['insurer', 'insurerCode'],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n },\r\n {\r\n i18NId: 'policy-period',\r\n chrooters: [\r\n ['policyStartDate'],\r\n ['policyEndDate'],\r\n ['policyObjectEndDate'],\r\n ],\r\n formatter: Formatters.OffsetDateIntervalFormatter,\r\n },\r\n {\r\n i18NId: 'requester',\r\n chrooters: [\r\n ['user', 'arcEntity', 'person', 'specializations', 'mapping_Person_Gears', 'name'],\r\n ['user', 'arcEntity', 'arc', 'person', 'specializations', 'mapping_Person_Gears', 'name'],\r\n ],\r\n formatter: Formatters.NameAndCompanyFormatter,\r\n },\r\n {\r\n i18NId: 'request-date',\r\n chrooters: [\r\n ['requestDate'],\r\n ],\r\n formatter: Formatters.UtcDateTimeFormatter,\r\n },\r\n ],\r\n },\r\n};\r\n","import { Widgetters } from 'src/config/widgets';\r\nimport { Formatters } from 'src/config/formatters';\r\nimport {\r\n ProviderFields, SearchOperationType, ParameterType,\r\n} from 'src/libs/filters';\r\nimport { ArcConfig } from '../../types/ArcConfig';\r\n\r\nconst rootContext = ['arc'];\r\n\r\nexport const arcConfig: ArcConfig = {\r\n list: {\r\n configType: 'Table',\r\n context: rootContext,\r\n i18Namespace: 'arcs',\r\n transforms: [\r\n {\r\n chrooters: [\r\n ['person', 'specializations', 'mapping_Person_Gears', 'name'],\r\n ],\r\n filter: {\r\n field: { id: ProviderFields.ARCName },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n i18NId: 'main-phone',\r\n chrooters: [\r\n [\r\n 'person',\r\n 'phoneNumbers',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ContactInformation', 'role'],\r\n values: [{ Type: 'ContactInformationRole', Name: 'Professional' }],\r\n },\r\n },\r\n 'countryCode',\r\n ],\r\n [\r\n 'person',\r\n 'phoneNumbers',\r\n {\r\n name: '',\r\n selector: {\r\n path: ['links', 'mapping_ContactInformation', 'role'],\r\n values: [{ Type: 'ContactInformationRole', Name: 'Professional' }],\r\n },\r\n },\r\n 'number',\r\n ],\r\n ],\r\n formatter: Formatters.PhoneNumberFormatter,\r\n filter: {\r\n field: { id: ProviderFields.PhoneNumber },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n chrooters: [\r\n [\r\n 'person', 'addresses', 'fullAddress',\r\n ],\r\n ],\r\n filter: {\r\n field: { id: ProviderFields.Address },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n chrooters: [\r\n ['insurers', 'insurerCode'],\r\n ],\r\n formatter: Formatters.EnumListValuesCommaFormatter,\r\n widgetter: Widgetters.MultiLineTextWidgetter,\r\n filter: {\r\n field: { id: ProviderFields.Insurer },\r\n operation: {\r\n type: SearchOperationType.Equal,\r\n name: 'EnumEqual',\r\n parameters: [\r\n { value: '', name: 'equalEnum', type: ParameterType.Enum },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.EnumFilterWidgetterFactory('InsurerCode'),\r\n },\r\n },\r\n ],\r\n },\r\n};\r\n","import {\r\n ParameterType, SearchOperationType,\r\n} from 'src/libs/filters';\r\nimport { Formatters } from 'src/config/formatters';\r\nimport { Widgetters } from '../../../widgets';\r\nimport { ThirdPartyReportConfig } from '../../types';\r\nimport { TpReportFields } from '../../../../libs/filters';\r\n\r\nconst rootContext = ['tpReport'];\r\n\r\nexport const thirdPartyReportConfig: ThirdPartyReportConfig = {\r\n list: {\r\n configType: 'Table',\r\n context: rootContext,\r\n i18Namespace: 'third-party-report',\r\n transforms: [\r\n {\r\n chrooters: [\r\n ['referenceCode'],\r\n ],\r\n filter: {\r\n field: { id: TpReportFields.ReferenceCode },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n chrooters: [\r\n ['status'],\r\n ],\r\n formatter: Formatters.EnumValuesFormatter,\r\n filter: {\r\n field: { id: TpReportFields.Status },\r\n operation: {\r\n type: SearchOperationType.Equal,\r\n name: 'StringEqual',\r\n parameters: [\r\n { value: '', name: 'equalEnum', type: ParameterType.Enum },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.EnumFilterWidgetterFactory('TpReportPurchaseStatus'),\r\n },\r\n },\r\n {\r\n chrooters: [\r\n ['fpVehicleNumber'],\r\n ],\r\n filter: {\r\n field: { id: TpReportFields.FpVehicleNumber },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetter,\r\n },\r\n },\r\n {\r\n chrooters: [\r\n ['tpVehicleNumber'],\r\n ],\r\n filter: {\r\n field: { id: TpReportFields.TpVehicleNumber },\r\n operation: {\r\n type: SearchOperationType.Match,\r\n name: 'StringMatch',\r\n parameters: [\r\n { value: '', name: 'searchedText', type: ParameterType.String },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.TextFilterWidgetterFactory(),\r\n },\r\n },\r\n {\r\n chrooters: [\r\n ['createDate'],\r\n ],\r\n formatter: Formatters.UtcDateFormatter,\r\n filter: {\r\n field: { id: TpReportFields.CreateDate },\r\n operation: {\r\n type: SearchOperationType.Between,\r\n name: 'DateBetween',\r\n parameters: [\r\n { value: '', name: 'StartDate', type: ParameterType.DateTimeUtc },\r\n { value: '', name: 'EndDate', type: ParameterType.DateTimeUtc },\r\n ],\r\n },\r\n widgetter: Widgetters.Filter.DateFilterWidgetter,\r\n\r\n },\r\n },\r\n ],\r\n },\r\n\r\n};\r\n","import { Formatter } from '@shift/transform';\r\nimport { useSecurity } from 'src/libs/auth';\r\nimport { SingleValueFormatter } from './SingleValueFormatter';\r\nimport { permissions } from '../permissions';\r\nimport { Claims } from '../../libs/auth/Authenticator';\r\nimport { obfuscateNationalIdentifier } from '../../utils/forms/formatters';\r\n\r\nexport interface CustomHookNationalIdentifierFormatter extends Formatter<[string], { children: string }> {\r\n Transform: any;\r\n}\r\n\r\nexport const formatNationalIdentifier = (user: Claims | null, ident?: string) => {\r\n if (typeof ident !== 'string' || (user && permissions.canSeeCompleteId(user))) {\r\n return ident;\r\n }\r\n return obfuscateNationalIdentifier(ident);\r\n};\r\n\r\nexport const NationalIdentifierFormatter: CustomHookNationalIdentifierFormatter = {\r\n transform: (params) => NationalIdentifierFormatter.Transform(params),\r\n Transform: (params: any) => {\r\n const { user } = useSecurity();\r\n const idValue = params && params[0] && params[0][0];\r\n const ident = formatNationalIdentifier(user, idValue);\r\n if (ident === idValue) {\r\n return SingleValueFormatter.transform([[ident]]);\r\n }\r\n\r\n return {\r\n children: ident,\r\n };\r\n },\r\n};\r\n","import { Formatter } from '@shift/transform';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const SingleValueFormatter: Formatter = {\r\n transform: (params) => {\r\n const value = params && params.length > 0 && params[0][0];\r\n return {\r\n children: value ?? null,\r\n };\r\n },\r\n};\r\n","import { FileFormats } from '@shift/design-system';\r\nimport { EnumValue } from 'src/types';\r\nimport { enumAnyEquals } from 'src/utils';\r\n\r\nexport * from './theme';\r\nexport * from './colors';\r\nexport * from './variants';\r\nexport * from './rows';\r\nexport * from './dates';\r\n\r\nexport const draftStageEnum = 'AtDraftStage';\r\nexport const statementOnGoingEnum = 'StatementOnGoing';\r\nexport const privateHireVehicle = 'VehicleType.PrivateHire';\r\nexport const myInfoInitiatedEnum = 'MyInfoInitiated';\r\n\r\n\r\nexport const inProgressObjectEnum = { Type: 'ClosingType', Name: 'InProgress' };\r\nexport const closedObjectEnum = { Type: 'ClosingType', Name: 'Closed' };\r\nexport const draftObjectEnum = { Type: 'ClosingType', Name: 'AtDraftStage' };\r\nexport const statementOnGoingObjectEnum = { Type: 'ClosingType', Name: 'StatementOnGoing' };\r\nexport const notificationOnlyObjectEnum = { Type: 'ClosingType', Name: 'NotificationOnly' };\r\n\r\nexport const otherEnum = 'OtherEnum.Other';\r\nexport const unknownEnum = 'OtherEnum.Unknown';\r\nexport const unknownObjectEnum = { Type: 'OtherEnum', Name: 'Unknown' };\r\nexport const phoneTypeEnum = 'PhoneNumberType';\r\nexport const companyRegistrationNumberEnum = 'NationalIdentifierType.CompanyIdentificationNumber';\r\nexport const nationalIdentifierEnum = { Type: 'NationalIdentifierType', Name: 'NationalIdentifier' };\r\nexport const phoneType = 'Phone';\r\nexport const faxType = 'Fax';\r\nexport const maxTextAreaCharacterLength = 2000;\r\nexport const tpReportBillableItemName = 'TP Accident Report';\r\nexport const insurerEnquiryBillableItemName = 'TP Insurer Enquiry';\r\nexport const drivingLicenseSourceType = 'DrivingLicenseSourceType';\r\n\r\nexport const sgCountryCode = {\r\n countryCode: 'SG',\r\n dialCode: '65',\r\n};\r\n\r\nexport const isDraft = (statusName: string | undefined) => statusName === statementOnGoingEnum || statusName === draftStageEnum;\r\nexport const isDraftEnum = (e: EnumValue | undefined) => enumAnyEquals(draftObjectEnum)(e) || enumAnyEquals(statementOnGoingObjectEnum)(e);\r\nexport const isMyInfoInitiated = (statusName: string | undefined) => statusName === myInfoInitiatedEnum;\r\n\r\n// Recovery\r\nexport type PartyEnum = 'InitiatingParty' | 'ReceivingParty' | 'NeutralParty';\r\nexport const initiatingPartyEnum = 'InitiatingParty';\r\nexport const receivingPartyEnum = 'ReceivingParty';\r\nexport const neutralPartyEnum = 'NeutralParty';\r\n\r\nexport const recoveryInitiatingParty = 1;\r\nexport const recoveryReceivingParty = 2;\r\n\r\n\r\nexport const recoverableAmountEnum = 'AmountRecoverable';\r\nexport const recoveredAmountEnum = 'AmountRecovered';\r\n\r\nexport const bolaCaseCommentType = {\r\n name: 'WorkflowStepCommentType.InsurerPosition',\r\n id: 2,\r\n};\r\n\r\nexport const insuredCommentType = {\r\n name: 'WorkflowStepCommentType.InsuredPosition',\r\n id: 3,\r\n};\r\n\r\nexport const managerCommentType = {\r\n name: 'WorkflowStepCommentType.WaiveRemarks',\r\n id: 4,\r\n};\r\n\r\nexport const recoveryCommentEnumValue = 1;\r\n\r\nexport const thirdPartyVehicleDamageEnumValue = 2;\r\n\r\nexport const recoveryTypeThirdPartyDamage = 'MotorRecoveryType.ThirdPartyVehicleDamage';\r\n\r\nexport const recoveryActions = {\r\n initiate: 'Initiate',\r\n waive: 'Waive',\r\n accept: 'Accept',\r\n sendback: 'Sendback',\r\n counterOffer: 'CounterOffer',\r\n finalOffer: 'FinalOffer',\r\n sendPayment: 'SendPayment',\r\n acknowledgePayment: 'AcknowledgePayment',\r\n drmInitiateEscalation: 'DrmInitiateEscalation',\r\n drmApproveInitiateEscalation: 'DrmApproveInitiateEscalation',\r\n drmRespondEscalation: 'DrmRespondEscalation',\r\n drmApproveRespondEscalation: 'DrmApproveRespondEscalation',\r\n drmWithdraw: 'DrmWithdraw',\r\n drmAcknowledgeWithdraw: 'DrmAcknowledgeWithdraw',\r\n drmRejectWithdraw: 'DrmRejectWithdraw',\r\n drmCancel: 'DrmCancel',\r\n drmGiaAdjudicate: 'DrmGiaAdjudicate',\r\n drmGiaReject: 'DrmGiaReject',\r\n reinitiate: 'Reinitiate',\r\n default: 'Default',\r\n defaultPayment: 'DefaultPayment',\r\n};\r\n\r\nexport const recoveryStates = {\r\n pendingCounterActionByRp: 'PendingCounterActionByRp',\r\n pendingSecondActionByIp: 'PendingSecondActionByIp',\r\n pendingFinalActionByRp: 'PendingFinalActionByRp',\r\n sentback: 'Sentback',\r\n closed: 'Closed',\r\n pendingPayment: 'PendingPayment',\r\n pendingPaymentAcknowledgeByIp: 'PendingPaymentAcknowledgeByIp',\r\n paymentDefaulted: 'PaymentDefaulted',\r\n pendingDrmApproveInitiateEscalation: 'PendingDrmApproveInitiateEscalation',\r\n pendingDrmEscalationResponseByCounterParty: 'PendingDrmEscalationResponseByCounterParty',\r\n pendingDrmApproveRespondEscalation: 'PendingDrmApproveRespondEscalation',\r\n pendingDrmAcknowledgeWithdrawal: 'PendingDrmAcknowledgeWithdrawal',\r\n pendingDrmGiaAdjudication: 'PendingDrmGiaAdjudication',\r\n};\r\n\r\n\r\nexport const WorflowPartySide = {\r\n InitiatingParty: 1,\r\n ReceivingParty: 2,\r\n ThirdParty: 3,\r\n};\r\n\r\nexport const recoveryDrmWithdrawReasons = {\r\n InitiatingParty: 'RecoveryIPWithdrawReason',\r\n ReceivingParty: 'RecoveryRPWithdrawReason',\r\n NeutralParty: 'RecoveryNPWithdrawReason',\r\n};\r\n\r\nexport enum RecoveryWorkflowStepDeadlineState {\r\n WaitingAction = 'WaitingAction',\r\n NoActionRequired = 'NoActionRequired',\r\n SentBack = 'SentBack',\r\n Completed = 'Completed'\r\n}\r\n\r\nexport const WaiveAcceptReason = 3;\r\nexport const WithdrawAcceptReason = 2;\r\nexport const WithdrawAmicableReason = 3;\r\n\r\nexport const IMAGE_FORMATS = [\r\n FileFormats.JPEG,\r\n FileFormats.JPG,\r\n FileFormats.TIF,\r\n FileFormats.TIFF,\r\n FileFormats.PNG,\r\n FileFormats.WEBP,\r\n];\r\n","import { Colors } from '@shift/design-system';\r\n\r\n// Spec: https://www.figma.com/file/pQ2ZOuSpARdOUbARWqHkz1/FORCE_Design_System_DRAFT?node-id=682%3A260\r\nexport const colors: Colors = {\r\n brand: {\r\n primary: {\r\n lighten8: '#DF793A',\r\n lighten4: '#E16A23',\r\n base: '#D86018',\r\n darken4: '#CA5712',\r\n darken8: '#BB4E0C',\r\n },\r\n secondary: {\r\n lighten8: '#225A7C',\r\n lighten4: '#1B4F6F',\r\n base: '#14435F',\r\n darken4: '#0F3952',\r\n darken8: '#0A2D42',\r\n },\r\n },\r\n action: {\r\n primary: {\r\n default: '#D86018',\r\n hover: '#E16A23',\r\n active: '#BB4E0C',\r\n selected: '#CA5712',\r\n focused: '#D86018',\r\n },\r\n secondary: {\r\n default: '#14435F',\r\n hover: '#1B4F6F',\r\n active: '#0A2D42',\r\n selected: '#0F3952',\r\n focused: '#5134C9',\r\n },\r\n },\r\n text: {\r\n interactive: '#14435F',\r\n button: '#00727A',\r\n secondary: '#9E9E9E',\r\n information: '#D86018',\r\n },\r\n border: {\r\n default: '#BDBDBD',\r\n },\r\n background: {\r\n primary: 'rgba(216,96,24,0.1)',\r\n white: '#FFFFFF',\r\n },\r\n};\r\n","import { Theme } from '@shift/design-system';\r\nimport { colors } from './colors';\r\n\r\nexport const theme: Theme = {\r\n navbar: {\r\n color: colors.background?.white,\r\n },\r\n card: {\r\n minWidth: undefined,\r\n },\r\n modal: {\r\n maxWidth: '50%',\r\n },\r\n table: {\r\n headerCell: {\r\n default: {\r\n backgroundColor: colors.background?.white,\r\n },\r\n },\r\n },\r\n map: {\r\n default: {\r\n height: '280px',\r\n },\r\n },\r\n};\r\n","import {\r\n ExternalVariants, DeepPartial, ModalTheme, NavbarTheme,\r\n} from '@shift/design-system';\r\n// eslint-disable-next-line import/no-unresolved\r\nimport {\r\n BaseBareTheme, TagTheme, TableTheme, CheckboxesTheme,\r\n} from '@shift/design-system/dist/atoms';\r\nimport { opacify } from 'polished';\r\n\r\nexport const variants: DeepPartial = ({\r\n checkboxes: {\r\n secondary: (theme: BaseBareTheme): DeepPartial => ({\r\n default: {\r\n checkbox: {\r\n labelColor: theme.colors.text.secondary,\r\n },\r\n },\r\n }),\r\n },\r\n modal: {\r\n gearsModal: (_theme: BaseBareTheme): DeepPartial => ({\r\n content: {\r\n maxHeight: '80vh',\r\n },\r\n }),\r\n },\r\n navbar: {\r\n subheader: (theme: BaseBareTheme): DeepPartial => ({\r\n backgroundColor: theme.colors.brand.primary.darken8,\r\n tab: {\r\n padding: '0.2rem 2rem',\r\n fontSize: '1.1rem',\r\n },\r\n }),\r\n },\r\n table: {\r\n explorationHistories: (theme: BaseBareTheme): DeepPartial => ({\r\n cell: {\r\n _expanded: () => ({\r\n border: '0',\r\n backgroundColor: opacify(0.2, theme.colors.background.primary),\r\n }),\r\n },\r\n\r\n }),\r\n },\r\n tag: {\r\n remaingTime: (theme: BaseBareTheme): DeepPartial => ({\r\n default: {\r\n backgroundColor: theme.colors.brand.primary.base,\r\n borderRadius: '1rem',\r\n color: theme.colors.background?.white,\r\n fontSize: '0.9rem',\r\n padding: '0.25rem 1rem',\r\n },\r\n }),\r\n },\r\n});\r\n","import moment from 'moment-timezone';\r\n\r\nexport const DefaultTimezone = 'Asia/Singapore';\r\nexport const DateFormat = 'DD/MM/YYYY';\r\nexport const InputDateFormat = 'YYYY-MM-DD';\r\nexport const DateTimeFormat = `${DateFormat} HH:mm:ss`;\r\nexport const DateUtcFormat = `${DateFormat}THH:mm:ss`;\r\nexport const DateOffsetFormat = `${DateFormat}THH:mm:ssZ`;\r\nexport const InputDateOffsetFormat = `${InputDateFormat}THH:mm:ssZ`;\r\nexport const DateTimeDisplayFormat = `${DateFormat} HH:mm`;\r\nexport const DateTimeFileNameFormat = 'DD-MM-YYYY_HHmmss';\r\nexport const DateFormatRegex = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/;\r\nexport const now = moment();\r\nexport const DefaultTZNow = moment().tz(DefaultTimezone);\r\nexport const nowUtc = moment().utc();\r\nexport const DefaultTZUtcNow = moment().utc().tz(DefaultTimezone);\r\n","import { newGraphQL } from 'src/graphql/GraphQLProvider';\r\nimport { accessToken } from './auth';\r\n\r\nexport const graphql = newGraphQL(accessToken);\r\n","export * from './types';\r\nexport * from './GearsConfigProvider';\r\n","\r\nexport type ExplorationSearchType = 'person' | 'vehicle';\r\nexport type ExplorationSearchHistoryType = 'policies' | 'claims' | 'accidentReports';\r\n\r\nexport const VEHICLE_CONTEXT = 'vehicle';\r\nexport const PERSON_CONTEXT = 'person';\r\nexport const NCD_CONTEXT = 'ncd';\r\nexport const INSURER_ENQUIRY_CONTEXT = 'insurerEnquiry';\r\nexport const OWNED_VEHICLE_CONTEXT = 'ownedVehicle';\r\nexport const PERSON_CHROOTER_CONTEXT = 'explorePerson';\r\nexport const VEHICLE_CHROOTER_CONTEXT = 'exploreVehicle';\r\nexport const NCD_CHROOTER_CONTEXT = 'exploreOwnedVehicle';\r\n\r\nexport const ExplorationRoutes = {\r\n vehicle: '/exploration/vehicle',\r\n person: '/exploration/person',\r\n};\r\n\r\nexport interface SearchHistoryRowsConfigPaths {\r\n row: ['exploration', 'policyHistories' | 'claimHistories' | 'accidentReportHistories'];\r\n expendableRows: {\r\n context: 'exploration';\r\n configs: {\r\n subContext:\r\n 'claimExpandableSection1' |\r\n 'claimExpandableSection2' |\r\n 'claimExpandableSection3' |\r\n 'accidentReportExpandableSection1' |\r\n 'accidentReportExpandableSection2' |\r\n 'accidentReportExpandableSection3' |\r\n 'policyExpandableSection1' |\r\n 'policyExpandableSection2'\r\n ;\r\n type?: 'keysValues' | 'TitleContent';\r\n }[];\r\n }[];\r\n}\r\n\r\nexport interface SearchHistoryTableConfigContexts {\r\n customContext: string[];\r\n customChrooterContext: string[];\r\n}\r\n","import moment from 'moment-timezone';\r\nimport { SelectInputOption } from '@shift/design-system';\r\nimport { translate } from '@gears/translations';\r\nimport {\r\n isValidDate, isValidLocation,\r\n validateListIfCondition,\r\n isValidFile,\r\n mergeDateTime,\r\n getStateTimezone,\r\n isValidAlphanumeric,\r\n isRequiredIfCondition,\r\n isValidNationalIdentifier,\r\n phoneNumberRequired,\r\n isValidPhoneNumber,\r\n validateIfCondition,\r\n isValidEmail,\r\n} from 'src/utils/forms';\r\nimport {\r\n getFileFormatter, PhoneNumberFormatter,\r\n LocationFormatter, EnumFormatter, EnumIdentifierValuePairFormatter, PoliceStationFormatter, AccidentDateFormatter, AccidentTimeFormatter,\r\n UpperCaseFormatter,\r\n} from 'src/utils/forms/formatters';\r\nimport { EnumValue, AnyType } from 'src/types';\r\nimport { DefaultTimezone } from 'src/constants';\r\nimport { get } from 'object-path';\r\n\r\nconst isTranslatedReport = (formValues: AnyType) => (get(formValues, 'generalInformation.translation.isTranslatedReport'));\r\n\r\nexport const accidentSection = {\r\n name: 'generalInformation',\r\n title: 'accident-details',\r\n fields: {\r\n claimant: {\r\n path: 'ownVehicle.claimant',\r\n label: 'who-claimant',\r\n formatter: {\r\n format: (value: EnumValue) => (value.Name === 'None' ? null\r\n : {\r\n value: `${value.Type}.${value.Name}`,\r\n label: translate(`enums:${value.Type}.${value.Name}`,\r\n { defaultValue: value.Name }),\r\n }),\r\n transform: ({ value: option }: { value: SelectInputOption }) => (option?.value ? option?.value : null),\r\n },\r\n isRequired: true,\r\n },\r\n reportPurpose: {\r\n path: 'generalInformation.accidentInformation.specializations.mapping_Claim_PurposeIndication.purpose',\r\n label: 'report-type-claim-question',\r\n isRequired: true,\r\n formatter: EnumFormatter,\r\n },\r\n id: {\r\n path: 'generalInformation.accidentInformation.id',\r\n label: '',\r\n },\r\n referenceCode: {\r\n path: 'generalInformation.accidentInformation.referenceCode',\r\n label: '',\r\n },\r\n status: {\r\n path: 'generalInformation.accidentInformation.status',\r\n label: '',\r\n formatter: {\r\n format: (value: EnumValue) => value,\r\n },\r\n },\r\n areaOrState: {\r\n path: 'generalInformation.accidentAddress.areaOrState',\r\n label: 'country-state',\r\n formatter: {\r\n format: (value: string) => ({ value, label: value }),\r\n transform: ({ value: option }: { value: SelectInputOption }) => option?.label,\r\n },\r\n isRequired: true,\r\n },\r\n date: {\r\n path: 'generalInformation.accidentInformation.specializations.mapping_Claim_Event.eventDateOffset',\r\n label: 'accident-date',\r\n formatter: AccidentDateFormatter,\r\n isRequired: true,\r\n validate: isValidDate,\r\n },\r\n time: {\r\n path: 'generalInformation.time',\r\n target: 'generalInformation.accidentInformation.specializations.mapping_Claim_Event.eventDateOffset',\r\n label: 'accident-time',\r\n isRequired: true,\r\n formatter: AccidentTimeFormatter,\r\n validate: (value: any, formValues: AnyType) => {\r\n const accidentTimezone = getStateTimezone(\r\n get(formValues, 'generalInformation.accidentAddress.areaOrState')?.value,\r\n );\r\n const date = mergeDateTime(\r\n get(formValues, 'generalInformation.accidentInformation.specializations.mapping_Claim_Event.eventDateOffset'),\r\n value,\r\n accidentTimezone ?? DefaultTimezone,\r\n );\r\n\r\n return date && date > moment.tz(accidentTimezone ?? DefaultTimezone)\r\n ? translate('accident-report-form:no-future-date-time')\r\n : undefined;\r\n },\r\n },\r\n location: {\r\n path: 'generalInformation.location',\r\n label: 'exact-location',\r\n target: {\r\n fullAddress: 'generalInformation.accidentAddress.fullAddress',\r\n country: 'generalInformation.accidentAddress.country',\r\n postCode: 'generalInformation.accidentAddress.postCode',\r\n latitude: 'generalInformation.accidentAddress.latitude',\r\n longitude: 'generalInformation.accidentAddress.longitude',\r\n },\r\n formatter: LocationFormatter,\r\n isRequired: true,\r\n validate: isValidLocation,\r\n },\r\n locationAdditionalInformation: {\r\n path: 'generalInformation.accidentAddress.complement',\r\n label: 'location-additional-information',\r\n },\r\n type: {\r\n path: 'generalInformation.type',\r\n label: 'accident-type',\r\n target: {\r\n identifier: 'generalInformation.accidentInformation.specializations.mapping_Claim_Cause.enumIdentifier',\r\n valueId: 'generalInformation.accidentInformation.specializations.mapping_Claim_Cause.enumValueId',\r\n },\r\n formatter: EnumIdentifierValuePairFormatter,\r\n isRequired: true,\r\n },\r\n weatherCondition: {\r\n path: 'generalInformation.accidentInformation.specializations.mapping_Claim_Motor_RoadAccident.weatherCondition',\r\n label: 'weather-condition',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n },\r\n weatherConditionDescription: {\r\n path: 'generalInformation.accidentInformation.specializations.mapping_Claim_Motor_RoadAccident.weatherConditionDescription',\r\n label: 'weather-condition-description',\r\n isRequired: true,\r\n },\r\n roadSurface: {\r\n path: 'generalInformation.accidentInformation.specializations.mapping_Claim_Motor_RoadAccident.roadSurface',\r\n label: 'road-surface',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n },\r\n roadSurfaceDescription: {\r\n path: 'generalInformation.accidentInformation.specializations.mapping_Claim_Motor_RoadAccident.roadSurfaceDescription',\r\n label: 'road-surface-description',\r\n isRequired: true,\r\n },\r\n description: {\r\n path: 'generalInformation.accidentInformation.specializations.mapping_Claim_Cause.detailedCircumstances',\r\n label: 'accident-description',\r\n isRequired: true,\r\n },\r\n foreignVehicleInvolved: {\r\n path: 'generalInformation.accidentInformation.specializations.mapping_Claim_Motor_Checklist.anyForeignVehicle',\r\n label: 'foreign-vehicle-involved',\r\n isRequired: true,\r\n },\r\n foreignVehicles: {\r\n path: 'generalInformation.foreignVehicles',\r\n target: 'foreignVehicles',\r\n label: 'other-vehicles',\r\n item: {\r\n number: {\r\n path: 'specializations.mapping_Object_Motor_VehicleRegistration.0.number',\r\n label: 'foreign-vehicle-number',\r\n isRequired: true,\r\n validate: isValidAlphanumeric,\r\n formatter: UpperCaseFormatter,\r\n },\r\n category: {\r\n path: 'specializations.mapping_Object_Motor_Vehicle.type',\r\n label: 'foreign-vehicle-category',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n },\r\n },\r\n validate: validateListIfCondition(\r\n 'generalInformation.accidentInformation.specializations.mapping_Claim_Motor_Checklist.anyForeignVehicle',\r\n ),\r\n },\r\n vehicleCount: {\r\n path: 'generalInformation.accidentInformation.specializations.mapping_Claim_Motor_Checklist.numberOfVehicles',\r\n label: 'vehicle-count',\r\n isRequired: true,\r\n },\r\n approachedByAssistance: {\r\n path: 'generalInformation.accidentInformation.specializations.mapping_Claim_Motor_Checklist.anyUnknownPersonAssistance',\r\n label: 'approached-by-assistance',\r\n isRequired: true,\r\n },\r\n reportedToPolice: {\r\n path: 'generalInformation.accidentInformation.specializations.mapping_Claim_Motor_Checklist.anyPoliceReport',\r\n label: 'reported-to-police',\r\n isRequired: true,\r\n },\r\n policeStation: {\r\n path: 'generalInformation.policeStation',\r\n target: {\r\n id: 'generalInformation.policeStationInformation.person.id',\r\n recordOwner: 'generalInformation.policeStationInformation.person.recordOwner',\r\n },\r\n label: 'police-station-name',\r\n formatter: PoliceStationFormatter,\r\n isRequired: true,\r\n },\r\n policeStationName: {\r\n path: 'generalInformation.policeStationInformation.person.specializations.mapping_Person_Gears.name',\r\n label: 'police-station-name',\r\n isRequired: true,\r\n },\r\n policeReport: {\r\n path: 'generalInformation.policeReport',\r\n target: {\r\n name: 'attachments.policeReport',\r\n item: {\r\n id: 'id',\r\n name: 'documentName',\r\n size: 'specializations.document_Document_DestinationDiskStorageInformation.fileSize',\r\n },\r\n },\r\n label: 'police-report',\r\n formatter: getFileFormatter(true),\r\n validate: isValidFile,\r\n },\r\n isTranslatedReport: {\r\n path: 'generalInformation.translation.isTranslatedReport',\r\n label: 'is-translated',\r\n isRequired: true,\r\n },\r\n translatorName: {\r\n path: 'generalInformation.translation.person.specializations.mapping_Person_Gears.name',\r\n label: 'translator-name',\r\n isRequired: true,\r\n requiredFunction: isRequiredIfCondition(isTranslatedReport),\r\n },\r\n translatorTypeOfId: {\r\n path: 'generalInformation.translation.person.specializations.mapping_Person_NationalIdentifier.0.identifier',\r\n label: 'translator-id-type',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n requiredFunction: isRequiredIfCondition(isTranslatedReport),\r\n },\r\n translatorId: {\r\n path: 'generalInformation.translation.person.specializations.mapping_Person_NationalIdentifier.0.nationalIdentifier',\r\n label: 'translator-id',\r\n isRequired: true,\r\n requiredFunction: isRequiredIfCondition(isTranslatedReport),\r\n validate: isValidNationalIdentifier(\r\n 'generalInformation.translation.person.specializations.mapping_Person_NationalIdentifier.0.identifier',\r\n ),\r\n },\r\n translatorMobilePhone: {\r\n path: 'generalInformation.translation.phoneNumber',\r\n label: 'translator-phone',\r\n target: {\r\n number: 'generalInformation.translation.phoneNumber.number',\r\n countryCode: 'generalInformation.translation.phoneNumber.countryCode',\r\n phoneNumberType: 'generalInformation.translation.phoneNumber.phoneNumberType',\r\n },\r\n formatter: PhoneNumberFormatter,\r\n isRequired: true,\r\n requiredFunction: isRequiredIfCondition(isTranslatedReport, phoneNumberRequired),\r\n validate: validateIfCondition(isTranslatedReport, isValidPhoneNumber),\r\n },\r\n translatorEmail: {\r\n path: 'generalInformation.translation.email.address',\r\n label: 'translator-email',\r\n isRequired: true,\r\n requiredFunction: isRequiredIfCondition(isTranslatedReport),\r\n validate: validateIfCondition(isTranslatedReport, isValidEmail),\r\n },\r\n translatedReport: {\r\n path: 'generalInformation.translation.translatedReport',\r\n target: {\r\n id: 'attachments.translatedReport.id',\r\n name: 'attachments.translatedReport.documentName',\r\n size: 'attachments.translatedReport.specializations.document_Document_DestinationDiskStorageInformation.fileSize',\r\n },\r\n label: 'translated-report',\r\n formatter: getFileFormatter(),\r\n validate: isValidFile,\r\n },\r\n originalReport: {\r\n path: 'generalInformation.translation.originalReport',\r\n target: {\r\n id: 'attachments.originalReport.id',\r\n name: 'attachments.originalReport.documentName',\r\n size: 'attachments.originalReport.specializations.document_Document_DestinationDiskStorageInformation.fileSize',\r\n },\r\n label: 'original-report',\r\n formatter: getFileFormatter(),\r\n validate: isValidFile,\r\n },\r\n originalLanguage: {\r\n path: 'attachments.originalLanguage',\r\n label: 'original-language',\r\n formatter: {\r\n format: (value: string) => (value === 'Others' ? { value: 0, label: value } : { value, label: value }),\r\n transform: ({ value: option }: { value: SelectInputOption }) => option?.label,\r\n },\r\n isRequired: true,\r\n },\r\n originalLanguageOthers: {\r\n path: 'attachments.originalLanguageOthers',\r\n label: 'original-language-others',\r\n },\r\n noticeOfProsecutionGiven: {\r\n path: 'generalInformation.accidentInformation.specializations.mapping_Claim_Motor_Checklist.anyProsecutionGiven',\r\n label: 'notice-of-prosecution-given',\r\n isRequired: true,\r\n },\r\n prosecutedName: {\r\n path: 'generalInformation.prosecutionInformation.specializations.mapping_Assessment_FreeText.0.text',\r\n label: 'prosecuted-name',\r\n isRequired: true,\r\n },\r\n startNewReportDate: {\r\n path: 'generalInformation.accidentInformation.specializations.mapping_Claim_Statement.0.entryReportDateOffset',\r\n label: 'new-report-click-date',\r\n },\r\n },\r\n};\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { SelectInputOption } from '@shift/design-system';\r\nimport {\r\n isValidDate, validateListIfCondition, getOccupationTypes, phoneNumberRequired, isRequiredIfCondition,\r\n isValidPhoneNumber, isValidNationalIdentifier, isValidEmail, validateIfCondition, isValidAlphanumeric, isValidPassDate,\r\n} from 'src/utils/forms';\r\nimport {\r\n EnumFormatter, getOffsetDateFormatter,\r\n PhoneNumberFormatter, OtherNoEnumTypeFormatter, UpperCaseFormatter, TrimWhitespacesFormatter,\r\n DrivingLicenseTypeFormatter,\r\n DrivingLicenseFormatter,\r\n} from 'src/utils/forms/formatters';\r\nimport { AnyType } from 'src/types';\r\nimport { get } from 'object-path';\r\n\r\nconst isDriverPolicyHolderCondition = (formValues: AnyType) => (!get(formValues, 'ownVehicle.driver.isDriverPolicyHolder'));\r\n\r\nexport const driverSection = {\r\n name: 'ownVehicle.driver',\r\n title: 'driver-information',\r\n fields: {\r\n isDriverPolicyHolder: {\r\n path: 'ownVehicle.driver.isDriverPolicyHolder',\r\n target: 'ownVehicle.driverIsSameAsOwner',\r\n label: 'is-policy-holder',\r\n },\r\n name: {\r\n path: 'ownVehicle.driver.person.specializations.mapping_Person_Gears.name',\r\n label: 'driver-name',\r\n isRequired: true,\r\n requiredFunction: isRequiredIfCondition(isDriverPolicyHolderCondition),\r\n },\r\n gender: {\r\n path: 'ownVehicle.driver.person.specializations.mapping_Person_Individual.gender',\r\n label: 'driver-gender',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n },\r\n typeOfId: {\r\n path: 'ownVehicle.driver.person.specializations.mapping_Person_NationalIdentifier.0.identifier',\r\n label: 'driver-id-type',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n requiredFunction: isRequiredIfCondition(isDriverPolicyHolderCondition),\r\n },\r\n driverId: {\r\n path: 'ownVehicle.driver.person.specializations.mapping_Person_NationalIdentifier.0.nationalIdentifier',\r\n label: 'driver-id',\r\n formatter: TrimWhitespacesFormatter,\r\n isRequired: true,\r\n requiredFunction: isRequiredIfCondition(isDriverPolicyHolderCondition),\r\n validate: isValidNationalIdentifier('ownVehicle.driver.person.specializations.mapping_Person_NationalIdentifier.0.identifier'),\r\n },\r\n birthDate: {\r\n path: 'ownVehicle.driver.person.specializations.mapping_Person_Individual.dateOfBirth',\r\n label: 'driver-birthday',\r\n formatter: getOffsetDateFormatter(null),\r\n isRequired: true,\r\n validate: isValidDate,\r\n },\r\n drivingPassInformation: {\r\n path: 'ownVehicle.driver.person.specializations.mapping_Person_DrivingLicenseInformation',\r\n label: 'driving-pass-information',\r\n item: {\r\n endDate: {\r\n path: 'endDate',\r\n label: 'driving-license-end-date',\r\n },\r\n startDate: {\r\n path: 'startDate',\r\n label: 'driving-license-start-date',\r\n },\r\n licenseTypeSourceName: {\r\n path: 'licenseTypeSourceName',\r\n label: 'license-type-source-name',\r\n },\r\n number: {\r\n path: 'number',\r\n label: 'license-type-number',\r\n },\r\n licenseType: {\r\n path: 'licenseType',\r\n label: 'license-type',\r\n formatter: EnumFormatter,\r\n },\r\n licenseValidity: {\r\n path: 'licenseValidity',\r\n label: 'license-validity',\r\n formatter: EnumFormatter,\r\n },\r\n licenseValiditySourceName: {\r\n path: 'licenseValiditySourceName',\r\n label: 'license-validity-source-name',\r\n },\r\n },\r\n formatter: DrivingLicenseFormatter,\r\n },\r\n passDate: {\r\n path: 'ownVehicle.driver.startDate',\r\n target: 'ownVehicle.driverLicence.startDate',\r\n label: 'driver-pass-date',\r\n formatter: getOffsetDateFormatter(null),\r\n isRequired: true,\r\n validate: isValidPassDate('ownVehicle.driver.person.specializations.mapping_Person_Individual.dateOfBirth'),\r\n },\r\n licenseType: {\r\n path: 'ownVehicle.driver.licenseType',\r\n target: 'ownVehicle.driverLicence.licenseType',\r\n label: 'driver-pass-type',\r\n formatter: DrivingLicenseTypeFormatter,\r\n },\r\n passClass: {\r\n path: 'ownVehicle.driver.licenseTypeSourceName',\r\n target: {\r\n type: 'ownVehicle.driverLicence.licenseTypeSourceName',\r\n noType: 'ownVehicle.driverLicence.licenseTypeSourceNameDescription',\r\n },\r\n label: 'driver-pass-class',\r\n formatter: OtherNoEnumTypeFormatter,\r\n isRequired: true,\r\n },\r\n passClassSourceName: {\r\n path: 'ownVehicle.driver.licenseTypeSourceNameDescription',\r\n target: 'ownVehicle.driverLicence.licenseTypeSourceNameDescription',\r\n label: 'driver-pass-class-source-name',\r\n isRequired: true,\r\n },\r\n drivingLicenseValidity: {\r\n path: 'ownVehicle.driver.licenseValidity',\r\n target: {\r\n type: 'ownVehicle.driverLicence.licenseValidity',\r\n noType: 'ownVehicle.driverLicence.licenseValiditySourceName',\r\n },\r\n isRequired: true,\r\n label: 'driving-license-validity',\r\n formatter: OtherNoEnumTypeFormatter,\r\n },\r\n drivingLicenseValiditySourceName: {\r\n path: 'ownVehicle.driver.licenseValiditySourceName',\r\n target: 'ownVehicle.driverLicence.licenseValiditySourceName',\r\n label: 'driving-license-validity-source-name',\r\n isRequired: true,\r\n },\r\n primaryMobilePhone: {\r\n path: 'ownVehicle.driver.primaryPhoneNumber',\r\n label: 'driver-phone',\r\n target: {\r\n number: 'ownVehicle.driver.primaryPhoneNumber.number',\r\n countryCode: 'ownVehicle.driver.primaryPhoneNumber.countryCode',\r\n phoneNumberType: 'ownVehicle.driver.primaryPhoneNumber.phoneNumberType',\r\n },\r\n formatter: PhoneNumberFormatter,\r\n isRequired: true,\r\n requiredFunction: isRequiredIfCondition(isDriverPolicyHolderCondition, phoneNumberRequired),\r\n validate: validateIfCondition(isDriverPolicyHolderCondition, isValidPhoneNumber),\r\n },\r\n altPhones: {\r\n path: 'ownVehicle.driver.alternativePhoneNumbers',\r\n label: 'alt-phones',\r\n item: {\r\n type: {\r\n path: 'type',\r\n label: 'driver-alt-phone-type',\r\n target: {\r\n type: 'phoneNumberType',\r\n noType: 'phoneNumberTypeNotInEnum',\r\n },\r\n formatter: OtherNoEnumTypeFormatter,\r\n },\r\n phone: {\r\n path: 'phone',\r\n label: 'driver-alt-phone',\r\n target: {\r\n number: 'number',\r\n countryCode: 'countryCode',\r\n },\r\n formatter: PhoneNumberFormatter,\r\n validate: validateIfCondition(isDriverPolicyHolderCondition, isValidPhoneNumber),\r\n },\r\n },\r\n },\r\n address1: {\r\n path: 'ownVehicle.driver.address.fullAddress',\r\n label: 'driver-address-1',\r\n isRequired: true,\r\n },\r\n address2: {\r\n path: 'ownVehicle.driver.address.complement',\r\n label: 'driver-address-2',\r\n },\r\n postcode: {\r\n path: 'ownVehicle.driver.address.postCode',\r\n label: 'driver-postcode',\r\n },\r\n email: {\r\n path: 'ownVehicle.driver.email.address',\r\n label: 'driver-email',\r\n isRequired: true,\r\n requiredFunction: isRequiredIfCondition(isDriverPolicyHolderCondition),\r\n validate: validateIfCondition(isDriverPolicyHolderCondition, isValidEmail),\r\n },\r\n occupation: {\r\n path: 'ownVehicle.driver.person.specializations.mapping_Person_Individual.isOccupationOutdoor',\r\n label: 'driver-occupation',\r\n formatter: {\r\n format: (value: boolean) => getOccupationTypes().find((option) => option.value === value.toString()),\r\n transform: ({ value: option }: { value: SelectInputOption }) => option?.value,\r\n },\r\n isRequired: true,\r\n },\r\n driverOwnerRelation: {\r\n path: 'ownVehicle.driver.driverOwnerRelation',\r\n target: 'ownVehicle.driverOwnerRelation',\r\n label: 'driver-owner-relation',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n requiredFunction: isRequiredIfCondition(isDriverPolicyHolderCondition),\r\n },\r\n driverOwnerRelationDescription: {\r\n path: 'ownVehicle.driver.driverOwnerRelationDescription',\r\n target: 'ownVehicle.driverOwnerRelationDescription',\r\n label: 'driver-owner-relation-description',\r\n isRequired: true,\r\n requiredFunction: isRequiredIfCondition(isDriverPolicyHolderCondition),\r\n },\r\n hasOtherVehicles: {\r\n path: 'ownVehicle.driver.driverOwnsOtherVehicles',\r\n target: 'ownVehicle.driverOwnsOtherVehicles',\r\n label: 'is-own-other-vehicle',\r\n isRequired: true,\r\n },\r\n otherVehicles: {\r\n path: 'ownVehicle.driver.otherVehiclesOwnedByDriver',\r\n target: 'ownVehicle.otherVehiclesOwnedByDriver',\r\n label: 'other-vehicles',\r\n item: {\r\n number: {\r\n path: 'vehicle.specializations.mapping_Object_Motor_VehicleRegistration.0.number',\r\n label: 'vehicle-registration-number',\r\n isRequired: true,\r\n validate: isValidAlphanumeric,\r\n formatter: UpperCaseFormatter,\r\n },\r\n insurance: {\r\n path: 'policy.specializations.mapping_Policy_Insurer.insurer',\r\n label: 'insurance-company',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n },\r\n },\r\n validate: validateListIfCondition('ownVehicle.driver.driverOwnsOtherVehicles'),\r\n },\r\n },\r\n};\r\n","import { accidentSection } from './accident-section';\r\nimport { ownVehicleSection } from './own-vehicle-section';\r\nimport { ownVehiclePolicySection } from './own-vehicle-policy-section';\r\nimport { driverSection } from './driver-section';\r\nimport { thirdPartySection } from './third-party-section';\r\nimport { injuredSection } from './injured-section';\r\nimport { witnessSection } from './witness-section';\r\nimport { attachmentsSection } from './attachments-section';\r\nimport { additionalCommentSection } from './additional-comment-section';\r\n\r\nexport * from './accident-section';\r\nexport * from './own-vehicle-section';\r\nexport * from './own-vehicle-policy-section';\r\nexport * from './driver-section';\r\nexport * from './third-party-section';\r\nexport * from './injured-section';\r\nexport * from './witness-section';\r\nexport * from './attachments-section';\r\nexport * from './additional-comment-section';\r\n\r\nexport const formSections = {\r\n additionalCommentSection,\r\n accidentSection,\r\n ownVehicleSection,\r\n ownVehiclePolicySection,\r\n driverSection,\r\n thirdPartySection,\r\n injuredSection,\r\n witnessSection,\r\n attachmentsSection,\r\n};\r\n","export const additionalCommentSection = {\r\n name: 'additionalComment',\r\n title: 'additional-comment',\r\n useDifferentSectionIcon: true,\r\n collapsible: false,\r\n fields: {\r\n additionalComment: {\r\n path: 'generalInformation.accidentInformation.specializations.mapping_Claim_FreeText.eventDescription',\r\n label: 'additional-comment',\r\n },\r\n },\r\n};\r\n","import { SelectInputOption } from '@shift/design-system';\r\nimport {\r\n EnumFormatter, VoidFormatter, RadioFormatter, UpperCaseFormatter, OtherNoEnumTypeFormatter, PurchaseTimeFormatter, PurchaseDateFormatter,\r\n FirstRegistrationDateTimeFormatter,\r\n} from 'src/utils/forms/formatters';\r\nimport {\r\n isNoneEnum, isValidAlphanumeric, isValidCCValue, validatePassengerListCount,\r\n} from 'src/utils/forms';\r\n\r\nexport const ownVehicleSection = {\r\n name: 'ownVehicle.vehiclePolicy.vehicle',\r\n title: 'own-vehicle-information',\r\n fields: {\r\n registrationNumber: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_VehicleRegistration.0.number',\r\n label: 'vehicle-registration-number',\r\n isRequired: true,\r\n validate: isValidAlphanumeric,\r\n formatter: UpperCaseFormatter,\r\n },\r\n category: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.type',\r\n label: 'vehicle-category',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n },\r\n manufacturer: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.make',\r\n target: {\r\n type: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.make',\r\n noType: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.makeNotInEnum',\r\n },\r\n label: 'vehicle-manufacturer',\r\n formatter: OtherNoEnumTypeFormatter,\r\n isRequired: true,\r\n },\r\n manufacturerText: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.makeDescription',\r\n label: 'vehicle-manufacturer-description',\r\n isRequired: true,\r\n },\r\n model: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.model',\r\n label: 'vehicle-model',\r\n formatter: {\r\n additionalSources: {\r\n modelText: 'ownVehicle.vehiclePolicy.vehicle.modelText',\r\n variant: 'ownVehicle.vehiclePolicy.vehicle.variant',\r\n },\r\n format: (value: string): SelectInputOption | undefined => {\r\n const splittedValues = value?.split('___');\r\n return splittedValues?.length > 0 ? { value: splittedValues[0], label: '' } : undefined;\r\n },\r\n transform: ({ value, additionalData }:\r\n { value: SelectInputOption; additionalData: { modelText: string; variant: string } }) => (\r\n `${value && !isNoneEnum(value.value) ? value.value : (additionalData.modelText ?? '')}___${additionalData.variant ?? ''}`\r\n ),\r\n },\r\n isRequired: true,\r\n },\r\n modelText: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.modelText',\r\n target: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.model',\r\n label: 'vehicle-model-description',\r\n formatter: VoidFormatter,\r\n isRequired: true,\r\n },\r\n variant: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.variant',\r\n target: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.model',\r\n label: 'vehicle-variant',\r\n formatter: {\r\n format: (value: string): string | undefined => {\r\n const splittedValues = value?.split('___');\r\n return splittedValues?.length > 1 ? splittedValues[1] : 'undefined';\r\n },\r\n },\r\n },\r\n transmission: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.transmission',\r\n label: 'transmission',\r\n formatter: RadioFormatter,\r\n isRequired: true,\r\n },\r\n engineDisplacement: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.engineCapacityValue',\r\n label: 'engine-displacement',\r\n validate: isValidCCValue,\r\n isRequired: true,\r\n },\r\n purchaseDateUtc: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.purchaseDateUtc',\r\n label: 'effective-date-of-ownership',\r\n formatter: PurchaseDateFormatter,\r\n },\r\n purchaseTime: {\r\n path: 'ownVehicle.time',\r\n target: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.purchaseDateUtc',\r\n label: 'effective-time-of-ownership',\r\n formatter: PurchaseTimeFormatter,\r\n },\r\n vIN: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.vIN',\r\n label: 'vin',\r\n },\r\n firstRegistrationDateUtc: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.firstRegistrationDateUtc',\r\n label: 'first-registration-date',\r\n formatter: FirstRegistrationDateTimeFormatter,\r\n isRequired: false,\r\n },\r\n vehicleFuel: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.vehicleFuel',\r\n target: {\r\n type: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.vehicleFuel',\r\n noType: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.vehicleFuelSourceName',\r\n },\r\n label: 'vehicle-fuel',\r\n formatter: OtherNoEnumTypeFormatter,\r\n },\r\n vehicleFuelText: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.vehicleFuelSourceName',\r\n label: 'vehicle-fuel-description',\r\n },\r\n usagePurpose: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.usagePurpose',\r\n target: 'ownVehicle.vehiclePolicy.usagePurpose',\r\n label: 'vehicle-usage-purpose',\r\n formatter: EnumFormatter,\r\n },\r\n passengerCount: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.numberOfPassengers',\r\n target: 'ownVehicle.vehiclePolicy.numberOfPassengers',\r\n label: 'passenger-count',\r\n isRequired: true,\r\n validate: validatePassengerListCount('ownVehicle.vehiclePolicy.vehicle.passengers'),\r\n },\r\n passengers: {\r\n path: 'ownVehicle.vehiclePolicy.vehicle.passengers',\r\n target: 'ownVehicle.vehiclePolicy.passengers',\r\n label: 'passengers',\r\n item: {\r\n name: {\r\n path: 'specializations.mapping_Person_Gears.name',\r\n label: 'passenger-name',\r\n isRequired: true,\r\n },\r\n gender: {\r\n path: 'specializations.mapping_Person_Individual.gender',\r\n label: 'passenger-gender',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n },\r\n },\r\n },\r\n },\r\n};\r\n","import {\r\n EnumFormatter, PhoneNumberFormatter, OtherNoEnumTypeFormatter, TrimWhitespacesFormatter,\r\n} from 'src/utils/forms/formatters';\r\nimport {\r\n phoneNumberRequired, isValidPhoneNumber, isValidNationalIdentifier, isValidEmail,\r\n} from 'src/utils/forms';\r\n\r\nexport const ownVehiclePolicySection = {\r\n name: 'ownVehiclePolicy',\r\n title: 'own-vehicle-policy',\r\n fields: {\r\n insuranceCompany: {\r\n path: 'ownVehiclePolicy.insuranceCompany',\r\n target: 'ownVehicle.vehiclePolicy.policy.specializations.mapping_Policy_Insurer.insurer',\r\n label: 'insurance-company',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n },\r\n policyNumber: {\r\n path: 'ownVehiclePolicy.policyNumber',\r\n target: 'ownVehicle.vehiclePolicy.policy.referenceCode',\r\n label: 'policy-number',\r\n formatter: TrimWhitespacesFormatter,\r\n },\r\n registeredOwnerName: {\r\n path: 'ownVehiclePolicy.registeredOwnerName',\r\n target: 'ownVehicle.owner.person.specializations.mapping_Person_Gears.name',\r\n label: 'registered-owner-name',\r\n isRequired: true,\r\n },\r\n registeredOwnerIdType: {\r\n path: 'ownVehiclePolicy.registeredOwnerIdType',\r\n target: 'ownVehicle.owner.person.specializations.mapping_Person_NationalIdentifier.0.identifier',\r\n label: 'registered-owner-id-type',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n },\r\n registeredOwnerId: {\r\n path: 'ownVehiclePolicy.registeredOwnerId',\r\n target: 'ownVehicle.owner.person.specializations.mapping_Person_NationalIdentifier.0.nationalIdentifier',\r\n label: 'registered-owner-id',\r\n formatter: TrimWhitespacesFormatter,\r\n isRequired: true,\r\n validate: isValidNationalIdentifier('ownVehiclePolicy.registeredOwnerIdType'),\r\n },\r\n email: {\r\n path: 'ownVehiclePolicy.email',\r\n target: 'ownVehicle.owner.email.address',\r\n label: 'email',\r\n isRequired: true,\r\n validate: isValidEmail,\r\n },\r\n primaryMobilePhone: {\r\n path: 'ownVehiclePolicy.primaryPhoneNumber',\r\n label: 'phone-number',\r\n target: {\r\n number: 'ownVehicle.owner.primaryPhoneNumber.number',\r\n countryCode: 'ownVehicle.owner.primaryPhoneNumber.countryCode',\r\n phoneNumberType: 'ownVehicle.owner.primaryPhoneNumber.phoneNumberType',\r\n },\r\n formatter: PhoneNumberFormatter,\r\n isRequired: true,\r\n requiredFunction: phoneNumberRequired,\r\n validate: isValidPhoneNumber,\r\n },\r\n altPhones: {\r\n path: 'ownVehiclePolicy.alternativePhoneNumbers',\r\n target: 'ownVehicle.owner.alternativePhoneNumbers',\r\n label: 'alt-phones',\r\n item: {\r\n type: {\r\n path: 'type',\r\n label: 'owner-alt-phone-type',\r\n target: {\r\n type: 'phoneNumberType',\r\n noType: 'phoneNumberTypeNotInEnum',\r\n },\r\n formatter: OtherNoEnumTypeFormatter,\r\n isRequired: true,\r\n },\r\n phone: {\r\n path: 'phone',\r\n label: 'owner-alt-phone',\r\n target: {\r\n number: 'number',\r\n countryCode: 'countryCode',\r\n },\r\n formatter: PhoneNumberFormatter,\r\n isRequired: true,\r\n requiredFunction: phoneNumberRequired,\r\n validate: isValidPhoneNumber,\r\n },\r\n },\r\n },\r\n },\r\n};\r\n","import {\r\n validateListIfCondition, isNoneEnum, isValidPhoneNumber, isValidNationalIdentifier, isValidAlphanumeric,\r\n} from 'src/utils/forms';\r\nimport {\r\n VoidFormatter, EnumFormatter,\r\n PhoneNumberFormatter, UnknownNoEnumTypeFormatter, UpperCaseFormatter, OtherNoEnumTypeFormatter,\r\n} from 'src/utils/forms/formatters';\r\nimport { SelectInputOption } from '@shift/design-system';\r\nimport { AnyType } from 'src/types';\r\n\r\nexport const thirdPartySection = {\r\n name: 'thirdParties',\r\n title: 'third-party-details',\r\n fields: {\r\n anyThirdParties: {\r\n path: 'thirdParties.anyThirdParties',\r\n target: 'generalInformation.accidentInformation.specializations.mapping_Claim_Motor_Checklist.anyOtherVehicleDamage',\r\n label: 'any-third-party',\r\n isRequired: true,\r\n },\r\n vehiclesOrProperties: {\r\n path: 'thirdParties.thirdPartyVehicles',\r\n target: 'thirdPartyVehicles',\r\n label: 'third-party-details',\r\n item: {\r\n id: {\r\n path: 'vehiclePolicy.vehicle.id',\r\n label: '',\r\n },\r\n vehicleNumber: {\r\n path: 'vehiclePolicy.vehicle.specializations.mapping_Object_Motor_VehicleRegistration.0.number',\r\n label: 'tp-vehicle-number',\r\n validate: isValidAlphanumeric,\r\n formatter: UpperCaseFormatter,\r\n },\r\n manufacturer: {\r\n path: 'vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.make',\r\n target: {\r\n type: 'vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.make',\r\n noType: 'vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.makeNotInEnum',\r\n },\r\n label: 'vehicle-manufacturer',\r\n formatter: OtherNoEnumTypeFormatter,\r\n },\r\n manufacturerText: {\r\n path: 'vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.makeDescription',\r\n label: 'vehicle-manufacturer-description',\r\n },\r\n model: {\r\n path: 'vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.model',\r\n label: 'vehicle-model',\r\n formatter: {\r\n additionalSources: {\r\n modelText: 'vehiclePolicy.vehicle.modelText',\r\n },\r\n format: (value: number): SelectInputOption | undefined => (value ? {\r\n value,\r\n label: '',\r\n } : undefined\r\n ),\r\n transform: ({ value, additionalData }:\r\n { value: SelectInputOption; additionalData: { modelText: string } }) => (\r\n value && !isNoneEnum(value.value) ? value.value : additionalData.modelText\r\n ),\r\n },\r\n },\r\n modelText: {\r\n path: 'vehiclePolicy.vehicle.modelText',\r\n target: 'vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.model',\r\n label: 'vehicle-model-description',\r\n formatter: VoidFormatter,\r\n },\r\n color: {\r\n path: 'vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.color',\r\n label: 'vehicle-color',\r\n formatter: EnumFormatter,\r\n },\r\n category: {\r\n path: 'vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.type',\r\n label: 'vehicle-category',\r\n target: {\r\n type: 'vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.type',\r\n noType: 'vehiclePolicy.vehicle.specializations.mapping_Object_Motor_Vehicle.typeNotInEnum',\r\n },\r\n formatter: UnknownNoEnumTypeFormatter,\r\n isRequired: true,\r\n },\r\n insuranceCompany: {\r\n path: 'vehiclePolicy.policy.specializations.mapping_Policy_Insurer.insurer',\r\n label: 'tp-insurance-company',\r\n formatter: EnumFormatter,\r\n },\r\n propertyDetails: {\r\n path: 'vehiclePolicy.vehicle.specializations.mapping_Object_FreeText.description',\r\n label: 'tp-property-details',\r\n },\r\n damageNature: {\r\n path: 'vehiclePolicy.damage.specializations.mapping_Damage_FreeText.0.freeTextDescription',\r\n label: 'tp-damage-nature',\r\n },\r\n driverName: {\r\n path: 'driver.person.specializations.mapping_Person_Gears.name',\r\n label: 'driver-name',\r\n },\r\n driverIdType: {\r\n path: 'driverIdType',\r\n target: 'driver.person.specializations.mapping_Person_NationalIdentifier.0.identifier',\r\n label: 'driver-id-type',\r\n formatter: EnumFormatter,\r\n },\r\n driverId: {\r\n path: 'driverId',\r\n target: 'driver.person.specializations.mapping_Person_NationalIdentifier.0.nationalIdentifier',\r\n label: 'driver-id',\r\n validate(value: string, formValues: AnyType) {\r\n // the path of the current object is changed in the form when adding items\r\n // Which means we don't know the index of the current element before runtime\r\n // So we look for the 'driverIdType' relatively to the current field\r\n const { path } = this;\r\n const idx = path.lastIndexOf('.');\r\n if (idx === -1) {\r\n return undefined;\r\n }\r\n\r\n const reworkedPath = path.substring(0, idx)\r\n .replace('[', '.')\r\n .replace(']', '');\r\n return isValidNationalIdentifier(`${reworkedPath}.driverIdType`)(value, formValues);\r\n },\r\n },\r\n driverContactNumber: {\r\n path: 'driver.primaryPhoneNumber',\r\n target: {\r\n number: 'driver.primaryPhoneNumber.number',\r\n countryCode: 'driver.primaryPhoneNumber.countryCode',\r\n phoneNumberType: 'driver.primaryPhoneNumber.phoneNumberType',\r\n },\r\n formatter: PhoneNumberFormatter,\r\n label: 'tp-contact-number',\r\n validate: isValidPhoneNumber,\r\n },\r\n driverAddress1: {\r\n path: 'driver.address.fullAddress',\r\n label: 'address-1',\r\n },\r\n driverAddress2: {\r\n path: 'driver.address.complement',\r\n label: 'address-2',\r\n },\r\n driverPostCode: {\r\n path: 'driver.address.postCode',\r\n label: 'post-code',\r\n },\r\n passengerCount: {\r\n path: 'vehiclePolicy.numberOfPassengers',\r\n label: 'tp-passenger-count',\r\n },\r\n passengers: {\r\n path: 'vehiclePolicy.passengers',\r\n label: 'passengers',\r\n item: {\r\n name: {\r\n path: 'specializations.mapping_Person_Gears.name',\r\n label: 'passenger-name',\r\n },\r\n gender: {\r\n path: 'specializations.mapping_Person_Individual.gender',\r\n label: 'passenger-gender',\r\n formatter: EnumFormatter,\r\n },\r\n },\r\n },\r\n },\r\n validate: validateListIfCondition('thirdParties.anyThirdParties'),\r\n },\r\n },\r\n};\r\n","import {\r\n validateListIfCondition,\r\n} from 'src/utils/forms';\r\nimport { BackendListFormatter, EnumFormatter, PhoneNumberFormatter } from 'src/utils/forms/formatters';\r\n\r\nexport const injuredSection = {\r\n name: 'injured',\r\n title: 'injured-persons',\r\n fields: {\r\n anyInjuredPersons: {\r\n path: 'injured.anyInjuredPersons',\r\n target: 'generalInformation.accidentInformation.specializations.mapping_Claim_Motor_Checklist.anyInjuredPersons',\r\n label: 'any-injured-person',\r\n isRequired: true,\r\n },\r\n anyInjuredTookAmbulance: {\r\n path: 'injured.anyInjuredTookAmbulance',\r\n target: 'generalInformation.accidentInformation.specializations.mapping_Claim_Motor_Checklist.anyInjuredPersonConveyedByAmbulance',\r\n label: 'any-injured-took-ambulance',\r\n isRequired: true,\r\n },\r\n injuredPersons: {\r\n path: 'injured.persons',\r\n target: 'injuredPersons',\r\n label: 'injured-persons',\r\n item: {\r\n name: {\r\n path: 'person.specializations.mapping_Person_Gears.name',\r\n label: 'injured-name',\r\n },\r\n gender: {\r\n path: 'person.specializations.mapping_Person_Individual.gender',\r\n label: 'gender',\r\n formatter: EnumFormatter,\r\n },\r\n primaryMobilePhone: {\r\n path: 'primaryPhoneNumber',\r\n label: 'phone-number',\r\n target: {\r\n number: 'primaryPhoneNumber.number',\r\n countryCode: 'primaryPhoneNumber.countryCode',\r\n phoneNumberType: 'primaryPhoneNumber.phoneNumberType',\r\n },\r\n formatter: PhoneNumberFormatter,\r\n },\r\n address1: {\r\n path: 'address.fullAddress',\r\n label: 'address-1',\r\n },\r\n address2: {\r\n path: 'address.complement',\r\n label: 'address-2',\r\n },\r\n postCode: {\r\n path: 'address.postCode',\r\n label: 'post-code',\r\n },\r\n age: {\r\n path: 'approximateAge',\r\n label: 'approximate-age',\r\n },\r\n injuriesDescription: {\r\n path: 'damage.specializations.mapping_Damage_FreeText.0.freeTextDescription',\r\n label: 'injury-description',\r\n },\r\n injuredVehicle: {\r\n path: 'associatedVehicleId',\r\n label: 'injured-vehicle',\r\n formatter: BackendListFormatter,\r\n },\r\n hadSeatBeltOn: {\r\n path: 'seatBeltWorn',\r\n label: 'seat-belt-on',\r\n },\r\n tookAmbulance: {\r\n path: 'injuredTookAmbulance',\r\n label: 'injured-took-ambulance',\r\n },\r\n },\r\n validate: validateListIfCondition('injuredPersons.anyInjuredPersons'),\r\n },\r\n },\r\n};\r\n","import { PhoneNumberFormatter } from 'src/utils/forms/formatters';\r\nimport { isValidPhoneNumber, isValidEmail } from 'src/utils/forms';\r\n\r\nexport const witnessSection = {\r\n name: 'witness',\r\n target: 'witnesses',\r\n title: 'witnesses',\r\n fields: {\r\n anyWitnesses: {\r\n path: 'witness.anyWitnesses',\r\n target: 'generalInformation.accidentInformation.specializations.mapping_Claim_Motor_Checklist.anyWitness',\r\n label: 'any-witness',\r\n isRequired: true,\r\n },\r\n witnesses: {\r\n path: 'witness.persons',\r\n target: 'witnesses',\r\n label: 'witnesses',\r\n item: {\r\n name: {\r\n path: 'person.specializations.mapping_Person_Gears.name',\r\n label: 'witness-name',\r\n },\r\n phone: {\r\n path: 'primaryPhoneNumber',\r\n target: {\r\n number: 'primaryPhoneNumber.number',\r\n countryCode: 'primaryPhoneNumber.countryCode',\r\n phoneNumberType: 'primaryPhoneNumber.phoneNumberType',\r\n },\r\n formatter: PhoneNumberFormatter,\r\n label: 'witness-phone',\r\n validate: isValidPhoneNumber,\r\n },\r\n email: {\r\n path: 'email.address',\r\n label: 'witness-email',\r\n validate: isValidEmail,\r\n },\r\n },\r\n },\r\n },\r\n};\r\n","import { get } from 'object-path';\r\nimport { getFileFormatter } from 'src/utils/forms/formatters';\r\nimport { isValidFile, isRequiredIfCondition } from 'src/utils/forms';\r\nimport { AnyType } from 'src/types';\r\n\r\nexport const attachmentsSection = {\r\n name: 'attachments',\r\n title: 'attachments',\r\n fields: {\r\n anyAccidentPhoto: {\r\n path: 'attachments.anyAccidentPhoto',\r\n target: 'generalInformation.accidentInformation.specializations.mapping_Claim_Motor_Checklist.anyAccidentPhoto',\r\n label: 'any-accident-photo',\r\n isRequired: true,\r\n },\r\n anyAccidentVideo: {\r\n path: 'attachments.anyAccidentVideo',\r\n target: 'generalInformation.accidentInformation.specializations.mapping_Claim_Motor_Checklist.anyAccidentVideo',\r\n label: 'any-accident-video',\r\n isRequired: true,\r\n },\r\n sketchPlan: {\r\n path: 'attachments.sketchPlan',\r\n target: {\r\n name: 'attachments.sketchPlan',\r\n item: {\r\n id: 'id',\r\n name: 'documentName',\r\n size: 'specializations.document_Document_DestinationDiskStorageInformation.fileSize',\r\n },\r\n },\r\n label: 'sketch-plan',\r\n formatter: getFileFormatter(true),\r\n validate: isValidFile,\r\n isRequired: true,\r\n },\r\n accidentOrVehiclePhotos: {\r\n path: 'attachments.accidentOrVehiclePhotos',\r\n target: {\r\n name: 'attachments.accidentOrVehiclePhotos',\r\n item: {\r\n id: 'id',\r\n name: 'documentName',\r\n size: 'specializations.document_Document_DestinationDiskStorageInformation.fileSize',\r\n },\r\n },\r\n label: 'accident-vehicle-photos',\r\n formatter: getFileFormatter(true),\r\n validate: isValidFile,\r\n isRequired: true,\r\n requiredFunction: isRequiredIfCondition((formValues: AnyType) => get(formValues, 'attachments.anyAccidentPhoto')),\r\n },\r\n privateHirePhoto: {\r\n path: 'attachments.privateHirePhoto',\r\n target: {\r\n id: 'attachments.privateHirePhoto.id',\r\n name: 'attachments.privateHirePhoto.documentName',\r\n size: 'attachments.privateHirePhoto.specializations.document_Document_DestinationDiskStorageInformation.fileSize',\r\n },\r\n label: 'private-hire-button',\r\n formatter: getFileFormatter(),\r\n validate: isValidFile,\r\n isRequired: true,\r\n },\r\n addendumForm: {\r\n path: 'attachments.addendumForm',\r\n target: {\r\n id: 'attachments.addendumForm.id',\r\n name: 'attachments.addendumForm.documentName',\r\n size: 'attachments.addendumForm.specializations.document_Document_DestinationDiskStorageInformation.fileSize',\r\n },\r\n label: 'addendum-form',\r\n validate: isValidFile,\r\n formatter: getFileFormatter(),\r\n isRequired: true,\r\n },\r\n canUploadVideo: {\r\n path: 'attachments.isVideoUploaded',\r\n label: 'can-upload-video',\r\n isRequired: true,\r\n },\r\n noVideoUploadReason: {\r\n path: 'attachments.reasonForNotUploadingAvailableVideo',\r\n label: 'no-upload-reason',\r\n isRequired: true,\r\n },\r\n accidentVideos: {\r\n path: 'attachments.accidentVideos',\r\n target: {\r\n name: 'attachments.accidentVideos',\r\n item: {\r\n id: 'id',\r\n name: 'documentName',\r\n size: 'specializations.document_Document_DestinationDiskStorageInformation.fileSize',\r\n },\r\n },\r\n label: 'accident-video',\r\n formatter: getFileFormatter(true),\r\n validate: isValidFile,\r\n isRequired: true,\r\n },\r\n personalDocuments: {\r\n path: 'attachments.personalDocuments',\r\n target: {\r\n name: 'attachments.personalDocuments',\r\n item: {\r\n id: 'id',\r\n name: 'documentName',\r\n size: 'specializations.document_Document_DestinationDiskStorageInformation.fileSize',\r\n },\r\n },\r\n label: 'personal-documents',\r\n formatter: getFileFormatter(true),\r\n validate: isValidFile,\r\n },\r\n otherDocuments: {\r\n path: 'attachments.otherDocuments',\r\n target: {\r\n name: 'attachments.otherDocuments',\r\n item: {\r\n id: 'id',\r\n name: 'documentName',\r\n size: 'specializations.document_Document_DestinationDiskStorageInformation.fileSize',\r\n },\r\n },\r\n label: 'other-documents',\r\n formatter: getFileFormatter(true),\r\n validate: isValidFile,\r\n },\r\n },\r\n};\r\n","import moment from 'moment-timezone';\r\nimport { DefaultTimezone } from 'src/constants';\r\n\r\n// Define date locale configurations\r\nconst englishMomentConfig = {\r\n parentLocale: 'en',\r\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\r\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\r\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\r\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\r\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'DD/MM/YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY LT',\r\n LLLL: 'dddd D MMMM YYYY LT',\r\n },\r\n};\r\n\r\n// Set up locales for the our different display formats\r\nmoment.updateLocale('en', englishMomentConfig);\r\nmoment.defineLocale('en-SG', { parentLocale: 'en' });\r\n\r\n// used when sending date to the backend (keep the timezone)\r\nmoment.fn.toJSON = moment.fn.format;\r\n\r\nexport const setDefaultTimeZone = () => {\r\n moment.tz.setDefault(DefaultTimezone);\r\n};\r\n","import React from 'react';\r\n\r\nimport { useSecurity } from './Security';\r\nimport { Claims } from './Authenticator';\r\n\r\nexport type SecureProps = {\r\n permissions?: (user: Claims) => boolean;\r\n fallback?: React.ReactElement;\r\n};\r\n\r\nexport const Secure: React.FC = ({ permissions, children, fallback }) => {\r\n const { user } = useSecurity();\r\n\r\n if (!user) {\r\n return null;\r\n }\r\n if (permissions && !permissions(user)) {\r\n return fallback || null;\r\n }\r\n\r\n return <>{children};\r\n};\r\n","import React from 'react';\r\nimport { Route, RouteProps } from 'src/components/Route';\r\n\r\nimport { Secure, SecureProps } from './Secure';\r\n\r\ntype SecureRouteProps = RouteProps & SecureProps;\r\n\r\nexport const SecureRoute = ({ permissions, ...props }: SecureRouteProps) => (\r\n \r\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\r\n \r\n \r\n);\r\n","module.exports = __webpack_public_path__ + \"static/media/login_background.2a3bbfca.jpg\";","import React from 'react';\r\n\r\nimport {\r\n setupTelemetry, LoggerPlugin, APMPlugin, forLazyRoute as _forLazyRoute, GAPlugin,\r\n} from '@shift/telemetry';\r\n\r\n\r\nimport { telemetryConfig } from 'src/config';\r\nimport { runtimeConfig } from 'src/config/runtime-config';\r\n\r\nimport { graphql } from './graphql';\r\n\r\nimport { ruleMap } from './TrackingRouterRuleMap';\r\n\r\nconst { analyticsCode } = runtimeConfig();\r\n\r\nexport const { TelemetryProvider } = setupTelemetry({\r\n projectId: 'gears',\r\n projectName: 'GEARS',\r\n apollo: {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n client: graphql as any,\r\n autoLink: true,\r\n },\r\n}, [\r\n GAPlugin({\r\n usage: ['Tracking'],\r\n gaKey: analyticsCode,\r\n ruleMap,\r\n strict: true,\r\n }),\r\n APMPlugin({\r\n usage: ['Monitoring'],\r\n agentConfig: telemetryConfig,\r\n }),\r\n LoggerPlugin({\r\n usage: ['Tracking', 'Monitoring'],\r\n env: process.env.NODE_ENV === 'development' ? 'DEV' : 'PROD',\r\n logOnProd: false,\r\n errorFn: {\r\n DEV: 'error',\r\n PROD: 'warn',\r\n },\r\n verbose: true,\r\n }),\r\n]);\r\n\r\nexport const forLazyRoute = (Component: React.FC

) => _forLazyRoute(['Monitoring', 'Tracking'], Component);\r\n","import { RouterRuleMap } from '@shift/telemetry';\r\n\r\nexport const ruleMap: RouterRuleMap = [\r\n {\r\n rule: /^\\/accident-reports$/,\r\n url: '/accident-reports/',\r\n title: 'Accident Reports',\r\n },\r\n {\r\n rule: /^\\/accident-reports\\/details/,\r\n url: '/accident-reports/details/',\r\n title: 'Accident Report',\r\n },\r\n {\r\n rule: /^\\/accident-report-form/,\r\n url: '/accident-reports/new/',\r\n title: 'New Accident Report',\r\n },\r\n {\r\n rule: /^\\/accident-report-submitted/,\r\n url: '/accident-report-submitted/',\r\n title: 'Submitted Accident Report',\r\n },\r\n {\r\n rule: /^\\/recoveries$/,\r\n url: '/recoveries/',\r\n title: 'Recoveries',\r\n },\r\n {\r\n rule: /^\\/recoveries\\/details/,\r\n url: '/recoveries/details/',\r\n title: 'Recovery',\r\n },\r\n {\r\n rule: /^\\/exploration$/,\r\n url: '/exploration/person/',\r\n title: 'Search Person Exploration',\r\n },\r\n {\r\n rule: /^\\/exploration\\/person/,\r\n url: '/exploration/person/',\r\n title: 'Search Person Exploration',\r\n },\r\n {\r\n rule: /^\\/exploration\\/vehicle/,\r\n url: '/exploration/vehicle/',\r\n title: 'Search Vehicle Exploration',\r\n },\r\n {\r\n rule: /^\\/ncd$/,\r\n url: '/exploration/ncd/',\r\n title: 'Search NCD Exploration',\r\n },\r\n {\r\n rule: /^\\/insurer-enquiry$/,\r\n url: '/exploration/insurer/',\r\n title: 'Search Insurer Exploration',\r\n },\r\n {\r\n rule: /^\\/account\\/change-language$/,\r\n url: '/account/language/',\r\n title: 'Language Account',\r\n },\r\n {\r\n rule: /^\\/account\\/change-password$/,\r\n url: '/account/password/',\r\n title: 'Password Account',\r\n },\r\n {\r\n rule: /^\\/folders$/,\r\n url: '/folders/',\r\n title: 'Folders',\r\n },\r\n {\r\n rule: /^\\/folders\\/details/,\r\n url: '/folders/details/',\r\n title: 'Folder',\r\n },\r\n {\r\n rule: /^\\/third-party-reports$/,\r\n url: '/third-party-reports/',\r\n title: 'Search Third Party Reports',\r\n },\r\n {\r\n rule: /^\\/arcs$/,\r\n url: '/arc/',\r\n title: 'ARC',\r\n },\r\n];\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n Path,\r\n Formatter,\r\n Widgetter,\r\n} from '@shift/transform';\r\n\r\nimport { Claims } from 'src/libs/auth/Authenticator';\r\nimport { Filter, FilterProps } from 'src/libs/filters';\r\n\r\ntype TokenPredicate = (user: Claims) => boolean;\r\n\r\ntype ChrootersConfig = Path[];\r\n\r\ntype ConfigTypes = 'KeyValueCard' | 'SelectKeyValueCard' | 'Table' | 'MergedTable' | 'SingleValueCard' | 'Processed';\r\n\r\ntype TableAdditionalConfig = {\r\n filter?: (Filter & { widgetter: Widgetter }) | null;\r\n}\r\n\r\ntype BaseContentTransformConfig = {\r\n i18NId: string;\r\n chrooters: ChrootersConfig;\r\n formatter: Formatter;\r\n widgetter: Widgetter;\r\n};\r\n\r\nexport type RawContentTransformConfig =\r\n Pick, 'chrooters'>\r\n & Partial>\r\n & { permissions?: TokenPredicate | null };\r\n\r\ntype RawTableContentTransformConfig =\r\n RawContentTransformConfig & TableAdditionalConfig\r\n\r\n\r\ntype MergedTableHeaderConfig = ({\r\n i18n: string;\r\n} & TableAdditionalConfig)[];\r\nexport interface RawConfig {\r\n i18Namespace?: string;\r\n context: Path;\r\n transforms: T[];\r\n configType: ConfigType;\r\n}\r\nexport interface MergedRawConfig<\r\n ConfigType extends ConfigTypes,\r\n T extends RawConfig = RawConfig> {\r\n i18Namespace: string;\r\n transforms: T[];\r\n configType: ConfigType;\r\n}\r\n\r\n\r\nexport const isConfig = (config: any): config is Configs => typeof config === 'object' && typeof config?.configType !== 'undefined';\r\n\r\nfunction isConfigFactory(configType: ConfigTypes) {\r\n return (config: unknown): config is C => isConfig(config) && config.configType === configType;\r\n}\r\n\r\nexport type SingleValueCardConfig = RawConfig<'SingleValueCard'>;\r\n\r\nexport const isSingleValueCardConfig = isConfigFactory('SingleValueCard');\r\n\r\nexport type KeyValueCardConfig = RawConfig<'KeyValueCard'>;\r\n\r\nexport const isKeyValueCardConfig = isConfigFactory('KeyValueCard');\r\n\r\nexport type SelectKeyValueCardConfig = RawConfig<'SelectKeyValueCard'> & { header: RawContentTransformConfig };\r\n\r\nexport const isSelectKeyValueCardConfig = isConfigFactory('SelectKeyValueCard');\r\n\r\nexport type TableConfig = RawConfig<'Table', RawTableContentTransformConfig>;\r\n\r\nexport const isTableConfig = isConfigFactory('Table');\r\n\r\nexport type MergedTableConfig = MergedRawConfig<'MergedTable', SingleValueCardConfig> & { header: MergedTableHeaderConfig };\r\n\r\nexport const isMergedTableConfig = isConfigFactory('MergedTable');\r\n\r\nexport type ProcessedConfig = {\r\n configType: 'Processed';\r\n context: string[];\r\n fields: string[][];\r\n}\r\n\r\nexport const isProcessedConfig = isConfigFactory('Processed');\r\n\r\nexport type RawConfigs = SingleValueCardConfig | KeyValueCardConfig | SelectKeyValueCardConfig | TableConfig;\r\n\r\nexport type Configs = RawConfigs | MergedTableConfig | ProcessedConfig;\r\n\r\ntype BaseConfig = {\r\n [key: string]: T;\r\n}\r\n\r\nexport type GeneralConfig = BaseConfig;\r\n\r\nexport type RawConfiguration = { [value: string]: GeneralConfig };\r\n\r\n// TODO: Replace QueryConfig when each type of config result has a type\r\nexport type ProcesssedConfigType =\r\n TConfig extends SingleValueCardConfig ? SingleValueQueryConfig\r\n : TConfig extends KeyValueCardConfig ? KeyValueQueryConfig\r\n : TConfig extends SelectKeyValueCardConfig ? KeyValueQueryConfig\r\n : TConfig extends TableConfig ? TableQueryConfig\r\n : TConfig extends MergedTableConfig ? MergedTableQueryConfig\r\n : QueryConfig;\r\n\r\nexport type ProcessedSubConfiguration = {\r\n [K in keyof TRawConfig]: ProcesssedConfigType;\r\n};\r\n\r\nexport type ProcessedConfiguration = {\r\n [K in keyof TRawConfig]: ProcessedSubConfiguration;\r\n};\r\n\r\n\r\nexport type ContentTransformConfig =\r\n Pick, 'widgetter' | 'formatter'>\r\n & Partial>;\r\n\r\nexport type TableHeaderContentTransformConfig =\r\n ContentTransformConfig & TableAdditionalConfig;\r\n\r\nexport type TransformConfig]> = {\r\n context: Path;\r\n content: CT[];\r\n}\r\n\r\nexport type TableTransformConfig =\r\n TransformConfig, ContentTransformConfig]>;\r\n\r\n\r\nexport type CardTransformConfig =\r\n TransformConfig, ContentTransformConfig]>;\r\n\r\nexport interface QueryConfig> {\r\n type: ConfigTypes;\r\n // these are used to build the query\r\n context: string[];\r\n fields: string[][];\r\n\r\n // these are used to build the components\r\n transformers: TC;\r\n}\r\n\r\nexport const isQueryConfig = (config: any): config is QueryConfig => typeof config === 'object'\r\n && typeof config?.context !== 'undefined'\r\n && typeof config?.fields !== 'undefined'\r\n && typeof config?.transformers !== 'undefined'\r\n && typeof config?.transformers.content !== 'undefined'\r\n && typeof config?.transformers.content[0] !== 'undefined';\r\n\r\n\r\nexport type TableQueryConfig = QueryConfig>\r\n\r\nexport const isTableQueryConfig = (config: any): config is TableQueryConfig => isQueryConfig(config)\r\n && config.type === 'Table'\r\n && typeof (config.transformers.content as any)[0][0]?.filter !== 'undefined'\r\n && typeof (config.transformers.content as any)[0][1] === 'object';\r\n\r\n\r\nexport type KeyValueQueryConfig = QueryConfig> & { header: ContentTransformConfig | null }\r\n\r\nexport const isKeyValueQueryConfig = (config: any): config is KeyValueQueryConfig => isQueryConfig(config)\r\n && (config.type === 'KeyValueCard' || config.type === 'SelectKeyValueCard')\r\n && typeof (config.transformers.content as any)[0][0] === 'object'\r\n && typeof (config.transformers.content as any)[0][1] === 'object';\r\n\r\n\r\nexport type SingleValueQueryConfig = QueryConfig\r\n\r\nexport const isSingleValueQueryConfig = (config: any): config is SingleValueQueryConfig => isQueryConfig(config)\r\n && config.type === 'SingleValueCard'\r\n && typeof (config.transformers.content as any)[0][0] === 'object'\r\n && typeof (config.transformers.content as any)[0][1] === 'undefined';\r\n\r\n\r\nexport type MergedTableQueryConfig = {\r\n header: TableHeaderContentTransformConfig[];\r\n rows: QueryConfig[]; // single value Query config since we don't need header\r\n}\r\nexport const isMergedTableQueryConfig = (config: any): config is MergedTableQueryConfig => typeof config.header === 'object'\r\n && config.type === 'MergedTableConfig'\r\n && Array.isArray(config.rows)\r\n && isSingleValueQueryConfig(config.rows[0]);\r\n","import { useEffect, useRef, useCallback } from 'react';\r\nimport { DocumentNode } from 'graphql';\r\nimport { useLazyQuery, LazyQueryHookOptions, QueryLazyOptions } from '@apollo/react-hooks';\r\nimport { LazyQueryResult, OperationVariables } from '@apollo/client';\r\n\r\n// TODO move this\r\n// Adapted from https://github.com/apollographql/react-apollo/issues/3499#issuecomment-537748212\r\nexport const useAsyncQuery = (\r\n query: DocumentNode,\r\n options?: LazyQueryHookOptions,\r\n): [(options?: QueryLazyOptions) => Promise>, LazyQueryResult] => {\r\n const [execute, result] = useLazyQuery(query, options);\r\n\r\n const resolveRef = useRef<(value: LazyQueryResult) => void>();\r\n\r\n const { called, loading } = result;\r\n useEffect(() => {\r\n if (called && !loading && resolveRef.current) {\r\n resolveRef.current(result);\r\n resolveRef.current = undefined;\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [loading, called]);\r\n\r\n const asyncExecute = useCallback((o?: QueryLazyOptions) => {\r\n execute(o);\r\n return new Promise>((resolve) => {\r\n resolveRef.current = resolve;\r\n });\r\n }, [execute]);\r\n\r\n return [asyncExecute, result];\r\n};\r\n","import React from 'react';\r\n\r\nexport function configContextFactory(\r\n defaultConfig?: TConfig,\r\n) {\r\n return React.createContext(defaultConfig);\r\n}\r\n\r\nexport interface ConfigProviderProps {\r\n configuration: TRawConfig;\r\n configurationContext: React.Context;\r\n children: React.ReactNode;\r\n}\r\n\r\nexport function ConfigProvider({\r\n configuration,\r\n configurationContext,\r\n children,\r\n}: ConfigProviderProps) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport type Key1 = keyof T;\r\nexport type Key2> = T[K1] extends undefined ? never : keyof T[K1];\r\n\r\nexport function configHookFactory(\r\n configContext: React.Context,\r\n) {\r\n return function useConfig<\r\n K1 extends Key1 = Key1,\r\n K2 extends Key2 = Key2\r\n >(mainContext: K1, subContext: K2): TConfig[K1][K2] {\r\n const ctx = React.useContext(configContext);\r\n\r\n if (ctx) {\r\n if (!ctx[mainContext]) {\r\n throw new Error(`${mainContext} missing in configuration`);\r\n }\r\n\r\n if (!ctx[mainContext][subContext]) {\r\n throw new Error(\r\n `${mainContext}.${subContext} missing in configuration`,\r\n );\r\n }\r\n return ctx[mainContext][subContext];\r\n }\r\n throw new Error('Configuration is not initialized');\r\n };\r\n}\r\n","import React from 'react';\r\n\r\nimport { useSecurity } from 'src/libs/auth';\r\nimport { Claims } from 'src/libs/auth/Authenticator';\r\nimport {\r\n configHookFactory, configContextFactory, ConfigProvider, ConfigProviderProps,\r\n} from './ConfigProvider';\r\nimport {\r\n RawConfiguration, ProcessedConfiguration, isConfig, ProcessedConfig,\r\n TableQueryConfig, KeyValueQueryConfig, SingleValueQueryConfig, MergedTableQueryConfig,\r\n} from './QueryConfigTypes';\r\nimport { queryConfig } from './QueryConfig';\r\n\r\nfunction fromEntries(entries: [K, T][]) {\r\n return entries.reduce(\r\n (previous, current) => ({ ...previous, [current[0]]: current[1] }), {},\r\n );\r\n}\r\n\r\nfunction processConfig>(\r\n rawConfig: TRawConfig,\r\n user: Claims | null,\r\n): TConfig {\r\n return rawConfig ? fromEntries(Object.entries(rawConfig)\r\n .map(([mainContext, mainConfig]) => [\r\n mainContext,\r\n fromEntries<\r\n string,\r\n TableQueryConfig | MergedTableQueryConfig | KeyValueQueryConfig | SingleValueQueryConfig | ProcessedConfig\r\n >(Object.entries(mainConfig).map(([subContext, subConfig]) => {\r\n if (isConfig(subConfig)) {\r\n switch (subConfig.configType) {\r\n case 'KeyValueCard':\r\n return [subContext, queryConfig.cards.getLabelValueFields(subConfig, user)];\r\n case 'Table':\r\n return [subContext, queryConfig.table.getHeaderColumnFields(subConfig, user)];\r\n case 'MergedTable':\r\n return [subContext, queryConfig.table.getMergedTableFields(subConfig)];\r\n case 'SelectKeyValueCard':\r\n return [subContext, queryConfig.cards.getLabelValueFields(subConfig as any, user)];\r\n case 'SingleValueCard':\r\n return [subContext, queryConfig.cards.getSingleField(subConfig, user)];\r\n case 'Processed':\r\n return [subContext, subConfig];\r\n default:\r\n throw new Error(`Error while parsing config at ${mainContext}.${subContext}`);\r\n }\r\n }\r\n throw new Error(`Error while parsing config at ${mainContext}.${subContext}`);\r\n }))])) as any // Cast as any as this is too much to handle types properly\r\n : undefined;\r\n}\r\n\r\nexport function configProviderFactory>(defaultConfig?: TRawConfig) {\r\n const context = configContextFactory(processConfig(defaultConfig, null));\r\n\r\n return {\r\n useConfig: configHookFactory(context),\r\n Provider: ({ children, configuration }: Omit, 'configurationContext'>) => {\r\n const { user } = useSecurity();\r\n return (\r\n \r\n configurationContext={context}\r\n configuration={processConfig(configuration, user)}\r\n >\r\n {children}\r\n \r\n );\r\n },\r\n Consumer: context.Consumer,\r\n };\r\n}\r\n","import {\r\n EnumFormatter, BackendListFormatter, FileWithTypeFormatter, getOffsetDateFormatter, UpperCaseFormatter,\r\n} from 'src/utils/forms/formatters';\r\nimport { isValidAlphanumeric, isValidFileWithType, isValidLossAmount } from 'src/utils/forms';\r\n\r\nexport const initiateRecovery = {\r\n caseInformationStep: {\r\n name: 'caseInformation',\r\n title: 'case-information',\r\n fields: {\r\n accidentReportId: {\r\n path: 'caseInformation.id',\r\n target: 'initiatingParty.accidentReport.id',\r\n },\r\n actionType: {\r\n path: 'caseInformation.actionType',\r\n target: 'nextAction.step.action',\r\n },\r\n recoveryType: {\r\n path: 'caseInformation.recoveryType',\r\n target: 'recoveryType',\r\n label: 'recovery-type',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n },\r\n officer: {\r\n path: 'caseInformation.officerIdentity',\r\n target: 'initiatingParty.officerIdentity',\r\n label: 'officer-in-charge',\r\n formatter: BackendListFormatter,\r\n isRequired: true,\r\n },\r\n initiatingPartyInsurer: {\r\n path: 'caseInformation.ipInsurer',\r\n target: 'initiatingParty.claim.specializations.mapping_Claim_Insurer.insurer',\r\n label: 'insurer',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n },\r\n initiatingPartyPolicyholder: {\r\n path: 'caseInformation.ipPolicyholder',\r\n target: 'initiatingParty.policyholder.specializations.mapping_Person_Gears.name',\r\n label: 'policyholder',\r\n isRequired: true,\r\n },\r\n initiatingPartyVehiclePlateNumber: {\r\n path: 'caseInformation.ipPlateNumber',\r\n target: 'initiatingParty.vehicle.specializations.mapping_Object_Motor_VehicleRegistration.0.number',\r\n label: 'vehicle-plate-number',\r\n isRequired: true,\r\n validate: isValidAlphanumeric,\r\n formatter: UpperCaseFormatter,\r\n },\r\n initiatingPartyLossAmount: {\r\n path: 'caseInformation.ipLossCost',\r\n target: 'amount',\r\n label: 'loss-amount',\r\n isRequired: true,\r\n validate: isValidLossAmount,\r\n },\r\n initiatingPartyClaimPaymentDate: {\r\n path: 'caseInformation.claimPaymentDate',\r\n target: 'paymentDate',\r\n label: 'claim-payment-date',\r\n formatter: getOffsetDateFormatter(null),\r\n isRequired: true,\r\n },\r\n initiatingPartyClaimNumber: {\r\n path: 'caseInformation.ipClaimNumber',\r\n target: 'initiatingParty.claim.referenceCode',\r\n label: 'claim-number',\r\n isRequired: true,\r\n },\r\n receivingPartyInsurer: {\r\n path: 'caseInformation.rpInsurer',\r\n target: 'receivingParty.claim.specializations.mapping_Claim_Insurer.insurer',\r\n label: 'insurer',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n },\r\n receivingPartyVehiclePlateNumber: {\r\n path: 'caseInformation.rpVehiclePlateNumber',\r\n target: 'receivingParty.vehicle.specializations.mapping_Object_Motor_VehicleRegistration.0.number',\r\n label: 'vehicle-plate-number',\r\n isRequired: true,\r\n validate: isValidAlphanumeric,\r\n formatter: UpperCaseFormatter,\r\n },\r\n thirdPartyLossAmount: {\r\n path: 'caseInformation.tpCost',\r\n target: 'amount',\r\n label: 'loss-amount',\r\n isRequired: true,\r\n validate: isValidLossAmount,\r\n },\r\n thirdPartyClaimPaymentDate: {\r\n path: 'caseInformation.tpClaimPaymentDate',\r\n target: 'paymentDate',\r\n label: 'claim-payment-date',\r\n formatter: getOffsetDateFormatter(null),\r\n isRequired: true,\r\n },\r\n thirdPartyLegalCost: {\r\n path: 'caseInformation.tpLegalCost',\r\n target: 'legalCost',\r\n label: 'legal-cost',\r\n isRequired: true,\r\n },\r\n thirdPartyVehiclePlateNumber: {\r\n path: 'caseInformation.tpVehiclePlateNumber',\r\n target: 'initiatingParty.tpVehicle.specializations.mapping_Object_Motor_VehicleRegistration.0.number',\r\n label: 'vehicle-plate-number',\r\n isRequired: true,\r\n validate: isValidAlphanumeric,\r\n formatter: UpperCaseFormatter,\r\n },\r\n },\r\n },\r\n bolaScenarioStep: {\r\n name: 'bolaCase',\r\n title: 'bola-scenario',\r\n fields: {\r\n bolaScenario: {\r\n path: 'bolaCase.bolaScenario',\r\n target: 'nextAction.bolaScenario.id',\r\n label: 'bola-scenario',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n },\r\n comment: {\r\n path: 'bolaCase.comment',\r\n target: 'comment.text.content',\r\n label: 'ip-version',\r\n },\r\n commentType: {\r\n path: 'bolaCase.commentType',\r\n target: 'comment.commentType',\r\n label: '',\r\n },\r\n },\r\n },\r\n importedDocumentsStep: {\r\n name: 'importedDocumentsStep',\r\n title: 'importedDocuments',\r\n fields: {\r\n attachments: {\r\n path: 'importedDocumentsStep.attachments',\r\n label: 'imported-documents',\r\n target: {\r\n name: 'importedDocuments',\r\n item: {\r\n document: 'document',\r\n category: 'category',\r\n },\r\n },\r\n formatter: FileWithTypeFormatter,\r\n validate: isValidFileWithType,\r\n },\r\n },\r\n },\r\n attachmentsStep: {\r\n name: 'attachmentStep',\r\n title: 'attachments',\r\n fields: {\r\n attachments: {\r\n path: 'attachmentStep.attachments',\r\n label: 'new-attachments',\r\n target: {\r\n name: 'nextAction.attachments',\r\n item: {\r\n document: 'document',\r\n category: 'category',\r\n },\r\n },\r\n formatter: FileWithTypeFormatter,\r\n validate: isValidFileWithType,\r\n },\r\n },\r\n },\r\n};\r\n","import { EnumFormatter, getFileFormatter, EnumIdentifierValuePairFormatter } from 'src/utils/forms/formatters';\r\nimport { isValidFile } from 'src/utils/forms';\r\n\r\nexport const drmAdjudication = {\r\n singleSection: {\r\n name: 'drmAdjudicate',\r\n title: 'drmAdjudicate',\r\n fields: {\r\n workflowId: {\r\n path: 'workflowId',\r\n },\r\n actionType: {\r\n path: 'nextAction.step.action',\r\n },\r\n commentType: {\r\n path: 'comment.commentType',\r\n },\r\n bolaScenario: {\r\n path: 'drmAdjudicate.bolaScenario',\r\n target: 'nextAction.bolaScenario.id',\r\n label: 'bola-scenario',\r\n isRequired: true,\r\n formatter: EnumFormatter,\r\n },\r\n liability: {\r\n path: 'drmAdjudicate.liability',\r\n label: 'adjudication-liability',\r\n target: 'nextAction.liability',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n },\r\n losingParty: {\r\n path: 'drmAdjudicate.losingParty',\r\n label: 'losing-party',\r\n target: {\r\n identifier: 'nextAction.step.specializations.ui_WorkflowStep_Reason.reasonEnumIdentifier',\r\n valueId: 'nextAction.step.specializations.ui_WorkflowStep_Reason.reasonEnumValueId',\r\n },\r\n formatter: EnumIdentifierValuePairFormatter,\r\n isRequired: true,\r\n },\r\n decisionDocument: {\r\n path: 'drmAdjudicate.decisionDocument',\r\n label: 'decision-document',\r\n target: {\r\n id: 'nextAction.attachments.0.document.id',\r\n name: 'nextAction.attachments.0.document.documentName',\r\n },\r\n formatter: getFileFormatter(),\r\n validate: isValidFile,\r\n isRequired: true,\r\n },\r\n comment: {\r\n path: 'drmAdjudicate.comment',\r\n target: 'comment.text.content',\r\n label: 'comment',\r\n },\r\n },\r\n },\r\n};\r\n","import { CheckboxesToEnumFormatter } from 'src/utils/forms/formatters';\r\n\r\nexport const waiveRecovery = {\r\n singleSection: {\r\n name: 'waive',\r\n title: 'waive',\r\n fields: {\r\n workflowId: {\r\n path: 'workflowId',\r\n },\r\n actionType: {\r\n path: 'nextAction.step.action',\r\n },\r\n commentType: {\r\n path: 'comment.commentType',\r\n },\r\n waiveReason: {\r\n path: 'waive.waiveReason',\r\n target: 'nextAction.step.specializations.ui_WorkflowStep_Reason',\r\n label: 'waive-reason',\r\n isRequired: true,\r\n formatter: CheckboxesToEnumFormatter,\r\n },\r\n comment: {\r\n path: 'waive.comment',\r\n target: 'comment.text.content',\r\n label: 'comment',\r\n },\r\n },\r\n },\r\n};\r\n","import { CheckboxesToEnumFormatter } from 'src/utils/forms/formatters';\r\n\r\nexport const withdrawOrRejectRecoveryDRM = {\r\n singleSection: {\r\n name: 'withdraw',\r\n title: 'withdraw',\r\n fields: {\r\n workflowId: {\r\n path: 'workflowId',\r\n },\r\n actionType: {\r\n path: 'nextAction.step.action',\r\n },\r\n commentType: {\r\n path: 'comment.commentType',\r\n },\r\n waiveReason: {\r\n path: 'withdraw.waiveReason',\r\n target: 'nextAction.step.specializations.ui_WorkflowStep_Reason',\r\n label: 'withdraw-reason',\r\n isRequired: true,\r\n formatter: CheckboxesToEnumFormatter,\r\n },\r\n comment: {\r\n path: 'withdraw.comment',\r\n target: 'comment.text.content',\r\n label: 'comment',\r\n },\r\n },\r\n },\r\n};\r\n","import { EnumFormatter, getOffsetDateFormatter } from 'src/utils/forms/formatters';\r\nimport { DateFormat } from 'src/constants';\r\nimport { parseOffsetDate } from 'src/utils';\r\n\r\nexport const confirmPayment = {\r\n singleSection: {\r\n name: 'confirmPayment',\r\n title: 'confirm-payment',\r\n fields: {\r\n workflowId: {\r\n path: 'workflowId',\r\n },\r\n actionType: {\r\n path: 'nextAction.step.action',\r\n },\r\n amount: {\r\n path: 'amount',\r\n label: 'payment-amount',\r\n },\r\n paymentSentDate: {\r\n label: 'date-processed',\r\n path: 'processedPaymentDate',\r\n formatter: {\r\n format: (value: string) => parseOffsetDate(value).format(DateFormat),\r\n },\r\n },\r\n paymentMode: {\r\n path: 'confirmPayment.paymentMode',\r\n target: 'paymentMode',\r\n label: 'payment-mode',\r\n formatter: EnumFormatter,\r\n isRequired: true,\r\n },\r\n sendPaymentDate: {\r\n label: 'date-processed',\r\n path: 'confirmPayment.processedDate',\r\n target: 'processedPaymentDate',\r\n formatter: getOffsetDateFormatter(null),\r\n },\r\n receivePaymentDate: {\r\n label: 'date-received',\r\n path: 'confirmPayment.receivedDate',\r\n target: 'paymentDate',\r\n formatter: getOffsetDateFormatter(null),\r\n isRequired: true,\r\n },\r\n comment: {\r\n path: 'confirmPayment.comment',\r\n target: 'comment.text.content',\r\n label: 'comment',\r\n },\r\n commentType: {\r\n path: 'confirmPayment.commentType',\r\n target: 'comment.commentType',\r\n label: '',\r\n },\r\n },\r\n },\r\n};\r\n","import { isValidFile, isValidLossAmount } from 'src/utils/forms';\r\nimport { getFileFormatter } from 'src/utils/forms/formatters';\r\n\r\nexport const reinitiate = {\r\n singleSection: {\r\n name: 'reinitiate',\r\n title: 'reinitiate',\r\n fields: {\r\n workflowId: {\r\n path: 'workflowId',\r\n },\r\n actionType: {\r\n path: 'actionType',\r\n target: 'nextAction.step.action',\r\n },\r\n lossAmount: {\r\n path: 'reinitiate.lossAmount',\r\n target: 'amount',\r\n label: 'loss-amount',\r\n isRequired: true,\r\n validate: isValidLossAmount,\r\n },\r\n thirdPartyLegalCost: {\r\n path: 'reinitiate.tpLegalCost',\r\n target: 'legalCost',\r\n label: 'legal-cost',\r\n isRequired: true,\r\n },\r\n attachments: {\r\n path: 'reinitiate.attachments',\r\n target: {\r\n name: 'nextAction.attachments',\r\n item: {\r\n id: 'document.id',\r\n name: 'document.documentName',\r\n },\r\n },\r\n label: 'attachments',\r\n formatter: getFileFormatter(true),\r\n validate: isValidFile,\r\n },\r\n comment: {\r\n path: 'reinitiate.comment',\r\n target: 'comment.text.content',\r\n label: 'comment',\r\n },\r\n commentType: {\r\n path: 'reinitiate.commentType',\r\n target: 'comment.commentType',\r\n label: '',\r\n },\r\n },\r\n },\r\n};\r\n","import { BackendListFormatter, CheckboxesToEnumFormatter } from '../../../utils/forms/formatters';\r\n\r\nexport const sendBackRecovery = {\r\n singleSection: {\r\n name: 'sendBack',\r\n title: 'send-back',\r\n fields: {\r\n workflowId: {\r\n path: 'workflowId',\r\n },\r\n actionType: {\r\n path: 'sendBack.actionType',\r\n target: 'nextAction.step.action',\r\n },\r\n // claimNumber is not needed for now\r\n // Let's keep it commented if it's not the case in the future\r\n // claimNumber: {\r\n // path: 'sendBack.claimNumber',\r\n // target: 'receivingParty.claim.referenceCode',\r\n // label: 'claim-number',\r\n // },\r\n officer: {\r\n path: 'sendBack.receivingParty.officerIdentity',\r\n target: 'receivingParty.officerIdentity',\r\n label: 'officer-in-charge',\r\n formatter: BackendListFormatter,\r\n },\r\n sendBackReason: {\r\n path: 'sendBack.sendBackReason',\r\n target: 'nextAction.step.specializations.ui_WorkflowStep_Reason',\r\n label: 'send-back-reason',\r\n isRequired: true,\r\n formatter: CheckboxesToEnumFormatter,\r\n },\r\n comment: {\r\n path: 'sendBack.comment',\r\n target: 'comment.text.content',\r\n label: 'comment',\r\n },\r\n commentType: {\r\n path: 'sendBack.commentType',\r\n target: 'comment.commentType',\r\n label: '',\r\n },\r\n },\r\n },\r\n};\r\n","import { useMemo, useContext } from 'react';\r\nimport { translate } from '@gears/translations';\r\nimport { SelectInputOption } from '@shift/design-system';\r\nimport { phoneType, faxType, otherEnum } from 'src/constants';\r\nimport {\r\n AnyType, BolaCaseSelectInputOption, EnumItem,\r\n VehicleModelSelectInputOption, PoliceStationSelectInputOption, DrmReasonSelectInputOption,\r\n} from 'src/types';\r\nimport { MessageModalContext } from 'src/MessageModal';\r\nimport {\r\n getOfficers, getArcInsurers, getPoliceStations,\r\n getBolaCases, getVehicleModels, useQuery, GqlQueryName, getArcNames, getDrmAdjudicationReasonItemPrices,\r\n} from 'src/graphql';\r\nimport { useEnum } from './useEnums';\r\nimport { isNoneEnum } from '../forms';\r\n\r\ntype AsyncListResult = {\r\n loading: boolean;\r\n options: SelectInputOption[];\r\n error: Error | undefined;\r\n refetch: () => void;\r\n};\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst useListFromBackend = (gqlQuery: any, buildFn: (data: AnyType) => SelectInputOption[], querySettings?: AnyType): AsyncListResult => {\r\n const { displayMessage } = useContext(MessageModalContext);\r\n const {\r\n loading, data, error, refetch,\r\n } = useQuery(gqlQuery, { displayName: GqlQueryName.backendList, ...querySettings });\r\n\r\n return useMemo(() => {\r\n if (!loading && !data && !querySettings?.skip) {\r\n displayMessage([`${translate('common:load-options-fail')}: ${error?.message} `]);\r\n }\r\n return {\r\n loading,\r\n options: data ? buildFn(data) : [],\r\n error,\r\n refetch: () => { refetch().catch(() => { /* silent error */ }); },\r\n };\r\n }, [data, loading, error, buildFn, querySettings, displayMessage, refetch]);\r\n};\r\n\r\nconst buildArcInsurers = (data: AnyType) => {\r\n const list = data?.me?.arcEntity?.arc?.insurers ?? [];\r\n return list.map((entity: AnyType) => ({\r\n value: `${entity.insurerCode.Type}.${entity.insurerCode.Name}`,\r\n label: translate(`enums:${entity.insurerCode.Type}.${entity.insurerCode.Name}`, { defaultValue: entity.insurerCode.Name }),\r\n }));\r\n};\r\nconst buildArcNames = (data: AnyType) => {\r\n const list = data?.arcList?.items ?? [];\r\n return list.map((item: AnyType) => ({\r\n value: `${item?.person?.specializations.mapping_Person_Gears.id}`,\r\n label: `${item?.person?.specializations.mapping_Person_Gears.name}`,\r\n }));\r\n};\r\n\r\nexport const useArcInsurersList = () => useListFromBackend(getArcInsurers, buildArcInsurers);\r\n\r\nexport const useArcNameList = () => useListFromBackend(getArcNames, buildArcNames, {\r\n variables: {\r\n parameters: {\r\n start: 0,\r\n length: 1000,\r\n filters: [],\r\n sort: null,\r\n },\r\n },\r\n});\r\n\r\nconst buildRecoveryOfficers = (data: AnyType) => {\r\n const list = data?.me?.insurerEntity?.insurer?.insurerEntities ?? [];\r\n return list.map((entity: AnyType) => ({\r\n value: entity?.identity?.identityId,\r\n label: entity?.person?.specializations?.mapping_Person_Gears?.name,\r\n }));\r\n};\r\n\r\nexport const useOfficersList = () => useListFromBackend(getOfficers, buildRecoveryOfficers);\r\n\r\nconst buildPoliceStations = (data: AnyType): PoliceStationSelectInputOption[] => {\r\n const list = data?.policeStations ?? [];\r\n const policeStations = list.map((entity: AnyType) => {\r\n const address = entity.addresses?.length ? entity.addresses[0].fullAddress : undefined;\r\n const phones: Array = entity.phoneNumbers?.length\r\n ? entity.phoneNumbers.filter(((p: AnyType) => p.phoneNumberType?.Name === phoneType)) : [];\r\n const faxes: Array = entity.phoneNumbers?.length\r\n ? entity.phoneNumbers.filter(((p: AnyType) => p.phoneNumberType?.Name === faxType)) : [];\r\n const contactInformation = (address || phones || faxes) ? {\r\n address,\r\n phone: phones?.length ? phones[0].number : undefined,\r\n fax: faxes?.length ? faxes[0].number : undefined,\r\n } : undefined;\r\n return {\r\n value: entity.id,\r\n label: entity.specializations.mapping_Person_Gears.name,\r\n contactInformation,\r\n recordOwner: `${entity.recordOwner.Type}.${entity.recordOwner.Name}`,\r\n };\r\n });\r\n policeStations.push({ value: 0, label: translate(`enums:${otherEnum}`) });\r\n return policeStations;\r\n};\r\n\r\nexport const usePoliceStationsList = () => useListFromBackend(getPoliceStations, buildPoliceStations);\r\n\r\n\r\nconst buildBolaCases = (data: AnyType, bolaScenarioList: EnumItem[] | null, filter: BolaScenarioEnumValuesFilter): BolaCaseSelectInputOption[] => {\r\n if (!data?.bolaCases || !bolaScenarioList) {\r\n return [];\r\n }\r\n\r\n const withUndefined = data.bolaCases.map((entity: AnyType) => {\r\n const enumItem = bolaScenarioList.find((item: EnumItem) => item.Name === entity.caseEnumIdentifier\r\n && item.ValueId === entity.caseEnumValueId);\r\n\r\n if (!enumItem) {\r\n throw new Error(`Bola scenario ${entity.caseEnumIdentifier}.${entity.caseEnumValueId} not found`);\r\n }\r\n\r\n if (filter?.find((x) => x === enumItem.Value)) {\r\n return undefined;\r\n }\r\n\r\n // eslint-disable-next-line max-len\r\n const liabilities = `${entity.specializations?.mapping_AccidentCase_LiabilityScenario_Gia?.xLiablity}/${entity.specializations?.mapping_AccidentCase_LiabilityScenario_Gia?.yLiablity}`;\r\n return {\r\n value: entity.id,\r\n // eslint-disable-next-line max-len\r\n label: `BOLA ${translate(`enums:BolaScenarioNumber.${enumItem.Value}`)}: ${translate(`enums:${enumItem.Name}.${enumItem.Value}`, { defaultValue: enumItem.Value })} - ${liabilities}`,\r\n title: `BOLA ${translate(`enums:BolaScenarioNumber.${enumItem.Value}`)}`,\r\n subTitle: translate(`enums:${enumItem.Name}.${enumItem.Value}`, { defaultValue: enumItem.Value }),\r\n enumValueId: entity.caseEnumValueId,\r\n description: entity.description,\r\n document: entity.document,\r\n xLiablity: entity.specializations?.mapping_AccidentCase_LiabilityScenario_Gia?.xLiablity,\r\n yLiablity: entity.specializations?.mapping_AccidentCase_LiabilityScenario_Gia?.yLiablity,\r\n };\r\n });\r\n\r\n return withUndefined.filter((x: AnyType) => x !== undefined);\r\n};\r\n\r\ntype BolaScenarioEnumValuesFilter = string[] | undefined\r\nexport const BolaScenarioInsurerFilter: BolaScenarioEnumValuesFilter = ['BOLANA0'];\r\n\r\nexport const useBolaCaseList = (filter: BolaScenarioEnumValuesFilter = undefined): { loading: boolean; options: SelectInputOption[] } => {\r\n const { displayMessage } = useContext(MessageModalContext);\r\n const { loading, data, error } = useQuery(getBolaCases, { displayName: GqlQueryName.getBolaCases });\r\n const { loading: loadingEnum, selectedEnum: bolaEnum } = useEnum('BolaScenario');\r\n\r\n try {\r\n return useMemo(() => {\r\n if ((!loading && !data) || (!loadingEnum && !bolaEnum)) {\r\n displayMessage([`${translate('common:load-options-fail')}: ${error?.message}`]);\r\n }\r\n return { loading: loading && loadingEnum, options: (data && bolaEnum) ? buildBolaCases(data, bolaEnum, filter) : [] };\r\n }, [data, loading, error, loadingEnum, bolaEnum, displayMessage, filter]);\r\n } catch (e) {\r\n displayMessage(e.stack);\r\n return { loading: false, options: [] };\r\n }\r\n};\r\n\r\nconst buildVehicleModels = (data: AnyType, make: string): VehicleModelSelectInputOption[] => {\r\n const list = data?.vehicleModels ?? [];\r\n return !make ? [] : list.map((entity: AnyType) => ({\r\n value: entity.model,\r\n label: translate(`vehicle-models:${entity.make.Name}_${entity.model}`, { defaultValue: entity.model }),\r\n make,\r\n })).concat({ value: otherEnum, make, label: translate(`enums:${otherEnum}`) });\r\n};\r\n\r\nexport const useVehicleModelsList = (make: string) => {\r\n const list = useListFromBackend(\r\n getVehicleModels, (data) => buildVehicleModels(data, make), { variables: { make }, skip: !make || isNoneEnum(make) },\r\n );\r\n\r\n const otherList = useMemo(() => ({\r\n loading: false,\r\n options: buildVehicleModels([], otherEnum),\r\n error: [],\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n refetch: () => { },\r\n }), []);\r\n\r\n return isNoneEnum(make) ? otherList : list;\r\n};\r\n\r\nconst buildLosingReasons = (data: AnyType, recoveryDrmAdjudicationLosingParty: EnumItem[] | null): DrmReasonSelectInputOption[] => {\r\n const list = recoveryDrmAdjudicationLosingParty ?? [];\r\n return list.map((entity: EnumItem) => {\r\n const itemPrice = data.recoveryDrmAdjudicationLosingPartyItemPrices[entity.Value];\r\n let mappedPrice;\r\n switch (entity.Value) {\r\n case 'LosingPartyIp':\r\n case 'ShouldNotDrmIp':\r\n case 'LosingPartyMultipleIp':\r\n case 'ShouldNotDrmMultipleIp':\r\n mappedPrice = itemPrice ? `(${itemPrice}-0)` : '';\r\n break;\r\n case 'LosingPartyRp':\r\n case 'ShouldNotDrmRp':\r\n case 'LosingPartyMultipleRp':\r\n case 'ShouldNotDrmMultipleRp':\r\n mappedPrice = itemPrice ? `(0-${itemPrice})` : '';\r\n break;\r\n case 'LosingPartyBoth':\r\n case 'ShouldNotDrmBoth':\r\n case 'AdjudicatedNoFault':\r\n mappedPrice = itemPrice ? `(${itemPrice}-${itemPrice})` : '';\r\n break;\r\n default:\r\n mappedPrice = '';\r\n break;\r\n }\r\n return {\r\n value: `${entity.Name}.${entity.ValueId}`,\r\n label: `${translate(`enums:RecoveryDrmAdjudicationLosingReason:${entity.Value}`, { defaultValue: entity.Value })} ${mappedPrice}`,\r\n valueId: entity.ValueId,\r\n };\r\n });\r\n};\r\n\r\n\r\nexport const useLosingReasons = (): { loading: boolean; options: SelectInputOption[] } => {\r\n const { displayMessage } = useContext(MessageModalContext);\r\n const {\r\n loading, data, error,\r\n } = useQuery(getDrmAdjudicationReasonItemPrices, { displayName: GqlQueryName.getRecoveryDrmAdjudicationLosingPartyItemPrices });\r\n const { loading: loadingEnum, selectedEnum: recoveryDrmAdjudicationLosingPartyEnum } = useEnum('RecoveryDrmAdjudicationLosingParty');\r\n\r\n try {\r\n return useMemo(() => {\r\n if ((!loading && !data) || (!loadingEnum && !recoveryDrmAdjudicationLosingPartyEnum)) {\r\n displayMessage([`${translate('common:load-options-fail')}: ${error?.message}`]);\r\n }\r\n return {\r\n loading: loading && loadingEnum,\r\n options: (data && recoveryDrmAdjudicationLosingPartyEnum)\r\n ? buildLosingReasons(data, recoveryDrmAdjudicationLosingPartyEnum) : [],\r\n };\r\n }, [data, loading, error, loadingEnum, recoveryDrmAdjudicationLosingPartyEnum, displayMessage]);\r\n } catch (e) {\r\n displayMessage(e.stack);\r\n return { loading: false, options: [] };\r\n }\r\n};\r\n","import React, { createContext } from 'react';\r\nimport { translate } from '@gears/translations';\r\nimport { AnyType } from 'src/types';\r\n\r\nconst { Provider, Consumer } = createContext('');\r\n\r\nexport interface ContextTranslateProviderProps {\r\n workspace: string;\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const ContextTranslateProvider = ({ workspace, children }: ContextTranslateProviderProps) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nexport interface ContextTranslateProps {\r\n k: string;\r\n options?: AnyType;\r\n}\r\n\r\nexport const ContextTranslate = ({ k, options }: ContextTranslateProps) => (\r\n \r\n {(value) => (value ? translate(`${value}:${k}`, options) : translate(k, options))}\r\n \r\n);\r\n","export const REGULAR_ROW_TYPE = Symbol('regular_row_type');\r\nexport const ITALIC_ROW_TYPE = Symbol('italic_row_type');\r\nexport const MISSING_ROW_TYPE = Symbol('missing_row_type');\r\nexport const LOADING_ROW_TYPE = Symbol('loading_row_type');\r\nexport const NO_DATA_ROW_TYPE = Symbol('no_data_row_type');\r\nexport const EXPANDABLE_ROW_TYPE = Symbol('expandable_row_type');\r\n\r\n\r\n// Exploration Histories\r\nexport const EXPANDABLE_CLAIM_ROW_TYPE = Symbol('expandable_claim_row_type');\r\nexport const REGULAR_CLAIM_ROW_TYPE = Symbol('regular_claim_row_type');\r\nexport const EXPANDABLE_AR_ROW_TYPE = Symbol('expandable_ar_row_type');\r\nexport const REGULAR_AR_ROW_TYPE = Symbol('regular_ar_row_type');\r\nexport const EXPANDABLE_POLICY_ROW_TYPE = Symbol('expandable_policy_row_type');\r\nexport const REGULAR_POLICY_ROW_TYPE = Symbol('regular_policy_row_type');\r\n","import { getFileFormatter, BackendListFormatter } from '../../../utils/forms/formatters';\r\nimport { isValidFile } from '../../../utils/forms/validations';\r\n\r\nexport const acceptOffer = {\r\n singleSection: {\r\n name: 'acceptOffer',\r\n title: 'accept-offer',\r\n fields: {\r\n workflowId: {\r\n path: 'workflowId',\r\n },\r\n actionType: {\r\n path: 'nextAction.step.action',\r\n },\r\n commentType: {\r\n path: 'comment.commentType',\r\n },\r\n officer: {\r\n path: 'acceptOffer.officer',\r\n target: 'receivingParty.officerIdentity',\r\n label: 'officer-in-charge',\r\n formatter: BackendListFormatter,\r\n },\r\n claimNumber: {\r\n path: 'acceptOffer.referenceCode',\r\n target: 'receivingParty.claim.referenceCode',\r\n label: 'claim-number',\r\n },\r\n attachments: {\r\n path: 'acceptOffer.attachments',\r\n target: {\r\n name: 'nextAction.attachments',\r\n item: {\r\n id: 'document.id',\r\n name: 'document.documentName',\r\n },\r\n },\r\n label: 'attachments',\r\n formatter: getFileFormatter(true),\r\n validate: isValidFile,\r\n },\r\n comment: {\r\n path: 'acceptOffer.comment',\r\n target: 'comment.text.content',\r\n label: 'comment',\r\n },\r\n },\r\n },\r\n};\r\n","import { getFileFormatter } from '../../../utils/forms/formatters';\r\nimport { isValidFile } from '../../../utils/forms/validations';\r\n\r\nexport const acceptCounterOffer = {\r\n singleSection: {\r\n name: 'acceptCounterOffer',\r\n title: 'accept-counter-offer',\r\n fields: {\r\n workflowId: {\r\n path: 'workflowId',\r\n },\r\n actionType: {\r\n path: 'nextAction.step.action',\r\n },\r\n commentType: {\r\n path: 'comment.commentType',\r\n },\r\n attachments: {\r\n path: 'acceptCounterOffer.attachments',\r\n target: {\r\n name: 'nextAction.attachments',\r\n item: {\r\n id: 'document.id',\r\n name: 'document.documentName',\r\n },\r\n },\r\n label: 'attachments',\r\n formatter: getFileFormatter(true),\r\n validate: isValidFile,\r\n },\r\n comment: {\r\n path: 'acceptCounterOffer.comment',\r\n target: 'comment.text.content',\r\n label: 'comment',\r\n },\r\n },\r\n },\r\n};\r\n","import { getFileFormatter } from '../../../utils/forms/formatters';\r\nimport { isValidFile } from '../../../utils/forms/validations';\r\n\r\nexport const acceptFinalOffer = {\r\n singleSection: {\r\n name: 'acceptFinalOffer',\r\n title: 'accept-title-offer',\r\n fields: {\r\n workflowId: {\r\n path: 'workflowId',\r\n },\r\n actionType: {\r\n path: 'nextAction.step.action',\r\n },\r\n commentType: {\r\n path: 'comment.commentType',\r\n },\r\n attachments: {\r\n path: 'acceptFinalOffer.attachments',\r\n target: {\r\n name: 'nextAction.attachments',\r\n item: {\r\n id: 'document.id',\r\n name: 'document.documentName',\r\n },\r\n },\r\n label: 'attachments',\r\n formatter: getFileFormatter(true),\r\n validate: isValidFile,\r\n },\r\n comment: {\r\n path: 'acceptFinalOffer.comment',\r\n target: 'comment.text.content',\r\n label: 'comment',\r\n },\r\n },\r\n },\r\n};\r\n","import {\r\n EnumFormatter, BackendListFormatter, FileWithTypeFormatter,\r\n} from 'src/utils/forms/formatters';\r\nimport { isValidFileWithType } from 'src/utils/forms';\r\n\r\nexport const counterOffer = {\r\n bolaScenarioStep: {\r\n name: 'bolaCase',\r\n title: 'bola-scenario',\r\n fields: {\r\n workflowId: {\r\n path: 'workflowId',\r\n },\r\n actionType: {\r\n path: 'bolaCase.actionType',\r\n target: 'nextAction.step.action',\r\n },\r\n bolaScenario: {\r\n path: 'bolaCase.bolaScenario',\r\n target: 'nextAction.bolaScenario.id',\r\n label: 'bola-scenario',\r\n isRequired: true,\r\n formatter: EnumFormatter,\r\n },\r\n officer: {\r\n path: 'bolaCase.officerIdentity',\r\n target: 'receivingParty.officerIdentity',\r\n label: 'officer-in-charge',\r\n isRequired: true,\r\n formatter: BackendListFormatter,\r\n },\r\n claimNumber: {\r\n path: 'bolaCase.referenceCode',\r\n target: 'receivingParty.claim.referenceCode',\r\n isRequired: true,\r\n label: 'claim-number',\r\n },\r\n comment: {\r\n path: 'bolaCase.comment',\r\n target: 'comment.text.content',\r\n label: 'rp-version',\r\n },\r\n commentType: {\r\n path: 'comment.commentType',\r\n label: '',\r\n },\r\n },\r\n },\r\n attachmentsStep: {\r\n name: 'attachmentStep',\r\n title: 'attachments',\r\n fields: {\r\n attachments: {\r\n path: 'attachmentStep.attachments',\r\n label: 'new-attachments',\r\n target: {\r\n name: 'nextAction.attachments',\r\n item: {\r\n document: 'document',\r\n category: 'category',\r\n },\r\n },\r\n formatter: FileWithTypeFormatter,\r\n validate: isValidFileWithType,\r\n },\r\n },\r\n },\r\n};\r\n","import {\r\n EnumFormatter, FileWithTypeFormatter,\r\n} from 'src/utils/forms/formatters';\r\nimport { isValidFileWithType } from 'src/utils/forms';\r\n\r\nexport const drmOffer = {\r\n termsConditionsStep: {\r\n name: 'termsConditionsStep',\r\n title: 'terms-agreement',\r\n fields: {},\r\n },\r\n approveStep: {\r\n name: 'approveStep',\r\n title: '',\r\n fields: {\r\n comment: {\r\n path: 'bolaCase.comment',\r\n target: 'comment.text.content',\r\n label: 'comment',\r\n },\r\n commentType: {\r\n path: 'comment.commentType',\r\n },\r\n },\r\n },\r\n cancelStep: {\r\n name: 'cancelStep',\r\n title: '',\r\n fields: {\r\n comment: {\r\n path: 'bolaCase.comment',\r\n target: 'comment.text.content',\r\n label: 'comment',\r\n },\r\n commentType: {\r\n path: 'comment.commentType',\r\n },\r\n },\r\n },\r\n bolaScenarioStep: {\r\n name: 'bolaCase',\r\n title: 'bola-scenario',\r\n fields: {\r\n workflowId: {\r\n path: 'workflowId',\r\n },\r\n actionType: {\r\n path: 'bolaCase.actionType',\r\n target: 'nextAction.step.action',\r\n },\r\n bolaScenario: {\r\n path: 'bolaCase.bolaScenario',\r\n target: 'nextAction.bolaScenario.id',\r\n label: 'bola-scenario',\r\n isRequired: true,\r\n formatter: EnumFormatter,\r\n },\r\n comment: {\r\n path: 'bolaCase.comment',\r\n target: 'comment.text.content',\r\n label: 'our-position',\r\n isRequired: true,\r\n },\r\n commentType: {\r\n path: 'comment.commentType',\r\n },\r\n accidentCircumstances: {\r\n path: 'bolaCase.accidentCircumstances',\r\n target: 'accidentCircumstancesForDrmEscalation.text.content',\r\n label: 'our-version',\r\n },\r\n accidentCircumstancesCommentType: {\r\n path: 'accidentCircumstancesForDrmEscalation.commentType',\r\n },\r\n },\r\n },\r\n attachmentsStep: {\r\n name: 'attachmentStep',\r\n title: 'attachments',\r\n fields: {\r\n attachments: {\r\n path: 'attachmentStep.attachments',\r\n label: 'new-attachments',\r\n target: {\r\n name: 'nextAction.attachments',\r\n item: {\r\n document: 'document',\r\n category: 'category',\r\n },\r\n },\r\n formatter: FileWithTypeFormatter,\r\n validate: isValidFileWithType,\r\n },\r\n },\r\n },\r\n};\r\n","export interface Filter {\r\n field: Field;\r\n operation: Operation;\r\n}\r\n\r\nexport interface Field {\r\n /**\r\n * @deprecated For backend search\r\n */\r\n name?: string;\r\n id: ClaimFields | ExplorationHistorySearch | ProviderFields | DocumentFields | RecoveriesFields | TpReportFields;\r\n /**\r\n * Used for filter formatting\r\n * Default value: column's i18NId\r\n */\r\n i18NId?: string;\r\n /**\r\n * Used for filter formatting\r\n * Default value: filter's search operation\r\n */\r\n formatType?: SearchOperationFormat;\r\n}\r\n\r\nexport interface Operation {\r\n type: SearchOperationType;\r\n name: string;\r\n parameters: Parameter[];\r\n}\r\n\r\nexport interface Parameter {\r\n name: string;\r\n type: ParameterType;\r\n value: string;\r\n}\r\n\r\n// Think twice before adding a prop since it is used in config/widgetters\r\nexport interface FilterProps {\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport enum ParameterType {\r\n IntegerParameter = 'ParameterType.IntegerParameter',\r\n Decimal = 'ParameterType.DecimalParameter',\r\n String = 'ParameterType.StringParameter',\r\n NumberRange = 'ParameterType.NumberRangeParameter',\r\n Enum = 'ParameterType.EnumParameter',\r\n DateTimeUtc = 'ParameterType.DateTimeUtcParameter',\r\n DateTimeOffset = 'ParameterType.DateTimeOffsetParameter',\r\n Boolean = 'ParameterType.BooleanParameter'\r\n}\r\n\r\nexport enum SearchOperationType {\r\n Equal = 'SearchOperationType.Equal',\r\n Between = 'SearchOperationType.Between',\r\n Match = 'SearchOperationType.Match',\r\n EnumIdEqual = 'SearchOperationType.EnumIdEqual',\r\n NotEqual = 'SearchOperationType.NotEqual',\r\n}\r\n\r\n/**\r\n * This are dummy search operations used for formatting only\r\n */\r\nexport enum SearchOperationFormatSpecificType {\r\n ConditionalBooleanEquality = 'SearchOperationType.ConditionalBooleanEquality',\r\n}\r\n\r\nexport type SearchOperationFormat = SearchOperationType | SearchOperationFormatSpecificType\r\n\r\nexport enum ExplorationHistorySearch {\r\n HistoryByType = 'ExplorationHistorySearch.HistoryByType',\r\n HistoryByPolicy = 'ExplorationHistorySearch.HistoryByPolicy',\r\n HistoryByVrn = 'ExplorationHistorySearch.HistoryByVrn',\r\n HistoryByNric = 'ExplorationHistorySearch.HistoryByNric',\r\n HistoryByDate = 'ExplorationHistorySearch.HistoryByDate',\r\n HistoryByInsurer = 'ExplorationHistorySearch.HistoryByInsurer',\r\n HistoryByReference = 'ExplorationHistorySearch.HistoryByReference',\r\n}\r\n\r\nexport enum RecoveriesFields {\r\n ReferenceCode = 'RecoveriesFields.ReferenceCode',\r\n Deadline = 'RecoveriesFields.Deadline',\r\n AccidentDate = 'RecoveriesFields.AccidentDate',\r\n Status = 'RecoveriesFields.Status',\r\n Action = 'RecoveriesFields.Action',\r\n CaseType = 'RecoveriesFields.CaseType',\r\n OfficerInCharge = 'RecoveriesFields.OfficerInCharge',\r\n OwnSide = 'RecoveriesFields.OwnSide',\r\n OwnClaimNumber = 'RecoveriesFields.OwnClaimNumber',\r\n OwnVehicleNumber = 'RecoveriesFields.OwnVehicleNumber',\r\n OtherPartyVehicleNumber = 'RecoveriesFields.OtherPartyVehicleNumber',\r\n OwnInsurer = 'RecoveriesFields.OwnInsurer',\r\n OtherPartyInsurer = 'RecoveriesFields.OtherPartyInsurer',\r\n DaysInDrm = 'RecoveriesFields.DaysInDrm',\r\n InitiationDate = 'RecoveriesFields.InitiationDate',\r\n OwnLiability = 'RecoveriesFields.OwnLiability',\r\n OtherLiability = 'RecoveriesFields.OtherLiability',\r\n UnwarrantedDRM = 'RecoveriesFields.UnwarrantedDrm'\r\n}\r\n\r\nexport enum ClaimFields {\r\n ReferenceCode = 'ClaimFields.ReferenceCode',\r\n OwnInsurer = 'ClaimFields.OwnInsurer',\r\n ProviderId = 'ClaimFields.ProviderId',\r\n ARCName = 'ClaimFields.ARCName',\r\n AccidentDate = 'ClaimFields.AccidentDate',\r\n PolicyNo = 'ClaimFields.PolicyNo',\r\n OwnerName = 'ClaimFields.OwnerName',\r\n OwnerId = 'ClaimFields.OwnerId',\r\n VehicleNo = 'ClaimFields.VehicleNo',\r\n TypeOfAccident = 'ClaimFields.TypeOfAccident',\r\n DriverName = 'ClaimFields.DriverName',\r\n DriverId = 'ClaimFields.DriverId',\r\n Status = 'ClaimFields.Status',\r\n LateReport = 'ClaimFields.LateReport',\r\n MatchedReports = 'ClaimFields.MatchedReports',\r\n Type = 'ClaimFields.Type',\r\n SubmissionDate = 'ClaimFields.SubmissionDate',\r\n FirstSubmissionDate = 'ClaimFields.FirstSubmissionDate',\r\n VersionsCount = 'ClaimFields.VersionsCount',\r\n}\r\n\r\nexport enum DocumentFields {\r\n Name = 'DocumentFields.Name',\r\n Category = 'DocumentFields.Category',\r\n Description = 'DocumentFields.Description',\r\n}\r\n\r\nexport enum ProviderFields {\r\n ARCName = 'ProviderFields.ARCName',\r\n PhoneNumber = 'ProviderFields.PhoneNumber',\r\n Address = 'ProviderFields.Address',\r\n Insurer = 'ProviderFields.Insurer',\r\n}\r\n\r\nexport enum TpReportFields {\r\n ReferenceCode = 'TpReportFields.ReferenceCode',\r\n Status = 'TpReportFields.Status',\r\n FpVehicleNumber = 'TpReportFields.FpVehicleNumber',\r\n TpVehicleNumber = 'TpReportFields.TpVehicleNumber',\r\n CreateDate = 'TpReportFields.CreateDate',\r\n}\r\n\r\nexport type SearchTypes = 'ClaimFields' | 'ProviderFields' | 'DocumentFields' | 'RecoveriesFields' | 'TpReportFields'\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n OperationVariables, DocumentNode,\r\n} from '@apollo/client';\r\n\r\nimport {\r\n MutationHookOptions, useQuery as useQueryBase,\r\n useMutation as useMutationBase, QueryHookOptions,\r\n} from '@apollo/react-hooks';\r\n\r\nexport const GqlMutationApi = {\r\n submitAccidentReport: 'SubmitAccidentReport',\r\n insertComment: 'InsertComment',\r\n updateClaimStatus: 'UpdateClaimStatus',\r\n executeWorkflowStep: 'ExecuteWorkflowStep',\r\n assignOfficer: 'AssignRecoveryOfficer',\r\n uploadWorkflowDocument: 'UploadWorkflowDocument',\r\n sendTpReport: 'SendTpReportRequest',\r\n recoveryAccidentReports: 'RecoveryAccidentReports',\r\n};\r\n\r\nexport const GqlQueryName = {\r\n textInformation: 'TextInformation',\r\n titleContent: 'TitleContent',\r\n fetchRecoveryInitData: 'FetchRecoveryInitData',\r\n accidentReportReferenceCode: 'AccidentReportReferenceCode',\r\n historyExploration: 'HistoryExploration',\r\n explorationNric: 'ExplorationNric',\r\n folderDetail: 'FolderDetails',\r\n accidentLocation: 'AccidentLocation',\r\n recoveryAccidentReports: 'RecoveryAccidentReports',\r\n recoveryDetails: 'RecoveryDetails',\r\n enums: 'Enums',\r\n backendList: 'backendList',\r\n tableFilter: 'TableFilter',\r\n keyValueCard: 'KeyValueCard',\r\n locationCard: 'LocationCard',\r\n commentsList: 'CommentsList',\r\n keyValueList: 'KeyValueList',\r\n searchResultKeyValuesCard: 'SearchResultKeyValuesCard',\r\n getAccidentReport: 'GetAccidentReport',\r\n getSubmittedAccidentReport: 'GetSubmittedAccidentReport',\r\n getBolaCases: 'GetBolaCases',\r\n accidentReportAttachments: 'AccidentReportAttachments',\r\n getRecoveryDrmAdjudicationLosingPartyItemPrices: 'GetRecoveryDrmAdjudicationLosingPartyItemPrices',\r\n getBillableItem: 'GetBillableItem',\r\n};\r\n\r\n// TODO remove this\r\nexport const useQuery = (\r\n query: DocumentNode,\r\n options: QueryHookOptions = {},\r\n) => useQueryBase(query, options);\r\n\r\n// TODO remove this\r\nexport const useMutation = (\r\n mutation: DocumentNode,\r\n options?: MutationHookOptions,\r\n) => useMutationBase(mutation, options);\r\n","export type { RouteProps } from '@shift/telemetry';\r\n\r\nexport { Route } from '@shift/telemetry';\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport React, { useMemo } from 'react';\r\nimport { Field } from 'react-final-form';\r\nimport classNames from 'classnames';\r\nimport { DeepPartial, InputForm } from '@shift/design-system';\r\nimport { ContextTranslate as CT } from 'src/utils/translation';\r\nimport { isRequired } from 'src/utils/forms';\r\nimport deepEqual from 'deep-equal';\r\nimport { ChangeTracker } from './change-tracker';\r\nimport { SingleFieldInformation } from '../../types/formTypes';\r\n\r\nconst convertComponentToRender = (Component: any, render: any, children: any) => {\r\n if (Component) {\r\n return (renderProps: any) => {\r\n const { input, ...others } = renderProps;\r\n return (\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n {children}\r\n );\r\n };\r\n }\r\n return render || children;\r\n};\r\n\r\nexport type FieldInfo = SingleFieldInformation\r\n\r\nexport type FormFieldProps = {\r\n component?: (props: T) => JSX.Element;\r\n fieldInfo: FieldInfo;\r\n displayLabel?: boolean;\r\n displayErrorText?: boolean;\r\n className?: string;\r\n children?: React.ReactNode;\r\n render?: any;\r\n label?: string;\r\n hint?: string;\r\n tooltip?: string;\r\n inputPosition?: 'beside' | 'stack';\r\n defaultValue?: any;\r\n}\r\n & DeepPartial\r\n\r\n\r\nexport const FormField = ({\r\n component,\r\n fieldInfo,\r\n displayLabel = true,\r\n displayErrorText = true,\r\n children,\r\n render,\r\n label,\r\n hint,\r\n tooltip,\r\n inputPosition = 'stack',\r\n ...otherProps\r\n}: FormFieldProps) => {\r\n const newRender = convertComponentToRender(component, render, children);\r\n const validate = useMemo(() => {\r\n const requiredFunc = fieldInfo?.requiredFunction ?? isRequired;\r\n return (value: any, formValues: any) => (fieldInfo?.isRequired && requiredFunc(value, formValues))\r\n || (fieldInfo.validate && fieldInfo.validate(value, formValues));\r\n }, [fieldInfo]);\r\n\r\n return (\r\n newRender && (\r\n <>\r\n \r\n \r\n \r\n )\r\n : undefined\r\n }\r\n error={\r\n renderProps.meta.visited\r\n && !renderProps.meta.active\r\n && (displayErrorText\r\n ? renderProps.meta.error\r\n : !!renderProps.meta.error)\r\n }\r\n >\r\n {newRender(renderProps)}\r\n \r\n \r\n \r\n )}\r\n validate={validate}\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n {...otherProps}\r\n />\r\n );\r\n};\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable react/jsx-props-no-spreading */\r\nimport React, {\r\n useState, useEffect, useCallback, useContext,\r\n} from 'react';\r\nimport {\r\n Grid, GridItem, ThemeContext, useKeyboardNavigation,\r\n} from '@shift/design-system';\r\nimport { PlusSvg } from '@shift/icons';\r\nimport { FieldArray } from 'react-final-form-arrays';\r\nimport { AnyType, ArrayFieldInformation, SingleFieldInformation } from 'src/types';\r\nimport {\r\n formTranslate,\r\n} from 'src/utils/forms';\r\nimport { SubHeaderForm } from 'src/components/SubHeader/SubHeaderForm';\r\nimport { SecondaryIconButton } from 'src/components/button/SecondaryTextButton';\r\n\r\nexport type ArrayItemProps = {\r\n setItemPath: (item: T) => T;\r\n itemIndex: number;\r\n}\r\n\r\nexport interface ArrayFieldWrapperProps {\r\n itemTitle?: string;\r\n Item: React.ComponentType;\r\n emptyElement?: (() => AnyType) | AnyType;\r\n addItemLabel?: string;\r\n initialItemsCount?: number;\r\n minCount?: number;\r\n enableAdd?: boolean;\r\n disabled?: boolean;\r\n onChange?: (value: unknown) => void;\r\n}\r\n\r\ninterface ArrayFieldValues {\r\n push: (value: any) => void;\r\n remove: (index: number) => any;\r\n map: (iterator: (name: string, index: number) => R) => R[];\r\n pop: () => any;\r\n length?: number;\r\n}\r\ninterface InternalArrayFieldProps extends ArrayFieldWrapperProps {\r\n fields: ArrayFieldValues;\r\n}\r\n\r\nexport interface ExpandableFieldProps extends ArrayFieldWrapperProps {\r\n fieldInfo: ArrayFieldInformation;\r\n}\r\n\r\nexport const MaxAutoCreatedItems = 5;\r\n\r\ninterface SubHeader {\r\n name: string;\r\n text: string;\r\n withIcon: boolean;\r\n onClose: () => void;\r\n children: JSX.Element;\r\n}\r\n\r\nconst SubHeader = ({\r\n name, withIcon, onClose, text, children,\r\n}: SubHeader) => {\r\n const { colors } = useContext(ThemeContext);\r\n\r\n const keyboardListener = useKeyboardNavigation({\r\n onEnter: onClose,\r\n });\r\n\r\n return (\r\n

\r\n \r\n ) : (\r\n
\r\n )}\r\n text={text}\r\n />\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nexport const ArrayFieldWrapper = ({\r\n itemTitle = '',\r\n Item,\r\n emptyElement = {},\r\n addItemLabel = 'Add',\r\n initialItemsCount = 0,\r\n minCount = 0,\r\n enableAdd = true,\r\n disabled = false,\r\n fields,\r\n}: InternalArrayFieldProps) => {\r\n const [count, setCount] = useState(0);\r\n const [scroll, setScroll] = useState(0);\r\n const getEmptyElement = useCallback(() => (typeof emptyElement === 'function' ? emptyElement() : emptyElement), [emptyElement]);\r\n useEffect(() => {\r\n const newCount = Math.min(initialItemsCount, MaxAutoCreatedItems);\r\n if (newCount) {\r\n if (count < newCount) {\r\n setCount(newCount);\r\n if (!fields.length || fields.length < newCount) {\r\n const length = newCount - (!fields.length ? 0 : fields.length);\r\n for (let i = 0; i < length; i += 1) {\r\n // TODO: Remove the setTimeout as soon as the issue https://github.com/final-form/react-final-form-arrays/issues/123\r\n // will be fixed\r\n setTimeout(() => fields.push(getEmptyElement()), 0);\r\n }\r\n }\r\n }\r\n }\r\n if (!enableAdd && (!newCount || (fields.length && fields.length > newCount))) {\r\n setCount(newCount);\r\n const length = (!fields.length ? 0 : fields.length) - newCount;\r\n for (let i = 0; i < length; i += 1) {\r\n fields.pop();\r\n }\r\n }\r\n }, [count, fields, getEmptyElement, enableAdd, initialItemsCount]);\r\n\r\n useEffect(() => {\r\n if (scroll) {\r\n window.scrollTo(0, scroll);\r\n }\r\n setScroll(0);\r\n }, [scroll]);\r\n\r\n return (\r\n
\r\n {fields.map((fieldName: string, index: number) => (\r\n fields.remove(index)}\r\n >\r\n ({ ...item, path: `${fieldName}.${(item).path}` })\r\n }\r\n itemIndex={index}\r\n />\r\n \r\n ))}\r\n {\r\n enableAdd && (\r\n \r\n \r\n }\r\n onClick={() => {\r\n setScroll(window.scrollY);\r\n fields.push(getEmptyElement());\r\n }}\r\n >\r\n {formTranslate(addItemLabel)}\r\n \r\n \r\n \r\n )\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport const ExpandableField = (props: ExpandableFieldProps) => {\r\n const { fieldInfo } = props;\r\n return (\r\n \r\n {({ fields }) => (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import { withCustomVariant, TextButton, IconButton } from '@shift/design-system';\r\n\r\n\r\nexport const TernaryTextButton = withCustomVariant(TextButton, 'button', 'ternary');\r\nexport const TernaryIconButton = withCustomVariant(IconButton, 'button', 'ternary');\r\n","/* eslint-disable react/jsx-props-no-spreading */\r\nimport React, { useMemo } from 'react';\r\nimport {\r\n SelectInput, SelectInputProps, SelectInputOption, StyledText, Grid, GridItem, StyledLink, withCustomStyles,\r\n} from '@shift/design-system';\r\nimport { useEnumOptions } from 'src/utils/hooks';\r\nimport { GridCenteredCircularLoader } from 'src/components/Loader/GridCenteredCircularLoader';\r\n\r\nexport interface EnumSelectInputProps extends SelectInputProps {\r\n enumName?: string;\r\n exclude?: string[];\r\n hasNumberValue?: boolean;\r\n options: SelectInputOption[];\r\n loading?: boolean;\r\n sort?: boolean;\r\n refetch?: () => void;\r\n}\r\n\r\nconst label = (value: SelectInputOption, options: SelectInputOption[]) => options.filter((e) => e.value === value.value)[0];\r\n\r\nconst CustomLink = withCustomStyles(StyledLink);\r\n\r\nconst noop = () => { /* noop */ };\r\n\r\nconst Loader = () => ;\r\nconst Error = ({ refetch = noop }: { refetch?: () => void }) => (\r\n \r\n \r\n \r\n Failed to load data.\r\n Try again?\r\n \r\n \r\n \r\n);\r\n\r\nconst makeDisabledOption = (component: React.ReactNode) => ({\r\n label: '',\r\n value: '',\r\n displayOption: component,\r\n isDisabled: true,\r\n} as SelectInputOption);\r\n\r\n// TODO: extract the fetch logic into another component\r\n// especially, the `selectXXXX = enumName ? ... : ...` variables\r\nexport const EnumSelectInput = ({\r\n enumName = '', exclude, hasNumberValue = false, options, value, onChange, error, loading, refetch, ...otherProps\r\n}: EnumSelectInputProps) => {\r\n const {\r\n options: enumNameOptions, loading: enumNameLoading, error: enumNameError, refetch: enumNameRefetch,\r\n } = useEnumOptions(enumName, hasNumberValue, false, { exclude });\r\n\r\n const selectOptions = enumName ? enumNameOptions : options;\r\n const selectLoading = enumName ? enumNameLoading : loading;\r\n const selectError = enumName ? enumNameError : error;\r\n const selectRefetch = enumName ? enumNameRefetch : refetch;\r\n\r\n const labelledValue = useMemo(() => {\r\n if (value && selectOptions.length) {\r\n let update = false;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let newValue: any = value;\r\n if (Array.isArray(value)) {\r\n newValue = (Array.isArray(value) ? value : [value]).map((v) => {\r\n update = !v.label;\r\n return update ? label(v, selectOptions) : v;\r\n });\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n update = !(value as any).label;\r\n newValue = update ? label(value, selectOptions) : value;\r\n }\r\n if (update) {\r\n if (onChange) {\r\n onChange(newValue);\r\n }\r\n }\r\n return newValue;\r\n }\r\n return value;\r\n }, [value, selectOptions, onChange]);\r\n\r\n const loadingOption = makeDisabledOption();\r\n const errorOption = makeDisabledOption();\r\n\r\n const onChangeCb = onChange ? (opts: SelectInputOption[]) => {\r\n // FIX: it seems `onChange` can have as a parameter either a `SelectInputOption` or an array of `SelectInputOption`\r\n if (Array.isArray(opts)) {\r\n onChange(opts.filter((opt) => opt !== loadingOption && opt !== errorOption));\r\n return;\r\n }\r\n if (opts === loadingOption || opts === errorOption) {\r\n return;\r\n }\r\n onChange(opts);\r\n } : undefined;\r\n\r\n // eslint-disable-next-line no-nested-ternary\r\n const opts = selectLoading ? [loadingOption] : selectError ? [errorOption] : selectOptions;\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import { DefaultSortsConfig } from './types';\r\nimport { RecoveriesFields, ClaimFields, TpReportFields } from './filters';\r\nimport { OrderType } from './sort';\r\n\r\nexport const defaultSortConfig: DefaultSortsConfig = {\r\n AccidentReports: {\r\n field: {\r\n id: ClaimFields.SubmissionDate,\r\n i18NId: 'accident-reports:claim-submissionDate',\r\n },\r\n order: { name: '', order: OrderType.Desc },\r\n },\r\n Recoveries: {\r\n field: {\r\n id: RecoveriesFields.Deadline,\r\n i18NId: 'recoveries:recovery-workflowStep-deadline',\r\n },\r\n order: { name: '', order: OrderType.Asc },\r\n },\r\n GiaRecoveries: {\r\n field: {\r\n id: RecoveriesFields.InitiationDate,\r\n i18NId: 'recoveries:recovery-initiationDate',\r\n },\r\n order: { name: '', order: OrderType.Desc },\r\n },\r\n ThirdPartyReports: {\r\n field: {\r\n id: TpReportFields.CreateDate,\r\n i18NId: 'third-party-report:tpReport-createDate',\r\n },\r\n order: { name: '', order: OrderType.Desc },\r\n },\r\n};\r\n","import React, { useEffect } from 'react';\r\n\r\nimport { Field, Operation, Filter } from './filters';\r\nimport { Order } from './sort';\r\nimport {\r\n FilterState, FilterTablesState, Tables, SortTablesState, SortState,\r\n PageTablesState, PageState, SavedFilterState, SavedFilterTableState,\r\n} from './types';\r\nimport { defaultSortConfig } from './filtersConfig';\r\nimport { useLocalStorage } from '../../utils/hooks/useLocalStorage';\r\n\r\nconst SAVED_FILTER_KEY = 'saved-filters';\r\n\r\n\r\nconst defaultSavedFilterState = (): SavedFilterState => ({\r\n namedFilters: [],\r\n defaultFilter: undefined,\r\n});\r\nconst defaultFilterState: FilterState = [];\r\nconst defaultSortState: SortState = null;\r\nconst defaultPageState: PageState = 1;\r\n\r\nexport const defaultSavedFiltersState: SavedFilterTableState = {\r\n AccidentReports: defaultSavedFilterState(),\r\n Recoveries: defaultSavedFilterState(),\r\n GiaRecoveries: defaultSavedFilterState(),\r\n ExplorationHistories: defaultSavedFilterState(),\r\n Arcs: defaultSavedFilterState(),\r\n Folders: defaultSavedFilterState(),\r\n ThirdPartyReports: defaultSavedFilterState(),\r\n};\r\nconst defaultFiltersState: FilterTablesState = {\r\n AccidentReports: defaultFilterState,\r\n Recoveries: defaultFilterState,\r\n GiaRecoveries: defaultFilterState,\r\n ExplorationHistories: defaultFilterState,\r\n Arcs: defaultFilterState,\r\n Folders: defaultFilterState,\r\n ThirdPartyReports: defaultFilterState,\r\n};\r\n\r\nconst defaultSortsState: SortTablesState = {\r\n AccidentReports: defaultSortState,\r\n Recoveries: defaultSortState,\r\n GiaRecoveries: defaultSortState,\r\n ExplorationHistories: defaultSortState,\r\n Arcs: defaultSortState,\r\n Folders: defaultSortState,\r\n ThirdPartyReports: defaultSortState,\r\n ...defaultSortConfig,\r\n};\r\n\r\nconst defaultPagesState: PageTablesState = {\r\n AccidentReports: defaultPageState,\r\n Recoveries: defaultPageState,\r\n GiaRecoveries: defaultPageState,\r\n ExplorationHistories: defaultPageState,\r\n Arcs: defaultPageState,\r\n Folders: defaultPageState,\r\n ThirdPartyReports: defaultPageState,\r\n};\r\n\r\ntype StateCallback = [K, (k: K) => void]\r\n\r\ntype FiltersContextState = StateCallback | null;\r\ntype SortsContextState = StateCallback | null;\r\ntype PagessContextState = StateCallback | null;\r\n\r\n\r\nconst filtersContext = React.createContext(null);\r\nconst sortsContext = React.createContext(null);\r\nconst pagesContext = React.createContext(null);\r\n\r\nconst tableContext = React.createContext(null);\r\n\r\nexport const FilterProvider = ({ children }: { children: React.ReactNode }) => {\r\n const storage = useLocalStorage();\r\n\r\n const [filters, setFilters] = React.useState(defaultFiltersState);\r\n const [sorts, setSorts] = React.useState(defaultSortsState);\r\n const pages = React.useState(defaultPagesState);\r\n useEffect(() => {\r\n const savedFilter = storage.getItem(SAVED_FILTER_KEY);\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n const savedFilters = getDefaultSavedFilters(savedFilter);\r\n // Load saved filters only once\r\n if (savedFilters?.filterTablesState && filters === defaultFiltersState) {\r\n setFilters(savedFilters.filterTablesState);\r\n }\r\n // Load saved sorting filters only once\r\n if (savedFilters?.sortTablesState && sorts === defaultSortsState) {\r\n setSorts(savedFilters.sortTablesState);\r\n }\r\n }, [storage, setFilters, filters, setSorts, sorts]);\r\n\r\n return (\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const FilterTableProvider = ({ tableType, children }: { tableType: Tables; children: React.ReactNode }) => (\r\n {children}\r\n);\r\n\r\n/**\r\n * Hook that provides the current sort for a given field and\r\n * a setter function for the sort on that field in a table\r\n * To be used inside a filter component\r\n * @param field Field on which we will be sorting\r\n */\r\nexport const useFieldSort = (field: Field): [Order | null, (o: Order | null) => void] => {\r\n const ctx = React.useContext(sortsContext);\r\n const tctx = React.useContext(tableContext);\r\n\r\n if (!ctx) {\r\n throw new Error('Missing filters context');\r\n }\r\n\r\n if (!tctx) {\r\n throw new Error('Missing table context for filters');\r\n }\r\n\r\n const [state, setState] = ctx;\r\n const sort = state[tctx];\r\n const cb = React.useCallback((o: Order | null) => setState({\r\n ...state,\r\n [tctx]: o ? { order: o, field } : defaultSortsState[tctx],\r\n }), [state, setState, tctx, field]);\r\n\r\n return [\r\n sort && (!sort.field.name || sort.field.name === field.name) && sort.field.id === field.id ? sort.order : null,\r\n cb,\r\n ];\r\n};\r\n\r\n/**\r\n * Hook that provides the current filters for a given field and\r\n * a setter function for the filters on that field\r\n * To be used inside a filter component\r\n * @param field Field on which the filters are to be set\r\n */\r\nexport const useFieldFilter = (field: Field): [Operation | null, (o: Operation | null) => void] => {\r\n const ctx = React.useContext(filtersContext);\r\n const tctx = React.useContext(tableContext);\r\n\r\n if (!ctx) {\r\n throw new Error('Missing filters context');\r\n }\r\n\r\n if (!tctx) {\r\n throw new Error('Missing table context for filters');\r\n }\r\n\r\n const [state, setState] = ctx;\r\n const filters = state[tctx];\r\n const cb = React.useCallback((o: Operation | null) => {\r\n const newFilters = state[tctx].filter((f) => (!f.field.name || f.field.name !== field.name) && f.field.id !== field.id);\r\n setState({\r\n ...state,\r\n [tctx]: o ? [...newFilters, { field, operation: o }] : newFilters,\r\n });\r\n }, [state, setState, tctx, field]);\r\n\r\n return [\r\n filters.find((f) => (!f.field.name || f.field.name === field.name) && f.field.id === field.id)?.operation ?? null,\r\n cb,\r\n ];\r\n};\r\n\r\nexport const useFilters = (): [\r\n FilterState,\r\n (filter: Filter) => void,\r\n () => void,\r\n (filters: Filter[]) => void,\r\n] => {\r\n const ctx = React.useContext(filtersContext);\r\n const tctx = React.useContext(tableContext);\r\n\r\n if (!ctx) {\r\n throw new Error('Missing filters context');\r\n }\r\n\r\n if (!tctx) {\r\n throw new Error('Missing table context for filters');\r\n }\r\n\r\n const [filtersState, setState] = ctx;\r\n const clearField = React.useCallback(\r\n (filter: Filter) => {\r\n setState({\r\n ...filtersState,\r\n [tctx]: filtersState[tctx].filter((f) => f !== filter),\r\n });\r\n },\r\n [filtersState, setState, tctx],\r\n );\r\n const setAllField = React.useCallback(\r\n (filters: Filter[]) => {\r\n setState({\r\n ...filtersState,\r\n [tctx]: filters,\r\n });\r\n },\r\n [filtersState, setState, tctx],\r\n );\r\n const clearAllField = React.useCallback(\r\n () => {\r\n setState({\r\n ...filtersState,\r\n [tctx]: [],\r\n });\r\n },\r\n [filtersState, setState, tctx],\r\n );\r\n\r\n return [\r\n filtersState[tctx],\r\n clearField,\r\n clearAllField,\r\n setAllField,\r\n ];\r\n};\r\n\r\nexport const useSort = (): [\r\n SortState,\r\n () => void,\r\n (sort?: SortState | null | undefined) => void\r\n] => {\r\n const ctx = React.useContext(sortsContext);\r\n const tctx = React.useContext(tableContext);\r\n\r\n if (!ctx) {\r\n throw new Error('Missing sorts context');\r\n }\r\n\r\n if (!tctx) {\r\n throw new Error('Missing table context for filters');\r\n }\r\n\r\n const [state, setState] = ctx;\r\n\r\n const clearSort = React.useCallback(\r\n () => {\r\n setState({\r\n ...state,\r\n [tctx]: defaultSortsState[tctx],\r\n });\r\n }, [state, tctx, setState],\r\n );\r\n const setSort = React.useCallback(\r\n (sort?: SortState) => {\r\n setState({\r\n ...state,\r\n [tctx]: sort,\r\n });\r\n }, [state, tctx, setState],\r\n );\r\n\r\n return [\r\n state[tctx],\r\n clearSort,\r\n setSort,\r\n ];\r\n};\r\n\r\nexport const usePagination = (): [\r\n PageState,\r\n (page: number) => void,\r\n] => {\r\n const ctx = React.useContext(pagesContext);\r\n const tctx = React.useContext(tableContext);\r\n\r\n if (!ctx) {\r\n throw new Error('Missing pages context');\r\n }\r\n\r\n if (!tctx) {\r\n throw new Error('Missing table context for filters');\r\n }\r\n\r\n const [state, setState] = ctx;\r\n\r\n const setPage = React.useCallback(\r\n (page: number) => {\r\n if (page <= 0) {\r\n throw new Error('Page number should be strictly positive');\r\n }\r\n setState({\r\n ...state,\r\n [tctx]: page,\r\n });\r\n }, [state, tctx, setState],\r\n );\r\n\r\n return [\r\n state[tctx],\r\n setPage,\r\n ];\r\n};\r\n\r\n\r\ntype TablesState = {\r\n sortTablesState: SortTablesState;\r\n filterTablesState: FilterTablesState;\r\n}\r\nconst getDefaultSavedFilters = (savedFilter?: SavedFilterTableState): TablesState | undefined => {\r\n if (!savedFilter) {\r\n return undefined;\r\n }\r\n return Object.keys(defaultFiltersState)\r\n .reduce((acc, key) => {\r\n const k = key as Tables;\r\n if (k) {\r\n const tableSavedFilter = savedFilter[k];\r\n acc.filterTablesState[k] = tableSavedFilter?.defaultFilter !== undefined\r\n ? tableSavedFilter?.namedFilters[tableSavedFilter?.defaultFilter].filters\r\n : defaultFiltersState[k];\r\n acc.sortTablesState[k] = tableSavedFilter?.defaultFilter !== undefined\r\n ? tableSavedFilter.namedFilters[tableSavedFilter?.defaultFilter].sort as SortState\r\n : defaultSortsState[k];\r\n }\r\n return acc;\r\n }, {\r\n filterTablesState: {},\r\n sortTablesState: {},\r\n } as TablesState);\r\n};\r\n\r\nexport const useSavedFilterTableState = (): [\r\n // GetAll\r\n () => SavedFilterState,\r\n // setDefault\r\n (index?: number) => void,\r\n // Set\r\n (name: string, item: FilterState, sort?: SortState, makeDefault?: boolean) => void,\r\n // Remove\r\n (index: number) => void,\r\n] => {\r\n const tctx = React.useContext(tableContext);\r\n\r\n if (!tctx) {\r\n throw new Error('Missing table context for filters');\r\n }\r\n const storage = useLocalStorage();\r\n const savedFilters = () => storage.getItem(SAVED_FILTER_KEY) || { ...defaultSavedFiltersState };\r\n return [\r\n () => (savedFilters() ? savedFilters()[tctx] : { namedFilters: [] }),\r\n (index?: number) => {\r\n const currentFilters = savedFilters();\r\n const savedFilter = currentFilters[tctx];\r\n if (savedFilter) {\r\n const state: SavedFilterTableState = {\r\n ...currentFilters,\r\n [tctx]: {\r\n defaultFilter: index,\r\n namedFilters: savedFilter.namedFilters,\r\n },\r\n };\r\n storage.setItem(SAVED_FILTER_KEY, state);\r\n }\r\n },\r\n (name: string, item: FilterState, sort?: SortState, makeDefault?: boolean) => {\r\n const currentFilters = savedFilters();\r\n const { namedFilters, defaultFilter } = { ...currentFilters[tctx] };\r\n const size = namedFilters?.push({\r\n name,\r\n filters: item,\r\n sort,\r\n });\r\n const state: SavedFilterTableState = {\r\n ...currentFilters,\r\n [tctx]: {\r\n defaultFilter: makeDefault ? size - 1 : defaultFilter,\r\n namedFilters,\r\n },\r\n };\r\n storage.setItem(SAVED_FILTER_KEY, state);\r\n },\r\n (index: number) => {\r\n const currentFilters = savedFilters();\r\n const savedFilter = currentFilters[tctx];\r\n if (savedFilter) {\r\n const state: SavedFilterTableState = {\r\n ...currentFilters,\r\n [tctx]: {\r\n defaultFilter: index === savedFilter.defaultFilter ? undefined : savedFilter.defaultFilter,\r\n namedFilters: savedFilter.namedFilters.filter((_, i) => i !== index),\r\n\r\n },\r\n };\r\n storage.setItem(SAVED_FILTER_KEY, state);\r\n }\r\n },\r\n ];\r\n};\r\n","import React from 'react';\r\nimport {\r\n ModalHeader, StyledHeader, ModalContent, GridItem, Grid,\r\n TextButton, Modal, CheckboxInput, withCustomStyles,\r\n withCustomVariant,\r\n} from '@shift/design-system';\r\nimport { translate } from '@gears/translations';\r\nimport { SecondaryTextButton } from '../../components/button/SecondaryTextButton';\r\n\r\nexport interface I18nModalBillableAction {\r\n header?: string;\r\n content?: React.ReactNode;\r\n}\r\nexport interface ModalBillableActionProps {\r\n isVisible: boolean;\r\n i18n?: I18nModalBillableAction;\r\n actionType: string;\r\n onConfirm: (showModalAgain: boolean) => void;\r\n onCancel: () => void;\r\n}\r\nconst CustomModal = withCustomStyles(Modal);\r\nconst CustomCheckboxInput = withCustomVariant(CheckboxInput, 'checkboxes', 'secondary');\r\n\r\nexport const ModalBillableAction = ({\r\n isVisible, onConfirm, onCancel, i18n, actionType,\r\n}: ModalBillableActionProps) => {\r\n const [showModalAgain, setShowModalAgain] = React.useState(false);\r\n return (\r\n {\r\n onConfirm(showModalAgain);\r\n }}\r\n onHide={onCancel}\r\n style={{ width: '400px' }}\r\n >\r\n \r\n \r\n {i18n?.header ?? translate('billable-actions:modal-title')}\r\n \r\n \r\n \r\n \r\n \r\n {i18n?.content ?? actionType === 'person'\r\n ? translate('billable-actions:modal-desc-person') : translate('billable-actions:modal-desc-vehicle')}\r\n \r\n \r\n \r\n {translate('billable-actions:modal-ask-again')}\r\n \r\n \r\n \r\n \r\n \r\n {translate('billable-actions:modal-cancel')}\r\n \r\n \r\n onConfirm(showModalAgain)}>{translate('billable-actions:modal-confirm')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","/* eslint-disable no-unused-expressions */\r\nimport React, { useContext } from 'react';\r\nimport { useApolloClient } from '@apollo/react-hooks';\r\nimport { DocumentNode } from 'graphql';\r\nimport { I18nModalBillableAction, ModalBillableAction } from './ModalBillableAction';\r\nimport { formatGQLErrors } from '../../utils/forms/utils';\r\nimport { MessageModalContext } from '../../MessageModal';\r\nimport { AnyType } from '../../types';\r\nimport { useLocalStorage } from '../../utils/hooks/useLocalStorage';\r\n\r\nexport const BILLABLE_ACTIONS = {\r\n UN_MATCH_AR: 'EXT-022',\r\n NCD_SEARCH: 'NCT-002',\r\n INSURER_ENQUIRY_TAB: 'IET-002',\r\n THIRD_PARTY_REPORTS_TAB: 'TRT-002',\r\n EXPLORATION_SEARCH: 'EXT-001',\r\n EXPLORATION_SEARCH_PERSON: 'EXT-002',\r\n EXPLORATION_SEARCH_VEHICLE: 'EXT-004',\r\n};\r\n\r\nexport type BillableActionProps = {\r\n action: keyof typeof BILLABLE_ACTIONS;\r\n i18nModal?: I18nModalBillableAction;\r\n request?: {\r\n variables?: AnyType;\r\n mutationQuery?: DocumentNode;\r\n onFetchStarted?: () => void;\r\n onFetchCompleted?: () => void;\r\n OnFetchSucceeded?: (billableActionID: number) => void;\r\n cleanCache?: boolean;\r\n };\r\n /*\r\n paidAccess = true => will be billed for the action\r\n paidAccess = false => Already paid, or is the owner of the AR\r\n */\r\n paidAccess: boolean;\r\n children: React.ReactElement<{ onClick: (event?: React.MouseEvent) => void }>;\r\n\r\n};\r\n\r\n\r\nexport const BillableAction = (\r\n {\r\n children,\r\n action,\r\n request = {\r\n mutationQuery: undefined,\r\n variables: {},\r\n cleanCache: false,\r\n onFetchCompleted: undefined,\r\n onFetchStarted: undefined,\r\n OnFetchSucceeded: undefined,\r\n },\r\n paidAccess,\r\n i18nModal,\r\n }: BillableActionProps,\r\n) => {\r\n const storage = useLocalStorage();\r\n const accessIsFree = paidAccess === false;\r\n const skipConfirmationModal = (storage\r\n && storage.getItem(BILLABLE_ACTIONS[action]));\r\n\r\n const client = useApolloClient();\r\n const [displayModal, setDisplayModal] = React.useState(false);\r\n const { onClick } = children.props;\r\n const {\r\n variables, mutationQuery, cleanCache, onFetchCompleted, onFetchStarted, OnFetchSucceeded,\r\n } = request;\r\n const { displayMessage } = useContext(MessageModalContext);\r\n\r\n const executeMutationThenClick = () => {\r\n onFetchStarted && onFetchStarted();\r\n const mutation = mutationQuery\r\n ? () => client.mutate({ mutation: mutationQuery, variables })\r\n : () => Promise.resolve({});\r\n\r\n setDisplayModal(false);\r\n mutation()\r\n .then((response: any) => {\r\n if (cleanCache) {\r\n // we want to clean the cache\r\n // to be sure to have updated billable icons\r\n client.clearStore();\r\n }\r\n OnFetchSucceeded && OnFetchSucceeded(response.data.billExplorationSearch);\r\n // perform the originally action\r\n onClick();\r\n }).catch((error) => {\r\n displayMessage(formatGQLErrors(error.graphQLErrors));\r\n })\r\n .finally(() => onFetchCompleted && onFetchCompleted());\r\n };\r\n\r\n const actionableChildren = React.cloneElement(children, {\r\n onClick: (event?: React.MouseEvent) => {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n if (accessIsFree) {\r\n onClick();\r\n } else if (skipConfirmationModal) {\r\n executeMutationThenClick();\r\n } else {\r\n setDisplayModal(!displayModal);\r\n }\r\n },\r\n });\r\n return (\r\n <>\r\n {actionableChildren}\r\n setDisplayModal(!displayModal)}\r\n onConfirm={(alwaysSkipModal) => {\r\n if (alwaysSkipModal) {\r\n // eslint-disable-next-line no-unused-expressions\r\n storage && storage.setItem(BILLABLE_ACTIONS[action], 'true');\r\n }\r\n executeMutationThenClick();\r\n }}\r\n />\r\n \r\n\r\n );\r\n};\r\n","/* eslint-disable no-bitwise */\r\nimport { Claims } from '../libs/auth/Authenticator';\r\n\r\nexport enum Roles {\r\n Admin = 'GEARS-SHIFT-ADMIN',\r\n Insurer = 'GEARS-Insurer',\r\n InsurerUnderwriter = 'GEARS-Insurer-Underwriter',\r\n InsurerClaimHandler = 'GEARS-Insurer-ClaimHandler',\r\n InsurerRecovery = 'GEARS-Insurer-Recovery',\r\n InsurerRecoveryManager = 'GEARS-Insurer-RecoveryManager',\r\n InsurerSiu = 'GEARS-Insurer-SIU',\r\n Arc = 'GEARS-ARC',\r\n ArcArManager = 'GEARS-ARC-ARManager',\r\n ArcClaimsManager = 'GEARS-ARC-ClaimsManager',\r\n GiaSecretariat = 'GEARS-GIASecretariat',\r\n Lawyer = 'GEARS-Lawyer',\r\n TrafficPoliceCad = 'GEARS-TrafficPoliceCAD',\r\n Intermediaries = 'GEARS-Intermediaries',\r\n MotorInsuranceBureau = 'GEARS-MotorInsuranceBureau',\r\n}\r\n\r\nenum Permissions {\r\n None = 0x0,\r\n Insurer = 0x1,\r\n InsurerUnderwriter = Insurer | 0x2,\r\n InsurerClaimHandler = InsurerUnderwriter | 0x4,\r\n InsurerRecovery = InsurerClaimHandler | 0x10,\r\n InsurerRecoveryManager = InsurerRecovery | 0x20,\r\n InsurerSiu = InsurerClaimHandler | 0x40,\r\n Arc = 0x1000,\r\n ArcArManager = Arc | 0x2000,\r\n ArcClaimsManager = 0x4000,\r\n GiaSecretariat = 0x8000,\r\n Lawyer = 0x10000,\r\n TrafficPoliceCad = 0x20000,\r\n Intermediaries = 0x40000,\r\n MotorInsuranceBureau = 0x80000,\r\n All = 0x100000,\r\n}\r\n\r\ntype PermissionMap = {\r\n [name in Roles]: Permissions;\r\n};\r\n\r\nconst permissionsMap: PermissionMap = {\r\n [Roles.Admin]: Permissions.All,\r\n [Roles.Insurer]: Permissions.Insurer,\r\n [Roles.InsurerUnderwriter]: Permissions.InsurerUnderwriter,\r\n [Roles.InsurerClaimHandler]: Permissions.InsurerClaimHandler,\r\n [Roles.InsurerRecovery]: Permissions.InsurerRecovery,\r\n [Roles.InsurerRecoveryManager]: Permissions.InsurerRecoveryManager,\r\n [Roles.InsurerSiu]: Permissions.InsurerSiu,\r\n [Roles.Arc]: Permissions.Arc,\r\n [Roles.ArcArManager]: Permissions.ArcArManager,\r\n [Roles.ArcClaimsManager]: Permissions.ArcClaimsManager,\r\n [Roles.GiaSecretariat]: Permissions.GiaSecretariat,\r\n [Roles.Lawyer]: Permissions.Lawyer,\r\n [Roles.TrafficPoliceCad]: Permissions.TrafficPoliceCad,\r\n [Roles.Intermediaries]: Permissions.Intermediaries,\r\n [Roles.MotorInsuranceBureau]: Permissions.MotorInsuranceBureau,\r\n};\r\n\r\nexport type TokenPredicate = (user: Claims) => boolean;\r\n\r\nconst hasPermission = (perm: Permissions): TokenPredicate => (user) => {\r\n const permissions = user?.roles?.map((role: Roles) => permissionsMap[role]);\r\n return permissions?.some((permission: Permissions) => permission && (permission & perm) === perm) || permissions?.includes(Permissions.All);\r\n};\r\n\r\nconst hasPermissionAny = (...perms: Permissions[]): TokenPredicate => (user) => perms.findIndex((p) => hasPermission(p)(user)) !== -1;\r\nconst hasPermissionAnyAndNot = (\r\n perms: Permissions[],\r\n notPerms: Permissions[],\r\n): TokenPredicate => (user) => perms.findIndex((p) => hasPermission(p)(user)) !== -1 && notPerms.findIndex((p) => hasPermission(p)(user)) === -1;\r\n\r\nexport const permissions = {\r\n canCreateReport: hasPermission(Permissions.Arc),\r\n canEditDraft: hasPermission(Permissions.Arc),\r\n canCreateAddendum: hasPermission(Permissions.ArcArManager),\r\n canCreateOrUpdateReport: hasPermission(Permissions.Arc),\r\n canListReport: hasPermissionAny(\r\n Permissions.Insurer, Permissions.Arc, Permissions.GiaSecretariat, Permissions.MotorInsuranceBureau,\r\n ),\r\n canReadReport: hasPermissionAny(\r\n Permissions.Insurer, Permissions.Arc, Permissions.GiaSecretariat, Permissions.MotorInsuranceBureau,\r\n ),\r\n canSeeMatchedReports: hasPermissionAny(\r\n Permissions.Insurer, Permissions.GiaSecretariat, Permissions.MotorInsuranceBureau,\r\n Permissions.InsurerUnderwriter, Permissions.InsurerClaimHandler,\r\n ),\r\n canSeeInsurerColumn: hasPermissionAnyAndNot([Permissions.Arc], [Permissions.Insurer]),\r\n canSeeDraftColumn: hasPermissionAnyAndNot([Permissions.Arc], [Permissions.Insurer]),\r\n canUpdateStatus: hasPermission(Permissions.Insurer),\r\n canSeeVersions: hasPermissionAny(\r\n Permissions.Insurer, Permissions.Arc, Permissions.GiaSecretariat, Permissions.MotorInsuranceBureau,\r\n ),\r\n canSeeCompleteId: hasPermissionAny(\r\n Permissions.Insurer, Permissions.GiaSecretariat, Permissions.MotorInsuranceBureau,\r\n ),\r\n canListRecovery: hasPermissionAny(Permissions.InsurerRecovery, Permissions.GiaSecretariat),\r\n canReadRecovery: hasPermissionAny(Permissions.InsurerRecovery, Permissions.GiaSecretariat),\r\n canSeeExploration: hasPermissionAny(\r\n Permissions.InsurerClaimHandler, Permissions.InsurerUnderwriter, Permissions.GiaSecretariat, Permissions.MotorInsuranceBureau,\r\n ),\r\n canSeeNcd: hasPermission(Permissions.Intermediaries),\r\n canSeeThirdPartyReports: hasPermissionAny(Permissions.ArcClaimsManager, Permissions.TrafficPoliceCad, Permissions.Lawyer),\r\n canSeeInsurerEnquiry: hasPermissionAny(Permissions.ArcClaimsManager, Permissions.Lawyer),\r\n canPurchaseReports: hasPermissionAny(\r\n Permissions.InsurerClaimHandler, Permissions.InsurerUnderwriter, Permissions.GiaSecretariat, Permissions.MotorInsuranceBureau,\r\n ),\r\n canPurchaseReportsInExploration: hasPermissionAny(Permissions.InsurerClaimHandler, Permissions.GiaSecretariat, Permissions.MotorInsuranceBureau),\r\n isAdmin: hasPermission(Permissions.All),\r\n canListArc: hasPermissionAny(\r\n Permissions.Insurer, Permissions.GiaSecretariat,\r\n ),\r\n canDownloadDecisionDocument: hasPermission(Permissions.GiaSecretariat),\r\n isNeutralUser: hasPermissionAny(Permissions.GiaSecretariat, Permissions.All),\r\n isGIASecretariat: hasPermission(Permissions.GiaSecretariat),\r\n isArcOnly: hasPermissionAnyAndNot([Permissions.Arc], [Permissions.All, Permissions.Insurer]),\r\n canSeeDashboard: hasPermissionAny(Permissions.All, Permissions.Insurer, Permissions.GiaSecretariat),\r\n};\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { translate } from '@gears/translations';\r\nimport moment, { Moment } from 'moment-timezone';\r\nimport { TimeEntry } from '@shift/design-system';\r\nimport { AnyType, FieldTargets, ArrayFieldTargets } from 'src/types';\r\nimport merge from 'deepmerge';\r\nimport { set } from 'object-path';\r\nimport {\r\n DateFormat, DateOffsetFormat, otherEnum, DefaultTimezone, unknownEnum,\r\n} from 'src/constants';\r\nimport { GraphQLError } from 'graphql';\r\n\r\nexport { translate };\r\n\r\nexport const formTranslate = (text: string) => translate(`accident-report-form:${text}`);\r\n\r\nexport const commonTranslate = (text: string) => translate(`common:${text}`);\r\n\r\nexport const onlyPreventDefault = (e: React.FormEvent) => e.preventDefault();\r\n\r\nexport const mergeDateTime = (date: Moment | string | null, time?: TimeEntry, timezone: string = DefaultTimezone): Moment | undefined => {\r\n if (!date) {\r\n return undefined;\r\n }\r\n\r\n const dateTime = typeof date === 'string' ? moment.tz(date, DateFormat, timezone) : date;\r\n if (time) {\r\n dateTime\r\n .set('hour', time?.hour ?? 0)\r\n .set('minute', time?.minute ?? 0);\r\n }\r\n return dateTime;\r\n};\r\n\r\nexport const formatOffsetDateTime = (\r\n date: Moment | string | null,\r\n time?: TimeEntry,\r\n format: string = DateOffsetFormat,\r\n): string | undefined => mergeDateTime(date, time)?.format(format);\r\n\r\nexport const FormatEnum = (enumName: string, value: string | undefined): string => `${enumName}.${value}`;\r\n\r\nexport const undefinedFunc = () => undefined;\r\n\r\nexport const isNoneEnum = (value: string | number) => value === otherEnum || value === unknownEnum || value === '0' || value === 0;\r\n\r\nexport const isOtherPersonRelation = (value: string | number) => value === 'PersonRelation.Other' || value === 'PersonRelation.18';\r\n\r\n// a small wrapper for set function that returns the object's value\r\nexport const setValue = (object: AnyType, path: string, value: any): AnyType => {\r\n set(object, path, value);\r\n return object;\r\n};\r\n\r\n// This method expects the targets and data objects to have the same set of keys\r\n// it is used by field transforms that define both objects.\r\nexport const setDataOnTarget = (target: string | FieldTargets | ArrayFieldTargets | undefined, data: AnyType): AnyType => {\r\n if (!target) {\r\n throw new Error('target can\\'t be undefined');\r\n }\r\n\r\n if (typeof target === 'string') {\r\n return setValue({}, target as string, data);\r\n }\r\n\r\n const result: AnyType = {};\r\n const arraytargets = target as ArrayFieldTargets;\r\n if (arraytargets?.item) {\r\n set(result, arraytargets.name, data.map((d: any) => {\r\n const item: AnyType = {};\r\n Object.entries(arraytargets.item).forEach(([key, value]) => {\r\n if (d[key] !== undefined) {\r\n set(item, value, d[key]);\r\n }\r\n });\r\n return item;\r\n }));\r\n }\r\n\r\n Object.entries(target).forEach(([key, value]) => {\r\n if (data[key] !== undefined) {\r\n set(result, value, data[key]);\r\n }\r\n });\r\n return result;\r\n};\r\n\r\nexport const combineMerge = (target: any, source: any, options: any) => {\r\n const destination = target.slice();\r\n source.forEach((item: any, index: number) => {\r\n if (destination[index] === undefined) {\r\n destination[index] = options.cloneUnlessOtherwiseSpecified(item, options);\r\n } else if (options.isMergeableObject(item)) {\r\n destination[index] = merge(target[index], item, options);\r\n } else if (target.indexOf(item) === -1) {\r\n destination.push(item);\r\n }\r\n });\r\n return destination;\r\n};\r\n\r\nexport const getYearsFromAccident = (accidentDate?: Date, suffix = '') => (_day?: number, _month?: number, _year?: number, date?: Date) => {\r\n if (!accidentDate || !date) return '';\r\n\r\n const duration = moment.duration(moment(accidentDate).diff(moment(date)));\r\n return `At time of accident: ${duration.years() > 0 ? `${duration.years()} year${duration.years() > 1 ? 's' : ''}` : '<1 year'}${suffix}`;\r\n};\r\n\r\nconst monthNames = [undefined, 'January', 'February', 'March', 'April', 'May', 'June',\r\n 'July', 'August', 'September', 'October', 'November', 'December',\r\n];\r\n// eslint-disable-next-line max-len\r\nexport const formatToReadableDate = (day?: number, month?: number, year?: number, _date?: Date) => `${day ?? 'DD'} ${month ? monthNames[month] : 'MONTH'} ${year ?? 'YYYY'}`;\r\n\r\nexport const formatGQLErrors = (errors: readonly GraphQLError[]): string[] => errors.map((e) => e.message);\r\n","import { Formatter } from '@shift/transform';\r\nimport { AnyType } from 'src/types';\r\n\r\nexport type ListFormatterOptions = {\r\n isDistinct: boolean;\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const InnerListFormatter = (\r\n option?: ListFormatterOptions,\r\n): Formatter => ({\r\n transform: (params) => {\r\n let list = params && params.length > 0 ? params[0] : null;\r\n\r\n if (Array.isArray(list) && option?.isDistinct) {\r\n list = list.filter((t, i) => list && list.indexOf(t) === i);\r\n }\r\n\r\n return {\r\n children: list,\r\n };\r\n },\r\n});\r\n\r\n\r\nexport const ListFormatter = InnerListFormatter();\r\nexport const ListFormatterWithOptions = (option: ListFormatterOptions) => InnerListFormatter(option);\r\n","import { Formatter } from '@shift/transform';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const JoinsValuesFormatter: Formatter = {\r\n transform: (params) => {\r\n const values = params && params.length > 0 && params.flat();\r\n const fullValues = Array.isArray(values) ? values.join(' ') : '';\r\n return {\r\n children: fullValues,\r\n };\r\n },\r\n};\r\n","import { Formatter } from '@shift/transform';\r\nimport { EnumValue } from 'src/types';\r\nimport { useEnum } from 'src/utils/hooks';\r\nimport { translate } from '../../utils/forms';\r\n\r\nconst EnumValuesFormatter: Formatter = {\r\n transform: (enums) => {\r\n const value = enums.flat()?.[0];\r\n const key = value?.Type && value?.Name ? `enums:${value?.Type}.${value?.Name}` : '';\r\n return {\r\n children: translate(key, { defaultValue: value?.Name ?? '' }),\r\n };\r\n },\r\n};\r\n\r\nexport interface CustomHookEnumFomatter extends Formatter{\r\n Transform: any;\r\n}\r\n\r\nconst EnumValuesIdFormatter: CustomHookEnumFomatter = {\r\n transform: (enums) => EnumValuesIdFormatter.Transform(enums),\r\n Transform: (enums: any[]) => {\r\n const [name, value] = enums.flat();\r\n const enumValues = useEnum(name);\r\n const currentValue = enumValues?.selectedEnum?.filter((en) => en.ValueId === value)[0];\r\n const key = currentValue ? `enums:${currentValue?.Name}.${currentValue?.Value}` : '';\r\n return {\r\n children: translate(key, { defaultValue: value?.Name ?? '' }),\r\n };\r\n },\r\n};\r\n\r\nconst BindedNameEnumValueFormatterFactory = (enumName: string): Formatter => ({\r\n transform: (enums) => {\r\n const value = enums.flat()?.[0];\r\n const key = value ? `enums:${enumName}.${value}` : '';\r\n return {\r\n children: translate(key, { defaultValue: value ?? '' }),\r\n };\r\n },\r\n});\r\n\r\nexport const EnumFormatters = {\r\n EnumValuesFormatter,\r\n EnumValuesIdFormatter,\r\n BindedNameEnumValueFormatterFactory,\r\n};\r\n","import { Formatter } from '@shift/transform';\r\nimport { translate } from '../../utils/forms';\r\n\r\nexport const BooleanValueFormatter: Formatter = {\r\n transform: (bool) => {\r\n const value = bool.flat()?.[0];\r\n const key = value ? 'common:yes' : 'common:no';\r\n return {\r\n children: (value === null || value === undefined) ? '' : translate(key),\r\n };\r\n },\r\n};\r\nexport const BooleanValueFallbackNoFormatter: Formatter = {\r\n transform: (bool) => {\r\n const value = bool.flat()?.[0];\r\n const key = value ? 'common:yes' : 'common:no';\r\n return {\r\n children: (value === null || value === undefined) ? translate('common:no') : translate(key),\r\n };\r\n },\r\n};\r\nexport function ConditionalBooleanValueFormatterFactory(\r\n condition: (value: T) => boolean,\r\n): Formatter {\r\n return {\r\n transform: (val) => {\r\n const value = val.flat()?.[0];\r\n const key = condition(value) ? 'common:yes' : 'common:no';\r\n return {\r\n children: (value === null || value === undefined) ? '' : translate(key),\r\n };\r\n },\r\n };\r\n}\r\n","import moment, { unitOfTime } from 'moment-timezone';\r\nimport { Formatter } from '@shift/transform';\r\nimport { parseUtcDate, parseOffsetDate } from 'src/utils';\r\nimport {\r\n DateFormat, DateTimeDisplayFormat, DefaultTZUtcNow, DefaultTZNow,\r\n DateOffsetFormat,\r\n} from 'src/constants';\r\n\r\n\r\nconst isValidDate = (dateStr: string[]): boolean => dateStr && dateStr.length !== 0 && moment(dateStr).isValid();\r\n\r\nconst getPolicyEndDate = (end: moment.Moment | null, policyObjectEndDate: moment.Moment | null): moment.Moment | null => {\r\n if (end && policyObjectEndDate) {\r\n return end.isBefore(policyObjectEndDate) ? end : policyObjectEndDate;\r\n }\r\n\r\n if (end) {\r\n return end;\r\n }\r\n\r\n if (policyObjectEndDate) {\r\n return policyObjectEndDate;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst intervalDateFormat = (format: string, isUtc: boolean): Formatter => ({\r\n transform: (times) => {\r\n const [start, end, policyObjectEndDate] = times;\r\n const parseDate = isUtc ? parseUtcDate : parseOffsetDate;\r\n\r\n const startF = start && start.length !== 0 ? parseDate(start[0]).format(format) : '??';\r\n\r\n const endPolicyDateM = isValidDate(end) ? moment(end, DateOffsetFormat) : null;\r\n const cancellationDateM = isValidDate(policyObjectEndDate) ? moment(policyObjectEndDate, DateOffsetFormat) : null;\r\n\r\n const policyEndDate = getPolicyEndDate(endPolicyDateM, cancellationDateM)?.format(DateOffsetFormat);\r\n const resultEndF = policyEndDate && policyEndDate.length !== 0 ? parseDate(policyEndDate).format(format) : '??';\r\n return {\r\n children: `${startF} - ${resultEndF}`,\r\n };\r\n },\r\n});\r\n\r\n\r\nconst fromDateTimeFormat = (format: string, isUtc: boolean): Formatter => ({\r\n transform: (times) => {\r\n const value = times[0][0];\r\n return {\r\n children: value && (isUtc ? parseUtcDate : parseOffsetDate)(value).format(format),\r\n };\r\n },\r\n});\r\n\r\n// Returns false if difference is negative\r\nconst fromTimeSpanFormat = (unit: unitOfTime.Diff, isUtc: boolean): Formatter => ({\r\n transform: (times) => {\r\n const value = times[0][0];\r\n const date = (isUtc ? parseUtcDate : parseOffsetDate)(value);\r\n const now = isUtc ? DefaultTZUtcNow : DefaultTZNow;\r\n\r\n if (!value || date < now) {\r\n return { children: false };\r\n }\r\n\r\n const diff = date.diff(now, unit);\r\n const stringValue = `${diff !== 0 ? diff : 1} ${unit}`;\r\n return {\r\n children: `${diff !== 0 ? '' : '< '}${stringValue}`,\r\n };\r\n },\r\n});\r\n\r\nconst sinceTimeSpanFormat = (unit: unitOfTime.Diff, isUtc: boolean): Formatter => ({\r\n transform: (times) => {\r\n const value = times[0][0];\r\n const date = (isUtc ? parseUtcDate : parseOffsetDate)(value);\r\n if (!value || date > moment()) {\r\n return { children: false };\r\n }\r\n return {\r\n children: `${moment().diff(date, unit) + 1} ${unit}`,\r\n };\r\n },\r\n});\r\n\r\nexport const DateTimeFormatters = {\r\n UtcDateFormatter: fromDateTimeFormat(DateFormat, true),\r\n OffsetDateFormatter: fromDateTimeFormat(DateFormat, false),\r\n UtcYearFormatter: fromDateTimeFormat('YYYY', true),\r\n OffsetYearFormatter: fromDateTimeFormat('YYYY', false),\r\n UtcDateTimeFormatter: fromDateTimeFormat(DateTimeDisplayFormat, true),\r\n OffsetDateTimeFormatter: fromDateTimeFormat(DateTimeDisplayFormat, false),\r\n UtcDateTimeSuffixFormatter: fromDateTimeFormat(`${DateTimeDisplayFormat} [(SGT)]`, true),\r\n OffsetDateTimeSuffixFormatter: fromDateTimeFormat(`${DateTimeDisplayFormat} [(SGT)]`, false),\r\n DaysLeftFormatter: fromTimeSpanFormat('days', true),\r\n DaysFromFormatter: sinceTimeSpanFormat('days', true),\r\n OffsetDateIntervalFormatter: intervalDateFormat('L', false),\r\n};\r\n","import { Formatter } from '@shift/transform';\r\nimport { concatenateUri } from 'src/utils';\r\nimport { DocumentLinkWidgetterProps } from '../widgets/DocumentLinkWidget';\r\nimport { apiConfig, apiEndPoint } from '..';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const DocumentLinkFormatter: Formatter = {\r\n transform: (params) => {\r\n const [[id], [documentName], [scheme], [userInfo], [host], [port], [path], [query], [fragment]] = params;\r\n const isLink = !!scheme && !!path;\r\n return {\r\n url: isLink ? concatenateUri(scheme, path, userInfo, host, port, query, fragment) : `${apiConfig.documentUri}/${id}`,\r\n endPointUri: apiEndPoint.document,\r\n filename: documentName,\r\n isLink,\r\n };\r\n },\r\n};\r\n","import { Formatter } from '@shift/transform';\r\nimport { FileInfo } from '@shift/design-system';\r\nimport { apiConfig } from '..';\r\n\r\ninterface FreeTextIdentifier {\r\n Name: string;\r\n Type: string;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const ThumbnailFormatter: Formatter = {\r\n transform: (params) => {\r\n const [[id], ftIdentifiers, ftDescriptions, [name], [size]] = params;\r\n const src = `${apiConfig.documentUri}/${id}`;\r\n const thumbnailSrc = `${apiConfig.documentPreviewUri}/${id}`;\r\n\r\n const unavailableTextIdx = ftIdentifiers\r\n .findIndex((ftId: FreeTextIdentifier) => ftId.Type === 'DocumentFreeTextType' && ftId.Name === 'VideoAvailabilityJustification');\r\n\r\n if (unavailableTextIdx >= 0) {\r\n return `Video unavailable (${ftDescriptions[unavailableTextIdx]})`;\r\n }\r\n\r\n return {\r\n id,\r\n src,\r\n thumbnailSrc,\r\n name,\r\n size,\r\n };\r\n },\r\n};\r\n","import { parseUtcDate } from 'src/utils';\r\nimport { Formatter } from '@shift/transform';\r\nimport { DateTimeFileNameFormat } from 'src/constants';\r\nimport { DownloadWidgetterProps } from '../widgets/DownloadWidget';\r\nimport { apiConfig } from '..';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const PDFLinkFormatter: Formatter = {\r\n transform: (params) => {\r\n const values = params && params.flat();\r\n const [id, name, submissionDate, version] = values;\r\n const formattedVersion = parseUtcDate(submissionDate).format(DateTimeFileNameFormat);\r\n return {\r\n url: id && (version != null) ? `${apiConfig.pdfUri}/${id}?version=${version}&type=Full&masked=false` : '',\r\n filename: `${name}_${formattedVersion}.pdf`,\r\n children: 'Download PDF',\r\n };\r\n },\r\n};\r\n","import { Formatter } from '@shift/transform';\r\nimport { LinksWidgetterProps } from '../widgets/LinksWidget';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const IdLinkFormatterFactory = (path: string): Formatter => ({\r\n transform: ([ids, names]) => ({\r\n children: names.map((name, idx) => ({\r\n content: name || null,\r\n link: ids.length > idx && ids[idx] ? `${path}/${ids[idx]}` : null,\r\n })),\r\n }),\r\n});\r\n\r\nexport const GoToDetailPageFormatter = IdLinkFormatterFactory('/accident-reports/details');\r\nexport const GoToRecoveryPageFormatter = IdLinkFormatterFactory('/recoveries/details');\r\nexport const GoToFolderPageFormatter = IdLinkFormatterFactory('/folders/details');\r\n","/* eslint-disable no-shadow */\r\nimport { Formatter } from '@shift/transform';\r\nimport { LinksBillableActionWidgetterProps } from '../widgets/LinksBillableActionWidget';\r\nimport { BILLABLE_ACTIONS } from '../../containers/billableAction/BillableAction';\r\nimport { TokenPredicate } from '../permissions';\r\n\r\n\r\nconst addVrn = (vrn: any) => (vrn ? `(${vrn})` : '');\r\nconst addVrnParam = (vrn: any) => (vrn ? `?vrn=${vrn}` : '');\r\n\r\nexport const LinkBillableActionFormatterFactory = (\r\n paths: string[],\r\n actions: (keyof typeof BILLABLE_ACTIONS)[],\r\n permissions?: [TokenPredicate, TokenPredicate],\r\n isAllowed?: boolean,\r\n): Formatter => ({\r\n transform: ([ids, names, paidAccess, vrns, isStatusUpdateAllowed]) => ({\r\n children: names.map((name, idx) => {\r\n const vrn = vrns[idx];\r\n const [explorationPath, vrnPath] = paths;\r\n const id = ids[idx];\r\n return {\r\n content: [`${name}`, `${addVrn(vrn)}`],\r\n paidAccess: !!paidAccess[idx],\r\n actions,\r\n isAllowed: typeof isAllowed === 'boolean' ? isAllowed : isStatusUpdateAllowed[idx],\r\n reportId: id,\r\n permissions,\r\n links: [\r\n (ids.length > idx && ids[idx] && name ? `${explorationPath}/${ids[idx]}` : undefined),\r\n (vrn ? `${vrnPath}/${addVrnParam(vrn)}` : undefined),\r\n ],\r\n };\r\n }),\r\n }),\r\n});\r\n\r\nexport const LinksBillableActionFormatter = (\r\n actions: (keyof typeof BILLABLE_ACTIONS)[],\r\n permissions?: [TokenPredicate, TokenPredicate],\r\n isAllowed?: boolean,\r\n) => LinkBillableActionFormatterFactory(['/accident-reports/details', '/exploration/vehicle'], actions, permissions, isAllowed);\r\n","import { Formatter } from '@shift/transform';\r\nimport { sgCountryCode } from 'src/constants';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const PhoneNumberFormatter: Formatter = {\r\n transform: (params) => {\r\n const [[countryCode], [number]] = params;\r\n return {\r\n children: number ? `+${countryCode ?? sgCountryCode.dialCode} ${number}` : '',\r\n };\r\n },\r\n};\r\n","import { Formatter } from '@shift/transform';\r\nimport { WorflowPartySide } from 'src/constants';\r\n\r\nfunction isObjKey(key: any, obj: T): key is keyof T {\r\n return key in obj;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const PartyConditionalFormatterFactory = (party: number): Formatter => ({\r\n transform: (params) => {\r\n const partyIndex = params[1].indexOf(party);\r\n return {\r\n children: params[2][partyIndex] ?? '',\r\n };\r\n },\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const UserPartyConditionalFormatterFactory = (ownParty: boolean): Formatter => ({\r\n transform: (params) => {\r\n const partySide = `${params[0][0]?.Name}`;\r\n if (isObjKey(partySide, WorflowPartySide)) {\r\n const partySideInt = WorflowPartySide[partySide];\r\n const ownPartyIndex = params[1].indexOf(partySideInt);\r\n const otherPartyIndex = ownPartyIndex === 0 ? 1 : 0;\r\n const correspondingPartySideIndex = ownParty\r\n ? ownPartyIndex\r\n : otherPartyIndex;\r\n return {\r\n children: params[2][correspondingPartySideIndex],\r\n };\r\n }\r\n\r\n return {\r\n children: '',\r\n };\r\n },\r\n});\r\n\r\nexport function PartyConditionalChainableFormatterFactory(\r\n party: number,\r\n formatter: Formatter,\r\n): Formatter {\r\n return ({\r\n transform: (values) => {\r\n const value = PartyConditionalFormatterFactory(party).transform(\r\n values,\r\n );\r\n return formatter.transform([[value.children]]);\r\n },\r\n });\r\n}\r\n\r\nexport function UserPartyConditionalChainableFormatterFactory(\r\n ownParty: boolean,\r\n formatter: Formatter,\r\n): Formatter {\r\n return ({\r\n transform: (values) => {\r\n const value = UserPartyConditionalFormatterFactory(ownParty).transform(\r\n values,\r\n );\r\n return formatter.transform([[value.children]]);\r\n },\r\n });\r\n}\r\n\r\nexport const PartyFormatters = {\r\n OwnPartyFormatter: UserPartyConditionalFormatterFactory(true),\r\n OtherPartyFormatter: UserPartyConditionalFormatterFactory(false),\r\n OwnPartyFormatterFactory: (formatter: any) => UserPartyConditionalChainableFormatterFactory(true, formatter),\r\n OtherPartyFormatterFactory: (formatter: any) => UserPartyConditionalChainableFormatterFactory(false, formatter),\r\n InitiatingPartyFormatter: PartyConditionalFormatterFactory(WorflowPartySide.InitiatingParty),\r\n ReceivingPartyFormatter: PartyConditionalFormatterFactory(WorflowPartySide.ReceivingParty),\r\n InitiatingPartyFormatterFactory: (formatter: any) => PartyConditionalChainableFormatterFactory(WorflowPartySide.InitiatingParty, formatter),\r\n ReceivingPartyFormatterFactory: (formatter: any) => PartyConditionalChainableFormatterFactory(WorflowPartySide.ReceivingParty, formatter),\r\n};\r\n","import { Formatter } from '@shift/transform';\r\nimport { translate } from '@gears/translations';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const LiabilityFormatter: Formatter = {\r\n transform: (params) => {\r\n const value = params && params.length > 0 && params[0][0];\r\n return {\r\n children: value !== null && value !== undefined ? `${value}%` : translate('common:NA'),\r\n };\r\n },\r\n};\r\n","import { Formatter } from '@shift/transform';\r\nimport { TrajectoryIconWidgetProps } from '../widgets/TrajectoryIconWidget';\r\nimport { PercentageWidgetProps } from '../widgets/PercentageWidget';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const NcdValuesFormatter: Formatter = {\r\n transform: ([[renewalNcd], [currentNcd]]) => ({\r\n currentNcd,\r\n renewalNcd,\r\n }),\r\n};\r\n\r\nexport const CurrentNcdValuesFormatter: Formatter = {\r\n transform: ([[currentNcd]]) => ({\r\n currentNcd,\r\n }),\r\n};\r\n","import { Formatter } from '@shift/transform';\r\nimport { translate } from '../../utils/forms';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const ExplorationReferenceFormatter: Formatter = {\r\n transform: ([[policyObjectTerminationReason]]) => {\r\n if (policyObjectTerminationReason?.Name === 'PaymentNotFulfilled') {\r\n return {\r\n children: translate('history-exploration:lapsed'),\r\n };\r\n }\r\n if (policyObjectTerminationReason?.Name === 'Cancelled') {\r\n return {\r\n children: translate('history-exploration:cancel'),\r\n };\r\n }\r\n // https://jira.shift-technology.com/browse/GEARS-1393\r\n // If PolicyObjectTerminationReason is null, \"Active\" should be the default\r\n // We consider a policy is \"Active\" unless the data says otherwise\r\n return { children: translate('history-exploration:active') };\r\n },\r\n};\r\n","import { Formatter } from '@shift/transform';\r\nimport { EnumFormatters } from './EnumValuesFormatter';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const PurchasedByFormatter: Formatter = {\r\n transform: ([insurers]) => ({\r\n children: insurers\r\n // distinct\r\n .filter((t, i, arr) => arr.findIndex((tt) => tt.Name === t.Name) === i)\r\n // take the last five purchased\r\n .filter((_, index) => index < 5)\r\n .map((insurer) => EnumFormatters.EnumValuesFormatter.transform([insurer]).children)\r\n ,\r\n }),\r\n};\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Formatter } from '@shift/transform';\r\nimport { translate } from '@gears/translations';\r\nimport { RecoveryWorkflowStepDeadlineState } from 'src/constants';\r\nimport { DateTimeFormatters } from './DateTimeFormatters';\r\n\r\nexport const RecoveryDeadlineFormatter: Formatter = {\r\n transform: (params) => {\r\n const [[expirationDateUtc], [recoverWorkflowDeadlineState]] = params && params[0] && params[1] && params;\r\n const value = (recoverWorkflowDeadlineState?.Name === RecoveryWorkflowStepDeadlineState.WaitingAction\r\n && expirationDateUtc\r\n && DateTimeFormatters.DaysLeftFormatter.transform([[expirationDateUtc]]).children) || null;\r\n\r\n return {\r\n children: value ? `< ${value}` : translate('common:NA'),\r\n };\r\n },\r\n};\r\n","import { Formatter } from '@shift/transform';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const NameAndCompanyFormatter: Formatter = ({\r\n transform: ([names, companies]) => {\r\n const namesLen = names ? names.length : 0;\r\n const companiesLen = companies ? companies.length : 0;\r\n const values = [...Array(namesLen).keys()].map((i) => [names[i], i < companiesLen ? companies[i] : null]);\r\n const formattedValues = values.map(([name, company]) => (!company ? name : `${name} (${company})`));\r\n return ({\r\n children: !formattedValues || formattedValues.length === 0 ? null : formattedValues[0],\r\n });\r\n },\r\n});\r\n","import { Formatter } from '@shift/transform';\r\nimport { EnumValue } from 'src/types';\r\nimport { EnumFormatters } from './EnumValuesFormatter';\r\n\r\nexport const VehicleModelFormatter: Formatter = ({\r\n transform: (params) => {\r\n const [model] = params[0][0]?.split('___') ?? [];\r\n return { children: model };\r\n },\r\n});\r\n\r\nexport const VehicleVariantFormatter: Formatter = ({\r\n transform: (params) => {\r\n const [, variant] = params[0][0]?.split('___') ?? [];\r\n return { children: variant };\r\n },\r\n});\r\n\r\nexport const VehicleMakeFormatter: Formatter<(string | EnumValue)[], { children: string }> = ({\r\n transform: (params) => {\r\n const [[isNotEnum], [makeEnum], [makeText]] = params as [[string], [EnumValue], [string], ];\r\n\r\n return { children: isNotEnum ? makeText : EnumFormatters.EnumValuesFormatter.transform([[makeEnum]]).children };\r\n },\r\n});\r\n\r\nexport const VehicleFuelFormatter: Formatter<(string | EnumValue)[], { children: string }> = ({\r\n transform: (params) => {\r\n const [[fuelEnum], [fuelText]] = params as [ [EnumValue], [string], ];\r\n\r\n return { children: !fuelEnum ? fuelText : EnumFormatters.EnumValuesFormatter.transform([[fuelEnum]]).children };\r\n },\r\n});\r\n","import { Formatter } from '@shift/transform';\r\nimport { translate } from '@gears/translations';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const DefaultValueFormatterFactory: (...defaultValue: any[]) => Formatter = (defaultValue) => ({\r\n transform: (param) => {\r\n if (param.flat().flat().some((a) => a)) {\r\n return { children: param.flat() };\r\n }\r\n\r\n return { children: defaultValue };\r\n },\r\n});\r\n\r\nexport const DefaultTranslationValueFormatterFactory: (defaultValue: string) => Formatter = (defaultValue) => ({\r\n transform: (param) => DefaultValueFormatterFactory(translate(defaultValue)).transform(param),\r\n});\r\n","import { Formatter } from '@shift/transform';\r\nimport { EnumValue } from 'src/types';\r\nimport { translate } from '../../utils/forms';\r\n\r\nexport const EnumListValuesCommaFormatter: Formatter = {\r\n transform: (enums) => ({\r\n children: enums.flat().map((e) => translate(e?.Type && e?.Name ? `enums:${e?.Type}.${e?.Name}` : '', { defaultValue: e?.Name ?? '' }))\r\n .join(',\\n'),\r\n }),\r\n};\r\n","import { Formatter } from '@shift/transform';\r\nimport { EnumFormatters } from './EnumValuesFormatter';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const ClaimantEnumFormatter: Formatter = {\r\n transform([raw]) {\r\n const isOwner = raw.some((r) => r.specializations.mapping_ClaimPerson_Function.some(\r\n (rr: any) => rr.enumIdentifier === 'MotorClaimPersonFunction' && rr.enumValueId === 1,\r\n ));\r\n const isDriver = raw.some((r) => r.specializations.mapping_ClaimPerson_Function.some(\r\n (rr: any) => rr.enumIdentifier === 'MotorClaimPersonFunction' && rr.enumValueId === 3,\r\n ));\r\n let enumName = '';\r\n\r\n if (isDriver && isOwner) {\r\n enumName = 'Both';\r\n } else\r\n if (isDriver) {\r\n enumName = 'Driver';\r\n } else\r\n if (isOwner) {\r\n enumName = 'Owner';\r\n }\r\n\r\n const claimantEnum = [[{ Type: 'Claimant', Name: enumName }]];\r\n return EnumFormatters.EnumValuesFormatter.transform(claimantEnum);\r\n },\r\n};\r\n","import { Formatter } from '@shift/transform';\r\n\r\nconst filterPassengers = (passengers: any[]) => {\r\n const filtered = passengers.filter((r) => r.links.mapping_ClaimPerson.find((cp: any) => cp.specializations.mapping_ClaimPerson_Function.find(\r\n (rr: any) => rr.enumIdentifier === 'MotorClaimPersonFunction' && rr.enumValueId === 4,\r\n )));\r\n\r\n return filtered;\r\n};\r\n\r\nexport const PassengerFormatter: Formatter = {\r\n transform([raw]) {\r\n const passengers = filterPassengers(raw);\r\n const passengerNames = passengers.map((passenger) => passenger.specializations.mapping_Person_Gears.name);\r\n let result;\r\n if (passengerNames.length !== 0) {\r\n result = {\r\n children: passengerNames,\r\n };\r\n } else {\r\n result = undefined;\r\n }\r\n return result;\r\n },\r\n};\r\n\r\nexport const GenderFormatter: Formatter = {\r\n transform([raw]) {\r\n const passengers = filterPassengers(raw);\r\n const passengerGenders = passengers.map((passenger) => passenger.specializations.mapping_Person_Individual.gender?.Name);\r\n let result;\r\n if (passengerGenders.length !== 0) {\r\n result = {\r\n children: passengerGenders,\r\n };\r\n } else {\r\n result = undefined;\r\n }\r\n return result;\r\n },\r\n};\r\n","import { Formatter } from '@shift/transform';\r\nimport { EnumFormatters } from './EnumValuesFormatter';\r\n\r\nexport const DrivingLicenseClassEnumFormatter: Formatter = ({\r\n transform: ([raw]) => {\r\n const enumString: string = raw[0];\r\n const enumValue = { Type: 'DrivingLicenseSourceType', Name: enumString };\r\n return EnumFormatters.EnumValuesFormatter.transform([[enumValue]]);\r\n },\r\n});\r\n","import { Formatter } from '@shift/transform';\r\nimport { EnumValue } from 'src/types';\r\nimport { EnumFormatters } from './EnumValuesFormatter';\r\n\r\nexport const DrivingLicenseValidityFormatter: Formatter<(string | EnumValue)[], { children: string }> = ({\r\n transform: (params) => {\r\n const [[validityEnum], [validitySourceName]] = params as [ [EnumValue], [string], ];\r\n\r\n return { children: !validityEnum ? validitySourceName : EnumFormatters.EnumValuesFormatter.transform([[validityEnum]]).children };\r\n },\r\n});\r\n","import { Formatter } from '@shift/transform';\r\nimport { SingleValueFormatter } from './SingleValueFormatter';\r\nimport { ListFormatter, ListFormatterWithOptions } from './ListFormatter';\r\nimport { TranslateValueFormatter, TranslateWithNamespaceValueFormatter } from './TranslateValueFormatter';\r\nimport { JoinsValuesFormatter } from './JoinsValuesFormatter';\r\nimport { EnumFormatters } from './EnumValuesFormatter';\r\nimport { BooleanValueFormatter, BooleanValueFallbackNoFormatter, ConditionalBooleanValueFormatterFactory } from './BooleanValueFormatter';\r\nimport { DateTimeFormatters } from './DateTimeFormatters';\r\nimport { DocumentLinkFormatter } from './DocumentLinkFormatter';\r\nimport { ThumbnailFormatter } from './ThumbnailFormatter';\r\nimport { PDFLinkFormatter } from './PDFLinkFormatter';\r\nimport {\r\n IdLinkFormatterFactory, GoToDetailPageFormatter,\r\n GoToRecoveryPageFormatter, GoToFolderPageFormatter,\r\n} from './IdLinkFormatter';\r\nimport { ElementAtFormatterFactory } from './ElementAtFormatterFactory';\r\nimport { LinksBillableActionFormatter } from './LinksBillableActionFormatter';\r\nimport { LinksExplorationSearchFormatter } from './LinksExplorationSearchFormatter';\r\nimport { PhoneNumberFormatter } from './PhoneNumberFormatter';\r\nimport { MultiFormatterFactory } from './MultiFormatter';\r\nimport { PartyFormatters } from './PartyConditionalFormatter';\r\nimport { LiabilityFormatter } from './LiabilityFormatter';\r\nimport { NcdValuesFormatter, CurrentNcdValuesFormatter } from './NcdValuesFormatter';\r\nimport { VehicleNumberSelectFormatter } from './VehicleNumberSelectFormatter';\r\nimport { ExplorationReferenceFormatter } from './ExplorationReferenceFormatter';\r\nimport { NationalIdentifierFormatter } from './NationalIdentifierFormatter';\r\nimport { PurchasedByFormatter } from './PurchasedByFormatter';\r\nimport { RecoveryDeadlineFormatter } from './RecoveryDeadlineFormatter';\r\nimport { TernaryConditionFormatter } from './TernaryConditionFormatter';\r\nimport { NameAndCompanyFormatter } from './NameAndCompanyFormatter';\r\nimport {\r\n VehicleModelFormatter, VehicleVariantFormatter, VehicleMakeFormatter, VehicleFuelFormatter,\r\n} from './VehicleFormatters';\r\nimport { DefaultValueFormatterFactory, DefaultTranslationValueFormatterFactory } from './DefaultValueFormatter';\r\nimport { EnumListValuesCommaFormatter } from './EnumListValuesCommaFormatter';\r\nimport { ClaimantEnumFormatter } from './ClaimantEnumFormatter';\r\nimport { PassengerFormatter, GenderFormatter } from './PassengerFromatter';\r\nimport { DrivingLicenseClassEnumFormatter } from './DrivingLicenseClassEnumFormatter';\r\nimport { DrivingLicenseValidityFormatter } from './DrivingLicenseValidityFromatter';\r\n\r\n\r\nexport const MultipleFormatters = (formatters: Formatter[]): Formatter => ({\r\n transform: (params: any) => {\r\n let result = params;\r\n // eslint-disable-next-line no-plusplus\r\n for (let i = 0; i < formatters.length; i++) {\r\n const tmp = formatters[i].transform(result).children;\r\n result = Array.isArray(tmp) ? [tmp] : [[tmp]];\r\n }\r\n result = result.flat();\r\n return {\r\n children: result,\r\n };\r\n },\r\n});\r\n\r\nexport const Formatters = {\r\n SingleValueFormatter,\r\n ListFormatter,\r\n ListFormatterWithOptions,\r\n TranslateValueFormatter,\r\n TranslateWithNamespaceValueFormatter,\r\n JoinsValuesFormatter,\r\n PDFLinkFormatter,\r\n ...EnumFormatters,\r\n BooleanValueFormatter,\r\n BooleanValueFallbackNoFormatter,\r\n ConditionalBooleanValueFormatterFactory,\r\n ThumbnailFormatter,\r\n ...DateTimeFormatters,\r\n DocumentLinkFormatter,\r\n GoToDetailPageFormatter,\r\n GoToFolderPageFormatter,\r\n PurchasedByFormatter,\r\n TernaryConditionFormatter,\r\n GoToRecoveryPageFormatter,\r\n LinksBillableActionFormatter,\r\n LinksExplorationSearchFormatter,\r\n LiabilityFormatter,\r\n PhoneNumberFormatter,\r\n MultiFormatterFactory,\r\n NcdValuesFormatter,\r\n CurrentNcdValuesFormatter,\r\n ExplorationReferenceFormatter,\r\n ...PartyFormatters,\r\n VehicleNumberSelectFormatter,\r\n NationalIdentifierFormatter,\r\n RecoveryDeadlineFormatter,\r\n MultipleFormatters,\r\n NameAndCompanyFormatter,\r\n VehicleModelFormatter,\r\n VehicleVariantFormatter,\r\n VehicleMakeFormatter,\r\n VehicleFuelFormatter,\r\n EnumListValuesCommaFormatter,\r\n ClaimantEnumFormatter,\r\n PassengerFormatter,\r\n GenderFormatter,\r\n DrivingLicenseClassEnumFormatter,\r\n DrivingLicenseValidityFormatter,\r\n};\r\n\r\nexport const FormatterFactories = {\r\n IdLinkFormatterFactory,\r\n ElementAtFormatterFactory,\r\n DefaultValueFormatterFactory,\r\n DefaultTranslationValueFormatterFactory,\r\n};\r\n","import { Formatter } from '@shift/transform';\r\nimport { AnyType } from '../../types/anyType';\r\n\r\nexport type TernaryConditionOptions = {\r\n conditionFct: (conditionValue: any) => boolean;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const InnerTernaryConditionFormatter = (\r\n { conditionFct }: TernaryConditionOptions,\r\n): Formatter => ({\r\n transform: ([conditionValue, a, b]) => {\r\n const result = conditionFct(conditionValue) ? a : b;\r\n\r\n return {\r\n children: result,\r\n };\r\n },\r\n});\r\n\r\nexport const TernaryConditionFormatter = (option: TernaryConditionOptions) => InnerTernaryConditionFormatter(option);\r\n","/* eslint-disable no-shadow */\r\nimport { Formatter } from '@shift/transform';\r\nimport { LinksExplorationSearchWidgetterProps } from '../widgets/LinksExplorationSearchWidgetter';\r\nimport { ExplorationSearchType } from '../../pages/exploration/constants';\r\nimport { permissions } from '../permissions';\r\n\r\n\r\nconst addVrnParam = (vrn: any) => (vrn ? `?vrn=${vrn}` : '');\r\nconst addIdentParam = (ident: any) => (ident ? `?ident=${ident}` : '');\r\n\r\nexport const LinksExplorationSearchFormatter = (\r\n searchType: ExplorationSearchType,\r\n): Formatter => ({\r\n transform: ([variables]) => ({\r\n children: variables\r\n .filter((t, i) => variables.indexOf(t) === i)\r\n .map((variable: string) => ({\r\n content: `${variable}`,\r\n action: 'EXPLORATION_SEARCH',\r\n searchType,\r\n permission: permissions.canSeeExploration,\r\n // eslint-disable-next-line no-nested-ternary\r\n link: `/exploration/${searchType}${searchType === 'person' ? addIdentParam(variable) : addVrnParam(variable)}`,\r\n })),\r\n }),\r\n});\r\n","import { Formatter } from '@shift/transform';\r\n\r\nexport function MultiFormatterFactory(formatter: Formatter, skipEmptyValues?: boolean): Formatter {\r\n return {\r\n transform: (params: T[][]) => {\r\n const result = [];\r\n for (let i = 0; i < params[0].length; i += 1) {\r\n const value = formatter.transform(params.map((arr) => [arr[i]]));\r\n if (skipEmptyValues) {\r\n if (value !== null && value !== undefined) {\r\n result.push(value);\r\n }\r\n } else {\r\n result.push(value);\r\n }\r\n }\r\n return result;\r\n },\r\n };\r\n}\r\n","import { Formatter } from '@shift/transform';\r\nimport { translate } from '../../utils/forms';\r\n\r\ntype VehicleNumberSelectFormatterOptions = {\r\n getter?(specialization: any): string;\r\n prefix: string;\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const InnerVehicleNumberSelectFormatter = (\r\n option: VehicleNumberSelectFormatterOptions,\r\n): Formatter => {\r\n const getter = option.getter ?? ((spec) => spec?.mapping_Object_Motor_VehicleRegistration[0]?.number);\r\n return ({\r\n transform: ([data]) => ({\r\n children: data.map((datum, index) => {\r\n const vrn = getter(datum);\r\n return `${translate(option.prefix)} ${index + 1} ${vrn ? `- ${vrn}` : ''}`;\r\n }),\r\n }),\r\n });\r\n};\r\n\r\nexport const VehicleNumberSelectFormatter = (option: VehicleNumberSelectFormatterOptions) => InnerVehicleNumberSelectFormatter(option);\r\n","import { Formatter } from '@shift/transform';\r\n\r\nexport function ElementAtFormatterFactory(\r\n index: number | 'last', formatter: Formatter,\r\n): Formatter {\r\n return ({\r\n transform: (values) => {\r\n const value = values.flat()[index === 'last' ? values.flat().length - 1 : index];\r\n return formatter.transform([[value]]);\r\n },\r\n });\r\n}\r\n","import { runtimeConfig } from './runtime-config';\r\n\r\nexport const removeTrailingSlash = (url: string): string => {\r\n if (!url) return '';\r\n return url.replace(/\\/$/g, '');\r\n};\r\n\r\nconst {\r\n clientId,\r\n authUri,\r\n redirectUri,\r\n resourceUri,\r\n telemetryEnabled,\r\n telemetryUri,\r\n telemetryEnv,\r\n} = runtimeConfig();\r\n\r\nexport const oktaConfig = {\r\n baseUrl: removeTrailingSlash(authUri),\r\n clientId,\r\n issuer: `${removeTrailingSlash(authUri)}/oauth2/default`,\r\n redirectUri: `${removeTrailingSlash(redirectUri)}/implicit/callback`,\r\n scopes: ['openid', 'profile', 'email'],\r\n pkce: true,\r\n disableHttpsCheck: false,\r\n};\r\n\r\nexport const apiEndPoint = {\r\n resource: 'graphql',\r\n upload: 'document/upload',\r\n pdf: 'document/AccidentReportPdf',\r\n document: 'document/Id',\r\n documentPreview: 'document/Preview',\r\n documentZip: 'document/RecoveryAttachments',\r\n importedDocument: 'document/ImportedDocument',\r\n letterOfDemand: 'document/LetterOfDemandPdf',\r\n reporting: 'Reporting/encrypted-claims',\r\n};\r\n\r\nexport const apiConfig = {\r\n resourceUri: `${removeTrailingSlash(resourceUri)}/${apiEndPoint.resource}`,\r\n uploadUri: `${removeTrailingSlash(resourceUri)}/${apiEndPoint.upload}`,\r\n pdfUri: `${removeTrailingSlash(resourceUri)}/${apiEndPoint.pdf}`,\r\n documentUri: `${removeTrailingSlash(resourceUri)}/${apiEndPoint.document}`,\r\n documentPreviewUri: `${removeTrailingSlash(resourceUri)}/${apiEndPoint.documentPreview}`,\r\n documentZipUri: `${removeTrailingSlash(resourceUri)}/${apiEndPoint.documentZip}`,\r\n importedDocumentUri: `${removeTrailingSlash(resourceUri)}/${apiEndPoint.importedDocument}`,\r\n letterOfDemandUri: `${removeTrailingSlash(resourceUri)}/${apiEndPoint.letterOfDemand}`,\r\n // frontendMetricsUri: `${removeTrailingSlash(resourceUri)}/${apiEndPoint.frontendMetrics}`,\r\n // apiMetricsUri: `${removeTrailingSlash(resourceUri)}/${apiEndPoint.apiMetrics}`,\r\n reportingSecuredClaimsUri: `${removeTrailingSlash(resourceUri)}/${apiEndPoint.reporting}`,\r\n};\r\n\r\nexport const telemetryConfig = {\r\n active: telemetryEnabled === 'true',\r\n serviceName: 'gears-ui',\r\n serverUrl: telemetryUri,\r\n serviceVersion: '',\r\n environment: telemetryEnv,\r\n breakdownMetrics: true,\r\n distributedTracingOrigins: [removeTrailingSlash(redirectUri), removeTrailingSlash(resourceUri)],\r\n propagateTracestate: true,\r\n};\r\n\r\nexport const dashboardLink = {\r\n insurer: 'InsurerDashboard',\r\n gia: 'GiaDashboard',\r\n};\r\n","import { capitalize } from 'src/utils';\r\nimport gql from 'graphql-tag';\r\nimport { SearchTypes } from 'src/libs/filters';\r\n\r\ntype ContextFactory = (ctx: string) => string;\r\n\r\nconst memoize = (fct: (s: string, additionalParam?: C) => B) => {\r\n const cache: { [key: string]: B } = {};\r\n return (s: string, additionalParam?: C): B => {\r\n if (!(s in cache)) {\r\n cache[s] = fct(s, additionalParam);\r\n }\r\n return cache[s];\r\n };\r\n};\r\n\r\nexport const contextFactory = memoize((category: string): ContextFactory => (ctx: string) => `\r\nquery get${capitalize(category)}($id: Long) {\r\n ${category}(id: $id) {\r\n${ctx}\r\n }\r\n}\r\n`);\r\n\r\nexport const searchContextFactory = memoize((category: string, searchType?: SearchTypes): ContextFactory => (ctx: string) => `\r\nquery search${capitalize(category)}($parameters: ${searchType}GraphQLSearchParametersInput) {\r\n ${category}List(parameters: $parameters) {\r\n itemsCount\r\n totalCount\r\n items{\r\n ${ctx}\r\n }\r\n }\r\n}\r\n`);\r\n\r\n// TODO only handles person exploration\r\nexport const explorationContextFactory = memoize((category: string): ContextFactory => (ctx: string) => {\r\n // TODO ARF! this is getting worse\r\n let param: string;\r\n if (category === 'person') {\r\n param = 'ident';\r\n } else if (category === 'vehicle') {\r\n param = 'vrn';\r\n } else {\r\n throw new Error(`unknown category: ${category}`);\r\n }\r\n return `\r\nquery exploration${capitalize(category)}($${param}: String, $billableActionID: Long) {\r\n explore${capitalize(category)}(${param}: $${param}, billableActionID: $billableActionID) {\r\n ${ctx}\r\n }\r\n}\r\n`;\r\n});\r\n\r\nexport const ncdEmailContextFactory = memoize((_category: string): ContextFactory => (ctx: string) => `\r\nquery ncdEmail($personId: Long, $objectId: Long) {\r\n ownedVehicle(personId: $personId, objectId: $objectId) {\r\n ${ctx}\r\n }\r\n}`);\r\n\r\nexport const ncdContextFactory = memoize((_category: string): ContextFactory => (ctx: string) => `\r\n query ncd($nric: String, $vrn: String) {\r\n exploreOwnedVehicle(nric: $nric, vrn: $vrn) {\r\n ${ctx}\r\n }\r\n }\r\n`);\r\n\r\nexport const insurerEnquiryContextFactory = memoize((_category: string): ContextFactory => (ctx: string) => `\r\n query insurerEnquiry($vrn: String, $dateTimeOffset: ShiftDateTimeOffset) {\r\n insurerEnquiry(vrn: $vrn, dateTimeOffset: $dateTimeOffset) {\r\n ${ctx}\r\n }\r\n }\r\n`);\r\n\r\ntype Node = {\r\n name: string;\r\n children: Node[];\r\n};\r\n\r\nconst buildLinePrint = (tree: Node[], indent: string): string => tree.reduce((acc, node) => {\r\n let res = acc;\r\n if (res.length !== 0) {\r\n res += '\\n';\r\n }\r\n res += indent;\r\n res += node.name;\r\n if (node.children.length !== 0) {\r\n res += ' {\\n';\r\n res += buildLinePrint(node.children, `${indent} `);\r\n res += '\\n';\r\n res += indent;\r\n res += '}';\r\n }\r\n return res;\r\n}, '');\r\n\r\nexport const buildFieldTree = (fields: string[][]): Node[] => {\r\n if (fields.length === 0) {\r\n return [];\r\n }\r\n const f = fields.filter((field) => field.length !== 0);\r\n const data: { [key: string]: string[][] } = {};\r\n f.forEach((field) => {\r\n const [prefix, ...path] = field;\r\n if (!data[prefix]) {\r\n data[prefix] = [];\r\n }\r\n if (path.length !== 0) {\r\n data[prefix].push(path);\r\n }\r\n });\r\n if (!data.id) {\r\n data.id = [];\r\n }\r\n\r\n return Object.entries(data).map(([key, value]) => ({\r\n name: key,\r\n children: buildFieldTree(value),\r\n }));\r\n};\r\n\r\nconst isString = (context: string | string[]): context is string => typeof context === 'string';\r\n\r\nconst splitContext = (context: string | string[]): [string, string[]] => {\r\n if (isString(context)) {\r\n if (context.length === 0) {\r\n throw new Error('context can\\'t be empty');\r\n }\r\n return [context, []];\r\n }\r\n const [initial, ...rest] = context;\r\n if (initial.length === 0) {\r\n throw new Error('context can\\'t be empty');\r\n }\r\n\r\n return [initial, rest];\r\n};\r\n\r\nexport const buildQueryString = (context: string | string[], fields: string[][], factory: (s: string) => ContextFactory = contextFactory): string => {\r\n const [mainContext, path] = splitContext(context);\r\n if (fields.length === 0) {\r\n throw new Error('no field provided');\r\n }\r\n const tree = buildFieldTree(fields.map((field) => [...path, ...field]));\r\n return factory(mainContext)(buildLinePrint(tree, ' '));\r\n};\r\n\r\nexport const buildQuery = (context: string | string[], fields: string[][]) => gql(buildQueryString(context, fields));\r\nexport const buildListQuery = (context: string | string[], fields: string[][], searchType: SearchTypes) => gql(\r\n buildQueryString(context, fields, (s: string) => searchContextFactory(s, searchType)),\r\n);\r\nexport const buildExplorationQuery = (context: string | string[], fields: string[][]) => gql(\r\n buildQueryString(context, fields, explorationContextFactory),\r\n);\r\nexport const buildNcdEmailQuery = (context: string | string[], fields: string[][]) => gql(\r\n buildQueryString(context, fields, ncdEmailContextFactory),\r\n);\r\nexport const buildNcdQuery = (context: string | string[], fields: string[][]) => gql(\r\n buildQueryString(context, fields, ncdContextFactory),\r\n);\r\nexport const buildInsurerEnquiryQuery = (context: string | string[], fields: string[][]) => gql(\r\n buildQueryString(context, fields, insurerEnquiryContextFactory),\r\n);\r\n\r\nexport const getEnums = gql('query { enums }');\r\n\r\nexport const getDrmAdjudicationReasonItemPrices = gql('query { recoveryDrmAdjudicationLosingPartyItemPrices }');\r\n\r\nexport const getArcInsurers = gql(`\r\n query Insurers {\r\n me {\r\n arcEntity {\r\n arc {\r\n insurers {\r\n insurerCode\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`);\r\n\r\nexport const getArcNames = gql(`\r\n query searchArc($parameters: ProviderFieldsGraphQLSearchParametersInput) {\r\n arcList(parameters: $parameters) {\r\n itemsCount\r\n totalCount\r\n items {\r\n person {\r\n specializations {\r\n mapping_Person_Gears {\r\n name\r\n id \r\n } \r\n } \r\n }\r\n }\r\n }\r\n } \r\n`);\r\n\r\nexport const getOfficers = gql(`\r\n query Officers {\r\n me {\r\n insurerEntity {\r\n insurer {\r\n insurerEntities {\r\n person {\r\n specializations {\r\n mapping_Person_Gears {\r\n name\r\n }\r\n }\r\n }\r\n identity {\r\n identityId\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`);\r\n\r\nexport const getPoliceStations = gql(`\r\n query GetPoliceStations {\r\n policeStations {\r\n id\r\n recordOwner\r\n specializations {\r\n id\r\n mapping_Person_Gears {\r\n id\r\n name\r\n }\r\n }\r\n name\r\n addresses {\r\n id\r\n fullAddress\r\n }\r\n phoneNumbers {\r\n id\r\n phoneNumberType\r\n number\r\n }\r\n }\r\n }\r\n`);\r\n\r\nexport const getArcList = gql(`\r\n query {\r\n arcList {\r\n id,\r\n person {\r\n id,\r\n specializations {\r\n mapping_Person_Gears {\r\n name\r\n }\r\n }\r\n addresses {fullAddress}\r\n phoneNumbers {number}\r\n }\r\n }\r\n }\r\n`);\r\n\r\nexport const getBolaCases = gql(`\r\n query {\r\n bolaCases {\r\n id,\r\n caseEnumIdentifier,\r\n caseEnumValueId,\r\n description,\r\n specializations {\r\n mapping_AccidentCase_LiabilityScenario_Gia {\r\n id\r\n xLiablity\r\n yLiablity\r\n }\r\n }\r\n document {\r\n id\r\n }\r\n }\r\n }\r\n`);\r\n\r\nexport const getVehicleModels = gql(`\r\n query GetVehicleModels($make: ShiftEnum_VehicleMake) {\r\n vehicleModels(make: $make) {\r\n id\r\n make\r\n model\r\n }\r\n }\r\n`);\r\n\r\nexport const getInsurerEmail = gql(`\r\n query GetInsurerContactEmail($insurer: ShiftEnum_InsurerCode) {\r\n insurerContactEmail(insurer: $insurer)\r\n }\r\n`);\r\n\r\nexport const getUserCompany = gql`\r\n query userCompany {\r\n me {\r\n company {\r\n id\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const getBillableItem = gql(`\r\nquery GetBillableItem($billableItemName: String){\r\n getBillableItem(billableItemName: $billableItemName) {\r\n price\r\n gst\r\n gstInclusivePrice\r\n }\r\n}`);\r\n","/* eslint-disable @typescript-eslint/camelcase */\r\nimport {\r\n recoveryActions, recoverableAmountEnum, recoveryStates, bolaCaseCommentType, recoveryReceivingParty, recoveryInitiatingParty,\r\n} from 'src/constants';\r\n\r\nconst ip = {\r\n createDateUtc: '01/01/2020T01:01:00',\r\n id: 1001,\r\n identity: {\r\n id: 1001,\r\n insurerEntity: {\r\n id: 1001,\r\n insurer: {\r\n id: 1001,\r\n insurerCode: {\r\n Name: 'InsurerA',\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nconst rp = {\r\n id: 1002,\r\n identity: {\r\n id: 1002,\r\n insurerEntity: {\r\n id: 1002,\r\n insurer: {\r\n id: 1002,\r\n insurerCode: {\r\n Name: 'InsurerB',\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport const initiateStep = {\r\n id: 1,\r\n action: recoveryActions.initiate,\r\n state: recoveryStates.pendingCounterActionByRp,\r\n effectiveDateUtc: '01/01/2020T01:01:00',\r\n creator: ip,\r\n accidentCase: [\r\n {\r\n caseEnumValueId: 1,\r\n specializations: {\r\n mapping_AccidentCase_LiabilityScenario_Gia: {\r\n xLiablity: 100,\r\n yLiablity: 0,\r\n },\r\n },\r\n },\r\n ],\r\n specializations: {\r\n id: 1,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 1,\r\n content: 'Initiate comment',\r\n links: {\r\n id: 1,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 1,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const acceptStep = {\r\n id: 2,\r\n action: recoveryActions.accept,\r\n state: recoveryStates.pendingPayment,\r\n accidentCase: [],\r\n effectiveDateUtc: '02/02/2020T02:02:00',\r\n creator: rp,\r\n specializations: {\r\n id: 2,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 2,\r\n content: 'Accept comment',\r\n links: {\r\n id: 2,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 2,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const acceptDefaultedStep = {\r\n id: 200,\r\n action: recoveryActions.default,\r\n state: recoveryStates.pendingPayment,\r\n accidentCase: [\r\n {\r\n caseEnumValueId: 1,\r\n specializations: {\r\n mapping_AccidentCase_LiabilityScenario_Gia: {\r\n xLiablity: 100,\r\n yLiablity: 0,\r\n },\r\n },\r\n },\r\n ],\r\n effectiveDateUtc: '02/02/2020T02:02:00',\r\n creator: rp,\r\n specializations: {\r\n id: 200,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 200,\r\n content: 'Accept defaulted comment',\r\n links: {\r\n id: 200,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 200,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const waiveStep = {\r\n id: 3,\r\n action: recoveryActions.waive,\r\n state: recoveryStates.closed,\r\n accidentCase: [],\r\n effectiveDateUtc: '03/03/2020T03:03:00',\r\n creator: ip,\r\n specializations: {\r\n id: 3,\r\n ui_WorkflowStep_Reason: {\r\n id: 3,\r\n reasonEnumIdentifier: 'RecoveryWaiveReason',\r\n reasonEnumValueId: 1,\r\n },\r\n },\r\n comments: [\r\n {\r\n id: 3,\r\n content: 'Waive comment',\r\n links: {\r\n id: 3,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 3,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const waiveAcceptStep = {\r\n id: 4,\r\n action: recoveryActions.waive,\r\n state: recoveryStates.pendingPayment,\r\n accidentCase: [],\r\n effectiveDateUtc: '04/04/2020T04:04:00',\r\n creator: rp,\r\n specializations: {\r\n id: 4,\r\n ui_WorkflowStep_Reason: {\r\n id: 4,\r\n reasonEnumIdentifier: 'RecoveryWaiveReason',\r\n reasonEnumValueId: 3,\r\n },\r\n },\r\n comments: [\r\n {\r\n id: 4,\r\n content: 'Waive Accept comment',\r\n links: {\r\n id: 4,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 4,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const sendPaymentStep = {\r\n id: 5,\r\n action: recoveryActions.sendPayment,\r\n state: recoveryStates.pendingPaymentAcknowledgeByIp,\r\n accidentCase: [],\r\n effectiveDateUtc: '05/05/2020T05:05:00',\r\n creator: rp,\r\n specializations: {\r\n id: 5,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 5,\r\n content: 'Send payment comment',\r\n links: {\r\n id: 5,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 5,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const acknowledgePaymentStep = {\r\n id: 6,\r\n action: recoveryActions.acknowledgePayment,\r\n state: recoveryStates.closed,\r\n accidentCase: [],\r\n effectiveDateUtc: '06/06/2020T06:06:00',\r\n creator: ip,\r\n specializations: {\r\n id: 6,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 6,\r\n content: 'Acknowledge payment comment',\r\n links: {\r\n id: 6,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 6,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const initiateDrmStep = {\r\n id: 9,\r\n action: recoveryActions.drmInitiateEscalation,\r\n state: recoveryStates.pendingDrmApproveInitiateEscalation,\r\n effectiveDateUtc: '09/09/2020T09:09:00',\r\n creator: ip,\r\n accidentCase: [\r\n {\r\n caseEnumValueId: 3,\r\n specializations: {\r\n mapping_AccidentCase_LiabilityScenario_Gia: {\r\n xLiablity: 100,\r\n yLiablity: 0,\r\n },\r\n },\r\n },\r\n ],\r\n specializations: {\r\n id: 1,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 1,\r\n content: 'Initiate DRM comment',\r\n links: {\r\n id: 1,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 1,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const cancelDrmIpStep = {\r\n id: 10,\r\n action: recoveryActions.drmCancel,\r\n state: recoveryStates.pendingSecondActionByIp,\r\n effectiveDateUtc: '10/10/2020T10:10:00',\r\n creator: ip,\r\n accidentCase: [\r\n {\r\n caseEnumValueId: 3,\r\n specializations: {\r\n mapping_AccidentCase_LiabilityScenario_Gia: {\r\n xLiablity: 0,\r\n yLiablity: 100,\r\n },\r\n },\r\n },\r\n ],\r\n specializations: {\r\n id: 10,\r\n ui_WorkflowStep_Reason: {\r\n id: 10,\r\n reasonEnumIdentifier: 'RecoveryWaiveReason',\r\n reasonEnumValueId: 3,\r\n },\r\n },\r\n comments: [\r\n {\r\n id: 10,\r\n content: 'Cancel DRM (by IP) comment',\r\n links: {\r\n id: 10,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 10,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const cancelDrmRpStep = {\r\n id: 1001,\r\n action: recoveryActions.drmCancel,\r\n state: recoveryStates.pendingFinalActionByRp,\r\n effectiveDateUtc: '10/10/2020T10:11:00',\r\n creator: rp,\r\n accidentCase: [\r\n {\r\n caseEnumValueId: 3,\r\n specializations: {\r\n mapping_AccidentCase_LiabilityScenario_Gia: {\r\n xLiablity: 0,\r\n yLiablity: 100,\r\n },\r\n },\r\n },\r\n ],\r\n specializations: {\r\n id: 1001,\r\n ui_WorkflowStep_Reason: {\r\n },\r\n },\r\n comments: [\r\n {\r\n id: 1001,\r\n content: 'Cancel DRM (by RP) comment',\r\n links: {\r\n id: 1001,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 1001,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const approveInitiateDrmStep = {\r\n id: 11,\r\n action: recoveryActions.drmApproveInitiateEscalation,\r\n state: recoveryStates.pendingDrmEscalationResponseByCounterParty,\r\n effectiveDateUtc: '11/11/2020T11:11:00',\r\n creator: ip,\r\n accidentCase: [\r\n {\r\n caseEnumValueId: 3,\r\n specializations: {\r\n mapping_AccidentCase_LiabilityScenario_Gia: {\r\n xLiablity: 100,\r\n yLiablity: 0,\r\n },\r\n },\r\n },\r\n ],\r\n specializations: {\r\n id: 11,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 11,\r\n content: 'Approve initiate DRM comment',\r\n links: {\r\n id: 11,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 11,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const counterOfferStep = {\r\n id: 7,\r\n action: recoveryActions.counterOffer,\r\n state: recoveryStates.pendingSecondActionByIp,\r\n effectiveDateUtc: '07/07/2020T07:07:00',\r\n creator: rp,\r\n accidentCase: [\r\n {\r\n caseEnumValueId: 2,\r\n specializations: {\r\n mapping_AccidentCase_LiabilityScenario_Gia: {\r\n xLiablity: 50,\r\n yLiablity: 50,\r\n },\r\n },\r\n },\r\n ],\r\n specializations: {\r\n id: 7,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 7,\r\n content: 'Counter offer comment',\r\n links: {\r\n id: 7,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 7,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const acceptCounterOfferStep = {\r\n id: 71,\r\n action: recoveryActions.accept,\r\n state: recoveryStates.pendingPayment,\r\n accidentCase: [],\r\n effectiveDateUtc: '07/07/2020T07:08:00',\r\n creator: ip,\r\n specializations: {\r\n id: 71,\r\n ui_WorkflowStep_Reason: {\r\n },\r\n },\r\n comments: [\r\n {\r\n id: 71,\r\n content: 'Accept counter offer comment',\r\n links: {\r\n id: 71,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 71,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const acceptCounterOfferDefaultedStep = {\r\n id: 72,\r\n action: recoveryActions.default,\r\n state: recoveryStates.pendingPayment,\r\n accidentCase: [],\r\n effectiveDateUtc: '07/07/2020T07:09:00',\r\n creator: ip,\r\n specializations: {\r\n id: 72,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 72,\r\n content: 'Accept counter-offer defaulted comment',\r\n links: {\r\n id: 72,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 72,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const counterOfferNoLiabilityStep = {\r\n id: 73,\r\n action: recoveryActions.counterOffer,\r\n state: recoveryStates.pendingSecondActionByIp,\r\n effectiveDateUtc: '07/07/2020T07:10:00',\r\n creator: rp,\r\n accidentCase: [\r\n {\r\n caseEnumValueId: 2,\r\n specializations: {\r\n mapping_AccidentCase_LiabilityScenario_Gia: {\r\n xLiablity: 100,\r\n yLiablity: 0,\r\n },\r\n },\r\n },\r\n ],\r\n specializations: {\r\n id: 73,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 73,\r\n content: 'Counter offer comment',\r\n links: {\r\n id: 73,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 73,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const acceptCounterOfferNoLiabilityStep = {\r\n id: 74,\r\n action: recoveryActions.accept,\r\n state: recoveryStates.closed,\r\n accidentCase: [],\r\n effectiveDateUtc: '07/07/2020T07:11:00',\r\n creator: ip,\r\n specializations: {\r\n id: 74,\r\n ui_WorkflowStep_Reason: {\r\n },\r\n },\r\n comments: [\r\n {\r\n id: 74,\r\n content: 'Accept counter offer (no liability) comment',\r\n links: {\r\n id: 74,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 74,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const acceptCounterOfferNoLiabilityDefaultedStep = {\r\n id: 75,\r\n action: recoveryActions.default,\r\n state: recoveryStates.closed,\r\n accidentCase: [],\r\n effectiveDateUtc: '07/07/2020T07:12:00',\r\n creator: ip,\r\n specializations: {\r\n id: 75,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 75,\r\n content: 'Accept counter-offer (no liability) defaulted comment',\r\n links: {\r\n id: 75,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 75,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const finalOfferStep = {\r\n id: 8,\r\n action: recoveryActions.finalOffer,\r\n state: recoveryStates.pendingFinalActionByRp,\r\n effectiveDateUtc: '08/08/2020T08:08:00',\r\n creator: ip,\r\n accidentCase: [\r\n {\r\n caseEnumValueId: 3,\r\n specializations: {\r\n mapping_AccidentCase_LiabilityScenario_Gia: {\r\n xLiablity: 100,\r\n yLiablity: 0,\r\n },\r\n },\r\n },\r\n ],\r\n specializations: {\r\n id: 1,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 1,\r\n content: 'Final offer comment',\r\n links: {\r\n id: 1,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 1,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const acceptFinalOfferStep = {\r\n id: 81,\r\n action: recoveryActions.accept,\r\n state: recoveryStates.pendingPayment,\r\n accidentCase: [],\r\n effectiveDateUtc: '08/08/2020T08:09:00',\r\n creator: rp,\r\n specializations: {\r\n id: 81,\r\n ui_WorkflowStep_Reason: {\r\n },\r\n },\r\n comments: [\r\n {\r\n id: 81,\r\n content: 'Accept final offer comment',\r\n links: {\r\n id: 81,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 81,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const acceptFinalOfferDefaultedStep = {\r\n id: 82,\r\n action: recoveryActions.default,\r\n state: recoveryStates.pendingPayment,\r\n accidentCase: [\r\n {\r\n caseEnumValueId: 1,\r\n specializations: {\r\n mapping_AccidentCase_LiabilityScenario_Gia: {\r\n xLiablity: 100,\r\n yLiablity: 0,\r\n },\r\n },\r\n },\r\n ],\r\n effectiveDateUtc: '08/08/2020T08:10:00',\r\n creator: ip,\r\n specializations: {\r\n id: 82,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 82,\r\n content: 'Accept final offer defaulted comment',\r\n links: {\r\n id: 82,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 82,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const withdrawDrmStep = {\r\n id: 12,\r\n action: recoveryActions.drmWithdraw,\r\n state: recoveryStates.closed,\r\n accidentCase: [],\r\n effectiveDateUtc: '05/05/2020T05:05:00',\r\n creator: ip,\r\n specializations: {\r\n id: 12,\r\n ui_WorkflowStep_Reason: {\r\n id: 12,\r\n reasonEnumIdentifier: 'RecoveryWithdrawReason',\r\n reasonEnumValueId: 4,\r\n },\r\n },\r\n comments: [\r\n {\r\n id: 12,\r\n content: 'Withdraw DRM comment',\r\n links: {\r\n id: 12,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 12,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const withdrawDrmAcceptStep = {\r\n id: 121,\r\n action: recoveryActions.drmWithdraw,\r\n state: recoveryStates.pendingPayment,\r\n accidentCase: [],\r\n effectiveDateUtc: '05/05/2020T05:06:00',\r\n creator: rp,\r\n specializations: {\r\n id: 121,\r\n ui_WorkflowStep_Reason: {\r\n id: 121,\r\n reasonEnumIdentifier: 'RecoveryWithdrawReason',\r\n reasonEnumValueId: 2,\r\n },\r\n },\r\n comments: [\r\n {\r\n id: 121,\r\n content: 'Withdraw DRM 2 comment',\r\n links: {\r\n id: 121,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 121,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const withdrawDrmStepWithAcknowledge = {\r\n id: 122,\r\n action: recoveryActions.drmWithdraw,\r\n state: recoveryStates.pendingDrmAcknowledgeWithdrawal,\r\n accidentCase: [],\r\n effectiveDateUtc: '05/05/2020T05:07:00',\r\n creator: ip,\r\n specializations: {\r\n id: 122,\r\n ui_WorkflowStep_Reason: {\r\n id: 122,\r\n reasonEnumIdentifier: 'RecoveryWithdrawReason',\r\n reasonEnumValueId: 3,\r\n },\r\n },\r\n comments: [\r\n {\r\n id: 122,\r\n content: 'Withdraw DRM comment',\r\n links: {\r\n id: 122,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 122,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const withdrawDrmAcknowledgedStep = {\r\n id: 123,\r\n action: recoveryActions.drmAcknowledgeWithdraw,\r\n state: recoveryStates.pendingPayment,\r\n accidentCase: [],\r\n effectiveDateUtc: '05/05/2020T05:08:00',\r\n creator: rp,\r\n specializations: {\r\n id: 123,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 123,\r\n content: 'Acknowledge Withdraw DRM comment',\r\n links: {\r\n id: 123,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 123,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const withdrawDrmRejectedStep = {\r\n id: 124,\r\n action: recoveryActions.drmRejectWithdraw,\r\n state: recoveryStates.pendingDrmGiaAdjudication,\r\n accidentCase: [],\r\n effectiveDateUtc: '05/05/2020T05:09:00',\r\n creator: rp,\r\n specializations: {\r\n id: 124,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 124,\r\n content: 'Reject Withdraw DRM comment',\r\n links: {\r\n id: 124,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 124,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const withdrawDrmDefaultedStep = {\r\n id: 125,\r\n action: recoveryActions.default,\r\n state: recoveryStates.pendingDrmGiaAdjudication,\r\n accidentCase: [],\r\n effectiveDateUtc: '05/05/2020T05:10:00',\r\n creator: rp,\r\n specializations: {\r\n id: 125,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 125,\r\n content: 'Default Withdraw DRM comment',\r\n links: {\r\n id: 125,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 125,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const respondDrmStep = {\r\n id: 13,\r\n action: recoveryActions.drmRespondEscalation,\r\n state: recoveryStates.pendingDrmApproveRespondEscalation,\r\n effectiveDateUtc: '01/01/2021T01:01:00',\r\n creator: rp,\r\n accidentCase: [\r\n {\r\n caseEnumValueId: 4,\r\n specializations: {\r\n mapping_AccidentCase_LiabilityScenario_Gia: {\r\n xLiablity: 50,\r\n yLiablity: 50,\r\n },\r\n },\r\n },\r\n ],\r\n specializations: {\r\n id: 13,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 13,\r\n content: 'Respond DRM comment',\r\n links: {\r\n id: 13,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 13,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const approveRespondDrmStep = {\r\n id: 14,\r\n action: recoveryActions.drmApproveRespondEscalation,\r\n state: recoveryStates.pendingDrmGiaAdjudication,\r\n effectiveDateUtc: '02/02/2021T02:02:00',\r\n creator: rp,\r\n accidentCase: [\r\n {\r\n caseEnumValueId: 3,\r\n specializations: {\r\n mapping_AccidentCase_LiabilityScenario_Gia: {\r\n xLiablity: 100,\r\n yLiablity: 0,\r\n },\r\n },\r\n },\r\n ],\r\n specializations: {\r\n id: 14,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 14,\r\n content: 'Approve respond DRM comment',\r\n links: {\r\n id: 14,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 14,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const respondDrmDefaultedStep = {\r\n id: 141,\r\n action: recoveryActions.default,\r\n state: recoveryStates.pendingDrmGiaAdjudication,\r\n accidentCase: [],\r\n effectiveDateUtc: '05/05/2020T05:06:00',\r\n creator: ip,\r\n specializations: {\r\n id: 141,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 141,\r\n content: 'Withdraw DRM defaulted comment',\r\n links: {\r\n id: 141,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 141,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const sendBackStep = {\r\n id: 16,\r\n action: recoveryActions.sendback,\r\n state: recoveryStates.sentback,\r\n accidentCase: [],\r\n effectiveDateUtc: '04/04/2021T04:04:00',\r\n creator: rp,\r\n specializations: {\r\n id: 16,\r\n ui_WorkflowStep_Reason: {\r\n reasonEnumIdentifier: 'RecoverySendbackReason',\r\n reasonEnumValueId: 1,\r\n },\r\n },\r\n comments: [\r\n {\r\n id: 16,\r\n content: 'Sendback comment',\r\n links: {\r\n id: 16,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 16,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const sendBackNoReinitiateStep = {\r\n id: 161,\r\n action: recoveryActions.sendback,\r\n state: recoveryStates.closed,\r\n accidentCase: [],\r\n effectiveDateUtc: '04/04/2021T04:05:00',\r\n creator: rp,\r\n specializations: {\r\n id: 161,\r\n ui_WorkflowStep_Reason: {\r\n reasonEnumIdentifier: 'RecoverySendbackReason',\r\n reasonEnumValueId: 2,\r\n },\r\n },\r\n comments: [\r\n {\r\n id: 161,\r\n content: 'Sendback comment',\r\n links: {\r\n id: 161,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 161,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const reinitiateStep = {\r\n id: 161,\r\n action: recoveryActions.reinitiate,\r\n state: recoveryStates.pendingCounterActionByRp,\r\n accidentCase: [\r\n {\r\n caseEnumValueId: 1,\r\n specializations: {\r\n mapping_AccidentCase_LiabilityScenario_Gia: {\r\n xLiablity: 100,\r\n yLiablity: 0,\r\n },\r\n },\r\n },\r\n ],\r\n effectiveDateUtc: '04/04/2021T04:05:00',\r\n creator: ip,\r\n specializations: {\r\n id: 161,\r\n ui_WorkflowStep_Reason: {\r\n },\r\n },\r\n comments: [\r\n {\r\n id: 161,\r\n content: 'Reinitiate comment',\r\n links: {\r\n id: 161,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 161,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const drmGiaAdjudicateIpStep = {\r\n id: 17,\r\n action: recoveryActions.drmGiaAdjudicate,\r\n state: recoveryStates.pendingPayment,\r\n accidentCase: [\r\n {\r\n caseEnumValueId: 3,\r\n specializations: {\r\n mapping_AccidentCase_LiabilityScenario_Gia: {\r\n xLiablity: 0,\r\n yLiablity: 100,\r\n },\r\n },\r\n },\r\n ],\r\n effectiveDateUtc: '05/05/2021T05:05:00',\r\n creator: null,\r\n specializations: {\r\n id: 17,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 17,\r\n content: 'GIA adjudication (IP) comment',\r\n links: {\r\n id: 17,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 17,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const drmGiaAdjudicateRpStep = {\r\n id: 171,\r\n action: recoveryActions.drmGiaAdjudicate,\r\n state: recoveryStates.closed,\r\n accidentCase: [\r\n {\r\n caseEnumValueId: 3,\r\n specializations: {\r\n mapping_AccidentCase_LiabilityScenario_Gia: {\r\n xLiablity: 100,\r\n yLiablity: 0,\r\n },\r\n },\r\n },\r\n ],\r\n effectiveDateUtc: '05/05/2021T05:06:00',\r\n creator: null,\r\n specializations: {\r\n id: 171,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 171,\r\n content: 'GIA adjudication (RP) comment',\r\n links: {\r\n id: 17,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 17,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const drmGiaRejectStep = {\r\n id: 18,\r\n action: recoveryActions.drmGiaReject,\r\n state: recoveryStates.closed,\r\n accidentCase: [\r\n {\r\n caseEnumValueId: 3,\r\n specializations: {\r\n mapping_AccidentCase_LiabilityScenario_Gia: {\r\n xLiablity: 100,\r\n yLiablity: 0,\r\n },\r\n },\r\n },\r\n ],\r\n effectiveDateUtc: '06/06/2021T06:06:00',\r\n creator: null,\r\n specializations: {\r\n id: 18,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 18,\r\n content: 'GIA rejection comment',\r\n links: {\r\n id: 18,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 18,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const sendPaymentDefaultedStep = {\r\n id: 19,\r\n action: recoveryActions.defaultPayment,\r\n state: recoveryStates.paymentDefaulted,\r\n accidentCase: [],\r\n effectiveDateUtc: '07/07/2022T07:07:00',\r\n creator: rp,\r\n specializations: {\r\n id: 5,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 5,\r\n content: 'Send payment defaulted comment',\r\n links: {\r\n id: 5,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 5,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const acknowledgePaymentDefaultedStep = {\r\n id: 20,\r\n action: recoveryActions.defaultPayment,\r\n state: recoveryStates.paymentDefaulted,\r\n accidentCase: [],\r\n effectiveDateUtc: '08/08/2020T08:08:00',\r\n creator: ip,\r\n specializations: {\r\n id: 5,\r\n ui_WorkflowStep_Reason: {},\r\n },\r\n comments: [\r\n {\r\n id: 5,\r\n content: 'Acknowledge payment defaulted comment',\r\n links: {\r\n id: 5,\r\n ui_WorkflowStepToComment: [\r\n {\r\n id: 5,\r\n roleEnumValueId: bolaCaseCommentType.id,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const recoveryData = {\r\n id: 1,\r\n workflow: {\r\n id: 1,\r\n referenceCode: 'RCV7104',\r\n createDateUtc: '01/01/2020T01:01:00',\r\n party: {\r\n Name: 'InitiatingParty',\r\n },\r\n claims: [\r\n {\r\n id: 101,\r\n specializations: {\r\n id: 101,\r\n mapping_Claim_Insurer: {\r\n id: ip.identity.insurerEntity.insurer.id,\r\n insurer: {\r\n Name: ip.identity.insurerEntity.insurer.insurerCode.Name,\r\n },\r\n },\r\n },\r\n links: {\r\n id: 101,\r\n ui_WorkflowToClaim: [\r\n {\r\n id: 101,\r\n roleEnumValueId: recoveryInitiatingParty,\r\n },\r\n ],\r\n },\r\n objects: [\r\n {\r\n id: 101,\r\n specializations: {\r\n id: 101,\r\n mapping_Object_Motor_VehicleRegistration: [\r\n {\r\n id: 101,\r\n number: 'IP_CAR',\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n id: 102,\r\n specializations: {\r\n id: 102,\r\n mapping_Claim_Insurer: {\r\n id: rp.identity.insurerEntity.insurer.id,\r\n insurer: {\r\n Name: rp.identity.insurerEntity.insurer.insurerCode.Name,\r\n },\r\n },\r\n },\r\n links: {\r\n id: 102,\r\n ui_WorkflowToClaim: [\r\n {\r\n id: 102,\r\n roleEnumValueId: recoveryReceivingParty,\r\n },\r\n ],\r\n },\r\n objects: [\r\n {\r\n id: 102,\r\n specializations: {\r\n mapping_Object_Motor_VehicleRegistration: [\r\n {\r\n id: 102,\r\n number: 'RP_CAR',\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n officer: {\r\n id: 1001,\r\n partySide: {\r\n Name: 'InitiatingParty',\r\n },\r\n identity: {\r\n id: 1001,\r\n insurerEntity: {\r\n id: 1001,\r\n person: {\r\n id: 1001,\r\n specializations: {\r\n id: 1001,\r\n mapping_Person_Gears: {\r\n id: 1001,\r\n name: 'Officer B',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n documents: [{\r\n id: 1,\r\n documentName: 'left_back',\r\n specializations: {\r\n id: 1,\r\n document_Document_DestinationDiskStorageInformation: {\r\n id: 1,\r\n fileSize: 1234,\r\n },\r\n },\r\n links: {\r\n id: 1,\r\n ui_WorkflowToDocument: [\r\n {\r\n id: 1,\r\n roleEnumValueId: 1,\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n id: 2,\r\n documentName: 'left_side',\r\n specializations: {\r\n id: 2,\r\n document_Document_DestinationDiskStorageInformation: {\r\n id: 2,\r\n fileSize: 4321,\r\n },\r\n },\r\n links: {\r\n id: 2,\r\n ui_WorkflowToDocument: [\r\n {\r\n id: 2,\r\n roleEnumValueId: 1,\r\n },\r\n ],\r\n },\r\n }],\r\n },\r\n payments: [\r\n {},\r\n ],\r\n accidentReports: [\r\n {\r\n id: 1,\r\n links: {\r\n id: 1,\r\n mapping_RecoveryTarget: [\r\n {\r\n id: 1,\r\n entityRoleEnumValueId: 1,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n amounts: {\r\n id: 1,\r\n specializations: {\r\n id: 1,\r\n mapping_Recovery_Amount: [\r\n {\r\n id: 1,\r\n amount: 1500,\r\n createDateUtc: '01/01/2020T02:03:00',\r\n currency: {\r\n Name: 'SGD',\r\n },\r\n identifier: {\r\n Name: recoverableAmountEnum,\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n};\r\n","export * from './GearsConfig';\r\nexport * from './AccidentReportConfig';\r\nexport * from './RecoveryConfig';\r\nexport * from './NcdConfig';\r\nexport * from './ArcConfig';\r\nexport * from './FolderConfig';\r\nexport * from './ThirdPartyReportConfig';\r\n","export * from './GearsConfigProvider';\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport React, {\r\n useCallback, useContext, useEffect, useState,\r\n} from 'react';\r\nimport styled from 'styled-components';\r\nimport { Widgetter } from '@shift/transform';\r\nimport {\r\n CircularLoader, FileCard, FileInfo, ThemeContext,\r\n} from '@shift/design-system';\r\nimport { useFetch } from 'src/libs/fetch';\r\nimport { download, loadPreview } from 'src/utils/documents/download';\r\nimport { getFileExtension } from 'src/utils';\r\n\r\nexport const LoaderWrapper = styled.span`\r\n display: inline-block;\r\n margin: auto 0.5rem;\r\n vertical-align: top;\r\n`;\r\n\r\nexport const ThumbnailWidget = ({ file }: { file: FileInfo }) => {\r\n const {\r\n src, size, thumbnailSrc, name,\r\n } = file;\r\n const theme = useContext(ThemeContext);\r\n const { imgPreview, download: dl } = useFetch();\r\n const [loading, setLoading] = useState(false);\r\n const [thumbnailData, setThumbnailData] = useState('');\r\n const downloadCallback = useCallback((url, fileName) => {\r\n if (!loading) download(dl, url ?? '', setLoading, fileName);\r\n }, [dl, setLoading, loading]);\r\n useEffect(() => {\r\n if (thumbnailSrc) {\r\n loadPreview(thumbnailSrc, imgPreview, setThumbnailData, setLoading, getFileExtension(name));\r\n }\r\n }, [src, size, imgPreview, thumbnailSrc, name]);\r\n\r\n return loading ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n );\r\n};\r\n\r\nexport const ThumbnailWidgetter: Widgetter = {\r\n transform: (file) => (\r\n typeof file === 'string' ? (\r\n \r\n {file}\r\n \r\n ) : \r\n ),\r\n};\r\n","// Only has the categories potentially used in gears\r\nexport enum DocumentCategory {\r\n UnClassified = 7,\r\n PoliceTranscript = 13,\r\n Handwritten = 11,\r\n SketchPlan = 27,\r\n PrivateHireCertificate = 28,\r\n AddendumForm = 29,\r\n IncidentVideo = 30,\r\n IncidentAudio = 31,\r\n IncidentPhoto = 32,\r\n RepairInvoice = 33,\r\n LetterOfRecoveryDemand = 34,\r\n LegalInvoice = 35,\r\n PaymentVoucher = 36,\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport React from 'react';\r\nimport { Field, FieldRenderProps } from 'react-final-form';\r\nimport { SingleFieldInformation, ArrayFieldInformation } from 'src/types';\r\n\r\nexport const ResetFormInput = ({ input }: FieldRenderProps) => {\r\n input.onChange(undefined);\r\n return null;\r\n};\r\n\r\nexport interface ConditionalFormFieldProps {\r\n sourceField: SingleFieldInformation | ArrayFieldInformation;\r\n condition?: (sourceValue: any) => any;\r\n targetFields: Array;\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const ConditionalFormField = ({\r\n sourceField,\r\n condition = (value: unknown) => !!value,\r\n targetFields,\r\n children,\r\n}: ConditionalFormFieldProps) => (\r\n \r\n {\r\n ({ input }: FieldRenderProps) => {\r\n if (condition(input.value)) {\r\n return children;\r\n }\r\n return targetFields.map((field) => (\r\n \r\n ));\r\n }\r\n }\r\n \r\n);\r\n","import { useEffect, useState } from 'react';\r\n\r\nconst getKeyboardFocusableElements = (element = document) => [...element.querySelectorAll(\r\n 'a, button, input, textarea, select, details,[tabindex]:not([tabindex=\"-1\"])',\r\n)].filter((el) => !el.hasAttribute('disabled'));\r\n\r\nexport const useKeyboardFocusableToggle = (ref: any) => {\r\n const [keyboardFocusables, setKeyboardFocusables] = useState([]);\r\n\r\n useEffect(() => {\r\n const { current } = ref;\r\n setKeyboardFocusables(getKeyboardFocusableElements(current));\r\n }, [ref]);\r\n\r\n\r\n return (visible: boolean) => {\r\n keyboardFocusables.forEach((element) => {\r\n element.setAttribute('tabindex', visible ? '0' : '-1');\r\n });\r\n };\r\n};\r\n","/* eslint-disable react/require-default-props */\r\nimport React, { useState, useRef, useEffect } from 'react';\r\nimport classNames from 'classnames';\r\nimport { FormSpy } from 'react-final-form';\r\nimport { isSectionValid } from 'src/utils/forms';\r\nimport propTypes from 'prop-types';\r\n\r\nimport { useKeyboardNavigation } from '@shift/design-system';\r\n\r\nimport { useKeyboardFocusableToggle } from 'src/libs/hooks/useKeyboardFocusableToggle';\r\n\r\nconst FormSection = ({\r\n title,\r\n name,\r\n children,\r\n useDifferentSectionIcon = false,\r\n collapsible = true,\r\n}) => {\r\n const [collapsed, setCollapsed] = useState(false);\r\n\r\n const keyboardListener = useKeyboardNavigation({\r\n onEnter: () => setCollapsed(!collapsed),\r\n });\r\n\r\n const bodyPanelRef = useRef(null);\r\n const toggleFocusable = useKeyboardFocusableToggle(bodyPanelRef);\r\n\r\n useEffect(() => toggleFocusable(!collapsed), [collapsed, toggleFocusable]);\r\n\r\n return (\r\n {\r\n const valid = isSectionValid(errors, name);\r\n return (\r\n
\r\n
\r\n \r\n {title}\r\n {collapsible && (\r\n setCollapsed(!collapsed)}\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};\r\n\r\nFormSection.propTypes = {\r\n name: propTypes.string.isRequired,\r\n title: propTypes.string.isRequired,\r\n children: propTypes.any.isRequired,\r\n useDifferentSectionIcon: propTypes.bool,\r\n collapsible: propTypes.bool,\r\n};\r\n\r\nexport default FormSection;\r\n","import React, { useState, useEffect } from 'react';\r\nimport styled from 'styled-components';\r\nimport classNames from 'classnames';\r\nimport { Field, FormSpy, useField } from 'react-final-form';\r\nimport { formSections } from 'src/config/form';\r\nimport { formTranslate, isSectionValid } from 'src/utils/forms';\r\nimport { AnyType } from 'src/types';\r\nimport { StyledText } from '@shift/design-system';\r\n\r\nconst scrollTo = (name: string) => {\r\n window.scrollTo(0, (document.getElementById(name)?.offsetTop ?? 0) + 40);\r\n};\r\n\r\nconst DriverPolicyInfos = styled(StyledText)`\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n`;\r\n\r\nexport interface FormSideBarProps {\r\n className?: string;\r\n sections: AnyType;\r\n}\r\n\r\nexport const FormSideBar = ({ sections, className = '' }: FormSideBarProps) => {\r\n const [selectedSection, setSelectedSection] = useState();\r\n const { input: isDriverPolicyHolder } = useField(formSections.driverSection.fields.isDriverPolicyHolder.path, { subscription: { value: true } });\r\n\r\n useEffect(() => {\r\n const handleScroll = () => {\r\n const array = Object.values(sections);\r\n let sectionName = array[0].name;\r\n array.forEach((section) => {\r\n const element = document.getElementById(section.name);\r\n const elementRect = element?.getBoundingClientRect();\r\n\r\n if ((elementRect?.top ?? 0) < 80) {\r\n sectionName = section.name;\r\n }\r\n });\r\n setSelectedSection(sectionName);\r\n };\r\n\r\n setSelectedSection(sections[Object.keys(sections)[0]].name);\r\n window.addEventListener('scroll', handleScroll);\r\n return () => window.removeEventListener('scroll', handleScroll);\r\n }, [sections]);\r\n\r\n return (\r\n
\r\n
\r\n ({value})}\r\n />\r\n {\r\n if (!value?.dialCode || !value?.number) {\r\n return null;\r\n }\r\n\r\n const fullNumber = `+${value.dialCode} ${value.number}`;\r\n return ();\r\n }}\r\n />\r\n ({value})}\r\n />\r\n
\r\n (\r\n
\r\n
{formTranslate('navigation')}
\r\n {Object.values(sections).map((section) => {\r\n let computedClassNames;\r\n if (section.useDifferentSectionIcon) {\r\n computedClassNames = 'fas fa-exclamation-triangle';\r\n } else {\r\n computedClassNames = isSectionValid(errors, section.name) ? 'fas fa-check-circle' : 'far fa-circle';\r\n }\r\n return (\r\n
  • \r\n scrollTo(section.name)}\r\n onKeyDown={() => scrollTo(section.name)}\r\n className={classNames({ selected: selectedSection === section.name })}\r\n >\r\n \r\n {formTranslate(section.title)}\r\n
  • \r\n \r\n );\r\n })}\r\n
    \r\n )}\r\n />\r\n
    \r\n );\r\n};\r\n","import React, { useCallback } from 'react';\r\nimport { translate } from 'src/utils/forms';\r\nimport { RadioGroupInput, RadioGroupInputProps } from '@shift/design-system';\r\n\r\nexport interface YesNoRadioProps extends Omit {\r\n onChange: (value: boolean) => void;\r\n value: boolean;\r\n}\r\n\r\nexport const YesNoRadio = ({\r\n onChange, value, onFocus, onBlur, ...others\r\n}: YesNoRadioProps) => {\r\n const options = {\r\n true: {\r\n labelName: translate('common:yes'),\r\n },\r\n false: {\r\n labelName: translate('common:no'),\r\n },\r\n };\r\n\r\n const onChangeCb = useCallback((v: string) => {\r\n onChange(v === 'true');\r\n }, [onChange]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport React from 'react';\r\nimport moment, { Moment } from 'moment-timezone';\r\nimport { DateFormat } from 'src/constants';\r\nimport { DatePicker, DatePickerProps, enGB } from '@shift/design-system';\r\n\r\ntype DateInputProps = {\r\n name?: string;\r\n value: string;\r\n onChange: (date: string) => void;\r\n error?: boolean;\r\n openUp: boolean;\r\n minDate?: Moment;\r\n maxDate?: Moment;\r\n disabled?: boolean;\r\n} & Pick\r\n\r\nexport const DateInput = ({\r\n onChange, value, error,\r\n minDate, maxDate, name,\r\n onBlur, onFocus, openUp,\r\n position, inline, disabled,\r\n placeholder,\r\n}: DateInputProps) => {\r\n const onDateChange = (date?: Date) => {\r\n const val = date ? moment(date).format(DateFormat) : '';\r\n onChange(val);\r\n };\r\n\r\n const date = value ? moment.tz(value, DateFormat, moment.tz.guess(true)).toDate() : undefined;\r\n return (\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { NumberInput, NumberInputProps } from '@shift/design-system';\r\n\r\n\r\nexport const IntegerInput = ({ onChange, ...props }: NumberInputProps) => (\r\n onChange && onChange(val?.replace(/[^0-9]/g, ''))}\r\n />\r\n);\r\n","/* eslint-disable no-unused-expressions */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport React, { useCallback, useEffect, useState } from 'react';\r\nimport {\r\n FileInfo, SelectInputOption, FilesUploadWithPreview, FilesUploadWithType as BaseFilesUploadWithType,\r\n\r\n FileFormats, VariantProvider, StyledSubHeader, withCustomStyles,\r\n} from '@shift/design-system';\r\n\r\nimport { useDebouncedCallback } from 'use-debounce';\r\n\r\nimport { uploadFile } from 'src/utils/documents/upload';\r\nimport { useTranslations, translate } from '@gears/translations';\r\n\r\nimport { DocumentCategory } from 'src/types';\r\nimport { useFetch } from 'src/libs/fetch';\r\nimport { noop, getFileExtension } from 'src/utils';\r\nimport { useSecurity } from 'src/libs/auth';\r\nimport { SecondaryTextButton } from '../../button';\r\n\r\nexport interface OnChangeFileValue {\r\n id: number;\r\n name: string;\r\n progress?: number;\r\n size: number;\r\n src: string;\r\n errorMessage?: string;\r\n}\r\nconst CustomSecondaryTextButton = withCustomStyles(SecondaryTextButton);\r\n\r\nexport interface DownloadButtonProps {\r\n visible?: boolean;\r\n onClick?: () => void;\r\n}\r\nexport const DownloadButton = ({\r\n onClick,\r\n visible,\r\n}: DownloadButtonProps) => (visible\r\n ? (\r\n \r\n {translate('document:download-all')}\r\n \r\n )\r\n : null);\r\n\r\n// TODO: Move to DS\r\nconst FilesUploadWrapper = ({\r\n acceptedFormats,\r\n maxFileSize,\r\n children,\r\n}: FilesUploadWrapper) => (\r\n <>\r\n {children}\r\n {acceptedFormats && (\r\n \r\n {translate('document:supported-formats')}\r\n {': '}\r\n {acceptedFormats.join(', ')}\r\n \r\n )}\r\n {maxFileSize && (\r\n \r\n {translate('document:document-max-size')}\r\n {': '}\r\n {maxFileSize}\r\n {translate('units:MB')}\r\n \r\n )}\r\n \r\n);\r\n\r\n\r\nconst getImage = (dataUrl: string): Promise => new Promise((resolve, reject) => {\r\n const image = new window.Image();\r\n image.src = dataUrl;\r\n image.onload = () => {\r\n resolve(image);\r\n };\r\n image.onerror = (event: Event | string, source?: string, lineno?: number, colno?: number, error?: Error) => {\r\n reject(error);\r\n };\r\n});\r\n\r\n// https://stackoverflow.com/a/51550052\r\nconst downscaleImage = (\r\n dataUrl: string,\r\n imageType: string, // e.g. 'image/jpeg'\r\n resolution: number, // max width/height in pixels\r\n quality: number, // e.g. 0.9 = 90% quality\r\n cb: (dowscaledImage: string) => void,\r\n) => {\r\n // Create a temporary image so that we can compute the height of the image.\r\n getImage(dataUrl).then((image) => {\r\n const oldWidth = image.naturalWidth;\r\n const oldHeight = image.naturalHeight;\r\n\r\n const longestDimension = oldWidth > oldHeight ? 'width' : 'height';\r\n const currentRes = longestDimension === 'width' ? oldWidth : oldHeight;\r\n if (currentRes > resolution) {\r\n // Calculate new dimensions\r\n const newSize = longestDimension === 'width'\r\n ? Math.floor((oldHeight / oldWidth) * resolution)\r\n : Math.floor((oldWidth / oldHeight) * resolution);\r\n const newWidth = longestDimension === 'width' ? resolution : newSize;\r\n const newHeight = longestDimension === 'height' ? resolution : newSize;\r\n\r\n // Create a temporary canvas to draw the downscaled image on.\r\n const canvas = document.createElement('canvas');\r\n canvas.width = newWidth;\r\n canvas.height = newHeight;\r\n\r\n // Draw the downscaled image on the canvas and return the new data URL.\r\n const ctx = canvas.getContext('2d');\r\n ctx?.drawImage(image, 0, 0, newWidth, newHeight);\r\n const newDataUrl = canvas.toDataURL(imageType, quality);\r\n cb(newDataUrl);\r\n return;\r\n }\r\n\r\n cb(dataUrl);\r\n });\r\n};\r\n\r\nexport interface FilesUploadProps {\r\n value: FileInfo[];\r\n onChange: (values: OnChangeFileValue[]) => any;\r\n isMulti: boolean;\r\n addText: string;\r\n direction?: 'column' | 'row';\r\n hasIcon?: boolean;\r\n types?: SelectInputOption[];\r\n onFocus: () => void;\r\n onBlur: () => void;\r\n width?: string;\r\n /** maxFileSize in MB */\r\n maxFileSize?: number;\r\n acceptedFormats?: FileFormats[];\r\n documentCategory?: DocumentCategory;\r\n documentType?: DocumentType;\r\n hasDownloadAllButton?: boolean;\r\n onDownloadAll?: () => void;\r\n}\r\n\r\nconst handleAdd = (\r\n newFiles: FileList,\r\n files: FileInfo[],\r\n isMulti: boolean,\r\n maxFileSize: number,\r\n cbs: {\r\n onChange: (list: any) => any;\r\n updateLabel: (value: React.SetStateAction) => void;\r\n },\r\n token: () => Promise,\r\n documentCategory?: DocumentCategory,\r\n) => {\r\n const { onChange, updateLabel } = cbs;\r\n\r\n // Do not remove spread as we don't want to change initial reference\r\n let newList = isMulti && files ? [...files] : [];\r\n const updateItem = (id: number, field: string, val: any) => {\r\n newList = newList.map((item) => (item.id === id ? { ...item, [field]: val } : item));\r\n onChange(newList);\r\n };\r\n\r\n const onFinishUpload = (file: File, tempId: number, idString: string) => {\r\n updateItem(tempId, 'progress', undefined);\r\n if (idString) {\r\n const id = parseInt(idString, 10);\r\n updateItem(tempId, 'id', id);\r\n }\r\n onChange(newList);\r\n };\r\n\r\n const onFail = (tempId: number, errorMessage: string) => {\r\n updateItem(tempId, 'progress', undefined);\r\n updateItem(tempId, 'errorMessage', errorMessage);\r\n onChange(newList);\r\n };\r\n\r\n // Get the smaller id (used to generate a temporary unique id for each new file)\r\n let currentId = Math.min(...newList.map((file) => file.id));\r\n if (currentId > 0) currentId = 0;\r\n\r\n for (let i = 0; i < (isMulti ? newFiles.length : 1); i += 1) {\r\n const file = newFiles[i];\r\n currentId -= 1;\r\n const tempId = currentId;\r\n newList.push({\r\n id: tempId,\r\n name: file.name,\r\n size: file.size,\r\n });\r\n\r\n if (file.type.startsWith('image/')) {\r\n const fr = new window.FileReader();\r\n fr.onload = () => {\r\n updateItem(tempId, 'src', fr.result);\r\n downscaleImage(`${fr.result}`, file.type, 500, 0.7, (downscaledImage) => { updateItem(tempId, 'thumbnailSrc', downscaledImage); });\r\n };\r\n fr.readAsDataURL(file);\r\n }\r\n\r\n if (file.size / 1024 ** 2 < maxFileSize) {\r\n uploadFile(\r\n file,\r\n (progress) => updateItem(tempId, 'progress', progress),\r\n (idString: string) => onFinishUpload(file, tempId, idString),\r\n (errorMessage: string) => onFail(tempId, errorMessage),\r\n documentCategory,\r\n token,\r\n );\r\n } else {\r\n updateItem(tempId, 'errorMessage', `${translate('document:file-exceeds')} ${maxFileSize}${translate('units:MB')}`);\r\n newList.filter(({ id }) => id !== tempId);\r\n onChange(newList);\r\n }\r\n }\r\n updateLabel(!!newFiles.length && !isMulti);\r\n};\r\n\r\nconst isInProgress = (list: FileInfo[]) => list.every(({ progress }) => progress !== undefined);\r\n\r\n// This is not passed inline in order to avoid re-renders\r\nconst BUTTON_VARIANTS = ['secondary', 'large'];\r\n\r\nexport const FilesUpload = ({\r\n addText,\r\n value,\r\n isMulti = false,\r\n onChange,\r\n direction = 'column',\r\n hasIcon = true,\r\n maxFileSize = 15,\r\n acceptedFormats,\r\n onFocus,\r\n onBlur,\r\n width = '50%',\r\n documentCategory,\r\n hasDownloadAllButton,\r\n onDownloadAll,\r\n ...props\r\n}: FilesUploadProps) => {\r\n const commonTranslate = useTranslations('common');\r\n const [useReplaceLabel, setUseReplaceLabel] = useState(false);\r\n const { token } = useSecurity();\r\n // Do not set thumbnails intially to avoid having the ds load them (unauthenticated)\r\n const [previews, updatePreviews] = useState((value?.map ? value?.map((v) => ({ ...v, thumbnailSrc: undefined })) : null) ?? []);\r\n const [updateErrorsDisplay] = useDebouncedCallback((list: FileInfo[]) => {\r\n if (!isInProgress(list)) {\r\n onFocus();\r\n onBlur();\r\n }\r\n }, 200);\r\n\r\n const onChangeCallback = useCallback((list: any) => {\r\n onChange && onChange(list);\r\n updateErrorsDisplay(list);\r\n }, [onChange, updateErrorsDisplay]);\r\n\r\n const handleRemove = (id: number) => {\r\n const newValue = value.filter((item) => item.id !== id);\r\n onChangeCallback(newValue);\r\n setUseReplaceLabel(false);\r\n };\r\n\r\n const onAddCb = useCallback((newFiles: FileList) => handleAdd(\r\n newFiles,\r\n value,\r\n isMulti,\r\n maxFileSize,\r\n {\r\n onChange: onChangeCallback,\r\n updateLabel: setUseReplaceLabel,\r\n },\r\n token,\r\n documentCategory,\r\n ), [onChangeCallback, setUseReplaceLabel, value, isMulti, maxFileSize, token, documentCategory]);\r\n\r\n const { imgPreview, download: dl } = useFetch();\r\n useEffect(() => {\r\n let array = value ?? [];\r\n array = Array.isArray(array) ? array : [array];\r\n Promise.all(array.map(async (preview): Promise => {\r\n if (!preview) {\r\n return null;\r\n }\r\n\r\n if (preview?.src && preview.src.startsWith('data:')) {\r\n return preview;\r\n }\r\n\r\n const result = preview.thumbnailSrc\r\n && await imgPreview(preview.thumbnailSrc, getFileExtension(preview.name));\r\n // check type img\r\n return { ...preview, thumbnailSrc: result };\r\n }))\r\n .then((prevs) => prevs.filter((preview): preview is FileInfo => !!preview))\r\n .then((prevs) => updatePreviews(prevs));\r\n }, [value, imgPreview]);\r\n\r\n return (\r\n \r\n \r\n url && filename && dl(url, filename)}\r\n acceptedFormats={acceptedFormats}\r\n uploadButtonVariants={BUTTON_VARIANTS}\r\n secondaryButton={hasDownloadAllButton\r\n ? (\r\n 0}\r\n onClick={onDownloadAll}\r\n />\r\n ) : null}\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n {...props}\r\n />\r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport const FilesUploadWithType = ({\r\n addText,\r\n value,\r\n types,\r\n isMulti = false,\r\n onChange,\r\n hasIcon = true,\r\n maxFileSize = 15,\r\n acceptedFormats,\r\n onFocus,\r\n onBlur,\r\n documentCategory,\r\n hasDownloadAllButton,\r\n onDownloadAll,\r\n ...props\r\n}: FilesUploadProps) => {\r\n const [updateErrorsDisplay] = useDebouncedCallback((list: FileInfo[]) => {\r\n if (!isInProgress(list)) {\r\n onFocus();\r\n onBlur();\r\n }\r\n }, 200);\r\n\r\n const commonTranslate = useTranslations('common');\r\n const onChangeCallback = useCallback((list) => {\r\n onChange && onChange(list);\r\n updateErrorsDisplay(list);\r\n }, [onChange, updateErrorsDisplay]);\r\n\r\n const [useReplaceLabel, setUseReplaceLabel] = useState(false);\r\n const { download: dl } = useFetch();\r\n const { token } = useSecurity();\r\n\r\n const handleRemove = (id: number) => {\r\n onChangeCallback(value.filter((item) => item.id !== id));\r\n setUseReplaceLabel(false);\r\n };\r\n\r\n const onAddCb = useCallback((newFiles: FileList) => handleAdd(\r\n newFiles,\r\n value,\r\n isMulti,\r\n maxFileSize,\r\n {\r\n onChange: onChangeCallback,\r\n updateLabel: setUseReplaceLabel,\r\n },\r\n token,\r\n documentCategory,\r\n ), [onChangeCallback, setUseReplaceLabel, value, isMulti, maxFileSize, token, documentCategory]);\r\n\r\n return (\r\n \r\n \r\n {\r\n const newList = value.map((item) => (item.id === id ? { ...item, type } : item));\r\n onChangeCallback(newList);\r\n }}\r\n i18n={\r\n {\r\n documentType: commonTranslate('document-type'),\r\n filename: commonTranslate('filename'),\r\n }\r\n }\r\n onRemove={handleRemove}\r\n onClickOnFile={(url, filename) => url && filename && dl(url, filename)}\r\n acceptedFormats={acceptedFormats}\r\n secondaryButton={hasDownloadAllButton\r\n ? (\r\n 0}\r\n onClick={onDownloadAll}\r\n />\r\n ) : null}\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n {...props}\r\n />\r\n \r\n \r\n );\r\n};\r\ninterface FilesUploadWrapper {\r\n children: React.ReactNode;\r\n acceptedFormats?: FileFormats[];\r\n maxFileSize: number;\r\n}\r\n","/* global XMLHttpRequest, FormData */\r\n\r\nimport { apiConfig } from 'src/config';\r\nimport { DocumentCategory } from 'src/types';\r\n\r\nexport const uploadFile = (\r\n file: File,\r\n onProgress: (progress: number) => void,\r\n onFinish: (id: string) => void,\r\n onError: (errorMessage: string) => void,\r\n documentCategory: DocumentCategory = DocumentCategory.UnClassified,\r\n token: () => Promise,\r\n) => {\r\n token()\r\n .then((t) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.upload.onprogress = (e) => onProgress((e.loaded / e.total) * 100);\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === XMLHttpRequest.DONE) {\r\n if (xhr.status === 200) {\r\n onFinish(xhr.response);\r\n } else {\r\n onError(xhr.response);\r\n }\r\n }\r\n };\r\n xhr.onerror = () => {\r\n onError('Failed');\r\n };\r\n xhr.open('POST', apiConfig.uploadUri, true);\r\n if (t) {\r\n xhr.setRequestHeader('Authorization', `Bearer ${t}`);\r\n }\r\n xhr.setRequestHeader('X-FileName', encodeURI(file.name)); // Pass the filename along\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n formData.append('documentCategory', documentCategory.toString());\r\n xhr.send(formData);\r\n }, () => onError('Failed'));\r\n};\r\n","/* eslint-disable no-unused-expressions */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport React, { useState } from 'react';\r\nimport {\r\n FileInfo, SelectInputOption, FilesSelection as BaseFilesSelection, VariantProvider,\r\n} from '@shift/design-system';\r\n\r\nimport { useTranslations } from '@gears/translations';\r\n\r\nimport { useFetch } from 'src/libs/fetch';\r\nimport { apiConfig } from 'src/config';\r\nimport { OnChangeFileValue } from './files-upload';\r\n\r\nexport interface FilesSelectionProps {\r\n value: FileInfo[];\r\n selectableFiles: FileInfo[];\r\n onChange: (values: OnChangeFileValue[]) => any;\r\n types?: SelectInputOption[];\r\n reportReference: string;\r\n}\r\n\r\nexport const FilesSelection = ({\r\n value,\r\n selectableFiles,\r\n types,\r\n onChange,\r\n reportReference,\r\n ...props\r\n}: FilesSelectionProps) => {\r\n const commonTranslate = useTranslations('common');\r\n const [files, setFiles] = useState(selectableFiles || []);\r\n\r\n const { download } = useFetch();\r\n\r\n const selection = value ? value.map((f) => f.name) : [];\r\n\r\n const dl = ((name: string) => download(`${apiConfig.importedDocumentUri}/${reportReference}/${name}`, name));\r\n\r\n return (\r\n \r\n {\r\n const newFileList = files.map((item) => (item.id === id ? { ...item, type } : item));\r\n setFiles(newFileList);\r\n\r\n const newValue = value ? value.map((f) => (f.id === id ? { ...f, type } : f)) : [];\r\n onChange(newValue as OnChangeFileValue[]);\r\n }}\r\n i18n={\r\n {\r\n documentType: commonTranslate('document-type'),\r\n filename: commonTranslate('filename'),\r\n }\r\n }\r\n onClickOnFile={(_url, filename) => filename && dl(filename)}\r\n selection={selection}\r\n onSelectionChange={(names) => {\r\n const newList = files.filter((f) => names.indexOf(f.name) > -1);\r\n onChange(newList as OnChangeFileValue[]);\r\n }}\r\n pageSize={8}\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n {...props}\r\n />\r\n \r\n );\r\n};\r\n","/* eslint-disable no-restricted-globals */\r\nimport React, {\r\n useMemo, useCallback,\r\n} from 'react';\r\nimport {\r\n SplitDateInput as SplitDateInputBase,\r\n SplitDateInputProps,\r\n} from '@shift/design-system';\r\nimport moment from 'moment-timezone';\r\nimport { DateFormat } from 'src/constants';\r\nimport { toDateTimeWithoutTz } from '../../../utils';\r\n\r\nexport interface SplitDateProps extends\r\n Omit {\r\n value: string;\r\n onChange: (date: string) => void;\r\n}\r\n\r\nexport const SplitDateInput = ({\r\n name,\r\n value,\r\n onChange,\r\n formatValue,\r\n onFocus,\r\n onBlur,\r\n error,\r\n disabled,\r\n valid,\r\n}: SplitDateProps) => {\r\n const date = useMemo(() => {\r\n if (value) {\r\n const tz = moment.tz.guess(true);\r\n return toDateTimeWithoutTz(moment.tz(value, DateFormat, tz));\r\n }\r\n return undefined;\r\n }, [value]);\r\n\r\n const onChangeCb = useCallback((val: Date | undefined) => {\r\n if (onChange) {\r\n if (val) {\r\n onChange(moment({ year: val.getFullYear(), month: val.getMonth(), day: val.getDate() }).format(DateFormat));\r\n } else {\r\n onChange('');\r\n }\r\n }\r\n }, [onChange]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n","module.exports = __webpack_public_path__ + \"static/media/login_background.e369b5e6.webp\";","module.exports = __webpack_public_path__ + \"static/media/gia_logo.8160128a.svg\";","module.exports = __webpack_public_path__ + \"static/media/gears_logo.7e520113.svg\";","module.exports = __webpack_public_path__ + \"static/media/gears_logo.fc48cde3.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","import { useParams } from 'react-router-dom';\r\n\r\nexport const useIdFromParams = (): number | undefined => {\r\n const { id } = useParams();\r\n if (id && typeof id === 'string') {\r\n return parseInt(id, 10);\r\n }\r\n return undefined;\r\n};\r\n","import { useLayoutEffect, useState } from 'react';\r\nimport { runtimeConfig, RuntimeConfig } from 'src/config/runtime-config';\r\n\r\nexport interface OctopusConfig {\r\n deploymentDate: RuntimeConfig['deploymentDate'];\r\n projectName: RuntimeConfig['projectName'];\r\n releaseVersion: RuntimeConfig['releaseVersion'];\r\n}\r\n\r\nexport const useOctopusConfig = () => {\r\n const [octopusConfig, setOctopusConfig] = useState();\r\n\r\n useLayoutEffect(() => {\r\n if (typeof window !== 'undefined') {\r\n const { releaseVersion, projectName, deploymentDate } = runtimeConfig();\r\n setOctopusConfig({ releaseVersion, projectName, deploymentDate });\r\n }\r\n }, []);\r\n\r\n return octopusConfig;\r\n};\r\n","import {\r\n useRef, useEffect, EffectCallback, DependencyList,\r\n} from 'react';\r\n\r\n// https://stackoverflow.com/a/57632587/7945461\r\nexport function useUpdateEffect(effect: EffectCallback, dependencies: DependencyList = []) {\r\n const isInitialMount = useRef(true);\r\n\r\n /* eslint-disable react-hooks/exhaustive-deps */\r\n useEffect(() => {\r\n if (isInitialMount.current) {\r\n isInitialMount.current = false;\r\n } else {\r\n effect();\r\n }\r\n }, dependencies);\r\n}\r\n","import React, {\r\n createContext, ReactElement, useState, useCallback, useContext,\r\n} from 'react';\r\nimport {\r\n ModalHeader, ModalContent, Modal, StyledText, ThemeContext, withCustomStyles, Card,\r\n TextButton,\r\n} from '@shift/design-system';\r\n\r\nimport { noop } from './utils';\r\n\r\ninterface ModalContext {\r\n displayMessage: (message: string[]) => void;\r\n}\r\n\r\nexport const MessageModalContext = createContext({ displayMessage: noop });\r\n\r\nexport const MessageModalProvider = ({ children }: { children: ReactElement }) => {\r\n const [messages, setMessage] = useState(null);\r\n const displayMessage = useCallback((msg: string[]) => setMessage(msg), []);\r\n const { colors } = useContext(ThemeContext);\r\n const CustomCard = withCustomStyles(Card);\r\n\r\n if (messages && (!Array.isArray(messages) || !messages.length)) {\r\n return null;\r\n }\r\n return (\r\n <>\r\n setMessage(null)} zIndex={50000}>\r\n Notification\r\n \r\n \r\n {messages?.map((message) => (\r\n \r\n {message.toString()}\r\n \r\n ))}\r\n \r\n \r\n
    \r\n setMessage(null)}>\r\n Close\r\n \r\n
    \r\n
    \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { DateFormat } from 'src/constants';\r\nimport { parseOffsetDate, parseUtcDate } from 'src/utils';\r\nimport {\r\n Filter, SearchOperationType, Parameter, ParameterType, SearchOperationFormatSpecificType,\r\n} from './filters';\r\nimport { translate } from '../../utils/forms';\r\n\r\n// TODO: Use formatters\r\nconst formatParameterValue = (param: Parameter): {formatted: string; value: string} => {\r\n if (!param.value) {\r\n return { value: param.value, formatted: translate('common:NA') };\r\n }\r\n\r\n const result = { value: param.value, formatted: '' };\r\n switch (param.type) {\r\n case ParameterType.Enum:\r\n result.formatted = translate(`enums:${param.value}`);\r\n break;\r\n case ParameterType.DateTimeOffset:\r\n result.formatted = parseOffsetDate(param.value).format(DateFormat);\r\n break;\r\n case ParameterType.DateTimeUtc:\r\n result.formatted = parseUtcDate(param.value).format(DateFormat);\r\n break;\r\n default:\r\n result.formatted = param.value;\r\n }\r\n return result;\r\n};\r\n\r\nexport const FilterText = ({ filter }: { filter: Filter }) => {\r\n const { field: { formatType, ...field }, operation } = filter;\r\n const name = field.i18NId ? translate(field.i18NId) : translate(`filters:${field.id}`);\r\n const or = translate('filter-list:or');\r\n const { parameters, type: operationType } = operation;\r\n const values = parameters.map((p) => formatParameterValue(p));\r\n const formattedValues = values.map((p) => p.formatted);\r\n\r\n switch (formatType) {\r\n case SearchOperationType.Equal:\r\n case SearchOperationType.EnumIdEqual:\r\n return <>{`${name} = ${formattedValues.join(` ${or} `)}`};\r\n case SearchOperationType.Between:\r\n return (<>{(values[0].value ? `${formattedValues[0]} <= ` : '') + name + (values[1].value ? ` <= ${formattedValues[1]}` : '')});\r\n case SearchOperationType.Match:\r\n return <>{`${name} = ${formattedValues[0]}`};\r\n case SearchOperationType.NotEqual:\r\n return <>{`${name} != ${formattedValues[0]}`};\r\n case SearchOperationFormatSpecificType.ConditionalBooleanEquality:\r\n return <>{`${name} = ${translate(operationType === SearchOperationType.Equal ? 'common:yes' : 'common:no')}`};\r\n default:\r\n throw new Error('unknown search type');\r\n }\r\n};\r\n","export * from './enriched-options';\r\nexport * from './claim';\r\nexport * from './anyType';\r\nexport * from './enums';\r\nexport * from './SearchResult';\r\nexport * from './formTypes';\r\nexport * from './contactNumber';\r\nexport * from './DocumentCategory';\r\n","import React, { useContext } from 'react';\r\nimport {\r\n GridItem, Grid, StyledSubHeader, ThemeContext,\r\n} from '@shift/design-system';\r\n\r\nexport interface SubHeaderFormProps {\r\n text: string;\r\n icon?: JSX.Element;\r\n}\r\nexport const SubHeaderForm = ({ text, icon }: SubHeaderFormProps) => {\r\n const { colors } = useContext(ThemeContext);\r\n return (\r\n \r\n \r\n \r\n {text}\r\n \r\n \r\n \r\n {icon && icon}\r\n \r\n \r\n );\r\n};\r\n","import moment from 'moment-timezone';\r\nimport { init, Locale } from '@gears/translations';\r\n\r\nimport './moment-config';\r\n\r\nexport * from './context-translate';\r\n\r\n// set the Locale to use for translation and moment config\r\nexport const configureLocale = (locale: Locale) => {\r\n init(locale);\r\n moment.locale(locale);\r\n};\r\n","import React, { useContext } from 'react';\r\nimport {\r\n GridItem, Grid, ThemeContext, CircularLoader as BaseCircularLoader,\r\n} from '@shift/design-system';\r\n\r\nexport interface GridCenteredCircularLoaderProps {\r\n height?: string;\r\n width?: string;\r\n size?: string;\r\n color?: string;\r\n}\r\nexport const GridCenteredCircularLoader = ({\r\n height = '100%',\r\n width = '16px',\r\n size = '120px',\r\n color,\r\n}: GridCenteredCircularLoaderProps) => {\r\n const { colors } = useContext(ThemeContext);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"],"sourceRoot":""}