/ src / lib / components / splits / types.ts
types.ts
  1  import { gql } from 'graphql-request';
  2  import { PROJECT_AVATAR_FRAGMENT } from '../project-avatar/project-avatar.svelte';
  3  import { PROJECT_BADGE_FRAGMENT } from '../project-badge/project-badge.svelte';
  4  import type {
  5    SplitsComponentAddressReceiverFragment,
  6    SplitsComponentDripListReceiverFragment,
  7    SplitsComponentProjectReceiverFragment,
  8    SplitsComponentEcosystemReceiverFragment,
  9    SplitsComponentSubListReceiverFragment,
 10    SplitsComponentOrcidReceiverFragment,
 11  } from './__generated__/gql.generated';
 12  import { DRIP_LIST_BADGE_FRAGMENT } from '../drip-list-badge/drip-list-badge.svelte';
 13  
 14  export const SPLITS_COMPONENT_PROJECT_FRAGMENT = gql`
 15    ${PROJECT_BADGE_FRAGMENT}
 16    fragment SplitsComponentProject on Project {
 17      ...ProjectBadge
 18      source {
 19        repoName
 20        ownerName
 21      }
 22      isVisible
 23      chainData {
 24        ... on ClaimedProjectData {
 25          chain
 26          owner {
 27            address
 28          }
 29          color
 30        }
 31      }
 32    }
 33  `;
 34  
 35  export const SPLITS_COMPONENT_DRIP_LIST_FRAGMENT = gql`
 36    ${DRIP_LIST_BADGE_FRAGMENT}
 37    fragment SplitsComponentDripList on DripList {
 38      ...DripListBadge
 39      account {
 40        accountId
 41      }
 42      isVisible
 43      name
 44      owner {
 45        address
 46      }
 47    }
 48  `;
 49  
 50  export const SPLITS_COMPONENT_PROJECT_RECEIVER_FRAGMENT = gql`
 51    ${SPLITS_COMPONENT_PROJECT_FRAGMENT}
 52    fragment SplitsComponentProjectReceiver on ProjectReceiver {
 53      weight
 54      project {
 55        ...SplitsComponentProject
 56      }
 57    }
 58  `;
 59  
 60  export const SPLITS_COMPONENT_DRIP_LIST_RECEIVER_FRAGMENT = gql`
 61    ${SPLITS_COMPONENT_DRIP_LIST_FRAGMENT}
 62    fragment SplitsComponentDripListReceiver on DripListReceiver {
 63      weight
 64      dripList {
 65        chain
 66        ...SplitsComponentDripList
 67      }
 68    }
 69  `;
 70  
 71  export const SPLITS_COMPONENT_ADDRESS_RECEIVER_FRAGMENT = gql`
 72    fragment SplitsComponentAddressReceiver on AddressReceiver {
 73      weight
 74      account {
 75        address
 76      }
 77    }
 78  `;
 79  
 80  export const SPLITS_COMPONENT_ECOSYSTEM_RECEIVER_FRAGMENT = gql`
 81    fragment SplitsComponentEcosystemReceiver on EcosystemMainAccountReceiver {
 82      weight
 83      ecosystemMainAccount {
 84        account {
 85          accountId
 86        }
 87      }
 88    }
 89  `;
 90  
 91  export const SPLITS_COMPONENT_SUB_LIST_RECEIVER_FRAGMENT = gql`
 92    fragment SplitsComponentSubListReceiver on SubListReceiver {
 93      weight
 94      subList {
 95        account {
 96          accountId
 97        }
 98      }
 99    }
100  `;
101  
102  export const SPLITS_COMPONENT_ORCID_RECEIVER_FRAGMENT = gql`
103    fragment SplitsComponentOrcidReceiver on LinkedIdentityReceiver {
104      weight
105      linkedIdentity {
106        ... on OrcidLinkedIdentity {
107          chain
108          isClaimed
109          areSplitsValid
110          account {
111            accountId
112          }
113          orcid
114          orcidMetadata {
115            givenName
116            familyName
117          }
118        }
119      }
120    }
121  `;
122  
123  export const SPLITS_COMPONENT_PROJECT_SPLITS_FRAGMENT = gql`
124    ${PROJECT_AVATAR_FRAGMENT}
125    ${SPLITS_COMPONENT_PROJECT_RECEIVER_FRAGMENT}
126    ${SPLITS_COMPONENT_DRIP_LIST_RECEIVER_FRAGMENT}
127    ${SPLITS_COMPONENT_ADDRESS_RECEIVER_FRAGMENT}
128    ${SPLITS_COMPONENT_ECOSYSTEM_RECEIVER_FRAGMENT}
129    ${SPLITS_COMPONENT_SUB_LIST_RECEIVER_FRAGMENT}
130    ${SPLITS_COMPONENT_ORCID_RECEIVER_FRAGMENT}
131    fragment SplitsComponentProjectSplits on ProjectData {
132      ... on ClaimedProjectData {
133        splits {
134          dependencies {
135            ... on AddressReceiver {
136              ...SplitsComponentAddressReceiver
137            }
138            ... on ProjectReceiver {
139              ...SplitsComponentProjectReceiver
140            }
141            ... on DripListReceiver {
142              ...SplitsComponentDripListReceiver
143            }
144            ... on EcosystemMainAccountReceiver {
145              ...SplitsComponentEcosystemReceiver
146            }
147            ... on SubListReceiver {
148              ...SplitsComponentSubListReceiver
149            }
150            ... on LinkedIdentityReceiver {
151              ...SplitsComponentOrcidReceiver
152            }
153          }
154          maintainers {
155            ... on AddressReceiver {
156              ...SplitsComponentAddressReceiver
157            }
158          }
159        }
160      }
161    }
162  `;
163  
164  export type SplitsComponentSplitsReceiver =
165    | SplitsComponentAddressReceiverFragment
166    | SplitsComponentDripListReceiverFragment
167    | SplitsComponentProjectReceiverFragment
168    | SplitsComponentEcosystemReceiverFragment
169    | SplitsComponentSubListReceiverFragment
170    | SplitsComponentOrcidReceiverFragment;
171  
172  export type Splits = (SplitGroup | SplitsComponentSplitsReceiver)[];
173  
174  export interface SplitGroup {
175    __typename: 'SplitGroup';
176    list: Splits;
177    name?: string;
178  }