@procivis/one-react-native-components 0.3.94 → 0.3.95
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/utils/history.js +1 -41
- package/lib/commonjs/utils/history.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential-sharing-v2.js +3 -25
- package/lib/commonjs/utils/parsers/credential-sharing-v2.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential-sharing.js +3 -11
- package/lib/commonjs/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential.js +7 -21
- package/lib/commonjs/utils/parsers/credential.js.map +1 -1
- package/lib/module/utils/history.js +0 -38
- package/lib/module/utils/history.js.map +1 -1
- package/lib/module/utils/parsers/credential-sharing-v2.js +3 -25
- package/lib/module/utils/parsers/credential-sharing-v2.js.map +1 -1
- package/lib/module/utils/parsers/credential-sharing.js +3 -11
- package/lib/module/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/module/utils/parsers/credential.js +7 -21
- package/lib/module/utils/parsers/credential.js.map +1 -1
- package/lib/typescript/utils/history.d.ts +1 -3
- package/lib/typescript/utils/parsers/credential-sharing.d.ts +0 -1
- package/lib/typescript/utils/parsers/credential.d.ts +2 -23
- package/package.json +3 -3
- package/src/utils/history.ts +1 -42
- package/src/utils/parsers/credential-sharing-v2.tsx +5 -26
- package/src/utils/parsers/credential-sharing.tsx +4 -14
- package/src/utils/parsers/credential.ts +8 -28
|
@@ -3,10 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.groupEntriesByDay =
|
|
7
|
-
var _reactNativeOneCore = require("@procivis/react-native-one-core");
|
|
6
|
+
exports.groupEntriesByDay = void 0;
|
|
8
7
|
var _moment = _interopRequireDefault(require("moment"));
|
|
9
|
-
var _filtering = require("./filtering");
|
|
10
8
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
9
|
const groupEntriesByDay = entries => {
|
|
12
10
|
const groupedEntries = entries.reduce((result, entry) => {
|
|
@@ -35,42 +33,4 @@ const groupEntriesByDay = entries => {
|
|
|
35
33
|
});
|
|
36
34
|
};
|
|
37
35
|
exports.groupEntriesByDay = groupEntriesByDay;
|
|
38
|
-
const claimValueFromProofInputClaim = ({
|
|
39
|
-
schema,
|
|
40
|
-
value
|
|
41
|
-
}) => {
|
|
42
|
-
if (!value) {
|
|
43
|
-
return undefined;
|
|
44
|
-
}
|
|
45
|
-
if (Array.isArray(value)) {
|
|
46
|
-
const values = value.map(claimFromProofInputClaim).filter(_filtering.nonEmptyFilter);
|
|
47
|
-
return schema.dataType === _reactNativeOneCore.DataTypeEnum.Object ? {
|
|
48
|
-
array: schema.array,
|
|
49
|
-
dataType: _reactNativeOneCore.DataTypeEnum.Object,
|
|
50
|
-
value: values
|
|
51
|
-
} : {
|
|
52
|
-
array: true,
|
|
53
|
-
dataType: schema.dataType,
|
|
54
|
-
value: values
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
return {
|
|
58
|
-
array: false,
|
|
59
|
-
dataType: schema.dataType,
|
|
60
|
-
value
|
|
61
|
-
};
|
|
62
|
-
};
|
|
63
|
-
exports.claimValueFromProofInputClaim = claimValueFromProofInputClaim;
|
|
64
|
-
const claimFromProofInputClaim = input => {
|
|
65
|
-
const value = claimValueFromProofInputClaim(input);
|
|
66
|
-
if (!value) {
|
|
67
|
-
return undefined;
|
|
68
|
-
}
|
|
69
|
-
return {
|
|
70
|
-
...value,
|
|
71
|
-
id: input.schema.id,
|
|
72
|
-
key: input.schema.key
|
|
73
|
-
};
|
|
74
|
-
};
|
|
75
|
-
exports.claimFromProofInputClaim = claimFromProofInputClaim;
|
|
76
36
|
//# sourceMappingURL=history.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_moment","_interopRequireDefault","require","e","__esModule","default","groupEntriesByDay","entries","groupedEntries","reduce","result","entry","entryDate","moment","createdDate","matchingEntry","find","date","isSame","data","push","firstYearEntry","sort","a","b","valueOf","map","item","index","list","exports"],"sources":["history.ts"],"sourcesContent":["import { HistoryListItem } from '@procivis/react-native-one-core';\nimport moment, { Moment } from 'moment';\n\nexport interface HistoryGroupByDaySection {\n data: HistoryListItem[];\n date: Moment;\n firstYearEntry: boolean;\n}\n\nexport const groupEntriesByDay = (entries: HistoryListItem[]) => {\n const groupedEntries = entries.reduce((result: HistoryGroupByDaySection[], entry: HistoryListItem) => {\n const entryDate = moment(entry.createdDate);\n\n const matchingEntry = result.find(({ date }) => date.isSame(entryDate, 'day'));\n if (matchingEntry) {\n matchingEntry.data.push(entry);\n } else {\n result.push({ data: [entry], date: entryDate, firstYearEntry: false });\n }\n\n return result;\n }, []);\n\n return groupedEntries\n .sort(({ date: a }, { date: b }) => b.valueOf() - a.valueOf())\n .map((item, index, list) => {\n item.firstYearEntry = !index || !list[index - 1].date.isSame(item.date, 'year');\n return item;\n });\n};\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAwC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAQjC,MAAMG,iBAAiB,GAAIC,OAA0B,IAAK;EAC/D,MAAMC,cAAc,GAAGD,OAAO,CAACE,MAAM,CAAC,CAACC,MAAkC,EAAEC,KAAsB,KAAK;IACpG,MAAMC,SAAS,GAAG,IAAAC,eAAM,EAACF,KAAK,CAACG,WAAW,CAAC;IAE3C,MAAMC,aAAa,GAAGL,MAAM,CAACM,IAAI,CAAC,CAAC;MAAEC;IAAK,CAAC,KAAKA,IAAI,CAACC,MAAM,CAACN,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9E,IAAIG,aAAa,EAAE;MACjBA,aAAa,CAACI,IAAI,CAACC,IAAI,CAACT,KAAK,CAAC;IAChC,CAAC,MAAM;MACLD,MAAM,CAACU,IAAI,CAAC;QAAED,IAAI,EAAE,CAACR,KAAK,CAAC;QAAEM,IAAI,EAAEL,SAAS;QAAES,cAAc,EAAE;MAAM,CAAC,CAAC;IACxE;IAEA,OAAOX,MAAM;EACf,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOF,cAAc,CAClBc,IAAI,CAAC,CAAC;IAAEL,IAAI,EAAEM;EAAE,CAAC,EAAE;IAAEN,IAAI,EAAEO;EAAE,CAAC,KAAKA,CAAC,CAACC,OAAO,CAAC,CAAC,GAAGF,CAAC,CAACE,OAAO,CAAC,CAAC,CAAC,CAC7DC,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,EAAEC,IAAI,KAAK;IAC1BF,IAAI,CAACN,cAAc,GAAG,CAACO,KAAK,IAAI,CAACC,IAAI,CAACD,KAAK,GAAG,CAAC,CAAC,CAACX,IAAI,CAACC,MAAM,CAACS,IAAI,CAACV,IAAI,EAAE,MAAM,CAAC;IAC/E,OAAOU,IAAI;EACb,CAAC,CAAC;AACN,CAAC;AAACG,OAAA,CAAAxB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.shareCredentialCardFromV2PresentationCredential = exports.shareCredentialCardAttributeFromV2Claim = exports.selectCredentialCardFromV2Credential = exports.missingCredentialCardFromFailureHint = exports.getV2CredentialClaimAllSubpaths = exports.getV2CredentialAvailablePaths = void 0;
|
|
7
|
-
var _reactNativeOneCore = require("@procivis/react-native-one-core");
|
|
8
7
|
var _react = _interopRequireDefault(require("react"));
|
|
9
8
|
var _uiComponents = require("../../ui-components");
|
|
10
9
|
var _testID = require("../testID");
|
|
@@ -18,31 +17,10 @@ const v2ClaimValueToClaimValue = value => {
|
|
|
18
17
|
return value.map(c => v2PresentationClaimToClaim(c));
|
|
19
18
|
};
|
|
20
19
|
const v2PresentationClaimToClaim = claim => {
|
|
21
|
-
if (Array.isArray(claim.value)) {
|
|
22
|
-
if (claim.schema.array) {
|
|
23
|
-
return {
|
|
24
|
-
array: claim.schema.array,
|
|
25
|
-
dataType: claim.schema.datatype,
|
|
26
|
-
id: claim.path,
|
|
27
|
-
key: claim.path,
|
|
28
|
-
value: v2ClaimValueToClaimValue(claim.value)
|
|
29
|
-
};
|
|
30
|
-
} else {
|
|
31
|
-
return {
|
|
32
|
-
array: claim.schema.array,
|
|
33
|
-
dataType: _reactNativeOneCore.DataTypeEnum.Object,
|
|
34
|
-
id: claim.path,
|
|
35
|
-
key: claim.path,
|
|
36
|
-
value: v2ClaimValueToClaimValue(claim.value)
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
20
|
return {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
key: claim.path,
|
|
45
|
-
value: claim.value
|
|
21
|
+
schema: claim.schema,
|
|
22
|
+
path: claim.path,
|
|
23
|
+
value: v2ClaimValueToClaimValue(claim.value)
|
|
46
24
|
};
|
|
47
25
|
};
|
|
48
26
|
const getAttributeSelectorStatus = (claim, selected, force) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeOneCore","require","_react","_interopRequireDefault","_uiComponents","_testID","_","_credentialSharing","e","__esModule","default","v2ClaimValueToClaimValue","value","Array","isArray","map","c","v2PresentationClaimToClaim","claim","schema","array","dataType","datatype","id","path","key","DataTypeEnum","Object","getAttributeSelectorStatus","selected","force","required","SelectorStatus","Required","userSelection","SelectedCheckmark","Empty","shareCredentialCardAttributeFromV2Claim","selection","parentShared","parentUserSelected","config","testID","nested","listValue","attributeShared","Boolean","some","startsWith","userSelected","includes","status","undefined","attribute","detailsCardAttributeFromClaim","disabledStatus","Disabled","Rejected","disabled","credentialAttribute","rightAccessory","createElement","Selector","attributes","image","values","v","valueErrorColor","exports","missingCredentialCardFromFailureHint","failureHint","notice","labels","_failureHint$credenti","_failureHint$credenti2","cardImage","color","header","credentialDetailErrorColor","credentialDetailPrimary","missingCredential","credentialDetailTestID","concatTestID","credentialName","credentialSchema","name","statusIcon","CredentialWarningIcon","shareCredentialCardFromV2PresentationCredential","credential","expanded","multipleCredentialsAvailable","selectedFields","_credential$issuer","_credential$claims$ma","selectiveDisclosureSupported","supportsSelectiveDisclosure","issuer","noticeIcon","CredentialNoticeWarningIcon","text","selectiveDisclosureNotice","cardTestId","card","validityCheckedCardFromCredential","claims","selectCredentialCardFromV2Credential","multiple","_credential$issuer2","_credential$claims$ma2","selectedStatus","SelectedRadio","cardProps","getCredentialCardPropsFromCredential","accessory","getV2CredentialClaimAllSubpaths","flatMap","getV2CredentialAvailablePaths"],"sources":["credential-sharing-v2.tsx"],"sourcesContent":["import {\n Claim,\n Config,\n DataTypeEnum,\n FailureHint,\n PresentationDefinitionV2ClaimValue,\n PresentationDefinitionV2CredentialClaim,\n PresentationDefinitionV2CredentialDetail,\n} from '@procivis/react-native-one-core';\nimport React from 'react';\n\nimport {\n CredentialAttribute,\n CredentialCardNotice,\n CredentialCardProps,\n CredentialNoticeWarningIcon,\n CredentialWarningIcon,\n Selector,\n SelectorStatus,\n} from '../../ui-components';\nimport { concatTestID } from '../testID';\nimport {\n CredentialDetailsCardPropsWithoutWidth,\n detailsCardAttributeFromClaim,\n getCredentialCardPropsFromCredential,\n supportsSelectiveDisclosure,\n} from '.';\nimport { ShareCredentialCardLabels, validityCheckedCardFromCredential } from './credential-sharing';\n\nconst v2ClaimValueToClaimValue = (value: PresentationDefinitionV2ClaimValue): string | number | boolean | Claim[] => {\n if (!Array.isArray(value)) {\n return value;\n }\n return value.map((c) => v2PresentationClaimToClaim(c));\n};\n\nconst v2PresentationClaimToClaim = (claim: PresentationDefinitionV2CredentialClaim): Claim => {\n if (Array.isArray(claim.value)) {\n if (claim.schema.array) {\n return {\n array: claim.schema.array,\n dataType: claim.schema.datatype,\n id: claim.path,\n key: claim.path,\n value: v2ClaimValueToClaimValue(claim.value) as Claim[],\n };\n } else {\n return {\n array: claim.schema.array,\n dataType: DataTypeEnum.Object,\n id: claim.path,\n key: claim.path,\n value: v2ClaimValueToClaimValue(claim.value) as Claim[],\n };\n }\n }\n return {\n array: false,\n dataType: claim.schema.datatype,\n id: claim.path,\n key: claim.path,\n value: claim.value,\n };\n};\n\nconst getAttributeSelectorStatus = (\n claim: PresentationDefinitionV2CredentialClaim,\n selected: boolean,\n force: boolean,\n): SelectorStatus | undefined => {\n if (claim.required && selected) {\n return SelectorStatus.Required;\n }\n if (force && claim.value) {\n return SelectorStatus.Required;\n }\n if (claim.userSelection) {\n if (selected) {\n return SelectorStatus.SelectedCheckmark;\n } else {\n return SelectorStatus.Empty;\n }\n }\n};\n\nexport const shareCredentialCardAttributeFromV2Claim = (\n claim: PresentationDefinitionV2CredentialClaim,\n selection: string[] | undefined,\n parentShared: boolean,\n parentUserSelected: boolean,\n config: Config,\n testID: string,\n nested?: boolean,\n listValue?: boolean,\n): CredentialAttribute => {\n const attributeShared =\n Boolean(selection?.some((path) => path.startsWith(claim.path))) || (parentShared && claim.required);\n const userSelected = parentUserSelected || Boolean(selection?.includes(claim.path));\n const selected = !claim.required && attributeShared;\n const status = selection\n ? getAttributeSelectorStatus(claim, attributeShared, parentUserSelected || (attributeShared && !userSelected))\n : undefined;\n const attribute = detailsCardAttributeFromClaim(v2PresentationClaimToClaim(claim), config, testID);\n const disabledStatus = [SelectorStatus.Disabled, SelectorStatus.Rejected, SelectorStatus.Required];\n const disabled = attribute.disabled || !status || disabledStatus.includes(status);\n const credentialAttribute: CredentialAttribute = {\n ...attribute,\n disabled,\n id: claim.path,\n listValue,\n nested,\n path: claim.path,\n rightAccessory: status && <Selector status={status} />,\n selected,\n testID,\n };\n if (Array.isArray(claim.value)) {\n if (claim.schema.array) {\n return {\n ...credentialAttribute,\n attributes: undefined,\n image: undefined,\n value: undefined,\n values: claim.value.map((v) =>\n shareCredentialCardAttributeFromV2Claim(\n v,\n selection,\n attributeShared,\n userSelected,\n config,\n testID,\n true,\n false,\n ),\n ),\n };\n } else if (claim.schema.datatype === 'OBJECT') {\n return {\n ...credentialAttribute,\n attributes: claim.value.map((v) =>\n shareCredentialCardAttributeFromV2Claim(v, selection, attributeShared, userSelected, config, testID, true),\n ),\n image: undefined,\n value: undefined,\n valueErrorColor: undefined,\n values: undefined,\n };\n }\n }\n return credentialAttribute;\n};\n\nexport const missingCredentialCardFromFailureHint = (\n failureHint: FailureHint['failureHint'] | undefined,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n return {\n cardImage: undefined,\n color: undefined,\n header: {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.missingCredential,\n credentialDetailTestID: concatTestID(testID, 'header.missing'),\n credentialName: failureHint?.credentialSchema?.name ?? '',\n statusIcon: CredentialWarningIcon,\n },\n testID,\n ...notice,\n };\n};\n\nexport const shareCredentialCardFromV2PresentationCredential = (\n credential: PresentationDefinitionV2CredentialDetail | undefined,\n failureHint: FailureHint['failureHint'] | undefined,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n selectedFields: string[] | undefined,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n noticeIcon: CredentialNoticeWarningIcon,\n text: labels.selectiveDisclosureNotice,\n }\n : undefined;\n const cardTestId = concatTestID(testID, 'card');\n const card = credential\n ? validityCheckedCardFromCredential(\n {\n ...credential,\n claims: [],\n },\n false,\n expanded,\n multipleCredentialsAvailable,\n config,\n notice,\n cardTestId,\n labels,\n )\n : missingCredentialCardFromFailureHint(failureHint, notice, cardTestId, labels);\n\n return {\n attributes:\n credential?.claims.map((v) =>\n shareCredentialCardAttributeFromV2Claim(v, selectedFields ?? [], true, false, config, testID),\n ) ?? [],\n card,\n };\n};\n\nexport const selectCredentialCardFromV2Credential = (\n credential: PresentationDefinitionV2CredentialDetail,\n selected: boolean,\n multiple: boolean,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const selectedStatus = multiple ? SelectorStatus.SelectedCheckmark : SelectorStatus.SelectedRadio;\n const rightAccessory = <Selector status={selected ? selectedStatus : SelectorStatus.Empty} />;\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n noticeIcon: CredentialNoticeWarningIcon,\n text: labels.selectiveDisclosureNotice,\n }\n : undefined;\n const { header, ...cardProps } = getCredentialCardPropsFromCredential(\n {\n ...credential,\n claims: credential.claims.map(v2PresentationClaimToClaim),\n },\n credential.claims.map(v2PresentationClaimToClaim),\n config,\n notice,\n testID,\n labels,\n );\n const card = {\n header: {\n ...header,\n accessory: rightAccessory,\n },\n ...cardProps,\n };\n return {\n attributes:\n credential?.claims.map((v) =>\n shareCredentialCardAttributeFromV2Claim(v, undefined, false, false, config, testID),\n ) ?? [],\n card,\n };\n};\n\nexport const getV2CredentialClaimAllSubpaths = (claim: PresentationDefinitionV2CredentialClaim): string[] => {\n if (!Array.isArray(claim.value)) {\n return [claim.path];\n }\n return [claim.path, ...claim.value.flatMap(getV2CredentialClaimAllSubpaths)];\n};\n\nexport const getV2CredentialAvailablePaths = (credential: PresentationDefinitionV2CredentialDetail): string[] => {\n return credential.claims.flatMap(getV2CredentialClaimAllSubpaths);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uiComponents","_testID","_","_credentialSharing","e","__esModule","default","v2ClaimValueToClaimValue","value","Array","isArray","map","c","v2PresentationClaimToClaim","claim","schema","path","getAttributeSelectorStatus","selected","force","required","SelectorStatus","Required","userSelection","SelectedCheckmark","Empty","shareCredentialCardAttributeFromV2Claim","selection","parentShared","parentUserSelected","config","testID","nested","listValue","attributeShared","Boolean","some","startsWith","userSelected","includes","status","undefined","attribute","detailsCardAttributeFromClaim","disabledStatus","Disabled","Rejected","disabled","credentialAttribute","id","rightAccessory","createElement","Selector","array","attributes","image","values","v","datatype","valueErrorColor","exports","missingCredentialCardFromFailureHint","failureHint","notice","labels","_failureHint$credenti","_failureHint$credenti2","cardImage","color","header","credentialDetailErrorColor","credentialDetailPrimary","missingCredential","credentialDetailTestID","concatTestID","credentialName","credentialSchema","name","statusIcon","CredentialWarningIcon","shareCredentialCardFromV2PresentationCredential","credential","expanded","multipleCredentialsAvailable","selectedFields","_credential$issuer","_credential$claims$ma","selectiveDisclosureSupported","supportsSelectiveDisclosure","issuer","noticeIcon","CredentialNoticeWarningIcon","text","selectiveDisclosureNotice","cardTestId","card","validityCheckedCardFromCredential","claims","selectCredentialCardFromV2Credential","multiple","_credential$issuer2","_credential$claims$ma2","selectedStatus","SelectedRadio","cardProps","getCredentialCardPropsFromCredential","accessory","getV2CredentialClaimAllSubpaths","flatMap","getV2CredentialAvailablePaths"],"sources":["credential-sharing-v2.tsx"],"sourcesContent":["import {\n Claim,\n ClaimValue,\n Config,\n FailureHint,\n PresentationDefinitionV2ClaimValue,\n PresentationDefinitionV2CredentialClaim,\n PresentationDefinitionV2CredentialDetail,\n} from '@procivis/react-native-one-core';\nimport React from 'react';\n\nimport {\n CredentialAttribute,\n CredentialCardNotice,\n CredentialCardProps,\n CredentialNoticeWarningIcon,\n CredentialWarningIcon,\n Selector,\n SelectorStatus,\n} from '../../ui-components';\nimport { concatTestID } from '../testID';\nimport {\n CredentialDetailsCardPropsWithoutWidth,\n detailsCardAttributeFromClaim,\n getCredentialCardPropsFromCredential,\n supportsSelectiveDisclosure,\n} from '.';\nimport { ShareCredentialCardLabels, validityCheckedCardFromCredential } from './credential-sharing';\n\nconst v2ClaimValueToClaimValue = (value: PresentationDefinitionV2ClaimValue): ClaimValue => {\n if (!Array.isArray(value)) {\n return value;\n }\n return value.map((c) => v2PresentationClaimToClaim(c));\n};\n\nconst v2PresentationClaimToClaim = (claim: PresentationDefinitionV2CredentialClaim): Claim => {\n return {\n schema: claim.schema,\n path: claim.path,\n value: v2ClaimValueToClaimValue(claim.value),\n };\n};\n\nconst getAttributeSelectorStatus = (\n claim: PresentationDefinitionV2CredentialClaim,\n selected: boolean,\n force: boolean,\n): SelectorStatus | undefined => {\n if (claim.required && selected) {\n return SelectorStatus.Required;\n }\n if (force && claim.value) {\n return SelectorStatus.Required;\n }\n if (claim.userSelection) {\n if (selected) {\n return SelectorStatus.SelectedCheckmark;\n } else {\n return SelectorStatus.Empty;\n }\n }\n};\n\nexport const shareCredentialCardAttributeFromV2Claim = (\n claim: PresentationDefinitionV2CredentialClaim,\n selection: string[] | undefined,\n parentShared: boolean,\n parentUserSelected: boolean,\n config: Config,\n testID: string,\n nested?: boolean,\n listValue?: boolean,\n): CredentialAttribute => {\n const attributeShared =\n Boolean(selection?.some((path) => path.startsWith(claim.path))) || (parentShared && claim.required);\n const userSelected = parentUserSelected || Boolean(selection?.includes(claim.path));\n const selected = !claim.required && attributeShared;\n const status = selection\n ? getAttributeSelectorStatus(claim, attributeShared, parentUserSelected || (attributeShared && !userSelected))\n : undefined;\n const attribute = detailsCardAttributeFromClaim(v2PresentationClaimToClaim(claim), config, testID);\n const disabledStatus = [SelectorStatus.Disabled, SelectorStatus.Rejected, SelectorStatus.Required];\n const disabled = attribute.disabled || !status || disabledStatus.includes(status);\n const credentialAttribute: CredentialAttribute = {\n ...attribute,\n disabled,\n id: claim.path,\n listValue,\n nested,\n path: claim.path,\n rightAccessory: status && <Selector status={status} />,\n selected,\n testID,\n };\n if (Array.isArray(claim.value)) {\n if (claim.schema.array) {\n return {\n ...credentialAttribute,\n attributes: undefined,\n image: undefined,\n value: undefined,\n values: claim.value.map((v) =>\n shareCredentialCardAttributeFromV2Claim(\n v,\n selection,\n attributeShared,\n userSelected,\n config,\n testID,\n true,\n false,\n ),\n ),\n };\n } else if (claim.schema.datatype === 'OBJECT') {\n return {\n ...credentialAttribute,\n attributes: claim.value.map((v) =>\n shareCredentialCardAttributeFromV2Claim(v, selection, attributeShared, userSelected, config, testID, true),\n ),\n image: undefined,\n value: undefined,\n valueErrorColor: undefined,\n values: undefined,\n };\n }\n }\n return credentialAttribute;\n};\n\nexport const missingCredentialCardFromFailureHint = (\n failureHint: FailureHint['failureHint'] | undefined,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n return {\n cardImage: undefined,\n color: undefined,\n header: {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.missingCredential,\n credentialDetailTestID: concatTestID(testID, 'header.missing'),\n credentialName: failureHint?.credentialSchema?.name ?? '',\n statusIcon: CredentialWarningIcon,\n },\n testID,\n ...notice,\n };\n};\n\nexport const shareCredentialCardFromV2PresentationCredential = (\n credential: PresentationDefinitionV2CredentialDetail | undefined,\n failureHint: FailureHint['failureHint'] | undefined,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n selectedFields: string[] | undefined,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n noticeIcon: CredentialNoticeWarningIcon,\n text: labels.selectiveDisclosureNotice,\n }\n : undefined;\n const cardTestId = concatTestID(testID, 'card');\n const card = credential\n ? validityCheckedCardFromCredential(\n {\n ...credential,\n claims: [],\n },\n false,\n expanded,\n multipleCredentialsAvailable,\n config,\n notice,\n cardTestId,\n labels,\n )\n : missingCredentialCardFromFailureHint(failureHint, notice, cardTestId, labels);\n\n return {\n attributes:\n credential?.claims.map((v) =>\n shareCredentialCardAttributeFromV2Claim(v, selectedFields ?? [], true, false, config, testID),\n ) ?? [],\n card,\n };\n};\n\nexport const selectCredentialCardFromV2Credential = (\n credential: PresentationDefinitionV2CredentialDetail,\n selected: boolean,\n multiple: boolean,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const selectedStatus = multiple ? SelectorStatus.SelectedCheckmark : SelectorStatus.SelectedRadio;\n const rightAccessory = <Selector status={selected ? selectedStatus : SelectorStatus.Empty} />;\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n noticeIcon: CredentialNoticeWarningIcon,\n text: labels.selectiveDisclosureNotice,\n }\n : undefined;\n const { header, ...cardProps } = getCredentialCardPropsFromCredential(\n {\n ...credential,\n claims: credential.claims.map(v2PresentationClaimToClaim),\n },\n credential.claims.map(v2PresentationClaimToClaim),\n config,\n notice,\n testID,\n labels,\n );\n const card = {\n header: {\n ...header,\n accessory: rightAccessory,\n },\n ...cardProps,\n };\n return {\n attributes:\n credential?.claims.map((v) =>\n shareCredentialCardAttributeFromV2Claim(v, undefined, false, false, config, testID),\n ) ?? [],\n card,\n };\n};\n\nexport const getV2CredentialClaimAllSubpaths = (claim: PresentationDefinitionV2CredentialClaim): string[] => {\n if (!Array.isArray(claim.value)) {\n return [claim.path];\n }\n return [claim.path, ...claim.value.flatMap(getV2CredentialClaimAllSubpaths)];\n};\n\nexport const getV2CredentialAvailablePaths = (credential: PresentationDefinitionV2CredentialDetail): string[] => {\n return credential.claims.flatMap(getV2CredentialClaimAllSubpaths);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -70,20 +70,12 @@ const getAttributeSelectorStatus = (field, validityState, credential, claim, sel
|
|
|
70
70
|
};
|
|
71
71
|
// Returns a spread list of all claims with their full JSON path as key, including all intermediate objects
|
|
72
72
|
const spreadClaims = claims => {
|
|
73
|
-
|
|
74
|
-
var _c$path;
|
|
75
|
-
return {
|
|
76
|
-
...c,
|
|
77
|
-
path: (_c$path = c.path) !== null && _c$path !== void 0 ? _c$path : c.key
|
|
78
|
-
};
|
|
79
|
-
});
|
|
80
|
-
return claimsWithPath.reduce((acc, claim) => {
|
|
73
|
+
return claims.reduce((acc, claim) => {
|
|
81
74
|
const result = [claim];
|
|
82
75
|
if (Array.isArray(claim.value)) {
|
|
83
|
-
const nestedClaimsWithPath = claim.value.map(
|
|
76
|
+
const nestedClaimsWithPath = claim.value.map(c => ({
|
|
84
77
|
...c,
|
|
85
|
-
|
|
86
|
-
isArrayElement: claim.array
|
|
78
|
+
isArrayElement: claim.schema.array && claim.path.split('/').pop() !== claim.schema.key
|
|
87
79
|
}));
|
|
88
80
|
result.push(...spreadClaims(nestedClaimsWithPath));
|
|
89
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_credential","_icons","_testID","_credential2","e","__esModule","default","validityCheckedCardFromCredential","credential","invalidLVVC","expanded","multipleCredentialsAvailable","config","notice","testID","labels","credentialHeaderDetail","credentialDetailErrorColor","credentialDetailPrimary","revoked","credentialDetailTestID","concatTestID","multipleCredentials","statusIcon","CredentialWarningIcon","card","getCredentialCardPropsFromCredential","claims","header","exports","missingCredentialCardFromRequest","request","_request$name","cardImage","undefined","color","missingCredential","credentialName","name","id","getAttributeSelectorStatus","field","validityState","claim","selected","ValidityState","Valid","SelectorStatus","Rejected","required","Required","Disabled","SelectedCheckmark","Empty","spreadClaims","claimsWithPath","map","c","_c$path","path","key","reduce","acc","result","Array","isArray","value","nestedClaimsWithPath","i","array","isArrayElement","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","split","pop","missingAttribute","valueErrorColor","setStatusForNestedObjectOrArrayFields","attribute","disabled","accessory","createElement","Selector","isObject","attributes","length","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 Config,\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 invalidLVVC: boolean,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n config: Config,\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 (invalidLVVC) {\n credentialHeaderDetail = {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.revoked,\n credentialDetailTestID: concatTestID(testID, 'header.invalid'),\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(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 ClaimWithOptionalPath = Claim & {\n path?: string;\n};\n\ntype FlatClaim = Claim & {\n path: string;\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: ClaimWithOptionalPath[]): FlatClaim[] => {\n const claimsWithPath: FlatClaim[] = claims.map((c) => ({\n ...c,\n path: c.path ?? c.key,\n }));\n return claimsWithPath.reduce((acc, claim) => {\n const result = [claim];\n if (Array.isArray(claim.value)) {\n const nestedClaimsWithPath: FlatClaim[] = claim.value.map((c, i) => ({\n ...c,\n path: claim.array ? `${c.key}/${i}` : c.key,\n isArrayElement: claim.array,\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: Config,\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 invalidLVVC: boolean,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n request: PresentationDefinitionRequestedCredential,\n selectedFields: string[] | undefined,\n config: Config,\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 invalidLVVC,\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: Config,\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: Config,\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","invalidLVVC","expanded","multipleCredentialsAvailable","config","notice","testID","labels","credentialHeaderDetail","credentialDetailErrorColor","credentialDetailPrimary","revoked","credentialDetailTestID","concatTestID","multipleCredentials","statusIcon","CredentialWarningIcon","card","getCredentialCardPropsFromCredential","claims","header","exports","missingCredentialCardFromRequest","request","_request$name","cardImage","undefined","color","missingCredential","credentialName","name","id","getAttributeSelectorStatus","field","validityState","claim","selected","ValidityState","Valid","SelectorStatus","Rejected","required","Required","Disabled","SelectedCheckmark","Empty","spreadClaims","reduce","acc","result","Array","isArray","value","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","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 Config,\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 invalidLVVC: boolean,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n config: Config,\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 (invalidLVVC) {\n credentialHeaderDetail = {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.revoked,\n credentialDetailTestID: concatTestID(testID, 'header.invalid'),\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(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 (Array.isArray(claim.value)) {\n const nestedClaimsWithPath: FlatClaim[] = claim.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: Config,\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 invalidLVVC: boolean,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n request: PresentationDefinitionRequestedCredential,\n selectedFields: string[] | undefined,\n config: Config,\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 invalidLVVC,\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: Config,\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: Config,\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":[]}
|
|
@@ -33,18 +33,7 @@ const supportsSelectiveDisclosure = (credential, config) => {
|
|
|
33
33
|
return formatConfig ? Boolean((_formatConfig$capabil = formatConfig.capabilities) === null || _formatConfig$capabil === void 0 || (_formatConfig$capabil = _formatConfig$capabil.features) === null || _formatConfig$capabil === void 0 ? void 0 : _formatConfig$capabil.includes(_reactNativeOneCore.FormatFeatureEnum.SelectiveDisclosure)) : undefined;
|
|
34
34
|
};
|
|
35
35
|
exports.supportsSelectiveDisclosure = supportsSelectiveDisclosure;
|
|
36
|
-
const
|
|
37
|
-
if (!(claims !== null && claims !== void 0 && claims.length)) {
|
|
38
|
-
return undefined;
|
|
39
|
-
}
|
|
40
|
-
const [first, second, ...rest] = path;
|
|
41
|
-
const claim = claims.find(c => c.key === first);
|
|
42
|
-
if (claim === undefined || second === undefined || claim.dataType !== _reactNativeOneCore.DataTypeEnum.Object) {
|
|
43
|
-
return claim;
|
|
44
|
-
}
|
|
45
|
-
return findClaimByPathParts([`${first}/${second}`, ...rest], claim.value);
|
|
46
|
-
};
|
|
47
|
-
const findClaimByPath = (path, claims) => path ? findClaimByPathParts(path.split('/'), claims) : undefined;
|
|
36
|
+
const findClaimByPath = (path, claims) => path ? claims === null || claims === void 0 ? void 0 : claims.find(claim => claim.path === path) : undefined;
|
|
48
37
|
exports.findClaimByPath = findClaimByPath;
|
|
49
38
|
const formatCredentialDetail = (claim, config, testID) => {
|
|
50
39
|
var _attributeValue$value;
|
|
@@ -159,22 +148,19 @@ exports.getCredentialCardPropsFromCredential = getCredentialCardPropsFromCredent
|
|
|
159
148
|
const detailsCardAttributeFromClaim = (claim, config, testID) => {
|
|
160
149
|
const value = detailsCardAttributeValueFromClaim(claim, config, testID);
|
|
161
150
|
return {
|
|
162
|
-
id: claim.
|
|
163
|
-
name: claim.
|
|
164
|
-
path: claim.
|
|
151
|
+
id: claim.path,
|
|
152
|
+
name: claim.path.split('/').pop(),
|
|
153
|
+
path: claim.path,
|
|
165
154
|
...value
|
|
166
155
|
};
|
|
167
156
|
};
|
|
168
157
|
exports.detailsCardAttributeFromClaim = detailsCardAttributeFromClaim;
|
|
169
158
|
const detailsCardAttributeValueFromClaim = (claim, config, testID) => {
|
|
170
|
-
const typeConfig = config === null || config === void 0 ? void 0 : config.datatype[claim.
|
|
171
|
-
if (claim.array) {
|
|
159
|
+
const typeConfig = config === null || config === void 0 ? void 0 : config.datatype[claim.schema.datatype];
|
|
160
|
+
if (claim.schema.array) {
|
|
172
161
|
return {
|
|
173
162
|
values: (claim.value || []).map((arrayValue, index) => {
|
|
174
|
-
return detailsCardAttributeFromClaim(
|
|
175
|
-
...arrayValue,
|
|
176
|
-
id: `${arrayValue.id}/${index}`
|
|
177
|
-
}, config, (0, _testID.concatTestID)(testID, index.toString()));
|
|
163
|
+
return detailsCardAttributeFromClaim(arrayValue, config, (0, _testID.concatTestID)(testID, index.toString()));
|
|
178
164
|
})
|
|
179
165
|
};
|
|
180
166
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeOneCore","require","_icons","_date","_testID","_credentialImages","ValidityState","exports","getValidityState","credential","state","CredentialStateEnum","REVOKED","Revoked","SUSPENDED","Suspended","Valid","supportsSelectiveDisclosure","config","_formatConfig$capabil","formatConfig","format","schema","Boolean","capabilities","features","includes","FormatFeatureEnum","SelectiveDisclosure","undefined","findClaimByPathParts","path","claims","length","first","second","rest","claim","find","c","key","dataType","DataTypeEnum","Object","value","findClaimByPath","split","formatCredentialDetail","testID","_attributeValue$value","attributeValue","detailsCardAttributeValueFromClaim","hasMsoValidityIssues","mdocMsoValidity","mdocMsoValidityIssue","nextUpdate","Date","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","pop","typeConfig","datatype","array","values","map","arrayValue","index","toString","type","Array","isArray","attributes","nestedClaim","_formatDateLocalized","String","date","formatDateLocalized","Picture","SwiyuPicture","_typeConfig$params","params","showAs","detailsCardFromCredential","detailsCardFromCredentialWithClaims","card","nestAttributes","attribute","attributePath","push","parent","a","insertAttributeInParent","join","nestAttributeInDummyParent","pathParts","listValue","disabled","_parent$attributes","nextParent","_parent$values","_parent$attributes2","parseBase64Image","getCredentialSchemaWithoutImages","credentialSchema","_credentialSchema$lay","_credentialSchema$lay2","_credentialSchema$lay3","_credentialSchema$lay4"],"sources":["credential.ts"],"sourcesContent":["import {\n Claim,\n Config,\n CredentialDetail,\n CredentialListItem,\n CredentialSchema,\n CredentialStateEnum,\n DataTypeEnum,\n FormatFeatureEnum,\n} 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 === CredentialStateEnum.REVOKED) {\n return ValidityState.Revoked;\n }\n if (credential?.state === CredentialStateEnum.SUSPENDED) {\n return ValidityState.Suspended;\n }\n return ValidityState.Valid;\n};\n\nexport const supportsSelectiveDisclosure = (credential: CredentialListItem | undefined, config: Config | undefined) => {\n const formatConfig = credential && config?.format[credential.schema.format];\n return formatConfig\n ? Boolean(formatConfig.capabilities?.features?.includes(FormatFeatureEnum.SelectiveDisclosure))\n : undefined;\n};\n\nconst findClaimByPathParts = (path: string[], claims?: Claim[]): Claim | undefined => {\n if (!claims?.length) {\n return undefined;\n }\n const [first, second, ...rest] = path;\n const claim = claims.find((c) => c.key === first);\n if (claim === undefined || second === undefined || claim.dataType !== DataTypeEnum.Object) {\n return claim;\n }\n\n return findClaimByPathParts([`${first}/${second}`, ...rest], claim.value as Claim[]);\n};\n\nexport const findClaimByPath = (path: string | undefined, claims: Claim[] | undefined) =>\n path ? findClaimByPathParts(path.split('/'), claims) : undefined;\n\nconst formatCredentialDetail = (claim: Claim, config: Config, testID: string): string => {\n const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID);\n return attributeValue.value ?? '';\n};\n\nexport const hasMsoValidityIssues = (credential: CredentialDetail): boolean => {\n const mdocMsoValidity: { nextUpdate: string } | undefined =\n 'mdocMsoValidity' in credential ? (credential.mdocMsoValidity as { nextUpdate: string }) : undefined;\n\n const mdocMsoValidityIssue = Boolean(\n mdocMsoValidity?.nextUpdate && new Date(mdocMsoValidity.nextUpdate) < new Date(),\n );\n\n return mdocMsoValidityIssue;\n};\n\nexport type CardHeaderLabels = {\n validityIssues: string;\n revoked: string;\n suspended: string;\n suspendedUntil: (date: string) => string;\n};\n\nconst credentialDetailFromCredential = (\n credential: CredentialDetail,\n claims: Claim[] = [],\n config: Config,\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 CredentialStateEnum.SUSPENDED:\n return {\n credentialDetailPrimary: credential.suspendEndDate\n ? labels.suspendedUntil(formatDateTimeLocalized(new Date(credential.suspendEndDate))!)\n : labels.suspended,\n credentialDetailTestID: concatTestID(testID, 'suspended'),\n statusIcon: CredentialWarningIcon,\n };\n case CredentialStateEnum.REVOKED:\n return {\n credentialDetailPrimary: labels.revoked,\n credentialDetailErrorColor: true,\n credentialDetailTestID: concatTestID(testID, 'revoked'),\n statusIcon: CredentialErrorIcon,\n };\n }\n\n if (hasMsoValidityIssues(credential)) {\n return {\n credentialDetailPrimary: labels.validityIssues,\n credentialDetailTestID: concatTestID(testID, 'validity-issue'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n let credentialDetailPrimary =\n formatDateTimeLocalized(new Date(credential.issuanceDate ?? credential.createdDate)) ?? '';\n let credentialDetailSecondary: string | undefined;\n\n const primary = findClaimByPath(layoutProperties?.primaryAttribute, claims);\n\n if (primary) {\n credentialDetailPrimary = formatCredentialDetail(primary, config, concatTestID(testID, 'primary'));\n }\n\n const secondary = findClaimByPath(layoutProperties?.secondaryAttribute, claims);\n\n if (secondary) {\n credentialDetailSecondary = formatCredentialDetail(secondary, config, concatTestID(testID, 'secondary'));\n }\n\n return {\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID: concatTestID(testID, 'detail'),\n };\n};\n\nexport const cardHeaderFromCredential = (\n credential: CredentialDetail,\n claims: Claim[] = [],\n config: Config,\n 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: Config,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: CardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n const { layoutProperties } = credential.schema;\n\n if (hasMsoValidityIssues(credential)) {\n notice = {\n text: labels.validityIssuesNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n };\n }\n\n const result: Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> = {\n cardCarouselImages: getCarouselImagesFromClaims(claims, layoutProperties, concatTestID(testID, 'carousel')),\n cardImage: layoutProperties?.background?.image\n ? { imageSource: { uri: layoutProperties.background.image } }\n : undefined,\n color: layoutProperties?.background?.color,\n header: cardHeaderFromCredential(credential, claims, config, concatTestID(testID, 'header'), labels),\n testID,\n notice,\n };\n\n return result;\n};\n\nexport const detailsCardAttributeFromClaim = (claim: Claim, config: Config, testID: string): CredentialAttribute => {\n const value = detailsCardAttributeValueFromClaim(claim, config, testID);\n return {\n id: claim.id,\n name: claim.key.split('/').pop(),\n path: claim.key,\n ...value,\n };\n};\n\nconst detailsCardAttributeValueFromClaim = (claim: Claim, config: Config, testID: string): CredentialAttributeValue => {\n const typeConfig = config?.datatype[claim.dataType];\n\n if (claim.array) {\n return {\n values: (claim.value || []).map((arrayValue, index) => {\n return detailsCardAttributeFromClaim(\n {\n ...arrayValue,\n id: `${arrayValue.id}/${index}`,\n },\n config,\n concatTestID(testID, index.toString()),\n );\n }),\n };\n } else {\n switch (typeConfig?.type) {\n case DataTypeEnum.Object: {\n if (!Array.isArray(claim.value)) {\n return { attributes: [] };\n }\n return {\n attributes: (claim.value as Claim[]).map((nestedClaim, index) =>\n detailsCardAttributeFromClaim(nestedClaim, config, concatTestID(testID, index.toString())),\n ),\n };\n }\n case DataTypeEnum.Date: {\n if (!claim.value) {\n // Don't try to parse empty values (which will return \"Invalid Date\")\n return { testID: testID, value: String(claim.value) };\n }\n const date = claim.value as string;\n return {\n testID: testID,\n value: formatDateLocalized(new Date(date)) ?? date,\n };\n }\n case DataTypeEnum.Picture: // fallback\n case DataTypeEnum.SwiyuPicture: {\n if (typeConfig.params?.showAs === 'IMAGE') {\n return { image: { uri: claim.value as string }, testID: testID };\n } else {\n return { testID: testID, value: claim.value as string };\n }\n }\n default:\n return { testID: testID, value: String(claim.value) };\n }\n }\n};\n\nexport type CredentialDetailsCardPropsWithoutWidth = Omit<CredentialDetailsCardProps, 'expanded' | 'card'> & {\n card: Omit<CredentialCardProps, 'width'>;\n};\n\nexport const detailsCardFromCredential = (\n credential: CredentialDetail,\n config: Config,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels);\n};\n\nexport const detailsCardFromCredentialWithClaims = (\n credential: CredentialDetail,\n claims: Claim[],\n config: Config,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const attributes: CredentialAttribute[] = claims.map((claim, index) =>\n detailsCardAttributeFromClaim(claim, config, concatTestID(testID, 'attribute', index.toString())),\n );\n\n const card = getCredentialCardPropsFromCredential(\n credential,\n claims,\n config,\n undefined,\n concatTestID(testID, 'card'),\n labels,\n );\n\n return {\n attributes,\n card,\n };\n};\n\n// Converts a flat list of attributes into a nested structure\n// modifies the names to not include slashes\nexport const nestAttributes = (attributes: CredentialAttribute[]): CredentialAttribute[] => {\n const result: CredentialAttribute[] = [];\n\n for (const attribute of attributes) {\n const attributePath = attribute.path.split('/');\n if (attributePath.length === 0) {\n result.push(attribute);\n } else {\n const [first, ...rest] = attributePath;\n const parent = result.find((a) => a.name === first);\n if (parent) {\n insertAttributeInParent({ ...attribute, path: rest.join('/') }, parent);\n } else {\n result.push(nestAttributeInDummyParent(attribute));\n }\n }\n }\n\n return result;\n};\n\n// We nest the leaf node in a (one or more) nested object(s)\n// to make sure the tree structure is correctly rendered in proof request screens.\nconst nestAttributeInDummyParent = (attribute: CredentialAttribute): CredentialAttribute => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n if (!rest.length) {\n return attribute;\n }\n\n // The dummy object is not selectable, and contains a placeholder ID\n // the user can't interact with it.\n if (attribute.listValue) {\n return {\n values: [nestAttributeInDummyParent({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: first,\n };\n } else {\n return {\n attributes: [nestAttributeInDummyParent({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: first,\n };\n }\n};\n\n// Recursively insert an attribute into an parent\n// Will create nested parents if necessary\nconst insertAttributeInParent = (attribute: CredentialAttribute, parent: CredentialAttribute) => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n\n const nextParent = parent.attributes?.find((a) => a.name === first);\n\n if (!nextParent) {\n if (attribute.listValue) {\n parent.values?.push(nestAttributeInDummyParent(attribute));\n } else {\n parent.attributes?.push(nestAttributeInDummyParent(attribute));\n }\n } else {\n insertAttributeInParent({ ...attribute, path: rest.join('/') }, nextParent);\n }\n};\n\nfunction parseBase64Image(image: string | undefined) {\n return image ? '__BASE64IMAGE__' : '';\n}\n\nexport function getCredentialSchemaWithoutImages(credentialSchema: CredentialSchema) {\n return {\n ...credentialSchema,\n layoutProperties: {\n ...credentialSchema.layoutProperties,\n background: {\n ...credentialSchema.layoutProperties?.background,\n image: parseBase64Image(credentialSchema.layoutProperties?.background?.image),\n },\n logo: {\n ...credentialSchema.layoutProperties?.logo,\n image: parseBase64Image(credentialSchema.layoutProperties?.logo?.image),\n },\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNativeOneCore","require","_icons","_date","_testID","_credentialImages","ValidityState","exports","getValidityState","credential","state","CredentialStateEnum","REVOKED","Revoked","SUSPENDED","Suspended","Valid","supportsSelectiveDisclosure","config","_formatConfig$capabil","formatConfig","format","schema","Boolean","capabilities","features","includes","FormatFeatureEnum","SelectiveDisclosure","undefined","findClaimByPath","path","claims","find","claim","formatCredentialDetail","testID","_attributeValue$value","attributeValue","detailsCardAttributeValueFromClaim","value","hasMsoValidityIssues","mdocMsoValidity","mdocMsoValidityIssue","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","DataTypeEnum","Object","Array","isArray","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 Config,\n CredentialDetail,\n CredentialListItem,\n CredentialSchema,\n CredentialStateEnum,\n DataTypeEnum,\n FormatFeatureEnum,\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 === CredentialStateEnum.REVOKED) {\n return ValidityState.Revoked;\n }\n if (credential?.state === CredentialStateEnum.SUSPENDED) {\n return ValidityState.Suspended;\n }\n return ValidityState.Valid;\n};\n\nexport const supportsSelectiveDisclosure = (credential: CredentialListItem | undefined, config: Config | undefined) => {\n const formatConfig = credential && config?.format[credential.schema.format];\n return formatConfig\n ? Boolean(formatConfig.capabilities?.features?.includes(FormatFeatureEnum.SelectiveDisclosure))\n : undefined;\n};\n\nexport const findClaimByPath = (path: string | undefined, claims: Claim[] | undefined) =>\n path ? claims?.find((claim) => claim.path === path) : undefined;\n\nconst formatCredentialDetail = (claim: Claim, config: Config, testID: string): string => {\n const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID);\n return attributeValue.value ?? '';\n};\n\nexport const hasMsoValidityIssues = (credential: CredentialDetail): boolean => {\n const mdocMsoValidity: { nextUpdate: string } | undefined =\n 'mdocMsoValidity' in credential ? (credential.mdocMsoValidity as { nextUpdate: string }) : undefined;\n\n const mdocMsoValidityIssue = Boolean(\n mdocMsoValidity?.nextUpdate && new Date(mdocMsoValidity.nextUpdate) < new Date(),\n );\n\n return mdocMsoValidityIssue;\n};\n\nexport type CardHeaderLabels = {\n validityIssues: string;\n revoked: string;\n suspended: string;\n suspendedUntil: (date: string) => string;\n};\n\nconst credentialDetailFromCredential = (\n credential: CredentialDetail,\n claims: Claim[] = [],\n config: Config,\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 CredentialStateEnum.SUSPENDED:\n return {\n credentialDetailPrimary: credential.suspendEndDate\n ? labels.suspendedUntil(formatDateTimeLocalized(new Date(credential.suspendEndDate))!)\n : labels.suspended,\n credentialDetailTestID: concatTestID(testID, 'suspended'),\n statusIcon: CredentialWarningIcon,\n };\n case CredentialStateEnum.REVOKED:\n return {\n credentialDetailPrimary: labels.revoked,\n credentialDetailErrorColor: true,\n credentialDetailTestID: concatTestID(testID, 'revoked'),\n statusIcon: CredentialErrorIcon,\n };\n }\n\n if (hasMsoValidityIssues(credential)) {\n return {\n credentialDetailPrimary: labels.validityIssues,\n credentialDetailTestID: concatTestID(testID, 'validity-issue'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n let credentialDetailPrimary =\n formatDateTimeLocalized(new Date(credential.issuanceDate ?? credential.createdDate)) ?? '';\n let credentialDetailSecondary: string | undefined;\n\n const primary = findClaimByPath(layoutProperties?.primaryAttribute, claims);\n\n if (primary) {\n credentialDetailPrimary = formatCredentialDetail(primary, config, concatTestID(testID, 'primary'));\n }\n\n const secondary = findClaimByPath(layoutProperties?.secondaryAttribute, claims);\n\n if (secondary) {\n credentialDetailSecondary = formatCredentialDetail(secondary, config, concatTestID(testID, 'secondary'));\n }\n\n return {\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID: concatTestID(testID, 'detail'),\n };\n};\n\nexport const cardHeaderFromCredential = (\n credential: CredentialDetail,\n claims: Claim[] = [],\n config: Config,\n 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: Config,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: CardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n const { layoutProperties } = credential.schema;\n\n if (hasMsoValidityIssues(credential)) {\n notice = {\n text: labels.validityIssuesNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n };\n }\n\n const result: Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> = {\n cardCarouselImages: getCarouselImagesFromClaims(claims, layoutProperties, concatTestID(testID, 'carousel')),\n cardImage: layoutProperties?.background?.image\n ? { imageSource: { uri: layoutProperties.background.image } }\n : undefined,\n color: layoutProperties?.background?.color,\n header: cardHeaderFromCredential(credential, claims, config, concatTestID(testID, 'header'), labels),\n testID,\n notice,\n };\n\n return result;\n};\n\nexport const detailsCardAttributeFromClaim = (claim: Claim, config: Config, testID: string): CredentialAttribute => {\n const value = detailsCardAttributeValueFromClaim(claim, config, testID);\n return {\n id: claim.path,\n name: claim.path.split('/').pop(),\n path: claim.path,\n ...value,\n };\n};\n\nconst detailsCardAttributeValueFromClaim = (claim: Claim, config: Config, testID: string): CredentialAttributeValue => {\n const typeConfig = config?.datatype[claim.schema.datatype];\n\n if (claim.schema.array) {\n return {\n values: ((claim.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 DataTypeEnum.Object: {\n if (!Array.isArray(claim.value)) {\n return { attributes: [] };\n }\n return {\n attributes: (claim.value as Claim[]).map((nestedClaim, index) =>\n detailsCardAttributeFromClaim(nestedClaim, config, concatTestID(testID, index.toString())),\n ),\n };\n }\n case DataTypeEnum.Date: {\n if (!claim.value) {\n // Don't try to parse empty values (which will return \"Invalid Date\")\n return { testID: testID, value: String(claim.value) };\n }\n const date = claim.value as string;\n return {\n testID: testID,\n value: formatDateLocalized(new Date(date)) ?? date,\n };\n }\n case DataTypeEnum.Picture: // fallback\n case DataTypeEnum.SwiyuPicture: {\n if (typeConfig.params?.showAs === 'IMAGE') {\n return { image: { uri: claim.value as string }, testID: testID };\n } else {\n return { testID: testID, value: claim.value as string };\n }\n }\n default:\n return { testID: testID, value: String(claim.value) };\n }\n }\n};\n\nexport type CredentialDetailsCardPropsWithoutWidth = Omit<CredentialDetailsCardProps, 'expanded' | 'card'> & {\n card: Omit<CredentialCardProps, 'width'>;\n};\n\nexport const detailsCardFromCredential = (\n credential: CredentialDetail,\n config: Config,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels);\n};\n\nexport const detailsCardFromCredentialWithClaims = (\n credential: CredentialDetail,\n claims: Claim[],\n config: Config,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const attributes: CredentialAttribute[] = claims.map((claim, index) =>\n detailsCardAttributeFromClaim(claim, config, concatTestID(testID, 'attribute', index.toString())),\n );\n\n const card = getCredentialCardPropsFromCredential(\n credential,\n claims,\n config,\n undefined,\n concatTestID(testID, 'card'),\n labels,\n );\n\n return {\n attributes,\n card,\n };\n};\n\n// Converts a flat list of attributes into a nested structure\n// modifies the names to not include slashes\nexport const nestAttributes = (attributes: CredentialAttribute[]): CredentialAttribute[] => {\n const result: CredentialAttribute[] = [];\n\n for (const attribute of attributes) {\n const attributePath = attribute.path.split('/');\n if (attributePath.length === 0) {\n result.push(attribute);\n } else {\n const [first, ...rest] = attributePath;\n const parent = result.find((a) => a.name === first);\n if (parent) {\n insertAttributeInParent({ ...attribute, path: rest.join('/') }, parent);\n } else {\n result.push(nestAttributeInDummyParent(attribute));\n }\n }\n }\n\n return result;\n};\n\n// We nest the leaf node in a (one or more) nested object(s)\n// to make sure the tree structure is correctly rendered in proof request screens.\nconst nestAttributeInDummyParent = (attribute: CredentialAttribute): CredentialAttribute => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n if (!rest.length) {\n return attribute;\n }\n\n // The dummy object is not selectable, and contains a placeholder ID\n // the user can't interact with it.\n if (attribute.listValue) {\n return {\n values: [nestAttributeInDummyParent({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: first,\n };\n } else {\n return {\n attributes: [nestAttributeInDummyParent({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: first,\n };\n }\n};\n\n// Recursively insert an attribute into an parent\n// Will create nested parents if necessary\nconst insertAttributeInParent = (attribute: CredentialAttribute, parent: CredentialAttribute) => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n\n const nextParent = parent.attributes?.find((a) => a.name === first);\n\n if (!nextParent) {\n if (attribute.listValue) {\n parent.values?.push(nestAttributeInDummyParent(attribute));\n } else {\n parent.attributes?.push(nestAttributeInDummyParent(attribute));\n }\n } else {\n insertAttributeInParent({ ...attribute, path: rest.join('/') }, nextParent);\n }\n};\n\nfunction parseBase64Image(image: string | undefined) {\n return image ? '__BASE64IMAGE__' : '';\n}\n\nexport function getCredentialSchemaWithoutImages(credentialSchema: CredentialSchema) {\n return {\n ...credentialSchema,\n layoutProperties: {\n ...credentialSchema.layoutProperties,\n background: {\n ...credentialSchema.layoutProperties?.background,\n image: parseBase64Image(credentialSchema.layoutProperties?.background?.image),\n },\n logo: {\n ...credentialSchema.layoutProperties?.logo,\n image: parseBase64Image(credentialSchema.layoutProperties?.logo?.image),\n },\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { DataTypeEnum } from '@procivis/react-native-one-core';
|
|
2
1
|
import moment from 'moment';
|
|
3
|
-
import { nonEmptyFilter } from './filtering';
|
|
4
2
|
export const groupEntriesByDay = entries => {
|
|
5
3
|
const groupedEntries = entries.reduce((result, entry) => {
|
|
6
4
|
const entryDate = moment(entry.createdDate);
|
|
@@ -27,40 +25,4 @@ export const groupEntriesByDay = entries => {
|
|
|
27
25
|
return item;
|
|
28
26
|
});
|
|
29
27
|
};
|
|
30
|
-
export const claimValueFromProofInputClaim = ({
|
|
31
|
-
schema,
|
|
32
|
-
value
|
|
33
|
-
}) => {
|
|
34
|
-
if (!value) {
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
37
|
-
if (Array.isArray(value)) {
|
|
38
|
-
const values = value.map(claimFromProofInputClaim).filter(nonEmptyFilter);
|
|
39
|
-
return schema.dataType === DataTypeEnum.Object ? {
|
|
40
|
-
array: schema.array,
|
|
41
|
-
dataType: DataTypeEnum.Object,
|
|
42
|
-
value: values
|
|
43
|
-
} : {
|
|
44
|
-
array: true,
|
|
45
|
-
dataType: schema.dataType,
|
|
46
|
-
value: values
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
return {
|
|
50
|
-
array: false,
|
|
51
|
-
dataType: schema.dataType,
|
|
52
|
-
value
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
export const claimFromProofInputClaim = input => {
|
|
56
|
-
const value = claimValueFromProofInputClaim(input);
|
|
57
|
-
if (!value) {
|
|
58
|
-
return undefined;
|
|
59
|
-
}
|
|
60
|
-
return {
|
|
61
|
-
...value,
|
|
62
|
-
id: input.schema.id,
|
|
63
|
-
key: input.schema.key
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
28
|
//# sourceMappingURL=history.js.map
|