@procivis/one-react-native-components 0.3.121 → 0.3.130

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/lib/commonjs/components/credential/credential.js +2 -1
  2. package/lib/commonjs/components/credential/credential.js.map +1 -1
  3. package/lib/commonjs/components/history/history-list-item-icon.js +2 -3
  4. package/lib/commonjs/components/history/history-list-item-icon.js.map +1 -1
  5. package/lib/commonjs/components/history/history-list-item.js +2 -8
  6. package/lib/commonjs/components/history/history-list-item.js.map +1 -1
  7. package/lib/commonjs/components/history/history-list-screen.js +1 -1
  8. package/lib/commonjs/components/history/history-list-screen.js.map +1 -1
  9. package/lib/commonjs/components/index.js +0 -11
  10. package/lib/commonjs/components/index.js.map +1 -1
  11. package/lib/commonjs/components/proof-request/v1/select-credential.js +2 -1
  12. package/lib/commonjs/components/proof-request/v1/select-credential.js.map +1 -1
  13. package/lib/commonjs/components/proof-request/v1/share-credential.js +2 -1
  14. package/lib/commonjs/components/proof-request/v1/share-credential.js.map +1 -1
  15. package/lib/commonjs/components/proof-request/v2/select-credential-v2.js +2 -1
  16. package/lib/commonjs/components/proof-request/v2/select-credential-v2.js.map +1 -1
  17. package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js +3 -1
  18. package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
  19. package/lib/commonjs/components/proof-request/v2/share-credential-v2.js +4 -2
  20. package/lib/commonjs/components/proof-request/v2/share-credential-v2.js.map +1 -1
  21. package/lib/commonjs/ui-components/credential/card/credential-details-card.js +3 -1
  22. package/lib/commonjs/ui-components/credential/card/credential-details-card.js.map +1 -1
  23. package/lib/commonjs/ui-components/header/foldable-header.js.map +1 -1
  24. package/lib/commonjs/ui-components/header/header.js.map +1 -1
  25. package/lib/commonjs/ui-components/history/history-details.js +2 -2
  26. package/lib/commonjs/ui-components/history/history-details.js.map +1 -1
  27. package/lib/commonjs/ui-components/icons/contact.js.map +1 -1
  28. package/lib/commonjs/ui-components/icons/credential.js +3 -3
  29. package/lib/commonjs/ui-components/icons/credential.js.map +1 -1
  30. package/lib/commonjs/ui-components/icons/icons.js +20 -1
  31. package/lib/commonjs/ui-components/icons/icons.js.map +1 -1
  32. package/lib/commonjs/ui-components/loader/loading-result.js +2 -0
  33. package/lib/commonjs/ui-components/loader/loading-result.js.map +1 -1
  34. package/lib/commonjs/ui-components/screens/nerd-mode-screen.js +7 -33
  35. package/lib/commonjs/ui-components/screens/nerd-mode-screen.js.map +1 -1
  36. package/lib/commonjs/utils/date.js +4 -5
  37. package/lib/commonjs/utils/date.js.map +1 -1
  38. package/lib/commonjs/utils/hooks/core/cache.js +7 -4
  39. package/lib/commonjs/utils/hooks/core/cache.js.map +1 -1
  40. package/lib/commonjs/utils/hooks/core/core-config.js +1 -6
  41. package/lib/commonjs/utils/hooks/core/core-config.js.map +1 -1
  42. package/lib/commonjs/utils/hooks/core/core-context.js +0 -15
  43. package/lib/commonjs/utils/hooks/core/core-context.js.map +1 -1
  44. package/lib/commonjs/utils/hooks/core/credentials.js +15 -1
  45. package/lib/commonjs/utils/hooks/core/credentials.js.map +1 -1
  46. package/lib/commonjs/utils/hooks/core/index.js +0 -11
  47. package/lib/commonjs/utils/hooks/core/index.js.map +1 -1
  48. package/lib/commonjs/utils/hooks/core/trust-list.js +19 -3
  49. package/lib/commonjs/utils/hooks/core/trust-list.js.map +1 -1
  50. package/lib/commonjs/utils/hooks/core/verifier-instance.js +22 -3
  51. package/lib/commonjs/utils/hooks/core/verifier-instance.js.map +1 -1
  52. package/lib/commonjs/utils/hooks/core/wallet-unit.js +2 -2
  53. package/lib/commonjs/utils/hooks/core/wallet-unit.js.map +1 -1
  54. package/lib/commonjs/utils/parsers/credential-sharing-v2.js +14 -14
  55. package/lib/commonjs/utils/parsers/credential-sharing-v2.js.map +1 -1
  56. package/lib/commonjs/utils/parsers/credential-sharing.js +20 -18
  57. package/lib/commonjs/utils/parsers/credential-sharing.js.map +1 -1
  58. package/lib/commonjs/utils/parsers/credential.js +36 -22
  59. package/lib/commonjs/utils/parsers/credential.js.map +1 -1
  60. package/lib/commonjs/utils/parsers/query.js +1 -1
  61. package/lib/commonjs/utils/parsers/query.js.map +1 -1
  62. package/lib/commonjs/utils/translations.js +15 -0
  63. package/lib/commonjs/utils/translations.js.map +1 -0
  64. package/lib/module/components/credential/credential.js +2 -1
  65. package/lib/module/components/credential/credential.js.map +1 -1
  66. package/lib/module/components/history/history-list-item-icon.js +2 -3
  67. package/lib/module/components/history/history-list-item-icon.js.map +1 -1
  68. package/lib/module/components/history/history-list-item.js +3 -9
  69. package/lib/module/components/history/history-list-item.js.map +1 -1
  70. package/lib/module/components/history/history-list-screen.js +1 -1
  71. package/lib/module/components/history/history-list-screen.js.map +1 -1
  72. package/lib/module/components/index.js +0 -1
  73. package/lib/module/components/index.js.map +1 -1
  74. package/lib/module/components/proof-request/v1/select-credential.js +2 -1
  75. package/lib/module/components/proof-request/v1/select-credential.js.map +1 -1
  76. package/lib/module/components/proof-request/v1/share-credential.js +2 -1
  77. package/lib/module/components/proof-request/v1/share-credential.js.map +1 -1
  78. package/lib/module/components/proof-request/v2/select-credential-v2.js +2 -1
  79. package/lib/module/components/proof-request/v2/select-credential-v2.js.map +1 -1
  80. package/lib/module/components/proof-request/v2/share-credential-v2-group.js +3 -1
  81. package/lib/module/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
  82. package/lib/module/components/proof-request/v2/share-credential-v2.js +4 -2
  83. package/lib/module/components/proof-request/v2/share-credential-v2.js.map +1 -1
  84. package/lib/module/ui-components/credential/card/credential-details-card.js +3 -1
  85. package/lib/module/ui-components/credential/card/credential-details-card.js.map +1 -1
  86. package/lib/module/ui-components/header/foldable-header.js.map +1 -1
  87. package/lib/module/ui-components/header/header.js.map +1 -1
  88. package/lib/module/ui-components/history/history-details.js +3 -3
  89. package/lib/module/ui-components/history/history-details.js.map +1 -1
  90. package/lib/module/ui-components/icons/contact.js.map +1 -1
  91. package/lib/module/ui-components/icons/credential.js +1 -1
  92. package/lib/module/ui-components/icons/credential.js.map +1 -1
  93. package/lib/module/ui-components/icons/icons.js +18 -0
  94. package/lib/module/ui-components/icons/icons.js.map +1 -1
  95. package/lib/module/ui-components/loader/loading-result.js +2 -0
  96. package/lib/module/ui-components/loader/loading-result.js.map +1 -1
  97. package/lib/module/ui-components/screens/nerd-mode-screen.js +7 -33
  98. package/lib/module/ui-components/screens/nerd-mode-screen.js.map +1 -1
  99. package/lib/module/utils/date.js +4 -5
  100. package/lib/module/utils/date.js.map +1 -1
  101. package/lib/module/utils/hooks/core/cache.js +7 -4
  102. package/lib/module/utils/hooks/core/cache.js.map +1 -1
  103. package/lib/module/utils/hooks/core/core-config.js +0 -4
  104. package/lib/module/utils/hooks/core/core-config.js.map +1 -1
  105. package/lib/module/utils/hooks/core/core-context.js +0 -15
  106. package/lib/module/utils/hooks/core/core-context.js.map +1 -1
  107. package/lib/module/utils/hooks/core/credentials.js +13 -0
  108. package/lib/module/utils/hooks/core/credentials.js.map +1 -1
  109. package/lib/module/utils/hooks/core/index.js +0 -1
  110. package/lib/module/utils/hooks/core/index.js.map +1 -1
  111. package/lib/module/utils/hooks/core/trust-list.js +20 -4
  112. package/lib/module/utils/hooks/core/trust-list.js.map +1 -1
  113. package/lib/module/utils/hooks/core/verifier-instance.js +20 -2
  114. package/lib/module/utils/hooks/core/verifier-instance.js.map +1 -1
  115. package/lib/module/utils/hooks/core/wallet-unit.js +2 -2
  116. package/lib/module/utils/hooks/core/wallet-unit.js.map +1 -1
  117. package/lib/module/utils/parsers/credential-sharing-v2.js +15 -15
  118. package/lib/module/utils/parsers/credential-sharing-v2.js.map +1 -1
  119. package/lib/module/utils/parsers/credential-sharing.js +20 -18
  120. package/lib/module/utils/parsers/credential-sharing.js.map +1 -1
  121. package/lib/module/utils/parsers/credential.js +37 -23
  122. package/lib/module/utils/parsers/credential.js.map +1 -1
  123. package/lib/module/utils/parsers/query.js +1 -1
  124. package/lib/module/utils/parsers/query.js.map +1 -1
  125. package/lib/module/utils/translations.js +8 -0
  126. package/lib/module/utils/translations.js.map +1 -0
  127. package/lib/typescript/components/credential/credential.d.ts +1 -0
  128. package/lib/typescript/components/history/history-list-item.d.ts +1 -1
  129. package/lib/typescript/components/index.d.ts +0 -1
  130. package/lib/typescript/components/proof-request/v1/select-credential.d.ts +1 -0
  131. package/lib/typescript/components/proof-request/v1/share-credential.d.ts +1 -0
  132. package/lib/typescript/components/proof-request/v2/select-credential-v2.d.ts +1 -0
  133. package/lib/typescript/components/proof-request/v2/share-credential-v2-group.d.ts +1 -0
  134. package/lib/typescript/components/proof-request/v2/share-credential-v2.d.ts +1 -0
  135. package/lib/typescript/ui-components/history/history-details.d.ts +2 -2
  136. package/lib/typescript/ui-components/icons/credential.d.ts +1 -1
  137. package/lib/typescript/ui-components/icons/icons.d.ts +1 -0
  138. package/lib/typescript/ui-components/screens/nerd-mode-screen.d.ts +0 -12
  139. package/lib/typescript/utils/hooks/core/core-config.d.ts +0 -1
  140. package/lib/typescript/utils/hooks/core/core-context.d.ts +0 -1
  141. package/lib/typescript/utils/hooks/core/credentials.d.ts +2 -1
  142. package/lib/typescript/utils/hooks/core/index.d.ts +0 -1
  143. package/lib/typescript/utils/hooks/core/trust-list.d.ts +1 -4
  144. package/lib/typescript/utils/hooks/core/verifier-instance.d.ts +2 -0
  145. package/lib/typescript/utils/hooks/core/wallet-unit.d.ts +2 -2
  146. package/lib/typescript/utils/parsers/credential-sharing-v2.d.ts +3 -3
  147. package/lib/typescript/utils/parsers/credential-sharing.d.ts +6 -6
  148. package/lib/typescript/utils/parsers/credential.d.ts +5 -5
  149. package/lib/typescript/utils/parsers/query.d.ts +1 -1
  150. package/lib/typescript/utils/translations.d.ts +1 -0
  151. package/package.json +3 -3
  152. package/src/components/credential/credential.tsx +3 -0
  153. package/src/components/history/history-list-item-icon.tsx +1 -2
  154. package/src/components/history/history-list-item.tsx +4 -9
  155. package/src/components/history/history-list-screen.tsx +1 -1
  156. package/src/components/index.ts +0 -1
  157. package/src/components/proof-request/v1/select-credential.tsx +3 -1
  158. package/src/components/proof-request/v1/share-credential.tsx +3 -0
  159. package/src/components/proof-request/v2/select-credential-v2.tsx +3 -1
  160. package/src/components/proof-request/v2/share-credential-v2-group.tsx +4 -0
  161. package/src/components/proof-request/v2/share-credential-v2.tsx +5 -0
  162. package/src/ui-components/credential/card/credential-details-card.tsx +3 -2
  163. package/src/ui-components/header/foldable-header.tsx +10 -9
  164. package/src/ui-components/header/header.tsx +10 -1
  165. package/src/ui-components/history/history-details.tsx +4 -4
  166. package/src/ui-components/icons/contact.tsx +1 -1
  167. package/src/ui-components/icons/credential.tsx +1 -1
  168. package/src/ui-components/icons/icons.tsx +18 -0
  169. package/src/ui-components/loader/loading-result.tsx +7 -1
  170. package/src/ui-components/screens/nerd-mode-screen.tsx +2 -52
  171. package/src/utils/date.ts +7 -14
  172. package/src/utils/hooks/core/cache.ts +10 -3
  173. package/src/utils/hooks/core/core-config.ts +1 -6
  174. package/src/utils/hooks/core/core-context.tsx +0 -24
  175. package/src/utils/hooks/core/credentials.ts +13 -0
  176. package/src/utils/hooks/core/index.ts +0 -1
  177. package/src/utils/hooks/core/trust-list.ts +22 -11
  178. package/src/utils/hooks/core/verifier-instance.ts +23 -2
  179. package/src/utils/hooks/core/wallet-unit.ts +3 -3
  180. package/src/utils/parsers/credential-sharing-v2.tsx +29 -12
  181. package/src/utils/parsers/credential-sharing.tsx +33 -16
  182. package/src/utils/parsers/credential.ts +45 -14
  183. package/src/utils/parsers/query.ts +3 -0
  184. package/src/utils/translations.ts +10 -0
  185. package/lib/commonjs/components/entity/EntityButtons.js +0 -64
  186. package/lib/commonjs/components/entity/EntityButtons.js.map +0 -1
  187. package/lib/commonjs/components/entity/entity-attributes.js +0 -65
  188. package/lib/commonjs/components/entity/entity-attributes.js.map +0 -1
  189. package/lib/commonjs/components/entity/entity-details-with-buttons.js +0 -67
  190. package/lib/commonjs/components/entity/entity-details-with-buttons.js.map +0 -1
  191. package/lib/commonjs/components/entity/entity-details.js +0 -101
  192. package/lib/commonjs/components/entity/entity-details.js.map +0 -1
  193. package/lib/commonjs/components/entity/index.js +0 -14
  194. package/lib/commonjs/components/entity/index.js.map +0 -1
  195. package/lib/commonjs/utils/hooks/core/trust-entity.js +0 -147
  196. package/lib/commonjs/utils/hooks/core/trust-entity.js.map +0 -1
  197. package/lib/module/components/entity/EntityButtons.js +0 -56
  198. package/lib/module/components/entity/EntityButtons.js.map +0 -1
  199. package/lib/module/components/entity/entity-attributes.js +0 -57
  200. package/lib/module/components/entity/entity-attributes.js.map +0 -1
  201. package/lib/module/components/entity/entity-details-with-buttons.js +0 -58
  202. package/lib/module/components/entity/entity-details-with-buttons.js.map +0 -1
  203. package/lib/module/components/entity/entity-details.js +0 -92
  204. package/lib/module/components/entity/entity-details.js.map +0 -1
  205. package/lib/module/components/entity/index.js +0 -3
  206. package/lib/module/components/entity/index.js.map +0 -1
  207. package/lib/module/utils/hooks/core/trust-entity.js +0 -136
  208. package/lib/module/utils/hooks/core/trust-entity.js.map +0 -1
  209. package/lib/typescript/components/entity/EntityButtons.d.ts +0 -14
  210. package/lib/typescript/components/entity/entity-attributes.d.ts +0 -15
  211. package/lib/typescript/components/entity/entity-details-with-buttons.d.ts +0 -18
  212. package/lib/typescript/components/entity/entity-details.d.ts +0 -21
  213. package/lib/typescript/components/entity/index.d.ts +0 -3
  214. package/lib/typescript/utils/hooks/core/trust-entity.d.ts +0 -17
  215. package/src/components/entity/EntityButtons.tsx +0 -79
  216. package/src/components/entity/entity-attributes.tsx +0 -80
  217. package/src/components/entity/entity-details-with-buttons.tsx +0 -75
  218. package/src/components/entity/entity-details.tsx +0 -145
  219. package/src/components/entity/index.ts +0 -4
  220. package/src/utils/hooks/core/trust-entity.ts +0 -172
@@ -41,12 +41,12 @@ const getAttributeSelectorStatus = (claim, selected, force) => {
41
41
  }
42
42
  }
43
43
  };
44
- const shareCredentialCardAttributeFromV2Claim = (claim, selection, parentShared, parentUserSelected, config, testID, nested, listValue) => {
44
+ const shareCredentialCardAttributeFromV2Claim = (claim, selection, parentShared, parentUserSelected, config, testID, language, nested, listValue) => {
45
45
  const attributeShared = Boolean(selection === null || selection === void 0 ? void 0 : selection.some(path => path.startsWith(claim.path))) || parentShared && claim.required;
46
46
  const userSelected = parentUserSelected || Boolean(selection === null || selection === void 0 ? void 0 : selection.includes(claim.path));
47
47
  const selected = !claim.required && attributeShared;
48
48
  const status = selection ? getAttributeSelectorStatus(claim, attributeShared, parentUserSelected || attributeShared && !userSelected) : undefined;
49
- const attribute = (0, _.detailsCardAttributeFromClaim)(v2PresentationClaimToClaim(claim), config, testID);
49
+ const attribute = (0, _.detailsCardAttributeFromClaim)(v2PresentationClaimToClaim(claim), config, testID, language);
50
50
  const disabledStatus = [_uiComponents.SelectorStatus.Disabled, _uiComponents.SelectorStatus.Rejected, _uiComponents.SelectorStatus.Required];
51
51
  const disabled = attribute.disabled || !status || disabledStatus.includes(status);
52
52
  const credentialAttribute = {
@@ -69,12 +69,12 @@ const shareCredentialCardAttributeFromV2Claim = (claim, selection, parentShared,
69
69
  attributes: undefined,
70
70
  image: undefined,
71
71
  value: undefined,
72
- values: claim.value.value.map(v => shareCredentialCardAttributeFromV2Claim(v, selection, attributeShared, userSelected, config, testID, true, false))
72
+ values: claim.value.value.map(v => shareCredentialCardAttributeFromV2Claim(v, selection, attributeShared, userSelected, config, testID, language, true, false))
73
73
  };
74
74
  } else if (claim.schema.datatype === 'OBJECT') {
75
75
  return {
76
76
  ...credentialAttribute,
77
- attributes: claim.value.value.map(v => shareCredentialCardAttributeFromV2Claim(v, selection, attributeShared, userSelected, config, testID, true)),
77
+ attributes: claim.value.value.map(v => shareCredentialCardAttributeFromV2Claim(v, selection, attributeShared, userSelected, config, testID, language, true)),
78
78
  image: undefined,
79
79
  value: undefined,
80
80
  valueErrorColor: undefined,
@@ -102,28 +102,28 @@ const missingCredentialCardFromFailureHint = (failureHint, notice, testID, label
102
102
  };
103
103
  };
104
104
  exports.missingCredentialCardFromFailureHint = missingCredentialCardFromFailureHint;
105
- const shareCredentialCardFromV2PresentationCredential = (credential, failureHint, expanded, multipleCredentialsAvailable, selectedFields, config, testID, labels) => {
105
+ const shareCredentialCardFromV2PresentationCredential = (credential, failureHint, expanded, multipleCredentialsAvailable, purpose, selectedFields, config, testID, labels, language) => {
106
106
  var _credential$issuer, _credential$claims$ma;
107
107
  const selectiveDisclosureSupported = (0, _.supportsSelectiveDisclosure)(credential ? {
108
108
  ...credential,
109
109
  issuer: (_credential$issuer = credential.issuer) === null || _credential$issuer === void 0 ? void 0 : _credential$issuer.id
110
110
  } : undefined, config);
111
- const notice = selectiveDisclosureSupported === false ? {
112
- noticeIcon: _uiComponents.CredentialNoticeWarningIcon,
113
- text: labels.selectiveDisclosureNotice
111
+ const notice = purpose ? {
112
+ noticeIcon: _uiComponents.PurposeInfoIcon,
113
+ text: purpose
114
114
  } : undefined;
115
115
  const cardTestId = (0, _testID.concatTestID)(testID, 'card');
116
116
  const card = credential ? (0, _credentialSharing.validityCheckedCardFromCredential)({
117
117
  ...credential,
118
118
  claims: []
119
- }, expanded, multipleCredentialsAvailable, config, notice, cardTestId, labels) : missingCredentialCardFromFailureHint(failureHint, notice, cardTestId, labels);
119
+ }, expanded, selectiveDisclosureSupported, multipleCredentialsAvailable, config, notice, cardTestId, labels, language) : missingCredentialCardFromFailureHint(failureHint, notice, cardTestId, labels);
120
120
  return {
121
- 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))) !== null && _credential$claims$ma !== void 0 ? _credential$claims$ma : [],
121
+ 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 : [],
122
122
  card
123
123
  };
124
124
  };
125
125
  exports.shareCredentialCardFromV2PresentationCredential = shareCredentialCardFromV2PresentationCredential;
126
- const selectCredentialCardFromV2Credential = (credential, selected, multiple, config, testID, labels) => {
126
+ const selectCredentialCardFromV2Credential = (credential, selected, multiple, config, testID, labels, language) => {
127
127
  var _credential$issuer2, _credential$claims$ma2;
128
128
  const selectiveDisclosureSupported = (0, _.supportsSelectiveDisclosure)(credential ? {
129
129
  ...credential,
@@ -135,7 +135,7 @@ const selectCredentialCardFromV2Credential = (credential, selected, multiple, co
135
135
  });
136
136
  const notice = selectiveDisclosureSupported === false ? {
137
137
  noticeIcon: _uiComponents.CredentialNoticeWarningIcon,
138
- text: labels.selectiveDisclosureNotice
138
+ text: labels.selectiveDisclosure
139
139
  } : undefined;
140
140
  const {
141
141
  header,
@@ -143,7 +143,7 @@ const selectCredentialCardFromV2Credential = (credential, selected, multiple, co
143
143
  } = (0, _.getCredentialCardPropsFromCredential)({
144
144
  ...credential,
145
145
  claims: credential.claims.map(v2PresentationClaimToClaim)
146
- }, credential.claims.map(v2PresentationClaimToClaim), config, notice, testID, labels);
146
+ }, credential.claims.map(v2PresentationClaimToClaim), config, notice, testID, labels, language);
147
147
  const card = {
148
148
  header: {
149
149
  ...header,
@@ -152,7 +152,7 @@ const selectCredentialCardFromV2Credential = (credential, selected, multiple, co
152
152
  ...cardProps
153
153
  };
154
154
  return {
155
- attributes: (_credential$claims$ma2 = credential === null || credential === void 0 ? void 0 : credential.claims.map(v => shareCredentialCardAttributeFromV2Claim(v, undefined, false, false, config, testID))) !== null && _credential$claims$ma2 !== void 0 ? _credential$claims$ma2 : [],
155
+ attributes: (_credential$claims$ma2 = credential === null || credential === void 0 ? void 0 : credential.claims.map(v => shareCredentialCardAttributeFromV2Claim(v, undefined, false, false, config, testID, language))) !== null && _credential$claims$ma2 !== void 0 ? _credential$claims$ma2 : [],
156
156
  card
157
157
  };
158
158
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_uiComponents","_testID","_","_credentialSharing","e","__esModule","default","v2ClaimValueToClaimValue","value","type_","map","c","v2PresentationClaimToClaim","claim","schema","path","getAttributeSelectorStatus","selected","force","required","SelectorStatus","Required","userSelection","SelectedCheckmark","Empty","shareCredentialCardAttributeFromV2Claim","selection","parentShared","parentUserSelected","config","testID","nested","listValue","attributeShared","Boolean","some","startsWith","userSelected","includes","status","undefined","attribute","detailsCardAttributeFromClaim","disabledStatus","Disabled","Rejected","disabled","credentialAttribute","id","rightAccessory","createElement","Selector","array","attributes","image","values","v","datatype","valueErrorColor","exports","missingCredentialCardFromFailureHint","failureHint","notice","labels","_failureHint$credenti","_failureHint$credenti2","cardImage","color","header","credentialDetailErrorColor","credentialDetailPrimary","missingCredential","credentialDetailTestID","concatTestID","credentialName","credentialSchema","name","statusIcon","CredentialWarningIcon","shareCredentialCardFromV2PresentationCredential","credential","expanded","multipleCredentialsAvailable","selectedFields","_credential$issuer","_credential$claims$ma","selectiveDisclosureSupported","supportsSelectiveDisclosure","issuer","noticeIcon","CredentialNoticeWarningIcon","text","selectiveDisclosureNotice","cardTestId","card","validityCheckedCardFromCredential","claims","selectCredentialCardFromV2Credential","multiple","_credential$issuer2","_credential$claims$ma2","selectedStatus","SelectedRadio","cardProps","getCredentialCardPropsFromCredential","accessory","getV2CredentialClaimAllSubpaths","flatMap","getV2CredentialAvailablePaths"],"sources":["credential-sharing-v2.tsx"],"sourcesContent":["import {\n Claim,\n ClaimValue,\n CoreConfig,\n CredentialQueryFailureHint,\n PresentationDefinitionV2Claim,\n PresentationDefinitionV2ClaimValue,\n PresentationDefinitionV2Credential,\n} from '@procivis/react-native-one-core';\nimport React from 'react';\n\nimport {\n CredentialAttribute,\n CredentialCardNotice,\n CredentialCardProps,\n CredentialNoticeWarningIcon,\n CredentialWarningIcon,\n Selector,\n SelectorStatus,\n} from '../../ui-components';\nimport { concatTestID } from '../testID';\nimport {\n CredentialDetailsCardPropsWithoutWidth,\n detailsCardAttributeFromClaim,\n getCredentialCardPropsFromCredential,\n supportsSelectiveDisclosure,\n} from '.';\nimport { ShareCredentialCardLabels, validityCheckedCardFromCredential } from './credential-sharing';\n\nconst v2ClaimValueToClaimValue = (value: PresentationDefinitionV2ClaimValue): ClaimValue => {\n if (value.type_ !== 'NESTED') {\n return value;\n }\n return {\n type_: 'NESTED',\n value: value.value.map((c) => v2PresentationClaimToClaim(c)),\n };\n};\n\nconst v2PresentationClaimToClaim = (claim: PresentationDefinitionV2Claim): Claim => {\n return {\n schema: claim.schema,\n path: claim.path,\n value: v2ClaimValueToClaimValue(claim.value),\n };\n};\n\nconst getAttributeSelectorStatus = (\n claim: PresentationDefinitionV2Claim,\n selected: boolean,\n force: boolean,\n): SelectorStatus | undefined => {\n if (claim.required && selected) {\n return SelectorStatus.Required;\n }\n if (force) {\n return SelectorStatus.Required;\n }\n if (claim.userSelection) {\n if (selected) {\n return SelectorStatus.SelectedCheckmark;\n } else {\n return SelectorStatus.Empty;\n }\n }\n};\n\nexport const shareCredentialCardAttributeFromV2Claim = (\n claim: PresentationDefinitionV2Claim,\n selection: string[] | undefined,\n parentShared: boolean,\n parentUserSelected: boolean,\n config: CoreConfig,\n testID: string,\n nested?: boolean,\n listValue?: boolean,\n): CredentialAttribute => {\n const attributeShared =\n Boolean(selection?.some((path) => path.startsWith(claim.path))) || (parentShared && claim.required);\n const userSelected = parentUserSelected || Boolean(selection?.includes(claim.path));\n const selected = !claim.required && attributeShared;\n const status = selection\n ? getAttributeSelectorStatus(claim, attributeShared, parentUserSelected || (attributeShared && !userSelected))\n : undefined;\n const attribute = detailsCardAttributeFromClaim(v2PresentationClaimToClaim(claim), config, testID);\n const disabledStatus = [SelectorStatus.Disabled, SelectorStatus.Rejected, SelectorStatus.Required];\n const disabled = attribute.disabled || !status || disabledStatus.includes(status);\n const credentialAttribute: CredentialAttribute = {\n ...attribute,\n disabled,\n id: claim.path,\n listValue,\n nested,\n path: claim.path,\n rightAccessory: status && <Selector status={status} />,\n selected,\n testID,\n };\n if (claim.value.type_ === 'NESTED') {\n if (claim.schema.array) {\n return {\n ...credentialAttribute,\n attributes: undefined,\n image: undefined,\n value: undefined,\n values: claim.value.value.map((v) =>\n shareCredentialCardAttributeFromV2Claim(\n v,\n selection,\n attributeShared,\n userSelected,\n config,\n testID,\n true,\n false,\n ),\n ),\n };\n } else if (claim.schema.datatype === 'OBJECT') {\n return {\n ...credentialAttribute,\n attributes: claim.value.value.map((v) =>\n shareCredentialCardAttributeFromV2Claim(v, selection, attributeShared, userSelected, config, testID, true),\n ),\n image: undefined,\n value: undefined,\n valueErrorColor: undefined,\n values: undefined,\n };\n }\n }\n return credentialAttribute;\n};\n\nexport const missingCredentialCardFromFailureHint = (\n failureHint: CredentialQueryFailureHint | undefined,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n return {\n cardImage: undefined,\n color: undefined,\n header: {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.missingCredential,\n credentialDetailTestID: concatTestID(testID, 'header.missing'),\n credentialName: failureHint?.credentialSchema?.name ?? '',\n statusIcon: CredentialWarningIcon,\n },\n testID,\n ...notice,\n };\n};\n\nexport const shareCredentialCardFromV2PresentationCredential = (\n credential: PresentationDefinitionV2Credential | undefined,\n failureHint: CredentialQueryFailureHint | undefined,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n selectedFields: string[] | undefined,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n noticeIcon: CredentialNoticeWarningIcon,\n text: labels.selectiveDisclosureNotice,\n }\n : undefined;\n const cardTestId = concatTestID(testID, 'card');\n const card = credential\n ? validityCheckedCardFromCredential(\n {\n ...credential,\n claims: [],\n },\n expanded,\n multipleCredentialsAvailable,\n config,\n notice,\n cardTestId,\n labels,\n )\n : missingCredentialCardFromFailureHint(failureHint, notice, cardTestId, labels);\n\n return {\n attributes:\n credential?.claims.map((v) =>\n shareCredentialCardAttributeFromV2Claim(v, selectedFields ?? [], true, false, config, testID),\n ) ?? [],\n card,\n };\n};\n\nexport const selectCredentialCardFromV2Credential = (\n credential: PresentationDefinitionV2Credential,\n selected: boolean,\n multiple: boolean,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const selectedStatus = multiple ? SelectorStatus.SelectedCheckmark : SelectorStatus.SelectedRadio;\n const rightAccessory = <Selector status={selected ? selectedStatus : SelectorStatus.Empty} />;\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n noticeIcon: CredentialNoticeWarningIcon,\n text: labels.selectiveDisclosureNotice,\n }\n : undefined;\n const { header, ...cardProps } = getCredentialCardPropsFromCredential(\n {\n ...credential,\n claims: credential.claims.map(v2PresentationClaimToClaim),\n },\n credential.claims.map(v2PresentationClaimToClaim),\n config,\n notice,\n testID,\n labels,\n );\n const card = {\n header: {\n ...header,\n accessory: rightAccessory,\n },\n ...cardProps,\n };\n return {\n attributes:\n credential?.claims.map((v) =>\n shareCredentialCardAttributeFromV2Claim(v, undefined, false, false, config, testID),\n ) ?? [],\n card,\n };\n};\n\nexport const getV2CredentialClaimAllSubpaths = (claim: PresentationDefinitionV2Claim): string[] => {\n if (claim.value.type_ !== 'NESTED') {\n return [claim.path];\n }\n return [claim.path, ...claim.value.value.flatMap(getV2CredentialClaimAllSubpaths)];\n};\n\nexport const getV2CredentialAvailablePaths = (credential: PresentationDefinitionV2Credential): string[] => {\n return credential.claims.flatMap(getV2CredentialClaimAllSubpaths);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_uiComponents","_testID","_","_credentialSharing","e","__esModule","default","v2ClaimValueToClaimValue","value","type_","map","c","v2PresentationClaimToClaim","claim","schema","path","getAttributeSelectorStatus","selected","force","required","SelectorStatus","Required","userSelection","SelectedCheckmark","Empty","shareCredentialCardAttributeFromV2Claim","selection","parentShared","parentUserSelected","config","testID","language","nested","listValue","attributeShared","Boolean","some","startsWith","userSelected","includes","status","undefined","attribute","detailsCardAttributeFromClaim","disabledStatus","Disabled","Rejected","disabled","credentialAttribute","id","rightAccessory","createElement","Selector","array","attributes","image","values","v","datatype","valueErrorColor","exports","missingCredentialCardFromFailureHint","failureHint","notice","labels","_failureHint$credenti","_failureHint$credenti2","cardImage","color","header","credentialDetailErrorColor","credentialDetailPrimary","missingCredential","credentialDetailTestID","concatTestID","credentialName","credentialSchema","name","statusIcon","CredentialWarningIcon","shareCredentialCardFromV2PresentationCredential","credential","expanded","multipleCredentialsAvailable","purpose","selectedFields","_credential$issuer","_credential$claims$ma","selectiveDisclosureSupported","supportsSelectiveDisclosure","issuer","noticeIcon","PurposeInfoIcon","text","cardTestId","card","validityCheckedCardFromCredential","claims","selectCredentialCardFromV2Credential","multiple","_credential$issuer2","_credential$claims$ma2","selectedStatus","SelectedRadio","CredentialNoticeWarningIcon","selectiveDisclosure","cardProps","getCredentialCardPropsFromCredential","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":[]}
@@ -10,16 +10,22 @@ var _icons = require("../../ui-components/icons");
10
10
  var _testID = require("../testID");
11
11
  var _credential2 = require("./credential");
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- const validityCheckedCardFromCredential = (credential, expanded, multipleCredentialsAvailable, config, notice, testID, labels) => {
13
+ const validityCheckedCardFromCredential = (credential, expanded, selectiveDisclosureSupported, multipleCredentialsAvailable, config, notice, testID, labels, language) => {
14
14
  let credentialHeaderDetail;
15
- if (!expanded && multipleCredentialsAvailable) {
15
+ if (selectiveDisclosureSupported === false) {
16
+ credentialHeaderDetail = {
17
+ credentialDetailPrimary: labels.selectiveDisclosure,
18
+ credentialDetailTestID: (0, _testID.concatTestID)(testID, 'header.nonSelectiveDisclosure'),
19
+ statusIcon: _icons.CredentialWarningIcon
20
+ };
21
+ } else if (!expanded && multipleCredentialsAvailable) {
16
22
  credentialHeaderDetail = {
17
23
  credentialDetailPrimary: labels.multipleCredentials,
18
24
  credentialDetailTestID: (0, _testID.concatTestID)(testID, 'header.multiple'),
19
25
  statusIcon: _icons.CredentialWarningIcon
20
26
  };
21
27
  }
22
- const card = (0, _credential2.getCredentialCardPropsFromCredential)(credential, credential.claims, config, notice, testID, labels);
28
+ const card = (0, _credential2.getCredentialCardPropsFromCredential)(credential, credential.claims, config, notice, testID, labels, language);
23
29
  return {
24
30
  ...card,
25
31
  header: {
@@ -113,11 +119,11 @@ const getFullyNestedFields = (fields, credentialId) => {
113
119
  field
114
120
  }) => field);
115
121
  };
116
- const shareCredentialCardAttributeFromClaim = (id, config, testID, labels, claim, field) => {
122
+ const shareCredentialCardAttributeFromClaim = (id, config, testID, labels, language, claim, field) => {
117
123
  var _field$name$split$pop, _field$name, _field$name2;
118
124
  if (claim) {
119
125
  return {
120
- ...(0, _credential2.detailsCardAttributeFromClaim)(claim, config, testID),
126
+ ...(0, _credential2.detailsCardAttributeFromClaim)(claim, config, testID, language),
121
127
  id,
122
128
  path: claim.path,
123
129
  listValue: claim.isArrayElement
@@ -165,18 +171,14 @@ const setStatusForNestedObjectOrArrayFields = (attribute, status, disabled) => {
165
171
  }
166
172
  }
167
173
  };
168
- const shareCredentialCardFromCredential = (credential, expanded, multipleCredentialsAvailable, request, selectedFields, config, testID, labels) => {
174
+ const shareCredentialCardFromCredential = (credential, expanded, multipleCredentialsAvailable, request, selectedFields, config, testID, labels, language) => {
169
175
  var _credential$issuer, _credential$issuer2;
170
176
  const selectiveDisclosureSupported = (0, _credential2.supportsSelectiveDisclosure)(credential ? {
171
177
  ...credential,
172
178
  issuer: (_credential$issuer = credential.issuer) === null || _credential$issuer === void 0 ? void 0 : _credential$issuer.id
173
179
  } : undefined, config);
174
- const notice = selectiveDisclosureSupported === false ? {
175
- text: labels.selectiveDisclosureNotice,
176
- noticeIcon: _icons.CredentialNoticeWarningIcon
177
- } : undefined;
178
180
  const cardTestId = (0, _testID.concatTestID)(testID, 'card');
179
- const card = credential ? validityCheckedCardFromCredential(credential, expanded, multipleCredentialsAvailable, config, notice, cardTestId, labels) : missingCredentialCardFromRequest(request, notice, cardTestId, labels);
181
+ const card = credential ? validityCheckedCardFromCredential(credential, expanded, selectiveDisclosureSupported, multipleCredentialsAvailable, config, undefined, cardTestId, labels, language) : missingCredentialCardFromRequest(request, undefined, cardTestId, labels);
180
182
  const validityState = (0, _credential2.getValidityState)(credential ? {
181
183
  ...credential,
182
184
  issuer: (_credential$issuer2 = credential.issuer) === null || _credential$issuer2 === void 0 ? void 0 : _credential$issuer2.id
@@ -191,7 +193,7 @@ const shareCredentialCardFromCredential = (credential, expanded, multipleCredent
191
193
  }, index) => {
192
194
  const disabled = !credential || !field || field.required || !claim;
193
195
  const attribute = {
194
- ...shareCredentialCardAttributeFromClaim(id, config, (0, _testID.concatTestID)(testID, 'attribute', `${index}`), labels, claim, field),
196
+ ...shareCredentialCardAttributeFromClaim(id, config, (0, _testID.concatTestID)(testID, 'attribute', `${index}`), labels, language, claim, field),
195
197
  selected
196
198
  };
197
199
  setStatusForNestedObjectOrArrayFields(attribute, status, disabled);
@@ -203,8 +205,8 @@ const shareCredentialCardFromCredential = (credential, expanded, multipleCredent
203
205
  };
204
206
  };
205
207
  exports.shareCredentialCardFromCredential = shareCredentialCardFromCredential;
206
- const selectCredentialCardAttributeFromClaim = (id, config, testID, labels, claim, field) => {
207
- const attribute = shareCredentialCardAttributeFromClaim(id, config, testID, labels, claim, field);
208
+ const selectCredentialCardAttributeFromClaim = (id, config, testID, labels, language, claim, field) => {
209
+ const attribute = shareCredentialCardAttributeFromClaim(id, config, testID, labels, language, claim, field);
208
210
  if (!claim) {
209
211
  return attribute;
210
212
  }
@@ -214,7 +216,7 @@ const selectCredentialCardAttributeFromClaim = (id, config, testID, labels, clai
214
216
  };
215
217
  };
216
218
  exports.selectCredentialCardAttributeFromClaim = selectCredentialCardAttributeFromClaim;
217
- const selectCredentialCardFromCredential = (credential, selected, request, config, testID, labels) => {
219
+ const selectCredentialCardFromCredential = (credential, selected, request, config, testID, labels, language) => {
218
220
  var _credential$issuer3;
219
221
  const selectiveDisclosureSupported = (0, _credential2.supportsSelectiveDisclosure)(credential ? {
220
222
  ...credential,
@@ -224,13 +226,13 @@ const selectCredentialCardFromCredential = (credential, selected, request, confi
224
226
  status: selected ? _credential.SelectorStatus.SelectedRadio : _credential.SelectorStatus.Empty
225
227
  });
226
228
  const notice = selectiveDisclosureSupported === false ? {
227
- text: labels.selectiveDisclosureNotice,
229
+ text: labels.selectiveDisclosure,
228
230
  noticeIcon: _icons.CredentialNoticeWarningIcon
229
231
  } : undefined;
230
232
  const {
231
233
  header,
232
234
  ...cardProps
233
- } = (0, _credential2.getCredentialCardPropsFromCredential)(credential, credential.claims, config, notice, testID, labels);
235
+ } = (0, _credential2.getCredentialCardPropsFromCredential)(credential, credential.claims, config, notice, testID, labels, language);
234
236
  const card = {
235
237
  header: {
236
238
  ...header,
@@ -244,7 +246,7 @@ const selectCredentialCardFromCredential = (credential, selected, request, confi
244
246
  }) => {
245
247
  return path === field.keyMap[credential.id];
246
248
  });
247
- const attribute = selectCredentialCardAttributeFromClaim(field.id, config, testID, labels, claim, field);
249
+ const attribute = selectCredentialCardAttributeFromClaim(field.id, config, testID, labels, language, claim, field);
248
250
  return {
249
251
  ...attribute,
250
252
  rightAccessory: /*#__PURE__*/_react.default.createElement(_credential.Selector, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_credential","_icons","_testID","_credential2","e","__esModule","default","validityCheckedCardFromCredential","credential","expanded","multipleCredentialsAvailable","config","notice","testID","labels","credentialHeaderDetail","credentialDetailPrimary","multipleCredentials","credentialDetailTestID","concatTestID","statusIcon","CredentialWarningIcon","card","getCredentialCardPropsFromCredential","claims","header","exports","missingCredentialCardFromRequest","request","_request$name","cardImage","undefined","color","credentialDetailErrorColor","missingCredential","credentialName","name","id","getAttributeSelectorStatus","field","validityState","claim","selected","ValidityState","Valid","SelectorStatus","Rejected","required","Required","Disabled","SelectedCheckmark","Empty","spreadClaims","reduce","acc","result","value","type_","nestedClaimsWithPath","map","c","isArrayElement","schema","array","path","split","pop","key","push","getDisplayedAttributes","selectiveDisclosureSupported","selectedFields","isApplicable","applicableCredentials","includes","fields","fieldsWithNoKeyMapping","filter","keyMap","fullyNestedFields","getFullyNestedFields","find","status","credentialId","allKeys","every","k","startsWith","shareCredentialCardAttributeFromClaim","_field$name$split$pop","_field$name","_field$name2","detailsCardAttributeFromClaim","listValue","missingAttribute","valueErrorColor","setStatusForNestedObjectOrArrayFields","attribute","disabled","accessory","createElement","Selector","isObject","attributes","length","isArray","values","rightAccessory","_attribute$attributes","nested","nestedAttribute","shareCredentialCardFromCredential","_credential$issuer","_credential$issuer2","supportsSelectiveDisclosure","issuer","text","selectiveDisclosureNotice","noticeIcon","CredentialNoticeWarningIcon","cardTestId","getValidityState","displayedAttributes","index","nestAttributes","selectCredentialCardAttributeFromClaim","RequiredAttributeIcon","selectCredentialCardFromCredential","_credential$issuer3","SelectedRadio","cardProps"],"sources":["credential-sharing.tsx"],"sourcesContent":["import {\n Claim,\n CoreConfig,\n CredentialDetail,\n PresentationDefinitionField,\n PresentationDefinitionRequestedCredential,\n} from '@procivis/react-native-one-core';\nimport React from 'react';\n\nimport {\n CredentialAttribute,\n CredentialCardProps,\n CredentialHeaderProps,\n Selector,\n SelectorStatus,\n} from '../../ui-components/credential';\nimport { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';\nimport { CredentialNoticeWarningIcon, CredentialWarningIcon, RequiredAttributeIcon } from '../../ui-components/icons';\nimport { concatTestID } from '../testID';\nimport {\n CardLabels,\n CredentialDetailsCardPropsWithoutWidth,\n detailsCardAttributeFromClaim,\n getCredentialCardPropsFromCredential,\n getValidityState,\n nestAttributes,\n supportsSelectiveDisclosure,\n ValidityState,\n} from './credential';\n\nexport const validityCheckedCardFromCredential = (\n credential: CredentialDetail,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n config: CoreConfig,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'testID' | 'width'> => {\n let credentialHeaderDetail:\n | Pick<\n CredentialHeaderProps,\n | 'credentialDetailPrimary'\n | 'credentialDetailSecondary'\n | 'credentialDetailErrorColor'\n | 'credentialDetailTestID'\n | 'statusIcon'\n >\n | undefined;\n if (!expanded && multipleCredentialsAvailable) {\n credentialHeaderDetail = {\n credentialDetailPrimary: labels.multipleCredentials,\n credentialDetailTestID: concatTestID(testID, 'header.multiple'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n const card = getCredentialCardPropsFromCredential(credential, credential.claims, config, notice, testID, labels);\n return {\n ...card,\n header: {\n ...card.header,\n ...credentialHeaderDetail,\n },\n };\n};\n\nexport const missingCredentialCardFromRequest = (\n request: PresentationDefinitionRequestedCredential,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n return {\n cardImage: undefined,\n color: undefined,\n testID,\n header: {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.missingCredential,\n credentialDetailTestID: concatTestID(testID, 'header.missing'),\n credentialName: request.name ?? request.id,\n statusIcon: CredentialWarningIcon,\n },\n ...notice,\n };\n};\n\ninterface DisplayedAttribute {\n claim?: FlatClaim;\n field?: PresentationDefinitionField;\n id: string;\n selected?: boolean;\n status: SelectorStatus;\n}\n\nconst getAttributeSelectorStatus = (\n field: PresentationDefinitionField,\n validityState: ValidityState,\n credential?: CredentialDetail,\n claim?: Claim,\n selected?: boolean,\n): SelectorStatus => {\n if (!credential || validityState !== ValidityState.Valid) {\n return SelectorStatus.Rejected;\n }\n if (field.required) {\n if (claim) {\n return SelectorStatus.Required;\n } else {\n return SelectorStatus.Rejected;\n }\n }\n if (!claim) {\n return SelectorStatus.Disabled;\n }\n return selected ? SelectorStatus.SelectedCheckmark : SelectorStatus.Empty;\n};\n\ntype FlatClaim = Claim & {\n isArrayElement?: boolean;\n};\n\n// Returns a spread list of all claims with their full JSON path as key, including all intermediate objects\nconst spreadClaims = (claims: Claim[]): FlatClaim[] => {\n return claims.reduce((acc, claim) => {\n const result = [claim];\n if (claim.value.type_ === 'NESTED') {\n const nestedClaimsWithPath: FlatClaim[] = claim.value.value.map((c) => ({\n ...c,\n isArrayElement: claim.schema.array && claim.path.split('/').pop() !== claim.schema.key,\n }));\n result.push(...spreadClaims(nestedClaimsWithPath));\n }\n return [...acc, ...result];\n }, [] as FlatClaim[]);\n};\n\nconst getDisplayedAttributes = (\n request: PresentationDefinitionRequestedCredential,\n validityState: ValidityState,\n credential?: CredentialDetail,\n selectiveDisclosureSupported?: boolean,\n selectedFields?: string[],\n): DisplayedAttribute[] => {\n const claims = credential ? spreadClaims(credential.claims) : undefined;\n const isApplicable = credential ? request.applicableCredentials.includes(credential.id) : false;\n\n let fields = request.fields;\n if (credential) {\n const fieldsWithNoKeyMapping = request.fields\n .filter((field) => !(credential.id in field.keyMap))\n .filter((field) => !isApplicable || !field.required);\n const fullyNestedFields = getFullyNestedFields(request.fields, credential.id);\n\n fields = [...fieldsWithNoKeyMapping, ...fullyNestedFields];\n }\n\n return fields.map((field) => {\n const selected = !field.required && selectedFields?.includes(field.id);\n const claim = credential\n ? claims?.find(({ path }) => {\n return path === field.keyMap[credential.id];\n })\n : undefined;\n const status =\n selectiveDisclosureSupported === false\n ? SelectorStatus.Required\n : getAttributeSelectorStatus(field, validityState, credential, claim, selected);\n return { claim, field, id: field.id, selected, status };\n });\n};\n\nconst getFullyNestedFields = (\n fields: PresentationDefinitionRequestedCredential['fields'],\n credentialId: CredentialDetail['id'],\n) => {\n const allKeys = fields.filter((field) => credentialId in field.keyMap).map((field) => field.keyMap[credentialId]);\n\n return fields\n .map((field) => ({ field, key: field.keyMap[credentialId] }))\n .filter(({ key }) => key && allKeys.every((k) => !k.startsWith(`${key}/`)))\n .map(({ field }) => field);\n};\n\nexport const shareCredentialCardAttributeFromClaim = (\n id: string,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n claim?: FlatClaim,\n field?: PresentationDefinitionField,\n): CredentialAttribute => {\n if (claim) {\n return {\n ...detailsCardAttributeFromClaim(claim, config, testID),\n id,\n path: claim.path,\n listValue: claim.isArrayElement,\n };\n }\n return {\n id,\n name: field?.name?.split('/').pop() ?? id,\n path: field?.name ?? id,\n value: labels.missingAttribute,\n valueErrorColor: true,\n };\n};\n\n// Will propagate the attribute status (right accessory + selected?) for all nested attributes\n// Note: This function MUTATES the input attribute\nconst setStatusForNestedObjectOrArrayFields = (\n attribute: CredentialAttribute,\n status?: SelectorStatus,\n disabled?: boolean,\n) => {\n const accessory = status && <Selector status={status} />;\n const isObject = attribute.attributes && attribute.attributes.length > 0;\n const isArray = attribute.values && attribute.values.length > 0;\n\n // If the attribute is not an object or array, we update the attribute and return\n if (!isObject && !isArray) {\n attribute.rightAccessory = accessory;\n attribute.disabled = disabled;\n return attribute;\n }\n\n // The object can be optional (tappable radio-checkmark), or required (checkmark)\n if (status === SelectorStatus.SelectedCheckmark || status === SelectorStatus.Empty) {\n // If it's a selectable object, the accessory is rendered next to the object title,\n // The nested attributes have no accessory, and can not be selected\n attribute.rightAccessory = accessory;\n setStatusForNestedObjectOrArrayFields(attribute, undefined, true);\n } else {\n const nested = attribute.attributes ?? attribute.values;\n // If the object is required / rejected, the accessory is rendered next to each nested attribute (except other object titles)\n // all fields are disabled\n for (const nestedAttribute of nested) {\n setStatusForNestedObjectOrArrayFields(nestedAttribute, status, true);\n }\n }\n};\n\nexport type ShareCredentialCardLabels = CardLabels & {\n selectiveDisclosureNotice: string;\n missingAttribute: string;\n missingCredential: string;\n multipleCredentials: string;\n};\n\nexport const shareCredentialCardFromCredential = (\n credential: CredentialDetail | undefined,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n request: PresentationDefinitionRequestedCredential,\n selectedFields: string[] | undefined,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n text: labels.selectiveDisclosureNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n }\n : undefined;\n const cardTestId = concatTestID(testID, 'card');\n const card = credential\n ? validityCheckedCardFromCredential(\n credential,\n expanded,\n multipleCredentialsAvailable,\n config,\n notice,\n cardTestId,\n labels,\n )\n : missingCredentialCardFromRequest(request, notice, cardTestId, labels);\n const validityState = getValidityState(credential ? { ...credential, issuer: credential.issuer?.id } : undefined);\n const displayedAttributes = getDisplayedAttributes(\n request,\n validityState,\n credential,\n selectiveDisclosureSupported,\n selectedFields,\n );\n\n const attributes: CredentialAttribute[] = displayedAttributes.map(({ claim, field, id, selected, status }, index) => {\n const disabled = !credential || !field || field.required || !claim;\n const attribute: CredentialAttribute = {\n ...shareCredentialCardAttributeFromClaim(\n id,\n config,\n concatTestID(testID, 'attribute', `${index}`),\n labels,\n claim,\n field,\n ),\n selected,\n };\n\n setStatusForNestedObjectOrArrayFields(attribute, status, disabled);\n return attribute;\n });\n return {\n attributes: nestAttributes(attributes),\n card,\n };\n};\n\nexport const selectCredentialCardAttributeFromClaim = (\n id: string,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n claim?: FlatClaim,\n field?: PresentationDefinitionField,\n): CredentialAttribute => {\n const attribute = shareCredentialCardAttributeFromClaim(id, config, testID, labels, claim, field);\n if (!claim) {\n return attribute;\n }\n return {\n ...attribute,\n rightAccessory: RequiredAttributeIcon,\n };\n};\n\nexport const selectCredentialCardFromCredential = (\n credential: CredentialDetail,\n selected: boolean,\n request: PresentationDefinitionRequestedCredential,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const rightAccessory = <Selector status={selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty} />;\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n text: labels.selectiveDisclosureNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n }\n : undefined;\n const { header, ...cardProps } = getCredentialCardPropsFromCredential(\n credential,\n credential.claims,\n config,\n notice,\n testID,\n labels,\n );\n const card = {\n header: {\n ...header,\n accessory: rightAccessory,\n },\n ...cardProps,\n };\n const attributes: CredentialAttribute[] = getFullyNestedFields(request.fields, credential.id).map((field) => {\n const claim = spreadClaims(credential.claims).find(({ path }) => {\n return path === field.keyMap[credential.id];\n });\n\n const attribute = selectCredentialCardAttributeFromClaim(field.id, config, testID, labels, claim, field);\n return {\n ...attribute,\n rightAccessory: (\n <Selector status={field.required && !claim ? SelectorStatus.Rejected : SelectorStatus.Required} />\n ),\n };\n });\n return {\n attributes: nestAttributes(attributes),\n card,\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_credential","_icons","_testID","_credential2","e","__esModule","default","validityCheckedCardFromCredential","credential","expanded","selectiveDisclosureSupported","multipleCredentialsAvailable","config","notice","testID","labels","language","credentialHeaderDetail","credentialDetailPrimary","selectiveDisclosure","credentialDetailTestID","concatTestID","statusIcon","CredentialWarningIcon","multipleCredentials","card","getCredentialCardPropsFromCredential","claims","header","exports","missingCredentialCardFromRequest","request","_request$name","cardImage","undefined","color","credentialDetailErrorColor","missingCredential","credentialName","name","id","getAttributeSelectorStatus","field","validityState","claim","selected","ValidityState","Valid","SelectorStatus","Rejected","required","Required","Disabled","SelectedCheckmark","Empty","spreadClaims","reduce","acc","result","value","type_","nestedClaimsWithPath","map","c","isArrayElement","schema","array","path","split","pop","key","push","getDisplayedAttributes","selectedFields","isApplicable","applicableCredentials","includes","fields","fieldsWithNoKeyMapping","filter","keyMap","fullyNestedFields","getFullyNestedFields","find","status","credentialId","allKeys","every","k","startsWith","shareCredentialCardAttributeFromClaim","_field$name$split$pop","_field$name","_field$name2","detailsCardAttributeFromClaim","listValue","missingAttribute","valueErrorColor","setStatusForNestedObjectOrArrayFields","attribute","disabled","accessory","createElement","Selector","isObject","attributes","length","isArray","values","rightAccessory","_attribute$attributes","nested","nestedAttribute","shareCredentialCardFromCredential","_credential$issuer","_credential$issuer2","supportsSelectiveDisclosure","issuer","cardTestId","getValidityState","displayedAttributes","index","nestAttributes","selectCredentialCardAttributeFromClaim","RequiredAttributeIcon","selectCredentialCardFromCredential","_credential$issuer3","SelectedRadio","text","noticeIcon","CredentialNoticeWarningIcon","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":[]}
@@ -10,6 +10,7 @@ var _reactNativeOneCore = require("@procivis/react-native-one-core");
10
10
  var _icons = require("../../ui-components/icons");
11
11
  var _date = require("../date");
12
12
  var _testID = require("../testID");
13
+ var _translations = require("../translations");
13
14
  var _credentialImages = require("./credential-images");
14
15
  let ValidityState = exports.ValidityState = /*#__PURE__*/function (ValidityState) {
15
16
  ValidityState["Revoked"] = "revoked";
@@ -48,9 +49,9 @@ const findClaimByPath = (path, claims) => {
48
49
  return undefined;
49
50
  };
50
51
  exports.findClaimByPath = findClaimByPath;
51
- const formatCredentialDetail = (claim, config, testID) => {
52
+ const formatCredentialDetail = (claim, config, testID, language) => {
52
53
  var _attributeValue$value;
53
- const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID);
54
+ const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID, language);
54
55
  return (_attributeValue$value = attributeValue.value) !== null && _attributeValue$value !== void 0 ? _attributeValue$value : '';
55
56
  };
56
57
  const hasMsoValidityIssues = credential => {
@@ -59,7 +60,7 @@ const hasMsoValidityIssues = credential => {
59
60
  return mdocMsoValidityIssue;
60
61
  };
61
62
  exports.hasMsoValidityIssues = hasMsoValidityIssues;
62
- const credentialDetailFromCredential = (credential, claims = [], config, testID, labels) => {
63
+ const credentialDetailFromCredential = (credential, claims = [], config, testID, labels, language) => {
63
64
  var _formatDateTimeLocali, _credential$issuanceD;
64
65
  const {
65
66
  layoutProperties
@@ -90,11 +91,11 @@ const credentialDetailFromCredential = (credential, claims = [], config, testID,
90
91
  let credentialDetailSecondary;
91
92
  const primary = findClaimByPath(layoutProperties === null || layoutProperties === void 0 ? void 0 : layoutProperties.primaryAttribute, claims);
92
93
  if (primary) {
93
- credentialDetailPrimary = formatCredentialDetail(primary, config, (0, _testID.concatTestID)(testID, 'primary'));
94
+ credentialDetailPrimary = formatCredentialDetail(primary, config, (0, _testID.concatTestID)(testID, 'primary'), language);
94
95
  }
95
96
  const secondary = findClaimByPath(layoutProperties === null || layoutProperties === void 0 ? void 0 : layoutProperties.secondaryAttribute, claims);
96
97
  if (secondary) {
97
- credentialDetailSecondary = formatCredentialDetail(secondary, config, (0, _testID.concatTestID)(testID, 'secondary'));
98
+ credentialDetailSecondary = formatCredentialDetail(secondary, config, (0, _testID.concatTestID)(testID, 'secondary'), language);
98
99
  }
99
100
  return {
100
101
  credentialDetailPrimary,
@@ -102,25 +103,26 @@ const credentialDetailFromCredential = (credential, claims = [], config, testID,
102
103
  credentialDetailTestID: (0, _testID.concatTestID)(testID, 'detail')
103
104
  };
104
105
  };
105
- const cardHeaderFromCredential = (credential, claims = [], config, testID, labels) => {
106
- var _layoutProperties$log, _layoutProperties$log2, _layoutProperties$log3;
106
+ const cardHeaderFromCredential = (credential, claims = [], config, testID, labels, language) => {
107
+ var _layoutProperties$log, _getTranslatedLabel, _credential$schema$tr, _layoutProperties$log2, _layoutProperties$log3;
107
108
  const {
108
109
  credentialDetailPrimary,
109
110
  credentialDetailSecondary,
110
111
  credentialDetailErrorColor,
111
112
  credentialDetailTestID,
112
113
  statusIcon
113
- } = credentialDetailFromCredential(credential, claims, config, testID, labels);
114
+ } = credentialDetailFromCredential(credential, claims, config, testID, labels, language);
114
115
  const {
115
116
  layoutProperties
116
117
  } = credential.schema;
118
+ const defaultLanguage = config.defaultLanguage;
117
119
  return {
118
120
  color: layoutProperties === null || layoutProperties === void 0 || (_layoutProperties$log = layoutProperties.logo) === null || _layoutProperties$log === void 0 ? void 0 : _layoutProperties$log.backgroundColor,
119
121
  credentialDetailErrorColor,
120
122
  credentialDetailPrimary,
121
123
  credentialDetailSecondary,
122
124
  credentialDetailTestID,
123
- credentialName: credential.schema.name,
125
+ credentialName: (_getTranslatedLabel = (0, _translations.getTranslatedLabel)((_credential$schema$tr = credential.schema.translations) === null || _credential$schema$tr === void 0 ? void 0 : _credential$schema$tr.name, language, defaultLanguage)) !== null && _getTranslatedLabel !== void 0 ? _getTranslatedLabel : credential.schema.name,
124
126
  icon: layoutProperties !== null && layoutProperties !== void 0 && (_layoutProperties$log2 = layoutProperties.logo) !== null && _layoutProperties$log2 !== void 0 && _layoutProperties$log2.image ? {
125
127
  imageSource: {
126
128
  uri: layoutProperties.logo.image
@@ -132,16 +134,26 @@ const cardHeaderFromCredential = (credential, claims = [], config, testID, label
132
134
  };
133
135
  };
134
136
  exports.cardHeaderFromCredential = cardHeaderFromCredential;
135
- const getCredentialCardPropsFromCredential = (credential, claims = [], config, notice, testID, labels) => {
137
+ const getCredentialCardPropsFromCredential = (credential, claims = [], config, notice, testID, labels, language) => {
136
138
  var _layoutProperties$bac, _layoutProperties$bac2;
137
139
  const {
138
140
  layoutProperties
139
141
  } = credential.schema;
142
+ const defaultLanguage = config.defaultLanguage;
140
143
  if (hasMsoValidityIssues(credential)) {
141
144
  notice = {
142
145
  text: labels.validityIssuesNotice,
143
146
  noticeIcon: _icons.CredentialNoticeWarningIcon
144
147
  };
148
+ } else if (!notice) {
149
+ var _credential$schema$tr2;
150
+ let description = (0, _translations.getTranslatedLabel)((_credential$schema$tr2 = credential.schema.translations) === null || _credential$schema$tr2 === void 0 ? void 0 : _credential$schema$tr2.description, language, defaultLanguage);
151
+ if (description) {
152
+ notice = {
153
+ text: description,
154
+ noticeIcon: _icons.CredentialNoticeInfoIcon
155
+ };
156
+ }
145
157
  }
146
158
  const result = {
147
159
  cardCarouselImages: (0, _credentialImages.getCarouselImagesFromClaims)(claims, layoutProperties, (0, _testID.concatTestID)(testID, 'carousel')),
@@ -151,29 +163,31 @@ const getCredentialCardPropsFromCredential = (credential, claims = [], config, n
151
163
  }
152
164
  } : undefined,
153
165
  color: layoutProperties === null || layoutProperties === void 0 || (_layoutProperties$bac2 = layoutProperties.background) === null || _layoutProperties$bac2 === void 0 ? void 0 : _layoutProperties$bac2.color,
154
- header: cardHeaderFromCredential(credential, claims, config, (0, _testID.concatTestID)(testID, 'header'), labels),
166
+ header: cardHeaderFromCredential(credential, claims, config, (0, _testID.concatTestID)(testID, 'header'), labels, language),
155
167
  testID,
156
168
  notice
157
169
  };
158
170
  return result;
159
171
  };
160
172
  exports.getCredentialCardPropsFromCredential = getCredentialCardPropsFromCredential;
161
- const detailsCardAttributeFromClaim = (claim, config, testID) => {
162
- const value = detailsCardAttributeValueFromClaim(claim, config, testID);
173
+ const detailsCardAttributeFromClaim = (claim, config, testID, language) => {
174
+ var _getTranslatedLabel2;
175
+ const value = detailsCardAttributeValueFromClaim(claim, config, testID, language);
176
+ const defaultLanguage = config.defaultLanguage;
163
177
  return {
164
178
  id: claim.path,
165
- name: claim.path.split('/').pop(),
179
+ name: (_getTranslatedLabel2 = (0, _translations.getTranslatedLabel)(claim.schema.translations.name, language, defaultLanguage)) !== null && _getTranslatedLabel2 !== void 0 ? _getTranslatedLabel2 : claim.path.split('/').pop(),
166
180
  path: claim.path,
167
181
  ...value
168
182
  };
169
183
  };
170
184
  exports.detailsCardAttributeFromClaim = detailsCardAttributeFromClaim;
171
- const detailsCardAttributeValueFromClaim = (claim, config, testID) => {
185
+ const detailsCardAttributeValueFromClaim = (claim, config, testID, language) => {
172
186
  const typeConfig = config === null || config === void 0 ? void 0 : config.datatype[claim.schema.datatype];
173
187
  if (claim.schema.array) {
174
188
  return {
175
189
  values: (claim.value.value || []).map((arrayValue, index) => {
176
- return detailsCardAttributeFromClaim(arrayValue, config, (0, _testID.concatTestID)(testID, index.toString()));
190
+ return detailsCardAttributeFromClaim(arrayValue, config, (0, _testID.concatTestID)(testID, index.toString()), language);
177
191
  })
178
192
  };
179
193
  } else {
@@ -186,7 +200,7 @@ const detailsCardAttributeValueFromClaim = (claim, config, testID) => {
186
200
  };
187
201
  }
188
202
  return {
189
- attributes: claim.value.value.map((nestedClaim, index) => detailsCardAttributeFromClaim(nestedClaim, config, (0, _testID.concatTestID)(testID, index.toString())))
203
+ attributes: claim.value.value.map((nestedClaim, index) => detailsCardAttributeFromClaim(nestedClaim, config, (0, _testID.concatTestID)(testID, index.toString()), language))
190
204
  };
191
205
  }
192
206
  case _reactNativeOneCore.DataType.Date:
@@ -231,13 +245,13 @@ const detailsCardAttributeValueFromClaim = (claim, config, testID) => {
231
245
  }
232
246
  }
233
247
  };
234
- const detailsCardFromCredential = (credential, config, testID, labels) => {
235
- return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels);
248
+ const detailsCardFromCredential = (credential, config, testID, labels, language) => {
249
+ return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels, language);
236
250
  };
237
251
  exports.detailsCardFromCredential = detailsCardFromCredential;
238
- const detailsCardFromCredentialWithClaims = (credential, claims, config, testID, labels) => {
239
- const attributes = claims.map((claim, index) => detailsCardAttributeFromClaim(claim, config, (0, _testID.concatTestID)(testID, 'attribute', index.toString())));
240
- const card = getCredentialCardPropsFromCredential(credential, claims, config, undefined, (0, _testID.concatTestID)(testID, 'card'), labels);
252
+ const detailsCardFromCredentialWithClaims = (credential, claims, config, testID, labels, language) => {
253
+ const attributes = claims.map((claim, index) => detailsCardAttributeFromClaim(claim, config, (0, _testID.concatTestID)(testID, 'attribute', index.toString()), language));
254
+ const card = getCredentialCardPropsFromCredential(credential, claims, config, undefined, (0, _testID.concatTestID)(testID, 'card'), labels, language);
241
255
  return {
242
256
  attributes,
243
257
  card