@procivis/one-react-native-components 0.3.130 → 0.3.142
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/history/history-list-item-icon.js +3 -0
- package/lib/commonjs/components/history/history-list-item-icon.js.map +1 -1
- package/lib/commonjs/components/history/history-list-item.js +3 -4
- package/lib/commonjs/components/history/history-list-item.js.map +1 -1
- package/lib/commonjs/components/proof-request/v2/share-credential-v2.js +3 -1
- package/lib/commonjs/components/proof-request/v2/share-credential-v2.js.map +1 -1
- package/lib/commonjs/ui-components/buttons/scan-button.js +122 -27
- package/lib/commonjs/ui-components/buttons/scan-button.js.map +1 -1
- package/lib/commonjs/ui-components/credential/card/credential-details-card.js +37 -18
- package/lib/commonjs/ui-components/credential/card/credential-details-card.js.map +1 -1
- package/lib/commonjs/ui-components/credential/credential-attribute-item.js +13 -4
- package/lib/commonjs/ui-components/credential/credential-attribute-item.js.map +1 -1
- package/lib/commonjs/ui-components/history/history-section-list-item.js +2 -2
- package/lib/commonjs/ui-components/history/history-section-list-item.js.map +1 -1
- package/lib/commonjs/ui-components/history/index.js +0 -8
- package/lib/commonjs/ui-components/history/index.js.map +1 -1
- package/lib/commonjs/ui-components/icons/icons.js +36 -2
- package/lib/commonjs/ui-components/icons/icons.js.map +1 -1
- package/lib/commonjs/ui-components/list/index.js +8 -0
- package/lib/commonjs/ui-components/list/index.js.map +1 -1
- package/lib/commonjs/ui-components/{history/history-item.js → list/list-item.js} +32 -22
- package/lib/commonjs/ui-components/list/list-item.js.map +1 -0
- package/lib/commonjs/ui-components/list/wallet/empty-list.js +2 -1
- package/lib/commonjs/ui-components/list/wallet/empty-list.js.map +1 -1
- package/lib/commonjs/ui-components/notice/wallet-notice.js +4 -2
- package/lib/commonjs/ui-components/notice/wallet-notice.js.map +1 -1
- package/lib/commonjs/ui-components/text/expandableTypography.js +64 -0
- package/lib/commonjs/ui-components/text/expandableTypography.js.map +1 -0
- package/lib/commonjs/ui-components/text/index.js +15 -0
- package/lib/commonjs/ui-components/text/index.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/credential-schemas.js +24 -1
- package/lib/commonjs/utils/hooks/core/credential-schemas.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/wallet-unit.js +20 -1
- package/lib/commonjs/utils/hooks/core/wallet-unit.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential-sharing-v2.js +8 -7
- package/lib/commonjs/utils/parsers/credential-sharing-v2.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential-sharing.js +17 -11
- package/lib/commonjs/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential.js +12 -4
- 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/module/components/history/history-list-item-icon.js +3 -0
- package/lib/module/components/history/history-list-item-icon.js.map +1 -1
- package/lib/module/components/history/history-list-item.js +4 -5
- package/lib/module/components/history/history-list-item.js.map +1 -1
- package/lib/module/components/proof-request/v2/share-credential-v2.js +3 -1
- package/lib/module/components/proof-request/v2/share-credential-v2.js.map +1 -1
- package/lib/module/ui-components/buttons/scan-button.js +124 -29
- package/lib/module/ui-components/buttons/scan-button.js.map +1 -1
- package/lib/module/ui-components/credential/card/credential-details-card.js +37 -18
- package/lib/module/ui-components/credential/card/credential-details-card.js.map +1 -1
- package/lib/module/ui-components/credential/credential-attribute-item.js +13 -4
- package/lib/module/ui-components/credential/credential-attribute-item.js.map +1 -1
- package/lib/module/ui-components/history/history-section-list-item.js +2 -2
- package/lib/module/ui-components/history/history-section-list-item.js.map +1 -1
- package/lib/module/ui-components/history/index.js +0 -2
- package/lib/module/ui-components/history/index.js.map +1 -1
- package/lib/module/ui-components/icons/icons.js +32 -0
- package/lib/module/ui-components/icons/icons.js.map +1 -1
- package/lib/module/ui-components/list/index.js +2 -0
- package/lib/module/ui-components/list/index.js.map +1 -1
- package/lib/module/ui-components/{history/history-item.js → list/list-item.js} +32 -22
- package/lib/module/ui-components/list/list-item.js.map +1 -0
- package/lib/module/ui-components/list/wallet/empty-list.js +2 -1
- package/lib/module/ui-components/list/wallet/empty-list.js.map +1 -1
- package/lib/module/ui-components/notice/wallet-notice.js +4 -2
- package/lib/module/ui-components/notice/wallet-notice.js.map +1 -1
- package/lib/module/ui-components/text/expandableTypography.js +55 -0
- package/lib/module/ui-components/text/expandableTypography.js.map +1 -0
- package/lib/module/ui-components/text/index.js +2 -1
- package/lib/module/ui-components/text/index.js.map +1 -1
- package/lib/module/utils/hooks/core/credential-schemas.js +24 -1
- package/lib/module/utils/hooks/core/credential-schemas.js.map +1 -1
- package/lib/module/utils/hooks/core/wallet-unit.js +18 -0
- package/lib/module/utils/hooks/core/wallet-unit.js.map +1 -1
- package/lib/module/utils/parsers/credential-sharing-v2.js +8 -7
- package/lib/module/utils/parsers/credential-sharing-v2.js.map +1 -1
- package/lib/module/utils/parsers/credential-sharing.js +18 -12
- package/lib/module/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/module/utils/parsers/credential.js +10 -4
- 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/typescript/ui-components/buttons/scan-button.d.ts +9 -3
- package/lib/typescript/ui-components/credential/card/credential-details-card.d.ts +3 -0
- package/lib/typescript/ui-components/credential/credential-attribute-item.d.ts +3 -0
- package/lib/typescript/ui-components/history/history-section-list-item.d.ts +2 -2
- package/lib/typescript/ui-components/history/index.d.ts +0 -3
- package/lib/typescript/ui-components/icons/icons.d.ts +2 -0
- package/lib/typescript/ui-components/list/index.d.ts +3 -0
- package/lib/typescript/ui-components/{history/history-item.d.ts → list/list-item.d.ts} +4 -4
- package/lib/typescript/ui-components/list/wallet/empty-list.d.ts +2 -2
- package/lib/typescript/ui-components/text/expandableTypography.d.ts +10 -0
- package/lib/typescript/ui-components/text/index.d.ts +2 -1
- package/lib/typescript/ui-components/text/typography.d.ts +14 -14
- package/lib/typescript/utils/hooks/app-state.d.ts +1 -1
- package/lib/typescript/utils/hooks/core/credentials.d.ts +1 -1
- package/lib/typescript/utils/hooks/core/wallet-unit.d.ts +5 -1
- package/lib/typescript/utils/parsers/credential-sharing.d.ts +4 -3
- package/lib/typescript/utils/parsers/credential.d.ts +2 -1
- package/lib/typescript/utils/parsers/query.d.ts +1 -1
- package/package.json +3 -3
- package/src/components/history/history-list-item-icon.tsx +3 -0
- package/src/components/history/history-list-item.tsx +3 -3
- package/src/components/proof-request/v2/share-credential-v2.tsx +2 -0
- package/src/ui-components/buttons/scan-button.tsx +130 -38
- package/src/ui-components/credential/card/credential-details-card.tsx +46 -19
- package/src/ui-components/credential/credential-attribute-item.tsx +15 -3
- package/src/ui-components/history/history-section-list-item.tsx +3 -3
- package/src/ui-components/history/index.ts +0 -3
- package/src/ui-components/icons/icons.tsx +24 -0
- package/src/ui-components/list/index.ts +3 -0
- package/src/ui-components/{history/history-item.tsx → list/list-item.tsx} +36 -33
- package/src/ui-components/list/wallet/empty-list.tsx +11 -8
- package/src/ui-components/notice/wallet-notice.tsx +4 -2
- package/src/ui-components/text/expandableTypography.tsx +71 -0
- package/src/ui-components/text/index.ts +2 -1
- package/src/utils/hooks/core/credential-schemas.ts +23 -1
- package/src/utils/hooks/core/wallet-unit.ts +21 -0
- package/src/utils/parsers/credential-sharing-v2.tsx +5 -6
- package/src/utils/parsers/credential-sharing.tsx +20 -9
- package/src/utils/parsers/credential.ts +14 -3
- package/src/utils/parsers/query.ts +2 -0
- package/lib/commonjs/ui-components/history/history-item.js.map +0 -1
- package/lib/module/ui-components/history/history-item.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Typography"],"sources":["index.ts"],"sourcesContent":["import type { TypographyProps } from './typography';\nimport Typography from './typography';\n\nexport { Typography, TypographyProps };\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["ExpandableTypography","ExpandableTypographyProps","Typography"],"sources":["index.ts"],"sourcesContent":["import ExpandableTypography, { ExpandableTypographyProps } from './expandableTypography';\nimport type { TypographyProps } from './typography';\nimport Typography from './typography';\n\nexport { ExpandableTypography, ExpandableTypographyProps, Typography, TypographyProps };\n"],"mappings":"AAAA,OAAOA,oBAAoB,IAAIC,yBAAyB,QAAQ,wBAAwB;AAExF,OAAOC,UAAU,MAAM,cAAc;AAErC,SAASF,oBAAoB,EAAEC,yBAAyB,EAAEC,UAAU","ignoreList":[]}
|
|
@@ -33,11 +33,34 @@ export const useCredentialSchemaPreview = url => {
|
|
|
33
33
|
if (!response.ok) {
|
|
34
34
|
throw response.originalError;
|
|
35
35
|
}
|
|
36
|
-
return response.data;
|
|
36
|
+
return prepareImportCredentialSchema(response.data);
|
|
37
37
|
}), {
|
|
38
38
|
keepPreviousData: true
|
|
39
39
|
});
|
|
40
40
|
};
|
|
41
|
+
const prepareImportCredentialSchema = data => {
|
|
42
|
+
if (!data || typeof data !== 'object') {
|
|
43
|
+
throw Error('Invalid credential schema data');
|
|
44
|
+
}
|
|
45
|
+
if ('formats' in data) {
|
|
46
|
+
// v2 schema: just return
|
|
47
|
+
return data;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// v1 schema: convert format
|
|
51
|
+
const schema = data;
|
|
52
|
+
const format = schema.format;
|
|
53
|
+
const schemaId = schema.schemaId;
|
|
54
|
+
const revocationMethod = schema.revocationMethod;
|
|
55
|
+
return {
|
|
56
|
+
...schema,
|
|
57
|
+
formats: [{
|
|
58
|
+
format,
|
|
59
|
+
schemaId
|
|
60
|
+
}],
|
|
61
|
+
allowRevocation: Boolean(revocationMethod)
|
|
62
|
+
};
|
|
63
|
+
};
|
|
41
64
|
export const useCredentialSchemaAccept = () => {
|
|
42
65
|
const queryClient = useQueryClient();
|
|
43
66
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useInfiniteQuery","useMutation","useQuery","useQueryClient","getQueryKeyFromCredentialSchemaListQueryParams","useHTTPClient","useONECore","HISTORY_LIST_QUERY_KEY","PAGE_SIZE","CREDENTIAL_SCHEMA_LIST_QUERY_KEY","CREDENTIAL_SCHEMA_DETAIL_QUERY_KEY","CREDENTIAL_SCHEMA_PREVIEW_QUERY_KEY","CREDENTIAL_SCHEMA_SHARE_QUERY_KEY","useCredentialSchemas","queryParams","core","organisationId","pageParam","listCredentialSchemas","page","pageSize","then","values","getNextPageParam","lastPage","allPages","length","undefined","keepPreviousData","useCredentialSchemaPreview","url","httpClient","get","response","ok","originalError","
|
|
1
|
+
{"version":3,"names":["useInfiniteQuery","useMutation","useQuery","useQueryClient","getQueryKeyFromCredentialSchemaListQueryParams","useHTTPClient","useONECore","HISTORY_LIST_QUERY_KEY","PAGE_SIZE","CREDENTIAL_SCHEMA_LIST_QUERY_KEY","CREDENTIAL_SCHEMA_DETAIL_QUERY_KEY","CREDENTIAL_SCHEMA_PREVIEW_QUERY_KEY","CREDENTIAL_SCHEMA_SHARE_QUERY_KEY","useCredentialSchemas","queryParams","core","organisationId","pageParam","listCredentialSchemas","page","pageSize","then","values","getNextPageParam","lastPage","allPages","length","undefined","keepPreviousData","useCredentialSchemaPreview","url","httpClient","get","response","ok","originalError","prepareImportCredentialSchema","data","Error","schema","format","schemaId","revocationMethod","formats","allowRevocation","Boolean","useCredentialSchemaAccept","queryClient","importCredentialSchema","onSuccess","invalidateQueries","useCredentialSchemaDetail","credentialId","active","getCredentialSchema","enabled","useCredentialSchemaDelete","credentialSchemaId","deleteCredentialSchema","_","removeQueries","useShareCredentialSchema","shareCredentialSchema","Promise","reject"],"sources":["credential-schemas.ts"],"sourcesContent":["import { CredentialSchemaListQuery, ImportCredentialSchemaRequestSchema } from '@procivis/react-native-one-core';\nimport { useInfiniteQuery, useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { getQueryKeyFromCredentialSchemaListQueryParams } from '../../parsers/query';\nimport { useHTTPClient } from '../http/client';\nimport { useONECore } from './core-context';\nimport { HISTORY_LIST_QUERY_KEY } from './history';\n\nconst PAGE_SIZE = 10;\nexport const CREDENTIAL_SCHEMA_LIST_QUERY_KEY = 'credential-schema-list';\nexport const CREDENTIAL_SCHEMA_DETAIL_QUERY_KEY = 'credential-schema-detail';\nexport const CREDENTIAL_SCHEMA_PREVIEW_QUERY_KEY = 'credential-schema-preview';\nexport const CREDENTIAL_SCHEMA_SHARE_QUERY_KEY = 'credential-schema-share';\n\nexport const useCredentialSchemas = (queryParams?: Partial<CredentialSchemaListQuery>) => {\n const { core, organisationId } = useONECore();\n\n return useInfiniteQuery(\n [CREDENTIAL_SCHEMA_LIST_QUERY_KEY, ...getQueryKeyFromCredentialSchemaListQueryParams(queryParams)],\n ({ pageParam = 0 }) =>\n core\n .listCredentialSchemas({\n organisationId,\n page: pageParam,\n pageSize: PAGE_SIZE,\n ...queryParams,\n })\n .then(({ values }) => values),\n {\n getNextPageParam: (lastPage, allPages) => (lastPage.length === PAGE_SIZE ? allPages.length : undefined),\n keepPreviousData: true,\n },\n );\n};\n\nexport const useCredentialSchemaPreview = (url: string) => {\n const httpClient = useHTTPClient();\n\n return useQuery(\n [CREDENTIAL_SCHEMA_PREVIEW_QUERY_KEY, url],\n () =>\n httpClient.get(url).then((response) => {\n if (!response.ok) {\n throw response.originalError;\n }\n return prepareImportCredentialSchema(response.data);\n }),\n {\n keepPreviousData: true,\n },\n );\n};\n\nconst prepareImportCredentialSchema = (data: unknown): ImportCredentialSchemaRequestSchema => {\n if (!data || typeof data !== 'object') {\n throw Error('Invalid credential schema data');\n }\n\n if ('formats' in data) {\n // v2 schema: just return\n return data as ImportCredentialSchemaRequestSchema;\n }\n\n // v1 schema: convert format\n const schema = data as Record<string, any>;\n const format = schema.format;\n const schemaId = schema.schemaId;\n const revocationMethod = schema.revocationMethod;\n return {\n ...schema,\n formats: [{ format, schemaId }],\n allowRevocation: Boolean(revocationMethod),\n } as unknown as ImportCredentialSchemaRequestSchema;\n};\n\nexport const useCredentialSchemaAccept = () => {\n const queryClient = useQueryClient();\n const { core, organisationId } = useONECore();\n\n return useMutation(\n async (schema: ImportCredentialSchemaRequestSchema) =>\n core.importCredentialSchema({\n organisationId,\n schema,\n }),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(CREDENTIAL_SCHEMA_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useCredentialSchemaDetail = (credentialId: string | undefined, active = true) => {\n const { core } = useONECore();\n\n return useQuery(\n [CREDENTIAL_SCHEMA_DETAIL_QUERY_KEY, credentialId],\n () => (credentialId ? core.getCredentialSchema(credentialId) : undefined),\n {\n enabled: active && Boolean(credentialId),\n keepPreviousData: true,\n },\n );\n};\n\nexport const useCredentialSchemaDelete = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(async (credentialSchemaId: string) => core.deleteCredentialSchema(credentialSchemaId), {\n onSuccess: async (_, credentialId) => {\n await queryClient.invalidateQueries(CREDENTIAL_SCHEMA_LIST_QUERY_KEY);\n await queryClient.removeQueries([CREDENTIAL_SCHEMA_DETAIL_QUERY_KEY, credentialId]);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n\nexport const useShareCredentialSchema = (schemaId?: string) => {\n const { core } = useONECore();\n\n return useQuery(\n [CREDENTIAL_SCHEMA_SHARE_QUERY_KEY, schemaId],\n () => (schemaId ? core.shareCredentialSchema(schemaId) : Promise.reject()),\n {\n enabled: Boolean(schemaId),\n keepPreviousData: true,\n },\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -40,6 +40,24 @@ export const useRegisterWalletUnit = () => {
|
|
|
40
40
|
}
|
|
41
41
|
});
|
|
42
42
|
};
|
|
43
|
+
export const useActivateWalletUnit = () => {
|
|
44
|
+
const queryClient = useQueryClient();
|
|
45
|
+
const {
|
|
46
|
+
core
|
|
47
|
+
} = useONECore();
|
|
48
|
+
return useMutation(async ({
|
|
49
|
+
id,
|
|
50
|
+
userIdToken
|
|
51
|
+
}) => core.holderActivateWalletUnit(id, {
|
|
52
|
+
keyType: 'ECDSA',
|
|
53
|
+
userIdToken
|
|
54
|
+
}), {
|
|
55
|
+
onSuccess: async () => {
|
|
56
|
+
await queryClient.invalidateQueries(WALLET_UNIT_QUERY_KEY);
|
|
57
|
+
await queryClient.invalidateQueries(WALLET_UNIT_TRUST_COLLECTIONS_QUERY_KEY);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
};
|
|
43
61
|
export const useWalletUnitStatus = () => {
|
|
44
62
|
const queryClient = useQueryClient();
|
|
45
63
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WalletUnitStatus","useEffect","useMutation","useQuery","useQueryClient","reportException","useONECore","WALLET_UNIT_QUERY_KEY","WALLET_UNIT_TRUST_COLLECTIONS_QUERY_KEY","useWalletUnitDetail","walletUnitId","active","core","holderGetWalletUnit","undefined","enabled","Boolean","keepPreviousData","useWalletUnitTrustCollections","holderGetWalletUnitTrustCollections","useRegisterWalletUnit","queryClient","organisationId","request","holderRegisterWalletUnit","keyType","onSuccess","invalidateQueries","useWalletUnitStatus","holderWalletUnitStatus","onError","err","useWalletUnitUpdate","update","holderWalletUnitUpdate","useWalletUnitCheck","data","walletUnitDetail","isLoading","mutateAsync","refreshWalletUnit","isRefreshing","status","refreshStatus","ACTIVE"],"sources":["wallet-unit.ts"],"sourcesContent":["import {\n HolderRegisterWalletUnitRequest,\n HolderWalletUnit,\n HolderWalletUnitUpdateRequest,\n WalletUnitStatus,\n} from '@procivis/react-native-one-core';\nimport { useEffect } from 'react';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { reportException } from '../../reporting';\nimport { useONECore } from './core-context';\n\nexport const WALLET_UNIT_QUERY_KEY = 'wallet-unit';\nexport const WALLET_UNIT_TRUST_COLLECTIONS_QUERY_KEY = 'wallet-unit-trust-collections';\n\nexport const useWalletUnitDetail = (walletUnitId: HolderWalletUnit['id'] | undefined, active = true) => {\n const { core } = useONECore();\n\n return useQuery(\n [WALLET_UNIT_QUERY_KEY, walletUnitId],\n () => (walletUnitId ? core.holderGetWalletUnit(walletUnitId) : undefined),\n {\n enabled: active && Boolean(walletUnitId),\n keepPreviousData: true,\n },\n );\n};\n\nexport const useWalletUnitTrustCollections = (walletUnitId: HolderWalletUnit['id'] | undefined, active = true) => {\n const { core } = useONECore();\n\n return useQuery(\n [WALLET_UNIT_TRUST_COLLECTIONS_QUERY_KEY, walletUnitId],\n () => (walletUnitId ? core.holderGetWalletUnitTrustCollections(walletUnitId) : undefined),\n {\n enabled: active && Boolean(walletUnitId),\n keepPreviousData: true,\n },\n );\n};\n\nexport const useRegisterWalletUnit = () => {\n const queryClient = useQueryClient();\n const { core, organisationId } = useONECore();\n\n return useMutation(\n async (request: Omit<HolderRegisterWalletUnitRequest, 'organisationId' | 'keyType'>) =>\n core.holderRegisterWalletUnit({\n keyType: 'ECDSA',\n organisationId,\n ...request,\n }),\n\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(WALLET_UNIT_QUERY_KEY);\n await queryClient.invalidateQueries(WALLET_UNIT_TRUST_COLLECTIONS_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useWalletUnitStatus = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(async (walletUnitId: HolderWalletUnit['id']) => core.holderWalletUnitStatus(walletUnitId), {\n onError: async (err) => {\n reportException(err, 'Refresh wallet unit failure');\n await queryClient.invalidateQueries(WALLET_UNIT_QUERY_KEY);\n },\n onSuccess: () => queryClient.invalidateQueries(WALLET_UNIT_QUERY_KEY),\n });\n};\n\nexport const useWalletUnitUpdate = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async ({ walletUnitId, update }: { walletUnitId: HolderWalletUnit['id']; update: HolderWalletUnitUpdateRequest }) =>\n core.holderWalletUnitUpdate(walletUnitId, update),\n {\n onError: async (err) => {\n reportException(err, 'Update wallet unit failure');\n await queryClient.invalidateQueries(WALLET_UNIT_QUERY_KEY);\n await queryClient.invalidateQueries(WALLET_UNIT_TRUST_COLLECTIONS_QUERY_KEY);\n },\n onSuccess: async () => {\n await queryClient.invalidateQueries(WALLET_UNIT_QUERY_KEY);\n await queryClient.invalidateQueries(WALLET_UNIT_TRUST_COLLECTIONS_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useWalletUnitCheck = (walletUnitId: HolderWalletUnit['id'] | undefined) => {\n const { data: walletUnitDetail, isLoading } = useWalletUnitDetail(walletUnitId);\n const { mutateAsync: refreshWalletUnit, isLoading: isRefreshing, status: refreshStatus } = useWalletUnitStatus();\n\n useEffect(() => {\n if (isLoading || refreshStatus !== 'idle') {\n return;\n }\n if (walletUnitId && walletUnitDetail?.status === WalletUnitStatus.ACTIVE) {\n void refreshWalletUnit(walletUnitId);\n }\n }, [isLoading, refreshStatus, walletUnitDetail, refreshWalletUnit, walletUnitId]);\n\n return {\n isLoading: isLoading || isRefreshing,\n walletUnitDetail: isLoading || isRefreshing ? undefined : walletUnitDetail,\n };\n};\n"],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"names":["WalletUnitStatus","useEffect","useMutation","useQuery","useQueryClient","reportException","useONECore","WALLET_UNIT_QUERY_KEY","WALLET_UNIT_TRUST_COLLECTIONS_QUERY_KEY","useWalletUnitDetail","walletUnitId","active","core","holderGetWalletUnit","undefined","enabled","Boolean","keepPreviousData","useWalletUnitTrustCollections","holderGetWalletUnitTrustCollections","useRegisterWalletUnit","queryClient","organisationId","request","holderRegisterWalletUnit","keyType","onSuccess","invalidateQueries","useActivateWalletUnit","id","userIdToken","holderActivateWalletUnit","useWalletUnitStatus","holderWalletUnitStatus","onError","err","useWalletUnitUpdate","update","holderWalletUnitUpdate","useWalletUnitCheck","data","walletUnitDetail","isLoading","mutateAsync","refreshWalletUnit","isRefreshing","status","refreshStatus","ACTIVE"],"sources":["wallet-unit.ts"],"sourcesContent":["import {\n HolderActivateWalletUnitRequest,\n HolderRegisterWalletUnitRequest,\n HolderWalletUnit,\n HolderWalletUnitUpdateRequest,\n WalletUnitStatus,\n} from '@procivis/react-native-one-core';\nimport { useEffect } from 'react';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { reportException } from '../../reporting';\nimport { useONECore } from './core-context';\n\nexport const WALLET_UNIT_QUERY_KEY = 'wallet-unit';\nexport const WALLET_UNIT_TRUST_COLLECTIONS_QUERY_KEY = 'wallet-unit-trust-collections';\n\nexport const useWalletUnitDetail = (walletUnitId: HolderWalletUnit['id'] | undefined, active = true) => {\n const { core } = useONECore();\n\n return useQuery(\n [WALLET_UNIT_QUERY_KEY, walletUnitId],\n () => (walletUnitId ? core.holderGetWalletUnit(walletUnitId) : undefined),\n {\n enabled: active && Boolean(walletUnitId),\n keepPreviousData: true,\n },\n );\n};\n\nexport const useWalletUnitTrustCollections = (walletUnitId: HolderWalletUnit['id'] | undefined, active = true) => {\n const { core } = useONECore();\n\n return useQuery(\n [WALLET_UNIT_TRUST_COLLECTIONS_QUERY_KEY, walletUnitId],\n () => (walletUnitId ? core.holderGetWalletUnitTrustCollections(walletUnitId) : undefined),\n {\n enabled: active && Boolean(walletUnitId),\n keepPreviousData: true,\n },\n );\n};\n\nexport const useRegisterWalletUnit = () => {\n const queryClient = useQueryClient();\n const { core, organisationId } = useONECore();\n\n return useMutation(\n async (request: Omit<HolderRegisterWalletUnitRequest, 'organisationId' | 'keyType'>) =>\n core.holderRegisterWalletUnit({\n keyType: 'ECDSA',\n organisationId,\n ...request,\n }),\n\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(WALLET_UNIT_QUERY_KEY);\n await queryClient.invalidateQueries(WALLET_UNIT_TRUST_COLLECTIONS_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useActivateWalletUnit = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async ({ id, userIdToken }: { id: string; userIdToken: HolderActivateWalletUnitRequest['userIdToken'] }) =>\n core.holderActivateWalletUnit(id, {\n keyType: 'ECDSA',\n userIdToken,\n }),\n\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(WALLET_UNIT_QUERY_KEY);\n await queryClient.invalidateQueries(WALLET_UNIT_TRUST_COLLECTIONS_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useWalletUnitStatus = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(async (walletUnitId: HolderWalletUnit['id']) => core.holderWalletUnitStatus(walletUnitId), {\n onError: async (err) => {\n reportException(err, 'Refresh wallet unit failure');\n await queryClient.invalidateQueries(WALLET_UNIT_QUERY_KEY);\n },\n onSuccess: () => queryClient.invalidateQueries(WALLET_UNIT_QUERY_KEY),\n });\n};\n\nexport const useWalletUnitUpdate = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async ({ walletUnitId, update }: { walletUnitId: HolderWalletUnit['id']; update: HolderWalletUnitUpdateRequest }) =>\n core.holderWalletUnitUpdate(walletUnitId, update),\n {\n onError: async (err) => {\n reportException(err, 'Update wallet unit failure');\n await queryClient.invalidateQueries(WALLET_UNIT_QUERY_KEY);\n await queryClient.invalidateQueries(WALLET_UNIT_TRUST_COLLECTIONS_QUERY_KEY);\n },\n onSuccess: async () => {\n await queryClient.invalidateQueries(WALLET_UNIT_QUERY_KEY);\n await queryClient.invalidateQueries(WALLET_UNIT_TRUST_COLLECTIONS_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useWalletUnitCheck = (walletUnitId: HolderWalletUnit['id'] | undefined) => {\n const { data: walletUnitDetail, isLoading } = useWalletUnitDetail(walletUnitId);\n const { mutateAsync: refreshWalletUnit, isLoading: isRefreshing, status: refreshStatus } = useWalletUnitStatus();\n\n useEffect(() => {\n if (isLoading || refreshStatus !== 'idle') {\n return;\n }\n if (walletUnitId && walletUnitDetail?.status === WalletUnitStatus.ACTIVE) {\n void refreshWalletUnit(walletUnitId);\n }\n }, [isLoading, refreshStatus, walletUnitDetail, refreshWalletUnit, walletUnitId]);\n\n return {\n isLoading: isLoading || isRefreshing,\n walletUnitDetail: isLoading || isRefreshing ? undefined : walletUnitDetail,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CredentialType } from '@procivis/react-native-one-core';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import { CredentialNoticeWarningIcon, CredentialWarningIcon, PurposeInfoIcon, Selector, SelectorStatus } from '../../ui-components';
|
|
3
4
|
import { concatTestID } from '../testID';
|
|
@@ -97,17 +98,15 @@ export const shareCredentialCardFromV2PresentationCredential = (credential, fail
|
|
|
97
98
|
var _credential$issuer, _credential$claims$ma;
|
|
98
99
|
const selectiveDisclosureSupported = supportsSelectiveDisclosure(credential ? {
|
|
99
100
|
...credential,
|
|
100
|
-
issuer: (_credential$issuer = credential.issuer) === null || _credential$issuer === void 0 ? void 0 : _credential$issuer.id
|
|
101
|
+
issuer: (_credential$issuer = credential.issuer) === null || _credential$issuer === void 0 ? void 0 : _credential$issuer.id,
|
|
102
|
+
type: CredentialType.SINGLE
|
|
101
103
|
} : undefined, config);
|
|
102
104
|
const notice = purpose ? {
|
|
103
105
|
noticeIcon: PurposeInfoIcon,
|
|
104
106
|
text: purpose
|
|
105
107
|
} : undefined;
|
|
106
108
|
const cardTestId = concatTestID(testID, 'card');
|
|
107
|
-
const card = credential ? validityCheckedCardFromCredential(
|
|
108
|
-
...credential,
|
|
109
|
-
claims: []
|
|
110
|
-
}, expanded, selectiveDisclosureSupported, multipleCredentialsAvailable, config, notice, cardTestId, labels, language) : missingCredentialCardFromFailureHint(failureHint, notice, cardTestId, labels);
|
|
109
|
+
const card = credential ? validityCheckedCardFromCredential(credential, expanded, selectiveDisclosureSupported, multipleCredentialsAvailable, config, notice, cardTestId, labels, language) : missingCredentialCardFromFailureHint(failureHint, notice, cardTestId, labels);
|
|
111
110
|
return {
|
|
112
111
|
attributes: (_credential$claims$ma = credential === null || credential === void 0 ? void 0 : credential.claims.map(v => shareCredentialCardAttributeFromV2Claim(v, selectedFields !== null && selectedFields !== void 0 ? selectedFields : [], true, false, config, testID, language))) !== null && _credential$claims$ma !== void 0 ? _credential$claims$ma : [],
|
|
113
112
|
card
|
|
@@ -117,7 +116,8 @@ export const selectCredentialCardFromV2Credential = (credential, selected, multi
|
|
|
117
116
|
var _credential$issuer2, _credential$claims$ma2;
|
|
118
117
|
const selectiveDisclosureSupported = supportsSelectiveDisclosure(credential ? {
|
|
119
118
|
...credential,
|
|
120
|
-
issuer: (_credential$issuer2 = credential.issuer) === null || _credential$issuer2 === void 0 ? void 0 : _credential$issuer2.id
|
|
119
|
+
issuer: (_credential$issuer2 = credential.issuer) === null || _credential$issuer2 === void 0 ? void 0 : _credential$issuer2.id,
|
|
120
|
+
type: CredentialType.SINGLE
|
|
121
121
|
} : undefined, config);
|
|
122
122
|
const selectedStatus = multiple ? SelectorStatus.SelectedCheckmark : SelectorStatus.SelectedRadio;
|
|
123
123
|
const rightAccessory = /*#__PURE__*/React.createElement(Selector, {
|
|
@@ -132,7 +132,8 @@ export const selectCredentialCardFromV2Credential = (credential, selected, multi
|
|
|
132
132
|
...cardProps
|
|
133
133
|
} = getCredentialCardPropsFromCredential({
|
|
134
134
|
...credential,
|
|
135
|
-
claims: credential.claims.map(v2PresentationClaimToClaim)
|
|
135
|
+
claims: credential.claims.map(v2PresentationClaimToClaim),
|
|
136
|
+
type: CredentialType.SINGLE
|
|
136
137
|
}, credential.claims.map(v2PresentationClaimToClaim), config, notice, testID, labels, language);
|
|
137
138
|
const card = {
|
|
138
139
|
header: {
|
|
@@ -1 +1 @@
|
|
|
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":[]}
|
|
1
|
+
{"version":3,"names":["CredentialType","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","type","SINGLE","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 CredentialType,\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, type: CredentialType.SINGLE } : 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 credential,\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, type: CredentialType.SINGLE } : 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 type: CredentialType.SINGLE,\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":"AAAA,SAKEA,cAAc,QAIT,iCAAiC;AACxC,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAIEC,2BAA2B,EAC3BC,qBAAqB,EACrBC,eAAe,EACfC,QAAQ,EACRC,cAAc,QACT,qBAAqB;AAC5B,SAASC,YAAY,QAAQ,WAAW;AACxC,SAEEC,6BAA6B,EAC7BC,oCAAoC,EACpCC,2BAA2B,QACtB,GAAG;AACV,SAAoCC,iCAAiC,QAAQ,sBAAsB;AAEnG,MAAMC,wBAAwB,GAAIC,KAAyC,IAAiB;EAC1F,IAAIA,KAAK,CAACC,KAAK,KAAK,QAAQ,EAAE;IAC5B,OAAOD,KAAK;EACd;EACA,OAAO;IACLC,KAAK,EAAE,QAAQ;IACfD,KAAK,EAAEA,KAAK,CAACA,KAAK,CAACE,GAAG,CAAEC,CAAC,IAAKC,0BAA0B,CAACD,CAAC,CAAC;EAC7D,CAAC;AACH,CAAC;AAED,MAAMC,0BAA0B,GAAIC,KAAoC,IAAY;EAClF,OAAO;IACLC,MAAM,EAAED,KAAK,CAACC,MAAM;IACpBC,IAAI,EAAEF,KAAK,CAACE,IAAI;IAChBP,KAAK,EAAED,wBAAwB,CAACM,KAAK,CAACL,KAAK;EAC7C,CAAC;AACH,CAAC;AAED,MAAMQ,0BAA0B,GAAGA,CACjCH,KAAoC,EACpCI,QAAiB,EACjBC,KAAc,KACiB;EAC/B,IAAIL,KAAK,CAACM,QAAQ,IAAIF,QAAQ,EAAE;IAC9B,OAAOhB,cAAc,CAACmB,QAAQ;EAChC;EACA,IAAIF,KAAK,EAAE;IACT,OAAOjB,cAAc,CAACmB,QAAQ;EAChC;EACA,IAAIP,KAAK,CAACQ,aAAa,EAAE;IACvB,IAAIJ,QAAQ,EAAE;MACZ,OAAOhB,cAAc,CAACqB,iBAAiB;IACzC,CAAC,MAAM;MACL,OAAOrB,cAAc,CAACsB,KAAK;IAC7B;EACF;AACF,CAAC;AAED,OAAO,MAAMC,uCAAuC,GAAGA,CACrDX,KAAoC,EACpCY,SAA+B,EAC/BC,YAAqB,EACrBC,kBAA2B,EAC3BC,MAAkB,EAClBC,MAAc,EACdC,QAA4B,EAC5BC,MAAgB,EAChBC,SAAmB,KACK;EACxB,MAAMC,eAAe,GACnBC,OAAO,CAACT,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEU,IAAI,CAAEpB,IAAI,IAAKA,IAAI,CAACqB,UAAU,CAACvB,KAAK,CAACE,IAAI,CAAC,CAAC,CAAC,IAAKW,YAAY,IAAIb,KAAK,CAACM,QAAS;EACrG,MAAMkB,YAAY,GAAGV,kBAAkB,IAAIO,OAAO,CAACT,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEa,QAAQ,CAACzB,KAAK,CAACE,IAAI,CAAC,CAAC;EACnF,MAAME,QAAQ,GAAG,CAACJ,KAAK,CAACM,QAAQ,IAAIc,eAAe;EACnD,MAAMM,MAAM,GAAGd,SAAS,GACpBT,0BAA0B,CAACH,KAAK,EAAEoB,eAAe,EAAEN,kBAAkB,IAAKM,eAAe,IAAI,CAACI,YAAa,CAAC,GAC5GG,SAAS;EACb,MAAMC,SAAS,GAAGtC,6BAA6B,CAACS,0BAA0B,CAACC,KAAK,CAAC,EAAEe,MAAM,EAAEC,MAAM,EAAEC,QAAQ,CAAC;EAC5G,MAAMY,cAAc,GAAG,CAACzC,cAAc,CAAC0C,QAAQ,EAAE1C,cAAc,CAAC2C,QAAQ,EAAE3C,cAAc,CAACmB,QAAQ,CAAC;EAClG,MAAMyB,QAAQ,GAAGJ,SAAS,CAACI,QAAQ,IAAI,CAACN,MAAM,IAAIG,cAAc,CAACJ,QAAQ,CAACC,MAAM,CAAC;EACjF,MAAMO,mBAAwC,GAAG;IAC/C,GAAGL,SAAS;IACZI,QAAQ;IACRE,EAAE,EAAElC,KAAK,CAACE,IAAI;IACdiB,SAAS;IACTD,MAAM;IACNhB,IAAI,EAAEF,KAAK,CAACE,IAAI;IAChBiC,cAAc,EAAET,MAAM,iBAAI3C,KAAA,CAAAqD,aAAA,CAACjD,QAAQ;MAACuC,MAAM,EAAEA;IAAO,CAAE,CAAC;IACtDtB,QAAQ;IACRY;EACF,CAAC;EACD,IAAIhB,KAAK,CAACL,KAAK,CAACC,KAAK,KAAK,QAAQ,EAAE;IAClC,IAAII,KAAK,CAACC,MAAM,CAACoC,KAAK,EAAE;MACtB,OAAO;QACL,GAAGJ,mBAAmB;QACtBK,UAAU,EAAEX,SAAS;QACrBY,KAAK,EAAEZ,SAAS;QAChBhC,KAAK,EAAEgC,SAAS;QAChBa,MAAM,EAAExC,KAAK,CAACL,KAAK,CAACA,KAAK,CAACE,GAAG,CAAE4C,CAAC,IAC9B9B,uCAAuC,CACrC8B,CAAC,EACD7B,SAAS,EACTQ,eAAe,EACfI,YAAY,EACZT,MAAM,EACNC,MAAM,EACNC,QAAQ,EACR,IAAI,EACJ,KACF,CACF;MACF,CAAC;IACH,CAAC,MAAM,IAAIjB,KAAK,CAACC,MAAM,CAACyC,QAAQ,KAAK,QAAQ,EAAE;MAC7C,OAAO;QACL,GAAGT,mBAAmB;QACtBK,UAAU,EAAEtC,KAAK,CAACL,KAAK,CAACA,KAAK,CAACE,GAAG,CAAE4C,CAAC,IAClC9B,uCAAuC,CACrC8B,CAAC,EACD7B,SAAS,EACTQ,eAAe,EACfI,YAAY,EACZT,MAAM,EACNC,MAAM,EACNC,QAAQ,EACR,IACF,CACF,CAAC;QACDsB,KAAK,EAAEZ,SAAS;QAChBhC,KAAK,EAAEgC,SAAS;QAChBgB,eAAe,EAAEhB,SAAS;QAC1Ba,MAAM,EAAEb;MACV,CAAC;IACH;EACF;EACA,OAAOM,mBAAmB;AAC5B,CAAC;AAED,OAAO,MAAMW,oCAAoC,GAAGA,CAClDC,WAAmD,EACnDC,MAAwC,EACxC9B,MAAc,EACd+B,MAAiC,KACkC;EAAA,IAAAC,qBAAA,EAAAC,sBAAA;EACnE,OAAO;IACLC,SAAS,EAAEvB,SAAS;IACpBwB,KAAK,EAAExB,SAAS;IAChByB,MAAM,EAAE;MACNC,0BAA0B,EAAE,IAAI;MAChCC,uBAAuB,EAAEP,MAAM,CAACQ,iBAAiB;MACjDC,sBAAsB,EAAEnE,YAAY,CAAC2B,MAAM,EAAE,gBAAgB,CAAC;MAC9DyC,cAAc,GAAAT,qBAAA,GAAEH,WAAW,aAAXA,WAAW,gBAAAI,sBAAA,GAAXJ,WAAW,CAAEa,gBAAgB,cAAAT,sBAAA,uBAA7BA,sBAAA,CAA+BU,IAAI,cAAAX,qBAAA,cAAAA,qBAAA,GAAI,EAAE;MACzDY,UAAU,EAAE3E;IACd,CAAC;IACD+B,MAAM;IACN,GAAG8B;EACL,CAAC;AACH,CAAC;AAED,OAAO,MAAMe,+CAA+C,GAAGA,CAC7DC,UAA0D,EAC1DjB,WAAmD,EACnDkB,QAAiB,EACjBC,4BAAqC,EACrCC,OAA2B,EAC3BC,cAAoC,EACpCnD,MAAkB,EAClBC,MAAc,EACd+B,MAAiC,EACjC9B,QAA4B,KACe;EAAA,IAAAkD,kBAAA,EAAAC,qBAAA;EAC3C,MAAMC,4BAA4B,GAAG7E,2BAA2B,CAC9DsE,UAAU,GAAG;IAAE,GAAGA,UAAU;IAAEQ,MAAM,GAAAH,kBAAA,GAAEL,UAAU,CAACQ,MAAM,cAAAH,kBAAA,uBAAjBA,kBAAA,CAAmBjC,EAAE;IAAEqC,IAAI,EAAEzF,cAAc,CAAC0F;EAAO,CAAC,GAAG7C,SAAS,EACtGZ,MACF,CAAC;EACD,MAAM+B,MAAwC,GAAGmB,OAAO,GACpD;IACEQ,UAAU,EAAEvF,eAAe;IAC3BwF,IAAI,EAAET;EACR,CAAC,GACDtC,SAAS;EACb,MAAMgD,UAAU,GAAGtF,YAAY,CAAC2B,MAAM,EAAE,MAAM,CAAC;EAC/C,MAAM4D,IAAI,GAAGd,UAAU,GACnBrE,iCAAiC,CAC/BqE,UAAU,EACVC,QAAQ,EACRM,4BAA4B,EAC5BL,4BAA4B,EAC5BjD,MAAM,EACN+B,MAAM,EACN6B,UAAU,EACV5B,MAAM,EACN9B,QACF,CAAC,GACD2B,oCAAoC,CAACC,WAAW,EAAEC,MAAM,EAAE6B,UAAU,EAAE5B,MAAM,CAAC;EAEjF,OAAO;IACLT,UAAU,GAAA8B,qBAAA,GACRN,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEe,MAAM,CAAChF,GAAG,CAAE4C,CAAC,IACvB9B,uCAAuC,CAAC8B,CAAC,EAAEyB,cAAc,aAAdA,cAAc,cAAdA,cAAc,GAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAEnD,MAAM,EAAEC,MAAM,EAAEC,QAAQ,CACxG,CAAC,cAAAmD,qBAAA,cAAAA,qBAAA,GAAI,EAAE;IACTQ;EACF,CAAC;AACH,CAAC;AAED,OAAO,MAAME,oCAAoC,GAAGA,CAClDhB,UAA8C,EAC9C1D,QAAiB,EACjB2E,QAAiB,EACjBhE,MAAkB,EAClBC,MAAc,EACd+B,MAAiC,EACjC9B,QAA4B,KACe;EAAA,IAAA+D,mBAAA,EAAAC,sBAAA;EAC3C,MAAMZ,4BAA4B,GAAG7E,2BAA2B,CAC9DsE,UAAU,GAAG;IAAE,GAAGA,UAAU;IAAEQ,MAAM,GAAAU,mBAAA,GAAElB,UAAU,CAACQ,MAAM,cAAAU,mBAAA,uBAAjBA,mBAAA,CAAmB9C,EAAE;IAAEqC,IAAI,EAAEzF,cAAc,CAAC0F;EAAO,CAAC,GAAG7C,SAAS,EACtGZ,MACF,CAAC;EACD,MAAMmE,cAAc,GAAGH,QAAQ,GAAG3F,cAAc,CAACqB,iBAAiB,GAAGrB,cAAc,CAAC+F,aAAa;EACjG,MAAMhD,cAAc,gBAAGpD,KAAA,CAAAqD,aAAA,CAACjD,QAAQ;IAACuC,MAAM,EAAEtB,QAAQ,GAAG8E,cAAc,GAAG9F,cAAc,CAACsB;EAAM,CAAE,CAAC;EAC7F,MAAMoC,MAAwC,GAC5CuB,4BAA4B,KAAK,KAAK,GAClC;IACEI,UAAU,EAAEzF,2BAA2B;IACvC0F,IAAI,EAAE3B,MAAM,CAACqC;EACf,CAAC,GACDzD,SAAS;EACf,MAAM;IAAEyB,MAAM;IAAE,GAAGiC;EAAU,CAAC,GAAG9F,oCAAoC,CACnE;IACE,GAAGuE,UAAU;IACbe,MAAM,EAAEf,UAAU,CAACe,MAAM,CAAChF,GAAG,CAACE,0BAA0B,CAAC;IACzDwE,IAAI,EAAEzF,cAAc,CAAC0F;EACvB,CAAC,EACDV,UAAU,CAACe,MAAM,CAAChF,GAAG,CAACE,0BAA0B,CAAC,EACjDgB,MAAM,EACN+B,MAAM,EACN9B,MAAM,EACN+B,MAAM,EACN9B,QACF,CAAC;EACD,MAAM2D,IAAI,GAAG;IACXxB,MAAM,EAAE;MACN,GAAGA,MAAM;MACTkC,SAAS,EAAEnD;IACb,CAAC;IACD,GAAGkD;EACL,CAAC;EACD,OAAO;IACL/C,UAAU,GAAA2C,sBAAA,GACRnB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEe,MAAM,CAAChF,GAAG,CAAE4C,CAAC,IACvB9B,uCAAuC,CAAC8B,CAAC,EAAEd,SAAS,EAAE,KAAK,EAAE,KAAK,EAAEZ,MAAM,EAAEC,MAAM,EAAEC,QAAQ,CAC9F,CAAC,cAAAgE,sBAAA,cAAAA,sBAAA,GAAI,EAAE;IACTL;EACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMW,+BAA+B,GAAIvF,KAAoC,IAAe;EACjG,IAAIA,KAAK,CAACL,KAAK,CAACC,KAAK,KAAK,QAAQ,EAAE;IAClC,OAAO,CAACI,KAAK,CAACE,IAAI,CAAC;EACrB;EACA,OAAO,CAACF,KAAK,CAACE,IAAI,EAAE,GAAGF,KAAK,CAACL,KAAK,CAACA,KAAK,CAAC6F,OAAO,CAACD,+BAA+B,CAAC,CAAC;AACpF,CAAC;AAED,OAAO,MAAME,6BAA6B,GAAI3B,UAA8C,IAAe;EACzG,OAAOA,UAAU,CAACe,MAAM,CAACW,OAAO,CAACD,+BAA+B,CAAC;AACnE,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { CredentialType } from '@procivis/react-native-one-core';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import { Selector, SelectorStatus } from '../../ui-components/credential';
|
|
3
4
|
import { CredentialNoticeWarningIcon, CredentialWarningIcon, RequiredAttributeIcon } from '../../ui-components/icons';
|
|
4
5
|
import { concatTestID } from '../testID';
|
|
5
|
-
import { detailsCardAttributeFromClaim, getCredentialCardPropsFromCredential, getValidityState, nestAttributes, supportsSelectiveDisclosure, ValidityState } from './credential';
|
|
6
|
+
import { credentialDetailFromPresentationV2Credential, detailsCardAttributeFromClaim, getCredentialCardPropsFromCredential, getValidityState, nestAttributes, supportsSelectiveDisclosure, ValidityState } from './credential';
|
|
6
7
|
export const validityCheckedCardFromCredential = (credential, expanded, selectiveDisclosureSupported, multipleCredentialsAvailable, config, notice, testID, labels, language) => {
|
|
7
8
|
let credentialHeaderDetail;
|
|
8
9
|
if (selectiveDisclosureSupported === false) {
|
|
@@ -11,6 +12,12 @@ export const validityCheckedCardFromCredential = (credential, expanded, selectiv
|
|
|
11
12
|
credentialDetailTestID: concatTestID(testID, 'header.nonSelectiveDisclosure'),
|
|
12
13
|
statusIcon: CredentialWarningIcon
|
|
13
14
|
};
|
|
15
|
+
} else if ('embeddedDisclosurePolicyViolation' in credential) {
|
|
16
|
+
credentialHeaderDetail = {
|
|
17
|
+
credentialDetailPrimary: labels.disclosurePolicyViolation,
|
|
18
|
+
credentialDetailTestID: concatTestID(testID, 'header.dislosurePolicyViolation'),
|
|
19
|
+
statusIcon: CredentialWarningIcon
|
|
20
|
+
};
|
|
14
21
|
} else if (!expanded && multipleCredentialsAvailable) {
|
|
15
22
|
credentialHeaderDetail = {
|
|
16
23
|
credentialDetailPrimary: labels.multipleCredentials,
|
|
@@ -18,7 +25,7 @@ export const validityCheckedCardFromCredential = (credential, expanded, selectiv
|
|
|
18
25
|
statusIcon: CredentialWarningIcon
|
|
19
26
|
};
|
|
20
27
|
}
|
|
21
|
-
const card = getCredentialCardPropsFromCredential(credential, credential.claims, config, notice, testID, labels, language);
|
|
28
|
+
const card = getCredentialCardPropsFromCredential(credentialDetailFromPresentationV2Credential(credential), credential.claims, config, notice, testID, labels, language);
|
|
22
29
|
return {
|
|
23
30
|
...card,
|
|
24
31
|
header: {
|
|
@@ -162,18 +169,17 @@ const setStatusForNestedObjectOrArrayFields = (attribute, status, disabled) => {
|
|
|
162
169
|
}
|
|
163
170
|
};
|
|
164
171
|
export const shareCredentialCardFromCredential = (credential, expanded, multipleCredentialsAvailable, request, selectedFields, config, testID, labels, language) => {
|
|
165
|
-
var _credential$issuer
|
|
166
|
-
const
|
|
172
|
+
var _credential$issuer;
|
|
173
|
+
const credentialAsListItem = credential ? {
|
|
174
|
+
type: CredentialType.SINGLE,
|
|
167
175
|
...credential,
|
|
168
176
|
issuer: (_credential$issuer = credential.issuer) === null || _credential$issuer === void 0 ? void 0 : _credential$issuer.id
|
|
169
|
-
} : undefined
|
|
177
|
+
} : undefined;
|
|
178
|
+
const selectiveDisclosureSupported = supportsSelectiveDisclosure(credentialAsListItem, config);
|
|
170
179
|
const cardTestId = concatTestID(testID, 'card');
|
|
171
180
|
const card = credential ? validityCheckedCardFromCredential(credential, expanded, selectiveDisclosureSupported, multipleCredentialsAvailable, config, undefined, cardTestId, labels, language) : missingCredentialCardFromRequest(request, undefined, cardTestId, labels);
|
|
172
|
-
const validityState = getValidityState(
|
|
173
|
-
|
|
174
|
-
issuer: (_credential$issuer2 = credential.issuer) === null || _credential$issuer2 === void 0 ? void 0 : _credential$issuer2.id
|
|
175
|
-
} : undefined);
|
|
176
|
-
const displayedAttributes = getDisplayedAttributes(request, validityState, credential, selectiveDisclosureSupported, selectedFields);
|
|
181
|
+
const validityState = getValidityState(credentialAsListItem);
|
|
182
|
+
const displayedAttributes = getDisplayedAttributes(request, validityState, credential ? credentialDetailFromPresentationV2Credential(credential) : undefined, selectiveDisclosureSupported, selectedFields);
|
|
177
183
|
const attributes = displayedAttributes.map(({
|
|
178
184
|
claim,
|
|
179
185
|
field,
|
|
@@ -205,10 +211,10 @@ export const selectCredentialCardAttributeFromClaim = (id, config, testID, label
|
|
|
205
211
|
};
|
|
206
212
|
};
|
|
207
213
|
export const selectCredentialCardFromCredential = (credential, selected, request, config, testID, labels, language) => {
|
|
208
|
-
var _credential$
|
|
214
|
+
var _credential$issuer2;
|
|
209
215
|
const selectiveDisclosureSupported = supportsSelectiveDisclosure(credential ? {
|
|
210
216
|
...credential,
|
|
211
|
-
issuer: (_credential$
|
|
217
|
+
issuer: (_credential$issuer2 = credential.issuer) === null || _credential$issuer2 === void 0 ? void 0 : _credential$issuer2.id
|
|
212
218
|
} : undefined, config);
|
|
213
219
|
const rightAccessory = /*#__PURE__*/React.createElement(Selector, {
|
|
214
220
|
status: selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty
|
|
@@ -1 +1 @@
|
|
|
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
|
+
{"version":3,"names":["CredentialType","React","Selector","SelectorStatus","CredentialNoticeWarningIcon","CredentialWarningIcon","RequiredAttributeIcon","concatTestID","credentialDetailFromPresentationV2Credential","detailsCardAttributeFromClaim","getCredentialCardPropsFromCredential","getValidityState","nestAttributes","supportsSelectiveDisclosure","ValidityState","validityCheckedCardFromCredential","credential","expanded","selectiveDisclosureSupported","multipleCredentialsAvailable","config","notice","testID","labels","language","credentialHeaderDetail","credentialDetailPrimary","selectiveDisclosure","credentialDetailTestID","statusIcon","disclosurePolicyViolation","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","credentialAsListItem","type","SINGLE","issuer","cardTestId","displayedAttributes","index","selectCredentialCardAttributeFromClaim","selectCredentialCardFromCredential","_credential$issuer2","SelectedRadio","text","noticeIcon","cardProps"],"sources":["credential-sharing.tsx"],"sourcesContent":["import {\n Claim,\n CoreConfig,\n CredentialDetail,\n CredentialListItem,\n CredentialType,\n PresentationDefinitionField,\n PresentationDefinitionRequestedCredential,\n PresentationDefinitionV2Credential,\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 credentialDetailFromPresentationV2Credential,\n CredentialDetailsCardPropsWithoutWidth,\n detailsCardAttributeFromClaim,\n getCredentialCardPropsFromCredential,\n getValidityState,\n nestAttributes,\n supportsSelectiveDisclosure,\n ValidityState,\n} from './credential';\n\nexport const validityCheckedCardFromCredential = (\n credential: CredentialDetail | PresentationDefinitionV2Credential,\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 ('embeddedDisclosurePolicyViolation' in credential) {\n credentialHeaderDetail = {\n credentialDetailPrimary: labels.disclosurePolicyViolation,\n credentialDetailTestID: concatTestID(testID, 'header.dislosurePolicyViolation'),\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 credentialDetailFromPresentationV2Credential(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 disclosurePolicyViolation: string;\n};\n\nexport const shareCredentialCardFromCredential = (\n credential: CredentialDetail | PresentationDefinitionV2Credential | 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 credentialAsListItem: CredentialListItem | undefined = credential\n ? { type: CredentialType.SINGLE, ...credential, issuer: credential.issuer?.id }\n : undefined;\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(credentialAsListItem, config);\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(credentialAsListItem);\n const displayedAttributes = getDisplayedAttributes(\n request,\n validityState,\n credential ? credentialDetailFromPresentationV2Credential(credential) : undefined,\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,4 +1,4 @@
|
|
|
1
|
-
import { CredentialState, DataType, FormatFeature } from '@procivis/react-native-one-core';
|
|
1
|
+
import { CredentialState, CredentialType, DataType, FormatFeature } from '@procivis/react-native-one-core';
|
|
2
2
|
import { CredentialErrorIcon, CredentialNoticeInfoIcon, CredentialNoticeWarningIcon, CredentialWarningIcon } from '../../ui-components/icons';
|
|
3
3
|
import { formatDateLocalized, formatDateTimeLocalized } from '../date';
|
|
4
4
|
import { concatTestID } from '../testID';
|
|
@@ -103,7 +103,7 @@ export const cardHeaderFromCredential = (credential, claims = [], config, testID
|
|
|
103
103
|
const {
|
|
104
104
|
layoutProperties
|
|
105
105
|
} = credential.schema;
|
|
106
|
-
const defaultLanguage = config.defaultLanguage;
|
|
106
|
+
const defaultLanguage = config.globalSettings.defaultLanguage;
|
|
107
107
|
return {
|
|
108
108
|
color: layoutProperties === null || layoutProperties === void 0 || (_layoutProperties$log = layoutProperties.logo) === null || _layoutProperties$log === void 0 ? void 0 : _layoutProperties$log.backgroundColor,
|
|
109
109
|
credentialDetailErrorColor,
|
|
@@ -126,7 +126,7 @@ export const getCredentialCardPropsFromCredential = (credential, claims = [], co
|
|
|
126
126
|
const {
|
|
127
127
|
layoutProperties
|
|
128
128
|
} = credential.schema;
|
|
129
|
-
const defaultLanguage = config.defaultLanguage;
|
|
129
|
+
const defaultLanguage = config.globalSettings.defaultLanguage;
|
|
130
130
|
if (hasMsoValidityIssues(credential)) {
|
|
131
131
|
notice = {
|
|
132
132
|
text: labels.validityIssuesNotice,
|
|
@@ -159,7 +159,7 @@ export const getCredentialCardPropsFromCredential = (credential, claims = [], co
|
|
|
159
159
|
export const detailsCardAttributeFromClaim = (claim, config, testID, language) => {
|
|
160
160
|
var _getTranslatedLabel2;
|
|
161
161
|
const value = detailsCardAttributeValueFromClaim(claim, config, testID, language);
|
|
162
|
-
const defaultLanguage = config.defaultLanguage;
|
|
162
|
+
const defaultLanguage = config.globalSettings.defaultLanguage;
|
|
163
163
|
return {
|
|
164
164
|
id: claim.path,
|
|
165
165
|
name: (_getTranslatedLabel2 = getTranslatedLabel(claim.schema.translations.name, language, defaultLanguage)) !== null && _getTranslatedLabel2 !== void 0 ? _getTranslatedLabel2 : claim.path.split('/').pop(),
|
|
@@ -344,4 +344,10 @@ export function getCredentialSchemaWithoutImages(credentialSchema) {
|
|
|
344
344
|
}
|
|
345
345
|
};
|
|
346
346
|
}
|
|
347
|
+
export function credentialDetailFromPresentationV2Credential(presentationCredential) {
|
|
348
|
+
return {
|
|
349
|
+
type: CredentialType.SINGLE,
|
|
350
|
+
...presentationCredential
|
|
351
|
+
};
|
|
352
|
+
}
|
|
347
353
|
//# sourceMappingURL=credential.js.map
|