@procivis/one-react-native-components 0.3.142 → 0.3.147

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/lib/commonjs/components/proof-request/index.js +1 -12
  2. package/lib/commonjs/components/proof-request/index.js.map +1 -1
  3. package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js +6 -3
  4. package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
  5. package/lib/commonjs/components/proof-request/v2/share-credential-v2.js.map +1 -1
  6. package/lib/commonjs/ui-components/credential/card/credential-header.js +8 -38
  7. package/lib/commonjs/ui-components/credential/card/credential-header.js.map +1 -1
  8. package/lib/commonjs/ui-components/credential/card/credential-logo.js +71 -0
  9. package/lib/commonjs/ui-components/credential/card/credential-logo.js.map +1 -0
  10. package/lib/commonjs/ui-components/credential/card/index.js +7 -0
  11. package/lib/commonjs/ui-components/credential/card/index.js.map +1 -1
  12. package/lib/commonjs/ui-components/input/selection-input.js +69 -53
  13. package/lib/commonjs/ui-components/input/selection-input.js.map +1 -1
  14. package/lib/commonjs/ui-components/text/index.js +1 -9
  15. package/lib/commonjs/ui-components/text/index.js.map +1 -1
  16. package/lib/commonjs/utils/hooks/core/proofs.js +1 -1
  17. package/lib/commonjs/utils/hooks/core/proofs.js.map +1 -1
  18. package/lib/commonjs/utils/hooks/core/transaction.js +20 -0
  19. package/lib/commonjs/utils/hooks/core/transaction.js.map +1 -0
  20. package/lib/commonjs/utils/parsers/credential-sharing-v2.js +34 -3
  21. package/lib/commonjs/utils/parsers/credential-sharing-v2.js.map +1 -1
  22. package/lib/commonjs/utils/parsers/credential.js +22 -14
  23. package/lib/commonjs/utils/parsers/credential.js.map +1 -1
  24. package/lib/commonjs/utils/parsers/index.js +0 -11
  25. package/lib/commonjs/utils/parsers/index.js.map +1 -1
  26. package/lib/commonjs/utils/parsers/query.js +2 -2
  27. package/lib/commonjs/utils/parsers/query.js.map +1 -1
  28. package/lib/module/components/proof-request/index.js +0 -1
  29. package/lib/module/components/proof-request/index.js.map +1 -1
  30. package/lib/module/components/proof-request/v2/share-credential-v2-group.js +6 -3
  31. package/lib/module/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
  32. package/lib/module/components/proof-request/v2/share-credential-v2.js.map +1 -1
  33. package/lib/module/ui-components/credential/card/credential-header.js +8 -38
  34. package/lib/module/ui-components/credential/card/credential-header.js.map +1 -1
  35. package/lib/module/ui-components/credential/card/credential-logo.js +64 -0
  36. package/lib/module/ui-components/credential/card/credential-logo.js.map +1 -0
  37. package/lib/module/ui-components/credential/card/index.js +2 -0
  38. package/lib/module/ui-components/credential/card/index.js.map +1 -1
  39. package/lib/module/ui-components/input/selection-input.js +70 -54
  40. package/lib/module/ui-components/input/selection-input.js.map +1 -1
  41. package/lib/module/ui-components/text/index.js +2 -2
  42. package/lib/module/ui-components/text/index.js.map +1 -1
  43. package/lib/module/utils/hooks/core/proofs.js +1 -1
  44. package/lib/module/utils/hooks/core/proofs.js.map +1 -1
  45. package/lib/module/utils/hooks/core/transaction.js +13 -0
  46. package/lib/module/utils/hooks/core/transaction.js.map +1 -0
  47. package/lib/module/utils/parsers/credential-sharing-v2.js +31 -1
  48. package/lib/module/utils/parsers/credential-sharing-v2.js.map +1 -1
  49. package/lib/module/utils/parsers/credential.js +20 -13
  50. package/lib/module/utils/parsers/credential.js.map +1 -1
  51. package/lib/module/utils/parsers/index.js +0 -1
  52. package/lib/module/utils/parsers/index.js.map +1 -1
  53. package/lib/module/utils/parsers/query.js +2 -2
  54. package/lib/module/utils/parsers/query.js.map +1 -1
  55. package/lib/typescript/components/proof-request/index.d.ts +0 -1
  56. package/lib/typescript/components/proof-request/v2/share-credential-v2-group.d.ts +8 -1
  57. package/lib/typescript/components/proof-request/v2/share-credential-v2.d.ts +1 -1
  58. package/lib/typescript/ui-components/credential/card/credential-logo.d.ts +17 -0
  59. package/lib/typescript/ui-components/credential/card/index.d.ts +3 -0
  60. package/lib/typescript/ui-components/input/selection-input.d.ts +3 -7
  61. package/lib/typescript/ui-components/text/index.d.ts +2 -1
  62. package/lib/typescript/ui-components/text/typography.d.ts +13 -13
  63. package/lib/typescript/utils/hooks/core/proofs.d.ts +2 -2
  64. package/lib/typescript/utils/hooks/core/transaction.d.ts +2 -0
  65. package/lib/typescript/utils/parsers/credential-sharing-v2.d.ts +10 -2
  66. package/lib/typescript/utils/parsers/credential.d.ts +2 -1
  67. package/lib/typescript/utils/parsers/index.d.ts +0 -1
  68. package/package.json +7 -4
  69. package/src/components/proof-request/index.ts +0 -1
  70. package/src/components/proof-request/v2/share-credential-v2-group.tsx +12 -2
  71. package/src/components/proof-request/v2/share-credential-v2.tsx +1 -1
  72. package/src/ui-components/credential/card/credential-header.tsx +9 -37
  73. package/src/ui-components/credential/card/credential-logo.stories.tsx +45 -0
  74. package/src/ui-components/credential/card/credential-logo.tsx +79 -0
  75. package/src/ui-components/credential/card/index.ts +5 -8
  76. package/src/ui-components/input/selection-input.tsx +85 -65
  77. package/src/ui-components/text/index.ts +2 -1
  78. package/src/utils/hooks/core/proofs.ts +3 -3
  79. package/src/utils/hooks/core/transaction.ts +18 -0
  80. package/src/utils/parsers/credential-sharing-v2.tsx +70 -1
  81. package/src/utils/parsers/credential.ts +27 -13
  82. package/src/utils/parsers/index.ts +0 -1
  83. package/src/utils/parsers/query.ts +1 -1
  84. package/lib/commonjs/components/proof-request/v1/group.js +0 -35
  85. package/lib/commonjs/components/proof-request/v1/group.js.map +0 -1
  86. package/lib/commonjs/components/proof-request/v1/index.js +0 -39
  87. package/lib/commonjs/components/proof-request/v1/index.js.map +0 -1
  88. package/lib/commonjs/components/proof-request/v1/select-credential.js +0 -53
  89. package/lib/commonjs/components/proof-request/v1/select-credential.js.map +0 -1
  90. package/lib/commonjs/components/proof-request/v1/share-credential.js +0 -110
  91. package/lib/commonjs/components/proof-request/v1/share-credential.js.map +0 -1
  92. package/lib/commonjs/utils/parsers/credential-sharing.js +0 -269
  93. package/lib/commonjs/utils/parsers/credential-sharing.js.map +0 -1
  94. package/lib/module/components/proof-request/v1/group.js +0 -27
  95. package/lib/module/components/proof-request/v1/group.js.map +0 -1
  96. package/lib/module/components/proof-request/v1/index.js +0 -4
  97. package/lib/module/components/proof-request/v1/index.js.map +0 -1
  98. package/lib/module/components/proof-request/v1/select-credential.js +0 -44
  99. package/lib/module/components/proof-request/v1/select-credential.js.map +0 -1
  100. package/lib/module/components/proof-request/v1/share-credential.js +0 -101
  101. package/lib/module/components/proof-request/v1/share-credential.js.map +0 -1
  102. package/lib/module/utils/parsers/credential-sharing.js +0 -256
  103. package/lib/module/utils/parsers/credential-sharing.js.map +0 -1
  104. package/lib/typescript/components/proof-request/v1/group.d.ts +0 -2
  105. package/lib/typescript/components/proof-request/v1/index.d.ts +0 -3
  106. package/lib/typescript/components/proof-request/v1/select-credential.d.ts +0 -15
  107. package/lib/typescript/components/proof-request/v1/share-credential.d.ts +0 -27
  108. package/lib/typescript/utils/parsers/credential-sharing.d.ts +0 -21
  109. package/src/components/proof-request/v1/group.tsx +0 -26
  110. package/src/components/proof-request/v1/index.ts +0 -3
  111. package/src/components/proof-request/v1/select-credential.tsx +0 -55
  112. package/src/components/proof-request/v1/share-credential.tsx +0 -159
  113. package/src/utils/parsers/credential-sharing.tsx +0 -415
@@ -1,101 +0,0 @@
1
- import { CredentialState } from '@procivis/react-native-one-core';
2
- import React, { useMemo } from 'react';
3
- import { Dimensions, StyleSheet } from 'react-native';
4
- import { CredentialDetailsCardListItem, useAppColorScheme } from '../../../ui-components';
5
- import { concatTestID } from '../../../utils';
6
- import { useCoreConfig } from '../../../utils/hooks/core/core-config';
7
- import { getValidityState, ValidityState } from '../../../utils/parsers/credential';
8
- import { shareCredentialCardFromCredential } from '../../../utils/parsers/credential-sharing';
9
- import { SelectShareCredentialCardNotice } from '../select-share-credential-card-notice';
10
- import { ShareCredentialCardNotice } from '../share-credential-card-notice';
11
- export const ShareCredential = ({
12
- allCredentials,
13
- expanded,
14
- labels,
15
- language,
16
- lastItem,
17
- onHeaderPress,
18
- onImagePreview,
19
- onSelectCredential,
20
- onSelectField,
21
- request,
22
- selectedCredentialId,
23
- selectedFields,
24
- style,
25
- testID
26
- }) => {
27
- var _credential$issuer;
28
- const colorScheme = useAppColorScheme();
29
- const credential = allCredentials.find(c => c.id === selectedCredentialId);
30
- const {
31
- data: config
32
- } = useCoreConfig();
33
- const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);
34
- const selectionOptions = useMemo(() => request.applicableCredentials.filter(applicableCredentialId => allCredentials.some(({
35
- id,
36
- state
37
- }) => id === applicableCredentialId && state === CredentialState.ACCEPTED)), [allCredentials, request]);
38
- const multipleCredentialsAvailable = selectionOptions.length > 1;
39
- const validityState = getValidityState(credential ? {
40
- ...credential,
41
- issuer: credential === null || credential === void 0 || (_credential$issuer = credential.issuer) === null || _credential$issuer === void 0 ? void 0 : _credential$issuer.id
42
- } : undefined);
43
- const footer = useMemo(() => {
44
- if (!expanded) {
45
- return;
46
- }
47
- if (validityState === ValidityState.Revoked) {
48
- return /*#__PURE__*/React.createElement(ShareCredentialCardNotice, {
49
- testID: concatTestID(testID, 'notice.revoked'),
50
- text: labels.revokedCredentialNotice
51
- });
52
- }
53
- if (validityState === ValidityState.Suspended) {
54
- return /*#__PURE__*/React.createElement(ShareCredentialCardNotice, {
55
- testID: concatTestID(testID, 'notice.suspended'),
56
- text: labels.suspendedCredentialNotice
57
- });
58
- }
59
- if (multipleCredentialsAvailable) {
60
- return /*#__PURE__*/React.createElement(SelectShareCredentialCardNotice, {
61
- buttonTitle: labels.multipleCredentialsSelect,
62
- onPress: onSelectCredential,
63
- testID: concatTestID(testID, 'notice.multiple'),
64
- text: labels.multipleCredentialsNotice
65
- });
66
- }
67
- }, [expanded, labels, multipleCredentialsAvailable, onSelectCredential, testID, validityState]);
68
- if (!config) {
69
- return null;
70
- }
71
- const {
72
- card,
73
- attributes
74
- } = shareCredentialCardFromCredential(credential, Boolean(expanded), multipleCredentialsAvailable, request, selectedFields, config, testID, labels, language);
75
- return /*#__PURE__*/React.createElement(CredentialDetailsCardListItem, {
76
- attributes: attributes,
77
- card: {
78
- ...card,
79
- credentialId: request.id,
80
- onHeaderPress,
81
- width: cardWidth
82
- },
83
- expanded: expanded,
84
- footer: footer,
85
- lastItem: lastItem,
86
- onAttributeSelected: onSelectField,
87
- onImagePreview: onImagePreview,
88
- style: [styles.credential, {
89
- borderColor: colorScheme.background
90
- }, style],
91
- testID: testID
92
- });
93
- };
94
- const styles = StyleSheet.create({
95
- credential: {
96
- borderRadius: 10,
97
- borderWidth: 1,
98
- marginBottom: 8
99
- }
100
- });
101
- //# sourceMappingURL=share-credential.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["CredentialState","React","useMemo","Dimensions","StyleSheet","CredentialDetailsCardListItem","useAppColorScheme","concatTestID","useCoreConfig","getValidityState","ValidityState","shareCredentialCardFromCredential","SelectShareCredentialCardNotice","ShareCredentialCardNotice","ShareCredential","allCredentials","expanded","labels","language","lastItem","onHeaderPress","onImagePreview","onSelectCredential","onSelectField","request","selectedCredentialId","selectedFields","style","testID","_credential$issuer","colorScheme","credential","find","c","id","data","config","cardWidth","get","width","selectionOptions","applicableCredentials","filter","applicableCredentialId","some","state","ACCEPTED","multipleCredentialsAvailable","length","validityState","issuer","undefined","footer","Revoked","createElement","text","revokedCredentialNotice","Suspended","suspendedCredentialNotice","buttonTitle","multipleCredentialsSelect","onPress","multipleCredentialsNotice","card","attributes","Boolean","credentialId","onAttributeSelected","styles","borderColor","background","create","borderRadius","borderWidth","marginBottom"],"sources":["share-credential.tsx"],"sourcesContent":["import {\n CredentialDetail,\n CredentialListItem,\n CredentialState,\n PresentationDefinitionField,\n PresentationDefinitionRequestedCredential,\n} from '@procivis/react-native-one-core';\nimport React, { FunctionComponent, useMemo } from 'react';\nimport { Dimensions, ImageSourcePropType, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nimport { CredentialDetailsCardListItem, useAppColorScheme } from '../../../ui-components';\nimport { concatTestID } from '../../../utils';\nimport { useCoreConfig } from '../../../utils/hooks/core/core-config';\nimport { getValidityState, ValidityState } from '../../../utils/parsers/credential';\nimport {\n shareCredentialCardFromCredential,\n ShareCredentialCardLabels,\n} from '../../../utils/parsers/credential-sharing';\nimport { SelectShareCredentialCardNotice } from '../select-share-credential-card-notice';\nimport { ShareCredentialCardNotice } from '../share-credential-card-notice';\n\nexport type ShareCredentialLabels = ShareCredentialCardLabels & {\n invalidCredentialNotice: string;\n multipleCredentialsNotice: string;\n multipleCredentialsSelect: string;\n revokedCredentialNotice: string;\n suspendedCredentialNotice: string;\n};\n\nexport const ShareCredential: FunctionComponent<{\n allCredentials: CredentialDetail[];\n expanded?: boolean;\n labels: ShareCredentialLabels;\n language?: string;\n lastItem?: boolean;\n onHeaderPress?: (_credentialId?: string) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelectCredential?: () => void;\n onSelectField: (_id: PresentationDefinitionField['id'], _selected: boolean) => void;\n request: PresentationDefinitionRequestedCredential;\n selectedCredentialId?: CredentialListItem['id'];\n selectedFields?: Array<PresentationDefinitionField['id']>;\n style?: StyleProp<ViewStyle>;\n testID: string;\n}> = ({\n allCredentials,\n expanded,\n labels,\n language,\n lastItem,\n onHeaderPress,\n onImagePreview,\n onSelectCredential,\n onSelectField,\n request,\n selectedCredentialId,\n selectedFields,\n style,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n const credential = allCredentials.find((c) => c.id === selectedCredentialId);\n const { data: config } = useCoreConfig();\n const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);\n\n const selectionOptions = useMemo(\n () =>\n request.applicableCredentials.filter((applicableCredentialId) =>\n allCredentials.some(({ id, state }) => id === applicableCredentialId && state === CredentialState.ACCEPTED),\n ),\n [allCredentials, request],\n );\n const multipleCredentialsAvailable = selectionOptions.length > 1;\n\n const validityState = getValidityState(\n credential\n ? {\n ...credential,\n issuer: credential?.issuer?.id,\n }\n : undefined,\n );\n\n const footer = useMemo(() => {\n if (!expanded) {\n return;\n }\n if (validityState === ValidityState.Revoked) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.revoked')}\n text={labels.revokedCredentialNotice}\n />\n );\n }\n if (validityState === ValidityState.Suspended) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.suspended')}\n text={labels.suspendedCredentialNotice}\n />\n );\n }\n\n if (multipleCredentialsAvailable) {\n return (\n <SelectShareCredentialCardNotice\n buttonTitle={labels.multipleCredentialsSelect}\n onPress={onSelectCredential}\n testID={concatTestID(testID, 'notice.multiple')}\n text={labels.multipleCredentialsNotice}\n />\n );\n }\n }, [expanded, labels, multipleCredentialsAvailable, onSelectCredential, testID, validityState]);\n\n if (!config) {\n return null;\n }\n\n const { card, attributes } = shareCredentialCardFromCredential(\n credential,\n Boolean(expanded),\n multipleCredentialsAvailable,\n request,\n selectedFields,\n config,\n testID,\n labels,\n language,\n );\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n credentialId: request.id,\n onHeaderPress,\n width: cardWidth,\n }}\n expanded={expanded}\n footer={footer}\n lastItem={lastItem}\n onAttributeSelected={onSelectField}\n onImagePreview={onImagePreview}\n style={[styles.credential, { borderColor: colorScheme.background }, style]}\n testID={testID}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n credential: {\n borderRadius: 10,\n borderWidth: 1,\n marginBottom: 8,\n },\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,256 +0,0 @@
1
- import { CredentialType } from '@procivis/react-native-one-core';
2
- import React from 'react';
3
- import { Selector, SelectorStatus } from '../../ui-components/credential';
4
- import { CredentialNoticeWarningIcon, CredentialWarningIcon, RequiredAttributeIcon } from '../../ui-components/icons';
5
- import { concatTestID } from '../testID';
6
- import { credentialDetailFromPresentationV2Credential, detailsCardAttributeFromClaim, getCredentialCardPropsFromCredential, getValidityState, nestAttributes, supportsSelectiveDisclosure, ValidityState } from './credential';
7
- export const validityCheckedCardFromCredential = (credential, expanded, selectiveDisclosureSupported, multipleCredentialsAvailable, config, notice, testID, labels, language) => {
8
- let credentialHeaderDetail;
9
- if (selectiveDisclosureSupported === false) {
10
- credentialHeaderDetail = {
11
- credentialDetailPrimary: labels.selectiveDisclosure,
12
- credentialDetailTestID: concatTestID(testID, 'header.nonSelectiveDisclosure'),
13
- statusIcon: CredentialWarningIcon
14
- };
15
- } else if ('embeddedDisclosurePolicyViolation' in credential) {
16
- credentialHeaderDetail = {
17
- credentialDetailPrimary: labels.disclosurePolicyViolation,
18
- credentialDetailTestID: concatTestID(testID, 'header.dislosurePolicyViolation'),
19
- statusIcon: CredentialWarningIcon
20
- };
21
- } else if (!expanded && multipleCredentialsAvailable) {
22
- credentialHeaderDetail = {
23
- credentialDetailPrimary: labels.multipleCredentials,
24
- credentialDetailTestID: concatTestID(testID, 'header.multiple'),
25
- statusIcon: CredentialWarningIcon
26
- };
27
- }
28
- const card = getCredentialCardPropsFromCredential(credentialDetailFromPresentationV2Credential(credential), credential.claims, config, notice, testID, labels, language);
29
- return {
30
- ...card,
31
- header: {
32
- ...card.header,
33
- ...credentialHeaderDetail
34
- }
35
- };
36
- };
37
- export const missingCredentialCardFromRequest = (request, notice, testID, labels) => {
38
- var _request$name;
39
- return {
40
- cardImage: undefined,
41
- color: undefined,
42
- testID,
43
- header: {
44
- credentialDetailErrorColor: true,
45
- credentialDetailPrimary: labels.missingCredential,
46
- credentialDetailTestID: concatTestID(testID, 'header.missing'),
47
- credentialName: (_request$name = request.name) !== null && _request$name !== void 0 ? _request$name : request.id,
48
- statusIcon: CredentialWarningIcon
49
- },
50
- ...notice
51
- };
52
- };
53
- const getAttributeSelectorStatus = (field, validityState, credential, claim, selected) => {
54
- if (!credential || validityState !== ValidityState.Valid) {
55
- return SelectorStatus.Rejected;
56
- }
57
- if (field.required) {
58
- if (claim) {
59
- return SelectorStatus.Required;
60
- } else {
61
- return SelectorStatus.Rejected;
62
- }
63
- }
64
- if (!claim) {
65
- return SelectorStatus.Disabled;
66
- }
67
- return selected ? SelectorStatus.SelectedCheckmark : SelectorStatus.Empty;
68
- };
69
- // Returns a spread list of all claims with their full JSON path as key, including all intermediate objects
70
- const spreadClaims = claims => {
71
- return claims.reduce((acc, claim) => {
72
- const result = [claim];
73
- if (claim.value.type_ === 'NESTED') {
74
- const nestedClaimsWithPath = claim.value.value.map(c => ({
75
- ...c,
76
- isArrayElement: claim.schema.array && claim.path.split('/').pop() !== claim.schema.key
77
- }));
78
- result.push(...spreadClaims(nestedClaimsWithPath));
79
- }
80
- return [...acc, ...result];
81
- }, []);
82
- };
83
- const getDisplayedAttributes = (request, validityState, credential, selectiveDisclosureSupported, selectedFields) => {
84
- const claims = credential ? spreadClaims(credential.claims) : undefined;
85
- const isApplicable = credential ? request.applicableCredentials.includes(credential.id) : false;
86
- let fields = request.fields;
87
- if (credential) {
88
- const fieldsWithNoKeyMapping = request.fields.filter(field => !(credential.id in field.keyMap)).filter(field => !isApplicable || !field.required);
89
- const fullyNestedFields = getFullyNestedFields(request.fields, credential.id);
90
- fields = [...fieldsWithNoKeyMapping, ...fullyNestedFields];
91
- }
92
- return fields.map(field => {
93
- const selected = !field.required && (selectedFields === null || selectedFields === void 0 ? void 0 : selectedFields.includes(field.id));
94
- const claim = credential ? claims === null || claims === void 0 ? void 0 : claims.find(({
95
- path
96
- }) => {
97
- return path === field.keyMap[credential.id];
98
- }) : undefined;
99
- const status = selectiveDisclosureSupported === false ? SelectorStatus.Required : getAttributeSelectorStatus(field, validityState, credential, claim, selected);
100
- return {
101
- claim,
102
- field,
103
- id: field.id,
104
- selected,
105
- status
106
- };
107
- });
108
- };
109
- const getFullyNestedFields = (fields, credentialId) => {
110
- const allKeys = fields.filter(field => credentialId in field.keyMap).map(field => field.keyMap[credentialId]);
111
- return fields.map(field => ({
112
- field,
113
- key: field.keyMap[credentialId]
114
- })).filter(({
115
- key
116
- }) => key && allKeys.every(k => !k.startsWith(`${key}/`))).map(({
117
- field
118
- }) => field);
119
- };
120
- export const shareCredentialCardAttributeFromClaim = (id, config, testID, labels, language, claim, field) => {
121
- var _field$name$split$pop, _field$name, _field$name2;
122
- if (claim) {
123
- return {
124
- ...detailsCardAttributeFromClaim(claim, config, testID, language),
125
- id,
126
- path: claim.path,
127
- listValue: claim.isArrayElement
128
- };
129
- }
130
- return {
131
- id,
132
- name: (_field$name$split$pop = field === null || field === void 0 || (_field$name = field.name) === null || _field$name === void 0 ? void 0 : _field$name.split('/').pop()) !== null && _field$name$split$pop !== void 0 ? _field$name$split$pop : id,
133
- path: (_field$name2 = field === null || field === void 0 ? void 0 : field.name) !== null && _field$name2 !== void 0 ? _field$name2 : id,
134
- value: labels.missingAttribute,
135
- valueErrorColor: true
136
- };
137
- };
138
-
139
- // Will propagate the attribute status (right accessory + selected?) for all nested attributes
140
- // Note: This function MUTATES the input attribute
141
- const setStatusForNestedObjectOrArrayFields = (attribute, status, disabled) => {
142
- const accessory = status && /*#__PURE__*/React.createElement(Selector, {
143
- status: status
144
- });
145
- const isObject = attribute.attributes && attribute.attributes.length > 0;
146
- const isArray = attribute.values && attribute.values.length > 0;
147
-
148
- // If the attribute is not an object or array, we update the attribute and return
149
- if (!isObject && !isArray) {
150
- attribute.rightAccessory = accessory;
151
- attribute.disabled = disabled;
152
- return attribute;
153
- }
154
-
155
- // The object can be optional (tappable radio-checkmark), or required (checkmark)
156
- if (status === SelectorStatus.SelectedCheckmark || status === SelectorStatus.Empty) {
157
- // If it's a selectable object, the accessory is rendered next to the object title,
158
- // The nested attributes have no accessory, and can not be selected
159
- attribute.rightAccessory = accessory;
160
- setStatusForNestedObjectOrArrayFields(attribute, undefined, true);
161
- } else {
162
- var _attribute$attributes;
163
- const nested = (_attribute$attributes = attribute.attributes) !== null && _attribute$attributes !== void 0 ? _attribute$attributes : attribute.values;
164
- // If the object is required / rejected, the accessory is rendered next to each nested attribute (except other object titles)
165
- // all fields are disabled
166
- for (const nestedAttribute of nested) {
167
- setStatusForNestedObjectOrArrayFields(nestedAttribute, status, true);
168
- }
169
- }
170
- };
171
- export const shareCredentialCardFromCredential = (credential, expanded, multipleCredentialsAvailable, request, selectedFields, config, testID, labels, language) => {
172
- var _credential$issuer;
173
- const credentialAsListItem = credential ? {
174
- type: CredentialType.SINGLE,
175
- ...credential,
176
- issuer: (_credential$issuer = credential.issuer) === null || _credential$issuer === void 0 ? void 0 : _credential$issuer.id
177
- } : undefined;
178
- const selectiveDisclosureSupported = supportsSelectiveDisclosure(credentialAsListItem, config);
179
- const cardTestId = concatTestID(testID, 'card');
180
- const card = credential ? validityCheckedCardFromCredential(credential, expanded, selectiveDisclosureSupported, multipleCredentialsAvailable, config, undefined, cardTestId, labels, language) : missingCredentialCardFromRequest(request, undefined, cardTestId, labels);
181
- const validityState = getValidityState(credentialAsListItem);
182
- const displayedAttributes = getDisplayedAttributes(request, validityState, credential ? credentialDetailFromPresentationV2Credential(credential) : undefined, selectiveDisclosureSupported, selectedFields);
183
- const attributes = displayedAttributes.map(({
184
- claim,
185
- field,
186
- id,
187
- selected,
188
- status
189
- }, index) => {
190
- const disabled = !credential || !field || field.required || !claim;
191
- const attribute = {
192
- ...shareCredentialCardAttributeFromClaim(id, config, concatTestID(testID, 'attribute', `${index}`), labels, language, claim, field),
193
- selected
194
- };
195
- setStatusForNestedObjectOrArrayFields(attribute, status, disabled);
196
- return attribute;
197
- });
198
- return {
199
- attributes: nestAttributes(attributes),
200
- card
201
- };
202
- };
203
- export const selectCredentialCardAttributeFromClaim = (id, config, testID, labels, language, claim, field) => {
204
- const attribute = shareCredentialCardAttributeFromClaim(id, config, testID, labels, language, claim, field);
205
- if (!claim) {
206
- return attribute;
207
- }
208
- return {
209
- ...attribute,
210
- rightAccessory: RequiredAttributeIcon
211
- };
212
- };
213
- export const selectCredentialCardFromCredential = (credential, selected, request, config, testID, labels, language) => {
214
- var _credential$issuer2;
215
- const selectiveDisclosureSupported = supportsSelectiveDisclosure(credential ? {
216
- ...credential,
217
- issuer: (_credential$issuer2 = credential.issuer) === null || _credential$issuer2 === void 0 ? void 0 : _credential$issuer2.id
218
- } : undefined, config);
219
- const rightAccessory = /*#__PURE__*/React.createElement(Selector, {
220
- status: selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty
221
- });
222
- const notice = selectiveDisclosureSupported === false ? {
223
- text: labels.selectiveDisclosure,
224
- noticeIcon: CredentialNoticeWarningIcon
225
- } : undefined;
226
- const {
227
- header,
228
- ...cardProps
229
- } = getCredentialCardPropsFromCredential(credential, credential.claims, config, notice, testID, labels, language);
230
- const card = {
231
- header: {
232
- ...header,
233
- accessory: rightAccessory
234
- },
235
- ...cardProps
236
- };
237
- const attributes = getFullyNestedFields(request.fields, credential.id).map(field => {
238
- const claim = spreadClaims(credential.claims).find(({
239
- path
240
- }) => {
241
- return path === field.keyMap[credential.id];
242
- });
243
- const attribute = selectCredentialCardAttributeFromClaim(field.id, config, testID, labels, language, claim, field);
244
- return {
245
- ...attribute,
246
- rightAccessory: /*#__PURE__*/React.createElement(Selector, {
247
- status: field.required && !claim ? SelectorStatus.Rejected : SelectorStatus.Required
248
- })
249
- };
250
- });
251
- return {
252
- attributes: nestAttributes(attributes),
253
- card
254
- };
255
- };
256
- //# sourceMappingURL=credential-sharing.js.map
@@ -1 +0,0 @@
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":"AAAA,SAKEA,cAAc,QAIT,iCAAiC;AACxC,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAIEC,QAAQ,EACRC,cAAc,QACT,gCAAgC;AAEvC,SAASC,2BAA2B,EAAEC,qBAAqB,EAAEC,qBAAqB,QAAQ,2BAA2B;AACrH,SAASC,YAAY,QAAQ,WAAW;AACxC,SAEEC,4CAA4C,EAE5CC,6BAA6B,EAC7BC,oCAAoC,EACpCC,gBAAgB,EAChBC,cAAc,EACdC,2BAA2B,EAC3BC,aAAa,QACR,cAAc;AAErB,OAAO,MAAMC,iCAAiC,GAAGA,CAC/CC,UAAiE,EACjEC,QAAiB,EACjBC,4BAAiD,EACjDC,4BAAqC,EACrCC,MAAkB,EAClBC,MAAwC,EACxCC,MAAc,EACdC,MAAiC,EACjCC,QAA4B,KACkD;EAC9E,IAAIC,sBASS;EACb,IAAIP,4BAA4B,KAAK,KAAK,EAAE;IAC1CO,sBAAsB,GAAG;MACvBC,uBAAuB,EAAEH,MAAM,CAACI,mBAAmB;MACnDC,sBAAsB,EAAErB,YAAY,CAACe,MAAM,EAAE,+BAA+B,CAAC;MAC7EO,UAAU,EAAExB;IACd,CAAC;EACH,CAAC,MAAM,IAAI,mCAAmC,IAAIW,UAAU,EAAE;IAC5DS,sBAAsB,GAAG;MACvBC,uBAAuB,EAAEH,MAAM,CAACO,yBAAyB;MACzDF,sBAAsB,EAAErB,YAAY,CAACe,MAAM,EAAE,iCAAiC,CAAC;MAC/EO,UAAU,EAAExB;IACd,CAAC;EACH,CAAC,MAAM,IAAI,CAACY,QAAQ,IAAIE,4BAA4B,EAAE;IACpDM,sBAAsB,GAAG;MACvBC,uBAAuB,EAAEH,MAAM,CAACQ,mBAAmB;MACnDH,sBAAsB,EAAErB,YAAY,CAACe,MAAM,EAAE,iBAAiB,CAAC;MAC/DO,UAAU,EAAExB;IACd,CAAC;EACH;EAEA,MAAM2B,IAAI,GAAGtB,oCAAoC,CAC/CF,4CAA4C,CAACQ,UAAU,CAAC,EACxDA,UAAU,CAACiB,MAAM,EACjBb,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,QACF,CAAC;EACD,OAAO;IACL,GAAGQ,IAAI;IACPE,MAAM,EAAE;MACN,GAAGF,IAAI,CAACE,MAAM;MACd,GAAGT;IACL;EACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMU,gCAAgC,GAAGA,CAC9CC,OAAkD,EAClDf,MAAwC,EACxCC,MAAc,EACdC,MAAiC,KACkC;EAAA,IAAAc,aAAA;EACnE,OAAO;IACLC,SAAS,EAAEC,SAAS;IACpBC,KAAK,EAAED,SAAS;IAChBjB,MAAM;IACNY,MAAM,EAAE;MACNO,0BAA0B,EAAE,IAAI;MAChCf,uBAAuB,EAAEH,MAAM,CAACmB,iBAAiB;MACjDd,sBAAsB,EAAErB,YAAY,CAACe,MAAM,EAAE,gBAAgB,CAAC;MAC9DqB,cAAc,GAAAN,aAAA,GAAED,OAAO,CAACQ,IAAI,cAAAP,aAAA,cAAAA,aAAA,GAAID,OAAO,CAACS,EAAE;MAC1ChB,UAAU,EAAExB;IACd,CAAC;IACD,GAAGgB;EACL,CAAC;AACH,CAAC;AAUD,MAAMyB,0BAA0B,GAAGA,CACjCC,KAAkC,EAClCC,aAA4B,EAC5BhC,UAA6B,EAC7BiC,KAAa,EACbC,QAAkB,KACC;EACnB,IAAI,CAAClC,UAAU,IAAIgC,aAAa,KAAKlC,aAAa,CAACqC,KAAK,EAAE;IACxD,OAAOhD,cAAc,CAACiD,QAAQ;EAChC;EACA,IAAIL,KAAK,CAACM,QAAQ,EAAE;IAClB,IAAIJ,KAAK,EAAE;MACT,OAAO9C,cAAc,CAACmD,QAAQ;IAChC,CAAC,MAAM;MACL,OAAOnD,cAAc,CAACiD,QAAQ;IAChC;EACF;EACA,IAAI,CAACH,KAAK,EAAE;IACV,OAAO9C,cAAc,CAACoD,QAAQ;EAChC;EACA,OAAOL,QAAQ,GAAG/C,cAAc,CAACqD,iBAAiB,GAAGrD,cAAc,CAACsD,KAAK;AAC3E,CAAC;AAMD;AACA,MAAMC,YAAY,GAAIzB,MAAe,IAAkB;EACrD,OAAOA,MAAM,CAAC0B,MAAM,CAAC,CAACC,GAAG,EAAEX,KAAK,KAAK;IACnC,MAAMY,MAAM,GAAG,CAACZ,KAAK,CAAC;IACtB,IAAIA,KAAK,CAACa,KAAK,CAACC,KAAK,KAAK,QAAQ,EAAE;MAClC,MAAMC,oBAAiC,GAAGf,KAAK,CAACa,KAAK,CAACA,KAAK,CAACG,GAAG,CAAEC,CAAC,KAAM;QACtE,GAAGA,CAAC;QACJC,cAAc,EAAElB,KAAK,CAACmB,MAAM,CAACC,KAAK,IAAIpB,KAAK,CAACqB,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,KAAKvB,KAAK,CAACmB,MAAM,CAACK;MACrF,CAAC,CAAC,CAAC;MACHZ,MAAM,CAACa,IAAI,CAAC,GAAGhB,YAAY,CAACM,oBAAoB,CAAC,CAAC;IACpD;IACA,OAAO,CAAC,GAAGJ,GAAG,EAAE,GAAGC,MAAM,CAAC;EAC5B,CAAC,EAAE,EAAiB,CAAC;AACvB,CAAC;AAED,MAAMc,sBAAsB,GAAGA,CAC7BvC,OAAkD,EAClDY,aAA4B,EAC5BhC,UAA6B,EAC7BE,4BAAsC,EACtC0D,cAAyB,KACA;EACzB,MAAM3C,MAAM,GAAGjB,UAAU,GAAG0C,YAAY,CAAC1C,UAAU,CAACiB,MAAM,CAAC,GAAGM,SAAS;EACvE,MAAMsC,YAAY,GAAG7D,UAAU,GAAGoB,OAAO,CAAC0C,qBAAqB,CAACC,QAAQ,CAAC/D,UAAU,CAAC6B,EAAE,CAAC,GAAG,KAAK;EAE/F,IAAImC,MAAM,GAAG5C,OAAO,CAAC4C,MAAM;EAC3B,IAAIhE,UAAU,EAAE;IACd,MAAMiE,sBAAsB,GAAG7C,OAAO,CAAC4C,MAAM,CAC1CE,MAAM,CAAEnC,KAAK,IAAK,EAAE/B,UAAU,CAAC6B,EAAE,IAAIE,KAAK,CAACoC,MAAM,CAAC,CAAC,CACnDD,MAAM,CAAEnC,KAAK,IAAK,CAAC8B,YAAY,IAAI,CAAC9B,KAAK,CAACM,QAAQ,CAAC;IACtD,MAAM+B,iBAAiB,GAAGC,oBAAoB,CAACjD,OAAO,CAAC4C,MAAM,EAAEhE,UAAU,CAAC6B,EAAE,CAAC;IAE7EmC,MAAM,GAAG,CAAC,GAAGC,sBAAsB,EAAE,GAAGG,iBAAiB,CAAC;EAC5D;EAEA,OAAOJ,MAAM,CAACf,GAAG,CAAElB,KAAK,IAAK;IAC3B,MAAMG,QAAQ,GAAG,CAACH,KAAK,CAACM,QAAQ,KAAIuB,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEG,QAAQ,CAAChC,KAAK,CAACF,EAAE,CAAC;IACtE,MAAMI,KAAK,GAAGjC,UAAU,GACpBiB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEqD,IAAI,CAAC,CAAC;MAAEhB;IAAK,CAAC,KAAK;MACzB,OAAOA,IAAI,KAAKvB,KAAK,CAACoC,MAAM,CAACnE,UAAU,CAAC6B,EAAE,CAAC;IAC7C,CAAC,CAAC,GACFN,SAAS;IACb,MAAMgD,MAAM,GACVrE,4BAA4B,KAAK,KAAK,GAClCf,cAAc,CAACmD,QAAQ,GACvBR,0BAA0B,CAACC,KAAK,EAAEC,aAAa,EAAEhC,UAAU,EAAEiC,KAAK,EAAEC,QAAQ,CAAC;IACnF,OAAO;MAAED,KAAK;MAAEF,KAAK;MAAEF,EAAE,EAAEE,KAAK,CAACF,EAAE;MAAEK,QAAQ;MAAEqC;IAAO,CAAC;EACzD,CAAC,CAAC;AACJ,CAAC;AAED,MAAMF,oBAAoB,GAAGA,CAC3BL,MAA2D,EAC3DQ,YAAoC,KACjC;EACH,MAAMC,OAAO,GAAGT,MAAM,CAACE,MAAM,CAAEnC,KAAK,IAAKyC,YAAY,IAAIzC,KAAK,CAACoC,MAAM,CAAC,CAAClB,GAAG,CAAElB,KAAK,IAAKA,KAAK,CAACoC,MAAM,CAACK,YAAY,CAAC,CAAC;EAEjH,OAAOR,MAAM,CACVf,GAAG,CAAElB,KAAK,KAAM;IAAEA,KAAK;IAAE0B,GAAG,EAAE1B,KAAK,CAACoC,MAAM,CAACK,YAAY;EAAE,CAAC,CAAC,CAAC,CAC5DN,MAAM,CAAC,CAAC;IAAET;EAAI,CAAC,KAAKA,GAAG,IAAIgB,OAAO,CAACC,KAAK,CAAEC,CAAC,IAAK,CAACA,CAAC,CAACC,UAAU,CAAC,GAAGnB,GAAG,GAAG,CAAC,CAAC,CAAC,CAC1ER,GAAG,CAAC,CAAC;IAAElB;EAAM,CAAC,KAAKA,KAAK,CAAC;AAC9B,CAAC;AAED,OAAO,MAAM8C,qCAAqC,GAAGA,CACnDhD,EAAU,EACVzB,MAAkB,EAClBE,MAAc,EACdC,MAAiC,EACjCC,QAA4B,EAC5ByB,KAAiB,EACjBF,KAAmC,KACX;EAAA,IAAA+C,qBAAA,EAAAC,WAAA,EAAAC,YAAA;EACxB,IAAI/C,KAAK,EAAE;IACT,OAAO;MACL,GAAGxC,6BAA6B,CAACwC,KAAK,EAAE7B,MAAM,EAAEE,MAAM,EAAEE,QAAQ,CAAC;MACjEqB,EAAE;MACFyB,IAAI,EAAErB,KAAK,CAACqB,IAAI;MAChB2B,SAAS,EAAEhD,KAAK,CAACkB;IACnB,CAAC;EACH;EACA,OAAO;IACLtB,EAAE;IACFD,IAAI,GAAAkD,qBAAA,GAAE/C,KAAK,aAALA,KAAK,gBAAAgD,WAAA,GAALhD,KAAK,CAAEH,IAAI,cAAAmD,WAAA,uBAAXA,WAAA,CAAaxB,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,cAAAsB,qBAAA,cAAAA,qBAAA,GAAIjD,EAAE;IACzCyB,IAAI,GAAA0B,YAAA,GAAEjD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEH,IAAI,cAAAoD,YAAA,cAAAA,YAAA,GAAInD,EAAE;IACvBiB,KAAK,EAAEvC,MAAM,CAAC2E,gBAAgB;IAC9BC,eAAe,EAAE;EACnB,CAAC;AACH,CAAC;;AAED;AACA;AACA,MAAMC,qCAAqC,GAAGA,CAC5CC,SAA8B,EAC9Bd,MAAuB,EACvBe,QAAkB,KACf;EACH,MAAMC,SAAS,GAAGhB,MAAM,iBAAItF,KAAA,CAAAuG,aAAA,CAACtG,QAAQ;IAACqF,MAAM,EAAEA;EAAO,CAAE,CAAC;EACxD,MAAMkB,QAAQ,GAAGJ,SAAS,CAACK,UAAU,IAAIL,SAAS,CAACK,UAAU,CAACC,MAAM,GAAG,CAAC;EACxE,MAAMC,OAAO,GAAGP,SAAS,CAACQ,MAAM,IAAIR,SAAS,CAACQ,MAAM,CAACF,MAAM,GAAG,CAAC;;EAE/D;EACA,IAAI,CAACF,QAAQ,IAAI,CAACG,OAAO,EAAE;IACzBP,SAAS,CAACS,cAAc,GAAGP,SAAS;IACpCF,SAAS,CAACC,QAAQ,GAAGA,QAAQ;IAC7B,OAAOD,SAAS;EAClB;;EAEA;EACA,IAAId,MAAM,KAAKpF,cAAc,CAACqD,iBAAiB,IAAI+B,MAAM,KAAKpF,cAAc,CAACsD,KAAK,EAAE;IAClF;IACA;IACA4C,SAAS,CAACS,cAAc,GAAGP,SAAS;IACpCH,qCAAqC,CAACC,SAAS,EAAE9D,SAAS,EAAE,IAAI,CAAC;EACnE,CAAC,MAAM;IAAA,IAAAwE,qBAAA;IACL,MAAMC,MAAM,IAAAD,qBAAA,GAAGV,SAAS,CAACK,UAAU,cAAAK,qBAAA,cAAAA,qBAAA,GAAIV,SAAS,CAACQ,MAAM;IACvD;IACA;IACA,KAAK,MAAMI,eAAe,IAAID,MAAM,EAAE;MACpCZ,qCAAqC,CAACa,eAAe,EAAE1B,MAAM,EAAE,IAAI,CAAC;IACtE;EACF;AACF,CAAC;AAUD,OAAO,MAAM2B,iCAAiC,GAAGA,CAC/ClG,UAA6E,EAC7EC,QAAiB,EACjBE,4BAAqC,EACrCiB,OAAkD,EAClDwC,cAAoC,EACpCxD,MAAkB,EAClBE,MAAc,EACdC,MAAiC,EACjCC,QAA4B,KACe;EAAA,IAAA2F,kBAAA;EAC3C,MAAMC,oBAAoD,GAAGpG,UAAU,GACnE;IAAEqG,IAAI,EAAErH,cAAc,CAACsH,MAAM;IAAE,GAAGtG,UAAU;IAAEuG,MAAM,GAAAJ,kBAAA,GAAEnG,UAAU,CAACuG,MAAM,cAAAJ,kBAAA,uBAAjBA,kBAAA,CAAmBtE;EAAG,CAAC,GAC7EN,SAAS;EACb,MAAMrB,4BAA4B,GAAGL,2BAA2B,CAACuG,oBAAoB,EAAEhG,MAAM,CAAC;EAC9F,MAAMoG,UAAU,GAAGjH,YAAY,CAACe,MAAM,EAAE,MAAM,CAAC;EAC/C,MAAMU,IAAI,GAAGhB,UAAU,GACnBD,iCAAiC,CAC/BC,UAAU,EACVC,QAAQ,EACRC,4BAA4B,EAC5BC,4BAA4B,EAC5BC,MAAM,EACNmB,SAAS,EACTiF,UAAU,EACVjG,MAAM,EACNC,QACF,CAAC,GACDW,gCAAgC,CAACC,OAAO,EAAEG,SAAS,EAAEiF,UAAU,EAAEjG,MAAM,CAAC;EAC5E,MAAMyB,aAAa,GAAGrC,gBAAgB,CAACyG,oBAAoB,CAAC;EAC5D,MAAMK,mBAAmB,GAAG9C,sBAAsB,CAChDvC,OAAO,EACPY,aAAa,EACbhC,UAAU,GAAGR,4CAA4C,CAACQ,UAAU,CAAC,GAAGuB,SAAS,EACjFrB,4BAA4B,EAC5B0D,cACF,CAAC;EAED,MAAM8B,UAAiC,GAAGe,mBAAmB,CAACxD,GAAG,CAAC,CAAC;IAAEhB,KAAK;IAAEF,KAAK;IAAEF,EAAE;IAAEK,QAAQ;IAAEqC;EAAO,CAAC,EAAEmC,KAAK,KAAK;IACnH,MAAMpB,QAAQ,GAAG,CAACtF,UAAU,IAAI,CAAC+B,KAAK,IAAIA,KAAK,CAACM,QAAQ,IAAI,CAACJ,KAAK;IAClE,MAAMoD,SAA8B,GAAG;MACrC,GAAGR,qCAAqC,CACtChD,EAAE,EACFzB,MAAM,EACNb,YAAY,CAACe,MAAM,EAAE,WAAW,EAAE,GAAGoG,KAAK,EAAE,CAAC,EAC7CnG,MAAM,EACNC,QAAQ,EACRyB,KAAK,EACLF,KACF,CAAC;MACDG;IACF,CAAC;IAEDkD,qCAAqC,CAACC,SAAS,EAAEd,MAAM,EAAEe,QAAQ,CAAC;IAClE,OAAOD,SAAS;EAClB,CAAC,CAAC;EACF,OAAO;IACLK,UAAU,EAAE9F,cAAc,CAAC8F,UAAU,CAAC;IACtC1E;EACF,CAAC;AACH,CAAC;AAED,OAAO,MAAM2F,sCAAsC,GAAGA,CACpD9E,EAAU,EACVzB,MAAkB,EAClBE,MAAc,EACdC,MAAiC,EACjCC,QAA4B,EAC5ByB,KAAiB,EACjBF,KAAmC,KACX;EACxB,MAAMsD,SAAS,GAAGR,qCAAqC,CAAChD,EAAE,EAAEzB,MAAM,EAAEE,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEyB,KAAK,EAAEF,KAAK,CAAC;EAC3G,IAAI,CAACE,KAAK,EAAE;IACV,OAAOoD,SAAS;EAClB;EACA,OAAO;IACL,GAAGA,SAAS;IACZS,cAAc,EAAExG;EAClB,CAAC;AACH,CAAC;AAED,OAAO,MAAMsH,kCAAkC,GAAGA,CAChD5G,UAA4B,EAC5BkC,QAAiB,EACjBd,OAAkD,EAClDhB,MAAkB,EAClBE,MAAc,EACdC,MAAiC,EACjCC,QAA4B,KACe;EAAA,IAAAqG,mBAAA;EAC3C,MAAM3G,4BAA4B,GAAGL,2BAA2B,CAC9DG,UAAU,GAAG;IAAE,GAAGA,UAAU;IAAEuG,MAAM,GAAAM,mBAAA,GAAE7G,UAAU,CAACuG,MAAM,cAAAM,mBAAA,uBAAjBA,mBAAA,CAAmBhF;EAAG,CAAC,GAAGN,SAAS,EACzEnB,MACF,CAAC;EACD,MAAM0F,cAAc,gBAAG7G,KAAA,CAAAuG,aAAA,CAACtG,QAAQ;IAACqF,MAAM,EAAErC,QAAQ,GAAG/C,cAAc,CAAC2H,aAAa,GAAG3H,cAAc,CAACsD;EAAM,CAAE,CAAC;EAC3G,MAAMpC,MAAwC,GAC5CH,4BAA4B,KAAK,KAAK,GAClC;IACE6G,IAAI,EAAExG,MAAM,CAACI,mBAAmB;IAChCqG,UAAU,EAAE5H;EACd,CAAC,GACDmC,SAAS;EACf,MAAM;IAAEL,MAAM;IAAE,GAAG+F;EAAU,CAAC,GAAGvH,oCAAoC,CACnEM,UAAU,EACVA,UAAU,CAACiB,MAAM,EACjBb,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,QACF,CAAC;EACD,MAAMQ,IAAI,GAAG;IACXE,MAAM,EAAE;MACN,GAAGA,MAAM;MACTqE,SAAS,EAAEO;IACb,CAAC;IACD,GAAGmB;EACL,CAAC;EACD,MAAMvB,UAAiC,GAAGrB,oBAAoB,CAACjD,OAAO,CAAC4C,MAAM,EAAEhE,UAAU,CAAC6B,EAAE,CAAC,CAACoB,GAAG,CAAElB,KAAK,IAAK;IAC3G,MAAME,KAAK,GAAGS,YAAY,CAAC1C,UAAU,CAACiB,MAAM,CAAC,CAACqD,IAAI,CAAC,CAAC;MAAEhB;IAAK,CAAC,KAAK;MAC/D,OAAOA,IAAI,KAAKvB,KAAK,CAACoC,MAAM,CAACnE,UAAU,CAAC6B,EAAE,CAAC;IAC7C,CAAC,CAAC;IAEF,MAAMwD,SAAS,GAAGsB,sCAAsC,CAAC5E,KAAK,CAACF,EAAE,EAAEzB,MAAM,EAAEE,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEyB,KAAK,EAAEF,KAAK,CAAC;IAClH,OAAO;MACL,GAAGsD,SAAS;MACZS,cAAc,eACZ7G,KAAA,CAAAuG,aAAA,CAACtG,QAAQ;QAACqF,MAAM,EAAExC,KAAK,CAACM,QAAQ,IAAI,CAACJ,KAAK,GAAG9C,cAAc,CAACiD,QAAQ,GAAGjD,cAAc,CAACmD;MAAS,CAAE;IAErG,CAAC;EACH,CAAC,CAAC;EACF,OAAO;IACLoD,UAAU,EAAE9F,cAAc,CAAC8F,UAAU,CAAC;IACtC1E;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import { FunctionComponent, PropsWithChildren } from 'react';
2
- export declare const ProofRequestGroup: FunctionComponent<PropsWithChildren>;
@@ -1,3 +0,0 @@
1
- export * from './group';
2
- export * from './select-credential';
3
- export * from './share-credential';
@@ -1,15 +0,0 @@
1
- import { PresentationDefinitionRequestedCredential } from '@procivis/react-native-one-core';
2
- import { FC } from 'react';
3
- import { ImageSourcePropType } from 'react-native';
4
- import { ShareCredentialCardLabels } from '../../../utils/parsers/credential-sharing';
5
- export declare const SelectCredential: FC<{
6
- credentialId: string;
7
- labels: ShareCredentialCardLabels;
8
- language?: string;
9
- lastItem: boolean;
10
- onImagePreview: (title: string, image: ImageSourcePropType) => void;
11
- onPress?: () => void;
12
- request: PresentationDefinitionRequestedCredential;
13
- selected: boolean;
14
- testID: string;
15
- }>;
@@ -1,27 +0,0 @@
1
- import { CredentialDetail, CredentialListItem, PresentationDefinitionField, PresentationDefinitionRequestedCredential } from '@procivis/react-native-one-core';
2
- import { FunctionComponent } from 'react';
3
- import { ImageSourcePropType, StyleProp, ViewStyle } from 'react-native';
4
- import { ShareCredentialCardLabels } from '../../../utils/parsers/credential-sharing';
5
- export type ShareCredentialLabels = ShareCredentialCardLabels & {
6
- invalidCredentialNotice: string;
7
- multipleCredentialsNotice: string;
8
- multipleCredentialsSelect: string;
9
- revokedCredentialNotice: string;
10
- suspendedCredentialNotice: string;
11
- };
12
- export declare const ShareCredential: FunctionComponent<{
13
- allCredentials: CredentialDetail[];
14
- expanded?: boolean;
15
- labels: ShareCredentialLabels;
16
- language?: string;
17
- lastItem?: boolean;
18
- onHeaderPress?: (_credentialId?: string) => void;
19
- onImagePreview: (title: string, image: ImageSourcePropType) => void;
20
- onSelectCredential?: () => void;
21
- onSelectField: (_id: PresentationDefinitionField['id'], _selected: boolean) => void;
22
- request: PresentationDefinitionRequestedCredential;
23
- selectedCredentialId?: CredentialListItem['id'];
24
- selectedFields?: Array<PresentationDefinitionField['id']>;
25
- style?: StyleProp<ViewStyle>;
26
- testID: string;
27
- }>;
@@ -1,21 +0,0 @@
1
- import { Claim, CoreConfig, CredentialDetail, PresentationDefinitionField, PresentationDefinitionRequestedCredential, PresentationDefinitionV2Credential } from '@procivis/react-native-one-core';
2
- import { CredentialAttribute, CredentialCardProps } from '../../ui-components/credential';
3
- import { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';
4
- import { CardLabels, CredentialDetailsCardPropsWithoutWidth } from './credential';
5
- export declare const validityCheckedCardFromCredential: (credential: CredentialDetail | PresentationDefinitionV2Credential, expanded: boolean, selectiveDisclosureSupported: boolean | undefined, multipleCredentialsAvailable: boolean, config: CoreConfig, notice: CredentialCardNotice | undefined, testID: string, labels: ShareCredentialCardLabels, language: string | undefined) => Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'testID' | 'width'>;
6
- export declare const missingCredentialCardFromRequest: (request: PresentationDefinitionRequestedCredential, notice: CredentialCardNotice | undefined, testID: string, labels: ShareCredentialCardLabels) => Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'>;
7
- type FlatClaim = Claim & {
8
- isArrayElement?: boolean;
9
- };
10
- export declare const shareCredentialCardAttributeFromClaim: (id: string, config: CoreConfig, testID: string, labels: ShareCredentialCardLabels, language: string | undefined, claim?: FlatClaim, field?: PresentationDefinitionField) => CredentialAttribute;
11
- export type ShareCredentialCardLabels = CardLabels & {
12
- selectiveDisclosure: string;
13
- missingAttribute: string;
14
- missingCredential: string;
15
- multipleCredentials: string;
16
- disclosurePolicyViolation: string;
17
- };
18
- export declare const shareCredentialCardFromCredential: (credential: CredentialDetail | PresentationDefinitionV2Credential | undefined, expanded: boolean, multipleCredentialsAvailable: boolean, request: PresentationDefinitionRequestedCredential, selectedFields: string[] | undefined, config: CoreConfig, testID: string, labels: ShareCredentialCardLabels, language: string | undefined) => CredentialDetailsCardPropsWithoutWidth;
19
- export declare const selectCredentialCardAttributeFromClaim: (id: string, config: CoreConfig, testID: string, labels: ShareCredentialCardLabels, language: string | undefined, claim?: FlatClaim, field?: PresentationDefinitionField) => CredentialAttribute;
20
- export declare const selectCredentialCardFromCredential: (credential: CredentialDetail, selected: boolean, request: PresentationDefinitionRequestedCredential, config: CoreConfig, testID: string, labels: ShareCredentialCardLabels, language: string | undefined) => CredentialDetailsCardPropsWithoutWidth;
21
- export {};
@@ -1,26 +0,0 @@
1
- import React, { FunctionComponent, PropsWithChildren } from 'react';
2
- import { StyleSheet, View } from 'react-native';
3
-
4
- import { useAppColorScheme } from '../../../ui-components/theme';
5
-
6
- export const ProofRequestGroup: FunctionComponent<PropsWithChildren> = ({ children }) => {
7
- const colorScheme = useAppColorScheme();
8
- return (
9
- <View style={styles.group}>
10
- <View style={[styles.separator, { backgroundColor: colorScheme.grayDark }]} />
11
- {children}
12
- </View>
13
- );
14
- };
15
-
16
- const styles = StyleSheet.create({
17
- group: {
18
- marginTop: 16,
19
- },
20
- separator: {
21
- height: 1,
22
- marginBottom: 16,
23
- marginHorizontal: 4,
24
- opacity: 0.5,
25
- },
26
- });
@@ -1,3 +0,0 @@
1
- export * from './group';
2
- export * from './select-credential';
3
- export * from './share-credential';
@@ -1,55 +0,0 @@
1
- import { PresentationDefinitionRequestedCredential } from '@procivis/react-native-one-core';
2
- import React, { FC, useMemo } from 'react';
3
- import { Dimensions, ImageSourcePropType } from 'react-native';
4
-
5
- import { CredentialDetailsCardListItem } from '../../../ui-components';
6
- import { useCoreConfig } from '../../../utils/hooks/core/core-config';
7
- import { useCredentialDetail } from '../../../utils/hooks/core/credentials';
8
- import {
9
- selectCredentialCardFromCredential,
10
- ShareCredentialCardLabels,
11
- } from '../../../utils/parsers/credential-sharing';
12
-
13
- export const SelectCredential: FC<{
14
- credentialId: string;
15
- labels: ShareCredentialCardLabels;
16
- language?: string;
17
- lastItem: boolean;
18
- onImagePreview: (title: string, image: ImageSourcePropType) => void;
19
- onPress?: () => void;
20
- request: PresentationDefinitionRequestedCredential;
21
- selected: boolean;
22
- testID: string;
23
- }> = ({ credentialId, labels, language, lastItem, onImagePreview, onPress, request, selected, testID }) => {
24
- const { data: credential } = useCredentialDetail(credentialId);
25
- const { data: config } = useCoreConfig();
26
- const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);
27
-
28
- if (!credential || !config) {
29
- return null;
30
- }
31
-
32
- const { card, attributes } = selectCredentialCardFromCredential(
33
- credential,
34
- selected,
35
- request,
36
- config,
37
- testID,
38
- labels,
39
- language,
40
- );
41
-
42
- return (
43
- <CredentialDetailsCardListItem
44
- attributes={attributes}
45
- card={{
46
- ...card,
47
- onHeaderPress: onPress,
48
- width: cardWidth,
49
- }}
50
- expanded={selected}
51
- lastItem={lastItem}
52
- onImagePreview={onImagePreview}
53
- />
54
- );
55
- };