@procivis/one-react-native-components 0.3.143 → 0.3.147
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/proof-request/v2/share-credential-v2-group.js +6 -3
- package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
- package/lib/commonjs/ui-components/credential/card/credential-header.js +8 -38
- package/lib/commonjs/ui-components/credential/card/credential-header.js.map +1 -1
- package/lib/commonjs/ui-components/credential/card/credential-logo.js +71 -0
- package/lib/commonjs/ui-components/credential/card/credential-logo.js.map +1 -0
- package/lib/commonjs/ui-components/credential/card/index.js +7 -0
- package/lib/commonjs/ui-components/credential/card/index.js.map +1 -1
- package/lib/commonjs/ui-components/input/selection-input.js +69 -53
- package/lib/commonjs/ui-components/input/selection-input.js.map +1 -1
- package/lib/commonjs/ui-components/text/index.js +1 -9
- package/lib/commonjs/ui-components/text/index.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/transaction.js +20 -0
- package/lib/commonjs/utils/hooks/core/transaction.js.map +1 -0
- package/lib/commonjs/utils/parsers/credential.js +22 -14
- package/lib/commonjs/utils/parsers/credential.js.map +1 -1
- package/lib/commonjs/utils/parsers/query.js +1 -1
- package/lib/commonjs/utils/parsers/query.js.map +1 -1
- package/lib/module/components/proof-request/v2/share-credential-v2-group.js +6 -3
- package/lib/module/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
- package/lib/module/ui-components/credential/card/credential-header.js +8 -38
- package/lib/module/ui-components/credential/card/credential-header.js.map +1 -1
- package/lib/module/ui-components/credential/card/credential-logo.js +64 -0
- package/lib/module/ui-components/credential/card/credential-logo.js.map +1 -0
- package/lib/module/ui-components/credential/card/index.js +2 -0
- package/lib/module/ui-components/credential/card/index.js.map +1 -1
- package/lib/module/ui-components/input/selection-input.js +70 -54
- package/lib/module/ui-components/input/selection-input.js.map +1 -1
- package/lib/module/ui-components/text/index.js +2 -2
- package/lib/module/ui-components/text/index.js.map +1 -1
- package/lib/module/utils/hooks/core/transaction.js +13 -0
- package/lib/module/utils/hooks/core/transaction.js.map +1 -0
- package/lib/module/utils/parsers/credential.js +20 -13
- package/lib/module/utils/parsers/credential.js.map +1 -1
- package/lib/module/utils/parsers/query.js +1 -1
- package/lib/module/utils/parsers/query.js.map +1 -1
- package/lib/typescript/ui-components/credential/card/credential-logo.d.ts +17 -0
- package/lib/typescript/ui-components/credential/card/index.d.ts +3 -0
- package/lib/typescript/ui-components/input/selection-input.d.ts +3 -7
- package/lib/typescript/ui-components/text/index.d.ts +2 -1
- package/lib/typescript/utils/hooks/core/transaction.d.ts +2 -0
- package/lib/typescript/utils/parsers/credential.d.ts +2 -1
- package/package.json +5 -3
- package/src/components/proof-request/v2/share-credential-v2-group.tsx +3 -0
- package/src/ui-components/credential/card/credential-header.tsx +9 -37
- package/src/ui-components/credential/card/credential-logo.stories.tsx +45 -0
- package/src/ui-components/credential/card/credential-logo.tsx +79 -0
- package/src/ui-components/credential/card/index.ts +5 -8
- package/src/ui-components/input/selection-input.tsx +85 -65
- package/src/ui-components/text/index.ts +2 -1
- package/src/utils/hooks/core/transaction.ts +18 -0
- package/src/utils/parsers/credential.ts +27 -13
- package/src/utils/parsers/query.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_expandableTypography","
|
|
1
|
+
{"version":3,"names":["_expandableTypography","_interopRequireDefault","require","_typography","e","__esModule","default"],"sources":["index.ts"],"sourcesContent":["import type { ExpandableTypographyProps } from './expandableTypography';\nimport ExpandableTypography from './expandableTypography';\nimport type { TypographyProps } from './typography';\nimport Typography from './typography';\n\nexport { ExpandableTypography, ExpandableTypographyProps, Typography, TypographyProps };\n"],"mappings":";;;;;;;;;;;;;;;;;AACA,IAAAA,qBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAsC,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useTransactionData = exports.TRANSACTION_DATA_QUERY_KEY = void 0;
|
|
7
|
+
var _reactQuery = require("react-query");
|
|
8
|
+
var _coreContext = require("./core-context");
|
|
9
|
+
const TRANSACTION_DATA_QUERY_KEY = exports.TRANSACTION_DATA_QUERY_KEY = 'proof-detail';
|
|
10
|
+
const useTransactionData = (proofId, transactionDataId) => {
|
|
11
|
+
const {
|
|
12
|
+
core
|
|
13
|
+
} = (0, _coreContext.useONECore)();
|
|
14
|
+
return (0, _reactQuery.useQuery)([TRANSACTION_DATA_QUERY_KEY, proofId], () => proofId && transactionDataId ? core.holderGetTransactionData(proofId, transactionDataId) : undefined, {
|
|
15
|
+
enabled: Boolean(proofId && transactionDataId),
|
|
16
|
+
keepPreviousData: true
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
exports.useTransactionData = useTransactionData;
|
|
20
|
+
//# sourceMappingURL=transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactQuery","require","_coreContext","TRANSACTION_DATA_QUERY_KEY","exports","useTransactionData","proofId","transactionDataId","core","useONECore","useQuery","holderGetTransactionData","undefined","enabled","Boolean","keepPreviousData"],"sources":["transaction.ts"],"sourcesContent":["import { useQuery } from 'react-query';\n\nimport { useONECore } from './core-context';\n\nexport const TRANSACTION_DATA_QUERY_KEY = 'proof-detail';\n\nexport const useTransactionData = (proofId: string | undefined, transactionDataId: string | undefined) => {\n const { core } = useONECore();\n\n return useQuery(\n [TRANSACTION_DATA_QUERY_KEY, proofId],\n () => (proofId && transactionDataId ? core.holderGetTransactionData(proofId, transactionDataId) : undefined),\n {\n enabled: Boolean(proofId && transactionDataId),\n keepPreviousData: true,\n },\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAEO,MAAME,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAG,cAAc;AAEjD,MAAME,kBAAkB,GAAGA,CAACC,OAA2B,EAAEC,iBAAqC,KAAK;EACxG,MAAM;IAAEC;EAAK,CAAC,GAAG,IAAAC,uBAAU,EAAC,CAAC;EAE7B,OAAO,IAAAC,oBAAQ,EACb,CAACP,0BAA0B,EAAEG,OAAO,CAAC,EACrC,MAAOA,OAAO,IAAIC,iBAAiB,GAAGC,IAAI,CAACG,wBAAwB,CAACL,OAAO,EAAEC,iBAAiB,CAAC,GAAGK,SAAU,EAC5G;IACEC,OAAO,EAAEC,OAAO,CAACR,OAAO,IAAIC,iBAAiB,CAAC;IAC9CQ,gBAAgB,EAAE;EACpB,CACF,CAAC;AACH,CAAC;AAACX,OAAA,CAAAC,kBAAA,GAAAA,kBAAA","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.cardHeaderFromCredential = exports.ValidityState = void 0;
|
|
7
7
|
exports.credentialDetailFromPresentationV2Credential = credentialDetailFromPresentationV2Credential;
|
|
8
|
-
exports.getCredentialCardPropsFromCredential = exports.findClaimByPath = exports.detailsCardFromCredentialWithClaims = exports.detailsCardFromCredential = exports.detailsCardAttributeFromClaim = void 0;
|
|
8
|
+
exports.getCredentialCardPropsFromCredential = exports.findClaimByPath = exports.detailsCardFromCredentialWithClaims = exports.detailsCardFromCredential = exports.detailsCardAttributeFromClaim = exports.credentialLogoFromCredential = void 0;
|
|
9
9
|
exports.getCredentialSchemaWithoutImages = getCredentialSchemaWithoutImages;
|
|
10
10
|
exports.supportsSelectiveDisclosure = exports.nestAttributes = exports.hasMsoValidityIssues = exports.getValidityState = void 0;
|
|
11
11
|
var _reactNativeOneCore = require("@procivis/react-native-one-core");
|
|
@@ -56,6 +56,25 @@ const formatCredentialDetail = (claim, config, testID, language) => {
|
|
|
56
56
|
const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID, language);
|
|
57
57
|
return (_attributeValue$value = attributeValue.value) !== null && _attributeValue$value !== void 0 ? _attributeValue$value : '';
|
|
58
58
|
};
|
|
59
|
+
const credentialLogoFromCredential = (credential, config, testID, language) => {
|
|
60
|
+
var _layoutProperties$log, _getTranslatedLabel, _credential$schema$tr, _layoutProperties$log2, _layoutProperties$log3;
|
|
61
|
+
const {
|
|
62
|
+
layoutProperties
|
|
63
|
+
} = credential.schema;
|
|
64
|
+
const defaultLanguage = config.globalSettings.defaultLanguage;
|
|
65
|
+
return {
|
|
66
|
+
color: layoutProperties === null || layoutProperties === void 0 || (_layoutProperties$log = layoutProperties.logo) === null || _layoutProperties$log === void 0 ? void 0 : _layoutProperties$log.backgroundColor,
|
|
67
|
+
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,
|
|
68
|
+
icon: layoutProperties !== null && layoutProperties !== void 0 && (_layoutProperties$log2 = layoutProperties.logo) !== null && _layoutProperties$log2 !== void 0 && _layoutProperties$log2.image ? {
|
|
69
|
+
imageSource: {
|
|
70
|
+
uri: layoutProperties.logo.image
|
|
71
|
+
}
|
|
72
|
+
} : undefined,
|
|
73
|
+
iconLabelColor: layoutProperties === null || layoutProperties === void 0 || (_layoutProperties$log3 = layoutProperties.logo) === null || _layoutProperties$log3 === void 0 ? void 0 : _layoutProperties$log3.fontColor,
|
|
74
|
+
testID
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
exports.credentialLogoFromCredential = credentialLogoFromCredential;
|
|
59
78
|
const hasMsoValidityIssues = credential => {
|
|
60
79
|
var _credential$mdocMsoVa;
|
|
61
80
|
const mdocMsoValidityIssue = Boolean(((_credential$mdocMsoVa = credential.mdocMsoValidity) === null || _credential$mdocMsoVa === void 0 ? void 0 : _credential$mdocMsoVa.nextUpdate) && new Date(credential.mdocMsoValidity.nextUpdate) < new Date());
|
|
@@ -106,7 +125,7 @@ const credentialDetailFromCredential = (credential, claims = [], config, testID,
|
|
|
106
125
|
};
|
|
107
126
|
};
|
|
108
127
|
const cardHeaderFromCredential = (credential, claims = [], config, testID, labels, language) => {
|
|
109
|
-
|
|
128
|
+
const logoProps = credentialLogoFromCredential(credential, config, '', language);
|
|
110
129
|
const {
|
|
111
130
|
credentialDetailPrimary,
|
|
112
131
|
credentialDetailSecondary,
|
|
@@ -114,23 +133,12 @@ const cardHeaderFromCredential = (credential, claims = [], config, testID, label
|
|
|
114
133
|
credentialDetailTestID,
|
|
115
134
|
statusIcon
|
|
116
135
|
} = credentialDetailFromCredential(credential, claims, config, testID, labels, language);
|
|
117
|
-
const {
|
|
118
|
-
layoutProperties
|
|
119
|
-
} = credential.schema;
|
|
120
|
-
const defaultLanguage = config.globalSettings.defaultLanguage;
|
|
121
136
|
return {
|
|
122
|
-
|
|
137
|
+
...logoProps,
|
|
123
138
|
credentialDetailErrorColor,
|
|
124
139
|
credentialDetailPrimary,
|
|
125
140
|
credentialDetailSecondary,
|
|
126
141
|
credentialDetailTestID,
|
|
127
|
-
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,
|
|
128
|
-
icon: layoutProperties !== null && layoutProperties !== void 0 && (_layoutProperties$log2 = layoutProperties.logo) !== null && _layoutProperties$log2 !== void 0 && _layoutProperties$log2.image ? {
|
|
129
|
-
imageSource: {
|
|
130
|
-
uri: layoutProperties.logo.image
|
|
131
|
-
}
|
|
132
|
-
} : undefined,
|
|
133
|
-
iconLabelColor: layoutProperties === null || layoutProperties === void 0 || (_layoutProperties$log3 = layoutProperties.logo) === null || _layoutProperties$log3 === void 0 ? void 0 : _layoutProperties$log3.fontColor,
|
|
134
142
|
statusIcon,
|
|
135
143
|
testID
|
|
136
144
|
};
|
|
@@ -1 +1 @@
|
|
|
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","globalSettings","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","credentialDetailFromPresentationV2Credential","presentationCredential","CredentialType","SINGLE"],"sources":["credential.ts"],"sourcesContent":["import {\n Claim,\n CoreConfig,\n CredentialDetail,\n CredentialListItem,\n CredentialSchemaListItem,\n CredentialState,\n CredentialType,\n DataType,\n FormatFeature,\n PresentationDefinitionV2Credential,\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.globalSettings.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.globalSettings.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.globalSettings.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\nexport function credentialDetailFromPresentationV2Credential(\n presentationCredential: CredentialDetail | PresentationDefinitionV2Credential,\n): CredentialDetail {\n return {\n type: CredentialType.SINGLE,\n ...presentationCredential,\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","credentialLogoFromCredential","_layoutProperties$log","_getTranslatedLabel","_credential$schema$tr","_layoutProperties$log2","_layoutProperties$log3","layoutProperties","defaultLanguage","globalSettings","color","logo","backgroundColor","credentialName","getTranslatedLabel","translations","name","icon","image","imageSource","uri","iconLabelColor","fontColor","hasMsoValidityIssues","_credential$mdocMsoVa","mdocMsoValidityIssue","mdocMsoValidity","nextUpdate","Date","credentialDetailFromCredential","labels","_formatDateTimeLocali","_credential$issuanceD","credentialDetailPrimary","suspendEndDate","suspendedUntil","formatDateTimeLocalized","suspended","credentialDetailTestID","concatTestID","statusIcon","CredentialWarningIcon","revoked","credentialDetailErrorColor","CredentialErrorIcon","validityIssues","issuanceDate","createdDate","credentialDetailSecondary","primary","primaryAttribute","secondary","secondaryAttribute","cardHeaderFromCredential","logoProps","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","credentialDetailFromPresentationV2Credential","presentationCredential","CredentialType","SINGLE"],"sources":["credential.ts"],"sourcesContent":["import {\n Claim,\n CoreConfig,\n CredentialDetail,\n CredentialListItem,\n CredentialSchemaListItem,\n CredentialState,\n CredentialType,\n DataType,\n FormatFeature,\n PresentationDefinitionV2Credential,\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 CredentialLogoProps,\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 credentialLogoFromCredential = (\n credential: CredentialDetail,\n config: CoreConfig,\n testID: string,\n language: string | undefined,\n): Omit<CredentialLogoProps, 'size'> => {\n const { layoutProperties } = credential.schema;\n const defaultLanguage = config.globalSettings.defaultLanguage;\n return {\n color: layoutProperties?.logo?.backgroundColor,\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 testID,\n };\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 logoProps = credentialLogoFromCredential(credential, config, '', language);\n const {\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailErrorColor,\n credentialDetailTestID,\n statusIcon,\n } = credentialDetailFromCredential(credential, claims, config, testID, labels, language);\n\n return {\n ...logoProps,\n credentialDetailErrorColor,\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID,\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.globalSettings.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.globalSettings.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\nexport function credentialDetailFromPresentationV2Credential(\n presentationCredential: CredentialDetail | PresentationDefinitionV2Credential,\n): CredentialDetail {\n return {\n type: CredentialType.SINGLE,\n ...presentationCredential,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,7 +15,7 @@ const getQueryKeyFromCredentialListQueryParams = (queryParams = {}) => {
|
|
|
15
15
|
};
|
|
16
16
|
exports.getQueryKeyFromCredentialListQueryParams = getQueryKeyFromCredentialListQueryParams;
|
|
17
17
|
const getQueryKeyFromHistoryListQueryParams = (queryParams = {}) => {
|
|
18
|
-
return getQueryKey(queryParams, ['page', 'pageSize', 'sort', 'sortDirection', 'organisationId', 'entityIds', 'actions', 'entityTypes', 'createdDateAfter', 'createdDateBefore', 'identifierId', 'credentialId', 'credentialSchemaId', 'proofId', 'proofSchemaId', 'search', 'users']);
|
|
18
|
+
return getQueryKey(queryParams, ['page', 'pageSize', 'sort', 'sortDirection', 'organisationId', 'entityIds', 'actions', 'entityTypes', 'createdDateAfter', 'createdDateBefore', 'identifierId', 'credentialId', 'credentialSchemaId', 'proofId', 'proofSchemaId', 'search', 'users', 'trustCollectionId']);
|
|
19
19
|
};
|
|
20
20
|
exports.getQueryKeyFromHistoryListQueryParams = getQueryKeyFromHistoryListQueryParams;
|
|
21
21
|
const getQueryKeyFromCredentialSchemaListQueryParams = (queryParams = {}) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getQueryKey","queryParams","params","map","param","getQueryKeyFromCredentialListQueryParams","exports","getQueryKeyFromHistoryListQueryParams","getQueryKeyFromCredentialSchemaListQueryParams","getQueryKeyFromProofSchemaListQueryParams","getQueryKeyFromProofListQueryParams","getQueryKeyFromDidListQueryParams","getQueryKeyFromIdentifierListQueryParams"],"sources":["query.ts"],"sourcesContent":["import {\n CredentialListQuery,\n CredentialSchemaListQuery,\n DidListQuery,\n HistoryListQuery,\n IdentifierListQuery,\n ProofListQuery,\n ProofSchemaListQuery,\n} from '@procivis/react-native-one-core';\n\ntype QueryKey<ListQuery, ParamList> = ParamList extends ReadonlyArray<keyof ListQuery> // all params are inside the ListQuery\n ? keyof ListQuery extends ParamList[number] // all ListQuery fields are in the params\n ? Array<ListQuery[keyof ListQuery]>\n : void\n : void; // otherwise produce a wrong return type which should trigger compilation error\n\n/** Typecheck that all query params are included in the query key */\nfunction getQueryKey<ListQuery extends {}, ParamList extends ReadonlyArray<keyof ListQuery>>(\n queryParams: ListQuery,\n params: ParamList,\n): QueryKey<ListQuery, ParamList> {\n return params.map((param) => queryParams[param]) as QueryKey<ListQuery, ParamList>;\n}\n\nexport const getQueryKeyFromCredentialListQueryParams = (queryParams: Partial<CredentialListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'searchText',\n 'searchType',\n 'sort',\n 'sortDirection',\n 'exact',\n 'roles',\n 'ids',\n 'states',\n 'include',\n 'profiles',\n 'credentialSchemaIds',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n 'issuanceDateAfter',\n 'issuanceDateBefore',\n 'revocationDateAfter',\n 'revocationDateBefore',\n 'types',\n 'parentId',\n ]);\n};\n\nexport const getQueryKeyFromHistoryListQueryParams = (queryParams: Partial<HistoryListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'sort',\n 'sortDirection',\n 'organisationId',\n 'entityIds',\n 'actions',\n 'entityTypes',\n 'createdDateAfter',\n 'createdDateBefore',\n 'identifierId',\n 'credentialId',\n 'credentialSchemaId',\n 'proofId',\n 'proofSchemaId',\n 'search',\n 'users',\n ]);\n};\n\nexport const getQueryKeyFromCredentialSchemaListQueryParams = (\n queryParams: Partial<CredentialSchemaListQuery> = {},\n) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'sort',\n 'sortDirection',\n 'exact',\n 'ids',\n 'include',\n 'schemaIds',\n 'formats',\n 'usesBatchIssuance',\n 'isMultiformatSchema',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n\nexport const getQueryKeyFromProofSchemaListQueryParams = (queryParams: Partial<ProofSchemaListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'sort',\n 'sortDirection',\n 'exact',\n 'ids',\n 'formats',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n\nexport const getQueryKeyFromProofListQueryParams = (queryParams: Partial<ProofListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'sort',\n 'sortDirection',\n 'name',\n 'ids',\n 'proofStates',\n 'proofRoles',\n 'proofSchemaIds',\n 'exact',\n 'profiles',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n 'requestedDateAfter',\n 'requestedDateBefore',\n 'completedDateAfter',\n 'completedDateBefore',\n ]);\n};\n\nexport const getQueryKeyFromDidListQueryParams = (queryParams: Partial<DidListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'sort',\n 'sortDirection',\n 'name',\n 'did',\n 'type',\n 'deactivated',\n 'exact',\n 'keyAlgorithms',\n 'keyRoles',\n 'keyStorages',\n 'keyIds',\n 'didMethods',\n ]);\n};\n\nexport const getQueryKeyFromIdentifierListQueryParams = (queryParams: Partial<IdentifierListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'ids',\n 'sort',\n 'sortDirection',\n 'name',\n 'types',\n 'states',\n 'exact',\n 'didMethods',\n 'isRemote',\n 'keyAlgorithms',\n 'keyRoles',\n 'keyStorages',\n 'certificateRoles',\n 'certificateRolesMatchMode',\n 'trustIssuanceSchemaId',\n 'trustVerificationSchemaId',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n"],"mappings":";;;;;;AAcU;;AAEV;AACA,SAASA,WAAWA,CAClBC,WAAsB,EACtBC,MAAiB,EACe;EAChC,OAAOA,MAAM,CAACC,GAAG,CAAEC,KAAK,IAAKH,WAAW,CAACG,KAAK,CAAC,CAAC;AAClD;AAEO,MAAMC,wCAAwC,GAAGA,CAACJ,WAAyC,GAAG,CAAC,CAAC,KAAK;EAC1G,OAAOD,WAAW,CAACC,WAAW,EAAE,CAC9B,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,eAAe,EACf,OAAO,EACP,OAAO,EACP,KAAK,EACL,QAAQ,EACR,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,OAAO,EACP,UAAU,CACX,CAAC;AACJ,CAAC;AAACK,OAAA,CAAAD,wCAAA,GAAAA,wCAAA;AAEK,MAAME,qCAAqC,GAAGA,CAACN,WAAsC,GAAG,CAAC,CAAC,KAAK;EACpG,OAAOD,WAAW,CAACC,WAAW,EAAE,CAC9B,MAAM,EACN,UAAU,EACV,MAAM,EACN,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,SAAS,EACT,eAAe,EACf,QAAQ,EACR,OAAO,
|
|
1
|
+
{"version":3,"names":["getQueryKey","queryParams","params","map","param","getQueryKeyFromCredentialListQueryParams","exports","getQueryKeyFromHistoryListQueryParams","getQueryKeyFromCredentialSchemaListQueryParams","getQueryKeyFromProofSchemaListQueryParams","getQueryKeyFromProofListQueryParams","getQueryKeyFromDidListQueryParams","getQueryKeyFromIdentifierListQueryParams"],"sources":["query.ts"],"sourcesContent":["import {\n CredentialListQuery,\n CredentialSchemaListQuery,\n DidListQuery,\n HistoryListQuery,\n IdentifierListQuery,\n ProofListQuery,\n ProofSchemaListQuery,\n} from '@procivis/react-native-one-core';\n\ntype QueryKey<ListQuery, ParamList> = ParamList extends ReadonlyArray<keyof ListQuery> // all params are inside the ListQuery\n ? keyof ListQuery extends ParamList[number] // all ListQuery fields are in the params\n ? Array<ListQuery[keyof ListQuery]>\n : void\n : void; // otherwise produce a wrong return type which should trigger compilation error\n\n/** Typecheck that all query params are included in the query key */\nfunction getQueryKey<ListQuery extends {}, ParamList extends ReadonlyArray<keyof ListQuery>>(\n queryParams: ListQuery,\n params: ParamList,\n): QueryKey<ListQuery, ParamList> {\n return params.map((param) => queryParams[param]) as QueryKey<ListQuery, ParamList>;\n}\n\nexport const getQueryKeyFromCredentialListQueryParams = (queryParams: Partial<CredentialListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'searchText',\n 'searchType',\n 'sort',\n 'sortDirection',\n 'exact',\n 'roles',\n 'ids',\n 'states',\n 'include',\n 'profiles',\n 'credentialSchemaIds',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n 'issuanceDateAfter',\n 'issuanceDateBefore',\n 'revocationDateAfter',\n 'revocationDateBefore',\n 'types',\n 'parentId',\n ]);\n};\n\nexport const getQueryKeyFromHistoryListQueryParams = (queryParams: Partial<HistoryListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'sort',\n 'sortDirection',\n 'organisationId',\n 'entityIds',\n 'actions',\n 'entityTypes',\n 'createdDateAfter',\n 'createdDateBefore',\n 'identifierId',\n 'credentialId',\n 'credentialSchemaId',\n 'proofId',\n 'proofSchemaId',\n 'search',\n 'users',\n 'trustCollectionId',\n ]);\n};\n\nexport const getQueryKeyFromCredentialSchemaListQueryParams = (\n queryParams: Partial<CredentialSchemaListQuery> = {},\n) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'sort',\n 'sortDirection',\n 'exact',\n 'ids',\n 'include',\n 'schemaIds',\n 'formats',\n 'usesBatchIssuance',\n 'isMultiformatSchema',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n\nexport const getQueryKeyFromProofSchemaListQueryParams = (queryParams: Partial<ProofSchemaListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'name',\n 'sort',\n 'sortDirection',\n 'exact',\n 'ids',\n 'formats',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n\nexport const getQueryKeyFromProofListQueryParams = (queryParams: Partial<ProofListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'sort',\n 'sortDirection',\n 'name',\n 'ids',\n 'proofStates',\n 'proofRoles',\n 'proofSchemaIds',\n 'exact',\n 'profiles',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n 'requestedDateAfter',\n 'requestedDateBefore',\n 'completedDateAfter',\n 'completedDateBefore',\n ]);\n};\n\nexport const getQueryKeyFromDidListQueryParams = (queryParams: Partial<DidListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'sort',\n 'sortDirection',\n 'name',\n 'did',\n 'type',\n 'deactivated',\n 'exact',\n 'keyAlgorithms',\n 'keyRoles',\n 'keyStorages',\n 'keyIds',\n 'didMethods',\n ]);\n};\n\nexport const getQueryKeyFromIdentifierListQueryParams = (queryParams: Partial<IdentifierListQuery> = {}) => {\n return getQueryKey(queryParams, [\n 'page',\n 'pageSize',\n 'organisationId',\n 'ids',\n 'sort',\n 'sortDirection',\n 'name',\n 'types',\n 'states',\n 'exact',\n 'didMethods',\n 'isRemote',\n 'keyAlgorithms',\n 'keyRoles',\n 'keyStorages',\n 'certificateRoles',\n 'certificateRolesMatchMode',\n 'trustIssuanceSchemaId',\n 'trustVerificationSchemaId',\n 'createdDateAfter',\n 'createdDateBefore',\n 'lastModifiedAfter',\n 'lastModifiedBefore',\n ]);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -61,15 +61,18 @@ export const ShareCredentialV2Group = ({
|
|
|
61
61
|
var _credentialQuery$appl;
|
|
62
62
|
defaultSelection = (_credentialQuery$appl = credentialQuery.applicableCredentials) !== null && _credentialQuery$appl !== void 0 && _credentialQuery$appl[0] ? {
|
|
63
63
|
credentialId: credentialQuery.applicableCredentials[0].id,
|
|
64
|
-
userSelections: []
|
|
64
|
+
userSelections: [],
|
|
65
|
+
transactionDataIds: []
|
|
65
66
|
} : {
|
|
66
67
|
credentialId: '',
|
|
67
|
-
userSelections: []
|
|
68
|
+
userSelections: [],
|
|
69
|
+
transactionDataIds: []
|
|
68
70
|
};
|
|
69
71
|
} else {
|
|
70
72
|
defaultSelection = {
|
|
71
73
|
credentialId: '',
|
|
72
|
-
userSelections: []
|
|
74
|
+
userSelections: [],
|
|
75
|
+
transactionDataIds: []
|
|
73
76
|
};
|
|
74
77
|
}
|
|
75
78
|
const request = selectedCredentials[credentialRequestId];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useMemo","StyleSheet","Animated","LinearTransition","BlurView","CredentialCardShadow","DownIcon","Selector","SelectorStatus","TouchableOpacity","UpIcon","CredentialGroupHeader","concatTestID","useCredentialListExpandedCard","GroupedShareCredentialV2Padding","ShareCredentialV2","multipleCredentialsSelected","selectedCredentials","credentialRequestId","Array","isArray","length","numberOfCardsForRequest","selection","heightForNumberOfCards","numberOfCards","ShareCredentialV2Group","labels","language","lastGroup","onGroupSelect","onImagePreview","onSelectCredential","onSelectField","presentationDefinition","requestGroup","selected","style","testID","valid","expandedCredential","onHeaderPress","reduce","acc","groupId","singleCredentialGroup","headerPressHandler","onNestedCardHeaderPress","credentialId","credentialCards","flatMap","credentialRequestIndex","credentialRequestsLength","lastQuery","credentialQuery","credentialQueries","credentialOrFailureHint","defaultSelection","type_","_credentialQuery$appl","applicableCredentials","id","userSelections","request","credentialSelections","credentialRequest","credentialIndex","credentialsLength","selectedFields","cardId","lastItem","cardExpanded","headerAccessory","createElement","status","SelectedRadio","Empty","expanded","grouped","key","selectedCredentialId","styles","requestedCredential","requestedCredentialLast","groupHeaderAccessory","View","layout","animatedWrapper","height","undefined","groupedCredentialsWrapper","blurStyle","darkMode","absoluteFill","onPress","accessory","name","groupHeader","header","create","borderRadius","borderWidth","overflow","paddingBottom","marginBottom"],"sources":["share-credential-v2-group.tsx"],"sourcesContent":["import {\n CredentialListItem,\n PresentationDefinitionV2,\n PresentationDefinitionV2Claim,\n PresentationSubmitV2CredentialRequest,\n} from '@procivis/react-native-one-core';\nimport React, { FC, useCallback, useMemo } from 'react';\nimport { ImageSourcePropType, StyleProp, StyleSheet, ViewStyle } from 'react-native';\nimport Animated, { LinearTransition } from 'react-native-reanimated';\n\nimport {\n BlurView,\n CredentialCardShadow,\n DownIcon,\n Selector,\n SelectorStatus,\n TouchableOpacity,\n UpIcon,\n} from '../../../ui-components';\nimport CredentialGroupHeader from '../../../ui-components/credential/group/credential-group-header';\nimport { concatTestID, ShareCredentialCardLabels, useCredentialListExpandedCard } from '../../../utils';\nimport { GroupedShareCredentialV2Padding, ShareCredentialV2 } from './share-credential-v2';\n\nexport type CredentialQuerySelection = Record<\n string,\n PresentationSubmitV2CredentialRequest | PresentationSubmitV2CredentialRequest[]\n>;\n\nexport type ShareCredentialLabels = ShareCredentialCardLabels & {\n invalidCredentialNotice: string;\n multipleCredentialsNotice: string;\n multipleCredentialsSelect: string;\n revokedCredentialNotice: string;\n suspendedCredentialNotice: string;\n};\n\nexport type ShareCredentialGroupLabels = ShareCredentialLabels & {\n groupHeader: string;\n};\n\nexport type ShareCredentialV2GroupProps = {\n labels: ShareCredentialGroupLabels;\n language: string;\n lastGroup: boolean;\n onGroupSelect?: (selected: boolean) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelectCredential: (requestCredentialId: string) => () => void;\n onSelectField: (\n requestCredentialId: string,\n ) => (\n credentialId: CredentialListItem['id'],\n fieldPath: PresentationDefinitionV2Claim['path'],\n selected: boolean,\n ) => void;\n presentationDefinition: PresentationDefinitionV2;\n requestGroup: string[];\n selected?: boolean;\n selectedCredentials?: CredentialQuerySelection;\n style?: StyleProp<ViewStyle>;\n testID: string;\n valid: boolean;\n};\n\nconst multipleCredentialsSelected = (\n selectedCredentials: CredentialQuerySelection | undefined,\n credentialRequestId: string,\n) => {\n return (\n selectedCredentials &&\n selectedCredentials[credentialRequestId] &&\n Array.isArray(selectedCredentials[credentialRequestId]) &&\n (selectedCredentials[credentialRequestId] as PresentationSubmitV2CredentialRequest[]).length > 1\n );\n};\n\nconst numberOfCardsForRequest = (\n selectedCredentials: CredentialQuerySelection | undefined,\n credentialRequestId: string,\n) => {\n if (!selectedCredentials || !selectedCredentials[credentialRequestId]) {\n return 1;\n }\n const selection = selectedCredentials[credentialRequestId];\n if (Array.isArray(selection)) {\n return selection.length;\n }\n return 1;\n};\n\nconst heightForNumberOfCards = (numberOfCards: number) => 60 * (numberOfCards + 1) + 12 * numberOfCards;\n\nexport const ShareCredentialV2Group: FC<ShareCredentialV2GroupProps> = ({\n labels,\n language,\n lastGroup,\n onGroupSelect,\n onImagePreview,\n onSelectCredential,\n onSelectField,\n presentationDefinition,\n requestGroup,\n selected,\n selectedCredentials = {},\n style,\n testID,\n valid,\n}) => {\n const { expandedCredential, onHeaderPress } = useCredentialListExpandedCard();\n const numberOfCards = requestGroup.reduce(\n (acc, groupId) => acc + numberOfCardsForRequest(selectedCredentials, groupId),\n 0,\n );\n const singleCredentialGroup =\n requestGroup.length === 1 && !multipleCredentialsSelected(selectedCredentials, requestGroup[0]);\n\n const headerPressHandler = useCallback(() => {\n onGroupSelect?.(!selected);\n }, [selected, onGroupSelect]);\n\n const onNestedCardHeaderPress = useCallback(\n (credentialId: string) => () => {\n if (!selected) {\n onGroupSelect?.(true);\n }\n onHeaderPress(credentialId);\n },\n [selected, onGroupSelect, onHeaderPress],\n );\n\n const credentialCards = useMemo(() => {\n return requestGroup.flatMap((credentialRequestId, credentialRequestIndex, { length: credentialRequestsLength }) => {\n const lastQuery = credentialRequestIndex === credentialRequestsLength - 1;\n\n const credentialQuery = presentationDefinition.credentialQueries[credentialRequestId].credentialOrFailureHint;\n let defaultSelection: PresentationSubmitV2CredentialRequest;\n if (credentialQuery.type_ === 'APPLICABLE_CREDENTIALS') {\n defaultSelection = credentialQuery.applicableCredentials?.[0]\n ? {\n credentialId: credentialQuery.applicableCredentials[0].id,\n userSelections: [],\n }\n : {\n credentialId: '',\n userSelections: [],\n };\n } else {\n defaultSelection = {\n credentialId: '',\n userSelections: [],\n };\n }\n const request = selectedCredentials[credentialRequestId];\n const credentialSelections = request ? (Array.isArray(request) ? request : [request]) : [defaultSelection];\n\n return credentialSelections?.flatMap((credentialRequest, credentialIndex, { length: credentialsLength }) => {\n const selectedFields = credentialRequest.userSelections;\n const cardId = `${credentialRequestId}-${credentialRequest.credentialId}`;\n const lastItem = singleCredentialGroup ? lastGroup : lastQuery && credentialIndex === credentialsLength - 1;\n const cardExpanded = selected && (singleCredentialGroup || expandedCredential === cardId);\n const headerAccessory =\n singleCredentialGroup && valid ? (\n <Selector status={selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty} />\n ) : cardExpanded ? (\n UpIcon\n ) : (\n DownIcon\n );\n return (\n <ShareCredentialV2\n credentialQuery={credentialQuery}\n credentialRequestId={credentialRequestId}\n expanded={cardExpanded}\n grouped={!singleCredentialGroup}\n headerAccessory={headerAccessory}\n key={credentialRequestId}\n labels={labels}\n language={language}\n lastItem={lastItem}\n onHeaderPress={singleCredentialGroup ? headerPressHandler : onNestedCardHeaderPress(cardId)}\n onImagePreview={onImagePreview}\n onSelectCredential={onSelectCredential?.(credentialRequestId)}\n onSelectField={onSelectField(credentialRequestId)}\n selectedCredentialId={credentialRequest.credentialId}\n selectedFields={selectedFields}\n style={[!singleCredentialGroup && styles.requestedCredential, lastItem && styles.requestedCredentialLast]}\n testID={concatTestID(testID, credentialRequestId)}\n />\n );\n });\n });\n }, [\n expandedCredential,\n labels,\n language,\n lastGroup,\n headerPressHandler,\n onImagePreview,\n onNestedCardHeaderPress,\n onSelectCredential,\n onSelectField,\n presentationDefinition.credentialQueries,\n requestGroup,\n selected,\n selectedCredentials,\n singleCredentialGroup,\n testID,\n valid,\n ]);\n\n if (singleCredentialGroup) {\n return credentialCards[0];\n }\n\n const groupHeaderAccessory = valid ? (\n <Selector status={selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty} />\n ) : selected ? (\n UpIcon\n ) : (\n DownIcon\n );\n\n return (\n <Animated.View\n layout={LinearTransition}\n style={[\n styles.animatedWrapper,\n // eslint-disable-next-line react-native/no-inline-styles\n {\n height: selected || lastGroup ? 'auto' : heightForNumberOfCards(numberOfCards),\n },\n style,\n ]}>\n <Animated.View\n layout={LinearTransition}\n style={[\n singleCredentialGroup ? undefined : styles.groupedCredentialsWrapper,\n !singleCredentialGroup && styles.requestedCredential,\n lastGroup && styles.requestedCredentialLast,\n style,\n ]}>\n <BlurView blurStyle=\"strong\" darkMode={true} style={StyleSheet.absoluteFill} />\n <TouchableOpacity onPress={headerPressHandler}>\n <CredentialGroupHeader accessory={groupHeaderAccessory} name={labels.groupHeader} style={styles.header} />\n </TouchableOpacity>\n {credentialCards}\n </Animated.View>\n </Animated.View>\n );\n};\n\nconst styles = StyleSheet.create({\n animatedWrapper: {\n ...CredentialCardShadow,\n },\n groupedCredentialsWrapper: {\n borderRadius: 10 + GroupedShareCredentialV2Padding,\n borderWidth: 0,\n overflow: 'hidden',\n paddingBottom: GroupedShareCredentialV2Padding,\n },\n header: {\n marginBottom: GroupedShareCredentialV2Padding,\n },\n requestedCredential: {\n marginBottom: 12,\n },\n requestedCredentialLast: {\n marginBottom: 0,\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","StyleSheet","Animated","LinearTransition","BlurView","CredentialCardShadow","DownIcon","Selector","SelectorStatus","TouchableOpacity","UpIcon","CredentialGroupHeader","concatTestID","useCredentialListExpandedCard","GroupedShareCredentialV2Padding","ShareCredentialV2","multipleCredentialsSelected","selectedCredentials","credentialRequestId","Array","isArray","length","numberOfCardsForRequest","selection","heightForNumberOfCards","numberOfCards","ShareCredentialV2Group","labels","language","lastGroup","onGroupSelect","onImagePreview","onSelectCredential","onSelectField","presentationDefinition","requestGroup","selected","style","testID","valid","expandedCredential","onHeaderPress","reduce","acc","groupId","singleCredentialGroup","headerPressHandler","onNestedCardHeaderPress","credentialId","credentialCards","flatMap","credentialRequestIndex","credentialRequestsLength","lastQuery","credentialQuery","credentialQueries","credentialOrFailureHint","defaultSelection","type_","_credentialQuery$appl","applicableCredentials","id","userSelections","transactionDataIds","request","credentialSelections","credentialRequest","credentialIndex","credentialsLength","selectedFields","cardId","lastItem","cardExpanded","headerAccessory","createElement","status","SelectedRadio","Empty","expanded","grouped","key","selectedCredentialId","styles","requestedCredential","requestedCredentialLast","groupHeaderAccessory","View","layout","animatedWrapper","height","undefined","groupedCredentialsWrapper","blurStyle","darkMode","absoluteFill","onPress","accessory","name","groupHeader","header","create","borderRadius","borderWidth","overflow","paddingBottom","marginBottom"],"sources":["share-credential-v2-group.tsx"],"sourcesContent":["import {\n CredentialListItem,\n PresentationDefinitionV2,\n PresentationDefinitionV2Claim,\n PresentationSubmitV2CredentialRequest,\n} from '@procivis/react-native-one-core';\nimport React, { FC, useCallback, useMemo } from 'react';\nimport { ImageSourcePropType, StyleProp, StyleSheet, ViewStyle } from 'react-native';\nimport Animated, { LinearTransition } from 'react-native-reanimated';\n\nimport {\n BlurView,\n CredentialCardShadow,\n DownIcon,\n Selector,\n SelectorStatus,\n TouchableOpacity,\n UpIcon,\n} from '../../../ui-components';\nimport CredentialGroupHeader from '../../../ui-components/credential/group/credential-group-header';\nimport { concatTestID, ShareCredentialCardLabels, useCredentialListExpandedCard } from '../../../utils';\nimport { GroupedShareCredentialV2Padding, ShareCredentialV2 } from './share-credential-v2';\n\nexport type CredentialQuerySelection = Record<\n string,\n PresentationSubmitV2CredentialRequest | PresentationSubmitV2CredentialRequest[]\n>;\n\nexport type ShareCredentialLabels = ShareCredentialCardLabels & {\n invalidCredentialNotice: string;\n multipleCredentialsNotice: string;\n multipleCredentialsSelect: string;\n revokedCredentialNotice: string;\n suspendedCredentialNotice: string;\n};\n\nexport type ShareCredentialGroupLabels = ShareCredentialLabels & {\n groupHeader: string;\n};\n\nexport type ShareCredentialV2GroupProps = {\n labels: ShareCredentialGroupLabels;\n language: string;\n lastGroup: boolean;\n onGroupSelect?: (selected: boolean) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelectCredential: (requestCredentialId: string) => () => void;\n onSelectField: (\n requestCredentialId: string,\n ) => (\n credentialId: CredentialListItem['id'],\n fieldPath: PresentationDefinitionV2Claim['path'],\n selected: boolean,\n ) => void;\n presentationDefinition: PresentationDefinitionV2;\n requestGroup: string[];\n selected?: boolean;\n selectedCredentials?: CredentialQuerySelection;\n style?: StyleProp<ViewStyle>;\n testID: string;\n valid: boolean;\n};\n\nconst multipleCredentialsSelected = (\n selectedCredentials: CredentialQuerySelection | undefined,\n credentialRequestId: string,\n) => {\n return (\n selectedCredentials &&\n selectedCredentials[credentialRequestId] &&\n Array.isArray(selectedCredentials[credentialRequestId]) &&\n (selectedCredentials[credentialRequestId] as PresentationSubmitV2CredentialRequest[]).length > 1\n );\n};\n\nconst numberOfCardsForRequest = (\n selectedCredentials: CredentialQuerySelection | undefined,\n credentialRequestId: string,\n) => {\n if (!selectedCredentials || !selectedCredentials[credentialRequestId]) {\n return 1;\n }\n const selection = selectedCredentials[credentialRequestId];\n if (Array.isArray(selection)) {\n return selection.length;\n }\n return 1;\n};\n\nconst heightForNumberOfCards = (numberOfCards: number) => 60 * (numberOfCards + 1) + 12 * numberOfCards;\n\nexport const ShareCredentialV2Group: FC<ShareCredentialV2GroupProps> = ({\n labels,\n language,\n lastGroup,\n onGroupSelect,\n onImagePreview,\n onSelectCredential,\n onSelectField,\n presentationDefinition,\n requestGroup,\n selected,\n selectedCredentials = {},\n style,\n testID,\n valid,\n}) => {\n const { expandedCredential, onHeaderPress } = useCredentialListExpandedCard();\n const numberOfCards = requestGroup.reduce(\n (acc, groupId) => acc + numberOfCardsForRequest(selectedCredentials, groupId),\n 0,\n );\n const singleCredentialGroup =\n requestGroup.length === 1 && !multipleCredentialsSelected(selectedCredentials, requestGroup[0]);\n\n const headerPressHandler = useCallback(() => {\n onGroupSelect?.(!selected);\n }, [selected, onGroupSelect]);\n\n const onNestedCardHeaderPress = useCallback(\n (credentialId: string) => () => {\n if (!selected) {\n onGroupSelect?.(true);\n }\n onHeaderPress(credentialId);\n },\n [selected, onGroupSelect, onHeaderPress],\n );\n\n const credentialCards = useMemo(() => {\n return requestGroup.flatMap((credentialRequestId, credentialRequestIndex, { length: credentialRequestsLength }) => {\n const lastQuery = credentialRequestIndex === credentialRequestsLength - 1;\n\n const credentialQuery = presentationDefinition.credentialQueries[credentialRequestId].credentialOrFailureHint;\n let defaultSelection: PresentationSubmitV2CredentialRequest;\n if (credentialQuery.type_ === 'APPLICABLE_CREDENTIALS') {\n defaultSelection = credentialQuery.applicableCredentials?.[0]\n ? {\n credentialId: credentialQuery.applicableCredentials[0].id,\n userSelections: [],\n transactionDataIds: [],\n }\n : {\n credentialId: '',\n userSelections: [],\n transactionDataIds: [],\n };\n } else {\n defaultSelection = {\n credentialId: '',\n userSelections: [],\n transactionDataIds: [],\n };\n }\n const request = selectedCredentials[credentialRequestId];\n const credentialSelections = request ? (Array.isArray(request) ? request : [request]) : [defaultSelection];\n\n return credentialSelections?.flatMap((credentialRequest, credentialIndex, { length: credentialsLength }) => {\n const selectedFields = credentialRequest.userSelections;\n const cardId = `${credentialRequestId}-${credentialRequest.credentialId}`;\n const lastItem = singleCredentialGroup ? lastGroup : lastQuery && credentialIndex === credentialsLength - 1;\n const cardExpanded = selected && (singleCredentialGroup || expandedCredential === cardId);\n const headerAccessory =\n singleCredentialGroup && valid ? (\n <Selector status={selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty} />\n ) : cardExpanded ? (\n UpIcon\n ) : (\n DownIcon\n );\n return (\n <ShareCredentialV2\n credentialQuery={credentialQuery}\n credentialRequestId={credentialRequestId}\n expanded={cardExpanded}\n grouped={!singleCredentialGroup}\n headerAccessory={headerAccessory}\n key={credentialRequestId}\n labels={labels}\n language={language}\n lastItem={lastItem}\n onHeaderPress={singleCredentialGroup ? headerPressHandler : onNestedCardHeaderPress(cardId)}\n onImagePreview={onImagePreview}\n onSelectCredential={onSelectCredential?.(credentialRequestId)}\n onSelectField={onSelectField(credentialRequestId)}\n selectedCredentialId={credentialRequest.credentialId}\n selectedFields={selectedFields}\n style={[!singleCredentialGroup && styles.requestedCredential, lastItem && styles.requestedCredentialLast]}\n testID={concatTestID(testID, credentialRequestId)}\n />\n );\n });\n });\n }, [\n expandedCredential,\n labels,\n language,\n lastGroup,\n headerPressHandler,\n onImagePreview,\n onNestedCardHeaderPress,\n onSelectCredential,\n onSelectField,\n presentationDefinition.credentialQueries,\n requestGroup,\n selected,\n selectedCredentials,\n singleCredentialGroup,\n testID,\n valid,\n ]);\n\n if (singleCredentialGroup) {\n return credentialCards[0];\n }\n\n const groupHeaderAccessory = valid ? (\n <Selector status={selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty} />\n ) : selected ? (\n UpIcon\n ) : (\n DownIcon\n );\n\n return (\n <Animated.View\n layout={LinearTransition}\n style={[\n styles.animatedWrapper,\n // eslint-disable-next-line react-native/no-inline-styles\n {\n height: selected || lastGroup ? 'auto' : heightForNumberOfCards(numberOfCards),\n },\n style,\n ]}>\n <Animated.View\n layout={LinearTransition}\n style={[\n singleCredentialGroup ? undefined : styles.groupedCredentialsWrapper,\n !singleCredentialGroup && styles.requestedCredential,\n lastGroup && styles.requestedCredentialLast,\n style,\n ]}>\n <BlurView blurStyle=\"strong\" darkMode={true} style={StyleSheet.absoluteFill} />\n <TouchableOpacity onPress={headerPressHandler}>\n <CredentialGroupHeader accessory={groupHeaderAccessory} name={labels.groupHeader} style={styles.header} />\n </TouchableOpacity>\n {credentialCards}\n </Animated.View>\n </Animated.View>\n );\n};\n\nconst styles = StyleSheet.create({\n animatedWrapper: {\n ...CredentialCardShadow,\n },\n groupedCredentialsWrapper: {\n borderRadius: 10 + GroupedShareCredentialV2Padding,\n borderWidth: 0,\n overflow: 'hidden',\n paddingBottom: GroupedShareCredentialV2Padding,\n },\n header: {\n marginBottom: GroupedShareCredentialV2Padding,\n },\n requestedCredential: {\n marginBottom: 12,\n },\n requestedCredentialLast: {\n marginBottom: 0,\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,9 +3,9 @@ import React, { useMemo } from 'react';
|
|
|
3
3
|
import { StyleSheet, View } from 'react-native';
|
|
4
4
|
import { concatTestID } from '../../../utils/testID';
|
|
5
5
|
import BlurView from '../../blur/blur-view';
|
|
6
|
-
import ImageOrComponent from '../../image/image-or-component';
|
|
7
6
|
import Typography from '../../text/typography';
|
|
8
7
|
import { useAppColorScheme } from '../../theme/color-scheme-context';
|
|
8
|
+
import CredentialLogo from './credential-logo';
|
|
9
9
|
const CredentialHeader = ({
|
|
10
10
|
accessory,
|
|
11
11
|
blur = true,
|
|
@@ -73,24 +73,13 @@ const CredentialHeader = ({
|
|
|
73
73
|
}, blur && /*#__PURE__*/React.createElement(BlurView, {
|
|
74
74
|
blurStyle: "strong",
|
|
75
75
|
style: StyleSheet.absoluteFill
|
|
76
|
-
}), /*#__PURE__*/React.createElement(
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
testID: concatTestID(testID, '
|
|
82
|
-
|
|
83
|
-
style: styles.image
|
|
84
|
-
}) : /*#__PURE__*/React.createElement(View, {
|
|
85
|
-
testID: concatTestID(testID, 'logoBackgroundColor', String(color))
|
|
86
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
87
|
-
testID: concatTestID(testID, 'logoTextColor', String(iconLabelColor))
|
|
88
|
-
}, /*#__PURE__*/React.createElement(Typography, {
|
|
89
|
-
testID: concatTestID(testID, 'logoName'),
|
|
90
|
-
color: iconLabelColor,
|
|
91
|
-
preset: "m",
|
|
92
|
-
style: styles.imagePlaceholder
|
|
93
|
-
}, credentialName.substring(0, 1))))), statusIconView && /*#__PURE__*/React.createElement(View, {
|
|
76
|
+
}), /*#__PURE__*/React.createElement(CredentialLogo, {
|
|
77
|
+
color: color,
|
|
78
|
+
icon: icon,
|
|
79
|
+
iconLabelColor: iconLabelColor,
|
|
80
|
+
credentialName: credentialName,
|
|
81
|
+
testID: concatTestID(testID, 'logo')
|
|
82
|
+
}), statusIconView && /*#__PURE__*/React.createElement(View, {
|
|
94
83
|
style: styles.statusIconWrapper
|
|
95
84
|
}, statusIconView), /*#__PURE__*/React.createElement(View, {
|
|
96
85
|
style: styles.text
|
|
@@ -126,25 +115,6 @@ const styles = StyleSheet.create({
|
|
|
126
115
|
flexDirection: 'row',
|
|
127
116
|
marginTop: -1
|
|
128
117
|
},
|
|
129
|
-
image: {
|
|
130
|
-
height: 44,
|
|
131
|
-
width: 44
|
|
132
|
-
},
|
|
133
|
-
imageContainer: {
|
|
134
|
-
alignItems: 'center',
|
|
135
|
-
borderRadius: 5,
|
|
136
|
-
borderWidth: 0,
|
|
137
|
-
height: 44,
|
|
138
|
-
justifyContent: 'center',
|
|
139
|
-
marginRight: 8,
|
|
140
|
-
overflow: 'hidden',
|
|
141
|
-
width: 44
|
|
142
|
-
},
|
|
143
|
-
imagePlaceholder: {
|
|
144
|
-
paddingLeft: 1,
|
|
145
|
-
paddingTop: 3,
|
|
146
|
-
textTransform: 'uppercase'
|
|
147
|
-
},
|
|
148
118
|
interpunct: {
|
|
149
119
|
marginHorizontal: 12,
|
|
150
120
|
opacity: 0.5
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","StyleSheet","View","concatTestID","BlurView","ImageOrComponent","Typography","useAppColorScheme","CredentialHeader","accessory","blur","color","credentialDetailPrimary","credentialDetailSecondary","credentialDetailTestID","credentialDetailErrorColor","credentialName","icon","iconLabelColor","statusIcon","style","testID","colorScheme","statusIconView","undefined","isValidElement","StatusIconComponent","createElement","accessoryView","AccessoryComponent","DetailText","commonProps","error","text","ellipsizeMode","numberOfLines","preset","styles","detailText","detailTextContainer","_extends","Fragment","interpunct","container","backgroundColor","white","blurStyle","absoluteFill","imageContainer","source","image","String","imagePlaceholder","substring","statusIconWrapper","nameText","create","alignItems","height","justifyContent","width","flexDirection","padding","flex","opacity","marginTop","borderRadius","borderWidth","marginRight","overflow","paddingLeft","paddingTop","textTransform","marginHorizontal","bottom","left","position"],"sources":["credential-header.tsx"],"sourcesContent":["import React, { FC, useMemo } from 'react';\nimport { AccessibilityProps, ColorValue, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { concatTestID } from '../../../utils/testID';\nimport BlurView from '../../blur/blur-view';\nimport ImageOrComponent, { ImageOrComponentSource } from '../../image/image-or-component';\nimport Typography, { TypographyProps } from '../../text/typography';\nimport { useAppColorScheme } from '../../theme/color-scheme-context';\n\nexport interface CredentialHeaderProps extends AccessibilityProps {\n accessory?: React.ComponentType<any> | React.ReactElement;\n blur?: boolean;\n color?: ColorValue;\n credentialDetailPrimary?: string;\n credentialDetailSecondary?: string;\n credentialDetailTestID?: string;\n credentialDetailErrorColor?: boolean;\n credentialName: string;\n icon?: ImageOrComponentSource;\n iconLabelColor?: ColorValue;\n statusIcon?: React.ComponentType<any> | React.ReactElement;\n style?: StyleProp<ViewStyle>;\n testID?: string;\n}\n\nconst CredentialHeader: FC<CredentialHeaderProps> = ({\n accessory,\n blur = true,\n color = '#5A69F3',\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID,\n credentialDetailErrorColor,\n credentialName,\n icon,\n iconLabelColor = '#FFFFFF',\n statusIcon,\n style,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n\n const statusIconView: React.ReactElement | undefined = useMemo(() => {\n if (!statusIcon) {\n return undefined;\n }\n if (React.isValidElement(statusIcon)) {\n return statusIcon;\n } else {\n const StatusIconComponent = statusIcon as React.ComponentType<any>;\n return <StatusIconComponent />;\n }\n }, [statusIcon]);\n\n const accessoryView: React.ReactElement | undefined = useMemo(() => {\n if (!accessory) {\n return undefined;\n }\n if (React.isValidElement(accessory)) {\n return accessory;\n } else {\n const AccessoryComponent = accessory as React.ComponentType<any>;\n return <AccessoryComponent />;\n }\n }, [accessory]);\n\n const DetailText = useMemo(() => {\n if (!credentialDetailPrimary) {\n return undefined;\n }\n const commonProps: TypographyProps = {\n color: credentialDetailErrorColor ? colorScheme.error : colorScheme.text,\n ellipsizeMode: 'tail',\n numberOfLines: 1,\n preset: 'xs',\n style: styles.detailText,\n };\n return (\n <View style={styles.detailTextContainer}>\n <Typography {...commonProps} testID={credentialDetailTestID ?? concatTestID(testID, 'primaryDetail')}>\n {credentialDetailPrimary}\n </Typography>\n {credentialDetailSecondary ? (\n <>\n <Typography {...commonProps} style={styles.interpunct}>\n {'·'}\n </Typography>\n <Typography {...commonProps} testID={concatTestID(testID, 'secondaryDetail')}>\n {credentialDetailSecondary}\n </Typography>\n </>\n ) : null}\n </View>\n );\n }, [\n credentialDetailPrimary,\n credentialDetailSecondary,\n colorScheme,\n testID,\n credentialDetailErrorColor,\n credentialDetailTestID,\n ]);\n\n return (\n <View style={[styles.container, { backgroundColor: blur ? undefined : colorScheme.white }, style]} testID={testID}>\n {blur && <BlurView blurStyle=\"strong\" style={StyleSheet.absoluteFill} />}\n <View style={[styles.imageContainer, { backgroundColor: color }]}>\n {icon ? (\n <ImageOrComponent testID={concatTestID(testID, 'logoIcon')} source={icon} style={styles.image} />\n ) : (\n <View testID={concatTestID(testID, 'logoBackgroundColor', String(color))}>\n <View testID={concatTestID(testID, 'logoTextColor', String(iconLabelColor))}>\n <Typography\n testID={concatTestID(testID, 'logoName')}\n color={iconLabelColor}\n preset=\"m\"\n style={styles.imagePlaceholder}>\n {credentialName.substring(0, 1)}\n </Typography>\n </View>\n </View>\n )}\n </View>\n {statusIconView && <View style={styles.statusIconWrapper}>{statusIconView}</View>}\n <View style={styles.text}>\n <Typography\n testID={concatTestID(testID, 'name')}\n color={colorScheme.text}\n ellipsizeMode={'tail'}\n numberOfLines={1}\n preset=\"regular\"\n style={styles.nameText}>\n {credentialName}\n </Typography>\n {DetailText}\n </View>\n {accessoryView && <View style={styles.accessory}>{accessoryView}</View>}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n accessory: {\n alignItems: 'center',\n height: 44,\n justifyContent: 'center',\n width: 44,\n },\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n height: 60,\n padding: 8,\n },\n detailText: {\n flex: 1,\n opacity: 0.7,\n },\n detailTextContainer: {\n flexDirection: 'row',\n marginTop: -1,\n },\n image: {\n height: 44,\n width: 44,\n },\n imageContainer: {\n alignItems: 'center',\n borderRadius: 5,\n borderWidth: 0,\n height: 44,\n justifyContent: 'center',\n marginRight: 8,\n overflow: 'hidden',\n width: 44,\n },\n imagePlaceholder: {\n paddingLeft: 1,\n paddingTop: 3,\n textTransform: 'uppercase',\n },\n interpunct: {\n marginHorizontal: 12,\n opacity: 0.5,\n },\n nameText: {\n marginTop: 2,\n },\n statusIconWrapper: {\n bottom: 3,\n left: 36,\n position: 'absolute',\n },\n text: {\n flex: 1,\n justifyContent: 'center',\n },\n});\n\nexport default CredentialHeader;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useMemo","StyleSheet","View","concatTestID","BlurView","Typography","useAppColorScheme","CredentialLogo","CredentialHeader","accessory","blur","color","credentialDetailPrimary","credentialDetailSecondary","credentialDetailTestID","credentialDetailErrorColor","credentialName","icon","iconLabelColor","statusIcon","style","testID","colorScheme","statusIconView","undefined","isValidElement","StatusIconComponent","createElement","accessoryView","AccessoryComponent","DetailText","commonProps","error","text","ellipsizeMode","numberOfLines","preset","styles","detailText","detailTextContainer","_extends","Fragment","interpunct","container","backgroundColor","white","blurStyle","absoluteFill","statusIconWrapper","nameText","create","alignItems","height","justifyContent","width","flexDirection","padding","flex","opacity","marginTop","marginHorizontal","bottom","left","position"],"sources":["credential-header.tsx"],"sourcesContent":["import React, { FC, useMemo } from 'react';\nimport { AccessibilityProps, ColorValue, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { concatTestID } from '../../../utils/testID';\nimport BlurView from '../../blur/blur-view';\nimport { ImageOrComponentSource } from '../../image/image-or-component';\nimport Typography, { TypographyProps } from '../../text/typography';\nimport { useAppColorScheme } from '../../theme/color-scheme-context';\nimport CredentialLogo from './credential-logo';\n\nexport interface CredentialHeaderProps extends AccessibilityProps {\n accessory?: React.ComponentType<any> | React.ReactElement;\n blur?: boolean;\n color?: ColorValue;\n credentialDetailPrimary?: string;\n credentialDetailSecondary?: string;\n credentialDetailTestID?: string;\n credentialDetailErrorColor?: boolean;\n credentialName: string;\n icon?: ImageOrComponentSource;\n iconLabelColor?: ColorValue;\n statusIcon?: React.ComponentType<any> | React.ReactElement;\n style?: StyleProp<ViewStyle>;\n testID?: string;\n}\n\nconst CredentialHeader: FC<CredentialHeaderProps> = ({\n accessory,\n blur = true,\n color = '#5A69F3',\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID,\n credentialDetailErrorColor,\n credentialName,\n icon,\n iconLabelColor = '#FFFFFF',\n statusIcon,\n style,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n\n const statusIconView: React.ReactElement | undefined = useMemo(() => {\n if (!statusIcon) {\n return undefined;\n }\n if (React.isValidElement(statusIcon)) {\n return statusIcon;\n } else {\n const StatusIconComponent = statusIcon as React.ComponentType<any>;\n return <StatusIconComponent />;\n }\n }, [statusIcon]);\n\n const accessoryView: React.ReactElement | undefined = useMemo(() => {\n if (!accessory) {\n return undefined;\n }\n if (React.isValidElement(accessory)) {\n return accessory;\n } else {\n const AccessoryComponent = accessory as React.ComponentType<any>;\n return <AccessoryComponent />;\n }\n }, [accessory]);\n\n const DetailText = useMemo(() => {\n if (!credentialDetailPrimary) {\n return undefined;\n }\n const commonProps: TypographyProps = {\n color: credentialDetailErrorColor ? colorScheme.error : colorScheme.text,\n ellipsizeMode: 'tail',\n numberOfLines: 1,\n preset: 'xs',\n style: styles.detailText,\n };\n return (\n <View style={styles.detailTextContainer}>\n <Typography {...commonProps} testID={credentialDetailTestID ?? concatTestID(testID, 'primaryDetail')}>\n {credentialDetailPrimary}\n </Typography>\n {credentialDetailSecondary ? (\n <>\n <Typography {...commonProps} style={styles.interpunct}>\n {'·'}\n </Typography>\n <Typography {...commonProps} testID={concatTestID(testID, 'secondaryDetail')}>\n {credentialDetailSecondary}\n </Typography>\n </>\n ) : null}\n </View>\n );\n }, [\n credentialDetailPrimary,\n credentialDetailSecondary,\n colorScheme,\n testID,\n credentialDetailErrorColor,\n credentialDetailTestID,\n ]);\n\n return (\n <View style={[styles.container, { backgroundColor: blur ? undefined : colorScheme.white }, style]} testID={testID}>\n {blur && <BlurView blurStyle=\"strong\" style={StyleSheet.absoluteFill} />}\n <CredentialLogo\n color={color}\n icon={icon}\n iconLabelColor={iconLabelColor}\n credentialName={credentialName}\n testID={concatTestID(testID, 'logo')}\n />\n {statusIconView && <View style={styles.statusIconWrapper}>{statusIconView}</View>}\n <View style={styles.text}>\n <Typography\n testID={concatTestID(testID, 'name')}\n color={colorScheme.text}\n ellipsizeMode={'tail'}\n numberOfLines={1}\n preset=\"regular\"\n style={styles.nameText}>\n {credentialName}\n </Typography>\n {DetailText}\n </View>\n {accessoryView && <View style={styles.accessory}>{accessoryView}</View>}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n accessory: {\n alignItems: 'center',\n height: 44,\n justifyContent: 'center',\n width: 44,\n },\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n height: 60,\n padding: 8,\n },\n detailText: {\n flex: 1,\n opacity: 0.7,\n },\n detailTextContainer: {\n flexDirection: 'row',\n marginTop: -1,\n },\n interpunct: {\n marginHorizontal: 12,\n opacity: 0.5,\n },\n nameText: {\n marginTop: 2,\n },\n statusIconWrapper: {\n bottom: 3,\n left: 36,\n position: 'absolute',\n },\n text: {\n flex: 1,\n justifyContent: 'center',\n },\n});\n\nexport default CredentialHeader;\n"],"mappings":"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","ignoreList":[]}
|