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

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 (258) hide show
  1. package/lib/commonjs/components/credential/credential.js +8 -2
  2. package/lib/commonjs/components/credential/credential.js.map +1 -1
  3. package/lib/commonjs/components/proof-request/index.js +23 -12
  4. package/lib/commonjs/components/proof-request/index.js.map +1 -1
  5. package/lib/commonjs/components/proof-request/select-share-credential-card-notice.js +37 -0
  6. package/lib/commonjs/components/proof-request/select-share-credential-card-notice.js.map +1 -0
  7. package/lib/commonjs/components/proof-request/share-credential-card-notice.js +36 -0
  8. package/lib/commonjs/components/proof-request/share-credential-card-notice.js.map +1 -0
  9. package/lib/commonjs/components/proof-request/{group.js → v1/group.js} +1 -1
  10. package/lib/commonjs/components/proof-request/v1/group.js.map +1 -0
  11. package/lib/commonjs/components/proof-request/v1/index.js +39 -0
  12. package/lib/commonjs/components/proof-request/v1/index.js.map +1 -0
  13. package/lib/commonjs/components/proof-request/{select-credential.js → v1/select-credential.js} +12 -6
  14. package/lib/commonjs/components/proof-request/v1/select-credential.js.map +1 -0
  15. package/lib/commonjs/components/proof-request/{share-credential.js → v1/share-credential.js} +33 -62
  16. package/lib/commonjs/components/proof-request/v1/share-credential.js.map +1 -0
  17. package/lib/commonjs/components/proof-request/v2/index.js +39 -0
  18. package/lib/commonjs/components/proof-request/v2/index.js.map +1 -0
  19. package/lib/commonjs/components/proof-request/v2/select-credential-v2.js +55 -0
  20. package/lib/commonjs/components/proof-request/v2/select-credential-v2.js.map +1 -0
  21. package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js +164 -0
  22. package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js.map +1 -0
  23. package/lib/commonjs/components/proof-request/v2/share-credential-v2.js +135 -0
  24. package/lib/commonjs/components/proof-request/v2/share-credential-v2.js.map +1 -0
  25. package/lib/commonjs/ui-components/buttons/share-button.js +1 -1
  26. package/lib/commonjs/ui-components/buttons/share-button.js.map +1 -1
  27. package/lib/commonjs/ui-components/camera/qr-code-scanner.js +5 -1
  28. package/lib/commonjs/ui-components/camera/qr-code-scanner.js.map +1 -1
  29. package/lib/commonjs/ui-components/credential/card/credential-details-list-item.js +16 -42
  30. package/lib/commonjs/ui-components/credential/card/credential-details-list-item.js.map +1 -1
  31. package/lib/commonjs/ui-components/credential/credential-attribute-item.js +3 -1
  32. package/lib/commonjs/ui-components/credential/credential-attribute-item.js.map +1 -1
  33. package/lib/commonjs/ui-components/credential/group/credential-group-header.js +72 -0
  34. package/lib/commonjs/ui-components/credential/group/credential-group-header.js.map +1 -0
  35. package/lib/commonjs/ui-components/credential/group/index.js +14 -0
  36. package/lib/commonjs/ui-components/credential/group/index.js.map +1 -0
  37. package/lib/commonjs/ui-components/credential/index.js +12 -0
  38. package/lib/commonjs/ui-components/credential/index.js.map +1 -1
  39. package/lib/commonjs/ui-components/header/foldable-header.js +29 -17
  40. package/lib/commonjs/ui-components/header/foldable-header.js.map +1 -1
  41. package/lib/commonjs/ui-components/index.js +11 -0
  42. package/lib/commonjs/ui-components/index.js.map +1 -1
  43. package/lib/commonjs/ui-components/loader/loading-result.js +1 -1
  44. package/lib/commonjs/ui-components/loader/loading-result.js.map +1 -1
  45. package/lib/commonjs/ui-components/pin/pin-lock-animation.js +477 -475
  46. package/lib/commonjs/ui-components/pin/pin-lock-animation.js.map +1 -1
  47. package/lib/commonjs/ui-components/proof-request/index.js +13 -0
  48. package/lib/commonjs/ui-components/proof-request/index.js.map +1 -0
  49. package/lib/commonjs/ui-components/proof-request/proof-request-set.js +47 -0
  50. package/lib/commonjs/ui-components/proof-request/proof-request-set.js.map +1 -0
  51. package/lib/commonjs/ui-components/screens/section-list-screen.js +17 -3
  52. package/lib/commonjs/ui-components/screens/section-list-screen.js.map +1 -1
  53. package/lib/commonjs/utils/array.js.map +1 -1
  54. package/lib/commonjs/utils/hooks/app-state.js +33 -0
  55. package/lib/commonjs/utils/hooks/app-state.js.map +1 -0
  56. package/lib/commonjs/utils/hooks/core/backup.js +1 -1
  57. package/lib/commonjs/utils/hooks/core/backup.js.map +1 -1
  58. package/lib/commonjs/utils/hooks/core/credentials.js +10 -3
  59. package/lib/commonjs/utils/hooks/core/credentials.js.map +1 -1
  60. package/lib/commonjs/utils/hooks/core/identifiers.js +1 -1
  61. package/lib/commonjs/utils/hooks/core/identifiers.js.map +1 -1
  62. package/lib/commonjs/utils/hooks/core/index.js +11 -0
  63. package/lib/commonjs/utils/hooks/core/index.js.map +1 -1
  64. package/lib/commonjs/utils/hooks/core/proofs.js +39 -10
  65. package/lib/commonjs/utils/hooks/core/proofs.js.map +1 -1
  66. package/lib/commonjs/utils/hooks/core/wallet-unit.js +85 -0
  67. package/lib/commonjs/utils/hooks/core/wallet-unit.js.map +1 -0
  68. package/lib/commonjs/utils/hooks/index.js +11 -0
  69. package/lib/commonjs/utils/hooks/index.js.map +1 -1
  70. package/lib/commonjs/utils/hooks/revocation/credential-status.js +1 -1
  71. package/lib/commonjs/utils/hooks/revocation/credential-status.js.map +1 -1
  72. package/lib/commonjs/utils/index.js +16 -4
  73. package/lib/commonjs/utils/index.js.map +1 -1
  74. package/lib/commonjs/utils/parsers/credential-sharing-v2.js +190 -0
  75. package/lib/commonjs/utils/parsers/credential-sharing-v2.js.map +1 -0
  76. package/lib/commonjs/utils/parsers/credential-sharing.js +31 -18
  77. package/lib/commonjs/utils/parsers/credential-sharing.js.map +1 -1
  78. package/lib/commonjs/utils/parsers/credential.js +111 -63
  79. package/lib/commonjs/utils/parsers/credential.js.map +1 -1
  80. package/lib/commonjs/utils/parsers/index.js +11 -0
  81. package/lib/commonjs/utils/parsers/index.js.map +1 -1
  82. package/lib/commonjs/utils/parsers/query.js +4 -4
  83. package/lib/commonjs/utils/parsers/query.js.map +1 -1
  84. package/lib/commonjs/utils/wallet-unit.js +30 -0
  85. package/lib/commonjs/utils/wallet-unit.js.map +1 -0
  86. package/lib/module/components/credential/credential.js +8 -2
  87. package/lib/module/components/credential/credential.js.map +1 -1
  88. package/lib/module/components/proof-request/index.js +4 -3
  89. package/lib/module/components/proof-request/index.js.map +1 -1
  90. package/lib/module/components/proof-request/select-share-credential-card-notice.js +29 -0
  91. package/lib/module/components/proof-request/select-share-credential-card-notice.js.map +1 -0
  92. package/lib/module/components/proof-request/share-credential-card-notice.js +28 -0
  93. package/lib/module/components/proof-request/share-credential-card-notice.js.map +1 -0
  94. package/lib/module/components/proof-request/{group.js → v1/group.js} +1 -1
  95. package/lib/module/components/proof-request/v1/group.js.map +1 -0
  96. package/lib/module/components/proof-request/v1/index.js +4 -0
  97. package/lib/module/components/proof-request/v1/index.js.map +1 -0
  98. package/lib/module/components/proof-request/{select-credential.js → v1/select-credential.js} +12 -6
  99. package/lib/module/components/proof-request/v1/select-credential.js.map +1 -0
  100. package/lib/module/components/proof-request/v1/share-credential.js +118 -0
  101. package/lib/module/components/proof-request/v1/share-credential.js.map +1 -0
  102. package/lib/module/components/proof-request/v2/index.js +4 -0
  103. package/lib/module/components/proof-request/v2/index.js.map +1 -0
  104. package/lib/module/components/proof-request/v2/select-credential-v2.js +46 -0
  105. package/lib/module/components/proof-request/v2/select-credential-v2.js.map +1 -0
  106. package/lib/module/components/proof-request/v2/share-credential-v2-group.js +154 -0
  107. package/lib/module/components/proof-request/v2/share-credential-v2-group.js.map +1 -0
  108. package/lib/module/components/proof-request/v2/share-credential-v2.js +126 -0
  109. package/lib/module/components/proof-request/v2/share-credential-v2.js.map +1 -0
  110. package/lib/module/ui-components/buttons/share-button.js +1 -1
  111. package/lib/module/ui-components/buttons/share-button.js.map +1 -1
  112. package/lib/module/ui-components/camera/qr-code-scanner.js +5 -1
  113. package/lib/module/ui-components/camera/qr-code-scanner.js.map +1 -1
  114. package/lib/module/ui-components/credential/card/credential-details-list-item.js +19 -45
  115. package/lib/module/ui-components/credential/card/credential-details-list-item.js.map +1 -1
  116. package/lib/module/ui-components/credential/credential-attribute-item.js +3 -1
  117. package/lib/module/ui-components/credential/credential-attribute-item.js.map +1 -1
  118. package/lib/module/ui-components/credential/group/credential-group-header.js +64 -0
  119. package/lib/module/ui-components/credential/group/credential-group-header.js.map +1 -0
  120. package/lib/module/ui-components/credential/group/index.js +3 -0
  121. package/lib/module/ui-components/credential/group/index.js.map +1 -0
  122. package/lib/module/ui-components/credential/index.js +1 -0
  123. package/lib/module/ui-components/credential/index.js.map +1 -1
  124. package/lib/module/ui-components/header/foldable-header.js +29 -17
  125. package/lib/module/ui-components/header/foldable-header.js.map +1 -1
  126. package/lib/module/ui-components/index.js +1 -0
  127. package/lib/module/ui-components/index.js.map +1 -1
  128. package/lib/module/ui-components/loader/loading-result.js +1 -1
  129. package/lib/module/ui-components/loader/loading-result.js.map +1 -1
  130. package/lib/module/ui-components/pin/pin-lock-animation.js +477 -475
  131. package/lib/module/ui-components/pin/pin-lock-animation.js.map +1 -1
  132. package/lib/module/ui-components/proof-request/index.js +3 -0
  133. package/lib/module/ui-components/proof-request/index.js.map +1 -0
  134. package/lib/module/ui-components/proof-request/proof-request-set.js +39 -0
  135. package/lib/module/ui-components/proof-request/proof-request-set.js.map +1 -0
  136. package/lib/module/ui-components/screens/section-list-screen.js +15 -3
  137. package/lib/module/ui-components/screens/section-list-screen.js.map +1 -1
  138. package/lib/module/utils/array.js.map +1 -1
  139. package/lib/module/utils/hooks/app-state.js +27 -0
  140. package/lib/module/utils/hooks/app-state.js.map +1 -0
  141. package/lib/module/utils/hooks/core/backup.js +1 -1
  142. package/lib/module/utils/hooks/core/backup.js.map +1 -1
  143. package/lib/module/utils/hooks/core/credentials.js +11 -4
  144. package/lib/module/utils/hooks/core/credentials.js.map +1 -1
  145. package/lib/module/utils/hooks/core/identifiers.js +5 -5
  146. package/lib/module/utils/hooks/core/identifiers.js.map +1 -1
  147. package/lib/module/utils/hooks/core/index.js +1 -0
  148. package/lib/module/utils/hooks/core/index.js.map +1 -1
  149. package/lib/module/utils/hooks/core/proofs.js +40 -11
  150. package/lib/module/utils/hooks/core/proofs.js.map +1 -1
  151. package/lib/module/utils/hooks/core/wallet-unit.js +75 -0
  152. package/lib/module/utils/hooks/core/wallet-unit.js.map +1 -0
  153. package/lib/module/utils/hooks/index.js +1 -0
  154. package/lib/module/utils/hooks/index.js.map +1 -1
  155. package/lib/module/utils/hooks/revocation/credential-status.js +1 -1
  156. package/lib/module/utils/hooks/revocation/credential-status.js.map +1 -1
  157. package/lib/module/utils/index.js +2 -1
  158. package/lib/module/utils/index.js.map +1 -1
  159. package/lib/module/utils/parsers/credential-sharing-v2.js +177 -0
  160. package/lib/module/utils/parsers/credential-sharing-v2.js.map +1 -0
  161. package/lib/module/utils/parsers/credential-sharing.js +31 -18
  162. package/lib/module/utils/parsers/credential-sharing.js.map +1 -1
  163. package/lib/module/utils/parsers/credential.js +112 -64
  164. package/lib/module/utils/parsers/credential.js.map +1 -1
  165. package/lib/module/utils/parsers/index.js +1 -0
  166. package/lib/module/utils/parsers/index.js.map +1 -1
  167. package/lib/module/utils/parsers/query.js +4 -4
  168. package/lib/module/utils/parsers/query.js.map +1 -1
  169. package/lib/module/utils/wallet-unit.js +22 -0
  170. package/lib/module/utils/wallet-unit.js.map +1 -0
  171. package/lib/typescript/components/proof-request/index.d.ts +4 -3
  172. package/lib/typescript/components/proof-request/select-share-credential-card-notice.d.ts +7 -0
  173. package/lib/typescript/components/proof-request/share-credential-card-notice.d.ts +6 -0
  174. package/lib/typescript/components/proof-request/v1/index.d.ts +3 -0
  175. package/lib/typescript/components/proof-request/{select-credential.d.ts → v1/select-credential.d.ts} +1 -1
  176. package/lib/typescript/components/proof-request/{share-credential.d.ts → v1/share-credential.d.ts} +1 -1
  177. package/lib/typescript/components/proof-request/v2/index.d.ts +3 -0
  178. package/lib/typescript/components/proof-request/v2/select-credential-v2.d.ts +14 -0
  179. package/lib/typescript/components/proof-request/v2/share-credential-v2-group.d.ts +24 -0
  180. package/lib/typescript/components/proof-request/v2/share-credential-v2.d.ts +23 -0
  181. package/lib/typescript/ui-components/credential/group/credential-group-header.d.ts +10 -0
  182. package/lib/typescript/ui-components/credential/group/index.d.ts +3 -0
  183. package/lib/typescript/ui-components/credential/index.d.ts +1 -0
  184. package/lib/typescript/ui-components/header/foldable-header.d.ts +1 -0
  185. package/lib/typescript/ui-components/index.d.ts +1 -0
  186. package/lib/typescript/ui-components/loader/loading-result.d.ts +1 -1
  187. package/lib/typescript/ui-components/pin/pin-lock-animation.d.ts +311 -311
  188. package/lib/typescript/ui-components/proof-request/index.d.ts +3 -0
  189. package/lib/typescript/ui-components/proof-request/proof-request-set.d.ts +7 -0
  190. package/lib/typescript/ui-components/screens/section-list-screen.d.ts +4 -2
  191. package/lib/typescript/utils/array.d.ts +1 -0
  192. package/lib/typescript/utils/hooks/app-state.d.ts +5 -0
  193. package/lib/typescript/utils/hooks/core/backup.d.ts +1 -1
  194. package/lib/typescript/utils/hooks/core/credentials.d.ts +1 -1
  195. package/lib/typescript/utils/hooks/core/identifiers.d.ts +1 -1
  196. package/lib/typescript/utils/hooks/core/index.d.ts +1 -0
  197. package/lib/typescript/utils/hooks/core/proofs.d.ts +6 -7
  198. package/lib/typescript/utils/hooks/core/wallet-unit.d.ts +9 -0
  199. package/lib/typescript/utils/hooks/index.d.ts +1 -0
  200. package/lib/typescript/utils/index.d.ts +2 -1
  201. package/lib/typescript/utils/parsers/credential-sharing-v2.d.ts +11 -0
  202. package/lib/typescript/utils/parsers/credential-sharing.d.ts +11 -5
  203. package/lib/typescript/utils/parsers/credential.d.ts +9 -6
  204. package/lib/typescript/utils/parsers/index.d.ts +1 -0
  205. package/lib/typescript/utils/parsers/query.d.ts +2 -2
  206. package/lib/typescript/utils/wallet-unit.d.ts +8 -0
  207. package/package.json +12 -6
  208. package/src/components/credential/credential.tsx +5 -1
  209. package/src/components/proof-request/index.ts +4 -3
  210. package/src/components/proof-request/select-share-credential-card-notice.tsx +37 -0
  211. package/src/components/proof-request/share-credential-card-notice.tsx +33 -0
  212. package/src/components/proof-request/{group.tsx → v1/group.tsx} +1 -1
  213. package/src/components/proof-request/v1/index.ts +3 -0
  214. package/src/components/proof-request/{select-credential.tsx → v1/select-credential.tsx} +12 -5
  215. package/src/components/proof-request/{share-credential.tsx → v1/share-credential.tsx} +35 -52
  216. package/src/components/proof-request/v2/index.ts +3 -0
  217. package/src/components/proof-request/v2/select-credential-v2.tsx +59 -0
  218. package/src/components/proof-request/v2/share-credential-v2-group.tsx +258 -0
  219. package/src/components/proof-request/v2/share-credential-v2.tsx +211 -0
  220. package/src/ui-components/buttons/share-button.tsx +1 -1
  221. package/src/ui-components/camera/qr-code-scanner.tsx +11 -2
  222. package/src/ui-components/credential/card/credential-details-list-item.tsx +27 -49
  223. package/src/ui-components/credential/credential-attribute-item.tsx +2 -0
  224. package/src/ui-components/credential/group/credential-group-header.tsx +70 -0
  225. package/src/ui-components/credential/group/index.ts +4 -0
  226. package/src/ui-components/credential/index.ts +1 -0
  227. package/src/ui-components/header/foldable-header.tsx +31 -16
  228. package/src/ui-components/index.ts +1 -0
  229. package/src/ui-components/loader/loading-result.tsx +1 -1
  230. package/src/ui-components/pin/pin-lock-animation.tsx +240 -278
  231. package/src/ui-components/proof-request/index.ts +4 -0
  232. package/src/ui-components/proof-request/proof-request-set.tsx +46 -0
  233. package/src/ui-components/screens/section-list-screen.tsx +18 -4
  234. package/src/utils/array.ts +4 -0
  235. package/src/utils/hooks/app-state.ts +29 -0
  236. package/src/utils/hooks/core/backup.ts +2 -5
  237. package/src/utils/hooks/core/credentials.ts +11 -4
  238. package/src/utils/hooks/core/identifiers.ts +15 -14
  239. package/src/utils/hooks/core/index.ts +2 -1
  240. package/src/utils/hooks/core/proofs.ts +36 -12
  241. package/src/utils/hooks/core/wallet-unit.ts +77 -0
  242. package/src/utils/hooks/index.ts +1 -0
  243. package/src/utils/hooks/revocation/credential-status.ts +1 -1
  244. package/src/utils/index.ts +2 -1
  245. package/src/utils/parsers/credential-sharing-v2.tsx +283 -0
  246. package/src/utils/parsers/credential-sharing.tsx +40 -16
  247. package/src/utils/parsers/credential.ts +129 -59
  248. package/src/utils/parsers/index.ts +1 -0
  249. package/src/utils/parsers/query.ts +6 -5
  250. package/src/utils/wallet-unit.ts +30 -0
  251. package/lib/commonjs/components/proof-request/group.js.map +0 -1
  252. package/lib/commonjs/components/proof-request/select-credential.js.map +0 -1
  253. package/lib/commonjs/components/proof-request/share-credential.js.map +0 -1
  254. package/lib/module/components/proof-request/group.js.map +0 -1
  255. package/lib/module/components/proof-request/select-credential.js.map +0 -1
  256. package/lib/module/components/proof-request/share-credential.js +0 -147
  257. package/lib/module/components/proof-request/share-credential.js.map +0 -1
  258. /package/lib/typescript/components/proof-request/{group.d.ts → v1/group.d.ts} +0 -0
@@ -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 _walletUnit = require("../wallet-unit");
13
14
  var _credentialImages = require("./credential-images");
14
15
  let ValidityState = exports.ValidityState = /*#__PURE__*/function (ValidityState) {
15
16
  ValidityState["Revoked"] = "revoked";
@@ -57,48 +58,76 @@ const hasMsoValidityIssues = credential => {
57
58
  return mdocMsoValidityIssue;
58
59
  };
59
60
  exports.hasMsoValidityIssues = hasMsoValidityIssues;
60
- const cardHeaderFromCredential = (credential, claims = [], config, testID, labels) => {
61
- var _formatDateTimeLocali, _credential$issuanceD, _layoutProperties$log, _layoutProperties$log2, _layoutProperties$log3;
62
- let credentialDetailPrimary = (_formatDateTimeLocali = (0, _date.formatDateTimeLocalized)(new Date((_credential$issuanceD = credential.issuanceDate) !== null && _credential$issuanceD !== void 0 ? _credential$issuanceD : credential.createdDate))) !== null && _formatDateTimeLocali !== void 0 ? _formatDateTimeLocali : '';
63
- let credentialDetailSecondary;
64
- let credentialDetailErrorColor;
65
- let credentialDetailTestID;
66
- let statusIcon;
61
+ const credentialDetailFromCredential = (credential, claims = [], config, wuaState, testID, labels) => {
62
+ var _formatDateTimeLocali, _credential$issuanceD;
67
63
  const {
68
64
  layoutProperties
69
65
  } = credential.schema;
66
+ if (credential.schema.walletStorageType === _reactNativeOneCore.WalletStorageType.EUDI_COMPLIANT && wuaState === _walletUnit.WUAState.Revoked) {
67
+ return {
68
+ credentialDetailPrimary: labels.wuaRevoked,
69
+ credentialDetailErrorColor: true,
70
+ credentialDetailTestID: (0, _testID.concatTestID)(testID, 'wua', 'revoked'),
71
+ statusIcon: _icons.CredentialErrorIcon
72
+ };
73
+ }
70
74
  switch (credential.state) {
71
75
  case _reactNativeOneCore.CredentialStateEnum.SUSPENDED:
72
- credentialDetailPrimary = credential.suspendEndDate ? labels.suspendedUntil((0, _date.formatDateTimeLocalized)(new Date(credential.suspendEndDate))) : labels.suspended;
73
- credentialDetailTestID = (0, _testID.concatTestID)(testID, 'suspended');
74
- statusIcon = _icons.CredentialWarningIcon;
75
- break;
76
+ return {
77
+ credentialDetailPrimary: credential.suspendEndDate ? labels.suspendedUntil((0, _date.formatDateTimeLocalized)(new Date(credential.suspendEndDate))) : labels.suspended,
78
+ credentialDetailTestID: (0, _testID.concatTestID)(testID, 'suspended'),
79
+ statusIcon: _icons.CredentialWarningIcon
80
+ };
76
81
  case _reactNativeOneCore.CredentialStateEnum.REVOKED:
77
- credentialDetailPrimary = labels.revoked;
78
- credentialDetailErrorColor = true;
79
- credentialDetailTestID = (0, _testID.concatTestID)(testID, 'revoked');
80
- statusIcon = _icons.CredentialErrorIcon;
81
- break;
82
- default:
83
- {
84
- if (hasMsoValidityIssues(credential)) {
85
- credentialDetailPrimary = labels.validityIssues;
86
- credentialDetailTestID = (0, _testID.concatTestID)(testID, 'validity-issue');
87
- statusIcon = _icons.CredentialWarningIcon;
88
- } else {
89
- const primary = findClaimByPath(layoutProperties === null || layoutProperties === void 0 ? void 0 : layoutProperties.primaryAttribute, claims);
90
- if (primary) {
91
- credentialDetailPrimary = formatCredentialDetail(primary, config, (0, _testID.concatTestID)(testID, 'primary'));
92
- }
93
- const secondary = findClaimByPath(layoutProperties === null || layoutProperties === void 0 ? void 0 : layoutProperties.secondaryAttribute, claims);
94
- if (secondary) {
95
- credentialDetailSecondary = formatCredentialDetail(secondary, config, (0, _testID.concatTestID)(testID, 'secondary'));
96
- }
97
- credentialDetailTestID = (0, _testID.concatTestID)(testID, 'detail');
98
- }
99
- break;
100
- }
82
+ return {
83
+ credentialDetailPrimary: labels.revoked,
84
+ credentialDetailErrorColor: true,
85
+ credentialDetailTestID: (0, _testID.concatTestID)(testID, 'revoked'),
86
+ statusIcon: _icons.CredentialErrorIcon
87
+ };
88
+ }
89
+ if (credential.schema.walletStorageType === _reactNativeOneCore.WalletStorageType.EUDI_COMPLIANT && wuaState === _walletUnit.WUAState.Expired) {
90
+ return {
91
+ credentialDetailPrimary: labels.wuaExpired,
92
+ credentialDetailTestID: (0, _testID.concatTestID)(testID, 'wua', 'suspended'),
93
+ statusIcon: _icons.CredentialWarningIcon
94
+ };
95
+ }
96
+ if (hasMsoValidityIssues(credential)) {
97
+ return {
98
+ credentialDetailPrimary: labels.validityIssues,
99
+ credentialDetailTestID: (0, _testID.concatTestID)(testID, 'validity-issue'),
100
+ statusIcon: _icons.CredentialWarningIcon
101
+ };
102
+ }
103
+ let credentialDetailPrimary = (_formatDateTimeLocali = (0, _date.formatDateTimeLocalized)(new Date((_credential$issuanceD = credential.issuanceDate) !== null && _credential$issuanceD !== void 0 ? _credential$issuanceD : credential.createdDate))) !== null && _formatDateTimeLocali !== void 0 ? _formatDateTimeLocali : '';
104
+ let credentialDetailSecondary;
105
+ const primary = findClaimByPath(layoutProperties === null || layoutProperties === void 0 ? void 0 : layoutProperties.primaryAttribute, claims);
106
+ if (primary) {
107
+ credentialDetailPrimary = formatCredentialDetail(primary, config, (0, _testID.concatTestID)(testID, 'primary'));
108
+ }
109
+ const secondary = findClaimByPath(layoutProperties === null || layoutProperties === void 0 ? void 0 : layoutProperties.secondaryAttribute, claims);
110
+ if (secondary) {
111
+ credentialDetailSecondary = formatCredentialDetail(secondary, config, (0, _testID.concatTestID)(testID, 'secondary'));
101
112
  }
113
+ return {
114
+ credentialDetailPrimary,
115
+ credentialDetailSecondary,
116
+ credentialDetailTestID: (0, _testID.concatTestID)(testID, 'detail')
117
+ };
118
+ };
119
+ const cardHeaderFromCredential = (credential, claims = [], config, wuaState, testID, labels) => {
120
+ var _layoutProperties$log, _layoutProperties$log2, _layoutProperties$log3;
121
+ const {
122
+ credentialDetailPrimary,
123
+ credentialDetailSecondary,
124
+ credentialDetailErrorColor,
125
+ credentialDetailTestID,
126
+ statusIcon
127
+ } = credentialDetailFromCredential(credential, claims, config, wuaState, testID, labels);
128
+ const {
129
+ layoutProperties
130
+ } = credential.schema;
102
131
  return {
103
132
  color: layoutProperties === null || layoutProperties === void 0 || (_layoutProperties$log = layoutProperties.logo) === null || _layoutProperties$log === void 0 ? void 0 : _layoutProperties$log.backgroundColor,
104
133
  credentialDetailErrorColor,
@@ -117,7 +146,7 @@ const cardHeaderFromCredential = (credential, claims = [], config, testID, label
117
146
  };
118
147
  };
119
148
  exports.cardHeaderFromCredential = cardHeaderFromCredential;
120
- const getCredentialCardPropsFromCredential = (credential, claims = [], config, notice, testID, labels) => {
149
+ const getCredentialCardPropsFromCredential = (credential, claims = [], config, wuaState, notice, testID, labels) => {
121
150
  var _layoutProperties$bac, _layoutProperties$bac2;
122
151
  const {
123
152
  layoutProperties
@@ -136,7 +165,7 @@ const getCredentialCardPropsFromCredential = (credential, claims = [], config, n
136
165
  }
137
166
  } : undefined,
138
167
  color: layoutProperties === null || layoutProperties === void 0 || (_layoutProperties$bac2 = layoutProperties.background) === null || _layoutProperties$bac2 === void 0 ? void 0 : _layoutProperties$bac2.color,
139
- header: cardHeaderFromCredential(credential, claims, config, (0, _testID.concatTestID)(testID, 'header'), labels),
168
+ header: cardHeaderFromCredential(credential, claims, config, wuaState, (0, _testID.concatTestID)(testID, 'header'), labels),
140
169
  testID,
141
170
  notice
142
171
  };
@@ -193,7 +222,8 @@ const detailsCardAttributeValueFromClaim = (claim, config, testID) => {
193
222
  value: (_formatDateLocalized = (0, _date.formatDateLocalized)(new Date(date))) !== null && _formatDateLocalized !== void 0 ? _formatDateLocalized : date
194
223
  };
195
224
  }
196
- case _reactNativeOneCore.DataTypeEnum.File:
225
+ case _reactNativeOneCore.DataTypeEnum.Picture: // fallback
226
+ case _reactNativeOneCore.DataTypeEnum.SwiyuPicture:
197
227
  {
198
228
  var _typeConfig$params;
199
229
  if (((_typeConfig$params = typeConfig.params) === null || _typeConfig$params === void 0 ? void 0 : _typeConfig$params.showAs) === 'IMAGE') {
@@ -218,13 +248,13 @@ const detailsCardAttributeValueFromClaim = (claim, config, testID) => {
218
248
  }
219
249
  }
220
250
  };
221
- const detailsCardFromCredential = (credential, config, testID, labels) => {
222
- return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels);
251
+ const detailsCardFromCredential = (credential, config, wuaState, testID, labels) => {
252
+ return detailsCardFromCredentialWithClaims(credential, credential.claims, config, wuaState, testID, labels);
223
253
  };
224
254
  exports.detailsCardFromCredential = detailsCardFromCredential;
225
- const detailsCardFromCredentialWithClaims = (credential, claims, config, testID, labels) => {
255
+ const detailsCardFromCredentialWithClaims = (credential, claims, config, wuaState, testID, labels) => {
226
256
  const attributes = claims.map((claim, index) => detailsCardAttributeFromClaim(claim, config, (0, _testID.concatTestID)(testID, 'attribute', index.toString())));
227
- const card = getCredentialCardPropsFromCredential(credential, claims, config, undefined, (0, _testID.concatTestID)(testID, 'card'), labels);
257
+ const card = getCredentialCardPropsFromCredential(credential, claims, config, wuaState, undefined, (0, _testID.concatTestID)(testID, 'card'), labels);
228
258
  return {
229
259
  attributes,
230
260
  card
@@ -244,12 +274,12 @@ const nestAttributes = attributes => {
244
274
  const [first, ...rest] = attributePath;
245
275
  const parent = result.find(a => a.name === first);
246
276
  if (parent) {
247
- insertAttributeInObject({
277
+ insertAttributeInParent({
248
278
  ...attribute,
249
279
  path: rest.join('/')
250
280
  }, parent);
251
281
  } else {
252
- result.push(nestAttributeInDummyObject(attribute));
282
+ result.push(nestAttributeInDummyParent(attribute));
253
283
  }
254
284
  }
255
285
  }
@@ -259,7 +289,7 @@ const nestAttributes = attributes => {
259
289
  // We nest the leaf node in a (one or more) nested object(s)
260
290
  // to make sure the tree structure is correctly rendered in proof request screens.
261
291
  exports.nestAttributes = nestAttributes;
262
- const nestAttributeInDummyObject = attribute => {
292
+ const nestAttributeInDummyParent = attribute => {
263
293
  const pathParts = attribute.path.split('/');
264
294
  const [first, ...rest] = pathParts;
265
295
  if (!rest.length) {
@@ -268,30 +298,48 @@ const nestAttributeInDummyObject = attribute => {
268
298
 
269
299
  // The dummy object is not selectable, and contains a placeholder ID
270
300
  // the user can't interact with it.
271
- return {
272
- attributes: [nestAttributeInDummyObject({
273
- ...attribute,
274
- path: rest.join('/')
275
- })],
276
- disabled: true,
277
- id: `${attribute.id}/${first}`,
278
- name: first,
279
- path: attribute.path
280
- };
301
+ if (attribute.listValue) {
302
+ return {
303
+ values: [nestAttributeInDummyParent({
304
+ ...attribute,
305
+ path: rest.join('/')
306
+ })],
307
+ disabled: true,
308
+ id: `${attribute.id}/${first}`,
309
+ name: first,
310
+ path: first
311
+ };
312
+ } else {
313
+ return {
314
+ attributes: [nestAttributeInDummyParent({
315
+ ...attribute,
316
+ path: rest.join('/')
317
+ })],
318
+ disabled: true,
319
+ id: `${attribute.id}/${first}`,
320
+ name: first,
321
+ path: first
322
+ };
323
+ }
281
324
  };
282
325
 
283
- // Recursively insert an attribute into an object
284
- // Will create nested objects if necessary
285
- const insertAttributeInObject = (attribute, object) => {
286
- var _object$attributes;
326
+ // Recursively insert an attribute into an parent
327
+ // Will create nested parents if necessary
328
+ const insertAttributeInParent = (attribute, parent) => {
329
+ var _parent$attributes;
287
330
  const pathParts = attribute.path.split('/');
288
331
  const [first, ...rest] = pathParts;
289
- const nextParent = (_object$attributes = object.attributes) === null || _object$attributes === void 0 ? void 0 : _object$attributes.find(a => a.name === first);
332
+ const nextParent = (_parent$attributes = parent.attributes) === null || _parent$attributes === void 0 ? void 0 : _parent$attributes.find(a => a.name === first);
290
333
  if (!nextParent) {
291
- var _object$attributes2;
292
- (_object$attributes2 = object.attributes) === null || _object$attributes2 === void 0 || _object$attributes2.push(nestAttributeInDummyObject(attribute));
334
+ if (attribute.listValue) {
335
+ var _parent$values;
336
+ (_parent$values = parent.values) === null || _parent$values === void 0 || _parent$values.push(nestAttributeInDummyParent(attribute));
337
+ } else {
338
+ var _parent$attributes2;
339
+ (_parent$attributes2 = parent.attributes) === null || _parent$attributes2 === void 0 || _parent$attributes2.push(nestAttributeInDummyParent(attribute));
340
+ }
293
341
  } else {
294
- insertAttributeInObject({
342
+ insertAttributeInParent({
295
343
  ...attribute,
296
344
  path: rest.join('/')
297
345
  }, nextParent);
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeOneCore","require","_icons","_date","_testID","_credentialImages","ValidityState","exports","getValidityState","credential","state","CredentialStateEnum","REVOKED","Revoked","SUSPENDED","Suspended","Valid","supportsSelectiveDisclosure","config","_formatConfig$capabil","formatConfig","format","schema","Boolean","capabilities","features","includes","FormatFeatureEnum","SelectiveDisclosure","undefined","findClaimByPathParts","path","claims","length","first","second","rest","claim","find","c","key","dataType","DataTypeEnum","Object","value","findClaimByPath","split","formatCredentialDetail","testID","_attributeValue$value","attributeValue","detailsCardAttributeValueFromClaim","hasMsoValidityIssues","mdocMsoValidity","mdocMsoValidityIssue","nextUpdate","Date","cardHeaderFromCredential","labels","_formatDateTimeLocali","_credential$issuanceD","_layoutProperties$log","_layoutProperties$log2","_layoutProperties$log3","credentialDetailPrimary","formatDateTimeLocalized","issuanceDate","createdDate","credentialDetailSecondary","credentialDetailErrorColor","credentialDetailTestID","statusIcon","layoutProperties","suspendEndDate","suspendedUntil","suspended","concatTestID","CredentialWarningIcon","revoked","CredentialErrorIcon","validityIssues","primary","primaryAttribute","secondary","secondaryAttribute","color","logo","backgroundColor","credentialName","name","icon","image","imageSource","uri","iconLabelColor","fontColor","getCredentialCardPropsFromCredential","notice","_layoutProperties$bac","_layoutProperties$bac2","text","validityIssuesNotice","noticeIcon","CredentialNoticeWarningIcon","result","cardCarouselImages","getCarouselImagesFromClaims","cardImage","background","header","detailsCardAttributeFromClaim","id","pop","typeConfig","datatype","array","values","map","arrayValue","index","toString","type","Array","isArray","attributes","nestedClaim","_formatDateLocalized","String","date","formatDateLocalized","File","_typeConfig$params","params","showAs","detailsCardFromCredential","detailsCardFromCredentialWithClaims","card","nestAttributes","attribute","attributePath","push","parent","a","insertAttributeInObject","join","nestAttributeInDummyObject","pathParts","disabled","object","_object$attributes","nextParent","_object$attributes2","parseBase64Image","getCredentialSchemaWithoutImages","credentialSchema","_credentialSchema$lay","_credentialSchema$lay2","_credentialSchema$lay3","_credentialSchema$lay4"],"sources":["credential.ts"],"sourcesContent":["import {\n Claim,\n Config,\n CredentialDetail,\n CredentialListItem,\n CredentialSchema,\n CredentialStateEnum,\n DataTypeEnum,\n FormatFeatureEnum,\n} from '@procivis/react-native-one-core';\n\nimport {\n CredentialAttribute,\n CredentialAttributeValue,\n CredentialCardProps,\n CredentialDetailsCardProps,\n CredentialHeaderProps,\n} from '../../ui-components/credential';\nimport { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';\nimport { CredentialErrorIcon, CredentialNoticeWarningIcon, CredentialWarningIcon } from '../../ui-components/icons';\nimport { formatDateLocalized, formatDateTimeLocalized } from '../date';\nimport { concatTestID } from '../testID';\nimport { getCarouselImagesFromClaims } from './credential-images';\n\nexport enum ValidityState {\n Revoked = 'revoked',\n Suspended = 'suspended',\n Valid = 'valid',\n}\n\nexport const getValidityState = (credential: CredentialListItem | undefined) => {\n if (credential?.state === CredentialStateEnum.REVOKED) {\n return ValidityState.Revoked;\n }\n if (credential?.state === CredentialStateEnum.SUSPENDED) {\n return ValidityState.Suspended;\n }\n return ValidityState.Valid;\n};\n\nexport const supportsSelectiveDisclosure = (credential: CredentialListItem | undefined, config: Config | undefined) => {\n const formatConfig = credential && config?.format[credential.schema.format];\n return formatConfig\n ? Boolean(formatConfig.capabilities?.features?.includes(FormatFeatureEnum.SelectiveDisclosure))\n : undefined;\n};\n\nconst findClaimByPathParts = (path: string[], claims?: Claim[]): Claim | undefined => {\n if (!claims?.length) {\n return undefined;\n }\n const [first, second, ...rest] = path;\n const claim = claims.find((c) => c.key === first);\n if (claim === undefined || second === undefined || claim.dataType !== DataTypeEnum.Object) {\n return claim;\n }\n\n return findClaimByPathParts([`${first}/${second}`, ...rest], claim.value as Claim[]);\n};\n\nexport const findClaimByPath = (path: string | undefined, claims: Claim[] | undefined) =>\n path ? findClaimByPathParts(path.split('/'), claims) : undefined;\n\nconst formatCredentialDetail = (claim: Claim, config: Config, testID: string): string => {\n const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID);\n return attributeValue.value ?? '';\n};\n\nexport const hasMsoValidityIssues = (credential: CredentialDetail): boolean => {\n const mdocMsoValidity: { nextUpdate: string } | undefined =\n 'mdocMsoValidity' in credential ? (credential.mdocMsoValidity as { nextUpdate: string }) : undefined;\n\n const mdocMsoValidityIssue = Boolean(\n mdocMsoValidity?.nextUpdate && new Date(mdocMsoValidity.nextUpdate) < new Date(),\n );\n\n return mdocMsoValidityIssue;\n};\n\nexport type CardHeaderLabels = {\n validityIssues: string;\n revoked: string;\n suspended: string;\n suspendedUntil: (date: string) => string;\n};\n\nexport const cardHeaderFromCredential = (\n credential: CredentialDetail,\n claims: Claim[] = [],\n config: Config,\n testID: string,\n labels: CardHeaderLabels,\n): Omit<CredentialHeaderProps, 'style'> => {\n let credentialDetailPrimary =\n formatDateTimeLocalized(new Date(credential.issuanceDate ?? credential.createdDate)) ?? '';\n\n let credentialDetailSecondary: string | undefined;\n let credentialDetailErrorColor: boolean | undefined;\n let credentialDetailTestID: string | undefined;\n let statusIcon;\n\n const { layoutProperties } = credential.schema;\n\n switch (credential.state) {\n case CredentialStateEnum.SUSPENDED:\n credentialDetailPrimary = credential.suspendEndDate\n ? labels.suspendedUntil(formatDateTimeLocalized(new Date(credential.suspendEndDate))!)\n : labels.suspended;\n credentialDetailTestID = concatTestID(testID, 'suspended');\n statusIcon = CredentialWarningIcon;\n break;\n case CredentialStateEnum.REVOKED:\n credentialDetailPrimary = labels.revoked;\n credentialDetailErrorColor = true;\n credentialDetailTestID = concatTestID(testID, 'revoked');\n statusIcon = CredentialErrorIcon;\n break;\n default: {\n if (hasMsoValidityIssues(credential)) {\n credentialDetailPrimary = labels.validityIssues;\n credentialDetailTestID = concatTestID(testID, 'validity-issue');\n statusIcon = CredentialWarningIcon;\n } else {\n const primary = findClaimByPath(layoutProperties?.primaryAttribute, claims);\n\n if (primary) {\n credentialDetailPrimary = formatCredentialDetail(primary, config, concatTestID(testID, 'primary'));\n }\n\n const secondary = findClaimByPath(layoutProperties?.secondaryAttribute, claims);\n\n if (secondary) {\n credentialDetailSecondary = formatCredentialDetail(secondary, config, concatTestID(testID, 'secondary'));\n }\n\n credentialDetailTestID = concatTestID(testID, 'detail');\n }\n break;\n }\n }\n return {\n color: layoutProperties?.logo?.backgroundColor,\n credentialDetailErrorColor,\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID,\n credentialName: credential.schema.name,\n icon: layoutProperties?.logo?.image\n ? {\n imageSource: {\n uri: layoutProperties.logo.image,\n },\n }\n : undefined,\n iconLabelColor: layoutProperties?.logo?.fontColor,\n statusIcon,\n testID,\n };\n};\n\nexport type CardLabels = CardHeaderLabels & {\n validityIssuesNotice: string;\n};\n\nexport const getCredentialCardPropsFromCredential = (\n credential: CredentialDetail,\n claims: Claim[] = [],\n config: Config,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: CardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n const { layoutProperties } = credential.schema;\n\n if (hasMsoValidityIssues(credential)) {\n notice = {\n text: labels.validityIssuesNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n };\n }\n\n const result: Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> = {\n cardCarouselImages: getCarouselImagesFromClaims(claims, layoutProperties, concatTestID(testID, 'carousel')),\n cardImage: layoutProperties?.background?.image\n ? { imageSource: { uri: layoutProperties.background.image } }\n : undefined,\n color: layoutProperties?.background?.color,\n header: cardHeaderFromCredential(credential, claims, config, concatTestID(testID, 'header'), labels),\n testID,\n notice,\n };\n\n return result;\n};\n\nexport const detailsCardAttributeFromClaim = (claim: Claim, config: Config, testID: string): CredentialAttribute => {\n const value = detailsCardAttributeValueFromClaim(claim, config, testID);\n return {\n id: claim.id,\n name: claim.key.split('/').pop(),\n path: claim.key,\n ...value,\n };\n};\n\nconst detailsCardAttributeValueFromClaim = (claim: Claim, config: Config, testID: string): CredentialAttributeValue => {\n const typeConfig = config?.datatype[claim.dataType];\n\n if (claim.array) {\n return {\n values: (claim.value || []).map((arrayValue, index) => {\n return detailsCardAttributeFromClaim(\n {\n ...arrayValue,\n id: `${arrayValue.id}/${index}`,\n },\n config,\n concatTestID(testID, index.toString()),\n );\n }),\n };\n } else {\n switch (typeConfig?.type) {\n case DataTypeEnum.Object: {\n if (!Array.isArray(claim.value)) {\n return { attributes: [] };\n }\n return {\n attributes: (claim.value as Claim[]).map((nestedClaim, index) =>\n detailsCardAttributeFromClaim(nestedClaim, config, concatTestID(testID, index.toString())),\n ),\n };\n }\n case DataTypeEnum.Date: {\n if (!claim.value) {\n // Don't try to parse empty values (which will return \"Invalid Date\")\n return { testID: testID, value: String(claim.value) };\n }\n const date = claim.value as string;\n return {\n testID: testID,\n value: formatDateLocalized(new Date(date)) ?? date,\n };\n }\n case DataTypeEnum.File: {\n if (typeConfig.params?.showAs === 'IMAGE') {\n return { image: { uri: claim.value as string }, testID: testID };\n } else {\n return { testID: testID, value: claim.value as string };\n }\n }\n default:\n return { testID: testID, value: String(claim.value) };\n }\n }\n};\n\nexport type CredentialDetailsCardPropsWithoutWidth = Omit<CredentialDetailsCardProps, 'expanded' | 'card'> & {\n card: Omit<CredentialCardProps, 'width'>;\n}\n\nexport const detailsCardFromCredential = (\n credential: CredentialDetail,\n config: Config,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels);\n};\n\nexport const detailsCardFromCredentialWithClaims = (\n credential: CredentialDetail,\n claims: Claim[],\n config: Config,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const attributes: CredentialAttribute[] = claims.map((claim, index) =>\n detailsCardAttributeFromClaim(claim, config, concatTestID(testID, 'attribute', index.toString())),\n );\n\n const card = getCredentialCardPropsFromCredential(\n credential,\n claims,\n config,\n undefined,\n concatTestID(testID, 'card'),\n labels,\n );\n\n return {\n attributes,\n card,\n };\n};\n\n// Converts a flat list of attributes into a nested structure\n// modifies the names to not include slashes\nexport const nestAttributes = (attributes: CredentialAttribute[]): CredentialAttribute[] => {\n const result: CredentialAttribute[] = [];\n\n for (const attribute of attributes) {\n const attributePath = attribute.path.split('/');\n if (attributePath.length === 0) {\n result.push(attribute);\n } else {\n const [first, ...rest] = attributePath;\n const parent = result.find((a) => a.name === first);\n if (parent) {\n insertAttributeInObject({ ...attribute, path: rest.join('/') }, parent);\n } else {\n result.push(nestAttributeInDummyObject(attribute));\n }\n }\n }\n\n return result;\n};\n\n// We nest the leaf node in a (one or more) nested object(s)\n// to make sure the tree structure is correctly rendered in proof request screens.\nconst nestAttributeInDummyObject = (attribute: CredentialAttribute): CredentialAttribute => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n if (!rest.length) {\n return attribute;\n }\n\n // The dummy object is not selectable, and contains a placeholder ID\n // the user can't interact with it.\n return {\n attributes: [nestAttributeInDummyObject({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: attribute.path,\n };\n};\n\n// Recursively insert an attribute into an object\n// Will create nested objects if necessary\nconst insertAttributeInObject = (attribute: CredentialAttribute, object: CredentialAttribute) => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n\n const nextParent = object.attributes?.find((a) => a.name === first);\n\n if (!nextParent) {\n object.attributes?.push(nestAttributeInDummyObject(attribute));\n } else {\n insertAttributeInObject({ ...attribute, path: rest.join('/') }, nextParent);\n }\n};\n\nfunction parseBase64Image(image: string | undefined) {\n return image ? '__BASE64IMAGE__' : '';\n}\n\nexport function getCredentialSchemaWithoutImages(credentialSchema: CredentialSchema) {\n return {\n ...credentialSchema,\n layoutProperties: {\n ...credentialSchema.layoutProperties,\n background: {\n ...credentialSchema.layoutProperties?.background,\n image: parseBase64Image(credentialSchema.layoutProperties?.background?.image),\n },\n logo: {\n ...credentialSchema.layoutProperties?.logo,\n image: parseBase64Image(credentialSchema.layoutProperties?.logo?.image),\n },\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeOneCore","require","_icons","_date","_testID","_walletUnit","_credentialImages","ValidityState","exports","getValidityState","credential","state","CredentialStateEnum","REVOKED","Revoked","SUSPENDED","Suspended","Valid","supportsSelectiveDisclosure","config","_formatConfig$capabil","formatConfig","format","schema","Boolean","capabilities","features","includes","FormatFeatureEnum","SelectiveDisclosure","undefined","findClaimByPathParts","path","claims","length","first","second","rest","claim","find","c","key","dataType","DataTypeEnum","Object","value","findClaimByPath","split","formatCredentialDetail","testID","_attributeValue$value","attributeValue","detailsCardAttributeValueFromClaim","hasMsoValidityIssues","mdocMsoValidity","mdocMsoValidityIssue","nextUpdate","Date","credentialDetailFromCredential","wuaState","labels","_formatDateTimeLocali","_credential$issuanceD","layoutProperties","walletStorageType","WalletStorageType","EUDI_COMPLIANT","WUAState","credentialDetailPrimary","wuaRevoked","credentialDetailErrorColor","credentialDetailTestID","concatTestID","statusIcon","CredentialErrorIcon","suspendEndDate","suspendedUntil","formatDateTimeLocalized","suspended","CredentialWarningIcon","revoked","Expired","wuaExpired","validityIssues","issuanceDate","createdDate","credentialDetailSecondary","primary","primaryAttribute","secondary","secondaryAttribute","cardHeaderFromCredential","_layoutProperties$log","_layoutProperties$log2","_layoutProperties$log3","color","logo","backgroundColor","credentialName","name","icon","image","imageSource","uri","iconLabelColor","fontColor","getCredentialCardPropsFromCredential","notice","_layoutProperties$bac","_layoutProperties$bac2","text","validityIssuesNotice","noticeIcon","CredentialNoticeWarningIcon","result","cardCarouselImages","getCarouselImagesFromClaims","cardImage","background","header","detailsCardAttributeFromClaim","id","pop","typeConfig","datatype","array","values","map","arrayValue","index","toString","type","Array","isArray","attributes","nestedClaim","_formatDateLocalized","String","date","formatDateLocalized","Picture","SwiyuPicture","_typeConfig$params","params","showAs","detailsCardFromCredential","detailsCardFromCredentialWithClaims","card","nestAttributes","attribute","attributePath","push","parent","a","insertAttributeInParent","join","nestAttributeInDummyParent","pathParts","listValue","disabled","_parent$attributes","nextParent","_parent$values","_parent$attributes2","parseBase64Image","getCredentialSchemaWithoutImages","credentialSchema","_credentialSchema$lay","_credentialSchema$lay2","_credentialSchema$lay3","_credentialSchema$lay4"],"sources":["credential.ts"],"sourcesContent":["import {\n Claim,\n Config,\n CredentialDetail,\n CredentialListItem,\n CredentialSchema,\n CredentialStateEnum,\n DataTypeEnum,\n FormatFeatureEnum,\n WalletStorageType,\n} from '@procivis/react-native-one-core';\nimport { FC } from 'react';\nimport { SvgProps } from 'react-native-svg';\n\nimport {\n CredentialAttribute,\n CredentialAttributeValue,\n CredentialCardProps,\n CredentialDetailsCardProps,\n CredentialHeaderProps,\n} from '../../ui-components/credential';\nimport { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';\nimport { CredentialErrorIcon, CredentialNoticeWarningIcon, CredentialWarningIcon } from '../../ui-components/icons';\nimport { formatDateLocalized, formatDateTimeLocalized } from '../date';\nimport { concatTestID } from '../testID';\nimport { WUAState } from '../wallet-unit';\nimport { getCarouselImagesFromClaims } from './credential-images';\n\nexport enum ValidityState {\n Revoked = 'revoked',\n Suspended = 'suspended',\n Valid = 'valid',\n}\n\nexport const getValidityState = (credential: CredentialListItem | undefined) => {\n if (credential?.state === CredentialStateEnum.REVOKED) {\n return ValidityState.Revoked;\n }\n if (credential?.state === CredentialStateEnum.SUSPENDED) {\n return ValidityState.Suspended;\n }\n return ValidityState.Valid;\n};\n\nexport const supportsSelectiveDisclosure = (credential: CredentialListItem | undefined, config: Config | undefined) => {\n const formatConfig = credential && config?.format[credential.schema.format];\n return formatConfig\n ? Boolean(formatConfig.capabilities?.features?.includes(FormatFeatureEnum.SelectiveDisclosure))\n : undefined;\n};\n\nconst findClaimByPathParts = (path: string[], claims?: Claim[]): Claim | undefined => {\n if (!claims?.length) {\n return undefined;\n }\n const [first, second, ...rest] = path;\n const claim = claims.find((c) => c.key === first);\n if (claim === undefined || second === undefined || claim.dataType !== DataTypeEnum.Object) {\n return claim;\n }\n\n return findClaimByPathParts([`${first}/${second}`, ...rest], claim.value as Claim[]);\n};\n\nexport const findClaimByPath = (path: string | undefined, claims: Claim[] | undefined) =>\n path ? findClaimByPathParts(path.split('/'), claims) : undefined;\n\nconst formatCredentialDetail = (claim: Claim, config: Config, testID: string): string => {\n const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID);\n return attributeValue.value ?? '';\n};\n\nexport const hasMsoValidityIssues = (credential: CredentialDetail): boolean => {\n const mdocMsoValidity: { nextUpdate: string } | undefined =\n 'mdocMsoValidity' in credential ? (credential.mdocMsoValidity as { nextUpdate: string }) : undefined;\n\n const mdocMsoValidityIssue = Boolean(\n mdocMsoValidity?.nextUpdate && new Date(mdocMsoValidity.nextUpdate) < new Date(),\n );\n\n return mdocMsoValidityIssue;\n};\n\nexport type CardHeaderLabels = {\n validityIssues: string;\n revoked: string;\n suspended: string;\n suspendedUntil: (date: string) => string;\n wuaExpired: string;\n wuaRevoked: string;\n};\n\nconst credentialDetailFromCredential = (\n credential: CredentialDetail,\n claims: Claim[] = [],\n config: Config,\n wuaState: WUAState | undefined,\n testID: string,\n labels: CardHeaderLabels,\n): {\n credentialDetailPrimary?: string;\n credentialDetailSecondary?: string;\n credentialDetailErrorColor?: boolean;\n credentialDetailTestID?: string;\n statusIcon?: FC<SvgProps>;\n} => {\n const { layoutProperties } = credential.schema;\n\n if (credential.schema.walletStorageType === WalletStorageType.EUDI_COMPLIANT && wuaState === WUAState.Revoked) {\n return {\n credentialDetailPrimary: labels.wuaRevoked,\n credentialDetailErrorColor: true,\n credentialDetailTestID: concatTestID(testID, 'wua', 'revoked'),\n statusIcon: CredentialErrorIcon,\n };\n }\n\n switch (credential.state) {\n case CredentialStateEnum.SUSPENDED:\n return {\n credentialDetailPrimary: credential.suspendEndDate\n ? labels.suspendedUntil(formatDateTimeLocalized(new Date(credential.suspendEndDate))!)\n : labels.suspended,\n credentialDetailTestID: concatTestID(testID, 'suspended'),\n statusIcon: CredentialWarningIcon,\n };\n case CredentialStateEnum.REVOKED:\n return {\n credentialDetailPrimary: labels.revoked,\n credentialDetailErrorColor: true,\n credentialDetailTestID: concatTestID(testID, 'revoked'),\n statusIcon: CredentialErrorIcon,\n };\n }\n\n if (credential.schema.walletStorageType === WalletStorageType.EUDI_COMPLIANT && wuaState === WUAState.Expired) {\n return {\n credentialDetailPrimary: labels.wuaExpired,\n credentialDetailTestID: concatTestID(testID, 'wua', 'suspended'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n if (hasMsoValidityIssues(credential)) {\n return {\n credentialDetailPrimary: labels.validityIssues,\n credentialDetailTestID: concatTestID(testID, 'validity-issue'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n let credentialDetailPrimary =\n formatDateTimeLocalized(new Date(credential.issuanceDate ?? credential.createdDate)) ?? '';\n let credentialDetailSecondary: string | undefined;\n\n const primary = findClaimByPath(layoutProperties?.primaryAttribute, claims);\n\n if (primary) {\n credentialDetailPrimary = formatCredentialDetail(primary, config, concatTestID(testID, 'primary'));\n }\n\n const secondary = findClaimByPath(layoutProperties?.secondaryAttribute, claims);\n\n if (secondary) {\n credentialDetailSecondary = formatCredentialDetail(secondary, config, concatTestID(testID, 'secondary'));\n }\n\n return {\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID: concatTestID(testID, 'detail'),\n };\n};\n\nexport const cardHeaderFromCredential = (\n credential: CredentialDetail,\n claims: Claim[] = [],\n config: Config,\n wuaState: WUAState | undefined,\n testID: string,\n labels: CardHeaderLabels,\n): Omit<CredentialHeaderProps, 'style'> => {\n const {\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailErrorColor,\n credentialDetailTestID,\n statusIcon,\n } = credentialDetailFromCredential(credential, claims, config, wuaState, testID, labels);\n const { layoutProperties } = credential.schema;\n\n return {\n color: layoutProperties?.logo?.backgroundColor,\n credentialDetailErrorColor,\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID,\n credentialName: credential.schema.name,\n icon: layoutProperties?.logo?.image\n ? {\n imageSource: {\n uri: layoutProperties.logo.image,\n },\n }\n : undefined,\n iconLabelColor: layoutProperties?.logo?.fontColor,\n statusIcon,\n testID,\n };\n};\n\nexport type CardLabels = CardHeaderLabels & {\n validityIssuesNotice: string;\n};\n\nexport const getCredentialCardPropsFromCredential = (\n credential: CredentialDetail,\n claims: Claim[] = [],\n config: Config,\n wuaState: WUAState | undefined,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: CardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n const { layoutProperties } = credential.schema;\n\n if (hasMsoValidityIssues(credential)) {\n notice = {\n text: labels.validityIssuesNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n };\n }\n\n const result: Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> = {\n cardCarouselImages: getCarouselImagesFromClaims(claims, layoutProperties, concatTestID(testID, 'carousel')),\n cardImage: layoutProperties?.background?.image\n ? { imageSource: { uri: layoutProperties.background.image } }\n : undefined,\n color: layoutProperties?.background?.color,\n header: cardHeaderFromCredential(credential, claims, config, wuaState, concatTestID(testID, 'header'), labels),\n testID,\n notice,\n };\n\n return result;\n};\n\nexport const detailsCardAttributeFromClaim = (claim: Claim, config: Config, testID: string): CredentialAttribute => {\n const value = detailsCardAttributeValueFromClaim(claim, config, testID);\n return {\n id: claim.id,\n name: claim.key.split('/').pop(),\n path: claim.key,\n ...value,\n };\n};\n\nconst detailsCardAttributeValueFromClaim = (claim: Claim, config: Config, testID: string): CredentialAttributeValue => {\n const typeConfig = config?.datatype[claim.dataType];\n\n if (claim.array) {\n return {\n values: (claim.value || []).map((arrayValue, index) => {\n return detailsCardAttributeFromClaim(\n {\n ...arrayValue,\n id: `${arrayValue.id}/${index}`,\n },\n config,\n concatTestID(testID, index.toString()),\n );\n }),\n };\n } else {\n switch (typeConfig?.type) {\n case DataTypeEnum.Object: {\n if (!Array.isArray(claim.value)) {\n return { attributes: [] };\n }\n return {\n attributes: (claim.value as Claim[]).map((nestedClaim, index) =>\n detailsCardAttributeFromClaim(nestedClaim, config, concatTestID(testID, index.toString())),\n ),\n };\n }\n case DataTypeEnum.Date: {\n if (!claim.value) {\n // Don't try to parse empty values (which will return \"Invalid Date\")\n return { testID: testID, value: String(claim.value) };\n }\n const date = claim.value as string;\n return {\n testID: testID,\n value: formatDateLocalized(new Date(date)) ?? date,\n };\n }\n case DataTypeEnum.Picture: // fallback\n case DataTypeEnum.SwiyuPicture: {\n if (typeConfig.params?.showAs === 'IMAGE') {\n return { image: { uri: claim.value as string }, testID: testID };\n } else {\n return { testID: testID, value: claim.value as string };\n }\n }\n default:\n return { testID: testID, value: String(claim.value) };\n }\n }\n};\n\nexport type CredentialDetailsCardPropsWithoutWidth = Omit<CredentialDetailsCardProps, 'expanded' | 'card'> & {\n card: Omit<CredentialCardProps, 'width'>;\n};\n\nexport const detailsCardFromCredential = (\n credential: CredentialDetail,\n config: Config,\n wuaState: WUAState | undefined,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n return detailsCardFromCredentialWithClaims(credential, credential.claims, config, wuaState, testID, labels);\n};\n\nexport const detailsCardFromCredentialWithClaims = (\n credential: CredentialDetail,\n claims: Claim[],\n config: Config,\n wuaState: WUAState | undefined,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const attributes: CredentialAttribute[] = claims.map((claim, index) =>\n detailsCardAttributeFromClaim(claim, config, concatTestID(testID, 'attribute', index.toString())),\n );\n\n const card = getCredentialCardPropsFromCredential(\n credential,\n claims,\n config,\n wuaState,\n undefined,\n concatTestID(testID, 'card'),\n labels,\n );\n\n return {\n attributes,\n card,\n };\n};\n\n// Converts a flat list of attributes into a nested structure\n// modifies the names to not include slashes\nexport const nestAttributes = (attributes: CredentialAttribute[]): CredentialAttribute[] => {\n const result: CredentialAttribute[] = [];\n\n for (const attribute of attributes) {\n const attributePath = attribute.path.split('/');\n if (attributePath.length === 0) {\n result.push(attribute);\n } else {\n const [first, ...rest] = attributePath;\n const parent = result.find((a) => a.name === first);\n if (parent) {\n insertAttributeInParent({ ...attribute, path: rest.join('/') }, parent);\n } else {\n result.push(nestAttributeInDummyParent(attribute));\n }\n }\n }\n\n return result;\n};\n\n// We nest the leaf node in a (one or more) nested object(s)\n// to make sure the tree structure is correctly rendered in proof request screens.\nconst nestAttributeInDummyParent = (attribute: CredentialAttribute): CredentialAttribute => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n if (!rest.length) {\n return attribute;\n }\n\n // The dummy object is not selectable, and contains a placeholder ID\n // the user can't interact with it.\n if (attribute.listValue) {\n return {\n values: [nestAttributeInDummyParent({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: first,\n };\n } else {\n return {\n attributes: [nestAttributeInDummyParent({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: first,\n };\n }\n};\n\n// Recursively insert an attribute into an parent\n// Will create nested parents if necessary\nconst insertAttributeInParent = (attribute: CredentialAttribute, parent: CredentialAttribute) => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n\n const nextParent = parent.attributes?.find((a) => a.name === first);\n\n if (!nextParent) {\n if (attribute.listValue) {\n parent.values?.push(nestAttributeInDummyParent(attribute));\n } else {\n parent.attributes?.push(nestAttributeInDummyParent(attribute));\n }\n } else {\n insertAttributeInParent({ ...attribute, path: rest.join('/') }, nextParent);\n }\n};\n\nfunction parseBase64Image(image: string | undefined) {\n return image ? '__BASE64IMAGE__' : '';\n}\n\nexport function getCredentialSchemaWithoutImages(credentialSchema: CredentialSchema) {\n return {\n ...credentialSchema,\n layoutProperties: {\n ...credentialSchema.layoutProperties,\n background: {\n ...credentialSchema.layoutProperties?.background,\n image: parseBase64Image(credentialSchema.layoutProperties?.background?.image),\n },\n logo: {\n ...credentialSchema.layoutProperties?.logo,\n image: parseBase64Image(credentialSchema.layoutProperties?.logo?.image),\n },\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -36,6 +36,17 @@ Object.keys(_credentialSharing).forEach(function (key) {
36
36
  }
37
37
  });
38
38
  });
39
+ var _credentialSharingV = require("./credential-sharing-v2");
40
+ Object.keys(_credentialSharingV).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _credentialSharingV[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _credentialSharingV[key];
47
+ }
48
+ });
49
+ });
39
50
  var _query = require("./query");
40
51
  Object.keys(_query).forEach(function (key) {
41
52
  if (key === "default" || key === "__esModule") return;
@@ -1 +1 @@
1
- {"version":3,"names":["_credential","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_credentialImages","_credentialSharing","_query","_universalLinks"],"sources":["index.ts"],"sourcesContent":["export * from './credential';\nexport * from './credential-images';\nexport * from './credential-sharing';\nexport * from './query';\nexport * from './universal-links';\n"],"mappings":";;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,WAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,WAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,WAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,iBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,iBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,iBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,iBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,kBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,kBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,kBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,kBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,MAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,MAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,MAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,eAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,eAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,eAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,eAAA,CAAAR,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_credential","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_credentialImages","_credentialSharing","_credentialSharingV","_query","_universalLinks"],"sources":["index.ts"],"sourcesContent":["export * from './credential';\nexport * from './credential-images';\nexport * from './credential-sharing';\nexport * from './credential-sharing-v2';\nexport * from './query';\nexport * from './universal-links';\n"],"mappings":";;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,WAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,WAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,WAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,iBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,iBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,iBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,iBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,kBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,kBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,kBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,kBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,mBAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,mBAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,mBAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,mBAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,MAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,MAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,MAAA,CAAAR,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,eAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,eAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAS,eAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAK,eAAA,CAAAT,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -11,11 +11,11 @@ function getQueryKey(queryParams, params) {
11
11
  return params.map(param => queryParams[param]);
12
12
  }
13
13
  const getQueryKeyFromCredentialListQueryParams = (queryParams = {}) => {
14
- return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'name', 'searchText', 'searchType', 'sort', 'sortDirection', 'exact', 'role', 'ids', 'status', 'include', 'profile', 'credentialSchemaIds', 'createdDateAfter', 'createdDateBefore', 'lastModifiedAfter', 'lastModifiedBefore', 'issuanceDateAfter', 'issuanceDateBefore', 'revocationDateAfter', 'revocationDateBefore']);
14
+ return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'name', 'searchText', 'searchType', 'sort', 'sortDirection', 'exact', 'roles', 'ids', 'states', 'include', 'profiles', 'credentialSchemaIds', 'createdDateAfter', 'createdDateBefore', 'lastModifiedAfter', 'lastModifiedBefore', 'issuanceDateAfter', 'issuanceDateBefore', 'revocationDateAfter', 'revocationDateBefore']);
15
15
  };
16
16
  exports.getQueryKeyFromCredentialListQueryParams = getQueryKeyFromCredentialListQueryParams;
17
17
  const getQueryKeyFromHistoryListQueryParams = (queryParams = {}) => {
18
- return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'entityId', 'actions', 'entityTypes', 'createdDateAfter', 'createdDateBefore', 'identifierId', 'credentialId', 'credentialSchemaId', 'proofSchemaId', 'search']);
18
+ return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'entityId', 'actions', 'entityTypes', 'createdDateAfter', 'createdDateBefore', 'identifierId', 'credentialId', 'credentialSchemaId', 'proofSchemaId', 'search', 'user']);
19
19
  };
20
20
  exports.getQueryKeyFromHistoryListQueryParams = getQueryKeyFromHistoryListQueryParams;
21
21
  const getQueryKeyFromCredentialSchemaListQueryParams = (queryParams = {}) => {
@@ -27,7 +27,7 @@ const getQueryKeyFromProofSchemaListQueryParams = (queryParams = {}) => {
27
27
  };
28
28
  exports.getQueryKeyFromProofSchemaListQueryParams = getQueryKeyFromProofSchemaListQueryParams;
29
29
  const getQueryKeyFromProofListQueryParams = (queryParams = {}) => {
30
- return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'sort', 'sortDirection', 'name', 'ids', 'proofStates', 'proofRoles', 'proofSchemaIds', 'exact', 'profile', 'createdDateAfter', 'createdDateBefore', 'lastModifiedAfter', 'lastModifiedBefore', 'requestedDateAfter', 'requestedDateBefore', 'completedDateAfter', 'completedDateBefore']);
30
+ return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'sort', 'sortDirection', 'name', 'ids', 'proofStates', 'proofRoles', 'proofSchemaIds', 'exact', 'profiles', 'createdDateAfter', 'createdDateBefore', 'lastModifiedAfter', 'lastModifiedBefore', 'requestedDateAfter', 'requestedDateBefore', 'completedDateAfter', 'completedDateBefore']);
31
31
  };
32
32
  exports.getQueryKeyFromProofListQueryParams = getQueryKeyFromProofListQueryParams;
33
33
  const getQueryKeyFromDidListQueryParams = (queryParams = {}) => {
@@ -35,7 +35,7 @@ const getQueryKeyFromDidListQueryParams = (queryParams = {}) => {
35
35
  };
36
36
  exports.getQueryKeyFromDidListQueryParams = getQueryKeyFromDidListQueryParams;
37
37
  const getQueryKeyFromIdentifierListQueryParams = (queryParams = {}) => {
38
- return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'sort', 'sortDirection', 'name', 'types', 'state', 'exact', 'didMethods', 'isRemote', 'keyAlgorithms', 'keyRoles', 'keyStorages', 'createdDateAfter', 'createdDateBefore', 'lastModifiedAfter', 'lastModifiedBefore']);
38
+ return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'sort', 'sortDirection', 'name', 'types', 'states', 'exact', 'didMethods', 'isRemote', 'keyAlgorithms', 'keyRoles', 'keyStorages', 'createdDateAfter', 'createdDateBefore', 'lastModifiedAfter', 'lastModifiedBefore']);
39
39
  };
40
40
  exports.getQueryKeyFromIdentifierListQueryParams = getQueryKeyFromIdentifierListQueryParams;
41
41
  //# sourceMappingURL=query.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getQueryKey","queryParams","params","map","param","getQueryKeyFromCredentialListQueryParams","exports","getQueryKeyFromHistoryListQueryParams","getQueryKeyFromCredentialSchemaListQueryParams","getQueryKeyFromProofSchemaListQueryParams","getQueryKeyFromProofListQueryParams","getQueryKeyFromDidListQueryParams","getQueryKeyFromIdentifierListQueryParams"],"sources":["query.ts"],"sourcesContent":["import {\n CredentialListQuery,\n CredentialSchemaListQuery,\n DidListQuery,\n HistoryListQuery,\n IdentifierListQuery,\n ProofListQuery,\n ProofSchemaListQuery,\n} from '@procivis/react-native-one-core';\n\ntype QueryKey<ListQuery, ParamList> = ParamList extends ReadonlyArray<keyof ListQuery> // all params are inside the ListQuery\n ? keyof ListQuery extends ParamList[number] // all ListQuery fields are in the params\n ? Array<ListQuery[keyof ListQuery]>\n : void\n : void; // otherwise produce a wrong return type which should trigger compilation error\n\n/** Typecheck that all query params are included in the query key */\nfunction getQueryKey<ListQuery extends {}, ParamList extends ReadonlyArray<keyof ListQuery>>(\n queryParams: ListQuery,\n params: ParamList,\n): QueryKey<ListQuery, ParamList> {\n return params.map((param) => queryParams[param]) as QueryKey<ListQuery, ParamList>;\n}\n\nexport const getQueryKeyFromCredentialListQueryParams = (queryParams: Partial<CredentialListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'searchText',\n 'searchType',\n 'sort',\n 'sortDirection',\n 'exact',\n 'role',\n 'ids',\n 'status',\n 'include',\n 'profile',\n 'credentialSchemaIds',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n 'issuanceDateAfter',\n 'issuanceDateBefore',\n 'revocationDateAfter',\n 'revocationDateBefore',\n ]);\n};\n\nexport const getQueryKeyFromHistoryListQueryParams = (queryParams: Partial<HistoryListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'entityId',\n 'actions',\n 'entityTypes',\n 'createdDateAfter',\n 'createdDateBefore',\n 'identifierId',\n 'credentialId',\n 'credentialSchemaId',\n 'proofSchemaId',\n 'search',\n ]);\n};\n\nexport const getQueryKeyFromCredentialSchemaListQueryParams = (\n queryParams: Partial<CredentialSchemaListQuery> = {},\n) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'sort',\n 'sortDirection',\n 'exact',\n 'ids',\n 'include',\n 'schemaId',\n 'formats',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n\nexport const getQueryKeyFromProofSchemaListQueryParams = (queryParams: Partial<ProofSchemaListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'sort',\n 'sortDirection',\n 'exact',\n 'ids',\n 'formats',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n\nexport const getQueryKeyFromProofListQueryParams = (queryParams: Partial<ProofListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'sort',\n 'sortDirection',\n 'name',\n 'ids',\n 'proofStates',\n 'proofRoles',\n 'proofSchemaIds',\n 'exact',\n 'profile',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n 'requestedDateAfter',\n 'requestedDateBefore',\n 'completedDateAfter',\n 'completedDateBefore',\n ]);\n};\n\nexport const getQueryKeyFromDidListQueryParams = (queryParams: Partial<DidListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'sort',\n 'sortDirection',\n 'name',\n 'did',\n 'type',\n 'deactivated',\n 'exact',\n 'keyAlgorithms',\n 'keyRoles',\n 'keyStorages',\n 'keyIds',\n 'didMethods',\n ]);\n};\n\nexport const getQueryKeyFromIdentifierListQueryParams = (queryParams: Partial<IdentifierListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'sort',\n 'sortDirection',\n 'name',\n 'types',\n 'state',\n 'exact',\n 'didMethods',\n 'isRemote',\n 'keyAlgorithms',\n 'keyRoles',\n 'keyStorages',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getQueryKey","queryParams","params","map","param","getQueryKeyFromCredentialListQueryParams","exports","getQueryKeyFromHistoryListQueryParams","getQueryKeyFromCredentialSchemaListQueryParams","getQueryKeyFromProofSchemaListQueryParams","getQueryKeyFromProofListQueryParams","getQueryKeyFromDidListQueryParams","getQueryKeyFromIdentifierListQueryParams"],"sources":["query.ts"],"sourcesContent":["import {\n CredentialListQuery,\n CredentialSchemaListQuery,\n DidListQuery,\n HistoryListQuery,\n IdentifierListQuery,\n ProofListQuery,\n ProofSchemaListQuery,\n} from '@procivis/react-native-one-core';\n\ntype QueryKey<ListQuery, ParamList> = ParamList extends ReadonlyArray<keyof ListQuery> // all params are inside the ListQuery\n ? keyof ListQuery extends ParamList[number] // all ListQuery fields are in the params\n ? Array<ListQuery[keyof ListQuery]>\n : void\n : void; // otherwise produce a wrong return type which should trigger compilation error\n\n/** Typecheck that all query params are included in the query key */\nfunction getQueryKey<ListQuery extends {}, ParamList extends ReadonlyArray<keyof ListQuery>>(\n queryParams: ListQuery,\n params: ParamList,\n): QueryKey<ListQuery, ParamList> {\n return params.map((param) => queryParams[param]) as QueryKey<ListQuery, ParamList>;\n}\n\nexport const getQueryKeyFromCredentialListQueryParams = (queryParams: Partial<CredentialListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'searchText',\n 'searchType',\n 'sort',\n 'sortDirection',\n 'exact',\n 'roles',\n 'ids',\n 'states',\n 'include',\n 'profiles',\n 'credentialSchemaIds',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n 'issuanceDateAfter',\n 'issuanceDateBefore',\n 'revocationDateAfter',\n 'revocationDateBefore',\n ]);\n};\n\nexport const getQueryKeyFromHistoryListQueryParams = (queryParams: Partial<HistoryListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'entityId',\n 'actions',\n 'entityTypes',\n 'createdDateAfter',\n 'createdDateBefore',\n 'identifierId',\n 'credentialId',\n 'credentialSchemaId',\n 'proofSchemaId',\n 'search',\n 'user',\n ]);\n};\n\nexport const getQueryKeyFromCredentialSchemaListQueryParams = (\n queryParams: Partial<CredentialSchemaListQuery> = {},\n) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'sort',\n 'sortDirection',\n 'exact',\n 'ids',\n 'include',\n 'schemaId',\n 'formats',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n\nexport const getQueryKeyFromProofSchemaListQueryParams = (queryParams: Partial<ProofSchemaListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'sort',\n 'sortDirection',\n 'exact',\n 'ids',\n 'formats',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n\nexport const getQueryKeyFromProofListQueryParams = (queryParams: Partial<ProofListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'sort',\n 'sortDirection',\n 'name',\n 'ids',\n 'proofStates',\n 'proofRoles',\n 'proofSchemaIds',\n 'exact',\n 'profiles',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n 'requestedDateAfter',\n 'requestedDateBefore',\n 'completedDateAfter',\n 'completedDateBefore',\n ]);\n};\n\nexport const getQueryKeyFromDidListQueryParams = (queryParams: Partial<DidListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'sort',\n 'sortDirection',\n 'name',\n 'did',\n 'type',\n 'deactivated',\n 'exact',\n 'keyAlgorithms',\n 'keyRoles',\n 'keyStorages',\n 'keyIds',\n 'didMethods',\n ]);\n};\n\nexport const getQueryKeyFromIdentifierListQueryParams = (queryParams: Partial<IdentifierListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'sort',\n 'sortDirection',\n 'name',\n 'types',\n 'states',\n 'exact',\n 'didMethods',\n 'isRemote',\n 'keyAlgorithms',\n 'keyRoles',\n 'keyStorages',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.walletUnitAttestationState = exports.isWalletAttestationExpired = exports.WUAState = void 0;
7
+ var _reactNativeOneCore = require("@procivis/react-native-one-core");
8
+ const isWalletAttestationExpired = walletUnitAttestation => {
9
+ return (walletUnitAttestation === null || walletUnitAttestation === void 0 ? void 0 : walletUnitAttestation.expirationDate) && Date.parse(walletUnitAttestation.expirationDate) < Date.now();
10
+ };
11
+ exports.isWalletAttestationExpired = isWalletAttestationExpired;
12
+ let WUAState = exports.WUAState = /*#__PURE__*/function (WUAState) {
13
+ WUAState["Revoked"] = "revoked";
14
+ WUAState["Expired"] = "expired";
15
+ WUAState["Valid"] = "valid";
16
+ return WUAState;
17
+ }({});
18
+ const walletUnitAttestationState = walletUnitAttestation => {
19
+ if (!walletUnitAttestation) {
20
+ return undefined;
21
+ }
22
+ if (walletUnitAttestation.status === _reactNativeOneCore.WalletUnitStatusEnum.REVOKED) {
23
+ return WUAState.Revoked;
24
+ } else if (isWalletAttestationExpired(walletUnitAttestation)) {
25
+ return WUAState.Expired;
26
+ }
27
+ return WUAState.Valid;
28
+ };
29
+ exports.walletUnitAttestationState = walletUnitAttestationState;
30
+ //# sourceMappingURL=wallet-unit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeOneCore","require","isWalletAttestationExpired","walletUnitAttestation","expirationDate","Date","parse","now","exports","WUAState","walletUnitAttestationState","undefined","status","WalletUnitStatusEnum","REVOKED","Revoked","Expired","Valid"],"sources":["wallet-unit.ts"],"sourcesContent":["import { HolderAttestationWalletUnitResponse, WalletUnitStatusEnum } from '@procivis/react-native-one-core';\n\nexport const isWalletAttestationExpired = (\n walletUnitAttestation: HolderAttestationWalletUnitResponse | undefined,\n) => {\n return (\n walletUnitAttestation?.expirationDate &&\n Date.parse(walletUnitAttestation.expirationDate) < Date.now()\n );\n};\n\nexport enum WUAState {\n Revoked = \"revoked\",\n Expired = \"expired\",\n Valid = \"valid\"\n}\n\nexport const walletUnitAttestationState = (\n walletUnitAttestation: HolderAttestationWalletUnitResponse | undefined,\n): WUAState | undefined => {\n if (!walletUnitAttestation) {\n return undefined;\n }\n if (walletUnitAttestation.status === WalletUnitStatusEnum.REVOKED) {\n return WUAState.Revoked;\n } else if (isWalletAttestationExpired(walletUnitAttestation)) {\n return WUAState.Expired;\n }\n return WUAState.Valid;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AAEO,MAAMC,0BAA0B,GACrCC,qBAAsE,IACnE;EACH,OACE,CAAAA,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAEC,cAAc,KACrCC,IAAI,CAACC,KAAK,CAACH,qBAAqB,CAACC,cAAc,CAAC,GAAGC,IAAI,CAACE,GAAG,CAAC,CAAC;AAEjE,CAAC;AAACC,OAAA,CAAAN,0BAAA,GAAAA,0BAAA;AAAA,IAEUO,QAAQ,GAAAD,OAAA,CAAAC,QAAA,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AAMb,MAAMC,0BAA0B,GACrCP,qBAAsE,IAC7C;EACzB,IAAI,CAACA,qBAAqB,EAAE;IAC1B,OAAOQ,SAAS;EAClB;EACA,IAAIR,qBAAqB,CAACS,MAAM,KAAKC,wCAAoB,CAACC,OAAO,EAAE;IACjE,OAAOL,QAAQ,CAACM,OAAO;EACzB,CAAC,MAAM,IAAIb,0BAA0B,CAACC,qBAAqB,CAAC,EAAE;IAC5D,OAAOM,QAAQ,CAACO,OAAO;EACzB;EACA,OAAOP,QAAQ,CAACQ,KAAK;AACvB,CAAC;AAACT,OAAA,CAAAE,0BAAA,GAAAA,0BAAA","ignoreList":[]}
@@ -4,7 +4,9 @@ import { CredentialDetailsCardListItem } from '../../ui-components/credential/ca
4
4
  import { concatTestID } from '../../utils';
5
5
  import { useCoreConfig } from '../../utils/hooks/core/core-config';
6
6
  import { useCredentialDetail } from '../../utils/hooks/core/credentials';
7
+ import { useWalletUnitAttestation } from '../../utils/hooks/core/wallet-unit';
7
8
  import { detailsCardFromCredentialWithClaims } from '../../utils/parsers/credential';
9
+ import { walletUnitAttestationState } from '../../utils/wallet-unit';
8
10
  export const CredentialDetails = ({
9
11
  claims,
10
12
  credentialId,
@@ -21,15 +23,19 @@ export const CredentialDetails = ({
21
23
  const {
22
24
  data: config
23
25
  } = useCoreConfig();
26
+ const {
27
+ data: walletUnitAttestation,
28
+ isLoading: isLoadingWUA
29
+ } = useWalletUnitAttestation();
24
30
  const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);
25
- if (!credential || !config) {
31
+ if (!credential || !config || isLoadingWUA) {
26
32
  return null;
27
33
  }
28
34
  const testID = concatTestID('Credential.credential', credential.id);
29
35
  const {
30
36
  card,
31
37
  attributes
32
- } = detailsCardFromCredentialWithClaims(credential, claims !== null && claims !== void 0 ? claims : credential.claims, config, testID, labels);
38
+ } = detailsCardFromCredentialWithClaims(credential, claims !== null && claims !== void 0 ? claims : credential.claims, config, walletUnitAttestationState(walletUnitAttestation), testID, labels);
33
39
  if (headerAccessory) {
34
40
  card.header.accessory = headerAccessory;
35
41
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","Dimensions","StyleSheet","CredentialDetailsCardListItem","concatTestID","useCoreConfig","useCredentialDetail","detailsCardFromCredentialWithClaims","CredentialDetails","claims","credentialId","expanded","labels","lastItem","onHeaderPress","onImagePreview","headerAccessory","data","credential","config","cardWidth","get","width","testID","id","card","attributes","header","accessory","createElement","style","styles","create","marginBottom"],"sources":["credential.tsx"],"sourcesContent":["import { Claim } from '@procivis/react-native-one-core';\nimport React, { FC, useMemo } from 'react';\nimport { Dimensions, ImageSourcePropType, StyleSheet } from 'react-native';\n\nimport { CredentialDetailsCardListItem, CredentialHeaderProps } from '../../ui-components/credential/card';\nimport { concatTestID } from '../../utils';\nimport { useCoreConfig } from '../../utils/hooks/core/core-config';\nimport { useCredentialDetail } from '../../utils/hooks/core/credentials';\nimport { CardLabels, detailsCardFromCredentialWithClaims } from '../../utils/parsers/credential';\n\nexport interface CredentialDetailsProps {\n claims?: Claim[];\n credentialId: string;\n expanded?: boolean;\n headerAccessory?: CredentialHeaderProps['accessory'];\n labels: CardLabels;\n lastItem?: boolean;\n onHeaderPress?: (credentialId?: string) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n}\n\nexport const CredentialDetails: FC<CredentialDetailsProps> = ({\n claims,\n credentialId,\n expanded = false,\n labels,\n lastItem,\n onHeaderPress,\n onImagePreview,\n headerAccessory,\n}) => {\n const { data: credential } = useCredentialDetail(credentialId);\n const { data: config } = useCoreConfig();\n const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);\n\n if (!credential || !config) {\n return null;\n }\n const testID = concatTestID('Credential.credential', credential.id);\n\n const { card, attributes } = detailsCardFromCredentialWithClaims(\n credential,\n claims ?? credential.claims,\n config,\n testID,\n labels,\n );\n if (headerAccessory) {\n card.header.accessory = headerAccessory;\n }\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n credentialId,\n onHeaderPress,\n width: cardWidth,\n }}\n expanded={expanded}\n lastItem={lastItem}\n onImagePreview={onImagePreview}\n style={styles.credential}\n testID={testID}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n credential: {\n marginBottom: 8,\n },\n});\n"],"mappings":"AACA,OAAOA,KAAK,IAAQC,OAAO,QAAQ,OAAO;AAC1C,SAASC,UAAU,EAAuBC,UAAU,QAAQ,cAAc;AAE1E,SAASC,6BAA6B,QAA+B,qCAAqC;AAC1G,SAASC,YAAY,QAAQ,aAAa;AAC1C,SAASC,aAAa,QAAQ,oCAAoC;AAClE,SAASC,mBAAmB,QAAQ,oCAAoC;AACxE,SAAqBC,mCAAmC,QAAQ,gCAAgC;AAahG,OAAO,MAAMC,iBAA6C,GAAGA,CAAC;EAC5DC,MAAM;EACNC,YAAY;EACZC,QAAQ,GAAG,KAAK;EAChBC,MAAM;EACNC,QAAQ;EACRC,aAAa;EACbC,cAAc;EACdC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC,IAAI,EAAEC;EAAW,CAAC,GAAGZ,mBAAmB,CAACI,YAAY,CAAC;EAC9D,MAAM;IAAEO,IAAI,EAAEE;EAAO,CAAC,GAAGd,aAAa,CAAC,CAAC;EACxC,MAAMe,SAAS,GAAGpB,OAAO,CAAC,MAAMC,UAAU,CAACoB,GAAG,CAAC,QAAQ,CAAC,CAACC,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC;EAExE,IAAI,CAACJ,UAAU,IAAI,CAACC,MAAM,EAAE;IAC1B,OAAO,IAAI;EACb;EACA,MAAMI,MAAM,GAAGnB,YAAY,CAAC,uBAAuB,EAAEc,UAAU,CAACM,EAAE,CAAC;EAEnE,MAAM;IAAEC,IAAI;IAAEC;EAAW,CAAC,GAAGnB,mCAAmC,CAC9DW,UAAU,EACVT,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIS,UAAU,CAACT,MAAM,EAC3BU,MAAM,EACNI,MAAM,EACNX,MACF,CAAC;EACD,IAAII,eAAe,EAAE;IACnBS,IAAI,CAACE,MAAM,CAACC,SAAS,GAAGZ,eAAe;EACzC;EAEA,oBACEjB,KAAA,CAAA8B,aAAA,CAAC1B,6BAA6B;IAC5BuB,UAAU,EAAEA,UAAW;IACvBD,IAAI,EAAE;MACJ,GAAGA,IAAI;MACPf,YAAY;MACZI,aAAa;MACbQ,KAAK,EAAEF;IACT,CAAE;IACFT,QAAQ,EAAEA,QAAS;IACnBE,QAAQ,EAAEA,QAAS;IACnBE,cAAc,EAAEA,cAAe;IAC/Be,KAAK,EAAEC,MAAM,CAACb,UAAW;IACzBK,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN,CAAC;AAED,MAAMQ,MAAM,GAAG7B,UAAU,CAAC8B,MAAM,CAAC;EAC/Bd,UAAU,EAAE;IACVe,YAAY,EAAE;EAChB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","Dimensions","StyleSheet","CredentialDetailsCardListItem","concatTestID","useCoreConfig","useCredentialDetail","useWalletUnitAttestation","detailsCardFromCredentialWithClaims","walletUnitAttestationState","CredentialDetails","claims","credentialId","expanded","labels","lastItem","onHeaderPress","onImagePreview","headerAccessory","data","credential","config","walletUnitAttestation","isLoading","isLoadingWUA","cardWidth","get","width","testID","id","card","attributes","header","accessory","createElement","style","styles","create","marginBottom"],"sources":["credential.tsx"],"sourcesContent":["import { Claim } from '@procivis/react-native-one-core';\nimport React, { FC, useMemo } from 'react';\nimport { Dimensions, ImageSourcePropType, StyleSheet } from 'react-native';\n\nimport { CredentialDetailsCardListItem, CredentialHeaderProps } from '../../ui-components/credential/card';\nimport { concatTestID } from '../../utils';\nimport { useCoreConfig } from '../../utils/hooks/core/core-config';\nimport { useCredentialDetail } from '../../utils/hooks/core/credentials';\nimport { useWalletUnitAttestation } from '../../utils/hooks/core/wallet-unit';\nimport { CardLabels, detailsCardFromCredentialWithClaims } from '../../utils/parsers/credential';\nimport { walletUnitAttestationState } from '../../utils/wallet-unit';\n\nexport interface CredentialDetailsProps {\n claims?: Claim[];\n credentialId: string;\n expanded?: boolean;\n headerAccessory?: CredentialHeaderProps['accessory'];\n labels: CardLabels;\n lastItem?: boolean;\n onHeaderPress?: (credentialId?: string) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n}\n\nexport const CredentialDetails: FC<CredentialDetailsProps> = ({\n claims,\n credentialId,\n expanded = false,\n labels,\n lastItem,\n onHeaderPress,\n onImagePreview,\n headerAccessory,\n}) => {\n const { data: credential } = useCredentialDetail(credentialId);\n const { data: config } = useCoreConfig();\n const { data: walletUnitAttestation, isLoading: isLoadingWUA } = useWalletUnitAttestation();\n const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);\n\n if (!credential || !config || isLoadingWUA) {\n return null;\n }\n const testID = concatTestID('Credential.credential', credential.id);\n\n const { card, attributes } = detailsCardFromCredentialWithClaims(\n credential,\n claims ?? credential.claims,\n config,\n walletUnitAttestationState(walletUnitAttestation),\n testID,\n labels,\n );\n if (headerAccessory) {\n card.header.accessory = headerAccessory;\n }\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n credentialId,\n onHeaderPress,\n width: cardWidth,\n }}\n expanded={expanded}\n lastItem={lastItem}\n onImagePreview={onImagePreview}\n style={styles.credential}\n testID={testID}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n credential: {\n marginBottom: 8,\n },\n});\n"],"mappings":"AACA,OAAOA,KAAK,IAAQC,OAAO,QAAQ,OAAO;AAC1C,SAASC,UAAU,EAAuBC,UAAU,QAAQ,cAAc;AAE1E,SAASC,6BAA6B,QAA+B,qCAAqC;AAC1G,SAASC,YAAY,QAAQ,aAAa;AAC1C,SAASC,aAAa,QAAQ,oCAAoC;AAClE,SAASC,mBAAmB,QAAQ,oCAAoC;AACxE,SAASC,wBAAwB,QAAQ,oCAAoC;AAC7E,SAAqBC,mCAAmC,QAAQ,gCAAgC;AAChG,SAASC,0BAA0B,QAAQ,yBAAyB;AAapE,OAAO,MAAMC,iBAA6C,GAAGA,CAAC;EAC5DC,MAAM;EACNC,YAAY;EACZC,QAAQ,GAAG,KAAK;EAChBC,MAAM;EACNC,QAAQ;EACRC,aAAa;EACbC,cAAc;EACdC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC,IAAI,EAAEC;EAAW,CAAC,GAAGd,mBAAmB,CAACM,YAAY,CAAC;EAC9D,MAAM;IAAEO,IAAI,EAAEE;EAAO,CAAC,GAAGhB,aAAa,CAAC,CAAC;EACxC,MAAM;IAAEc,IAAI,EAAEG,qBAAqB;IAAEC,SAAS,EAAEC;EAAa,CAAC,GAAGjB,wBAAwB,CAAC,CAAC;EAC3F,MAAMkB,SAAS,GAAGzB,OAAO,CAAC,MAAMC,UAAU,CAACyB,GAAG,CAAC,QAAQ,CAAC,CAACC,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC;EAExE,IAAI,CAACP,UAAU,IAAI,CAACC,MAAM,IAAIG,YAAY,EAAE;IAC1C,OAAO,IAAI;EACb;EACA,MAAMI,MAAM,GAAGxB,YAAY,CAAC,uBAAuB,EAAEgB,UAAU,CAACS,EAAE,CAAC;EAEnE,MAAM;IAAEC,IAAI;IAAEC;EAAW,CAAC,GAAGvB,mCAAmC,CAC9DY,UAAU,EACVT,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIS,UAAU,CAACT,MAAM,EAC3BU,MAAM,EACNZ,0BAA0B,CAACa,qBAAqB,CAAC,EACjDM,MAAM,EACNd,MACF,CAAC;EACD,IAAII,eAAe,EAAE;IACnBY,IAAI,CAACE,MAAM,CAACC,SAAS,GAAGf,eAAe;EACzC;EAEA,oBACEnB,KAAA,CAAAmC,aAAA,CAAC/B,6BAA6B;IAC5B4B,UAAU,EAAEA,UAAW;IACvBD,IAAI,EAAE;MACJ,GAAGA,IAAI;MACPlB,YAAY;MACZI,aAAa;MACbW,KAAK,EAAEF;IACT,CAAE;IACFZ,QAAQ,EAAEA,QAAS;IACnBE,QAAQ,EAAEA,QAAS;IACnBE,cAAc,EAAEA,cAAe;IAC/BkB,KAAK,EAAEC,MAAM,CAAChB,UAAW;IACzBQ,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN,CAAC;AAED,MAAMQ,MAAM,GAAGlC,UAAU,CAACmC,MAAM,CAAC;EAC/BjB,UAAU,EAAE;IACVkB,YAAY,EAAE;EAChB;AACF,CAAC,CAAC","ignoreList":[]}