{"version":3,"sources":["ClientAndContactDetails/referrals/ReferralsDetailsRepository.tsx","Dashboard/userAIActivity/UserAIActivityRepositories.tsx","App.tsx","EventSystem.ts","ClientAndContactDetails/ClientAndContactDetailsRepositories.tsx","Dashboard/Component/DialogBox.tsx"],"names":["retrieveReferrerDetailsData","query","refreshData","onSuccess","onError","fetchPolicy","ReferrerDetailsData","variables","nameId","then","results","data","catch","reason","retrieveCurrencySymbolData","CurrencySymbol","UserAIAccessType","getAIAccessType","type","retrieveUserAIActivityData","UserAIActivityQuery","offset","first","searchCriterias","filter","addUserAIActivity","params","mutate","mutation","AddUserAIActivityMutation","serverUrl","cdnUrl","linkToPage","page","notificationSystem","AppStateUpdate","this","loggedOn","registerApp","app","updateAppState","appState","setState","getAppState","state","props","getInstance","render","item","showNotification","title","message","level","msgID","autoDismiss","addNotification","uid","console","error","warn","info","log","EventSystem","event","on","listener","emit","ClientAndContactDetailsDataQuery","nameAccessActivityMutation","PoBoxTypeQuery","fetchPOBoxTypeData","DeletePartyImageMutation","context","handleClose","bind","handleOk","show","UNSAFE_componentWillReceiveProps","nextProps","open","onClose","ariaLabelledBy","ariaDescribedBy","maxWidth","fullWidth","disablePortal","id","children","content","alert","hideDisagree","onClick","color","disAgreeLabel","autoFocus","agreeLabel","preventDefault","stopPropagation","isAgree","theme","wrapper","withTheme","DialogBox"],"mappings":"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","file":"static/js/main~d0ae3f07.c2522b5a.chunk.js","sourcesContent":["import gql from 'graphql-tag';\r\nimport { FetchPolicy } from 'apollo-client';\r\nimport { client } from '../..';\r\n\r\nexport interface ReferrerDataParams {\r\n    nameId: number | null;\r\n}\r\n\r\nexport interface ReferrerData {\r\n    partydetails: Partydetails;\r\n}\r\n\r\nexport interface Partydetails {\r\n    __typename:                     string;\r\n    id:                             number;\r\n    referrerName:                   string;\r\n    relationshipManagerId:          number;\r\n    relationshipManager:            string;\r\n    relationshipQualityGuid:        string;\r\n    relationshipQualityDescription: string;\r\n    relationshipQualityLevel:       string;\r\n    referrerTypeGuid:               string;\r\n    referrerType:                   string;\r\n    referrerSourceGuid:             string;\r\n    referrerSource:                 string;\r\n    lastContactDate:                Date;\r\n    lastReferralDate:               Date;\r\n    referrerStats:                  ReferrerStats;\r\n    referralsInLastTwelveMonths:    ReferralsInLastTwelveMonths;\r\n    referralsByYear:                ReferralsByYear;\r\n    referralMattersByCategory:      ReferralMattersByCategory;\r\n    referralAverageBilledFees:      ReferralAverageBilledFees;\r\n}\r\n\r\nexport interface ReferralAverageBilledFees {\r\n    groupedByCount:             number;\r\n    averageBilledFeesPerMatter: number;\r\n    averageBilledFee:           AverageBilledFee[];\r\n}\r\n\r\nexport interface AverageBilledFee {\r\n    amount:    number;\r\n    groupedBy: string;\r\n}\r\n\r\nexport interface ReferralMattersByCategory {\r\n    referralMatterCategory: ReferralMatterCategory[];\r\n}\r\n\r\nexport interface ReferralMatterCategory {\r\n    group: string;\r\n    count: number;\r\n}\r\n\r\nexport interface ReferralsByYear {\r\n    referralMattersByYear:          ReferralMattersByYear[];\r\n    referralMatterBilledFeesByYear: ReferralMatterBilledFeesByYear[];\r\n}\r\n\r\nexport interface ReferralMatterBilledFeesByYear {\r\n    year:  string;\r\n    billedFees: number;\r\n}\r\n\r\nexport interface ReferralMattersByYear {\r\n    year:  string;\r\n    count: number;\r\n}\r\n\r\nexport interface ReferralsInLastTwelveMonths {\r\n    referralMattersByMonth:          ReferralMattersByMonth[];\r\n    referralMatterBilledFeesByMonth: ReferralMatterBilledFeesByMonth[];\r\n}\r\n\r\nexport interface ReferralMattersByMonth {\r\n    count:  number;\r\n    month: string;\r\n}\r\n\r\nexport interface ReferralMatterBilledFeesByMonth {\r\n    billedFees:  number;\r\n    month: string;\r\n}\r\n\r\nexport interface ReferrerStats {\r\n    id:                                     number;\r\n    initialContactDate:                     Date;\r\n    lastMatterDate:                         Date;\r\n    lastContactDate:                        Date;\r\n    clientsReferredInLast12Months:          number;\r\n    mattersReferredInLast12Months:          number;\r\n    relatedFeesInLast12Months:              number;\r\n    clientsReferredInTotal:                 number;\r\n    mattersReferredInTotal:                 number;\r\n    relatedFeesInTotal:                     number;\r\n    enquiriesReferredInTotal:               number;\r\n    enquiriesReferredInTheLast12Months:     number;\r\n    lastEnquiryDate:                        Date;\r\n    enquiriesReferredToLast12Months:        number;\r\n    enquiriesReferredToTotal:               number;\r\n    lastEnquiryReferredTo:                  Date;\r\n}\r\n\r\nexport function retrieveReferrerDetailsData(\r\n    query: ReferrerDataParams, \r\n    refreshData: boolean,\r\n    onSuccess: (data: ReferrerData) => void,\r\n    // tslint:disable-next-line:no-any\r\n    onError: (reason: any) => void)\r\n     : void {\r\n        var fetchPolicy: FetchPolicy = refreshData === true ? 'network-only' : 'cache-first';\r\n        client.query({\r\n            query: ReferrerDetailsData,\r\n            variables: {\r\n                nameId: query.nameId\r\n            },\r\n            fetchPolicy: fetchPolicy\r\n    })\r\n    // tslint:disable-next-line:no-any\r\n    .then((results: { data: any; }) => {\r\n        onSuccess(results.data);\r\n    })\r\n    // tslint:disable-next-line:no-any\r\n    .catch((reason: any ) => { \r\n        onError(reason); \r\n    });\r\n}\r\n\r\nexport const ReferrerDetailsData = gql`\r\n    query ReferrerDetailsData($nameId: Int!){\r\n        partydetails(nameId: $nameId) {\r\n            __typename\r\n            ... on Referrer {\r\n                id\r\n                referrerName,\r\n                relationshipManagerId,\r\n                relationshipManager,\r\n                relationshipQualityGuid,\r\n                relationshipQualityDescription,\r\n                relationshipQualityLevel,\r\n                referrerTypeGuid,\r\n                referrerType,\r\n                referrerSourceGuid,\r\n                referrerSource,\r\n                lastContactDate,\r\n                lastReferralDate\r\n                \r\n                referrerStats{\r\n                    id,\r\n                    initialContactDate,\r\n                    lastMatterDate,\r\n                    lastContactDate,\r\n                    clientsReferredInLast12Months,\r\n                    mattersReferredInLast12Months,\r\n                    relatedFeesInLast12Months,\r\n                    clientsReferredInTotal,\r\n                    mattersReferredInTotal,\r\n                    relatedFeesInTotal,\r\n                    enquiriesReferredInTotal,\r\n                  \tenquiriesReferredInTheLast12Months,\r\n                    lastEnquiryDate,\r\n                    enquiriesReferredToLast12Months,\r\n                    enquiriesReferredToTotal,\r\n                    lastEnquiryReferredTo\r\n                }\r\n                referralsInLastTwelveMonths(hasInvoices:true){\r\n                    referralMattersByMonth{\r\n                        month,\r\n                        count\r\n                    }\r\n                    referralMatterBilledFeesByMonth{\r\n                        billedFees,\r\n                        month\r\n                    }              \r\n                }\r\n                \r\n                referralsByYear(hasInvoices:true){            \r\n                    referralMattersByYear{\r\n                        year,\r\n                        count              \r\n                    }            \r\n                    referralMatterBilledFeesByYear{\r\n                        year,\r\n                        billedFees\r\n                    }\r\n                }\r\n                \r\n                referralMattersByCategory{\r\n                    referralMatterCategory{\r\n                        group,\r\n                        count\r\n                    }\r\n                }\r\n                    \r\n                referralAverageBilledFees{\r\n                    groupedByCount,\r\n                    averageBilledFeesPerMatter,\r\n                    averageBilledFee{\r\n                        amount,\r\n                        groupedBy\r\n                    }\r\n                }        \r\n            }\r\n        }\r\n    }\r\n`;\r\n\r\nexport interface CurrencySymbolData {\r\n    options: Options;\r\n}\r\n\r\nexport interface Options {\r\n    currencySymbol: CurrencySymbol;\r\n}\r\n\r\nexport interface CurrencySymbol {\r\n    symbol: string;\r\n}\r\n\r\nexport function retrieveCurrencySymbolData(\r\n    refreshData: boolean,\r\n    onSuccess: (data: CurrencySymbolData) => void,\r\n    // tslint:disable-next-line:no-any\r\n    onError: (reason: any) => void)\r\n     : void {\r\n        var fetchPolicy: FetchPolicy = refreshData === true ? 'network-only' : 'cache-first';\r\n        client.query({\r\n            query: CurrencySymbol,\r\n            variables: {},\r\n            fetchPolicy: fetchPolicy\r\n    })\r\n    // tslint:disable-next-line:no-any\r\n    .then((results: { data: any; }) => {\r\n        onSuccess(results.data);\r\n    })\r\n    // tslint:disable-next-line:no-any\r\n    .catch((reason: any ) => { \r\n        onError(reason); \r\n    });\r\n}\r\n\r\nconst CurrencySymbol = gql`query CurrencySymbol {\r\n    options {\r\n        currencySymbol {\r\n            symbol\r\n        }\r\n    }\r\n}`;","import gql from 'graphql-tag';\r\nimport { FetchPolicy } from 'apollo-client';\r\nimport { client } from '../..';\r\nimport { showNotification } from '../../App';\r\n\r\nexport interface UserAIActivitiesQueryParams {\r\n    offset: number; \r\n    first: number,\r\n    searchCriterias: string,\r\n    filter: string | null;\r\n};\r\n\r\nexport interface AddUserAIActivityParams {\r\n    accessType: string,\r\n    accessSubType: string,\r\n    question: string | null,\r\n}\r\n\r\nexport enum UserAIAccessType {\r\n    CRMContact = 0,\r\n    CRMOutlook,\r\n    CRMTextEditor,\r\n    FirmDashboard,\r\n    FeeEarnerDashboard\r\n}\r\n\r\nexport function getAIAccessType(type: UserAIAccessType){\r\n    switch(type) {\r\n        case 0: return 'CRMContact';\r\n        case 1: return 'CRMOutlook';\r\n        case 2: return 'CRMTextEditor';\r\n        case 3: return 'FirmDashboard';\r\n    }\r\n\r\n    return \"FeeEarnerDashboard\";\r\n}\r\n\r\nexport type UserAIActivitiesData = {\r\n    administrator: Administrator;\r\n};\r\n\r\nexport type Administrator = {\r\n    userAIActivities: UserAIActivities;\r\n};\r\n\r\nexport type UserAIActivities = {\r\n    userAIActivity: UserAIActivity[];\r\n    recordCount:     number;\r\n};\r\n\r\nexport type UserAIActivity = {\r\n    guidId:             string;\r\n    name:               number;\r\n    accessType:         string;\r\n    accessSubType:      string;\r\n    accessTime:         Date;\r\n    questing:           string;\r\n};\r\n\r\n\r\nexport function retrieveUserAIActivityData(\r\n    query: UserAIActivitiesQueryParams, \r\n    refreshData: boolean,\r\n    onSuccess: (data: UserAIActivitiesData) => void,\r\n    // tslint:disable-next-line:no-any\r\n    onError: (reason: any) => void)\r\n    : void {\r\n        var fetchPolicy: FetchPolicy = refreshData === true ? 'network-only' : 'cache-first';\r\n        \r\n        client.query<UserAIActivitiesData, UserAIActivitiesQueryParams>({\r\n            query: UserAIActivityQuery,\r\n            variables: {\r\n                offset: query.offset,\r\n                first: query.first,\r\n                searchCriterias: query.searchCriterias,\r\n                filter: query.filter\r\n            },\r\n            fetchPolicy: fetchPolicy\r\n        })\r\n    // tslint:disable-next-line:no-any\r\n    .then((results) => {\r\n            onSuccess(results.data);\r\n    })\r\n    // tslint:disable-next-line:no-any\r\n    .catch((reason: any ) => { onError(reason); }\r\n    );\r\n}\r\n\r\nexport function addUserAIActivity(params: AddUserAIActivityParams) {\r\n    client.mutate({\r\n        mutation: AddUserAIActivityMutation,\r\n        variables: params\r\n    }).then((results: {data: any}) => {\r\n        // do nothing\r\n    }).catch((reason: any) => {\r\n        showNotification('Failed to save AI Access', reason, 'error');\r\n    })\r\n}\r\n\r\nconst UserAIActivityQuery = gql`\r\nquery UserAIActivityDrilldownList($offset: Int, $first: Int, $filter: String, $searchCriterias: String) {\r\n    administrator {\r\n        userAIActivities(offset: $offset, first: $first, filter: $filter, searchCriterias: $searchCriterias) {\r\n            recordCount\r\n            rowCountWithoutFilters\r\n            userAIActivity {\r\n                id\r\n                username\r\n                role\r\n                accessType\r\n                accessSubType\r\n                accessTime\r\n                question\r\n            }\r\n        }\r\n    }\r\n}\r\n`;\r\n\r\nexport const AddUserAIActivityMutation = gql`\r\nmutation AddUserAIActivity($accessType: AIAccessType, $accessSubType: String, $question: String){\r\n    addUserAIActivity(accessType: $accessType, accessSubType: $accessSubType, question: $question)\r\n}\r\n`","import * as React from 'react';\r\nimport * as H from 'history';\r\nimport './App.css';\r\nimport { AppContent } from './components/AppContent';\r\nimport SvgIcons from './SvgIcons';\r\nimport EventSystem from './EventSystem';\r\n\r\n// property is fetched from \"config/webpack.config.{env}.js\" file, under plugins section\r\ndeclare const GraphQLApiUrl: string;\r\nexport const serverUrl = GraphQLApiUrl;\r\ndeclare const CDNUrl: string;\r\nexport const cdnUrl = CDNUrl ? CDNUrl : process.env.PUBLIC_URL;\r\n\r\nexport interface RouterHistoryProps {\r\n  history: H.History;\r\n}\r\n\r\nexport interface RouterProps extends RouterHistoryProps {\r\n  match: {\r\n    params: {\r\n      tenantId: string;\r\n      id: string;\r\n      command: string;\r\n      tab: string;\r\n      filter: string;\r\n    };\r\n  };\r\n}\r\n\r\ninterface AppProps {\r\n  page?: {};\r\n}\r\n\r\ninterface AppState {\r\n  loggedOn: boolean;\r\n}\r\n\r\nexport function linkToPage(page: string) {\r\n  return '/' + page;\r\n}\r\n\r\nclass AppStateClass {\r\n  public loggedOn: boolean;\r\n  private app: App;\r\n\r\n  constructor() {\r\n    this.loggedOn = false;\r\n  }\r\n\r\n  public registerApp(app: App) {\r\n    this.app = app;\r\n  }\r\n\r\n  public updateAppState(appState: AppState) {\r\n    this.app.setState(appState);\r\n  }\r\n\r\n  public getAppState(): AppState {\r\n    return this.app.state;\r\n  }\r\n\r\n  /*   public forceUpdate(): void {\r\n    this.app.forceUpdate();\r\n  } */\r\n}\r\n\r\nexport const AppStateUpdate = new AppStateClass();\r\n\r\nexport class App extends React.Component<AppProps, AppState> {\r\n  // tenantId: string = '';\r\n\r\n  constructor(props: AppProps, state: AppState) {\r\n    super(props, state);\r\n    // this.tenantId = window.location.href.split('/')[window.location.href.split('/').length - 1];\r\n    this.state = {\r\n      loggedOn: false\r\n    };\r\n    AppStateUpdate.registerApp(this);\r\n    SvgIcons.getInstance();\r\n    EventSystem.getInstance();\r\n  }\r\n\r\n  // componentDidMount() {\r\n  //   this.setupBeforeUnloadHandler();\r\n  // }\r\n\r\n  // componentWillUnmount() {\r\n  //   this.removeBeforeUnloadHandler();\r\n  // }\r\n\r\n  // setupBeforeUnloadHandler = () => {\r\n  //   window.addEventListener('beforeunload', this.handleBeforeUnload);\r\n  // };\r\n\r\n  // removeBeforeUnloadHandler = () => {\r\n  //   window.removeEventListener('beforeunload', this.handleBeforeUnload);\r\n  // };\r\n\r\n  // handleBeforeUnload = (e: BeforeUnloadEvent) => {\r\n  //   const message = 'Changes you made may not be saved.';\r\n  //   e.preventDefault();\r\n  //   e.returnValue = message;\r\n  //   return message;\r\n  // };\r\n\r\n  render() {\r\n    // var accessToken = sessionStorage.getItem('accessToken');\r\n    // let isAuthenticated = (accessToken != null && accessToken !== '');\r\n    /*   if (!this.tenantId) {\r\n      window.location.replace('http://www.redview.com.au/');\r\n      return <div>Redirecting to RedView....</div>;\r\n    } */\r\n\r\n    return (\r\n      <React.Fragment>\r\n        <AppContent\r\n          // tslint:disable-next-line:no-any\r\n          notificationSystem={(item: any) => (notificationSystem = item)}\r\n        />\r\n      </React.Fragment>\r\n    );\r\n  }\r\n\r\n}\r\n\r\nexport default App;\r\n// tslint:disable-next-line:no-any\r\nlet notificationSystem: any;\r\n\r\nexport function showNotification(\r\n  title: string | null,\r\n  message: string,\r\n  level: 'error' | 'warning' | 'info' | 'success',\r\n  msgID?: string\r\n) {\r\n  let autoDismiss: number;\r\n  switch (level) {\r\n    case 'error':\r\n      autoDismiss = 0;\r\n      break;\r\n    default:\r\n      autoDismiss = 10;\r\n  }\r\n  notificationSystem.addNotification({\r\n    title: title,\r\n    message: message,\r\n    level: level,\r\n    autoDismiss: autoDismiss,\r\n    uid: msgID\r\n  });\r\n  switch (level) {\r\n    case 'error':\r\n      // tslint:disable-next-line:no-console\r\n      console.error(message);\r\n      break;\r\n    case 'warning':\r\n      // tslint:disable-next-line:no-console\r\n      console.warn(message);\r\n      break;\r\n    case 'info':\r\n      // tslint:disable-next-line:no-console\r\n      console.info(message);\r\n      break;\r\n    default:\r\n      // tslint:disable-next-line:no-console\r\n      console.log(message);\r\n  }\r\n}\r\n","import { EventEmitter } from 'events';\r\n\r\n/* tslint:disable:jsx-wrap-multiline */\r\nclass EventSystem {\r\n\r\n    public static event: EventEmitter;\r\n\r\n    // tslint:disable-next-line:member-ordering\r\n    static getInstance() {\r\n        if (!EventSystem.event) {\r\n            EventSystem.event = new EventEmitter();\r\n        }\r\n        return EventSystem.event;\r\n    }\r\n    \r\n    // tslint:disable-next-line:no-any\r\n    static on(event: string | symbol, listener: (...args: any[]) => void) {\r\n        EventSystem.event.on(event, listener);\r\n    }\r\n    \r\n    // tslint:disable-next-line:no-any\r\n    static emit(event: string | symbol, ...args: any[]) {\r\n        EventSystem.event.emit(event);\r\n    }\r\n\r\n    public constructor() {\r\n        //  code here\r\n    }\r\n\r\n}\r\n\r\nexport default EventSystem;","import { FetchPolicy } from 'apollo-client';\r\nimport gql from 'graphql-tag';\r\nimport { client } from '..';\r\n\r\nexport type ClientAndContactDetailsData = {\r\n    partydetails: Partydetails;\r\n    partyWebsite: PartyWebsite;\r\n    options:      Options;\r\n    appUser:      AppUser;\r\n};\r\n\r\nexport type AppUser = {\r\n    isInternal: boolean;\r\n};\r\n\r\nexport type Options = {\r\n    matterOptions: MatterOptions;\r\n};\r\n\r\nexport type MatterOptions = {\r\n    canShowGeneral:    boolean;\r\n    canShowFinancials: boolean;\r\n    canShowDocuments:  boolean;\r\n};\r\n\r\nexport type PartyWebsite = {\r\n    __typename: string;\r\n    id:         number;\r\n    website:    string;\r\n    // individual\r\n    lastName:   string;\r\n    // organistion\r\n    longName:   string | null;\r\n};\r\n\r\nexport type Partydetails = {\r\n\r\n    // common\r\n    __typename:           string;\r\n    id:                   number;\r\n    guid:                 string;\r\n    nameNotes:            string;\r\n    isFromDataSource:           boolean;\r\n    hasMarketingConsent:  boolean;\r\n    phoneNumbers:         PhoneNumber[];\r\n    addresses:            Address[];\r\n    emailAddresses:       EmailAddress[];\r\n    // tslint:disable-next-line: no-any\r\n    relatedIndividuals:   any[];\r\n    // tslint:disable-next-line: no-any\r\n    relatedOrganisations: any[];\r\n    matters:              Matters;\r\n    mattersReferred:      MattersReferred;\r\n    partyType:            PartyType;\r\n    tags:                 Tag[];\r\n    documentCount:        DocumentCount;\r\n\r\n    // individual\r\n    lastName:             string | null;\r\n    firstName:            string | null;\r\n    middleName:           string | null;\r\n    dateOfBirth:          Date | null;\r\n    displayName:          string | null;\r\n    \r\n    // organisation\r\n    longName:             string | null;\r\n};\r\n\r\nexport type Address = {\r\n    type:     string;\r\n    sequence: number;\r\n    display:  string;\r\n};\r\n\r\nexport type DocumentCount = {\r\n    partyDocumentTotalCount: number;\r\n};\r\n\r\nexport type EmailAddress = {\r\n    partyId:  number;\r\n    type:     string;\r\n    email:    string;\r\n    sequence: number;\r\n};\r\n\r\nexport type Matters = {\r\n    totalCount:       number;\r\n    totalMatterCount: number;\r\n};\r\n\r\nexport type MattersReferred = {\r\n    totalCount: number;\r\n};\r\n\r\nexport type PartyType = {\r\n    isClient:       boolean;\r\n    isIndividual:   boolean;\r\n    isOrganisation: boolean;\r\n    isReferrer:     boolean;\r\n    isStaff:        boolean;\r\n    isUser:         boolean;\r\n};\r\n\r\nexport type PhoneNumber = {\r\n    partyId:   number;\r\n    type:      string;\r\n    number:    string;\r\n    extension: null;\r\n    sequence:  number;\r\n};\r\n\r\nexport type Tag = {\r\n    guidId:    string;\r\n    tag:       string;\r\n    tagGuidId: string;\r\n};\r\n\r\nexport const ClientAndContactDetailsDataQuery = gql`\r\n    query ReferrerDetailsData($matterId: Int!, $nameId: Int!, $isFromDataSource: Boolean) {\r\n        partydetails(nameId: $nameId, isFromDataSource: $isFromDataSource) {\r\n            __typename\r\n            ... on Staff {\r\n                id\r\n                guid\r\n                firstName\r\n                lastName\r\n                nameNotes\r\n                isFromDataSource\r\n                middleName\r\n                dateOfBirth\r\n                displayName\r\n                hasMarketingConsent\r\n                phoneNumbers {\r\n                    partyId\r\n                    type\r\n                    number\r\n                    extension\r\n                    sequence\r\n                }\r\n                addresses {\r\n                    type\r\n                    sequence\r\n                    display\r\n                }\r\n                emailAddresses {\r\n                    partyId\r\n                    type\r\n                    email\r\n                    sequence\r\n                }\r\n                relatedIndividuals {\r\n                    id\r\n                }\r\n                relatedOrganisations {\r\n                    id\r\n                }\r\n                matters {\r\n                    totalCount\r\n                    totalMatterCount\r\n                }\r\n                mattersReferred {\r\n                    totalCount\r\n                }\r\n                partyType {\r\n                    isClient\r\n                    isIndividual\r\n                    isOrganisation\r\n                    isReferrer\r\n                    isStaff\r\n                    isUser\r\n                }\r\n                tags {\r\n                    guidId\r\n                    tag\r\n                    tagGuidId\r\n                }\r\n                documentCount {\r\n                    partyDocumentTotalCount\r\n                }\r\n            }\r\n            ... on Individual {\r\n                id\r\n                guid\r\n                lastName\r\n                firstName\r\n                nameNotes\r\n                isFromDataSource\r\n                middleName\r\n                dateOfBirth\r\n                displayName\r\n                hasMarketingConsent\r\n                phoneNumbers {\r\n                    partyId\r\n                    type\r\n                    number\r\n                    extension\r\n                    sequence\r\n                }\r\n                addresses {\r\n                    type\r\n                    sequence\r\n                    display\r\n                }\r\n                emailAddresses {\r\n                    partyId\r\n                    type\r\n                    email\r\n                    sequence\r\n                }\r\n                relatedIndividuals {\r\n                    id\r\n                }\r\n                relatedOrganisations {\r\n                    id\r\n                }\r\n                matters {\r\n                    totalCount\r\n                    totalMatterCount\r\n                }\r\n                mattersReferred {\r\n                    totalCount\r\n                }\r\n                partyType {\r\n                    isClient\r\n                    isIndividual\r\n                    isOrganisation\r\n                    isReferrer\r\n                    isStaff\r\n                    isUser\r\n                }\r\n                tags {\r\n                    guidId\r\n                    tag\r\n                    tagGuidId\r\n                }\r\n                documentCount {\r\n                    partyDocumentTotalCount\r\n                }\r\n            }\r\n            ... on Organisation {\r\n                id\r\n                guid\r\n                longName\r\n                nameNotes\r\n                isFromDataSource\r\n                hasMarketingConsent\r\n                phoneNumbers {\r\n                    partyId\r\n                    type\r\n                    number\r\n                    extension\r\n                    sequence\r\n                }\r\n                addresses {\r\n                    type\r\n                    sequence\r\n                    display\r\n                }\r\n                emailAddresses {\r\n                    partyId\r\n                    type\r\n                    email\r\n                    sequence\r\n                }\r\n                relatedIndividuals {\r\n                    id\r\n                }\r\n                relatedOrganisations {\r\n                    id\r\n                }\r\n                matters {\r\n                    totalCount\r\n                    totalMatterCount\r\n                }\r\n                mattersReferred {\r\n                    totalCount\r\n                }\r\n                partyType {\r\n                    isClient\r\n                    isIndividual\r\n                    isOrganisation\r\n                    isReferrer\r\n                    isStaff\r\n                    isUser\r\n                }\r\n                tags {\r\n                    guidId\r\n                    tag\r\n                    tagGuidId\r\n                }\r\n                documentCount {\r\n                    partyDocumentTotalCount\r\n                }\r\n            }\r\n        }\r\n        partyWebsite: partydetails(nameId: $nameId, isFromDataSource: $isFromDataSource) {\r\n            __typename\r\n            ... on Staff {\r\n                id\r\n                lastName\r\n                website\r\n            }\r\n            ... on Individual {\r\n                id\r\n                lastName\r\n                website\r\n            }\r\n            ... on Organisation {\r\n                id\r\n                longName\r\n                website\r\n            }\r\n        }\r\n        options {\r\n            matterOptions(matterId: $matterId) {\r\n                canShowGeneral\r\n                canShowFinancials\r\n                canShowDocuments\r\n            }\r\n        }\r\n        appUser {\r\n            isInternal\r\n        }\r\n    }\r\n`;\r\n\r\nexport const nameAccessActivityMutation = gql`\r\n    mutation AddUserPartyActivityAccess ($nameId: Int, $nameGuid: String, $isFromDataSource: Boolean) {\r\n        addUserPartyAccessActivity (nameId: $nameId, nameGuid: $nameGuid, isFromDataSource: $isFromDataSource)\r\n    }\r\n`;\r\n\r\nconst PoBoxTypeQuery = gql`\r\n    query PoBoxType{\r\n        lookup {\r\n            poBoxType{\r\n                id,\r\n                guidId,\r\n                description,\r\n                sequence\r\n            }\r\n        }\r\n    }\r\n`;\r\n\r\nexport type PoBoxTyeData = {\r\n    lookup: Lookup;\r\n};\r\n\r\nexport type Lookup = {\r\n    poBoxType: PoBoxType[];\r\n};\r\n\r\nexport type PoBoxType = {\r\n    id:          number;\r\n    guidId:      string;\r\n    description: string;\r\n    sequence:    number;\r\n};\r\n\r\nexport function fetchPOBoxTypeData(\r\n    refreshData: boolean,\r\n    onSuccess: (data: PoBoxTyeData) => void,\r\n    // tslint:disable-next-line:no-any\r\n    onError: (reason: any) => void,\r\n): void {\r\n    var fetchPolicy: FetchPolicy = refreshData === true ? 'network-only' : 'cache-first';\r\n    client\r\n        .query({\r\n            query: PoBoxTypeQuery,\r\n            variables: {},\r\n            fetchPolicy: fetchPolicy,\r\n        })\r\n        // tslint:disable-next-line:no-any\r\n        .then((results: { data: any }) => {\r\n            onSuccess(results.data);\r\n        })\r\n        // tslint:disable-next-line:no-any\r\n        .catch((reason: any) => {\r\n            onError(reason);\r\n        });\r\n}\r\n\r\nexport type DeletePartyImageParams = {\r\n    partyGuid: string;\r\n    isFromDataSource: boolean;\r\n};\r\n\r\nexport type DeletePartyImageData = {\r\n    crm: CRM;\r\n};\r\n\r\ntype CRM = {\r\n    party: Party;\r\n};\r\n\r\ntype Party = {\r\n    deletePartyImage: DeletePartyImage;\r\n};\r\n\r\ntype DeletePartyImage = {\r\n    error:  null;\r\n    status: boolean;\r\n};\r\n\r\nexport const DeletePartyImageMutation = gql`\r\n    mutation DeletePartyImage($partyGuid: String, $isFromDataSource: Boolean) {\r\n        crm {\r\n            party {\r\n                deletePartyImage(partyGuid: $partyGuid, isFromDataSource: $isFromDataSource) {\r\n                    error\r\n                    status\r\n                }\r\n            }\r\n        }\r\n    }\r\n`;","// tslint:disable-next-line:max-line-length\r\nimport { Button, createStyles, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Theme, withStyles, WithStyles } from '@material-ui/core';\r\nimport * as React from 'react';\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n    wrapper: {\r\n        \r\n    },\r\n});\r\n\r\ninterface DialogBoxProps extends WithStyles<typeof styles> {\r\n    className?: string;\r\n    isAgree?: (agree: boolean) => void;\r\n    ariaLabelledBy?: string;\r\n    ariaDescribedBy?: string;\r\n    title?: string;\r\n    disAgreeLabel?: string;\r\n    agreeLabel?: string;\r\n    content?: string;\r\n    show: boolean;\r\n    alert?: React.ReactNode;\r\n    disablePortal?: boolean;\r\n    hideDisagree?: boolean;\r\n}\r\n\r\n// tslint:disable-next-line:no-empty-interface\r\ninterface DialogBoxStates {\r\n    show: boolean;\r\n}\r\n\r\nclass DialogBox extends React.Component<DialogBoxProps, DialogBoxStates> {\r\n    // tslint:disable-next-line:no-any\r\n    constructor(props: DialogBoxProps, context?: any) {\r\n        super(props);\r\n        this.handleClose = this.handleClose.bind(this);\r\n        this.handleOk = this.handleOk.bind(this);\r\n        this.state = {\r\n            show: this.props.show\r\n        };\r\n    }\r\n\r\n    public UNSAFE_componentWillReceiveProps(nextProps: DialogBoxProps) {\r\n        this.setState({show: nextProps.show});\r\n    }\r\n\r\n    public render() {\r\n        // const { classes } = this.props;\r\n        if (!this.props.show) {\r\n            return null;\r\n        }\r\n        return (\r\n           <React.Fragment>\r\n                {/* <div className={classes.wrapper + ' ' + this.props.className}> */}\r\n                    <Dialog\r\n                        open={this.state.show}\r\n                        onClose={this.handleClose}\r\n                        aria-labelledby={this.props.ariaLabelledBy}\r\n                        aria-describedby={this.props.ariaDescribedBy}\r\n                        maxWidth=\"sm\"\r\n                        fullWidth={true}\r\n                        disablePortal={this.props.disablePortal}\r\n                    >\r\n                        <DialogTitle id={this.props.ariaLabelledBy}>{this.props.title}</DialogTitle>\r\n                        <DialogContent>\r\n                            {this.props.children}\r\n                            <DialogContentText id={this.props.ariaDescribedBy}>\r\n                                {this.props.content}\r\n                            </DialogContentText>\r\n                            {this.props.alert}\r\n                        </DialogContent>\r\n                        <DialogActions>\r\n                            {!this.props.hideDisagree && this.handleClose &&\r\n                                <Button onClick={this.handleClose} color=\"primary\">\r\n                                {this.props.disAgreeLabel ? this.props.disAgreeLabel : 'No'}\r\n                                </Button>\r\n                            }\r\n                            <Button onClick={this.handleOk} color=\"primary\" autoFocus={true}>\r\n                            {this.props.agreeLabel ? this.props.agreeLabel : 'Yes'}\r\n                            </Button>\r\n                        </DialogActions>\r\n                    </Dialog>\r\n                {/* </div> */}\r\n           </React.Fragment>\r\n        );\r\n    }\r\n\r\n    private handleClose(event: React.MouseEvent<HTMLElement>) {\r\n        event.preventDefault();\r\n        event.stopPropagation();\r\n        this.setState({ show: false });\r\n        if (this.props.isAgree) {\r\n            return this.props.isAgree(false);\r\n        }\r\n    }\r\n\r\n    private handleOk(event: React.MouseEvent<HTMLElement>) {\r\n        event.preventDefault();\r\n        event.stopPropagation();\r\n        this.setState({ show: false });\r\n        if (this.props.isAgree) {\r\n            return this.props.isAgree(true);\r\n        }\r\n    }\r\n}\r\n\r\n// tslint:disable-next-line:no-any\r\nexport default withStyles(styles as any, { withTheme: true })(DialogBox as any) as any;"],"sourceRoot":""}