@procivis/one-react-native-components 0.3.62 → 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.
- package/lib/commonjs/components/credential/credential.js +8 -2
- package/lib/commonjs/components/credential/credential.js.map +1 -1
- package/lib/commonjs/components/proof-request/index.js +23 -12
- package/lib/commonjs/components/proof-request/index.js.map +1 -1
- package/lib/commonjs/components/proof-request/select-share-credential-card-notice.js +37 -0
- package/lib/commonjs/components/proof-request/select-share-credential-card-notice.js.map +1 -0
- package/lib/commonjs/components/proof-request/share-credential-card-notice.js +36 -0
- package/lib/commonjs/components/proof-request/share-credential-card-notice.js.map +1 -0
- package/lib/commonjs/components/proof-request/{group.js → v1/group.js} +1 -1
- package/lib/commonjs/components/proof-request/v1/group.js.map +1 -0
- package/lib/commonjs/components/proof-request/v1/index.js +39 -0
- package/lib/commonjs/components/proof-request/v1/index.js.map +1 -0
- package/lib/commonjs/components/proof-request/{select-credential.js → v1/select-credential.js} +12 -6
- package/lib/commonjs/components/proof-request/v1/select-credential.js.map +1 -0
- package/lib/commonjs/components/proof-request/{share-credential.js → v1/share-credential.js} +33 -62
- package/lib/commonjs/components/proof-request/v1/share-credential.js.map +1 -0
- package/lib/commonjs/components/proof-request/v2/index.js +39 -0
- package/lib/commonjs/components/proof-request/v2/index.js.map +1 -0
- package/lib/commonjs/components/proof-request/v2/select-credential-v2.js +55 -0
- package/lib/commonjs/components/proof-request/v2/select-credential-v2.js.map +1 -0
- package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js +164 -0
- package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js.map +1 -0
- package/lib/commonjs/components/proof-request/v2/share-credential-v2.js +135 -0
- package/lib/commonjs/components/proof-request/v2/share-credential-v2.js.map +1 -0
- package/lib/commonjs/ui-components/buttons/index.js +7 -0
- package/lib/commonjs/ui-components/buttons/index.js.map +1 -1
- package/lib/commonjs/ui-components/buttons/share-button.js +54 -0
- package/lib/commonjs/ui-components/buttons/share-button.js.map +1 -0
- package/lib/commonjs/ui-components/camera/qr-code-scanner.js +5 -1
- package/lib/commonjs/ui-components/camera/qr-code-scanner.js.map +1 -1
- package/lib/commonjs/ui-components/credential/card/credential-details-list-item.js +16 -42
- package/lib/commonjs/ui-components/credential/card/credential-details-list-item.js.map +1 -1
- package/lib/commonjs/ui-components/credential/credential-attribute-item.js +3 -1
- package/lib/commonjs/ui-components/credential/credential-attribute-item.js.map +1 -1
- package/lib/commonjs/ui-components/credential/group/credential-group-header.js +72 -0
- package/lib/commonjs/ui-components/credential/group/credential-group-header.js.map +1 -0
- package/lib/commonjs/ui-components/credential/group/index.js +14 -0
- package/lib/commonjs/ui-components/credential/group/index.js.map +1 -0
- package/lib/commonjs/ui-components/credential/index.js +12 -0
- package/lib/commonjs/ui-components/credential/index.js.map +1 -1
- package/lib/commonjs/ui-components/header/foldable-header.js +29 -17
- package/lib/commonjs/ui-components/header/foldable-header.js.map +1 -1
- package/lib/commonjs/ui-components/icons/icons.js +24 -1
- package/lib/commonjs/ui-components/icons/icons.js.map +1 -1
- package/lib/commonjs/ui-components/index.js +22 -0
- package/lib/commonjs/ui-components/index.js.map +1 -1
- package/lib/commonjs/ui-components/loader/loading-result.js +8 -1
- package/lib/commonjs/ui-components/loader/loading-result.js.map +1 -1
- package/lib/commonjs/ui-components/nfc/index.js +14 -0
- package/lib/commonjs/ui-components/nfc/index.js.map +1 -0
- package/lib/commonjs/ui-components/nfc/nfc-process.js +77 -0
- package/lib/commonjs/ui-components/nfc/nfc-process.js.map +1 -0
- package/lib/commonjs/ui-components/pin/pin-lock-animation.js +477 -475
- package/lib/commonjs/ui-components/pin/pin-lock-animation.js.map +1 -1
- package/lib/commonjs/ui-components/proof-request/index.js +13 -0
- package/lib/commonjs/ui-components/proof-request/index.js.map +1 -0
- package/lib/commonjs/ui-components/proof-request/proof-request-set.js +47 -0
- package/lib/commonjs/ui-components/proof-request/proof-request-set.js.map +1 -0
- package/lib/commonjs/ui-components/screens/section-list-screen.js +37 -8
- package/lib/commonjs/ui-components/screens/section-list-screen.js.map +1 -1
- package/lib/commonjs/utils/array.js.map +1 -1
- package/lib/commonjs/utils/hooks/app-state.js +33 -0
- package/lib/commonjs/utils/hooks/app-state.js.map +1 -0
- package/lib/commonjs/utils/hooks/core/backup.js +4 -5
- package/lib/commonjs/utils/hooks/core/backup.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/core-init.js +4 -22
- package/lib/commonjs/utils/hooks/core/core-init.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/credentials.js +10 -3
- package/lib/commonjs/utils/hooks/core/credentials.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/identifiers.js +1 -1
- package/lib/commonjs/utils/hooks/core/identifiers.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/index.js +11 -0
- package/lib/commonjs/utils/hooks/core/index.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/proofs.js +45 -8
- package/lib/commonjs/utils/hooks/core/proofs.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/wallet-unit.js +85 -0
- package/lib/commonjs/utils/hooks/core/wallet-unit.js.map +1 -0
- package/lib/commonjs/utils/hooks/index.js +22 -0
- package/lib/commonjs/utils/hooks/index.js.map +1 -1
- package/lib/commonjs/utils/hooks/nfc/nfc-status.js +40 -0
- package/lib/commonjs/utils/hooks/nfc/nfc-status.js.map +1 -0
- package/lib/commonjs/utils/hooks/revocation/credential-status.js +1 -1
- package/lib/commonjs/utils/hooks/revocation/credential-status.js.map +1 -1
- package/lib/commonjs/utils/index.js +24 -0
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential-sharing-v2.js +190 -0
- package/lib/commonjs/utils/parsers/credential-sharing-v2.js.map +1 -0
- package/lib/commonjs/utils/parsers/credential-sharing.js +31 -18
- package/lib/commonjs/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential.js +111 -63
- package/lib/commonjs/utils/parsers/credential.js.map +1 -1
- package/lib/commonjs/utils/parsers/index.js +11 -0
- package/lib/commonjs/utils/parsers/index.js.map +1 -1
- package/lib/commonjs/utils/parsers/query.js +4 -4
- package/lib/commonjs/utils/parsers/query.js.map +1 -1
- package/lib/commonjs/utils/url.js +80 -0
- package/lib/commonjs/utils/url.js.map +1 -0
- package/lib/commonjs/utils/wallet-unit.js +30 -0
- package/lib/commonjs/utils/wallet-unit.js.map +1 -0
- package/lib/module/components/credential/credential.js +8 -2
- package/lib/module/components/credential/credential.js.map +1 -1
- package/lib/module/components/proof-request/index.js +4 -3
- package/lib/module/components/proof-request/index.js.map +1 -1
- package/lib/module/components/proof-request/select-share-credential-card-notice.js +29 -0
- package/lib/module/components/proof-request/select-share-credential-card-notice.js.map +1 -0
- package/lib/module/components/proof-request/share-credential-card-notice.js +28 -0
- package/lib/module/components/proof-request/share-credential-card-notice.js.map +1 -0
- package/lib/module/components/proof-request/{group.js → v1/group.js} +1 -1
- package/lib/module/components/proof-request/v1/group.js.map +1 -0
- package/lib/module/components/proof-request/v1/index.js +4 -0
- package/lib/module/components/proof-request/v1/index.js.map +1 -0
- package/lib/module/components/proof-request/{select-credential.js → v1/select-credential.js} +12 -6
- package/lib/module/components/proof-request/v1/select-credential.js.map +1 -0
- package/lib/module/components/proof-request/v1/share-credential.js +118 -0
- package/lib/module/components/proof-request/v1/share-credential.js.map +1 -0
- package/lib/module/components/proof-request/v2/index.js +4 -0
- package/lib/module/components/proof-request/v2/index.js.map +1 -0
- package/lib/module/components/proof-request/v2/select-credential-v2.js +46 -0
- package/lib/module/components/proof-request/v2/select-credential-v2.js.map +1 -0
- package/lib/module/components/proof-request/v2/share-credential-v2-group.js +154 -0
- package/lib/module/components/proof-request/v2/share-credential-v2-group.js.map +1 -0
- package/lib/module/components/proof-request/v2/share-credential-v2.js +126 -0
- package/lib/module/components/proof-request/v2/share-credential-v2.js.map +1 -0
- package/lib/module/ui-components/buttons/index.js +2 -1
- package/lib/module/ui-components/buttons/index.js.map +1 -1
- package/lib/module/ui-components/buttons/share-button.js +47 -0
- package/lib/module/ui-components/buttons/share-button.js.map +1 -0
- package/lib/module/ui-components/camera/qr-code-scanner.js +5 -1
- package/lib/module/ui-components/camera/qr-code-scanner.js.map +1 -1
- package/lib/module/ui-components/credential/card/credential-details-list-item.js +19 -45
- package/lib/module/ui-components/credential/card/credential-details-list-item.js.map +1 -1
- package/lib/module/ui-components/credential/credential-attribute-item.js +3 -1
- package/lib/module/ui-components/credential/credential-attribute-item.js.map +1 -1
- package/lib/module/ui-components/credential/group/credential-group-header.js +64 -0
- package/lib/module/ui-components/credential/group/credential-group-header.js.map +1 -0
- package/lib/module/ui-components/credential/group/index.js +3 -0
- package/lib/module/ui-components/credential/group/index.js.map +1 -0
- package/lib/module/ui-components/credential/index.js +1 -0
- package/lib/module/ui-components/credential/index.js.map +1 -1
- package/lib/module/ui-components/header/foldable-header.js +29 -17
- package/lib/module/ui-components/header/foldable-header.js.map +1 -1
- package/lib/module/ui-components/icons/icons.js +22 -0
- package/lib/module/ui-components/icons/icons.js.map +1 -1
- package/lib/module/ui-components/index.js +2 -0
- package/lib/module/ui-components/index.js.map +1 -1
- package/lib/module/ui-components/loader/loading-result.js +8 -1
- package/lib/module/ui-components/loader/loading-result.js.map +1 -1
- package/lib/module/ui-components/nfc/index.js +3 -0
- package/lib/module/ui-components/nfc/index.js.map +1 -0
- package/lib/module/ui-components/nfc/nfc-process.js +69 -0
- package/lib/module/ui-components/nfc/nfc-process.js.map +1 -0
- package/lib/module/ui-components/pin/pin-lock-animation.js +477 -475
- package/lib/module/ui-components/pin/pin-lock-animation.js.map +1 -1
- package/lib/module/ui-components/proof-request/index.js +3 -0
- package/lib/module/ui-components/proof-request/index.js.map +1 -0
- package/lib/module/ui-components/proof-request/proof-request-set.js +39 -0
- package/lib/module/ui-components/proof-request/proof-request-set.js.map +1 -0
- package/lib/module/ui-components/screens/section-list-screen.js +36 -9
- package/lib/module/ui-components/screens/section-list-screen.js.map +1 -1
- package/lib/module/utils/array.js.map +1 -1
- package/lib/module/utils/hooks/app-state.js +27 -0
- package/lib/module/utils/hooks/app-state.js.map +1 -0
- package/lib/module/utils/hooks/core/backup.js +5 -6
- package/lib/module/utils/hooks/core/backup.js.map +1 -1
- package/lib/module/utils/hooks/core/core-init.js +3 -20
- package/lib/module/utils/hooks/core/core-init.js.map +1 -1
- package/lib/module/utils/hooks/core/credentials.js +11 -4
- package/lib/module/utils/hooks/core/credentials.js.map +1 -1
- package/lib/module/utils/hooks/core/identifiers.js +5 -5
- package/lib/module/utils/hooks/core/identifiers.js.map +1 -1
- package/lib/module/utils/hooks/core/index.js +1 -0
- package/lib/module/utils/hooks/core/index.js.map +1 -1
- package/lib/module/utils/hooks/core/proofs.js +45 -8
- package/lib/module/utils/hooks/core/proofs.js.map +1 -1
- package/lib/module/utils/hooks/core/wallet-unit.js +75 -0
- package/lib/module/utils/hooks/core/wallet-unit.js.map +1 -0
- package/lib/module/utils/hooks/index.js +2 -0
- package/lib/module/utils/hooks/index.js.map +1 -1
- package/lib/module/utils/hooks/nfc/nfc-status.js +32 -0
- package/lib/module/utils/hooks/nfc/nfc-status.js.map +1 -0
- package/lib/module/utils/hooks/revocation/credential-status.js +1 -1
- package/lib/module/utils/hooks/revocation/credential-status.js.map +1 -1
- package/lib/module/utils/index.js +2 -0
- package/lib/module/utils/index.js.map +1 -1
- package/lib/module/utils/parsers/credential-sharing-v2.js +177 -0
- package/lib/module/utils/parsers/credential-sharing-v2.js.map +1 -0
- package/lib/module/utils/parsers/credential-sharing.js +31 -18
- package/lib/module/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/module/utils/parsers/credential.js +112 -64
- package/lib/module/utils/parsers/credential.js.map +1 -1
- package/lib/module/utils/parsers/index.js +1 -0
- package/lib/module/utils/parsers/index.js.map +1 -1
- package/lib/module/utils/parsers/query.js +4 -4
- package/lib/module/utils/parsers/query.js.map +1 -1
- package/lib/module/utils/url.js +71 -0
- package/lib/module/utils/url.js.map +1 -0
- package/lib/module/utils/wallet-unit.js +22 -0
- package/lib/module/utils/wallet-unit.js.map +1 -0
- package/lib/typescript/components/proof-request/index.d.ts +4 -3
- package/lib/typescript/components/proof-request/select-share-credential-card-notice.d.ts +7 -0
- package/lib/typescript/components/proof-request/share-credential-card-notice.d.ts +6 -0
- package/lib/typescript/components/proof-request/v1/index.d.ts +3 -0
- package/lib/typescript/components/proof-request/{select-credential.d.ts → v1/select-credential.d.ts} +1 -1
- package/lib/typescript/components/proof-request/{share-credential.d.ts → v1/share-credential.d.ts} +1 -1
- package/lib/typescript/components/proof-request/v2/index.d.ts +3 -0
- package/lib/typescript/components/proof-request/v2/select-credential-v2.d.ts +14 -0
- package/lib/typescript/components/proof-request/v2/share-credential-v2-group.d.ts +24 -0
- package/lib/typescript/components/proof-request/v2/share-credential-v2.d.ts +23 -0
- package/lib/typescript/ui-components/buttons/index.d.ts +3 -1
- package/lib/typescript/ui-components/buttons/share-button.d.ts +10 -0
- package/lib/typescript/ui-components/credential/group/credential-group-header.d.ts +10 -0
- package/lib/typescript/ui-components/credential/group/index.d.ts +3 -0
- package/lib/typescript/ui-components/credential/index.d.ts +1 -0
- package/lib/typescript/ui-components/header/foldable-header.d.ts +1 -0
- package/lib/typescript/ui-components/icons/icons.d.ts +1 -0
- package/lib/typescript/ui-components/index.d.ts +2 -0
- package/lib/typescript/ui-components/loader/loading-result.d.ts +2 -0
- package/lib/typescript/ui-components/nfc/index.d.ts +2 -0
- package/lib/typescript/ui-components/nfc/nfc-process.d.ts +17 -0
- package/lib/typescript/ui-components/pin/pin-lock-animation.d.ts +311 -311
- package/lib/typescript/ui-components/proof-request/index.d.ts +3 -0
- package/lib/typescript/ui-components/proof-request/proof-request-set.d.ts +7 -0
- package/lib/typescript/ui-components/screens/section-list-screen.d.ts +5 -2
- package/lib/typescript/utils/array.d.ts +1 -0
- package/lib/typescript/utils/hooks/app-state.d.ts +5 -0
- package/lib/typescript/utils/hooks/core/backup.d.ts +1 -1
- package/lib/typescript/utils/hooks/core/core-init.d.ts +1 -3
- package/lib/typescript/utils/hooks/core/credentials.d.ts +1 -1
- package/lib/typescript/utils/hooks/core/identifiers.d.ts +1 -1
- package/lib/typescript/utils/hooks/core/index.d.ts +1 -0
- package/lib/typescript/utils/hooks/core/proofs.d.ts +10 -3
- package/lib/typescript/utils/hooks/core/wallet-unit.d.ts +9 -0
- package/lib/typescript/utils/hooks/index.d.ts +2 -0
- package/lib/typescript/utils/hooks/nfc/nfc-status.d.ts +6 -0
- package/lib/typescript/utils/index.d.ts +2 -0
- package/lib/typescript/utils/parsers/credential-sharing-v2.d.ts +11 -0
- package/lib/typescript/utils/parsers/credential-sharing.d.ts +11 -5
- package/lib/typescript/utils/parsers/credential.d.ts +9 -6
- package/lib/typescript/utils/parsers/index.d.ts +1 -0
- package/lib/typescript/utils/parsers/query.d.ts +2 -2
- package/lib/typescript/utils/url.d.ts +19 -0
- package/lib/typescript/utils/wallet-unit.d.ts +8 -0
- package/package.json +16 -6
- package/src/components/credential/credential.tsx +5 -1
- package/src/components/proof-request/index.ts +4 -3
- package/src/components/proof-request/select-share-credential-card-notice.tsx +37 -0
- package/src/components/proof-request/share-credential-card-notice.tsx +33 -0
- package/src/components/proof-request/{group.tsx → v1/group.tsx} +1 -1
- package/src/components/proof-request/v1/index.ts +3 -0
- package/src/components/proof-request/{select-credential.tsx → v1/select-credential.tsx} +12 -5
- package/src/components/proof-request/{share-credential.tsx → v1/share-credential.tsx} +35 -52
- package/src/components/proof-request/v2/index.ts +3 -0
- package/src/components/proof-request/v2/select-credential-v2.tsx +59 -0
- package/src/components/proof-request/v2/share-credential-v2-group.tsx +258 -0
- package/src/components/proof-request/v2/share-credential-v2.tsx +211 -0
- package/src/ui-components/buttons/index.ts +4 -0
- package/src/ui-components/buttons/share-button.stories.tsx +25 -0
- package/src/ui-components/buttons/share-button.tsx +55 -0
- package/src/ui-components/camera/qr-code-scanner.tsx +11 -2
- package/src/ui-components/credential/card/credential-details-list-item.tsx +27 -49
- package/src/ui-components/credential/credential-attribute-item.tsx +2 -0
- package/src/ui-components/credential/group/credential-group-header.tsx +70 -0
- package/src/ui-components/credential/group/index.ts +4 -0
- package/src/ui-components/credential/index.ts +1 -0
- package/src/ui-components/header/foldable-header.tsx +31 -16
- package/src/ui-components/icons/icons.tsx +22 -0
- package/src/ui-components/index.ts +2 -0
- package/src/ui-components/loader/loading-result.stories.tsx +4 -1
- package/src/ui-components/loader/loading-result.tsx +7 -0
- package/src/ui-components/nfc/index.ts +3 -0
- package/src/ui-components/nfc/nfc-process.tsx +80 -0
- package/src/ui-components/pin/pin-lock-animation.tsx +240 -278
- package/src/ui-components/proof-request/index.ts +4 -0
- package/src/ui-components/proof-request/proof-request-set.tsx +46 -0
- package/src/ui-components/screens/section-list-screen.tsx +39 -8
- package/src/utils/array.ts +4 -0
- package/src/utils/hooks/app-state.ts +29 -0
- package/src/utils/hooks/core/backup.ts +3 -9
- package/src/utils/hooks/core/core-init.ts +1 -23
- package/src/utils/hooks/core/credentials.ts +11 -4
- package/src/utils/hooks/core/identifiers.ts +15 -14
- package/src/utils/hooks/core/index.ts +2 -1
- package/src/utils/hooks/core/proofs.ts +47 -10
- package/src/utils/hooks/core/wallet-unit.ts +77 -0
- package/src/utils/hooks/index.ts +2 -0
- package/src/utils/hooks/nfc/nfc-status.ts +31 -0
- package/src/utils/hooks/revocation/credential-status.ts +1 -1
- package/src/utils/index.ts +2 -0
- package/src/utils/parsers/credential-sharing-v2.tsx +283 -0
- package/src/utils/parsers/credential-sharing.tsx +40 -16
- package/src/utils/parsers/credential.ts +129 -59
- package/src/utils/parsers/index.ts +1 -0
- package/src/utils/parsers/query.ts +7 -5
- package/src/utils/url.ts +61 -0
- package/src/utils/wallet-unit.ts +30 -0
- package/lib/commonjs/components/proof-request/group.js.map +0 -1
- package/lib/commonjs/components/proof-request/select-credential.js.map +0 -1
- package/lib/commonjs/components/proof-request/share-credential.js.map +0 -1
- package/lib/module/components/proof-request/group.js.map +0 -1
- package/lib/module/components/proof-request/select-credential.js.map +0 -1
- package/lib/module/components/proof-request/share-credential.js +0 -147
- package/lib/module/components/proof-request/share-credential.js.map +0 -1
- /package/lib/typescript/components/proof-request/{group.d.ts → v1/group.d.ts} +0 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { CredentialStateEnum, DataTypeEnum, FormatFeatureEnum } from '@procivis/react-native-one-core';
|
|
1
|
+
import { CredentialStateEnum, DataTypeEnum, FormatFeatureEnum, WalletStorageType } from '@procivis/react-native-one-core';
|
|
2
2
|
import { CredentialErrorIcon, CredentialNoticeWarningIcon, CredentialWarningIcon } from '../../ui-components/icons';
|
|
3
3
|
import { formatDateLocalized, formatDateTimeLocalized } from '../date';
|
|
4
4
|
import { concatTestID } from '../testID';
|
|
5
|
+
import { WUAState } from '../wallet-unit';
|
|
5
6
|
import { getCarouselImagesFromClaims } from './credential-images';
|
|
6
7
|
export let ValidityState = /*#__PURE__*/function (ValidityState) {
|
|
7
8
|
ValidityState["Revoked"] = "revoked";
|
|
@@ -45,48 +46,76 @@ export const hasMsoValidityIssues = credential => {
|
|
|
45
46
|
const mdocMsoValidityIssue = Boolean((mdocMsoValidity === null || mdocMsoValidity === void 0 ? void 0 : mdocMsoValidity.nextUpdate) && new Date(mdocMsoValidity.nextUpdate) < new Date());
|
|
46
47
|
return mdocMsoValidityIssue;
|
|
47
48
|
};
|
|
48
|
-
|
|
49
|
-
var _formatDateTimeLocali, _credential$issuanceD
|
|
50
|
-
let credentialDetailPrimary = (_formatDateTimeLocali = formatDateTimeLocalized(new Date((_credential$issuanceD = credential.issuanceDate) !== null && _credential$issuanceD !== void 0 ? _credential$issuanceD : credential.createdDate))) !== null && _formatDateTimeLocali !== void 0 ? _formatDateTimeLocali : '';
|
|
51
|
-
let credentialDetailSecondary;
|
|
52
|
-
let credentialDetailErrorColor;
|
|
53
|
-
let credentialDetailTestID;
|
|
54
|
-
let statusIcon;
|
|
49
|
+
const credentialDetailFromCredential = (credential, claims = [], config, wuaState, testID, labels) => {
|
|
50
|
+
var _formatDateTimeLocali, _credential$issuanceD;
|
|
55
51
|
const {
|
|
56
52
|
layoutProperties
|
|
57
53
|
} = credential.schema;
|
|
54
|
+
if (credential.schema.walletStorageType === WalletStorageType.EUDI_COMPLIANT && wuaState === WUAState.Revoked) {
|
|
55
|
+
return {
|
|
56
|
+
credentialDetailPrimary: labels.wuaRevoked,
|
|
57
|
+
credentialDetailErrorColor: true,
|
|
58
|
+
credentialDetailTestID: concatTestID(testID, 'wua', 'revoked'),
|
|
59
|
+
statusIcon: CredentialErrorIcon
|
|
60
|
+
};
|
|
61
|
+
}
|
|
58
62
|
switch (credential.state) {
|
|
59
63
|
case CredentialStateEnum.SUSPENDED:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
+
return {
|
|
65
|
+
credentialDetailPrimary: credential.suspendEndDate ? labels.suspendedUntil(formatDateTimeLocalized(new Date(credential.suspendEndDate))) : labels.suspended,
|
|
66
|
+
credentialDetailTestID: concatTestID(testID, 'suspended'),
|
|
67
|
+
statusIcon: CredentialWarningIcon
|
|
68
|
+
};
|
|
64
69
|
case CredentialStateEnum.REVOKED:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
70
|
+
return {
|
|
71
|
+
credentialDetailPrimary: labels.revoked,
|
|
72
|
+
credentialDetailErrorColor: true,
|
|
73
|
+
credentialDetailTestID: concatTestID(testID, 'revoked'),
|
|
74
|
+
statusIcon: CredentialErrorIcon
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
if (credential.schema.walletStorageType === WalletStorageType.EUDI_COMPLIANT && wuaState === WUAState.Expired) {
|
|
78
|
+
return {
|
|
79
|
+
credentialDetailPrimary: labels.wuaExpired,
|
|
80
|
+
credentialDetailTestID: concatTestID(testID, 'wua', 'suspended'),
|
|
81
|
+
statusIcon: CredentialWarningIcon
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
if (hasMsoValidityIssues(credential)) {
|
|
85
|
+
return {
|
|
86
|
+
credentialDetailPrimary: labels.validityIssues,
|
|
87
|
+
credentialDetailTestID: concatTestID(testID, 'validity-issue'),
|
|
88
|
+
statusIcon: CredentialWarningIcon
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
let credentialDetailPrimary = (_formatDateTimeLocali = formatDateTimeLocalized(new Date((_credential$issuanceD = credential.issuanceDate) !== null && _credential$issuanceD !== void 0 ? _credential$issuanceD : credential.createdDate))) !== null && _formatDateTimeLocali !== void 0 ? _formatDateTimeLocali : '';
|
|
92
|
+
let credentialDetailSecondary;
|
|
93
|
+
const primary = findClaimByPath(layoutProperties === null || layoutProperties === void 0 ? void 0 : layoutProperties.primaryAttribute, claims);
|
|
94
|
+
if (primary) {
|
|
95
|
+
credentialDetailPrimary = formatCredentialDetail(primary, config, concatTestID(testID, 'primary'));
|
|
96
|
+
}
|
|
97
|
+
const secondary = findClaimByPath(layoutProperties === null || layoutProperties === void 0 ? void 0 : layoutProperties.secondaryAttribute, claims);
|
|
98
|
+
if (secondary) {
|
|
99
|
+
credentialDetailSecondary = formatCredentialDetail(secondary, config, concatTestID(testID, 'secondary'));
|
|
89
100
|
}
|
|
101
|
+
return {
|
|
102
|
+
credentialDetailPrimary,
|
|
103
|
+
credentialDetailSecondary,
|
|
104
|
+
credentialDetailTestID: concatTestID(testID, 'detail')
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
export const cardHeaderFromCredential = (credential, claims = [], config, wuaState, testID, labels) => {
|
|
108
|
+
var _layoutProperties$log, _layoutProperties$log2, _layoutProperties$log3;
|
|
109
|
+
const {
|
|
110
|
+
credentialDetailPrimary,
|
|
111
|
+
credentialDetailSecondary,
|
|
112
|
+
credentialDetailErrorColor,
|
|
113
|
+
credentialDetailTestID,
|
|
114
|
+
statusIcon
|
|
115
|
+
} = credentialDetailFromCredential(credential, claims, config, wuaState, testID, labels);
|
|
116
|
+
const {
|
|
117
|
+
layoutProperties
|
|
118
|
+
} = credential.schema;
|
|
90
119
|
return {
|
|
91
120
|
color: layoutProperties === null || layoutProperties === void 0 || (_layoutProperties$log = layoutProperties.logo) === null || _layoutProperties$log === void 0 ? void 0 : _layoutProperties$log.backgroundColor,
|
|
92
121
|
credentialDetailErrorColor,
|
|
@@ -104,7 +133,7 @@ export const cardHeaderFromCredential = (credential, claims = [], config, testID
|
|
|
104
133
|
testID
|
|
105
134
|
};
|
|
106
135
|
};
|
|
107
|
-
export const getCredentialCardPropsFromCredential = (credential, claims = [], config, notice, testID, labels) => {
|
|
136
|
+
export const getCredentialCardPropsFromCredential = (credential, claims = [], config, wuaState, notice, testID, labels) => {
|
|
108
137
|
var _layoutProperties$bac, _layoutProperties$bac2;
|
|
109
138
|
const {
|
|
110
139
|
layoutProperties
|
|
@@ -123,7 +152,7 @@ export const getCredentialCardPropsFromCredential = (credential, claims = [], co
|
|
|
123
152
|
}
|
|
124
153
|
} : undefined,
|
|
125
154
|
color: layoutProperties === null || layoutProperties === void 0 || (_layoutProperties$bac2 = layoutProperties.background) === null || _layoutProperties$bac2 === void 0 ? void 0 : _layoutProperties$bac2.color,
|
|
126
|
-
header: cardHeaderFromCredential(credential, claims, config, concatTestID(testID, 'header'), labels),
|
|
155
|
+
header: cardHeaderFromCredential(credential, claims, config, wuaState, concatTestID(testID, 'header'), labels),
|
|
127
156
|
testID,
|
|
128
157
|
notice
|
|
129
158
|
};
|
|
@@ -178,7 +207,8 @@ const detailsCardAttributeValueFromClaim = (claim, config, testID) => {
|
|
|
178
207
|
value: (_formatDateLocalized = formatDateLocalized(new Date(date))) !== null && _formatDateLocalized !== void 0 ? _formatDateLocalized : date
|
|
179
208
|
};
|
|
180
209
|
}
|
|
181
|
-
case DataTypeEnum.
|
|
210
|
+
case DataTypeEnum.Picture: // fallback
|
|
211
|
+
case DataTypeEnum.SwiyuPicture:
|
|
182
212
|
{
|
|
183
213
|
var _typeConfig$params;
|
|
184
214
|
if (((_typeConfig$params = typeConfig.params) === null || _typeConfig$params === void 0 ? void 0 : _typeConfig$params.showAs) === 'IMAGE') {
|
|
@@ -203,12 +233,12 @@ const detailsCardAttributeValueFromClaim = (claim, config, testID) => {
|
|
|
203
233
|
}
|
|
204
234
|
}
|
|
205
235
|
};
|
|
206
|
-
export const detailsCardFromCredential = (credential, config, testID, labels) => {
|
|
207
|
-
return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels);
|
|
236
|
+
export const detailsCardFromCredential = (credential, config, wuaState, testID, labels) => {
|
|
237
|
+
return detailsCardFromCredentialWithClaims(credential, credential.claims, config, wuaState, testID, labels);
|
|
208
238
|
};
|
|
209
|
-
export const detailsCardFromCredentialWithClaims = (credential, claims, config, testID, labels) => {
|
|
239
|
+
export const detailsCardFromCredentialWithClaims = (credential, claims, config, wuaState, testID, labels) => {
|
|
210
240
|
const attributes = claims.map((claim, index) => detailsCardAttributeFromClaim(claim, config, concatTestID(testID, 'attribute', index.toString())));
|
|
211
|
-
const card = getCredentialCardPropsFromCredential(credential, claims, config, undefined, concatTestID(testID, 'card'), labels);
|
|
241
|
+
const card = getCredentialCardPropsFromCredential(credential, claims, config, wuaState, undefined, concatTestID(testID, 'card'), labels);
|
|
212
242
|
return {
|
|
213
243
|
attributes,
|
|
214
244
|
card
|
|
@@ -227,12 +257,12 @@ export const nestAttributes = attributes => {
|
|
|
227
257
|
const [first, ...rest] = attributePath;
|
|
228
258
|
const parent = result.find(a => a.name === first);
|
|
229
259
|
if (parent) {
|
|
230
|
-
|
|
260
|
+
insertAttributeInParent({
|
|
231
261
|
...attribute,
|
|
232
262
|
path: rest.join('/')
|
|
233
263
|
}, parent);
|
|
234
264
|
} else {
|
|
235
|
-
result.push(
|
|
265
|
+
result.push(nestAttributeInDummyParent(attribute));
|
|
236
266
|
}
|
|
237
267
|
}
|
|
238
268
|
}
|
|
@@ -241,7 +271,7 @@ export const nestAttributes = attributes => {
|
|
|
241
271
|
|
|
242
272
|
// We nest the leaf node in a (one or more) nested object(s)
|
|
243
273
|
// to make sure the tree structure is correctly rendered in proof request screens.
|
|
244
|
-
const
|
|
274
|
+
const nestAttributeInDummyParent = attribute => {
|
|
245
275
|
const pathParts = attribute.path.split('/');
|
|
246
276
|
const [first, ...rest] = pathParts;
|
|
247
277
|
if (!rest.length) {
|
|
@@ -250,30 +280,48 @@ const nestAttributeInDummyObject = attribute => {
|
|
|
250
280
|
|
|
251
281
|
// The dummy object is not selectable, and contains a placeholder ID
|
|
252
282
|
// the user can't interact with it.
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
283
|
+
if (attribute.listValue) {
|
|
284
|
+
return {
|
|
285
|
+
values: [nestAttributeInDummyParent({
|
|
286
|
+
...attribute,
|
|
287
|
+
path: rest.join('/')
|
|
288
|
+
})],
|
|
289
|
+
disabled: true,
|
|
290
|
+
id: `${attribute.id}/${first}`,
|
|
291
|
+
name: first,
|
|
292
|
+
path: first
|
|
293
|
+
};
|
|
294
|
+
} else {
|
|
295
|
+
return {
|
|
296
|
+
attributes: [nestAttributeInDummyParent({
|
|
297
|
+
...attribute,
|
|
298
|
+
path: rest.join('/')
|
|
299
|
+
})],
|
|
300
|
+
disabled: true,
|
|
301
|
+
id: `${attribute.id}/${first}`,
|
|
302
|
+
name: first,
|
|
303
|
+
path: first
|
|
304
|
+
};
|
|
305
|
+
}
|
|
263
306
|
};
|
|
264
307
|
|
|
265
|
-
// Recursively insert an attribute into an
|
|
266
|
-
// Will create nested
|
|
267
|
-
const
|
|
268
|
-
var
|
|
308
|
+
// Recursively insert an attribute into an parent
|
|
309
|
+
// Will create nested parents if necessary
|
|
310
|
+
const insertAttributeInParent = (attribute, parent) => {
|
|
311
|
+
var _parent$attributes;
|
|
269
312
|
const pathParts = attribute.path.split('/');
|
|
270
313
|
const [first, ...rest] = pathParts;
|
|
271
|
-
const nextParent = (
|
|
314
|
+
const nextParent = (_parent$attributes = parent.attributes) === null || _parent$attributes === void 0 ? void 0 : _parent$attributes.find(a => a.name === first);
|
|
272
315
|
if (!nextParent) {
|
|
273
|
-
|
|
274
|
-
|
|
316
|
+
if (attribute.listValue) {
|
|
317
|
+
var _parent$values;
|
|
318
|
+
(_parent$values = parent.values) === null || _parent$values === void 0 || _parent$values.push(nestAttributeInDummyParent(attribute));
|
|
319
|
+
} else {
|
|
320
|
+
var _parent$attributes2;
|
|
321
|
+
(_parent$attributes2 = parent.attributes) === null || _parent$attributes2 === void 0 || _parent$attributes2.push(nestAttributeInDummyParent(attribute));
|
|
322
|
+
}
|
|
275
323
|
} else {
|
|
276
|
-
|
|
324
|
+
insertAttributeInParent({
|
|
277
325
|
...attribute,
|
|
278
326
|
path: rest.join('/')
|
|
279
327
|
}, nextParent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CredentialStateEnum","DataTypeEnum","FormatFeatureEnum","CredentialErrorIcon","CredentialNoticeWarningIcon","CredentialWarningIcon","formatDateLocalized","formatDateTimeLocalized","concatTestID","getCarouselImagesFromClaims","ValidityState","getValidityState","credential","state","REVOKED","Revoked","SUSPENDED","Suspended","Valid","supportsSelectiveDisclosure","config","_formatConfig$capabil","formatConfig","format","schema","Boolean","capabilities","features","includes","SelectiveDisclosure","undefined","findClaimByPathParts","path","claims","length","first","second","rest","claim","find","c","key","dataType","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","issuanceDate","createdDate","credentialDetailSecondary","credentialDetailErrorColor","credentialDetailTestID","statusIcon","layoutProperties","suspendEndDate","suspendedUntil","suspended","revoked","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","result","cardCarouselImages","cardImage","background","header","detailsCardAttributeFromClaim","id","pop","typeConfig","datatype","array","values","map","arrayValue","index","toString","type","Array","isArray","attributes","nestedClaim","_formatDateLocalized","String","date","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":["CredentialStateEnum","DataTypeEnum","FormatFeatureEnum","WalletStorageType","CredentialErrorIcon","CredentialNoticeWarningIcon","CredentialWarningIcon","formatDateLocalized","formatDateTimeLocalized","concatTestID","WUAState","getCarouselImagesFromClaims","ValidityState","getValidityState","credential","state","REVOKED","Revoked","SUSPENDED","Suspended","Valid","supportsSelectiveDisclosure","config","_formatConfig$capabil","formatConfig","format","schema","Boolean","capabilities","features","includes","SelectiveDisclosure","undefined","findClaimByPathParts","path","claims","length","first","second","rest","claim","find","c","key","dataType","Object","value","findClaimByPath","split","formatCredentialDetail","testID","_attributeValue$value","attributeValue","detailsCardAttributeValueFromClaim","hasMsoValidityIssues","mdocMsoValidity","mdocMsoValidityIssue","nextUpdate","Date","credentialDetailFromCredential","wuaState","labels","_formatDateTimeLocali","_credential$issuanceD","layoutProperties","walletStorageType","EUDI_COMPLIANT","credentialDetailPrimary","wuaRevoked","credentialDetailErrorColor","credentialDetailTestID","statusIcon","suspendEndDate","suspendedUntil","suspended","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","result","cardCarouselImages","cardImage","background","header","detailsCardAttributeFromClaim","id","pop","typeConfig","datatype","array","values","map","arrayValue","index","toString","type","Array","isArray","attributes","nestedClaim","_formatDateLocalized","String","date","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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"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,cAAc,cAAc;AAC5B,cAAc,qBAAqB;AACnC,cAAc,sBAAsB;AACpC,cAAc,SAAS;AACvB,cAAc,mBAAmB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"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,cAAc,cAAc;AAC5B,cAAc,qBAAqB;AACnC,cAAc,sBAAsB;AACpC,cAAc,yBAAyB;AACvC,cAAc,SAAS;AACvB,cAAc,mBAAmB","ignoreList":[]}
|
|
@@ -5,10 +5,10 @@ function getQueryKey(queryParams, params) {
|
|
|
5
5
|
return params.map(param => queryParams[param]);
|
|
6
6
|
}
|
|
7
7
|
export const getQueryKeyFromCredentialListQueryParams = (queryParams = {}) => {
|
|
8
|
-
return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'name', 'searchText', 'searchType', 'sort', 'sortDirection', 'exact', '
|
|
8
|
+
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']);
|
|
9
9
|
};
|
|
10
10
|
export const getQueryKeyFromHistoryListQueryParams = (queryParams = {}) => {
|
|
11
|
-
return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'entityId', 'actions', 'entityTypes', 'createdDateAfter', 'createdDateBefore', 'identifierId', 'credentialId', 'credentialSchemaId', 'proofSchemaId', 'search']);
|
|
11
|
+
return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'entityId', 'actions', 'entityTypes', 'createdDateAfter', 'createdDateBefore', 'identifierId', 'credentialId', 'credentialSchemaId', 'proofSchemaId', 'search', 'user']);
|
|
12
12
|
};
|
|
13
13
|
export const getQueryKeyFromCredentialSchemaListQueryParams = (queryParams = {}) => {
|
|
14
14
|
return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'name', 'sort', 'sortDirection', 'exact', 'ids', 'include', 'schemaId', 'formats', 'createdDateAfter', 'createdDateBefore', 'lastModifiedAfter', 'lastModifiedBefore']);
|
|
@@ -17,12 +17,12 @@ export const getQueryKeyFromProofSchemaListQueryParams = (queryParams = {}) => {
|
|
|
17
17
|
return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'name', 'sort', 'sortDirection', 'exact', 'ids', 'formats', 'createdDateAfter', 'createdDateBefore', 'lastModifiedAfter', 'lastModifiedBefore']);
|
|
18
18
|
};
|
|
19
19
|
export const getQueryKeyFromProofListQueryParams = (queryParams = {}) => {
|
|
20
|
-
return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'sort', 'sortDirection', 'name', 'ids', 'proofStates', 'proofRoles', 'proofSchemaIds', 'exact', '
|
|
20
|
+
return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'sort', 'sortDirection', 'name', 'ids', 'proofStates', 'proofRoles', 'proofSchemaIds', 'exact', 'profiles', 'createdDateAfter', 'createdDateBefore', 'lastModifiedAfter', 'lastModifiedBefore', 'requestedDateAfter', 'requestedDateBefore', 'completedDateAfter', 'completedDateBefore']);
|
|
21
21
|
};
|
|
22
22
|
export const getQueryKeyFromDidListQueryParams = (queryParams = {}) => {
|
|
23
23
|
return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'sort', 'sortDirection', 'name', 'did', 'type', 'deactivated', 'exact', 'keyAlgorithms', 'keyRoles', 'keyStorages', 'keyIds', 'didMethods']);
|
|
24
24
|
};
|
|
25
25
|
export const getQueryKeyFromIdentifierListQueryParams = (queryParams = {}) => {
|
|
26
|
-
return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'sort', 'sortDirection', 'name', 'types', '
|
|
26
|
+
return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'sort', 'sortDirection', 'name', 'types', 'states', 'exact', 'didMethods', 'isRemote', 'keyAlgorithms', 'keyRoles', 'keyStorages', 'createdDateAfter', 'createdDateBefore', 'lastModifiedAfter', 'lastModifiedBefore']);
|
|
27
27
|
};
|
|
28
28
|
//# sourceMappingURL=query.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getQueryKey","queryParams","params","map","param","getQueryKeyFromCredentialListQueryParams","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 '
|
|
1
|
+
{"version":3,"names":["getQueryKey","queryParams","params","map","param","getQueryKeyFromCredentialListQueryParams","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,71 @@
|
|
|
1
|
+
import { Platform } from 'react-native';
|
|
2
|
+
import Share from 'react-native-share';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Check URL validity
|
|
6
|
+
* @param {string} urlString URL to validate.
|
|
7
|
+
* @returns {boolean}
|
|
8
|
+
*/
|
|
9
|
+
export const isUrlValid = urlString => {
|
|
10
|
+
try {
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
12
|
+
const url = new URL(urlString);
|
|
13
|
+
return true;
|
|
14
|
+
} catch {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Check URL http(s) validity
|
|
21
|
+
* @param {string} urlString URL to validate.
|
|
22
|
+
* @returns {boolean}
|
|
23
|
+
*/
|
|
24
|
+
export const isValidHttpUrl = urlString => {
|
|
25
|
+
try {
|
|
26
|
+
const url = new URL(urlString);
|
|
27
|
+
return (url === null || url === void 0 ? void 0 : url.protocol) === 'http:' || (url === null || url === void 0 ? void 0 : url.protocol) === 'https:';
|
|
28
|
+
} catch {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Share URL via share sheet
|
|
35
|
+
* @param {string} url URL to share.
|
|
36
|
+
* @param {string} title _(optional)_ title for iOS share sheet.
|
|
37
|
+
* @returns {boolean}
|
|
38
|
+
*/
|
|
39
|
+
export const shareUrl = async (url, title) => {
|
|
40
|
+
if (Platform.OS === 'ios') {
|
|
41
|
+
await Share.open({
|
|
42
|
+
activityItemSources: [{
|
|
43
|
+
placeholderItem: {
|
|
44
|
+
type: 'url',
|
|
45
|
+
content: url
|
|
46
|
+
},
|
|
47
|
+
item: {
|
|
48
|
+
default: {
|
|
49
|
+
type: 'url',
|
|
50
|
+
content: url
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
subject: title ? {
|
|
54
|
+
default: title
|
|
55
|
+
} : undefined,
|
|
56
|
+
linkMetadata: {
|
|
57
|
+
originalUrl: url,
|
|
58
|
+
url,
|
|
59
|
+
title
|
|
60
|
+
}
|
|
61
|
+
}],
|
|
62
|
+
failOnCancel: false
|
|
63
|
+
});
|
|
64
|
+
} else {
|
|
65
|
+
await Share.open({
|
|
66
|
+
url,
|
|
67
|
+
failOnCancel: false
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Platform","Share","isUrlValid","urlString","url","URL","isValidHttpUrl","protocol","shareUrl","title","OS","open","activityItemSources","placeholderItem","type","content","item","default","subject","undefined","linkMetadata","originalUrl","failOnCancel"],"sources":["url.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport Share from 'react-native-share';\n\n/**\n * Check URL validity\n * @param {string} urlString URL to validate.\n * @returns {boolean}\n */\nexport const isUrlValid = (urlString: string): boolean => {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const url = new URL(urlString);\n return true;\n } catch {\n return false;\n }\n};\n\n/**\n * Check URL http(s) validity\n * @param {string} urlString URL to validate.\n * @returns {boolean}\n */\nexport const isValidHttpUrl = (urlString: string): boolean => {\n try {\n const url = new URL(urlString);\n return url?.protocol === 'http:' || url?.protocol === 'https:';\n } catch {\n return false;\n }\n};\n\n/**\n * Share URL via share sheet\n * @param {string} url URL to share.\n * @param {string} title _(optional)_ title for iOS share sheet.\n * @returns {boolean}\n */\nexport const shareUrl = async (url: string, title?: string) => {\n if (Platform.OS === 'ios') {\n await Share.open({\n activityItemSources: [\n {\n placeholderItem: { type: 'url', content: url },\n item: {\n default: { type: 'url', content: url },\n },\n subject: title\n ? {\n default: title,\n }\n : undefined,\n linkMetadata: { originalUrl: url, url, title },\n },\n ],\n failOnCancel: false,\n });\n } else {\n await Share.open({ url, failOnCancel: false });\n }\n};"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,OAAOC,KAAK,MAAM,oBAAoB;;AAEtC;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,GAAIC,SAAiB,IAAc;EACxD,IAAI;IACF;IACA,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAACF,SAAS,CAAC;IAC9B,OAAO,IAAI;EACb,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,cAAc,GAAIH,SAAiB,IAAc;EAC5D,IAAI;IACF,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAACF,SAAS,CAAC;IAC9B,OAAO,CAAAC,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEG,QAAQ,MAAK,OAAO,IAAI,CAAAH,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEG,QAAQ,MAAK,QAAQ;EAChE,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,QAAQ,GAAG,MAAAA,CAAOJ,GAAW,EAAEK,KAAc,KAAK;EAC7D,IAAIT,QAAQ,CAACU,EAAE,KAAK,KAAK,EAAE;IACzB,MAAMT,KAAK,CAACU,IAAI,CAAC;MACfC,mBAAmB,EAAE,CACnB;QACEC,eAAe,EAAE;UAAEC,IAAI,EAAE,KAAK;UAAEC,OAAO,EAAEX;QAAI,CAAC;QAC9CY,IAAI,EAAE;UACJC,OAAO,EAAE;YAAEH,IAAI,EAAE,KAAK;YAAEC,OAAO,EAAEX;UAAI;QACvC,CAAC;QACDc,OAAO,EAAET,KAAK,GACV;UACEQ,OAAO,EAAER;QACX,CAAC,GACDU,SAAS;QACbC,YAAY,EAAE;UAAEC,WAAW,EAAEjB,GAAG;UAAEA,GAAG;UAAEK;QAAM;MAC/C,CAAC,CACF;MACDa,YAAY,EAAE;IAChB,CAAC,CAAC;EACJ,CAAC,MAAM;IACL,MAAMrB,KAAK,CAACU,IAAI,CAAC;MAAEP,GAAG;MAAEkB,YAAY,EAAE;IAAM,CAAC,CAAC;EAChD;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { WalletUnitStatusEnum } from '@procivis/react-native-one-core';
|
|
2
|
+
export const isWalletAttestationExpired = walletUnitAttestation => {
|
|
3
|
+
return (walletUnitAttestation === null || walletUnitAttestation === void 0 ? void 0 : walletUnitAttestation.expirationDate) && Date.parse(walletUnitAttestation.expirationDate) < Date.now();
|
|
4
|
+
};
|
|
5
|
+
export let WUAState = /*#__PURE__*/function (WUAState) {
|
|
6
|
+
WUAState["Revoked"] = "revoked";
|
|
7
|
+
WUAState["Expired"] = "expired";
|
|
8
|
+
WUAState["Valid"] = "valid";
|
|
9
|
+
return WUAState;
|
|
10
|
+
}({});
|
|
11
|
+
export const walletUnitAttestationState = walletUnitAttestation => {
|
|
12
|
+
if (!walletUnitAttestation) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
if (walletUnitAttestation.status === WalletUnitStatusEnum.REVOKED) {
|
|
16
|
+
return WUAState.Revoked;
|
|
17
|
+
} else if (isWalletAttestationExpired(walletUnitAttestation)) {
|
|
18
|
+
return WUAState.Expired;
|
|
19
|
+
}
|
|
20
|
+
return WUAState.Valid;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=wallet-unit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["WalletUnitStatusEnum","isWalletAttestationExpired","walletUnitAttestation","expirationDate","Date","parse","now","WUAState","walletUnitAttestationState","undefined","status","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,SAA8CA,oBAAoB,QAAQ,iCAAiC;AAE3G,OAAO,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;AAED,WAAYC,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AAMpB,OAAO,MAAMC,0BAA0B,GACrCN,qBAAsE,IAC7C;EACzB,IAAI,CAACA,qBAAqB,EAAE;IAC1B,OAAOO,SAAS;EAClB;EACA,IAAIP,qBAAqB,CAACQ,MAAM,KAAKV,oBAAoB,CAACW,OAAO,EAAE;IACjE,OAAOJ,QAAQ,CAACK,OAAO;EACzB,CAAC,MAAM,IAAIX,0BAA0B,CAACC,qBAAqB,CAAC,EAAE;IAC5D,OAAOK,QAAQ,CAACM,OAAO;EACzB;EACA,OAAON,QAAQ,CAACO,KAAK;AACvB,CAAC","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './
|
|
1
|
+
export * from './select-share-credential-card-notice';
|
|
2
|
+
export * from './share-credential-card-notice';
|
|
3
|
+
export * from './v1';
|
|
4
|
+
export * from './v2';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { ShareCredentialCardNoticeProps } from './share-credential-card-notice';
|
|
3
|
+
export type SelectShareCredentialCardNoticeProps = ShareCredentialCardNoticeProps & {
|
|
4
|
+
buttonTitle: string;
|
|
5
|
+
onPress?: () => void;
|
|
6
|
+
};
|
|
7
|
+
export declare const SelectShareCredentialCardNotice: FC<SelectShareCredentialCardNoticeProps>;
|