{"version":3,"sources":["infrastructure/MultipartLink.tsx","index.tsx","instructMatter/InstructMatterRepositories.ts","integrationConfiguration/IntegrationConfigurationBanner.tsx","integrationConfiguration/tabs/InnographyTab.tsx","integrationConfiguration/selectors/ContactListSelector.tsx","integrationConfiguration/tabs/VisionSixTab.tsx","integrationConfiguration/IntegrationConfigurationRepository.tsx","integrationConfiguration/tabs/ExternalAPIConfigurationTab.tsx","integrationConfiguration/IntegrationConfigurationPage.tsx","infrastructure/ApplicationInsights.tsx","locales/common.ts","learnMore/LearnMoreBanner.tsx","instructMatter/InstructMatterFormDialog.tsx","learnMore/LearnMorePage.tsx","i18n.ts","locales/enTranslation.ts","locales/auTranslation.ts","leadsDetail/LeadsDetailRepository.tsx"],"names":["GRAPHQL_ENDPOINT","uploadLink","uri","multiPartLink","operation","forward","map","data","Array","isArray","length","concat","isFileObject","value","Object","values","includes","instanceOfFile","i","isInstanceOfFile","isPropertyInstanceOfFile","undefined","hasOwnProperty","file","isfile","File","isblob","Blob","setLicenseKey","fragmentMatcher","introspectionQueryResultData","__schema","types","kind","name","possibleTypes","httpLink","credentials","errorLink","graphQLErrors","networkError","message","extensions","code","window","location","replace","consoleLink","wsClient","connectionParams","Authorization","token","sessionStorage","getItem","RequestSource","lazy","reconnect","webSocketLink","authLink","_","headers","authorization","requestLink","split","query","definition","multiPartRequestLink","variables","some","isUploadRequest","from","resetApolloClient","resetStore","cache","writeData","defaults","connectToDevTools","defaultOptions","watchQuery","fetchPolicy","errorPolicy","mutate","link","client","TimerContext","MatterManagementContext","TasksSummaryContext","MatterSummaryContextProvider","utils","App","document","getElementById","CreatePendingMattersSubscription","CreateInstructMatterSubscription","SendInstructMatterMutation","useStyles","makeStyles","theme","createStyles","root","width","padding","container","buttonContainer","position","color","BrandColors","TextPrimary","paddingLeft","fontFamily","Font","Main","fontSize","FontSize","PX","size8","letterSpacing","lineHeight","LineHeight","ExtraLarge","paddingRight","top","transform","height","size10","TemplatePrimary","IntegrationConfigurationBanner","title","onClickBack","classes","className","rvKey","rvbuttonType","icon","onClick","rvIcon","rvClassName","label","style","Label","Heading4","display","flex","flexFlow","textField","urlWrapper","alignItems","margin","InnographyTab","props","urlHelpText","isValid","isEnabled","isLoading","state","setState","fetchData","refreshData","onSuccess","onError","InnographyConfigQuery","then","results","catch","reason","retrieveInnographyConfigQueryData","onRetrieveData","url","settings","integrations","innography","config","Grid","spacing","item","xs","md","justify","FormControlLabel","control","Checkbox","checkedIcon","checked","onChange","event","prevState","target","TextField","required","helperText","error","disabled","variant","helpText","isURL","mutation","UpdateInnographyConfigMutation","_prevState","listPaper","maxHeight","ContactListSelector","refresh","Vision6ContactListsQuery","retrieveVision6ContactListsQueryData","vision6","contactList","contact","listId","handleChange","onSelection","getInputProps","params","InputProps","endAdornment","Fragment","CircularProgress","size","multiple","Autocomplete","loading","options","disablePortal","getOptionLabel","option","paper","renderInput","fullWidth","renderOption","inputValue","matches","parts","part","index","key","fontWeight","highlight","text","apiWrapper","buttonWrapper","justifyContent","VisionSixTab","isSendEmailViaVision6","isValidAPI","apiKey","isValidAPILoading","subscriptionResponse","Vision6ConfigQuery","retrieveVision6ConfigQueryData","sendEmailsViaVision6","contactListName","contactListId","onCheckboxChange","InputAdornment","AuthenticateVision6Mutation","authenticate","status","UpdateVision6ConfigMutation","update","IntegrationSettingsNamesQuery","textFieldWithButton","ExternalAPIConfigurationTab","clientKey","clientSecret","clientData","ClientDataQuery","createApiUser","CreateApiUser","administrator","subscribeSettingNotificationObj","subscribeApiNotification","unsubscribe","subscribe","ApiSubscription","next","createExternalApiAccessNotification","err","console","readOnly","v4","onSubmitLoading","IntegrationConfigurationList","wrapper","backgroundColor","sidebar","maxWidth","sidebarInner","sidebarList","right","left","bottom","overflow","content","flexGrow","tabLoaderWrapper","IntegrationConfigurationPage","selectedTable","InnographyConfiguration","tabs","isTabLoading","pageState","setPageState","fetchTabData","routeTab","match","tab","subscribeSettingNotification","SettingNotificationSubscription","settingNotification","retrieveIntegrationSettingsNamesQueryData","onIntegrationTabRetrieved","settingNames","settingName","history","push","List","internalName","UserFeature","HasAccess","hasInnographyLink","Vision6Configuration","hasVisionSix","ListItem","guidID","button","selected","ListItemAvatar","Avatar","getIcon","ListItemText","primary","secondary","description","ExternalAPIConfiguration","reactPlugin","appInsights","instrumentationKey","samplingPercentage","loadAppInsights","countryToLanguage","getLanguageCodeByCountry","countryCode","marginRight","textTransform","LearnMoreBanner","isButtonLinkEnabled","href","startIcon","download","paperRoot","controlWrapper","controlWrapperCol","maring","contentWrapper","heading","typography","pxToRem","headingIcon","minWidth","radioGroup","infoContainer","textOverflow","whiteSpace","textAlign","dropZone","minHeight","dropZoneFont","marginBottom","loaderWrapper","useState","refreshKey","setRefreshKey","homeCountryQuery","currencyQuery","initialValues","isFormSubmit","isSaveAndClose","isSaveAndNew","isDetailsPanelExpand","areaOfLaw","instructions","files","clientName","clientContact","matterTitle","yourReference","otherPartyType","otherPartyName","otherPartyContact","otherPartyAddress","otherPartyPhone","otherPartyEmail","disputedAmount","onSubmit","form","callback","input","areaOfLawGuid","instruction","prevKey","setConfig","batch","reset","onClose","onValdiate","onRequired","onSaveAndClose","change","onSaveAndNew","onInputChanged","onAddressSelection","placeType","address","fullAddress","filter","n","join","anchor","open","validate","keepDirtyOnReinitialize","initialValuesEqual","debug","log","render","errors","handleSubmit","submitting","pristine","keys","onFieldRequiredError","subscription","touched","accordion","defaultExpanded","expanded","expandIcon","id","sm","lg","meta","selection","onBlur","multiline","freeSolo","homeCountry","stringValue","type","prefix","currencySymbol","symbol","component","allowNull","detailPanel","inputProps","maxFileSize","showFileNames","useChipsForPreview","filesLimit","dropzoneText","dropzoneClass","existingFiles","newFiles","forEach","documentFile","onDelete","filteredFiles","onDrop","controlButtonComponent","LearnMoreEnum","contentContainer","boxShadow","borderRadius","iframeContainer","LearnMorePage","command","getTitleAndVideo","LEARN_ABOUT_DASHBOARD","LEARN_ABOUT_DRILLDOWNS","LEARN_ABOUT_PERSONALISING","FEE_EARNER_DASHBOARD","NEW_ENQUIRIES","New_Enquiry_Process_Overview","Add_New_Enquiries","Mailing_Lists","Managing_Users","Following_Up","Clients_And_Contacts","Managing_Referrers","USING_THE_OUTLOOK_ADD_IN","TASKS","MATTER_MANAGEMENT","TASK_MANAGEMENT_BASICS","DELEGATING_TASKS_TO_TEAMS","PHONE_MESSAGES","REPORTING_ON_ENQUIRIES","CONFIGURING_NEW_ENQUIRY_NOTIFICATIONS","FIRM_STRUCTURE","LOOKUP_LISTS","area_of_law","client_and_contact_tags","dashboard_panel","enquiry_source","enquiry_follow_up_action","loss_reason","matter_follow_up_action","priority","po_box_type","referrer_source","referrer_type","relationship_quality","task_category","task_type","task_type_group","timesheet_basics","managing_draft_time_items","timesheet_advanced","staff_budgets","Using_Firm_Dashboard","Using_Fee_Earner_Dashboard","Drilldowns","System_Configuration_Overview","Matter_Searching_Client","LEARN_ABOUT_CREATING_VIEWS","Matter_Searching_Client_Internal_User","Using_Matter_Lists","Creating_Views","Matter_Searching","Configuring_Dashboards","EnquiryBoardView","EventsAndCampaigns","MatterForecast","Adding_New_Enquiries","Adding_New_Contacts","Managing_Existing_Contacts","Using_The_Chart_Outlook_Add_In","Using_The_Matter_Outlook_Add_In","Enquiry_Custom_Fields","Digital_Tracking","goBack","controls","playing","use","init","fallbackLng","lng","interpolation","escapeValue","resources","translation","Help","ScrubEnquiryData","LeadDashboardLayout","EnquiryDashboardLayout","FirmDashboardLayout","Tasks","PhoneCalls","TasksFound","LoginActivity","NameAccess","Configuration","Home","Admin","GeneralDetails","GuidId","Billed","BilledInxTax","BilledFees","PercentageEstimate","PercentageExposure","PercentageEstimateShort","Financials","MatterId","FileNumber","MatterNumber","Logo","Reference","ClientName","Client","ClientPhone","ClientEmail","Clients","Status","LastUpdate","PublishedDate","InternalCode","FileLocation","Matter","Matters","StaffBillingSummary","MattersReferred","MatterType","MatterTypeCategory","EstimatedCosts","BillingMethod","CostAgreementReceived","LongTitle","Completed","Title","Description","State","FinancialBilled","TrustFund","TrustBalance","BilledTimeAndFees","BilledCostAndPayments","Unbilled","UnbilledShort","UnbilledFees","UnbilledDisbursements","UnbilledDisbursementsShort","Price","Deposit","ExchangeDate","CoolingOffDate","DepositDueDate","DepositPaidDate","EarliestPriorityDate","ApplicationNumber","PublicationDate","PublicationNumber","GrantNumber","Class","GoodsAndServices","CostAgreementReceivedDate","CostAgreementRequired","UnbilledTimeAndFees","Disbursements","UnbilledCostRecoveries","UnbilledOfficePayments","UnbilledAnticipatedPayments","TrustGeneralBalance","DebtorsBalance","CurrentDebtorsBalanceIncTax","ThirtyDebtorsBalanceIncTax","SixtyDebtorsBalanceIncTax","NintyDebtorsBalanceIncTax","CurrentWIPBalanceExTax","ThirtyWIPBalanceExTax","SixtyWIPBalanceExTax","NinetyWIPBalanceExTax","Trust","TrustDeposits","TrustWithdrawal","TrustControlledMoneyBalance","TrustInvestmentsBalance","Role","ABN","ACN","OrganisationType","BusinessType","OtherSide","CategoryId","Category","CountryId","Country","ClientOnly","Property","PropertyType","PropertyLabel","Family","BrandFamily","Stage","MatterNotes","AwaitingInstructions","FIRBStatus","Documents","SearchDocument","Messages","SearchMessages","Timeline","SearchTimeline","Overdue","DueComing","Today","CompletedOnly","UploadedOn","CreatedOn","By","Notes","Download","SummaryList","Summary","UserList","LeadsSummary","Leads","EnquiriesSummary","Enquiries","KeyOpportunity","Enquiry","EnquiryDetails","MyEnquiries","MyKeyOpportunities","SearchNewEnquiries","SearchNewKeyOpportunity","MyNewEnquiries","MyNewKeyOpportunity","EnquiriesDashboard","LeadsDashboard","User","RoleSummary","Roles","MatterAccess","MessageActivity","TimesheetActivity","TimelineAnalytics","MatterAnalytics","NameAnalytics","LoginAnalytics","SearchEntries","SearchMatters","SearchStaffBudget","SearchClientsContacts","SearchTasks","IncludeCompleted","IncludeDead","IncludeInactive","Search","Email","Phone","Address","Staff","Scope","Recipient","RoleCategory","Reports","ReportsCatalog","OurFirm","NewMessage","NewNote","TypeNote","TypeMessage","SendMessageAction","Send","Cancel","Dashboard","DashboardLayout","FirmDashboard","TaskDashboard","ClientDashboard","FeeEarnerDashboard","FeeEarnerDashboardLayout","TaskDashboardLayout","ClientDashboardLayout","MattersSummary","MatterManagement","Logout","ChangePassword","CurrentPassword","NewPassword","ConfirmPassword","Save","SupportedBrowsers","MemberLogin","Username","Password","RememberMe","ForgottenPassword","Login","GoogleChrome","Safari","MozillaFirefox","MicrosoftEdge","InternetExplorer","NoDocumentsAvailable","NoMessage","Subject","InternalMessage","Party","Parties","Due","NoTimelineDatesSet","MatterTitle","General","MatterCategory","TypeId","Type","TypeClassification","TypeState","SubTypeID","SubType","LastComment","Last3Comments","LastMessage","Last3Messages","SettlementDate","SyncSystemID","ResponsibleID","Responsible","ResponsibleShort","ResponsibleEmail","ResponsiblePhone","ActingID","Acting","ActingEmail","ActingPhone","AssistingID","Assisting","AssistingEmail","AssistingPhone","CompletionDate","InstructionDate","InProgress","IsVip","FIRB","SplashTemplates","UserDefinedHelp","UserDashboard","FeatureAccess","FeatureLicencing","RoleAccesss","RoleSecurity","ClientReference","Owner","Debtors","NextRenewalDate","NextDue","NextActionDate","NextAction","NextActionItem","Refresh","ExportFile","SaveLayout","ConfigureViews","Print","ViewConfiguration","ViewName","AvailableRole","ForSecurity","SharedView","Delete","Settings","AddNew","EditGroup","FilterColumn","GeneralInformation","Referrals","Vendor","Council","ContactFirm","InternalResponsibilities","Date","RequestNewPassword","MultifactorAuthenticationMessage","AuthenticationCode","Verify","VerificationFailed","VerificationCodeResendSuccessMessage","ResendVerificationCode","MatterSummaryConfigKey","MatterSummaryConfigTemplateName","MatterSummaryConfigId","MatterSummaryConfigIsUserLevel","MatterSummaryConfigIsRoleLevel","MatterSummaryConfigIsTenantLevel","MyDefault","TenantDefault","FirmDefault","MatterSummaryConfigIsSecurity","LeapSignIn","MyViewOnly","RoleColumnRoleId","RoleColumnRoleName","RoleColumnSelected","RoleColumnIsDefault","LeapReset","Name","NameSummary","StaffSummary","Names","ClientsAndContacts","Referrer","Referrers","TotalOwing","TimeslipSummary","AttorneyDashboard","Timesheet","Timelines","Innography","ClientSense","MailingList","InvoiceSummary","ReportingGroup","ArchivedDate","TrustAccountBalance","ReviewDate","OriginalDebt","CollectionCosts","LegalCostsRecoverable","LegalCostsNonRecoverable","TotalDisbursements","TotalInterest","TotalPayments","TotalOutstanding","PriorityCountry","GeneralMaterial","InjuryDate","ProceedingsIssuedDate","SunsetOrLimitationDate","HearingDate","Trustee","TrusteeEmail","ClientDocuments","EnquiryQuality","NewEnquiry","Organisation","enquirer","detection","order","retrieveEnquiryDetailsData","EnquiryDetailsData","guid","leadGuidId","retrieveLeadDetailsHistoryData","LeadDetailsHistoryData","offset","first","sortColumn","sortDirection","entityGuidID"],"mappings":"kVAKMA,EAAmB,IAAY,eAE/BC,EAAa,2BAAiB,CAChCC,IAAKF,IAgBIG,EAbQ,IAAI,cACrB,SAACC,EAAsBC,GACnB,OAAOA,EAAQD,GAAWE,KAAI,SAAAC,GAG1B,OAAIC,MAAMC,QAAQF,IAASA,EAAKG,OAAS,EAC9BH,EAAK,GAETA,QAKwBI,OAAOV,GAG5CW,EAAe,SAACC,GAClB,GAAI,wBAAcA,GACd,OAAOC,OAAOC,OAAOF,GAAOP,IAAIM,GAAcI,UAAS,GAE3D,GAAIH,aAAiBL,MAAO,CAExB,IADA,IAAIS,GAAiB,EACZC,EAAI,EAAGA,EAAIL,EAAMH,SAEC,KADvBO,EAAiBE,EAAiBN,EAAMK,OAKjB,KADvBD,EAAiBG,EAAyBP,EAAMK,OALhBA,GAUpC,OAAOD,EAMP,OAHuB,KADnBA,EAAiBE,EAAiBN,MAElCI,EAAiBG,EAAyBP,IAEvCI,GAKTG,EAA2B,SAACP,GAC9B,IAAII,GAAiB,EAIrB,YAHcI,IAAVR,GAAiC,OAAVA,GAAkBA,EAAMS,eAAe,UAC9DL,EAAiBE,EAAiBN,EAAMU,OAErCN,GAILE,EAAmB,SAACN,GACtB,IAAMW,EAAyB,qBAATC,MAAwBZ,aAAiBY,KACzDC,EAAyB,qBAATC,MAAwBd,aAAiBc,KAC/D,OAAOH,GAAUE,G,6rDCjCrB,IAAeE,cAEX,+qBAIJ,IAAM,EAAmB,IAAY,eAE/BC,EAAkB,IAAI,IAA6B,CACrDC,6BAA8B,CAC1BC,SAAU,CACNC,MAAO,CACH,CACIC,KAAM,QACNC,KAAM,eACNC,cAAe,CACX,CAAED,KAAM,SACR,CAAEA,KAAM,cACR,CAAEA,KAAM,gBACR,CAAEA,KAAM,cAGhB,CACID,KAAM,QACNC,KAAM,cACNC,cAAe,CACX,CAAED,KAAM,eACR,CAAEA,KAAM,cACR,CAAEA,KAAM,cACR,CAAEA,KAAM,aACR,CAAEA,KAAM,kBAGhB,CACED,KAAM,YACNC,KAAM,0BACNC,cAAe,CACT,CAAED,KAAM,eACR,CAAEA,KAAM,cACR,CAAEA,KAAM,cACR,CAAEA,KAAM,aACR,CAAEA,KAAM,uBAQ1BE,EAAW,IAAI,IAAc,CAC/BlC,IAAK,EACLmC,YAAa,YAGXC,EAAY,aACd,SAAC,G,IAAEC,EAAa,gBAAEC,EAAY,eAAU,WAAW,YAK3CD,GAEAA,EAAcjC,KAAI,SAAC,G,IAAEmC,EAAO,UAAmBC,GAAR,YAAM,OAAY,cACjDA,GAAkC,kBAApBA,EAAWC,MACzBC,OAAOC,SAASC,QAAQ,iBAG5B,YAAiB,KAAML,EAAS,YAGpCD,GACA,YACI,gBACAA,EAAaC,QACb,QACA,yBAMVM,EAAc,IAAI,cACpB,SAAC3C,EAAsBC,GAEnB,OAAOA,EAAQD,GAAWE,KAAI,SAAAC,GAE1B,OAAOA,QAKbyC,EAAW,IAAI,qBACjB,EAAiBF,QAAQ,QAAS,OAClC,CACIG,iBAAkB,qD,iCAGd,MAAO,CAAP,EAAO,CACHC,eAFEC,EAAQC,eAAeC,QAAQ,gBAEV,UAAUF,EAAU,GAC3CG,cAAe,sBAGvBC,MAAM,EACNC,WAAW,GAGf,KACA,CAAC,aAAc,eAGbC,EAAgB,IAAI,IAAcT,GAElCU,EAAW,aAAW,SAACC,EAAG,G,IAAEC,EAAO,UAG/BT,EAAQC,eAAeC,QAAQ,eAErC,OAAIF,EACO,CACHS,QAAS,EAAF,KACAA,GAAO,CACVC,cAAeV,EAAQ,UAAUA,EAAU,MAKhD,CACHS,QAAS,EAAF,GACAA,OAKTE,EAAc,aAAWC,OAC3B,SAAC,G,IAAEC,EAAK,QACEC,EAAa,4BAAkBD,GACrC,MACwB,wBAApBC,EAAWhC,MACc,iBAAzBgC,EAAW7D,YAGnBqD,EACAV,EAAYpC,OAAOyB,IAGjB8B,EAAuB,aAAWH,OACpC,SAAC,GACG,OD9GuB,SAACI,GAC5B,OAAOrD,OAAOC,OAAOoD,GAAWC,KAAKxD,GC6G1ByD,CADC,eAGZlE,EACA2D,GAGE,EAAO,aAAWQ,KAAK,CAACZ,EAAUpB,EAAW4B,IAEtCK,EAAoB,qD,kDAEzB,O,sBAAA,GAAM,EAAOC,c,cAAb,S,4DAMKC,EAAQ,IAAI,IAAc,CAAE5C,gBAAe,IAQxD4C,EAAMC,UAAU,CACZnE,KAAM,CACFoE,SAAU,OAIX,IAAM,EAAS,IAAI,IAAa,CACnCC,mBAAmB,EACnBC,eAAgB,CACZC,WAAY,CACRC,YAAa,oBACbC,YAAa,UAEjBhB,MAAO,CACHe,YAAa,cACbC,YAAa,OAEjBC,OAAQ,CACJD,YAAa,QAGrBE,KAAM,aAAWZ,KAAK,CAElBhC,EACA,IAGJmC,MAAOA,IAKX,SACI,gBAAC,IAAc,CAACU,OAAQ,GACpB,gBAAC,IAAkB,CAACA,OAAQ,GACxB,gBAACC,EAAA,EAAoB,KAEjB,gBAACC,EAAA,EAA+B,KAC5B,gBAACC,EAAA,EAA2B,KACxB,gBAACC,EAAA,EAA4B,KACzB,gBAAC,IAAuB,CAACC,MAAO,KAC5B,gBAACC,EAAA,EAAG,aAShCC,SAASC,eAAe,SAE5B,e,qQCnKaC,GAb8B,IAAG,yjBAaE,IAAG,4bAWtCC,EAAmC,IAAG,icAWtCC,EAA6B,IAAG,sjB,4HC7GvCC,EAAY,OAAAC,EAAA,IAAW,SAACC,GAC5B,cAAAC,EAAA,GAAa,CACXC,KAAM,CACJC,MAAO,OACPC,QAAS,UAEXC,UAAW,GACXC,gBAAiB,CACfC,SAAU,WACVH,QAAS,YACTI,MAAO,IAAUC,YAAYC,YAC7B,6BAA8B,CAC5BN,QAAS,aAEX,aAAc,CACZO,YAAa,OACbC,WAAY,IAAUC,KAAKC,KAC3BC,SAAU,IAAUC,SAASC,GAAGC,MAChCC,cAAe,SACfC,WAAY,IAAUC,WAAWC,YAEnC,iBAAkB,CAChBC,aAAc,OACdhB,SAAU,WACViB,IAAK,MACLC,UAAW,mBACX,eAAgB,CACdtB,MAAO,OACPuB,OAAQ,QAEV,oBAAqB,CACnBX,SAAU,IAAUC,SAASC,GAAGU,OAChCnB,MAAO,IAAUC,YAAYmB,wBAY1BC,EAAwD,SAAC,G,IACpEC,EAAK,QACLC,EAAW,cAELC,EAAUlC,IAEhB,OACE,yBAAKmC,UAAWD,EAAQ9B,MACtB,yBAAK+B,UAAWD,EAAQ3B,WACtB,yBAAK4B,UAAWD,EAAQ1B,iBACtB,kBAAC,IAAc,CACb4B,MAAM,QACNC,aAAc,IAAaC,KAC3BC,QAASN,EACTO,OAAQ,0BACRC,YAAY,gBAEd,kBAAC,IAAO,CAACC,MAAOV,EAAOW,MAAOC,EAAA,EAAWC,e,icCvD7C,EAAY,OAAA5C,EAAA,IAAW,SAACC,GAC1B,cAAAC,EAAA,GAAa,CACTC,KAAM,CACF0C,QAAS,OACTC,KAAM,EACNC,SAAU,SACV1C,QAAS,IAEb2C,UAAW,CACP5C,MAAO,QAEX6C,WAAY,CACRJ,QAAS,OACTC,KAAM,EACNI,WAAY,SACZC,OAAQ,UACR,UAAW,CACPA,OAAQ,UAEZ,aAAc,CACVA,OAAQ,gBAkBT,SAASC,EAAcC,GAElC,IAAMpB,EAAU,IAEV,EAAoB,mBAA6B,CACnDqB,YAAa,GACbC,SAAS,EACTC,WAAW,EACXC,WAAW,IAJRC,EAAK,KAAEC,EAAQ,KAOtB,qBAAU,WACNC,MAED,IAEH,IAAMA,EAAY,YAyKf,SACHC,EACAC,EAEAC,GAEA,IAAIhF,GAA2C,IAAhB8E,EAAuB,eAAiB,cACvE,SACK7F,MAAM,CACHA,MAAOgG,EACP7F,UAAW,GACXY,YAAaA,IAGhBkF,MAAK,SAACC,GACHJ,EAAUI,EAAQ3J,SAGrB4J,OAAM,SAACC,GACJL,EAAQK,MA3LZC,EACI,GAEA,SAAC9J,GAAS,OAAA+J,EAAe/J,MAEzB,SAAU6J,GACN,YAAiB,KAAMA,EAAQ,aAKrCE,EAAiB,SAAC/J,GACpBoJ,EAAS,EAAD,KACDD,GAAK,CACRa,IAAKhK,EAAKiK,SAASC,aAAaC,WAAWC,OAAOJ,IAClDf,UAAWjJ,EAAKiK,SAASC,aAAaC,WAAWC,OAAOnB,UACxDC,WAAW,MA8EnB,OACI,yBAAKvB,UAAWD,EAAQ9B,MACrB,kBAACyE,EAAA,EAAI,CAACtE,WAAW,EAAMuE,QAAS,GAC1BnB,EAAMD,UACH,kBAACmB,EAAA,EAAI,CAACE,MAAM,EAAMC,GAAI,GAAIC,GAAI,GAAIC,QAAQ,UACtC,kBAAC,IAAQ,OAGb,oCACI,kBAACL,EAAA,EAAI,CAACE,MAAM,EAAMC,GAAI,GAAIC,GAAI,IAC1B,kBAACE,EAAA,EAAgB,CACbC,QACI,kBAACC,EAAA,EAAQ,CACLC,YAAa,kBAAC,IAAY,CAAC5E,MAAM,YACjC6E,QAAS5B,EAAMF,UACf+B,SAjFX,SAACC,GACtB7B,GAAS,SAAC8B,G,MACN,OAAO,EAAP,KACOA,KAAS,MACXD,EAAME,OAAOxJ,MAAOsJ,EAAME,OAAOJ,QAAO,QA8EjBpJ,KAAK,cAGbuG,MAAM,aAGd,kBAACmC,EAAA,EAAI,CAACE,MAAM,EAAMC,GAAI,GAAIC,GAAI,IAC1B,yBAAK9C,UAAWD,EAAQgB,YACpB,kBAAC0C,EAAA,EAAS,CACNlD,MAAM,MACNmD,UAAU,EACV1J,KAAK,MACLrB,MAAO6I,EAAMa,IACbrC,UAAWD,EAAQe,UACnBuC,SAvGN,SAACC,GACvB7B,EAAS,EAAD,KACDD,GAAK,CACRa,IAAKiB,EAAME,OAAO7K,UAqGMgL,WAAYnC,EAAMJ,YAClBwC,OAAQpC,EAAMH,QACdwC,UAAWrC,EAAMF,cAI7B,kBAACoB,EAAA,EAAI,CAACE,MAAM,EAAMC,GAAI,GAAIC,GAAI,GAAIC,QAAQ,YACtC,kBAAC,IAAM,CACHe,QAAQ,WACRvF,MAAM,UACN6B,QAlGN,WAElBqB,GAAS,SAAC8B,GAEN,IAAIlC,GAAU,EACV0C,EAAW,oBA4Cf,OA1CIvC,EAAMa,KAAO,IAAU2B,MAAMxC,EAAMa,OACnChB,GAAU,EACV0C,EAAW,gBAEX,SACChH,OAAO,CACJkH,SAAUC,EACVjI,UAAW,CACPoG,IAAKb,EAAMa,IACXf,UAAWE,EAAMF,aAIxBS,MAAK,SAACC,GACCA,EAAQ3J,OACmB,OAAvB2J,EAAQ3J,KAAKuL,YAAyCzK,IAAvB6I,EAAQ3J,KAAKuL,MAC5C,YAAiB,KAAM,yBAA0B,QAEjD,YAAiB,uBAAwB5B,EAAQ3J,KAAKuL,MAAO,SAGjEnC,GAAS,SAAC0C,GACN,OAAO,EAAP,KACOA,GAAU,CACb5C,WAAW,WAM1BU,OAAM,SAACC,GACJ,YAAiB,uBAAwBA,EAAQ,SACjDT,GAAS,SAAC0C,GACN,OAAO,EAAP,KACOA,GAAU,CACb5C,WAAW,WAOpB,EAAP,KACOgC,GAAS,CACZlC,QAASA,EACTD,YAAa2C,SA8CyB,YAwDtD,I,IAAMG,EAAiC,IAAG,+mBAYpCpC,EAAwB,IAAG,ynB,oZCjQ3B,EAAY,OAAAhE,EAAA,IAAW,SAACC,GAC1B,cAAAC,EAAA,GAAa,CACTC,KAAM,GAGNmG,UAAW,CACP,SAAU,CACNC,UAAW,yBA8BdC,GAA0D,SAAAnD,GAEnE,IAAMpB,EAAU,IAEV,EAAoB,mBAAmC,CACzDwB,WAAW,EACXqC,MAAOzC,EAAMyC,MACbvL,KAAM,KAHHmJ,EAAK,KAAEC,EAAQ,KAMtB,qBAAU,WACNC,MAED,IAEH,qBAAU,WACFP,EAAMoD,SACN7C,MAGL,CAACP,EAAMoD,UAEV,IAAM7C,EAAY,WAEdD,EAAS,OACFD,GAAK,CACRD,WAAW,KAyKhB,SACHI,EACAC,EAEAC,GAEA,IAAIhF,GAA2C,IAAhB8E,EAAuB,eAAiB,cACvE,SACK7F,MAAM,CACHA,MAAO0I,GACPvI,UAAW,GACXY,YAAaA,IAGhBkF,MAAK,SAACC,GACHJ,EAAUI,EAAQ3J,SAGrB4J,OAAM,SAACC,GACJL,EAAQK,MAzLZuC,EACI,GAEA,SAACpM,GAAS,OAAA+J,EAAe/J,MAEzB,SAAU6J,GACN,YAAiB,KAAMA,EAAQ,aAKrCE,EAAiB,SAAC/J,GACpBoJ,GAAS,SAAC8B,GACN,OAAO,OACAA,GAAS,CACZlL,KAAMA,EAAKiK,SAASC,aAAamC,QAAQC,YAAYvM,KAAI,SAACwM,GACtD,MAAO,CACHrE,MAAOqE,EAAQ5K,KACfrB,MAAOiM,EAAQC,WAGvBtD,WAAW,QAMjBuD,EAAe,SAACxB,EAA8B3K,GAC5CwI,EAAM4D,aACN5D,EAAM4D,YAAYpM,EAAOwI,EAAMnH,OAIjCgL,EAAgB,SAACC,EAA2B1D,GAC9C,OAAS,OACF0D,EAAOC,YAAU,CACpBC,aACI,kBAAC,IAAMC,SAAQ,KACZ7D,EAAY,kBAAC8D,EAAA,EAAgB,CAAC9G,MAAM,UAAU+G,KAAM,KAAS,KAC7DL,EAAOC,WAAWC,iBAMjC,OACI,oCACMhE,EAAMoE,SAEA,kBAACC,EAAA,EAAY,CACThF,MAAOW,EAAMX,MACbR,UAAcmB,EAAMnB,UAAS,IAAID,EAAQ9B,KACzCtF,MAAOwI,EAAMxI,MACb4M,UAAU,EACVE,QAASjE,EAAMD,UACfsC,SAAU1C,EAAM0C,SAChBR,SAAUyB,EACVY,QAASlE,EAAMnJ,KACfsN,cAAexE,EAAMwE,cAErBC,eAAgB,SAACC,GAA8B,OAAAA,EAAOtF,OACtDR,QAAS,CACL+F,MAAO/F,EAAQqE,WAGnB2B,YAAa,SAAAd,GAAU,OACnB,kBAACxB,EAAA,EAAS,KACFwB,EAAM,CACV1E,MAAOY,EAAMZ,MACbuD,QAAQ,WACRkC,WAAW,EACX/E,OAAO,OACPyC,SAAUvC,EAAMuC,SAChBwB,WAAYF,EAAcC,EAAQzD,EAAMD,WACxCqC,MAAOpC,EAAMoC,MACbD,WAAYxC,EAAMwC,eAI1BsC,aAAc,SAACJ,EAAQ,G,IAAEK,EAAU,aACzBC,EAAU,IAAMN,EAAOtF,MAAO2F,GAC9BE,EAAQ,IAAMP,EAAOtF,MAAO4F,GAElC,OACI,6BACKC,EAAMhO,KAAI,SAACiO,EAAMC,GAAU,OACxB,0BAAMC,IAAKD,EAAO9F,MAAO,CAAEgG,WAAYH,EAAKI,UAAY,IAAM,MACzDJ,EAAKK,aAU9B,kBAAClB,EAAA,EAAY,CACThF,MAAOW,EAAMX,MACbR,UAAcmB,EAAMnB,UAAS,IAAID,EAAQ9B,KACzCtF,MAAOwI,EAAMxI,MACb8M,QAASjE,EAAMD,UACfsC,SAAU1C,EAAM0C,SAChBR,SAAUyB,EACVY,QAASlE,EAAMnJ,KACfsN,cAAexE,EAAMwE,cAErBC,eAAgB,SAACC,GAA8B,OAAAA,EAAOtF,OACtDR,QAAS,CACL+F,MAAO/F,EAAQqE,WAGnB2B,YAAa,SAAAd,GAAU,OACnB,kBAACxB,EAAA,EAAS,KACFwB,EAAM,CACV1E,MAAOY,EAAMZ,MACbuD,QAAQ,WACRkC,WAAW,EACX/E,OAAO,OACPyC,SAAUvC,EAAMuC,SAChBwB,WAAYF,EAAcC,EAAQzD,EAAMD,WACxCqC,MAAOpC,EAAMoC,UAIrBqC,aAAc,SAACJ,EAAQ,G,IAAEK,EAAU,aACzBC,EAAU,IAAMN,EAAOtF,MAAO2F,GAC9BE,EAAQ,IAAMP,EAAOtF,MAAO4F,GAElC,OACI,6BACCC,EAAMhO,KAAI,SAACiO,EAAMC,GAAU,OACxB,0BAAMC,IAAKD,EAAO9F,MAAO,CAAEgG,WAAYH,EAAKI,UAAY,IAAM,MAC7DJ,EAAKK,eAwD1C,I,GAAMlC,GAA2B,IAAG,+oB,wUC9P9B,GAAY,OAAA1G,EAAA,IAAW,SAACC,GAC1B,cAAAC,EAAA,GAAa,CACTC,KAAM,CACF0C,QAAS,OACTC,KAAM,EACNC,SAAU,SACV1C,QAAS,IAEbwI,WAAY,CACRhG,QAAS,OACTC,KAAM,EACNI,WAAY,SACZC,OAAQ,UACR,UAAW,CACPA,OAAQ,UAEZ,aAAc,CACVA,OAAQ,WAGhBH,UAAW,CACP5C,MAAO,QAEX0I,cAAe,CACX3F,OAAQ,UACR/C,MAAO,OACPyC,QAAS,OACTkG,eAAgB,WAChB,aAAc,CACV5F,OAAQ,WAGhBd,KAAM,CACF5B,MAAO,cAmBJ,SAASuI,GAAa3F,GAEjC,IAAMpB,EAAU,KAEV,EAAoB,mBAA4B,CAClDuB,WAAW,EACXyF,uBAAuB,EACvBpC,YAAa,KACbqC,YAAY,EACZzF,WAAW,EACX0F,OAAQ,GACRC,mBAAmB,IAPhB1F,EAAK,KAAEC,EAAQ,KAUtB,qBAAU,WACNC,MAED,IAEH,qBAAU,WAEFP,EAAMgG,sBAAwBhG,EAAMgG,qBAAqB5M,QAAQzB,SAAS,+BAC1E2I,GAAS,SAAC0C,GACN,OAAO,SACAA,GAAU,CACb6C,YAAY,EACZE,mBAAmB,OAI3B/F,EAAMgG,sBAAwBhG,EAAMgG,qBAAqB5M,QAAQzB,SAAS,0BAC1E2I,GAAS,SAAC0C,GACN,OAAO,SACAA,GAAU,CACb6C,YAAY,EACZE,mBAAmB,SAKhC,CAAC/F,EAAMgG,uBAEV,IAAMzF,EAAY,YAuQf,SACHC,EACAC,EAEAC,GAEA,IAAIhF,GAA2C,IAAhB8E,EAAuB,eAAiB,cACvE,SACK7F,MAAM,CACHA,MAAOsL,GACPnL,UAAW,GACXY,YAAaA,IAGhBkF,MAAK,SAACC,GACHJ,EAAUI,EAAQ3J,SAGrB4J,OAAM,SAACC,GACJL,EAAQK,MAzRZmF,EACI,GAEA,SAAChP,GAAS,OAAA+J,EAAe/J,MAEzB,SAAU6J,GACN,YAAiB,KAAMA,EAAQ,aAKrCE,EAAiB,SAAC/J,GACpBoJ,GAAS,SAAC8B,GACN,OAAO,SACAA,GAAS,CACZjC,UAAWjJ,EAAKiK,SAASC,aAAamC,QAAQjC,OAAOnB,UACrDyF,sBAAuB1O,EAAKiK,SAASC,aAAamC,QAAQjC,OAAO6E,qBACjEL,OAAQ5O,EAAKiK,SAASC,aAAamC,QAAQjC,OAAOxH,MAElD0J,YAAatM,EAAKiK,SAASC,aAAamC,QAAQjC,OAAO8E,iBACvClP,EAAKiK,SAASC,aAAamC,QAAQjC,OAAO+E,cAC1C,CACIjH,MAAOlI,EAAKiK,SAASC,aAAamC,QAAQjC,OAAO8E,gBACjD5O,MAAON,EAAKiK,SAASC,aAAamC,QAAQjC,OAAO+E,eAEtD,KACfjG,WAAW,QAcjBkG,EAAmB,SAACzN,GAAiB,gBAACsJ,EAA8BF,GACtE3B,GAAS,SAAC8B,G,MACN,OAAO,SACAA,KAAS,MACXvJ,GAAOoJ,EAAO,SAsG3B,OACI,yBAAKpD,UAAWD,EAAQ9B,MACrB,kBAACyE,EAAA,EAAI,CAACtE,WAAW,EAAMuE,QAAS,GAC1BnB,EAAMD,UACH,kBAACmB,EAAA,EAAI,CAACE,MAAM,EAAMC,GAAI,GAAIC,GAAI,GAAIC,QAAQ,UACtC,kBAAC,IAAQ,OAGb,oCACI,kBAACL,EAAA,EAAI,CAACE,MAAM,EAAMC,GAAI,GAAIC,GAAI,IAC1B,kBAACE,EAAA,EAAgB,CACbC,QACI,kBAACC,EAAA,EAAQ,CACLC,YAAa,kBAAC,IAAY,CAAC5E,MAAM,YACjC6E,QAAS5B,EAAMF,YAGvBtH,KAAK,YACLqJ,SAAUoE,EAAiB,aAC3BlH,MAAM,aAGd,kBAACmC,EAAA,EAAI,CAACE,MAAM,EAAMC,GAAI,GAAIC,GAAI,IAC1B,yBAAK9C,UAAWD,EAAQ4G,YACpB,kBAAClD,EAAA,EAAS,CACNlD,MAAM,UACNmD,UAAU,EACV1D,UAAWD,EAAQe,UACnB+C,UAAWrC,EAAMF,UACjB+B,SA/IN,SAACC,GACvB7B,EAAS,SACFD,GAAK,CACRyF,OAAQ3D,EAAME,OAAO7K,MACrBqO,YAAY,MA4IYrO,MAAO6I,EAAMyF,OACb/B,WAAY,CACRC,aAjD5B3D,EAAM0F,kBAEF,kBAACQ,EAAA,EAAc,CAACpJ,SAAS,SACrB,kBAAC+G,EAAA,EAAgB,CAACC,KAAM,MAIhC9D,EAAMwF,WAEF,kBAACU,EAAA,EAAc,CAACpJ,SAAS,SACrB,kBAAC,KAAe,CAAC0B,UAAWD,EAAQI,aAHhD,KA6CwB,kBAAC,IAAM,CACH2D,QAAQ,WACRvF,MAAM,UACNsF,UAAWrC,EAAMF,WAAaE,EAAMwF,WACpC5G,QA/HP,WACjBoB,EAAMyF,SAENxF,GAAS,SAAC0C,GACN,OAAO,SACAA,GAAU,CACb+C,mBAAmB,OAI3B,SACKnK,OAAO,CACJkH,SAAU0D,GACV1L,UAAW,CACPhB,MAAOuG,EAAMyF,UAIpBlF,MAAK,SAACC,GACCA,EAAQ3J,MACJ2J,EAAQ3J,KAAKkK,aAAamC,QAAQkD,aAAaC,QAAmE,OAAzD7F,EAAQ3J,KAAKkK,aAAamC,QAAQkD,aAAahE,OACxG,YAAiB,KAAM,yBAA0B,WAK5D3B,OAAM,SAACC,GACJ,YAAiB,uBAAwBA,EAAQ,SACjDT,GAAS,SAAC0C,GACN,OAAO,SACAA,GAAU,CACb5C,WAAW,aAgGsB,cAMrC,kBAACmB,EAAA,EAAI,CAACE,MAAM,EAAMC,GAAI,GAAIC,GAAI,IAC1B,kBAACE,EAAA,EAAgB,CACbC,QACI,kBAACC,EAAA,EAAQ,CACLC,YAAa,kBAAC,IAAY,CAAC5E,MAAM,YACjC6E,QAAS5B,EAAMuF,wBAGvB1D,SAAUoE,EAAiB,yBAC3BzN,KAAK,wBACL6J,UAAWrC,EAAMF,UACjBf,MAAM,8BAGd,kBAACmC,EAAA,EAAI,CAACE,MAAM,EAAMC,GAAI,GAAIC,GAAI,IAC1B,kBAACwB,GAAmB,CAChB/D,MAAM,cACNmD,UAAU,EACV1D,UAAWD,EAAQe,UACnB+C,UAAWrC,EAAMF,YAAcE,EAAMwF,WACrCrO,MAAO6I,EAAMmD,YACbI,YAnKR,SAACpM,EAA0BqB,GAC3CyH,GAAS,SAAC8B,GACN,OAAO,SACAA,GAAS,CACZoB,YAAahM,QAgKG4L,QAAS/C,EAAMwF,cAGvB,kBAACtE,EAAA,EAAI,CAACE,MAAM,EAAMC,GAAI,GAAIC,GAAI,IAC1B,yBAAK9C,UAAWD,EAAQ6G,eACpB,kBAAC,IAAM,CACH9C,QAAQ,WACRvF,MAAM,UACN6B,QA7HX,WACjB,SACKrD,OAAO,CACJkH,SAAU6D,GACV7L,UAAW,CACPhB,MAAOuG,EAAMyF,OACbO,cAAehG,EAAMmD,YAAcnD,EAAMmD,YAAYhM,MAAQ,KAC7D4O,gBAAiB/F,EAAMmD,YAAcnD,EAAMmD,YAAYpE,MAAQ,KAC/De,UAAWE,EAAMF,UACjBgG,qBAAsB9F,EAAMuF,yBAInChF,MAAK,SAACC,GACCA,EAAQ3J,MACJ2J,EAAQ3J,KAAKkK,aAAamC,QAAQqD,OAAOF,QAA6D,OAAnD7F,EAAQ3J,KAAKkK,aAAamC,QAAQqD,OAAOnE,OAC5F,YAAiB,KAAM,yBAA0B,WAK5D3B,OAAM,SAACC,GACJ,YAAiB,qBAAsBA,EAAQ,SAC/CT,GAAS,SAAC0C,GACN,OAAO,SACAA,GAAU,CACb5C,WAAW,WAoGCsC,SAAgC,OAAtBrC,EAAMmD,cAAyBnD,EAAMwF,YAAU,QAI7D,kBAAC,IAAM,CAAClD,QAAQ,WAAWvF,MAAM,WAAS,cA2D1E,I,SAAM6I,GAAqB,IAAG,o3BAqBxBO,GAA8B,IAAG,siBAajCG,GAA8B,IAAG,g2C,kGCzXhC,I,GAAME,GAAgC,IAAG,k4B,uUCzC1C,GAAY,OAAAlK,EAAA,IAAW,SAACC,GAC1B,cAAAC,EAAA,GAAa,CACTC,KAAM,CACF0C,QAAS,OACTC,KAAM,EACNC,SAAU,SACV1C,QAAS,IAEb2C,UAAW,CACP5C,MAAO,QAEX+J,oBAAqB,CACjBtH,QAAS,OACTC,KAAM,EACNI,WAAY,SACZC,OAAQ,UACR,UAAW,CACPA,OAAQ,UAEZ,aAAc,CACVA,OAAQ,gBAeT,SAASiH,GAA4B/G,GAEhD,IAAMpB,EAAU,KAEV,EAAoB,mBAA2C,CACjEwB,WAAW,EACX4G,UAAW,GACXC,aAAc,KAHX5G,EAAK,KAAEC,EAAQ,KAMhB4G,EAAa,aAA0BC,IAGtCC,EAAiB,aAA8CC,IAAc,GAEpF,qBAAU,WAEN,IAAKH,EAAW5C,SAAW4C,EAAWhQ,KAAM,CACpC,MAGAgQ,EAAWhQ,KAAKoQ,cAAcJ,WAF9BD,EAAY,eACZD,EAAS,YAIb1G,GAAS,SAAC8B,GACN,OAAO,SACAA,GAAS,CACZhC,WAAW,EACX4G,UAAwB,MAAbA,EAAoBA,EAAY,GAC3CC,aAA8B,MAAhBA,EAAuBA,EAAe,WAKjE,CAACC,EAAWhQ,KAAMgQ,EAAW5C,UAEhC,qBAAU,WACN,IAAMiD,EAAkCC,IAExC,OAAO,WACHD,EAAgCE,iBAIrC,IAEH,IAAMD,EAA2B,WAC7B,OAAO,SACFE,UAAU,CACPhM,YAAa,WACbf,MAAOgN,GACP7M,UAAW,KAEd4M,UAAU,CAEPE,KAAA,SAAK/G,GAEGA,EAAQ3J,KAAK2Q,oCAAoCnB,OACjD,YAAiB,UAAW7F,EAAQ3J,KAAK2Q,oCAAoCzO,QAAS,QAEtF,YAAiB,SAAUyH,EAAQ3J,KAAK2Q,oCAAoCzO,QAAS,UAI7FqJ,MAAA,SAAMqF,GAEFC,QAAQtF,MAAMqF,GACd,YAAiB,KAAMA,EAAK,aA8B5C,OACI,yBAAKjJ,UAAWD,EAAQ9B,MACrB,kBAACyE,EAAA,EAAI,CAACtE,WAAW,EAAMuE,QAAS,GAC1BnB,EAAMD,UACH,kBAACmB,EAAA,EAAI,CAACE,MAAM,EAAMC,GAAI,GAAIC,GAAI,GAAIC,QAAQ,UACtC,kBAAC,IAAQ,OAGb,oCACI,kBAACL,EAAA,EAAI,CAACE,MAAM,EAAMC,GAAI,GAAIC,GAAI,IAC1B,yBAAK9C,UAAWD,EAAQkI,qBACpB,kBAACxE,EAAA,EAAS,CACNlD,MAAM,aACNmD,UAAU,EACV1D,UAAWD,EAAQe,UACnBnI,MAAO6I,EAAM2G,UACbjD,WAAY,CACRiE,UAAU,KAGlB,kBAAC,IAAM,CACHrF,QAAQ,WACRvF,MAAM,UACN6B,QAAS,WAELqB,GAAS,SAAC8B,GACN,OAAO,SACAA,GAAS,CACZ4E,UAAW,OAAAiB,GAAA,YAGtB,cAMb,kBAAC1G,EAAA,EAAI,CAACE,MAAM,EAAMC,GAAI,GAAIC,GAAI,IAC1B,yBAAK9C,UAAWD,EAAQkI,qBACpB,kBAACxE,EAAA,EAAS,CACNlD,MAAM,gBACNmD,UAAU,EACV1D,UAAWD,EAAQe,UACnBnI,MAAO6I,EAAM4G,aACblD,WAAY,CACRiE,UAAU,KAGlB,kBAAC,IAAM,CACHrF,QAAQ,WACRvF,MAAM,UACN6B,QAAS,WAELqB,GAAS,SAAC8B,GACN,OAAO,SACAA,GAAS,CACZ6E,aAAc,OAAAgB,GAAA,YAGzB,cAMb,kBAAC1G,EAAA,EAAI,CAACE,MAAM,EAAMC,GAAI,GAAIC,GAAI,GAAIC,QAAQ,YACtC,kBAAC,IAAM,CACHe,QAAQ,WACRvF,MAAM,UACN6B,QA9FX,WACbmI,EAAc,CACVtM,UAAW,CACPkM,UAAW3G,EAAM2G,UAAY3G,EAAM2G,UAAY,GAC/CC,aAAc5G,EAAM4G,aAAe5G,EAAM4G,aAAe,MAI/DrG,MAAK,SAACC,GACCA,EAAQ3J,MACR,YAAiB,KAAM,yBAA0B,WAIxD4J,OAAM,SAACC,GACJ,YAAiB,2BAA4BA,EAAQ,SACrDT,GAAS,SAAC0C,GACN,OAAO,SACAA,GAAU,CACbkF,iBAAiB,WA4ELxF,UAAWrC,EAAM4G,eAAiB5G,EAAM2G,WAAS,YAwBjF,I,SAAMG,GAAkB,IAAG,8WAgBrBE,GAAgB,IAAG,gnBAcnBM,GAAkB,IAAG,gX,uCCvLfQ,G,mTA9DN,GAAY,OAAAxL,EAAA,GAAW,CACzBG,KAAM,CACF2C,KAAM,EACND,QAAS,OACTE,SAAU,UAEd0I,QAAS,CACL3I,KAAM,EACND,QAAS,OACT6I,gBAAiB,OACjBvI,OAAQ,UACR9C,QAAS,QAEbsL,QAAS,CACLtL,QAAS,SACTuL,SAAU,QACVxL,MAAO,OACPI,SAAU,WACVsC,KAAM,EACND,QAAS,QAEbgJ,aAAc,CACVrL,SAAU,WACVsC,KAAM,GAOVgJ,YAAa,CACTtL,SAAU,WACViB,IAAK,EACLsK,MAAO,EACPC,KAAM,EACNC,OAAQ,EACRC,SAAU,OACV1K,aAAc,OACd,kBAAmB,CACfkK,gBAAiB,sBAErB,wBAAyB,CACrBA,gBAAiB,uBAGzBS,QAAS,CACL9L,QAAS,SACT+L,SAAU,EACVvJ,QAAS,OACTE,SAAU,SACV,UAAW,CACPqJ,SAAU,EACVR,SAAU,UAGlBS,iBAAkB,CACdxJ,QAAS,OACTkG,eAAgB,SAChBjG,KAAM,KAyBC,SAASwJ,GAA6BjJ,GACjD,IAAMpB,EAAU,KAEV,EAA4B,mBAA4C,CAC1EsK,cAAef,GAA6BgB,wBAC5CnD,qBAAsB,KACtBoD,KAAM,GACNC,cAAc,IAJXC,EAAS,KAAEC,EAAY,KAO9B,qBAAU,WACNC,IAEA,IAAIC,EAAyCtB,GAA6BnI,EAAM0J,MAAM5F,OAAO6F,KAE7FJ,EAAa,SACND,GAAS,CACZJ,cAAeO,GAAsBH,EAAUJ,mBAIpD,IAEH,qBAAU,WACN,IAAM3B,EAAkCqC,IAExC,OAAO,WACHrC,EAAgCE,iBAIrC,IAEH,IAAMmC,EAA+B,WACjC,OAAO,SACFlC,UAAU,CACPhM,YAAa,WACbf,MAAOkP,GACP/O,UAAW,KAEd4M,UAAU,CAEPE,KAAA,SAAK/G,GACD0I,GAAa,SAACnH,GACV,OAAO,SACAA,GAAS,CACZ4D,qBAAsBnF,EAAQ3J,KAAK4S,yBAGvCjJ,EAAQ3J,KAAK4S,oBAAoBpD,OACjC,YAAiB,UAAW7F,EAAQ3J,KAAK4S,oBAAoB1Q,QAAS,QAEtE,YAAiB,SAAUyH,EAAQ3J,KAAK4S,oBAAoB1Q,QAAS,UAI7EqJ,MAAA,SAAMqF,GAEFC,QAAQtF,MAAMqF,GACd,YAAiB,KAAMA,EAAK,aAKtC0B,EAAe,YF1IlB,SACHhJ,EACAC,EAEAC,GAEI,IAAIhF,GAA2C,IAAhB8E,EAAuB,eAAiB,cAEvE,SAAO7F,MAAM,CACTA,MAAOkM,GACP/L,UAAW,GACXY,YAAaA,IAGhBkF,MAAK,SAACC,GACHJ,EAAUI,EAAQ3J,SAGrB4J,OAAM,SAACC,GAAmBL,EAAQK,MEyHnCgJ,EACI,GAEA,SAAC7S,GAAuC,OAAA8S,EAA0B9S,MAElE,SAAU6J,GACN,YAAiB,KAAMA,EAAQ,aAKrCiJ,EAA4B,SAAC9S,GAC/BqS,GAAa,SAACnH,GACV,OAAO,SACAA,GAAS,CACZgH,KAAMlS,EAAKiK,SAASC,aAAa6I,aAAaC,YAC9Cb,cAAc,QAsD1B,OACI,yBAAKxK,UAAWD,EAAQ9B,MACpB,kBAAC2B,EAA8B,CAACC,MAAM,4BAA4BC,YAftD,WAChBqB,EAAMmK,QAAQC,KAAK,8BAef,yBAAKvL,UAAWD,EAAQwJ,SACnBkB,EAAUD,aACP,yBAAKxK,UAAWD,EAAQoK,kBACpB,kBAAC,IAAQ,OAGb,oCACI,yBAAKnK,UAAWD,EAAQ0J,SACpB,yBAAKzJ,UAAWD,EAAQ4J,cACpB,kBAAC6B,EAAA,EAAI,CAACxL,UAAWD,EAAQ6J,aACpBa,EAAUF,KACNnS,KACG,SAAC0S,GACG,QAzCvBW,EAyCmCX,EAAIW,gBAxCnCnC,GAA6BA,GAA6BgB,yBACpEoB,EAAA,EAAYC,UAAUD,EAAA,EAAgBE,mBAG7CH,IAAiBnC,GAA6BA,GAA6BuC,uBACpEH,EAAA,EAAYC,UAAUD,EAAA,EAAgBI,gBAoCL,kBAACC,EAAA,EAAQ,CACLxF,IAAKuE,EAAIkB,OACTC,QAAQ,EACR7L,SA7BhCzH,EA6BoD2Q,GAA6BwB,EAAIW,cA7B7C,WACxDf,EAAa,SACND,GAAS,CACZJ,cAAe1R,KAGnBwI,EAAMmK,QAAQC,KAAK,6BAA6BjC,GAA6B3Q,MAwB7BuT,SAAUzB,EAAUJ,gBAAkBf,GAA6BwB,EAAIW,eAEvE,kBAACU,EAAA,EAAc,KAxEnD,SAACV,GACb,OAAIA,IAAiBnC,GAA6BA,GAA6BgB,yBAEvE,kBAAC8B,EAAA,EAAM,KACH,kBAAC,IAAsB,OAK/BX,IAAiBnC,GAA6BA,GAA6BuC,sBAEvE,kBAACO,EAAA,EAAM,KACH,kBAAC,IAA8B,OAMvC,kBAACA,EAAA,EAAM,KACH,kBAAC,IAAsB,OAqDkCC,CAAQvB,EAAIW,eAC7B,kBAACa,EAAA,EAAY,CAACC,QAASzB,EAAIjL,MAAO2M,UAAW1B,EAAI2B,eAjClF,IAAC9T,EAhBC8S,QAwDD,yBAAKzL,UAAWD,EAAQkK,SACnBQ,EAAUJ,gBAAkBf,GAA6BgB,yBAA2BoB,EAAA,EAAYC,UAAUD,EAAA,EAAgBE,oBACvH,kBAAC1K,EAAa,CAACiG,qBAAsBsD,EAAUtD,uBAElDsD,EAAUJ,gBAAkBf,GAA6BuC,sBAAwBH,EAAA,EAAYC,UAAUD,EAAA,EAAgBI,eACpH,kBAAChF,GAAY,CAACK,qBAAsBsD,EAAUtD,uBAEjDsD,EAAUJ,gBAAkBf,GAA6BoD,0BACtD,kBAACxE,GAA2B,CAACf,qBAAsBsD,EAAUtD,4BAnM7F,SAAYmC,GACR,yDACA,mDACA,2DAHJ,CAAYA,QAA4B,KA6MxC,I,GAAM0B,GAAkC,IAAG,yX,uDChS3C,gDAGM2B,EAA2B,IAHjC,QAGqC,GAKxBC,EAAmB,IAAI,IAAoB,CACpDnK,OAAQ,CACJoK,mBAAoB,uCACpBrS,WAAY,CAACmS,GACbG,mBAAoB,OAG5BF,EAAYG,mB,kCC8VZ,sCAAMC,EAAoB,CACtB,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACR,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,G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","file":"static/js/main~970f9218.dba93bd8.chunk.js","sourcesContent":["import { serverUrl } from '../App';\r\nimport { createUploadLink } from 'apollo-upload-client';\r\nimport { isPlainObject } from 'lodash';\r\nimport { ApolloLink, Operation, NextLink } from 'apollo-link';\r\n\r\nconst GRAPHQL_ENDPOINT = serverUrl + '/api/graphql';\r\n\r\nconst uploadLink = createUploadLink({\r\n uri: GRAPHQL_ENDPOINT\r\n});\r\n\r\nconst responseLink = new ApolloLink(\r\n (operation: Operation, forward: NextLink) => {\r\n return forward(operation).map(data => {\r\n // for some reason, upload link returns array, \r\n // and we always expect the object\r\n if (Array.isArray(data) && data.length > 0) {\r\n return data[0];\r\n }\r\n return data;\r\n });\r\n }\r\n);\r\n\r\nexport const multiPartLink = responseLink.concat(uploadLink);\r\n\r\n// tslint:disable-next-line:no-any\r\nconst isFileObject = (value: any): boolean => {\r\n if (isPlainObject(value)) {\r\n return Object.values(value).map(isFileObject).includes(true);\r\n }\r\n if (value instanceof Array) {\r\n let instanceOfFile = false;\r\n for (let i = 0; i < value.length; ++i) {\r\n instanceOfFile = isInstanceOfFile(value[i]);\r\n if (instanceOfFile === true) {\r\n break; \r\n }\r\n instanceOfFile = isPropertyInstanceOfFile(value[i]);\r\n if (instanceOfFile === true) {\r\n break; \r\n }\r\n } \r\n return instanceOfFile; \r\n } else {\r\n let instanceOfFile = isInstanceOfFile(value);\r\n if (instanceOfFile === false) {\r\n instanceOfFile = isPropertyInstanceOfFile(value);\r\n }\r\n return instanceOfFile;\r\n } \r\n};\r\n\r\n// tslint:disable-next-line:no-any\r\nconst isPropertyInstanceOfFile = (value: any): boolean => {\r\n let instanceOfFile = false;\r\n if (value !== undefined && value !== null && value.hasOwnProperty('file')) {\r\n instanceOfFile = isInstanceOfFile(value.file);\r\n }\r\n return instanceOfFile;\r\n};\r\n\r\n// tslint:disable-next-line:no-any\r\nconst isInstanceOfFile = (value: any): boolean => {\r\n const isfile = typeof File !== 'undefined' && value instanceof File;\r\n const isblob = typeof Blob !== 'undefined' && value instanceof Blob;\r\n return isfile || isblob;\r\n};\r\n\r\n// tslint:disable-next-line:no-any\r\nexport const isUploadRequest = (variables: any) => {\r\n return Object.values(variables).some(isFileObject);\r\n};","import * as React from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport { serverUrl, showNotification } from './App';\r\nimport { unregister } from './registerServiceWorker';\r\nimport { ApolloLink, Operation, NextLink } from 'apollo-link';\r\nimport { BatchHttpLink } from 'apollo-link-batch-http';\r\nimport {\r\n InMemoryCache,\r\n IntrospectionFragmentMatcher\r\n} from 'apollo-cache-inmemory';\r\nimport { onError } from 'apollo-link-error';\r\nimport { setContext } from 'apollo-link-context';\r\nimport { App } from './App';\r\nimport './index.css';\r\nimport { globalVariableDefaults } from './globals';\r\nimport { getMainDefinition } from 'apollo-utilities';\r\nimport { WebSocketLink } from 'apollo-link-ws';\r\nimport { SubscriptionClient } from 'subscriptions-transport-ws';\r\nimport { ApolloProvider } from 'react-apollo';\r\nimport { ApolloProvider as ApolloHookProvider } from '@apollo/react-hooks';\r\nimport ApolloClient from 'apollo-client/ApolloClient';\r\nimport { LicenseManager } from '@ag-grid-enterprise/core';\r\nimport MuiPickersUtilsProvider from '@material-ui/pickers/MuiPickersUtilsProvider';\r\nimport MomentUtils from '@date-io/moment';\r\nimport { MatterManagementContextProvider } from './matterManagement/MatterManagementContext';\r\n// import { EnquirySummaryContextProvider } from './enquirySummary/EnquirySummaryContext';\r\nimport { TasksSummaryContextProvider } from './tasksSummary/TasksSummaryContext';\r\nimport { isUploadRequest, multiPartLink } from './infrastructure/MultipartLink';\r\nimport TimerContextProvider from './contexts/TimerContext';\r\nimport './i18n';\r\nimport { MatterSummaryContextProvider } from './matterSummary/MatterSummaryContextProvider';\r\n\r\n// tslint:disable-next-line:max-line-length\r\nLicenseManager.setLicenseKey(\r\n // tslint:disable-next-line: max-line-length\r\n 'Using_this_{AG_Grid}_Enterprise_key_{AG-074947}_in_excess_of_the_licence_granted_is_not_permitted___Please_report_misuse_to_legal@ag-grid.com___For_help_with_changing_this_key_please_contact_info@ag-grid.com___{RED_RAIN_CORPORATION_PTY_LTD}_is_granted_a_{Single_Application}_Developer_License_for_the_application_{RedView}_only_for_{1}_Front-End_JavaScript_developer___All_Front-End_JavaScript_developers_working_on_{RedView}_need_to_be_licensed___{RedView}_has_been_granted_a_Deployment_License_Add-on_for_{1}_Production_Environment___This_key_works_with_{AG_Grid}_Enterprise_versions_released_before_{11_March_2026}____[v3]_[01]_MTc3MzE4NzIwMDAwMA==72c8cc44920bec78333e0f69781bb79b'\r\n);\r\n\r\n// tslint:disable-next-line:no-console\r\nconst GRAPHQL_ENDPOINT = serverUrl + '/api/graphql';\r\n\r\nconst fragmentMatcher = new IntrospectionFragmentMatcher({\r\n introspectionQueryResultData: {\r\n __schema: {\r\n types: [\r\n {\r\n kind: 'UNION',\r\n name: 'PartyDetails',\r\n possibleTypes: [\r\n { name: 'Staff' },\r\n { name: 'Individual' },\r\n { name: 'Organisation' },\r\n { name: 'Referrer' }\r\n ]\r\n },\r\n {\r\n kind: 'UNION',\r\n name: 'TaskDetails',\r\n possibleTypes: [ \r\n { name: 'GeneralTask' },\r\n { name: 'ClientTask' },\r\n { name: 'MatterTask' },\r\n { name: 'PhoneTask' },\r\n { name: 'FollowUpTask' },\r\n ]\r\n },\r\n {\r\n kind: 'INTERFACE',\r\n name: 'TaskDetailTypeInterface',\r\n possibleTypes: [\r\n { name: 'GeneralTask' },\r\n { name: 'ClientTask' },\r\n { name: 'MatterTask' },\r\n { name: 'PhoneTask' },\r\n { name: 'FollowUpTask' }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n});\r\n\r\nconst httpLink = new BatchHttpLink({\r\n uri: GRAPHQL_ENDPOINT,\r\n credentials: 'include'\r\n});\r\n\r\nconst errorLink = onError(\r\n ({ graphQLErrors, networkError, response, operation }) => {\r\n // console.log('@Network error:', networkError);\r\n // console.log('[OnError response]:', response);\r\n // console.log('[OnError operation]:', operation);\r\n\r\n if (graphQLErrors) {\r\n // eslint-disable-next-line array-callback-return\r\n graphQLErrors.map(({ message, locations, path, extensions }) => {\r\n if (extensions && extensions.code === 'auth-required') {\r\n window.location.replace('/unauthorised');\r\n }\r\n // console.log(`[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`);\r\n showNotification(null, message, 'error');\r\n });\r\n }\r\n if (networkError) {\r\n showNotification(\r\n 'Network error',\r\n networkError.message,\r\n 'error',\r\n 'SingleNotification'\r\n );\r\n }\r\n }\r\n);\r\n\r\nconst consoleLink = new ApolloLink(\r\n (operation: Operation, forward: NextLink) => {\r\n // console.log(`@starting request for ${operation.operationName}`, operation);\r\n return forward(operation).map(data => {\r\n // console.log(`@ending request for ${operation.operationName}`);\r\n return data;\r\n });\r\n }\r\n);\r\n\r\nconst wsClient = new SubscriptionClient(\r\n GRAPHQL_ENDPOINT.replace('https', 'wss'),\r\n {\r\n connectionParams: async () => {\r\n // get the authentication token from session storage if it exists\r\n const token = sessionStorage.getItem('accessToken');\r\n return {\r\n Authorization: token ? `Bearer ${token}` : '',\r\n RequestSource: 'connectweb'\r\n };\r\n },\r\n lazy: true,\r\n reconnect: true\r\n // tslint:disable-next-line:align\r\n },\r\n null,\r\n ['graphql-ws', 'connectweb']\r\n);\r\n\r\nconst webSocketLink = new WebSocketLink(wsClient);\r\n\r\nconst authLink = setContext((_, { headers }) => {\r\n // console.log(`@setting context for headers`);\r\n // get the authentication token from session storage if it exists\r\n const token = sessionStorage.getItem('accessToken');\r\n // return the headers to the context so httpLink can read them\r\n if (token) {\r\n return {\r\n headers: {\r\n ...headers,\r\n authorization: token ? `Bearer ${token}` : ''\r\n }\r\n };\r\n }\r\n\r\n return {\r\n headers: {\r\n ...headers\r\n }\r\n };\r\n});\r\n\r\nconst requestLink = ApolloLink.split(\r\n ({ query }) => {\r\n const definition = getMainDefinition(query);\r\n return (\r\n definition.kind === 'OperationDefinition' &&\r\n definition.operation === 'subscription'\r\n );\r\n },\r\n webSocketLink,\r\n consoleLink.concat(httpLink)\r\n);\r\n\r\nconst multiPartRequestLink = ApolloLink.split(\r\n ({ variables }) => {\r\n return isUploadRequest(variables);\r\n },\r\n multiPartLink,\r\n requestLink \r\n);\r\n\r\nconst link = ApolloLink.from([authLink, errorLink, multiPartRequestLink]);\r\n\r\nexport const resetApolloClient = async () => {\r\n try {\r\n await client.resetStore();\r\n } catch (error) {\r\n // console.error('Error resetting client', error);\r\n }\r\n};\r\n\r\nexport const cache = new InMemoryCache({ fragmentMatcher });\r\n\r\n// const stateLink = withClientState({\r\n// cache,\r\n// defaults: globalVariableDefaults,\r\n// resolvers: {}\r\n// });\r\n\r\ncache.writeData({\r\n data: {\r\n defaults: globalVariableDefaults\r\n }\r\n});\r\n\r\nexport const client = new ApolloClient({\r\n connectToDevTools: true,\r\n defaultOptions: {\r\n watchQuery: {\r\n fetchPolicy: 'cache-and-network',\r\n errorPolicy: 'ignore'\r\n },\r\n query: {\r\n fetchPolicy: 'cache-first',\r\n errorPolicy: 'all'\r\n },\r\n mutate: {\r\n errorPolicy: 'all'\r\n }\r\n },\r\n link: ApolloLink.from([\r\n // stateLink,\r\n errorLink,\r\n link\r\n ]),\r\n // link: errorLink.concat(link),\r\n cache: cache\r\n // This is what enables cancelation\r\n // queryDeduplication: false\r\n});\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\nunregister();","import gql from 'graphql-tag';\r\n\r\nexport interface DebtDetailInput {\r\n originalDebtAmount?: number;\r\n dateOfDebt?: Date;\r\n endDateOfDebt?: Date;\r\n invoiceNumber?: string;\r\n originalInterestAmount?: number;\r\n collectionCost?: number;\r\n accountManager?: string;\r\n instructions?: string;\r\n}\r\n\r\nexport interface PartyDetailInput {\r\n partyType: string | null;\r\n partyCategory: 'individual' | 'organisation';\r\n name: string | null;\r\n email: string | null;\r\n dateOfBirth: Date | null;\r\n tradingName: string | null;\r\n contactName: string | null;\r\n companyNumber: string | null;\r\n businessPhoneNumber: string | null;\r\n homePhoneNumber: string | null;\r\n mobilePhoneNumber: string | null;\r\n faxNumber: string | null;\r\n addressName: string | null;\r\n floor: string | null;\r\n number: string | null;\r\n street: string | null;\r\n suburb: string | null;\r\n state: string | null;\r\n postcode: string | null;\r\n country: string | null;\r\n legalAddressName: string | null;\r\n legalFloor: string | null;\r\n legalNumber: string | null;\r\n legalStreet: string | null;\r\n legalSuburb: string | null;\r\n legalState: string | null;\r\n legalPostcode: string | null;\r\n legalCountry: string | null;\r\n pOBoxType: string | null;\r\n pOBox: string | null;\r\n postalState: string | null;\r\n postalSuburb: string | null;\r\n postalPostCode: string | null;\r\n postalCountry: string | null;\r\n}\r\n\r\nexport interface UploadFile {\r\n name: string | null;\r\n tempFileName: string | null;\r\n guidID: string | null;\r\n status: number | null;\r\n // tslint:disable-next-line: no-any\r\n file: any | null;\r\n}\r\n\r\nexport interface CreatePendingMatterInput {\r\n debtDetail: DebtDetailInput | null;\r\n partyDetails: PartyDetailInput[] | null;\r\n files: UploadFile[] | null;\r\n}\r\n\r\nexport interface CreatePendingMatterMutationParams {\r\n input: CreatePendingMatterInput | null;\r\n}\r\n\r\nexport interface CreatePendingMatterMutationResults {\r\n matter: {\r\n pendingMatter: {\r\n create: {\r\n error: string;\r\n status: boolean;\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport const CreatePendingMatterMutation = gql`\r\n mutation createPendingMatter($input: CreatePendingMatterInput) {\r\n matter {\r\n pendingMatter { \r\n create(input: $input) {\r\n status,\r\n error\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const CreatePendingMattersSubscription = gql`\r\n subscription createPendingMatterNotificationSubscription {\r\n createPendingMatterNotification{\r\n id,\r\n description,\r\n message,\r\n status\r\n }\r\n }\r\n`;\r\n\r\nexport const CreateInstructMatterSubscription = gql`\r\n subscription createInstructMatterNotificationSubscription {\r\n createInstructMatterNotifications{\r\n id,\r\n description,\r\n message,\r\n status\r\n }\r\n }\r\n`;\r\n\r\nexport const SendInstructMatterMutation = gql`\r\n mutation createInstructMatter($input: CreateInstructMatterInput ) {\r\n matter {\r\n instructMatter {\r\n create(input: $input) {\r\n status\r\n error\r\n }\r\n } \r\n }\r\n }\r\n`;","import React from 'react';\r\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\r\nimport { RvButtonFabric, RvButtonType } from '../components/Button';\r\nimport { RvLabel, LabelStyle } from '../components/Label/Label';\r\nimport { mainTheme } from '../Theme';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n width: '100%',\r\n padding: '0 15px'\r\n },\r\n container: {},\r\n buttonContainer: {\r\n position: 'relative',\r\n padding: '15px 80px',\r\n color: mainTheme.BrandColors.TextPrimary,\r\n '@media (max-width: 1024px)': {\r\n padding: '15px 30px'\r\n },\r\n '& .rvlabel': {\r\n paddingLeft: '82px',\r\n fontFamily: mainTheme.Font.Main,\r\n fontSize: mainTheme.FontSize.PX.size8,\r\n letterSpacing: '0.86px',\r\n lineHeight: mainTheme.LineHeight.ExtraLarge\r\n },\r\n '& .back-button': {\r\n paddingRight: '32px',\r\n position: 'absolute',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n '& .ms-Button': {\r\n width: '50px',\r\n height: '50px'\r\n },\r\n '& .ms-Button-icon': {\r\n fontSize: mainTheme.FontSize.PX.size10,\r\n color: mainTheme.BrandColors.TemplatePrimary\r\n }\r\n }\r\n }\r\n })\r\n);\r\n\r\ninterface BannerProps {\r\n title: string;\r\n onClickBack?: () => void;\r\n}\r\n\r\nexport const IntegrationConfigurationBanner: React.FC = ({\r\n title,\r\n onClickBack\r\n}) => {\r\n const classes = useStyles();\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","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport { Button, Checkbox, createStyles, FormControlLabel, Grid, makeStyles, TextField, Theme } from '@material-ui/core';\r\nimport React, { useEffect, useState } from 'react';\r\nimport validator from 'validator';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport gql from 'graphql-tag';\r\nimport { FetchPolicy } from 'apollo-client';\r\nimport { client } from '../..';\r\nimport { showNotification } from '../../App';\r\nimport { RvLoader } from '../../components/Loader';\r\nimport { SettingNotification } from '../IntegrationConfigurationPage';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n display: 'flex',\r\n flex: 1,\r\n flexFlow: 'column',\r\n padding: 30,\r\n },\r\n textField: {\r\n width: '100%'\r\n },\r\n urlWrapper: {\r\n display: 'flex',\r\n flex: 1,\r\n alignItems: 'center',\r\n margin: '0 -10px',\r\n '& > div': {\r\n margin: '0 10px',\r\n },\r\n '& > button': {\r\n margin: '0 10px',\r\n }\r\n }\r\n })\r\n);\r\n\r\ninterface InnographyTabProps {\r\n subscriptionResponse: SettingNotification | null;\r\n}\r\n\r\ninterface InnographyTabState {\r\n url?: string;\r\n urlHelpText: string;\r\n isValid: boolean;\r\n isEnabled: boolean;\r\n isLoading: boolean;\r\n}\r\n\r\nexport default function InnographyTab(props: InnographyTabProps) {\r\n\r\n const classes = useStyles();\r\n\r\n const [state, setState] = useState({\r\n urlHelpText: '',\r\n isValid: true,\r\n isEnabled: false,\r\n isLoading: true\r\n });\r\n\r\n useEffect(() => { \r\n fetchData();\r\n // tslint:disable-next-line: align\r\n }, []);\r\n \r\n const fetchData = () => {\r\n retrieveInnographyConfigQueryData(\r\n true, // this.state.isRefresh, -- Since we are updating and creating, we do not fetch cached data\r\n // tslint:disable-next-line: no-console\r\n (data) => onRetrieveData(data),\r\n // tslint:disable-next-line:no-any\r\n function (reason: any): void {\r\n showNotification(null, reason, 'error');\r\n }\r\n );\r\n };\r\n\r\n const onRetrieveData = (data: InnographyConfiData) => {\r\n setState({\r\n ...state,\r\n url: data.settings.integrations.innography.config.url,\r\n isEnabled: data.settings.integrations.innography.config.isEnabled,\r\n isLoading: false\r\n });\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onTextFieldChange = (event: any) => {\r\n setState({\r\n ...state,\r\n url: event.target.value\r\n });\r\n };\r\n\r\n const onCheckboxChange = (event: React.ChangeEvent) => {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n [event.target.name]: event.target.checked\r\n };\r\n });\r\n };\r\n\r\n const onValidateUrl = () => {\r\n\r\n setState((prevState) => {\r\n\r\n let isValid = false;\r\n let helpText = 'Url is not valid.';\r\n\r\n if (state.url && validator.isURL(state.url)) {\r\n isValid = true;\r\n helpText = 'Url is valid.';\r\n\r\n client\r\n .mutate({\r\n mutation: UpdateInnographyConfigMutation,\r\n variables: {\r\n url: state.url,\r\n isEnabled: state.isEnabled\r\n },\r\n })\r\n // tslint:disable-next-line: no-any\r\n .then((results: { data: any }) => {\r\n if (results.data) {\r\n if (results.data.error === null || results.data.error === undefined) {\r\n showNotification(null, 'Successfully submitted', 'info'); \r\n } else {\r\n showNotification('Failed to Innography', results.data.error, 'error');\r\n }\r\n\r\n setState((_prevState) => {\r\n return {\r\n ..._prevState,\r\n isLoading: false\r\n };\r\n });\r\n }\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => {\r\n showNotification('Failed to Innography', reason, 'error');\r\n setState((_prevState) => {\r\n return {\r\n ..._prevState,\r\n isLoading: false\r\n };\r\n });\r\n });\r\n\r\n }\r\n\r\n return {\r\n ...prevState,\r\n isValid: isValid,\r\n urlHelpText: helpText\r\n };\r\n });\r\n };\r\n \r\n return (\r\n
\r\n \r\n {state.isLoading ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n } \r\n checked={state.isEnabled} \r\n onChange={onCheckboxChange} \r\n name=\"isEnabled\" \r\n />\r\n }\r\n label=\"Enabled\"\r\n />\r\n \r\n \r\n
\r\n \r\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 interface InnographyConfiData {\r\n settings: Settings;\r\n}\r\n\r\nexport interface Settings {\r\n integrations: Integrations;\r\n}\r\n\r\nexport interface Integrations {\r\n innography: Innography;\r\n}\r\n\r\nexport interface Innography {\r\n config: Config;\r\n}\r\n\r\nexport interface Config {\r\n isEnabled: boolean;\r\n url: string;\r\n}\r\n\r\nexport function retrieveInnographyConfigQueryData(\r\n refreshData: boolean,\r\n onSuccess: (data: InnographyConfiData) => void,\r\n // tslint:disable-next-line:no-any\r\n onError: (reason: any) => void\r\n): void {\r\n var fetchPolicy: FetchPolicy = refreshData === true ? 'network-only' : 'cache-first';\r\n client\r\n .query({\r\n query: InnographyConfigQuery,\r\n variables: {},\r\n fetchPolicy: fetchPolicy,\r\n })\r\n // tslint:disable-next-line:no-any\r\n .then((results: { data: any }) => {\r\n onSuccess(results.data);\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => {\r\n onError(reason);\r\n });\r\n}\r\n\r\nconst UpdateInnographyConfigMutation = gql`\r\n mutation UpdateInnographyConfigMutation($url: String, $isEnabled: Boolean) {\r\n integrations {\r\n innography {\r\n update(url: $url, isEnabled: $isEnabled) {\r\n error\r\n status\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nconst InnographyConfigQuery = gql`\r\nquery InnographyConfigQuery{\r\n settings{\r\n id,\r\n integrations{\r\n id,\r\n innography{\r\n id,\r\n config{\r\n id,\r\n isEnabled,\r\n url\r\n }\r\n }\r\n }\r\n }\r\n}`;","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useState, useEffect } from 'react';\r\n// import { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\r\nimport { Autocomplete, RenderInputParams } from '@material-ui/lab';\r\nimport { TextField, CircularProgress, makeStyles, Theme, createStyles } from '@material-ui/core';\r\nimport match from 'autosuggest-highlight/match';\r\nimport parse from 'autosuggest-highlight/parse';\r\nimport { FetchPolicy } from 'apollo-client';\r\nimport gql from 'graphql-tag';\r\nimport { client } from '../..';\r\nimport { IAutoCompleteItem } from '../../typings/autoComplete';\r\nimport { showNotification } from '../../App';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n\r\n },\r\n listPaper: {\r\n '& > ul': {\r\n maxHeight: '52vh !important'\r\n }\r\n },\r\n })\r\n);\r\n\r\ninterface ContactListSelectorProps {\r\n disabled?: boolean;\r\n required?: boolean;\r\n multiple?: boolean;\r\n // tslint:disable-next-line: no-any\r\n value?: IAutoCompleteItem | any; // value only available in single select\r\n error?: boolean;\r\n onSelection?: (value?: IAutoCompleteItem | IAutoCompleteItem[], name?: string) => void;\r\n className?: string;\r\n helperText?: string;\r\n name?: string;\r\n label?: string;\r\n style?: React.CSSProperties; \r\n disablePortal?: boolean;\r\n refresh?: boolean;\r\n}\r\n\r\ninterface ContactListSelectorState {\r\n isLoading: boolean;\r\n error?: boolean;\r\n // tslint:disable-next-line: no-any\r\n data: IAutoCompleteItem[] | any[];\r\n}\r\n\r\nexport const ContactListSelector: React.FC = props => {\r\n\r\n const classes = useStyles();\r\n\r\n const [state, setState] = useState({\r\n isLoading: false,\r\n error: props.error,\r\n data: [],\r\n });\r\n\r\n useEffect(() => { \r\n fetchData();\r\n // tslint:disable-next-line: align\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.refresh) {\r\n fetchData();\r\n }\r\n // tslint:disable-next-line: align\r\n }, [props.refresh]);\r\n\r\n const fetchData = () => {\r\n\r\n setState({\r\n ...state,\r\n isLoading: true\r\n });\r\n\r\n retrieveVision6ContactListsQueryData(\r\n true, // this.state.isRefresh, -- Since we are updating and creating, we do not fetch cached data\r\n // tslint:disable-next-line: no-console\r\n (data) => onRetrieveData(data),\r\n // tslint:disable-next-line:no-any\r\n function (reason: any): void {\r\n showNotification(null, reason, 'error');\r\n }\r\n );\r\n };\r\n\r\n const onRetrieveData = (data: Vision6ContactListsQueryData) => {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n data: data.settings.integrations.vision6.contactList.map((contact: ContactList) => {\r\n return {\r\n label: contact.name, \r\n value: contact.listId\r\n };\r\n }),\r\n isLoading: false\r\n };\r\n });\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const handleChange = (event: React.ChangeEvent<{}>, value: any) => {\r\n if (props.onSelection) {\r\n props.onSelection(value, props.name);\r\n }\r\n };\r\n\r\n const getInputProps = (params: RenderInputParams, isLoading?: boolean) => {\r\n return ({ \r\n ...params.InputProps,\r\n endAdornment: (\r\n \r\n {isLoading ? : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ), \r\n });\r\n };\r\n\r\n return (\r\n <>\r\n { props.multiple ? \r\n (\r\n option.label} \r\n classes={{\r\n paper: classes.listPaper\r\n }} \r\n // tslint:disable-next-line: jsx-no-lambda\r\n renderInput={params => (\r\n \r\n )}\r\n // tslint:disable-next-line: jsx-no-lambda\r\n renderOption={(option, { inputValue }) => {\r\n const matches = match(option.label, inputValue);\r\n const parts = parse(option.label, matches);\r\n \r\n return (\r\n
\r\n {parts.map((part, index) => (\r\n \r\n {part.text}\r\n \r\n ))}\r\n
\r\n );\r\n }}\r\n />\r\n )\r\n :\r\n (\r\n option.label} \r\n classes={{\r\n paper: classes.listPaper\r\n }} \r\n // tslint:disable-next-line: jsx-no-lambda\r\n renderInput={params => (\r\n \r\n )}\r\n // tslint:disable-next-line: jsx-no-lambda\r\n renderOption={(option, { inputValue }) => {\r\n const matches = match(option.label, inputValue);\r\n const parts = parse(option.label, matches);\r\n \r\n return (\r\n
\r\n {parts.map((part, index) => (\r\n \r\n {part.text}\r\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 interface Vision6ContactListsQueryData {\r\n settings: Settings;\r\n}\r\n\r\nexport interface Settings {\r\n integrations: Integrations;\r\n}\r\nexport interface Integrations {\r\n vision6: Vision6;\r\n}\r\n\r\nexport interface Vision6 {\r\n contactList: ContactList[];\r\n}\r\n\r\nexport interface ContactList {\r\n listId: string;\r\n name: string;\r\n}\r\n\r\nexport function retrieveVision6ContactListsQueryData(\r\n refreshData: boolean,\r\n onSuccess: (data: Vision6ContactListsQueryData) => void,\r\n // tslint:disable-next-line:no-any\r\n onError: (reason: any) => void\r\n): void {\r\n var fetchPolicy: FetchPolicy = refreshData === true ? 'network-only' : 'cache-first';\r\n client\r\n .query({\r\n query: Vision6ContactListsQuery,\r\n variables: {},\r\n fetchPolicy: fetchPolicy,\r\n })\r\n // tslint:disable-next-line:no-any\r\n .then((results: { data: any }) => {\r\n onSuccess(results.data);\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => {\r\n onError(reason);\r\n });\r\n}\r\n\r\nconst Vision6ContactListsQuery = gql`\r\nquery Vision6ContactListsQuery{\r\n settings{\r\n id,\r\n integrations{\r\n id,\r\n vision6{\r\n id,\r\n contactList{\r\n id,\r\n name,\r\n listId\r\n } \r\n }\r\n }\r\n }\r\n}`;","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport { Button, Checkbox, CircularProgress, createStyles, FormControlLabel, Grid, InputAdornment, makeStyles, TextField, Theme } from '@material-ui/core';\r\nimport React, { useEffect, useState } from 'react';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport { ContactListSelector } from '../selectors/ContactListSelector';\r\nimport { IAutoCompleteItem } from '../../typings/autoComplete';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport gql from 'graphql-tag';\r\nimport { FetchPolicy } from 'apollo-client';\r\nimport { client } from '../..';\r\nimport { showNotification } from '../../App';\r\nimport { RvLoader } from '../../components/Loader';\r\nimport { SettingNotification } from '../IntegrationConfigurationPage';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n display: 'flex',\r\n flex: 1,\r\n flexFlow: 'column',\r\n padding: 30,\r\n },\r\n apiWrapper: {\r\n display: 'flex',\r\n flex: 1,\r\n alignItems: 'center',\r\n margin: '0 -10px',\r\n '& > div': {\r\n margin: '0 10px',\r\n },\r\n '& > button': {\r\n margin: '0 10px',\r\n }\r\n },\r\n textField: {\r\n width: '100%'\r\n },\r\n buttonWrapper: {\r\n margin: '0 -10px',\r\n width: '100%',\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n '& > button': {\r\n margin: '0 10px',\r\n }\r\n },\r\n icon: {\r\n color: 'green',\r\n }\r\n })\r\n);\r\n\r\ninterface VisionSixTabProps {\r\n subscriptionResponse: SettingNotification | null;\r\n}\r\n\r\ninterface VisionSixTabState {\r\n isEnabled: boolean;\r\n isSendEmailViaVision6: boolean;\r\n contactList: IAutoCompleteItem | null;\r\n isValidAPI: boolean;\r\n isLoading: boolean;\r\n isValidAPILoading: boolean;\r\n apiKey: string;\r\n}\r\n\r\nexport default function VisionSixTab(props: VisionSixTabProps) {\r\n\r\n const classes = useStyles();\r\n\r\n const [state, setState] = useState({\r\n isEnabled: false,\r\n isSendEmailViaVision6: false,\r\n contactList: null,\r\n isValidAPI: true,\r\n isLoading: true,\r\n apiKey: '',\r\n isValidAPILoading: false\r\n });\r\n\r\n useEffect(() => { \r\n fetchData();\r\n // tslint:disable-next-line: align\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n if (props.subscriptionResponse && props.subscriptionResponse.message.includes('authenticated successfully')) {\r\n setState((_prevState) => {\r\n return {\r\n ..._prevState,\r\n isValidAPI: true,\r\n isValidAPILoading: false\r\n };\r\n });\r\n } \r\n if (props.subscriptionResponse && props.subscriptionResponse.message.includes('authentication failed')) {\r\n setState((_prevState) => {\r\n return {\r\n ..._prevState,\r\n isValidAPI: false,\r\n isValidAPILoading: false\r\n };\r\n });\r\n }\r\n // tslint:disable-next-line: align\r\n }, [props.subscriptionResponse]);\r\n \r\n const fetchData = () => {\r\n retrieveVision6ConfigQueryData(\r\n true, // this.state.isRefresh, -- Since we are updating and creating, we do not fetch cached data\r\n // tslint:disable-next-line: no-console\r\n (data) => onRetrieveData(data),\r\n // tslint:disable-next-line:no-any\r\n function (reason: any): void {\r\n showNotification(null, reason, 'error');\r\n }\r\n );\r\n };\r\n\r\n const onRetrieveData = (data: Vision6ConfigData) => {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isEnabled: data.settings.integrations.vision6.config.isEnabled,\r\n isSendEmailViaVision6: data.settings.integrations.vision6.config.sendEmailsViaVision6,\r\n apiKey: data.settings.integrations.vision6.config.token,\r\n // tslint:disable-next-line: max-line-length\r\n contactList: data.settings.integrations.vision6.config.contactListName \r\n && data.settings.integrations.vision6.config.contactListId \r\n ? { \r\n label: data.settings.integrations.vision6.config.contactListName, \r\n value: data.settings.integrations.vision6.config.contactListId \r\n }\r\n : null,\r\n isLoading: false\r\n };\r\n });\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onTextFieldChange = (event: any) => {\r\n setState({\r\n ...state,\r\n apiKey: event.target.value,\r\n isValidAPI: false\r\n });\r\n };\r\n\r\n const onCheckboxChange = (name: string) => (event: React.ChangeEvent<{}>, checked: boolean) => {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n [name]: checked\r\n };\r\n });\r\n };\r\n\r\n const onSelection = (value: IAutoCompleteItem, name?: string) => {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n contactList: value\r\n };\r\n });\r\n };\r\n\r\n const onValidateAPiKey = () => {\r\n if (state.apiKey) {\r\n\r\n setState((_prevState) => {\r\n return {\r\n ..._prevState,\r\n isValidAPILoading: true\r\n };\r\n });\r\n\r\n client\r\n .mutate({\r\n mutation: AuthenticateVision6Mutation,\r\n variables: {\r\n token: state.apiKey\r\n },\r\n })\r\n // tslint:disable-next-line: no-any\r\n .then((results: { data: any }) => {\r\n if (results.data) {\r\n if (results.data.integrations.vision6.authenticate.status && results.data.integrations.vision6.authenticate.error === null) {\r\n showNotification(null, 'Successfully submitted', 'info'); \r\n }\r\n }\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => {\r\n showNotification('Failed to Innography', reason, 'error');\r\n setState((_prevState) => {\r\n return {\r\n ..._prevState,\r\n isLoading: false\r\n };\r\n });\r\n });\r\n }\r\n };\r\n\r\n const onSaveConfig = () => {\r\n client\r\n .mutate({\r\n mutation: UpdateVision6ConfigMutation,\r\n variables: {\r\n token: state.apiKey, \r\n contactListId: state.contactList ? state.contactList.value : null,\r\n contactListName: state.contactList ? state.contactList.label : null,\r\n isEnabled: state.isEnabled,\r\n sendEmailsViaVision6: state.isSendEmailViaVision6\r\n },\r\n })\r\n // tslint:disable-next-line: no-any\r\n .then((results: { data: any }) => {\r\n if (results.data) {\r\n if (results.data.integrations.vision6.update.status && results.data.integrations.vision6.update.error === null) {\r\n showNotification(null, 'Successfully submitted', 'info'); \r\n }\r\n }\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => {\r\n showNotification('Failed to Vision 6', reason, 'error');\r\n setState((_prevState) => {\r\n return {\r\n ..._prevState,\r\n isLoading: false\r\n };\r\n });\r\n });\r\n };\r\n\r\n const validateIndicator = () => {\r\n if (state.isValidAPILoading) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n if (state.isValidAPI) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return undefined;\r\n };\r\n \r\n return (\r\n
\r\n \r\n {state.isLoading ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n } \r\n checked={state.isEnabled} \r\n />\r\n }\r\n name=\"isEnabled\" \r\n onChange={onCheckboxChange('isEnabled')} \r\n label=\"Enabled\"\r\n />\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n } \r\n checked={state.isSendEmailViaVision6} \r\n />\r\n }\r\n onChange={onCheckboxChange('isSendEmailViaVision6')} \r\n name=\"isSendEmailViaVision6\" \r\n disabled={!state.isEnabled}\r\n label=\"Send emails via vision 6\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\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 interface Vision6ConfigData {\r\n settings: Settings; \r\n}\r\n\r\nexport interface Settings {\r\n integrations: Integrations;\r\n}\r\n\r\nexport interface Integrations {\r\n vision6: Vision6;\r\n}\r\n\r\nexport interface Vision6 {\r\n config: Config;\r\n}\r\n\r\nexport interface Config {\r\n contactListId: string;\r\n contactListName: string;\r\n isEnabled: boolean;\r\n sendEmailsViaVision6: boolean;\r\n token: string;\r\n}\r\n\r\nexport function retrieveVision6ConfigQueryData(\r\n refreshData: boolean,\r\n onSuccess: (data: Vision6ConfigData) => void,\r\n // tslint:disable-next-line:no-any\r\n onError: (reason: any) => void\r\n): void {\r\n var fetchPolicy: FetchPolicy = refreshData === true ? 'network-only' : 'cache-first';\r\n client\r\n .query({\r\n query: Vision6ConfigQuery,\r\n variables: {},\r\n fetchPolicy: fetchPolicy,\r\n })\r\n // tslint:disable-next-line:no-any\r\n .then((results: { data: any }) => {\r\n onSuccess(results.data);\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => {\r\n onError(reason);\r\n });\r\n}\r\n\r\nconst Vision6ConfigQuery = gql`\r\nquery Vision6ConfigQuery{\r\n settings{\r\n id,\r\n integrations {\r\n id,\r\n vision6 {\r\n id,\r\n config {\r\n id,\r\n isEnabled,\r\n sendEmailsViaVision6,\r\n token,\r\n contactListId,\r\n contactListName\r\n } \r\n }\r\n }\r\n }\r\n}`;\r\n\r\nconst AuthenticateVision6Mutation = gql`\r\n mutation AuthenticateVision6Mutation($token: String) {\r\n integrations {\r\n vision6 {\r\n authenticate(token: $token) {\r\n error\r\n status\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst UpdateVision6ConfigMutation = gql`\r\n mutation UpdateVision6ConfigMutation(\r\n $token: String, \r\n $contactListId: String, \r\n $isEnabled: Boolean, \r\n $sendEmailsViaVision6: Boolean,\r\n $contactListName: String\r\n ) {\r\n integrations {\r\n vision6 {\r\n update(\r\n token: $token, \r\n contactListId: $contactListId, \r\n contactListName: $contactListName,\r\n isEnabled: $isEnabled, \r\n sendEmailsViaVision6: $sendEmailsViaVision6\r\n ) {\r\n error\r\n status\r\n }\r\n }\r\n }\r\n }\r\n`;","import { FetchPolicy } from 'apollo-client';\r\nimport gql from 'graphql-tag';\r\nimport { client } from '..';\r\n\r\nexport interface IntegrationSettingsNamesData {\r\n settings: Settings;\r\n loading?: boolean;\r\n networkStatus?: number;\r\n}\r\n\r\nexport interface Settings {\r\n integrations: Integrations;\r\n}\r\n\r\nexport interface Integrations {\r\n settingNames: SettingNames;\r\n}\r\n\r\nexport interface SettingNames {\r\n settingName: SettingName[];\r\n}\r\n\r\nexport interface SettingName {\r\n id: number;\r\n guidID: string;\r\n title: string;\r\n description: string;\r\n internalName: string;\r\n}\r\n\r\nexport function retrieveIntegrationSettingsNamesQueryData(\r\n refreshData: boolean,\r\n onSuccess: (data: IntegrationSettingsNamesData) => void,\r\n // tslint:disable-next-line:no-any\r\n onError: (reason: any) => void)\r\n : void {\r\n var fetchPolicy: FetchPolicy = refreshData === true ? 'network-only' : 'cache-first';\r\n\r\n client.query({\r\n query: IntegrationSettingsNamesQuery,\r\n variables: {},\r\n fetchPolicy: fetchPolicy\r\n })\r\n // tslint:disable-next-line:no-any\r\n .then((results: { data: any; }) => {\r\n onSuccess(results.data);\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any ) => { onError(reason); });\r\n}\r\n\r\nexport const IntegrationSettingsNamesQuery = gql`\r\n query IntegrationSettingsNames{\r\n settings {\r\n id,\r\n integrations {\r\n id,\r\n settingNames {\r\n settingName {\r\n id,\r\n guidID,\r\n title,\r\n description,\r\n internalName\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`;","import { Button, createStyles, Grid, makeStyles, TextField, Theme } from '@material-ui/core';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { RvLoader } from '../../components/Loader';\r\nimport gql from 'graphql-tag';\r\nimport { SettingNotification } from '../IntegrationConfigurationPage';\r\nimport { useMutation, useQuery } from 'react-apollo';\r\nimport { v4 } from 'uuid';\r\nimport { showNotification } from '../../App';\r\nimport { client } from '../..';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n display: 'flex',\r\n flex: 1,\r\n flexFlow: 'column',\r\n padding: 30,\r\n },\r\n textField: {\r\n width: '100%'\r\n },\r\n textFieldWithButton: {\r\n display: 'flex',\r\n flex: 1,\r\n alignItems: 'center',\r\n margin: '0 -10px',\r\n '& > div': {\r\n margin: '0 10px',\r\n },\r\n '& > button': {\r\n margin: '0 10px',\r\n }\r\n },\r\n })\r\n);\r\n\r\ninterface ExternalAPIConfigurationTabProps {\r\n subscriptionResponse: SettingNotification | null;\r\n}\r\ninterface ExternalAPIConfigurationTabState {\r\n isLoading: boolean;\r\n clientKey: string;\r\n clientSecret: string;\r\n}\r\n\r\nexport default function ExternalAPIConfigurationTab(props: ExternalAPIConfigurationTabProps) {\r\n\r\n const classes = useStyles();\r\n\r\n const [state, setState] = useState({\r\n isLoading: false,\r\n clientKey: '',\r\n clientSecret: ''\r\n });\r\n\r\n const clientData = useQuery(ClientDataQuery);\r\n\r\n // tslint:disable-next-line: no-any\r\n const [createApiUser] = useMutation(CreateApiUser);\r\n\r\n useEffect(() => { \r\n // tslint:disable-next-line: max-line-length\r\n if (!clientData.loading && clientData.data) {\r\n var { \r\n clientSecret,\r\n clientKey\r\n } = clientData.data.administrator.clientData; \r\n\r\n // tslint:disable-next-line: no-any\r\n setState((prevState: any) => {\r\n return {\r\n ...prevState,\r\n isLoading: false,\r\n clientKey: clientKey != null ? clientKey : '',\r\n clientSecret: clientSecret != null ? clientSecret : ''\r\n };\r\n });\r\n }\r\n // tslint:disable-next-line: align\r\n }, [clientData.data, clientData.loading]);\r\n\r\n useEffect(() => {\r\n const subscribeSettingNotificationObj = subscribeApiNotification();\r\n // Cleanup\r\n return () => {\r\n subscribeSettingNotificationObj.unsubscribe();\r\n };\r\n\r\n // tslint:disable-next-line: align\r\n }, []);\r\n\r\n const subscribeApiNotification = () => {\r\n return client\r\n .subscribe({\r\n fetchPolicy: 'no-cache',\r\n query: ApiSubscription,\r\n variables: {},\r\n })\r\n .subscribe({\r\n // tslint:disable-next-line:no-any\r\n next(results: any) {\r\n\r\n if (results.data.createExternalApiAccessNotification.status) {\r\n showNotification('Success', results.data.createExternalApiAccessNotification.message, 'info');\r\n } else {\r\n showNotification('Failed', results.data.createExternalApiAccessNotification.message, 'error');\r\n }\r\n },\r\n // tslint:disable-next-line:no-any\r\n error(err: any) {\r\n // tslint:disable-next-line:no-console\r\n console.error(err);\r\n showNotification(null, err, 'error');\r\n },\r\n });\r\n };\r\n\r\n const onSubmit = () => { \r\n createApiUser({\r\n variables: {\r\n clientKey: state.clientKey ? state.clientKey : '',\r\n clientSecret: state.clientSecret ? state.clientSecret : ''\r\n }\r\n })\r\n // tslint:disable-next-line: no-any\r\n .then((results: { data: any }) => {\r\n if (results.data) {\r\n showNotification(null, 'Successfully submitted', 'info'); \r\n }\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => {\r\n showNotification('Failed to create ApiUser', reason, 'error');\r\n setState((_prevState) => {\r\n return {\r\n ..._prevState,\r\n onSubmitLoading: false\r\n };\r\n });\r\n });\r\n };\r\n \r\n return (\r\n
\r\n \r\n {state.isLoading ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\ninterface ClientDataQuery {\r\n administrator: ClientData;\r\n}\r\n\r\ninterface ClientData {\r\n clientData: ClientDataResult;\r\n}\r\ninterface ClientDataResult {\r\n clientSecret: string | null;\r\n clientKey: string | null;\r\n}\r\n \r\nconst ClientDataQuery = gql`\r\n query ClientDataQuery{\r\n administrator {\r\n clientData {\r\n clientSecret\r\n clientKey\r\n }\r\n }\r\n }\r\n`;\r\n\r\ninterface CreateApiUserMutationParams {\r\n clientSecret: string | null;\r\n clientKey: string | null;\r\n}\r\n\r\nconst CreateApiUser = gql`\r\n mutation createApiUser (\r\n $clientSecret: String,\r\n $clientKey: String) {\r\n integrations {\r\n aPIUser {\r\n update(clientKey: $clientKey, clientSecret: $clientSecret) {\r\n status\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst ApiSubscription = gql`\r\nsubscription createExternalApiAccessNotification{\r\n createExternalApiAccessNotification{\r\n id\r\n message\r\n status\r\n description\r\n }\r\n }\r\n`;\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useState, useEffect } from 'react';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport { IntegrationConfigurationBanner } from './IntegrationConfigurationBanner';\r\nimport { RouterProps, showNotification } from '../App';\r\nimport { UserFeature, UserFeatureEnum } from '../types/UserFeature';\r\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport { makeStyles } from '@material-ui/core';\r\nimport InnographyTab from './tabs/InnographyTab';\r\nimport InsertLinkOutlinedIcon from '@material-ui/icons/InsertLinkOutlined';\r\nimport StoreMallDirectoryOutlinedIcon from '@material-ui/icons/StoreMallDirectoryOutlined';\r\nimport VisionSixTab from './tabs/VisionSixTab';\r\nimport { client } from '..';\r\nimport gql from 'graphql-tag';\r\nimport { IntegrationSettingsNamesData, retrieveIntegrationSettingsNamesQueryData, SettingName } from './IntegrationConfigurationRepository';\r\nimport { RvLoader } from '../components/Loader';\r\nimport ExternalAPIConfigurationTab from './tabs/ExternalAPIConfigurationTab';\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n flex: 1,\r\n display: 'flex',\r\n flexFlow: 'column',\r\n },\r\n wrapper: {\r\n flex: 1,\r\n display: 'flex',\r\n backgroundColor: '#fff',\r\n margin: '0 -15px',\r\n padding: '15px',\r\n },\r\n sidebar: {\r\n padding: '0 15px',\r\n maxWidth: '400px',\r\n width: '100%',\r\n position: 'relative',\r\n flex: 1,\r\n display: 'flex',\r\n },\r\n sidebarInner: {\r\n position: 'relative',\r\n flex: 1,\r\n // left: 0,\r\n // right: 0,\r\n // top: 0,\r\n // bottom: 0,\r\n // overflow: 'auto',\r\n },\r\n sidebarList: {\r\n position: 'absolute',\r\n top: 0,\r\n right: 0,\r\n left: 0,\r\n bottom: 0,\r\n overflow: 'auto',\r\n paddingRight: '10px',\r\n '& .Mui-selected': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.2)',\r\n },\r\n '& .Mui-selected:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.2)',\r\n },\r\n },\r\n content: {\r\n padding: '0 15px',\r\n flexGrow: 1,\r\n display: 'flex',\r\n flexFlow: 'column',\r\n '& > div': {\r\n flexGrow: 1,\r\n maxWidth: '700px',\r\n },\r\n },\r\n tabLoaderWrapper: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n flex: 1,\r\n },\r\n});\r\n\r\nexport enum IntegrationConfigurationList {\r\n InnographyConfiguration = 0,\r\n Vision6Configuration,\r\n ExternalAPIConfiguration,\r\n}\r\nexport interface SettingNotification {\r\n description: string;\r\n id: number;\r\n message: string;\r\n status: boolean;\r\n}\r\n\r\ninterface IntegrationConfigurationPageState {\r\n selectedTable: IntegrationConfigurationList;\r\n subscriptionResponse: SettingNotification | null;\r\n tabs: SettingName[];\r\n isTabLoading: boolean;\r\n}\r\n\r\ninterface IntegrationConfigurationPageProps extends RouterProps {}\r\n\r\nexport default function IntegrationConfigurationPage(props: IntegrationConfigurationPageProps) {\r\n const classes = useStyles();\r\n\r\n const [pageState, setPageState] = useState({\r\n selectedTable: IntegrationConfigurationList.InnographyConfiguration,\r\n subscriptionResponse: null,\r\n tabs: [],\r\n isTabLoading: true,\r\n });\r\n\r\n useEffect(() => {\r\n fetchTabData();\r\n\r\n var routeTab: IntegrationConfigurationList = IntegrationConfigurationList[props.match.params.tab];\r\n\r\n setPageState({\r\n ...pageState,\r\n selectedTable: routeTab ? routeTab : pageState.selectedTable,\r\n });\r\n\r\n // tslint:disable-next-line: align\r\n }, []);\r\n\r\n useEffect(() => {\r\n const subscribeSettingNotificationObj = subscribeSettingNotification();\r\n // Cleanup\r\n return () => {\r\n subscribeSettingNotificationObj.unsubscribe();\r\n };\r\n\r\n // tslint:disable-next-line: align\r\n }, []);\r\n\r\n const subscribeSettingNotification = () => {\r\n return client\r\n .subscribe({\r\n fetchPolicy: 'no-cache',\r\n query: SettingNotificationSubscription,\r\n variables: {},\r\n })\r\n .subscribe({\r\n // tslint:disable-next-line:no-any\r\n next(results: any) {\r\n setPageState((prevState) => {\r\n return {\r\n ...prevState,\r\n subscriptionResponse: results.data.settingNotification,\r\n };\r\n });\r\n if (results.data.settingNotification.status) {\r\n showNotification('Success', results.data.settingNotification.message, 'info');\r\n } else {\r\n showNotification('Failed', results.data.settingNotification.message, 'error');\r\n }\r\n },\r\n // tslint:disable-next-line:no-any\r\n error(err: any) {\r\n // tslint:disable-next-line:no-console\r\n console.error(err);\r\n showNotification(null, err, 'error');\r\n },\r\n });\r\n };\r\n\r\n const fetchTabData = () => {\r\n retrieveIntegrationSettingsNamesQueryData(\r\n true,\r\n // tslint:disable-next-line: no-console\r\n (data: IntegrationSettingsNamesData) => onIntegrationTabRetrieved(data),\r\n // tslint:disable-next-line: no-any\r\n function (reason: any): void {\r\n showNotification(null, reason, 'error');\r\n },\r\n );\r\n };\r\n\r\n const onIntegrationTabRetrieved = (data: IntegrationSettingsNamesData) => {\r\n setPageState((prevState) => {\r\n return {\r\n ...prevState,\r\n tabs: data.settings.integrations.settingNames.settingName,\r\n isTabLoading: false,\r\n };\r\n });\r\n };\r\n\r\n const getIcon = (internalName: string) => {\r\n if (internalName === IntegrationConfigurationList[IntegrationConfigurationList.InnographyConfiguration]) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (internalName === IntegrationConfigurationList[IntegrationConfigurationList.Vision6Configuration]) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const isHasAccess = (internalName: string): boolean => {\r\n if (internalName === IntegrationConfigurationList[IntegrationConfigurationList.InnographyConfiguration]) {\r\n return UserFeature.HasAccess(UserFeatureEnum.hasInnographyLink);\r\n }\r\n\r\n if (internalName === IntegrationConfigurationList[IntegrationConfigurationList.Vision6Configuration]) {\r\n return UserFeature.HasAccess(UserFeatureEnum.hasVisionSix);\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const onClickBack = () => {\r\n props.history.push('/configurationDashboard');\r\n };\r\n\r\n const onClickTab = (value: IntegrationConfigurationList) => () => {\r\n setPageState({\r\n ...pageState,\r\n selectedTable: value,\r\n });\r\n\r\n props.history.push(`/integrationConfiguration/${IntegrationConfigurationList[value]}`);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n {pageState.isTabLoading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n
\r\n
\r\n \r\n {pageState.tabs\r\n .map(\r\n (tab: SettingName) =>\r\n isHasAccess(tab.internalName) && (\r\n \r\n {getIcon(tab.internalName)}\r\n \r\n \r\n ),\r\n )}\r\n \r\n
\r\n
\r\n
\r\n {pageState.selectedTable === IntegrationConfigurationList.InnographyConfiguration && UserFeature.HasAccess(UserFeatureEnum.hasInnographyLink) && (\r\n \r\n )}\r\n {pageState.selectedTable === IntegrationConfigurationList.Vision6Configuration && UserFeature.HasAccess(UserFeatureEnum.hasVisionSix) && (\r\n \r\n )}\r\n {pageState.selectedTable === IntegrationConfigurationList.ExternalAPIConfiguration && (\r\n \r\n )}\r\n
\r\n \r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst SettingNotificationSubscription = gql`\r\n subscription SettingfigNotification {\r\n settingNotification {\r\n description\r\n id\r\n message\r\n status\r\n }\r\n }\r\n`;\r\n","import { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\nimport { ReactPlugin } from '@microsoft/applicationinsights-react-js';\r\n\r\nconst reactPlugin: ReactPlugin = new ReactPlugin();\r\n// property is fetched from \"config/webpack.config.{env}.js\" file, under plugins section\r\ndeclare const AppInsightsInstrumentationKey: string;\r\n\r\n// tslint:disable-next-line:no-any\r\nexport const appInsights: any = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: AppInsightsInstrumentationKey,\r\n extensions: [reactPlugin],\r\n samplingPercentage: 100 \r\n }\r\n});\r\nappInsights.loadAppInsights();","export interface TranslationTextList {\r\n [key: string]: string;\r\n Help: string;\r\n ScrubEnquiryData: string;\r\n LeadDashboardLayout: string;\r\n EnquiryDashboardLayout: string;\r\n FirmDashboardLayout: string;\r\n Tasks: string;\r\n PhoneCalls: string;\r\n TasksFound: string;\r\n LoginActivity: string;\r\n NameAccess: string;\r\n Configuration: string;\r\n Home: string;\r\n Admin: string;\r\n GeneralDetails: string;\r\n GuidId: string;\r\n Billed: string;\r\n BilledInxTax: string;\r\n BilledFees: string;\r\n PercentageEstimate: string;\r\n PercentageExposure: string;\r\n PercentageEstimateShort: string;\r\n Financials: string;\r\n MatterId: string;\r\n FileNumber: string;\r\n MatterNumber: string;\r\n Logo: string;\r\n Reference: string;\r\n ClientName: string;\r\n Client: string;\r\n ClientPhone: string;\r\n ClientEmail: string;\r\n Clients: string;\r\n Status: string;\r\n LastUpdate: string;\r\n PublishedDate: string;\r\n InternalCode: string;\r\n FileLocation: string;\r\n Matter: string;\r\n Matters: string;\r\n StaffBillingSummary: string;\r\n MattersReferred: string;\r\n MatterType: string;\r\n MatterTypeCategory: string;\r\n EstimatedCosts: string;\r\n BillingMethod: string;\r\n CostAgreementReceived: string;\r\n LongTitle: string;\r\n Completed: string;\r\n Title: string;\r\n Description: string;\r\n State: string;\r\n FinancialBilled: string;\r\n TrustFund: string;\r\n TrustBalance: string;\r\n BilledTimeAndFees: string;\r\n BilledCostAndPayments: string;\r\n Unbilled: string;\r\n UnbilledShort: string;\r\n UnbilledFees: string;\r\n UnbilledDisbursements: string;\r\n UnbilledDisbursementsShort: string;\r\n Price: string;\r\n Deposit: string;\r\n ExchangeDate: string;\r\n CoolingOffDate: string;\r\n DepositDueDate: string;\r\n DepositPaidDate: string;\r\n EarliestPriorityDate: string;\r\n ApplicationNumber: string;\r\n PublicationDate: string;\r\n PublicationNumber: string;\r\n GrantNumber: string;\r\n Class: string;\r\n GoodsAndServices: string;\r\n CostAgreementReceivedDate: string;\r\n CostAgreementRequired: string;\r\n UnbilledTimeAndFees: string;\r\n Disbursements: string;\r\n UnbilledCostRecoveries: string;\r\n UnbilledOfficePayments: string;\r\n UnbilledAnticipatedPayments: string;\r\n TrustGeneralBalance: string;\r\n DebtorsBalance: string;\r\n CurrentDebtorsBalanceIncTax: string;\r\n ThirtyDebtorsBalanceIncTax: string;\r\n SixtyDebtorsBalanceIncTax: string;\r\n NintyDebtorsBalanceIncTax: string;\r\n CurrentWIPBalanceExTax: string;\r\n ThirtyWIPBalanceExTax: string;\r\n SixtyWIPBalanceExTax: string;\r\n NinetyWIPBalanceExTax: string;\r\n Trust: string;\r\n TrustDeposits: string;\r\n TrustWithdrawal: string;\r\n TrustControlledMoneyBalance: string;\r\n TrustInvestmentsBalance: string;\r\n Role: string;\r\n ABN: string;\r\n ACN: string;\r\n OrganisationType: string;\r\n BusinessType: string;\r\n OtherSide: string;\r\n CategoryId: string;\r\n Category: string;\r\n CountryId: string;\r\n Country: string;\r\n ClientOnly: string;\r\n Property: string;\r\n PropertyType: string;\r\n PropertyLabel: string;\r\n Family: string;\r\n BrandFamily: string;\r\n Stage: string;\r\n MatterNotes: string;\r\n AwaitingInstructions: string;\r\n FIRBStatus: string;\r\n Documents: string;\r\n SearchDocument: string;\r\n Messages: string;\r\n SearchMessages: string;\r\n Timeline: string;\r\n SearchTimeline: string;\r\n Overdue: string;\r\n DueComing: string;\r\n Today: string;\r\n CompletedOnly: string;\r\n UploadedOn: string;\r\n CreatedOn: string;\r\n By: string;\r\n Notes: string;\r\n Download: string;\r\n SummaryList: string;\r\n Summary: string;\r\n UserList: string;\r\n LeadsSummary: string;\r\n Leads: string;\r\n EnquiriesSummary: string;\r\n Enquiries: string;\r\n KeyOpportunity: string;\r\n Enquiry: string;\r\n EnquiryDetails: string;\r\n MyEnquiries: string;\r\n MyKeyOpportunities: string;\r\n SearchNewEnquiries: string;\r\n SearchNewKeyOpportunity: string;\r\n MyNewEnquiries: string;\r\n MyNewKeyOpportunity: string;\r\n EnquiriesDashboard: string;\r\n LeadsDashboard: string;\r\n User: string;\r\n RoleSummary: string;\r\n Roles: string;\r\n MatterAccess: string;\r\n MessageActivity: string;\r\n TimesheetActivity: string;\r\n TimelineAnalytics: string;\r\n MatterAnalytics: string;\r\n NameAnalytics: string;\r\n LoginAnalytics: string;\r\n SearchEntries: string;\r\n SearchMatters: string;\r\n SearchStaffBudget: string;\r\n SearchClientsContacts: string;\r\n SearchTasks: string;\r\n IncludeCompleted: string;\r\n IncludeDead: string;\r\n IncludeInactive: string;\r\n Search: string;\r\n Email: string;\r\n Phone: string;\r\n Address: string;\r\n Staff: string;\r\n Scope: string;\r\n Recipient: string;\r\n RoleCategory: string;\r\n Reports: string;\r\n ReportsCatalog: string;\r\n OurFirm: string;\r\n NewMessage: string;\r\n NewNote: string;\r\n TypeNote: string;\r\n TypeMessage: string;\r\n SendMessageAction: string;\r\n Send: string;\r\n Cancel: string;\r\n Dashboard: string;\r\n DashboardLayout: string;\r\n FirmDashboard: string;\r\n TaskDashboard: string;\r\n ClientDashboard: string;\r\n FeeEarnerDashboard: string;\r\n FeeEarnerDashboardLayout: string;\r\n TaskDashboardLayout: string;\r\n ClientDashboardLayout: string;\r\n MattersSummary: string;\r\n MatterManagement: string;\r\n Logout: string;\r\n ChangePassword: string;\r\n CurrentPassword: string;\r\n NewPassword: string;\r\n ConfirmPassword: string;\r\n Save: string;\r\n SupportedBrowsers: string;\r\n MemberLogin: string;\r\n Username: string;\r\n Password: string;\r\n RememberMe: string;\r\n ForgottenPassword: string;\r\n Login: string;\r\n GoogleChrome: string;\r\n Safari: string;\r\n MozillaFirefox: string;\r\n MicrosoftEdge: string;\r\n InternetExplorer: string;\r\n NoDocumentsAvailable: string;\r\n NoMessage: string;\r\n Subject: string;\r\n InternalMessage: string;\r\n Party: string;\r\n Parties: string;\r\n Due: string;\r\n NoTimelineDatesSet: string;\r\n MatterTitle: string;\r\n General: string;\r\n MatterCategory: string;\r\n TypeId: string;\r\n Type: string;\r\n TypeClassification: string;\r\n TypeState: string;\r\n SubTypeID: string;\r\n SubType: string;\r\n LastComment: string;\r\n Last3Comments: string;\r\n LastMessage: string;\r\n Last3Messages: string;\r\n SettlementDate: string;\r\n SyncSystemID: string;\r\n ResponsibleID: string;\r\n Responsible: string;\r\n ResponsibleShort: string;\r\n ResponsibleEmail: string;\r\n ResponsiblePhone: string;\r\n ActingID: string;\r\n Acting: string;\r\n ActingEmail: string;\r\n ActingPhone: string;\r\n AssistingID: string;\r\n Assisting: string;\r\n AssistingEmail: string;\r\n AssistingPhone: string;\r\n CompletionDate: string;\r\n InstructionDate: string;\r\n InProgress: string;\r\n IsVip: string;\r\n FIRB: string;\r\n SplashTemplates: string;\r\n UserDefinedHelp: string;\r\n UserDashboard: string;\r\n FeatureAccess: string;\r\n FeatureLicencing: string;\r\n RoleAccesss: string;\r\n RoleSecurity: string;\r\n ClientReference: string;\r\n Owner: string;\r\n Debtors: string;\r\n NextRenewalDate: string;\r\n NextDue: string;\r\n NextActionDate: string;\r\n NextAction: string;\r\n NextActionItem: string;\r\n Refresh: string;\r\n ExportFile: string;\r\n SaveLayout: string;\r\n ConfigureViews: string;\r\n Print: string;\r\n ViewConfiguration: string;\r\n ViewName: string;\r\n AvailableRole: string;\r\n ForSecurity: string;\r\n SharedView: string;\r\n Delete: string;\r\n Settings: string;\r\n AddNew: string;\r\n EditGroup: string;\r\n FilterColumn: string;\r\n GeneralInformation: string;\r\n Referrals: string;\r\n Vendor: string;\r\n Council: string;\r\n ContactFirm: string;\r\n InternalResponsibilities: string;\r\n Date: string;\r\n RequestNewPassword: string;\r\n MultifactorAuthenticationMessage: string;\r\n AuthenticationCode: string;\r\n Verify: string;\r\n VerificationFailed:\r\n 'Verification code is incorrect. Please specify the correct code and try again';\r\n VerificationCodeResendSuccessMessage: string;\r\n ResendVerificationCode: string;\r\n MatterSummaryConfigKey: string;\r\n MatterSummaryConfigTemplateName: string;\r\n MatterSummaryConfigId: string;\r\n MatterSummaryConfigIsUserLevel: string;\r\n MatterSummaryConfigIsRoleLevel: string;\r\n MatterSummaryConfigIsTenantLevel: string;\r\n MyDefault: string;\r\n TenantDefault: string;\r\n FirmDefault: string;\r\n MatterSummaryConfigIsSecurity: string;\r\n LeapSignIn: string;\r\n MyViewOnly: string;\r\n RoleColumnRoleId: string;\r\n RoleColumnRoleName: string;\r\n RoleColumnSelected: string;\r\n RoleColumnIsDefault: string;\r\n LeapReset: string;\r\n Name: string;\r\n NameSummary: string;\r\n StaffSummary: string;\r\n Names: string;\r\n ClientsAndContacts: string;\r\n Referrer: string;\r\n Referrers: string;\r\n TotalOwing: string;\r\n TimeslipSummary: string;\r\n AttorneyDashboard: string;\r\n Timesheet: string;\r\n Timelines: string;\r\n Innography: string;\r\n ClientSense: string;\r\n MailingList: string;\r\n InvoiceSummary: string;\r\n ReportingGroup: string;\r\n ArchivedDate: string;\r\n TrustAccountBalance: string;\r\n ReviewDate: string;\r\n\r\n // deb details\r\n OriginalDebt: string;\r\n CollectionCosts: string;\r\n LegalCostsRecoverable: string;\r\n LegalCostsNonRecoverable: string;\r\n TotalDisbursements: string;\r\n TotalInterest: string;\r\n TotalPayments: string;\r\n TotalOutstanding: string;\r\n EventsAndCampaigns: string;\r\n\r\n PriorityCountry: string;\r\n GeneralMaterial: string;\r\n InjuryDate: string;\r\n ProceedingsIssuedDate: string;\r\n SunsetOrLimitationDate: string;\r\n HearingDate: string;\r\n ClientDocuments: string;\r\n EnquiryQuality: string;\r\n NewEnquiry: string;\r\n Organisation: string;\r\n Trustee: string;\r\n TrusteeEmail: string;\r\n}\r\n\r\nconst countryToLanguage = {\r\n 'AD': 'ca-AD',\r\n 'AE': 'ar-AE',\r\n 'AF': 'fa-AF',\r\n 'AG': 'en-AG',\r\n 'AI': 'en-AI',\r\n 'AL': 'sq-AL',\r\n 'AM': 'hy-AM',\r\n 'AO': 'pt-AO',\r\n 'AQ': 'und-AQ',\r\n 'AR': 'es-AR',\r\n 'AS': 'en-AS',\r\n 'AT': 'de-AT',\r\n 'AU': 'en-AU',\r\n 'AW': 'nl-AW',\r\n 'AX': 'sv-AX',\r\n 'AZ': 'az-Latn-AZ',\r\n 'BA': 'bs-BA',\r\n 'BB': 'en-BB',\r\n 'BD': 'bn-BD',\r\n 'BE': 'nl-BE',\r\n 'BF': 'fr-BF',\r\n 'BG': 'bg-BG',\r\n 'BH': 'ar-BH',\r\n 'BI': 'rn-BI',\r\n 'BJ': 'fr-BJ',\r\n 'BL': 'fr-BL',\r\n 'BM': 'en-BM',\r\n 'BN': 'ms-BN',\r\n 'BO': 'es-BO',\r\n 'BQ': 'nl-BQ',\r\n 'BR': 'pt-BR',\r\n 'BS': 'en-BS',\r\n 'BT': 'dz-BT',\r\n 'BV': 'und-BV',\r\n 'BW': 'en-BW',\r\n 'BY': 'be-BY',\r\n 'BZ': 'en-BZ',\r\n 'CA': 'en-CA',\r\n 'CC': 'ms-CC',\r\n 'CD': 'sw-CD',\r\n 'CF': 'fr-CF',\r\n 'CG': 'fr-CG',\r\n 'CH': 'de-CH',\r\n 'CI': 'fr-CI',\r\n 'CK': 'en-CK',\r\n 'CL': 'es-CL',\r\n 'CM': 'fr-CM',\r\n 'CN': 'zh-CN',\r\n 'CO': 'es-CO',\r\n 'CR': 'es-CR',\r\n 'CU': 'es-CU',\r\n 'CV': 'pt-CV',\r\n 'CW': 'pap-CW',\r\n 'CX': 'en-CX',\r\n 'CY': 'el-CY',\r\n 'CZ': 'cs-CZ',\r\n 'DE': 'de-DE',\r\n 'DJ': 'aa-DJ',\r\n 'DK': 'da-DK',\r\n 'DM': 'en-DM',\r\n 'DO': 'es-DO',\r\n 'DZ': 'ar-DZ',\r\n 'EC': 'es-EC',\r\n 'EE': 'et-EE',\r\n 'EG': 'ar-EG',\r\n 'EH': 'ar-EH',\r\n 'ER': 'ti-ER',\r\n 'ES': 'es-ES',\r\n 'ET': 'am-ET',\r\n 'FI': 'fi-FI',\r\n 'FJ': 'en-FJ',\r\n 'FK': 'en-FK',\r\n 'FM': 'chk-FM',\r\n 'FO': 'fo-FO',\r\n 'FR': 'fr-FR',\r\n 'GA': 'fr-GA',\r\n 'GB': 'en-GB',\r\n 'GD': 'en-GD',\r\n 'GE': 'ka-GE',\r\n 'GF': 'fr-GF',\r\n 'GG': 'en-GG',\r\n 'GH': 'ak-GH',\r\n 'GI': 'en-GI',\r\n 'GL': 'kl-GL',\r\n 'GM': 'en-GM',\r\n 'GN': 'fr-GN',\r\n 'GP': 'fr-GP',\r\n 'GQ': 'fan-GQ',\r\n 'GR': 'el-GR',\r\n 'GS': 'und-GS',\r\n 'GT': 'es-GT',\r\n 'GU': 'en-GU',\r\n 'GW': 'pt-GW',\r\n 'GY': 'en-GY',\r\n 'HK': 'zh-HK',\r\n 'HM': 'und-HM',\r\n 'HN': 'es-HN',\r\n 'HR': 'hr-HR',\r\n 'HT': 'ht-HT',\r\n 'HU': 'hu-HU',\r\n 'ID': 'id-ID',\r\n 'IE': 'en-IE',\r\n 'IL': 'he-IL',\r\n 'IM': 'en-IM',\r\n 'IN': 'hi-IN',\r\n 'IO': 'und-IO',\r\n 'IQ': 'ar-IQ',\r\n 'IR': 'fa-IR',\r\n 'IS': 'is-IS',\r\n 'IT': 'it-IT',\r\n 'JE': 'en-JE',\r\n 'JM': 'en-JM',\r\n 'JO': 'ar-JO',\r\n 'JP': 'ja-JP',\r\n 'KE': 'sw-KE',\r\n 'KG': 'ky-KG',\r\n 'KH': 'km-KH',\r\n 'KI': 'en-KI',\r\n 'KM': 'ar-KM',\r\n 'KN': 'en-KN',\r\n 'KP': 'ko-KP',\r\n 'KR': 'ko-KR',\r\n 'KW': 'ar-KW',\r\n 'KY': 'en-KY',\r\n 'KZ': 'kk-KZ',\r\n 'LA': 'lo-LA',\r\n 'LB': 'ar-LB',\r\n 'LC': 'en-LC',\r\n 'LI': 'de-LI',\r\n 'LK': 'si-LK',\r\n 'LR': 'en-LR',\r\n 'LS': 'st-LS',\r\n 'LT': 'lt-LT',\r\n 'LU': 'fr-LU',\r\n 'LV': 'lv-LV',\r\n 'LY': 'ar-LY',\r\n 'MA': 'ar-MA',\r\n 'MC': 'fr-MC',\r\n 'MD': 'ro-MD',\r\n 'ME': 'sr-Latn-ME',\r\n 'MF': 'fr-MF',\r\n 'MG': 'mg-MG',\r\n 'MH': 'mh-MH',\r\n 'MK': 'mk-MK',\r\n 'ML': 'bm-ML',\r\n 'MM': 'my-MM',\r\n 'MN': 'mn-Cyrl-MN',\r\n 'MO': 'zh-MO',\r\n 'MP': 'en-MP',\r\n 'MQ': 'fr-MQ',\r\n 'MR': 'ar-MR',\r\n 'MS': 'en-MS',\r\n 'MT': 'mt-MT',\r\n 'MU': 'mfe-MU',\r\n 'MV': 'dv-MV',\r\n 'MW': 'ny-MW',\r\n 'MX': 'es-MX',\r\n 'MY': 'ms-MY',\r\n 'MZ': 'pt-MZ',\r\n 'NA': 'af-NA',\r\n 'NC': 'fr-NC',\r\n 'NE': 'ha-NE',\r\n 'NF': 'en-NF',\r\n 'NG': 'en-NG',\r\n 'NI': 'es-NI',\r\n 'NL': 'nl-NL',\r\n 'NO': 'nb-NO',\r\n 'NP': 'ne-NP',\r\n 'NR': 'en-NR',\r\n 'NU': 'niu-NU',\r\n 'NZ': 'en-NZ',\r\n 'OM': 'ar-OM',\r\n 'PA': 'es-PA',\r\n 'PE': 'es-PE',\r\n 'PF': 'fr-PF',\r\n 'PG': 'tpi-PG',\r\n 'PH': 'fil-PH',\r\n 'PK': 'ur-PK',\r\n 'PL': 'pl-PL',\r\n 'PM': 'fr-PM',\r\n 'PN': 'en-PN',\r\n 'PR': 'es-PR',\r\n 'PS': 'ar-PS',\r\n 'PT': 'pt-PT',\r\n 'PW': 'pau-PW',\r\n 'PY': 'gn-PY',\r\n 'QA': 'ar-QA',\r\n 'RE': 'fr-RE',\r\n 'RO': 'ro-RO',\r\n 'RS': 'sr-Latn-RS',\r\n 'RU': 'ru-RU',\r\n 'RW': 'rw-RW',\r\n 'SA': 'ar-SA',\r\n 'SB': 'en-SB',\r\n 'SC': 'crs-SC',\r\n 'SD': 'ar-SD',\r\n 'SE': 'sv-SE',\r\n 'SG': 'zh-SG',\r\n 'SH': 'en-SH',\r\n 'SI': 'sl-SI',\r\n 'SJ': 'nb-SJ',\r\n 'SK': 'sk-SK',\r\n 'SL': 'kri-SL',\r\n 'SM': 'it-SM',\r\n 'SN': 'fr-SN',\r\n 'SO': 'sw-SO',\r\n 'SR': 'srn-SR',\r\n 'SS': 'ar-SS',\r\n 'ST': 'pt-ST',\r\n 'SV': 'es-SV',\r\n 'SX': 'nl-SX',\r\n 'SY': 'ar-SY',\r\n 'SZ': 'ss-SZ',\r\n 'TC': 'en-TC',\r\n 'TD': 'fr-TD',\r\n 'TF': 'und-TF',\r\n 'TG': 'fr-TG',\r\n 'TH': 'th-TH',\r\n 'TJ': 'tg-Cyrl-TJ',\r\n 'TK': 'tkl-TK',\r\n 'TL': 'pt-TL',\r\n 'TM': 'tk-TM',\r\n 'TN': 'ar-TN',\r\n 'TO': 'to-TO',\r\n 'TR': 'tr-TR',\r\n 'TT': 'en-TT',\r\n 'TV': 'tvl-TV',\r\n 'TW': 'zh-TW',\r\n 'TZ': 'sw-TZ',\r\n 'UA': 'uk-UA',\r\n 'UG': 'sw-UG',\r\n 'UM': 'en-UM',\r\n 'US': 'en-US',\r\n 'UY': 'es-UY',\r\n 'UZ': 'uz-Latn-UZ',\r\n 'VA': 'la-VA',\r\n 'VC': 'en-VC',\r\n 'VE': 'es-VE',\r\n 'VG': 'en-VG',\r\n 'VI': 'en-VI',\r\n 'VN': 'vi-VN',\r\n 'VU': 'bi-VU',\r\n 'WF': 'fr-WF',\r\n 'WS': 'sm-WS',\r\n 'XK': 'sq-XK',\r\n 'YE': 'ar-YE',\r\n 'YT': 'swb-YT',\r\n 'ZA': 'en-ZA',\r\n 'ZM': 'en-ZM',\r\n 'ZW': 'en-ZW',\r\n} as const;\r\n\r\nexport const getLanguageCodeByCountry = (countryCode: keyof typeof countryToLanguage): string | undefined => {\r\n return countryToLanguage[countryCode];\r\n};","import React from 'react';\r\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\r\n// import { RvButtonFabric, RvButtonType } from '../components/Button';\r\nimport { RvLabel, LabelStyle } from '../components/Label/Label';\r\nimport { mainTheme } from '../Theme';\r\nimport { RvButtonFabric, RvButtonType } from '../components/Button';\r\nimport SystemUpdateAltOutlinedIcon from '@material-ui/icons/SystemUpdateAltOutlined';\r\nimport { Button } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n width: '100%',\r\n padding: '0 1rem'\r\n },\r\n container: {},\r\n buttonContainer: {\r\n position: 'relative',\r\n padding: '15px 80px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n color: mainTheme.BrandColors.TextPrimary,\r\n '@media (max-width: 1024px)': {\r\n padding: '15px 30px'\r\n },\r\n '& .rvlabel': {\r\n paddingLeft: '82px',\r\n flex: 1,\r\n fontFamily: mainTheme.Font.Main,\r\n fontSize: mainTheme.FontSize.PX.size8,\r\n letterSpacing: '0.86px',\r\n lineHeight: mainTheme.LineHeight.ExtraLarge\r\n },\r\n '& .back-button': {\r\n paddingRight: '32px',\r\n position: 'absolute',\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n '& .ms-Button': {\r\n width: '50px',\r\n height: '50px'\r\n },\r\n '& .ms-Button-icon': {\r\n fontSize: mainTheme.FontSize.PX.size10,\r\n color: mainTheme.BrandColors.TemplatePrimary\r\n }\r\n }\r\n },\r\n link: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n color: mainTheme.BrandColors.TemplatePrimary,\r\n '& svg': {\r\n marginRight: 10,\r\n }\r\n },\r\n button: {\r\n margin: '0 10px',\r\n textTransform: 'none',\r\n fontSize: '14px',\r\n },\r\n })\r\n);\r\n\r\ninterface BannerProps {\r\n title: string;\r\n isButtonLinkEnabled?: boolean;\r\n onClickBack?: () => void;\r\n link?: string;\r\n}\r\n\r\nexport const LearnMoreBanner: React.FC = ({\r\n title,\r\n isButtonLinkEnabled,\r\n onClickBack,\r\n link\r\n}) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n {isButtonLinkEnabled && link && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import { Accordion, AccordionDetails, AccordionSummary, Button, createStyles, Drawer, Grid, makeStyles, TextField, Theme, Typography } from '@material-ui/core';\r\nimport { FormApi, SubmissionErrors, ValidationErrors } from 'final-form';\r\nimport React from 'react';\r\nimport { Field, FieldInputProps, Form } from 'react-final-form';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport { IAutoCompleteItem } from '../typings/autoComplete';\r\nimport { DropzoneArea } from 'material-ui-dropzone';\r\nimport { DocumentFile } from '../types/DocumentFile';\r\nimport { AreaOfLawSelector } from '../enquirySummary/selectors/AreaOfLawSelector';\r\nimport { client } from '../';\r\nimport { SendInstructMatterMutation } from './InstructMatterRepositories';\r\nimport { showNotification } from '../App';\r\nimport { CurrencyInput2 } from '../components/CurrencyInput';\r\nimport { OtherPartyTypeSelector } from '../lookupConfiguration/selectors/OtherPartyTypeSelector';\r\nimport { finalFormValidateEmail } from '../helpers/commonHelper';\r\nimport { Address, AddressSelector, PlaceType } from '../enquirySummary/selectors/AddressSelector';\r\nimport { useHomeCountry } from '../hooks/useHomeCountry';\r\nimport { useCurrencySymbol } from '../hooks/useCurrencySymbol';\r\nimport { RvLoader } from '../components/Loader';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {},\r\n paperRoot: {\r\n maxWidth: '700px', \r\n padding: '15px',\r\n },\r\n controlWrapper: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n },\r\n controlWrapperCol: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n maring: '0 -10px',\r\n '& > button': {\r\n margin: '0 10px',\r\n },\r\n },\r\n contentWrapper: {\r\n padding: '15px 0',\r\n },\r\n heading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n // fontWeight: theme.typography.fontWeightRegular,\r\n color: '#5173FF',\r\n display: 'flex',\r\n alignItems: 'center',\r\n flex: 1,\r\n },\r\n headingIcon: {\r\n marginRight: '10px',\r\n },\r\n textField: {\r\n width: '100%',\r\n minWidth: 'auto',\r\n },\r\n radioGroup: {\r\n flexFlow: 'row',\r\n },\r\n infoContainer: {\r\n display: 'flex',\r\n margin: '0 -10px',\r\n paddingLeft: '10px',\r\n justifyContent: 'flex-end',\r\n '& .col': {\r\n padding: '0 10px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n '& .label': {\r\n marginRight: '10px',\r\n },\r\n '& .files': {\r\n fontWeight: 600,\r\n },\r\n '& .ellipsis': {\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n width: '250px',\r\n textAlign: 'right',\r\n },\r\n '& .value': {\r\n maxWidth: '400px',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n },\r\n },\r\n dropZone: {\r\n minHeight: 'fit-content !important',\r\n '& .MuiDropzoneArea-root': {\r\n minHeight: 'fit-content !important',\r\n },\r\n },\r\n dropZoneFont: {\r\n '& .MuiDropzoneArea-text': {\r\n fontSize: '1em',\r\n },\r\n },\r\n title: {\r\n fontSize: '20px',\r\n marginBottom: '10px'\r\n },\r\n loaderWrapper: {\r\n minWidth: '700px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n }\r\n }),\r\n);\r\n\r\ninterface InstructMatterFormDialogProps {\r\n open: boolean;\r\n onClose?: () => void;\r\n}\r\n\r\ninterface InstructMatterFormControlValues {\r\n isSaveAndNew: boolean;\r\n isSaveAndClose: boolean;\r\n}\r\n\r\ninterface MainPanelsProps {\r\n isDetailsPanelExpand: boolean;\r\n}\r\n\r\ninterface InstructMatterFormValues extends InstructMatterFormControlValues, MainPanelsProps {\r\n isFormSubmit: boolean;\r\n areaOfLaw?: IAutoCompleteItem;\r\n instructions?: string;\r\n files: DocumentFile[];\r\n clientName?: string;\r\n clientContact?: string;\r\n matterTitle?: string;\r\n yourReference?: string;\r\n otherPartyType?: IAutoCompleteItem;\r\n otherPartyName?: string;\r\n otherPartyContact?: string;\r\n otherPartyAddress?: string;\r\n otherPartyPhone?: string;\r\n otherPartyEmail?: string;\r\n disputedAmount?: number;\r\n}\r\n\r\nexport const InstructMatterFormDialog: React.FC = (props) => {\r\n const classes = useStyles();\r\n\r\n const [refreshKey, setRefreshKey] = React.useState(0);\r\n\r\n const homeCountryQuery = useHomeCountry();\r\n const currencyQuery = useCurrencySymbol();\r\n\r\n const initialValues: InstructMatterFormValues = {\r\n isFormSubmit: false,\r\n isSaveAndClose: false,\r\n isSaveAndNew: false,\r\n isDetailsPanelExpand: true,\r\n areaOfLaw: undefined,\r\n instructions: undefined,\r\n files: [],\r\n clientName: undefined,\r\n clientContact: undefined,\r\n matterTitle: undefined,\r\n yourReference: undefined,\r\n otherPartyType: undefined,\r\n otherPartyName: undefined,\r\n otherPartyContact: undefined,\r\n otherPartyAddress: undefined,\r\n otherPartyPhone: undefined,\r\n otherPartyEmail: undefined,\r\n disputedAmount: undefined,\r\n };\r\n\r\n const onSubmit = (values: InstructMatterFormValues, form: FormApi, callback?: (errors?: SubmissionErrors) => void) => {\r\n if (values.areaOfLaw && values.instructions) {\r\n client.mutate({\r\n mutation: SendInstructMatterMutation,\r\n variables: {\r\n input: {\r\n areaOfLawGuid: values.areaOfLaw.value,\r\n areaOfLaw: values.areaOfLaw.label,\r\n instruction: values.instructions,\r\n clientName: values.clientName,\r\n clientContact: values.clientContact,\r\n matterTitle: values.matterTitle,\r\n yourReference: values.yourReference,\r\n otherPartyType: values.otherPartyType ? values.otherPartyType.value : null,\r\n otherPartyName: values.otherPartyName,\r\n otherPartyContact: values.otherPartyContact,\r\n otherPartyAddress: values.otherPartyAddress,\r\n otherPartyPhone: values.otherPartyPhone,\r\n otherPartyEmail: values.otherPartyEmail,\r\n disputedAmount: values.disputedAmount,\r\n files: values.files.map((document: DocumentFile) => {\r\n return {\r\n file: document.file,\r\n name: document.name,\r\n guidID: document.guidID,\r\n status: document.status,\r\n };\r\n })\r\n }\r\n }\r\n })\r\n // tslint:disable-next-line: no-any\r\n .then((results: { data: any }) => {\r\n if (results.data) {\r\n if (results.data.error !== undefined) {\r\n showNotification('Failed to send instruct matter.', results.data.error, 'error');\r\n } else {\r\n if (values.isSaveAndNew) {\r\n\r\n setRefreshKey((prevKey) => prevKey + 1);\r\n form.setConfig('keepDirtyOnReinitialize', false);\r\n form.batch(() => {\r\n form.reset(initialValues);\r\n });\r\n form.setConfig('keepDirtyOnReinitialize', true);\r\n\r\n } else {\r\n if (props.onClose) {\r\n props.onClose();\r\n }\r\n }\r\n\r\n showNotification(null, 'Successfully submitted', 'info');\r\n }\r\n }\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => {\r\n showNotification('Failed to send instruct matter', reason, 'error');\r\n });\r\n }\r\n };\r\n\r\n const onValdiate = (values: InstructMatterFormValues) => {\r\n return undefined;\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onRequired = (value: any) => (value ? undefined : 'Required');\r\n\r\n // tslint:disable-next-line: max-line-length no-any\r\n const onExpandPanel = (input: FieldInputProps) => (event: React.ChangeEvent<{}>, expanded: boolean) => {\r\n // code here..\r\n input.onChange(expanded);\r\n };\r\n\r\n const onSaveAndClose = (form: FormApi) => (event: React.MouseEvent) => {\r\n form.setConfig('keepDirtyOnReinitialize', false);\r\n form.batch(() => {\r\n form.change('isFormSubmit', true);\r\n form.change('isSaveAndClose', true);\r\n form.change('isSaveAndNew', false);\r\n });\r\n form.setConfig('keepDirtyOnReinitialize', true);\r\n };\r\n\r\n const onSaveAndNew = (form: FormApi) => (event: React.MouseEvent) => {\r\n form.setConfig('keepDirtyOnReinitialize', false);\r\n form.batch(() => {\r\n form.change('isFormSubmit', true);\r\n form.change('isSaveAndClose', false);\r\n form.change('isSaveAndNew', true);\r\n });\r\n form.setConfig('keepDirtyOnReinitialize', true);\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onFieldRequiredError = (errors: ValidationErrors, form: FormApi, values: InstructMatterFormValues) => {\r\n if (Object.keys(errors).length) {\r\n form.batch(() => {\r\n let isDetailsPanelExpand = false;\r\n\r\n if (\r\n values.isDetailsPanelExpand ||\r\n errors.hasOwnProperty('clientName') ||\r\n errors.hasOwnProperty('clientContact') ||\r\n errors.hasOwnProperty('matterTitle') ||\r\n errors.hasOwnProperty('yourReference') ||\r\n errors.hasOwnProperty('otherPartyType') ||\r\n errors.hasOwnProperty('otherPartyName') ||\r\n errors.hasOwnProperty('otherPartyContact') ||\r\n errors.hasOwnProperty('otherPartyAddress') ||\r\n errors.hasOwnProperty('otherPartyPhone') ||\r\n errors.hasOwnProperty('otherPartyEmail') ||\r\n errors.hasOwnProperty('disputedAmount') ||\r\n errors.hasOwnProperty('areaOfLaw') ||\r\n errors.hasOwnProperty('instructions')\r\n ) {\r\n isDetailsPanelExpand = true;\r\n }\r\n\r\n form.change('isDetailsPanelExpand', isDetailsPanelExpand);\r\n form.change('isFormSubmit', false);\r\n });\r\n }\r\n };\r\n // tslint:disable-next-line: no-any\r\n const onInputChanged = (form: FormApi, name: string | any) => (value: string) => {\r\n form.change(name, value);\r\n };\r\n\r\n const onAddressSelection = (input: FieldInputProps) => (placeType: PlaceType | null, address: Address, name: string) => {\r\n const { premise, floor, streetNumber, route, locality, administrativeAreaLevel1, postalCode, country } = address;\r\n\r\n const fullAddress: string = [premise, floor, streetNumber, route, locality, administrativeAreaLevel1, postalCode, country].filter(n => n).join(', ');\r\n \r\n input.onChange(fullAddress);\r\n\r\n };\r\n\r\n // tslint:disable-next-line: max-line-length\r\n const controlButtonComponent = (form: FormApi, submitting: boolean, pristine: boolean, values: InstructMatterFormValues) => {\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 const detailPanel = (form: FormApi, submitting: boolean, pristine: boolean, values: InstructMatterFormValues) => {\r\n return (\r\n \r\n {(accordion) => {\r\n return (\r\n \r\n } aria-controls=\"panel1a-content\" id=\"panel1a-header\">\r\n Details\r\n \r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n {\r\n input.onChange(selection);\r\n }}\r\n onBlur={input.onBlur}\r\n />\r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {({ input, meta }) => (\r\n {\r\n input.onChange(selection);\r\n }}\r\n onBlur={input.onBlur}\r\n />\r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {({ input, meta }) => (\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, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n \r\n );\r\n };\r\n\r\n const documentsPanel = (form: FormApi, submitting: boolean, pristine: boolean, values: InstructMatterFormValues) => {\r\n return (\r\n \r\n } aria-controls=\"panel1a-content\" id=\"panel1a-header\">\r\n Documents\r\n \r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n {\r\n let existingFiles: DocumentFile[] = [...input.value];\r\n const newFiles = files.filter((file: File) => {\r\n return !existingFiles.some((item: DocumentFile) => {\r\n return item.name === file.name && item.status !== 2;\r\n });\r\n });\r\n if (newFiles && newFiles.length > 0) {\r\n newFiles.forEach((file: File) => {\r\n const documentFile: DocumentFile = {\r\n guidID: null,\r\n file: file,\r\n status: 1,\r\n name: file.name,\r\n url: '',\r\n };\r\n existingFiles.push(documentFile);\r\n });\r\n input.onChange(existingFiles);\r\n }\r\n }}\r\n onDelete={(file: File) => {\r\n let existingFiles: DocumentFile[] = [...input.value];\r\n // eslint-disable-next-line array-callback-return\r\n existingFiles.map((item: DocumentFile) => {\r\n if (file.name === item.name) {\r\n item.file = file;\r\n item.status = 2; // deleted\r\n }\r\n });\r\n // tslint:disable-next-line: max-line-length\r\n const filteredFiles = existingFiles.filter((item: DocumentFile) => {\r\n return item.status !== 2 || item.guidID !== null;\r\n });\r\n input.onChange(filteredFiles);\r\n }}\r\n // tslint:disable-next-line\r\n onDrop={(files: File[], event: any) => {\r\n // let existingFiles: DocumentFile[] = [...input.value];\r\n // tslint:disable-next-line: max-line-length\r\n // const existingFile = existingFiles.find((item: DocumentFile) => item.name === file)\r\n // tslint:disable-next-line:no-console\r\n console.log(event);\r\n }}\r\n // initialFiles={input.value.map((file: { url: string }) => file.url)}\r\n key={refreshKey}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const intializeForm = () => {\r\n if (homeCountryQuery.loading || currencyQuery.loading) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n , callback) => await onSubmit(values, form, callback)}\r\n // mutators={{ ...arrayMutators }}\r\n initialValues={initialValues}\r\n validate={onValdiate}\r\n keepDirtyOnReinitialize={true}\r\n initialValuesEqual={() => true}\r\n debug={(values) => {\r\n // tslint:disable-next-line: no-console\r\n console.log('Debug Values', values);\r\n }}\r\n render={({ errors, handleSubmit, form, submitting, pristine, values }) => {\r\n if (values.isFormSubmit) {\r\n onFieldRequiredError(errors, form, values);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {detailPanel(form, submitting, pristine, values)}\r\n {documentsPanel(form, submitting, pristine, values)}\r\n
\r\n {controlButtonComponent(form, submitting, pristine, values)}\r\n
\r\n );\r\n }}\r\n />\r\n );\r\n \r\n };\r\n return (\r\n \r\n New Matter Instructions\r\n {intializeForm()}\r\n \r\n );\r\n};\r\n\r\nexport default InstructMatterFormDialog;\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React from 'react';\r\nimport { makeStyles, Theme, createStyles } from '@material-ui/core';\r\nimport { RouterProps } from '../App';\r\nimport { LearnMoreBanner } from './LearnMoreBanner';\r\nimport ReactPlayer from 'react-player/youtube';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n width: '100%',\r\n display: 'flex',\r\n flexFlow: 'column',\r\n flex: 1,\r\n },\r\n contentWrapper: {\r\n padding: '0 48px',\r\n flex: 1,\r\n display: 'flex',\r\n flexFlow: 'column',\r\n },\r\n contentContainer: {\r\n backgroundColor: 'rgb(255, 255, 255)',\r\n boxShadow: 'rgba(81, 115, 255, 0.09) 0px 0px 14px 0px',\r\n flex: 1,\r\n display: 'flex',\r\n flexFlow: 'column',\r\n width: '100%',\r\n borderRadius: '8px',\r\n },\r\n iframeContainer: {\r\n // paddingBottom: '56.25%',\r\n position: 'relative',\r\n // height: 0,\r\n // width: '100%',\r\n flex: 1,\r\n '& iframe': {\r\n // left: 0,\r\n // top: 0,\r\n // height: '100%',\r\n // width: '100%',\r\n // position: 'absolute',\r\n },\r\n },\r\n }),\r\n);\r\n\r\nexport enum LearnMoreEnum {\r\n LEARN_ABOUT_DASHBOARD = 0,\r\n LEARN_ABOUT_DRILLDOWNS,\r\n LEARN_ABOUT_PERSONALISING,\r\n LEARN_ABOUT_CREATING_VIEWS,\r\n FEE_EARNER_DASHBOARD,\r\n NEW_ENQUIRIES,\r\n New_Enquiry_Process_Overview,\r\n Add_New_Enquiries,\r\n Mailing_Lists,\r\n Managing_Users,\r\n Following_Up,\r\n Clients_And_Contacts,\r\n Managing_Referrers,\r\n USING_THE_OUTLOOK_ADD_IN,\r\n TASKS,\r\n MATTER_MANAGEMENT,\r\n TASK_MANAGEMENT_BASICS,\r\n DELEGATING_TASKS_TO_TEAMS,\r\n PHONE_MESSAGES,\r\n REPORTING_ON_ENQUIRIES,\r\n CONFIGURING_NEW_ENQUIRY_NOTIFICATIONS,\r\n FIRM_STRUCTURE,\r\n LOOKUP_LISTS,\r\n\r\n // lookup configuration\r\n area_of_law,\r\n client_and_contact_tags,\r\n dashboard_panel,\r\n enquiry_source,\r\n enquiry_follow_up_action,\r\n location,\r\n loss_reason,\r\n matter_follow_up_action,\r\n priority,\r\n po_box_type,\r\n referrer_source,\r\n referrer_type,\r\n relationship_quality,\r\n task_category,\r\n task_type,\r\n task_type_group,\r\n\r\n // timesheet\r\n timesheet_basics,\r\n managing_draft_time_items,\r\n timesheet_advanced,\r\n staff_budgets,\r\n\r\n // acuity resouce page\r\n Using_Firm_Dashboard,\r\n Using_Fee_Earner_Dashboard,\r\n Drilldowns,\r\n\r\n System_Configuration_Overview,\r\n Matter_Searching_Client,\r\n Matter_Searching_Client_Internal_User,\r\n Using_Matter_Lists,\r\n Creating_Views,\r\n Matter_Searching,\r\n Configuring_Dashboards,\r\n\r\n EnquiryBoardView,\r\n\r\n // Events & Campaigns\r\n EventsAndCampaigns,\r\n\r\n MatterForecast,\r\n Adding_New_Enquiries,\r\n Adding_New_Contacts,\r\n Managing_Existing_Contacts,\r\n\r\n Using_The_Chart_Outlook_Add_In,\r\n Using_The_Matter_Outlook_Add_In,\r\n Enquiry_Custom_Fields,\r\n Digital_Tracking\r\n}\r\n\r\ninterface LearnMorePageProps extends RouterProps {\r\n // tslint:disable-next-line: no-any\r\n location: any;\r\n}\r\n\r\n// interface LearnMorePageState {}\r\n\r\n// tslint:disable-next-line: no-anyW\r\nexport const LearnMorePage: React.FunctionComponent = (props) => {\r\n const classes = useStyles();\r\n\r\n const command = props.match.params.command;\r\n\r\n const onClickBack = () => {\r\n // history.goBack();\r\n props.history.goBack();\r\n };\r\n\r\n const getDocumentUrl = (): string => {\r\n if (LearnMoreEnum[command] === LearnMoreEnum.LEARN_ABOUT_DASHBOARD) {\r\n return 'https://redraincorp.sharepoint.com/:b:/s/RedViewProduct/EW9mRmJya29MrT_EsXVcKQYB6EnaEMaMp90CFsAvJATPuw?e=hrXUPC';\r\n }\r\n if (LearnMoreEnum[command] === LearnMoreEnum.FEE_EARNER_DASHBOARD) {\r\n return 'https://redraincorp.sharepoint.com/:b:/s/RedViewProduct/EW9mRmJya29MrT_EsXVcKQYB6EnaEMaMp90CFsAvJATPuw?e=hrXUPC';\r\n }\r\n return '';\r\n };\r\n\r\n const getTitleAndVideo = () => {\r\n switch (LearnMoreEnum[command]) {\r\n case LearnMoreEnum.LEARN_ABOUT_DASHBOARD: {\r\n return {\r\n title: 'Learn About Dashboards',\r\n url: 'TQdzR4-RYAE',\r\n };\r\n }\r\n case LearnMoreEnum.LEARN_ABOUT_DRILLDOWNS: {\r\n return {\r\n title: 'Learn About DrillDowns',\r\n url: 'OXI7LG4RsCI',\r\n };\r\n }\r\n case LearnMoreEnum.LEARN_ABOUT_PERSONALISING: {\r\n return {\r\n title: 'Learn About Personalising',\r\n url: 'tqh-SrQyFRQ',\r\n };\r\n }\r\n case LearnMoreEnum.FEE_EARNER_DASHBOARD: {\r\n return {\r\n title: 'Learn About Dashboards',\r\n url: 'GIx5b0G5-Mg',\r\n };\r\n }\r\n case LearnMoreEnum.NEW_ENQUIRIES: {\r\n return {\r\n title: 'Learn About New Enquiries',\r\n url: '9L9OD_N9C30',\r\n };\r\n }\r\n case LearnMoreEnum.New_Enquiry_Process_Overview: {\r\n return {\r\n title: 'New Enquiry Process Overview',\r\n url: 'omP7LOTLRBw',\r\n };\r\n }\r\n case LearnMoreEnum.Add_New_Enquiries: {\r\n return {\r\n title: 'Adding New Enquiries',\r\n url: '9L9OD_N9C30',\r\n };\r\n }\r\n case LearnMoreEnum.Mailing_Lists: {\r\n return {\r\n title: 'Mailing Lists',\r\n url: 'TffuE21NK9E',\r\n };\r\n }\r\n case LearnMoreEnum.Managing_Users: {\r\n return {\r\n title: 'Managing Users',\r\n url: '9RaYyBME5u0',\r\n };\r\n }\r\n case LearnMoreEnum.Following_Up: {\r\n return {\r\n title: 'Following Up',\r\n url: 'tAEmK8eYA3g',\r\n };\r\n }\r\n case LearnMoreEnum.Clients_And_Contacts: {\r\n return {\r\n title: 'Clients & Contacts',\r\n url: 'G4dFO0KwxXI',\r\n };\r\n }\r\n case LearnMoreEnum.Managing_Referrers: {\r\n return {\r\n title: 'Managing Referrers',\r\n url: 'a8O-BUnBG8g',\r\n };\r\n }\r\n case LearnMoreEnum.USING_THE_OUTLOOK_ADD_IN: {\r\n return {\r\n title: 'Using the Outlook Add in',\r\n url: 'gB7_iW2k1JQ',\r\n };\r\n }\r\n case LearnMoreEnum.TASKS: {\r\n return {\r\n title: 'Basic Introduction',\r\n url: '4qjAZ3r5yjQ',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.MATTER_MANAGEMENT: {\r\n return {\r\n title: 'Matter Management',\r\n url: 'akbIXkYYeP0',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.TASK_MANAGEMENT_BASICS: {\r\n return {\r\n title: 'Task Management Basics',\r\n url: '4qjAZ3r5yjQ',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.DELEGATING_TASKS_TO_TEAMS: {\r\n return {\r\n title: 'Delegating Tasks to Teams',\r\n url: 'ushax3hQscA',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.PHONE_MESSAGES: {\r\n return {\r\n title: 'Phone Messages',\r\n url: 'nE8p7lpsGlo',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.REPORTING_ON_ENQUIRIES: {\r\n return {\r\n title: 'Reporting on Enquiries',\r\n url: 'xuNp-j7Zcbw',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.CONFIGURING_NEW_ENQUIRY_NOTIFICATIONS: {\r\n return {\r\n title: 'Configuring New Enquiry Notifications',\r\n url: 'n2kHPRRvsRY',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.FIRM_STRUCTURE: {\r\n return {\r\n title: 'Firm Structure',\r\n url: 'Stw6mHmODrU',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.LOOKUP_LISTS: {\r\n return {\r\n title: 'Lookup List',\r\n url: 'oI9cRNfBQyM',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.area_of_law: {\r\n return {\r\n title: 'Area of Law Lookup',\r\n url: 'JcbWxAUKhwM',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.client_and_contact_tags: {\r\n return {\r\n title: 'Client and Contact Tags',\r\n url: 'UOUkSZJxCbA',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.dashboard_panel: {\r\n return {\r\n title: 'Dashboard Panel Lookup',\r\n url: '91_12VYYvPY',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.enquiry_source: {\r\n return {\r\n title: 'Enquiry Source lookup',\r\n url: 'lbNmpgD18kE',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.enquiry_follow_up_action: {\r\n return {\r\n title: 'Enquiry Follow up action lookup',\r\n url: 'VQF5EjQde-4',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.location: {\r\n return {\r\n title: 'Location lookup',\r\n url: '9kCLLBxrywI',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.loss_reason: {\r\n return {\r\n title: 'Loss Reason lookup',\r\n url: 'onyKENebJt0',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.matter_follow_up_action: {\r\n return {\r\n title: 'Matter Follow Up action lookup',\r\n url: 'fbq5AJ-XFtc',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.priority: {\r\n return {\r\n title: 'Priority look up',\r\n url: 'fl5MWXrSm-0',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.po_box_type: {\r\n return {\r\n title: 'PO Box lookup',\r\n url: 'KfQfGJ_m_Gs',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.referrer_source: {\r\n return {\r\n title: 'Referral Source lookup',\r\n url: 'LDLGwzq2K_4',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.referrer_type: {\r\n return {\r\n title: 'Referrer Type lookup',\r\n url: 'sVoPGaxmd5U',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.relationship_quality: {\r\n return {\r\n title: 'Relationship Quality lookup',\r\n url: 'uNny9Z8pwsw',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.task_category: {\r\n return {\r\n title: 'Task Category lookup',\r\n url: 'EHwbCcojGWQ',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.task_type: {\r\n return {\r\n title: 'Task Type and Task Group lookups',\r\n url: 'a05cYFb3TuA',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.task_type_group: {\r\n return {\r\n title: 'Task Type and Task Group lookups',\r\n url: 'a05cYFb3TuA',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.timesheet_basics: {\r\n return {\r\n title: 'Timesheet Introduction',\r\n url: '0eh6NGrQYTg',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.managing_draft_time_items: {\r\n return {\r\n title: 'Managing Draft Timelines',\r\n url: 'kU0MZ5fvPYI',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.timesheet_advanced: {\r\n return {\r\n title: 'Advanced Timesheet Features',\r\n url: 'mep0e_qwlAs',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.staff_budgets: {\r\n return {\r\n title: 'Staff Budgets',\r\n url: '0W0GUOSdqKY',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.Using_Firm_Dashboard: {\r\n return {\r\n title: 'Using the Firm Dashboard',\r\n url: 'TQdzR4-RYAE',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.Using_Fee_Earner_Dashboard: {\r\n return {\r\n title: 'Using the Fee Earner Dashboard',\r\n url: 'GIx5b0G5-Mg',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.Drilldowns: {\r\n return {\r\n title: 'Drilldowns',\r\n url: 'OXI7LG4RsCI',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.System_Configuration_Overview: {\r\n return {\r\n title: 'RedView Admin Training - System Configuration Overview',\r\n url: '4meOfWHoATA',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.Matter_Searching_Client: {\r\n return {\r\n title: 'RedView Connect - Matter Searching',\r\n url: 'ode6Frrtm08',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.LEARN_ABOUT_CREATING_VIEWS: {\r\n return {\r\n title: 'Creating Views',\r\n url: '5VQMS3l7Xus',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.Matter_Searching_Client_Internal_User : {\r\n return {\r\n title: 'RedView Connect - Matter Searching',\r\n url: '4MwWecLQl7U',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.Using_Matter_Lists : {\r\n return {\r\n title: 'RedView Connect - Using Matter Lists',\r\n url: '4MwWecLQl7U',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.Creating_Views : {\r\n return {\r\n title: 'RedView Connect - Creating Views',\r\n url: '5VQMS3l7Xus',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.Matter_Searching : {\r\n return {\r\n title: 'Matter Searching',\r\n url: 'ode6Frrtm08',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.Configuring_Dashboards : {\r\n return {\r\n title: 'Configuring Dashboards',\r\n url: 'vzPEiFSppBk',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.EnquiryBoardView : {\r\n return {\r\n title: 'Using the Board View',\r\n url: '8ONmz8fZkZc',\r\n };\r\n }\r\n case LearnMoreEnum.EventsAndCampaigns : {\r\n return {\r\n title: 'Events & Campaigns',\r\n url: 'PIv9u1A0Evc',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.MatterForecast : {\r\n return {\r\n title: 'Matter Forecast',\r\n url: 'de27BeTdur0',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.Adding_New_Enquiries : {\r\n return {\r\n title: 'Adding new enquiries',\r\n url: 'gB7_iW2k1JQ',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.Adding_New_Contacts : {\r\n return {\r\n title: 'Adding new contacts',\r\n url: 'pWcz3gW3eI8',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.Managing_Existing_Contacts : {\r\n return {\r\n title: 'Managing existing contacts',\r\n url: 'KN0QtKKVO_Y',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.Using_The_Chart_Outlook_Add_In : {\r\n return {\r\n title: 'Using the Chart Outlook Add-In',\r\n url: '5vlEvdaDbRg',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.Using_The_Matter_Outlook_Add_In : {\r\n return {\r\n title: 'Using the Matter Outlook Add-In',\r\n url: 'p9NGLKu-Etw',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.Enquiry_Custom_Fields : {\r\n return {\r\n title: 'Enquiry Custom Fields',\r\n url: 'jnd6ojvuucw',\r\n };\r\n }\r\n\r\n case LearnMoreEnum.Digital_Tracking : {\r\n return {\r\n title: 'Enquiry Custom Fields',\r\n url: 'q-JGk6yxvBo',\r\n };\r\n }\r\n\r\n default: {\r\n return {\r\n title: 'Learn About Dashboards',\r\n url: 'xQwRocJySXs',\r\n };\r\n }\r\n }\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","import i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\nimport { enTranslation } from './locales/enTranslation';\r\nimport { auTranslation } from './locales/auTranslation';\r\n\r\ni18n\r\n // detect user language\r\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\r\n .use(LanguageDetector)\r\n // pass the i18n instance to react-i18next.\r\n .use(initReactI18next)\r\n // init i18next\r\n // for all options read: https://www.i18next.com/overview/configuration-options\r\n .init({\r\n debug: false,\r\n fallbackLng: 'en-AU',\r\n lng: 'en-AU',\r\n interpolation: {\r\n escapeValue: false, // not needed for react as it escapes by default\r\n },\r\n resources: {\r\n 'en-US': {\r\n translation: enTranslation\r\n },\r\n 'en-AU': {\r\n translation: auTranslation\r\n },\r\n },\r\n // Additional configuration for the language detector\r\n detection: {\r\n order: ['localStorage', 'navigator'], // Customize the detection order\r\n },\r\n });\r\n\r\nexport default i18n;","import { TranslationTextList } from './common';\r\n\r\nexport const enTranslation: TranslationTextList = {\r\n Help: 'Help',\r\n ScrubEnquiryData: 'Scrub Enquiry Data',\r\n LeadDashboardLayout: 'Lead Dashboard Layout',\r\n EnquiryDashboardLayout: 'Enquiry Dashboard Layout',\r\n FirmDashboardLayout: 'Firm Dashboard Layout',\r\n Tasks: 'Tasks',\r\n PhoneCalls: 'Phone Calls',\r\n TasksFound: 'Tasks found',\r\n LoginActivity: 'Login Activity',\r\n NameAccess: 'Name Access',\r\n Configuration: 'Configuration',\r\n Home: 'Home',\r\n Admin: 'Admin',\r\n GeneralDetails: 'General Details',\r\n GuidId: 'GuidId',\r\n Billed: 'Billed',\r\n BilledInxTax: 'Billed Fees (inc tax)',\r\n BilledFees: 'Billed Fees',\r\n PercentageEstimate: '% Estimate',\r\n PercentageExposure: '% Billed+WIP',\r\n PercentageEstimateShort: '% Est',\r\n Financials: 'Financials',\r\n MatterId: 'Matter Id',\r\n FileNumber: 'File Number',\r\n MatterNumber: 'Matter No',\r\n Logo: 'Device',\r\n Reference: 'Reference',\r\n ClientName: 'Client Name',\r\n Client: 'Client',\r\n ClientPhone: 'Client Phone',\r\n ClientEmail: 'Client Email',\r\n Clients: 'Clients',\r\n Status: 'Status',\r\n LastUpdate: 'Last Update',\r\n PublishedDate: 'Publish Date',\r\n InternalCode: 'Internal Code',\r\n FileLocation: 'File Location',\r\n Matter: 'Matter',\r\n Matters: 'Matters',\r\n StaffBillingSummary: 'Staff Billing Summary',\r\n MattersReferred: 'Matters Referred',\r\n MatterType: 'Matter Type',\r\n MatterTypeCategory: 'Matter Type Category',\r\n EstimatedCosts: 'Estimated Fees',\r\n BillingMethod: 'Billing Method',\r\n CostAgreementReceived: 'Cost Agreement',\r\n LongTitle: 'Long Title',\r\n Completed: 'Completed',\r\n Title: 'Title',\r\n Description: 'Description',\r\n State: 'State',\r\n FinancialBilled: 'Billed',\r\n TrustFund: 'Trust Fund',\r\n TrustBalance: 'Trust Balance',\r\n BilledTimeAndFees: 'Time & Fees',\r\n BilledCostAndPayments: 'Cost & Payments',\r\n Unbilled: 'Unbilled',\r\n UnbilledShort: 'Unbilled Fees (inc tax)',\r\n UnbilledFees: 'Unbilled Fees',\r\n UnbilledDisbursements: 'Unbilled Disbursements',\r\n UnbilledDisbursementsShort: 'Unbilled Disb',\r\n Price: 'Price',\r\n Deposit: 'Deposit',\r\n ExchangeDate: 'Exchange Date',\r\n CoolingOffDate: 'Cooling Off Date',\r\n DepositDueDate: 'Deposit Due Date',\r\n DepositPaidDate: 'Deposit Paid Date',\r\n EarliestPriorityDate: 'Earliest Priority Date',\r\n ApplicationNumber: 'Application Number',\r\n PublicationDate: 'Publication Date',\r\n PublicationNumber: 'Publication Number',\r\n GrantNumber: 'Grant Number',\r\n Class: 'Class',\r\n GoodsAndServices: 'Goods & Services',\r\n CostAgreementReceivedDate: 'Cost Agreement Received Date',\r\n CostAgreementRequired: 'Cost Agreement Required',\r\n UnbilledTimeAndFees: 'Time & Fees',\r\n Disbursements: 'Disbursements',\r\n UnbilledCostRecoveries: 'Cost Recoveries',\r\n UnbilledOfficePayments: 'Office Payments',\r\n UnbilledAnticipatedPayments: 'Anticipated Payments',\r\n TrustGeneralBalance: 'Trust Balance',\r\n DebtorsBalance: 'Debtors Balance',\r\n CurrentDebtorsBalanceIncTax: 'Current Debt',\r\n ThirtyDebtorsBalanceIncTax: '30 Day Debt',\r\n SixtyDebtorsBalanceIncTax: '60 Day Debt',\r\n NintyDebtorsBalanceIncTax: '90+ Day Debt',\r\n CurrentWIPBalanceExTax: 'Current Unbilled Fees',\r\n ThirtyWIPBalanceExTax: '30 Days Unbilled Fees',\r\n SixtyWIPBalanceExTax: '60 Days Unbilled Fees',\r\n NinetyWIPBalanceExTax: '90+ Days Unbilled Fees',\r\n Trust: 'Trust',\r\n TrustDeposits: 'Trust Deposits',\r\n TrustWithdrawal: 'Trust Withdrawal',\r\n TrustControlledMoneyBalance: 'Controlled Money Balance',\r\n TrustInvestmentsBalance: 'Trust Investments Balance',\r\n Role: 'Role',\r\n ABN: 'ABN',\r\n ACN: 'ACN',\r\n OrganisationType: 'Organisation Type',\r\n BusinessType: 'Business Type',\r\n OtherSide: 'Other Side',\r\n CategoryId: 'Category Id',\r\n Category: 'Category',\r\n CountryId: 'Country Id',\r\n Country: 'Country',\r\n ClientOnly: 'Client Only',\r\n Property: 'Property',\r\n PropertyType: 'Property Type',\r\n PropertyLabel: 'Property Label',\r\n Family: 'Family',\r\n BrandFamily: 'Brand/Family',\r\n Stage: 'Stage',\r\n MatterNotes: 'Notes',\r\n AwaitingInstructions: 'Awaiting Instructions',\r\n FIRBStatus: 'FIRB Status',\r\n Documents: 'Documents',\r\n SearchDocument: 'Search documents...',\r\n Messages: 'Messages & Notes',\r\n SearchMessages: 'Search messages & notes...',\r\n Timeline: 'Timeline',\r\n SearchTimeline: 'Search Timeline...',\r\n Overdue: 'Overdue',\r\n DueComing: 'Due Coming',\r\n Today: 'Today',\r\n CompletedOnly: 'Completed',\r\n UploadedOn: 'Uploaded on',\r\n CreatedOn: 'Created on',\r\n By: ' by ',\r\n Notes: 'Notes: ',\r\n Download: 'Download',\r\n SummaryList: 'Summary List',\r\n Summary: 'Summary',\r\n UserList: 'User List',\r\n LeadsSummary: 'Leads Summary',\r\n Leads: 'Leads',\r\n EnquiriesSummary: 'Inquiries Summary',\r\n Enquiries: 'Inquiries',\r\n KeyOpportunity: 'Key Opportunity',\r\n Enquiry: 'Inquiry',\r\n EnquiryDetails: 'Inquiry Details',\r\n MyEnquiries: 'New Inquiries',\r\n MyKeyOpportunities: 'Key Opportunities',\r\n SearchNewEnquiries: 'Search Inquiries',\r\n SearchNewKeyOpportunity: 'Search Key Opportunity',\r\n MyNewEnquiries: 'My Inquiries',\r\n MyNewKeyOpportunity: 'My Key Opportunities',\r\n EnquiriesDashboard: 'Inquiries Dashboard',\r\n LeadsDashboard: 'Leads Dashboard',\r\n User: 'User',\r\n RoleSummary: 'Role Summary',\r\n Roles: 'Roles',\r\n MatterAccess: 'Matter Access',\r\n MessageActivity: 'Message Activity',\r\n TimesheetActivity: 'Timeline Activity',\r\n TimelineAnalytics: 'Timeline Analytics',\r\n MatterAnalytics: 'Matter Analytics',\r\n NameAnalytics: 'Name Analytics',\r\n LoginAnalytics: 'Login Analytics',\r\n SearchEntries: 'Search Entries',\r\n SearchMatters: 'Search Matters',\r\n SearchStaffBudget: 'Search Staff',\r\n SearchClientsContacts: 'Search Clients & Contacts',\r\n SearchTasks: 'Search Tasks',\r\n IncludeCompleted: 'Include Completed',\r\n IncludeDead: 'Include Dead',\r\n IncludeInactive: 'Include Inactive',\r\n Search: 'Search',\r\n Email: 'Email',\r\n Phone: 'Phone',\r\n Address: 'Address',\r\n Staff: 'Staff',\r\n Scope: 'Scope',\r\n Recipient: 'Recipient',\r\n RoleCategory: 'Role Category',\r\n Reports: 'Reports',\r\n ReportsCatalog: 'Reports Catalog',\r\n OurFirm: 'Our Firm',\r\n NewMessage: 'NEW MESSAGE/NOTE',\r\n NewNote: 'NEW NOTE',\r\n TypeNote: 'Type Note Here...',\r\n TypeMessage: 'Type Message Here...',\r\n SendMessageAction: 'SEND',\r\n Send: 'Send',\r\n Cancel: 'Cancel',\r\n Dashboard: 'Dashboard',\r\n DashboardLayout: 'Dashboard Layout',\r\n FirmDashboard: 'Firm Dashboard',\r\n TaskDashboard: 'Task Dashboard',\r\n ClientDashboard: 'Client Dashboard',\r\n FeeEarnerDashboard: 'Fee Earner Dashboard',\r\n FeeEarnerDashboardLayout: 'Fee Earner Dashboard Layout',\r\n TaskDashboardLayout: 'Task Dashboard Layout',\r\n ClientDashboardLayout: 'Client Dashboard Layout',\r\n MattersSummary: 'Matters',\r\n MatterManagement: 'Matter Management',\r\n Logout: 'Logout',\r\n ChangePassword: 'Change Password',\r\n CurrentPassword: 'Current Password',\r\n NewPassword: 'New Password',\r\n ConfirmPassword: 'Confirm Password',\r\n Save: 'Save',\r\n SupportedBrowsers: 'Supported Browsers',\r\n MemberLogin: 'Login',\r\n Username: 'Username...',\r\n Password: 'Password...',\r\n RememberMe: 'Remember Me',\r\n ForgottenPassword: 'Forgotten Password?',\r\n Login: 'LOGIN',\r\n GoogleChrome: 'Google Chrome',\r\n Safari: 'Safari',\r\n MozillaFirefox: 'Mozilla Firefox',\r\n MicrosoftEdge: 'Microsoft Edge',\r\n InternetExplorer: 'Microsoft Internet Explorer',\r\n NoDocumentsAvailable: 'No documents available',\r\n NoMessage: 'No Message',\r\n Subject: 'Subject',\r\n InternalMessage: 'Internal Message',\r\n Party: 'Party',\r\n Parties: 'Parties',\r\n Due: 'Due',\r\n NoTimelineDatesSet: 'No timeline dates set',\r\n MatterTitle: 'Matter Title',\r\n General: 'General',\r\n MatterCategory: 'Matter Category',\r\n TypeId: 'TypeId',\r\n Type: 'Type',\r\n TypeClassification: 'Type Classification',\r\n TypeState: 'Type State',\r\n SubTypeID: 'Sub TypeId',\r\n SubType: 'Sub Type',\r\n LastComment: 'Last Comment',\r\n Last3Comments: 'Last 3 Comments',\r\n LastMessage: 'Last Message',\r\n Last3Messages: 'Last 3 Messages',\r\n SettlementDate: 'Settlement Date',\r\n SyncSystemID: 'Sync System Id',\r\n ResponsibleID: 'Responsible Id',\r\n Responsible: 'Responsible',\r\n ResponsibleShort: 'Person Resp',\r\n ResponsibleEmail: 'Responsible Email',\r\n ResponsiblePhone: 'Responsible Phone',\r\n ActingID: 'Acting Id',\r\n Acting: 'Acting',\r\n ActingEmail: 'Acting Email',\r\n ActingPhone: 'ActingPhone',\r\n AssistingID: 'Assisting Id',\r\n Assisting: 'Assisting',\r\n AssistingEmail: 'AssistingEmail',\r\n AssistingPhone: 'AssistingPhone',\r\n CompletionDate: 'Completion Date',\r\n InstructionDate: 'Instruction Date',\r\n InProgress: 'In Progress',\r\n IsVip: 'Is VIP',\r\n FIRB: 'FIRB',\r\n SplashTemplates: 'Splash Templates',\r\n UserDefinedHelp: 'User Defined Help',\r\n UserDashboard: 'User Dashboard',\r\n FeatureAccess: 'Feature Access',\r\n FeatureLicencing: 'Feature Licencing',\r\n RoleAccesss: 'Role Access',\r\n RoleSecurity: 'Role Security',\r\n ClientReference: 'Client Reference',\r\n Owner: 'Owner',\r\n Debtors: 'Debtors',\r\n NextRenewalDate: 'Next Renewal Date',\r\n NextDue: 'Next Due',\r\n NextActionDate: 'Next Action Date',\r\n NextAction: 'Next Action',\r\n NextActionItem: ' Next Action Item',\r\n Refresh: 'Refresh',\r\n ExportFile: 'Export File',\r\n SaveLayout: 'Save Layout',\r\n ConfigureViews: 'Configure Views',\r\n Print: 'Print',\r\n ViewConfiguration: 'View Configuration',\r\n ViewName: 'View Name',\r\n AvailableRole: 'Available for Role',\r\n ForSecurity: 'For Security Only',\r\n SharedView: 'Shared View',\r\n Delete: 'Delete',\r\n Settings: 'Settings',\r\n AddNew: 'Add New',\r\n EditGroup: 'Edit Grouping',\r\n FilterColumn: 'Filter Columns',\r\n GeneralInformation: 'General Information',\r\n Referrals: 'Referrals',\r\n Vendor: 'Vendor',\r\n Council: 'Council',\r\n ContactFirm: 'Contact Firm',\r\n InternalResponsibilities: 'Internal Responsibilities',\r\n Date: 'Date',\r\n RequestNewPassword: 'Request New Password',\r\n MultifactorAuthenticationMessage: 'Enter code',\r\n AuthenticationCode: 'Verification Code',\r\n Verify: 'VERIFY',\r\n VerificationFailed: 'Verification code is incorrect. Please specify the correct code and try again',\r\n VerificationCodeResendSuccessMessage: 'Verification Code resent successfully',\r\n ResendVerificationCode: 'Resend Verification Code',\r\n MatterSummaryConfigKey: 'Key',\r\n MatterSummaryConfigTemplateName: 'View Name',\r\n MatterSummaryConfigId: 'Config Id',\r\n MatterSummaryConfigIsUserLevel: 'Is User level',\r\n MatterSummaryConfigIsRoleLevel: 'Is Role level',\r\n MatterSummaryConfigIsTenantLevel: 'Firm Default',\r\n MyDefault: 'My Default',\r\n TenantDefault: 'Tenant Default',\r\n FirmDefault: 'Firm Default',\r\n MatterSummaryConfigIsSecurity: 'Save as Security Template ',\r\n LeapSignIn: 'Sign in to Leap',\r\n MyViewOnly: 'My View Only',\r\n RoleColumnRoleId: 'Role Id',\r\n RoleColumnRoleName: 'Role',\r\n RoleColumnSelected: 'Select',\r\n RoleColumnIsDefault: 'Default',\r\n LeapReset: 'Reset LEAP Access',\r\n Name: 'Name',\r\n NameSummary: 'Name Summary',\r\n StaffSummary: 'Staff Summary',\r\n Names: 'Names',\r\n ClientsAndContacts: 'Clients & Contacts',\r\n Referrer: 'Referrer',\r\n Referrers: 'Referrers',\r\n TotalOwing: 'Total Owing',\r\n TimeslipSummary: 'Timeslip Summary',\r\n AttorneyDashboard: 'Attorney Dashboard',\r\n Timesheet: 'Timesheet',\r\n Timelines: 'Timelines',\r\n Innography: 'Innography',\r\n ClientSense: 'Client Sense',\r\n MailingList: 'Marketing List',\r\n InvoiceSummary: 'Invoice Summary',\r\n ReportingGroup: 'Reporting Group',\r\n ArchivedDate: 'Archived Date',\r\n TrustAccountBalance: 'Trust Funds Available',\r\n ReviewDate: 'Review Date',\r\n\r\n // deb details\r\n OriginalDebt: 'Original Debt',\r\n CollectionCosts: 'Collection Costs',\r\n LegalCostsRecoverable: 'Legal Costs (Recoverable)',\r\n LegalCostsNonRecoverable: 'Legal Costs (Non-Recoverable)',\r\n TotalDisbursements: 'Total Disbursements',\r\n TotalInterest: 'Total Interest',\r\n TotalPayments: 'Total Payments',\r\n TotalOutstanding: 'Total Outstanding',\r\n EventsAndCampaigns: 'Events & Campaigns',\r\n\r\n PriorityCountry: 'Priority Country',\r\n GeneralMaterial: 'General Material',\r\n InjuryDate: 'Injury Date',\r\n ProceedingsIssuedDate: 'Proceedings Issued Date',\r\n SunsetOrLimitationDate: 'Sunset or Limitation Date',\r\n HearingDate: 'Hearing Date',\r\n Trustee: 'Trustee',\r\n TrusteeEmail: 'Trustee Email',\r\n ClientDocuments: 'Client Documents',\r\n EnquiryQuality: 'Inquiry Quality',\r\n NewEnquiry: 'New Inquiry',\r\n Organisation: 'Organization',\r\n enquirer: 'Inquirer',\r\n 'Position at Organisation': 'Position at Organization',\r\n 'Initial Enquiry Date': 'Initial Inquiry Date',\r\n 'Nature of Enquiry': 'Nature of Inquiry',\r\n 'Enq. Quality': 'Inq. Quality',\r\n 'Relationship to the enquirer': 'Relationship to the inquirer',\r\n 'Enquiry Notes': 'Inquiry Notes',\r\n 'Enquiry Mth': 'Inquiry Mth',\r\n 'Second Client Relationship to the Enquirer': 'Second Client Relationship to the Inquirer',\r\n 'Initial Enquiry': 'Initial Inquiry',\r\n 'Organisation Name': 'Organization Name',\r\n 'Nature Of Enquiry': 'Nature Of Inquiry',\r\n 'Enquiry Value': 'Inquiry Value',\r\n 'Enquiry Quality': 'Inquiry Quality',\r\n 'New Enquiries in the last 12 months': 'New Inquiries in the last 12 months',\r\n 'new enquiries in the 12 months before that': 'new inquiries in the 12 months before that',\r\n 'Enquiries Opened': 'Inquiries Opened',\r\n 'Enquiries Opened in the last 12 months': 'Enquiries Opened in the last 12 months',\r\n 'Enquiry Date': 'Inquiry Date',\r\n 'enquiries': 'inquiries',\r\n 'Trust Balance': 'Client Account Balance'\r\n};\r\n","import { TranslationTextList } from './common';\r\n\r\nexport const auTranslation: TranslationTextList = {\r\n Help: 'Help',\r\n ScrubEnquiryData: 'Scrub Enquiry Data',\r\n LeadDashboardLayout: 'Lead Dashboard Layout',\r\n EnquiryDashboardLayout: 'Enquiry Dashboard Layout',\r\n FirmDashboardLayout: 'Firm Dashboard Layout',\r\n Tasks: 'Tasks',\r\n PhoneCalls: 'Phone Calls',\r\n TasksFound: 'Tasks found',\r\n LoginActivity: 'Login Activity',\r\n NameAccess: 'Name Access',\r\n Configuration: 'Configuration',\r\n Home: 'Home',\r\n Admin: 'Admin',\r\n GeneralDetails: 'General Details',\r\n GuidId: 'GuidId',\r\n Billed: 'Billed',\r\n BilledInxTax: 'Billed Fees (inc tax)',\r\n BilledFees: 'Billed Fees',\r\n PercentageEstimate: '% Estimate',\r\n PercentageExposure: '% Billed+WIP',\r\n PercentageEstimateShort: '% Est',\r\n Financials: 'Financials',\r\n MatterId: 'Matter Id',\r\n FileNumber: 'File Number',\r\n MatterNumber: 'Matter No',\r\n Logo: 'Device',\r\n Reference: 'Reference',\r\n ClientName: 'Client Name',\r\n Client: 'Client',\r\n ClientPhone: 'Client Phone',\r\n ClientEmail: 'Client Email',\r\n Clients: 'Clients',\r\n Status: 'Status',\r\n LastUpdate: 'Last Update',\r\n PublishedDate: 'Publish Date',\r\n InternalCode: 'Internal Code',\r\n FileLocation: 'File Location',\r\n Matter: 'Matter',\r\n Matters: 'Matters',\r\n StaffBillingSummary: 'Staff Billing Summary',\r\n MattersReferred: 'Matters Referred',\r\n MatterType: 'Matter Type',\r\n MatterTypeCategory: 'Matter Type Category',\r\n EstimatedCosts: 'Estimated Fees',\r\n BillingMethod: 'Billing Method',\r\n CostAgreementReceived: 'Cost Agreement',\r\n LongTitle: 'Long Title',\r\n Completed: 'Completed',\r\n Title: 'Title',\r\n Description: 'Description',\r\n State: 'State',\r\n FinancialBilled: 'Billed',\r\n TrustFund: 'Trust Fund',\r\n TrustBalance: 'Trust Balance',\r\n BilledTimeAndFees: 'Time & Fees',\r\n BilledCostAndPayments: 'Cost & Payments',\r\n Unbilled: 'Unbilled',\r\n UnbilledShort: 'Unbilled Fees (inc tax)',\r\n UnbilledFees: 'Unbilled Fees',\r\n UnbilledDisbursements: 'Unbilled Disbursements',\r\n UnbilledDisbursementsShort: 'Unbilled Disb',\r\n Price: 'Price',\r\n Deposit: 'Deposit',\r\n ExchangeDate: 'Exchange Date',\r\n CoolingOffDate: 'Cooling Off Date',\r\n DepositDueDate: 'Deposit Due Date',\r\n DepositPaidDate: 'Deposit Paid Date',\r\n EarliestPriorityDate: 'Earliest Priority Date',\r\n ApplicationNumber: 'Application Number',\r\n PublicationDate: 'Publication Date',\r\n PublicationNumber: 'Publication Number',\r\n GrantNumber: 'Grant Number',\r\n Class: 'Class',\r\n GoodsAndServices: 'Goods & Services',\r\n CostAgreementReceivedDate: 'Cost Agreement Received Date',\r\n CostAgreementRequired: 'Cost Agreement Required',\r\n UnbilledTimeAndFees: 'Time & Fees',\r\n Disbursements: 'Disbursements',\r\n UnbilledCostRecoveries: 'Cost Recoveries',\r\n UnbilledOfficePayments: 'Office Payments',\r\n UnbilledAnticipatedPayments: 'Anticipated Payments',\r\n TrustGeneralBalance: 'Trust Balance',\r\n DebtorsBalance: 'Debtors Balance',\r\n CurrentDebtorsBalanceIncTax: 'Current Debt',\r\n ThirtyDebtorsBalanceIncTax: '30 Day Debt',\r\n SixtyDebtorsBalanceIncTax: '60 Day Debt',\r\n NintyDebtorsBalanceIncTax: '90+ Day Debt',\r\n CurrentWIPBalanceExTax: 'Current Unbilled Fees',\r\n ThirtyWIPBalanceExTax: '30 Days Unbilled Fees',\r\n SixtyWIPBalanceExTax: '60 Days Unbilled Fees',\r\n NinetyWIPBalanceExTax: '90+ Days Unbilled Fees',\r\n Trust: 'Trust',\r\n TrustDeposits: 'Trust Deposits',\r\n TrustWithdrawal: 'Trust Withdrawal',\r\n TrustControlledMoneyBalance: 'Controlled Money Balance',\r\n TrustInvestmentsBalance: 'Trust Investments Balance',\r\n Role: 'Role',\r\n ABN: 'ABN',\r\n ACN: 'ACN',\r\n OrganisationType: 'Organisation Type',\r\n BusinessType: 'Business Type',\r\n OtherSide: 'Other Side',\r\n CategoryId: 'Category Id',\r\n Category: 'Category',\r\n CountryId: 'Country Id',\r\n Country: 'Country',\r\n ClientOnly: 'Client Only',\r\n Property: 'Property',\r\n PropertyType: 'Property Type',\r\n PropertyLabel: 'Property Label',\r\n Family: 'Family',\r\n BrandFamily: 'Brand/Family',\r\n Stage: 'Stage',\r\n MatterNotes: 'Notes',\r\n AwaitingInstructions: 'Awaiting Instructions',\r\n FIRBStatus: 'FIRB Status',\r\n Documents: 'Documents',\r\n SearchDocument: 'Search documents...',\r\n Messages: 'Messages & Notes',\r\n SearchMessages: 'Search messages & notes...',\r\n Timeline: 'Timeline',\r\n SearchTimeline: 'Search Timeline...',\r\n Overdue: 'Overdue',\r\n DueComing: 'Due Coming',\r\n Today: 'Today',\r\n CompletedOnly: 'Completed',\r\n UploadedOn: 'Uploaded on',\r\n CreatedOn: 'Created on',\r\n By: ' by ',\r\n Notes: 'Notes: ',\r\n Download: 'Download',\r\n SummaryList: 'Summary List',\r\n Summary: 'Summary',\r\n UserList: 'User List',\r\n LeadsSummary: 'Leads Summary',\r\n Leads: 'Leads',\r\n EnquiriesSummary: 'Enquiries Summary',\r\n Enquiries: 'Enquiries',\r\n KeyOpportunity: 'Key Opportunity',\r\n Enquiry: 'Enquiry',\r\n EnquiryDetails: 'Enquiry Details',\r\n MyEnquiries: 'New Enquiries',\r\n MyKeyOpportunities: 'Key Opportunities',\r\n SearchNewEnquiries: 'Search Enquiries',\r\n SearchNewKeyOpportunity: 'Search Key Opportunity',\r\n MyNewEnquiries: 'My Enquiries',\r\n MyNewKeyOpportunity: 'My Key Opportunities',\r\n EnquiriesDashboard: 'Enquiries Dashboard',\r\n LeadsDashboard: 'Leads Dashboard',\r\n User: 'User',\r\n RoleSummary: 'Role Summary',\r\n Roles: 'Roles',\r\n MatterAccess: 'Matter Access',\r\n MessageActivity: 'Message Activity',\r\n TimesheetActivity: 'Timeline Activity',\r\n TimelineAnalytics: 'Timeline Analytics',\r\n MatterAnalytics: 'Matter Analytics',\r\n NameAnalytics: 'Name Analytics',\r\n LoginAnalytics: 'Login Analytics',\r\n SearchEntries: 'Search Entries',\r\n SearchMatters: 'Search Matters',\r\n SearchStaffBudget: 'Search Staff',\r\n SearchClientsContacts: 'Search Clients & Contacts',\r\n SearchTasks: 'Search Tasks',\r\n IncludeCompleted: 'Include Completed',\r\n IncludeDead: 'Include Dead',\r\n IncludeInactive: 'Include Inactive',\r\n Search: 'Search',\r\n Email: 'Email',\r\n Phone: 'Phone',\r\n Address: 'Address',\r\n Staff: 'Staff',\r\n Scope: 'Scope',\r\n Recipient: 'Recipient',\r\n RoleCategory: 'Role Category',\r\n Reports: 'Reports',\r\n ReportsCatalog: 'Reports Catalog',\r\n OurFirm: 'Our Firm',\r\n NewMessage: 'NEW MESSAGE/NOTE',\r\n NewNote: 'NEW NOTE',\r\n TypeNote: 'Type Note Here...',\r\n TypeMessage: 'Type Message Here...',\r\n SendMessageAction: 'SEND',\r\n Send: 'Send',\r\n Cancel: 'Cancel',\r\n Dashboard: 'Dashboard',\r\n DashboardLayout: 'Dashboard Layout',\r\n FirmDashboard: 'Firm Dashboard',\r\n TaskDashboard: 'Task Dashboard',\r\n ClientDashboard: 'Client Dashboard',\r\n FeeEarnerDashboard: 'Fee Earner Dashboard',\r\n FeeEarnerDashboardLayout: 'Fee Earner Dashboard Layout',\r\n TaskDashboardLayout: 'Task Dashboard Layout',\r\n ClientDashboardLayout: 'Client Dashboard Layout',\r\n MattersSummary: 'Matters',\r\n MatterManagement: 'Matter Management',\r\n Logout: 'Logout',\r\n ChangePassword: 'Change Password',\r\n CurrentPassword: 'Current Password',\r\n NewPassword: 'New Password',\r\n ConfirmPassword: 'Confirm Password',\r\n Save: 'Save',\r\n SupportedBrowsers: 'Supported Browsers',\r\n MemberLogin: 'Login',\r\n Username: 'Username...',\r\n Password: 'Password...',\r\n RememberMe: 'Remember Me',\r\n ForgottenPassword: 'Forgotten Password?',\r\n Login: 'LOGIN',\r\n GoogleChrome: 'Google Chrome',\r\n Safari: 'Safari',\r\n MozillaFirefox: 'Mozilla Firefox',\r\n MicrosoftEdge: 'Microsoft Edge',\r\n InternetExplorer: 'Microsoft Internet Explorer',\r\n NoDocumentsAvailable: 'No documents available',\r\n NoMessage: 'No Message',\r\n Subject: 'Subject',\r\n InternalMessage: 'Internal Message',\r\n Party: 'Party',\r\n Parties: 'Parties',\r\n Due: 'Due',\r\n NoTimelineDatesSet: 'No timeline dates set',\r\n MatterTitle: 'Matter Title',\r\n General: 'General',\r\n MatterCategory: 'Matter Category',\r\n TypeId: 'TypeId',\r\n Type: 'Type',\r\n TypeClassification: 'Type Classification',\r\n TypeState: 'Type State',\r\n SubTypeID: 'Sub TypeId',\r\n SubType: 'Sub Type',\r\n LastComment: 'Last Comment',\r\n Last3Comments: 'Last 3 Comments',\r\n LastMessage: 'Last Message',\r\n Last3Messages: 'Last 3 Messages',\r\n SettlementDate: 'Settlement Date',\r\n SyncSystemID: 'Sync System Id',\r\n ResponsibleID: 'Responsible Id',\r\n Responsible: 'Responsible',\r\n ResponsibleShort: 'Person Resp',\r\n ResponsibleEmail: 'Responsible Email',\r\n ResponsiblePhone: 'Responsible Phone',\r\n ActingID: 'Acting Id',\r\n Acting: 'Acting',\r\n ActingEmail: 'Acting Email',\r\n ActingPhone: 'ActingPhone',\r\n AssistingID: 'Assisting Id',\r\n Assisting: 'Assisting',\r\n AssistingEmail: 'AssistingEmail',\r\n AssistingPhone: 'AssistingPhone',\r\n CompletionDate: 'Completion Date',\r\n InstructionDate: 'Instruction Date',\r\n InProgress: 'In Progress',\r\n IsVip: 'Is VIP',\r\n FIRB: 'FIRB',\r\n SplashTemplates: 'Splash Templates',\r\n UserDefinedHelp: 'User Defined Help',\r\n UserDashboard: 'User Dashboard',\r\n FeatureAccess: 'Feature Access',\r\n FeatureLicencing: 'Feature Licencing',\r\n RoleAccesss: 'Role Access',\r\n RoleSecurity: 'Role Security',\r\n ClientReference: 'Client Reference',\r\n Owner: 'Owner',\r\n Debtors: 'Debtors',\r\n NextRenewalDate: 'Next Renewal Date',\r\n NextDue: 'Next Due',\r\n NextActionDate: 'Next Action Date',\r\n NextAction: 'Next Action',\r\n NextActionItem: ' Next Action Item',\r\n Refresh: 'Refresh',\r\n ExportFile: 'Export File',\r\n SaveLayout: 'Save Layout',\r\n ConfigureViews: 'Configure Views',\r\n Print: 'Print',\r\n ViewConfiguration: 'View Configuration',\r\n ViewName: 'View Name',\r\n AvailableRole: 'Available for Role',\r\n ForSecurity: 'For Security Only',\r\n SharedView: 'Shared View',\r\n Delete: 'Delete',\r\n Settings: 'Settings',\r\n AddNew: 'Add New',\r\n EditGroup: 'Edit Grouping',\r\n FilterColumn: 'Filter Columns',\r\n GeneralInformation: 'General Information',\r\n Referrals: 'Referrals',\r\n Vendor: 'Vendor',\r\n Council: 'Council',\r\n ContactFirm: 'Contact Firm',\r\n InternalResponsibilities: 'Internal Responsibilities',\r\n Date: 'Date',\r\n RequestNewPassword: 'Request New Password',\r\n MultifactorAuthenticationMessage: 'Enter code',\r\n AuthenticationCode: 'Verification Code',\r\n Verify: 'VERIFY',\r\n VerificationFailed: 'Verification code is incorrect. Please specify the correct code and try again',\r\n VerificationCodeResendSuccessMessage: 'Verification Code resent successfully',\r\n ResendVerificationCode: 'Resend Verification Code',\r\n MatterSummaryConfigKey: 'Key',\r\n MatterSummaryConfigTemplateName: 'View Name',\r\n MatterSummaryConfigId: 'Config Id',\r\n MatterSummaryConfigIsUserLevel: 'Is User level',\r\n MatterSummaryConfigIsRoleLevel: 'Is Role level',\r\n MatterSummaryConfigIsTenantLevel: 'Firm Default',\r\n MyDefault: 'My Default',\r\n TenantDefault: 'Tenant Default',\r\n FirmDefault: 'Firm Default',\r\n MatterSummaryConfigIsSecurity: 'Save as Security Template ',\r\n LeapSignIn: 'Sign in to Leap',\r\n MyViewOnly: 'My View Only',\r\n RoleColumnRoleId: 'Role Id',\r\n RoleColumnRoleName: 'Role',\r\n RoleColumnSelected: 'Select',\r\n RoleColumnIsDefault: 'Default',\r\n LeapReset: 'Reset LEAP Access',\r\n Name: 'Name',\r\n NameSummary: 'Name Summary',\r\n StaffSummary: 'Staff Summary',\r\n Names: 'Names',\r\n ClientsAndContacts: 'Clients & Contacts',\r\n Referrer: 'Referrer',\r\n Referrers: 'Referrers',\r\n TotalOwing: 'Total Owing',\r\n TimeslipSummary: 'Timeslip Summary',\r\n AttorneyDashboard: 'Attorney Dashboard',\r\n Timesheet: 'Timesheet',\r\n Timelines: 'Timelines',\r\n Innography: 'Innography',\r\n ClientSense: 'Client Sense',\r\n MailingList: 'Marketing List',\r\n InvoiceSummary: 'Invoice Summary',\r\n ReportingGroup: 'Reporting Group',\r\n ArchivedDate: 'Archived Date',\r\n TrustAccountBalance: 'Trust Funds Available',\r\n ReviewDate: 'Review Date',\r\n\r\n // deb details\r\n OriginalDebt: 'Original Debt',\r\n CollectionCosts: 'Collection Costs',\r\n LegalCostsRecoverable: 'Legal Costs (Recoverable)',\r\n LegalCostsNonRecoverable: 'Legal Costs (Non-Recoverable)',\r\n TotalDisbursements: 'Total Disbursements',\r\n TotalInterest: 'Total Interest',\r\n TotalPayments: 'Total Payments',\r\n TotalOutstanding: 'Total Outstanding',\r\n EventsAndCampaigns: 'Events & Campaigns',\r\n\r\n PriorityCountry: 'Priority Country',\r\n GeneralMaterial: 'General Material',\r\n InjuryDate: 'Injury Date',\r\n ProceedingsIssuedDate: 'Proceedings Issued Date',\r\n SunsetOrLimitationDate: 'Sunset or Limitation Date',\r\n HearingDate: 'Hearing Date',\r\n Trustee: 'Trustee',\r\n TrusteeEmail: 'Trustee Email',\r\n ClientDocuments: 'Client Documents',\r\n EnquiryQuality: 'Enquiry Quality',\r\n NewEnquiry: 'New Enquiry',\r\n Organisation: 'Organisation',\r\n 'Position at Organisation': 'Position at Organisation',\r\n 'Initial Enquiry Date': 'Initial Enquiry Date',\r\n 'Nature of Enquiry': 'Nature of Enquiry',\r\n 'Enq. Quality': 'Enq. Quality',\r\n 'Relationship to the enquirer': 'Relationship to the enquirer',\r\n 'Enquiry Notes': 'Enquiry Notes',\r\n 'Enquiry Mth': 'Enquiry Mth',\r\n 'Second Client Relationship to the Enquirer': 'Second Client Relationship to the Enquirer',\r\n 'Initial Enquiry': 'Initial Enquiry',\r\n 'Organisation Name': 'Organisation Name',\r\n 'Nature Of Enquiry': 'Nature Of Enquiry',\r\n 'Enquiry Value': 'Enquiry Value',\r\n 'Enquiry Quality': 'Enquiry Quality',\r\n 'New Enquiries in the last 12 months': 'New Enquiries in the last 12 months',\r\n 'new enquiries in the 12 months before that': 'new enquiries in the 12 months before that',\r\n 'Enquiries Opened': 'Enquiries Opened',\r\n 'Enquiries Opened in the last 12 months': 'Enquiries Opened in the last 12 months',\r\n 'Enquiry Date': 'Enquiry Date',\r\n 'enquiries': 'enquiries',\r\n 'Trust Balance': 'Trust Balance'\r\n};\r\n","import { FetchPolicy } from 'apollo-client';\r\nimport gql from 'graphql-tag';\r\nimport { client } from '..';\r\nimport { EnquiryData } from '../enquirySummary/models/Enquiry';\r\n\r\n// leads details\r\nexport interface LeadDetailsQueryParams {\r\n leadGuidId: string;\r\n}\r\n\r\nexport interface LeadDetailsData {\r\n loading?: boolean;\r\n networkStatus?: number;\r\n leadDetails: LeadDetails;\r\n}\r\n\r\nexport interface LeadDetails {\r\n leadGuid: string | null;\r\n createdDate: Date | null;\r\n lastUpdated: Date | null;\r\n isClosed: boolean | null;\r\n firstName: string | null;\r\n lastName: string | null;\r\n email: string | null;\r\n gender: string | null;\r\n initialEnquiryDate: Date | null;\r\n phone: string | null;\r\n mobile: string | null;\r\n sourceGuidID: string | null;\r\n source: string | null;\r\n officeGuidID: string | null;\r\n office: string | null;\r\n sourceNotes: string | null;\r\n organisation: string | null;\r\n positionAtOrganisation: string | null;\r\n natureOfEnquiry: string | null;\r\n practiceAreaGuidID: string | null;\r\n areaOfLaw: string | null;\r\n internalNotes: string | null;\r\n files: File[];\r\n dateAssigned: Date | null;\r\n assignedTo: string | null;\r\n assignedToName: string | null;\r\n assignedToEmailAddress: string | null;\r\n assignedBy: string | null;\r\n assignedByName: string | null;\r\n assignedByEmailAddress: string | null;\r\n followUpDueDate: Date | null;\r\n followUpActionGuidID: string | null;\r\n followUpAction: string | null;\r\n followUpDate: Date | null;\r\n followUpNotes: string | null;\r\n outcomeGuidID: string | null;\r\n outcome: string | null;\r\n outcomeDate: Date | null;\r\n reasonGuidID: string | null;\r\n reason: string | null;\r\n}\r\n\r\n// TODO: why duplicate ?\r\nexport function retrieveEnquiryDetailsData(query: LeadDetailsQueryParams,\r\n refreshData: boolean,\r\n onSuccess: (data: EnquiryData) => void,\r\n // tslint:disable-next-line:no-any\r\n onError: (reason: any) => void)\r\n : void {\r\n var fetchPolicy: FetchPolicy = refreshData === true ? 'network-only' : 'cache-first';\r\n client.query({\r\n query: EnquiryDetailsData,\r\n variables: {\r\n guid: query.leadGuidId\r\n },\r\n fetchPolicy: fetchPolicy\r\n })\r\n // tslint:disable-next-line:no-any\r\n .then((results: { data: any; }) => {\r\n onSuccess(results.data);\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => { onError(reason); }\r\n );\r\n}\r\n\r\n// lead details history\r\n\r\nexport interface LeadDetailsHistoryQueryParams {\r\n offset: number | null;\r\n first: number | null;\r\n filter: String | null;\r\n sortColumn: String | null;\r\n sortDirection: String | null;\r\n entityGuidID: String | null;\r\n}\r\n\r\nexport interface LeadDetailsHistoryData {\r\n loading?: boolean;\r\n networkStatus?: number;\r\n task: Task;\r\n}\r\n\r\nexport interface Task {\r\n summaryList: TaskSummaryList;\r\n}\r\n\r\nexport interface TaskSummaryList {\r\n tasks: TaskDetails[];\r\n recordCount: number;\r\n actualRowCountForSearch: number;\r\n}\r\n\r\nexport interface TaskDetails {\r\n assignedByGuidID: null | string;\r\n assignedByName: null | string;\r\n assignedDate: Date | null;\r\n assignedToGuidID: null | string;\r\n assignedToName: string;\r\n completedDate: Date | null;\r\n createdDate: Date;\r\n dueDate: Date | null;\r\n dueDateUTC: Date | null;\r\n entityGuidID: string;\r\n entityType: number;\r\n ownerGuidID: string;\r\n ownerName: string;\r\n properties: string;\r\n taskDescription: null;\r\n taskGuidID: string;\r\n taskStatusDescription: string;\r\n taskStatusGuidID: string;\r\n taskTypeDescription: string;\r\n taskTypeInternalDescription: string;\r\n taskTypeGuidID: string;\r\n updatedDate: Date;\r\n followUpNotes: string;\r\n outcome: string;\r\n outcomeNotes: string;\r\n followUpAction: string;\r\n systemAction: string | null;\r\n followUpActionSystemName: string | null;\r\n actionedDescription: string | null;\r\n reason: string;\r\n isKeyOpportunity: boolean;\r\n notes: string;\r\n feeApplicable: number;\r\n bookMeetingStartDate: Date | null;\r\n bookMeetingEndDate: Date | null;\r\n bookMeetingStartDateUTC: Date | null;\r\n bookMeetingEndDateUTC: Date | null; \r\n startDate: Date | null;\r\n firmOffice: string;\r\n firmOfficeGuid: string;\r\n timezone: string;\r\n timezoneOffset: Number;\r\n sendConfirmation: boolean;\r\n meetingNotes: string;\r\n staff: string;\r\n staffGuid: string;\r\n fromEmailAddress: string;\r\n toEmailAddresses: string;\r\n ccEmailAddresses: string;\r\n emailSubject: string;\r\n emailContent: string;\r\n emailTemplateName: string;\r\n referredToFirmGuid: string;\r\n referredToFirmName: string;\r\n notProceedingNotes: string;\r\n enquiryLinkedMatter: string;\r\n linkedMatterClient: string;\r\n linkedMatterTitle: string;\r\n isAssignedToTeam: boolean;\r\n canAssignMeeting: boolean;\r\n taskUpdateInProgress: boolean;\r\n isIntegrationFailed: boolean;\r\n}\r\n\r\n// export interface TaskSummaryCount {\r\n// calculatedRowCount: number;\r\n// rowCountWithoutFilters: number;\r\n// }\r\n\r\nexport function retrieveLeadDetailsHistoryData(query: LeadDetailsHistoryQueryParams,\r\n refreshData: boolean,\r\n onSuccess: (data: LeadDetailsHistoryData) => void,\r\n // tslint:disable-next-line:no-any\r\n onError: (reason: any) => void)\r\n : void {\r\n var fetchPolicy: FetchPolicy = refreshData === true ? 'network-only' : 'cache-first';\r\n client.query({\r\n query: LeadDetailsHistoryData,\r\n variables: {\r\n offset: query.offset,\r\n first: query.first,\r\n filter: query.filter,\r\n sortColumn: query.sortColumn,\r\n sortDirection: query.sortDirection,\r\n entityGuidID: query.entityGuidID,\r\n },\r\n fetchPolicy: fetchPolicy\r\n })\r\n // tslint:disable-next-line:no-any\r\n .then((results: { data: any; }) => {\r\n onSuccess(results.data);\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => { onError(reason); }\r\n );\r\n}\r\n\r\nconst EnquiryDetailsData = gql`\r\nquery EnquiryDetailsData($guid: String){\r\n enquiry{\r\n detail(guid: $guid){\r\n guid\r\n createdDate\r\n lastUpdated\r\n isClosed\r\n firstName\r\n lastName\r\n email\r\n gender\r\n initialEnquiryDate\r\n phone\r\n mobile \r\n sourceGuidID\r\n source\r\n officeGuidID\r\n office\r\n sourceNotes\r\n organisation\r\n positionAtOrganisation\r\n natureOfEnquiry\r\n practiceAreaGuidID\r\n areaOfLaw\r\n dateAssigned\r\n assignedTo\r\n assignedToName\r\n assignedToEmailAddress\r\n assignedBy\r\n assignedByName\r\n assignedByEmailAddress\r\n followUpDueDate\r\n followUpActionGuidID\r\n followUpAction \r\n followUpDate\r\n followUpNotes\r\n outcomeGuidID\r\n outcome\r\n outcomeDate\r\n reasonGuidID\r\n reason\r\n internalNotes\r\n internalNotesGuidID\r\n isKeyOpportunity\r\n files {\r\n entityType\r\n guidID\r\n name\r\n url\r\n }\r\n }\r\n }\r\n}`;\r\n\r\nconst LeadDetailsHistoryData = gql`\r\nquery TaskSummaryData($offset: Int, $first: Int, $filter: String, $sortColumn: String, $sortDirection: String, $entityGuidID: String) {\r\n task {\r\n summaryList(offset: $offset, first: $first, filter: $filter, sortColumn: $sortColumn, sortDirection: $sortDirection, entityGuidID: $entityGuidID) {\r\n tasks {\r\n assignedByGuidID\r\n assignedByName\r\n assignedDate\r\n assignedToGuidID\r\n assignedToName\r\n completedDate\r\n createdDate\r\n dueDate\r\n dueDateUTC\r\n entityGuidID\r\n entityType\r\n ownerGuidID\r\n ownerName\r\n properties\r\n taskDescription\r\n taskGuidID\r\n taskStatusDescription \r\n taskStatusGuidID\r\n taskTypeDescription\r\n taskTypeInternalDescription\r\n taskTypeGuidID\r\n updatedDate\r\n followUpNotes\r\n outcome\r\n outcomeNotes\r\n followUpAction\r\n systemAction\r\n followUpActionSystemName\r\n actionedDescription\r\n reason\r\n isKeyOpportunity,\r\n notes,\r\n feeApplicable,\r\n startDate,\r\n bookMeetingStartDate,\r\n bookMeetingEndDate,\r\n bookMeetingStartDateUTC,\r\n bookMeetingEndDateUTC,\r\n firmOffice,\r\n firmOfficeGuid,\r\n timezone,\r\n timezoneOffset,\r\n sendConfirmation,\r\n meetingNotes,\r\n staff,\r\n staffGuid,\r\n fromEmailAddress,\r\n toEmailAddresses,\r\n ccEmailAddresses,\r\n emailSubject,\r\n emailContent,\r\n emailTemplateName,\r\n referredToFirmGuid,\r\n referredToFirmName,\r\n notProceedingNotes,\r\n enquiryLinkedMatter,\r\n linkedMatterClient,\r\n \tlinkedMatterTitle,\r\n isAssignedToTeam,\r\n canAssignMeeting,\r\n taskUpdateInProgress,\r\n isIntegrationFailed\r\n }\r\n actualRowCountForSearch\r\n recordCount\r\n }\r\n }\r\n }\r\n`;\r\n"],"sourceRoot":""}