@procivis/one-react-native-components 0.3.132 → 0.3.142
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/history/history-list-item-icon.js +2 -0
- package/lib/commonjs/components/history/history-list-item-icon.js.map +1 -1
- package/lib/commonjs/ui-components/buttons/scan-button.js +122 -27
- package/lib/commonjs/ui-components/buttons/scan-button.js.map +1 -1
- package/lib/commonjs/ui-components/credential/card/credential-details-card.js +37 -18
- package/lib/commonjs/ui-components/credential/card/credential-details-card.js.map +1 -1
- package/lib/commonjs/ui-components/credential/credential-attribute-item.js +13 -4
- package/lib/commonjs/ui-components/credential/credential-attribute-item.js.map +1 -1
- package/lib/commonjs/ui-components/icons/icons.js +36 -2
- package/lib/commonjs/ui-components/icons/icons.js.map +1 -1
- package/lib/commonjs/ui-components/list/wallet/empty-list.js +2 -1
- package/lib/commonjs/ui-components/list/wallet/empty-list.js.map +1 -1
- package/lib/commonjs/ui-components/notice/wallet-notice.js +4 -2
- package/lib/commonjs/ui-components/notice/wallet-notice.js.map +1 -1
- package/lib/commonjs/ui-components/text/expandableTypography.js +64 -0
- package/lib/commonjs/ui-components/text/expandableTypography.js.map +1 -0
- package/lib/commonjs/ui-components/text/index.js +15 -0
- package/lib/commonjs/ui-components/text/index.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/credential-schemas.js +24 -1
- package/lib/commonjs/utils/hooks/core/credential-schemas.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/wallet-unit.js +20 -1
- package/lib/commonjs/utils/hooks/core/wallet-unit.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential-sharing-v2.js +1 -5
- package/lib/commonjs/utils/parsers/credential-sharing-v2.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential-sharing.js +17 -11
- package/lib/commonjs/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential.js +12 -4
- package/lib/commonjs/utils/parsers/credential.js.map +1 -1
- package/lib/module/components/history/history-list-item-icon.js +2 -0
- package/lib/module/components/history/history-list-item-icon.js.map +1 -1
- package/lib/module/ui-components/buttons/scan-button.js +124 -29
- package/lib/module/ui-components/buttons/scan-button.js.map +1 -1
- package/lib/module/ui-components/credential/card/credential-details-card.js +37 -18
- package/lib/module/ui-components/credential/card/credential-details-card.js.map +1 -1
- package/lib/module/ui-components/credential/credential-attribute-item.js +13 -4
- package/lib/module/ui-components/credential/credential-attribute-item.js.map +1 -1
- package/lib/module/ui-components/icons/icons.js +32 -0
- package/lib/module/ui-components/icons/icons.js.map +1 -1
- package/lib/module/ui-components/list/wallet/empty-list.js +2 -1
- package/lib/module/ui-components/list/wallet/empty-list.js.map +1 -1
- package/lib/module/ui-components/notice/wallet-notice.js +4 -2
- package/lib/module/ui-components/notice/wallet-notice.js.map +1 -1
- package/lib/module/ui-components/text/expandableTypography.js +55 -0
- package/lib/module/ui-components/text/expandableTypography.js.map +1 -0
- package/lib/module/ui-components/text/index.js +2 -1
- package/lib/module/ui-components/text/index.js.map +1 -1
- package/lib/module/utils/hooks/core/credential-schemas.js +24 -1
- package/lib/module/utils/hooks/core/credential-schemas.js.map +1 -1
- package/lib/module/utils/hooks/core/wallet-unit.js +18 -0
- package/lib/module/utils/hooks/core/wallet-unit.js.map +1 -1
- package/lib/module/utils/parsers/credential-sharing-v2.js +1 -5
- package/lib/module/utils/parsers/credential-sharing-v2.js.map +1 -1
- package/lib/module/utils/parsers/credential-sharing.js +18 -12
- package/lib/module/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/module/utils/parsers/credential.js +10 -4
- package/lib/module/utils/parsers/credential.js.map +1 -1
- package/lib/typescript/ui-components/buttons/scan-button.d.ts +9 -3
- package/lib/typescript/ui-components/credential/card/credential-details-card.d.ts +3 -0
- package/lib/typescript/ui-components/credential/credential-attribute-item.d.ts +3 -0
- package/lib/typescript/ui-components/icons/icons.d.ts +2 -0
- package/lib/typescript/ui-components/list/wallet/empty-list.d.ts +2 -2
- package/lib/typescript/ui-components/text/expandableTypography.d.ts +10 -0
- package/lib/typescript/ui-components/text/index.d.ts +2 -1
- package/lib/typescript/ui-components/text/typography.d.ts +14 -14
- package/lib/typescript/utils/hooks/app-state.d.ts +1 -1
- package/lib/typescript/utils/hooks/core/wallet-unit.d.ts +5 -1
- package/lib/typescript/utils/parsers/credential-sharing.d.ts +4 -3
- package/lib/typescript/utils/parsers/credential.d.ts +2 -1
- package/package.json +3 -3
- package/src/components/history/history-list-item-icon.tsx +2 -0
- package/src/ui-components/buttons/scan-button.tsx +130 -38
- package/src/ui-components/credential/card/credential-details-card.tsx +46 -19
- package/src/ui-components/credential/credential-attribute-item.tsx +15 -3
- package/src/ui-components/icons/icons.tsx +24 -0
- package/src/ui-components/list/wallet/empty-list.tsx +11 -8
- package/src/ui-components/notice/wallet-notice.tsx +4 -2
- package/src/ui-components/text/expandableTypography.tsx +71 -0
- package/src/ui-components/text/index.ts +2 -1
- package/src/utils/hooks/core/credential-schemas.ts +23 -1
- package/src/utils/hooks/core/wallet-unit.ts +21 -0
- package/src/utils/parsers/credential-sharing-v2.tsx +1 -5
- package/src/utils/parsers/credential-sharing.tsx +20 -9
- package/src/utils/parsers/credential.ts +14 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CredentialState, DataType, FormatFeature } from '@procivis/react-native-one-core';
|
|
1
|
+
import { CredentialState, CredentialType, DataType, FormatFeature } from '@procivis/react-native-one-core';
|
|
2
2
|
import { CredentialErrorIcon, CredentialNoticeInfoIcon, CredentialNoticeWarningIcon, CredentialWarningIcon } from '../../ui-components/icons';
|
|
3
3
|
import { formatDateLocalized, formatDateTimeLocalized } from '../date';
|
|
4
4
|
import { concatTestID } from '../testID';
|
|
@@ -103,7 +103,7 @@ export const cardHeaderFromCredential = (credential, claims = [], config, testID
|
|
|
103
103
|
const {
|
|
104
104
|
layoutProperties
|
|
105
105
|
} = credential.schema;
|
|
106
|
-
const defaultLanguage = config.defaultLanguage;
|
|
106
|
+
const defaultLanguage = config.globalSettings.defaultLanguage;
|
|
107
107
|
return {
|
|
108
108
|
color: layoutProperties === null || layoutProperties === void 0 || (_layoutProperties$log = layoutProperties.logo) === null || _layoutProperties$log === void 0 ? void 0 : _layoutProperties$log.backgroundColor,
|
|
109
109
|
credentialDetailErrorColor,
|
|
@@ -126,7 +126,7 @@ export const getCredentialCardPropsFromCredential = (credential, claims = [], co
|
|
|
126
126
|
const {
|
|
127
127
|
layoutProperties
|
|
128
128
|
} = credential.schema;
|
|
129
|
-
const defaultLanguage = config.defaultLanguage;
|
|
129
|
+
const defaultLanguage = config.globalSettings.defaultLanguage;
|
|
130
130
|
if (hasMsoValidityIssues(credential)) {
|
|
131
131
|
notice = {
|
|
132
132
|
text: labels.validityIssuesNotice,
|
|
@@ -159,7 +159,7 @@ export const getCredentialCardPropsFromCredential = (credential, claims = [], co
|
|
|
159
159
|
export const detailsCardAttributeFromClaim = (claim, config, testID, language) => {
|
|
160
160
|
var _getTranslatedLabel2;
|
|
161
161
|
const value = detailsCardAttributeValueFromClaim(claim, config, testID, language);
|
|
162
|
-
const defaultLanguage = config.defaultLanguage;
|
|
162
|
+
const defaultLanguage = config.globalSettings.defaultLanguage;
|
|
163
163
|
return {
|
|
164
164
|
id: claim.path,
|
|
165
165
|
name: (_getTranslatedLabel2 = getTranslatedLabel(claim.schema.translations.name, language, defaultLanguage)) !== null && _getTranslatedLabel2 !== void 0 ? _getTranslatedLabel2 : claim.path.split('/').pop(),
|
|
@@ -344,4 +344,10 @@ export function getCredentialSchemaWithoutImages(credentialSchema) {
|
|
|
344
344
|
}
|
|
345
345
|
};
|
|
346
346
|
}
|
|
347
|
+
export function credentialDetailFromPresentationV2Credential(presentationCredential) {
|
|
348
|
+
return {
|
|
349
|
+
type: CredentialType.SINGLE,
|
|
350
|
+
...presentationCredential
|
|
351
|
+
};
|
|
352
|
+
}
|
|
347
353
|
//# sourceMappingURL=credential.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CredentialState","DataType","FormatFeature","CredentialErrorIcon","CredentialNoticeInfoIcon","CredentialNoticeWarningIcon","CredentialWarningIcon","formatDateLocalized","formatDateTimeLocalized","concatTestID","getTranslatedLabel","getCarouselImagesFromClaims","ValidityState","getValidityState","credential","state","REVOKED","Revoked","SUSPENDED","Suspended","Valid","supportsSelectiveDisclosure","config","_formatConfig$capabil","formatConfig","format","schema","Boolean","capabilities","features","includes","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","suspended","credentialDetailTestID","statusIcon","revoked","credentialDetailErrorColor","validityIssues","issuanceDate","createdDate","credentialDetailSecondary","primary","primaryAttribute","secondary","secondaryAttribute","cardHeaderFromCredential","_layoutProperties$log","_getTranslatedLabel","_credential$schema$tr","_layoutProperties$log2","_layoutProperties$log3","defaultLanguage","color","logo","backgroundColor","credentialName","translations","name","icon","image","imageSource","uri","iconLabelColor","fontColor","getCredentialCardPropsFromCredential","notice","_layoutProperties$bac","_layoutProperties$bac2","text","validityIssuesNotice","noticeIcon","_credential$schema$tr2","description","result","cardCarouselImages","cardImage","background","header","detailsCardAttributeFromClaim","_getTranslatedLabel2","id","split","pop","typeConfig","datatype","array","values","map","arrayValue","index","toString","type","Object","attributes","nestedClaim","_formatDateLocalized","String","date","Picture","SwiyuPicture","_typeConfig$params","params","showAs","detailsCardFromCredential","detailsCardFromCredentialWithClaims","card","nestAttributes","attribute","attributePath","length","push","first","rest","parent","a","insertAttributeInParent","join","nestAttributeInDummyParent","pathParts","listValue","disabled","_parent$attributes","nextParent","_parent$values","_parent$attributes2","parseBase64Image","getCredentialSchemaWithoutImages","credentialSchema","_credentialSchema$lay","_credentialSchema$lay2","_credentialSchema$lay3","_credentialSchema$lay4"],"sources":["credential.ts"],"sourcesContent":["import {\n Claim,\n CoreConfig,\n CredentialDetail,\n CredentialListItem,\n CredentialSchemaListItem,\n CredentialState,\n DataType,\n FormatFeature,\n} from '@procivis/react-native-one-core';\nimport { FC } from 'react';\nimport { SvgProps } from 'react-native-svg';\n\nimport {\n CredentialAttribute,\n CredentialAttributeValue,\n CredentialCardProps,\n CredentialDetailsCardProps,\n CredentialHeaderProps,\n} from '../../ui-components/credential';\nimport { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';\nimport {\n CredentialErrorIcon,\n CredentialNoticeInfoIcon,\n CredentialNoticeWarningIcon,\n CredentialWarningIcon,\n} from '../../ui-components/icons';\nimport { formatDateLocalized, formatDateTimeLocalized } from '../date';\nimport { concatTestID } from '../testID';\nimport { getTranslatedLabel } from '../translations';\nimport { getCarouselImagesFromClaims } from './credential-images';\n\nexport enum ValidityState {\n Revoked = 'revoked',\n Suspended = 'suspended',\n Valid = 'valid',\n}\n\nexport const getValidityState = (credential: CredentialListItem | undefined) => {\n if (credential?.state === CredentialState.REVOKED) {\n return ValidityState.Revoked;\n }\n if (credential?.state === CredentialState.SUSPENDED) {\n return ValidityState.Suspended;\n }\n return ValidityState.Valid;\n};\n\nexport const supportsSelectiveDisclosure = (\n credential: CredentialListItem | undefined,\n config: CoreConfig | undefined,\n) => {\n const formatConfig = credential && config?.format[credential.schema.format];\n return formatConfig\n ? Boolean(formatConfig.capabilities?.features?.includes(FormatFeature.SelectiveDisclosure))\n : undefined;\n};\n\nexport const findClaimByPath = (path: string | undefined, claims: Claim[]): Claim | undefined => {\n if (!path) {\n return undefined;\n }\n\n const exactClaim = claims.find((claim) => claim.path === path);\n if (exactClaim) {\n return exactClaim;\n }\n\n const parentClaim = claims.find((claim) => path.startsWith(`${claim.path}/`));\n if (parentClaim && parentClaim.value.type_ === 'NESTED') {\n return findClaimByPath(path, parentClaim.value.value);\n }\n\n return undefined;\n};\n\nconst formatCredentialDetail = (\n claim: Claim,\n config: CoreConfig,\n testID: string,\n language: string | undefined,\n): string => {\n const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID, language);\n return attributeValue.value ?? '';\n};\n\nexport const hasMsoValidityIssues = (credential: CredentialDetail): boolean => {\n const mdocMsoValidityIssue = Boolean(\n credential.mdocMsoValidity?.nextUpdate && new Date(credential.mdocMsoValidity.nextUpdate) < new Date(),\n );\n\n return mdocMsoValidityIssue;\n};\n\nexport type CardHeaderLabels = {\n validityIssues: string;\n revoked: string;\n suspended: string;\n suspendedUntil: (date: string) => string;\n};\n\nconst credentialDetailFromCredential = (\n credential: CredentialDetail,\n claims: Claim[] = [],\n config: CoreConfig,\n testID: string,\n labels: CardHeaderLabels,\n language: string | undefined,\n): {\n credentialDetailPrimary?: string;\n credentialDetailSecondary?: string;\n credentialDetailErrorColor?: boolean;\n credentialDetailTestID?: string;\n statusIcon?: FC<SvgProps>;\n} => {\n const { layoutProperties } = credential.schema;\n\n switch (credential.state) {\n case CredentialState.SUSPENDED:\n return {\n credentialDetailPrimary: credential.suspendEndDate\n ? labels.suspendedUntil(formatDateTimeLocalized(new Date(credential.suspendEndDate))!)\n : labels.suspended,\n credentialDetailTestID: concatTestID(testID, 'suspended'),\n statusIcon: CredentialWarningIcon,\n };\n case CredentialState.REVOKED:\n return {\n credentialDetailPrimary: labels.revoked,\n credentialDetailErrorColor: true,\n credentialDetailTestID: concatTestID(testID, 'revoked'),\n statusIcon: CredentialErrorIcon,\n };\n }\n\n if (hasMsoValidityIssues(credential)) {\n return {\n credentialDetailPrimary: labels.validityIssues,\n credentialDetailTestID: concatTestID(testID, 'validity-issue'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n let credentialDetailPrimary =\n formatDateTimeLocalized(new Date(credential.issuanceDate ?? credential.createdDate)) ?? '';\n let credentialDetailSecondary: string | undefined;\n\n const primary = findClaimByPath(layoutProperties?.primaryAttribute, claims);\n\n if (primary) {\n credentialDetailPrimary = formatCredentialDetail(primary, config, concatTestID(testID, 'primary'), language);\n }\n\n const secondary = findClaimByPath(layoutProperties?.secondaryAttribute, claims);\n\n if (secondary) {\n credentialDetailSecondary = formatCredentialDetail(secondary, config, concatTestID(testID, 'secondary'), language);\n }\n\n return {\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID: concatTestID(testID, 'detail'),\n };\n};\n\nexport const cardHeaderFromCredential = (\n credential: CredentialDetail,\n claims: Claim[] = [],\n config: CoreConfig,\n testID: string,\n labels: CardHeaderLabels,\n language: string | undefined,\n): Omit<CredentialHeaderProps, 'style'> => {\n const {\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailErrorColor,\n credentialDetailTestID,\n statusIcon,\n } = credentialDetailFromCredential(credential, claims, config, testID, labels, language);\n const { layoutProperties } = credential.schema;\n const defaultLanguage = config.defaultLanguage;\n\n return {\n color: layoutProperties?.logo?.backgroundColor,\n credentialDetailErrorColor,\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID,\n credentialName:\n getTranslatedLabel(credential.schema.translations?.name, language, defaultLanguage) ?? credential.schema.name,\n icon: layoutProperties?.logo?.image\n ? {\n imageSource: {\n uri: layoutProperties.logo.image,\n },\n }\n : undefined,\n iconLabelColor: layoutProperties?.logo?.fontColor,\n statusIcon,\n testID,\n };\n};\n\nexport type CardLabels = CardHeaderLabels & {\n validityIssuesNotice: string;\n};\n\nexport const getCredentialCardPropsFromCredential = (\n credential: CredentialDetail,\n claims: Claim[] = [],\n config: CoreConfig,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: CardLabels,\n language: string | undefined,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n const { layoutProperties } = credential.schema;\n const defaultLanguage = config.defaultLanguage;\n\n if (hasMsoValidityIssues(credential)) {\n notice = {\n text: labels.validityIssuesNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n };\n } else if (!notice) {\n let description = getTranslatedLabel(credential.schema.translations?.description, language, defaultLanguage);\n if (description) {\n notice = {\n text: description,\n noticeIcon: CredentialNoticeInfoIcon,\n };\n }\n }\n\n const result: Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> = {\n cardCarouselImages: getCarouselImagesFromClaims(claims, layoutProperties, concatTestID(testID, 'carousel')),\n cardImage: layoutProperties?.background?.image\n ? { imageSource: { uri: layoutProperties.background.image } }\n : undefined,\n color: layoutProperties?.background?.color,\n header: cardHeaderFromCredential(credential, claims, config, concatTestID(testID, 'header'), labels, language),\n testID,\n notice,\n };\n\n return result;\n};\n\nexport const detailsCardAttributeFromClaim = (\n claim: Claim,\n config: CoreConfig,\n testID: string,\n language: string | undefined,\n): CredentialAttribute => {\n const value = detailsCardAttributeValueFromClaim(claim, config, testID, language);\n const defaultLanguage = config.defaultLanguage;\n return {\n id: claim.path,\n name: getTranslatedLabel(claim.schema.translations.name, language, defaultLanguage) ?? claim.path.split('/').pop(),\n path: claim.path,\n ...value,\n };\n};\n\nconst detailsCardAttributeValueFromClaim = (\n claim: Claim,\n config: CoreConfig,\n testID: string,\n language: string | undefined,\n): CredentialAttributeValue => {\n const typeConfig = config?.datatype[claim.schema.datatype];\n\n if (claim.schema.array) {\n return {\n values: ((claim.value.value as Claim[]) || []).map((arrayValue, index) => {\n return detailsCardAttributeFromClaim(arrayValue, config, concatTestID(testID, index.toString()), language);\n }),\n };\n } else {\n switch (typeConfig?.type) {\n case DataType.Object: {\n if (claim.value.type_ !== 'NESTED') {\n return { attributes: [] };\n }\n return {\n attributes: claim.value.value.map((nestedClaim, index) =>\n detailsCardAttributeFromClaim(nestedClaim, config, concatTestID(testID, index.toString()), language),\n ),\n };\n }\n case DataType.Date: {\n if (!claim.value.value) {\n // Don't try to parse empty values (which will return \"Invalid Date\")\n return { testID: testID, value: String(claim.value.value) };\n }\n const date = claim.value.value as string;\n return {\n testID: testID,\n value: formatDateLocalized(new Date(date)) ?? date,\n };\n }\n case DataType.Picture: // fallback\n case DataType.SwiyuPicture: {\n if (typeConfig.params?.showAs === 'IMAGE') {\n return { image: { uri: claim.value.value as string }, testID: testID };\n } else {\n return { testID: testID, value: claim.value.value as string };\n }\n }\n default:\n return { testID: testID, value: String(claim.value.value) };\n }\n }\n};\n\nexport type CredentialDetailsCardPropsWithoutWidth = Omit<CredentialDetailsCardProps, 'expanded' | 'card'> & {\n card: Omit<CredentialCardProps, 'width'>;\n};\n\nexport const detailsCardFromCredential = (\n credential: CredentialDetail,\n config: CoreConfig,\n testID: string,\n labels: CardLabels,\n language: string | undefined,\n): CredentialDetailsCardPropsWithoutWidth => {\n return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels, language);\n};\n\nexport const detailsCardFromCredentialWithClaims = (\n credential: CredentialDetail,\n claims: Claim[],\n config: CoreConfig,\n testID: string,\n labels: CardLabels,\n language: string | undefined,\n): CredentialDetailsCardPropsWithoutWidth => {\n const attributes: CredentialAttribute[] = claims.map((claim, index) =>\n detailsCardAttributeFromClaim(claim, config, concatTestID(testID, 'attribute', index.toString()), language),\n );\n\n const card = getCredentialCardPropsFromCredential(\n credential,\n claims,\n config,\n undefined,\n concatTestID(testID, 'card'),\n labels,\n language,\n );\n\n return {\n attributes,\n card,\n };\n};\n\n// Converts a flat list of attributes into a nested structure\n// modifies the names to not include slashes\nexport const nestAttributes = (attributes: CredentialAttribute[]): CredentialAttribute[] => {\n const result: CredentialAttribute[] = [];\n\n for (const attribute of attributes) {\n const attributePath = attribute.path.split('/');\n if (attributePath.length === 0) {\n result.push(attribute);\n } else {\n const [first, ...rest] = attributePath;\n const parent = result.find((a) => a.name === first);\n if (parent) {\n insertAttributeInParent({ ...attribute, path: rest.join('/') }, parent);\n } else {\n result.push(nestAttributeInDummyParent(attribute));\n }\n }\n }\n\n return result;\n};\n\n// We nest the leaf node in a (one or more) nested object(s)\n// to make sure the tree structure is correctly rendered in proof request screens.\nconst nestAttributeInDummyParent = (attribute: CredentialAttribute): CredentialAttribute => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n if (!rest.length) {\n return attribute;\n }\n\n // The dummy object is not selectable, and contains a placeholder ID\n // the user can't interact with it.\n if (attribute.listValue) {\n return {\n values: [nestAttributeInDummyParent({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: first,\n };\n } else {\n return {\n attributes: [nestAttributeInDummyParent({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: first,\n };\n }\n};\n\n// Recursively insert an attribute into an parent\n// Will create nested parents if necessary\nconst insertAttributeInParent = (attribute: CredentialAttribute, parent: CredentialAttribute) => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n\n const nextParent = parent.attributes?.find((a) => a.name === first);\n\n if (!nextParent) {\n if (attribute.listValue) {\n parent.values?.push(nestAttributeInDummyParent(attribute));\n } else {\n parent.attributes?.push(nestAttributeInDummyParent(attribute));\n }\n } else {\n insertAttributeInParent({ ...attribute, path: rest.join('/') }, nextParent);\n }\n};\n\nfunction parseBase64Image(image: string | undefined) {\n return image ? '__BASE64IMAGE__' : '';\n}\n\nexport function getCredentialSchemaWithoutImages<T extends CredentialSchemaListItem>(credentialSchema: T): T {\n return {\n ...credentialSchema,\n layoutProperties: {\n ...credentialSchema.layoutProperties,\n background: {\n ...credentialSchema.layoutProperties?.background,\n image: parseBase64Image(credentialSchema.layoutProperties?.background?.image),\n },\n logo: {\n ...credentialSchema.layoutProperties?.logo,\n image: parseBase64Image(credentialSchema.layoutProperties?.logo?.image),\n },\n },\n };\n}\n"],"mappings":"AAAA,SAMEA,eAAe,EACfC,QAAQ,EACRC,aAAa,QACR,iCAAiC;AAYxC,SACEC,mBAAmB,EACnBC,wBAAwB,EACxBC,2BAA2B,EAC3BC,qBAAqB,QAChB,2BAA2B;AAClC,SAASC,mBAAmB,EAAEC,uBAAuB,QAAQ,SAAS;AACtE,SAASC,YAAY,QAAQ,WAAW;AACxC,SAASC,kBAAkB,QAAQ,iBAAiB;AACpD,SAASC,2BAA2B,QAAQ,qBAAqB;AAEjE,WAAYC,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAMzB,OAAO,MAAMC,gBAAgB,GAAIC,UAA0C,IAAK;EAC9E,IAAI,CAAAA,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEC,KAAK,MAAKf,eAAe,CAACgB,OAAO,EAAE;IACjD,OAAOJ,aAAa,CAACK,OAAO;EAC9B;EACA,IAAI,CAAAH,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEC,KAAK,MAAKf,eAAe,CAACkB,SAAS,EAAE;IACnD,OAAON,aAAa,CAACO,SAAS;EAChC;EACA,OAAOP,aAAa,CAACQ,KAAK;AAC5B,CAAC;AAED,OAAO,MAAMC,2BAA2B,GAAGA,CACzCP,UAA0C,EAC1CQ,MAA8B,KAC3B;EAAA,IAAAC,qBAAA;EACH,MAAMC,YAAY,GAAGV,UAAU,KAAIQ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEG,MAAM,CAACX,UAAU,CAACY,MAAM,CAACD,MAAM,CAAC;EAC3E,OAAOD,YAAY,GACfG,OAAO,EAAAJ,qBAAA,GAACC,YAAY,CAACI,YAAY,cAAAL,qBAAA,gBAAAA,qBAAA,GAAzBA,qBAAA,CAA2BM,QAAQ,cAAAN,qBAAA,uBAAnCA,qBAAA,CAAqCO,QAAQ,CAAC5B,aAAa,CAAC6B,mBAAmB,CAAC,CAAC,GACzFC,SAAS;AACf,CAAC;AAED,OAAO,MAAMC,eAAe,GAAGA,CAACC,IAAwB,EAAEC,MAAe,KAAwB;EAC/F,IAAI,CAACD,IAAI,EAAE;IACT,OAAOF,SAAS;EAClB;EAEA,MAAMI,UAAU,GAAGD,MAAM,CAACE,IAAI,CAAEC,KAAK,IAAKA,KAAK,CAACJ,IAAI,KAAKA,IAAI,CAAC;EAC9D,IAAIE,UAAU,EAAE;IACd,OAAOA,UAAU;EACnB;EAEA,MAAMG,WAAW,GAAGJ,MAAM,CAACE,IAAI,CAAEC,KAAK,IAAKJ,IAAI,CAACM,UAAU,CAAC,GAAGF,KAAK,CAACJ,IAAI,GAAG,CAAC,CAAC;EAC7E,IAAIK,WAAW,IAAIA,WAAW,CAACE,KAAK,CAACC,KAAK,KAAK,QAAQ,EAAE;IACvD,OAAOT,eAAe,CAACC,IAAI,EAAEK,WAAW,CAACE,KAAK,CAACA,KAAK,CAAC;EACvD;EAEA,OAAOT,SAAS;AAClB,CAAC;AAED,MAAMW,sBAAsB,GAAGA,CAC7BL,KAAY,EACZhB,MAAkB,EAClBsB,MAAc,EACdC,QAA4B,KACjB;EAAA,IAAAC,qBAAA;EACX,MAAMC,cAAc,GAAGC,kCAAkC,CAACV,KAAK,EAAEhB,MAAM,EAAEsB,MAAM,EAAEC,QAAQ,CAAC;EAC1F,QAAAC,qBAAA,GAAOC,cAAc,CAACN,KAAK,cAAAK,qBAAA,cAAAA,qBAAA,GAAI,EAAE;AACnC,CAAC;AAED,OAAO,MAAMG,oBAAoB,GAAInC,UAA4B,IAAc;EAAA,IAAAoC,qBAAA;EAC7E,MAAMC,oBAAoB,GAAGxB,OAAO,CAClC,EAAAuB,qBAAA,GAAApC,UAAU,CAACsC,eAAe,cAAAF,qBAAA,uBAA1BA,qBAAA,CAA4BG,UAAU,KAAI,IAAIC,IAAI,CAACxC,UAAU,CAACsC,eAAe,CAACC,UAAU,CAAC,GAAG,IAAIC,IAAI,CAAC,CACvG,CAAC;EAED,OAAOH,oBAAoB;AAC7B,CAAC;AASD,MAAMI,8BAA8B,GAAGA,CACrCzC,UAA4B,EAC5BqB,MAAe,GAAG,EAAE,EACpBb,MAAkB,EAClBsB,MAAc,EACdY,MAAwB,EACxBX,QAA4B,KAOzB;EAAA,IAAAY,qBAAA,EAAAC,qBAAA;EACH,MAAM;IAAEC;EAAiB,CAAC,GAAG7C,UAAU,CAACY,MAAM;EAE9C,QAAQZ,UAAU,CAACC,KAAK;IACtB,KAAKf,eAAe,CAACkB,SAAS;MAC5B,OAAO;QACL0C,uBAAuB,EAAE9C,UAAU,CAAC+C,cAAc,GAC9CL,MAAM,CAACM,cAAc,CAACtD,uBAAuB,CAAC,IAAI8C,IAAI,CAACxC,UAAU,CAAC+C,cAAc,CAAC,CAAE,CAAC,GACpFL,MAAM,CAACO,SAAS;QACpBC,sBAAsB,EAAEvD,YAAY,CAACmC,MAAM,EAAE,WAAW,CAAC;QACzDqB,UAAU,EAAE3D;MACd,CAAC;IACH,KAAKN,eAAe,CAACgB,OAAO;MAC1B,OAAO;QACL4C,uBAAuB,EAAEJ,MAAM,CAACU,OAAO;QACvCC,0BAA0B,EAAE,IAAI;QAChCH,sBAAsB,EAAEvD,YAAY,CAACmC,MAAM,EAAE,SAAS,CAAC;QACvDqB,UAAU,EAAE9D;MACd,CAAC;EACL;EAEA,IAAI8C,oBAAoB,CAACnC,UAAU,CAAC,EAAE;IACpC,OAAO;MACL8C,uBAAuB,EAAEJ,MAAM,CAACY,cAAc;MAC9CJ,sBAAsB,EAAEvD,YAAY,CAACmC,MAAM,EAAE,gBAAgB,CAAC;MAC9DqB,UAAU,EAAE3D;IACd,CAAC;EACH;EAEA,IAAIsD,uBAAuB,IAAAH,qBAAA,GACzBjD,uBAAuB,CAAC,IAAI8C,IAAI,EAAAI,qBAAA,GAAC5C,UAAU,CAACuD,YAAY,cAAAX,qBAAA,cAAAA,qBAAA,GAAI5C,UAAU,CAACwD,WAAW,CAAC,CAAC,cAAAb,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAC5F,IAAIc,yBAA6C;EAEjD,MAAMC,OAAO,GAAGvC,eAAe,CAAC0B,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEc,gBAAgB,EAAEtC,MAAM,CAAC;EAE3E,IAAIqC,OAAO,EAAE;IACXZ,uBAAuB,GAAGjB,sBAAsB,CAAC6B,OAAO,EAAElD,MAAM,EAAEb,YAAY,CAACmC,MAAM,EAAE,SAAS,CAAC,EAAEC,QAAQ,CAAC;EAC9G;EAEA,MAAM6B,SAAS,GAAGzC,eAAe,CAAC0B,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEgB,kBAAkB,EAAExC,MAAM,CAAC;EAE/E,IAAIuC,SAAS,EAAE;IACbH,yBAAyB,GAAG5B,sBAAsB,CAAC+B,SAAS,EAAEpD,MAAM,EAAEb,YAAY,CAACmC,MAAM,EAAE,WAAW,CAAC,EAAEC,QAAQ,CAAC;EACpH;EAEA,OAAO;IACLe,uBAAuB;IACvBW,yBAAyB;IACzBP,sBAAsB,EAAEvD,YAAY,CAACmC,MAAM,EAAE,QAAQ;EACvD,CAAC;AACH,CAAC;AAED,OAAO,MAAMgC,wBAAwB,GAAGA,CACtC9D,UAA4B,EAC5BqB,MAAe,GAAG,EAAE,EACpBb,MAAkB,EAClBsB,MAAc,EACdY,MAAwB,EACxBX,QAA4B,KACa;EAAA,IAAAgC,qBAAA,EAAAC,mBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EACzC,MAAM;IACJrB,uBAAuB;IACvBW,yBAAyB;IACzBJ,0BAA0B;IAC1BH,sBAAsB;IACtBC;EACF,CAAC,GAAGV,8BAA8B,CAACzC,UAAU,EAAEqB,MAAM,EAAEb,MAAM,EAAEsB,MAAM,EAAEY,MAAM,EAAEX,QAAQ,CAAC;EACxF,MAAM;IAAEc;EAAiB,CAAC,GAAG7C,UAAU,CAACY,MAAM;EAC9C,MAAMwD,eAAe,GAAG5D,MAAM,CAAC4D,eAAe;EAE9C,OAAO;IACLC,KAAK,EAAExB,gBAAgB,aAAhBA,gBAAgB,gBAAAkB,qBAAA,GAAhBlB,gBAAgB,CAAEyB,IAAI,cAAAP,qBAAA,uBAAtBA,qBAAA,CAAwBQ,eAAe;IAC9ClB,0BAA0B;IAC1BP,uBAAuB;IACvBW,yBAAyB;IACzBP,sBAAsB;IACtBsB,cAAc,GAAAR,mBAAA,GACZpE,kBAAkB,EAAAqE,qBAAA,GAACjE,UAAU,CAACY,MAAM,CAAC6D,YAAY,cAAAR,qBAAA,uBAA9BA,qBAAA,CAAgCS,IAAI,EAAE3C,QAAQ,EAAEqC,eAAe,CAAC,cAAAJ,mBAAA,cAAAA,mBAAA,GAAIhE,UAAU,CAACY,MAAM,CAAC8D,IAAI;IAC/GC,IAAI,EAAE9B,gBAAgB,aAAhBA,gBAAgB,gBAAAqB,sBAAA,GAAhBrB,gBAAgB,CAAEyB,IAAI,cAAAJ,sBAAA,eAAtBA,sBAAA,CAAwBU,KAAK,GAC/B;MACEC,WAAW,EAAE;QACXC,GAAG,EAAEjC,gBAAgB,CAACyB,IAAI,CAACM;MAC7B;IACF,CAAC,GACD1D,SAAS;IACb6D,cAAc,EAAElC,gBAAgB,aAAhBA,gBAAgB,gBAAAsB,sBAAA,GAAhBtB,gBAAgB,CAAEyB,IAAI,cAAAH,sBAAA,uBAAtBA,sBAAA,CAAwBa,SAAS;IACjD7B,UAAU;IACVrB;EACF,CAAC;AACH,CAAC;AAMD,OAAO,MAAMmD,oCAAoC,GAAGA,CAClDjF,UAA4B,EAC5BqB,MAAe,GAAG,EAAE,EACpBb,MAAkB,EAClB0E,MAAwC,EACxCpD,MAAc,EACdY,MAAkB,EAClBX,QAA4B,KACuC;EAAA,IAAAoD,qBAAA,EAAAC,sBAAA;EACnE,MAAM;IAAEvC;EAAiB,CAAC,GAAG7C,UAAU,CAACY,MAAM;EAC9C,MAAMwD,eAAe,GAAG5D,MAAM,CAAC4D,eAAe;EAE9C,IAAIjC,oBAAoB,CAACnC,UAAU,CAAC,EAAE;IACpCkF,MAAM,GAAG;MACPG,IAAI,EAAE3C,MAAM,CAAC4C,oBAAoB;MACjCC,UAAU,EAAEhG;IACd,CAAC;EACH,CAAC,MAAM,IAAI,CAAC2F,MAAM,EAAE;IAAA,IAAAM,sBAAA;IAClB,IAAIC,WAAW,GAAG7F,kBAAkB,EAAA4F,sBAAA,GAACxF,UAAU,CAACY,MAAM,CAAC6D,YAAY,cAAAe,sBAAA,uBAA9BA,sBAAA,CAAgCC,WAAW,EAAE1D,QAAQ,EAAEqC,eAAe,CAAC;IAC5G,IAAIqB,WAAW,EAAE;MACfP,MAAM,GAAG;QACPG,IAAI,EAAEI,WAAW;QACjBF,UAAU,EAAEjG;MACd,CAAC;IACH;EACF;EAEA,MAAMoG,MAAsE,GAAG;IAC7EC,kBAAkB,EAAE9F,2BAA2B,CAACwB,MAAM,EAAEwB,gBAAgB,EAAElD,YAAY,CAACmC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3G8D,SAAS,EAAE/C,gBAAgB,aAAhBA,gBAAgB,gBAAAsC,qBAAA,GAAhBtC,gBAAgB,CAAEgD,UAAU,cAAAV,qBAAA,eAA5BA,qBAAA,CAA8BP,KAAK,GAC1C;MAAEC,WAAW,EAAE;QAAEC,GAAG,EAAEjC,gBAAgB,CAACgD,UAAU,CAACjB;MAAM;IAAE,CAAC,GAC3D1D,SAAS;IACbmD,KAAK,EAAExB,gBAAgB,aAAhBA,gBAAgB,gBAAAuC,sBAAA,GAAhBvC,gBAAgB,CAAEgD,UAAU,cAAAT,sBAAA,uBAA5BA,sBAAA,CAA8Bf,KAAK;IAC1CyB,MAAM,EAAEhC,wBAAwB,CAAC9D,UAAU,EAAEqB,MAAM,EAAEb,MAAM,EAAEb,YAAY,CAACmC,MAAM,EAAE,QAAQ,CAAC,EAAEY,MAAM,EAAEX,QAAQ,CAAC;IAC9GD,MAAM;IACNoD;EACF,CAAC;EAED,OAAOQ,MAAM;AACf,CAAC;AAED,OAAO,MAAMK,6BAA6B,GAAGA,CAC3CvE,KAAY,EACZhB,MAAkB,EAClBsB,MAAc,EACdC,QAA4B,KACJ;EAAA,IAAAiE,oBAAA;EACxB,MAAMrE,KAAK,GAAGO,kCAAkC,CAACV,KAAK,EAAEhB,MAAM,EAAEsB,MAAM,EAAEC,QAAQ,CAAC;EACjF,MAAMqC,eAAe,GAAG5D,MAAM,CAAC4D,eAAe;EAC9C,OAAO;IACL6B,EAAE,EAAEzE,KAAK,CAACJ,IAAI;IACdsD,IAAI,GAAAsB,oBAAA,GAAEpG,kBAAkB,CAAC4B,KAAK,CAACZ,MAAM,CAAC6D,YAAY,CAACC,IAAI,EAAE3C,QAAQ,EAAEqC,eAAe,CAAC,cAAA4B,oBAAA,cAAAA,oBAAA,GAAIxE,KAAK,CAACJ,IAAI,CAAC8E,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC;IAClH/E,IAAI,EAAEI,KAAK,CAACJ,IAAI;IAChB,GAAGO;EACL,CAAC;AACH,CAAC;AAED,MAAMO,kCAAkC,GAAGA,CACzCV,KAAY,EACZhB,MAAkB,EAClBsB,MAAc,EACdC,QAA4B,KACC;EAC7B,MAAMqE,UAAU,GAAG5F,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE6F,QAAQ,CAAC7E,KAAK,CAACZ,MAAM,CAACyF,QAAQ,CAAC;EAE1D,IAAI7E,KAAK,CAACZ,MAAM,CAAC0F,KAAK,EAAE;IACtB,OAAO;MACLC,MAAM,EAAE,CAAE/E,KAAK,CAACG,KAAK,CAACA,KAAK,IAAgB,EAAE,EAAE6E,GAAG,CAAC,CAACC,UAAU,EAAEC,KAAK,KAAK;QACxE,OAAOX,6BAA6B,CAACU,UAAU,EAAEjG,MAAM,EAAEb,YAAY,CAACmC,MAAM,EAAE4E,KAAK,CAACC,QAAQ,CAAC,CAAC,CAAC,EAAE5E,QAAQ,CAAC;MAC5G,CAAC;IACH,CAAC;EACH,CAAC,MAAM;IACL,QAAQqE,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEQ,IAAI;MACtB,KAAKzH,QAAQ,CAAC0H,MAAM;QAAE;UACpB,IAAIrF,KAAK,CAACG,KAAK,CAACC,KAAK,KAAK,QAAQ,EAAE;YAClC,OAAO;cAAEkF,UAAU,EAAE;YAAG,CAAC;UAC3B;UACA,OAAO;YACLA,UAAU,EAAEtF,KAAK,CAACG,KAAK,CAACA,KAAK,CAAC6E,GAAG,CAAC,CAACO,WAAW,EAAEL,KAAK,KACnDX,6BAA6B,CAACgB,WAAW,EAAEvG,MAAM,EAAEb,YAAY,CAACmC,MAAM,EAAE4E,KAAK,CAACC,QAAQ,CAAC,CAAC,CAAC,EAAE5E,QAAQ,CACrG;UACF,CAAC;QACH;MACA,KAAK5C,QAAQ,CAACqD,IAAI;QAAE;UAAA,IAAAwE,oBAAA;UAClB,IAAI,CAACxF,KAAK,CAACG,KAAK,CAACA,KAAK,EAAE;YACtB;YACA,OAAO;cAAEG,MAAM,EAAEA,MAAM;cAAEH,KAAK,EAAEsF,MAAM,CAACzF,KAAK,CAACG,KAAK,CAACA,KAAK;YAAE,CAAC;UAC7D;UACA,MAAMuF,IAAI,GAAG1F,KAAK,CAACG,KAAK,CAACA,KAAe;UACxC,OAAO;YACLG,MAAM,EAAEA,MAAM;YACdH,KAAK,GAAAqF,oBAAA,GAAEvH,mBAAmB,CAAC,IAAI+C,IAAI,CAAC0E,IAAI,CAAC,CAAC,cAAAF,oBAAA,cAAAA,oBAAA,GAAIE;UAChD,CAAC;QACH;MACA,KAAK/H,QAAQ,CAACgI,OAAO,CAAC,CAAC;MACvB,KAAKhI,QAAQ,CAACiI,YAAY;QAAE;UAAA,IAAAC,kBAAA;UAC1B,IAAI,EAAAA,kBAAA,GAAAjB,UAAU,CAACkB,MAAM,cAAAD,kBAAA,uBAAjBA,kBAAA,CAAmBE,MAAM,MAAK,OAAO,EAAE;YACzC,OAAO;cAAE3C,KAAK,EAAE;gBAAEE,GAAG,EAAEtD,KAAK,CAACG,KAAK,CAACA;cAAgB,CAAC;cAAEG,MAAM,EAAEA;YAAO,CAAC;UACxE,CAAC,MAAM;YACL,OAAO;cAAEA,MAAM,EAAEA,MAAM;cAAEH,KAAK,EAAEH,KAAK,CAACG,KAAK,CAACA;YAAgB,CAAC;UAC/D;QACF;MACA;QACE,OAAO;UAAEG,MAAM,EAAEA,MAAM;UAAEH,KAAK,EAAEsF,MAAM,CAACzF,KAAK,CAACG,KAAK,CAACA,KAAK;QAAE,CAAC;IAC/D;EACF;AACF,CAAC;AAMD,OAAO,MAAM6F,yBAAyB,GAAGA,CACvCxH,UAA4B,EAC5BQ,MAAkB,EAClBsB,MAAc,EACdY,MAAkB,EAClBX,QAA4B,KACe;EAC3C,OAAO0F,mCAAmC,CAACzH,UAAU,EAAEA,UAAU,CAACqB,MAAM,EAAEb,MAAM,EAAEsB,MAAM,EAAEY,MAAM,EAAEX,QAAQ,CAAC;AAC7G,CAAC;AAED,OAAO,MAAM0F,mCAAmC,GAAGA,CACjDzH,UAA4B,EAC5BqB,MAAe,EACfb,MAAkB,EAClBsB,MAAc,EACdY,MAAkB,EAClBX,QAA4B,KACe;EAC3C,MAAM+E,UAAiC,GAAGzF,MAAM,CAACmF,GAAG,CAAC,CAAChF,KAAK,EAAEkF,KAAK,KAChEX,6BAA6B,CAACvE,KAAK,EAAEhB,MAAM,EAAEb,YAAY,CAACmC,MAAM,EAAE,WAAW,EAAE4E,KAAK,CAACC,QAAQ,CAAC,CAAC,CAAC,EAAE5E,QAAQ,CAC5G,CAAC;EAED,MAAM2F,IAAI,GAAGzC,oCAAoC,CAC/CjF,UAAU,EACVqB,MAAM,EACNb,MAAM,EACNU,SAAS,EACTvB,YAAY,CAACmC,MAAM,EAAE,MAAM,CAAC,EAC5BY,MAAM,EACNX,QACF,CAAC;EAED,OAAO;IACL+E,UAAU;IACVY;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA,OAAO,MAAMC,cAAc,GAAIb,UAAiC,IAA4B;EAC1F,MAAMpB,MAA6B,GAAG,EAAE;EAExC,KAAK,MAAMkC,SAAS,IAAId,UAAU,EAAE;IAClC,MAAMe,aAAa,GAAGD,SAAS,CAACxG,IAAI,CAAC8E,KAAK,CAAC,GAAG,CAAC;IAC/C,IAAI2B,aAAa,CAACC,MAAM,KAAK,CAAC,EAAE;MAC9BpC,MAAM,CAACqC,IAAI,CAACH,SAAS,CAAC;IACxB,CAAC,MAAM;MACL,MAAM,CAACI,KAAK,EAAE,GAAGC,IAAI,CAAC,GAAGJ,aAAa;MACtC,MAAMK,MAAM,GAAGxC,MAAM,CAACnE,IAAI,CAAE4G,CAAC,IAAKA,CAAC,CAACzD,IAAI,KAAKsD,KAAK,CAAC;MACnD,IAAIE,MAAM,EAAE;QACVE,uBAAuB,CAAC;UAAE,GAAGR,SAAS;UAAExG,IAAI,EAAE6G,IAAI,CAACI,IAAI,CAAC,GAAG;QAAE,CAAC,EAAEH,MAAM,CAAC;MACzE,CAAC,MAAM;QACLxC,MAAM,CAACqC,IAAI,CAACO,0BAA0B,CAACV,SAAS,CAAC,CAAC;MACpD;IACF;EACF;EAEA,OAAOlC,MAAM;AACf,CAAC;;AAED;AACA;AACA,MAAM4C,0BAA0B,GAAIV,SAA8B,IAA0B;EAC1F,MAAMW,SAAS,GAAGX,SAAS,CAACxG,IAAI,CAAC8E,KAAK,CAAC,GAAG,CAAC;EAC3C,MAAM,CAAC8B,KAAK,EAAE,GAAGC,IAAI,CAAC,GAAGM,SAAS;EAClC,IAAI,CAACN,IAAI,CAACH,MAAM,EAAE;IAChB,OAAOF,SAAS;EAClB;;EAEA;EACA;EACA,IAAIA,SAAS,CAACY,SAAS,EAAE;IACvB,OAAO;MACLjC,MAAM,EAAE,CAAC+B,0BAA0B,CAAC;QAAE,GAAGV,SAAS;QAAExG,IAAI,EAAE6G,IAAI,CAACI,IAAI,CAAC,GAAG;MAAE,CAAC,CAAC,CAAC;MAC5EI,QAAQ,EAAE,IAAI;MACdxC,EAAE,EAAE,GAAG2B,SAAS,CAAC3B,EAAE,IAAI+B,KAAK,EAAE;MAC9BtD,IAAI,EAAEsD,KAAK;MACX5G,IAAI,EAAE4G;IACR,CAAC;EACH,CAAC,MAAM;IACL,OAAO;MACLlB,UAAU,EAAE,CAACwB,0BAA0B,CAAC;QAAE,GAAGV,SAAS;QAAExG,IAAI,EAAE6G,IAAI,CAACI,IAAI,CAAC,GAAG;MAAE,CAAC,CAAC,CAAC;MAChFI,QAAQ,EAAE,IAAI;MACdxC,EAAE,EAAE,GAAG2B,SAAS,CAAC3B,EAAE,IAAI+B,KAAK,EAAE;MAC9BtD,IAAI,EAAEsD,KAAK;MACX5G,IAAI,EAAE4G;IACR,CAAC;EACH;AACF,CAAC;;AAED;AACA;AACA,MAAMI,uBAAuB,GAAGA,CAACR,SAA8B,EAAEM,MAA2B,KAAK;EAAA,IAAAQ,kBAAA;EAC/F,MAAMH,SAAS,GAAGX,SAAS,CAACxG,IAAI,CAAC8E,KAAK,CAAC,GAAG,CAAC;EAC3C,MAAM,CAAC8B,KAAK,EAAE,GAAGC,IAAI,CAAC,GAAGM,SAAS;EAElC,MAAMI,UAAU,IAAAD,kBAAA,GAAGR,MAAM,CAACpB,UAAU,cAAA4B,kBAAA,uBAAjBA,kBAAA,CAAmBnH,IAAI,CAAE4G,CAAC,IAAKA,CAAC,CAACzD,IAAI,KAAKsD,KAAK,CAAC;EAEnE,IAAI,CAACW,UAAU,EAAE;IACf,IAAIf,SAAS,CAACY,SAAS,EAAE;MAAA,IAAAI,cAAA;MACvB,CAAAA,cAAA,GAAAV,MAAM,CAAC3B,MAAM,cAAAqC,cAAA,eAAbA,cAAA,CAAeb,IAAI,CAACO,0BAA0B,CAACV,SAAS,CAAC,CAAC;IAC5D,CAAC,MAAM;MAAA,IAAAiB,mBAAA;MACL,CAAAA,mBAAA,GAAAX,MAAM,CAACpB,UAAU,cAAA+B,mBAAA,eAAjBA,mBAAA,CAAmBd,IAAI,CAACO,0BAA0B,CAACV,SAAS,CAAC,CAAC;IAChE;EACF,CAAC,MAAM;IACLQ,uBAAuB,CAAC;MAAE,GAAGR,SAAS;MAAExG,IAAI,EAAE6G,IAAI,CAACI,IAAI,CAAC,GAAG;IAAE,CAAC,EAAEM,UAAU,CAAC;EAC7E;AACF,CAAC;AAED,SAASG,gBAAgBA,CAAClE,KAAyB,EAAE;EACnD,OAAOA,KAAK,GAAG,iBAAiB,GAAG,EAAE;AACvC;AAEA,OAAO,SAASmE,gCAAgCA,CAAqCC,gBAAmB,EAAK;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EAC3G,OAAO;IACL,GAAGJ,gBAAgB;IACnBnG,gBAAgB,EAAE;MAChB,GAAGmG,gBAAgB,CAACnG,gBAAgB;MACpCgD,UAAU,EAAE;QACV,KAAAoD,qBAAA,GAAGD,gBAAgB,CAACnG,gBAAgB,cAAAoG,qBAAA,uBAAjCA,qBAAA,CAAmCpD,UAAU;QAChDjB,KAAK,EAAEkE,gBAAgB,EAAAI,sBAAA,GAACF,gBAAgB,CAACnG,gBAAgB,cAAAqG,sBAAA,gBAAAA,sBAAA,GAAjCA,sBAAA,CAAmCrD,UAAU,cAAAqD,sBAAA,uBAA7CA,sBAAA,CAA+CtE,KAAK;MAC9E,CAAC;MACDN,IAAI,EAAE;QACJ,KAAA6E,sBAAA,GAAGH,gBAAgB,CAACnG,gBAAgB,cAAAsG,sBAAA,uBAAjCA,sBAAA,CAAmC7E,IAAI;QAC1CM,KAAK,EAAEkE,gBAAgB,EAAAM,sBAAA,GAACJ,gBAAgB,CAACnG,gBAAgB,cAAAuG,sBAAA,gBAAAA,sBAAA,GAAjCA,sBAAA,CAAmC9E,IAAI,cAAA8E,sBAAA,uBAAvCA,sBAAA,CAAyCxE,KAAK;MACxE;IACF;EACF,CAAC;AACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["CredentialState","CredentialType","DataType","FormatFeature","CredentialErrorIcon","CredentialNoticeInfoIcon","CredentialNoticeWarningIcon","CredentialWarningIcon","formatDateLocalized","formatDateTimeLocalized","concatTestID","getTranslatedLabel","getCarouselImagesFromClaims","ValidityState","getValidityState","credential","state","REVOKED","Revoked","SUSPENDED","Suspended","Valid","supportsSelectiveDisclosure","config","_formatConfig$capabil","formatConfig","format","schema","Boolean","capabilities","features","includes","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","suspended","credentialDetailTestID","statusIcon","revoked","credentialDetailErrorColor","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","translations","name","icon","image","imageSource","uri","iconLabelColor","fontColor","getCredentialCardPropsFromCredential","notice","_layoutProperties$bac","_layoutProperties$bac2","text","validityIssuesNotice","noticeIcon","_credential$schema$tr2","description","result","cardCarouselImages","cardImage","background","header","detailsCardAttributeFromClaim","_getTranslatedLabel2","id","split","pop","typeConfig","datatype","array","values","map","arrayValue","index","toString","type","Object","attributes","nestedClaim","_formatDateLocalized","String","date","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","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,5 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
export type ScanButtonProps =
|
|
4
|
-
|
|
2
|
+
import { StyleProp, View, ViewStyle } from 'react-native';
|
|
3
|
+
export type ScanButtonProps = {
|
|
4
|
+
onSignPress?: () => void;
|
|
5
|
+
onIssuePress?: () => void;
|
|
6
|
+
onScanPress: () => void;
|
|
7
|
+
testID?: string;
|
|
8
|
+
style?: StyleProp<ViewStyle>;
|
|
9
|
+
};
|
|
10
|
+
declare const ScanButton: React.ForwardRefExoticComponent<ScanButtonProps & React.RefAttributes<React.ForwardRefExoticComponent<import("react-native").TouchableOpacityProps & React.RefAttributes<View>>>>;
|
|
5
11
|
export default ScanButton;
|
|
@@ -11,6 +11,9 @@ export type CredentialDetailsCardProps = ViewProps & {
|
|
|
11
11
|
onImagePreview?: (name: string, image: ImageSourcePropType) => void;
|
|
12
12
|
onAttributeSelected?: (id: string, selected: boolean) => void;
|
|
13
13
|
showAllButtonLabel?: string;
|
|
14
|
+
showLessButtonLabel?: string;
|
|
15
|
+
moreLabel?: string;
|
|
16
|
+
lessLabel?: string;
|
|
14
17
|
};
|
|
15
18
|
declare const CredentialDetailsCard: FC<CredentialDetailsCardProps>;
|
|
16
19
|
export default CredentialDetailsCard;
|
|
@@ -44,6 +44,9 @@ export type CredentialAttributeItemProps = CredentialAttribute & {
|
|
|
44
44
|
onImagePreview?: (name: string, image: ImageSourcePropType) => void;
|
|
45
45
|
onPress?: (id: string, selected: boolean) => void;
|
|
46
46
|
style?: StyleProp<ViewStyle>;
|
|
47
|
+
isExpanded?: boolean;
|
|
48
|
+
moreLabel?: string;
|
|
49
|
+
lessLabel?: string;
|
|
47
50
|
};
|
|
48
51
|
declare const CredentialAttributeItem: FC<CredentialAttributeItemProps>;
|
|
49
52
|
export default CredentialAttributeItem;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
2
|
import { SvgProps } from 'react-native-svg';
|
|
3
3
|
export declare const ScanIcon: FC<SvgProps>;
|
|
4
|
+
export declare const IssueIcon: FC<SvgProps>;
|
|
5
|
+
export declare const SignIcon: FC<SvgProps>;
|
|
4
6
|
export declare const HistoryIcon: FC<SvgProps>;
|
|
5
7
|
export declare const OptionsIcon: FC<SvgProps>;
|
|
6
8
|
export declare const BackIcon: FC<SvgProps>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TypographyProps } from './typography';
|
|
3
|
+
export type ExpandableTypographyProps = TypographyProps & {
|
|
4
|
+
numberOfLines?: number;
|
|
5
|
+
hideExpandButton?: boolean;
|
|
6
|
+
moreLabel?: string;
|
|
7
|
+
lessLabel?: string;
|
|
8
|
+
};
|
|
9
|
+
declare const ExpandableTypography: React.FC<ExpandableTypographyProps>;
|
|
10
|
+
export default ExpandableTypography;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import ExpandableTypography, { ExpandableTypographyProps } from './expandableTypography';
|
|
1
2
|
import type { TypographyProps } from './typography';
|
|
2
3
|
import Typography from './typography';
|
|
3
|
-
export { Typography, TypographyProps };
|
|
4
|
+
export { ExpandableTypography, ExpandableTypographyProps, Typography, TypographyProps };
|
|
@@ -7,87 +7,87 @@ declare const presets: {
|
|
|
7
7
|
readonly lineHeight: 36;
|
|
8
8
|
readonly letterSpacing: 0.2;
|
|
9
9
|
readonly fontFamily?: string | undefined;
|
|
10
|
-
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "
|
|
10
|
+
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
|
|
11
11
|
};
|
|
12
12
|
readonly l: {
|
|
13
13
|
readonly fontSize: 24;
|
|
14
14
|
readonly lineHeight: 33;
|
|
15
15
|
readonly fontFamily?: string | undefined;
|
|
16
|
-
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "
|
|
16
|
+
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
|
|
17
17
|
};
|
|
18
18
|
readonly 'l/line-height-large': {
|
|
19
19
|
readonly fontSize: 24;
|
|
20
20
|
readonly lineHeight: 28;
|
|
21
21
|
readonly fontFamily?: string | undefined;
|
|
22
|
-
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "
|
|
22
|
+
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
|
|
23
23
|
};
|
|
24
24
|
readonly regular: {
|
|
25
25
|
readonly fontSize: 17;
|
|
26
26
|
readonly lineHeight: 24;
|
|
27
27
|
readonly fontFamily?: string | undefined;
|
|
28
|
-
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "
|
|
28
|
+
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
|
|
29
29
|
};
|
|
30
30
|
readonly m: {
|
|
31
31
|
readonly fontSize: 17;
|
|
32
32
|
readonly lineHeight: 22;
|
|
33
33
|
readonly letterSpacing: -0.2;
|
|
34
34
|
readonly fontFamily?: string | undefined;
|
|
35
|
-
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "
|
|
35
|
+
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
|
|
36
36
|
};
|
|
37
37
|
readonly 'm/heading': {
|
|
38
38
|
readonly fontSize: 17;
|
|
39
39
|
readonly lineHeight: 22;
|
|
40
40
|
readonly letterSpacing: -0.2;
|
|
41
41
|
readonly fontFamily?: string | undefined;
|
|
42
|
-
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "
|
|
42
|
+
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
|
|
43
43
|
};
|
|
44
44
|
readonly s: {
|
|
45
45
|
readonly fontSize: 14;
|
|
46
46
|
readonly lineHeight: 22;
|
|
47
47
|
readonly fontFamily?: string | undefined;
|
|
48
|
-
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "
|
|
48
|
+
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
|
|
49
49
|
};
|
|
50
50
|
readonly 's/line-height-capped': {
|
|
51
51
|
readonly fontSize: 14;
|
|
52
52
|
readonly lineHeight: 22;
|
|
53
53
|
readonly letterSpacing: -0.2;
|
|
54
54
|
readonly fontFamily?: string | undefined;
|
|
55
|
-
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "
|
|
55
|
+
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
|
|
56
56
|
};
|
|
57
57
|
readonly 's/line-height-small': {
|
|
58
58
|
readonly fontSize: 14;
|
|
59
59
|
readonly lineHeight: 18;
|
|
60
60
|
readonly letterSpacing: 0.3;
|
|
61
61
|
readonly fontFamily?: string | undefined;
|
|
62
|
-
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "
|
|
62
|
+
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
|
|
63
63
|
};
|
|
64
64
|
readonly 's/code': {
|
|
65
65
|
readonly fontSize: 14;
|
|
66
66
|
readonly lineHeight: 22;
|
|
67
67
|
readonly letterSpacing: 0.2;
|
|
68
68
|
readonly fontFamily?: string | undefined;
|
|
69
|
-
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "
|
|
69
|
+
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
|
|
70
70
|
};
|
|
71
71
|
readonly xs: {
|
|
72
72
|
readonly fontSize: 12;
|
|
73
73
|
readonly lineHeight: 22;
|
|
74
74
|
readonly letterSpacing: -0.1;
|
|
75
75
|
readonly fontFamily?: string | undefined;
|
|
76
|
-
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "
|
|
76
|
+
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
|
|
77
77
|
};
|
|
78
78
|
readonly 'xs/line-height-small': {
|
|
79
79
|
readonly fontSize: 12;
|
|
80
80
|
readonly lineHeight: 18;
|
|
81
81
|
readonly letterSpacing: 0.3;
|
|
82
82
|
readonly fontFamily?: string | undefined;
|
|
83
|
-
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "
|
|
83
|
+
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
|
|
84
84
|
};
|
|
85
85
|
readonly 'xs/code': {
|
|
86
86
|
readonly fontSize: 12;
|
|
87
87
|
readonly lineHeight: 18;
|
|
88
88
|
readonly letterSpacing: 0.3;
|
|
89
89
|
readonly fontFamily?: string | undefined;
|
|
90
|
-
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "
|
|
90
|
+
readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
|
|
91
91
|
};
|
|
92
92
|
};
|
|
93
93
|
export type TypographyProps = BaseTextProps & {
|
|
@@ -106,7 +106,7 @@ declare const Typography: React.ForwardRefExoticComponent<import("react-native")
|
|
|
106
106
|
announcementCumulative?: boolean | undefined;
|
|
107
107
|
onAnnouncementFinished?: ((finished: boolean) => void) | undefined;
|
|
108
108
|
} & {
|
|
109
|
-
preset?: "s" | "regular" | "xl" | "l" | "l/line-height-large" | "m
|
|
109
|
+
preset?: "s" | "m" | "regular" | "xl" | "l" | "l/line-height-large" | "m/heading" | "s/line-height-capped" | "s/line-height-small" | "s/code" | "xs" | "xs/line-height-small" | "xs/code" | undefined;
|
|
110
110
|
caps?: boolean | undefined;
|
|
111
111
|
} & React.RefAttributes<Text>>;
|
|
112
112
|
export default Typography;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Returns current app state
|
|
3
3
|
*/
|
|
4
|
-
export declare function useAppState(): "
|
|
4
|
+
export declare function useAppState(): "active" | "background" | "inactive" | "unknown" | "extension";
|
|
5
5
|
export declare function useIsAppActive(): boolean | undefined;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import { HolderRegisterWalletUnitRequest, HolderWalletUnit, HolderWalletUnitUpdateRequest } from '@procivis/react-native-one-core';
|
|
1
|
+
import { HolderActivateWalletUnitRequest, HolderRegisterWalletUnitRequest, HolderWalletUnit, HolderWalletUnitUpdateRequest } from '@procivis/react-native-one-core';
|
|
2
2
|
export declare const WALLET_UNIT_QUERY_KEY = "wallet-unit";
|
|
3
3
|
export declare const WALLET_UNIT_TRUST_COLLECTIONS_QUERY_KEY = "wallet-unit-trust-collections";
|
|
4
4
|
export declare const useWalletUnitDetail: (walletUnitId: HolderWalletUnit['id'] | undefined, active?: boolean) => import("react-query").UseQueryResult<HolderWalletUnit | undefined, unknown>;
|
|
5
5
|
export declare const useWalletUnitTrustCollections: (walletUnitId: HolderWalletUnit['id'] | undefined, active?: boolean) => import("react-query").UseQueryResult<import("@procivis/react-native-one-core").TrustCollections | undefined, unknown>;
|
|
6
6
|
export declare const useRegisterWalletUnit: () => import("react-query").UseMutationResult<import("@procivis/react-native-one-core").HolderRegisterWalletUnitResponse, unknown, Omit<HolderRegisterWalletUnitRequest, "organisationId" | "keyType">, unknown>;
|
|
7
|
+
export declare const useActivateWalletUnit: () => import("react-query").UseMutationResult<void, unknown, {
|
|
8
|
+
id: string;
|
|
9
|
+
userIdToken: HolderActivateWalletUnitRequest['userIdToken'];
|
|
10
|
+
}, unknown>;
|
|
7
11
|
export declare const useWalletUnitStatus: () => import("react-query").UseMutationResult<void, unknown, string, unknown>;
|
|
8
12
|
export declare const useWalletUnitUpdate: () => import("react-query").UseMutationResult<void, unknown, {
|
|
9
13
|
walletUnitId: HolderWalletUnit['id'];
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Claim, CoreConfig, CredentialDetail, PresentationDefinitionField, PresentationDefinitionRequestedCredential } from '@procivis/react-native-one-core';
|
|
1
|
+
import { Claim, CoreConfig, CredentialDetail, PresentationDefinitionField, PresentationDefinitionRequestedCredential, PresentationDefinitionV2Credential } from '@procivis/react-native-one-core';
|
|
2
2
|
import { CredentialAttribute, CredentialCardProps } from '../../ui-components/credential';
|
|
3
3
|
import { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';
|
|
4
4
|
import { CardLabels, CredentialDetailsCardPropsWithoutWidth } from './credential';
|
|
5
|
-
export declare const validityCheckedCardFromCredential: (credential: CredentialDetail, expanded: boolean, selectiveDisclosureSupported: boolean | undefined, multipleCredentialsAvailable: boolean, config: CoreConfig, notice: CredentialCardNotice | undefined, testID: string, labels: ShareCredentialCardLabels, language: string | undefined) => Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'testID' | 'width'>;
|
|
5
|
+
export declare const validityCheckedCardFromCredential: (credential: CredentialDetail | PresentationDefinitionV2Credential, expanded: boolean, selectiveDisclosureSupported: boolean | undefined, multipleCredentialsAvailable: boolean, config: CoreConfig, notice: CredentialCardNotice | undefined, testID: string, labels: ShareCredentialCardLabels, language: string | undefined) => Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'testID' | 'width'>;
|
|
6
6
|
export declare const missingCredentialCardFromRequest: (request: PresentationDefinitionRequestedCredential, notice: CredentialCardNotice | undefined, testID: string, labels: ShareCredentialCardLabels) => Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'>;
|
|
7
7
|
type FlatClaim = Claim & {
|
|
8
8
|
isArrayElement?: boolean;
|
|
@@ -13,8 +13,9 @@ export type ShareCredentialCardLabels = CardLabels & {
|
|
|
13
13
|
missingAttribute: string;
|
|
14
14
|
missingCredential: string;
|
|
15
15
|
multipleCredentials: string;
|
|
16
|
+
disclosurePolicyViolation: string;
|
|
16
17
|
};
|
|
17
|
-
export declare const shareCredentialCardFromCredential: (credential: CredentialDetail | undefined, expanded: boolean, multipleCredentialsAvailable: boolean, request: PresentationDefinitionRequestedCredential, selectedFields: string[] | undefined, config: CoreConfig, testID: string, labels: ShareCredentialCardLabels, language: string | undefined) => CredentialDetailsCardPropsWithoutWidth;
|
|
18
|
+
export declare const shareCredentialCardFromCredential: (credential: CredentialDetail | PresentationDefinitionV2Credential | undefined, expanded: boolean, multipleCredentialsAvailable: boolean, request: PresentationDefinitionRequestedCredential, selectedFields: string[] | undefined, config: CoreConfig, testID: string, labels: ShareCredentialCardLabels, language: string | undefined) => CredentialDetailsCardPropsWithoutWidth;
|
|
18
19
|
export declare const selectCredentialCardAttributeFromClaim: (id: string, config: CoreConfig, testID: string, labels: ShareCredentialCardLabels, language: string | undefined, claim?: FlatClaim, field?: PresentationDefinitionField) => CredentialAttribute;
|
|
19
20
|
export declare const selectCredentialCardFromCredential: (credential: CredentialDetail, selected: boolean, request: PresentationDefinitionRequestedCredential, config: CoreConfig, testID: string, labels: ShareCredentialCardLabels, language: string | undefined) => CredentialDetailsCardPropsWithoutWidth;
|
|
20
21
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Claim, CoreConfig, CredentialDetail, CredentialListItem, CredentialSchemaListItem } from '@procivis/react-native-one-core';
|
|
1
|
+
import { Claim, CoreConfig, CredentialDetail, CredentialListItem, CredentialSchemaListItem, PresentationDefinitionV2Credential } from '@procivis/react-native-one-core';
|
|
2
2
|
import { CredentialAttribute, CredentialCardProps, CredentialDetailsCardProps, CredentialHeaderProps } from '../../ui-components/credential';
|
|
3
3
|
import { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';
|
|
4
4
|
export declare enum ValidityState {
|
|
@@ -29,3 +29,4 @@ export declare const detailsCardFromCredential: (credential: CredentialDetail, c
|
|
|
29
29
|
export declare const detailsCardFromCredentialWithClaims: (credential: CredentialDetail, claims: Claim[], config: CoreConfig, testID: string, labels: CardLabels, language: string | undefined) => CredentialDetailsCardPropsWithoutWidth;
|
|
30
30
|
export declare const nestAttributes: (attributes: CredentialAttribute[]) => CredentialAttribute[];
|
|
31
31
|
export declare function getCredentialSchemaWithoutImages<T extends CredentialSchemaListItem>(credentialSchema: T): T;
|
|
32
|
+
export declare function credentialDetailFromPresentationV2Credential(presentationCredential: CredentialDetail | PresentationDefinitionV2Credential): CredentialDetail;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@procivis/one-react-native-components",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.142",
|
|
4
4
|
"author": "Procivis AG (https://procivis.ch)",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"description": "Common Procivis ONE UI components for react-native",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"@babel/runtime": "^7.25.0",
|
|
54
54
|
"@commitlint/config-conventional": "^11.0.0",
|
|
55
55
|
"@gorhom/bottom-sheet": "^5.1.2",
|
|
56
|
-
"@procivis/react-native-one-core": "1.
|
|
56
|
+
"@procivis/react-native-one-core": "1.112373.0",
|
|
57
57
|
"@procivis/react-native-picker": "5.0.3",
|
|
58
58
|
"@react-native-async-storage/async-storage": "^1.17.3",
|
|
59
59
|
"@react-native-community/blur": "^4.4.0",
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
"vite": "^6.4.2"
|
|
143
143
|
},
|
|
144
144
|
"peerDependencies": {
|
|
145
|
-
"@procivis/react-native-one-core": "^1.
|
|
145
|
+
"@procivis/react-native-one-core": "^1.112373.0",
|
|
146
146
|
"@procivis/react-native-picker": "*",
|
|
147
147
|
"@react-native-community/blur": "*",
|
|
148
148
|
"@react-native-community/netinfo": "^11.4.1",
|
|
@@ -38,6 +38,7 @@ const defaultIcons: {
|
|
|
38
38
|
DELETED: HistoryStatusDeleteIcon,
|
|
39
39
|
ERRORED: HistoryStatusErrorIcon,
|
|
40
40
|
IMPORTED: HistoryStatusAcceptedIcon,
|
|
41
|
+
SIGNED: HistoryStatusAcceptedIcon,
|
|
41
42
|
ISSUED: HistoryStatusAcceptedIcon,
|
|
42
43
|
OFFERED: HistoryStatusAcceptedIcon,
|
|
43
44
|
PENDING: HistoryStatusAcceptedIcon,
|
|
@@ -73,6 +74,7 @@ const defaultIcons: {
|
|
|
73
74
|
IDENTIFIER: HistoryIdentifierIcon,
|
|
74
75
|
KEY: HistoryKeyIcon,
|
|
75
76
|
ORGANISATION: HistoryOrganisationIcon,
|
|
77
|
+
QES_DOCUMENT: HistoryCredentialIcon,
|
|
76
78
|
PROOF: HistoryProofRequestIcon,
|
|
77
79
|
PROOF_SCHEMA: HistorySchemaIcon,
|
|
78
80
|
WALLET_UNIT: HistoryTrustedEntityIcon,
|