@procivis/one-react-native-components 0.3.86 → 0.3.94

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 (110) hide show
  1. package/lib/commonjs/components/credential/credential.js +2 -8
  2. package/lib/commonjs/components/credential/credential.js.map +1 -1
  3. package/lib/commonjs/components/entity/entity-attributes.js +3 -1
  4. package/lib/commonjs/components/entity/entity-attributes.js.map +1 -1
  5. package/lib/commonjs/components/entity/entity-details-with-buttons.js +2 -1
  6. package/lib/commonjs/components/entity/entity-details-with-buttons.js.map +1 -1
  7. package/lib/commonjs/components/history/history-list-item-icon.js +10 -2
  8. package/lib/commonjs/components/history/history-list-item-icon.js.map +1 -1
  9. package/lib/commonjs/components/proof-request/v1/select-credential.js +2 -8
  10. package/lib/commonjs/components/proof-request/v1/select-credential.js.map +1 -1
  11. package/lib/commonjs/components/proof-request/v1/share-credential.js +2 -8
  12. package/lib/commonjs/components/proof-request/v1/share-credential.js.map +1 -1
  13. package/lib/commonjs/components/proof-request/v2/select-credential-v2.js +2 -6
  14. package/lib/commonjs/components/proof-request/v2/select-credential-v2.js.map +1 -1
  15. package/lib/commonjs/components/proof-request/v2/share-credential-v2.js +2 -6
  16. package/lib/commonjs/components/proof-request/v2/share-credential-v2.js.map +1 -1
  17. package/lib/commonjs/ui-components/accessibility/locale/fi.json +21 -0
  18. package/lib/commonjs/ui-components/accessibility/locale/index.js +2 -0
  19. package/lib/commonjs/ui-components/accessibility/locale/index.js.map +1 -1
  20. package/lib/commonjs/utils/hooks/core/cache.js +4 -1
  21. package/lib/commonjs/utils/hooks/core/cache.js.map +1 -1
  22. package/lib/commonjs/utils/hooks/core/credentials.js +1 -7
  23. package/lib/commonjs/utils/hooks/core/credentials.js.map +1 -1
  24. package/lib/commonjs/utils/hooks/core/proofs.js +3 -6
  25. package/lib/commonjs/utils/hooks/core/proofs.js.map +1 -1
  26. package/lib/commonjs/utils/hooks/core/wallet-unit.js +28 -37
  27. package/lib/commonjs/utils/hooks/core/wallet-unit.js.map +1 -1
  28. package/lib/commonjs/utils/index.js +0 -12
  29. package/lib/commonjs/utils/index.js.map +1 -1
  30. package/lib/commonjs/utils/parsers/credential-sharing-v2.js +4 -4
  31. package/lib/commonjs/utils/parsers/credential-sharing-v2.js.map +1 -1
  32. package/lib/commonjs/utils/parsers/credential-sharing.js +6 -6
  33. package/lib/commonjs/utils/parsers/credential-sharing.js.map +1 -1
  34. package/lib/commonjs/utils/parsers/credential.js +9 -25
  35. package/lib/commonjs/utils/parsers/credential.js.map +1 -1
  36. package/lib/commonjs/utils/parsers/query.js +1 -1
  37. package/lib/commonjs/utils/parsers/query.js.map +1 -1
  38. package/lib/module/components/credential/credential.js +2 -8
  39. package/lib/module/components/credential/credential.js.map +1 -1
  40. package/lib/module/components/entity/entity-attributes.js +3 -1
  41. package/lib/module/components/entity/entity-attributes.js.map +1 -1
  42. package/lib/module/components/entity/entity-details-with-buttons.js +2 -1
  43. package/lib/module/components/entity/entity-details-with-buttons.js.map +1 -1
  44. package/lib/module/components/history/history-list-item-icon.js +10 -2
  45. package/lib/module/components/history/history-list-item-icon.js.map +1 -1
  46. package/lib/module/components/proof-request/v1/select-credential.js +2 -8
  47. package/lib/module/components/proof-request/v1/select-credential.js.map +1 -1
  48. package/lib/module/components/proof-request/v1/share-credential.js +2 -8
  49. package/lib/module/components/proof-request/v1/share-credential.js.map +1 -1
  50. package/lib/module/components/proof-request/v2/select-credential-v2.js +3 -7
  51. package/lib/module/components/proof-request/v2/select-credential-v2.js.map +1 -1
  52. package/lib/module/components/proof-request/v2/share-credential-v2.js +3 -7
  53. package/lib/module/components/proof-request/v2/share-credential-v2.js.map +1 -1
  54. package/lib/module/ui-components/accessibility/locale/fi.json +21 -0
  55. package/lib/module/ui-components/accessibility/locale/index.js +2 -0
  56. package/lib/module/ui-components/accessibility/locale/index.js.map +1 -1
  57. package/lib/module/utils/hooks/core/cache.js +4 -1
  58. package/lib/module/utils/hooks/core/cache.js.map +1 -1
  59. package/lib/module/utils/hooks/core/credentials.js +1 -7
  60. package/lib/module/utils/hooks/core/credentials.js.map +1 -1
  61. package/lib/module/utils/hooks/core/proofs.js +3 -6
  62. package/lib/module/utils/hooks/core/proofs.js.map +1 -1
  63. package/lib/module/utils/hooks/core/wallet-unit.js +26 -35
  64. package/lib/module/utils/hooks/core/wallet-unit.js.map +1 -1
  65. package/lib/module/utils/index.js +0 -1
  66. package/lib/module/utils/index.js.map +1 -1
  67. package/lib/module/utils/parsers/credential-sharing-v2.js +4 -4
  68. package/lib/module/utils/parsers/credential-sharing-v2.js.map +1 -1
  69. package/lib/module/utils/parsers/credential-sharing.js +6 -6
  70. package/lib/module/utils/parsers/credential-sharing.js.map +1 -1
  71. package/lib/module/utils/parsers/credential.js +10 -26
  72. package/lib/module/utils/parsers/credential.js.map +1 -1
  73. package/lib/module/utils/parsers/query.js +1 -1
  74. package/lib/module/utils/parsers/query.js.map +1 -1
  75. package/lib/typescript/components/entity/entity-attributes.d.ts +1 -0
  76. package/lib/typescript/ui-components/accessibility/locale/index.d.ts +21 -0
  77. package/lib/typescript/utils/hooks/core/credentials.d.ts +1 -0
  78. package/lib/typescript/utils/hooks/core/proofs.d.ts +0 -3
  79. package/lib/typescript/utils/hooks/core/wallet-unit.d.ts +7 -7
  80. package/lib/typescript/utils/index.d.ts +0 -1
  81. package/lib/typescript/utils/parsers/credential-sharing-v2.d.ts +2 -3
  82. package/lib/typescript/utils/parsers/credential-sharing.d.ts +3 -4
  83. package/lib/typescript/utils/parsers/credential.d.ts +6 -10
  84. package/lib/typescript/utils/parsers/query.d.ts +1 -1
  85. package/package.json +4 -4
  86. package/src/components/credential/credential.tsx +1 -5
  87. package/src/components/entity/entity-attributes.tsx +3 -0
  88. package/src/components/entity/entity-details-with-buttons.tsx +1 -0
  89. package/src/components/history/history-list-item-icon.tsx +9 -1
  90. package/src/components/proof-request/v1/select-credential.tsx +1 -5
  91. package/src/components/proof-request/v1/share-credential.tsx +1 -5
  92. package/src/components/proof-request/v2/select-credential-v2.tsx +2 -9
  93. package/src/components/proof-request/v2/share-credential-v2.tsx +2 -11
  94. package/src/ui-components/accessibility/locale/fi.json +21 -0
  95. package/src/ui-components/accessibility/locale/index.ts +2 -1
  96. package/src/utils/hooks/core/cache.ts +3 -0
  97. package/src/utils/hooks/core/credentials.ts +3 -2
  98. package/src/utils/hooks/core/proofs.ts +2 -8
  99. package/src/utils/hooks/core/wallet-unit.ts +31 -37
  100. package/src/utils/index.ts +0 -1
  101. package/src/utils/parsers/credential-sharing-v2.tsx +0 -5
  102. package/src/utils/parsers/credential-sharing.tsx +34 -35
  103. package/src/utils/parsers/credential.ts +3 -30
  104. package/src/utils/parsers/query.ts +2 -2
  105. package/lib/commonjs/utils/wallet-unit.js +0 -30
  106. package/lib/commonjs/utils/wallet-unit.js.map +0 -1
  107. package/lib/module/utils/wallet-unit.js +0 -22
  108. package/lib/module/utils/wallet-unit.js.map +0 -1
  109. package/lib/typescript/utils/wallet-unit.d.ts +0 -8
  110. package/src/utils/wallet-unit.ts +0 -30
@@ -1 +1 @@
1
- {"version":3,"names":["React","Selector","SelectorStatus","CredentialNoticeWarningIcon","CredentialWarningIcon","RequiredAttributeIcon","concatTestID","detailsCardAttributeFromClaim","getCredentialCardPropsFromCredential","getValidityState","nestAttributes","supportsSelectiveDisclosure","ValidityState","validityCheckedCardFromCredential","credential","invalidLVVC","expanded","multipleCredentialsAvailable","config","wuaState","notice","testID","labels","credentialHeaderDetail","credentialDetailErrorColor","credentialDetailPrimary","revoked","credentialDetailTestID","multipleCredentials","statusIcon","card","claims","header","missingCredentialCardFromRequest","request","_request$name","cardImage","undefined","color","missingCredential","credentialName","name","id","getAttributeSelectorStatus","field","validityState","claim","selected","Valid","Rejected","required","Required","Disabled","SelectedCheckmark","Empty","spreadClaims","claimsWithPath","map","c","_c$path","path","key","reduce","acc","result","Array","isArray","value","nestedClaimsWithPath","i","array","isArrayElement","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","listValue","split","pop","missingAttribute","valueErrorColor","setStatusForNestedObjectOrArrayFields","attribute","disabled","accessory","createElement","isObject","attributes","length","values","rightAccessory","_attribute$attributes","nested","nestedAttribute","shareCredentialCardFromCredential","_credential$issuer","_credential$issuer2","issuer","text","selectiveDisclosureNotice","noticeIcon","cardTestId","displayedAttributes","index","selectCredentialCardAttributeFromClaim","selectCredentialCardFromCredential","_credential$issuer3","SelectedRadio","cardProps"],"sources":["credential-sharing.tsx"],"sourcesContent":["import {\n Claim,\n Config,\n CredentialDetail,\n PresentationDefinitionField,\n PresentationDefinitionRequestedCredential,\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 { WUAState } from '../wallet-unit';\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: CredentialDetail,\n invalidLVVC: boolean,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n config: Config,\n wuaState: WUAState | undefined,\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, wuaState, notice, testID, labels);\n return {\n ...card,\n header: {\n ...card.header,\n ...credentialHeaderDetail,\n },\n };\n};\n\nexport const missingCredentialCardFromRequest = (\n request: PresentationDefinitionRequestedCredential,\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?: PresentationDefinitionField;\n id: string;\n selected?: boolean;\n status: SelectorStatus;\n}\n\nconst getAttributeSelectorStatus = (\n field: PresentationDefinitionField,\n validityState: ValidityState,\n credential?: CredentialDetail,\n claim?: Claim,\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 ClaimWithOptionalPath = Claim & {\n path?: string;\n};\n\ntype FlatClaim = Claim & {\n path: string;\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: ClaimWithOptionalPath[]): FlatClaim[] => {\n const claimsWithPath: FlatClaim[] = claims.map((c) => ({\n ...c,\n path: c.path ?? c.key,\n }));\n return claimsWithPath.reduce((acc, claim) => {\n const result = [claim];\n if (Array.isArray(claim.value)) {\n const nestedClaimsWithPath: FlatClaim[] = claim.value.map((c, i) => ({\n ...c,\n path: claim.array ? `${c.key}/${i}` : c.key,\n isArrayElement: claim.array,\n }));\n result.push(...spreadClaims(nestedClaimsWithPath));\n }\n return [...acc, ...result];\n }, [] as FlatClaim[]);\n};\n\nconst getDisplayedAttributes = (\n request: PresentationDefinitionRequestedCredential,\n validityState: ValidityState,\n credential?: CredentialDetail,\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.filter((field) => !(credential.id in field.keyMap)).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: PresentationDefinitionRequestedCredential['fields'],\n credentialId: CredentialDetail['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?: PresentationDefinitionField,\n): CredentialAttribute => {\n if (claim) {\n return { ...detailsCardAttributeFromClaim(claim, config, testID), id, path: claim.path, listValue: claim.isArrayElement };\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: CredentialDetail | undefined,\n invalidLVVC: boolean,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n request: PresentationDefinitionRequestedCredential,\n selectedFields: string[] | undefined,\n config: Config,\n wuaState: WUAState | undefined,\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 wuaState,\n notice,\n cardTestId,\n labels,\n )\n : missingCredentialCardFromRequest(request, notice, cardTestId, labels);\n const validityState = getValidityState(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n );\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?: PresentationDefinitionField,\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: CredentialDetail,\n selected: boolean,\n request: PresentationDefinitionRequestedCredential,\n config: Config,\n wuaState: WUAState | undefined,\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 wuaState,\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","Selector","SelectorStatus","CredentialNoticeWarningIcon","CredentialWarningIcon","RequiredAttributeIcon","concatTestID","detailsCardAttributeFromClaim","getCredentialCardPropsFromCredential","getValidityState","nestAttributes","supportsSelectiveDisclosure","ValidityState","validityCheckedCardFromCredential","credential","invalidLVVC","expanded","multipleCredentialsAvailable","config","notice","testID","labels","credentialHeaderDetail","credentialDetailErrorColor","credentialDetailPrimary","revoked","credentialDetailTestID","multipleCredentials","statusIcon","card","claims","header","missingCredentialCardFromRequest","request","_request$name","cardImage","undefined","color","missingCredential","credentialName","name","id","getAttributeSelectorStatus","field","validityState","claim","selected","Valid","Rejected","required","Required","Disabled","SelectedCheckmark","Empty","spreadClaims","claimsWithPath","map","c","_c$path","path","key","reduce","acc","result","Array","isArray","value","nestedClaimsWithPath","i","array","isArrayElement","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","listValue","split","pop","missingAttribute","valueErrorColor","setStatusForNestedObjectOrArrayFields","attribute","disabled","accessory","createElement","isObject","attributes","length","values","rightAccessory","_attribute$attributes","nested","nestedAttribute","shareCredentialCardFromCredential","_credential$issuer","_credential$issuer2","issuer","text","selectiveDisclosureNotice","noticeIcon","cardTestId","displayedAttributes","index","selectCredentialCardAttributeFromClaim","selectCredentialCardFromCredential","_credential$issuer3","SelectedRadio","cardProps"],"sources":["credential-sharing.tsx"],"sourcesContent":["import {\n Claim,\n Config,\n CredentialDetail,\n PresentationDefinitionField,\n PresentationDefinitionRequestedCredential,\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: CredentialDetail,\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: PresentationDefinitionRequestedCredential,\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?: PresentationDefinitionField;\n id: string;\n selected?: boolean;\n status: SelectorStatus;\n}\n\nconst getAttributeSelectorStatus = (\n field: PresentationDefinitionField,\n validityState: ValidityState,\n credential?: CredentialDetail,\n claim?: Claim,\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 ClaimWithOptionalPath = Claim & {\n path?: string;\n};\n\ntype FlatClaim = Claim & {\n path: string;\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: ClaimWithOptionalPath[]): FlatClaim[] => {\n const claimsWithPath: FlatClaim[] = claims.map((c) => ({\n ...c,\n path: c.path ?? c.key,\n }));\n return claimsWithPath.reduce((acc, claim) => {\n const result = [claim];\n if (Array.isArray(claim.value)) {\n const nestedClaimsWithPath: FlatClaim[] = claim.value.map((c, i) => ({\n ...c,\n path: claim.array ? `${c.key}/${i}` : c.key,\n isArrayElement: claim.array,\n }));\n result.push(...spreadClaims(nestedClaimsWithPath));\n }\n return [...acc, ...result];\n }, [] as FlatClaim[]);\n};\n\nconst getDisplayedAttributes = (\n request: PresentationDefinitionRequestedCredential,\n validityState: ValidityState,\n credential?: CredentialDetail,\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: PresentationDefinitionRequestedCredential['fields'],\n credentialId: CredentialDetail['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?: PresentationDefinitionField,\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: CredentialDetail | undefined,\n invalidLVVC: boolean,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n request: PresentationDefinitionRequestedCredential,\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?: PresentationDefinitionField,\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: CredentialDetail,\n selected: boolean,\n request: PresentationDefinitionRequestedCredential,\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,8 +1,7 @@
1
- import { CredentialStateEnum, DataTypeEnum, FormatFeatureEnum, WalletStorageType } from '@procivis/react-native-one-core';
1
+ import { CredentialStateEnum, DataTypeEnum, FormatFeatureEnum } from '@procivis/react-native-one-core';
2
2
  import { CredentialErrorIcon, CredentialNoticeWarningIcon, CredentialWarningIcon } from '../../ui-components/icons';
3
3
  import { formatDateLocalized, formatDateTimeLocalized } from '../date';
4
4
  import { concatTestID } from '../testID';
5
- import { WUAState } from '../wallet-unit';
6
5
  import { getCarouselImagesFromClaims } from './credential-images';
7
6
  export let ValidityState = /*#__PURE__*/function (ValidityState) {
8
7
  ValidityState["Revoked"] = "revoked";
@@ -46,19 +45,11 @@ export const hasMsoValidityIssues = credential => {
46
45
  const mdocMsoValidityIssue = Boolean((mdocMsoValidity === null || mdocMsoValidity === void 0 ? void 0 : mdocMsoValidity.nextUpdate) && new Date(mdocMsoValidity.nextUpdate) < new Date());
47
46
  return mdocMsoValidityIssue;
48
47
  };
49
- const credentialDetailFromCredential = (credential, claims = [], config, wuaState, testID, labels) => {
48
+ const credentialDetailFromCredential = (credential, claims = [], config, testID, labels) => {
50
49
  var _formatDateTimeLocali, _credential$issuanceD;
51
50
  const {
52
51
  layoutProperties
53
52
  } = credential.schema;
54
- if (credential.schema.walletStorageType === WalletStorageType.EUDI_COMPLIANT && wuaState === WUAState.Revoked) {
55
- return {
56
- credentialDetailPrimary: labels.wuaRevoked,
57
- credentialDetailErrorColor: true,
58
- credentialDetailTestID: concatTestID(testID, 'wua', 'revoked'),
59
- statusIcon: CredentialErrorIcon
60
- };
61
- }
62
53
  switch (credential.state) {
63
54
  case CredentialStateEnum.SUSPENDED:
64
55
  return {
@@ -74,13 +65,6 @@ const credentialDetailFromCredential = (credential, claims = [], config, wuaStat
74
65
  statusIcon: CredentialErrorIcon
75
66
  };
76
67
  }
77
- if (credential.schema.walletStorageType === WalletStorageType.EUDI_COMPLIANT && wuaState === WUAState.Expired) {
78
- return {
79
- credentialDetailPrimary: labels.wuaExpired,
80
- credentialDetailTestID: concatTestID(testID, 'wua', 'suspended'),
81
- statusIcon: CredentialWarningIcon
82
- };
83
- }
84
68
  if (hasMsoValidityIssues(credential)) {
85
69
  return {
86
70
  credentialDetailPrimary: labels.validityIssues,
@@ -104,7 +88,7 @@ const credentialDetailFromCredential = (credential, claims = [], config, wuaStat
104
88
  credentialDetailTestID: concatTestID(testID, 'detail')
105
89
  };
106
90
  };
107
- export const cardHeaderFromCredential = (credential, claims = [], config, wuaState, testID, labels) => {
91
+ export const cardHeaderFromCredential = (credential, claims = [], config, testID, labels) => {
108
92
  var _layoutProperties$log, _layoutProperties$log2, _layoutProperties$log3;
109
93
  const {
110
94
  credentialDetailPrimary,
@@ -112,7 +96,7 @@ export const cardHeaderFromCredential = (credential, claims = [], config, wuaSta
112
96
  credentialDetailErrorColor,
113
97
  credentialDetailTestID,
114
98
  statusIcon
115
- } = credentialDetailFromCredential(credential, claims, config, wuaState, testID, labels);
99
+ } = credentialDetailFromCredential(credential, claims, config, testID, labels);
116
100
  const {
117
101
  layoutProperties
118
102
  } = credential.schema;
@@ -133,7 +117,7 @@ export const cardHeaderFromCredential = (credential, claims = [], config, wuaSta
133
117
  testID
134
118
  };
135
119
  };
136
- export const getCredentialCardPropsFromCredential = (credential, claims = [], config, wuaState, notice, testID, labels) => {
120
+ export const getCredentialCardPropsFromCredential = (credential, claims = [], config, notice, testID, labels) => {
137
121
  var _layoutProperties$bac, _layoutProperties$bac2;
138
122
  const {
139
123
  layoutProperties
@@ -152,7 +136,7 @@ export const getCredentialCardPropsFromCredential = (credential, claims = [], co
152
136
  }
153
137
  } : undefined,
154
138
  color: layoutProperties === null || layoutProperties === void 0 || (_layoutProperties$bac2 = layoutProperties.background) === null || _layoutProperties$bac2 === void 0 ? void 0 : _layoutProperties$bac2.color,
155
- header: cardHeaderFromCredential(credential, claims, config, wuaState, concatTestID(testID, 'header'), labels),
139
+ header: cardHeaderFromCredential(credential, claims, config, concatTestID(testID, 'header'), labels),
156
140
  testID,
157
141
  notice
158
142
  };
@@ -233,12 +217,12 @@ const detailsCardAttributeValueFromClaim = (claim, config, testID) => {
233
217
  }
234
218
  }
235
219
  };
236
- export const detailsCardFromCredential = (credential, config, wuaState, testID, labels) => {
237
- return detailsCardFromCredentialWithClaims(credential, credential.claims, config, wuaState, testID, labels);
220
+ export const detailsCardFromCredential = (credential, config, testID, labels) => {
221
+ return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels);
238
222
  };
239
- export const detailsCardFromCredentialWithClaims = (credential, claims, config, wuaState, testID, labels) => {
223
+ export const detailsCardFromCredentialWithClaims = (credential, claims, config, testID, labels) => {
240
224
  const attributes = claims.map((claim, index) => detailsCardAttributeFromClaim(claim, config, concatTestID(testID, 'attribute', index.toString())));
241
- const card = getCredentialCardPropsFromCredential(credential, claims, config, wuaState, undefined, concatTestID(testID, 'card'), labels);
225
+ const card = getCredentialCardPropsFromCredential(credential, claims, config, undefined, concatTestID(testID, 'card'), labels);
242
226
  return {
243
227
  attributes,
244
228
  card
@@ -1 +1 @@
1
- {"version":3,"names":["CredentialStateEnum","DataTypeEnum","FormatFeatureEnum","WalletStorageType","CredentialErrorIcon","CredentialNoticeWarningIcon","CredentialWarningIcon","formatDateLocalized","formatDateTimeLocalized","concatTestID","WUAState","getCarouselImagesFromClaims","ValidityState","getValidityState","credential","state","REVOKED","Revoked","SUSPENDED","Suspended","Valid","supportsSelectiveDisclosure","config","_formatConfig$capabil","formatConfig","format","schema","Boolean","capabilities","features","includes","SelectiveDisclosure","undefined","findClaimByPathParts","path","claims","length","first","second","rest","claim","find","c","key","dataType","Object","value","findClaimByPath","split","formatCredentialDetail","testID","_attributeValue$value","attributeValue","detailsCardAttributeValueFromClaim","hasMsoValidityIssues","mdocMsoValidity","mdocMsoValidityIssue","nextUpdate","Date","credentialDetailFromCredential","wuaState","labels","_formatDateTimeLocali","_credential$issuanceD","layoutProperties","walletStorageType","EUDI_COMPLIANT","credentialDetailPrimary","wuaRevoked","credentialDetailErrorColor","credentialDetailTestID","statusIcon","suspendEndDate","suspendedUntil","suspended","revoked","Expired","wuaExpired","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","result","cardCarouselImages","cardImage","background","header","detailsCardAttributeFromClaim","id","pop","typeConfig","datatype","array","values","map","arrayValue","index","toString","type","Array","isArray","attributes","nestedClaim","_formatDateLocalized","String","date","Picture","SwiyuPicture","_typeConfig$params","params","showAs","detailsCardFromCredential","detailsCardFromCredentialWithClaims","card","nestAttributes","attribute","attributePath","push","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 Claim,\n Config,\n CredentialDetail,\n CredentialListItem,\n CredentialSchema,\n CredentialStateEnum,\n DataTypeEnum,\n FormatFeatureEnum,\n WalletStorageType,\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 { WUAState } from '../wallet-unit';\nimport { getCarouselImagesFromClaims } from './credential-images';\n\nexport enum ValidityState {\n Revoked = 'revoked',\n Suspended = 'suspended',\n Valid = 'valid',\n}\n\nexport const getValidityState = (credential: CredentialListItem | undefined) => {\n if (credential?.state === CredentialStateEnum.REVOKED) {\n return ValidityState.Revoked;\n }\n if (credential?.state === CredentialStateEnum.SUSPENDED) {\n return ValidityState.Suspended;\n }\n return ValidityState.Valid;\n};\n\nexport const supportsSelectiveDisclosure = (credential: CredentialListItem | undefined, config: Config | undefined) => {\n const formatConfig = credential && config?.format[credential.schema.format];\n return formatConfig\n ? Boolean(formatConfig.capabilities?.features?.includes(FormatFeatureEnum.SelectiveDisclosure))\n : undefined;\n};\n\nconst findClaimByPathParts = (path: string[], claims?: Claim[]): Claim | undefined => {\n if (!claims?.length) {\n return undefined;\n }\n const [first, second, ...rest] = path;\n const claim = claims.find((c) => c.key === first);\n if (claim === undefined || second === undefined || claim.dataType !== DataTypeEnum.Object) {\n return claim;\n }\n\n return findClaimByPathParts([`${first}/${second}`, ...rest], claim.value as Claim[]);\n};\n\nexport const findClaimByPath = (path: string | undefined, claims: Claim[] | undefined) =>\n path ? findClaimByPathParts(path.split('/'), claims) : undefined;\n\nconst formatCredentialDetail = (claim: Claim, config: Config, testID: string): string => {\n const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID);\n return attributeValue.value ?? '';\n};\n\nexport const hasMsoValidityIssues = (credential: CredentialDetail): boolean => {\n const mdocMsoValidity: { nextUpdate: string } | undefined =\n 'mdocMsoValidity' in credential ? (credential.mdocMsoValidity as { nextUpdate: string }) : undefined;\n\n const mdocMsoValidityIssue = Boolean(\n mdocMsoValidity?.nextUpdate && new Date(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 wuaExpired: string;\n wuaRevoked: string;\n};\n\nconst credentialDetailFromCredential = (\n credential: CredentialDetail,\n claims: Claim[] = [],\n config: Config,\n wuaState: WUAState | undefined,\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 if (credential.schema.walletStorageType === WalletStorageType.EUDI_COMPLIANT && wuaState === WUAState.Revoked) {\n return {\n credentialDetailPrimary: labels.wuaRevoked,\n credentialDetailErrorColor: true,\n credentialDetailTestID: concatTestID(testID, 'wua', 'revoked'),\n statusIcon: CredentialErrorIcon,\n };\n }\n\n switch (credential.state) {\n case CredentialStateEnum.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 CredentialStateEnum.REVOKED:\n return {\n credentialDetailPrimary: labels.revoked,\n credentialDetailErrorColor: true,\n credentialDetailTestID: concatTestID(testID, 'revoked'),\n statusIcon: CredentialErrorIcon,\n };\n }\n\n if (credential.schema.walletStorageType === WalletStorageType.EUDI_COMPLIANT && wuaState === WUAState.Expired) {\n return {\n credentialDetailPrimary: labels.wuaExpired,\n credentialDetailTestID: concatTestID(testID, 'wua', 'suspended'),\n statusIcon: CredentialWarningIcon,\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: CredentialDetail,\n claims: Claim[] = [],\n config: Config,\n wuaState: WUAState | undefined,\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, wuaState, 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: CredentialDetail,\n claims: Claim[] = [],\n config: Config,\n wuaState: WUAState | undefined,\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, wuaState, concatTestID(testID, 'header'), labels),\n testID,\n notice,\n };\n\n return result;\n};\n\nexport const detailsCardAttributeFromClaim = (claim: Claim, config: Config, testID: string): CredentialAttribute => {\n const value = detailsCardAttributeValueFromClaim(claim, config, testID);\n return {\n id: claim.id,\n name: claim.key.split('/').pop(),\n path: claim.key,\n ...value,\n };\n};\n\nconst detailsCardAttributeValueFromClaim = (claim: Claim, config: Config, testID: string): CredentialAttributeValue => {\n const typeConfig = config?.datatype[claim.dataType];\n\n if (claim.array) {\n return {\n values: (claim.value || []).map((arrayValue, index) => {\n return detailsCardAttributeFromClaim(\n {\n ...arrayValue,\n id: `${arrayValue.id}/${index}`,\n },\n config,\n concatTestID(testID, index.toString()),\n );\n }),\n };\n } else {\n switch (typeConfig?.type) {\n case DataTypeEnum.Object: {\n if (!Array.isArray(claim.value)) {\n return { attributes: [] };\n }\n return {\n attributes: (claim.value as Claim[]).map((nestedClaim, index) =>\n detailsCardAttributeFromClaim(nestedClaim, config, concatTestID(testID, index.toString())),\n ),\n };\n }\n case DataTypeEnum.Date: {\n if (!claim.value) {\n // Don't try to parse empty values (which will return \"Invalid Date\")\n return { testID: testID, value: String(claim.value) };\n }\n const date = claim.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 as string }, testID: testID };\n } else {\n return { testID: testID, value: claim.value as string };\n }\n }\n default:\n return { testID: testID, value: String(claim.value) };\n }\n }\n};\n\nexport type CredentialDetailsCardPropsWithoutWidth = Omit<CredentialDetailsCardProps, 'expanded' | 'card'> & {\n card: Omit<CredentialCardProps, 'width'>;\n};\n\nexport const detailsCardFromCredential = (\n credential: CredentialDetail,\n config: Config,\n wuaState: WUAState | undefined,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n return detailsCardFromCredentialWithClaims(credential, credential.claims, config, wuaState, testID, labels);\n};\n\nexport const detailsCardFromCredentialWithClaims = (\n credential: CredentialDetail,\n claims: Claim[],\n config: Config,\n wuaState: WUAState | undefined,\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 wuaState,\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: CredentialSchema) {\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":["CredentialStateEnum","DataTypeEnum","FormatFeatureEnum","CredentialErrorIcon","CredentialNoticeWarningIcon","CredentialWarningIcon","formatDateLocalized","formatDateTimeLocalized","concatTestID","getCarouselImagesFromClaims","ValidityState","getValidityState","credential","state","REVOKED","Revoked","SUSPENDED","Suspended","Valid","supportsSelectiveDisclosure","config","_formatConfig$capabil","formatConfig","format","schema","Boolean","capabilities","features","includes","SelectiveDisclosure","undefined","findClaimByPathParts","path","claims","length","first","second","rest","claim","find","c","key","dataType","Object","value","findClaimByPath","split","formatCredentialDetail","testID","_attributeValue$value","attributeValue","detailsCardAttributeValueFromClaim","hasMsoValidityIssues","mdocMsoValidity","mdocMsoValidityIssue","nextUpdate","Date","credentialDetailFromCredential","labels","_formatDateTimeLocali","_credential$issuanceD","layoutProperties","credentialDetailPrimary","suspendEndDate","suspendedUntil","suspended","credentialDetailTestID","statusIcon","revoked","credentialDetailErrorColor","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","result","cardCarouselImages","cardImage","background","header","detailsCardAttributeFromClaim","id","pop","typeConfig","datatype","array","values","map","arrayValue","index","toString","type","Array","isArray","attributes","nestedClaim","_formatDateLocalized","String","date","Picture","SwiyuPicture","_typeConfig$params","params","showAs","detailsCardFromCredential","detailsCardFromCredentialWithClaims","card","nestAttributes","attribute","attributePath","push","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 Claim,\n Config,\n CredentialDetail,\n CredentialListItem,\n CredentialSchema,\n CredentialStateEnum,\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: CredentialListItem | undefined) => {\n if (credential?.state === CredentialStateEnum.REVOKED) {\n return ValidityState.Revoked;\n }\n if (credential?.state === CredentialStateEnum.SUSPENDED) {\n return ValidityState.Suspended;\n }\n return ValidityState.Valid;\n};\n\nexport const supportsSelectiveDisclosure = (credential: CredentialListItem | undefined, config: Config | undefined) => {\n const formatConfig = credential && config?.format[credential.schema.format];\n return formatConfig\n ? Boolean(formatConfig.capabilities?.features?.includes(FormatFeatureEnum.SelectiveDisclosure))\n : undefined;\n};\n\nconst findClaimByPathParts = (path: string[], claims?: Claim[]): Claim | undefined => {\n if (!claims?.length) {\n return undefined;\n }\n const [first, second, ...rest] = path;\n const claim = claims.find((c) => c.key === first);\n if (claim === undefined || second === undefined || claim.dataType !== DataTypeEnum.Object) {\n return claim;\n }\n\n return findClaimByPathParts([`${first}/${second}`, ...rest], claim.value as Claim[]);\n};\n\nexport const findClaimByPath = (path: string | undefined, claims: Claim[] | undefined) =>\n path ? findClaimByPathParts(path.split('/'), claims) : undefined;\n\nconst formatCredentialDetail = (claim: Claim, config: Config, testID: string): string => {\n const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID);\n return attributeValue.value ?? '';\n};\n\nexport const hasMsoValidityIssues = (credential: CredentialDetail): boolean => {\n const mdocMsoValidity: { nextUpdate: string } | undefined =\n 'mdocMsoValidity' in credential ? (credential.mdocMsoValidity as { nextUpdate: string }) : undefined;\n\n const mdocMsoValidityIssue = Boolean(\n mdocMsoValidity?.nextUpdate && new Date(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: CredentialDetail,\n claims: Claim[] = [],\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 CredentialStateEnum.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 CredentialStateEnum.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: CredentialDetail,\n claims: Claim[] = [],\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: CredentialDetail,\n claims: Claim[] = [],\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 = (claim: Claim, config: Config, testID: string): CredentialAttribute => {\n const value = detailsCardAttributeValueFromClaim(claim, config, testID);\n return {\n id: claim.id,\n name: claim.key.split('/').pop(),\n path: claim.key,\n ...value,\n };\n};\n\nconst detailsCardAttributeValueFromClaim = (claim: Claim, config: Config, testID: string): CredentialAttributeValue => {\n const typeConfig = config?.datatype[claim.dataType];\n\n if (claim.array) {\n return {\n values: (claim.value || []).map((arrayValue, index) => {\n return detailsCardAttributeFromClaim(\n {\n ...arrayValue,\n id: `${arrayValue.id}/${index}`,\n },\n config,\n concatTestID(testID, index.toString()),\n );\n }),\n };\n } else {\n switch (typeConfig?.type) {\n case DataTypeEnum.Object: {\n if (!Array.isArray(claim.value)) {\n return { attributes: [] };\n }\n return {\n attributes: (claim.value as Claim[]).map((nestedClaim, index) =>\n detailsCardAttributeFromClaim(nestedClaim, config, concatTestID(testID, index.toString())),\n ),\n };\n }\n case DataTypeEnum.Date: {\n if (!claim.value) {\n // Don't try to parse empty values (which will return \"Invalid Date\")\n return { testID: testID, value: String(claim.value) };\n }\n const date = claim.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 as string }, testID: testID };\n } else {\n return { testID: testID, value: claim.value as string };\n }\n }\n default:\n return { testID: testID, value: String(claim.value) };\n }\n }\n};\n\nexport type CredentialDetailsCardPropsWithoutWidth = Omit<CredentialDetailsCardProps, 'expanded' | 'card'> & {\n card: Omit<CredentialCardProps, 'width'>;\n};\n\nexport const detailsCardFromCredential = (\n credential: CredentialDetail,\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: CredentialDetail,\n claims: Claim[],\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: CredentialSchema) {\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,SAMEA,mBAAmB,EACnBC,YAAY,EACZC,iBAAiB,QACZ,iCAAiC;AAYxC,SAASC,mBAAmB,EAAEC,2BAA2B,EAAEC,qBAAqB,QAAQ,2BAA2B;AACnH,SAASC,mBAAmB,EAAEC,uBAAuB,QAAQ,SAAS;AACtE,SAASC,YAAY,QAAQ,WAAW;AACxC,SAASC,2BAA2B,QAAQ,qBAAqB;AAEjE,WAAYC,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAMzB,OAAO,MAAMC,gBAAgB,GAAIC,UAA0C,IAAK;EAC9E,IAAI,CAAAA,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEC,KAAK,MAAKb,mBAAmB,CAACc,OAAO,EAAE;IACrD,OAAOJ,aAAa,CAACK,OAAO;EAC9B;EACA,IAAI,CAAAH,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEC,KAAK,MAAKb,mBAAmB,CAACgB,SAAS,EAAE;IACvD,OAAON,aAAa,CAACO,SAAS;EAChC;EACA,OAAOP,aAAa,CAACQ,KAAK;AAC5B,CAAC;AAED,OAAO,MAAMC,2BAA2B,GAAGA,CAACP,UAA0C,EAAEQ,MAA0B,KAAK;EAAA,IAAAC,qBAAA;EACrH,MAAMC,YAAY,GAAGV,UAAU,KAAIQ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEG,MAAM,CAACX,UAAU,CAACY,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,CAAC1B,iBAAiB,CAAC2B,mBAAmB,CAAC,CAAC,GAC7FC,SAAS;AACf,CAAC;AAED,MAAMC,oBAAoB,GAAGA,CAACC,IAAc,EAAEC,MAAgB,KAAwB;EACpF,IAAI,EAACA,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEC,MAAM,GAAE;IACnB,OAAOJ,SAAS;EAClB;EACA,MAAM,CAACK,KAAK,EAAEC,MAAM,EAAE,GAAGC,IAAI,CAAC,GAAGL,IAAI;EACrC,MAAMM,KAAK,GAAGL,MAAM,CAACM,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,GAAG,KAAKN,KAAK,CAAC;EACjD,IAAIG,KAAK,KAAKR,SAAS,IAAIM,MAAM,KAAKN,SAAS,IAAIQ,KAAK,CAACI,QAAQ,KAAKzC,YAAY,CAAC0C,MAAM,EAAE;IACzF,OAAOL,KAAK;EACd;EAEA,OAAOP,oBAAoB,CAAC,CAAC,GAAGI,KAAK,IAAIC,MAAM,EAAE,EAAE,GAAGC,IAAI,CAAC,EAAEC,KAAK,CAACM,KAAgB,CAAC;AACtF,CAAC;AAED,OAAO,MAAMC,eAAe,GAAGA,CAACb,IAAwB,EAAEC,MAA2B,KACnFD,IAAI,GAAGD,oBAAoB,CAACC,IAAI,CAACc,KAAK,CAAC,GAAG,CAAC,EAAEb,MAAM,CAAC,GAAGH,SAAS;AAElE,MAAMiB,sBAAsB,GAAGA,CAACT,KAAY,EAAElB,MAAc,EAAE4B,MAAc,KAAa;EAAA,IAAAC,qBAAA;EACvF,MAAMC,cAAc,GAAGC,kCAAkC,CAACb,KAAK,EAAElB,MAAM,EAAE4B,MAAM,CAAC;EAChF,QAAAC,qBAAA,GAAOC,cAAc,CAACN,KAAK,cAAAK,qBAAA,cAAAA,qBAAA,GAAI,EAAE;AACnC,CAAC;AAED,OAAO,MAAMG,oBAAoB,GAAIxC,UAA4B,IAAc;EAC7E,MAAMyC,eAAmD,GACvD,iBAAiB,IAAIzC,UAAU,GAAIA,UAAU,CAACyC,eAAe,GAA8BvB,SAAS;EAEtG,MAAMwB,oBAAoB,GAAG7B,OAAO,CAClC,CAAA4B,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEE,UAAU,KAAI,IAAIC,IAAI,CAACH,eAAe,CAACE,UAAU,CAAC,GAAG,IAAIC,IAAI,CAAC,CACjF,CAAC;EAED,OAAOF,oBAAoB;AAC7B,CAAC;AASD,MAAMG,8BAA8B,GAAGA,CACrC7C,UAA4B,EAC5BqB,MAAe,GAAG,EAAE,EACpBb,MAAc,EACd4B,MAAc,EACdU,MAAwB,KAOrB;EAAA,IAAAC,qBAAA,EAAAC,qBAAA;EACH,MAAM;IAAEC;EAAiB,CAAC,GAAGjD,UAAU,CAACY,MAAM;EAE9C,QAAQZ,UAAU,CAACC,KAAK;IACtB,KAAKb,mBAAmB,CAACgB,SAAS;MAChC,OAAO;QACL8C,uBAAuB,EAAElD,UAAU,CAACmD,cAAc,GAC9CL,MAAM,CAACM,cAAc,CAACzD,uBAAuB,CAAC,IAAIiD,IAAI,CAAC5C,UAAU,CAACmD,cAAc,CAAC,CAAE,CAAC,GACpFL,MAAM,CAACO,SAAS;QACpBC,sBAAsB,EAAE1D,YAAY,CAACwC,MAAM,EAAE,WAAW,CAAC;QACzDmB,UAAU,EAAE9D;MACd,CAAC;IACH,KAAKL,mBAAmB,CAACc,OAAO;MAC9B,OAAO;QACLgD,uBAAuB,EAAEJ,MAAM,CAACU,OAAO;QACvCC,0BAA0B,EAAE,IAAI;QAChCH,sBAAsB,EAAE1D,YAAY,CAACwC,MAAM,EAAE,SAAS,CAAC;QACvDmB,UAAU,EAAEhE;MACd,CAAC;EACL;EAEA,IAAIiD,oBAAoB,CAACxC,UAAU,CAAC,EAAE;IACpC,OAAO;MACLkD,uBAAuB,EAAEJ,MAAM,CAACY,cAAc;MAC9CJ,sBAAsB,EAAE1D,YAAY,CAACwC,MAAM,EAAE,gBAAgB,CAAC;MAC9DmB,UAAU,EAAE9D;IACd,CAAC;EACH;EAEA,IAAIyD,uBAAuB,IAAAH,qBAAA,GACzBpD,uBAAuB,CAAC,IAAIiD,IAAI,EAAAI,qBAAA,GAAChD,UAAU,CAAC2D,YAAY,cAAAX,qBAAA,cAAAA,qBAAA,GAAIhD,UAAU,CAAC4D,WAAW,CAAC,CAAC,cAAAb,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAC5F,IAAIc,yBAA6C;EAEjD,MAAMC,OAAO,GAAG7B,eAAe,CAACgB,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEc,gBAAgB,EAAE1C,MAAM,CAAC;EAE3E,IAAIyC,OAAO,EAAE;IACXZ,uBAAuB,GAAGf,sBAAsB,CAAC2B,OAAO,EAAEtD,MAAM,EAAEZ,YAAY,CAACwC,MAAM,EAAE,SAAS,CAAC,CAAC;EACpG;EAEA,MAAM4B,SAAS,GAAG/B,eAAe,CAACgB,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEgB,kBAAkB,EAAE5C,MAAM,CAAC;EAE/E,IAAI2C,SAAS,EAAE;IACbH,yBAAyB,GAAG1B,sBAAsB,CAAC6B,SAAS,EAAExD,MAAM,EAAEZ,YAAY,CAACwC,MAAM,EAAE,WAAW,CAAC,CAAC;EAC1G;EAEA,OAAO;IACLc,uBAAuB;IACvBW,yBAAyB;IACzBP,sBAAsB,EAAE1D,YAAY,CAACwC,MAAM,EAAE,QAAQ;EACvD,CAAC;AACH,CAAC;AAED,OAAO,MAAM8B,wBAAwB,GAAGA,CACtClE,UAA4B,EAC5BqB,MAAe,GAAG,EAAE,EACpBb,MAAc,EACd4B,MAAc,EACdU,MAAwB,KACiB;EAAA,IAAAqB,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EACzC,MAAM;IACJnB,uBAAuB;IACvBW,yBAAyB;IACzBJ,0BAA0B;IAC1BH,sBAAsB;IACtBC;EACF,CAAC,GAAGV,8BAA8B,CAAC7C,UAAU,EAAEqB,MAAM,EAAEb,MAAM,EAAE4B,MAAM,EAAEU,MAAM,CAAC;EAC9E,MAAM;IAAEG;EAAiB,CAAC,GAAGjD,UAAU,CAACY,MAAM;EAE9C,OAAO;IACL0D,KAAK,EAAErB,gBAAgB,aAAhBA,gBAAgB,gBAAAkB,qBAAA,GAAhBlB,gBAAgB,CAAEsB,IAAI,cAAAJ,qBAAA,uBAAtBA,qBAAA,CAAwBK,eAAe;IAC9Cf,0BAA0B;IAC1BP,uBAAuB;IACvBW,yBAAyB;IACzBP,sBAAsB;IACtBmB,cAAc,EAAEzE,UAAU,CAACY,MAAM,CAAC8D,IAAI;IACtCC,IAAI,EAAE1B,gBAAgB,aAAhBA,gBAAgB,gBAAAmB,sBAAA,GAAhBnB,gBAAgB,CAAEsB,IAAI,cAAAH,sBAAA,eAAtBA,sBAAA,CAAwBQ,KAAK,GAC/B;MACEC,WAAW,EAAE;QACXC,GAAG,EAAE7B,gBAAgB,CAACsB,IAAI,CAACK;MAC7B;IACF,CAAC,GACD1D,SAAS;IACb6D,cAAc,EAAE9B,gBAAgB,aAAhBA,gBAAgB,gBAAAoB,sBAAA,GAAhBpB,gBAAgB,CAAEsB,IAAI,cAAAF,sBAAA,uBAAtBA,sBAAA,CAAwBW,SAAS;IACjDzB,UAAU;IACVnB;EACF,CAAC;AACH,CAAC;AAMD,OAAO,MAAM6C,oCAAoC,GAAGA,CAClDjF,UAA4B,EAC5BqB,MAAe,GAAG,EAAE,EACpBb,MAAc,EACd0E,MAAwC,EACxC9C,MAAc,EACdU,MAAkB,KACiD;EAAA,IAAAqC,qBAAA,EAAAC,sBAAA;EACnE,MAAM;IAAEnC;EAAiB,CAAC,GAAGjD,UAAU,CAACY,MAAM;EAE9C,IAAI4B,oBAAoB,CAACxC,UAAU,CAAC,EAAE;IACpCkF,MAAM,GAAG;MACPG,IAAI,EAAEvC,MAAM,CAACwC,oBAAoB;MACjCC,UAAU,EAAE/F;IACd,CAAC;EACH;EAEA,MAAMgG,MAAsE,GAAG;IAC7EC,kBAAkB,EAAE5F,2BAA2B,CAACwB,MAAM,EAAE4B,gBAAgB,EAAErD,YAAY,CAACwC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3GsD,SAAS,EAAEzC,gBAAgB,aAAhBA,gBAAgB,gBAAAkC,qBAAA,GAAhBlC,gBAAgB,CAAE0C,UAAU,cAAAR,qBAAA,eAA5BA,qBAAA,CAA8BP,KAAK,GAC1C;MAAEC,WAAW,EAAE;QAAEC,GAAG,EAAE7B,gBAAgB,CAAC0C,UAAU,CAACf;MAAM;IAAE,CAAC,GAC3D1D,SAAS;IACboD,KAAK,EAAErB,gBAAgB,aAAhBA,gBAAgB,gBAAAmC,sBAAA,GAAhBnC,gBAAgB,CAAE0C,UAAU,cAAAP,sBAAA,uBAA5BA,sBAAA,CAA8Bd,KAAK;IAC1CsB,MAAM,EAAE1B,wBAAwB,CAAClE,UAAU,EAAEqB,MAAM,EAAEb,MAAM,EAAEZ,YAAY,CAACwC,MAAM,EAAE,QAAQ,CAAC,EAAEU,MAAM,CAAC;IACpGV,MAAM;IACN8C;EACF,CAAC;EAED,OAAOM,MAAM;AACf,CAAC;AAED,OAAO,MAAMK,6BAA6B,GAAGA,CAACnE,KAAY,EAAElB,MAAc,EAAE4B,MAAc,KAA0B;EAClH,MAAMJ,KAAK,GAAGO,kCAAkC,CAACb,KAAK,EAAElB,MAAM,EAAE4B,MAAM,CAAC;EACvE,OAAO;IACL0D,EAAE,EAAEpE,KAAK,CAACoE,EAAE;IACZpB,IAAI,EAAEhD,KAAK,CAACG,GAAG,CAACK,KAAK,CAAC,GAAG,CAAC,CAAC6D,GAAG,CAAC,CAAC;IAChC3E,IAAI,EAAEM,KAAK,CAACG,GAAG;IACf,GAAGG;EACL,CAAC;AACH,CAAC;AAED,MAAMO,kCAAkC,GAAGA,CAACb,KAAY,EAAElB,MAAc,EAAE4B,MAAc,KAA+B;EACrH,MAAM4D,UAAU,GAAGxF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEyF,QAAQ,CAACvE,KAAK,CAACI,QAAQ,CAAC;EAEnD,IAAIJ,KAAK,CAACwE,KAAK,EAAE;IACf,OAAO;MACLC,MAAM,EAAE,CAACzE,KAAK,CAACM,KAAK,IAAI,EAAE,EAAEoE,GAAG,CAAC,CAACC,UAAU,EAAEC,KAAK,KAAK;QACrD,OAAOT,6BAA6B,CAClC;UACE,GAAGQ,UAAU;UACbP,EAAE,EAAE,GAAGO,UAAU,CAACP,EAAE,IAAIQ,KAAK;QAC/B,CAAC,EACD9F,MAAM,EACNZ,YAAY,CAACwC,MAAM,EAAEkE,KAAK,CAACC,QAAQ,CAAC,CAAC,CACvC,CAAC;MACH,CAAC;IACH,CAAC;EACH,CAAC,MAAM;IACL,QAAQP,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEQ,IAAI;MACtB,KAAKnH,YAAY,CAAC0C,MAAM;QAAE;UACxB,IAAI,CAAC0E,KAAK,CAACC,OAAO,CAAChF,KAAK,CAACM,KAAK,CAAC,EAAE;YAC/B,OAAO;cAAE2E,UAAU,EAAE;YAAG,CAAC;UAC3B;UACA,OAAO;YACLA,UAAU,EAAGjF,KAAK,CAACM,KAAK,CAAaoE,GAAG,CAAC,CAACQ,WAAW,EAAEN,KAAK,KAC1DT,6BAA6B,CAACe,WAAW,EAAEpG,MAAM,EAAEZ,YAAY,CAACwC,MAAM,EAAEkE,KAAK,CAACC,QAAQ,CAAC,CAAC,CAAC,CAC3F;UACF,CAAC;QACH;MACA,KAAKlH,YAAY,CAACuD,IAAI;QAAE;UAAA,IAAAiE,oBAAA;UACtB,IAAI,CAACnF,KAAK,CAACM,KAAK,EAAE;YAChB;YACA,OAAO;cAAEI,MAAM,EAAEA,MAAM;cAAEJ,KAAK,EAAE8E,MAAM,CAACpF,KAAK,CAACM,KAAK;YAAE,CAAC;UACvD;UACA,MAAM+E,IAAI,GAAGrF,KAAK,CAACM,KAAe;UAClC,OAAO;YACLI,MAAM,EAAEA,MAAM;YACdJ,KAAK,GAAA6E,oBAAA,GAAEnH,mBAAmB,CAAC,IAAIkD,IAAI,CAACmE,IAAI,CAAC,CAAC,cAAAF,oBAAA,cAAAA,oBAAA,GAAIE;UAChD,CAAC;QACH;MACA,KAAK1H,YAAY,CAAC2H,OAAO,CAAC,CAAC;MAC3B,KAAK3H,YAAY,CAAC4H,YAAY;QAAE;UAAA,IAAAC,kBAAA;UAC9B,IAAI,EAAAA,kBAAA,GAAAlB,UAAU,CAACmB,MAAM,cAAAD,kBAAA,uBAAjBA,kBAAA,CAAmBE,MAAM,MAAK,OAAO,EAAE;YACzC,OAAO;cAAExC,KAAK,EAAE;gBAAEE,GAAG,EAAEpD,KAAK,CAACM;cAAgB,CAAC;cAAEI,MAAM,EAAEA;YAAO,CAAC;UAClE,CAAC,MAAM;YACL,OAAO;cAAEA,MAAM,EAAEA,MAAM;cAAEJ,KAAK,EAAEN,KAAK,CAACM;YAAgB,CAAC;UACzD;QACF;MACA;QACE,OAAO;UAAEI,MAAM,EAAEA,MAAM;UAAEJ,KAAK,EAAE8E,MAAM,CAACpF,KAAK,CAACM,KAAK;QAAE,CAAC;IACzD;EACF;AACF,CAAC;AAMD,OAAO,MAAMqF,yBAAyB,GAAGA,CACvCrH,UAA4B,EAC5BQ,MAAc,EACd4B,MAAc,EACdU,MAAkB,KACyB;EAC3C,OAAOwE,mCAAmC,CAACtH,UAAU,EAAEA,UAAU,CAACqB,MAAM,EAAEb,MAAM,EAAE4B,MAAM,EAAEU,MAAM,CAAC;AACnG,CAAC;AAED,OAAO,MAAMwE,mCAAmC,GAAGA,CACjDtH,UAA4B,EAC5BqB,MAAe,EACfb,MAAc,EACd4B,MAAc,EACdU,MAAkB,KACyB;EAC3C,MAAM6D,UAAiC,GAAGtF,MAAM,CAAC+E,GAAG,CAAC,CAAC1E,KAAK,EAAE4E,KAAK,KAChET,6BAA6B,CAACnE,KAAK,EAAElB,MAAM,EAAEZ,YAAY,CAACwC,MAAM,EAAE,WAAW,EAAEkE,KAAK,CAACC,QAAQ,CAAC,CAAC,CAAC,CAClG,CAAC;EAED,MAAMgB,IAAI,GAAGtC,oCAAoC,CAC/CjF,UAAU,EACVqB,MAAM,EACNb,MAAM,EACNU,SAAS,EACTtB,YAAY,CAACwC,MAAM,EAAE,MAAM,CAAC,EAC5BU,MACF,CAAC;EAED,OAAO;IACL6D,UAAU;IACVY;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA,OAAO,MAAMC,cAAc,GAAIb,UAAiC,IAA4B;EAC1F,MAAMnB,MAA6B,GAAG,EAAE;EAExC,KAAK,MAAMiC,SAAS,IAAId,UAAU,EAAE;IAClC,MAAMe,aAAa,GAAGD,SAAS,CAACrG,IAAI,CAACc,KAAK,CAAC,GAAG,CAAC;IAC/C,IAAIwF,aAAa,CAACpG,MAAM,KAAK,CAAC,EAAE;MAC9BkE,MAAM,CAACmC,IAAI,CAACF,SAAS,CAAC;IACxB,CAAC,MAAM;MACL,MAAM,CAAClG,KAAK,EAAE,GAAGE,IAAI,CAAC,GAAGiG,aAAa;MACtC,MAAME,MAAM,GAAGpC,MAAM,CAAC7D,IAAI,CAAEkG,CAAC,IAAKA,CAAC,CAACnD,IAAI,KAAKnD,KAAK,CAAC;MACnD,IAAIqG,MAAM,EAAE;QACVE,uBAAuB,CAAC;UAAE,GAAGL,SAAS;UAAErG,IAAI,EAAEK,IAAI,CAACsG,IAAI,CAAC,GAAG;QAAE,CAAC,EAAEH,MAAM,CAAC;MACzE,CAAC,MAAM;QACLpC,MAAM,CAACmC,IAAI,CAACK,0BAA0B,CAACP,SAAS,CAAC,CAAC;MACpD;IACF;EACF;EAEA,OAAOjC,MAAM;AACf,CAAC;;AAED;AACA;AACA,MAAMwC,0BAA0B,GAAIP,SAA8B,IAA0B;EAC1F,MAAMQ,SAAS,GAAGR,SAAS,CAACrG,IAAI,CAACc,KAAK,CAAC,GAAG,CAAC;EAC3C,MAAM,CAACX,KAAK,EAAE,GAAGE,IAAI,CAAC,GAAGwG,SAAS;EAClC,IAAI,CAACxG,IAAI,CAACH,MAAM,EAAE;IAChB,OAAOmG,SAAS;EAClB;;EAEA;EACA;EACA,IAAIA,SAAS,CAACS,SAAS,EAAE;IACvB,OAAO;MACL/B,MAAM,EAAE,CAAC6B,0BAA0B,CAAC;QAAE,GAAGP,SAAS;QAAErG,IAAI,EAAEK,IAAI,CAACsG,IAAI,CAAC,GAAG;MAAE,CAAC,CAAC,CAAC;MAC5EI,QAAQ,EAAE,IAAI;MACdrC,EAAE,EAAE,GAAG2B,SAAS,CAAC3B,EAAE,IAAIvE,KAAK,EAAE;MAC9BmD,IAAI,EAAEnD,KAAK;MACXH,IAAI,EAAEG;IACR,CAAC;EACH,CAAC,MAAM;IACL,OAAO;MACLoF,UAAU,EAAE,CAACqB,0BAA0B,CAAC;QAAE,GAAGP,SAAS;QAAErG,IAAI,EAAEK,IAAI,CAACsG,IAAI,CAAC,GAAG;MAAE,CAAC,CAAC,CAAC;MAChFI,QAAQ,EAAE,IAAI;MACdrC,EAAE,EAAE,GAAG2B,SAAS,CAAC3B,EAAE,IAAIvE,KAAK,EAAE;MAC9BmD,IAAI,EAAEnD,KAAK;MACXH,IAAI,EAAEG;IACR,CAAC;EACH;AACF,CAAC;;AAED;AACA;AACA,MAAMuG,uBAAuB,GAAGA,CAACL,SAA8B,EAAEG,MAA2B,KAAK;EAAA,IAAAQ,kBAAA;EAC/F,MAAMH,SAAS,GAAGR,SAAS,CAACrG,IAAI,CAACc,KAAK,CAAC,GAAG,CAAC;EAC3C,MAAM,CAACX,KAAK,EAAE,GAAGE,IAAI,CAAC,GAAGwG,SAAS;EAElC,MAAMI,UAAU,IAAAD,kBAAA,GAAGR,MAAM,CAACjB,UAAU,cAAAyB,kBAAA,uBAAjBA,kBAAA,CAAmBzG,IAAI,CAAEkG,CAAC,IAAKA,CAAC,CAACnD,IAAI,KAAKnD,KAAK,CAAC;EAEnE,IAAI,CAAC8G,UAAU,EAAE;IACf,IAAIZ,SAAS,CAACS,SAAS,EAAE;MAAA,IAAAI,cAAA;MACvB,CAAAA,cAAA,GAAAV,MAAM,CAACzB,MAAM,cAAAmC,cAAA,eAAbA,cAAA,CAAeX,IAAI,CAACK,0BAA0B,CAACP,SAAS,CAAC,CAAC;IAC5D,CAAC,MAAM;MAAA,IAAAc,mBAAA;MACL,CAAAA,mBAAA,GAAAX,MAAM,CAACjB,UAAU,cAAA4B,mBAAA,eAAjBA,mBAAA,CAAmBZ,IAAI,CAACK,0BAA0B,CAACP,SAAS,CAAC,CAAC;IAChE;EACF,CAAC,MAAM;IACLK,uBAAuB,CAAC;MAAE,GAAGL,SAAS;MAAErG,IAAI,EAAEK,IAAI,CAACsG,IAAI,CAAC,GAAG;IAAE,CAAC,EAAEM,UAAU,CAAC;EAC7E;AACF,CAAC;AAED,SAASG,gBAAgBA,CAAC5D,KAAyB,EAAE;EACnD,OAAOA,KAAK,GAAG,iBAAiB,GAAG,EAAE;AACvC;AAEA,OAAO,SAAS6D,gCAAgCA,CAACC,gBAAkC,EAAE;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EACnF,OAAO;IACL,GAAGJ,gBAAgB;IACnBzF,gBAAgB,EAAE;MAChB,GAAGyF,gBAAgB,CAACzF,gBAAgB;MACpC0C,UAAU,EAAE;QACV,KAAAgD,qBAAA,GAAGD,gBAAgB,CAACzF,gBAAgB,cAAA0F,qBAAA,uBAAjCA,qBAAA,CAAmChD,UAAU;QAChDf,KAAK,EAAE4D,gBAAgB,EAAAI,sBAAA,GAACF,gBAAgB,CAACzF,gBAAgB,cAAA2F,sBAAA,gBAAAA,sBAAA,GAAjCA,sBAAA,CAAmCjD,UAAU,cAAAiD,sBAAA,uBAA7CA,sBAAA,CAA+ChE,KAAK;MAC9E,CAAC;MACDL,IAAI,EAAE;QACJ,KAAAsE,sBAAA,GAAGH,gBAAgB,CAACzF,gBAAgB,cAAA4F,sBAAA,uBAAjCA,sBAAA,CAAmCtE,IAAI;QAC1CK,KAAK,EAAE4D,gBAAgB,EAAAM,sBAAA,GAACJ,gBAAgB,CAACzF,gBAAgB,cAAA6F,sBAAA,gBAAAA,sBAAA,GAAjCA,sBAAA,CAAmCvE,IAAI,cAAAuE,sBAAA,uBAAvCA,sBAAA,CAAyClE,KAAK;MACxE;IACF;EACF,CAAC;AACH","ignoreList":[]}
@@ -8,7 +8,7 @@ export const getQueryKeyFromCredentialListQueryParams = (queryParams = {}) => {
8
8
  return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'name', 'searchText', 'searchType', 'sort', 'sortDirection', 'exact', 'roles', 'ids', 'states', 'include', 'profiles', 'credentialSchemaIds', 'createdDateAfter', 'createdDateBefore', 'lastModifiedAfter', 'lastModifiedBefore', 'issuanceDateAfter', 'issuanceDateBefore', 'revocationDateAfter', 'revocationDateBefore']);
9
9
  };
10
10
  export const getQueryKeyFromHistoryListQueryParams = (queryParams = {}) => {
11
- return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'entityId', 'actions', 'entityTypes', 'createdDateAfter', 'createdDateBefore', 'identifierId', 'credentialId', 'credentialSchemaId', 'proofSchemaId', 'search', 'user']);
11
+ return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'entityIds', 'actions', 'entityTypes', 'createdDateAfter', 'createdDateBefore', 'identifierId', 'credentialId', 'credentialSchemaId', 'proofSchemaId', 'search', 'users']);
12
12
  };
13
13
  export const getQueryKeyFromCredentialSchemaListQueryParams = (queryParams = {}) => {
14
14
  return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'name', 'sort', 'sortDirection', 'exact', 'ids', 'include', 'schemaId', 'formats', 'createdDateAfter', 'createdDateBefore', 'lastModifiedAfter', 'lastModifiedBefore']);
@@ -1 +1 @@
1
- {"version":3,"names":["getQueryKey","queryParams","params","map","param","getQueryKeyFromCredentialListQueryParams","getQueryKeyFromHistoryListQueryParams","getQueryKeyFromCredentialSchemaListQueryParams","getQueryKeyFromProofSchemaListQueryParams","getQueryKeyFromProofListQueryParams","getQueryKeyFromDidListQueryParams","getQueryKeyFromIdentifierListQueryParams"],"sources":["query.ts"],"sourcesContent":["import {\n CredentialListQuery,\n CredentialSchemaListQuery,\n DidListQuery,\n HistoryListQuery,\n IdentifierListQuery,\n ProofListQuery,\n ProofSchemaListQuery,\n} from '@procivis/react-native-one-core';\n\ntype QueryKey<ListQuery, ParamList> = ParamList extends ReadonlyArray<keyof ListQuery> // all params are inside the ListQuery\n ? keyof ListQuery extends ParamList[number] // all ListQuery fields are in the params\n ? Array<ListQuery[keyof ListQuery]>\n : void\n : void; // otherwise produce a wrong return type which should trigger compilation error\n\n/** Typecheck that all query params are included in the query key */\nfunction getQueryKey<ListQuery extends {}, ParamList extends ReadonlyArray<keyof ListQuery>>(\n queryParams: ListQuery,\n params: ParamList,\n): QueryKey<ListQuery, ParamList> {\n return params.map((param) => queryParams[param]) as QueryKey<ListQuery, ParamList>;\n}\n\nexport const getQueryKeyFromCredentialListQueryParams = (queryParams: Partial<CredentialListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'searchText',\n 'searchType',\n 'sort',\n 'sortDirection',\n 'exact',\n 'roles',\n 'ids',\n 'states',\n 'include',\n 'profiles',\n 'credentialSchemaIds',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n 'issuanceDateAfter',\n 'issuanceDateBefore',\n 'revocationDateAfter',\n 'revocationDateBefore',\n ]);\n};\n\nexport const getQueryKeyFromHistoryListQueryParams = (queryParams: Partial<HistoryListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'entityId',\n 'actions',\n 'entityTypes',\n 'createdDateAfter',\n 'createdDateBefore',\n 'identifierId',\n 'credentialId',\n 'credentialSchemaId',\n 'proofSchemaId',\n 'search',\n 'user',\n ]);\n};\n\nexport const getQueryKeyFromCredentialSchemaListQueryParams = (\n queryParams: Partial<CredentialSchemaListQuery> = {},\n) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'sort',\n 'sortDirection',\n 'exact',\n 'ids',\n 'include',\n 'schemaId',\n 'formats',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n\nexport const getQueryKeyFromProofSchemaListQueryParams = (queryParams: Partial<ProofSchemaListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'sort',\n 'sortDirection',\n 'exact',\n 'ids',\n 'formats',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n\nexport const getQueryKeyFromProofListQueryParams = (queryParams: Partial<ProofListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'sort',\n 'sortDirection',\n 'name',\n 'ids',\n 'proofStates',\n 'proofRoles',\n 'proofSchemaIds',\n 'exact',\n 'profiles',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n 'requestedDateAfter',\n 'requestedDateBefore',\n 'completedDateAfter',\n 'completedDateBefore',\n ]);\n};\n\nexport const getQueryKeyFromDidListQueryParams = (queryParams: Partial<DidListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'sort',\n 'sortDirection',\n 'name',\n 'did',\n 'type',\n 'deactivated',\n 'exact',\n 'keyAlgorithms',\n 'keyRoles',\n 'keyStorages',\n 'keyIds',\n 'didMethods',\n ]);\n};\n\nexport const getQueryKeyFromIdentifierListQueryParams = (queryParams: Partial<IdentifierListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'sort',\n 'sortDirection',\n 'name',\n 'types',\n 'states',\n 'exact',\n 'didMethods',\n 'isRemote',\n 'keyAlgorithms',\n 'keyRoles',\n 'keyStorages',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getQueryKey","queryParams","params","map","param","getQueryKeyFromCredentialListQueryParams","getQueryKeyFromHistoryListQueryParams","getQueryKeyFromCredentialSchemaListQueryParams","getQueryKeyFromProofSchemaListQueryParams","getQueryKeyFromProofListQueryParams","getQueryKeyFromDidListQueryParams","getQueryKeyFromIdentifierListQueryParams"],"sources":["query.ts"],"sourcesContent":["import {\n CredentialListQuery,\n CredentialSchemaListQuery,\n DidListQuery,\n HistoryListQuery,\n IdentifierListQuery,\n ProofListQuery,\n ProofSchemaListQuery,\n} from '@procivis/react-native-one-core';\n\ntype QueryKey<ListQuery, ParamList> = ParamList extends ReadonlyArray<keyof ListQuery> // all params are inside the ListQuery\n ? keyof ListQuery extends ParamList[number] // all ListQuery fields are in the params\n ? Array<ListQuery[keyof ListQuery]>\n : void\n : void; // otherwise produce a wrong return type which should trigger compilation error\n\n/** Typecheck that all query params are included in the query key */\nfunction getQueryKey<ListQuery extends {}, ParamList extends ReadonlyArray<keyof ListQuery>>(\n queryParams: ListQuery,\n params: ParamList,\n): QueryKey<ListQuery, ParamList> {\n return params.map((param) => queryParams[param]) as QueryKey<ListQuery, ParamList>;\n}\n\nexport const getQueryKeyFromCredentialListQueryParams = (queryParams: Partial<CredentialListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'searchText',\n 'searchType',\n 'sort',\n 'sortDirection',\n 'exact',\n 'roles',\n 'ids',\n 'states',\n 'include',\n 'profiles',\n 'credentialSchemaIds',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n 'issuanceDateAfter',\n 'issuanceDateBefore',\n 'revocationDateAfter',\n 'revocationDateBefore',\n ]);\n};\n\nexport const getQueryKeyFromHistoryListQueryParams = (queryParams: Partial<HistoryListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'entityIds',\n 'actions',\n 'entityTypes',\n 'createdDateAfter',\n 'createdDateBefore',\n 'identifierId',\n 'credentialId',\n 'credentialSchemaId',\n 'proofSchemaId',\n 'search',\n 'users',\n ]);\n};\n\nexport const getQueryKeyFromCredentialSchemaListQueryParams = (\n queryParams: Partial<CredentialSchemaListQuery> = {},\n) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'sort',\n 'sortDirection',\n 'exact',\n 'ids',\n 'include',\n 'schemaId',\n 'formats',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n\nexport const getQueryKeyFromProofSchemaListQueryParams = (queryParams: Partial<ProofSchemaListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'sort',\n 'sortDirection',\n 'exact',\n 'ids',\n 'formats',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n\nexport const getQueryKeyFromProofListQueryParams = (queryParams: Partial<ProofListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'sort',\n 'sortDirection',\n 'name',\n 'ids',\n 'proofStates',\n 'proofRoles',\n 'proofSchemaIds',\n 'exact',\n 'profiles',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n 'requestedDateAfter',\n 'requestedDateBefore',\n 'completedDateAfter',\n 'completedDateBefore',\n ]);\n};\n\nexport const getQueryKeyFromDidListQueryParams = (queryParams: Partial<DidListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'sort',\n 'sortDirection',\n 'name',\n 'did',\n 'type',\n 'deactivated',\n 'exact',\n 'keyAlgorithms',\n 'keyRoles',\n 'keyStorages',\n 'keyIds',\n 'didMethods',\n ]);\n};\n\nexport const getQueryKeyFromIdentifierListQueryParams = (queryParams: Partial<IdentifierListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'sort',\n 'sortDirection',\n 'name',\n 'types',\n 'states',\n 'exact',\n 'didMethods',\n 'isRemote',\n 'keyAlgorithms',\n 'keyRoles',\n 'keyStorages',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -9,6 +9,7 @@ interface EntityAttributesProps {
9
9
  labels: AttributesLabels;
10
10
  onCopyToClipboard: (value: string) => void;
11
11
  entityType: EntityType;
12
+ testID?: string;
12
13
  }
13
14
  declare const _default: React.NamedExoticComponent<EntityAttributesProps>;
14
15
  export default _default;
@@ -42,6 +42,27 @@ export declare const defaultLanguageFiles: {
42
42
  "accessibility.key.faceId": string;
43
43
  "accessibility.key.fingerprint": string;
44
44
  };
45
+ fi: {
46
+ "accessibility.control.combobox.expanded": string;
47
+ "accessibility.control.combobox.tapToSelect": string;
48
+ "accessibility.control.order": string;
49
+ "accessibility.control.progress": string;
50
+ "accessibility.control.checked": string;
51
+ "accessibility.control.unchecked": string;
52
+ "accessibility.control.clear": string;
53
+ "accessibility.control.delete": string;
54
+ "accessibility.control.list.moveDown": string;
55
+ "accessibility.control.list.moveUp": string;
56
+ "accessibility.nav.back": string;
57
+ "accessibility.nav.close": string;
58
+ "accessibility.nav.next": string;
59
+ "accessibility.icon.edit": string;
60
+ "accessibility.icon.add": string;
61
+ "accessibility.icon.filter": string;
62
+ "accessibility.icon.scan": string;
63
+ "accessibility.key.faceId": string;
64
+ "accessibility.key.fingerprint": string;
65
+ };
45
66
  fr: {
46
67
  "accessibility.control.combobox.expanded": string;
47
68
  "accessibility.control.combobox.tapToSelect": string;
@@ -12,6 +12,7 @@ export declare const useCredentialAccept: () => import("react-query").UseMutatio
12
12
  interactionId: string;
13
13
  keyId?: string | undefined;
14
14
  txCode?: string | undefined;
15
+ holderWalletUnitId?: string | undefined;
15
16
  }, unknown>;
16
17
  export declare const useCredentialReject: () => import("react-query").UseMutationResult<void, unknown, string, unknown>;
17
18
  export declare const useCredentialRevocationCheck: (forceRefresh: boolean) => import("react-query").UseMutationResult<import("@procivis/react-native-one-core").CredentialRevocationCheckResponse[], unknown, string[], unknown>;
@@ -15,10 +15,7 @@ type ProofUrlHookParams = {
15
15
  export declare const useProofUrl: () => import("react-query").UseMutationResult<string, unknown, ProofUrlHookParams, unknown>;
16
16
  export declare const useProofAccept: () => import("react-query").UseMutationResult<void, unknown, {
17
17
  credentials: Record<string, PresentationSubmitCredentialRequest>;
18
- didId?: string | undefined;
19
- identifierId?: string | undefined;
20
18
  interactionId: string;
21
- keyId?: string | undefined;
22
19
  }, unknown>;
23
20
  export declare const useProofReject: () => import("react-query").UseMutationResult<void, unknown, string, unknown>;
24
21
  export declare enum IssuanceProtocol {
@@ -1,9 +1,9 @@
1
- import { WalletProvider } from '@procivis/react-native-one-core';
2
- export declare const ATTESTATION_QUERY_KEY = "wallet-unit-attestation";
3
- export declare const useWalletUnitAttestation: (active?: boolean) => import("react-query").UseQueryResult<import("@procivis/react-native-one-core").HolderAttestationWalletUnitResponse, unknown>;
4
- export declare const useRegisterWalletUnit: () => import("react-query").UseMutationResult<import("@procivis/react-native-one-core").HolderRegisterWalletUnitResponse, unknown, WalletProvider, unknown>;
5
- export declare const useRefreshWalletUnit: () => import("react-query").UseMutationResult<void, unknown, boolean, unknown>;
6
- export declare const useWalletUnitCheck: (appIntegrityCheckRequired: boolean) => {
1
+ import { HolderWalletUnitDetail, WalletProvider } from '@procivis/react-native-one-core';
2
+ export declare const WALLET_UNIT_QUERY_KEY = "wallet-unit";
3
+ export declare const useWalletUnitDetail: (walletUnitId: HolderWalletUnitDetail['id'] | undefined, active?: boolean) => import("react-query").UseQueryResult<HolderWalletUnitDetail | undefined, unknown>;
4
+ export declare const useRegisterWalletUnit: () => import("react-query").UseMutationResult<string, unknown, WalletProvider, unknown>;
5
+ export declare const useWalletUnitStatus: () => import("react-query").UseMutationResult<void, unknown, string, unknown>;
6
+ export declare const useWalletUnitCheck: (walletUnitId: HolderWalletUnitDetail['id'] | undefined) => {
7
7
  isLoading: boolean;
8
- walletUnitAttestation: import("@procivis/react-native-one-core").HolderAttestationWalletUnitResponse | undefined;
8
+ walletUnitDetail: HolderWalletUnitDetail | undefined;
9
9
  };
@@ -16,4 +16,3 @@ export * from './string';
16
16
  export * from './url';
17
17
  export * from './useMemoAsync';
18
18
  export * from './uuid';
19
- export * from './wallet-unit';
@@ -1,11 +1,10 @@
1
1
  import { Config, FailureHint, PresentationDefinitionV2CredentialClaim, PresentationDefinitionV2CredentialDetail } from '@procivis/react-native-one-core';
2
2
  import { CredentialAttribute, CredentialCardNotice, CredentialCardProps } from '../../ui-components';
3
- import { WUAState } from '../wallet-unit';
4
3
  import { CredentialDetailsCardPropsWithoutWidth } from '.';
5
4
  import { ShareCredentialCardLabels } from './credential-sharing';
6
5
  export declare const shareCredentialCardAttributeFromV2Claim: (claim: PresentationDefinitionV2CredentialClaim, selection: string[] | undefined, parentShared: boolean, parentUserSelected: boolean, config: Config, testID: string, nested?: boolean, listValue?: boolean) => CredentialAttribute;
7
6
  export declare const missingCredentialCardFromFailureHint: (failureHint: FailureHint['failureHint'] | undefined, notice: CredentialCardNotice | undefined, testID: string, labels: ShareCredentialCardLabels) => Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'>;
8
- export declare const shareCredentialCardFromV2PresentationCredential: (credential: PresentationDefinitionV2CredentialDetail | undefined, failureHint: FailureHint['failureHint'] | undefined, expanded: boolean, multipleCredentialsAvailable: boolean, selectedFields: string[] | undefined, config: Config, wuaState: WUAState | undefined, testID: string, labels: ShareCredentialCardLabels) => CredentialDetailsCardPropsWithoutWidth;
9
- export declare const selectCredentialCardFromV2Credential: (credential: PresentationDefinitionV2CredentialDetail, selected: boolean, multiple: boolean, config: Config, wuaState: WUAState | undefined, testID: string, labels: ShareCredentialCardLabels) => CredentialDetailsCardPropsWithoutWidth;
7
+ export declare const shareCredentialCardFromV2PresentationCredential: (credential: PresentationDefinitionV2CredentialDetail | undefined, failureHint: FailureHint['failureHint'] | undefined, expanded: boolean, multipleCredentialsAvailable: boolean, selectedFields: string[] | undefined, config: Config, testID: string, labels: ShareCredentialCardLabels) => CredentialDetailsCardPropsWithoutWidth;
8
+ export declare const selectCredentialCardFromV2Credential: (credential: PresentationDefinitionV2CredentialDetail, selected: boolean, multiple: boolean, config: Config, testID: string, labels: ShareCredentialCardLabels) => CredentialDetailsCardPropsWithoutWidth;
10
9
  export declare const getV2CredentialClaimAllSubpaths: (claim: PresentationDefinitionV2CredentialClaim) => string[];
11
10
  export declare const getV2CredentialAvailablePaths: (credential: PresentationDefinitionV2CredentialDetail) => string[];
@@ -1,9 +1,8 @@
1
1
  import { Claim, Config, CredentialDetail, PresentationDefinitionField, PresentationDefinitionRequestedCredential } from '@procivis/react-native-one-core';
2
2
  import { CredentialAttribute, CredentialCardProps } from '../../ui-components/credential';
3
3
  import { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';
4
- import { WUAState } from '../wallet-unit';
5
4
  import { CardLabels, CredentialDetailsCardPropsWithoutWidth } from './credential';
6
- export declare const validityCheckedCardFromCredential: (credential: CredentialDetail, invalidLVVC: boolean, expanded: boolean, multipleCredentialsAvailable: boolean, config: Config, wuaState: WUAState | undefined, notice: CredentialCardNotice | undefined, testID: string, labels: ShareCredentialCardLabels) => Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'testID' | 'width'>;
5
+ export declare const validityCheckedCardFromCredential: (credential: CredentialDetail, invalidLVVC: boolean, expanded: boolean, multipleCredentialsAvailable: boolean, config: Config, notice: CredentialCardNotice | undefined, testID: string, labels: ShareCredentialCardLabels) => Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'testID' | 'width'>;
7
6
  export declare const missingCredentialCardFromRequest: (request: PresentationDefinitionRequestedCredential, notice: CredentialCardNotice | undefined, testID: string, labels: ShareCredentialCardLabels) => Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'>;
8
7
  type FlatClaim = Claim & {
9
8
  path: string;
@@ -16,7 +15,7 @@ export type ShareCredentialCardLabels = CardLabels & {
16
15
  missingCredential: string;
17
16
  multipleCredentials: string;
18
17
  };
19
- export declare const shareCredentialCardFromCredential: (credential: CredentialDetail | undefined, invalidLVVC: boolean, expanded: boolean, multipleCredentialsAvailable: boolean, request: PresentationDefinitionRequestedCredential, selectedFields: string[] | undefined, config: Config, wuaState: WUAState | undefined, testID: string, labels: ShareCredentialCardLabels) => CredentialDetailsCardPropsWithoutWidth;
18
+ export declare const shareCredentialCardFromCredential: (credential: CredentialDetail | undefined, invalidLVVC: boolean, expanded: boolean, multipleCredentialsAvailable: boolean, request: PresentationDefinitionRequestedCredential, selectedFields: string[] | undefined, config: Config, testID: string, labels: ShareCredentialCardLabels) => CredentialDetailsCardPropsWithoutWidth;
20
19
  export declare const selectCredentialCardAttributeFromClaim: (id: string, config: Config, testID: string, labels: ShareCredentialCardLabels, claim?: FlatClaim, field?: PresentationDefinitionField) => CredentialAttribute;
21
- export declare const selectCredentialCardFromCredential: (credential: CredentialDetail, selected: boolean, request: PresentationDefinitionRequestedCredential, config: Config, wuaState: WUAState | undefined, testID: string, labels: ShareCredentialCardLabels) => CredentialDetailsCardPropsWithoutWidth;
20
+ export declare const selectCredentialCardFromCredential: (credential: CredentialDetail, selected: boolean, request: PresentationDefinitionRequestedCredential, config: Config, testID: string, labels: ShareCredentialCardLabels) => CredentialDetailsCardPropsWithoutWidth;
22
21
  export {};
@@ -1,7 +1,6 @@
1
- import { Claim, Config, CredentialDetail, CredentialListItem, CredentialSchema, DataTypeEnum, WalletStorageType } from '@procivis/react-native-one-core';
1
+ import { Claim, Config, CredentialDetail, CredentialListItem, CredentialSchema, DataTypeEnum } from '@procivis/react-native-one-core';
2
2
  import { CredentialAttribute, CredentialCardProps, CredentialDetailsCardProps, CredentialHeaderProps } from '../../ui-components/credential';
3
3
  import { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';
4
- import { WUAState } from '../wallet-unit';
5
4
  export declare enum ValidityState {
6
5
  Revoked = "revoked",
7
6
  Suspended = "suspended",
@@ -37,20 +36,18 @@ export type CardHeaderLabels = {
37
36
  revoked: string;
38
37
  suspended: string;
39
38
  suspendedUntil: (date: string) => string;
40
- wuaExpired: string;
41
- wuaRevoked: string;
42
39
  };
43
- export declare const cardHeaderFromCredential: (credential: CredentialDetail, claims: Claim[] | undefined, config: Config, wuaState: WUAState | undefined, testID: string, labels: CardHeaderLabels) => Omit<CredentialHeaderProps, 'style'>;
40
+ export declare const cardHeaderFromCredential: (credential: CredentialDetail, claims: Claim[] | undefined, config: Config, testID: string, labels: CardHeaderLabels) => Omit<CredentialHeaderProps, 'style'>;
44
41
  export type CardLabels = CardHeaderLabels & {
45
42
  validityIssuesNotice: string;
46
43
  };
47
- export declare const getCredentialCardPropsFromCredential: (credential: CredentialDetail, claims: Claim[] | undefined, config: Config, wuaState: WUAState | undefined, notice: CredentialCardNotice | undefined, testID: string, labels: CardLabels) => Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'>;
44
+ export declare const getCredentialCardPropsFromCredential: (credential: CredentialDetail, claims: Claim[] | undefined, config: Config, notice: CredentialCardNotice | undefined, testID: string, labels: CardLabels) => Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'>;
48
45
  export declare const detailsCardAttributeFromClaim: (claim: Claim, config: Config, testID: string) => CredentialAttribute;
49
46
  export type CredentialDetailsCardPropsWithoutWidth = Omit<CredentialDetailsCardProps, 'expanded' | 'card'> & {
50
47
  card: Omit<CredentialCardProps, 'width'>;
51
48
  };
52
- export declare const detailsCardFromCredential: (credential: CredentialDetail, config: Config, wuaState: WUAState | undefined, testID: string, labels: CardLabels) => CredentialDetailsCardPropsWithoutWidth;
53
- export declare const detailsCardFromCredentialWithClaims: (credential: CredentialDetail, claims: Claim[], config: Config, wuaState: WUAState | undefined, testID: string, labels: CardLabels) => CredentialDetailsCardPropsWithoutWidth;
49
+ export declare const detailsCardFromCredential: (credential: CredentialDetail, config: Config, testID: string, labels: CardLabels) => CredentialDetailsCardPropsWithoutWidth;
50
+ export declare const detailsCardFromCredentialWithClaims: (credential: CredentialDetail, claims: Claim[], config: Config, testID: string, labels: CardLabels) => CredentialDetailsCardPropsWithoutWidth;
54
51
  export declare const nestAttributes: (attributes: CredentialAttribute[]) => CredentialAttribute[];
55
52
  export declare function getCredentialSchemaWithoutImages(credentialSchema: CredentialSchema): {
56
53
  layoutProperties: {
@@ -74,9 +71,8 @@ export declare function getCredentialSchemaWithoutImages(credentialSchema: Crede
74
71
  name: string;
75
72
  format: string;
76
73
  revocationMethod: string;
77
- walletStorageType?: WalletStorageType | undefined;
74
+ keyStorageSecurity?: import("@procivis/react-native-one-core").KeyStorageSecurity | undefined;
78
75
  schemaId: string;
79
76
  importedSourceUrl: string;
80
- schemaType: string;
81
77
  layoutType?: import("@procivis/react-native-one-core").LayoutType | undefined;
82
78
  };