{"version":3,"sources":["analytics.ts","components/MainNav/config/horizontalMenu.tsx","pages/Search/helpers/onNavigate.ts","datadog/index.ts","components/MainNav/components/DownloadsList.tsx","components/UserPreferencesModal/components/UserPreferencesModal.styled.tsx","components/UserPreferencesModal/components/Thumbnail.styled.tsx","components/UserPreferencesModal/components/Thumbnail.tsx","components/UserPreferencesModal/graphql/mutations/setUiTheme.generated.tsx","components/MainNav/graphql/fragments/user.generated.tsx","components/MainNav/graphql/queries/me.generated.tsx","graphql/generated.ts","components/UserPreferencesModal/components/UserPreferencesModal.tsx","components/MainNav/components/DownloadsList.styled.tsx","components/MainNav/components/MainNav.tsx","components/MainNav/components/utils.tsx","routes/PrivateRoute.tsx","routes/ScrollToTop.tsx","routes/PrivateLayout.tsx","routes/Login.tsx","routes/Auth.tsx","routes/Router.tsx","App.tsx","serviceWorker.ts","config/apollo.ts","config/auth0.ts","helpers/pendo.ts","Auth/index.tsx","index.tsx"],"names":["analytics","constructor","urlMap","this","Map","setUrl","route","title","params","comps","snakeCase","set","window","location","pathname","getObject","join","page","getAnalyticsUrl","get","menu","id","permissions","USER_ROLES","SUPER_ADMIN","ACIN_QUALITY_TOOLS_USER","CUSTOMER_QUALITY_TOOLS_USER","label","secondLevelNavigation","navItems","ACIN_USER","CUSTOMER_USER","DATA_USER","getMenuItems","filter","item","some","itemPermissions","includes","map","routingMap","reverseRoutingMap","getPathById","onNavigate","type","open","datadogInit","process","REACT_APP_DATADOG_APPLICATION_ID","REACT_APP_DATADOG_CLIENT_TOKEN","REACT_APP_BUILD_ENV","datadogRum","init","applicationId","clientToken","site","service","env","version","sessionSampleRate","sessionReplaySampleRate","trackUserInteractions","trackResources","trackLongTasks","defaultPrivacyLevel","DownloadsList","props","onClose","allCalibrateDownloads","deleteCalibrateDownload","markCalibrateAsDownloaded","onAddToast","useToaster","items","onClick","fileURL","openDownload","newWindow","closed","message","status","actionPrimary","hideCloseButton","onDelete","UserPreferencesModal","styled","Modal","Title","Text","p","theme","colors","text","getValue","ThumbnailWrapper","View","spacing","getSize","Thumbnail","button","SVGWrapper","isActive","css","primary","main","variant","SVG","width","height","viewBox","fill","xmlns","xmlnsXlink","d","y","x","patternContentUnits","xlinkHref","transform","rx","weight","size","SetUiThemeDocument","gql","UserFragmentDoc","MeDocument","useMeQuery","baseOptions","Apollo","IUiTheme","className","show","data","setUiTheme","onCompleted","themeSelection","removeAt","Date","setTheme","activeTheme","useThemeProvider","setThemeSelection","React","useState","name","useEffect","generate","footerButtonPrimary","disabled","me","variables","userId","Dark","Default","pulseAnimation","keyframes","DownloadIconAnimated","IconDownload","dotColor","dot","stopAnimation","MainNav","logout","user","hasRole","useAuth","history","useHistory","useLocation","isDarkMode","themeHelpers","oneCalibrateDownloadInProgress","oneCalibrateDownloadProcessed","oneCalibrateDownloadFailed","showCalibrateDownloads","setShowCalibrateDownloads","useDownload","closeDownloads","showSearchModal","setShowSearchModal","showUserAccount","setShowUserAccount","showPreferencesModal","setShowPreferencesModal","stopDotAnimation","setStopDotAnimation","preferences","getActiveMenuItem","useCallback","activeMenuItem","forEach","value","key","menuItems","accountCode","totalInventories","roles","oneFailed","oneInProgress","oneProcessed","error","success","info","getDotColor","userMenuItems","unshift","navigation","onNavigationClick","path","push","onLogoClick","onSearchClick","activeItem","showSearch","settingsMenuContents","onMenuClick","redirect","localStorage","clear","returnTo","hostname","REACT_APP_CYPRESS_ENABLE","handleMenuClick","renderDownloadsList","onClickDownlaods","revealDownloads","showDownloadsOption","downloadsIcon","color","isOpen","showInventories","PrivateRoute","isAuthenticated","loading","children","rest","redirectPath","render","renderNavigation","renderContent","accountName","userName","hasAccount","withRouter","unlisten","listen","scrollTo","Settings","lazy","then","module","default","Dashboard","Search","RiskIntelligence","RiskIntelligenceAdmin","RiskIntelligenceHub","ConnectData","ManageAccounts","Explorer","Calibrate","Documents","Notifications","Upload","DataQuality","PrivateLayout","Suspense","fallback","position","withOverlay","exact","activeTab","Login","login","Auth","setError","search","URLSearchParams","desc","Router","App","Boolean","match","ORIGIN_URL_KEY","setItem","redirect_uri","envValue","deploymentQueryStringService","cacheLocation","Cypress","config","domain","client_id","audience","onAuthenticated","userMetadata","pendo","initialize","visitor","sub","email","account","code","annotateUrl","initialisePendo","trackPendoEvent","screenWidth","screen","screenHeight","setUser","onLogout","clearSavedFilters","typename","inspect","content","createAuth0Client","auth0","async","client","httpLink","HttpLink","uri","token","errorLink","onError","graphQLErrors","networkError","locations","console","log","withTokenLink","setContext","bearerToken","auth0Client","getTokenSilently","authLink","_","headers","Authorization","inflateLink","ApolloLink","operation","forward","response","inflate","link","from","cache","InMemoryCache","introspectionResult","typePolicies","riskIntelTypePolicies","riskAndControlsTypePolicies","ApolloClient","getClient","ReactDOM","ApolloProvider","originUrlKey","authClient","document","getElementById","renderApp","navigator","serviceWorker","ready","registration","unregister","catch"],"mappings":"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","file":"static/js/main.391214c0.chunk.js","sourcesContent":["import { snakeCase } from 'lodash';\n\nexport interface AnalyticsPayload {\n [key: string]: string;\n}\n\nclass Analytics {\n private urlMap: Map;\n\n constructor() {\n this.urlMap = new Map();\n }\n\n setUrl(route?: string, title?: string, params?: object) {\n let comps: string[] = [];\n\n if (route) {\n comps = [...comps, route];\n }\n\n if (title) {\n comps = [...comps, snakeCase(title)];\n }\n\n this.urlMap.set(window.location.pathname, this.getObject(comps.join('/'), params));\n }\n\n getObject(page: string, params = {}): object {\n return { ...params, page };\n }\n\n getAnalyticsUrl() {\n return this.urlMap.get(window.location.pathname) || {};\n }\n}\n\nexport const analytics = new Analytics();\n","import { USER_ROLES } from '@acin/user-accounts';\nimport { MenuItem } from '@acin/ui-core/types/src/components/MainNavHorizontal/components/MainNavHorizontal';\n\nexport interface AppMenuItem extends MenuItem {\n permissions?: string[];\n}\n\nexport const menu: AppMenuItem[] = [\n // {\n // id: 'search',\n // label: 'Search',\n // permissions: [\n // USER_ROLES.ACIN_USER,\n // USER_ROLES.CUSTOMER_USER,\n // USER_ROLES.DATA_USER,\n // USER_ROLES.SUPER_ADMIN,\n // ],\n // },\n // {\n // id: 'dashboard',\n // label: 'Dashboard',\n // permissions: [\n // USER_ROLES.ACIN_USER,\n // USER_ROLES.CUSTOMER_USER,\n // USER_ROLES.DATA_USER,\n // USER_ROLES.SUPER_ADMIN,\n // ],\n // },\n {\n id: 'controlQualityTools',\n permissions: [\n USER_ROLES.SUPER_ADMIN,\n USER_ROLES.ACIN_QUALITY_TOOLS_USER,\n USER_ROLES.CUSTOMER_QUALITY_TOOLS_USER,\n ],\n label: 'Risk Control Quality',\n secondLevelNavigation: {\n navItems: [\n {\n label: 'Check Control Quality',\n id: 'checkControlQuality',\n },\n {\n label: 'Rewrite Control',\n id: 'rewriteControl',\n },\n ],\n },\n },\n {\n id: 'calibrate',\n permissions: [USER_ROLES.ACIN_USER, USER_ROLES.CUSTOMER_USER, USER_ROLES.DATA_USER, USER_ROLES.SUPER_ADMIN],\n label: 'Insight Reports',\n },\n {\n id: 'riskIntelligenceHub',\n permissions: [USER_ROLES.ACIN_USER, USER_ROLES.CUSTOMER_USER, USER_ROLES.DATA_USER, USER_ROLES.SUPER_ADMIN],\n label: 'Risk Intelligence',\n },\n {\n id: 'connectData',\n permissions: [USER_ROLES.SUPER_ADMIN, USER_ROLES.DATA_USER],\n label: 'Connect Data',\n },\n {\n id: 'manageAccounts',\n label: 'Manage Accounts',\n permissions: [USER_ROLES.SUPER_ADMIN],\n },\n];\n\nexport const getMenuItems = (permissions?: string[]): MenuItem[] => {\n if (!permissions) return [];\n\n const items = menu.filter((item) =>\n item.permissions?.some((itemPermissions) => permissions.includes(itemPermissions)),\n );\n\n return items.map((item) => ({ id: item.id, label: item.label, secondLevelNavigation: item.secondLevelNavigation }));\n};\n\nconst routingMap = new Map([\n ['dashboard', '/'],\n ['search', '/search'],\n ['riskIntelligence', '/risk-intelligence'],\n ['riskIntelligenceAdmin', '/risk-intelligence/admin'],\n ['riskIntelligenceHub', '/risk-intelligence/hub'],\n ['explorer', '/explorer'],\n ['calibrate', '/calibrate'],\n ['connectData', '/data-management/maintain-data'],\n ['manageAccounts', '/data-management/manage-accounts'],\n ['documents', '/documents'],\n ['notifications', '/notifications'],\n ['settings', '/settings'],\n ['upload', '/private-upload'],\n\n // Data quality page\n ['checkControlQuality', '/quality-tools/check-control-quality'],\n ['rewriteControl', '/quality-tools/rewrite-control'],\n]);\n\n// Reverse map for looking up the id from the path\nexport const reverseRoutingMap = new Map([...routingMap].map((item) => [item[1], item[0]]));\n\nexport const getPathById = (id: string) => routingMap.get(id);\nexport const getIdByPath = (path: string) => reverseRoutingMap.get(path);\n","type AssetType =\n | 'CLIENT_CONTROL'\n | 'ACIN_CONTROL'\n | 'CLIENT_RISK'\n | 'ACIN_RISK'\n | 'REG_ALERT'\n | 'NETWORK_UPDATE'\n | 'NETWORK_SCENARIO';\n\nexport const onNavigate = (id: string, type: AssetType) => {\n if (['CLIENT_CONTROL', 'ACIN_CONTROL'].includes(type)) {\n window.open(`/calibrate/control/${id}`, '_blank');\n }\n if (['CLIENT_RISK', 'ACIN_RISK'].includes(type)) {\n window.open(`/calibrate/risk/${id}`, '_blank');\n }\n if (['NETWORK_UPDATE', 'NETWORK_SCENARIO', 'REG_ALERT'].includes(type)) {\n window.open(`/risk-intelligence/${id}`, '_blank');\n }\n};\n","import { datadogRum } from '@datadog/browser-rum';\n\nexport function datadogInit() {\n if (\n process?.env?.REACT_APP_DATADOG_APPLICATION_ID &&\n process?.env?.REACT_APP_DATADOG_CLIENT_TOKEN &&\n process?.env?.REACT_APP_BUILD_ENV &&\n // initialise datadog only for 'int' and 'prod'\n ['int', 'prod'].includes(process?.env?.REACT_APP_BUILD_ENV)\n ) {\n datadogRum.init({\n applicationId: process.env.REACT_APP_DATADOG_APPLICATION_ID,\n clientToken: process.env.REACT_APP_DATADOG_CLIENT_TOKEN,\n site: 'datadoghq.eu',\n service: 'acin-terminal',\n env: process.env.REACT_APP_BUILD_ENV,\n version: '1.0.0',\n sessionSampleRate: 100,\n sessionReplaySampleRate: 100,\n trackUserInteractions: true,\n trackResources: true,\n trackLongTasks: true,\n defaultPrivacyLevel: 'mask-user-input',\n });\n }\n}\n","import React from 'react';\nimport { DownloadsList as DownloadsListComp, useToaster } from '@acin/ui-core';\n\nimport { DownloadItem } from '@acin/ui-core/types/src/components/DownloadsList/components/types';\n\nexport interface DownloadsListProps {\n onClose: () => void;\n deleteCalibrateDownload: (id: string) => void;\n allCalibrateDownloads: DownloadItem[] | undefined;\n markCalibrateAsDownloaded: (id: string) => void;\n}\n\nexport const DownloadsList: React.FC = (props) => {\n const { onClose, allCalibrateDownloads, deleteCalibrateDownload, markCalibrateAsDownloaded } = props;\n const { onAddToast } = useToaster();\n\n const handleDownloadClick = (item: DownloadItem) => {\n if (item.id && item.fileURL) {\n const openDownload = () => {\n return item.fileURL && window.open(item.fileURL, '_blank');\n };\n const newWindow = openDownload();\n\n if (!newWindow || newWindow.closed || typeof newWindow.closed == 'undefined') {\n // If the popup is blocked, show a download button\n onAddToast({\n id: `${item.id}-complete`,\n title: 'Download Blocked',\n message:\n 'Pop-ups have been disabled for this browser. Please enable pop-ups for this site to allow future downloads.',\n status: 'warning',\n actionPrimary: {\n label: 'Download Now',\n onClick: openDownload,\n },\n });\n } else {\n // If we can auto download then just say it is complete:\n onAddToast({\n id: `${item.id}-complete`,\n title: 'Download Complete',\n hideCloseButton: false,\n status: 'success',\n });\n }\n markCalibrateAsDownloaded(item.id);\n }\n };\n\n const handleDelete = (item: DownloadItem) => {\n const id = item.id;\n if (id) {\n deleteCalibrateDownload(id);\n }\n };\n\n return (\n \n );\n};\n","import styled from 'styled-components';\nimport { Modal, Text, View } from '@acin/ui-core';\n\n// This named style should be the wrapper for the component i.e. the module\nexport const UserPreferencesModal = styled(Modal)``;\n\nexport const Title = styled(Text)`\n color: ${(p) => p.theme.colors.text.getValue(1)};\n`;\n\nexport const ThumbnailWrapper = styled(View)`\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n padding-top: ${(p) => p.theme.spacing.getSize(4)};\n`;\n","import styled, { css } from 'styled-components';\nimport { Text, View } from '@acin/ui-core';\n\nexport const Thumbnail = styled.button`\n border: none;\n background: transparent;\n text-align: left;\n cursor: pointer;\n padding: 0;\n\n &:not(:first-child) {\n margin-left: ${(p) => p.theme.spacing.getSize(8)};\n }\n`;\n\nexport const SVGWrapper = styled(View)<{ isActive?: boolean }>`\n box-sizing: border-box;\n border-radius: ${(p) => p.theme.spacing.getSize()};\n display: inline-flex;\n border: 2px solid transparent;\n overflow: hidden;\n\n ${(p) =>\n p.isActive &&\n css`\n border-color: ${(p) => p.theme.colors.primary.getValue(500).main};\n `}\n`;\n\nexport const Title = styled(Text)`\n margin-top: ${(p) => p.theme.spacing.getSize(2)};\n color: ${(p) => p.theme.colors.text.getValue(1)};\n`;\n","import React from 'react';\nimport * as SC from './Thumbnail.styled';\n\nexport interface ThumbnailProps {\n isActive?: boolean;\n variant?: string;\n onClick: () => void;\n title: string;\n}\n\nexport const Thumbnail: React.FC = (props) => {\n const { isActive, variant, onClick, title } = props;\n\n const SVG = () => {\n if (variant === 'dark') {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n };\n\n return (\n \n \n \n \n \n {title}\n \n \n );\n};\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport * as Types from '../../../../graphql/generated';\n\nimport { gql } from '@apollo/client';\nimport * as Apollo from '@apollo/client';\nexport type ISetUiThemeMutationVariables = Types.Exact<{\n userId: Types.Scalars['String'];\n theme: Types.IUiTheme;\n}>;\n\nexport type ISetUiThemeMutation = {\n __typename?: 'Mutation';\n setUITheme?: Types.Maybe<{ __typename?: 'UserPreferences'; theme?: Types.Maybe }>;\n};\n\nexport const SetUiThemeDocument = gql`\n mutation setUiTheme($userId: String!, $theme: UITheme!) {\n setUITheme(userId: $userId, theme: $theme) {\n theme\n }\n }\n`;\nexport type ISetUiThemeMutationFn = Apollo.MutationFunction;\n\n/**\n * __useSetUiThemeMutation__\n *\n * To run a mutation, you first call `useSetUiThemeMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useSetUiThemeMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [setUiThemeMutation, { data, loading, error }] = useSetUiThemeMutation({\n * variables: {\n * userId: // value for 'userId'\n * theme: // value for 'theme'\n * },\n * });\n */\nexport function useSetUiThemeMutation(\n baseOptions?: Apollo.MutationHookOptions,\n) {\n return Apollo.useMutation(SetUiThemeDocument, baseOptions);\n}\nexport type SetUiThemeMutationHookResult = ReturnType;\nexport type SetUiThemeMutationResult = Apollo.MutationResult;\nexport type SetUiThemeMutationOptions = Apollo.BaseMutationOptions;\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport * as Types from '../../../../graphql/generated';\n\nimport { gql } from '@apollo/client';\nexport type IUserFragment = {\n __typename?: 'User';\n id: string;\n name: string;\n avatar?: Types.Maybe;\n account: {\n __typename?: 'Account';\n id: string;\n name: string;\n permittedRiskInventories: Array>;\n };\n preferences: { __typename?: 'UserPreferences'; theme?: Types.Maybe };\n};\n\nexport const UserFragmentDoc = gql`\n fragment User on User {\n id\n name\n avatar\n account {\n id\n name\n permittedRiskInventories {\n name\n }\n }\n preferences {\n theme\n }\n }\n`;\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport * as Types from '../../../../graphql/generated';\n\nimport { IUserFragment } from '../fragments/user.generated';\nimport { gql } from '@apollo/client';\nimport { UserFragmentDoc } from '../fragments/user.generated';\nimport * as Apollo from '@apollo/client';\nexport type IMeQueryVariables = Types.Exact<{ [key: string]: never; }>;\n\n\nexport type IMeQuery = { __typename?: 'Query', me: (\n { __typename?: 'User' }\n & IUserFragment\n ) };\n\n\nexport const MeDocument = gql`\n query me {\n me {\n ...User\n }\n}\n ${UserFragmentDoc}`;\n\n/**\n * __useMeQuery__\n *\n * To run a query within a React component, call `useMeQuery` and pass it any options that fit your needs.\n * When your component renders, `useMeQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useMeQuery({\n * variables: {\n * },\n * });\n */\nexport function useMeQuery(baseOptions?: Apollo.QueryHookOptions) {\n return Apollo.useQuery(MeDocument, baseOptions);\n }\nexport function useMeLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) {\n return Apollo.useLazyQuery(MeDocument, baseOptions);\n }\nexport type MeQueryHookResult = ReturnType;\nexport type MeLazyQueryHookResult = ReturnType;\nexport type MeQueryResult = Apollo.QueryResult;","export type Maybe = T | null;\nexport type Exact = { [K in keyof T]: T[K] };\nexport type FieldWrapper = T;\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: string;\n String: string;\n Boolean: boolean;\n Int: number;\n Float: number;\n};\n\nexport type IAccount = {\n __typename?: 'Account';\n id: FieldWrapper;\n name: FieldWrapper;\n code?: Maybe>;\n users: Array>>;\n status?: Maybe>;\n permittedRiskInventories: Array>>;\n availableMatchers: Array>;\n availableApprovers: Array>;\n defaultMatcher?: Maybe>;\n defaultApprover?: Maybe>;\n dataMatcher: Array>;\n riskInventories: Array>;\n};\n\nexport type IAccountRiskInventory = {\n __typename?: 'AccountRiskInventory';\n id: FieldWrapper;\n name: FieldWrapper;\n description?: Maybe>;\n sourceId: FieldWrapper;\n accounts: Array>>;\n};\n\nexport type IAddAccountInput = {\n name: Scalars['String'];\n code?: Maybe;\n};\n\nexport type IAddUserInput = {\n name: Scalars['String'];\n email: Scalars['String'];\n accountId: Scalars['ID'];\n};\n\nexport type IRole = {\n __typename?: 'Role';\n id: FieldWrapper;\n name: FieldWrapper;\n description?: Maybe>;\n};\n\nexport type ISearchAccountsInput = {\n term?: Maybe;\n riskInventoryIds?: Maybe>;\n};\n\nexport type ISearchAccountsPage = {\n __typename?: 'SearchAccountsPage';\n totalAccounts: FieldWrapper;\n nodes: Array>;\n};\n\nexport enum IUiTheme {\n Default = 'DEFAULT',\n Dark = 'DARK'\n}\n\nexport type IUpdateAccountInput = {\n name: Scalars['String'];\n};\n\nexport type IUpdateUserInput = {\n name?: Maybe;\n accountId: Scalars['ID'];\n email?: Maybe;\n};\n\nexport type IUser = {\n __typename?: 'User';\n id: FieldWrapper;\n name: FieldWrapper;\n email: FieldWrapper;\n permissions?: Maybe>>>;\n avatar?: Maybe>;\n accountId?: Maybe>;\n account: FieldWrapper;\n preferences: FieldWrapper;\n};\n\nexport type IUserInvitationInput = {\n email: Scalars['String'];\n};\n\nexport type IUserPreferences = {\n __typename?: 'UserPreferences';\n theme?: Maybe>;\n};\n\nexport type ICalibrateDownloadFile = {\n __typename?: 'CalibrateDownloadFile';\n id: FieldWrapper;\n filename: FieldWrapper;\n type: FieldWrapper;\n status: FieldWrapper;\n progressPercentage?: Maybe>;\n fileURL?: Maybe>;\n contentType?: Maybe>;\n};\n\nexport enum ICalibrateDownloadFileStatus {\n Progress = 'PROGRESS',\n Failure = 'FAILURE',\n Processed = 'PROCESSED',\n Downloaded = 'DOWNLOADED'\n}\n\nexport type ICalibrateReportInput = {\n title?: Maybe;\n variant: ITableVariant;\n configuration?: Maybe>;\n filters?: Maybe;\n};\n\nexport type IDownloadFile = {\n __typename?: 'DownloadFile';\n id: FieldWrapper;\n fileURL?: Maybe>;\n status: FieldWrapper;\n contentType: FieldWrapper;\n};\n\nexport enum IDownloadFileType {\n Csv = 'CSV',\n Excel = 'EXCEL'\n}\n\nexport enum IDownloadStatus {\n Pending = 'PENDING',\n Complete = 'COMPLETE',\n Failed = 'FAILED'\n}\n\nexport type IFilterInput = {\n groups?: Maybe>;\n};\n\nexport type IFilterInputGroup = {\n groupKey: Scalars['String'];\n filterValues: Array;\n};\n\nexport type IFilterInputValue = {\n value: Scalars['String'];\n label?: Maybe;\n sublabel?: Maybe;\n};\n\nexport enum ITableVariant {\n Instance = 'INSTANCE',\n Distinct = 'DISTINCT'\n}\n\nexport enum IApprovalWorkflow {\n Dashboard = 'DASHBOARD',\n SubmitReview = 'SUBMIT_REVIEW',\n Unassigned = 'UNASSIGNED'\n}\n\nexport type IApproveMatchAcinControlMatchInput = {\n acinControlId?: Maybe;\n internalComment?: Maybe;\n externalComment?: Maybe;\n status: IDataMatchingMatchStatus;\n};\n\nexport type IApproveRejectMatchAcinControlInput = {\n dataMatcherId: Scalars['ID'];\n dataMatcherClientControlId: Scalars['ID'];\n matches: Array;\n};\n\nexport type IApproveRejectMissingAcinControlInput = {\n dataMatcherId: Scalars['ID'];\n acinControlId: Scalars['ID'];\n internalComment?: Maybe;\n externalComment?: Maybe;\n status: IDataMatchingMatchStatus;\n};\n\nexport type IColorPalette = {\n __typename?: 'ColorPalette';\n paletteIndex?: Maybe>;\n shade?: Maybe>;\n};\n\nexport type ICreateDataMatcherInput = {\n accountId: Scalars['ID'];\n fileId: Scalars['ID'];\n riskInventoryId: Scalars['ID'];\n matcherId: Scalars['ID'];\n approverId: Scalars['ID'];\n};\n\nexport enum IDataFormat {\n Number = 'NUMBER',\n DateTime = 'DATE_TIME',\n Text = 'TEXT'\n}\n\nexport type IDataMatcher = {\n __typename?: 'DataMatcher';\n id: FieldWrapper;\n riskInventory: FieldWrapper;\n matchers: Array>;\n approvers: Array>;\n account: FieldWrapper;\n matchCounts: FieldWrapper;\n assignedTo: FieldWrapper;\n matchingStatus: FieldWrapper;\n totalUnassignedNetworkControls: FieldWrapper;\n nextWorkflow?: Maybe>;\n availableFilters: FieldWrapper;\n file: FieldWrapper;\n};\n\nexport type IDataMatcherAcinControl = {\n __typename?: 'DataMatcherAcinControl';\n id: FieldWrapper;\n control: FieldWrapper;\n status: FieldWrapper;\n reasonCode: FieldWrapper;\n missing?: Maybe>;\n};\n\nexport type IDataMatcherAcinControlPreliminaryMissing = {\n __typename?: 'DataMatcherAcinControlPreliminaryMissing';\n internalComment?: Maybe>>;\n externalComment?: Maybe>;\n status: FieldWrapper;\n approvedRejectedAt?: Maybe>;\n};\n\nexport type IDataMatcherAcinControlSuggestion = {\n __typename?: 'DataMatcherAcinControlSuggestion';\n id: FieldWrapper;\n control: FieldWrapper;\n matchScore?: Maybe>;\n reasonCode: FieldWrapper;\n totalInventoryMatches?: Maybe>;\n};\n\nexport enum IDataMatcherAssignedTo {\n Matcher = 'MATCHER',\n Approver = 'APPROVER'\n}\n\nexport type IDataMatcherClientControl = {\n __typename?: 'DataMatcherClientControl';\n id: FieldWrapper;\n control: FieldWrapper;\n status: FieldWrapper;\n totalInternalComments: FieldWrapper;\n totalMatchedAcinControls: FieldWrapper;\n totalInventoryMatches?: Maybe>;\n matchScore?: Maybe>;\n relationshipCount?: Maybe>;\n matches?: Maybe>>;\n};\n\nexport type IDataMatcherClientControlHistoricalAcinMatch = {\n __typename?: 'DataMatcherClientControlHistoricalAcinMatch';\n name?: Maybe>;\n code?: Maybe>;\n reasonCode: FieldWrapper;\n};\n\nexport type IDataMatcherClientControlMatchingHistory = {\n __typename?: 'DataMatcherClientControlMatchingHistory';\n activeRiskInventory?: Maybe>;\n otherRiskInventories?: Maybe>>;\n};\n\nexport type IDataMatcherClientControlMatchingHistoryGroup = {\n __typename?: 'DataMatcherClientControlMatchingHistoryGroup';\n date: FieldWrapper;\n matches: Array>;\n};\n\nexport type IDataMatcherClientControlMatchingHistoryInput = {\n dataMatcherClientControlId: Scalars['String'];\n dataMatcherId: Scalars['String'];\n};\n\nexport type IDataMatcherClientControlSuggestion = {\n __typename?: 'DataMatcherClientControlSuggestion';\n id: FieldWrapper;\n control: FieldWrapper;\n matchScore?: Maybe>;\n reasonCode: FieldWrapper;\n};\n\nexport type IDataMatcherComment = {\n __typename?: 'DataMatcherComment';\n id: FieldWrapper;\n user: FieldWrapper;\n comment: FieldWrapper;\n createdAt: FieldWrapper;\n};\n\nexport type IDataMatcherControl = IDataMatcherClientControl | IDataMatcherAcinControl;\n\nexport type IDataMatcherMatches = {\n __typename?: 'DataMatcherMatches';\n total: FieldWrapper;\n matched: FieldWrapper;\n approved: FieldWrapper;\n rejected: FieldWrapper;\n};\n\nexport type IDataMatcherMatchingWorkflow = IDataMatchingControlsWorkflow;\n\nexport type IDataMatcherMatchRecord = {\n __typename?: 'DataMatcherMatchRecord';\n id: FieldWrapper;\n reasonCode: FieldWrapper;\n matchedAcinControl?: Maybe>;\n internalComment?: Maybe>>;\n externalComment?: Maybe>;\n status: FieldWrapper;\n approvedRejectedAt?: Maybe>;\n};\n\nexport type IDataMatcherMatchScore = {\n __typename?: 'DataMatcherMatchScore';\n score: FieldWrapper;\n highlight: FieldWrapper;\n};\n\nexport type IDataMatcherRiskInventoryMatchingHistory = {\n __typename?: 'DataMatcherRiskInventoryMatchingHistory';\n riskInventory: FieldWrapper;\n matchingHistory: Array>;\n};\n\nexport type IDataMatcherTab = {\n __typename?: 'DataMatcherTab';\n id: FieldWrapper;\n dataMatching: FieldWrapper;\n count: FieldWrapper;\n};\n\nexport type IDataMatcherUploadedClientControl = {\n __typename?: 'DataMatcherUploadedClientControl';\n id: FieldWrapper;\n title: FieldWrapper;\n description?: Maybe>;\n objectives?: Maybe>;\n controlCode: FieldWrapper;\n controlType?: Maybe>;\n controlOwner?: Maybe>;\n controlFrequency?: Maybe>;\n};\n\nexport type IDataMatchingAcinControlPage = {\n __typename?: 'DataMatchingAcinControlPage';\n sortInfo: FieldWrapper;\n totalResults: FieldWrapper;\n nodes: Array>;\n availableFilters: FieldWrapper;\n};\n\nexport type IDataMatchingAcinControlPageInput = {\n dataMatcherClientControlId: Scalars['ID'];\n dataMatcherId: Scalars['ID'];\n sort?: Maybe;\n};\n\nexport type IDataMatchingControlsWorkflow = {\n __typename?: 'DataMatchingControlsWorkflow';\n controlView: FieldWrapper;\n summaryView: FieldWrapper;\n};\n\n\nexport type IDataMatchingControlsWorkflowControlViewArgs = {\n sort?: Maybe;\n};\n\n\nexport type IDataMatchingControlsWorkflowSummaryViewArgs = {\n sort?: Maybe;\n};\n\nexport type IDataMatchingControlsWorkflowControlsPage = {\n __typename?: 'DataMatchingControlsWorkflowControlsPage';\n totalResults: FieldWrapper;\n nodes: Array>;\n};\n\nexport type IDataMatchingControlsWorkflowControlView = {\n __typename?: 'DataMatchingControlsWorkflowControlView';\n sortInfo: FieldWrapper;\n controls: FieldWrapper;\n matchedMissingAcinControls?: Maybe>>>;\n};\n\nexport type IDataMatchingControlsWorkflowSummaryView = {\n __typename?: 'DataMatchingControlsWorkflowSummaryView';\n sortInfo: FieldWrapper;\n rows: Array>;\n};\n\nexport type IDataMatchingControlsWorkflowSummaryViewRow = IDataMatchingControlsWorkflowSummaryViewRowOneToOne | IDataMatchingControlsWorkflowSummaryViewRowManyToOne | IDataMatchingControlsWorkflowSummaryViewRowManyToMany;\n\nexport type IDataMatchingControlsWorkflowSummaryViewRowManyToMany = {\n __typename?: 'DataMatchingControlsWorkflowSummaryViewRowManyToMany';\n groupName: FieldWrapper;\n items: Array>;\n relationshipCount?: Maybe>;\n};\n\nexport type IDataMatchingControlsWorkflowSummaryViewRowManyToOne = {\n __typename?: 'DataMatchingControlsWorkflowSummaryViewRowManyToOne';\n group: FieldWrapper;\n items: Array>;\n relationshipCount?: Maybe>;\n};\n\nexport type IDataMatchingControlsWorkflowSummaryViewRowOneToOne = {\n __typename?: 'DataMatchingControlsWorkflowSummaryViewRowOneToOne';\n item: FieldWrapper;\n};\n\nexport type IDataMatchingFile = {\n __typename?: 'DataMatchingFile';\n id: FieldWrapper;\n name: FieldWrapper;\n status: FieldWrapper;\n getIssues?: Maybe>;\n createdAt: FieldWrapper;\n updatedAt: FieldWrapper;\n};\n\nexport enum IDataMatchingMatchStatus {\n Unmatched = 'UNMATCHED',\n Matched = 'MATCHED',\n Rejected = 'REJECTED',\n Approved = 'APPROVED'\n}\n\nexport type IDataMatchingRelationshipCount = {\n __typename?: 'DataMatchingRelationshipCount';\n to: FieldWrapper;\n from: FieldWrapper;\n};\n\nexport enum IDataMatchingStatus {\n Todo = 'TODO',\n InProgress = 'IN_PROGRESS',\n Complete = 'COMPLETE'\n}\n\nexport type IDataMatchingUnassignedAcinControls = {\n __typename?: 'DataMatchingUnassignedAcinControls';\n acinControls: Array>;\n};\n\nexport type IDataMatchingUnassignedAcinControlsSuggestionsInput = {\n acinControlId: Scalars['ID'];\n dataMatcherId: Scalars['ID'];\n sort?: Maybe;\n};\n\nexport type IDataMatchingUnassignedAcinControlsSuggestionsPage = {\n __typename?: 'DataMatchingUnassignedAcinControlsSuggestionsPage';\n sortInfo: FieldWrapper;\n totalResults: FieldWrapper;\n nodes: Array>;\n};\n\nexport type IDataMatchingUploadsPage = {\n __typename?: 'DataMatchingUploadsPage';\n pageInfo: FieldWrapper;\n sortInfo: FieldWrapper;\n nodes: Array>;\n};\n\nexport type IDataMatchingUploadsPageInput = {\n pagination?: Maybe;\n sort?: Maybe;\n};\n\nexport type IDataTable = {\n __typename?: 'DataTable';\n headers: Array>;\n rows: Array>;\n};\n\nexport type IDataTableField = {\n __typename?: 'DataTableField';\n key: FieldWrapper;\n value?: Maybe>;\n};\n\nexport type IDataTableHeader = {\n __typename?: 'DataTableHeader';\n key: FieldWrapper;\n name: FieldWrapper;\n sortable: FieldWrapper;\n direction?: Maybe>;\n format?: Maybe>;\n};\n\nexport type IDataTableRow = {\n __typename?: 'DataTableRow';\n fields: Array>;\n meta?: Maybe>;\n};\n\nexport type IDataTableRowMeta = {\n __typename?: 'DataTableRowMeta';\n raw?: Maybe>>;\n};\n\nexport type IDataTableRowMetaValue = {\n __typename?: 'DataTableRowMetaValue';\n key: FieldWrapper;\n value: FieldWrapper;\n};\n\nexport enum IFileUploadStatus {\n Uploaded = 'UPLOADED',\n Processing = 'PROCESSING',\n Completed = 'COMPLETED',\n UnsupportedFile = 'UNSUPPORTED_FILE',\n Error = 'ERROR',\n CompletedWithWarnings = 'COMPLETED_WITH_WARNINGS'\n}\n\nexport type IFilterCheckboxListInputType = {\n __typename?: 'FilterCheckboxListInputType';\n inputType: FieldWrapper;\n options: Array>;\n};\n\nexport type IFilterDropdownInputType = {\n __typename?: 'FilterDropdownInputType';\n inputType: FieldWrapper;\n options: Array>;\n placeholder?: Maybe>;\n};\n\nexport type IFilterGroup = {\n __typename?: 'FilterGroup';\n key: FieldWrapper;\n label?: Maybe>;\n filterInput: FieldWrapper;\n};\n\nexport enum IFilterGroupInputType {\n Dropdown = 'DROPDOWN',\n Tags = 'TAGS',\n Checkbox = 'CHECKBOX',\n Range = 'RANGE'\n}\n\nexport type IFilterInputTypes = IFilterDropdownInputType | IFilterTagsInputType | IFilterCheckboxListInputType | IFilterRangeInputType;\n\nexport type IFilterItem = {\n __typename?: 'FilterItem';\n key: FieldWrapper;\n label: FieldWrapper;\n code?: Maybe>;\n};\n\nexport type IFilterRange = {\n __typename?: 'FilterRange';\n min: FieldWrapper;\n max: FieldWrapper;\n};\n\nexport type IFilterRangeInputType = {\n __typename?: 'FilterRangeInputType';\n inputType: FieldWrapper;\n tagLabel?: Maybe>;\n tagUnit?: Maybe>;\n range: FieldWrapper;\n description: FieldWrapper;\n};\n\nexport type IFilters = {\n __typename?: 'Filters';\n groups: Array>;\n};\n\nexport type IFilterTagsInputType = {\n __typename?: 'FilterTagsInputType';\n inputType: FieldWrapper;\n options: Array>;\n};\n\nexport type IMatchAcinControlInput = {\n dataMatcherId: Scalars['ID'];\n dataMatcherClientControlId: Scalars['ID'];\n matches: Array;\n};\n\nexport type IMatchAcinControlMatchInput = {\n matchId?: Maybe;\n reasonCode: Scalars['String'];\n acinControlId?: Maybe;\n internalComment?: Maybe;\n externalComment?: Maybe;\n};\n\nexport type IMatchClientControlMatchInput = {\n reasonCode: Scalars['String'];\n dataMatcherUploadedClientControlId?: Maybe;\n internalComment?: Maybe;\n externalComment?: Maybe;\n};\n\nexport type IMatchUnassignedClientControlInput = {\n dataMatcherId: Scalars['ID'];\n acinControlId: Scalars['ID'];\n matches: Array;\n};\n\nexport type IPageInfo = {\n __typename?: 'PageInfo';\n page: FieldWrapper;\n pageSize: FieldWrapper;\n totalResults: FieldWrapper;\n totalPages: FieldWrapper;\n hasNextPage: FieldWrapper;\n range?: Maybe>;\n subPage?: Maybe>;\n subPageSize?: Maybe>;\n hasNextSubPage?: Maybe>;\n totalSubPageResults?: Maybe>;\n};\n\nexport type IPaginationInput = {\n page: Scalars['Int'];\n pageSize?: Maybe;\n subPage?: Maybe;\n subPageSize?: Maybe;\n};\n\nexport type IReasonCode = {\n __typename?: 'ReasonCode';\n id: FieldWrapper;\n codeType: FieldWrapper;\n shortName: FieldWrapper;\n longName: FieldWrapper;\n clientFacingName: FieldWrapper;\n riskInventories: Array>;\n colorPalette?: Maybe>;\n};\n\nexport enum IReasonCodeType {\n A = 'A',\n B = 'B',\n C = 'C',\n R = 'R'\n}\n\nexport type IRiskInventoryHistory = {\n __typename?: 'RiskInventoryHistory';\n id: FieldWrapper;\n name: FieldWrapper;\n};\n\nexport enum ISortDirection {\n Asc = 'ASC',\n Desc = 'DESC'\n}\n\nexport type ISortField = {\n __typename?: 'SortField';\n field: FieldWrapper;\n direction: FieldWrapper;\n label: FieldWrapper;\n};\n\nexport type ISortInfo = {\n __typename?: 'SortInfo';\n sort: FieldWrapper;\n available: Array>;\n};\n\nexport type ISortInput = {\n direction: ISortDirection;\n field: Scalars['String'];\n};\n\nexport type IUnresolvedMatchingInfo = {\n __typename?: 'UnresolvedMatchingInfo';\n remainingApprovers: Array>;\n nextWorkflow?: Maybe>;\n};\n\nexport type IAcinControlsByRisk = {\n __typename?: 'AcinControlsByRisk';\n id: FieldWrapper;\n keyStats?: Maybe>>;\n availableFilters?: Maybe>;\n filters: FieldWrapper;\n risks?: Maybe>;\n};\n\n\nexport type IAcinControlsByRiskRisksArgs = {\n filters?: Maybe;\n};\n\nexport type IAvailableChart = {\n __typename?: 'AvailableChart';\n id: FieldWrapper;\n type: FieldWrapper;\n name: FieldWrapper;\n};\n\nexport type IAvailableCompletenessReport = {\n __typename?: 'AvailableCompletenessReport';\n id: FieldWrapper;\n name: FieldWrapper;\n count: FieldWrapper;\n};\n\nexport type IBenchmarkOverview = {\n __typename?: 'BenchmarkOverview';\n networkAlignmentScore: FieldWrapper;\n networkAlignmentMaxScore: FieldWrapper;\n charts: Array>;\n};\n\nexport enum IChart_Value_Format {\n Months = 'MONTHS',\n Number = 'NUMBER'\n}\n\nexport type IChartKey = {\n __typename?: 'ChartKey';\n label: FieldWrapper;\n key?: Maybe>;\n description?: Maybe>;\n count?: Maybe>;\n colorPalette?: Maybe>;\n};\n\nexport type IClientControlsByRisk = {\n __typename?: 'ClientControlsByRisk';\n id: FieldWrapper;\n keyStats?: Maybe>>;\n availableFilters?: Maybe>;\n filters: FieldWrapper;\n risks?: Maybe>;\n};\n\n\nexport type IClientControlsByRiskRisksArgs = {\n filters?: Maybe;\n};\n\nexport enum IColorPaletteName {\n DataVis = 'DATA_VIS',\n DataVisWithMeaning = 'DATA_VIS_WITH_MEANING'\n}\n\nexport type ICompletenessOverTimeCategory = {\n __typename?: 'CompletenessOverTimeCategory';\n id: FieldWrapper;\n count: FieldWrapper;\n colorPalette: FieldWrapper;\n label: FieldWrapper;\n percentage: FieldWrapper;\n};\n\nexport type ICompletenessOverTimeChartData = {\n __typename?: 'CompletenessOverTimeChartData';\n id: FieldWrapper;\n colorLibrary: FieldWrapper;\n date: FieldWrapper;\n total: FieldWrapper;\n categories: Array>;\n};\n\nexport type ICompletenessOverTimeComparison = {\n __typename?: 'CompletenessOverTimeComparison';\n id: FieldWrapper;\n count: FieldWrapper;\n colorPalette: FieldWrapper;\n label: FieldWrapper;\n percentage: FieldWrapper;\n trend?: Maybe>;\n comparisonCount?: Maybe>;\n comparisonPercentage?: Maybe>;\n};\n\nexport type ICompletenessOverTimeComparisonTable = {\n __typename?: 'CompletenessOverTimeComparisonTable';\n totalCount: FieldWrapper;\n totalPercentage: FieldWrapper;\n categories: Array>>;\n};\n\nexport type ICompletenessOverTimeInput = {\n filters?: Maybe;\n};\n\nexport type ICompletenessOverTimeReport = {\n __typename?: 'CompletenessOverTimeReport';\n id: FieldWrapper;\n};\n\nexport type ICompletenessOverTimeReportResult = {\n __typename?: 'CompletenessOverTimeReportResult';\n chart: Array>;\n table: FieldWrapper;\n availableFilters?: Maybe>;\n};\n\nexport type ICompletenessReport = {\n __typename?: 'CompletenessReport';\n id: FieldWrapper;\n configurationTitle?: Maybe>;\n availableConfiguration?: Maybe>;\n useNewTemplate?: Maybe>;\n};\n\nexport type ICompletenessReportControlListPage = {\n __typename?: 'CompletenessReportControlListPage';\n title: FieldWrapper;\n subTitle: FieldWrapper;\n groups: Array>;\n};\n\nexport type ICompletenessReportControlListPageGroup = {\n __typename?: 'CompletenessReportControlListPageGroup';\n id: FieldWrapper;\n title: FieldWrapper;\n subTitle?: Maybe>;\n count: FieldWrapper;\n subGroups: Array>;\n};\n\nexport type ICompletenessReportControlListPageSubGroup = {\n __typename?: 'CompletenessReportControlListPageSubGroup';\n id: FieldWrapper;\n key?: Maybe>;\n title: FieldWrapper;\n description: FieldWrapper;\n count: FieldWrapper;\n colorPalette?: Maybe>;\n data: Array>;\n};\n\nexport type ICompletenessReportResult = {\n __typename?: 'CompletenessReportResult';\n id: FieldWrapper;\n availableFilters?: Maybe>;\n tableChart?: Maybe>;\n controlList?: Maybe>;\n availableReports?: Maybe>>>;\n preventExport?: Maybe>;\n filters: FieldWrapper;\n};\n\nexport type ICompletenessReportResultTableChart = {\n __typename?: 'CompletenessReportResultTableChart';\n chartTitle: FieldWrapper;\n chart: FieldWrapper;\n};\n\nexport type IControl = IAcinControl | IClientControl;\n\nexport type IControlAlignmentOverviewChart = {\n __typename?: 'ControlAlignmentOverviewChart';\n id: FieldWrapper;\n name: FieldWrapper;\n description: FieldWrapper;\n requiresClarificationKey: FieldWrapper;\n data: Array>;\n};\n\nexport type IControlAlignmentOverviewChartCollection = {\n __typename?: 'ControlAlignmentOverviewChartCollection';\n name?: Maybe>;\n totalControls: FieldWrapper;\n items: Array>;\n};\n\nexport type IControlAlignmentOverviewChartValue = {\n __typename?: 'ControlAlignmentOverviewChartValue';\n name: FieldWrapper;\n description: FieldWrapper;\n total: FieldWrapper;\n colorPalette: FieldWrapper;\n collection: Array>;\n};\n\nexport type IControlListPageGroupings = ICompletenessReportControlListPageGroup | ICompletenessReportControlListPageSubGroup;\n\nexport type ICreateReportInput = {\n name: Scalars['String'];\n description: Scalars['String'];\n shareWithOrganisation: Scalars['Boolean'];\n configuration: IFilterInput;\n filters?: Maybe;\n};\n\nexport type IDrillDownInfo = {\n __typename?: 'DrillDownInfo';\n id?: Maybe>;\n configuration?: Maybe>>;\n filters?: Maybe>>;\n};\n\nexport type IExportStatusReportInput = {\n type: IDownloadFileType;\n};\n\nexport type IExportTemplateQueryInput = {\n type: IDownloadFileType;\n};\n\nexport type IFilterGroupV2 = {\n __typename?: 'FilterGroupV2';\n label?: Maybe>;\n availableFilters: Array>;\n};\n\nexport type IFilterListVariant = {\n __typename?: 'FilterListVariant';\n searchPlaceholder?: Maybe>;\n filterGroups: Array>;\n appliedFilters: Array>;\n appliedFiltersCount: FieldWrapper;\n};\n\nexport type IFilterPayload = {\n __typename?: 'FilterPayload';\n groups?: Maybe>>;\n};\n\nexport type IFilterPayloadInputGroup = {\n __typename?: 'FilterPayloadInputGroup';\n groupKey: FieldWrapper;\n filterValues: Array>;\n label?: Maybe>;\n};\n\nexport type IFilterPayloadValue = {\n __typename?: 'FilterPayloadValue';\n value: FieldWrapper;\n label?: Maybe>;\n sublabel?: Maybe>;\n};\n\nexport type IFilterRangeVariant = {\n __typename?: 'FilterRangeVariant';\n range: FieldWrapper;\n activeRange?: Maybe>;\n};\n\nexport type IFilterResponse = {\n __typename?: 'FilterResponse';\n allFilters: Array>;\n exposedFilterIds: Array>;\n};\n\nexport enum IFilterType {\n List = 'LIST',\n RadioList = 'RADIO_LIST',\n GroupList = 'GROUP_LIST',\n Range = 'RANGE'\n}\n\nexport type IFilterV2 = {\n __typename?: 'FilterV2';\n id: FieldWrapper;\n code: FieldWrapper;\n type: FieldWrapper;\n label: FieldWrapper;\n description?: Maybe>;\n info?: Maybe>;\n attributes: FieldWrapper;\n};\n\nexport type IFilterVariant = IFilterListVariant | IFilterRangeVariant;\n\nexport type IKeyStat = {\n __typename?: 'KeyStat';\n value?: Maybe>;\n label: FieldWrapper;\n isPercentage?: Maybe>;\n};\n\nexport type INetworkAlignmentScoreProgress = {\n __typename?: 'NetworkAlignmentScoreProgress';\n name: FieldWrapper;\n colorPaletteName: FieldWrapper;\n value?: Maybe>;\n min: FieldWrapper;\n max: FieldWrapper;\n formatter: FieldWrapper;\n extendedMin: FieldWrapper;\n extendedMax: FieldWrapper;\n maxAxisTicks?: Maybe>;\n};\n\nexport type IReportCollection = {\n __typename?: 'ReportCollection';\n tabId: FieldWrapper;\n groups: Array>;\n reportCount: FieldWrapper;\n};\n\nexport type IRisk = IClientRisk | IAcinRisk;\n\nexport type IRiskAlignmentOverviewChart = {\n __typename?: 'RiskAlignmentOverviewChart';\n id: FieldWrapper;\n name: FieldWrapper;\n description: FieldWrapper;\n keys: Array>;\n data: Array>;\n};\n\nexport type IRiskAlignmentOverviewChartCollection = {\n __typename?: 'RiskAlignmentOverviewChartCollection';\n name?: Maybe>;\n totalRisks: FieldWrapper;\n items: Array>;\n};\n\nexport type IRiskAlignmentOverviewChartValue = {\n __typename?: 'RiskAlignmentOverviewChartValue';\n name: FieldWrapper;\n description: FieldWrapper;\n total: FieldWrapper;\n colorPalette: FieldWrapper;\n collection: Array>;\n};\n\nexport type ISecondaryBarChartValue = {\n __typename?: 'SecondaryBarChartValue';\n text: FieldWrapper;\n isAcin?: Maybe>;\n};\n\nexport enum ISentiment {\n Positive = 'POSITIVE',\n Neutral = 'NEUTRAL',\n Negative = 'NEGATIVE'\n}\n\nexport type IStatusReport = {\n __typename?: 'StatusReport';\n id: FieldWrapper;\n availableCharts: Array>;\n benchmarkOverview: FieldWrapper;\n};\n\nexport type IStatusReportChart = IControlAlignmentOverviewChart | IRiskAlignmentOverviewChart;\n\nexport type ITableRefresherBarChart = {\n __typename?: 'TableRefresherBarChart';\n id?: Maybe>;\n chartTitle?: Maybe>;\n negativeKeys: Array>;\n positiveKeys: Array>;\n data: Array>;\n nameHeader: FieldWrapper;\n valueHeader: FieldWrapper;\n secondaryHeader?: Maybe>;\n hideLegend?: Maybe>;\n};\n\nexport type ITableRefresherBarChartGroup = {\n __typename?: 'TableRefresherBarChartGroup';\n id: FieldWrapper;\n name: FieldWrapper;\n showName?: Maybe>;\n filters?: Maybe>;\n secondaryValue?: Maybe>;\n values: Array>;\n info?: Maybe>;\n};\n\nexport type ITableRefresherBarChartHeader = {\n __typename?: 'TableRefresherBarChartHeader';\n sortable: FieldWrapper;\n name: FieldWrapper;\n key: FieldWrapper;\n direction?: Maybe>;\n};\n\nexport type ITableRefresherBarChartValue = {\n __typename?: 'TableRefresherBarChartValue';\n key: FieldWrapper;\n name: FieldWrapper;\n total: FieldWrapper;\n percentage?: Maybe>;\n id?: Maybe>;\n info?: Maybe>;\n};\n\nexport type ITemplateGroup = {\n __typename?: 'TemplateGroup';\n id: FieldWrapper;\n title: FieldWrapper;\n description: FieldWrapper;\n lockedGroup: FieldWrapper;\n nodes: Array>;\n};\n\nexport type ITemplateQuery = {\n __typename?: 'TemplateQuery';\n id: FieldWrapper;\n date: FieldWrapper;\n favourite: FieldWrapper;\n title: FieldWrapper;\n description: FieldWrapper;\n lockedQuery: FieldWrapper;\n comparison: FieldWrapper;\n result?: Maybe>;\n activeFilters?: Maybe>;\n activeConfiguration?: Maybe>;\n author?: Maybe>;\n shared: FieldWrapper;\n};\n\n\nexport type ITemplateQueryResultArgs = {\n input?: Maybe;\n};\n\nexport type ITemplateQueryResult = IClientControlsByRisk | IStatusReport | IAcinControlsByRisk | ICompletenessReport | ICompletenessOverTimeReport;\n\nexport type ITemplateQueryResultInput = {\n filters?: Maybe;\n};\n\nexport type IUpdateReportInput = {\n name?: Maybe;\n description?: Maybe;\n shareWithOrganisation?: Maybe;\n configuration?: Maybe;\n filters?: Maybe;\n};\n\nexport type IValidateReportNameInput = {\n reportName: Scalars['String'];\n reportId?: Maybe;\n isSharable: Scalars['Boolean'];\n};\n\nexport type IValidateReportNameResult = {\n __typename?: 'ValidateReportNameResult';\n isValid: FieldWrapper;\n message?: Maybe>;\n};\n\nexport type IBubbleChart = {\n __typename?: 'BubbleChart';\n colorPaletteName: FieldWrapper;\n series: Array>;\n keys: Array>;\n};\n\nexport type IBubbleChartSeries = {\n __typename?: 'BubbleChartSeries';\n itemId?: Maybe>;\n label: FieldWrapper;\n values: Array>;\n type?: Maybe>;\n};\n\nexport enum IBubbleChartShape {\n Circle = 'CIRCLE',\n Diamond = 'DIAMOND'\n}\n\nexport type IBubbleChartValue = {\n __typename?: 'BubbleChartValue';\n shape: FieldWrapper;\n colorPalette?: Maybe>;\n value: FieldWrapper;\n size?: Maybe>;\n label: FieldWrapper;\n description?: Maybe>>;\n};\n\nexport type IDashboardControlAlignment = {\n __typename?: 'DashboardControlAlignment';\n title: FieldWrapper;\n subTitle: FieldWrapper;\n chart?: Maybe>;\n};\n\nexport type IDashboardControlsByRiskInput = {\n filters?: Maybe;\n};\n\nexport enum IDashboardItemType {\n AcinControl = 'ACIN_CONTROL',\n ClientControl = 'CLIENT_CONTROL',\n AcinRisk = 'ACIN_RISK',\n ClientRisk = 'CLIENT_RISK'\n}\n\nexport type IDashboardNetworkAlignment = {\n __typename?: 'DashboardNetworkAlignment';\n title: FieldWrapper;\n chart?: Maybe>;\n};\n\nexport type IDonutChart = {\n __typename?: 'DonutChart';\n colorPaletteName: FieldWrapper;\n values: Array>;\n};\n\nexport type IDonutChartValue = {\n __typename?: 'DonutChartValue';\n label: FieldWrapper;\n filterPayload?: Maybe>;\n value: FieldWrapper;\n colorPalette?: Maybe>;\n type?: Maybe>;\n};\n\nexport type IFeedInsight = {\n __typename?: 'FeedInsight';\n id: FieldWrapper;\n type: FieldWrapper;\n criteria: FieldWrapper;\n createdAt: FieldWrapper;\n reason: Array>;\n description: FieldWrapper;\n metrics: Array>;\n};\n\nexport type IFeedInsightsPage = {\n __typename?: 'FeedInsightsPage';\n nodes: Array>;\n};\n\nexport type IHorizontalDumbbellPlotChart = {\n __typename?: 'HorizontalDumbbellPlotChart';\n colorPaletteName: FieldWrapper;\n mean?: Maybe>;\n rangeKey: FieldWrapper;\n valueKey: FieldWrapper;\n values: Array>;\n};\n\nexport type IHorizontalDumbbellPlotChartRange = {\n __typename?: 'HorizontalDumbbellPlotChartRange';\n rangeStart: FieldWrapper;\n rangeEnd: FieldWrapper;\n};\n\nexport type IHorizontalDumbbellPlotChartValue = {\n __typename?: 'HorizontalDumbbellPlotChartValue';\n label: FieldWrapper;\n value: FieldWrapper;\n range: FieldWrapper;\n};\n\nexport type IInsightMetric = {\n __typename?: 'InsightMetric';\n type: FieldWrapper;\n values: Array>;\n};\n\nexport enum IInsightMetricType {\n ETrading = 'E_TRADING',\n CrossAsset = 'CROSS_ASSET',\n AssetClass = 'ASSET_CLASS',\n Continuity = 'CONTINUITY',\n ControlImpact = 'CONTROL_IMPACT',\n Rating = 'RATING',\n All = 'ALL'\n}\n\nexport type IInsightMetricValue = {\n __typename?: 'InsightMetricValue';\n id: FieldWrapper;\n title: FieldWrapper;\n value?: Maybe>;\n};\n\nexport type IInsightReason = {\n __typename?: 'InsightReason';\n id: FieldWrapper;\n title: FieldWrapper;\n};\n\nexport enum IInsightType {\n RatingIncrease = 'RATING_INCREASE',\n RatingDecrease = 'RATING_DECREASE',\n NewControl = 'NEW_CONTROL',\n NewRisk = 'NEW_RISK'\n}\n\nexport type IAcinControl = {\n __typename?: 'AcinControl';\n id: FieldWrapper;\n title: FieldWrapper;\n description: FieldWrapper;\n objectives: FieldWrapper;\n review?: Maybe>;\n identify?: Maybe>;\n actions?: Maybe>;\n controlSource: FieldWrapper;\n controlType: FieldWrapper;\n controlOwner: FieldWrapper;\n controlFrequency: FieldWrapper;\n controlCode: FieldWrapper;\n relatedRegulations: Array>;\n relatedRiskInventories: Array>;\n totalRelatedRiskInventories: FieldWrapper;\n totalRelatedRegulations: FieldWrapper;\n updatedAt: FieldWrapper;\n riskInventory?: Maybe>;\n reasonCode?: Maybe>;\n automation?: Maybe>;\n keywords: Array>;\n products: Array>;\n relatedRisks: Array>;\n nss?: Maybe>;\n};\n\nexport type IAcinRisk = {\n __typename?: 'AcinRisk';\n id: FieldWrapper;\n title: FieldWrapper;\n riskCode: FieldWrapper;\n riskSource: FieldWrapper;\n description?: Maybe>;\n riskGroup: FieldWrapper;\n updatedAt: FieldWrapper;\n controlCount: FieldWrapper;\n relatedReasonCodes: Array>;\n relatedRiskIntelligence: Array>;\n relatedRegulations: Array>;\n relatedControls: Array>;\n relatedRiskInventories: Array>;\n};\n\nexport type IAcinRiskGroup = {\n __typename?: 'AcinRiskGroup';\n id: FieldWrapper;\n name: FieldWrapper;\n risks: Array>;\n};\n\nexport type IAcinRiskPage = {\n __typename?: 'AcinRiskPage';\n sortInfo: FieldWrapper;\n nodes: Array>;\n};\n\nexport type IActiveChartItem = {\n label?: Maybe;\n key?: Maybe;\n};\n\nexport type IAlertMessage = {\n __typename?: 'AlertMessage';\n title: FieldWrapper;\n message?: Maybe>;\n type: FieldWrapper;\n};\n\nexport enum IAlertMessageType {\n Info = 'INFO',\n Warning = 'WARNING',\n Success = 'SUCCESS',\n Danger = 'DANGER'\n}\n\nexport type IBusinessLine = {\n __typename?: 'BusinessLine';\n id: FieldWrapper;\n title: FieldWrapper;\n};\n\nexport type IChartBreadcrumb = {\n __typename?: 'ChartBreadcrumb';\n id: FieldWrapper;\n label: FieldWrapper;\n configuration: Array>;\n filters?: Maybe>>;\n};\n\nexport type IChartBreadcrumbInput = {\n id: Scalars['String'];\n label: Scalars['String'];\n configuration: Array;\n filters?: Maybe>;\n};\n\nexport type IChartData = ITableRefresherBarChart;\n\nexport type IChartFiltersResult = {\n __typename?: 'ChartFiltersResult';\n levels?: Maybe>;\n};\n\nexport type IChartInput = {\n configuration?: Maybe>;\n filters?: Maybe;\n breadcrumb?: Maybe>;\n};\n\nexport type IChartResult = {\n __typename?: 'ChartResult';\n title?: Maybe>;\n charts?: Maybe>>;\n breadcrumb?: Maybe>>;\n};\n\nexport type IClientControl = {\n __typename?: 'ClientControl';\n id: FieldWrapper;\n title: FieldWrapper;\n description?: Maybe>;\n objectives?: Maybe>;\n controlCode?: Maybe>;\n controlSource?: Maybe>;\n controlType?: Maybe>;\n controlOwner?: Maybe>;\n controlFrequency?: Maybe>;\n controlId?: Maybe>;\n updatedAt?: Maybe>;\n riskInventory?: Maybe>;\n reasonCode?: Maybe>;\n relatedRiskInventories: Array>;\n totalRelatedRiskInventories: FieldWrapper;\n automation?: Maybe>;\n keywords: Array>;\n relatedRisks: Array>;\n relatedBusinessLines: Array>;\n};\n\nexport type IClientControlData = {\n __typename?: 'ClientControlData';\n nodes: Array>;\n};\n\nexport type IClientRisk = {\n __typename?: 'ClientRisk';\n id: FieldWrapper;\n title: FieldWrapper;\n description?: Maybe>;\n riskCode?: Maybe>;\n riskLevel?: Maybe>;\n riskReason?: Maybe>;\n riskSource?: Maybe>;\n controlCount: FieldWrapper;\n updatedAt?: Maybe>;\n relatedReasonCodes: Array>;\n relatedRiskIntelligence: Array>;\n relatedControls: Array>;\n relatedBusinessLines: Array>;\n};\n\nexport type IClientRiskPage = {\n __typename?: 'ClientRiskPage';\n sortInfo: FieldWrapper;\n nodes: Array>;\n};\n\nexport type ICompareControl = ICompareControlOneToOne | ICompareControlOneToMany | ICompareControlManyToOne | ICompareEmpty;\n\nexport type ICompareControlManyToOne = {\n __typename?: 'CompareControlManyToOne';\n id: FieldWrapper;\n controlsA?: Maybe>>;\n controlB?: Maybe>;\n message?: Maybe>;\n};\n\nexport type ICompareControlOneToMany = {\n __typename?: 'CompareControlOneToMany';\n id: FieldWrapper;\n controlA?: Maybe>;\n controlsB?: Maybe>>;\n message?: Maybe>;\n};\n\nexport type ICompareControlOneToOne = {\n __typename?: 'CompareControlOneToOne';\n id: FieldWrapper;\n controlA?: Maybe>;\n controlB?: Maybe>;\n highlightedFields: Array>;\n message?: Maybe>;\n};\n\nexport type ICompareControlPage = {\n __typename?: 'CompareControlPage';\n availableRiskInventories?: Maybe>>;\n activeRiskInventory?: Maybe>;\n compare?: Maybe>;\n relationshipInsightContext?: Maybe>;\n};\n\nexport type ICompareEmpty = {\n __typename?: 'CompareEmpty';\n id: FieldWrapper;\n message?: Maybe>;\n};\n\nexport type ICompareRisk = ICompareRiskOneToMany | ICompareRiskManyToOne | ICompareEmpty;\n\nexport type ICompareRiskManyToOne = {\n __typename?: 'CompareRiskManyToOne';\n id: FieldWrapper;\n risksA?: Maybe>>;\n riskB?: Maybe>;\n message?: Maybe>;\n};\n\nexport type ICompareRiskOneToMany = {\n __typename?: 'CompareRiskOneToMany';\n id: FieldWrapper;\n riskA?: Maybe>;\n risksB?: Maybe>>;\n message?: Maybe>;\n};\n\nexport type IControlComparisonDataInput = {\n id: Scalars['String'];\n relationshipType: Scalars['String'];\n relationshipInstanceId: Scalars['String'];\n};\n\nexport type IControlHistory = {\n __typename?: 'ControlHistory';\n nodes: Array>;\n activeSorting?: Maybe>;\n pagination?: Maybe>;\n};\n\nexport type IControlHistoryAttributeChange = {\n __typename?: 'ControlHistoryAttributeChange';\n isLatest?: Maybe>;\n value?: Maybe>;\n};\n\nexport type IControlHistoryInput = {\n id: Scalars['ID'];\n pagination?: Maybe;\n sorting?: Maybe;\n};\n\nexport type IControlHistoryTable = {\n __typename?: 'ControlHistoryTable';\n id?: Maybe>;\n date?: Maybe>;\n riskInventoryName?: Maybe>;\n attributeChange?: Maybe>;\n};\n\nexport type IControlInspectorView = {\n __typename?: 'ControlInspectorView';\n id: FieldWrapper;\n compare?: Maybe>;\n};\n\nexport type IControlInstanceOptionsInput = {\n id: Scalars['String'];\n insightBy: IFilterInputGroup;\n};\n\nexport type IGetRiskDataInput = {\n ids: Array;\n sort?: Maybe;\n};\n\nexport type IKeyword = {\n __typename?: 'Keyword';\n id: FieldWrapper;\n code: FieldWrapper;\n name: FieldWrapper;\n count: FieldWrapper;\n items: Array>;\n};\n\nexport type IKeywordItem = {\n __typename?: 'KeywordItem';\n id: FieldWrapper;\n name: FieldWrapper;\n};\n\nexport type INetworkSignalScore = {\n __typename?: 'NetworkSignalScore';\n score: FieldWrapper;\n total?: Maybe>;\n highlight: FieldWrapper;\n};\n\nexport type IRegulation = {\n __typename?: 'Regulation';\n id: FieldWrapper;\n name: FieldWrapper;\n regulator: FieldWrapper;\n articles?: Maybe>>;\n};\n\nexport type IRegulator = {\n __typename?: 'Regulator';\n id: FieldWrapper;\n name: FieldWrapper;\n regulations: Array>;\n allArticles: Array>;\n};\n\nexport type IRegulatoryArticle = {\n __typename?: 'RegulatoryArticle';\n id: FieldWrapper;\n name: FieldWrapper;\n url?: Maybe>;\n};\n\nexport type IRelationshipInsight = {\n __typename?: 'RelationshipInsight';\n name: FieldWrapper;\n description: FieldWrapper;\n};\n\nexport type IRelationshipInsightContext = {\n __typename?: 'RelationshipInsightContext';\n colorPalette: FieldWrapper;\n insight?: Maybe>;\n externalComment?: Maybe>;\n};\n\nexport type IRiskAnalysisResult = {\n __typename?: 'RiskAnalysisResult';\n id: FieldWrapper;\n chart: FieldWrapper;\n controlList: FieldWrapper;\n};\n\nexport type IRiskDetailsControlList = ICompletenessReportControlListPageGroup;\n\nexport type IRiskInventory = {\n __typename?: 'RiskInventory';\n id: FieldWrapper;\n name: FieldWrapper;\n};\n\nexport type ISearchAcinControlsInput = {\n term?: Maybe;\n riskInventoryIds?: Maybe>;\n};\n\nexport type ISearchAcinControlsPage = {\n __typename?: 'SearchAcinControlsPage';\n totalAvailableControls: FieldWrapper;\n nodes: Array>;\n};\n\nexport type ISearchAcinRisksInput = {\n term?: Maybe;\n riskInventoryIds?: Maybe>;\n};\n\nexport type ISearchAcinRisksPage = {\n __typename?: 'SearchAcinRisksPage';\n nodes: Array>;\n};\n\nexport type ISearchRegulatorInput = {\n term?: Maybe;\n};\n\nexport type ISearchRegulatorsPage = {\n __typename?: 'SearchRegulatorsPage';\n nodes: Array>;\n};\n\nexport type ISearchRiskInventoriesInput = {\n term?: Maybe;\n};\n\nexport type ISearchRiskInventoriesPage = {\n __typename?: 'SearchRiskInventoriesPage';\n nodes: Array>;\n};\n\nexport type ITable = {\n __typename?: 'Table';\n headers?: Maybe>;\n rows: Array>;\n};\n\nexport type ITableCell = {\n __typename?: 'TableCell';\n id: FieldWrapper;\n key: FieldWrapper;\n text?: Maybe>;\n count?: Maybe>;\n content?: Maybe>;\n info?: Maybe>;\n};\n\nexport type ITableCellContent = ITableInsightCategory | INetworkSignalScore | ITableInsightCounts;\n\nexport type ITableCellInfo = {\n __typename?: 'TableCellInfo';\n showAcinLogo?: Maybe>;\n isAcin?: Maybe>;\n isLink?: Maybe>;\n id?: Maybe>;\n entityId?: Maybe>;\n type?: Maybe>;\n businessOrgId?: Maybe>;\n riskInventoryId?: Maybe>;\n};\n\nexport type ITableHeader = {\n __typename?: 'TableHeader';\n variant: FieldWrapper;\n cells?: Maybe>>;\n};\n\nexport enum ITableHeaderType {\n Outer = 'OUTER',\n Inner = 'INNER'\n}\n\nexport type ITableInput = {\n id?: Maybe;\n variant: ITableVariant;\n configuration?: Maybe>;\n filters?: Maybe;\n pagination?: Maybe;\n};\n\nexport type ITableInsightCategory = {\n __typename?: 'TableInsightCategory';\n id: FieldWrapper;\n label: FieldWrapper;\n colorPalette: FieldWrapper;\n};\n\nexport type ITableInsightCountItem = {\n __typename?: 'TableInsightCountItem';\n label: FieldWrapper;\n count: FieldWrapper;\n colorPalette: FieldWrapper;\n};\n\nexport type ITableInsightCounts = {\n __typename?: 'TableInsightCounts';\n nodes: Array>;\n};\n\nexport type ITableResult = {\n __typename?: 'TableResult';\n id: FieldWrapper;\n table: FieldWrapper;\n pagination?: Maybe>;\n};\n\nexport type ITableRow = {\n __typename?: 'TableRow';\n id: FieldWrapper;\n variant: FieldWrapper;\n cells: Array>;\n rows?: Maybe>>;\n table?: Maybe>;\n};\n\nexport enum ITableRowType {\n Grandparent = 'GRANDPARENT',\n Parent = 'PARENT',\n Child = 'CHILD'\n}\n\nexport type IRelatedRiskIntelligence = IRiskIntelligence & {\n __typename?: 'RelatedRiskIntelligence';\n id: FieldWrapper;\n publishDate: FieldWrapper;\n title: FieldWrapper;\n type: FieldWrapper;\n createdAt: FieldWrapper;\n description: FieldWrapper;\n content: FieldWrapper;\n authorTitle: FieldWrapper;\n hasAnalyticsData: FieldWrapper;\n lockedInventoryGroup?: Maybe>;\n favourite: FieldWrapper;\n impact: FieldWrapper;\n};\n\nexport type IRiskIntelligence = {\n id: FieldWrapper;\n publishDate: FieldWrapper;\n title: FieldWrapper;\n type: FieldWrapper;\n createdAt: FieldWrapper;\n description: FieldWrapper;\n content: FieldWrapper;\n authorTitle: FieldWrapper;\n hasAnalyticsData: FieldWrapper;\n lockedInventoryGroup?: Maybe>;\n favourite: FieldWrapper;\n impact: FieldWrapper;\n};\n\nexport type IRiskIntelligenceAdminOverviewPage = {\n __typename?: 'RiskIntelligenceAdminOverviewPage';\n data?: Maybe>;\n};\n\nexport type IRiskIntelligenceAffectedData = {\n __typename?: 'RiskIntelligenceAffectedData';\n riskInventories?: Maybe>>;\n controls?: Maybe>>;\n risks?: Maybe>>;\n accounts?: Maybe>>;\n};\n\nexport type IRiskIntelligenceAffectedDataInput = {\n riskInventories?: Maybe>;\n risks?: Maybe>;\n controls?: Maybe>;\n accounts?: Maybe>;\n};\n\nexport type IRiskIntelligenceAnalysisInput = {\n riskIntelId: Scalars['ID'];\n filter?: Maybe;\n};\n\nexport type IRiskIntelligenceAnalysisPage = {\n __typename?: 'RiskIntelligenceAnalysisPage';\n id: FieldWrapper;\n defaultFilters?: Maybe>;\n availableFilters?: Maybe>;\n availableReports: Array>;\n content?: Maybe>;\n};\n\n\nexport type IRiskIntelligenceAnalysisPageContentArgs = {\n input?: Maybe;\n};\n\nexport type IRiskIntelligenceAnalysisReport = {\n __typename?: 'RiskIntelligenceAnalysisReport';\n id: FieldWrapper;\n name: FieldWrapper;\n count: FieldWrapper;\n};\n\nexport type IRiskIntelligenceAnalysisReportInput = {\n reportId?: Maybe;\n filter?: Maybe;\n};\n\nexport type IRiskIntelligenceAnalyticsControlListGroup = {\n __typename?: 'RiskIntelligenceAnalyticsControlListGroup';\n title: FieldWrapper;\n description: FieldWrapper;\n count: FieldWrapper;\n colorPalette?: Maybe>;\n blocks: Array>;\n};\n\nexport type IRiskIntelligenceAnalyticsControlListInput = {\n riskIntelId: Scalars['ID'];\n filter?: Maybe;\n};\n\nexport type IRiskIntelligenceAnalyticsControlListPage = {\n __typename?: 'RiskIntelligenceAnalyticsControlListPage';\n risk?: Maybe>;\n title?: Maybe>;\n subTitle?: Maybe>;\n groups: Array>;\n};\n\nexport type IRiskIntelligenceAnalyticsControlListSubGroup = {\n __typename?: 'RiskIntelligenceAnalyticsControlListSubGroup';\n title?: Maybe>;\n data: Array>;\n};\n\nexport type IRiskIntelligenceArticle = {\n id: FieldWrapper;\n publishDate?: Maybe>;\n title: FieldWrapper;\n type: FieldWrapper;\n createdAt: FieldWrapper;\n description?: Maybe>;\n content?: Maybe>;\n incidentType?: Maybe>;\n sources: Array>;\n regulations?: Maybe>>;\n affectedData: FieldWrapper;\n};\n\nexport type IRiskIntelligenceArticleRegulation = {\n __typename?: 'RiskIntelligenceArticleRegulation';\n regulator?: Maybe>;\n regulation?: Maybe>;\n regulationArticle?: Maybe>;\n};\n\nexport type IRiskIntelligenceHubFilters = {\n __typename?: 'RiskIntelligenceHubFilters';\n availableFilters?: Maybe>;\n};\n\nexport type IRiskIntelligenceImpact = {\n __typename?: 'RiskIntelligenceImpact';\n totalImpactedRisks: FieldWrapper;\n totalImpactedControls: FieldWrapper;\n totalImpactedRiskInventories: FieldWrapper;\n totalImpactedBusinessLines: FieldWrapper;\n};\n\nexport type IRiskIntelligenceInput = {\n filters?: Maybe;\n sorting?: Maybe;\n pagination?: Maybe;\n};\n\nexport type IRiskIntelligenceLockedInventoryGroup = {\n __typename?: 'RiskIntelligenceLockedInventoryGroup';\n nodes: Array>;\n};\n\nexport type IRiskIntelligenceLockedInventoryGroupItem = {\n __typename?: 'RiskIntelligenceLockedInventoryGroupItem';\n id: FieldWrapper;\n riskInventory: FieldWrapper;\n totalImpactedAcinControls: FieldWrapper;\n};\n\nexport type IRiskIntelligenceNetworkScenario = IRiskIntelligence & {\n __typename?: 'RiskIntelligenceNetworkScenario';\n id: FieldWrapper;\n publishDate: FieldWrapper;\n title: FieldWrapper;\n type: FieldWrapper;\n createdAt: FieldWrapper;\n description: FieldWrapper;\n content: FieldWrapper;\n authorTitle: FieldWrapper;\n incidentType: FieldWrapper;\n sources: Array>;\n regulations: Array>;\n impact: FieldWrapper;\n lockedInventoryGroup?: Maybe>;\n favourite: FieldWrapper;\n hasAnalyticsData: FieldWrapper;\n};\n\nexport type IRiskIntelligenceNetworkScenarioArticle = IRiskIntelligenceArticle & {\n __typename?: 'RiskIntelligenceNetworkScenarioArticle';\n id: FieldWrapper;\n publishDate?: Maybe>;\n title: FieldWrapper;\n type: FieldWrapper;\n createdAt: FieldWrapper;\n description?: Maybe>;\n content?: Maybe>;\n incidentType?: Maybe>;\n sources: Array>;\n regulations?: Maybe>>;\n affectedData: FieldWrapper;\n};\n\nexport type IRiskIntelligenceNetworkScenarioArticleInput = {\n publishDate: Scalars['String'];\n title: Scalars['String'];\n description: Scalars['String'];\n incidentType: Scalars['String'];\n sources: Array;\n regulations?: Maybe>;\n affectedData: IRiskIntelligenceAffectedDataInput;\n content: Scalars['String'];\n};\n\nexport type IRiskIntelligenceNetworkScenarioDraftArticleInput = {\n publishDate?: Maybe;\n title: Scalars['String'];\n description?: Maybe;\n incidentType?: Maybe;\n sources: Array;\n regulations?: Maybe>;\n affectedData: IRiskIntelligenceAffectedDataInput;\n content?: Maybe;\n};\n\nexport type IRiskIntelligenceNetworkUpdate = IRiskIntelligence & {\n __typename?: 'RiskIntelligenceNetworkUpdate';\n id: FieldWrapper;\n publishDate: FieldWrapper;\n title: FieldWrapper;\n type: FieldWrapper;\n createdAt: FieldWrapper;\n description: FieldWrapper;\n content: FieldWrapper;\n authorTitle: FieldWrapper;\n incidentType?: Maybe>;\n status: FieldWrapper;\n sources: Array>;\n regulations: Array>;\n impact: FieldWrapper;\n hasAnalyticsData: FieldWrapper;\n lockedInventoryGroup?: Maybe>;\n favourite: FieldWrapper;\n};\n\nexport type IRiskIntelligenceNetworkUpdateArticle = IRiskIntelligenceArticle & {\n __typename?: 'RiskIntelligenceNetworkUpdateArticle';\n id: FieldWrapper;\n publishDate?: Maybe>;\n title: FieldWrapper;\n type: FieldWrapper;\n createdAt: FieldWrapper;\n description?: Maybe>;\n content?: Maybe>;\n incidentType?: Maybe>;\n sources: Array>;\n regulations?: Maybe>>;\n affectedData: FieldWrapper;\n};\n\nexport type IRiskIntelligenceNetworkUpdateArticleInput = {\n publishDate: Scalars['String'];\n title: Scalars['String'];\n description: Scalars['String'];\n incidentType?: Maybe;\n sources: Array;\n regulations?: Maybe>;\n affectedData: IRiskIntelligenceAffectedDataInput;\n content: Scalars['String'];\n};\n\nexport type IRiskIntelligenceNetworkUpdateDraftArticleInput = {\n publishDate?: Maybe;\n title: Scalars['String'];\n description?: Maybe;\n incidentType?: Maybe;\n sources: Array;\n regulations?: Maybe>;\n affectedData: IRiskIntelligenceAffectedDataInput;\n content?: Maybe;\n};\n\nexport type IRiskIntelligencePage = {\n __typename?: 'RiskIntelligencePage';\n pagination?: Maybe>;\n nodes: Array>;\n activeSorting?: Maybe>;\n unfilteredTotal?: Maybe>;\n};\n\nexport type IRiskIntelligenceRegulation = {\n __typename?: 'RiskIntelligenceRegulation';\n regulator?: Maybe>;\n regulation?: Maybe>;\n regulationArticles: Array>;\n};\n\nexport type IRiskIntelligenceRegulationInput = {\n regulatorId?: Maybe;\n regulationId?: Maybe;\n regulationArticleId?: Maybe;\n};\n\nexport type IRiskIntelligenceRegulatoryAlert = IRiskIntelligence & {\n __typename?: 'RiskIntelligenceRegulatoryAlert';\n id: FieldWrapper;\n publishDate: FieldWrapper;\n title: FieldWrapper;\n type: FieldWrapper;\n createdAt: FieldWrapper;\n description: FieldWrapper;\n content: FieldWrapper;\n authorTitle: FieldWrapper;\n incidentType: FieldWrapper;\n sources: Array>;\n regulations: Array>;\n impact: FieldWrapper;\n favourite: FieldWrapper;\n hasAnalyticsData: FieldWrapper;\n lockedInventoryGroup?: Maybe>;\n originalPublishDate: FieldWrapper;\n originalLastUpdated: FieldWrapper;\n classification: FieldWrapper;\n};\n\nexport type IRiskIntelligenceRegulatoryAlertArticle = IRiskIntelligenceArticle & {\n __typename?: 'RiskIntelligenceRegulatoryAlertArticle';\n id: FieldWrapper;\n publishDate?: Maybe>;\n title: FieldWrapper;\n type: FieldWrapper;\n createdAt: FieldWrapper;\n description?: Maybe>;\n content?: Maybe>;\n incidentType?: Maybe>;\n sources: Array>;\n regulations?: Maybe>>;\n affectedData: FieldWrapper;\n originalPublishDate?: Maybe>;\n originalLastUpdated?: Maybe>;\n classification?: Maybe>;\n};\n\nexport type IRiskIntelligenceRegulatoryAlertArticleInput = {\n publishDate: Scalars['String'];\n title: Scalars['String'];\n description: Scalars['String'];\n incidentType: Scalars['String'];\n sources: Array;\n regulations: Array;\n affectedData: IRiskIntelligenceAffectedDataInput;\n content: Scalars['String'];\n originalPublishDate: Scalars['String'];\n originalLastUpdated: Scalars['String'];\n classification: Scalars['String'];\n};\n\nexport type IRiskIntelligenceRegulatoryAlertDraftArticleInput = {\n publishDate?: Maybe;\n title: Scalars['String'];\n description?: Maybe;\n incidentType?: Maybe;\n sources: Array;\n regulations?: Maybe>;\n affectedData: IRiskIntelligenceAffectedDataInput;\n content?: Maybe;\n originalPublishDate?: Maybe;\n originalLastUpdated?: Maybe;\n classification?: Maybe;\n};\n\nexport type IRiskIntelligenceSource = {\n __typename?: 'RiskIntelligenceSource';\n label?: Maybe>;\n url: FieldWrapper;\n};\n\nexport type IRiskIntelligenceSourceInput = {\n label?: Maybe;\n url: Scalars['String'];\n};\n\nexport type IRiskIntelligenceTableItem = {\n __typename?: 'RiskIntelligenceTableItem';\n id: FieldWrapper;\n publishDate: FieldWrapper;\n title: FieldWrapper;\n type: FieldWrapper;\n impact: FieldWrapper;\n favourite: FieldWrapper;\n};\n\nexport enum IRiskIntelligenceType {\n NetworkScenario = 'NetworkScenario',\n RegulatoryAlert = 'RegulatoryAlert',\n NetworkUpdate = 'NetworkUpdate'\n}\n\nexport type ITag = {\n __typename?: 'Tag';\n name: FieldWrapper;\n};\n\nexport enum IInspectorIdType {\n Control = 'Control'\n}\n\nexport type IInspectorInput = {\n id: Scalars['ID'];\n idType: IInspectorIdType;\n};\n\nexport type IInspectorPage = {\n __typename?: 'InspectorPage';\n content?: Maybe>;\n};\n\nexport type IInspectorPageView = IControlInspectorView;\n\nexport type IExamplePaginationItem = {\n __typename?: 'ExamplePaginationItem';\n id: FieldWrapper;\n title: FieldWrapper;\n description: FieldWrapper;\n value: FieldWrapper;\n};\n\nexport type IItemsPerPageOption = {\n __typename?: 'ItemsPerPageOption';\n value: FieldWrapper;\n label: FieldWrapper;\n};\n\nexport type IMockedPaginationResults = {\n __typename?: 'MockedPaginationResults';\n pagination: FieldWrapper;\n nodes: Array>;\n};\n\nexport type IExample = {\n __typename?: 'Example';\n id: FieldWrapper;\n title: FieldWrapper;\n content: FieldWrapper;\n};\n\nexport type IExampleInput = {\n title: Scalars['String'];\n content: Scalars['String'];\n};\n\nexport type IGlobalSearchResult = {\n __typename?: 'GlobalSearchResult';\n id: FieldWrapper;\n text: FieldWrapper;\n assetType: FieldWrapper;\n};\n\nexport enum IGlobalSearchResultType {\n ClientControl = 'CLIENT_CONTROL',\n AcinControl = 'ACIN_CONTROL',\n ClientRisk = 'CLIENT_RISK',\n AcinRisk = 'ACIN_RISK',\n RegAlert = 'REG_ALERT',\n NetworkUpdate = 'NETWORK_UPDATE',\n NetworkScenario = 'NETWORK_SCENARIO'\n}\n\nexport type IProduct = {\n __typename?: 'Product';\n id: FieldWrapper;\n label: FieldWrapper;\n type: FieldWrapper;\n};\n\nexport type IProductInput = {\n type?: Maybe;\n};\n\nexport type IProductPage = {\n __typename?: 'ProductPage';\n nodes: Array>;\n};\n\nexport enum IProductType {\n Asset = 'ASSET',\n Trading = 'TRADING',\n Instrument = 'INSTRUMENT',\n Settlement = 'SETTLEMENT'\n}\n\nexport type IAllReportsInput = {\n filters?: Maybe;\n sorting?: Maybe;\n pagination?: Maybe;\n searchTerm?: Maybe;\n};\n\nexport type IAllReportsPage = {\n __typename?: 'AllReportsPage';\n nodes: Array>;\n pagination?: Maybe>;\n activeSorting?: Maybe>;\n unfilteredTotal?: Maybe>;\n};\n\nexport type IConfiguratorOptionsInput = {\n filters?: Maybe>;\n};\n\nexport type IConfiguratorOptionsLabels = {\n __typename?: 'ConfiguratorOptionsLabels';\n groupKey: FieldWrapper;\n label: FieldWrapper;\n};\n\nexport type IConfiguratorReportInput = {\n name: Scalars['String'];\n description: Scalars['String'];\n shareWithOrganisation: Scalars['Boolean'];\n configuration?: Maybe>;\n filters?: Maybe;\n table?: Maybe;\n};\n\nexport type IConfiguratorReportResult = {\n __typename?: 'ConfiguratorReportResult';\n id: FieldWrapper;\n name: FieldWrapper;\n description?: Maybe>;\n shareWithOrganisation?: Maybe>;\n configuration?: Maybe>>;\n filters?: Maybe>;\n table?: Maybe>;\n configuratorLabels: Array>;\n author?: Maybe>;\n};\n\nexport type IConfiguratorReportTableOptions = {\n __typename?: 'ConfiguratorReportTableOptions';\n variant?: Maybe>;\n};\n\nexport type IConfiguratorReportTableOptionsInput = {\n variant?: Maybe;\n};\n\nexport enum IReadPermission {\n Private = 'PRIVATE',\n Organisation = 'ORGANISATION'\n}\n\nexport type IReport = {\n __typename?: 'Report';\n id: FieldWrapper;\n title: FieldWrapper;\n description: FieldWrapper;\n favourite?: Maybe>;\n createdAt: FieldWrapper;\n lastViewedDate?: Maybe>;\n author: FieldWrapper;\n visibility: FieldWrapper;\n isConfiguratorReport?: Maybe>;\n};\n\nexport type IUpdateConfiguratorReportInput = {\n name?: Maybe;\n description?: Maybe;\n shareWithOrganisation?: Maybe;\n configuration?: Maybe>;\n filters?: Maybe;\n table?: Maybe;\n};\n\nexport type IQuery = {\n __typename?: 'Query';\n getAccounts: Array>;\n searchAccounts: FieldWrapper;\n getUsers: Array>;\n getAccount: FieldWrapper;\n getUser: FieldWrapper;\n getRoles?: Maybe>>;\n me: FieldWrapper;\n getAllCalibrateDownloads?: Maybe>>;\n getDownloadFileByIds: Array>;\n getDataMatchingAccounts: Array>;\n getDataMatchingUploads: FieldWrapper;\n getDataMatchingTabs: Array>;\n getDataMatcherById?: Maybe>;\n getDataMatchingControlsWorkflowAcinControls: FieldWrapper;\n getDataMatchingControlsWorkflowUnassignedAcinControls: FieldWrapper;\n getDataMatchingControlsWorkflowUnassignedAcinControlsSuggestions: FieldWrapper;\n getDataMatcherClientControlMatchingHistory?: Maybe>;\n getUnresolvedMatchingInfo: FieldWrapper;\n getDataMatchingUploadById?: Maybe>;\n getTemplateQueries: Array>;\n getTemplateQueryById?: Maybe>;\n getCompletenessReportResults: FieldWrapper;\n getCompletenessReportResultsByRiskIntelId: FieldWrapper;\n validateReportName: FieldWrapper;\n getCompletenessOverTime: FieldWrapper;\n getStatusReportChart?: Maybe>;\n getFeedInsights: FieldWrapper;\n getDashboardControlAlignment: FieldWrapper;\n getDashboardNetworkAlignment: FieldWrapper;\n getControlsByInventorySummary: FieldWrapper;\n searchAcinControls: FieldWrapper;\n getAcinControlById: FieldWrapper;\n getControlData: FieldWrapper;\n getClientControlById: FieldWrapper;\n getClientControlByIds?: Maybe>>;\n getControlById?: Maybe>;\n searchRiskInventories: FieldWrapper;\n searchRegulators: FieldWrapper;\n getControlInstanceOptions: FieldWrapper;\n getClientRisks: FieldWrapper;\n getClientRiskById: FieldWrapper;\n getRiskById?: Maybe>;\n getRiskAnalysisById: FieldWrapper;\n searchAcinRisks: FieldWrapper;\n getBusinessLineById: FieldWrapper;\n getBusinessLineByIds?: Maybe>>;\n getComparisonByControlId?: Maybe>;\n getComparisonByRiskId?: Maybe>;\n getControlComparisonData: FieldWrapper;\n getControlHistory: FieldWrapper;\n getCompletenessControlTable: FieldWrapper;\n getTable: FieldWrapper;\n getChart: FieldWrapper;\n getChartFilters: FieldWrapper;\n getRiskIntelligence: FieldWrapper;\n getRiskIntelligenceById: FieldWrapper;\n getHighestExposureRiskIntelligence: FieldWrapper;\n getTrendingRiskIntelligence: FieldWrapper;\n getRiskIntelligenceHubFilters: FieldWrapper;\n getRiskIntelligenceAdminOverviewPage?: Maybe>;\n getRiskIntelNetworkScenarioArticle: FieldWrapper;\n getRiskIntelRegulatoryAlertArticle: FieldWrapper;\n getRiskIntelNetworkUpdateArticle: FieldWrapper;\n getRiskIntelArticleById: FieldWrapper;\n getRiskIntelligenceAnalyticsById: FieldWrapper;\n getRiskIntelligenceAnalyticsControlList?: Maybe>;\n inspect: FieldWrapper;\n getPaginationItemsPerPage: Array>;\n getMockedPaginationResults: FieldWrapper;\n examples: Array>;\n getGlobalSearchResults: Array>;\n getProducts?: Maybe>;\n getProductById?: Maybe>;\n getAllReports: FieldWrapper;\n getAllReportsFilters: FieldWrapper;\n getConfiguratorOptions: Array>;\n getConfiguratorFilterOptions: FieldWrapper;\n getConfiguratorReportById?: Maybe>;\n};\n\n\nexport type IQuerySearchAccountsArgs = {\n input?: Maybe;\n};\n\n\nexport type IQueryGetAccountArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type IQueryGetUserArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type IQueryGetRolesArgs = {\n userId?: Maybe;\n};\n\n\nexport type IQueryGetDownloadFileByIdsArgs = {\n ids: Array;\n};\n\n\nexport type IQueryGetDataMatchingUploadsArgs = {\n input?: Maybe;\n};\n\n\nexport type IQueryGetDataMatchingTabsArgs = {\n input?: Maybe;\n};\n\n\nexport type IQueryGetDataMatcherByIdArgs = {\n id: Scalars['String'];\n filterInput?: Maybe;\n};\n\n\nexport type IQueryGetDataMatchingControlsWorkflowAcinControlsArgs = {\n input: IDataMatchingAcinControlPageInput;\n filterInput: IFilterInput;\n};\n\n\nexport type IQueryGetDataMatchingControlsWorkflowUnassignedAcinControlsArgs = {\n dataMatcherId: Scalars['ID'];\n};\n\n\nexport type IQueryGetDataMatchingControlsWorkflowUnassignedAcinControlsSuggestionsArgs = {\n input: IDataMatchingUnassignedAcinControlsSuggestionsInput;\n};\n\n\nexport type IQueryGetDataMatcherClientControlMatchingHistoryArgs = {\n input: IDataMatcherClientControlMatchingHistoryInput;\n};\n\n\nexport type IQueryGetUnresolvedMatchingInfoArgs = {\n id: Scalars['String'];\n};\n\n\nexport type IQueryGetDataMatchingUploadByIdArgs = {\n id: Scalars['String'];\n};\n\n\nexport type IQueryGetTemplateQueriesArgs = {\n filters?: Maybe;\n};\n\n\nexport type IQueryGetTemplateQueryByIdArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type IQueryGetCompletenessReportResultsArgs = {\n configuration: IFilterInput;\n filters?: Maybe;\n reportId?: Maybe;\n};\n\n\nexport type IQueryGetCompletenessReportResultsByRiskIntelIdArgs = {\n id: Scalars['ID'];\n reportId?: Maybe;\n filters?: Maybe;\n};\n\n\nexport type IQueryValidateReportNameArgs = {\n validateReportNameInput: IValidateReportNameInput;\n};\n\n\nexport type IQueryGetCompletenessOverTimeArgs = {\n input?: Maybe;\n};\n\n\nexport type IQueryGetStatusReportChartArgs = {\n id: Scalars['String'];\n};\n\n\nexport type IQuerySearchAcinControlsArgs = {\n input?: Maybe;\n};\n\n\nexport type IQueryGetAcinControlByIdArgs = {\n id: Scalars['String'];\n};\n\n\nexport type IQueryGetControlDataArgs = {\n id: Scalars['String'];\n};\n\n\nexport type IQueryGetClientControlByIdArgs = {\n id: Scalars['String'];\n};\n\n\nexport type IQueryGetClientControlByIdsArgs = {\n ids: Array;\n};\n\n\nexport type IQueryGetControlByIdArgs = {\n id: Scalars['String'];\n};\n\n\nexport type IQuerySearchRiskInventoriesArgs = {\n input?: Maybe;\n};\n\n\nexport type IQuerySearchRegulatorsArgs = {\n input?: Maybe;\n};\n\n\nexport type IQueryGetControlInstanceOptionsArgs = {\n input?: Maybe;\n};\n\n\nexport type IQueryGetClientRisksArgs = {\n input: IGetRiskDataInput;\n};\n\n\nexport type IQueryGetClientRiskByIdArgs = {\n id: Scalars['String'];\n};\n\n\nexport type IQueryGetRiskByIdArgs = {\n id: Scalars['String'];\n};\n\n\nexport type IQueryGetRiskAnalysisByIdArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type IQuerySearchAcinRisksArgs = {\n input?: Maybe;\n};\n\n\nexport type IQueryGetBusinessLineByIdArgs = {\n id: Scalars['String'];\n};\n\n\nexport type IQueryGetBusinessLineByIdsArgs = {\n ids: Array;\n};\n\n\nexport type IQueryGetComparisonByControlIdArgs = {\n id: Scalars['String'];\n riskInventoryId?: Maybe;\n};\n\n\nexport type IQueryGetComparisonByRiskIdArgs = {\n id: Scalars['String'];\n};\n\n\nexport type IQueryGetControlComparisonDataArgs = {\n input?: Maybe;\n};\n\n\nexport type IQueryGetControlHistoryArgs = {\n input?: Maybe;\n};\n\n\nexport type IQueryGetCompletenessControlTableArgs = {\n input?: Maybe;\n};\n\n\nexport type IQueryGetTableArgs = {\n input?: Maybe;\n};\n\n\nexport type IQueryGetChartArgs = {\n input: IChartInput;\n};\n\n\nexport type IQueryGetChartFiltersArgs = {\n input: IChartInput;\n};\n\n\nexport type IQueryGetRiskIntelligenceArgs = {\n input?: Maybe;\n};\n\n\nexport type IQueryGetRiskIntelligenceByIdArgs = {\n id: Scalars['String'];\n};\n\n\nexport type IQueryGetRiskIntelligenceAdminOverviewPageArgs = {\n filters?: Maybe;\n};\n\n\nexport type IQueryGetRiskIntelArticleByIdArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type IQueryGetRiskIntelligenceAnalyticsByIdArgs = {\n input: IRiskIntelligenceAnalysisInput;\n};\n\n\nexport type IQueryGetRiskIntelligenceAnalyticsControlListArgs = {\n input: IRiskIntelligenceAnalyticsControlListInput;\n};\n\n\nexport type IQueryInspectArgs = {\n input: IInspectorInput;\n};\n\n\nexport type IQueryGetMockedPaginationResultsArgs = {\n input: IPaginationInput;\n};\n\n\nexport type IQueryGetGlobalSearchResultsArgs = {\n searchTerm: Scalars['String'];\n};\n\n\nexport type IQueryGetProductsArgs = {\n input?: Maybe;\n};\n\n\nexport type IQueryGetProductByIdArgs = {\n id: Scalars['String'];\n};\n\n\nexport type IQueryGetAllReportsArgs = {\n input?: Maybe;\n};\n\n\nexport type IQueryGetConfiguratorOptionsArgs = {\n input?: Maybe;\n};\n\n\nexport type IQueryGetConfiguratorFilterOptionsArgs = {\n input: IConfiguratorOptionsInput;\n};\n\n\nexport type IQueryGetConfiguratorReportByIdArgs = {\n id: Scalars['ID'];\n};\n\nexport type IMutation = {\n __typename?: 'Mutation';\n setUITheme?: Maybe>;\n markCalibrateDownloadAsRead: FieldWrapper;\n generateCalibrateDownload: FieldWrapper;\n createDataMatcher: FieldWrapper;\n matchAcinControlToClientControl: FieldWrapper;\n matchUnassignedClientControlToAcinControl: FieldWrapper;\n approveRejectAcinControlToClientControl: FieldWrapper;\n approveRejectMissingAcinControl: FieldWrapper;\n submitDataMatcher: FieldWrapper;\n deleteDataMatcher: FieldWrapper;\n inheritUnmatchedAcinControlReasonCodes: FieldWrapper;\n toggleTemplateQueryFavourite?: Maybe>;\n exportTemplateQueryById: FieldWrapper;\n exportCompletenessReportById: FieldWrapper;\n createReport: FieldWrapper;\n updateReport: FieldWrapper;\n deleteReport: FieldWrapper;\n exportStatusReportById: FieldWrapper;\n toggleRiskIntelligenceFavourite: FieldWrapper;\n toggleRiskIntelligenceTableItemFavourite: FieldWrapper;\n archiveRiskIntelligenceArticle: FieldWrapper;\n saveRiskIntelScenarioDraft: FieldWrapper;\n saveRegulatoryAlertDraft: FieldWrapper;\n saveNetworkUpdateDraft: FieldWrapper;\n saveRiskIntelScenario: FieldWrapper;\n saveRegulatoryAlert: FieldWrapper;\n saveNetworkUpdate: FieldWrapper;\n createExample: FieldWrapper;\n toggleReportFavourite: FieldWrapper;\n createConfiguratorReport: FieldWrapper;\n updateConfiguratorReport: FieldWrapper;\n deleteConfiguratorReport: FieldWrapper;\n};\n\n\nexport type IMutationSetUiThemeArgs = {\n userId: Scalars['String'];\n theme: IUiTheme;\n};\n\n\nexport type IMutationMarkCalibrateDownloadAsReadArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type IMutationGenerateCalibrateDownloadArgs = {\n input: ICalibrateReportInput;\n};\n\n\nexport type IMutationCreateDataMatcherArgs = {\n input: ICreateDataMatcherInput;\n};\n\n\nexport type IMutationMatchAcinControlToClientControlArgs = {\n input: IMatchAcinControlInput;\n filterInput?: Maybe;\n};\n\n\nexport type IMutationMatchUnassignedClientControlToAcinControlArgs = {\n input: IMatchUnassignedClientControlInput;\n};\n\n\nexport type IMutationApproveRejectAcinControlToClientControlArgs = {\n input: IApproveRejectMatchAcinControlInput;\n};\n\n\nexport type IMutationApproveRejectMissingAcinControlArgs = {\n input: IApproveRejectMissingAcinControlInput;\n};\n\n\nexport type IMutationSubmitDataMatcherArgs = {\n dataMatcherId: Scalars['ID'];\n};\n\n\nexport type IMutationDeleteDataMatcherArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type IMutationInheritUnmatchedAcinControlReasonCodesArgs = {\n dataMatcherId: Scalars['ID'];\n unassignedAcinControlIds: Array>;\n};\n\n\nexport type IMutationToggleTemplateQueryFavouriteArgs = {\n id: Scalars['ID'];\n favourite: Scalars['Boolean'];\n};\n\n\nexport type IMutationExportTemplateQueryByIdArgs = {\n id: Scalars['ID'];\n export: IExportTemplateQueryInput;\n filters?: Maybe;\n};\n\n\nexport type IMutationExportCompletenessReportByIdArgs = {\n configuration: IFilterInput;\n export: IExportTemplateQueryInput;\n filters?: Maybe;\n reportId?: Maybe;\n};\n\n\nexport type IMutationCreateReportArgs = {\n baseReportId: Scalars['ID'];\n report: ICreateReportInput;\n};\n\n\nexport type IMutationUpdateReportArgs = {\n id: Scalars['ID'];\n report: IUpdateReportInput;\n};\n\n\nexport type IMutationDeleteReportArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type IMutationExportStatusReportByIdArgs = {\n id: Scalars['ID'];\n export: IExportStatusReportInput;\n};\n\n\nexport type IMutationToggleRiskIntelligenceFavouriteArgs = {\n id: Scalars['ID'];\n favourite: Scalars['Boolean'];\n};\n\n\nexport type IMutationToggleRiskIntelligenceTableItemFavouriteArgs = {\n id: Scalars['ID'];\n favourite: Scalars['Boolean'];\n};\n\n\nexport type IMutationArchiveRiskIntelligenceArticleArgs = {\n id: Scalars['ID'];\n};\n\n\nexport type IMutationSaveRiskIntelScenarioDraftArgs = {\n id?: Maybe;\n input: IRiskIntelligenceNetworkScenarioDraftArticleInput;\n};\n\n\nexport type IMutationSaveRegulatoryAlertDraftArgs = {\n id?: Maybe;\n input: IRiskIntelligenceRegulatoryAlertDraftArticleInput;\n};\n\n\nexport type IMutationSaveNetworkUpdateDraftArgs = {\n id?: Maybe;\n input: IRiskIntelligenceNetworkUpdateDraftArticleInput;\n};\n\n\nexport type IMutationSaveRiskIntelScenarioArgs = {\n id?: Maybe;\n input: IRiskIntelligenceNetworkScenarioArticleInput;\n};\n\n\nexport type IMutationSaveRegulatoryAlertArgs = {\n id?: Maybe;\n input: IRiskIntelligenceRegulatoryAlertArticleInput;\n};\n\n\nexport type IMutationSaveNetworkUpdateArgs = {\n id?: Maybe;\n input: IRiskIntelligenceNetworkUpdateArticleInput;\n};\n\n\nexport type IMutationCreateExampleArgs = {\n input: IExampleInput;\n};\n\n\nexport type IMutationToggleReportFavouriteArgs = {\n id: Scalars['ID'];\n favourite: Scalars['Boolean'];\n};\n\n\nexport type IMutationCreateConfiguratorReportArgs = {\n report: IConfiguratorReportInput;\n};\n\n\nexport type IMutationUpdateConfiguratorReportArgs = {\n id: Scalars['ID'];\n report: IUpdateConfiguratorReportInput;\n};\n\n\nexport type IMutationDeleteConfiguratorReportArgs = {\n id: Scalars['ID'];\n};\n","import React from 'react';\nimport { useThemeProvider, useToaster, CommonProp, generate } from '@acin/ui-core';\nimport * as SC from './UserPreferencesModal.styled';\nimport { Thumbnail } from './Thumbnail';\nimport { ISetUiThemeMutation, useSetUiThemeMutation } from '../graphql/mutations/setUiTheme.generated';\nimport { useMeQuery } from '../../MainNav/graphql/queries/me.generated';\nimport { IUiTheme } from '../../../graphql/generated';\n\nexport interface UserPreferencesModalProps extends CommonProp {\n className?: string;\n onClose: () => void;\n show: boolean;\n}\n\nexport const UserPreferencesModal: React.FC = (props) => {\n const { className, show, onClose } = props;\n const { onAddToast } = useToaster();\n const { data } = useMeQuery();\n\n const [setUiTheme] = useSetUiThemeMutation({\n onCompleted: (data: ISetUiThemeMutation) => {\n onAddToast({\n id: `theme-updated`,\n title: 'Appearance preference saved',\n status: 'success',\n message: `You're now using the ${themeSelection} theme`,\n removeAt: +new Date() + 10000,\n });\n },\n });\n\n const { setTheme, activeTheme } = useThemeProvider();\n\n const [themeSelection, setThemeSelection] = React.useState(activeTheme.name);\n\n React.useEffect(() => {\n setThemeSelection(activeTheme.name);\n }, [setThemeSelection, activeTheme]);\n\n const handleSetTheme = () => {\n if (data?.me.id) {\n setUiTheme({\n variables: {\n userId: data?.me?.id!,\n theme: themeSelection === 'dark' ? IUiTheme.Dark : IUiTheme.Default,\n },\n });\n }\n setTheme(activeTheme);\n onClose();\n };\n\n const handleClose = () => {\n onClose();\n setThemeSelection(activeTheme.name);\n };\n\n return (\n \n \n Appearance\n \n \n setThemeSelection('default')}\n isActive={themeSelection === 'default'}\n title=\"Light Mode\"\n />\n setThemeSelection('dark')}\n isActive={themeSelection === 'dark'}\n title=\"Dark Mode (Beta)\"\n />\n \n \n );\n};\n","import styled, { css, keyframes } from 'styled-components';\nimport { IconDownload } from '@acin/ui-core';\n\nconst pulseAnimation = keyframes`\n 0% { transform: scale(1); }\n 50% { transform: scale(0.6); }\n 100% { transform: scale(1);}\n`;\n\nexport const DownloadIconAnimated = styled(IconDownload)<{ dotColor?: string; stopAnimation: boolean }>`\n position: relative;\n overflow: visible;\n\n ${(p) => {\n if (p.dotColor) {\n const dot = css`\n display: block;\n width: 10px;\n height: 10px;\n content: '';\n background: ${p.dotColor};\n position: absolute;\n border-radius: 50%;\n left: 14px;\n top: 0px;\n `;\n\n return p.stopAnimation\n ? css`\n &::after {\n ${dot}\n }\n `\n : css`\n &::after {\n ${dot};\n animation-name: ${pulseAnimation};\n animation-duration: 2s;\n animation-iteration-count: infinite;\n }\n `;\n }\n }};\n`;\n","import React from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { useDownload } from '@acin/download';\nimport { useAuth, USER_ROLES } from '@acin/user-accounts';\nimport { UserAccountModal } from '@acin/terminal-onboarding';\nimport { MainNavHorizontal as CoreMainNav, CommonProp, useThemeProvider, themeHelpers, theme } from '@acin/ui-core';\nimport { SearchModal } from '@acin/search';\nimport { DownloadsList } from './DownloadsList';\nimport { UserPreferencesModal } from '../../UserPreferencesModal';\nimport { getMenuItems, getPathById, reverseRoutingMap } from '../config/horizontalMenu';\n\nimport { useMeQuery } from '../graphql/queries/me.generated';\nimport { onNavigate } from '../../../pages/Search/helpers/onNavigate';\nimport { IUiTheme } from '../../../graphql/generated';\nimport { getDotColor } from './utils';\nimport { DownloadIconAnimated } from './DownloadsList.styled';\n\n// TODO: Make this exportable from UI Core\ntype MenuItem = {\n label: string;\n id: string;\n};\n\nexport interface MainNavProps extends CommonProp {\n className?: string;\n showItems?: boolean;\n}\n\nexport const MainNav: React.FC = () => {\n const { logout, user, hasRole } = useAuth();\n const history = useHistory();\n const location = useLocation();\n const { data } = useMeQuery();\n\n const { isDarkMode } = themeHelpers;\n\n const { setTheme, activeTheme } = useThemeProvider();\n\n const {\n allCalibrateDownloads,\n markCalibrateAsDownloaded,\n oneCalibrateDownloadInProgress,\n oneCalibrateDownloadProcessed,\n oneCalibrateDownloadFailed,\n deleteCalibrateDownload,\n showCalibrateDownloads,\n setShowCalibrateDownloads,\n } = useDownload();\n\n const closeDownloads = () => {\n setShowCalibrateDownloads(false);\n };\n\n const [showSearchModal, setShowSearchModal] = React.useState(false);\n const [showUserAccount, setShowUserAccount] = React.useState(false);\n const [showPreferencesModal, setShowPreferencesModal] = React.useState(false);\n const [stopDotAnimation, setStopDotAnimation] = React.useState(false);\n\n React.useEffect(() => {\n if (showCalibrateDownloads && oneCalibrateDownloadInProgress) {\n setStopDotAnimation(false);\n }\n }, [oneCalibrateDownloadInProgress, showCalibrateDownloads]);\n\n React.useEffect(() => {\n if (data?.me.preferences?.theme === IUiTheme.Dark) {\n setTheme(activeTheme);\n }\n // Necessary as we do not want setTheme, activeTheme as a dep, otherwise it will endlessly rerender\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data]);\n\n const getActiveMenuItem = React.useCallback(() => {\n let activeMenuItem = 'dashboard';\n reverseRoutingMap.forEach((value, key) => {\n if (location.pathname.includes(key)) {\n activeMenuItem = value;\n }\n });\n return activeMenuItem;\n }, [location.pathname]);\n\n const onClick = (id: string) => {\n const path = getPathById(id);\n if (path) {\n history.push(path);\n }\n };\n\n const onLogoClick = () => {\n if (hasRole([USER_ROLES.SUPER_ADMIN, USER_ROLES.ACIN_USER, USER_ROLES.DATA_USER, USER_ROLES.CUSTOMER_USER])) {\n history.push('/');\n }\n };\n\n let menuItems = user?.accountCode && user?.totalInventories ? getMenuItems(user?.roles) : [];\n\n const dotColor = getDotColor(\n activeTheme,\n oneCalibrateDownloadFailed,\n oneCalibrateDownloadInProgress,\n oneCalibrateDownloadProcessed,\n );\n\n const userMenuItems = [\n { id: 'preferences', label: 'Preferences' },\n { id: 'logout', label: 'Logout' },\n ];\n\n if (data?.me?.name) {\n userMenuItems.unshift({ id: 'myaccount', label: 'My Account' });\n }\n\n const handleMenuClick = (id?: string) => {\n switch (id) {\n case 'logout':\n localStorage.clear();\n let redirect: any;\n if (process.env.NODE_ENV !== 'development') {\n redirect = {\n returnTo: `https://${window.location.hostname}`,\n };\n }\n if (process.env.REACT_APP_CYPRESS_ENABLE === 'true') {\n redirect = {\n returnTo: `http://${window.location.hostname}:3000`,\n };\n }\n logout(redirect);\n break;\n case 'myaccount':\n setShowUserAccount(true);\n break;\n case 'preferences':\n setShowPreferencesModal(true);\n break;\n case 'recent-downloads':\n setStopDotAnimation(true);\n setShowCalibrateDownloads(!showCalibrateDownloads);\n break;\n default:\n setShowCalibrateDownloads(false);\n }\n };\n\n return (\n <>\n {\n setShowCalibrateDownloads(false);\n onClick(item.id);\n }}\n onLogoClick={onLogoClick}\n onSearchClick={() => setShowSearchModal(true)}\n activeItem={getActiveMenuItem()}\n showSearch={hasRole([\n USER_ROLES.SUPER_ADMIN,\n USER_ROLES.ACIN_USER,\n USER_ROLES.DATA_USER,\n USER_ROLES.CUSTOMER_USER,\n ])}\n settingsMenuContents={userMenuItems}\n onMenuClick={(item) => handleMenuClick(item?.id)}\n renderDownloadsList={() => (\n \n )}\n onClickDownlaods={() => setShowCalibrateDownloads(true)}\n revealDownloads={showCalibrateDownloads}\n showDownloadsOption\n downloadsIcon={() => (\n \n )}\n />\n setShowSearchModal(false)} onNavigate={onNavigate} />\n setShowPreferencesModal(false)} />\n {showUserAccount && (\n setShowUserAccount(false)}\n />\n )}\n \n );\n};\n","import { Theme } from '@acin/ui-core';\n\nexport const getDotColor = (activeTheme: Theme, oneFailed: boolean, oneInProgress: boolean, oneProcessed: boolean) => {\n if (oneFailed) {\n return activeTheme.colors.error.getValue(500).main;\n } else if (oneProcessed) {\n return activeTheme.colors.success.getValue(500).main;\n } else if (oneInProgress) {\n return activeTheme.colors.info.getValue(500).main;\n }\n return undefined;\n};\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport { Route, RouteProps } from 'react-router-dom';\nimport { Layout, PrivateRoute as UiCorePrivateRoute } from '@acin/ui-core';\n\nimport { NoAccessPage } from '@acin/terminal-onboarding';\nimport { useAuth } from '@acin/user-accounts';\nimport { MainNav } from '../components/MainNav';\n\nexport const PrivateRoute: React.FC = (props) => {\n const { isAuthenticated, loading, user } = useAuth();\n const { children, ...rest } = props;\n\n if (loading) {\n return null;\n }\n\n const renderContent = () => {\n if (!user?.accountCode) {\n return (\n {\n return (\n }\n renderContent={() => }\n />\n );\n }}\n />\n );\n }\n\n if (user?.totalInventories === 0) {\n return (\n {\n return (\n }\n renderContent={() => (\n \n )}\n />\n );\n }}\n />\n );\n }\n\n return children;\n };\n\n return (\n \n {renderContent()}\n \n );\n};\n","import React from 'react';\nimport { useHistory, withRouter } from 'react-router-dom';\nimport { History } from 'history';\n\ninterface ScrollToTopProps {\n history: History;\n}\n\nconst ScrollToTop: React.FC = () => {\n const history = useHistory();\n\n React.useEffect(() => {\n const unlisten = history.listen(() => {\n window.scrollTo(0, 0);\n });\n return () => {\n unlisten();\n };\n }, [history]);\n\n return null;\n};\n\nexport default withRouter(ScrollToTop);\n","import React from 'react';\nimport { Loading, LayoutHorizontal } from '@acin/ui-core';\nimport { Switch, Route } from 'react-router-dom';\n\nimport { getPathById } from '../components/MainNav/config/horizontalMenu';\nimport { MainNav } from '../components/MainNav';\nimport ScrollToTop from './ScrollToTop';\n\n// Lazy load the pages\nconst Settings = React.lazy(() => import('../pages/Settings').then((module) => ({ default: module.Settings })));\nconst Dashboard = React.lazy(() => import('../pages/Dashboard').then((module) => ({ default: module.Dashboard })));\nconst Search = React.lazy(() => import('../pages/Search').then((module) => ({ default: module.Search })));\nconst RiskIntelligence = React.lazy(() =>\n import('../pages/RiskIntelligence/components/RiskIntelligence').then((module) => ({\n default: module.RiskIntelligence,\n })),\n);\n\nconst RiskIntelligenceAdmin = React.lazy(() =>\n import('../pages/RiskIntelligence/components/RiskIntelligenceAdmin').then((module) => ({\n default: module.RiskIntelligenceAdmin,\n })),\n);\n\nconst RiskIntelligenceHub = React.lazy(() =>\n import('../pages/RiskIntelligence/components/RiskIntelligenceHub').then((module) => ({\n default: module.RiskIntelligenceHub,\n })),\n);\n\nconst ConnectData = React.lazy(() =>\n import('../pages/ConnectData').then((module) => ({ default: module.ConnectData })),\n);\nconst ManageAccounts = React.lazy(() =>\n import('../pages/ManageAccounts').then((module) => ({ default: module.ManageAccounts })),\n);\nconst Explorer = React.lazy(() => import('../pages/Explorer').then((module) => ({ default: module.Explorer })));\nconst Calibrate = React.lazy(() => import('../pages/Calibrate').then((module) => ({ default: module.Calibrate })));\nconst Documents = React.lazy(() => import('../pages/Documents').then((module) => ({ default: module.Documents })));\nconst Notifications = React.lazy(() =>\n import('../pages/Notifications').then((module) => ({ default: module.Notifications })),\n);\nconst Upload = React.lazy(() => import('../pages/Upload').then((module) => ({ default: module.Upload })));\nconst DataQuality = React.lazy(() =>\n import('../pages/DataQuality').then((module) => ({ default: module.DataQuality })),\n);\n\nexport const PrivateLayout = () => (\n }\n renderContent={() => (\n
\n }>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* Quality Tools page tabs */}\n \n \n \n \n \n \n\n {/* Any additional Routes that are not page related */}\n \n \n \n \n \n
\n )}\n />\n);\n","import React from 'react';\n\nimport { useAuth } from '@acin/user-accounts';\n\nexport const Login = () => {\n const { isAuthenticated, loading, login, logout } = useAuth();\n\n React.useEffect(() => {\n if (!isAuthenticated && !loading) {\n login();\n } else if (isAuthenticated && !loading) {\n logout();\n }\n }, [login, logout, isAuthenticated, loading]);\n\n return null;\n};\n","import React from 'react';\nimport { Heading, Text } from '@acin/ui-core';\n\ninterface Error {\n error: string;\n desc: string;\n}\n\nexport const Auth = () => {\n const [error, setError] = React.useState(null);\n\n React.useEffect(() => {\n if (window.location.search.includes('error=')) {\n const params = new URLSearchParams(window.location.search);\n const error = params.get('error');\n const desc = params.get('error_description');\n\n if (error && desc) {\n setError({ error, desc });\n }\n }\n }, []);\n\n if (error) {\n return (\n
\n {error.error}\n {error.desc}\n
\n );\n }\n\n return
;\n};\n","import React from 'react';\nimport { Switch, Route } from 'react-router-dom';\n\nimport { PrivateRoute } from './PrivateRoute';\nimport { PrivateLayout } from './PrivateLayout';\n\nimport { Login } from './Login';\nimport { Auth } from './Auth';\n\nexport const Router = () => (\n \n \n \n \n {/*\n This is the auth callback url - it will redirect to the dashboard\n */}\n \n \n \n \n {/* All private routing is done inside the Private layout */}\n \n \n \n);\n","import React from 'react';\nimport { Router } from './routes';\n\nexport const App: React.FC = () => {\n return ;\n};\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/),\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA',\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.',\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (response.status === 404 || (contentType != null && contentType.indexOf('javascript') === -1)) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import { ApolloClient, InMemoryCache, ApolloLink, HttpLink } from '@apollo/client';\nimport { onError } from '@apollo/client/link/error';\nimport { setContext } from '@apollo/client/link/context';\n// import { persistCache } from 'apollo3-cache-persist';\nimport { inflate } from 'graphql-deduplicator';\nimport { Auth0Client } from '@auth0/auth0-spa-js';\nimport { typePolicies } from '@acin/data-matching';\nimport { typePolicies as riskIntelTypePolicies } from '@acin/risk-intel';\nimport { typePolicies as riskAndControlsTypePolicies } from '@acin/acin-terminal-risks-and-controls';\n\nimport introspectionResult from '../graphql/introspection-result.json';\n\nexport const getClient = async (auth0Client: Auth0Client) => {\n // Get the API URL from the env vars\n const API = process.env.REACT_APP_API_URL;\n\n // Define the GraphQL API endpoint\n const httpLink = new HttpLink({ uri: API });\n\n /* Set in-memory token to reduce async requests */\n let token: string;\n\n // Handle errors\n const errorLink = onError(({ graphQLErrors, networkError }) => {\n if (graphQLErrors)\n graphQLErrors.map(({ message, locations, path }) =>\n console.log(`[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`),\n );\n if (networkError) console.log(`[Network error]: ${networkError}`);\n });\n\n // This function will lookup and return the bearer token for the\n // next bit of context to add it to the headers\n // @TODO apply this logic\n const withTokenLink = setContext(async () => {\n if (token) return { bearerToken: token };\n\n const bearerToken = await auth0Client.getTokenSilently();\n token = bearerToken;\n // get token from somewhere, and return the context here\n return { bearerToken };\n });\n\n // Apollo link to add the bearer token to the headers\n const authLink = setContext((_, { headers, bearerToken }) => {\n return {\n headers: {\n ...headers,\n ...(bearerToken ? { Authorization: `Bearer ${bearerToken}` } : {}),\n },\n };\n });\n\n const inflateLink = new ApolloLink((operation, forward) => {\n return forward(operation).map((response) => {\n return inflate(response);\n });\n });\n\n /* Create Apollo Link array to pass to Apollo Client */\n const link = ApolloLink.from([withTokenLink, authLink, errorLink, inflateLink, httpLink]);\n\n // Define the in memory cache\n const cache = new InMemoryCache({\n ...introspectionResult,\n typePolicies: {\n ...typePolicies,\n ...riskIntelTypePolicies,\n ...riskAndControlsTypePolicies,\n },\n });\n\n // Setup apollo client with the link and cache\n const client = new ApolloClient({\n link,\n cache,\n });\n\n // Need to disable cache? Commenting out persistCache below\n // Persist the cache to local storage\n // await persistCache({ cache, storage: window.localStorage });\n\n return client;\n};\n","import { CacheLocation } from '@auth0/auth0-spa-js';\n\ndeclare global {\n interface Window {\n Cypress: any;\n }\n}\n\nexport const ORIGIN_URL_KEY = 'origin-url';\nconst path = window.location.pathname;\nif (path !== '/auth' && path !== '/') {\n window.localStorage.setItem(ORIGIN_URL_KEY, path);\n}\n\nlet redirect_uri = process.env.REACT_APP_AUTH_CALLBACK!;\nconst build_env = process.env.REACT_APP_BUILD_ENV!;\n\nif (['dev', 'int', 'prod'].includes(build_env)) {\n const envValue = process.env.REACT_APP_DEPLOYMENT_ENV_NAME;\n const deploymentQueryStringService = envValue ? `?ds=${envValue}` : '';\n redirect_uri = `https://${window.location.hostname}${deploymentQueryStringService}`;\n}\n\nlet cacheLocation: CacheLocation = `memory`;\n\nif (window.Cypress && process.env.REACT_APP_CYPRESS_ENABLE === 'true') {\n cacheLocation = `localstorage`;\n}\n\nexport const config = {\n domain: process.env.REACT_APP_AUTH_DOMAIN!,\n client_id: process.env.REACT_APP_AUTH_CLIENT_ID!,\n redirect_uri,\n audience: process.env.REACT_APP_API_AUTH_AUDIENCE!,\n cacheLocation,\n};\n","import { UserMetadata, AuthUser } from '@acin/user-accounts';\nimport { analytics } from '../analytics';\n\ndeclare global {\n interface Window {\n pendo: any;\n }\n}\n\n/**\n * Pendo Initialization (Additional Docs here: https://developers.pendo.io/docs/?bash#functions)\n * @param user - (required) AuthUser\n * @param userMetadata - (required) UserMetadata\n */\nexport const initialisePendo = (user: AuthUser, userMetadata: UserMetadata) => {\n window.pendo = window.pendo || {};\n window.pendo.initialize &&\n window.pendo.initialize({\n visitor: {\n id: user.sub,\n email: user.email,\n },\n account: {\n id: userMetadata?.account?.code,\n },\n annotateUrl: () => {\n return analytics.getAnalyticsUrl();\n },\n });\n};\n","import { UserMetadata, AuthUser } from '@acin/user-accounts';\nimport { trackPendoEvent } from '@acin/ui-core';\nimport { clearSavedFilters } from '@acin/filters';\nimport { datadogRum } from '@datadog/browser-rum';\nimport { initialisePendo } from '../helpers/pendo';\n\nexport const onAuthenticated = (user: AuthUser, userMetadata: UserMetadata) => {\n initialisePendo(user, userMetadata);\n trackPendoEvent('Screen Size', {\n screenWidth: window.screen.width,\n screenHeight: window.screen.height,\n });\n datadogRum.setUser({\n id: user.sub,\n email: user.email,\n name: user.name,\n });\n};\n\nexport const onLogout = () => {\n clearSavedFilters();\n};\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { ApolloProvider } from '@apollo/client';\nimport { Core, Toaster } from '@acin/ui-core';\nimport { Inspector, InspectorProvider } from '@acin/inspector';\nimport { RenderContentConfig } from '@acin/inspector/src/components/Inspector/components/InspectorContent';\nimport { ControlInsight } from '@acin/acin-terminal-risks-and-controls';\nimport { DownloadProvider, Download } from '@acin/download';\nimport createAuth0Client from '@auth0/auth0-spa-js';\n\n// You can use this mock create auth0 client below, to skip communucations with Auth0,\n// It will log the user in using the 'REACT_APP_MOCK_AUTH_TOKEN' value in the .env file.\n// import { createAuth0Client } from './testHelpers/MockAuth0Client';\n\nimport { AuthProvider } from '@acin/user-accounts';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport { getClient } from './config/apollo';\n\nimport { config, ORIGIN_URL_KEY } from './config/auth0';\nimport { onAuthenticated, onLogout } from './Auth';\nimport { datadogInit } from './datadog';\n\nconst renderContent = (config: RenderContentConfig) => {\n const { typename, data, inspect } = config;\n if (typename === 'ControlInspectorView' && data.content && inspect) {\n return {\n title: 'Control Insight',\n content: ,\n };\n }\n\n return {\n title: 'Error',\n content: <>Unsupported type,\n };\n};\ncreateAuth0Client(config).then((auth0) => {\n const renderApp = async () => {\n datadogInit();\n const client = await getClient(auth0);\n\n ReactDOM.render(\n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n document.getElementById('root'),\n );\n };\n\n renderApp();\n});\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}