@procivis/one-react-native-components 0.3.121 → 0.3.132
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 +2 -1
- package/lib/commonjs/components/credential/credential.js.map +1 -1
- package/lib/commonjs/components/history/history-list-item-icon.js +3 -3
- package/lib/commonjs/components/history/history-list-item-icon.js.map +1 -1
- package/lib/commonjs/components/history/history-list-item.js +5 -12
- package/lib/commonjs/components/history/history-list-item.js.map +1 -1
- package/lib/commonjs/components/history/history-list-screen.js +1 -1
- package/lib/commonjs/components/history/history-list-screen.js.map +1 -1
- package/lib/commonjs/components/index.js +0 -11
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/components/proof-request/v1/select-credential.js +2 -1
- package/lib/commonjs/components/proof-request/v1/select-credential.js.map +1 -1
- package/lib/commonjs/components/proof-request/v1/share-credential.js +2 -1
- package/lib/commonjs/components/proof-request/v1/share-credential.js.map +1 -1
- package/lib/commonjs/components/proof-request/v2/select-credential-v2.js +2 -1
- package/lib/commonjs/components/proof-request/v2/select-credential-v2.js.map +1 -1
- package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js +3 -1
- package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
- package/lib/commonjs/components/proof-request/v2/share-credential-v2.js +7 -3
- package/lib/commonjs/components/proof-request/v2/share-credential-v2.js.map +1 -1
- package/lib/commonjs/ui-components/credential/card/credential-details-card.js +3 -1
- package/lib/commonjs/ui-components/credential/card/credential-details-card.js.map +1 -1
- package/lib/commonjs/ui-components/header/foldable-header.js.map +1 -1
- package/lib/commonjs/ui-components/header/header.js.map +1 -1
- package/lib/commonjs/ui-components/history/history-details.js +2 -2
- package/lib/commonjs/ui-components/history/history-details.js.map +1 -1
- package/lib/commonjs/ui-components/history/history-section-list-item.js +2 -2
- package/lib/commonjs/ui-components/history/history-section-list-item.js.map +1 -1
- package/lib/commonjs/ui-components/history/index.js +0 -8
- package/lib/commonjs/ui-components/history/index.js.map +1 -1
- package/lib/commonjs/ui-components/icons/contact.js.map +1 -1
- package/lib/commonjs/ui-components/icons/credential.js +3 -3
- package/lib/commonjs/ui-components/icons/credential.js.map +1 -1
- package/lib/commonjs/ui-components/icons/icons.js +20 -1
- package/lib/commonjs/ui-components/icons/icons.js.map +1 -1
- package/lib/commonjs/ui-components/list/index.js +8 -0
- package/lib/commonjs/ui-components/list/index.js.map +1 -1
- package/lib/commonjs/ui-components/{history/history-item.js → list/list-item.js} +32 -22
- package/lib/commonjs/ui-components/list/list-item.js.map +1 -0
- package/lib/commonjs/ui-components/loader/loading-result.js +2 -0
- package/lib/commonjs/ui-components/loader/loading-result.js.map +1 -1
- package/lib/commonjs/ui-components/screens/nerd-mode-screen.js +7 -33
- package/lib/commonjs/ui-components/screens/nerd-mode-screen.js.map +1 -1
- package/lib/commonjs/utils/date.js +4 -5
- package/lib/commonjs/utils/date.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/cache.js +7 -4
- package/lib/commonjs/utils/hooks/core/cache.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/core-config.js +1 -6
- package/lib/commonjs/utils/hooks/core/core-config.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/core-context.js +0 -15
- package/lib/commonjs/utils/hooks/core/core-context.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/credentials.js +15 -1
- package/lib/commonjs/utils/hooks/core/credentials.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/index.js +0 -11
- package/lib/commonjs/utils/hooks/core/index.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/trust-list.js +19 -3
- package/lib/commonjs/utils/hooks/core/trust-list.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/verifier-instance.js +22 -3
- package/lib/commonjs/utils/hooks/core/verifier-instance.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/wallet-unit.js +2 -2
- package/lib/commonjs/utils/hooks/core/wallet-unit.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential-sharing-v2.js +23 -18
- package/lib/commonjs/utils/parsers/credential-sharing-v2.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential-sharing.js +20 -18
- package/lib/commonjs/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential.js +36 -22
- package/lib/commonjs/utils/parsers/credential.js.map +1 -1
- package/lib/commonjs/utils/parsers/query.js +2 -2
- package/lib/commonjs/utils/parsers/query.js.map +1 -1
- package/lib/commonjs/utils/translations.js +15 -0
- package/lib/commonjs/utils/translations.js.map +1 -0
- package/lib/module/components/credential/credential.js +2 -1
- package/lib/module/components/credential/credential.js.map +1 -1
- package/lib/module/components/history/history-list-item-icon.js +3 -3
- package/lib/module/components/history/history-list-item-icon.js.map +1 -1
- package/lib/module/components/history/history-list-item.js +7 -14
- package/lib/module/components/history/history-list-item.js.map +1 -1
- package/lib/module/components/history/history-list-screen.js +1 -1
- package/lib/module/components/history/history-list-screen.js.map +1 -1
- package/lib/module/components/index.js +0 -1
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/components/proof-request/v1/select-credential.js +2 -1
- package/lib/module/components/proof-request/v1/select-credential.js.map +1 -1
- package/lib/module/components/proof-request/v1/share-credential.js +2 -1
- package/lib/module/components/proof-request/v1/share-credential.js.map +1 -1
- package/lib/module/components/proof-request/v2/select-credential-v2.js +2 -1
- package/lib/module/components/proof-request/v2/select-credential-v2.js.map +1 -1
- package/lib/module/components/proof-request/v2/share-credential-v2-group.js +3 -1
- package/lib/module/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
- package/lib/module/components/proof-request/v2/share-credential-v2.js +7 -3
- package/lib/module/components/proof-request/v2/share-credential-v2.js.map +1 -1
- package/lib/module/ui-components/credential/card/credential-details-card.js +3 -1
- package/lib/module/ui-components/credential/card/credential-details-card.js.map +1 -1
- package/lib/module/ui-components/header/foldable-header.js.map +1 -1
- package/lib/module/ui-components/header/header.js.map +1 -1
- package/lib/module/ui-components/history/history-details.js +3 -3
- package/lib/module/ui-components/history/history-details.js.map +1 -1
- package/lib/module/ui-components/history/history-section-list-item.js +2 -2
- package/lib/module/ui-components/history/history-section-list-item.js.map +1 -1
- package/lib/module/ui-components/history/index.js +0 -2
- package/lib/module/ui-components/history/index.js.map +1 -1
- package/lib/module/ui-components/icons/contact.js.map +1 -1
- package/lib/module/ui-components/icons/credential.js +1 -1
- package/lib/module/ui-components/icons/credential.js.map +1 -1
- package/lib/module/ui-components/icons/icons.js +18 -0
- package/lib/module/ui-components/icons/icons.js.map +1 -1
- package/lib/module/ui-components/list/index.js +2 -0
- package/lib/module/ui-components/list/index.js.map +1 -1
- package/lib/module/ui-components/{history/history-item.js → list/list-item.js} +32 -22
- package/lib/module/ui-components/list/list-item.js.map +1 -0
- package/lib/module/ui-components/loader/loading-result.js +2 -0
- package/lib/module/ui-components/loader/loading-result.js.map +1 -1
- package/lib/module/ui-components/screens/nerd-mode-screen.js +7 -33
- package/lib/module/ui-components/screens/nerd-mode-screen.js.map +1 -1
- package/lib/module/utils/date.js +4 -5
- package/lib/module/utils/date.js.map +1 -1
- package/lib/module/utils/hooks/core/cache.js +7 -4
- package/lib/module/utils/hooks/core/cache.js.map +1 -1
- package/lib/module/utils/hooks/core/core-config.js +0 -4
- package/lib/module/utils/hooks/core/core-config.js.map +1 -1
- package/lib/module/utils/hooks/core/core-context.js +0 -15
- package/lib/module/utils/hooks/core/core-context.js.map +1 -1
- package/lib/module/utils/hooks/core/credentials.js +13 -0
- package/lib/module/utils/hooks/core/credentials.js.map +1 -1
- package/lib/module/utils/hooks/core/index.js +0 -1
- package/lib/module/utils/hooks/core/index.js.map +1 -1
- package/lib/module/utils/hooks/core/trust-list.js +20 -4
- package/lib/module/utils/hooks/core/trust-list.js.map +1 -1
- package/lib/module/utils/hooks/core/verifier-instance.js +20 -2
- package/lib/module/utils/hooks/core/verifier-instance.js.map +1 -1
- package/lib/module/utils/hooks/core/wallet-unit.js +2 -2
- package/lib/module/utils/hooks/core/wallet-unit.js.map +1 -1
- package/lib/module/utils/parsers/credential-sharing-v2.js +24 -19
- package/lib/module/utils/parsers/credential-sharing-v2.js.map +1 -1
- package/lib/module/utils/parsers/credential-sharing.js +20 -18
- package/lib/module/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/module/utils/parsers/credential.js +37 -23
- package/lib/module/utils/parsers/credential.js.map +1 -1
- package/lib/module/utils/parsers/query.js +2 -2
- package/lib/module/utils/parsers/query.js.map +1 -1
- package/lib/module/utils/translations.js +8 -0
- package/lib/module/utils/translations.js.map +1 -0
- package/lib/typescript/components/credential/credential.d.ts +1 -0
- package/lib/typescript/components/history/history-list-item.d.ts +1 -1
- package/lib/typescript/components/index.d.ts +0 -1
- package/lib/typescript/components/proof-request/v1/select-credential.d.ts +1 -0
- package/lib/typescript/components/proof-request/v1/share-credential.d.ts +1 -0
- package/lib/typescript/components/proof-request/v2/select-credential-v2.d.ts +1 -0
- package/lib/typescript/components/proof-request/v2/share-credential-v2-group.d.ts +1 -0
- package/lib/typescript/components/proof-request/v2/share-credential-v2.d.ts +1 -0
- package/lib/typescript/ui-components/history/history-details.d.ts +2 -2
- package/lib/typescript/ui-components/history/history-section-list-item.d.ts +2 -2
- package/lib/typescript/ui-components/history/index.d.ts +0 -3
- package/lib/typescript/ui-components/icons/credential.d.ts +1 -1
- package/lib/typescript/ui-components/icons/icons.d.ts +1 -0
- package/lib/typescript/ui-components/list/index.d.ts +3 -0
- package/lib/typescript/ui-components/{history/history-item.d.ts → list/list-item.d.ts} +4 -4
- package/lib/typescript/ui-components/screens/nerd-mode-screen.d.ts +0 -12
- package/lib/typescript/utils/hooks/core/core-config.d.ts +0 -1
- package/lib/typescript/utils/hooks/core/core-context.d.ts +0 -1
- package/lib/typescript/utils/hooks/core/credentials.d.ts +1 -0
- package/lib/typescript/utils/hooks/core/index.d.ts +0 -1
- package/lib/typescript/utils/hooks/core/trust-list.d.ts +1 -4
- package/lib/typescript/utils/hooks/core/verifier-instance.d.ts +2 -0
- package/lib/typescript/utils/hooks/core/wallet-unit.d.ts +2 -2
- package/lib/typescript/utils/parsers/credential-sharing-v2.d.ts +3 -3
- package/lib/typescript/utils/parsers/credential-sharing.d.ts +6 -6
- package/lib/typescript/utils/parsers/credential.d.ts +5 -5
- package/lib/typescript/utils/parsers/query.d.ts +2 -2
- package/lib/typescript/utils/translations.d.ts +1 -0
- package/package.json +3 -3
- package/src/components/credential/credential.tsx +3 -0
- package/src/components/history/history-list-item-icon.tsx +2 -2
- package/src/components/history/history-list-item.tsx +7 -12
- package/src/components/history/history-list-screen.tsx +1 -1
- package/src/components/index.ts +0 -1
- package/src/components/proof-request/v1/select-credential.tsx +3 -1
- package/src/components/proof-request/v1/share-credential.tsx +3 -0
- package/src/components/proof-request/v2/select-credential-v2.tsx +3 -1
- package/src/components/proof-request/v2/share-credential-v2-group.tsx +4 -0
- package/src/components/proof-request/v2/share-credential-v2.tsx +7 -0
- package/src/ui-components/credential/card/credential-details-card.tsx +3 -2
- package/src/ui-components/header/foldable-header.tsx +10 -9
- package/src/ui-components/header/header.tsx +10 -1
- package/src/ui-components/history/history-details.tsx +4 -4
- package/src/ui-components/history/history-section-list-item.tsx +3 -3
- package/src/ui-components/history/index.ts +0 -3
- package/src/ui-components/icons/contact.tsx +1 -1
- package/src/ui-components/icons/credential.tsx +1 -1
- package/src/ui-components/icons/icons.tsx +18 -0
- package/src/ui-components/list/index.ts +3 -0
- package/src/ui-components/{history/history-item.tsx → list/list-item.tsx} +36 -33
- package/src/ui-components/loader/loading-result.tsx +7 -1
- package/src/ui-components/screens/nerd-mode-screen.tsx +2 -52
- package/src/utils/date.ts +7 -14
- package/src/utils/hooks/core/cache.ts +10 -3
- package/src/utils/hooks/core/core-config.ts +1 -6
- package/src/utils/hooks/core/core-context.tsx +0 -24
- package/src/utils/hooks/core/credentials.ts +13 -0
- package/src/utils/hooks/core/index.ts +0 -1
- package/src/utils/hooks/core/trust-list.ts +22 -11
- package/src/utils/hooks/core/verifier-instance.ts +23 -2
- package/src/utils/hooks/core/wallet-unit.ts +3 -3
- package/src/utils/parsers/credential-sharing-v2.tsx +34 -14
- package/src/utils/parsers/credential-sharing.tsx +33 -16
- package/src/utils/parsers/credential.ts +45 -14
- package/src/utils/parsers/query.ts +5 -0
- package/src/utils/translations.ts +10 -0
- package/lib/commonjs/components/entity/EntityButtons.js +0 -64
- package/lib/commonjs/components/entity/EntityButtons.js.map +0 -1
- package/lib/commonjs/components/entity/entity-attributes.js +0 -65
- package/lib/commonjs/components/entity/entity-attributes.js.map +0 -1
- package/lib/commonjs/components/entity/entity-details-with-buttons.js +0 -67
- package/lib/commonjs/components/entity/entity-details-with-buttons.js.map +0 -1
- package/lib/commonjs/components/entity/entity-details.js +0 -101
- package/lib/commonjs/components/entity/entity-details.js.map +0 -1
- package/lib/commonjs/components/entity/index.js +0 -14
- package/lib/commonjs/components/entity/index.js.map +0 -1
- package/lib/commonjs/ui-components/history/history-item.js.map +0 -1
- package/lib/commonjs/utils/hooks/core/trust-entity.js +0 -147
- package/lib/commonjs/utils/hooks/core/trust-entity.js.map +0 -1
- package/lib/module/components/entity/EntityButtons.js +0 -56
- package/lib/module/components/entity/EntityButtons.js.map +0 -1
- package/lib/module/components/entity/entity-attributes.js +0 -57
- package/lib/module/components/entity/entity-attributes.js.map +0 -1
- package/lib/module/components/entity/entity-details-with-buttons.js +0 -58
- package/lib/module/components/entity/entity-details-with-buttons.js.map +0 -1
- package/lib/module/components/entity/entity-details.js +0 -92
- package/lib/module/components/entity/entity-details.js.map +0 -1
- package/lib/module/components/entity/index.js +0 -3
- package/lib/module/components/entity/index.js.map +0 -1
- package/lib/module/ui-components/history/history-item.js.map +0 -1
- package/lib/module/utils/hooks/core/trust-entity.js +0 -136
- package/lib/module/utils/hooks/core/trust-entity.js.map +0 -1
- package/lib/typescript/components/entity/EntityButtons.d.ts +0 -14
- package/lib/typescript/components/entity/entity-attributes.d.ts +0 -15
- package/lib/typescript/components/entity/entity-details-with-buttons.d.ts +0 -18
- package/lib/typescript/components/entity/entity-details.d.ts +0 -21
- package/lib/typescript/components/entity/index.d.ts +0 -3
- package/lib/typescript/utils/hooks/core/trust-entity.d.ts +0 -17
- package/src/components/entity/EntityButtons.tsx +0 -79
- package/src/components/entity/entity-attributes.tsx +0 -80
- package/src/components/entity/entity-details-with-buttons.tsx +0 -75
- package/src/components/entity/entity-details.tsx +0 -145
- package/src/components/entity/index.ts +0 -4
- package/src/utils/hooks/core/trust-entity.ts +0 -172
|
@@ -10,16 +10,22 @@ var _icons = require("../../ui-components/icons");
|
|
|
10
10
|
var _testID = require("../testID");
|
|
11
11
|
var _credential2 = require("./credential");
|
|
12
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
-
const validityCheckedCardFromCredential = (credential, expanded, multipleCredentialsAvailable, config, notice, testID, labels) => {
|
|
13
|
+
const validityCheckedCardFromCredential = (credential, expanded, selectiveDisclosureSupported, multipleCredentialsAvailable, config, notice, testID, labels, language) => {
|
|
14
14
|
let credentialHeaderDetail;
|
|
15
|
-
if (
|
|
15
|
+
if (selectiveDisclosureSupported === false) {
|
|
16
|
+
credentialHeaderDetail = {
|
|
17
|
+
credentialDetailPrimary: labels.selectiveDisclosure,
|
|
18
|
+
credentialDetailTestID: (0, _testID.concatTestID)(testID, 'header.nonSelectiveDisclosure'),
|
|
19
|
+
statusIcon: _icons.CredentialWarningIcon
|
|
20
|
+
};
|
|
21
|
+
} else if (!expanded && multipleCredentialsAvailable) {
|
|
16
22
|
credentialHeaderDetail = {
|
|
17
23
|
credentialDetailPrimary: labels.multipleCredentials,
|
|
18
24
|
credentialDetailTestID: (0, _testID.concatTestID)(testID, 'header.multiple'),
|
|
19
25
|
statusIcon: _icons.CredentialWarningIcon
|
|
20
26
|
};
|
|
21
27
|
}
|
|
22
|
-
const card = (0, _credential2.getCredentialCardPropsFromCredential)(credential, credential.claims, config, notice, testID, labels);
|
|
28
|
+
const card = (0, _credential2.getCredentialCardPropsFromCredential)(credential, credential.claims, config, notice, testID, labels, language);
|
|
23
29
|
return {
|
|
24
30
|
...card,
|
|
25
31
|
header: {
|
|
@@ -113,11 +119,11 @@ const getFullyNestedFields = (fields, credentialId) => {
|
|
|
113
119
|
field
|
|
114
120
|
}) => field);
|
|
115
121
|
};
|
|
116
|
-
const shareCredentialCardAttributeFromClaim = (id, config, testID, labels, claim, field) => {
|
|
122
|
+
const shareCredentialCardAttributeFromClaim = (id, config, testID, labels, language, claim, field) => {
|
|
117
123
|
var _field$name$split$pop, _field$name, _field$name2;
|
|
118
124
|
if (claim) {
|
|
119
125
|
return {
|
|
120
|
-
...(0, _credential2.detailsCardAttributeFromClaim)(claim, config, testID),
|
|
126
|
+
...(0, _credential2.detailsCardAttributeFromClaim)(claim, config, testID, language),
|
|
121
127
|
id,
|
|
122
128
|
path: claim.path,
|
|
123
129
|
listValue: claim.isArrayElement
|
|
@@ -165,18 +171,14 @@ const setStatusForNestedObjectOrArrayFields = (attribute, status, disabled) => {
|
|
|
165
171
|
}
|
|
166
172
|
}
|
|
167
173
|
};
|
|
168
|
-
const shareCredentialCardFromCredential = (credential, expanded, multipleCredentialsAvailable, request, selectedFields, config, testID, labels) => {
|
|
174
|
+
const shareCredentialCardFromCredential = (credential, expanded, multipleCredentialsAvailable, request, selectedFields, config, testID, labels, language) => {
|
|
169
175
|
var _credential$issuer, _credential$issuer2;
|
|
170
176
|
const selectiveDisclosureSupported = (0, _credential2.supportsSelectiveDisclosure)(credential ? {
|
|
171
177
|
...credential,
|
|
172
178
|
issuer: (_credential$issuer = credential.issuer) === null || _credential$issuer === void 0 ? void 0 : _credential$issuer.id
|
|
173
179
|
} : undefined, config);
|
|
174
|
-
const notice = selectiveDisclosureSupported === false ? {
|
|
175
|
-
text: labels.selectiveDisclosureNotice,
|
|
176
|
-
noticeIcon: _icons.CredentialNoticeWarningIcon
|
|
177
|
-
} : undefined;
|
|
178
180
|
const cardTestId = (0, _testID.concatTestID)(testID, 'card');
|
|
179
|
-
const card = credential ? validityCheckedCardFromCredential(credential, expanded, multipleCredentialsAvailable, config,
|
|
181
|
+
const card = credential ? validityCheckedCardFromCredential(credential, expanded, selectiveDisclosureSupported, multipleCredentialsAvailable, config, undefined, cardTestId, labels, language) : missingCredentialCardFromRequest(request, undefined, cardTestId, labels);
|
|
180
182
|
const validityState = (0, _credential2.getValidityState)(credential ? {
|
|
181
183
|
...credential,
|
|
182
184
|
issuer: (_credential$issuer2 = credential.issuer) === null || _credential$issuer2 === void 0 ? void 0 : _credential$issuer2.id
|
|
@@ -191,7 +193,7 @@ const shareCredentialCardFromCredential = (credential, expanded, multipleCredent
|
|
|
191
193
|
}, index) => {
|
|
192
194
|
const disabled = !credential || !field || field.required || !claim;
|
|
193
195
|
const attribute = {
|
|
194
|
-
...shareCredentialCardAttributeFromClaim(id, config, (0, _testID.concatTestID)(testID, 'attribute', `${index}`), labels, claim, field),
|
|
196
|
+
...shareCredentialCardAttributeFromClaim(id, config, (0, _testID.concatTestID)(testID, 'attribute', `${index}`), labels, language, claim, field),
|
|
195
197
|
selected
|
|
196
198
|
};
|
|
197
199
|
setStatusForNestedObjectOrArrayFields(attribute, status, disabled);
|
|
@@ -203,8 +205,8 @@ const shareCredentialCardFromCredential = (credential, expanded, multipleCredent
|
|
|
203
205
|
};
|
|
204
206
|
};
|
|
205
207
|
exports.shareCredentialCardFromCredential = shareCredentialCardFromCredential;
|
|
206
|
-
const selectCredentialCardAttributeFromClaim = (id, config, testID, labels, claim, field) => {
|
|
207
|
-
const attribute = shareCredentialCardAttributeFromClaim(id, config, testID, labels, claim, field);
|
|
208
|
+
const selectCredentialCardAttributeFromClaim = (id, config, testID, labels, language, claim, field) => {
|
|
209
|
+
const attribute = shareCredentialCardAttributeFromClaim(id, config, testID, labels, language, claim, field);
|
|
208
210
|
if (!claim) {
|
|
209
211
|
return attribute;
|
|
210
212
|
}
|
|
@@ -214,7 +216,7 @@ const selectCredentialCardAttributeFromClaim = (id, config, testID, labels, clai
|
|
|
214
216
|
};
|
|
215
217
|
};
|
|
216
218
|
exports.selectCredentialCardAttributeFromClaim = selectCredentialCardAttributeFromClaim;
|
|
217
|
-
const selectCredentialCardFromCredential = (credential, selected, request, config, testID, labels) => {
|
|
219
|
+
const selectCredentialCardFromCredential = (credential, selected, request, config, testID, labels, language) => {
|
|
218
220
|
var _credential$issuer3;
|
|
219
221
|
const selectiveDisclosureSupported = (0, _credential2.supportsSelectiveDisclosure)(credential ? {
|
|
220
222
|
...credential,
|
|
@@ -224,13 +226,13 @@ const selectCredentialCardFromCredential = (credential, selected, request, confi
|
|
|
224
226
|
status: selected ? _credential.SelectorStatus.SelectedRadio : _credential.SelectorStatus.Empty
|
|
225
227
|
});
|
|
226
228
|
const notice = selectiveDisclosureSupported === false ? {
|
|
227
|
-
text: labels.
|
|
229
|
+
text: labels.selectiveDisclosure,
|
|
228
230
|
noticeIcon: _icons.CredentialNoticeWarningIcon
|
|
229
231
|
} : undefined;
|
|
230
232
|
const {
|
|
231
233
|
header,
|
|
232
234
|
...cardProps
|
|
233
|
-
} = (0, _credential2.getCredentialCardPropsFromCredential)(credential, credential.claims, config, notice, testID, labels);
|
|
235
|
+
} = (0, _credential2.getCredentialCardPropsFromCredential)(credential, credential.claims, config, notice, testID, labels, language);
|
|
234
236
|
const card = {
|
|
235
237
|
header: {
|
|
236
238
|
...header,
|
|
@@ -244,7 +246,7 @@ const selectCredentialCardFromCredential = (credential, selected, request, confi
|
|
|
244
246
|
}) => {
|
|
245
247
|
return path === field.keyMap[credential.id];
|
|
246
248
|
});
|
|
247
|
-
const attribute = selectCredentialCardAttributeFromClaim(field.id, config, testID, labels, claim, field);
|
|
249
|
+
const attribute = selectCredentialCardAttributeFromClaim(field.id, config, testID, labels, language, claim, field);
|
|
248
250
|
return {
|
|
249
251
|
...attribute,
|
|
250
252
|
rightAccessory: /*#__PURE__*/_react.default.createElement(_credential.Selector, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_credential","_icons","_testID","_credential2","e","__esModule","default","validityCheckedCardFromCredential","credential","expanded","multipleCredentialsAvailable","config","notice","testID","labels","credentialHeaderDetail","credentialDetailPrimary","multipleCredentials","credentialDetailTestID","concatTestID","statusIcon","CredentialWarningIcon","card","getCredentialCardPropsFromCredential","claims","header","exports","missingCredentialCardFromRequest","request","_request$name","cardImage","undefined","color","credentialDetailErrorColor","missingCredential","credentialName","name","id","getAttributeSelectorStatus","field","validityState","claim","selected","ValidityState","Valid","SelectorStatus","Rejected","required","Required","Disabled","SelectedCheckmark","Empty","spreadClaims","reduce","acc","result","value","type_","nestedClaimsWithPath","map","c","isArrayElement","schema","array","path","split","pop","key","push","getDisplayedAttributes","selectiveDisclosureSupported","selectedFields","isApplicable","applicableCredentials","includes","fields","fieldsWithNoKeyMapping","filter","keyMap","fullyNestedFields","getFullyNestedFields","find","status","credentialId","allKeys","every","k","startsWith","shareCredentialCardAttributeFromClaim","_field$name$split$pop","_field$name","_field$name2","detailsCardAttributeFromClaim","listValue","missingAttribute","valueErrorColor","setStatusForNestedObjectOrArrayFields","attribute","disabled","accessory","createElement","Selector","isObject","attributes","length","isArray","values","rightAccessory","_attribute$attributes","nested","nestedAttribute","shareCredentialCardFromCredential","_credential$issuer","_credential$issuer2","supportsSelectiveDisclosure","issuer","text","selectiveDisclosureNotice","noticeIcon","CredentialNoticeWarningIcon","cardTestId","getValidityState","displayedAttributes","index","nestAttributes","selectCredentialCardAttributeFromClaim","RequiredAttributeIcon","selectCredentialCardFromCredential","_credential$issuer3","SelectedRadio","cardProps"],"sources":["credential-sharing.tsx"],"sourcesContent":["import {\n Claim,\n CoreConfig,\n CredentialDetail,\n PresentationDefinitionField,\n PresentationDefinitionRequestedCredential,\n} from '@procivis/react-native-one-core';\nimport React from 'react';\n\nimport {\n CredentialAttribute,\n CredentialCardProps,\n CredentialHeaderProps,\n Selector,\n SelectorStatus,\n} from '../../ui-components/credential';\nimport { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';\nimport { CredentialNoticeWarningIcon, CredentialWarningIcon, RequiredAttributeIcon } from '../../ui-components/icons';\nimport { concatTestID } from '../testID';\nimport {\n CardLabels,\n CredentialDetailsCardPropsWithoutWidth,\n detailsCardAttributeFromClaim,\n getCredentialCardPropsFromCredential,\n getValidityState,\n nestAttributes,\n supportsSelectiveDisclosure,\n ValidityState,\n} from './credential';\n\nexport const validityCheckedCardFromCredential = (\n credential: CredentialDetail,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n config: CoreConfig,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'testID' | 'width'> => {\n let credentialHeaderDetail:\n | Pick<\n CredentialHeaderProps,\n | 'credentialDetailPrimary'\n | 'credentialDetailSecondary'\n | 'credentialDetailErrorColor'\n | 'credentialDetailTestID'\n | 'statusIcon'\n >\n | undefined;\n if (!expanded && multipleCredentialsAvailable) {\n credentialHeaderDetail = {\n credentialDetailPrimary: labels.multipleCredentials,\n credentialDetailTestID: concatTestID(testID, 'header.multiple'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n const card = getCredentialCardPropsFromCredential(credential, credential.claims, config, notice, testID, labels);\n return {\n ...card,\n header: {\n ...card.header,\n ...credentialHeaderDetail,\n },\n };\n};\n\nexport const missingCredentialCardFromRequest = (\n request: PresentationDefinitionRequestedCredential,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n return {\n cardImage: undefined,\n color: undefined,\n testID,\n header: {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.missingCredential,\n credentialDetailTestID: concatTestID(testID, 'header.missing'),\n credentialName: request.name ?? request.id,\n statusIcon: CredentialWarningIcon,\n },\n ...notice,\n };\n};\n\ninterface DisplayedAttribute {\n claim?: FlatClaim;\n field?: PresentationDefinitionField;\n id: string;\n selected?: boolean;\n status: SelectorStatus;\n}\n\nconst getAttributeSelectorStatus = (\n field: PresentationDefinitionField,\n validityState: ValidityState,\n credential?: CredentialDetail,\n claim?: Claim,\n selected?: boolean,\n): SelectorStatus => {\n if (!credential || validityState !== ValidityState.Valid) {\n return SelectorStatus.Rejected;\n }\n if (field.required) {\n if (claim) {\n return SelectorStatus.Required;\n } else {\n return SelectorStatus.Rejected;\n }\n }\n if (!claim) {\n return SelectorStatus.Disabled;\n }\n return selected ? SelectorStatus.SelectedCheckmark : SelectorStatus.Empty;\n};\n\ntype FlatClaim = Claim & {\n isArrayElement?: boolean;\n};\n\n// Returns a spread list of all claims with their full JSON path as key, including all intermediate objects\nconst spreadClaims = (claims: Claim[]): FlatClaim[] => {\n return claims.reduce((acc, claim) => {\n const result = [claim];\n if (claim.value.type_ === 'NESTED') {\n const nestedClaimsWithPath: FlatClaim[] = claim.value.value.map((c) => ({\n ...c,\n isArrayElement: claim.schema.array && claim.path.split('/').pop() !== claim.schema.key,\n }));\n result.push(...spreadClaims(nestedClaimsWithPath));\n }\n return [...acc, ...result];\n }, [] as FlatClaim[]);\n};\n\nconst getDisplayedAttributes = (\n request: PresentationDefinitionRequestedCredential,\n validityState: ValidityState,\n credential?: CredentialDetail,\n selectiveDisclosureSupported?: boolean,\n selectedFields?: string[],\n): DisplayedAttribute[] => {\n const claims = credential ? spreadClaims(credential.claims) : undefined;\n const isApplicable = credential ? request.applicableCredentials.includes(credential.id) : false;\n\n let fields = request.fields;\n if (credential) {\n const fieldsWithNoKeyMapping = request.fields\n .filter((field) => !(credential.id in field.keyMap))\n .filter((field) => !isApplicable || !field.required);\n const fullyNestedFields = getFullyNestedFields(request.fields, credential.id);\n\n fields = [...fieldsWithNoKeyMapping, ...fullyNestedFields];\n }\n\n return fields.map((field) => {\n const selected = !field.required && selectedFields?.includes(field.id);\n const claim = credential\n ? claims?.find(({ path }) => {\n return path === field.keyMap[credential.id];\n })\n : undefined;\n const status =\n selectiveDisclosureSupported === false\n ? SelectorStatus.Required\n : getAttributeSelectorStatus(field, validityState, credential, claim, selected);\n return { claim, field, id: field.id, selected, status };\n });\n};\n\nconst getFullyNestedFields = (\n fields: PresentationDefinitionRequestedCredential['fields'],\n credentialId: CredentialDetail['id'],\n) => {\n const allKeys = fields.filter((field) => credentialId in field.keyMap).map((field) => field.keyMap[credentialId]);\n\n return fields\n .map((field) => ({ field, key: field.keyMap[credentialId] }))\n .filter(({ key }) => key && allKeys.every((k) => !k.startsWith(`${key}/`)))\n .map(({ field }) => field);\n};\n\nexport const shareCredentialCardAttributeFromClaim = (\n id: string,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n claim?: FlatClaim,\n field?: PresentationDefinitionField,\n): CredentialAttribute => {\n if (claim) {\n return {\n ...detailsCardAttributeFromClaim(claim, config, testID),\n id,\n path: claim.path,\n listValue: claim.isArrayElement,\n };\n }\n return {\n id,\n name: field?.name?.split('/').pop() ?? id,\n path: field?.name ?? id,\n value: labels.missingAttribute,\n valueErrorColor: true,\n };\n};\n\n// Will propagate the attribute status (right accessory + selected?) for all nested attributes\n// Note: This function MUTATES the input attribute\nconst setStatusForNestedObjectOrArrayFields = (\n attribute: CredentialAttribute,\n status?: SelectorStatus,\n disabled?: boolean,\n) => {\n const accessory = status && <Selector status={status} />;\n const isObject = attribute.attributes && attribute.attributes.length > 0;\n const isArray = attribute.values && attribute.values.length > 0;\n\n // If the attribute is not an object or array, we update the attribute and return\n if (!isObject && !isArray) {\n attribute.rightAccessory = accessory;\n attribute.disabled = disabled;\n return attribute;\n }\n\n // The object can be optional (tappable radio-checkmark), or required (checkmark)\n if (status === SelectorStatus.SelectedCheckmark || status === SelectorStatus.Empty) {\n // If it's a selectable object, the accessory is rendered next to the object title,\n // The nested attributes have no accessory, and can not be selected\n attribute.rightAccessory = accessory;\n setStatusForNestedObjectOrArrayFields(attribute, undefined, true);\n } else {\n const nested = attribute.attributes ?? attribute.values;\n // If the object is required / rejected, the accessory is rendered next to each nested attribute (except other object titles)\n // all fields are disabled\n for (const nestedAttribute of nested) {\n setStatusForNestedObjectOrArrayFields(nestedAttribute, status, true);\n }\n }\n};\n\nexport type ShareCredentialCardLabels = CardLabels & {\n selectiveDisclosureNotice: string;\n missingAttribute: string;\n missingCredential: string;\n multipleCredentials: string;\n};\n\nexport const shareCredentialCardFromCredential = (\n credential: CredentialDetail | undefined,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n request: PresentationDefinitionRequestedCredential,\n selectedFields: string[] | undefined,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n text: labels.selectiveDisclosureNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n }\n : undefined;\n const cardTestId = concatTestID(testID, 'card');\n const card = credential\n ? validityCheckedCardFromCredential(\n credential,\n expanded,\n multipleCredentialsAvailable,\n config,\n notice,\n cardTestId,\n labels,\n )\n : missingCredentialCardFromRequest(request, notice, cardTestId, labels);\n const validityState = getValidityState(credential ? { ...credential, issuer: credential.issuer?.id } : undefined);\n const displayedAttributes = getDisplayedAttributes(\n request,\n validityState,\n credential,\n selectiveDisclosureSupported,\n selectedFields,\n );\n\n const attributes: CredentialAttribute[] = displayedAttributes.map(({ claim, field, id, selected, status }, index) => {\n const disabled = !credential || !field || field.required || !claim;\n const attribute: CredentialAttribute = {\n ...shareCredentialCardAttributeFromClaim(\n id,\n config,\n concatTestID(testID, 'attribute', `${index}`),\n labels,\n claim,\n field,\n ),\n selected,\n };\n\n setStatusForNestedObjectOrArrayFields(attribute, status, disabled);\n return attribute;\n });\n return {\n attributes: nestAttributes(attributes),\n card,\n };\n};\n\nexport const selectCredentialCardAttributeFromClaim = (\n id: string,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n claim?: FlatClaim,\n field?: PresentationDefinitionField,\n): CredentialAttribute => {\n const attribute = shareCredentialCardAttributeFromClaim(id, config, testID, labels, claim, field);\n if (!claim) {\n return attribute;\n }\n return {\n ...attribute,\n rightAccessory: RequiredAttributeIcon,\n };\n};\n\nexport const selectCredentialCardFromCredential = (\n credential: CredentialDetail,\n selected: boolean,\n request: PresentationDefinitionRequestedCredential,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const rightAccessory = <Selector status={selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty} />;\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n text: labels.selectiveDisclosureNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n }\n : undefined;\n const { header, ...cardProps } = getCredentialCardPropsFromCredential(\n credential,\n credential.claims,\n config,\n notice,\n testID,\n labels,\n );\n const card = {\n header: {\n ...header,\n accessory: rightAccessory,\n },\n ...cardProps,\n };\n const attributes: CredentialAttribute[] = getFullyNestedFields(request.fields, credential.id).map((field) => {\n const claim = spreadClaims(credential.claims).find(({ path }) => {\n return path === field.keyMap[credential.id];\n });\n\n const attribute = selectCredentialCardAttributeFromClaim(field.id, config, testID, labels, claim, field);\n return {\n ...attribute,\n rightAccessory: (\n <Selector status={field.required && !claim ? SelectorStatus.Rejected : SelectorStatus.Required} />\n ),\n };\n });\n return {\n attributes: nestAttributes(attributes),\n card,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_credential","_icons","_testID","_credential2","e","__esModule","default","validityCheckedCardFromCredential","credential","expanded","selectiveDisclosureSupported","multipleCredentialsAvailable","config","notice","testID","labels","language","credentialHeaderDetail","credentialDetailPrimary","selectiveDisclosure","credentialDetailTestID","concatTestID","statusIcon","CredentialWarningIcon","multipleCredentials","card","getCredentialCardPropsFromCredential","claims","header","exports","missingCredentialCardFromRequest","request","_request$name","cardImage","undefined","color","credentialDetailErrorColor","missingCredential","credentialName","name","id","getAttributeSelectorStatus","field","validityState","claim","selected","ValidityState","Valid","SelectorStatus","Rejected","required","Required","Disabled","SelectedCheckmark","Empty","spreadClaims","reduce","acc","result","value","type_","nestedClaimsWithPath","map","c","isArrayElement","schema","array","path","split","pop","key","push","getDisplayedAttributes","selectedFields","isApplicable","applicableCredentials","includes","fields","fieldsWithNoKeyMapping","filter","keyMap","fullyNestedFields","getFullyNestedFields","find","status","credentialId","allKeys","every","k","startsWith","shareCredentialCardAttributeFromClaim","_field$name$split$pop","_field$name","_field$name2","detailsCardAttributeFromClaim","listValue","missingAttribute","valueErrorColor","setStatusForNestedObjectOrArrayFields","attribute","disabled","accessory","createElement","Selector","isObject","attributes","length","isArray","values","rightAccessory","_attribute$attributes","nested","nestedAttribute","shareCredentialCardFromCredential","_credential$issuer","_credential$issuer2","supportsSelectiveDisclosure","issuer","cardTestId","getValidityState","displayedAttributes","index","nestAttributes","selectCredentialCardAttributeFromClaim","RequiredAttributeIcon","selectCredentialCardFromCredential","_credential$issuer3","SelectedRadio","text","noticeIcon","CredentialNoticeWarningIcon","cardProps"],"sources":["credential-sharing.tsx"],"sourcesContent":["import {\n Claim,\n CoreConfig,\n CredentialDetail,\n PresentationDefinitionField,\n PresentationDefinitionRequestedCredential,\n} from '@procivis/react-native-one-core';\nimport React from 'react';\n\nimport {\n CredentialAttribute,\n CredentialCardProps,\n CredentialHeaderProps,\n Selector,\n SelectorStatus,\n} from '../../ui-components/credential';\nimport { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';\nimport { CredentialNoticeWarningIcon, CredentialWarningIcon, RequiredAttributeIcon } from '../../ui-components/icons';\nimport { concatTestID } from '../testID';\nimport {\n CardLabels,\n CredentialDetailsCardPropsWithoutWidth,\n detailsCardAttributeFromClaim,\n getCredentialCardPropsFromCredential,\n getValidityState,\n nestAttributes,\n supportsSelectiveDisclosure,\n ValidityState,\n} from './credential';\n\nexport const validityCheckedCardFromCredential = (\n credential: CredentialDetail,\n expanded: boolean,\n selectiveDisclosureSupported: boolean | undefined,\n multipleCredentialsAvailable: boolean,\n config: CoreConfig,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n language: string | undefined,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'testID' | 'width'> => {\n let credentialHeaderDetail:\n | Pick<\n CredentialHeaderProps,\n | 'credentialDetailPrimary'\n | 'credentialDetailSecondary'\n | 'credentialDetailErrorColor'\n | 'credentialDetailTestID'\n | 'statusIcon'\n >\n | undefined;\n if (selectiveDisclosureSupported === false) {\n credentialHeaderDetail = {\n credentialDetailPrimary: labels.selectiveDisclosure,\n credentialDetailTestID: concatTestID(testID, 'header.nonSelectiveDisclosure'),\n statusIcon: CredentialWarningIcon,\n };\n } else if (!expanded && multipleCredentialsAvailable) {\n credentialHeaderDetail = {\n credentialDetailPrimary: labels.multipleCredentials,\n credentialDetailTestID: concatTestID(testID, 'header.multiple'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n const card = getCredentialCardPropsFromCredential(\n credential,\n credential.claims,\n config,\n notice,\n testID,\n labels,\n language,\n );\n return {\n ...card,\n header: {\n ...card.header,\n ...credentialHeaderDetail,\n },\n };\n};\n\nexport const missingCredentialCardFromRequest = (\n request: PresentationDefinitionRequestedCredential,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n return {\n cardImage: undefined,\n color: undefined,\n testID,\n header: {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.missingCredential,\n credentialDetailTestID: concatTestID(testID, 'header.missing'),\n credentialName: request.name ?? request.id,\n statusIcon: CredentialWarningIcon,\n },\n ...notice,\n };\n};\n\ninterface DisplayedAttribute {\n claim?: FlatClaim;\n field?: PresentationDefinitionField;\n id: string;\n selected?: boolean;\n status: SelectorStatus;\n}\n\nconst getAttributeSelectorStatus = (\n field: PresentationDefinitionField,\n validityState: ValidityState,\n credential?: CredentialDetail,\n claim?: Claim,\n selected?: boolean,\n): SelectorStatus => {\n if (!credential || validityState !== ValidityState.Valid) {\n return SelectorStatus.Rejected;\n }\n if (field.required) {\n if (claim) {\n return SelectorStatus.Required;\n } else {\n return SelectorStatus.Rejected;\n }\n }\n if (!claim) {\n return SelectorStatus.Disabled;\n }\n return selected ? SelectorStatus.SelectedCheckmark : SelectorStatus.Empty;\n};\n\ntype FlatClaim = Claim & {\n isArrayElement?: boolean;\n};\n\n// Returns a spread list of all claims with their full JSON path as key, including all intermediate objects\nconst spreadClaims = (claims: Claim[]): FlatClaim[] => {\n return claims.reduce((acc, claim) => {\n const result = [claim];\n if (claim.value.type_ === 'NESTED') {\n const nestedClaimsWithPath: FlatClaim[] = claim.value.value.map((c) => ({\n ...c,\n isArrayElement: claim.schema.array && claim.path.split('/').pop() !== claim.schema.key,\n }));\n result.push(...spreadClaims(nestedClaimsWithPath));\n }\n return [...acc, ...result];\n }, [] as FlatClaim[]);\n};\n\nconst getDisplayedAttributes = (\n request: PresentationDefinitionRequestedCredential,\n validityState: ValidityState,\n credential?: CredentialDetail,\n selectiveDisclosureSupported?: boolean,\n selectedFields?: string[],\n): DisplayedAttribute[] => {\n const claims = credential ? spreadClaims(credential.claims) : undefined;\n const isApplicable = credential ? request.applicableCredentials.includes(credential.id) : false;\n\n let fields = request.fields;\n if (credential) {\n const fieldsWithNoKeyMapping = request.fields\n .filter((field) => !(credential.id in field.keyMap))\n .filter((field) => !isApplicable || !field.required);\n const fullyNestedFields = getFullyNestedFields(request.fields, credential.id);\n\n fields = [...fieldsWithNoKeyMapping, ...fullyNestedFields];\n }\n\n return fields.map((field) => {\n const selected = !field.required && selectedFields?.includes(field.id);\n const claim = credential\n ? claims?.find(({ path }) => {\n return path === field.keyMap[credential.id];\n })\n : undefined;\n const status =\n selectiveDisclosureSupported === false\n ? SelectorStatus.Required\n : getAttributeSelectorStatus(field, validityState, credential, claim, selected);\n return { claim, field, id: field.id, selected, status };\n });\n};\n\nconst getFullyNestedFields = (\n fields: PresentationDefinitionRequestedCredential['fields'],\n credentialId: CredentialDetail['id'],\n) => {\n const allKeys = fields.filter((field) => credentialId in field.keyMap).map((field) => field.keyMap[credentialId]);\n\n return fields\n .map((field) => ({ field, key: field.keyMap[credentialId] }))\n .filter(({ key }) => key && allKeys.every((k) => !k.startsWith(`${key}/`)))\n .map(({ field }) => field);\n};\n\nexport const shareCredentialCardAttributeFromClaim = (\n id: string,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n language: string | undefined,\n claim?: FlatClaim,\n field?: PresentationDefinitionField,\n): CredentialAttribute => {\n if (claim) {\n return {\n ...detailsCardAttributeFromClaim(claim, config, testID, language),\n id,\n path: claim.path,\n listValue: claim.isArrayElement,\n };\n }\n return {\n id,\n name: field?.name?.split('/').pop() ?? id,\n path: field?.name ?? id,\n value: labels.missingAttribute,\n valueErrorColor: true,\n };\n};\n\n// Will propagate the attribute status (right accessory + selected?) for all nested attributes\n// Note: This function MUTATES the input attribute\nconst setStatusForNestedObjectOrArrayFields = (\n attribute: CredentialAttribute,\n status?: SelectorStatus,\n disabled?: boolean,\n) => {\n const accessory = status && <Selector status={status} />;\n const isObject = attribute.attributes && attribute.attributes.length > 0;\n const isArray = attribute.values && attribute.values.length > 0;\n\n // If the attribute is not an object or array, we update the attribute and return\n if (!isObject && !isArray) {\n attribute.rightAccessory = accessory;\n attribute.disabled = disabled;\n return attribute;\n }\n\n // The object can be optional (tappable radio-checkmark), or required (checkmark)\n if (status === SelectorStatus.SelectedCheckmark || status === SelectorStatus.Empty) {\n // If it's a selectable object, the accessory is rendered next to the object title,\n // The nested attributes have no accessory, and can not be selected\n attribute.rightAccessory = accessory;\n setStatusForNestedObjectOrArrayFields(attribute, undefined, true);\n } else {\n const nested = attribute.attributes ?? attribute.values;\n // If the object is required / rejected, the accessory is rendered next to each nested attribute (except other object titles)\n // all fields are disabled\n for (const nestedAttribute of nested) {\n setStatusForNestedObjectOrArrayFields(nestedAttribute, status, true);\n }\n }\n};\n\nexport type ShareCredentialCardLabels = CardLabels & {\n selectiveDisclosure: string;\n missingAttribute: string;\n missingCredential: string;\n multipleCredentials: string;\n};\n\nexport const shareCredentialCardFromCredential = (\n credential: CredentialDetail | undefined,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n request: PresentationDefinitionRequestedCredential,\n selectedFields: string[] | undefined,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n language: string | undefined,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const cardTestId = concatTestID(testID, 'card');\n const card = credential\n ? validityCheckedCardFromCredential(\n credential,\n expanded,\n selectiveDisclosureSupported,\n multipleCredentialsAvailable,\n config,\n undefined,\n cardTestId,\n labels,\n language,\n )\n : missingCredentialCardFromRequest(request, undefined, cardTestId, labels);\n const validityState = getValidityState(credential ? { ...credential, issuer: credential.issuer?.id } : undefined);\n const displayedAttributes = getDisplayedAttributes(\n request,\n validityState,\n credential,\n selectiveDisclosureSupported,\n selectedFields,\n );\n\n const attributes: CredentialAttribute[] = displayedAttributes.map(({ claim, field, id, selected, status }, index) => {\n const disabled = !credential || !field || field.required || !claim;\n const attribute: CredentialAttribute = {\n ...shareCredentialCardAttributeFromClaim(\n id,\n config,\n concatTestID(testID, 'attribute', `${index}`),\n labels,\n language,\n claim,\n field,\n ),\n selected,\n };\n\n setStatusForNestedObjectOrArrayFields(attribute, status, disabled);\n return attribute;\n });\n return {\n attributes: nestAttributes(attributes),\n card,\n };\n};\n\nexport const selectCredentialCardAttributeFromClaim = (\n id: string,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n language: string | undefined,\n claim?: FlatClaim,\n field?: PresentationDefinitionField,\n): CredentialAttribute => {\n const attribute = shareCredentialCardAttributeFromClaim(id, config, testID, labels, language, claim, field);\n if (!claim) {\n return attribute;\n }\n return {\n ...attribute,\n rightAccessory: RequiredAttributeIcon,\n };\n};\n\nexport const selectCredentialCardFromCredential = (\n credential: CredentialDetail,\n selected: boolean,\n request: PresentationDefinitionRequestedCredential,\n config: CoreConfig,\n testID: string,\n labels: ShareCredentialCardLabels,\n language: string | undefined,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const rightAccessory = <Selector status={selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty} />;\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n text: labels.selectiveDisclosure,\n noticeIcon: CredentialNoticeWarningIcon,\n }\n : undefined;\n const { header, ...cardProps } = getCredentialCardPropsFromCredential(\n credential,\n credential.claims,\n config,\n notice,\n testID,\n labels,\n language,\n );\n const card = {\n header: {\n ...header,\n accessory: rightAccessory,\n },\n ...cardProps,\n };\n const attributes: CredentialAttribute[] = getFullyNestedFields(request.fields, credential.id).map((field) => {\n const claim = spreadClaims(credential.claims).find(({ path }) => {\n return path === field.keyMap[credential.id];\n });\n\n const attribute = selectCredentialCardAttributeFromClaim(field.id, config, testID, labels, language, claim, field);\n return {\n ...attribute,\n rightAccessory: (\n <Selector status={field.required && !claim ? SelectorStatus.Rejected : SelectorStatus.Required} />\n ),\n };\n });\n return {\n attributes: nestAttributes(attributes),\n card,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,6 +10,7 @@ var _reactNativeOneCore = require("@procivis/react-native-one-core");
|
|
|
10
10
|
var _icons = require("../../ui-components/icons");
|
|
11
11
|
var _date = require("../date");
|
|
12
12
|
var _testID = require("../testID");
|
|
13
|
+
var _translations = require("../translations");
|
|
13
14
|
var _credentialImages = require("./credential-images");
|
|
14
15
|
let ValidityState = exports.ValidityState = /*#__PURE__*/function (ValidityState) {
|
|
15
16
|
ValidityState["Revoked"] = "revoked";
|
|
@@ -48,9 +49,9 @@ const findClaimByPath = (path, claims) => {
|
|
|
48
49
|
return undefined;
|
|
49
50
|
};
|
|
50
51
|
exports.findClaimByPath = findClaimByPath;
|
|
51
|
-
const formatCredentialDetail = (claim, config, testID) => {
|
|
52
|
+
const formatCredentialDetail = (claim, config, testID, language) => {
|
|
52
53
|
var _attributeValue$value;
|
|
53
|
-
const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID);
|
|
54
|
+
const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID, language);
|
|
54
55
|
return (_attributeValue$value = attributeValue.value) !== null && _attributeValue$value !== void 0 ? _attributeValue$value : '';
|
|
55
56
|
};
|
|
56
57
|
const hasMsoValidityIssues = credential => {
|
|
@@ -59,7 +60,7 @@ const hasMsoValidityIssues = credential => {
|
|
|
59
60
|
return mdocMsoValidityIssue;
|
|
60
61
|
};
|
|
61
62
|
exports.hasMsoValidityIssues = hasMsoValidityIssues;
|
|
62
|
-
const credentialDetailFromCredential = (credential, claims = [], config, testID, labels) => {
|
|
63
|
+
const credentialDetailFromCredential = (credential, claims = [], config, testID, labels, language) => {
|
|
63
64
|
var _formatDateTimeLocali, _credential$issuanceD;
|
|
64
65
|
const {
|
|
65
66
|
layoutProperties
|
|
@@ -90,11 +91,11 @@ const credentialDetailFromCredential = (credential, claims = [], config, testID,
|
|
|
90
91
|
let credentialDetailSecondary;
|
|
91
92
|
const primary = findClaimByPath(layoutProperties === null || layoutProperties === void 0 ? void 0 : layoutProperties.primaryAttribute, claims);
|
|
92
93
|
if (primary) {
|
|
93
|
-
credentialDetailPrimary = formatCredentialDetail(primary, config, (0, _testID.concatTestID)(testID, 'primary'));
|
|
94
|
+
credentialDetailPrimary = formatCredentialDetail(primary, config, (0, _testID.concatTestID)(testID, 'primary'), language);
|
|
94
95
|
}
|
|
95
96
|
const secondary = findClaimByPath(layoutProperties === null || layoutProperties === void 0 ? void 0 : layoutProperties.secondaryAttribute, claims);
|
|
96
97
|
if (secondary) {
|
|
97
|
-
credentialDetailSecondary = formatCredentialDetail(secondary, config, (0, _testID.concatTestID)(testID, 'secondary'));
|
|
98
|
+
credentialDetailSecondary = formatCredentialDetail(secondary, config, (0, _testID.concatTestID)(testID, 'secondary'), language);
|
|
98
99
|
}
|
|
99
100
|
return {
|
|
100
101
|
credentialDetailPrimary,
|
|
@@ -102,25 +103,26 @@ const credentialDetailFromCredential = (credential, claims = [], config, testID,
|
|
|
102
103
|
credentialDetailTestID: (0, _testID.concatTestID)(testID, 'detail')
|
|
103
104
|
};
|
|
104
105
|
};
|
|
105
|
-
const cardHeaderFromCredential = (credential, claims = [], config, testID, labels) => {
|
|
106
|
-
var _layoutProperties$log, _layoutProperties$log2, _layoutProperties$log3;
|
|
106
|
+
const cardHeaderFromCredential = (credential, claims = [], config, testID, labels, language) => {
|
|
107
|
+
var _layoutProperties$log, _getTranslatedLabel, _credential$schema$tr, _layoutProperties$log2, _layoutProperties$log3;
|
|
107
108
|
const {
|
|
108
109
|
credentialDetailPrimary,
|
|
109
110
|
credentialDetailSecondary,
|
|
110
111
|
credentialDetailErrorColor,
|
|
111
112
|
credentialDetailTestID,
|
|
112
113
|
statusIcon
|
|
113
|
-
} = credentialDetailFromCredential(credential, claims, config, testID, labels);
|
|
114
|
+
} = credentialDetailFromCredential(credential, claims, config, testID, labels, language);
|
|
114
115
|
const {
|
|
115
116
|
layoutProperties
|
|
116
117
|
} = credential.schema;
|
|
118
|
+
const defaultLanguage = config.defaultLanguage;
|
|
117
119
|
return {
|
|
118
120
|
color: layoutProperties === null || layoutProperties === void 0 || (_layoutProperties$log = layoutProperties.logo) === null || _layoutProperties$log === void 0 ? void 0 : _layoutProperties$log.backgroundColor,
|
|
119
121
|
credentialDetailErrorColor,
|
|
120
122
|
credentialDetailPrimary,
|
|
121
123
|
credentialDetailSecondary,
|
|
122
124
|
credentialDetailTestID,
|
|
123
|
-
credentialName: credential.schema.name,
|
|
125
|
+
credentialName: (_getTranslatedLabel = (0, _translations.getTranslatedLabel)((_credential$schema$tr = credential.schema.translations) === null || _credential$schema$tr === void 0 ? void 0 : _credential$schema$tr.name, language, defaultLanguage)) !== null && _getTranslatedLabel !== void 0 ? _getTranslatedLabel : credential.schema.name,
|
|
124
126
|
icon: layoutProperties !== null && layoutProperties !== void 0 && (_layoutProperties$log2 = layoutProperties.logo) !== null && _layoutProperties$log2 !== void 0 && _layoutProperties$log2.image ? {
|
|
125
127
|
imageSource: {
|
|
126
128
|
uri: layoutProperties.logo.image
|
|
@@ -132,16 +134,26 @@ const cardHeaderFromCredential = (credential, claims = [], config, testID, label
|
|
|
132
134
|
};
|
|
133
135
|
};
|
|
134
136
|
exports.cardHeaderFromCredential = cardHeaderFromCredential;
|
|
135
|
-
const getCredentialCardPropsFromCredential = (credential, claims = [], config, notice, testID, labels) => {
|
|
137
|
+
const getCredentialCardPropsFromCredential = (credential, claims = [], config, notice, testID, labels, language) => {
|
|
136
138
|
var _layoutProperties$bac, _layoutProperties$bac2;
|
|
137
139
|
const {
|
|
138
140
|
layoutProperties
|
|
139
141
|
} = credential.schema;
|
|
142
|
+
const defaultLanguage = config.defaultLanguage;
|
|
140
143
|
if (hasMsoValidityIssues(credential)) {
|
|
141
144
|
notice = {
|
|
142
145
|
text: labels.validityIssuesNotice,
|
|
143
146
|
noticeIcon: _icons.CredentialNoticeWarningIcon
|
|
144
147
|
};
|
|
148
|
+
} else if (!notice) {
|
|
149
|
+
var _credential$schema$tr2;
|
|
150
|
+
let description = (0, _translations.getTranslatedLabel)((_credential$schema$tr2 = credential.schema.translations) === null || _credential$schema$tr2 === void 0 ? void 0 : _credential$schema$tr2.description, language, defaultLanguage);
|
|
151
|
+
if (description) {
|
|
152
|
+
notice = {
|
|
153
|
+
text: description,
|
|
154
|
+
noticeIcon: _icons.CredentialNoticeInfoIcon
|
|
155
|
+
};
|
|
156
|
+
}
|
|
145
157
|
}
|
|
146
158
|
const result = {
|
|
147
159
|
cardCarouselImages: (0, _credentialImages.getCarouselImagesFromClaims)(claims, layoutProperties, (0, _testID.concatTestID)(testID, 'carousel')),
|
|
@@ -151,29 +163,31 @@ const getCredentialCardPropsFromCredential = (credential, claims = [], config, n
|
|
|
151
163
|
}
|
|
152
164
|
} : undefined,
|
|
153
165
|
color: layoutProperties === null || layoutProperties === void 0 || (_layoutProperties$bac2 = layoutProperties.background) === null || _layoutProperties$bac2 === void 0 ? void 0 : _layoutProperties$bac2.color,
|
|
154
|
-
header: cardHeaderFromCredential(credential, claims, config, (0, _testID.concatTestID)(testID, 'header'), labels),
|
|
166
|
+
header: cardHeaderFromCredential(credential, claims, config, (0, _testID.concatTestID)(testID, 'header'), labels, language),
|
|
155
167
|
testID,
|
|
156
168
|
notice
|
|
157
169
|
};
|
|
158
170
|
return result;
|
|
159
171
|
};
|
|
160
172
|
exports.getCredentialCardPropsFromCredential = getCredentialCardPropsFromCredential;
|
|
161
|
-
const detailsCardAttributeFromClaim = (claim, config, testID) => {
|
|
162
|
-
|
|
173
|
+
const detailsCardAttributeFromClaim = (claim, config, testID, language) => {
|
|
174
|
+
var _getTranslatedLabel2;
|
|
175
|
+
const value = detailsCardAttributeValueFromClaim(claim, config, testID, language);
|
|
176
|
+
const defaultLanguage = config.defaultLanguage;
|
|
163
177
|
return {
|
|
164
178
|
id: claim.path,
|
|
165
|
-
name: claim.path.split('/').pop(),
|
|
179
|
+
name: (_getTranslatedLabel2 = (0, _translations.getTranslatedLabel)(claim.schema.translations.name, language, defaultLanguage)) !== null && _getTranslatedLabel2 !== void 0 ? _getTranslatedLabel2 : claim.path.split('/').pop(),
|
|
166
180
|
path: claim.path,
|
|
167
181
|
...value
|
|
168
182
|
};
|
|
169
183
|
};
|
|
170
184
|
exports.detailsCardAttributeFromClaim = detailsCardAttributeFromClaim;
|
|
171
|
-
const detailsCardAttributeValueFromClaim = (claim, config, testID) => {
|
|
185
|
+
const detailsCardAttributeValueFromClaim = (claim, config, testID, language) => {
|
|
172
186
|
const typeConfig = config === null || config === void 0 ? void 0 : config.datatype[claim.schema.datatype];
|
|
173
187
|
if (claim.schema.array) {
|
|
174
188
|
return {
|
|
175
189
|
values: (claim.value.value || []).map((arrayValue, index) => {
|
|
176
|
-
return detailsCardAttributeFromClaim(arrayValue, config, (0, _testID.concatTestID)(testID, index.toString()));
|
|
190
|
+
return detailsCardAttributeFromClaim(arrayValue, config, (0, _testID.concatTestID)(testID, index.toString()), language);
|
|
177
191
|
})
|
|
178
192
|
};
|
|
179
193
|
} else {
|
|
@@ -186,7 +200,7 @@ const detailsCardAttributeValueFromClaim = (claim, config, testID) => {
|
|
|
186
200
|
};
|
|
187
201
|
}
|
|
188
202
|
return {
|
|
189
|
-
attributes: claim.value.value.map((nestedClaim, index) => detailsCardAttributeFromClaim(nestedClaim, config, (0, _testID.concatTestID)(testID, index.toString())))
|
|
203
|
+
attributes: claim.value.value.map((nestedClaim, index) => detailsCardAttributeFromClaim(nestedClaim, config, (0, _testID.concatTestID)(testID, index.toString()), language))
|
|
190
204
|
};
|
|
191
205
|
}
|
|
192
206
|
case _reactNativeOneCore.DataType.Date:
|
|
@@ -231,13 +245,13 @@ const detailsCardAttributeValueFromClaim = (claim, config, testID) => {
|
|
|
231
245
|
}
|
|
232
246
|
}
|
|
233
247
|
};
|
|
234
|
-
const detailsCardFromCredential = (credential, config, testID, labels) => {
|
|
235
|
-
return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels);
|
|
248
|
+
const detailsCardFromCredential = (credential, config, testID, labels, language) => {
|
|
249
|
+
return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels, language);
|
|
236
250
|
};
|
|
237
251
|
exports.detailsCardFromCredential = detailsCardFromCredential;
|
|
238
|
-
const detailsCardFromCredentialWithClaims = (credential, claims, config, testID, labels) => {
|
|
239
|
-
const attributes = claims.map((claim, index) => detailsCardAttributeFromClaim(claim, config, (0, _testID.concatTestID)(testID, 'attribute', index.toString())));
|
|
240
|
-
const card = getCredentialCardPropsFromCredential(credential, claims, config, undefined, (0, _testID.concatTestID)(testID, 'card'), labels);
|
|
252
|
+
const detailsCardFromCredentialWithClaims = (credential, claims, config, testID, labels, language) => {
|
|
253
|
+
const attributes = claims.map((claim, index) => detailsCardAttributeFromClaim(claim, config, (0, _testID.concatTestID)(testID, 'attribute', index.toString()), language));
|
|
254
|
+
const card = getCredentialCardPropsFromCredential(credential, claims, config, undefined, (0, _testID.concatTestID)(testID, 'card'), labels, language);
|
|
241
255
|
return {
|
|
242
256
|
attributes,
|
|
243
257
|
card
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeOneCore","require","_icons","_date","_testID","_credentialImages","ValidityState","exports","getValidityState","credential","state","CredentialState","REVOKED","Revoked","SUSPENDED","Suspended","Valid","supportsSelectiveDisclosure","config","_formatConfig$capabil","formatConfig","format","schema","Boolean","capabilities","features","includes","FormatFeature","SelectiveDisclosure","undefined","findClaimByPath","path","claims","exactClaim","find","claim","parentClaim","startsWith","value","type_","formatCredentialDetail","testID","_attributeValue$value","attributeValue","detailsCardAttributeValueFromClaim","hasMsoValidityIssues","_credential$mdocMsoVa","mdocMsoValidityIssue","mdocMsoValidity","nextUpdate","Date","credentialDetailFromCredential","labels","_formatDateTimeLocali","_credential$issuanceD","layoutProperties","credentialDetailPrimary","suspendEndDate","suspendedUntil","formatDateTimeLocalized","suspended","credentialDetailTestID","concatTestID","statusIcon","CredentialWarningIcon","revoked","credentialDetailErrorColor","CredentialErrorIcon","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","split","pop","typeConfig","datatype","array","values","map","arrayValue","index","toString","type","DataType","Object","attributes","nestedClaim","_formatDateLocalized","String","date","formatDateLocalized","Picture","SwiyuPicture","_typeConfig$params","params","showAs","detailsCardFromCredential","detailsCardFromCredentialWithClaims","card","nestAttributes","attribute","attributePath","length","push","first","rest","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 CoreConfig,\n CredentialDetail,\n CredentialListItem,\n CredentialSchemaListItem,\n CredentialState,\n DataType,\n FormatFeature,\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 { 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 === CredentialState.REVOKED) {\n return ValidityState.Revoked;\n }\n if (credential?.state === CredentialState.SUSPENDED) {\n return ValidityState.Suspended;\n }\n return ValidityState.Valid;\n};\n\nexport const supportsSelectiveDisclosure = (\n credential: CredentialListItem | undefined,\n config: CoreConfig | undefined,\n) => {\n const formatConfig = credential && config?.format[credential.schema.format];\n return formatConfig\n ? Boolean(formatConfig.capabilities?.features?.includes(FormatFeature.SelectiveDisclosure))\n : undefined;\n};\n\nexport const findClaimByPath = (path: string | undefined, claims: Claim[]): Claim | undefined => {\n if (!path) {\n return undefined;\n }\n\n const exactClaim = claims.find((claim) => claim.path === path);\n if (exactClaim) {\n return exactClaim;\n }\n\n const parentClaim = claims.find((claim) => path.startsWith(`${claim.path}/`));\n if (parentClaim && parentClaim.value.type_ === 'NESTED') {\n return findClaimByPath(path, parentClaim.value.value);\n }\n\n return undefined;\n};\n\nconst formatCredentialDetail = (claim: Claim, config: CoreConfig, testID: string): string => {\n const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID);\n return attributeValue.value ?? '';\n};\n\nexport const hasMsoValidityIssues = (credential: CredentialDetail): boolean => {\n const mdocMsoValidityIssue = Boolean(\n credential.mdocMsoValidity?.nextUpdate && new Date(credential.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\nconst credentialDetailFromCredential = (\n credential: CredentialDetail,\n claims: Claim[] = [],\n config: CoreConfig,\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 switch (credential.state) {\n case CredentialState.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 CredentialState.REVOKED:\n return {\n credentialDetailPrimary: labels.revoked,\n credentialDetailErrorColor: true,\n credentialDetailTestID: concatTestID(testID, 'revoked'),\n statusIcon: CredentialErrorIcon,\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: CoreConfig,\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, 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: CoreConfig,\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 = (\n claim: Claim,\n config: CoreConfig,\n testID: string,\n): CredentialAttribute => {\n const value = detailsCardAttributeValueFromClaim(claim, config, testID);\n return {\n id: claim.path,\n name: claim.path.split('/').pop(),\n path: claim.path,\n ...value,\n };\n};\n\nconst detailsCardAttributeValueFromClaim = (\n claim: Claim,\n config: CoreConfig,\n testID: string,\n): CredentialAttributeValue => {\n const typeConfig = config?.datatype[claim.schema.datatype];\n\n if (claim.schema.array) {\n return {\n values: ((claim.value.value as Claim[]) || []).map((arrayValue, index) => {\n return detailsCardAttributeFromClaim(arrayValue, config, concatTestID(testID, index.toString()));\n }),\n };\n } else {\n switch (typeConfig?.type) {\n case DataType.Object: {\n if (claim.value.type_ !== 'NESTED') {\n return { attributes: [] };\n }\n return {\n attributes: claim.value.value.map((nestedClaim, index) =>\n detailsCardAttributeFromClaim(nestedClaim, config, concatTestID(testID, index.toString())),\n ),\n };\n }\n case DataType.Date: {\n if (!claim.value.value) {\n // Don't try to parse empty values (which will return \"Invalid Date\")\n return { testID: testID, value: String(claim.value.value) };\n }\n const date = claim.value.value as string;\n return {\n testID: testID,\n value: formatDateLocalized(new Date(date)) ?? date,\n };\n }\n case DataType.Picture: // fallback\n case DataType.SwiyuPicture: {\n if (typeConfig.params?.showAs === 'IMAGE') {\n return { image: { uri: claim.value.value as string }, testID: testID };\n } else {\n return { testID: testID, value: claim.value.value as string };\n }\n }\n default:\n return { testID: testID, value: String(claim.value.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: CoreConfig,\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: CoreConfig,\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 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<T extends CredentialSchemaListItem>(credentialSchema: T): T {\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","_translations","_credentialImages","ValidityState","exports","getValidityState","credential","state","CredentialState","REVOKED","Revoked","SUSPENDED","Suspended","Valid","supportsSelectiveDisclosure","config","_formatConfig$capabil","formatConfig","format","schema","Boolean","capabilities","features","includes","FormatFeature","SelectiveDisclosure","undefined","findClaimByPath","path","claims","exactClaim","find","claim","parentClaim","startsWith","value","type_","formatCredentialDetail","testID","language","_attributeValue$value","attributeValue","detailsCardAttributeValueFromClaim","hasMsoValidityIssues","_credential$mdocMsoVa","mdocMsoValidityIssue","mdocMsoValidity","nextUpdate","Date","credentialDetailFromCredential","labels","_formatDateTimeLocali","_credential$issuanceD","layoutProperties","credentialDetailPrimary","suspendEndDate","suspendedUntil","formatDateTimeLocalized","suspended","credentialDetailTestID","concatTestID","statusIcon","CredentialWarningIcon","revoked","credentialDetailErrorColor","CredentialErrorIcon","validityIssues","issuanceDate","createdDate","credentialDetailSecondary","primary","primaryAttribute","secondary","secondaryAttribute","cardHeaderFromCredential","_layoutProperties$log","_getTranslatedLabel","_credential$schema$tr","_layoutProperties$log2","_layoutProperties$log3","defaultLanguage","color","logo","backgroundColor","credentialName","getTranslatedLabel","translations","name","icon","image","imageSource","uri","iconLabelColor","fontColor","getCredentialCardPropsFromCredential","notice","_layoutProperties$bac","_layoutProperties$bac2","text","validityIssuesNotice","noticeIcon","CredentialNoticeWarningIcon","_credential$schema$tr2","description","CredentialNoticeInfoIcon","result","cardCarouselImages","getCarouselImagesFromClaims","cardImage","background","header","detailsCardAttributeFromClaim","_getTranslatedLabel2","id","split","pop","typeConfig","datatype","array","values","map","arrayValue","index","toString","type","DataType","Object","attributes","nestedClaim","_formatDateLocalized","String","date","formatDateLocalized","Picture","SwiyuPicture","_typeConfig$params","params","showAs","detailsCardFromCredential","detailsCardFromCredentialWithClaims","card","nestAttributes","attribute","attributePath","length","push","first","rest","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 CoreConfig,\n CredentialDetail,\n CredentialListItem,\n CredentialSchemaListItem,\n CredentialState,\n DataType,\n FormatFeature,\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 {\n CredentialErrorIcon,\n CredentialNoticeInfoIcon,\n CredentialNoticeWarningIcon,\n CredentialWarningIcon,\n} from '../../ui-components/icons';\nimport { formatDateLocalized, formatDateTimeLocalized } from '../date';\nimport { concatTestID } from '../testID';\nimport { getTranslatedLabel } from '../translations';\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 === CredentialState.REVOKED) {\n return ValidityState.Revoked;\n }\n if (credential?.state === CredentialState.SUSPENDED) {\n return ValidityState.Suspended;\n }\n return ValidityState.Valid;\n};\n\nexport const supportsSelectiveDisclosure = (\n credential: CredentialListItem | undefined,\n config: CoreConfig | undefined,\n) => {\n const formatConfig = credential && config?.format[credential.schema.format];\n return formatConfig\n ? Boolean(formatConfig.capabilities?.features?.includes(FormatFeature.SelectiveDisclosure))\n : undefined;\n};\n\nexport const findClaimByPath = (path: string | undefined, claims: Claim[]): Claim | undefined => {\n if (!path) {\n return undefined;\n }\n\n const exactClaim = claims.find((claim) => claim.path === path);\n if (exactClaim) {\n return exactClaim;\n }\n\n const parentClaim = claims.find((claim) => path.startsWith(`${claim.path}/`));\n if (parentClaim && parentClaim.value.type_ === 'NESTED') {\n return findClaimByPath(path, parentClaim.value.value);\n }\n\n return undefined;\n};\n\nconst formatCredentialDetail = (\n claim: Claim,\n config: CoreConfig,\n testID: string,\n language: string | undefined,\n): string => {\n const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID, language);\n return attributeValue.value ?? '';\n};\n\nexport const hasMsoValidityIssues = (credential: CredentialDetail): boolean => {\n const mdocMsoValidityIssue = Boolean(\n credential.mdocMsoValidity?.nextUpdate && new Date(credential.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\nconst credentialDetailFromCredential = (\n credential: CredentialDetail,\n claims: Claim[] = [],\n config: CoreConfig,\n testID: string,\n labels: CardHeaderLabels,\n language: string | undefined,\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 switch (credential.state) {\n case CredentialState.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 CredentialState.REVOKED:\n return {\n credentialDetailPrimary: labels.revoked,\n credentialDetailErrorColor: true,\n credentialDetailTestID: concatTestID(testID, 'revoked'),\n statusIcon: CredentialErrorIcon,\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'), language);\n }\n\n const secondary = findClaimByPath(layoutProperties?.secondaryAttribute, claims);\n\n if (secondary) {\n credentialDetailSecondary = formatCredentialDetail(secondary, config, concatTestID(testID, 'secondary'), language);\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: CoreConfig,\n testID: string,\n labels: CardHeaderLabels,\n language: string | undefined,\n): Omit<CredentialHeaderProps, 'style'> => {\n const {\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailErrorColor,\n credentialDetailTestID,\n statusIcon,\n } = credentialDetailFromCredential(credential, claims, config, testID, labels, language);\n const { layoutProperties } = credential.schema;\n const defaultLanguage = config.defaultLanguage;\n\n return {\n color: layoutProperties?.logo?.backgroundColor,\n credentialDetailErrorColor,\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID,\n credentialName:\n getTranslatedLabel(credential.schema.translations?.name, language, defaultLanguage) ?? 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: CoreConfig,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: CardLabels,\n language: string | undefined,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n const { layoutProperties } = credential.schema;\n const defaultLanguage = config.defaultLanguage;\n\n if (hasMsoValidityIssues(credential)) {\n notice = {\n text: labels.validityIssuesNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n };\n } else if (!notice) {\n let description = getTranslatedLabel(credential.schema.translations?.description, language, defaultLanguage);\n if (description) {\n notice = {\n text: description,\n noticeIcon: CredentialNoticeInfoIcon,\n };\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, language),\n testID,\n notice,\n };\n\n return result;\n};\n\nexport const detailsCardAttributeFromClaim = (\n claim: Claim,\n config: CoreConfig,\n testID: string,\n language: string | undefined,\n): CredentialAttribute => {\n const value = detailsCardAttributeValueFromClaim(claim, config, testID, language);\n const defaultLanguage = config.defaultLanguage;\n return {\n id: claim.path,\n name: getTranslatedLabel(claim.schema.translations.name, language, defaultLanguage) ?? claim.path.split('/').pop(),\n path: claim.path,\n ...value,\n };\n};\n\nconst detailsCardAttributeValueFromClaim = (\n claim: Claim,\n config: CoreConfig,\n testID: string,\n language: string | undefined,\n): CredentialAttributeValue => {\n const typeConfig = config?.datatype[claim.schema.datatype];\n\n if (claim.schema.array) {\n return {\n values: ((claim.value.value as Claim[]) || []).map((arrayValue, index) => {\n return detailsCardAttributeFromClaim(arrayValue, config, concatTestID(testID, index.toString()), language);\n }),\n };\n } else {\n switch (typeConfig?.type) {\n case DataType.Object: {\n if (claim.value.type_ !== 'NESTED') {\n return { attributes: [] };\n }\n return {\n attributes: claim.value.value.map((nestedClaim, index) =>\n detailsCardAttributeFromClaim(nestedClaim, config, concatTestID(testID, index.toString()), language),\n ),\n };\n }\n case DataType.Date: {\n if (!claim.value.value) {\n // Don't try to parse empty values (which will return \"Invalid Date\")\n return { testID: testID, value: String(claim.value.value) };\n }\n const date = claim.value.value as string;\n return {\n testID: testID,\n value: formatDateLocalized(new Date(date)) ?? date,\n };\n }\n case DataType.Picture: // fallback\n case DataType.SwiyuPicture: {\n if (typeConfig.params?.showAs === 'IMAGE') {\n return { image: { uri: claim.value.value as string }, testID: testID };\n } else {\n return { testID: testID, value: claim.value.value as string };\n }\n }\n default:\n return { testID: testID, value: String(claim.value.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: CoreConfig,\n testID: string,\n labels: CardLabels,\n language: string | undefined,\n): CredentialDetailsCardPropsWithoutWidth => {\n return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels, language);\n};\n\nexport const detailsCardFromCredentialWithClaims = (\n credential: CredentialDetail,\n claims: Claim[],\n config: CoreConfig,\n testID: string,\n labels: CardLabels,\n language: string | undefined,\n): CredentialDetailsCardPropsWithoutWidth => {\n const attributes: CredentialAttribute[] = claims.map((claim, index) =>\n detailsCardAttributeFromClaim(claim, config, concatTestID(testID, 'attribute', index.toString()), language),\n );\n\n const card = getCredentialCardPropsFromCredential(\n credential,\n claims,\n config,\n undefined,\n concatTestID(testID, 'card'),\n labels,\n language,\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<T extends CredentialSchemaListItem>(credentialSchema: T): T {\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":[]}
|
|
@@ -11,7 +11,7 @@ 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', 'roles', 'ids', 'states', 'include', 'profiles', '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', 'types', 'parentId']);
|
|
15
15
|
};
|
|
16
16
|
exports.getQueryKeyFromCredentialListQueryParams = getQueryKeyFromCredentialListQueryParams;
|
|
17
17
|
const getQueryKeyFromHistoryListQueryParams = (queryParams = {}) => {
|
|
@@ -19,7 +19,7 @@ const getQueryKeyFromHistoryListQueryParams = (queryParams = {}) => {
|
|
|
19
19
|
};
|
|
20
20
|
exports.getQueryKeyFromHistoryListQueryParams = getQueryKeyFromHistoryListQueryParams;
|
|
21
21
|
const getQueryKeyFromCredentialSchemaListQueryParams = (queryParams = {}) => {
|
|
22
|
-
return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'name', 'sort', 'sortDirection', 'exact', 'ids', 'include', 'schemaId', 'formats', 'createdDateAfter', 'createdDateBefore', 'lastModifiedAfter', 'lastModifiedBefore']);
|
|
22
|
+
return getQueryKey(queryParams, ['page', 'pageSize', 'organisationId', 'name', 'sort', 'sortDirection', 'exact', 'ids', 'include', 'schemaId', 'schemaIds', 'formats', 'usesBatchIssuance', 'isMultiformatSchema', 'createdDateAfter', 'createdDateBefore', 'lastModifiedAfter', 'lastModifiedBefore']);
|
|
23
23
|
};
|
|
24
24
|
exports.getQueryKeyFromCredentialSchemaListQueryParams = getQueryKeyFromCredentialSchemaListQueryParams;
|
|
25
25
|
const getQueryKeyFromProofSchemaListQueryParams = (queryParams = {}) => {
|