@procivis/one-react-native-components 0.3.99 → 0.3.106

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/lib/commonjs/components/history/history-list-item-icon.js +5 -3
  2. package/lib/commonjs/components/history/history-list-item-icon.js.map +1 -1
  3. package/lib/commonjs/components/history/history-list-screen.js +1 -0
  4. package/lib/commonjs/components/history/history-list-screen.js.map +1 -1
  5. package/lib/commonjs/components/proof-request/v1/share-credential.js +2 -14
  6. package/lib/commonjs/components/proof-request/v1/share-credential.js.map +1 -1
  7. package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js +1 -0
  8. package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
  9. package/lib/commonjs/components/proof-request/v2/share-credential-v2.js +1 -0
  10. package/lib/commonjs/components/proof-request/v2/share-credential-v2.js.map +1 -1
  11. package/lib/commonjs/ui-components/buttons/connectivity-button.js +1 -0
  12. package/lib/commonjs/ui-components/buttons/connectivity-button.js.map +1 -1
  13. package/lib/commonjs/ui-components/buttons/filter-button.js +1 -0
  14. package/lib/commonjs/ui-components/buttons/filter-button.js.map +1 -1
  15. package/lib/commonjs/ui-components/buttons/ghost-button.js +1 -0
  16. package/lib/commonjs/ui-components/buttons/ghost-button.js.map +1 -1
  17. package/lib/commonjs/ui-components/buttons/hold-button.js +1 -0
  18. package/lib/commonjs/ui-components/buttons/hold-button.js.map +1 -1
  19. package/lib/commonjs/ui-components/buttons/scan-button.js +3 -0
  20. package/lib/commonjs/ui-components/buttons/scan-button.js.map +1 -1
  21. package/lib/commonjs/ui-components/buttons/share-button.js +1 -0
  22. package/lib/commonjs/ui-components/buttons/share-button.js.map +1 -1
  23. package/lib/commonjs/ui-components/control/checkbox.js +1 -0
  24. package/lib/commonjs/ui-components/control/checkbox.js.map +1 -1
  25. package/lib/commonjs/ui-components/credential/card/credential-card.js +1 -0
  26. package/lib/commonjs/ui-components/credential/card/credential-card.js.map +1 -1
  27. package/lib/commonjs/ui-components/credential/card/credential-details-card.js +3 -1
  28. package/lib/commonjs/ui-components/credential/card/credential-details-card.js.map +1 -1
  29. package/lib/commonjs/ui-components/credential/card/credential-details-list-item.js +1 -0
  30. package/lib/commonjs/ui-components/credential/card/credential-details-list-item.js.map +1 -1
  31. package/lib/commonjs/ui-components/credential/card/credential-header.js +1 -0
  32. package/lib/commonjs/ui-components/credential/card/credential-header.js.map +1 -1
  33. package/lib/commonjs/ui-components/credential/card/credential-image-carousel.js +2 -0
  34. package/lib/commonjs/ui-components/credential/card/credential-image-carousel.js.map +1 -1
  35. package/lib/commonjs/ui-components/credential/credential-attribute-item.js +1 -0
  36. package/lib/commonjs/ui-components/credential/credential-attribute-item.js.map +1 -1
  37. package/lib/commonjs/ui-components/credential/credential-carousel-images.js +2 -1
  38. package/lib/commonjs/ui-components/credential/credential-carousel-images.js.map +1 -1
  39. package/lib/commonjs/ui-components/credential/selector.js +1 -0
  40. package/lib/commonjs/ui-components/credential/selector.js.map +1 -1
  41. package/lib/commonjs/ui-components/entity/avatar.js +1 -0
  42. package/lib/commonjs/ui-components/entity/avatar.js.map +1 -1
  43. package/lib/commonjs/ui-components/header/foldable-header.js +26 -16
  44. package/lib/commonjs/ui-components/header/foldable-header.js.map +1 -1
  45. package/lib/commonjs/ui-components/header/navigation-header.js +1 -0
  46. package/lib/commonjs/ui-components/header/navigation-header.js.map +1 -1
  47. package/lib/commonjs/ui-components/history/history-details.js +3 -1
  48. package/lib/commonjs/ui-components/history/history-details.js.map +1 -1
  49. package/lib/commonjs/ui-components/icons/history.js +1 -0
  50. package/lib/commonjs/ui-components/icons/history.js.map +1 -1
  51. package/lib/commonjs/ui-components/index.js +11 -0
  52. package/lib/commonjs/ui-components/index.js.map +1 -1
  53. package/lib/commonjs/ui-components/notice/index.js +14 -0
  54. package/lib/commonjs/ui-components/notice/index.js.map +1 -0
  55. package/lib/commonjs/ui-components/notice/wallet-notice.js +80 -0
  56. package/lib/commonjs/ui-components/notice/wallet-notice.js.map +1 -0
  57. package/lib/commonjs/ui-components/pin/keypad.js +1 -0
  58. package/lib/commonjs/ui-components/pin/keypad.js.map +1 -1
  59. package/lib/commonjs/ui-components/pin/pins.js +1 -0
  60. package/lib/commonjs/ui-components/pin/pins.js.map +1 -1
  61. package/lib/commonjs/ui-components/settings/setting-item.js +1 -0
  62. package/lib/commonjs/ui-components/settings/setting-item.js.map +1 -1
  63. package/lib/commonjs/ui-components/settings/settings-button.js +1 -0
  64. package/lib/commonjs/ui-components/settings/settings-button.js.map +1 -1
  65. package/lib/commonjs/utils/hooks/core/proofs.js +12 -2
  66. package/lib/commonjs/utils/hooks/core/proofs.js.map +1 -1
  67. package/lib/commonjs/utils/parsers/credential-images.js +1 -1
  68. package/lib/commonjs/utils/parsers/credential-images.js.map +1 -1
  69. package/lib/commonjs/utils/parsers/credential-sharing-v2.js +1 -1
  70. package/lib/commonjs/utils/parsers/credential-sharing-v2.js.map +1 -1
  71. package/lib/commonjs/utils/parsers/credential-sharing.js +4 -10
  72. package/lib/commonjs/utils/parsers/credential-sharing.js.map +1 -1
  73. package/lib/commonjs/utils/parsers/credential.js.map +1 -1
  74. package/lib/module/components/history/history-list-item-icon.js +5 -3
  75. package/lib/module/components/history/history-list-item-icon.js.map +1 -1
  76. package/lib/module/components/history/history-list-screen.js +1 -0
  77. package/lib/module/components/history/history-list-screen.js.map +1 -1
  78. package/lib/module/components/proof-request/v1/share-credential.js +2 -14
  79. package/lib/module/components/proof-request/v1/share-credential.js.map +1 -1
  80. package/lib/module/components/proof-request/v2/share-credential-v2-group.js +1 -0
  81. package/lib/module/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
  82. package/lib/module/components/proof-request/v2/share-credential-v2.js +1 -0
  83. package/lib/module/components/proof-request/v2/share-credential-v2.js.map +1 -1
  84. package/lib/module/ui-components/buttons/connectivity-button.js +1 -0
  85. package/lib/module/ui-components/buttons/connectivity-button.js.map +1 -1
  86. package/lib/module/ui-components/buttons/filter-button.js +1 -0
  87. package/lib/module/ui-components/buttons/filter-button.js.map +1 -1
  88. package/lib/module/ui-components/buttons/ghost-button.js +1 -0
  89. package/lib/module/ui-components/buttons/ghost-button.js.map +1 -1
  90. package/lib/module/ui-components/buttons/hold-button.js +1 -0
  91. package/lib/module/ui-components/buttons/hold-button.js.map +1 -1
  92. package/lib/module/ui-components/buttons/scan-button.js +3 -0
  93. package/lib/module/ui-components/buttons/scan-button.js.map +1 -1
  94. package/lib/module/ui-components/buttons/share-button.js +1 -0
  95. package/lib/module/ui-components/buttons/share-button.js.map +1 -1
  96. package/lib/module/ui-components/control/checkbox.js +1 -0
  97. package/lib/module/ui-components/control/checkbox.js.map +1 -1
  98. package/lib/module/ui-components/credential/card/credential-card.js +1 -0
  99. package/lib/module/ui-components/credential/card/credential-card.js.map +1 -1
  100. package/lib/module/ui-components/credential/card/credential-details-card.js +3 -1
  101. package/lib/module/ui-components/credential/card/credential-details-card.js.map +1 -1
  102. package/lib/module/ui-components/credential/card/credential-details-list-item.js +1 -0
  103. package/lib/module/ui-components/credential/card/credential-details-list-item.js.map +1 -1
  104. package/lib/module/ui-components/credential/card/credential-header.js +1 -0
  105. package/lib/module/ui-components/credential/card/credential-header.js.map +1 -1
  106. package/lib/module/ui-components/credential/card/credential-image-carousel.js +2 -0
  107. package/lib/module/ui-components/credential/card/credential-image-carousel.js.map +1 -1
  108. package/lib/module/ui-components/credential/credential-attribute-item.js +1 -0
  109. package/lib/module/ui-components/credential/credential-attribute-item.js.map +1 -1
  110. package/lib/module/ui-components/credential/credential-carousel-images.js +2 -1
  111. package/lib/module/ui-components/credential/credential-carousel-images.js.map +1 -1
  112. package/lib/module/ui-components/credential/selector.js +1 -0
  113. package/lib/module/ui-components/credential/selector.js.map +1 -1
  114. package/lib/module/ui-components/entity/avatar.js +1 -0
  115. package/lib/module/ui-components/entity/avatar.js.map +1 -1
  116. package/lib/module/ui-components/header/foldable-header.js +26 -16
  117. package/lib/module/ui-components/header/foldable-header.js.map +1 -1
  118. package/lib/module/ui-components/header/navigation-header.js +1 -0
  119. package/lib/module/ui-components/header/navigation-header.js.map +1 -1
  120. package/lib/module/ui-components/history/history-details.js +3 -1
  121. package/lib/module/ui-components/history/history-details.js.map +1 -1
  122. package/lib/module/ui-components/icons/history.js +1 -0
  123. package/lib/module/ui-components/icons/history.js.map +1 -1
  124. package/lib/module/ui-components/index.js +1 -0
  125. package/lib/module/ui-components/index.js.map +1 -1
  126. package/lib/module/ui-components/notice/index.js +3 -0
  127. package/lib/module/ui-components/notice/index.js.map +1 -0
  128. package/lib/module/ui-components/notice/wallet-notice.js +72 -0
  129. package/lib/module/ui-components/notice/wallet-notice.js.map +1 -0
  130. package/lib/module/ui-components/pin/keypad.js +1 -0
  131. package/lib/module/ui-components/pin/keypad.js.map +1 -1
  132. package/lib/module/ui-components/pin/pins.js +1 -0
  133. package/lib/module/ui-components/pin/pins.js.map +1 -1
  134. package/lib/module/ui-components/settings/setting-item.js +1 -0
  135. package/lib/module/ui-components/settings/setting-item.js.map +1 -1
  136. package/lib/module/ui-components/settings/settings-button.js +1 -0
  137. package/lib/module/ui-components/settings/settings-button.js.map +1 -1
  138. package/lib/module/utils/hooks/core/proofs.js +12 -2
  139. package/lib/module/utils/hooks/core/proofs.js.map +1 -1
  140. package/lib/module/utils/parsers/credential-images.js +1 -1
  141. package/lib/module/utils/parsers/credential-images.js.map +1 -1
  142. package/lib/module/utils/parsers/credential-sharing-v2.js +1 -1
  143. package/lib/module/utils/parsers/credential-sharing-v2.js.map +1 -1
  144. package/lib/module/utils/parsers/credential-sharing.js +4 -10
  145. package/lib/module/utils/parsers/credential-sharing.js.map +1 -1
  146. package/lib/module/utils/parsers/credential.js.map +1 -1
  147. package/lib/typescript/ui-components/index.d.ts +1 -0
  148. package/lib/typescript/ui-components/notice/index.d.ts +2 -0
  149. package/lib/typescript/ui-components/notice/wallet-notice.d.ts +11 -0
  150. package/lib/typescript/utils/hooks/core/proofs.d.ts +5 -3
  151. package/lib/typescript/utils/parsers/credential-sharing.d.ts +2 -2
  152. package/lib/typescript/utils/parsers/credential.d.ts +2 -29
  153. package/package.json +3 -3
  154. package/src/components/history/history-list-item-icon.tsx +4 -2
  155. package/src/components/history/history-list-screen.tsx +1 -0
  156. package/src/components/proof-request/v1/share-credential.tsx +1 -18
  157. package/src/components/proof-request/v2/share-credential-v2-group.tsx +1 -0
  158. package/src/components/proof-request/v2/share-credential-v2.tsx +1 -0
  159. package/src/ui-components/buttons/connectivity-button.tsx +1 -0
  160. package/src/ui-components/buttons/filter-button.tsx +1 -0
  161. package/src/ui-components/buttons/ghost-button.tsx +1 -0
  162. package/src/ui-components/buttons/hold-button.tsx +1 -0
  163. package/src/ui-components/buttons/scan-button.tsx +3 -0
  164. package/src/ui-components/buttons/share-button.tsx +1 -0
  165. package/src/ui-components/control/checkbox.tsx +1 -0
  166. package/src/ui-components/credential/card/credential-card.tsx +1 -0
  167. package/src/ui-components/credential/card/credential-details-card.tsx +2 -0
  168. package/src/ui-components/credential/card/credential-details-list-item.tsx +1 -0
  169. package/src/ui-components/credential/card/credential-header.tsx +1 -0
  170. package/src/ui-components/credential/card/credential-image-carousel.tsx +2 -2
  171. package/src/ui-components/credential/credential-attribute-item.tsx +1 -0
  172. package/src/ui-components/credential/credential-carousel-images.tsx +1 -0
  173. package/src/ui-components/credential/selector.tsx +1 -0
  174. package/src/ui-components/entity/avatar.tsx +1 -0
  175. package/src/ui-components/header/foldable-header.tsx +27 -20
  176. package/src/ui-components/header/navigation-header.tsx +1 -0
  177. package/src/ui-components/history/history-details.tsx +2 -0
  178. package/src/ui-components/icons/history.tsx +1 -0
  179. package/src/ui-components/index.ts +1 -0
  180. package/src/ui-components/notice/index.ts +3 -0
  181. package/src/ui-components/notice/wallet-notice.tsx +82 -0
  182. package/src/ui-components/pin/keypad.tsx +1 -0
  183. package/src/ui-components/pin/pins.tsx +1 -0
  184. package/src/ui-components/settings/setting-item.tsx +1 -0
  185. package/src/ui-components/settings/settings-button.tsx +1 -0
  186. package/src/utils/hooks/core/proofs.ts +10 -2
  187. package/src/utils/parsers/credential-images.tsx +1 -1
  188. package/src/utils/parsers/credential-sharing-v2.tsx +0 -1
  189. package/src/utils/parsers/credential-sharing.tsx +1 -10
  190. package/src/utils/parsers/credential.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_credential","_icons","_testID","_credential2","e","__esModule","default","validityCheckedCardFromCredential","credential","invalidLVVC","expanded","multipleCredentialsAvailable","config","notice","testID","labels","credentialHeaderDetail","credentialDetailErrorColor","credentialDetailPrimary","revoked","credentialDetailTestID","concatTestID","multipleCredentials","statusIcon","CredentialWarningIcon","card","getCredentialCardPropsFromCredential","claims","header","exports","missingCredentialCardFromRequest","request","_request$name","cardImage","undefined","color","missingCredential","credentialName","name","id","getAttributeSelectorStatus","field","validityState","claim","selected","ValidityState","Valid","SelectorStatus","Rejected","required","Required","Disabled","SelectedCheckmark","Empty","spreadClaims","reduce","acc","result","value","type_","nestedClaimsWithPath","map","c","isArrayElement","schema","array","path","split","pop","key","push","getDisplayedAttributes","selectiveDisclosureSupported","selectedFields","isApplicable","applicableCredentials","includes","fields","fieldsWithNoKeyMapping","filter","keyMap","fullyNestedFields","getFullyNestedFields","find","status","credentialId","allKeys","every","k","startsWith","shareCredentialCardAttributeFromClaim","_field$name$split$pop","_field$name","_field$name2","detailsCardAttributeFromClaim","listValue","missingAttribute","valueErrorColor","setStatusForNestedObjectOrArrayFields","attribute","disabled","accessory","createElement","Selector","isObject","attributes","length","isArray","values","rightAccessory","_attribute$attributes","nested","nestedAttribute","shareCredentialCardFromCredential","_credential$issuer","_credential$issuer2","supportsSelectiveDisclosure","issuer","text","selectiveDisclosureNotice","noticeIcon","CredentialNoticeWarningIcon","cardTestId","getValidityState","displayedAttributes","index","nestAttributes","selectCredentialCardAttributeFromClaim","RequiredAttributeIcon","selectCredentialCardFromCredential","_credential$issuer3","SelectedRadio","cardProps"],"sources":["credential-sharing.tsx"],"sourcesContent":["import {\n ClaimBindingDto,\n Config,\n CredentialDetailBindingDto,\n PresentationDefinitionFieldBindingDto,\n PresentationDefinitionRequestedCredentialBindingDto,\n} from '@procivis/react-native-one-core';\nimport React from 'react';\n\nimport {\n CredentialAttribute,\n CredentialCardProps,\n CredentialHeaderProps,\n Selector,\n SelectorStatus,\n} from '../../ui-components/credential';\nimport { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';\nimport { CredentialNoticeWarningIcon, CredentialWarningIcon, RequiredAttributeIcon } from '../../ui-components/icons';\nimport { concatTestID } from '../testID';\nimport {\n CardLabels,\n CredentialDetailsCardPropsWithoutWidth,\n detailsCardAttributeFromClaim,\n getCredentialCardPropsFromCredential,\n getValidityState,\n nestAttributes,\n supportsSelectiveDisclosure,\n ValidityState,\n} from './credential';\n\nexport const validityCheckedCardFromCredential = (\n credential: CredentialDetailBindingDto,\n invalidLVVC: boolean,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n config: Config,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'testID' | 'width'> => {\n let credentialHeaderDetail:\n | Pick<\n CredentialHeaderProps,\n | 'credentialDetailPrimary'\n | 'credentialDetailSecondary'\n | 'credentialDetailErrorColor'\n | 'credentialDetailTestID'\n | 'statusIcon'\n >\n | undefined;\n if (invalidLVVC) {\n credentialHeaderDetail = {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.revoked,\n credentialDetailTestID: concatTestID(testID, 'header.invalid'),\n };\n } else if (!expanded && multipleCredentialsAvailable) {\n credentialHeaderDetail = {\n credentialDetailPrimary: labels.multipleCredentials,\n credentialDetailTestID: concatTestID(testID, 'header.multiple'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n const card = getCredentialCardPropsFromCredential(credential, credential.claims, config, notice, testID, labels);\n return {\n ...card,\n header: {\n ...card.header,\n ...credentialHeaderDetail,\n },\n };\n};\n\nexport const missingCredentialCardFromRequest = (\n request: PresentationDefinitionRequestedCredentialBindingDto,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n return {\n cardImage: undefined,\n color: undefined,\n testID,\n header: {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.missingCredential,\n credentialDetailTestID: concatTestID(testID, 'header.missing'),\n credentialName: request.name ?? request.id,\n statusIcon: CredentialWarningIcon,\n },\n ...notice,\n };\n};\n\ninterface DisplayedAttribute {\n claim?: FlatClaim;\n field?: PresentationDefinitionFieldBindingDto;\n id: string;\n selected?: boolean;\n status: SelectorStatus;\n}\n\nconst getAttributeSelectorStatus = (\n field: PresentationDefinitionFieldBindingDto,\n validityState: ValidityState,\n credential?: CredentialDetailBindingDto,\n claim?: ClaimBindingDto,\n selected?: boolean,\n): SelectorStatus => {\n if (!credential || validityState !== ValidityState.Valid) {\n return SelectorStatus.Rejected;\n }\n if (field.required) {\n if (claim) {\n return SelectorStatus.Required;\n } else {\n return SelectorStatus.Rejected;\n }\n }\n if (!claim) {\n return SelectorStatus.Disabled;\n }\n return selected ? SelectorStatus.SelectedCheckmark : SelectorStatus.Empty;\n};\n\ntype FlatClaim = ClaimBindingDto & {\n isArrayElement?: boolean;\n};\n\n// Returns a spread list of all claims with their full JSON path as key, including all intermediate objects\nconst spreadClaims = (claims: ClaimBindingDto[]): FlatClaim[] => {\n return claims.reduce((acc, claim) => {\n const result = [claim];\n if (claim.value.type_ === 'NESTED') {\n const nestedClaimsWithPath: FlatClaim[] = claim.value.value.map((c) => ({\n ...c,\n isArrayElement: claim.schema.array && claim.path.split('/').pop() !== claim.schema.key,\n }));\n result.push(...spreadClaims(nestedClaimsWithPath));\n }\n return [...acc, ...result];\n }, [] as FlatClaim[]);\n};\n\nconst getDisplayedAttributes = (\n request: PresentationDefinitionRequestedCredentialBindingDto,\n validityState: ValidityState,\n credential?: CredentialDetailBindingDto,\n selectiveDisclosureSupported?: boolean,\n selectedFields?: string[],\n): DisplayedAttribute[] => {\n const claims = credential ? spreadClaims(credential.claims) : undefined;\n const isApplicable = credential ? request.applicableCredentials.includes(credential.id) : false;\n\n let fields = request.fields;\n if (credential) {\n const fieldsWithNoKeyMapping = request.fields\n .filter((field) => !(credential.id in field.keyMap))\n .filter((field) => !isApplicable || !field.required);\n const fullyNestedFields = getFullyNestedFields(request.fields, credential.id);\n\n fields = [...fieldsWithNoKeyMapping, ...fullyNestedFields];\n }\n\n return fields.map((field) => {\n const selected = !field.required && selectedFields?.includes(field.id);\n const claim = credential\n ? claims?.find(({ path }) => {\n return path === field.keyMap[credential.id];\n })\n : undefined;\n const status =\n selectiveDisclosureSupported === false\n ? SelectorStatus.Required\n : getAttributeSelectorStatus(field, validityState, credential, claim, selected);\n return { claim, field, id: field.id, selected, status };\n });\n};\n\nconst getFullyNestedFields = (\n fields: PresentationDefinitionRequestedCredentialBindingDto['fields'],\n credentialId: CredentialDetailBindingDto['id'],\n) => {\n const allKeys = fields.filter((field) => credentialId in field.keyMap).map((field) => field.keyMap[credentialId]);\n\n return fields\n .map((field) => ({ field, key: field.keyMap[credentialId] }))\n .filter(({ key }) => key && allKeys.every((k) => !k.startsWith(`${key}/`)))\n .map(({ field }) => field);\n};\n\nexport const shareCredentialCardAttributeFromClaim = (\n id: string,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n claim?: FlatClaim,\n field?: PresentationDefinitionFieldBindingDto,\n): CredentialAttribute => {\n if (claim) {\n return {\n ...detailsCardAttributeFromClaim(claim, config, testID),\n id,\n path: claim.path,\n listValue: claim.isArrayElement,\n };\n }\n return {\n id,\n name: field?.name?.split('/').pop() ?? id,\n path: field?.name ?? id,\n value: labels.missingAttribute,\n valueErrorColor: true,\n };\n};\n\n// Will propagate the attribute status (right accessory + selected?) for all nested attributes\n// Note: This function MUTATES the input attribute\nconst setStatusForNestedObjectOrArrayFields = (\n attribute: CredentialAttribute,\n status?: SelectorStatus,\n disabled?: boolean,\n) => {\n const accessory = status && <Selector status={status} />;\n const isObject = attribute.attributes && attribute.attributes.length > 0;\n const isArray = attribute.values && attribute.values.length > 0;\n\n // If the attribute is not an object or array, we update the attribute and return\n if (!isObject && !isArray) {\n attribute.rightAccessory = accessory;\n attribute.disabled = disabled;\n return attribute;\n }\n\n // The object can be optional (tappable radio-checkmark), or required (checkmark)\n if (status === SelectorStatus.SelectedCheckmark || status === SelectorStatus.Empty) {\n // If it's a selectable object, the accessory is rendered next to the object title,\n // The nested attributes have no accessory, and can not be selected\n attribute.rightAccessory = accessory;\n setStatusForNestedObjectOrArrayFields(attribute, undefined, true);\n } else {\n const nested = attribute.attributes ?? attribute.values;\n // If the object is required / rejected, the accessory is rendered next to each nested attribute (except other object titles)\n // all fields are disabled\n for (const nestedAttribute of nested) {\n setStatusForNestedObjectOrArrayFields(nestedAttribute, status, true);\n }\n }\n};\n\nexport type ShareCredentialCardLabels = CardLabels & {\n selectiveDisclosureNotice: string;\n missingAttribute: string;\n missingCredential: string;\n multipleCredentials: string;\n};\n\nexport const shareCredentialCardFromCredential = (\n credential: CredentialDetailBindingDto | undefined,\n invalidLVVC: boolean,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n request: PresentationDefinitionRequestedCredentialBindingDto,\n selectedFields: string[] | undefined,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n text: labels.selectiveDisclosureNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n }\n : undefined;\n const cardTestId = concatTestID(testID, 'card');\n const card = credential\n ? validityCheckedCardFromCredential(\n credential,\n invalidLVVC,\n expanded,\n multipleCredentialsAvailable,\n config,\n notice,\n cardTestId,\n labels,\n )\n : missingCredentialCardFromRequest(request, notice, cardTestId, labels);\n const validityState = getValidityState(credential ? { ...credential, issuer: credential.issuer?.id } : undefined);\n const displayedAttributes = getDisplayedAttributes(\n request,\n validityState,\n credential,\n selectiveDisclosureSupported,\n selectedFields,\n );\n\n const attributes: CredentialAttribute[] = displayedAttributes.map(({ claim, field, id, selected, status }, index) => {\n const disabled = !credential || !field || field.required || !claim;\n const attribute: CredentialAttribute = {\n ...shareCredentialCardAttributeFromClaim(\n id,\n config,\n concatTestID(testID, 'attribute', `${index}`),\n labels,\n claim,\n field,\n ),\n selected,\n };\n\n setStatusForNestedObjectOrArrayFields(attribute, status, disabled);\n return attribute;\n });\n return {\n attributes: nestAttributes(attributes),\n card,\n };\n};\n\nexport const selectCredentialCardAttributeFromClaim = (\n id: string,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n claim?: FlatClaim,\n field?: PresentationDefinitionFieldBindingDto,\n): CredentialAttribute => {\n const attribute = shareCredentialCardAttributeFromClaim(id, config, testID, labels, claim, field);\n if (!claim) {\n return attribute;\n }\n return {\n ...attribute,\n rightAccessory: RequiredAttributeIcon,\n };\n};\n\nexport const selectCredentialCardFromCredential = (\n credential: CredentialDetailBindingDto,\n selected: boolean,\n request: PresentationDefinitionRequestedCredentialBindingDto,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const rightAccessory = <Selector status={selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty} />;\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n text: labels.selectiveDisclosureNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n }\n : undefined;\n const { header, ...cardProps } = getCredentialCardPropsFromCredential(\n credential,\n credential.claims,\n config,\n notice,\n testID,\n labels,\n );\n const card = {\n header: {\n ...header,\n accessory: rightAccessory,\n },\n ...cardProps,\n };\n const attributes: CredentialAttribute[] = getFullyNestedFields(request.fields, credential.id).map((field) => {\n const claim = spreadClaims(credential.claims).find(({ path }) => {\n return path === field.keyMap[credential.id];\n });\n\n const attribute = selectCredentialCardAttributeFromClaim(field.id, config, testID, labels, claim, field);\n return {\n ...attribute,\n rightAccessory: (\n <Selector status={field.required && !claim ? SelectorStatus.Rejected : SelectorStatus.Required} />\n ),\n };\n });\n return {\n attributes: nestAttributes(attributes),\n card,\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_credential","_icons","_testID","_credential2","e","__esModule","default","validityCheckedCardFromCredential","credential","expanded","multipleCredentialsAvailable","config","notice","testID","labels","credentialHeaderDetail","credentialDetailPrimary","multipleCredentials","credentialDetailTestID","concatTestID","statusIcon","CredentialWarningIcon","card","getCredentialCardPropsFromCredential","claims","header","exports","missingCredentialCardFromRequest","request","_request$name","cardImage","undefined","color","credentialDetailErrorColor","missingCredential","credentialName","name","id","getAttributeSelectorStatus","field","validityState","claim","selected","ValidityState","Valid","SelectorStatus","Rejected","required","Required","Disabled","SelectedCheckmark","Empty","spreadClaims","reduce","acc","result","value","type_","nestedClaimsWithPath","map","c","isArrayElement","schema","array","path","split","pop","key","push","getDisplayedAttributes","selectiveDisclosureSupported","selectedFields","isApplicable","applicableCredentials","includes","fields","fieldsWithNoKeyMapping","filter","keyMap","fullyNestedFields","getFullyNestedFields","find","status","credentialId","allKeys","every","k","startsWith","shareCredentialCardAttributeFromClaim","_field$name$split$pop","_field$name","_field$name2","detailsCardAttributeFromClaim","listValue","missingAttribute","valueErrorColor","setStatusForNestedObjectOrArrayFields","attribute","disabled","accessory","createElement","Selector","isObject","attributes","length","isArray","values","rightAccessory","_attribute$attributes","nested","nestedAttribute","shareCredentialCardFromCredential","_credential$issuer","_credential$issuer2","supportsSelectiveDisclosure","issuer","text","selectiveDisclosureNotice","noticeIcon","CredentialNoticeWarningIcon","cardTestId","getValidityState","displayedAttributes","index","nestAttributes","selectCredentialCardAttributeFromClaim","RequiredAttributeIcon","selectCredentialCardFromCredential","_credential$issuer3","SelectedRadio","cardProps"],"sources":["credential-sharing.tsx"],"sourcesContent":["import {\n ClaimBindingDto,\n Config,\n CredentialDetailBindingDto,\n PresentationDefinitionFieldBindingDto,\n PresentationDefinitionRequestedCredentialBindingDto,\n} from '@procivis/react-native-one-core';\nimport React from 'react';\n\nimport {\n CredentialAttribute,\n CredentialCardProps,\n CredentialHeaderProps,\n Selector,\n SelectorStatus,\n} from '../../ui-components/credential';\nimport { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';\nimport { CredentialNoticeWarningIcon, CredentialWarningIcon, RequiredAttributeIcon } from '../../ui-components/icons';\nimport { concatTestID } from '../testID';\nimport {\n CardLabels,\n CredentialDetailsCardPropsWithoutWidth,\n detailsCardAttributeFromClaim,\n getCredentialCardPropsFromCredential,\n getValidityState,\n nestAttributes,\n supportsSelectiveDisclosure,\n ValidityState,\n} from './credential';\n\nexport const validityCheckedCardFromCredential = (\n credential: CredentialDetailBindingDto,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n config: Config,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'testID' | 'width'> => {\n let credentialHeaderDetail:\n | Pick<\n CredentialHeaderProps,\n | 'credentialDetailPrimary'\n | 'credentialDetailSecondary'\n | 'credentialDetailErrorColor'\n | 'credentialDetailTestID'\n | 'statusIcon'\n >\n | undefined;\n if (!expanded && multipleCredentialsAvailable) {\n credentialHeaderDetail = {\n credentialDetailPrimary: labels.multipleCredentials,\n credentialDetailTestID: concatTestID(testID, 'header.multiple'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n const card = getCredentialCardPropsFromCredential(credential, credential.claims, config, notice, testID, labels);\n return {\n ...card,\n header: {\n ...card.header,\n ...credentialHeaderDetail,\n },\n };\n};\n\nexport const missingCredentialCardFromRequest = (\n request: PresentationDefinitionRequestedCredentialBindingDto,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n return {\n cardImage: undefined,\n color: undefined,\n testID,\n header: {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.missingCredential,\n credentialDetailTestID: concatTestID(testID, 'header.missing'),\n credentialName: request.name ?? request.id,\n statusIcon: CredentialWarningIcon,\n },\n ...notice,\n };\n};\n\ninterface DisplayedAttribute {\n claim?: FlatClaim;\n field?: PresentationDefinitionFieldBindingDto;\n id: string;\n selected?: boolean;\n status: SelectorStatus;\n}\n\nconst getAttributeSelectorStatus = (\n field: PresentationDefinitionFieldBindingDto,\n validityState: ValidityState,\n credential?: CredentialDetailBindingDto,\n claim?: ClaimBindingDto,\n selected?: boolean,\n): SelectorStatus => {\n if (!credential || validityState !== ValidityState.Valid) {\n return SelectorStatus.Rejected;\n }\n if (field.required) {\n if (claim) {\n return SelectorStatus.Required;\n } else {\n return SelectorStatus.Rejected;\n }\n }\n if (!claim) {\n return SelectorStatus.Disabled;\n }\n return selected ? SelectorStatus.SelectedCheckmark : SelectorStatus.Empty;\n};\n\ntype FlatClaim = ClaimBindingDto & {\n isArrayElement?: boolean;\n};\n\n// Returns a spread list of all claims with their full JSON path as key, including all intermediate objects\nconst spreadClaims = (claims: ClaimBindingDto[]): FlatClaim[] => {\n return claims.reduce((acc, claim) => {\n const result = [claim];\n if (claim.value.type_ === 'NESTED') {\n const nestedClaimsWithPath: FlatClaim[] = claim.value.value.map((c) => ({\n ...c,\n isArrayElement: claim.schema.array && claim.path.split('/').pop() !== claim.schema.key,\n }));\n result.push(...spreadClaims(nestedClaimsWithPath));\n }\n return [...acc, ...result];\n }, [] as FlatClaim[]);\n};\n\nconst getDisplayedAttributes = (\n request: PresentationDefinitionRequestedCredentialBindingDto,\n validityState: ValidityState,\n credential?: CredentialDetailBindingDto,\n selectiveDisclosureSupported?: boolean,\n selectedFields?: string[],\n): DisplayedAttribute[] => {\n const claims = credential ? spreadClaims(credential.claims) : undefined;\n const isApplicable = credential ? request.applicableCredentials.includes(credential.id) : false;\n\n let fields = request.fields;\n if (credential) {\n const fieldsWithNoKeyMapping = request.fields\n .filter((field) => !(credential.id in field.keyMap))\n .filter((field) => !isApplicable || !field.required);\n const fullyNestedFields = getFullyNestedFields(request.fields, credential.id);\n\n fields = [...fieldsWithNoKeyMapping, ...fullyNestedFields];\n }\n\n return fields.map((field) => {\n const selected = !field.required && selectedFields?.includes(field.id);\n const claim = credential\n ? claims?.find(({ path }) => {\n return path === field.keyMap[credential.id];\n })\n : undefined;\n const status =\n selectiveDisclosureSupported === false\n ? SelectorStatus.Required\n : getAttributeSelectorStatus(field, validityState, credential, claim, selected);\n return { claim, field, id: field.id, selected, status };\n });\n};\n\nconst getFullyNestedFields = (\n fields: PresentationDefinitionRequestedCredentialBindingDto['fields'],\n credentialId: CredentialDetailBindingDto['id'],\n) => {\n const allKeys = fields.filter((field) => credentialId in field.keyMap).map((field) => field.keyMap[credentialId]);\n\n return fields\n .map((field) => ({ field, key: field.keyMap[credentialId] }))\n .filter(({ key }) => key && allKeys.every((k) => !k.startsWith(`${key}/`)))\n .map(({ field }) => field);\n};\n\nexport const shareCredentialCardAttributeFromClaim = (\n id: string,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n claim?: FlatClaim,\n field?: PresentationDefinitionFieldBindingDto,\n): CredentialAttribute => {\n if (claim) {\n return {\n ...detailsCardAttributeFromClaim(claim, config, testID),\n id,\n path: claim.path,\n listValue: claim.isArrayElement,\n };\n }\n return {\n id,\n name: field?.name?.split('/').pop() ?? id,\n path: field?.name ?? id,\n value: labels.missingAttribute,\n valueErrorColor: true,\n };\n};\n\n// Will propagate the attribute status (right accessory + selected?) for all nested attributes\n// Note: This function MUTATES the input attribute\nconst setStatusForNestedObjectOrArrayFields = (\n attribute: CredentialAttribute,\n status?: SelectorStatus,\n disabled?: boolean,\n) => {\n const accessory = status && <Selector status={status} />;\n const isObject = attribute.attributes && attribute.attributes.length > 0;\n const isArray = attribute.values && attribute.values.length > 0;\n\n // If the attribute is not an object or array, we update the attribute and return\n if (!isObject && !isArray) {\n attribute.rightAccessory = accessory;\n attribute.disabled = disabled;\n return attribute;\n }\n\n // The object can be optional (tappable radio-checkmark), or required (checkmark)\n if (status === SelectorStatus.SelectedCheckmark || status === SelectorStatus.Empty) {\n // If it's a selectable object, the accessory is rendered next to the object title,\n // The nested attributes have no accessory, and can not be selected\n attribute.rightAccessory = accessory;\n setStatusForNestedObjectOrArrayFields(attribute, undefined, true);\n } else {\n const nested = attribute.attributes ?? attribute.values;\n // If the object is required / rejected, the accessory is rendered next to each nested attribute (except other object titles)\n // all fields are disabled\n for (const nestedAttribute of nested) {\n setStatusForNestedObjectOrArrayFields(nestedAttribute, status, true);\n }\n }\n};\n\nexport type ShareCredentialCardLabels = CardLabels & {\n selectiveDisclosureNotice: string;\n missingAttribute: string;\n missingCredential: string;\n multipleCredentials: string;\n};\n\nexport const shareCredentialCardFromCredential = (\n credential: CredentialDetailBindingDto | undefined,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n request: PresentationDefinitionRequestedCredentialBindingDto,\n selectedFields: string[] | undefined,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n text: labels.selectiveDisclosureNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n }\n : undefined;\n const cardTestId = concatTestID(testID, 'card');\n const card = credential\n ? validityCheckedCardFromCredential(\n credential,\n expanded,\n multipleCredentialsAvailable,\n config,\n notice,\n cardTestId,\n labels,\n )\n : missingCredentialCardFromRequest(request, notice, cardTestId, labels);\n const validityState = getValidityState(credential ? { ...credential, issuer: credential.issuer?.id } : undefined);\n const displayedAttributes = getDisplayedAttributes(\n request,\n validityState,\n credential,\n selectiveDisclosureSupported,\n selectedFields,\n );\n\n const attributes: CredentialAttribute[] = displayedAttributes.map(({ claim, field, id, selected, status }, index) => {\n const disabled = !credential || !field || field.required || !claim;\n const attribute: CredentialAttribute = {\n ...shareCredentialCardAttributeFromClaim(\n id,\n config,\n concatTestID(testID, 'attribute', `${index}`),\n labels,\n claim,\n field,\n ),\n selected,\n };\n\n setStatusForNestedObjectOrArrayFields(attribute, status, disabled);\n return attribute;\n });\n return {\n attributes: nestAttributes(attributes),\n card,\n };\n};\n\nexport const selectCredentialCardAttributeFromClaim = (\n id: string,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n claim?: FlatClaim,\n field?: PresentationDefinitionFieldBindingDto,\n): CredentialAttribute => {\n const attribute = shareCredentialCardAttributeFromClaim(id, config, testID, labels, claim, field);\n if (!claim) {\n return attribute;\n }\n return {\n ...attribute,\n rightAccessory: RequiredAttributeIcon,\n };\n};\n\nexport const selectCredentialCardFromCredential = (\n credential: CredentialDetailBindingDto,\n selected: boolean,\n request: PresentationDefinitionRequestedCredentialBindingDto,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const rightAccessory = <Selector status={selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty} />;\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n text: labels.selectiveDisclosureNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n }\n : undefined;\n const { header, ...cardProps } = getCredentialCardPropsFromCredential(\n credential,\n credential.claims,\n config,\n notice,\n testID,\n labels,\n );\n const card = {\n header: {\n ...header,\n accessory: rightAccessory,\n },\n ...cardProps,\n };\n const attributes: CredentialAttribute[] = getFullyNestedFields(request.fields, credential.id).map((field) => {\n const claim = spreadClaims(credential.claims).find(({ path }) => {\n return path === field.keyMap[credential.id];\n });\n\n const attribute = selectCredentialCardAttributeFromClaim(field.id, config, testID, labels, claim, field);\n return {\n ...attribute,\n rightAccessory: (\n <Selector status={field.required && !claim ? SelectorStatus.Rejected : SelectorStatus.Required} />\n ),\n };\n });\n return {\n attributes: nestAttributes(attributes),\n card,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeOneCore","require","_icons","_date","_testID","_credentialImages","ValidityState","exports","getValidityState","credential","state","CredentialStateBindingEnum","REVOKED","Revoked","SUSPENDED","Suspended","Valid","supportsSelectiveDisclosure","config","_formatConfig$capabil","formatConfig","format","schema","Boolean","capabilities","features","includes","FormatFeatureEnum","SelectiveDisclosure","undefined","findClaimByPath","path","claims","exactClaim","find","claim","parentClaim","startsWith","value","type_","formatCredentialDetail","testID","_attributeValue$value","attributeValue","detailsCardAttributeValueFromClaim","hasMsoValidityIssues","_credential$mdocMsoVa","mdocMsoValidityIssue","mdocMsoValidity","nextUpdate","Date","credentialDetailFromCredential","labels","_formatDateTimeLocali","_credential$issuanceD","layoutProperties","credentialDetailPrimary","suspendEndDate","suspendedUntil","formatDateTimeLocalized","suspended","credentialDetailTestID","concatTestID","statusIcon","CredentialWarningIcon","revoked","credentialDetailErrorColor","CredentialErrorIcon","validityIssues","issuanceDate","createdDate","credentialDetailSecondary","primary","primaryAttribute","secondary","secondaryAttribute","cardHeaderFromCredential","_layoutProperties$log","_layoutProperties$log2","_layoutProperties$log3","color","logo","backgroundColor","credentialName","name","icon","image","imageSource","uri","iconLabelColor","fontColor","getCredentialCardPropsFromCredential","notice","_layoutProperties$bac","_layoutProperties$bac2","text","validityIssuesNotice","noticeIcon","CredentialNoticeWarningIcon","result","cardCarouselImages","getCarouselImagesFromClaims","cardImage","background","header","detailsCardAttributeFromClaim","id","split","pop","typeConfig","datatype","array","values","map","arrayValue","index","toString","type","DataTypeEnum","Object","attributes","nestedClaim","_formatDateLocalized","String","date","formatDateLocalized","Picture","SwiyuPicture","_typeConfig$params","params","showAs","detailsCardFromCredential","detailsCardFromCredentialWithClaims","card","nestAttributes","attribute","attributePath","length","push","first","rest","parent","a","insertAttributeInParent","join","nestAttributeInDummyParent","pathParts","listValue","disabled","_parent$attributes","nextParent","_parent$values","_parent$attributes2","parseBase64Image","getCredentialSchemaWithoutImages","credentialSchema","_credentialSchema$lay","_credentialSchema$lay2","_credentialSchema$lay3","_credentialSchema$lay4"],"sources":["credential.ts"],"sourcesContent":["import {\n ClaimBindingDto,\n Config,\n CredentialDetailBindingDto,\n CredentialListItemBindingDto,\n CredentialSchemaDetailBindingDto,\n CredentialStateBindingEnum,\n DataTypeEnum,\n FormatFeatureEnum,\n} from '@procivis/react-native-one-core';\nimport { FC } from 'react';\nimport { SvgProps } from 'react-native-svg';\n\nimport {\n CredentialAttribute,\n CredentialAttributeValue,\n CredentialCardProps,\n CredentialDetailsCardProps,\n CredentialHeaderProps,\n} from '../../ui-components/credential';\nimport { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';\nimport { CredentialErrorIcon, CredentialNoticeWarningIcon, CredentialWarningIcon } from '../../ui-components/icons';\nimport { formatDateLocalized, formatDateTimeLocalized } from '../date';\nimport { concatTestID } from '../testID';\nimport { getCarouselImagesFromClaims } from './credential-images';\n\nexport enum ValidityState {\n Revoked = 'revoked',\n Suspended = 'suspended',\n Valid = 'valid',\n}\n\nexport const getValidityState = (credential: CredentialListItemBindingDto | undefined) => {\n if (credential?.state === CredentialStateBindingEnum.REVOKED) {\n return ValidityState.Revoked;\n }\n if (credential?.state === CredentialStateBindingEnum.SUSPENDED) {\n return ValidityState.Suspended;\n }\n return ValidityState.Valid;\n};\n\nexport const supportsSelectiveDisclosure = (\n credential: CredentialListItemBindingDto | undefined,\n config: Config | undefined,\n) => {\n const formatConfig = credential && config?.format[credential.schema.format];\n return formatConfig\n ? Boolean(formatConfig.capabilities?.features?.includes(FormatFeatureEnum.SelectiveDisclosure))\n : undefined;\n};\n\nexport const findClaimByPath = (path: string | undefined, claims: ClaimBindingDto[]): ClaimBindingDto | undefined => {\n if (!path) {\n return undefined;\n }\n\n const exactClaim = claims.find((claim) => claim.path === path);\n if (exactClaim) {\n return exactClaim;\n }\n\n const parentClaim = claims.find((claim) => path.startsWith(`${claim.path}/`));\n if (parentClaim && parentClaim.value.type_ === 'NESTED') {\n return findClaimByPath(path, parentClaim.value.value);\n }\n\n return undefined;\n};\n\nconst formatCredentialDetail = (claim: ClaimBindingDto, config: Config, testID: string): string => {\n const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID);\n return attributeValue.value ?? '';\n};\n\nexport const hasMsoValidityIssues = (credential: CredentialDetailBindingDto): boolean => {\n const mdocMsoValidityIssue = Boolean(\n credential.mdocMsoValidity?.nextUpdate && new Date(credential.mdocMsoValidity.nextUpdate) < new Date(),\n );\n\n return mdocMsoValidityIssue;\n};\n\nexport type CardHeaderLabels = {\n validityIssues: string;\n revoked: string;\n suspended: string;\n suspendedUntil: (date: string) => string;\n};\n\nconst credentialDetailFromCredential = (\n credential: CredentialDetailBindingDto,\n claims: ClaimBindingDto[] = [],\n config: Config,\n testID: string,\n labels: CardHeaderLabels,\n): {\n credentialDetailPrimary?: string;\n credentialDetailSecondary?: string;\n credentialDetailErrorColor?: boolean;\n credentialDetailTestID?: string;\n statusIcon?: FC<SvgProps>;\n} => {\n const { layoutProperties } = credential.schema;\n\n switch (credential.state) {\n case CredentialStateBindingEnum.SUSPENDED:\n return {\n credentialDetailPrimary: credential.suspendEndDate\n ? labels.suspendedUntil(formatDateTimeLocalized(new Date(credential.suspendEndDate))!)\n : labels.suspended,\n credentialDetailTestID: concatTestID(testID, 'suspended'),\n statusIcon: CredentialWarningIcon,\n };\n case CredentialStateBindingEnum.REVOKED:\n return {\n credentialDetailPrimary: labels.revoked,\n credentialDetailErrorColor: true,\n credentialDetailTestID: concatTestID(testID, 'revoked'),\n statusIcon: CredentialErrorIcon,\n };\n }\n\n if (hasMsoValidityIssues(credential)) {\n return {\n credentialDetailPrimary: labels.validityIssues,\n credentialDetailTestID: concatTestID(testID, 'validity-issue'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n let credentialDetailPrimary =\n formatDateTimeLocalized(new Date(credential.issuanceDate ?? credential.createdDate)) ?? '';\n let credentialDetailSecondary: string | undefined;\n\n const primary = findClaimByPath(layoutProperties?.primaryAttribute, claims);\n\n if (primary) {\n credentialDetailPrimary = formatCredentialDetail(primary, config, concatTestID(testID, 'primary'));\n }\n\n const secondary = findClaimByPath(layoutProperties?.secondaryAttribute, claims);\n\n if (secondary) {\n credentialDetailSecondary = formatCredentialDetail(secondary, config, concatTestID(testID, 'secondary'));\n }\n\n return {\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID: concatTestID(testID, 'detail'),\n };\n};\n\nexport const cardHeaderFromCredential = (\n credential: CredentialDetailBindingDto,\n claims: ClaimBindingDto[] = [],\n config: Config,\n testID: string,\n labels: CardHeaderLabels,\n): Omit<CredentialHeaderProps, 'style'> => {\n const {\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailErrorColor,\n credentialDetailTestID,\n statusIcon,\n } = credentialDetailFromCredential(credential, claims, config, testID, labels);\n const { layoutProperties } = credential.schema;\n\n return {\n color: layoutProperties?.logo?.backgroundColor,\n credentialDetailErrorColor,\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID,\n credentialName: credential.schema.name,\n icon: layoutProperties?.logo?.image\n ? {\n imageSource: {\n uri: layoutProperties.logo.image,\n },\n }\n : undefined,\n iconLabelColor: layoutProperties?.logo?.fontColor,\n statusIcon,\n testID,\n };\n};\n\nexport type CardLabels = CardHeaderLabels & {\n validityIssuesNotice: string;\n};\n\nexport const getCredentialCardPropsFromCredential = (\n credential: CredentialDetailBindingDto,\n claims: ClaimBindingDto[] = [],\n config: Config,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: CardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n const { layoutProperties } = credential.schema;\n\n if (hasMsoValidityIssues(credential)) {\n notice = {\n text: labels.validityIssuesNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n };\n }\n\n const result: Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> = {\n cardCarouselImages: getCarouselImagesFromClaims(claims, layoutProperties, concatTestID(testID, 'carousel')),\n cardImage: layoutProperties?.background?.image\n ? { imageSource: { uri: layoutProperties.background.image } }\n : undefined,\n color: layoutProperties?.background?.color,\n header: cardHeaderFromCredential(credential, claims, config, concatTestID(testID, 'header'), labels),\n testID,\n notice,\n };\n\n return result;\n};\n\nexport const detailsCardAttributeFromClaim = (\n claim: ClaimBindingDto,\n config: Config,\n testID: string,\n): CredentialAttribute => {\n const value = detailsCardAttributeValueFromClaim(claim, config, testID);\n return {\n id: claim.path,\n name: claim.path.split('/').pop(),\n path: claim.path,\n ...value,\n };\n};\n\nconst detailsCardAttributeValueFromClaim = (\n claim: ClaimBindingDto,\n config: Config,\n testID: string,\n): CredentialAttributeValue => {\n const typeConfig = config?.datatype[claim.schema.datatype];\n\n if (claim.schema.array) {\n return {\n values: ((claim.value.value as ClaimBindingDto[]) || []).map((arrayValue, index) => {\n return detailsCardAttributeFromClaim(arrayValue, config, concatTestID(testID, index.toString()));\n }),\n };\n } else {\n switch (typeConfig?.type) {\n case DataTypeEnum.Object: {\n if (claim.value.type_ !== 'NESTED') {\n return { attributes: [] };\n }\n return {\n attributes: claim.value.value.map((nestedClaim, index) =>\n detailsCardAttributeFromClaim(nestedClaim, config, concatTestID(testID, index.toString())),\n ),\n };\n }\n case DataTypeEnum.Date: {\n if (!claim.value.value) {\n // Don't try to parse empty values (which will return \"Invalid Date\")\n return { testID: testID, value: String(claim.value.value) };\n }\n const date = claim.value.value as string;\n return {\n testID: testID,\n value: formatDateLocalized(new Date(date)) ?? date,\n };\n }\n case DataTypeEnum.Picture: // fallback\n case DataTypeEnum.SwiyuPicture: {\n if (typeConfig.params?.showAs === 'IMAGE') {\n return { image: { uri: claim.value.value as string }, testID: testID };\n } else {\n return { testID: testID, value: claim.value.value as string };\n }\n }\n default:\n return { testID: testID, value: String(claim.value.value) };\n }\n }\n};\n\nexport type CredentialDetailsCardPropsWithoutWidth = Omit<CredentialDetailsCardProps, 'expanded' | 'card'> & {\n card: Omit<CredentialCardProps, 'width'>;\n};\n\nexport const detailsCardFromCredential = (\n credential: CredentialDetailBindingDto,\n config: Config,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels);\n};\n\nexport const detailsCardFromCredentialWithClaims = (\n credential: CredentialDetailBindingDto,\n claims: ClaimBindingDto[],\n config: Config,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const attributes: CredentialAttribute[] = claims.map((claim, index) =>\n detailsCardAttributeFromClaim(claim, config, concatTestID(testID, 'attribute', index.toString())),\n );\n\n const card = getCredentialCardPropsFromCredential(\n credential,\n claims,\n config,\n undefined,\n concatTestID(testID, 'card'),\n labels,\n );\n\n return {\n attributes,\n card,\n };\n};\n\n// Converts a flat list of attributes into a nested structure\n// modifies the names to not include slashes\nexport const nestAttributes = (attributes: CredentialAttribute[]): CredentialAttribute[] => {\n const result: CredentialAttribute[] = [];\n\n for (const attribute of attributes) {\n const attributePath = attribute.path.split('/');\n if (attributePath.length === 0) {\n result.push(attribute);\n } else {\n const [first, ...rest] = attributePath;\n const parent = result.find((a) => a.name === first);\n if (parent) {\n insertAttributeInParent({ ...attribute, path: rest.join('/') }, parent);\n } else {\n result.push(nestAttributeInDummyParent(attribute));\n }\n }\n }\n\n return result;\n};\n\n// We nest the leaf node in a (one or more) nested object(s)\n// to make sure the tree structure is correctly rendered in proof request screens.\nconst nestAttributeInDummyParent = (attribute: CredentialAttribute): CredentialAttribute => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n if (!rest.length) {\n return attribute;\n }\n\n // The dummy object is not selectable, and contains a placeholder ID\n // the user can't interact with it.\n if (attribute.listValue) {\n return {\n values: [nestAttributeInDummyParent({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: first,\n };\n } else {\n return {\n attributes: [nestAttributeInDummyParent({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: first,\n };\n }\n};\n\n// Recursively insert an attribute into an parent\n// Will create nested parents if necessary\nconst insertAttributeInParent = (attribute: CredentialAttribute, parent: CredentialAttribute) => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n\n const nextParent = parent.attributes?.find((a) => a.name === first);\n\n if (!nextParent) {\n if (attribute.listValue) {\n parent.values?.push(nestAttributeInDummyParent(attribute));\n } else {\n parent.attributes?.push(nestAttributeInDummyParent(attribute));\n }\n } else {\n insertAttributeInParent({ ...attribute, path: rest.join('/') }, nextParent);\n }\n};\n\nfunction parseBase64Image(image: string | undefined) {\n return image ? '__BASE64IMAGE__' : '';\n}\n\nexport function getCredentialSchemaWithoutImages(credentialSchema: CredentialSchemaDetailBindingDto) {\n return {\n ...credentialSchema,\n layoutProperties: {\n ...credentialSchema.layoutProperties,\n background: {\n ...credentialSchema.layoutProperties?.background,\n image: parseBase64Image(credentialSchema.layoutProperties?.background?.image),\n },\n logo: {\n ...credentialSchema.layoutProperties?.logo,\n image: parseBase64Image(credentialSchema.layoutProperties?.logo?.image),\n },\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeOneCore","require","_icons","_date","_testID","_credentialImages","ValidityState","exports","getValidityState","credential","state","CredentialStateBindingEnum","REVOKED","Revoked","SUSPENDED","Suspended","Valid","supportsSelectiveDisclosure","config","_formatConfig$capabil","formatConfig","format","schema","Boolean","capabilities","features","includes","FormatFeatureEnum","SelectiveDisclosure","undefined","findClaimByPath","path","claims","exactClaim","find","claim","parentClaim","startsWith","value","type_","formatCredentialDetail","testID","_attributeValue$value","attributeValue","detailsCardAttributeValueFromClaim","hasMsoValidityIssues","_credential$mdocMsoVa","mdocMsoValidityIssue","mdocMsoValidity","nextUpdate","Date","credentialDetailFromCredential","labels","_formatDateTimeLocali","_credential$issuanceD","layoutProperties","credentialDetailPrimary","suspendEndDate","suspendedUntil","formatDateTimeLocalized","suspended","credentialDetailTestID","concatTestID","statusIcon","CredentialWarningIcon","revoked","credentialDetailErrorColor","CredentialErrorIcon","validityIssues","issuanceDate","createdDate","credentialDetailSecondary","primary","primaryAttribute","secondary","secondaryAttribute","cardHeaderFromCredential","_layoutProperties$log","_layoutProperties$log2","_layoutProperties$log3","color","logo","backgroundColor","credentialName","name","icon","image","imageSource","uri","iconLabelColor","fontColor","getCredentialCardPropsFromCredential","notice","_layoutProperties$bac","_layoutProperties$bac2","text","validityIssuesNotice","noticeIcon","CredentialNoticeWarningIcon","result","cardCarouselImages","getCarouselImagesFromClaims","cardImage","background","header","detailsCardAttributeFromClaim","id","split","pop","typeConfig","datatype","array","values","map","arrayValue","index","toString","type","DataTypeEnum","Object","attributes","nestedClaim","_formatDateLocalized","String","date","formatDateLocalized","Picture","SwiyuPicture","_typeConfig$params","params","showAs","detailsCardFromCredential","detailsCardFromCredentialWithClaims","card","nestAttributes","attribute","attributePath","length","push","first","rest","parent","a","insertAttributeInParent","join","nestAttributeInDummyParent","pathParts","listValue","disabled","_parent$attributes","nextParent","_parent$values","_parent$attributes2","parseBase64Image","getCredentialSchemaWithoutImages","credentialSchema","_credentialSchema$lay","_credentialSchema$lay2","_credentialSchema$lay3","_credentialSchema$lay4"],"sources":["credential.ts"],"sourcesContent":["import {\n ClaimBindingDto,\n Config,\n CredentialDetailBindingDto,\n CredentialListItemBindingDto,\n CredentialSchemaBindingDto,\n CredentialStateBindingEnum,\n DataTypeEnum,\n FormatFeatureEnum,\n} from '@procivis/react-native-one-core';\nimport { FC } from 'react';\nimport { SvgProps } from 'react-native-svg';\n\nimport {\n CredentialAttribute,\n CredentialAttributeValue,\n CredentialCardProps,\n CredentialDetailsCardProps,\n CredentialHeaderProps,\n} from '../../ui-components/credential';\nimport { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';\nimport { CredentialErrorIcon, CredentialNoticeWarningIcon, CredentialWarningIcon } from '../../ui-components/icons';\nimport { formatDateLocalized, formatDateTimeLocalized } from '../date';\nimport { concatTestID } from '../testID';\nimport { getCarouselImagesFromClaims } from './credential-images';\n\nexport enum ValidityState {\n Revoked = 'revoked',\n Suspended = 'suspended',\n Valid = 'valid',\n}\n\nexport const getValidityState = (credential: CredentialListItemBindingDto | undefined) => {\n if (credential?.state === CredentialStateBindingEnum.REVOKED) {\n return ValidityState.Revoked;\n }\n if (credential?.state === CredentialStateBindingEnum.SUSPENDED) {\n return ValidityState.Suspended;\n }\n return ValidityState.Valid;\n};\n\nexport const supportsSelectiveDisclosure = (\n credential: CredentialListItemBindingDto | undefined,\n config: Config | undefined,\n) => {\n const formatConfig = credential && config?.format[credential.schema.format];\n return formatConfig\n ? Boolean(formatConfig.capabilities?.features?.includes(FormatFeatureEnum.SelectiveDisclosure))\n : undefined;\n};\n\nexport const findClaimByPath = (path: string | undefined, claims: ClaimBindingDto[]): ClaimBindingDto | undefined => {\n if (!path) {\n return undefined;\n }\n\n const exactClaim = claims.find((claim) => claim.path === path);\n if (exactClaim) {\n return exactClaim;\n }\n\n const parentClaim = claims.find((claim) => path.startsWith(`${claim.path}/`));\n if (parentClaim && parentClaim.value.type_ === 'NESTED') {\n return findClaimByPath(path, parentClaim.value.value);\n }\n\n return undefined;\n};\n\nconst formatCredentialDetail = (claim: ClaimBindingDto, config: Config, testID: string): string => {\n const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID);\n return attributeValue.value ?? '';\n};\n\nexport const hasMsoValidityIssues = (credential: CredentialDetailBindingDto): boolean => {\n const mdocMsoValidityIssue = Boolean(\n credential.mdocMsoValidity?.nextUpdate && new Date(credential.mdocMsoValidity.nextUpdate) < new Date(),\n );\n\n return mdocMsoValidityIssue;\n};\n\nexport type CardHeaderLabels = {\n validityIssues: string;\n revoked: string;\n suspended: string;\n suspendedUntil: (date: string) => string;\n};\n\nconst credentialDetailFromCredential = (\n credential: CredentialDetailBindingDto,\n claims: ClaimBindingDto[] = [],\n config: Config,\n testID: string,\n labels: CardHeaderLabels,\n): {\n credentialDetailPrimary?: string;\n credentialDetailSecondary?: string;\n credentialDetailErrorColor?: boolean;\n credentialDetailTestID?: string;\n statusIcon?: FC<SvgProps>;\n} => {\n const { layoutProperties } = credential.schema;\n\n switch (credential.state) {\n case CredentialStateBindingEnum.SUSPENDED:\n return {\n credentialDetailPrimary: credential.suspendEndDate\n ? labels.suspendedUntil(formatDateTimeLocalized(new Date(credential.suspendEndDate))!)\n : labels.suspended,\n credentialDetailTestID: concatTestID(testID, 'suspended'),\n statusIcon: CredentialWarningIcon,\n };\n case CredentialStateBindingEnum.REVOKED:\n return {\n credentialDetailPrimary: labels.revoked,\n credentialDetailErrorColor: true,\n credentialDetailTestID: concatTestID(testID, 'revoked'),\n statusIcon: CredentialErrorIcon,\n };\n }\n\n if (hasMsoValidityIssues(credential)) {\n return {\n credentialDetailPrimary: labels.validityIssues,\n credentialDetailTestID: concatTestID(testID, 'validity-issue'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n let credentialDetailPrimary =\n formatDateTimeLocalized(new Date(credential.issuanceDate ?? credential.createdDate)) ?? '';\n let credentialDetailSecondary: string | undefined;\n\n const primary = findClaimByPath(layoutProperties?.primaryAttribute, claims);\n\n if (primary) {\n credentialDetailPrimary = formatCredentialDetail(primary, config, concatTestID(testID, 'primary'));\n }\n\n const secondary = findClaimByPath(layoutProperties?.secondaryAttribute, claims);\n\n if (secondary) {\n credentialDetailSecondary = formatCredentialDetail(secondary, config, concatTestID(testID, 'secondary'));\n }\n\n return {\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID: concatTestID(testID, 'detail'),\n };\n};\n\nexport const cardHeaderFromCredential = (\n credential: CredentialDetailBindingDto,\n claims: ClaimBindingDto[] = [],\n config: Config,\n testID: string,\n labels: CardHeaderLabels,\n): Omit<CredentialHeaderProps, 'style'> => {\n const {\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailErrorColor,\n credentialDetailTestID,\n statusIcon,\n } = credentialDetailFromCredential(credential, claims, config, testID, labels);\n const { layoutProperties } = credential.schema;\n\n return {\n color: layoutProperties?.logo?.backgroundColor,\n credentialDetailErrorColor,\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID,\n credentialName: credential.schema.name,\n icon: layoutProperties?.logo?.image\n ? {\n imageSource: {\n uri: layoutProperties.logo.image,\n },\n }\n : undefined,\n iconLabelColor: layoutProperties?.logo?.fontColor,\n statusIcon,\n testID,\n };\n};\n\nexport type CardLabels = CardHeaderLabels & {\n validityIssuesNotice: string;\n};\n\nexport const getCredentialCardPropsFromCredential = (\n credential: CredentialDetailBindingDto,\n claims: ClaimBindingDto[] = [],\n config: Config,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: CardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n const { layoutProperties } = credential.schema;\n\n if (hasMsoValidityIssues(credential)) {\n notice = {\n text: labels.validityIssuesNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n };\n }\n\n const result: Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> = {\n cardCarouselImages: getCarouselImagesFromClaims(claims, layoutProperties, concatTestID(testID, 'carousel')),\n cardImage: layoutProperties?.background?.image\n ? { imageSource: { uri: layoutProperties.background.image } }\n : undefined,\n color: layoutProperties?.background?.color,\n header: cardHeaderFromCredential(credential, claims, config, concatTestID(testID, 'header'), labels),\n testID,\n notice,\n };\n\n return result;\n};\n\nexport const detailsCardAttributeFromClaim = (\n claim: ClaimBindingDto,\n config: Config,\n testID: string,\n): CredentialAttribute => {\n const value = detailsCardAttributeValueFromClaim(claim, config, testID);\n return {\n id: claim.path,\n name: claim.path.split('/').pop(),\n path: claim.path,\n ...value,\n };\n};\n\nconst detailsCardAttributeValueFromClaim = (\n claim: ClaimBindingDto,\n config: Config,\n testID: string,\n): CredentialAttributeValue => {\n const typeConfig = config?.datatype[claim.schema.datatype];\n\n if (claim.schema.array) {\n return {\n values: ((claim.value.value as ClaimBindingDto[]) || []).map((arrayValue, index) => {\n return detailsCardAttributeFromClaim(arrayValue, config, concatTestID(testID, index.toString()));\n }),\n };\n } else {\n switch (typeConfig?.type) {\n case DataTypeEnum.Object: {\n if (claim.value.type_ !== 'NESTED') {\n return { attributes: [] };\n }\n return {\n attributes: claim.value.value.map((nestedClaim, index) =>\n detailsCardAttributeFromClaim(nestedClaim, config, concatTestID(testID, index.toString())),\n ),\n };\n }\n case DataTypeEnum.Date: {\n if (!claim.value.value) {\n // Don't try to parse empty values (which will return \"Invalid Date\")\n return { testID: testID, value: String(claim.value.value) };\n }\n const date = claim.value.value as string;\n return {\n testID: testID,\n value: formatDateLocalized(new Date(date)) ?? date,\n };\n }\n case DataTypeEnum.Picture: // fallback\n case DataTypeEnum.SwiyuPicture: {\n if (typeConfig.params?.showAs === 'IMAGE') {\n return { image: { uri: claim.value.value as string }, testID: testID };\n } else {\n return { testID: testID, value: claim.value.value as string };\n }\n }\n default:\n return { testID: testID, value: String(claim.value.value) };\n }\n }\n};\n\nexport type CredentialDetailsCardPropsWithoutWidth = Omit<CredentialDetailsCardProps, 'expanded' | 'card'> & {\n card: Omit<CredentialCardProps, 'width'>;\n};\n\nexport const detailsCardFromCredential = (\n credential: CredentialDetailBindingDto,\n config: Config,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels);\n};\n\nexport const detailsCardFromCredentialWithClaims = (\n credential: CredentialDetailBindingDto,\n claims: ClaimBindingDto[],\n config: Config,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const attributes: CredentialAttribute[] = claims.map((claim, index) =>\n detailsCardAttributeFromClaim(claim, config, concatTestID(testID, 'attribute', index.toString())),\n );\n\n const card = getCredentialCardPropsFromCredential(\n credential,\n claims,\n config,\n undefined,\n concatTestID(testID, 'card'),\n labels,\n );\n\n return {\n attributes,\n card,\n };\n};\n\n// Converts a flat list of attributes into a nested structure\n// modifies the names to not include slashes\nexport const nestAttributes = (attributes: CredentialAttribute[]): CredentialAttribute[] => {\n const result: CredentialAttribute[] = [];\n\n for (const attribute of attributes) {\n const attributePath = attribute.path.split('/');\n if (attributePath.length === 0) {\n result.push(attribute);\n } else {\n const [first, ...rest] = attributePath;\n const parent = result.find((a) => a.name === first);\n if (parent) {\n insertAttributeInParent({ ...attribute, path: rest.join('/') }, parent);\n } else {\n result.push(nestAttributeInDummyParent(attribute));\n }\n }\n }\n\n return result;\n};\n\n// We nest the leaf node in a (one or more) nested object(s)\n// to make sure the tree structure is correctly rendered in proof request screens.\nconst nestAttributeInDummyParent = (attribute: CredentialAttribute): CredentialAttribute => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n if (!rest.length) {\n return attribute;\n }\n\n // The dummy object is not selectable, and contains a placeholder ID\n // the user can't interact with it.\n if (attribute.listValue) {\n return {\n values: [nestAttributeInDummyParent({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: first,\n };\n } else {\n return {\n attributes: [nestAttributeInDummyParent({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: first,\n };\n }\n};\n\n// Recursively insert an attribute into an parent\n// Will create nested parents if necessary\nconst insertAttributeInParent = (attribute: CredentialAttribute, parent: CredentialAttribute) => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n\n const nextParent = parent.attributes?.find((a) => a.name === first);\n\n if (!nextParent) {\n if (attribute.listValue) {\n parent.values?.push(nestAttributeInDummyParent(attribute));\n } else {\n parent.attributes?.push(nestAttributeInDummyParent(attribute));\n }\n } else {\n insertAttributeInParent({ ...attribute, path: rest.join('/') }, nextParent);\n }\n};\n\nfunction parseBase64Image(image: string | undefined) {\n return image ? '__BASE64IMAGE__' : '';\n}\n\nexport function getCredentialSchemaWithoutImages<T extends CredentialSchemaBindingDto>(credentialSchema: T): T {\n return {\n ...credentialSchema,\n layoutProperties: {\n ...credentialSchema.layoutProperties,\n background: {\n ...credentialSchema.layoutProperties?.background,\n image: parseBase64Image(credentialSchema.layoutProperties?.background?.image),\n },\n logo: {\n ...credentialSchema.layoutProperties?.logo,\n image: parseBase64Image(credentialSchema.layoutProperties?.logo?.image),\n },\n },\n };\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AAqBA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AAAkE,IAEtDK,aAAa,GAAAC,OAAA,CAAAD,aAAA,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAMlB,MAAME,gBAAgB,GAAIC,UAAoD,IAAK;EACxF,IAAI,CAAAA,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEC,KAAK,MAAKC,8CAA0B,CAACC,OAAO,EAAE;IAC5D,OAAON,aAAa,CAACO,OAAO;EAC9B;EACA,IAAI,CAAAJ,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEC,KAAK,MAAKC,8CAA0B,CAACG,SAAS,EAAE;IAC9D,OAAOR,aAAa,CAACS,SAAS;EAChC;EACA,OAAOT,aAAa,CAACU,KAAK;AAC5B,CAAC;AAACT,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAEK,MAAMS,2BAA2B,GAAGA,CACzCR,UAAoD,EACpDS,MAA0B,KACvB;EAAA,IAAAC,qBAAA;EACH,MAAMC,YAAY,GAAGX,UAAU,KAAIS,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEG,MAAM,CAACZ,UAAU,CAACa,MAAM,CAACD,MAAM,CAAC;EAC3E,OAAOD,YAAY,GACfG,OAAO,EAAAJ,qBAAA,GAACC,YAAY,CAACI,YAAY,cAAAL,qBAAA,gBAAAA,qBAAA,GAAzBA,qBAAA,CAA2BM,QAAQ,cAAAN,qBAAA,uBAAnCA,qBAAA,CAAqCO,QAAQ,CAACC,qCAAiB,CAACC,mBAAmB,CAAC,CAAC,GAC7FC,SAAS;AACf,CAAC;AAACtB,OAAA,CAAAU,2BAAA,GAAAA,2BAAA;AAEK,MAAMa,eAAe,GAAGA,CAACC,IAAwB,EAAEC,MAAyB,KAAkC;EACnH,IAAI,CAACD,IAAI,EAAE;IACT,OAAOF,SAAS;EAClB;EAEA,MAAMI,UAAU,GAAGD,MAAM,CAACE,IAAI,CAAEC,KAAK,IAAKA,KAAK,CAACJ,IAAI,KAAKA,IAAI,CAAC;EAC9D,IAAIE,UAAU,EAAE;IACd,OAAOA,UAAU;EACnB;EAEA,MAAMG,WAAW,GAAGJ,MAAM,CAACE,IAAI,CAAEC,KAAK,IAAKJ,IAAI,CAACM,UAAU,CAAC,GAAGF,KAAK,CAACJ,IAAI,GAAG,CAAC,CAAC;EAC7E,IAAIK,WAAW,IAAIA,WAAW,CAACE,KAAK,CAACC,KAAK,KAAK,QAAQ,EAAE;IACvD,OAAOT,eAAe,CAACC,IAAI,EAAEK,WAAW,CAACE,KAAK,CAACA,KAAK,CAAC;EACvD;EAEA,OAAOT,SAAS;AAClB,CAAC;AAACtB,OAAA,CAAAuB,eAAA,GAAAA,eAAA;AAEF,MAAMU,sBAAsB,GAAGA,CAACL,KAAsB,EAAEjB,MAAc,EAAEuB,MAAc,KAAa;EAAA,IAAAC,qBAAA;EACjG,MAAMC,cAAc,GAAGC,kCAAkC,CAACT,KAAK,EAAEjB,MAAM,EAAEuB,MAAM,CAAC;EAChF,QAAAC,qBAAA,GAAOC,cAAc,CAACL,KAAK,cAAAI,qBAAA,cAAAA,qBAAA,GAAI,EAAE;AACnC,CAAC;AAEM,MAAMG,oBAAoB,GAAIpC,UAAsC,IAAc;EAAA,IAAAqC,qBAAA;EACvF,MAAMC,oBAAoB,GAAGxB,OAAO,CAClC,EAAAuB,qBAAA,GAAArC,UAAU,CAACuC,eAAe,cAAAF,qBAAA,uBAA1BA,qBAAA,CAA4BG,UAAU,KAAI,IAAIC,IAAI,CAACzC,UAAU,CAACuC,eAAe,CAACC,UAAU,CAAC,GAAG,IAAIC,IAAI,CAAC,CACvG,CAAC;EAED,OAAOH,oBAAoB;AAC7B,CAAC;AAACxC,OAAA,CAAAsC,oBAAA,GAAAA,oBAAA;AASF,MAAMM,8BAA8B,GAAGA,CACrC1C,UAAsC,EACtCuB,MAAyB,GAAG,EAAE,EAC9Bd,MAAc,EACduB,MAAc,EACdW,MAAwB,KAOrB;EAAA,IAAAC,qBAAA,EAAAC,qBAAA;EACH,MAAM;IAAEC;EAAiB,CAAC,GAAG9C,UAAU,CAACa,MAAM;EAE9C,QAAQb,UAAU,CAACC,KAAK;IACtB,KAAKC,8CAA0B,CAACG,SAAS;MACvC,OAAO;QACL0C,uBAAuB,EAAE/C,UAAU,CAACgD,cAAc,GAC9CL,MAAM,CAACM,cAAc,CAAC,IAAAC,6BAAuB,EAAC,IAAIT,IAAI,CAACzC,UAAU,CAACgD,cAAc,CAAC,CAAE,CAAC,GACpFL,MAAM,CAACQ,SAAS;QACpBC,sBAAsB,EAAE,IAAAC,oBAAY,EAACrB,MAAM,EAAE,WAAW,CAAC;QACzDsB,UAAU,EAAEC;MACd,CAAC;IACH,KAAKrD,8CAA0B,CAACC,OAAO;MACrC,OAAO;QACL4C,uBAAuB,EAAEJ,MAAM,CAACa,OAAO;QACvCC,0BAA0B,EAAE,IAAI;QAChCL,sBAAsB,EAAE,IAAAC,oBAAY,EAACrB,MAAM,EAAE,SAAS,CAAC;QACvDsB,UAAU,EAAEI;MACd,CAAC;EACL;EAEA,IAAItB,oBAAoB,CAACpC,UAAU,CAAC,EAAE;IACpC,OAAO;MACL+C,uBAAuB,EAAEJ,MAAM,CAACgB,cAAc;MAC9CP,sBAAsB,EAAE,IAAAC,oBAAY,EAACrB,MAAM,EAAE,gBAAgB,CAAC;MAC9DsB,UAAU,EAAEC;IACd,CAAC;EACH;EAEA,IAAIR,uBAAuB,IAAAH,qBAAA,GACzB,IAAAM,6BAAuB,EAAC,IAAIT,IAAI,EAAAI,qBAAA,GAAC7C,UAAU,CAAC4D,YAAY,cAAAf,qBAAA,cAAAA,qBAAA,GAAI7C,UAAU,CAAC6D,WAAW,CAAC,CAAC,cAAAjB,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAC5F,IAAIkB,yBAA6C;EAEjD,MAAMC,OAAO,GAAG1C,eAAe,CAACyB,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEkB,gBAAgB,EAAEzC,MAAM,CAAC;EAE3E,IAAIwC,OAAO,EAAE;IACXhB,uBAAuB,GAAGhB,sBAAsB,CAACgC,OAAO,EAAEtD,MAAM,EAAE,IAAA4C,oBAAY,EAACrB,MAAM,EAAE,SAAS,CAAC,CAAC;EACpG;EAEA,MAAMiC,SAAS,GAAG5C,eAAe,CAACyB,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEoB,kBAAkB,EAAE3C,MAAM,CAAC;EAE/E,IAAI0C,SAAS,EAAE;IACbH,yBAAyB,GAAG/B,sBAAsB,CAACkC,SAAS,EAAExD,MAAM,EAAE,IAAA4C,oBAAY,EAACrB,MAAM,EAAE,WAAW,CAAC,CAAC;EAC1G;EAEA,OAAO;IACLe,uBAAuB;IACvBe,yBAAyB;IACzBV,sBAAsB,EAAE,IAAAC,oBAAY,EAACrB,MAAM,EAAE,QAAQ;EACvD,CAAC;AACH,CAAC;AAEM,MAAMmC,wBAAwB,GAAGA,CACtCnE,UAAsC,EACtCuB,MAAyB,GAAG,EAAE,EAC9Bd,MAAc,EACduB,MAAc,EACdW,MAAwB,KACiB;EAAA,IAAAyB,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EACzC,MAAM;IACJvB,uBAAuB;IACvBe,yBAAyB;IACzBL,0BAA0B;IAC1BL,sBAAsB;IACtBE;EACF,CAAC,GAAGZ,8BAA8B,CAAC1C,UAAU,EAAEuB,MAAM,EAAEd,MAAM,EAAEuB,MAAM,EAAEW,MAAM,CAAC;EAC9E,MAAM;IAAEG;EAAiB,CAAC,GAAG9C,UAAU,CAACa,MAAM;EAE9C,OAAO;IACL0D,KAAK,EAAEzB,gBAAgB,aAAhBA,gBAAgB,gBAAAsB,qBAAA,GAAhBtB,gBAAgB,CAAE0B,IAAI,cAAAJ,qBAAA,uBAAtBA,qBAAA,CAAwBK,eAAe;IAC9ChB,0BAA0B;IAC1BV,uBAAuB;IACvBe,yBAAyB;IACzBV,sBAAsB;IACtBsB,cAAc,EAAE1E,UAAU,CAACa,MAAM,CAAC8D,IAAI;IACtCC,IAAI,EAAE9B,gBAAgB,aAAhBA,gBAAgB,gBAAAuB,sBAAA,GAAhBvB,gBAAgB,CAAE0B,IAAI,cAAAH,sBAAA,eAAtBA,sBAAA,CAAwBQ,KAAK,GAC/B;MACEC,WAAW,EAAE;QACXC,GAAG,EAAEjC,gBAAgB,CAAC0B,IAAI,CAACK;MAC7B;IACF,CAAC,GACDzD,SAAS;IACb4D,cAAc,EAAElC,gBAAgB,aAAhBA,gBAAgB,gBAAAwB,sBAAA,GAAhBxB,gBAAgB,CAAE0B,IAAI,cAAAF,sBAAA,uBAAtBA,sBAAA,CAAwBW,SAAS;IACjD3B,UAAU;IACVtB;EACF,CAAC;AACH,CAAC;AAAClC,OAAA,CAAAqE,wBAAA,GAAAA,wBAAA;AAMK,MAAMe,oCAAoC,GAAGA,CAClDlF,UAAsC,EACtCuB,MAAyB,GAAG,EAAE,EAC9Bd,MAAc,EACd0E,MAAwC,EACxCnD,MAAc,EACdW,MAAkB,KACiD;EAAA,IAAAyC,qBAAA,EAAAC,sBAAA;EACnE,MAAM;IAAEvC;EAAiB,CAAC,GAAG9C,UAAU,CAACa,MAAM;EAE9C,IAAIuB,oBAAoB,CAACpC,UAAU,CAAC,EAAE;IACpCmF,MAAM,GAAG;MACPG,IAAI,EAAE3C,MAAM,CAAC4C,oBAAoB;MACjCC,UAAU,EAAEC;IACd,CAAC;EACH;EAEA,MAAMC,MAAsE,GAAG;IAC7EC,kBAAkB,EAAE,IAAAC,6CAA2B,EAACrE,MAAM,EAAEuB,gBAAgB,EAAE,IAAAO,oBAAY,EAACrB,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3G6D,SAAS,EAAE/C,gBAAgB,aAAhBA,gBAAgB,gBAAAsC,qBAAA,GAAhBtC,gBAAgB,CAAEgD,UAAU,cAAAV,qBAAA,eAA5BA,qBAAA,CAA8BP,KAAK,GAC1C;MAAEC,WAAW,EAAE;QAAEC,GAAG,EAAEjC,gBAAgB,CAACgD,UAAU,CAACjB;MAAM;IAAE,CAAC,GAC3DzD,SAAS;IACbmD,KAAK,EAAEzB,gBAAgB,aAAhBA,gBAAgB,gBAAAuC,sBAAA,GAAhBvC,gBAAgB,CAAEgD,UAAU,cAAAT,sBAAA,uBAA5BA,sBAAA,CAA8Bd,KAAK;IAC1CwB,MAAM,EAAE5B,wBAAwB,CAACnE,UAAU,EAAEuB,MAAM,EAAEd,MAAM,EAAE,IAAA4C,oBAAY,EAACrB,MAAM,EAAE,QAAQ,CAAC,EAAEW,MAAM,CAAC;IACpGX,MAAM;IACNmD;EACF,CAAC;EAED,OAAOO,MAAM;AACf,CAAC;AAAC5F,OAAA,CAAAoF,oCAAA,GAAAA,oCAAA;AAEK,MAAMc,6BAA6B,GAAGA,CAC3CtE,KAAsB,EACtBjB,MAAc,EACduB,MAAc,KACU;EACxB,MAAMH,KAAK,GAAGM,kCAAkC,CAACT,KAAK,EAAEjB,MAAM,EAAEuB,MAAM,CAAC;EACvE,OAAO;IACLiE,EAAE,EAAEvE,KAAK,CAACJ,IAAI;IACdqD,IAAI,EAAEjD,KAAK,CAACJ,IAAI,CAAC4E,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC;IACjC7E,IAAI,EAAEI,KAAK,CAACJ,IAAI;IAChB,GAAGO;EACL,CAAC;AACH,CAAC;AAAC/B,OAAA,CAAAkG,6BAAA,GAAAA,6BAAA;AAEF,MAAM7D,kCAAkC,GAAGA,CACzCT,KAAsB,EACtBjB,MAAc,EACduB,MAAc,KACe;EAC7B,MAAMoE,UAAU,GAAG3F,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE4F,QAAQ,CAAC3E,KAAK,CAACb,MAAM,CAACwF,QAAQ,CAAC;EAE1D,IAAI3E,KAAK,CAACb,MAAM,CAACyF,KAAK,EAAE;IACtB,OAAO;MACLC,MAAM,EAAE,CAAE7E,KAAK,CAACG,KAAK,CAACA,KAAK,IAA0B,EAAE,EAAE2E,GAAG,CAAC,CAACC,UAAU,EAAEC,KAAK,KAAK;QAClF,OAAOV,6BAA6B,CAACS,UAAU,EAAEhG,MAAM,EAAE,IAAA4C,oBAAY,EAACrB,MAAM,EAAE0E,KAAK,CAACC,QAAQ,CAAC,CAAC,CAAC,CAAC;MAClG,CAAC;IACH,CAAC;EACH,CAAC,MAAM;IACL,QAAQP,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEQ,IAAI;MACtB,KAAKC,gCAAY,CAACC,MAAM;QAAE;UACxB,IAAIpF,KAAK,CAACG,KAAK,CAACC,KAAK,KAAK,QAAQ,EAAE;YAClC,OAAO;cAAEiF,UAAU,EAAE;YAAG,CAAC;UAC3B;UACA,OAAO;YACLA,UAAU,EAAErF,KAAK,CAACG,KAAK,CAACA,KAAK,CAAC2E,GAAG,CAAC,CAACQ,WAAW,EAAEN,KAAK,KACnDV,6BAA6B,CAACgB,WAAW,EAAEvG,MAAM,EAAE,IAAA4C,oBAAY,EAACrB,MAAM,EAAE0E,KAAK,CAACC,QAAQ,CAAC,CAAC,CAAC,CAC3F;UACF,CAAC;QACH;MACA,KAAKE,gCAAY,CAACpE,IAAI;QAAE;UAAA,IAAAwE,oBAAA;UACtB,IAAI,CAACvF,KAAK,CAACG,KAAK,CAACA,KAAK,EAAE;YACtB;YACA,OAAO;cAAEG,MAAM,EAAEA,MAAM;cAAEH,KAAK,EAAEqF,MAAM,CAACxF,KAAK,CAACG,KAAK,CAACA,KAAK;YAAE,CAAC;UAC7D;UACA,MAAMsF,IAAI,GAAGzF,KAAK,CAACG,KAAK,CAACA,KAAe;UACxC,OAAO;YACLG,MAAM,EAAEA,MAAM;YACdH,KAAK,GAAAoF,oBAAA,GAAE,IAAAG,yBAAmB,EAAC,IAAI3E,IAAI,CAAC0E,IAAI,CAAC,CAAC,cAAAF,oBAAA,cAAAA,oBAAA,GAAIE;UAChD,CAAC;QACH;MACA,KAAKN,gCAAY,CAACQ,OAAO,CAAC,CAAC;MAC3B,KAAKR,gCAAY,CAACS,YAAY;QAAE;UAAA,IAAAC,kBAAA;UAC9B,IAAI,EAAAA,kBAAA,GAAAnB,UAAU,CAACoB,MAAM,cAAAD,kBAAA,uBAAjBA,kBAAA,CAAmBE,MAAM,MAAK,OAAO,EAAE;YACzC,OAAO;cAAE5C,KAAK,EAAE;gBAAEE,GAAG,EAAErD,KAAK,CAACG,KAAK,CAACA;cAAgB,CAAC;cAAEG,MAAM,EAAEA;YAAO,CAAC;UACxE,CAAC,MAAM;YACL,OAAO;cAAEA,MAAM,EAAEA,MAAM;cAAEH,KAAK,EAAEH,KAAK,CAACG,KAAK,CAACA;YAAgB,CAAC;UAC/D;QACF;MACA;QACE,OAAO;UAAEG,MAAM,EAAEA,MAAM;UAAEH,KAAK,EAAEqF,MAAM,CAACxF,KAAK,CAACG,KAAK,CAACA,KAAK;QAAE,CAAC;IAC/D;EACF;AACF,CAAC;AAMM,MAAM6F,yBAAyB,GAAGA,CACvC1H,UAAsC,EACtCS,MAAc,EACduB,MAAc,EACdW,MAAkB,KACyB;EAC3C,OAAOgF,mCAAmC,CAAC3H,UAAU,EAAEA,UAAU,CAACuB,MAAM,EAAEd,MAAM,EAAEuB,MAAM,EAAEW,MAAM,CAAC;AACnG,CAAC;AAAC7C,OAAA,CAAA4H,yBAAA,GAAAA,yBAAA;AAEK,MAAMC,mCAAmC,GAAGA,CACjD3H,UAAsC,EACtCuB,MAAyB,EACzBd,MAAc,EACduB,MAAc,EACdW,MAAkB,KACyB;EAC3C,MAAMoE,UAAiC,GAAGxF,MAAM,CAACiF,GAAG,CAAC,CAAC9E,KAAK,EAAEgF,KAAK,KAChEV,6BAA6B,CAACtE,KAAK,EAAEjB,MAAM,EAAE,IAAA4C,oBAAY,EAACrB,MAAM,EAAE,WAAW,EAAE0E,KAAK,CAACC,QAAQ,CAAC,CAAC,CAAC,CAClG,CAAC;EAED,MAAMiB,IAAI,GAAG1C,oCAAoC,CAC/ClF,UAAU,EACVuB,MAAM,EACNd,MAAM,EACNW,SAAS,EACT,IAAAiC,oBAAY,EAACrB,MAAM,EAAE,MAAM,CAAC,EAC5BW,MACF,CAAC;EAED,OAAO;IACLoE,UAAU;IACVa;EACF,CAAC;AACH,CAAC;;AAED;AACA;AAAA9H,OAAA,CAAA6H,mCAAA,GAAAA,mCAAA;AACO,MAAME,cAAc,GAAId,UAAiC,IAA4B;EAC1F,MAAMrB,MAA6B,GAAG,EAAE;EAExC,KAAK,MAAMoC,SAAS,IAAIf,UAAU,EAAE;IAClC,MAAMgB,aAAa,GAAGD,SAAS,CAACxG,IAAI,CAAC4E,KAAK,CAAC,GAAG,CAAC;IAC/C,IAAI6B,aAAa,CAACC,MAAM,KAAK,CAAC,EAAE;MAC9BtC,MAAM,CAACuC,IAAI,CAACH,SAAS,CAAC;IACxB,CAAC,MAAM;MACL,MAAM,CAACI,KAAK,EAAE,GAAGC,IAAI,CAAC,GAAGJ,aAAa;MACtC,MAAMK,MAAM,GAAG1C,MAAM,CAACjE,IAAI,CAAE4G,CAAC,IAAKA,CAAC,CAAC1D,IAAI,KAAKuD,KAAK,CAAC;MACnD,IAAIE,MAAM,EAAE;QACVE,uBAAuB,CAAC;UAAE,GAAGR,SAAS;UAAExG,IAAI,EAAE6G,IAAI,CAACI,IAAI,CAAC,GAAG;QAAE,CAAC,EAAEH,MAAM,CAAC;MACzE,CAAC,MAAM;QACL1C,MAAM,CAACuC,IAAI,CAACO,0BAA0B,CAACV,SAAS,CAAC,CAAC;MACpD;IACF;EACF;EAEA,OAAOpC,MAAM;AACf,CAAC;;AAED;AACA;AAAA5F,OAAA,CAAA+H,cAAA,GAAAA,cAAA;AACA,MAAMW,0BAA0B,GAAIV,SAA8B,IAA0B;EAC1F,MAAMW,SAAS,GAAGX,SAAS,CAACxG,IAAI,CAAC4E,KAAK,CAAC,GAAG,CAAC;EAC3C,MAAM,CAACgC,KAAK,EAAE,GAAGC,IAAI,CAAC,GAAGM,SAAS;EAClC,IAAI,CAACN,IAAI,CAACH,MAAM,EAAE;IAChB,OAAOF,SAAS;EAClB;;EAEA;EACA;EACA,IAAIA,SAAS,CAACY,SAAS,EAAE;IACvB,OAAO;MACLnC,MAAM,EAAE,CAACiC,0BAA0B,CAAC;QAAE,GAAGV,SAAS;QAAExG,IAAI,EAAE6G,IAAI,CAACI,IAAI,CAAC,GAAG;MAAE,CAAC,CAAC,CAAC;MAC5EI,QAAQ,EAAE,IAAI;MACd1C,EAAE,EAAE,GAAG6B,SAAS,CAAC7B,EAAE,IAAIiC,KAAK,EAAE;MAC9BvD,IAAI,EAAEuD,KAAK;MACX5G,IAAI,EAAE4G;IACR,CAAC;EACH,CAAC,MAAM;IACL,OAAO;MACLnB,UAAU,EAAE,CAACyB,0BAA0B,CAAC;QAAE,GAAGV,SAAS;QAAExG,IAAI,EAAE6G,IAAI,CAACI,IAAI,CAAC,GAAG;MAAE,CAAC,CAAC,CAAC;MAChFI,QAAQ,EAAE,IAAI;MACd1C,EAAE,EAAE,GAAG6B,SAAS,CAAC7B,EAAE,IAAIiC,KAAK,EAAE;MAC9BvD,IAAI,EAAEuD,KAAK;MACX5G,IAAI,EAAE4G;IACR,CAAC;EACH;AACF,CAAC;;AAED;AACA;AACA,MAAMI,uBAAuB,GAAGA,CAACR,SAA8B,EAAEM,MAA2B,KAAK;EAAA,IAAAQ,kBAAA;EAC/F,MAAMH,SAAS,GAAGX,SAAS,CAACxG,IAAI,CAAC4E,KAAK,CAAC,GAAG,CAAC;EAC3C,MAAM,CAACgC,KAAK,EAAE,GAAGC,IAAI,CAAC,GAAGM,SAAS;EAElC,MAAMI,UAAU,IAAAD,kBAAA,GAAGR,MAAM,CAACrB,UAAU,cAAA6B,kBAAA,uBAAjBA,kBAAA,CAAmBnH,IAAI,CAAE4G,CAAC,IAAKA,CAAC,CAAC1D,IAAI,KAAKuD,KAAK,CAAC;EAEnE,IAAI,CAACW,UAAU,EAAE;IACf,IAAIf,SAAS,CAACY,SAAS,EAAE;MAAA,IAAAI,cAAA;MACvB,CAAAA,cAAA,GAAAV,MAAM,CAAC7B,MAAM,cAAAuC,cAAA,eAAbA,cAAA,CAAeb,IAAI,CAACO,0BAA0B,CAACV,SAAS,CAAC,CAAC;IAC5D,CAAC,MAAM;MAAA,IAAAiB,mBAAA;MACL,CAAAA,mBAAA,GAAAX,MAAM,CAACrB,UAAU,cAAAgC,mBAAA,eAAjBA,mBAAA,CAAmBd,IAAI,CAACO,0BAA0B,CAACV,SAAS,CAAC,CAAC;IAChE;EACF,CAAC,MAAM;IACLQ,uBAAuB,CAAC;MAAE,GAAGR,SAAS;MAAExG,IAAI,EAAE6G,IAAI,CAACI,IAAI,CAAC,GAAG;IAAE,CAAC,EAAEM,UAAU,CAAC;EAC7E;AACF,CAAC;AAED,SAASG,gBAAgBA,CAACnE,KAAyB,EAAE;EACnD,OAAOA,KAAK,GAAG,iBAAiB,GAAG,EAAE;AACvC;AAEO,SAASoE,gCAAgCA,CAAuCC,gBAAmB,EAAK;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EAC7G,OAAO;IACL,GAAGJ,gBAAgB;IACnBpG,gBAAgB,EAAE;MAChB,GAAGoG,gBAAgB,CAACpG,gBAAgB;MACpCgD,UAAU,EAAE;QACV,KAAAqD,qBAAA,GAAGD,gBAAgB,CAACpG,gBAAgB,cAAAqG,qBAAA,uBAAjCA,qBAAA,CAAmCrD,UAAU;QAChDjB,KAAK,EAAEmE,gBAAgB,EAAAI,sBAAA,GAACF,gBAAgB,CAACpG,gBAAgB,cAAAsG,sBAAA,gBAAAA,sBAAA,GAAjCA,sBAAA,CAAmCtD,UAAU,cAAAsD,sBAAA,uBAA7CA,sBAAA,CAA+CvE,KAAK;MAC9E,CAAC;MACDL,IAAI,EAAE;QACJ,KAAA6E,sBAAA,GAAGH,gBAAgB,CAACpG,gBAAgB,cAAAuG,sBAAA,uBAAjCA,sBAAA,CAAmC7E,IAAI;QAC1CK,KAAK,EAAEmE,gBAAgB,EAAAM,sBAAA,GAACJ,gBAAgB,CAACpG,gBAAgB,cAAAwG,sBAAA,gBAAAA,sBAAA,GAAjCA,sBAAA,CAAmC9E,IAAI,cAAA8E,sBAAA,uBAAvCA,sBAAA,CAAyCzE,KAAK;MACxE;IACF;EACF,CAAC;AACH","ignoreList":[]}
@@ -30,8 +30,7 @@ const defaultIcons = {
30
30
  INTERACTION_CREATED: HistoryStatusAcceptedIcon,
31
31
  INTERACTION_ERRORED: HistoryStatusErrorIcon,
32
32
  INTERACTION_EXPIRED: HistoryStatusErrorIcon,
33
- REGISTRATION_CERTIFICATE_CREATED: HistoryStatusAcceptedIcon,
34
- REGISTRATION_CERTIFICATE_REVOKED: HistoryStatusErrorIcon
33
+ DELIVERED: HistoryStatusAcceptedIcon
35
34
  },
36
35
  entityTypes: {
37
36
  BACKUP: HistoryRevokeIcon,
@@ -54,7 +53,10 @@ const defaultIcons = {
54
53
  STS_ORGANISATION: HistoryOrganisationIcon,
55
54
  STS_IAM_ROLE: HistoryIdentifierIcon,
56
55
  STS_TOKEN: HistoryKeyIcon,
57
- SIGNATURE: HistoryCertificateIcon
56
+ SIGNATURE: HistoryCertificateIcon,
57
+ STS_SESSION: HistoryIdentifierIcon,
58
+ NOTIFICATION: HistoryCredentialIcon,
59
+ SUPERVISORY_AUTHORITY: HistoryCertificateIcon
58
60
  }
59
61
  };
60
62
  export const getHistoryItemActionIcon = action => {
@@ -1 +1 @@
1
- {"version":3,"names":["HistoryActionBindingEnum","HistoryEntityTypeBindingEnum","React","useMemo","HistoryBackupCreatedIcon","HistoryBackupRestoredIcon","HistoryCertificateIcon","HistoryCredentialIcon","HistoryDidIcon","HistoryIdentifierIcon","HistoryIssueIcon","HistoryItemIcon","HistoryKeyIcon","HistoryOrganisationIcon","HistoryProofRequestIcon","HistoryRevokeIcon","HistorySchemaIcon","HistoryStatusAcceptedIcon","HistoryStatusDeleteIcon","HistoryStatusErrorIcon","HistoryStatusSuspendIcon","HistorySuspendIcon","HistoryTrustAnchorIcon","HistoryTrustedEntityIcon","defaultIcons","actions","ACCEPTED","ACTIVATED","CLAIMS_REMOVED","CREATED","DEACTIVATED","DELETED","ERRORED","IMPORTED","ISSUED","OFFERED","PENDING","REJECTED","REMOVED","REQUESTED","RESTORED","RETRACTED","REVOKED","SHARED","SUSPENDED","UPDATED","WITHDRAWN","REACTIVATED","CSR_GENERATED","EXPIRED","INTERACTION_CREATED","INTERACTION_ERRORED","INTERACTION_EXPIRED","REGISTRATION_CERTIFICATE_CREATED","REGISTRATION_CERTIFICATE_REVOKED","entityTypes","BACKUP","CERTIFICATE","CREDENTIAL","CREDENTIAL_SCHEMA","DID","IDENTIFIER","KEY","ORGANISATION","PROOF","PROOF_SCHEMA","TRUST_ANCHOR","TRUST_ENTITY","WALLET_UNIT","WALLET_RELYING_PARTY","USER","PROVIDER","STS_ROLE","STS_ORGANISATION","STS_IAM_ROLE","STS_TOKEN","SIGNATURE","getHistoryItemActionIcon","action","_defaultIcons$actions","HistoryListItemIcon","item","statusIcon","typeIcon","_defaultIcons$entityT","entityType","createElement","StatusIcon","TypeIcon"],"sources":["history-list-item-icon.tsx"],"sourcesContent":["import {\n HistoryActionBindingEnum,\n HistoryEntityTypeBindingEnum,\n HistoryListItemBindingDto,\n} from '@procivis/react-native-one-core';\nimport React, { FC, useMemo } from 'react';\nimport { SvgProps } from 'react-native-svg';\n\nimport {\n HistoryBackupCreatedIcon,\n HistoryBackupRestoredIcon,\n HistoryCertificateIcon,\n HistoryCredentialIcon,\n HistoryDidIcon,\n HistoryIdentifierIcon,\n HistoryIssueIcon,\n HistoryItemIcon,\n HistoryKeyIcon,\n HistoryOrganisationIcon,\n HistoryProofRequestIcon,\n HistoryRevokeIcon,\n HistorySchemaIcon,\n HistoryStatusAcceptedIcon,\n HistoryStatusDeleteIcon,\n HistoryStatusErrorIcon,\n HistoryStatusSuspendIcon,\n HistorySuspendIcon,\n HistoryTrustAnchorIcon,\n HistoryTrustedEntityIcon,\n} from '../../ui-components';\n\nconst defaultIcons: {\n actions: { [key in keyof typeof HistoryActionBindingEnum]: FC<SvgProps> };\n entityTypes: { [key in keyof typeof HistoryEntityTypeBindingEnum]: FC<SvgProps> };\n} = {\n actions: {\n ACCEPTED: HistoryStatusAcceptedIcon,\n ACTIVATED: HistoryStatusAcceptedIcon,\n CLAIMS_REMOVED: HistoryStatusDeleteIcon,\n CREATED: HistoryStatusAcceptedIcon,\n DEACTIVATED: HistoryStatusErrorIcon,\n DELETED: HistoryStatusDeleteIcon,\n ERRORED: HistoryStatusErrorIcon,\n IMPORTED: HistoryStatusAcceptedIcon,\n ISSUED: HistoryStatusAcceptedIcon,\n OFFERED: HistoryStatusAcceptedIcon,\n PENDING: HistoryStatusAcceptedIcon,\n REJECTED: HistoryStatusErrorIcon,\n REMOVED: HistoryStatusDeleteIcon,\n REQUESTED: HistoryStatusAcceptedIcon,\n RESTORED: HistoryStatusAcceptedIcon,\n RETRACTED: HistoryStatusErrorIcon,\n REVOKED: HistoryStatusErrorIcon,\n SHARED: HistoryStatusAcceptedIcon,\n SUSPENDED: HistoryStatusSuspendIcon,\n UPDATED: HistoryStatusAcceptedIcon,\n WITHDRAWN: HistoryStatusErrorIcon,\n REACTIVATED: HistoryStatusAcceptedIcon,\n CSR_GENERATED: HistoryStatusAcceptedIcon,\n EXPIRED: HistoryStatusErrorIcon,\n INTERACTION_CREATED: HistoryStatusAcceptedIcon,\n INTERACTION_ERRORED: HistoryStatusErrorIcon,\n INTERACTION_EXPIRED: HistoryStatusErrorIcon,\n REGISTRATION_CERTIFICATE_CREATED: HistoryStatusAcceptedIcon,\n REGISTRATION_CERTIFICATE_REVOKED: HistoryStatusErrorIcon,\n },\n entityTypes: {\n BACKUP: HistoryRevokeIcon,\n CERTIFICATE: HistoryCertificateIcon,\n CREDENTIAL: HistoryCredentialIcon,\n CREDENTIAL_SCHEMA: HistorySchemaIcon,\n DID: HistoryDidIcon,\n IDENTIFIER: HistoryIdentifierIcon,\n KEY: HistoryKeyIcon,\n ORGANISATION: HistoryOrganisationIcon,\n PROOF: HistoryProofRequestIcon,\n PROOF_SCHEMA: HistorySchemaIcon,\n TRUST_ANCHOR: HistoryTrustAnchorIcon,\n TRUST_ENTITY: HistoryTrustedEntityIcon,\n WALLET_UNIT: HistoryTrustedEntityIcon,\n WALLET_RELYING_PARTY: HistoryTrustedEntityIcon,\n USER: HistoryIdentifierIcon,\n PROVIDER: HistoryIdentifierIcon,\n STS_ROLE: HistoryIdentifierIcon,\n STS_ORGANISATION: HistoryOrganisationIcon,\n STS_IAM_ROLE: HistoryIdentifierIcon,\n STS_TOKEN: HistoryKeyIcon,\n SIGNATURE: HistoryCertificateIcon,\n },\n};\n\nexport const getHistoryItemActionIcon = (action: HistoryActionBindingEnum) => {\n return defaultIcons.actions[action] ?? HistoryStatusAcceptedIcon;\n};\n\nexport type HistoryListItemIconProps = {\n item: HistoryListItemBindingDto;\n};\n\nexport const HistoryListItemIcon: FC<HistoryListItemIconProps> = ({ item }) => {\n const statusIcon = getHistoryItemActionIcon(item.action);\n const typeIcon = useMemo(() => {\n switch (item.entityType) {\n case HistoryEntityTypeBindingEnum.BACKUP:\n switch (item.action) {\n case HistoryActionBindingEnum.CREATED:\n return HistoryBackupCreatedIcon;\n case HistoryActionBindingEnum.RESTORED:\n return HistoryBackupRestoredIcon;\n default:\n break;\n }\n break;\n case HistoryEntityTypeBindingEnum.CREDENTIAL:\n switch (item.action) {\n case HistoryActionBindingEnum.REVOKED:\n return HistoryRevokeIcon;\n case HistoryActionBindingEnum.SUSPENDED:\n return HistorySuspendIcon;\n default:\n break;\n }\n break;\n default:\n break;\n }\n\n return defaultIcons.entityTypes[item.entityType] ?? HistoryIssueIcon;\n }, [item.action, item.entityType]);\n return <HistoryItemIcon StatusIcon={statusIcon} TypeIcon={typeIcon} />;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["HistoryActionBindingEnum","HistoryEntityTypeBindingEnum","React","useMemo","HistoryBackupCreatedIcon","HistoryBackupRestoredIcon","HistoryCertificateIcon","HistoryCredentialIcon","HistoryDidIcon","HistoryIdentifierIcon","HistoryIssueIcon","HistoryItemIcon","HistoryKeyIcon","HistoryOrganisationIcon","HistoryProofRequestIcon","HistoryRevokeIcon","HistorySchemaIcon","HistoryStatusAcceptedIcon","HistoryStatusDeleteIcon","HistoryStatusErrorIcon","HistoryStatusSuspendIcon","HistorySuspendIcon","HistoryTrustAnchorIcon","HistoryTrustedEntityIcon","defaultIcons","actions","ACCEPTED","ACTIVATED","CLAIMS_REMOVED","CREATED","DEACTIVATED","DELETED","ERRORED","IMPORTED","ISSUED","OFFERED","PENDING","REJECTED","REMOVED","REQUESTED","RESTORED","RETRACTED","REVOKED","SHARED","SUSPENDED","UPDATED","WITHDRAWN","REACTIVATED","CSR_GENERATED","EXPIRED","INTERACTION_CREATED","INTERACTION_ERRORED","INTERACTION_EXPIRED","DELIVERED","entityTypes","BACKUP","CERTIFICATE","CREDENTIAL","CREDENTIAL_SCHEMA","DID","IDENTIFIER","KEY","ORGANISATION","PROOF","PROOF_SCHEMA","TRUST_ANCHOR","TRUST_ENTITY","WALLET_UNIT","WALLET_RELYING_PARTY","USER","PROVIDER","STS_ROLE","STS_ORGANISATION","STS_IAM_ROLE","STS_TOKEN","SIGNATURE","STS_SESSION","NOTIFICATION","SUPERVISORY_AUTHORITY","getHistoryItemActionIcon","action","_defaultIcons$actions","HistoryListItemIcon","item","statusIcon","typeIcon","_defaultIcons$entityT","entityType","createElement","StatusIcon","TypeIcon"],"sources":["history-list-item-icon.tsx"],"sourcesContent":["import {\n HistoryActionBindingEnum,\n HistoryEntityTypeBindingEnum,\n HistoryListItemBindingDto,\n} from '@procivis/react-native-one-core';\nimport React, { FC, useMemo } from 'react';\nimport { SvgProps } from 'react-native-svg';\n\nimport {\n HistoryBackupCreatedIcon,\n HistoryBackupRestoredIcon,\n HistoryCertificateIcon,\n HistoryCredentialIcon,\n HistoryDidIcon,\n HistoryIdentifierIcon,\n HistoryIssueIcon,\n HistoryItemIcon,\n HistoryKeyIcon,\n HistoryOrganisationIcon,\n HistoryProofRequestIcon,\n HistoryRevokeIcon,\n HistorySchemaIcon,\n HistoryStatusAcceptedIcon,\n HistoryStatusDeleteIcon,\n HistoryStatusErrorIcon,\n HistoryStatusSuspendIcon,\n HistorySuspendIcon,\n HistoryTrustAnchorIcon,\n HistoryTrustedEntityIcon,\n} from '../../ui-components';\n\nconst defaultIcons: {\n actions: { [key in keyof typeof HistoryActionBindingEnum]: FC<SvgProps> };\n entityTypes: { [key in keyof typeof HistoryEntityTypeBindingEnum]: FC<SvgProps> };\n} = {\n actions: {\n ACCEPTED: HistoryStatusAcceptedIcon,\n ACTIVATED: HistoryStatusAcceptedIcon,\n CLAIMS_REMOVED: HistoryStatusDeleteIcon,\n CREATED: HistoryStatusAcceptedIcon,\n DEACTIVATED: HistoryStatusErrorIcon,\n DELETED: HistoryStatusDeleteIcon,\n ERRORED: HistoryStatusErrorIcon,\n IMPORTED: HistoryStatusAcceptedIcon,\n ISSUED: HistoryStatusAcceptedIcon,\n OFFERED: HistoryStatusAcceptedIcon,\n PENDING: HistoryStatusAcceptedIcon,\n REJECTED: HistoryStatusErrorIcon,\n REMOVED: HistoryStatusDeleteIcon,\n REQUESTED: HistoryStatusAcceptedIcon,\n RESTORED: HistoryStatusAcceptedIcon,\n RETRACTED: HistoryStatusErrorIcon,\n REVOKED: HistoryStatusErrorIcon,\n SHARED: HistoryStatusAcceptedIcon,\n SUSPENDED: HistoryStatusSuspendIcon,\n UPDATED: HistoryStatusAcceptedIcon,\n WITHDRAWN: HistoryStatusErrorIcon,\n REACTIVATED: HistoryStatusAcceptedIcon,\n CSR_GENERATED: HistoryStatusAcceptedIcon,\n EXPIRED: HistoryStatusErrorIcon,\n INTERACTION_CREATED: HistoryStatusAcceptedIcon,\n INTERACTION_ERRORED: HistoryStatusErrorIcon,\n INTERACTION_EXPIRED: HistoryStatusErrorIcon,\n DELIVERED: HistoryStatusAcceptedIcon,\n },\n entityTypes: {\n BACKUP: HistoryRevokeIcon,\n CERTIFICATE: HistoryCertificateIcon,\n CREDENTIAL: HistoryCredentialIcon,\n CREDENTIAL_SCHEMA: HistorySchemaIcon,\n DID: HistoryDidIcon,\n IDENTIFIER: HistoryIdentifierIcon,\n KEY: HistoryKeyIcon,\n ORGANISATION: HistoryOrganisationIcon,\n PROOF: HistoryProofRequestIcon,\n PROOF_SCHEMA: HistorySchemaIcon,\n TRUST_ANCHOR: HistoryTrustAnchorIcon,\n TRUST_ENTITY: HistoryTrustedEntityIcon,\n WALLET_UNIT: HistoryTrustedEntityIcon,\n WALLET_RELYING_PARTY: HistoryTrustedEntityIcon,\n USER: HistoryIdentifierIcon,\n PROVIDER: HistoryIdentifierIcon,\n STS_ROLE: HistoryIdentifierIcon,\n STS_ORGANISATION: HistoryOrganisationIcon,\n STS_IAM_ROLE: HistoryIdentifierIcon,\n STS_TOKEN: HistoryKeyIcon,\n SIGNATURE: HistoryCertificateIcon,\n STS_SESSION: HistoryIdentifierIcon,\n NOTIFICATION: HistoryCredentialIcon,\n SUPERVISORY_AUTHORITY: HistoryCertificateIcon,\n },\n};\n\nexport const getHistoryItemActionIcon = (action: HistoryActionBindingEnum) => {\n return defaultIcons.actions[action] ?? HistoryStatusAcceptedIcon;\n};\n\nexport type HistoryListItemIconProps = {\n item: HistoryListItemBindingDto;\n};\n\nexport const HistoryListItemIcon: FC<HistoryListItemIconProps> = ({ item }) => {\n const statusIcon = getHistoryItemActionIcon(item.action);\n const typeIcon = useMemo(() => {\n switch (item.entityType) {\n case HistoryEntityTypeBindingEnum.BACKUP:\n switch (item.action) {\n case HistoryActionBindingEnum.CREATED:\n return HistoryBackupCreatedIcon;\n case HistoryActionBindingEnum.RESTORED:\n return HistoryBackupRestoredIcon;\n default:\n break;\n }\n break;\n case HistoryEntityTypeBindingEnum.CREDENTIAL:\n switch (item.action) {\n case HistoryActionBindingEnum.REVOKED:\n return HistoryRevokeIcon;\n case HistoryActionBindingEnum.SUSPENDED:\n return HistorySuspendIcon;\n default:\n break;\n }\n break;\n default:\n break;\n }\n\n return defaultIcons.entityTypes[item.entityType] ?? HistoryIssueIcon;\n }, [item.action, item.entityType]);\n return <HistoryItemIcon StatusIcon={statusIcon} TypeIcon={typeIcon} />;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -103,6 +103,7 @@ const styles = StyleSheet.create({
103
103
  },
104
104
  emptyNotice: {
105
105
  borderRadius: 12,
106
+ borderWidth: 0,
106
107
  marginHorizontal: 16,
107
108
  paddingBottom: 20,
108
109
  paddingHorizontal: 12,
@@ -1 +1 @@
1
- {"version":3,"names":["debounce","React","useEffect","useMemo","useState","Animated","StyleSheet","View","BackButton","FilterButton","FoldableHeader","NavigationHeader","Typography","useAppColorScheme","concatTestID","groupEntriesByDay","useListContentInset","HistoryListView","HistoryListScreen","children","groupItems","itemInfoLabelMode","labels","onBackPressed","onHistoryItemPressed","onOpenFilter","onSearchPhraseChange","queryParams","testID","_queryParams$search","colorScheme","empty","setEmpty","scrollOffset","Value","searchPhrase","setSearchPhrase","searchBarVisible","Boolean","search","text","handleSearchPhraseChange","undefined","headerHeight","insets","additionalBottomPadding","createElement","style","styles","container","backgroundColor","background","emptyNotice","white","marginTop","paddingTop","align","color","preset","emptyTitle","shaded","emptySubtitle","contentContainerStyle","itemProps","infoLabelMode","onPress","onEmpty","onScroll","event","nativeEvent","contentOffset","y","useNativeDriver","query","list","header","leftItem","title","searchBar","rightButtons","active","credentialSchemaId","rightButtonAlwaysVisible","searchBarProps","placeholder","staticHeader","create","flex","borderRadius","marginHorizontal","paddingBottom","paddingHorizontal","opacity"],"sources":["history-list-screen.tsx"],"sourcesContent":["import { HistoryListItemBindingDto, HistoryListQueryBindingDto } from '@procivis/react-native-one-core';\nimport { debounce } from 'lodash';\nimport React, { FC, PropsWithChildren, useEffect, useMemo, useState } from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\n\nimport {\n BackButton,\n FilterButton,\n FoldableHeader,\n NavigationHeader,\n Typography,\n useAppColorScheme,\n} from '../../ui-components';\nimport { concatTestID, groupEntriesByDay, HistoryGroupByDaySection, useListContentInset } from '../../utils';\nimport { HistoryListLabels, HistoryListView } from './history-list';\nimport { HistoryListItemViewProps } from './history-list-item';\n\nexport type HistoryListScreenLabels = {\n emptyTitle: string;\n emptySubtitle: string;\n list: HistoryListLabels;\n title: string;\n search: string;\n};\n\nexport type HistoryListScreenProps = {\n groupItems?: (entries: HistoryListItemBindingDto[]) => HistoryGroupByDaySection[];\n itemInfoLabelMode?: HistoryListItemViewProps['infoLabelMode'];\n labels: HistoryListScreenLabels;\n onBackPressed: () => void;\n onHistoryItemPressed: (historyItem: HistoryListItemBindingDto) => void;\n onOpenFilter?: () => void;\n onSearchPhraseChange: (searchPhrase: string | undefined) => void;\n queryParams: Partial<HistoryListQueryBindingDto>;\n testID?: string;\n};\n\nexport const HistoryListScreen: FC<PropsWithChildren<HistoryListScreenProps>> = ({\n children,\n groupItems = groupEntriesByDay,\n itemInfoLabelMode = 'entity',\n labels,\n onBackPressed,\n onHistoryItemPressed,\n onOpenFilter,\n onSearchPhraseChange,\n queryParams,\n testID = 'HistoryScreen',\n}) => {\n const colorScheme = useAppColorScheme();\n const [empty, setEmpty] = useState<boolean>(false);\n const [scrollOffset] = useState(() => new Animated.Value(0));\n\n const [searchPhrase, setSearchPhrase] = useState<string>('');\n const searchBarVisible = !empty || Boolean(queryParams.search?.text);\n\n const handleSearchPhraseChange = useMemo(() => debounce(onSearchPhraseChange, 500), [onSearchPhraseChange]);\n useEffect(() => {\n handleSearchPhraseChange(searchPhrase || undefined);\n }, [searchPhrase, handleSearchPhraseChange]);\n\n const headerHeight = searchBarVisible ? 112 : 70;\n\n const insets = useListContentInset({\n additionalBottomPadding: 24,\n headerHeight,\n });\n\n return (\n <View\n style={[\n styles.container,\n {\n backgroundColor: colorScheme.background,\n },\n ]}\n testID={testID}>\n {empty && (\n <View\n style={[\n styles.emptyNotice,\n {\n backgroundColor: colorScheme.white,\n marginTop: insets.paddingTop,\n },\n ]}>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s\">\n {labels.emptyTitle}\n </Typography>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s/line-height-small\" style={styles.shaded}>\n {labels.emptySubtitle}\n </Typography>\n </View>\n )}\n <HistoryListView\n contentContainerStyle={insets}\n groupItems={groupItems}\n itemProps={{ infoLabelMode: itemInfoLabelMode, onPress: onHistoryItemPressed }}\n onEmpty={setEmpty}\n onScroll={Animated.event([{ nativeEvent: { contentOffset: { y: scrollOffset } } }], {\n useNativeDriver: true,\n })}\n query={queryParams}\n testID={concatTestID(testID, 'list')}\n labels={labels.list}\n />\n {children}\n <FoldableHeader\n header={\n <NavigationHeader\n backgroundColor={'transparent'}\n leftItem={<BackButton onPress={onBackPressed} testID={concatTestID(testID, 'back')} />}\n title={labels.title}\n />\n }\n scrollOffset={scrollOffset}\n searchBar={\n !searchBarVisible\n ? undefined\n : {\n rightButtons: onOpenFilter\n ? [\n <FilterButton\n active={Boolean(queryParams.credentialSchemaId)}\n onPress={onOpenFilter}\n testID={concatTestID(testID, 'filter')}\n />,\n ]\n : undefined,\n rightButtonAlwaysVisible: true,\n searchBarProps: {\n onSearchPhraseChange: setSearchPhrase,\n placeholder: labels.search,\n searchPhrase,\n testID: concatTestID(testID, 'search'),\n },\n }\n }\n staticHeader={!searchBarVisible}\n />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n emptyNotice: {\n borderRadius: 12,\n marginHorizontal: 16,\n paddingBottom: 20,\n paddingHorizontal: 12,\n paddingTop: 16,\n },\n shaded: {\n opacity: 0.7,\n },\n});\n"],"mappings":"AACA,SAASA,QAAQ,QAAQ,QAAQ;AACjC,OAAOC,KAAK,IAA2BC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAClF,SAASC,QAAQ,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAEzD,SACEC,UAAU,EACVC,YAAY,EACZC,cAAc,EACdC,gBAAgB,EAChBC,UAAU,EACVC,iBAAiB,QACZ,qBAAqB;AAC5B,SAASC,YAAY,EAAEC,iBAAiB,EAA4BC,mBAAmB,QAAQ,aAAa;AAC5G,SAA4BC,eAAe,QAAQ,gBAAgB;AAuBnE,OAAO,MAAMC,iBAAgE,GAAGA,CAAC;EAC/EC,QAAQ;EACRC,UAAU,GAAGL,iBAAiB;EAC9BM,iBAAiB,GAAG,QAAQ;EAC5BC,MAAM;EACNC,aAAa;EACbC,oBAAoB;EACpBC,YAAY;EACZC,oBAAoB;EACpBC,WAAW;EACXC,MAAM,GAAG;AACX,CAAC,KAAK;EAAA,IAAAC,mBAAA;EACJ,MAAMC,WAAW,GAAGjB,iBAAiB,CAAC,CAAC;EACvC,MAAM,CAACkB,KAAK,EAAEC,QAAQ,CAAC,GAAG5B,QAAQ,CAAU,KAAK,CAAC;EAClD,MAAM,CAAC6B,YAAY,CAAC,GAAG7B,QAAQ,CAAC,MAAM,IAAIC,QAAQ,CAAC6B,KAAK,CAAC,CAAC,CAAC,CAAC;EAE5D,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGhC,QAAQ,CAAS,EAAE,CAAC;EAC5D,MAAMiC,gBAAgB,GAAG,CAACN,KAAK,IAAIO,OAAO,EAAAT,mBAAA,GAACF,WAAW,CAACY,MAAM,cAAAV,mBAAA,uBAAlBA,mBAAA,CAAoBW,IAAI,CAAC;EAEpE,MAAMC,wBAAwB,GAAGtC,OAAO,CAAC,MAAMH,QAAQ,CAAC0B,oBAAoB,EAAE,GAAG,CAAC,EAAE,CAACA,oBAAoB,CAAC,CAAC;EAC3GxB,SAAS,CAAC,MAAM;IACduC,wBAAwB,CAACN,YAAY,IAAIO,SAAS,CAAC;EACrD,CAAC,EAAE,CAACP,YAAY,EAAEM,wBAAwB,CAAC,CAAC;EAE5C,MAAME,YAAY,GAAGN,gBAAgB,GAAG,GAAG,GAAG,EAAE;EAEhD,MAAMO,MAAM,GAAG5B,mBAAmB,CAAC;IACjC6B,uBAAuB,EAAE,EAAE;IAC3BF;EACF,CAAC,CAAC;EAEF,oBACE1C,KAAA,CAAA6C,aAAA,CAACvC,IAAI;IACHwC,KAAK,EAAE,CACLC,MAAM,CAACC,SAAS,EAChB;MACEC,eAAe,EAAEpB,WAAW,CAACqB;IAC/B,CAAC,CACD;IACFvB,MAAM,EAAEA;EAAO,GACdG,KAAK,iBACJ9B,KAAA,CAAA6C,aAAA,CAACvC,IAAI;IACHwC,KAAK,EAAE,CACLC,MAAM,CAACI,WAAW,EAClB;MACEF,eAAe,EAAEpB,WAAW,CAACuB,KAAK;MAClCC,SAAS,EAAEV,MAAM,CAACW;IACpB,CAAC;EACD,gBACFtD,KAAA,CAAA6C,aAAA,CAAClC,UAAU;IAAC4C,KAAK,EAAC,QAAQ;IAACC,KAAK,EAAE3B,WAAW,CAACU,IAAK;IAACkB,MAAM,EAAC;EAAG,GAC3DpC,MAAM,CAACqC,UACE,CAAC,eACb1D,KAAA,CAAA6C,aAAA,CAAClC,UAAU;IAAC4C,KAAK,EAAC,QAAQ;IAACC,KAAK,EAAE3B,WAAW,CAACU,IAAK;IAACkB,MAAM,EAAC,qBAAqB;IAACX,KAAK,EAAEC,MAAM,CAACY;EAAO,GACnGtC,MAAM,CAACuC,aACE,CACR,CACP,eACD5D,KAAA,CAAA6C,aAAA,CAAC7B,eAAe;IACd6C,qBAAqB,EAAElB,MAAO;IAC9BxB,UAAU,EAAEA,UAAW;IACvB2C,SAAS,EAAE;MAAEC,aAAa,EAAE3C,iBAAiB;MAAE4C,OAAO,EAAEzC;IAAqB,CAAE;IAC/E0C,OAAO,EAAElC,QAAS;IAClBmC,QAAQ,EAAE9D,QAAQ,CAAC+D,KAAK,CAAC,CAAC;MAAEC,WAAW,EAAE;QAAEC,aAAa,EAAE;UAAEC,CAAC,EAAEtC;QAAa;MAAE;IAAE,CAAC,CAAC,EAAE;MAClFuC,eAAe,EAAE;IACnB,CAAC,CAAE;IACHC,KAAK,EAAE9C,WAAY;IACnBC,MAAM,EAAEd,YAAY,CAACc,MAAM,EAAE,MAAM,CAAE;IACrCN,MAAM,EAAEA,MAAM,CAACoD;EAAK,CACrB,CAAC,EACDvD,QAAQ,eACTlB,KAAA,CAAA6C,aAAA,CAACpC,cAAc;IACbiE,MAAM,eACJ1E,KAAA,CAAA6C,aAAA,CAACnC,gBAAgB;MACfuC,eAAe,EAAE,aAAc;MAC/B0B,QAAQ,eAAE3E,KAAA,CAAA6C,aAAA,CAACtC,UAAU;QAACyD,OAAO,EAAE1C,aAAc;QAACK,MAAM,EAAEd,YAAY,CAACc,MAAM,EAAE,MAAM;MAAE,CAAE,CAAE;MACvFiD,KAAK,EAAEvD,MAAM,CAACuD;IAAM,CACrB,CACF;IACD5C,YAAY,EAAEA,YAAa;IAC3B6C,SAAS,EACP,CAACzC,gBAAgB,GACbK,SAAS,GACT;MACEqC,YAAY,EAAEtD,YAAY,GACtB,cACExB,KAAA,CAAA6C,aAAA,CAACrC,YAAY;QACXuE,MAAM,EAAE1C,OAAO,CAACX,WAAW,CAACsD,kBAAkB,CAAE;QAChDhB,OAAO,EAAExC,YAAa;QACtBG,MAAM,EAAEd,YAAY,CAACc,MAAM,EAAE,QAAQ;MAAE,CACxC,CAAC,CACH,GACDc,SAAS;MACbwC,wBAAwB,EAAE,IAAI;MAC9BC,cAAc,EAAE;QACdzD,oBAAoB,EAAEU,eAAe;QACrCgD,WAAW,EAAE9D,MAAM,CAACiB,MAAM;QAC1BJ,YAAY;QACZP,MAAM,EAAEd,YAAY,CAACc,MAAM,EAAE,QAAQ;MACvC;IACF,CACL;IACDyD,YAAY,EAAE,CAAChD;EAAiB,CACjC,CACG,CAAC;AAEX,CAAC;AAED,MAAMW,MAAM,GAAG1C,UAAU,CAACgF,MAAM,CAAC;EAC/BrC,SAAS,EAAE;IACTsC,IAAI,EAAE;EACR,CAAC;EACDnC,WAAW,EAAE;IACXoC,YAAY,EAAE,EAAE;IAChBC,gBAAgB,EAAE,EAAE;IACpBC,aAAa,EAAE,EAAE;IACjBC,iBAAiB,EAAE,EAAE;IACrBpC,UAAU,EAAE;EACd,CAAC;EACDK,MAAM,EAAE;IACNgC,OAAO,EAAE;EACX;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["debounce","React","useEffect","useMemo","useState","Animated","StyleSheet","View","BackButton","FilterButton","FoldableHeader","NavigationHeader","Typography","useAppColorScheme","concatTestID","groupEntriesByDay","useListContentInset","HistoryListView","HistoryListScreen","children","groupItems","itemInfoLabelMode","labels","onBackPressed","onHistoryItemPressed","onOpenFilter","onSearchPhraseChange","queryParams","testID","_queryParams$search","colorScheme","empty","setEmpty","scrollOffset","Value","searchPhrase","setSearchPhrase","searchBarVisible","Boolean","search","text","handleSearchPhraseChange","undefined","headerHeight","insets","additionalBottomPadding","createElement","style","styles","container","backgroundColor","background","emptyNotice","white","marginTop","paddingTop","align","color","preset","emptyTitle","shaded","emptySubtitle","contentContainerStyle","itemProps","infoLabelMode","onPress","onEmpty","onScroll","event","nativeEvent","contentOffset","y","useNativeDriver","query","list","header","leftItem","title","searchBar","rightButtons","active","credentialSchemaId","rightButtonAlwaysVisible","searchBarProps","placeholder","staticHeader","create","flex","borderRadius","borderWidth","marginHorizontal","paddingBottom","paddingHorizontal","opacity"],"sources":["history-list-screen.tsx"],"sourcesContent":["import { HistoryListItemBindingDto, HistoryListQueryBindingDto } from '@procivis/react-native-one-core';\nimport { debounce } from 'lodash';\nimport React, { FC, PropsWithChildren, useEffect, useMemo, useState } from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\n\nimport {\n BackButton,\n FilterButton,\n FoldableHeader,\n NavigationHeader,\n Typography,\n useAppColorScheme,\n} from '../../ui-components';\nimport { concatTestID, groupEntriesByDay, HistoryGroupByDaySection, useListContentInset } from '../../utils';\nimport { HistoryListLabels, HistoryListView } from './history-list';\nimport { HistoryListItemViewProps } from './history-list-item';\n\nexport type HistoryListScreenLabels = {\n emptyTitle: string;\n emptySubtitle: string;\n list: HistoryListLabels;\n title: string;\n search: string;\n};\n\nexport type HistoryListScreenProps = {\n groupItems?: (entries: HistoryListItemBindingDto[]) => HistoryGroupByDaySection[];\n itemInfoLabelMode?: HistoryListItemViewProps['infoLabelMode'];\n labels: HistoryListScreenLabels;\n onBackPressed: () => void;\n onHistoryItemPressed: (historyItem: HistoryListItemBindingDto) => void;\n onOpenFilter?: () => void;\n onSearchPhraseChange: (searchPhrase: string | undefined) => void;\n queryParams: Partial<HistoryListQueryBindingDto>;\n testID?: string;\n};\n\nexport const HistoryListScreen: FC<PropsWithChildren<HistoryListScreenProps>> = ({\n children,\n groupItems = groupEntriesByDay,\n itemInfoLabelMode = 'entity',\n labels,\n onBackPressed,\n onHistoryItemPressed,\n onOpenFilter,\n onSearchPhraseChange,\n queryParams,\n testID = 'HistoryScreen',\n}) => {\n const colorScheme = useAppColorScheme();\n const [empty, setEmpty] = useState<boolean>(false);\n const [scrollOffset] = useState(() => new Animated.Value(0));\n\n const [searchPhrase, setSearchPhrase] = useState<string>('');\n const searchBarVisible = !empty || Boolean(queryParams.search?.text);\n\n const handleSearchPhraseChange = useMemo(() => debounce(onSearchPhraseChange, 500), [onSearchPhraseChange]);\n useEffect(() => {\n handleSearchPhraseChange(searchPhrase || undefined);\n }, [searchPhrase, handleSearchPhraseChange]);\n\n const headerHeight = searchBarVisible ? 112 : 70;\n\n const insets = useListContentInset({\n additionalBottomPadding: 24,\n headerHeight,\n });\n\n return (\n <View\n style={[\n styles.container,\n {\n backgroundColor: colorScheme.background,\n },\n ]}\n testID={testID}>\n {empty && (\n <View\n style={[\n styles.emptyNotice,\n {\n backgroundColor: colorScheme.white,\n marginTop: insets.paddingTop,\n },\n ]}>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s\">\n {labels.emptyTitle}\n </Typography>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s/line-height-small\" style={styles.shaded}>\n {labels.emptySubtitle}\n </Typography>\n </View>\n )}\n <HistoryListView\n contentContainerStyle={insets}\n groupItems={groupItems}\n itemProps={{ infoLabelMode: itemInfoLabelMode, onPress: onHistoryItemPressed }}\n onEmpty={setEmpty}\n onScroll={Animated.event([{ nativeEvent: { contentOffset: { y: scrollOffset } } }], {\n useNativeDriver: true,\n })}\n query={queryParams}\n testID={concatTestID(testID, 'list')}\n labels={labels.list}\n />\n {children}\n <FoldableHeader\n header={\n <NavigationHeader\n backgroundColor={'transparent'}\n leftItem={<BackButton onPress={onBackPressed} testID={concatTestID(testID, 'back')} />}\n title={labels.title}\n />\n }\n scrollOffset={scrollOffset}\n searchBar={\n !searchBarVisible\n ? undefined\n : {\n rightButtons: onOpenFilter\n ? [\n <FilterButton\n active={Boolean(queryParams.credentialSchemaId)}\n onPress={onOpenFilter}\n testID={concatTestID(testID, 'filter')}\n />,\n ]\n : undefined,\n rightButtonAlwaysVisible: true,\n searchBarProps: {\n onSearchPhraseChange: setSearchPhrase,\n placeholder: labels.search,\n searchPhrase,\n testID: concatTestID(testID, 'search'),\n },\n }\n }\n staticHeader={!searchBarVisible}\n />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n emptyNotice: {\n borderRadius: 12,\n borderWidth: 0,\n marginHorizontal: 16,\n paddingBottom: 20,\n paddingHorizontal: 12,\n paddingTop: 16,\n },\n shaded: {\n opacity: 0.7,\n },\n});\n"],"mappings":"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","ignoreList":[]}
@@ -39,12 +39,6 @@ export const ShareCredential = ({
39
39
  ...credential,
40
40
  issuer: credential === null || credential === void 0 || (_credential$issuer = credential.issuer) === null || _credential$issuer === void 0 ? void 0 : _credential$issuer.id
41
41
  } : undefined);
42
- const invalid = useMemo(() => {
43
- if (!(credential !== null && credential !== void 0 && credential.lvvcIssuanceDate) || !request.validityCredentialNbf) {
44
- return false;
45
- }
46
- return new Date(credential.lvvcIssuanceDate) < new Date(request.validityCredentialNbf);
47
- }, [credential, request]);
48
42
  const footer = useMemo(() => {
49
43
  if (!expanded) {
50
44
  return;
@@ -61,12 +55,6 @@ export const ShareCredential = ({
61
55
  text: labels.suspendedCredentialNotice
62
56
  });
63
57
  }
64
- if (invalid) {
65
- return /*#__PURE__*/React.createElement(ShareCredentialCardNotice, {
66
- testID: concatTestID(testID, 'notice.invalid'),
67
- text: labels.invalidCredentialNotice
68
- });
69
- }
70
58
  if (multipleCredentialsAvailable) {
71
59
  return /*#__PURE__*/React.createElement(SelectShareCredentialCardNotice, {
72
60
  buttonTitle: labels.multipleCredentialsSelect,
@@ -75,14 +63,14 @@ export const ShareCredential = ({
75
63
  text: labels.multipleCredentialsNotice
76
64
  });
77
65
  }
78
- }, [expanded, invalid, labels, multipleCredentialsAvailable, onSelectCredential, testID, validityState]);
66
+ }, [expanded, labels, multipleCredentialsAvailable, onSelectCredential, testID, validityState]);
79
67
  if (!config) {
80
68
  return null;
81
69
  }
82
70
  const {
83
71
  card,
84
72
  attributes
85
- } = shareCredentialCardFromCredential(credential, invalid, Boolean(expanded), multipleCredentialsAvailable, request, selectedFields, config, testID, labels);
73
+ } = shareCredentialCardFromCredential(credential, Boolean(expanded), multipleCredentialsAvailable, request, selectedFields, config, testID, labels);
86
74
  return /*#__PURE__*/React.createElement(CredentialDetailsCardListItem, {
87
75
  attributes: attributes,
88
76
  card: {
@@ -1 +1 @@
1
- {"version":3,"names":["CredentialStateBindingEnum","React","useMemo","Dimensions","StyleSheet","CredentialDetailsCardListItem","useAppColorScheme","concatTestID","useCoreConfig","getValidityState","ValidityState","shareCredentialCardFromCredential","SelectShareCredentialCardNotice","ShareCredentialCardNotice","ShareCredential","allCredentials","expanded","labels","lastItem","onHeaderPress","onImagePreview","onSelectCredential","onSelectField","request","selectedCredentialId","selectedFields","style","testID","_credential$issuer","colorScheme","credential","find","c","id","data","config","cardWidth","get","width","selectionOptions","applicableCredentials","filter","applicableCredentialId","some","state","ACCEPTED","multipleCredentialsAvailable","length","validityState","issuer","undefined","invalid","lvvcIssuanceDate","validityCredentialNbf","Date","footer","Revoked","createElement","text","revokedCredentialNotice","Suspended","suspendedCredentialNotice","invalidCredentialNotice","buttonTitle","multipleCredentialsSelect","onPress","multipleCredentialsNotice","card","attributes","Boolean","credentialId","onAttributeSelected","styles","borderColor","background","create","borderRadius","borderWidth","marginBottom"],"sources":["share-credential.tsx"],"sourcesContent":["import {\n CredentialDetailBindingDto,\n CredentialListItemBindingDto,\n CredentialStateBindingEnum,\n PresentationDefinitionFieldBindingDto,\n PresentationDefinitionRequestedCredentialBindingDto,\n} from '@procivis/react-native-one-core';\nimport React, { FunctionComponent, useMemo } from 'react';\nimport { Dimensions, ImageSourcePropType, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nimport { CredentialDetailsCardListItem, useAppColorScheme } from '../../../ui-components';\nimport { concatTestID } from '../../../utils';\nimport { useCoreConfig } from '../../../utils/hooks/core/core-config';\nimport { getValidityState, ValidityState } from '../../../utils/parsers/credential';\nimport {\n shareCredentialCardFromCredential,\n ShareCredentialCardLabels,\n} from '../../../utils/parsers/credential-sharing';\nimport { SelectShareCredentialCardNotice } from '../select-share-credential-card-notice';\nimport { ShareCredentialCardNotice } from '../share-credential-card-notice';\n\nexport type ShareCredentialLabels = ShareCredentialCardLabels & {\n invalidCredentialNotice: string;\n multipleCredentialsNotice: string;\n multipleCredentialsSelect: string;\n revokedCredentialNotice: string;\n suspendedCredentialNotice: string;\n};\n\nexport const ShareCredential: FunctionComponent<{\n allCredentials: CredentialDetailBindingDto[];\n expanded?: boolean;\n labels: ShareCredentialLabels;\n lastItem?: boolean;\n onHeaderPress?: (_credentialId?: string) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelectCredential?: () => void;\n onSelectField: (_id: PresentationDefinitionFieldBindingDto['id'], _selected: boolean) => void;\n request: PresentationDefinitionRequestedCredentialBindingDto;\n selectedCredentialId?: CredentialListItemBindingDto['id'];\n selectedFields?: Array<PresentationDefinitionFieldBindingDto['id']>;\n style?: StyleProp<ViewStyle>;\n testID: string;\n}> = ({\n allCredentials,\n expanded,\n labels,\n lastItem,\n onHeaderPress,\n onImagePreview,\n onSelectCredential,\n onSelectField,\n request,\n selectedCredentialId,\n selectedFields,\n style,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n const credential = allCredentials.find((c) => c.id === selectedCredentialId);\n const { data: config } = useCoreConfig();\n const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);\n\n const selectionOptions = useMemo(\n () =>\n request.applicableCredentials.filter((applicableCredentialId) =>\n allCredentials.some(\n ({ id, state }) => id === applicableCredentialId && state === CredentialStateBindingEnum.ACCEPTED,\n ),\n ),\n [allCredentials, request],\n );\n const multipleCredentialsAvailable = selectionOptions.length > 1;\n\n const validityState = getValidityState(\n credential\n ? {\n ...credential,\n issuer: credential?.issuer?.id,\n }\n : undefined,\n );\n\n const invalid = useMemo(() => {\n if (!credential?.lvvcIssuanceDate || !request.validityCredentialNbf) {\n return false;\n }\n return new Date(credential.lvvcIssuanceDate) < new Date(request.validityCredentialNbf);\n }, [credential, request]);\n\n const footer = useMemo(() => {\n if (!expanded) {\n return;\n }\n if (validityState === ValidityState.Revoked) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.revoked')}\n text={labels.revokedCredentialNotice}\n />\n );\n }\n if (validityState === ValidityState.Suspended) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.suspended')}\n text={labels.suspendedCredentialNotice}\n />\n );\n }\n\n if (invalid) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.invalid')}\n text={labels.invalidCredentialNotice}\n />\n );\n }\n\n if (multipleCredentialsAvailable) {\n return (\n <SelectShareCredentialCardNotice\n buttonTitle={labels.multipleCredentialsSelect}\n onPress={onSelectCredential}\n testID={concatTestID(testID, 'notice.multiple')}\n text={labels.multipleCredentialsNotice}\n />\n );\n }\n }, [expanded, invalid, labels, multipleCredentialsAvailable, onSelectCredential, testID, validityState]);\n\n if (!config) {\n return null;\n }\n\n const { card, attributes } = shareCredentialCardFromCredential(\n credential,\n invalid,\n Boolean(expanded),\n multipleCredentialsAvailable,\n request,\n selectedFields,\n config,\n testID,\n labels,\n );\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n credentialId: request.id,\n onHeaderPress,\n width: cardWidth,\n }}\n expanded={expanded}\n footer={footer}\n lastItem={lastItem}\n onAttributeSelected={onSelectField}\n onImagePreview={onImagePreview}\n style={[styles.credential, { borderColor: colorScheme.background }, style]}\n testID={testID}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n credential: {\n borderRadius: 10,\n borderWidth: 1,\n marginBottom: 8,\n },\n});\n"],"mappings":"AAAA,SAGEA,0BAA0B,QAGrB,iCAAiC;AACxC,OAAOC,KAAK,IAAuBC,OAAO,QAAQ,OAAO;AACzD,SAASC,UAAU,EAAkCC,UAAU,QAAmB,cAAc;AAEhG,SAASC,6BAA6B,EAAEC,iBAAiB,QAAQ,wBAAwB;AACzF,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,aAAa,QAAQ,uCAAuC;AACrE,SAASC,gBAAgB,EAAEC,aAAa,QAAQ,mCAAmC;AACnF,SACEC,iCAAiC,QAE5B,2CAA2C;AAClD,SAASC,+BAA+B,QAAQ,wCAAwC;AACxF,SAASC,yBAAyB,QAAQ,iCAAiC;AAU3E,OAAO,MAAMC,eAcX,GAAGA,CAAC;EACJC,cAAc;EACdC,QAAQ;EACRC,MAAM;EACNC,QAAQ;EACRC,aAAa;EACbC,cAAc;EACdC,kBAAkB;EAClBC,aAAa;EACbC,OAAO;EACPC,oBAAoB;EACpBC,cAAc;EACdC,KAAK;EACLC;AACF,CAAC,KAAK;EAAA,IAAAC,kBAAA;EACJ,MAAMC,WAAW,GAAGvB,iBAAiB,CAAC,CAAC;EACvC,MAAMwB,UAAU,GAAGf,cAAc,CAACgB,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,EAAE,KAAKT,oBAAoB,CAAC;EAC5E,MAAM;IAAEU,IAAI,EAAEC;EAAO,CAAC,GAAG3B,aAAa,CAAC,CAAC;EACxC,MAAM4B,SAAS,GAAGlC,OAAO,CAAC,MAAMC,UAAU,CAACkC,GAAG,CAAC,QAAQ,CAAC,CAACC,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC;EAExE,MAAMC,gBAAgB,GAAGrC,OAAO,CAC9B,MACEqB,OAAO,CAACiB,qBAAqB,CAACC,MAAM,CAAEC,sBAAsB,IAC1D3B,cAAc,CAAC4B,IAAI,CACjB,CAAC;IAAEV,EAAE;IAAEW;EAAM,CAAC,KAAKX,EAAE,KAAKS,sBAAsB,IAAIE,KAAK,KAAK5C,0BAA0B,CAAC6C,QAC3F,CACF,CAAC,EACH,CAAC9B,cAAc,EAAEQ,OAAO,CAC1B,CAAC;EACD,MAAMuB,4BAA4B,GAAGP,gBAAgB,CAACQ,MAAM,GAAG,CAAC;EAEhE,MAAMC,aAAa,GAAGvC,gBAAgB,CACpCqB,UAAU,GACN;IACE,GAAGA,UAAU;IACbmB,MAAM,EAAEnB,UAAU,aAAVA,UAAU,gBAAAF,kBAAA,GAAVE,UAAU,CAAEmB,MAAM,cAAArB,kBAAA,uBAAlBA,kBAAA,CAAoBK;EAC9B,CAAC,GACDiB,SACN,CAAC;EAED,MAAMC,OAAO,GAAGjD,OAAO,CAAC,MAAM;IAC5B,IAAI,EAAC4B,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEsB,gBAAgB,KAAI,CAAC7B,OAAO,CAAC8B,qBAAqB,EAAE;MACnE,OAAO,KAAK;IACd;IACA,OAAO,IAAIC,IAAI,CAACxB,UAAU,CAACsB,gBAAgB,CAAC,GAAG,IAAIE,IAAI,CAAC/B,OAAO,CAAC8B,qBAAqB,CAAC;EACxF,CAAC,EAAE,CAACvB,UAAU,EAAEP,OAAO,CAAC,CAAC;EAEzB,MAAMgC,MAAM,GAAGrD,OAAO,CAAC,MAAM;IAC3B,IAAI,CAACc,QAAQ,EAAE;MACb;IACF;IACA,IAAIgC,aAAa,KAAKtC,aAAa,CAAC8C,OAAO,EAAE;MAC3C,oBACEvD,KAAA,CAAAwD,aAAA,CAAC5C,yBAAyB;QACxBc,MAAM,EAAEpB,YAAY,CAACoB,MAAM,EAAE,gBAAgB,CAAE;QAC/C+B,IAAI,EAAEzC,MAAM,CAAC0C;MAAwB,CACtC,CAAC;IAEN;IACA,IAAIX,aAAa,KAAKtC,aAAa,CAACkD,SAAS,EAAE;MAC7C,oBACE3D,KAAA,CAAAwD,aAAA,CAAC5C,yBAAyB;QACxBc,MAAM,EAAEpB,YAAY,CAACoB,MAAM,EAAE,kBAAkB,CAAE;QACjD+B,IAAI,EAAEzC,MAAM,CAAC4C;MAA0B,CACxC,CAAC;IAEN;IAEA,IAAIV,OAAO,EAAE;MACX,oBACElD,KAAA,CAAAwD,aAAA,CAAC5C,yBAAyB;QACxBc,MAAM,EAAEpB,YAAY,CAACoB,MAAM,EAAE,gBAAgB,CAAE;QAC/C+B,IAAI,EAAEzC,MAAM,CAAC6C;MAAwB,CACtC,CAAC;IAEN;IAEA,IAAIhB,4BAA4B,EAAE;MAChC,oBACE7C,KAAA,CAAAwD,aAAA,CAAC7C,+BAA+B;QAC9BmD,WAAW,EAAE9C,MAAM,CAAC+C,yBAA0B;QAC9CC,OAAO,EAAE5C,kBAAmB;QAC5BM,MAAM,EAAEpB,YAAY,CAACoB,MAAM,EAAE,iBAAiB,CAAE;QAChD+B,IAAI,EAAEzC,MAAM,CAACiD;MAA0B,CACxC,CAAC;IAEN;EACF,CAAC,EAAE,CAAClD,QAAQ,EAAEmC,OAAO,EAAElC,MAAM,EAAE6B,4BAA4B,EAAEzB,kBAAkB,EAAEM,MAAM,EAAEqB,aAAa,CAAC,CAAC;EAExG,IAAI,CAACb,MAAM,EAAE;IACX,OAAO,IAAI;EACb;EAEA,MAAM;IAAEgC,IAAI;IAAEC;EAAW,CAAC,GAAGzD,iCAAiC,CAC5DmB,UAAU,EACVqB,OAAO,EACPkB,OAAO,CAACrD,QAAQ,CAAC,EACjB8B,4BAA4B,EAC5BvB,OAAO,EACPE,cAAc,EACdU,MAAM,EACNR,MAAM,EACNV,MACF,CAAC;EAED,oBACEhB,KAAA,CAAAwD,aAAA,CAACpD,6BAA6B;IAC5B+D,UAAU,EAAEA,UAAW;IACvBD,IAAI,EAAE;MACJ,GAAGA,IAAI;MACPG,YAAY,EAAE/C,OAAO,CAACU,EAAE;MACxBd,aAAa;MACbmB,KAAK,EAAEF;IACT,CAAE;IACFpB,QAAQ,EAAEA,QAAS;IACnBuC,MAAM,EAAEA,MAAO;IACfrC,QAAQ,EAAEA,QAAS;IACnBqD,mBAAmB,EAAEjD,aAAc;IACnCF,cAAc,EAAEA,cAAe;IAC/BM,KAAK,EAAE,CAAC8C,MAAM,CAAC1C,UAAU,EAAE;MAAE2C,WAAW,EAAE5C,WAAW,CAAC6C;IAAW,CAAC,EAAEhD,KAAK,CAAE;IAC3EC,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN,CAAC;AAED,MAAM6C,MAAM,GAAGpE,UAAU,CAACuE,MAAM,CAAC;EAC/B7C,UAAU,EAAE;IACV8C,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,YAAY,EAAE;EAChB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["CredentialStateBindingEnum","React","useMemo","Dimensions","StyleSheet","CredentialDetailsCardListItem","useAppColorScheme","concatTestID","useCoreConfig","getValidityState","ValidityState","shareCredentialCardFromCredential","SelectShareCredentialCardNotice","ShareCredentialCardNotice","ShareCredential","allCredentials","expanded","labels","lastItem","onHeaderPress","onImagePreview","onSelectCredential","onSelectField","request","selectedCredentialId","selectedFields","style","testID","_credential$issuer","colorScheme","credential","find","c","id","data","config","cardWidth","get","width","selectionOptions","applicableCredentials","filter","applicableCredentialId","some","state","ACCEPTED","multipleCredentialsAvailable","length","validityState","issuer","undefined","footer","Revoked","createElement","text","revokedCredentialNotice","Suspended","suspendedCredentialNotice","buttonTitle","multipleCredentialsSelect","onPress","multipleCredentialsNotice","card","attributes","Boolean","credentialId","onAttributeSelected","styles","borderColor","background","create","borderRadius","borderWidth","marginBottom"],"sources":["share-credential.tsx"],"sourcesContent":["import {\n CredentialDetailBindingDto,\n CredentialListItemBindingDto,\n CredentialStateBindingEnum,\n PresentationDefinitionFieldBindingDto,\n PresentationDefinitionRequestedCredentialBindingDto,\n} from '@procivis/react-native-one-core';\nimport React, { FunctionComponent, useMemo } from 'react';\nimport { Dimensions, ImageSourcePropType, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nimport { CredentialDetailsCardListItem, useAppColorScheme } from '../../../ui-components';\nimport { concatTestID } from '../../../utils';\nimport { useCoreConfig } from '../../../utils/hooks/core/core-config';\nimport { getValidityState, ValidityState } from '../../../utils/parsers/credential';\nimport {\n shareCredentialCardFromCredential,\n ShareCredentialCardLabels,\n} from '../../../utils/parsers/credential-sharing';\nimport { SelectShareCredentialCardNotice } from '../select-share-credential-card-notice';\nimport { ShareCredentialCardNotice } from '../share-credential-card-notice';\n\nexport type ShareCredentialLabels = ShareCredentialCardLabels & {\n invalidCredentialNotice: string;\n multipleCredentialsNotice: string;\n multipleCredentialsSelect: string;\n revokedCredentialNotice: string;\n suspendedCredentialNotice: string;\n};\n\nexport const ShareCredential: FunctionComponent<{\n allCredentials: CredentialDetailBindingDto[];\n expanded?: boolean;\n labels: ShareCredentialLabels;\n lastItem?: boolean;\n onHeaderPress?: (_credentialId?: string) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelectCredential?: () => void;\n onSelectField: (_id: PresentationDefinitionFieldBindingDto['id'], _selected: boolean) => void;\n request: PresentationDefinitionRequestedCredentialBindingDto;\n selectedCredentialId?: CredentialListItemBindingDto['id'];\n selectedFields?: Array<PresentationDefinitionFieldBindingDto['id']>;\n style?: StyleProp<ViewStyle>;\n testID: string;\n}> = ({\n allCredentials,\n expanded,\n labels,\n lastItem,\n onHeaderPress,\n onImagePreview,\n onSelectCredential,\n onSelectField,\n request,\n selectedCredentialId,\n selectedFields,\n style,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n const credential = allCredentials.find((c) => c.id === selectedCredentialId);\n const { data: config } = useCoreConfig();\n const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);\n\n const selectionOptions = useMemo(\n () =>\n request.applicableCredentials.filter((applicableCredentialId) =>\n allCredentials.some(\n ({ id, state }) => id === applicableCredentialId && state === CredentialStateBindingEnum.ACCEPTED,\n ),\n ),\n [allCredentials, request],\n );\n const multipleCredentialsAvailable = selectionOptions.length > 1;\n\n const validityState = getValidityState(\n credential\n ? {\n ...credential,\n issuer: credential?.issuer?.id,\n }\n : undefined,\n );\n\n const footer = useMemo(() => {\n if (!expanded) {\n return;\n }\n if (validityState === ValidityState.Revoked) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.revoked')}\n text={labels.revokedCredentialNotice}\n />\n );\n }\n if (validityState === ValidityState.Suspended) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.suspended')}\n text={labels.suspendedCredentialNotice}\n />\n );\n }\n\n if (multipleCredentialsAvailable) {\n return (\n <SelectShareCredentialCardNotice\n buttonTitle={labels.multipleCredentialsSelect}\n onPress={onSelectCredential}\n testID={concatTestID(testID, 'notice.multiple')}\n text={labels.multipleCredentialsNotice}\n />\n );\n }\n }, [expanded, labels, multipleCredentialsAvailable, onSelectCredential, testID, validityState]);\n\n if (!config) {\n return null;\n }\n\n const { card, attributes } = shareCredentialCardFromCredential(\n credential,\n Boolean(expanded),\n multipleCredentialsAvailable,\n request,\n selectedFields,\n config,\n testID,\n labels,\n );\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n credentialId: request.id,\n onHeaderPress,\n width: cardWidth,\n }}\n expanded={expanded}\n footer={footer}\n lastItem={lastItem}\n onAttributeSelected={onSelectField}\n onImagePreview={onImagePreview}\n style={[styles.credential, { borderColor: colorScheme.background }, style]}\n testID={testID}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n credential: {\n borderRadius: 10,\n borderWidth: 1,\n marginBottom: 8,\n },\n});\n"],"mappings":"AAAA,SAGEA,0BAA0B,QAGrB,iCAAiC;AACxC,OAAOC,KAAK,IAAuBC,OAAO,QAAQ,OAAO;AACzD,SAASC,UAAU,EAAkCC,UAAU,QAAmB,cAAc;AAEhG,SAASC,6BAA6B,EAAEC,iBAAiB,QAAQ,wBAAwB;AACzF,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,aAAa,QAAQ,uCAAuC;AACrE,SAASC,gBAAgB,EAAEC,aAAa,QAAQ,mCAAmC;AACnF,SACEC,iCAAiC,QAE5B,2CAA2C;AAClD,SAASC,+BAA+B,QAAQ,wCAAwC;AACxF,SAASC,yBAAyB,QAAQ,iCAAiC;AAU3E,OAAO,MAAMC,eAcX,GAAGA,CAAC;EACJC,cAAc;EACdC,QAAQ;EACRC,MAAM;EACNC,QAAQ;EACRC,aAAa;EACbC,cAAc;EACdC,kBAAkB;EAClBC,aAAa;EACbC,OAAO;EACPC,oBAAoB;EACpBC,cAAc;EACdC,KAAK;EACLC;AACF,CAAC,KAAK;EAAA,IAAAC,kBAAA;EACJ,MAAMC,WAAW,GAAGvB,iBAAiB,CAAC,CAAC;EACvC,MAAMwB,UAAU,GAAGf,cAAc,CAACgB,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,EAAE,KAAKT,oBAAoB,CAAC;EAC5E,MAAM;IAAEU,IAAI,EAAEC;EAAO,CAAC,GAAG3B,aAAa,CAAC,CAAC;EACxC,MAAM4B,SAAS,GAAGlC,OAAO,CAAC,MAAMC,UAAU,CAACkC,GAAG,CAAC,QAAQ,CAAC,CAACC,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC;EAExE,MAAMC,gBAAgB,GAAGrC,OAAO,CAC9B,MACEqB,OAAO,CAACiB,qBAAqB,CAACC,MAAM,CAAEC,sBAAsB,IAC1D3B,cAAc,CAAC4B,IAAI,CACjB,CAAC;IAAEV,EAAE;IAAEW;EAAM,CAAC,KAAKX,EAAE,KAAKS,sBAAsB,IAAIE,KAAK,KAAK5C,0BAA0B,CAAC6C,QAC3F,CACF,CAAC,EACH,CAAC9B,cAAc,EAAEQ,OAAO,CAC1B,CAAC;EACD,MAAMuB,4BAA4B,GAAGP,gBAAgB,CAACQ,MAAM,GAAG,CAAC;EAEhE,MAAMC,aAAa,GAAGvC,gBAAgB,CACpCqB,UAAU,GACN;IACE,GAAGA,UAAU;IACbmB,MAAM,EAAEnB,UAAU,aAAVA,UAAU,gBAAAF,kBAAA,GAAVE,UAAU,CAAEmB,MAAM,cAAArB,kBAAA,uBAAlBA,kBAAA,CAAoBK;EAC9B,CAAC,GACDiB,SACN,CAAC;EAED,MAAMC,MAAM,GAAGjD,OAAO,CAAC,MAAM;IAC3B,IAAI,CAACc,QAAQ,EAAE;MACb;IACF;IACA,IAAIgC,aAAa,KAAKtC,aAAa,CAAC0C,OAAO,EAAE;MAC3C,oBACEnD,KAAA,CAAAoD,aAAA,CAACxC,yBAAyB;QACxBc,MAAM,EAAEpB,YAAY,CAACoB,MAAM,EAAE,gBAAgB,CAAE;QAC/C2B,IAAI,EAAErC,MAAM,CAACsC;MAAwB,CACtC,CAAC;IAEN;IACA,IAAIP,aAAa,KAAKtC,aAAa,CAAC8C,SAAS,EAAE;MAC7C,oBACEvD,KAAA,CAAAoD,aAAA,CAACxC,yBAAyB;QACxBc,MAAM,EAAEpB,YAAY,CAACoB,MAAM,EAAE,kBAAkB,CAAE;QACjD2B,IAAI,EAAErC,MAAM,CAACwC;MAA0B,CACxC,CAAC;IAEN;IAEA,IAAIX,4BAA4B,EAAE;MAChC,oBACE7C,KAAA,CAAAoD,aAAA,CAACzC,+BAA+B;QAC9B8C,WAAW,EAAEzC,MAAM,CAAC0C,yBAA0B;QAC9CC,OAAO,EAAEvC,kBAAmB;QAC5BM,MAAM,EAAEpB,YAAY,CAACoB,MAAM,EAAE,iBAAiB,CAAE;QAChD2B,IAAI,EAAErC,MAAM,CAAC4C;MAA0B,CACxC,CAAC;IAEN;EACF,CAAC,EAAE,CAAC7C,QAAQ,EAAEC,MAAM,EAAE6B,4BAA4B,EAAEzB,kBAAkB,EAAEM,MAAM,EAAEqB,aAAa,CAAC,CAAC;EAE/F,IAAI,CAACb,MAAM,EAAE;IACX,OAAO,IAAI;EACb;EAEA,MAAM;IAAE2B,IAAI;IAAEC;EAAW,CAAC,GAAGpD,iCAAiC,CAC5DmB,UAAU,EACVkC,OAAO,CAAChD,QAAQ,CAAC,EACjB8B,4BAA4B,EAC5BvB,OAAO,EACPE,cAAc,EACdU,MAAM,EACNR,MAAM,EACNV,MACF,CAAC;EAED,oBACEhB,KAAA,CAAAoD,aAAA,CAAChD,6BAA6B;IAC5B0D,UAAU,EAAEA,UAAW;IACvBD,IAAI,EAAE;MACJ,GAAGA,IAAI;MACPG,YAAY,EAAE1C,OAAO,CAACU,EAAE;MACxBd,aAAa;MACbmB,KAAK,EAAEF;IACT,CAAE;IACFpB,QAAQ,EAAEA,QAAS;IACnBmC,MAAM,EAAEA,MAAO;IACfjC,QAAQ,EAAEA,QAAS;IACnBgD,mBAAmB,EAAE5C,aAAc;IACnCF,cAAc,EAAEA,cAAe;IAC/BM,KAAK,EAAE,CAACyC,MAAM,CAACrC,UAAU,EAAE;MAAEsC,WAAW,EAAEvC,WAAW,CAACwC;IAAW,CAAC,EAAE3C,KAAK,CAAE;IAC3EC,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN,CAAC;AAED,MAAMwC,MAAM,GAAG/D,UAAU,CAACkE,MAAM,CAAC;EAC/BxC,UAAU,EAAE;IACVyC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,YAAY,EAAE;EAChB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -138,6 +138,7 @@ const styles = StyleSheet.create({
138
138
  },
139
139
  groupedCredentialsWrapper: {
140
140
  borderRadius: 10 + GroupedShareCredentialV2Padding,
141
+ borderWidth: 0,
141
142
  overflow: 'hidden',
142
143
  paddingBottom: GroupedShareCredentialV2Padding
143
144
  },