@procivis/one-react-native-components 0.3.121 → 0.3.130
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.
- package/lib/commonjs/components/credential/credential.js +2 -1
- package/lib/commonjs/components/credential/credential.js.map +1 -1
- package/lib/commonjs/components/history/history-list-item-icon.js +2 -3
- package/lib/commonjs/components/history/history-list-item-icon.js.map +1 -1
- package/lib/commonjs/components/history/history-list-item.js +2 -8
- package/lib/commonjs/components/history/history-list-item.js.map +1 -1
- package/lib/commonjs/components/history/history-list-screen.js +1 -1
- package/lib/commonjs/components/history/history-list-screen.js.map +1 -1
- package/lib/commonjs/components/index.js +0 -11
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/components/proof-request/v1/select-credential.js +2 -1
- package/lib/commonjs/components/proof-request/v1/select-credential.js.map +1 -1
- package/lib/commonjs/components/proof-request/v1/share-credential.js +2 -1
- package/lib/commonjs/components/proof-request/v1/share-credential.js.map +1 -1
- package/lib/commonjs/components/proof-request/v2/select-credential-v2.js +2 -1
- package/lib/commonjs/components/proof-request/v2/select-credential-v2.js.map +1 -1
- package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js +3 -1
- package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
- package/lib/commonjs/components/proof-request/v2/share-credential-v2.js +4 -2
- package/lib/commonjs/components/proof-request/v2/share-credential-v2.js.map +1 -1
- package/lib/commonjs/ui-components/credential/card/credential-details-card.js +3 -1
- package/lib/commonjs/ui-components/credential/card/credential-details-card.js.map +1 -1
- package/lib/commonjs/ui-components/header/foldable-header.js.map +1 -1
- package/lib/commonjs/ui-components/header/header.js.map +1 -1
- package/lib/commonjs/ui-components/history/history-details.js +2 -2
- package/lib/commonjs/ui-components/history/history-details.js.map +1 -1
- package/lib/commonjs/ui-components/icons/contact.js.map +1 -1
- package/lib/commonjs/ui-components/icons/credential.js +3 -3
- package/lib/commonjs/ui-components/icons/credential.js.map +1 -1
- package/lib/commonjs/ui-components/icons/icons.js +20 -1
- package/lib/commonjs/ui-components/icons/icons.js.map +1 -1
- package/lib/commonjs/ui-components/loader/loading-result.js +2 -0
- package/lib/commonjs/ui-components/loader/loading-result.js.map +1 -1
- package/lib/commonjs/ui-components/screens/nerd-mode-screen.js +7 -33
- package/lib/commonjs/ui-components/screens/nerd-mode-screen.js.map +1 -1
- package/lib/commonjs/utils/date.js +4 -5
- package/lib/commonjs/utils/date.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/cache.js +7 -4
- package/lib/commonjs/utils/hooks/core/cache.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/core-config.js +1 -6
- package/lib/commonjs/utils/hooks/core/core-config.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/core-context.js +0 -15
- package/lib/commonjs/utils/hooks/core/core-context.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/credentials.js +15 -1
- package/lib/commonjs/utils/hooks/core/credentials.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/index.js +0 -11
- package/lib/commonjs/utils/hooks/core/index.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/trust-list.js +19 -3
- package/lib/commonjs/utils/hooks/core/trust-list.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/verifier-instance.js +22 -3
- package/lib/commonjs/utils/hooks/core/verifier-instance.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/wallet-unit.js +2 -2
- package/lib/commonjs/utils/hooks/core/wallet-unit.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential-sharing-v2.js +14 -14
- package/lib/commonjs/utils/parsers/credential-sharing-v2.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential-sharing.js +20 -18
- package/lib/commonjs/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential.js +36 -22
- package/lib/commonjs/utils/parsers/credential.js.map +1 -1
- package/lib/commonjs/utils/parsers/query.js +1 -1
- package/lib/commonjs/utils/parsers/query.js.map +1 -1
- package/lib/commonjs/utils/translations.js +15 -0
- package/lib/commonjs/utils/translations.js.map +1 -0
- package/lib/module/components/credential/credential.js +2 -1
- package/lib/module/components/credential/credential.js.map +1 -1
- package/lib/module/components/history/history-list-item-icon.js +2 -3
- package/lib/module/components/history/history-list-item-icon.js.map +1 -1
- package/lib/module/components/history/history-list-item.js +3 -9
- package/lib/module/components/history/history-list-item.js.map +1 -1
- package/lib/module/components/history/history-list-screen.js +1 -1
- package/lib/module/components/history/history-list-screen.js.map +1 -1
- package/lib/module/components/index.js +0 -1
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/components/proof-request/v1/select-credential.js +2 -1
- package/lib/module/components/proof-request/v1/select-credential.js.map +1 -1
- package/lib/module/components/proof-request/v1/share-credential.js +2 -1
- package/lib/module/components/proof-request/v1/share-credential.js.map +1 -1
- package/lib/module/components/proof-request/v2/select-credential-v2.js +2 -1
- package/lib/module/components/proof-request/v2/select-credential-v2.js.map +1 -1
- package/lib/module/components/proof-request/v2/share-credential-v2-group.js +3 -1
- package/lib/module/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
- package/lib/module/components/proof-request/v2/share-credential-v2.js +4 -2
- package/lib/module/components/proof-request/v2/share-credential-v2.js.map +1 -1
- package/lib/module/ui-components/credential/card/credential-details-card.js +3 -1
- package/lib/module/ui-components/credential/card/credential-details-card.js.map +1 -1
- package/lib/module/ui-components/header/foldable-header.js.map +1 -1
- package/lib/module/ui-components/header/header.js.map +1 -1
- package/lib/module/ui-components/history/history-details.js +3 -3
- package/lib/module/ui-components/history/history-details.js.map +1 -1
- package/lib/module/ui-components/icons/contact.js.map +1 -1
- package/lib/module/ui-components/icons/credential.js +1 -1
- package/lib/module/ui-components/icons/credential.js.map +1 -1
- package/lib/module/ui-components/icons/icons.js +18 -0
- package/lib/module/ui-components/icons/icons.js.map +1 -1
- package/lib/module/ui-components/loader/loading-result.js +2 -0
- package/lib/module/ui-components/loader/loading-result.js.map +1 -1
- package/lib/module/ui-components/screens/nerd-mode-screen.js +7 -33
- package/lib/module/ui-components/screens/nerd-mode-screen.js.map +1 -1
- package/lib/module/utils/date.js +4 -5
- package/lib/module/utils/date.js.map +1 -1
- package/lib/module/utils/hooks/core/cache.js +7 -4
- package/lib/module/utils/hooks/core/cache.js.map +1 -1
- package/lib/module/utils/hooks/core/core-config.js +0 -4
- package/lib/module/utils/hooks/core/core-config.js.map +1 -1
- package/lib/module/utils/hooks/core/core-context.js +0 -15
- package/lib/module/utils/hooks/core/core-context.js.map +1 -1
- package/lib/module/utils/hooks/core/credentials.js +13 -0
- package/lib/module/utils/hooks/core/credentials.js.map +1 -1
- package/lib/module/utils/hooks/core/index.js +0 -1
- package/lib/module/utils/hooks/core/index.js.map +1 -1
- package/lib/module/utils/hooks/core/trust-list.js +20 -4
- package/lib/module/utils/hooks/core/trust-list.js.map +1 -1
- package/lib/module/utils/hooks/core/verifier-instance.js +20 -2
- package/lib/module/utils/hooks/core/verifier-instance.js.map +1 -1
- package/lib/module/utils/hooks/core/wallet-unit.js +2 -2
- package/lib/module/utils/hooks/core/wallet-unit.js.map +1 -1
- package/lib/module/utils/parsers/credential-sharing-v2.js +15 -15
- package/lib/module/utils/parsers/credential-sharing-v2.js.map +1 -1
- package/lib/module/utils/parsers/credential-sharing.js +20 -18
- package/lib/module/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/module/utils/parsers/credential.js +37 -23
- package/lib/module/utils/parsers/credential.js.map +1 -1
- package/lib/module/utils/parsers/query.js +1 -1
- package/lib/module/utils/parsers/query.js.map +1 -1
- package/lib/module/utils/translations.js +8 -0
- package/lib/module/utils/translations.js.map +1 -0
- package/lib/typescript/components/credential/credential.d.ts +1 -0
- package/lib/typescript/components/history/history-list-item.d.ts +1 -1
- package/lib/typescript/components/index.d.ts +0 -1
- package/lib/typescript/components/proof-request/v1/select-credential.d.ts +1 -0
- package/lib/typescript/components/proof-request/v1/share-credential.d.ts +1 -0
- package/lib/typescript/components/proof-request/v2/select-credential-v2.d.ts +1 -0
- package/lib/typescript/components/proof-request/v2/share-credential-v2-group.d.ts +1 -0
- package/lib/typescript/components/proof-request/v2/share-credential-v2.d.ts +1 -0
- package/lib/typescript/ui-components/history/history-details.d.ts +2 -2
- package/lib/typescript/ui-components/icons/credential.d.ts +1 -1
- package/lib/typescript/ui-components/icons/icons.d.ts +1 -0
- package/lib/typescript/ui-components/screens/nerd-mode-screen.d.ts +0 -12
- package/lib/typescript/utils/hooks/core/core-config.d.ts +0 -1
- package/lib/typescript/utils/hooks/core/core-context.d.ts +0 -1
- package/lib/typescript/utils/hooks/core/credentials.d.ts +2 -1
- package/lib/typescript/utils/hooks/core/index.d.ts +0 -1
- package/lib/typescript/utils/hooks/core/trust-list.d.ts +1 -4
- package/lib/typescript/utils/hooks/core/verifier-instance.d.ts +2 -0
- package/lib/typescript/utils/hooks/core/wallet-unit.d.ts +2 -2
- package/lib/typescript/utils/parsers/credential-sharing-v2.d.ts +3 -3
- package/lib/typescript/utils/parsers/credential-sharing.d.ts +6 -6
- package/lib/typescript/utils/parsers/credential.d.ts +5 -5
- package/lib/typescript/utils/parsers/query.d.ts +1 -1
- package/lib/typescript/utils/translations.d.ts +1 -0
- package/package.json +3 -3
- package/src/components/credential/credential.tsx +3 -0
- package/src/components/history/history-list-item-icon.tsx +1 -2
- package/src/components/history/history-list-item.tsx +4 -9
- package/src/components/history/history-list-screen.tsx +1 -1
- package/src/components/index.ts +0 -1
- package/src/components/proof-request/v1/select-credential.tsx +3 -1
- package/src/components/proof-request/v1/share-credential.tsx +3 -0
- package/src/components/proof-request/v2/select-credential-v2.tsx +3 -1
- package/src/components/proof-request/v2/share-credential-v2-group.tsx +4 -0
- package/src/components/proof-request/v2/share-credential-v2.tsx +5 -0
- package/src/ui-components/credential/card/credential-details-card.tsx +3 -2
- package/src/ui-components/header/foldable-header.tsx +10 -9
- package/src/ui-components/header/header.tsx +10 -1
- package/src/ui-components/history/history-details.tsx +4 -4
- package/src/ui-components/icons/contact.tsx +1 -1
- package/src/ui-components/icons/credential.tsx +1 -1
- package/src/ui-components/icons/icons.tsx +18 -0
- package/src/ui-components/loader/loading-result.tsx +7 -1
- package/src/ui-components/screens/nerd-mode-screen.tsx +2 -52
- package/src/utils/date.ts +7 -14
- package/src/utils/hooks/core/cache.ts +10 -3
- package/src/utils/hooks/core/core-config.ts +1 -6
- package/src/utils/hooks/core/core-context.tsx +0 -24
- package/src/utils/hooks/core/credentials.ts +13 -0
- package/src/utils/hooks/core/index.ts +0 -1
- package/src/utils/hooks/core/trust-list.ts +22 -11
- package/src/utils/hooks/core/verifier-instance.ts +23 -2
- package/src/utils/hooks/core/wallet-unit.ts +3 -3
- package/src/utils/parsers/credential-sharing-v2.tsx +29 -12
- package/src/utils/parsers/credential-sharing.tsx +33 -16
- package/src/utils/parsers/credential.ts +45 -14
- package/src/utils/parsers/query.ts +3 -0
- package/src/utils/translations.ts +10 -0
- package/lib/commonjs/components/entity/EntityButtons.js +0 -64
- package/lib/commonjs/components/entity/EntityButtons.js.map +0 -1
- package/lib/commonjs/components/entity/entity-attributes.js +0 -65
- package/lib/commonjs/components/entity/entity-attributes.js.map +0 -1
- package/lib/commonjs/components/entity/entity-details-with-buttons.js +0 -67
- package/lib/commonjs/components/entity/entity-details-with-buttons.js.map +0 -1
- package/lib/commonjs/components/entity/entity-details.js +0 -101
- package/lib/commonjs/components/entity/entity-details.js.map +0 -1
- package/lib/commonjs/components/entity/index.js +0 -14
- package/lib/commonjs/components/entity/index.js.map +0 -1
- package/lib/commonjs/utils/hooks/core/trust-entity.js +0 -147
- package/lib/commonjs/utils/hooks/core/trust-entity.js.map +0 -1
- package/lib/module/components/entity/EntityButtons.js +0 -56
- package/lib/module/components/entity/EntityButtons.js.map +0 -1
- package/lib/module/components/entity/entity-attributes.js +0 -57
- package/lib/module/components/entity/entity-attributes.js.map +0 -1
- package/lib/module/components/entity/entity-details-with-buttons.js +0 -58
- package/lib/module/components/entity/entity-details-with-buttons.js.map +0 -1
- package/lib/module/components/entity/entity-details.js +0 -92
- package/lib/module/components/entity/entity-details.js.map +0 -1
- package/lib/module/components/entity/index.js +0 -3
- package/lib/module/components/entity/index.js.map +0 -1
- package/lib/module/utils/hooks/core/trust-entity.js +0 -136
- package/lib/module/utils/hooks/core/trust-entity.js.map +0 -1
- package/lib/typescript/components/entity/EntityButtons.d.ts +0 -14
- package/lib/typescript/components/entity/entity-attributes.d.ts +0 -15
- package/lib/typescript/components/entity/entity-details-with-buttons.d.ts +0 -18
- package/lib/typescript/components/entity/entity-details.d.ts +0 -21
- package/lib/typescript/components/entity/index.d.ts +0 -3
- package/lib/typescript/utils/hooks/core/trust-entity.d.ts +0 -17
- package/src/components/entity/EntityButtons.tsx +0 -79
- package/src/components/entity/entity-attributes.tsx +0 -80
- package/src/components/entity/entity-details-with-buttons.tsx +0 -75
- package/src/components/entity/entity-details.tsx +0 -145
- package/src/components/entity/index.ts +0 -4
- package/src/utils/hooks/core/trust-entity.ts +0 -172
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","CredentialNoticeWarningIcon","CredentialWarningIcon","Selector","SelectorStatus","concatTestID","detailsCardAttributeFromClaim","getCredentialCardPropsFromCredential","supportsSelectiveDisclosure","validityCheckedCardFromCredential","v2ClaimValueToClaimValue","value","type_","map","c","v2PresentationClaimToClaim","claim","schema","path","getAttributeSelectorStatus","selected","force","required","Required","userSelection","SelectedCheckmark","Empty","shareCredentialCardAttributeFromV2Claim","selection","parentShared","parentUserSelected","config","testID","nested","listValue","attributeShared","Boolean","some","startsWith","userSelected","includes","status","undefined","attribute","disabledStatus","Disabled","Rejected","disabled","credentialAttribute","id","rightAccessory","createElement","array","attributes","image","values","v","datatype","valueErrorColor","missingCredentialCardFromFailureHint","failureHint","notice","labels","_failureHint$credenti","_failureHint$credenti2","cardImage","color","header","credentialDetailErrorColor","credentialDetailPrimary","missingCredential","credentialDetailTestID","credentialName","credentialSchema","name","statusIcon","shareCredentialCardFromV2PresentationCredential","credential","expanded","multipleCredentialsAvailable","selectedFields","_credential$issuer","_credential$claims$ma","selectiveDisclosureSupported","issuer","noticeIcon","text","selectiveDisclosureNotice","cardTestId","card","claims","selectCredentialCardFromV2Credential","multiple","_credential$issuer2","_credential$claims$ma2","selectedStatus","SelectedRadio","cardProps","accessory","getV2CredentialClaimAllSubpaths","flatMap","getV2CredentialAvailablePaths"],"sources":["credential-sharing-v2.tsx"],"sourcesContent":["import {\n Claim,\n ClaimValue,\n CoreConfig,\n CredentialQueryFailureHint,\n PresentationDefinitionV2Claim,\n PresentationDefinitionV2ClaimValue,\n PresentationDefinitionV2Credential,\n} from '@procivis/react-native-one-core';\nimport React from 'react';\n\nimport {\n CredentialAttribute,\n CredentialCardNotice,\n CredentialCardProps,\n CredentialNoticeWarningIcon,\n CredentialWarningIcon,\n Selector,\n SelectorStatus,\n} from '../../ui-components';\nimport { concatTestID } from '../testID';\nimport {\n CredentialDetailsCardPropsWithoutWidth,\n detailsCardAttributeFromClaim,\n getCredentialCardPropsFromCredential,\n supportsSelectiveDisclosure,\n} from '.';\nimport { ShareCredentialCardLabels, validityCheckedCardFromCredential } from './credential-sharing';\n\nconst v2ClaimValueToClaimValue = (value: PresentationDefinitionV2ClaimValue): ClaimValue => {\n if (value.type_ !== 'NESTED') {\n return value;\n }\n return {\n type_: 'NESTED',\n value: value.value.map((c) => v2PresentationClaimToClaim(c)),\n };\n};\n\nconst v2PresentationClaimToClaim = (claim: PresentationDefinitionV2Claim): Claim => {\n return {\n schema: claim.schema,\n path: claim.path,\n value: v2ClaimValueToClaimValue(claim.value),\n };\n};\n\nconst getAttributeSelectorStatus = (\n claim: PresentationDefinitionV2Claim,\n selected: boolean,\n force: boolean,\n): SelectorStatus | undefined => {\n if (claim.required && selected) {\n return SelectorStatus.Required;\n }\n if (force) {\n return SelectorStatus.Required;\n }\n if (claim.userSelection) {\n if (selected) {\n return SelectorStatus.SelectedCheckmark;\n } else {\n return SelectorStatus.Empty;\n }\n }\n};\n\nexport const shareCredentialCardAttributeFromV2Claim = (\n claim: PresentationDefinitionV2Claim,\n selection: string[] | undefined,\n parentShared: boolean,\n parentUserSelected: boolean,\n config: CoreConfig,\n testID: string,\n nested?: boolean,\n listValue?: boolean,\n): CredentialAttribute => {\n const attributeShared =\n Boolean(selection?.some((path) => path.startsWith(claim.path))) || (parentShared && claim.required);\n const userSelected = parentUserSelected || Boolean(selection?.includes(claim.path));\n const selected = !claim.required && attributeShared;\n const status = selection\n ? getAttributeSelectorStatus(claim, attributeShared, parentUserSelected || (attributeShared && !userSelected))\n : undefined;\n const attribute = detailsCardAttributeFromClaim(v2PresentationClaimToClaim(claim), config, testID);\n const disabledStatus = [SelectorStatus.Disabled, SelectorStatus.Rejected, SelectorStatus.Required];\n const disabled = attribute.disabled || !status || disabledStatus.includes(status);\n const credentialAttribute: CredentialAttribute = {\n ...attribute,\n disabled,\n id: claim.path,\n listValue,\n nested,\n path: claim.path,\n rightAccessory: status && <Selector status={status} />,\n selected,\n testID,\n };\n if (claim.value.type_ === 'NESTED') {\n if (claim.schema.array) {\n return {\n ...credentialAttribute,\n attributes: undefined,\n image: undefined,\n value: undefined,\n values: claim.value.value.map((v) =>\n shareCredentialCardAttributeFromV2Claim(\n v,\n selection,\n attributeShared,\n userSelected,\n config,\n testID,\n true,\n false,\n ),\n ),\n };\n } else if (claim.schema.datatype === 'OBJECT') {\n return {\n ...credentialAttribute,\n attributes: claim.value.value.map((v) =>\n shareCredentialCardAttributeFromV2Claim(v, selection, attributeShared, userSelected, config, testID, true),\n ),\n image: undefined,\n value: undefined,\n valueErrorColor: undefined,\n values: undefined,\n };\n }\n }\n return credentialAttribute;\n};\n\nexport const missingCredentialCardFromFailureHint = (\n failureHint: CredentialQueryFailureHint | undefined,\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 header: {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.missingCredential,\n credentialDetailTestID: concatTestID(testID, 'header.missing'),\n credentialName: failureHint?.credentialSchema?.name ?? '',\n statusIcon: CredentialWarningIcon,\n },\n testID,\n ...notice,\n };\n};\n\nexport const shareCredentialCardFromV2PresentationCredential = (\n credential: PresentationDefinitionV2Credential | undefined,\n failureHint: CredentialQueryFailureHint | undefined,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n selectedFields: string[] | undefined,\n config: CoreConfig,\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 noticeIcon: CredentialNoticeWarningIcon,\n text: labels.selectiveDisclosureNotice,\n }\n : undefined;\n const cardTestId = concatTestID(testID, 'card');\n const card = credential\n ? validityCheckedCardFromCredential(\n {\n ...credential,\n claims: [],\n },\n expanded,\n multipleCredentialsAvailable,\n config,\n notice,\n cardTestId,\n labels,\n )\n : missingCredentialCardFromFailureHint(failureHint, notice, cardTestId, labels);\n\n return {\n attributes:\n credential?.claims.map((v) =>\n shareCredentialCardAttributeFromV2Claim(v, selectedFields ?? [], true, false, config, testID),\n ) ?? [],\n card,\n };\n};\n\nexport const selectCredentialCardFromV2Credential = (\n credential: PresentationDefinitionV2Credential,\n selected: boolean,\n multiple: boolean,\n config: CoreConfig,\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 selectedStatus = multiple ? SelectorStatus.SelectedCheckmark : SelectorStatus.SelectedRadio;\n const rightAccessory = <Selector status={selected ? selectedStatus : SelectorStatus.Empty} />;\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n noticeIcon: CredentialNoticeWarningIcon,\n text: labels.selectiveDisclosureNotice,\n }\n : undefined;\n const { header, ...cardProps } = getCredentialCardPropsFromCredential(\n {\n ...credential,\n claims: credential.claims.map(v2PresentationClaimToClaim),\n },\n credential.claims.map(v2PresentationClaimToClaim),\n config,\n notice,\n testID,\n labels,\n );\n const card = {\n header: {\n ...header,\n accessory: rightAccessory,\n },\n ...cardProps,\n };\n return {\n attributes:\n credential?.claims.map((v) =>\n shareCredentialCardAttributeFromV2Claim(v, undefined, false, false, config, testID),\n ) ?? [],\n card,\n };\n};\n\nexport const getV2CredentialClaimAllSubpaths = (claim: PresentationDefinitionV2Claim): string[] => {\n if (claim.value.type_ !== 'NESTED') {\n return [claim.path];\n }\n return [claim.path, ...claim.value.value.flatMap(getV2CredentialClaimAllSubpaths)];\n};\n\nexport const getV2CredentialAvailablePaths = (credential: PresentationDefinitionV2Credential): string[] => {\n return credential.claims.flatMap(getV2CredentialClaimAllSubpaths);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","CredentialNoticeWarningIcon","CredentialWarningIcon","PurposeInfoIcon","Selector","SelectorStatus","concatTestID","detailsCardAttributeFromClaim","getCredentialCardPropsFromCredential","supportsSelectiveDisclosure","validityCheckedCardFromCredential","v2ClaimValueToClaimValue","value","type_","map","c","v2PresentationClaimToClaim","claim","schema","path","getAttributeSelectorStatus","selected","force","required","Required","userSelection","SelectedCheckmark","Empty","shareCredentialCardAttributeFromV2Claim","selection","parentShared","parentUserSelected","config","testID","language","nested","listValue","attributeShared","Boolean","some","startsWith","userSelected","includes","status","undefined","attribute","disabledStatus","Disabled","Rejected","disabled","credentialAttribute","id","rightAccessory","createElement","array","attributes","image","values","v","datatype","valueErrorColor","missingCredentialCardFromFailureHint","failureHint","notice","labels","_failureHint$credenti","_failureHint$credenti2","cardImage","color","header","credentialDetailErrorColor","credentialDetailPrimary","missingCredential","credentialDetailTestID","credentialName","credentialSchema","name","statusIcon","shareCredentialCardFromV2PresentationCredential","credential","expanded","multipleCredentialsAvailable","purpose","selectedFields","_credential$issuer","_credential$claims$ma","selectiveDisclosureSupported","issuer","noticeIcon","text","cardTestId","card","claims","selectCredentialCardFromV2Credential","multiple","_credential$issuer2","_credential$claims$ma2","selectedStatus","SelectedRadio","selectiveDisclosure","cardProps","accessory","getV2CredentialClaimAllSubpaths","flatMap","getV2CredentialAvailablePaths"],"sources":["credential-sharing-v2.tsx"],"sourcesContent":["import {\n Claim,\n ClaimValue,\n CoreConfig,\n CredentialQueryFailureHint,\n PresentationDefinitionV2Claim,\n PresentationDefinitionV2ClaimValue,\n PresentationDefinitionV2Credential,\n} from '@procivis/react-native-one-core';\nimport React from 'react';\n\nimport {\n CredentialAttribute,\n CredentialCardNotice,\n CredentialCardProps,\n CredentialNoticeWarningIcon,\n CredentialWarningIcon,\n PurposeInfoIcon,\n Selector,\n SelectorStatus,\n} from '../../ui-components';\nimport { concatTestID } from '../testID';\nimport {\n CredentialDetailsCardPropsWithoutWidth,\n detailsCardAttributeFromClaim,\n getCredentialCardPropsFromCredential,\n supportsSelectiveDisclosure,\n} from '.';\nimport { ShareCredentialCardLabels, validityCheckedCardFromCredential } from './credential-sharing';\n\nconst v2ClaimValueToClaimValue = (value: PresentationDefinitionV2ClaimValue): ClaimValue => {\n if (value.type_ !== 'NESTED') {\n return value;\n }\n return {\n type_: 'NESTED',\n value: value.value.map((c) => v2PresentationClaimToClaim(c)),\n };\n};\n\nconst v2PresentationClaimToClaim = (claim: PresentationDefinitionV2Claim): Claim => {\n return {\n schema: claim.schema,\n path: claim.path,\n value: v2ClaimValueToClaimValue(claim.value),\n };\n};\n\nconst getAttributeSelectorStatus = (\n claim: PresentationDefinitionV2Claim,\n selected: boolean,\n force: boolean,\n): SelectorStatus | undefined => {\n if (claim.required && selected) {\n return SelectorStatus.Required;\n }\n if (force) {\n return SelectorStatus.Required;\n }\n if (claim.userSelection) {\n if (selected) {\n return SelectorStatus.SelectedCheckmark;\n } else {\n return SelectorStatus.Empty;\n }\n }\n};\n\nexport const shareCredentialCardAttributeFromV2Claim = (\n claim: PresentationDefinitionV2Claim,\n selection: string[] | undefined,\n parentShared: boolean,\n parentUserSelected: boolean,\n config: CoreConfig,\n testID: string,\n language: string | undefined,\n nested?: boolean,\n listValue?: boolean,\n): CredentialAttribute => {\n const attributeShared =\n Boolean(selection?.some((path) => path.startsWith(claim.path))) || (parentShared && claim.required);\n const userSelected = parentUserSelected || Boolean(selection?.includes(claim.path));\n const selected = !claim.required && attributeShared;\n const status = selection\n ? getAttributeSelectorStatus(claim, attributeShared, parentUserSelected || (attributeShared && !userSelected))\n : undefined;\n const attribute = detailsCardAttributeFromClaim(v2PresentationClaimToClaim(claim), config, testID, language);\n const disabledStatus = [SelectorStatus.Disabled, SelectorStatus.Rejected, SelectorStatus.Required];\n const disabled = attribute.disabled || !status || disabledStatus.includes(status);\n const credentialAttribute: CredentialAttribute = {\n ...attribute,\n disabled,\n id: claim.path,\n listValue,\n nested,\n path: claim.path,\n rightAccessory: status && <Selector status={status} />,\n selected,\n testID,\n };\n if (claim.value.type_ === 'NESTED') {\n if (claim.schema.array) {\n return {\n ...credentialAttribute,\n attributes: undefined,\n image: undefined,\n value: undefined,\n values: claim.value.value.map((v) =>\n shareCredentialCardAttributeFromV2Claim(\n v,\n selection,\n attributeShared,\n userSelected,\n config,\n testID,\n language,\n true,\n false,\n ),\n ),\n };\n } else if (claim.schema.datatype === 'OBJECT') {\n return {\n ...credentialAttribute,\n attributes: claim.value.value.map((v) =>\n shareCredentialCardAttributeFromV2Claim(\n v,\n selection,\n attributeShared,\n userSelected,\n config,\n testID,\n language,\n true,\n ),\n ),\n image: undefined,\n value: undefined,\n valueErrorColor: undefined,\n values: undefined,\n };\n }\n }\n return credentialAttribute;\n};\n\nexport const missingCredentialCardFromFailureHint = (\n failureHint: CredentialQueryFailureHint | undefined,\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 header: {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.missingCredential,\n credentialDetailTestID: concatTestID(testID, 'header.missing'),\n credentialName: failureHint?.credentialSchema?.name ?? '',\n statusIcon: CredentialWarningIcon,\n },\n testID,\n ...notice,\n };\n};\n\nexport const shareCredentialCardFromV2PresentationCredential = (\n credential: PresentationDefinitionV2Credential | undefined,\n failureHint: CredentialQueryFailureHint | undefined,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n purpose: string | undefined,\n selectedFields: string[] | undefined,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n language: string | undefined,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const notice: CredentialCardNotice | undefined = purpose\n ? {\n noticeIcon: PurposeInfoIcon,\n text: purpose,\n }\n : undefined;\n const cardTestId = concatTestID(testID, 'card');\n const card = credential\n ? validityCheckedCardFromCredential(\n {\n ...credential,\n claims: [],\n },\n expanded,\n selectiveDisclosureSupported,\n multipleCredentialsAvailable,\n config,\n notice,\n cardTestId,\n labels,\n language,\n )\n : missingCredentialCardFromFailureHint(failureHint, notice, cardTestId, labels);\n\n return {\n attributes:\n credential?.claims.map((v) =>\n shareCredentialCardAttributeFromV2Claim(v, selectedFields ?? [], true, false, config, testID, language),\n ) ?? [],\n card,\n };\n};\n\nexport const selectCredentialCardFromV2Credential = (\n credential: PresentationDefinitionV2Credential,\n selected: boolean,\n multiple: boolean,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n language: string | undefined,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const selectedStatus = multiple ? SelectorStatus.SelectedCheckmark : SelectorStatus.SelectedRadio;\n const rightAccessory = <Selector status={selected ? selectedStatus : SelectorStatus.Empty} />;\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n noticeIcon: CredentialNoticeWarningIcon,\n text: labels.selectiveDisclosure,\n }\n : undefined;\n const { header, ...cardProps } = getCredentialCardPropsFromCredential(\n {\n ...credential,\n claims: credential.claims.map(v2PresentationClaimToClaim),\n },\n credential.claims.map(v2PresentationClaimToClaim),\n config,\n notice,\n testID,\n labels,\n language,\n );\n const card = {\n header: {\n ...header,\n accessory: rightAccessory,\n },\n ...cardProps,\n };\n return {\n attributes:\n credential?.claims.map((v) =>\n shareCredentialCardAttributeFromV2Claim(v, undefined, false, false, config, testID, language),\n ) ?? [],\n card,\n };\n};\n\nexport const getV2CredentialClaimAllSubpaths = (claim: PresentationDefinitionV2Claim): string[] => {\n if (claim.value.type_ !== 'NESTED') {\n return [claim.path];\n }\n return [claim.path, ...claim.value.value.flatMap(getV2CredentialClaimAllSubpaths)];\n};\n\nexport const getV2CredentialAvailablePaths = (credential: PresentationDefinitionV2Credential): string[] => {\n return credential.claims.flatMap(getV2CredentialClaimAllSubpaths);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,16 +3,22 @@ import { Selector, SelectorStatus } from '../../ui-components/credential';
|
|
|
3
3
|
import { CredentialNoticeWarningIcon, CredentialWarningIcon, RequiredAttributeIcon } from '../../ui-components/icons';
|
|
4
4
|
import { concatTestID } from '../testID';
|
|
5
5
|
import { detailsCardAttributeFromClaim, getCredentialCardPropsFromCredential, getValidityState, nestAttributes, supportsSelectiveDisclosure, ValidityState } from './credential';
|
|
6
|
-
export const validityCheckedCardFromCredential = (credential, expanded, multipleCredentialsAvailable, config, notice, testID, labels) => {
|
|
6
|
+
export const validityCheckedCardFromCredential = (credential, expanded, selectiveDisclosureSupported, multipleCredentialsAvailable, config, notice, testID, labels, language) => {
|
|
7
7
|
let credentialHeaderDetail;
|
|
8
|
-
if (
|
|
8
|
+
if (selectiveDisclosureSupported === false) {
|
|
9
|
+
credentialHeaderDetail = {
|
|
10
|
+
credentialDetailPrimary: labels.selectiveDisclosure,
|
|
11
|
+
credentialDetailTestID: concatTestID(testID, 'header.nonSelectiveDisclosure'),
|
|
12
|
+
statusIcon: CredentialWarningIcon
|
|
13
|
+
};
|
|
14
|
+
} else if (!expanded && multipleCredentialsAvailable) {
|
|
9
15
|
credentialHeaderDetail = {
|
|
10
16
|
credentialDetailPrimary: labels.multipleCredentials,
|
|
11
17
|
credentialDetailTestID: concatTestID(testID, 'header.multiple'),
|
|
12
18
|
statusIcon: CredentialWarningIcon
|
|
13
19
|
};
|
|
14
20
|
}
|
|
15
|
-
const card = getCredentialCardPropsFromCredential(credential, credential.claims, config, notice, testID, labels);
|
|
21
|
+
const card = getCredentialCardPropsFromCredential(credential, credential.claims, config, notice, testID, labels, language);
|
|
16
22
|
return {
|
|
17
23
|
...card,
|
|
18
24
|
header: {
|
|
@@ -104,11 +110,11 @@ const getFullyNestedFields = (fields, credentialId) => {
|
|
|
104
110
|
field
|
|
105
111
|
}) => field);
|
|
106
112
|
};
|
|
107
|
-
export const shareCredentialCardAttributeFromClaim = (id, config, testID, labels, claim, field) => {
|
|
113
|
+
export const shareCredentialCardAttributeFromClaim = (id, config, testID, labels, language, claim, field) => {
|
|
108
114
|
var _field$name$split$pop, _field$name, _field$name2;
|
|
109
115
|
if (claim) {
|
|
110
116
|
return {
|
|
111
|
-
...detailsCardAttributeFromClaim(claim, config, testID),
|
|
117
|
+
...detailsCardAttributeFromClaim(claim, config, testID, language),
|
|
112
118
|
id,
|
|
113
119
|
path: claim.path,
|
|
114
120
|
listValue: claim.isArrayElement
|
|
@@ -155,18 +161,14 @@ const setStatusForNestedObjectOrArrayFields = (attribute, status, disabled) => {
|
|
|
155
161
|
}
|
|
156
162
|
}
|
|
157
163
|
};
|
|
158
|
-
export const shareCredentialCardFromCredential = (credential, expanded, multipleCredentialsAvailable, request, selectedFields, config, testID, labels) => {
|
|
164
|
+
export const shareCredentialCardFromCredential = (credential, expanded, multipleCredentialsAvailable, request, selectedFields, config, testID, labels, language) => {
|
|
159
165
|
var _credential$issuer, _credential$issuer2;
|
|
160
166
|
const selectiveDisclosureSupported = supportsSelectiveDisclosure(credential ? {
|
|
161
167
|
...credential,
|
|
162
168
|
issuer: (_credential$issuer = credential.issuer) === null || _credential$issuer === void 0 ? void 0 : _credential$issuer.id
|
|
163
169
|
} : undefined, config);
|
|
164
|
-
const notice = selectiveDisclosureSupported === false ? {
|
|
165
|
-
text: labels.selectiveDisclosureNotice,
|
|
166
|
-
noticeIcon: CredentialNoticeWarningIcon
|
|
167
|
-
} : undefined;
|
|
168
170
|
const cardTestId = concatTestID(testID, 'card');
|
|
169
|
-
const card = credential ? validityCheckedCardFromCredential(credential, expanded, multipleCredentialsAvailable, config,
|
|
171
|
+
const card = credential ? validityCheckedCardFromCredential(credential, expanded, selectiveDisclosureSupported, multipleCredentialsAvailable, config, undefined, cardTestId, labels, language) : missingCredentialCardFromRequest(request, undefined, cardTestId, labels);
|
|
170
172
|
const validityState = getValidityState(credential ? {
|
|
171
173
|
...credential,
|
|
172
174
|
issuer: (_credential$issuer2 = credential.issuer) === null || _credential$issuer2 === void 0 ? void 0 : _credential$issuer2.id
|
|
@@ -181,7 +183,7 @@ export const shareCredentialCardFromCredential = (credential, expanded, multiple
|
|
|
181
183
|
}, index) => {
|
|
182
184
|
const disabled = !credential || !field || field.required || !claim;
|
|
183
185
|
const attribute = {
|
|
184
|
-
...shareCredentialCardAttributeFromClaim(id, config, concatTestID(testID, 'attribute', `${index}`), labels, claim, field),
|
|
186
|
+
...shareCredentialCardAttributeFromClaim(id, config, concatTestID(testID, 'attribute', `${index}`), labels, language, claim, field),
|
|
185
187
|
selected
|
|
186
188
|
};
|
|
187
189
|
setStatusForNestedObjectOrArrayFields(attribute, status, disabled);
|
|
@@ -192,8 +194,8 @@ export const shareCredentialCardFromCredential = (credential, expanded, multiple
|
|
|
192
194
|
card
|
|
193
195
|
};
|
|
194
196
|
};
|
|
195
|
-
export const selectCredentialCardAttributeFromClaim = (id, config, testID, labels, claim, field) => {
|
|
196
|
-
const attribute = shareCredentialCardAttributeFromClaim(id, config, testID, labels, claim, field);
|
|
197
|
+
export const selectCredentialCardAttributeFromClaim = (id, config, testID, labels, language, claim, field) => {
|
|
198
|
+
const attribute = shareCredentialCardAttributeFromClaim(id, config, testID, labels, language, claim, field);
|
|
197
199
|
if (!claim) {
|
|
198
200
|
return attribute;
|
|
199
201
|
}
|
|
@@ -202,7 +204,7 @@ export const selectCredentialCardAttributeFromClaim = (id, config, testID, label
|
|
|
202
204
|
rightAccessory: RequiredAttributeIcon
|
|
203
205
|
};
|
|
204
206
|
};
|
|
205
|
-
export const selectCredentialCardFromCredential = (credential, selected, request, config, testID, labels) => {
|
|
207
|
+
export const selectCredentialCardFromCredential = (credential, selected, request, config, testID, labels, language) => {
|
|
206
208
|
var _credential$issuer3;
|
|
207
209
|
const selectiveDisclosureSupported = supportsSelectiveDisclosure(credential ? {
|
|
208
210
|
...credential,
|
|
@@ -212,13 +214,13 @@ export const selectCredentialCardFromCredential = (credential, selected, request
|
|
|
212
214
|
status: selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty
|
|
213
215
|
});
|
|
214
216
|
const notice = selectiveDisclosureSupported === false ? {
|
|
215
|
-
text: labels.
|
|
217
|
+
text: labels.selectiveDisclosure,
|
|
216
218
|
noticeIcon: CredentialNoticeWarningIcon
|
|
217
219
|
} : undefined;
|
|
218
220
|
const {
|
|
219
221
|
header,
|
|
220
222
|
...cardProps
|
|
221
|
-
} = getCredentialCardPropsFromCredential(credential, credential.claims, config, notice, testID, labels);
|
|
223
|
+
} = getCredentialCardPropsFromCredential(credential, credential.claims, config, notice, testID, labels, language);
|
|
222
224
|
const card = {
|
|
223
225
|
header: {
|
|
224
226
|
...header,
|
|
@@ -232,7 +234,7 @@ export const selectCredentialCardFromCredential = (credential, selected, request
|
|
|
232
234
|
}) => {
|
|
233
235
|
return path === field.keyMap[credential.id];
|
|
234
236
|
});
|
|
235
|
-
const attribute = selectCredentialCardAttributeFromClaim(field.id, config, testID, labels, claim, field);
|
|
237
|
+
const attribute = selectCredentialCardAttributeFromClaim(field.id, config, testID, labels, language, claim, field);
|
|
236
238
|
return {
|
|
237
239
|
...attribute,
|
|
238
240
|
rightAccessory: /*#__PURE__*/React.createElement(Selector, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Selector","SelectorStatus","CredentialNoticeWarningIcon","CredentialWarningIcon","RequiredAttributeIcon","concatTestID","detailsCardAttributeFromClaim","getCredentialCardPropsFromCredential","getValidityState","nestAttributes","supportsSelectiveDisclosure","ValidityState","validityCheckedCardFromCredential","credential","expanded","multipleCredentialsAvailable","config","notice","testID","labels","credentialHeaderDetail","credentialDetailPrimary","multipleCredentials","credentialDetailTestID","statusIcon","card","claims","header","missingCredentialCardFromRequest","request","_request$name","cardImage","undefined","color","credentialDetailErrorColor","missingCredential","credentialName","name","id","getAttributeSelectorStatus","field","validityState","claim","selected","Valid","Rejected","required","Required","Disabled","SelectedCheckmark","Empty","spreadClaims","reduce","acc","result","value","type_","nestedClaimsWithPath","map","c","isArrayElement","schema","array","path","split","pop","key","push","getDisplayedAttributes","selectiveDisclosureSupported","selectedFields","isApplicable","applicableCredentials","includes","fields","fieldsWithNoKeyMapping","filter","keyMap","fullyNestedFields","getFullyNestedFields","find","status","credentialId","allKeys","every","k","startsWith","shareCredentialCardAttributeFromClaim","_field$name$split$pop","_field$name","_field$name2","listValue","missingAttribute","valueErrorColor","setStatusForNestedObjectOrArrayFields","attribute","disabled","accessory","createElement","isObject","attributes","length","isArray","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 CoreConfig,\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 expanded: boolean,\n multipleCredentialsAvailable: boolean,\n config: CoreConfig,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'testID' | 'width'> => {\n let credentialHeaderDetail:\n | Pick<\n CredentialHeaderProps,\n | 'credentialDetailPrimary'\n | 'credentialDetailSecondary'\n | 'credentialDetailErrorColor'\n | 'credentialDetailTestID'\n | 'statusIcon'\n >\n | undefined;\n if (!expanded && multipleCredentialsAvailable) {\n credentialHeaderDetail = {\n credentialDetailPrimary: labels.multipleCredentials,\n credentialDetailTestID: concatTestID(testID, 'header.multiple'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n const card = getCredentialCardPropsFromCredential(credential, credential.claims, config, notice, testID, labels);\n return {\n ...card,\n header: {\n ...card.header,\n ...credentialHeaderDetail,\n },\n };\n};\n\nexport const missingCredentialCardFromRequest = (\n request: 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 FlatClaim = Claim & {\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: Claim[]): FlatClaim[] => {\n return claims.reduce((acc, claim) => {\n const result = [claim];\n if (claim.value.type_ === 'NESTED') {\n const nestedClaimsWithPath: FlatClaim[] = claim.value.value.map((c) => ({\n ...c,\n isArrayElement: claim.schema.array && claim.path.split('/').pop() !== claim.schema.key,\n }));\n result.push(...spreadClaims(nestedClaimsWithPath));\n }\n return [...acc, ...result];\n }, [] as FlatClaim[]);\n};\n\nconst getDisplayedAttributes = (\n request: 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: CoreConfig,\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 expanded: boolean,\n multipleCredentialsAvailable: boolean,\n request: PresentationDefinitionRequestedCredential,\n selectedFields: string[] | undefined,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n text: labels.selectiveDisclosureNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n }\n : undefined;\n const cardTestId = concatTestID(testID, 'card');\n const card = credential\n ? validityCheckedCardFromCredential(\n credential,\n expanded,\n multipleCredentialsAvailable,\n config,\n notice,\n cardTestId,\n labels,\n )\n : missingCredentialCardFromRequest(request, notice, cardTestId, labels);\n const validityState = getValidityState(credential ? { ...credential, issuer: credential.issuer?.id } : undefined);\n const displayedAttributes = getDisplayedAttributes(\n request,\n validityState,\n credential,\n selectiveDisclosureSupported,\n selectedFields,\n );\n\n const attributes: CredentialAttribute[] = displayedAttributes.map(({ claim, field, id, selected, status }, index) => {\n const disabled = !credential || !field || field.required || !claim;\n const attribute: CredentialAttribute = {\n ...shareCredentialCardAttributeFromClaim(\n id,\n config,\n concatTestID(testID, 'attribute', `${index}`),\n labels,\n claim,\n field,\n ),\n selected,\n };\n\n setStatusForNestedObjectOrArrayFields(attribute, status, disabled);\n return attribute;\n });\n return {\n attributes: nestAttributes(attributes),\n card,\n };\n};\n\nexport const selectCredentialCardAttributeFromClaim = (\n id: string,\n config: CoreConfig,\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: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const rightAccessory = <Selector status={selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty} />;\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n text: labels.selectiveDisclosureNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n }\n : undefined;\n const { header, ...cardProps } = getCredentialCardPropsFromCredential(\n credential,\n credential.claims,\n config,\n notice,\n testID,\n labels,\n );\n const card = {\n header: {\n ...header,\n accessory: rightAccessory,\n },\n ...cardProps,\n };\n const attributes: CredentialAttribute[] = getFullyNestedFields(request.fields, credential.id).map((field) => {\n const claim = spreadClaims(credential.claims).find(({ path }) => {\n return path === field.keyMap[credential.id];\n });\n\n const attribute = selectCredentialCardAttributeFromClaim(field.id, config, testID, labels, claim, field);\n return {\n ...attribute,\n rightAccessory: (\n <Selector status={field.required && !claim ? SelectorStatus.Rejected : SelectorStatus.Required} />\n ),\n };\n });\n return {\n attributes: nestAttributes(attributes),\n card,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Selector","SelectorStatus","CredentialNoticeWarningIcon","CredentialWarningIcon","RequiredAttributeIcon","concatTestID","detailsCardAttributeFromClaim","getCredentialCardPropsFromCredential","getValidityState","nestAttributes","supportsSelectiveDisclosure","ValidityState","validityCheckedCardFromCredential","credential","expanded","selectiveDisclosureSupported","multipleCredentialsAvailable","config","notice","testID","labels","language","credentialHeaderDetail","credentialDetailPrimary","selectiveDisclosure","credentialDetailTestID","statusIcon","multipleCredentials","card","claims","header","missingCredentialCardFromRequest","request","_request$name","cardImage","undefined","color","credentialDetailErrorColor","missingCredential","credentialName","name","id","getAttributeSelectorStatus","field","validityState","claim","selected","Valid","Rejected","required","Required","Disabled","SelectedCheckmark","Empty","spreadClaims","reduce","acc","result","value","type_","nestedClaimsWithPath","map","c","isArrayElement","schema","array","path","split","pop","key","push","getDisplayedAttributes","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","missingAttribute","valueErrorColor","setStatusForNestedObjectOrArrayFields","attribute","disabled","accessory","createElement","isObject","attributes","length","isArray","values","rightAccessory","_attribute$attributes","nested","nestedAttribute","shareCredentialCardFromCredential","_credential$issuer","_credential$issuer2","issuer","cardTestId","displayedAttributes","index","selectCredentialCardAttributeFromClaim","selectCredentialCardFromCredential","_credential$issuer3","SelectedRadio","text","noticeIcon","cardProps"],"sources":["credential-sharing.tsx"],"sourcesContent":["import {\n Claim,\n CoreConfig,\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 expanded: boolean,\n selectiveDisclosureSupported: boolean | undefined,\n multipleCredentialsAvailable: boolean,\n config: CoreConfig,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n language: string | undefined,\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 (selectiveDisclosureSupported === false) {\n credentialHeaderDetail = {\n credentialDetailPrimary: labels.selectiveDisclosure,\n credentialDetailTestID: concatTestID(testID, 'header.nonSelectiveDisclosure'),\n statusIcon: CredentialWarningIcon,\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(\n credential,\n credential.claims,\n config,\n notice,\n testID,\n labels,\n language,\n );\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 FlatClaim = Claim & {\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: Claim[]): FlatClaim[] => {\n return claims.reduce((acc, claim) => {\n const result = [claim];\n if (claim.value.type_ === 'NESTED') {\n const nestedClaimsWithPath: FlatClaim[] = claim.value.value.map((c) => ({\n ...c,\n isArrayElement: claim.schema.array && claim.path.split('/').pop() !== claim.schema.key,\n }));\n result.push(...spreadClaims(nestedClaimsWithPath));\n }\n return [...acc, ...result];\n }, [] as FlatClaim[]);\n};\n\nconst getDisplayedAttributes = (\n request: 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: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n language: string | undefined,\n claim?: FlatClaim,\n field?: PresentationDefinitionField,\n): CredentialAttribute => {\n if (claim) {\n return {\n ...detailsCardAttributeFromClaim(claim, config, testID, language),\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 selectiveDisclosure: string;\n missingAttribute: string;\n missingCredential: string;\n multipleCredentials: string;\n};\n\nexport const shareCredentialCardFromCredential = (\n credential: CredentialDetail | undefined,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n request: PresentationDefinitionRequestedCredential,\n selectedFields: string[] | undefined,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n language: string | undefined,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const cardTestId = concatTestID(testID, 'card');\n const card = credential\n ? validityCheckedCardFromCredential(\n credential,\n expanded,\n selectiveDisclosureSupported,\n multipleCredentialsAvailable,\n config,\n undefined,\n cardTestId,\n labels,\n language,\n )\n : missingCredentialCardFromRequest(request, undefined, 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 language,\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: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n language: string | undefined,\n claim?: FlatClaim,\n field?: PresentationDefinitionField,\n): CredentialAttribute => {\n const attribute = shareCredentialCardAttributeFromClaim(id, config, testID, labels, language, 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: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n language: string | undefined,\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.selectiveDisclosure,\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 language,\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, language, 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,7 +1,8 @@
|
|
|
1
1
|
import { CredentialState, DataType, FormatFeature } from '@procivis/react-native-one-core';
|
|
2
|
-
import { CredentialErrorIcon, CredentialNoticeWarningIcon, CredentialWarningIcon } from '../../ui-components/icons';
|
|
2
|
+
import { CredentialErrorIcon, CredentialNoticeInfoIcon, CredentialNoticeWarningIcon, CredentialWarningIcon } from '../../ui-components/icons';
|
|
3
3
|
import { formatDateLocalized, formatDateTimeLocalized } from '../date';
|
|
4
4
|
import { concatTestID } from '../testID';
|
|
5
|
+
import { getTranslatedLabel } from '../translations';
|
|
5
6
|
import { getCarouselImagesFromClaims } from './credential-images';
|
|
6
7
|
export let ValidityState = /*#__PURE__*/function (ValidityState) {
|
|
7
8
|
ValidityState["Revoked"] = "revoked";
|
|
@@ -37,9 +38,9 @@ export const findClaimByPath = (path, claims) => {
|
|
|
37
38
|
}
|
|
38
39
|
return undefined;
|
|
39
40
|
};
|
|
40
|
-
const formatCredentialDetail = (claim, config, testID) => {
|
|
41
|
+
const formatCredentialDetail = (claim, config, testID, language) => {
|
|
41
42
|
var _attributeValue$value;
|
|
42
|
-
const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID);
|
|
43
|
+
const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID, language);
|
|
43
44
|
return (_attributeValue$value = attributeValue.value) !== null && _attributeValue$value !== void 0 ? _attributeValue$value : '';
|
|
44
45
|
};
|
|
45
46
|
export const hasMsoValidityIssues = credential => {
|
|
@@ -47,7 +48,7 @@ export const hasMsoValidityIssues = credential => {
|
|
|
47
48
|
const mdocMsoValidityIssue = Boolean(((_credential$mdocMsoVa = credential.mdocMsoValidity) === null || _credential$mdocMsoVa === void 0 ? void 0 : _credential$mdocMsoVa.nextUpdate) && new Date(credential.mdocMsoValidity.nextUpdate) < new Date());
|
|
48
49
|
return mdocMsoValidityIssue;
|
|
49
50
|
};
|
|
50
|
-
const credentialDetailFromCredential = (credential, claims = [], config, testID, labels) => {
|
|
51
|
+
const credentialDetailFromCredential = (credential, claims = [], config, testID, labels, language) => {
|
|
51
52
|
var _formatDateTimeLocali, _credential$issuanceD;
|
|
52
53
|
const {
|
|
53
54
|
layoutProperties
|
|
@@ -78,11 +79,11 @@ const credentialDetailFromCredential = (credential, claims = [], config, testID,
|
|
|
78
79
|
let credentialDetailSecondary;
|
|
79
80
|
const primary = findClaimByPath(layoutProperties === null || layoutProperties === void 0 ? void 0 : layoutProperties.primaryAttribute, claims);
|
|
80
81
|
if (primary) {
|
|
81
|
-
credentialDetailPrimary = formatCredentialDetail(primary, config, concatTestID(testID, 'primary'));
|
|
82
|
+
credentialDetailPrimary = formatCredentialDetail(primary, config, concatTestID(testID, 'primary'), language);
|
|
82
83
|
}
|
|
83
84
|
const secondary = findClaimByPath(layoutProperties === null || layoutProperties === void 0 ? void 0 : layoutProperties.secondaryAttribute, claims);
|
|
84
85
|
if (secondary) {
|
|
85
|
-
credentialDetailSecondary = formatCredentialDetail(secondary, config, concatTestID(testID, 'secondary'));
|
|
86
|
+
credentialDetailSecondary = formatCredentialDetail(secondary, config, concatTestID(testID, 'secondary'), language);
|
|
86
87
|
}
|
|
87
88
|
return {
|
|
88
89
|
credentialDetailPrimary,
|
|
@@ -90,25 +91,26 @@ const credentialDetailFromCredential = (credential, claims = [], config, testID,
|
|
|
90
91
|
credentialDetailTestID: concatTestID(testID, 'detail')
|
|
91
92
|
};
|
|
92
93
|
};
|
|
93
|
-
export const cardHeaderFromCredential = (credential, claims = [], config, testID, labels) => {
|
|
94
|
-
var _layoutProperties$log, _layoutProperties$log2, _layoutProperties$log3;
|
|
94
|
+
export const cardHeaderFromCredential = (credential, claims = [], config, testID, labels, language) => {
|
|
95
|
+
var _layoutProperties$log, _getTranslatedLabel, _credential$schema$tr, _layoutProperties$log2, _layoutProperties$log3;
|
|
95
96
|
const {
|
|
96
97
|
credentialDetailPrimary,
|
|
97
98
|
credentialDetailSecondary,
|
|
98
99
|
credentialDetailErrorColor,
|
|
99
100
|
credentialDetailTestID,
|
|
100
101
|
statusIcon
|
|
101
|
-
} = credentialDetailFromCredential(credential, claims, config, testID, labels);
|
|
102
|
+
} = credentialDetailFromCredential(credential, claims, config, testID, labels, language);
|
|
102
103
|
const {
|
|
103
104
|
layoutProperties
|
|
104
105
|
} = credential.schema;
|
|
106
|
+
const defaultLanguage = config.defaultLanguage;
|
|
105
107
|
return {
|
|
106
108
|
color: layoutProperties === null || layoutProperties === void 0 || (_layoutProperties$log = layoutProperties.logo) === null || _layoutProperties$log === void 0 ? void 0 : _layoutProperties$log.backgroundColor,
|
|
107
109
|
credentialDetailErrorColor,
|
|
108
110
|
credentialDetailPrimary,
|
|
109
111
|
credentialDetailSecondary,
|
|
110
112
|
credentialDetailTestID,
|
|
111
|
-
credentialName: credential.schema.name,
|
|
113
|
+
credentialName: (_getTranslatedLabel = getTranslatedLabel((_credential$schema$tr = credential.schema.translations) === null || _credential$schema$tr === void 0 ? void 0 : _credential$schema$tr.name, language, defaultLanguage)) !== null && _getTranslatedLabel !== void 0 ? _getTranslatedLabel : credential.schema.name,
|
|
112
114
|
icon: layoutProperties !== null && layoutProperties !== void 0 && (_layoutProperties$log2 = layoutProperties.logo) !== null && _layoutProperties$log2 !== void 0 && _layoutProperties$log2.image ? {
|
|
113
115
|
imageSource: {
|
|
114
116
|
uri: layoutProperties.logo.image
|
|
@@ -119,16 +121,26 @@ export const cardHeaderFromCredential = (credential, claims = [], config, testID
|
|
|
119
121
|
testID
|
|
120
122
|
};
|
|
121
123
|
};
|
|
122
|
-
export const getCredentialCardPropsFromCredential = (credential, claims = [], config, notice, testID, labels) => {
|
|
124
|
+
export const getCredentialCardPropsFromCredential = (credential, claims = [], config, notice, testID, labels, language) => {
|
|
123
125
|
var _layoutProperties$bac, _layoutProperties$bac2;
|
|
124
126
|
const {
|
|
125
127
|
layoutProperties
|
|
126
128
|
} = credential.schema;
|
|
129
|
+
const defaultLanguage = config.defaultLanguage;
|
|
127
130
|
if (hasMsoValidityIssues(credential)) {
|
|
128
131
|
notice = {
|
|
129
132
|
text: labels.validityIssuesNotice,
|
|
130
133
|
noticeIcon: CredentialNoticeWarningIcon
|
|
131
134
|
};
|
|
135
|
+
} else if (!notice) {
|
|
136
|
+
var _credential$schema$tr2;
|
|
137
|
+
let description = getTranslatedLabel((_credential$schema$tr2 = credential.schema.translations) === null || _credential$schema$tr2 === void 0 ? void 0 : _credential$schema$tr2.description, language, defaultLanguage);
|
|
138
|
+
if (description) {
|
|
139
|
+
notice = {
|
|
140
|
+
text: description,
|
|
141
|
+
noticeIcon: CredentialNoticeInfoIcon
|
|
142
|
+
};
|
|
143
|
+
}
|
|
132
144
|
}
|
|
133
145
|
const result = {
|
|
134
146
|
cardCarouselImages: getCarouselImagesFromClaims(claims, layoutProperties, concatTestID(testID, 'carousel')),
|
|
@@ -138,27 +150,29 @@ export const getCredentialCardPropsFromCredential = (credential, claims = [], co
|
|
|
138
150
|
}
|
|
139
151
|
} : undefined,
|
|
140
152
|
color: layoutProperties === null || layoutProperties === void 0 || (_layoutProperties$bac2 = layoutProperties.background) === null || _layoutProperties$bac2 === void 0 ? void 0 : _layoutProperties$bac2.color,
|
|
141
|
-
header: cardHeaderFromCredential(credential, claims, config, concatTestID(testID, 'header'), labels),
|
|
153
|
+
header: cardHeaderFromCredential(credential, claims, config, concatTestID(testID, 'header'), labels, language),
|
|
142
154
|
testID,
|
|
143
155
|
notice
|
|
144
156
|
};
|
|
145
157
|
return result;
|
|
146
158
|
};
|
|
147
|
-
export const detailsCardAttributeFromClaim = (claim, config, testID) => {
|
|
148
|
-
|
|
159
|
+
export const detailsCardAttributeFromClaim = (claim, config, testID, language) => {
|
|
160
|
+
var _getTranslatedLabel2;
|
|
161
|
+
const value = detailsCardAttributeValueFromClaim(claim, config, testID, language);
|
|
162
|
+
const defaultLanguage = config.defaultLanguage;
|
|
149
163
|
return {
|
|
150
164
|
id: claim.path,
|
|
151
|
-
name: claim.path.split('/').pop(),
|
|
165
|
+
name: (_getTranslatedLabel2 = getTranslatedLabel(claim.schema.translations.name, language, defaultLanguage)) !== null && _getTranslatedLabel2 !== void 0 ? _getTranslatedLabel2 : claim.path.split('/').pop(),
|
|
152
166
|
path: claim.path,
|
|
153
167
|
...value
|
|
154
168
|
};
|
|
155
169
|
};
|
|
156
|
-
const detailsCardAttributeValueFromClaim = (claim, config, testID) => {
|
|
170
|
+
const detailsCardAttributeValueFromClaim = (claim, config, testID, language) => {
|
|
157
171
|
const typeConfig = config === null || config === void 0 ? void 0 : config.datatype[claim.schema.datatype];
|
|
158
172
|
if (claim.schema.array) {
|
|
159
173
|
return {
|
|
160
174
|
values: (claim.value.value || []).map((arrayValue, index) => {
|
|
161
|
-
return detailsCardAttributeFromClaim(arrayValue, config, concatTestID(testID, index.toString()));
|
|
175
|
+
return detailsCardAttributeFromClaim(arrayValue, config, concatTestID(testID, index.toString()), language);
|
|
162
176
|
})
|
|
163
177
|
};
|
|
164
178
|
} else {
|
|
@@ -171,7 +185,7 @@ const detailsCardAttributeValueFromClaim = (claim, config, testID) => {
|
|
|
171
185
|
};
|
|
172
186
|
}
|
|
173
187
|
return {
|
|
174
|
-
attributes: claim.value.value.map((nestedClaim, index) => detailsCardAttributeFromClaim(nestedClaim, config, concatTestID(testID, index.toString())))
|
|
188
|
+
attributes: claim.value.value.map((nestedClaim, index) => detailsCardAttributeFromClaim(nestedClaim, config, concatTestID(testID, index.toString()), language))
|
|
175
189
|
};
|
|
176
190
|
}
|
|
177
191
|
case DataType.Date:
|
|
@@ -216,12 +230,12 @@ const detailsCardAttributeValueFromClaim = (claim, config, testID) => {
|
|
|
216
230
|
}
|
|
217
231
|
}
|
|
218
232
|
};
|
|
219
|
-
export const detailsCardFromCredential = (credential, config, testID, labels) => {
|
|
220
|
-
return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels);
|
|
233
|
+
export const detailsCardFromCredential = (credential, config, testID, labels, language) => {
|
|
234
|
+
return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels, language);
|
|
221
235
|
};
|
|
222
|
-
export const detailsCardFromCredentialWithClaims = (credential, claims, config, testID, labels) => {
|
|
223
|
-
const attributes = claims.map((claim, index) => detailsCardAttributeFromClaim(claim, config, concatTestID(testID, 'attribute', index.toString())));
|
|
224
|
-
const card = getCredentialCardPropsFromCredential(credential, claims, config, undefined, concatTestID(testID, 'card'), labels);
|
|
236
|
+
export const detailsCardFromCredentialWithClaims = (credential, claims, config, testID, labels, language) => {
|
|
237
|
+
const attributes = claims.map((claim, index) => detailsCardAttributeFromClaim(claim, config, concatTestID(testID, 'attribute', index.toString()), language));
|
|
238
|
+
const card = getCredentialCardPropsFromCredential(credential, claims, config, undefined, concatTestID(testID, 'card'), labels, language);
|
|
225
239
|
return {
|
|
226
240
|
attributes,
|
|
227
241
|
card
|