@procivis/one-react-native-components 0.3.99 → 0.3.102
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 +1 -3
- package/lib/commonjs/components/history/history-list-item-icon.js.map +1 -1
- package/lib/commonjs/components/history/history-list-screen.js +1 -0
- package/lib/commonjs/components/history/history-list-screen.js.map +1 -1
- package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js +1 -0
- package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
- package/lib/commonjs/components/proof-request/v2/share-credential-v2.js +1 -0
- package/lib/commonjs/components/proof-request/v2/share-credential-v2.js.map +1 -1
- package/lib/commonjs/ui-components/buttons/connectivity-button.js +1 -0
- package/lib/commonjs/ui-components/buttons/connectivity-button.js.map +1 -1
- package/lib/commonjs/ui-components/buttons/filter-button.js +1 -0
- package/lib/commonjs/ui-components/buttons/filter-button.js.map +1 -1
- package/lib/commonjs/ui-components/buttons/ghost-button.js +1 -0
- package/lib/commonjs/ui-components/buttons/ghost-button.js.map +1 -1
- package/lib/commonjs/ui-components/buttons/hold-button.js +1 -0
- package/lib/commonjs/ui-components/buttons/hold-button.js.map +1 -1
- package/lib/commonjs/ui-components/buttons/scan-button.js +3 -0
- package/lib/commonjs/ui-components/buttons/scan-button.js.map +1 -1
- package/lib/commonjs/ui-components/buttons/share-button.js +1 -0
- package/lib/commonjs/ui-components/buttons/share-button.js.map +1 -1
- package/lib/commonjs/ui-components/control/checkbox.js +1 -0
- package/lib/commonjs/ui-components/control/checkbox.js.map +1 -1
- package/lib/commonjs/ui-components/credential/card/credential-card.js +1 -0
- package/lib/commonjs/ui-components/credential/card/credential-card.js.map +1 -1
- package/lib/commonjs/ui-components/credential/card/credential-details-card.js +3 -1
- package/lib/commonjs/ui-components/credential/card/credential-details-card.js.map +1 -1
- package/lib/commonjs/ui-components/credential/card/credential-details-list-item.js +1 -0
- package/lib/commonjs/ui-components/credential/card/credential-details-list-item.js.map +1 -1
- package/lib/commonjs/ui-components/credential/card/credential-header.js +1 -0
- package/lib/commonjs/ui-components/credential/card/credential-header.js.map +1 -1
- package/lib/commonjs/ui-components/credential/card/credential-image-carousel.js +2 -0
- package/lib/commonjs/ui-components/credential/card/credential-image-carousel.js.map +1 -1
- package/lib/commonjs/ui-components/credential/credential-attribute-item.js +1 -0
- package/lib/commonjs/ui-components/credential/credential-attribute-item.js.map +1 -1
- package/lib/commonjs/ui-components/credential/credential-carousel-images.js +2 -1
- package/lib/commonjs/ui-components/credential/credential-carousel-images.js.map +1 -1
- package/lib/commonjs/ui-components/credential/selector.js +1 -0
- package/lib/commonjs/ui-components/credential/selector.js.map +1 -1
- package/lib/commonjs/ui-components/entity/avatar.js +1 -0
- package/lib/commonjs/ui-components/entity/avatar.js.map +1 -1
- package/lib/commonjs/ui-components/header/navigation-header.js +1 -0
- package/lib/commonjs/ui-components/header/navigation-header.js.map +1 -1
- package/lib/commonjs/ui-components/history/history-details.js +3 -1
- package/lib/commonjs/ui-components/history/history-details.js.map +1 -1
- package/lib/commonjs/ui-components/icons/history.js +1 -0
- package/lib/commonjs/ui-components/icons/history.js.map +1 -1
- package/lib/commonjs/ui-components/pin/keypad.js +1 -0
- package/lib/commonjs/ui-components/pin/keypad.js.map +1 -1
- package/lib/commonjs/ui-components/pin/pins.js +1 -0
- package/lib/commonjs/ui-components/pin/pins.js.map +1 -1
- package/lib/commonjs/ui-components/settings/setting-item.js +1 -0
- package/lib/commonjs/ui-components/settings/setting-item.js.map +1 -1
- package/lib/commonjs/ui-components/settings/settings-button.js +1 -0
- package/lib/commonjs/ui-components/settings/settings-button.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential.js.map +1 -1
- package/lib/module/components/history/history-list-item-icon.js +1 -3
- package/lib/module/components/history/history-list-item-icon.js.map +1 -1
- package/lib/module/components/history/history-list-screen.js +1 -0
- package/lib/module/components/history/history-list-screen.js.map +1 -1
- package/lib/module/components/proof-request/v2/share-credential-v2-group.js +1 -0
- package/lib/module/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
- package/lib/module/components/proof-request/v2/share-credential-v2.js +1 -0
- package/lib/module/components/proof-request/v2/share-credential-v2.js.map +1 -1
- package/lib/module/ui-components/buttons/connectivity-button.js +1 -0
- package/lib/module/ui-components/buttons/connectivity-button.js.map +1 -1
- package/lib/module/ui-components/buttons/filter-button.js +1 -0
- package/lib/module/ui-components/buttons/filter-button.js.map +1 -1
- package/lib/module/ui-components/buttons/ghost-button.js +1 -0
- package/lib/module/ui-components/buttons/ghost-button.js.map +1 -1
- package/lib/module/ui-components/buttons/hold-button.js +1 -0
- package/lib/module/ui-components/buttons/hold-button.js.map +1 -1
- package/lib/module/ui-components/buttons/scan-button.js +3 -0
- package/lib/module/ui-components/buttons/scan-button.js.map +1 -1
- package/lib/module/ui-components/buttons/share-button.js +1 -0
- package/lib/module/ui-components/buttons/share-button.js.map +1 -1
- package/lib/module/ui-components/control/checkbox.js +1 -0
- package/lib/module/ui-components/control/checkbox.js.map +1 -1
- package/lib/module/ui-components/credential/card/credential-card.js +1 -0
- package/lib/module/ui-components/credential/card/credential-card.js.map +1 -1
- package/lib/module/ui-components/credential/card/credential-details-card.js +3 -1
- package/lib/module/ui-components/credential/card/credential-details-card.js.map +1 -1
- package/lib/module/ui-components/credential/card/credential-details-list-item.js +1 -0
- package/lib/module/ui-components/credential/card/credential-details-list-item.js.map +1 -1
- package/lib/module/ui-components/credential/card/credential-header.js +1 -0
- package/lib/module/ui-components/credential/card/credential-header.js.map +1 -1
- package/lib/module/ui-components/credential/card/credential-image-carousel.js +2 -0
- package/lib/module/ui-components/credential/card/credential-image-carousel.js.map +1 -1
- package/lib/module/ui-components/credential/credential-attribute-item.js +1 -0
- package/lib/module/ui-components/credential/credential-attribute-item.js.map +1 -1
- package/lib/module/ui-components/credential/credential-carousel-images.js +2 -1
- package/lib/module/ui-components/credential/credential-carousel-images.js.map +1 -1
- package/lib/module/ui-components/credential/selector.js +1 -0
- package/lib/module/ui-components/credential/selector.js.map +1 -1
- package/lib/module/ui-components/entity/avatar.js +1 -0
- package/lib/module/ui-components/entity/avatar.js.map +1 -1
- package/lib/module/ui-components/header/navigation-header.js +1 -0
- package/lib/module/ui-components/header/navigation-header.js.map +1 -1
- package/lib/module/ui-components/history/history-details.js +3 -1
- package/lib/module/ui-components/history/history-details.js.map +1 -1
- package/lib/module/ui-components/icons/history.js +1 -0
- package/lib/module/ui-components/icons/history.js.map +1 -1
- package/lib/module/ui-components/pin/keypad.js +1 -0
- package/lib/module/ui-components/pin/keypad.js.map +1 -1
- package/lib/module/ui-components/pin/pins.js +1 -0
- package/lib/module/ui-components/pin/pins.js.map +1 -1
- package/lib/module/ui-components/settings/setting-item.js +1 -0
- package/lib/module/ui-components/settings/setting-item.js.map +1 -1
- package/lib/module/ui-components/settings/settings-button.js +1 -0
- package/lib/module/ui-components/settings/settings-button.js.map +1 -1
- package/lib/module/utils/parsers/credential.js.map +1 -1
- package/lib/typescript/utils/parsers/credential.d.ts +2 -29
- package/package.json +3 -3
- package/src/components/history/history-list-item-icon.tsx +0 -2
- package/src/components/history/history-list-screen.tsx +1 -0
- package/src/components/proof-request/v2/share-credential-v2-group.tsx +1 -0
- package/src/components/proof-request/v2/share-credential-v2.tsx +1 -0
- package/src/ui-components/buttons/connectivity-button.tsx +1 -0
- package/src/ui-components/buttons/filter-button.tsx +1 -0
- package/src/ui-components/buttons/ghost-button.tsx +1 -0
- package/src/ui-components/buttons/hold-button.tsx +1 -0
- package/src/ui-components/buttons/scan-button.tsx +3 -0
- package/src/ui-components/buttons/share-button.tsx +1 -0
- package/src/ui-components/control/checkbox.tsx +1 -0
- package/src/ui-components/credential/card/credential-card.tsx +1 -0
- package/src/ui-components/credential/card/credential-details-card.tsx +2 -0
- package/src/ui-components/credential/card/credential-details-list-item.tsx +1 -0
- package/src/ui-components/credential/card/credential-header.tsx +1 -0
- package/src/ui-components/credential/card/credential-image-carousel.tsx +2 -2
- package/src/ui-components/credential/credential-attribute-item.tsx +1 -0
- package/src/ui-components/credential/credential-carousel-images.tsx +1 -0
- package/src/ui-components/credential/selector.tsx +1 -0
- package/src/ui-components/entity/avatar.tsx +1 -0
- package/src/ui-components/header/navigation-header.tsx +1 -0
- package/src/ui-components/history/history-details.tsx +2 -0
- package/src/ui-components/icons/history.tsx +1 -0
- package/src/ui-components/pin/keypad.tsx +1 -0
- package/src/ui-components/pin/pins.tsx +1 -0
- package/src/ui-components/settings/setting-item.tsx +1 -0
- package/src/ui-components/settings/settings-button.tsx +1 -0
- package/src/utils/parsers/credential.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeOneCore","require","_icons","_date","_testID","_credentialImages","ValidityState","exports","getValidityState","credential","state","CredentialStateBindingEnum","REVOKED","Revoked","SUSPENDED","Suspended","Valid","supportsSelectiveDisclosure","config","_formatConfig$capabil","formatConfig","format","schema","Boolean","capabilities","features","includes","FormatFeatureEnum","SelectiveDisclosure","undefined","findClaimByPath","path","claims","exactClaim","find","claim","parentClaim","startsWith","value","type_","formatCredentialDetail","testID","_attributeValue$value","attributeValue","detailsCardAttributeValueFromClaim","hasMsoValidityIssues","_credential$mdocMsoVa","mdocMsoValidityIssue","mdocMsoValidity","nextUpdate","Date","credentialDetailFromCredential","labels","_formatDateTimeLocali","_credential$issuanceD","layoutProperties","credentialDetailPrimary","suspendEndDate","suspendedUntil","formatDateTimeLocalized","suspended","credentialDetailTestID","concatTestID","statusIcon","CredentialWarningIcon","revoked","credentialDetailErrorColor","CredentialErrorIcon","validityIssues","issuanceDate","createdDate","credentialDetailSecondary","primary","primaryAttribute","secondary","secondaryAttribute","cardHeaderFromCredential","_layoutProperties$log","_layoutProperties$log2","_layoutProperties$log3","color","logo","backgroundColor","credentialName","name","icon","image","imageSource","uri","iconLabelColor","fontColor","getCredentialCardPropsFromCredential","notice","_layoutProperties$bac","_layoutProperties$bac2","text","validityIssuesNotice","noticeIcon","CredentialNoticeWarningIcon","result","cardCarouselImages","getCarouselImagesFromClaims","cardImage","background","header","detailsCardAttributeFromClaim","id","split","pop","typeConfig","datatype","array","values","map","arrayValue","index","toString","type","DataTypeEnum","Object","attributes","nestedClaim","_formatDateLocalized","String","date","formatDateLocalized","Picture","SwiyuPicture","_typeConfig$params","params","showAs","detailsCardFromCredential","detailsCardFromCredentialWithClaims","card","nestAttributes","attribute","attributePath","length","push","first","rest","parent","a","insertAttributeInParent","join","nestAttributeInDummyParent","pathParts","listValue","disabled","_parent$attributes","nextParent","_parent$values","_parent$attributes2","parseBase64Image","getCredentialSchemaWithoutImages","credentialSchema","_credentialSchema$lay","_credentialSchema$lay2","_credentialSchema$lay3","_credentialSchema$lay4"],"sources":["credential.ts"],"sourcesContent":["import {\n ClaimBindingDto,\n Config,\n CredentialDetailBindingDto,\n CredentialListItemBindingDto,\n CredentialSchemaDetailBindingDto,\n CredentialStateBindingEnum,\n DataTypeEnum,\n FormatFeatureEnum,\n} from '@procivis/react-native-one-core';\nimport { FC } from 'react';\nimport { SvgProps } from 'react-native-svg';\n\nimport {\n CredentialAttribute,\n CredentialAttributeValue,\n CredentialCardProps,\n CredentialDetailsCardProps,\n CredentialHeaderProps,\n} from '../../ui-components/credential';\nimport { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';\nimport { CredentialErrorIcon, CredentialNoticeWarningIcon, CredentialWarningIcon } from '../../ui-components/icons';\nimport { formatDateLocalized, formatDateTimeLocalized } from '../date';\nimport { concatTestID } from '../testID';\nimport { getCarouselImagesFromClaims } from './credential-images';\n\nexport enum ValidityState {\n Revoked = 'revoked',\n Suspended = 'suspended',\n Valid = 'valid',\n}\n\nexport const getValidityState = (credential: CredentialListItemBindingDto | undefined) => {\n if (credential?.state === CredentialStateBindingEnum.REVOKED) {\n return ValidityState.Revoked;\n }\n if (credential?.state === CredentialStateBindingEnum.SUSPENDED) {\n return ValidityState.Suspended;\n }\n return ValidityState.Valid;\n};\n\nexport const supportsSelectiveDisclosure = (\n credential: CredentialListItemBindingDto | undefined,\n config: Config | undefined,\n) => {\n const formatConfig = credential && config?.format[credential.schema.format];\n return formatConfig\n ? Boolean(formatConfig.capabilities?.features?.includes(FormatFeatureEnum.SelectiveDisclosure))\n : undefined;\n};\n\nexport const findClaimByPath = (path: string | undefined, claims: ClaimBindingDto[]): ClaimBindingDto | undefined => {\n if (!path) {\n return undefined;\n }\n\n const exactClaim = claims.find((claim) => claim.path === path);\n if (exactClaim) {\n return exactClaim;\n }\n\n const parentClaim = claims.find((claim) => path.startsWith(`${claim.path}/`));\n if (parentClaim && parentClaim.value.type_ === 'NESTED') {\n return findClaimByPath(path, parentClaim.value.value);\n }\n\n return undefined;\n};\n\nconst formatCredentialDetail = (claim: ClaimBindingDto, config: Config, testID: string): string => {\n const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID);\n return attributeValue.value ?? '';\n};\n\nexport const hasMsoValidityIssues = (credential: CredentialDetailBindingDto): 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: CredentialDetailBindingDto,\n claims: ClaimBindingDto[] = [],\n config: Config,\n testID: string,\n labels: CardHeaderLabels,\n): {\n credentialDetailPrimary?: string;\n credentialDetailSecondary?: string;\n credentialDetailErrorColor?: boolean;\n credentialDetailTestID?: string;\n statusIcon?: FC<SvgProps>;\n} => {\n const { layoutProperties } = credential.schema;\n\n switch (credential.state) {\n case CredentialStateBindingEnum.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 CredentialStateBindingEnum.REVOKED:\n return {\n credentialDetailPrimary: labels.revoked,\n credentialDetailErrorColor: true,\n credentialDetailTestID: concatTestID(testID, 'revoked'),\n statusIcon: CredentialErrorIcon,\n };\n }\n\n if (hasMsoValidityIssues(credential)) {\n return {\n credentialDetailPrimary: labels.validityIssues,\n credentialDetailTestID: concatTestID(testID, 'validity-issue'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n let credentialDetailPrimary =\n formatDateTimeLocalized(new Date(credential.issuanceDate ?? credential.createdDate)) ?? '';\n let credentialDetailSecondary: string | undefined;\n\n const primary = findClaimByPath(layoutProperties?.primaryAttribute, claims);\n\n if (primary) {\n credentialDetailPrimary = formatCredentialDetail(primary, config, concatTestID(testID, 'primary'));\n }\n\n const secondary = findClaimByPath(layoutProperties?.secondaryAttribute, claims);\n\n if (secondary) {\n credentialDetailSecondary = formatCredentialDetail(secondary, config, concatTestID(testID, 'secondary'));\n }\n\n return {\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID: concatTestID(testID, 'detail'),\n };\n};\n\nexport const cardHeaderFromCredential = (\n credential: CredentialDetailBindingDto,\n claims: ClaimBindingDto[] = [],\n config: Config,\n testID: string,\n labels: CardHeaderLabels,\n): Omit<CredentialHeaderProps, 'style'> => {\n const {\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailErrorColor,\n credentialDetailTestID,\n statusIcon,\n } = credentialDetailFromCredential(credential, claims, config, testID, labels);\n const { layoutProperties } = credential.schema;\n\n return {\n color: layoutProperties?.logo?.backgroundColor,\n credentialDetailErrorColor,\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID,\n credentialName: credential.schema.name,\n icon: layoutProperties?.logo?.image\n ? {\n imageSource: {\n uri: layoutProperties.logo.image,\n },\n }\n : undefined,\n iconLabelColor: layoutProperties?.logo?.fontColor,\n statusIcon,\n testID,\n };\n};\n\nexport type CardLabels = CardHeaderLabels & {\n validityIssuesNotice: string;\n};\n\nexport const getCredentialCardPropsFromCredential = (\n credential: CredentialDetailBindingDto,\n claims: ClaimBindingDto[] = [],\n config: Config,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: CardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n const { layoutProperties } = credential.schema;\n\n if (hasMsoValidityIssues(credential)) {\n notice = {\n text: labels.validityIssuesNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n };\n }\n\n const result: Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> = {\n cardCarouselImages: getCarouselImagesFromClaims(claims, layoutProperties, concatTestID(testID, 'carousel')),\n cardImage: layoutProperties?.background?.image\n ? { imageSource: { uri: layoutProperties.background.image } }\n : undefined,\n color: layoutProperties?.background?.color,\n header: cardHeaderFromCredential(credential, claims, config, concatTestID(testID, 'header'), labels),\n testID,\n notice,\n };\n\n return result;\n};\n\nexport const detailsCardAttributeFromClaim = (\n claim: ClaimBindingDto,\n config: Config,\n testID: string,\n): CredentialAttribute => {\n const value = detailsCardAttributeValueFromClaim(claim, config, testID);\n return {\n id: claim.path,\n name: claim.path.split('/').pop(),\n path: claim.path,\n ...value,\n };\n};\n\nconst detailsCardAttributeValueFromClaim = (\n claim: ClaimBindingDto,\n config: Config,\n testID: string,\n): CredentialAttributeValue => {\n const typeConfig = config?.datatype[claim.schema.datatype];\n\n if (claim.schema.array) {\n return {\n values: ((claim.value.value as ClaimBindingDto[]) || []).map((arrayValue, index) => {\n return detailsCardAttributeFromClaim(arrayValue, config, concatTestID(testID, index.toString()));\n }),\n };\n } else {\n switch (typeConfig?.type) {\n case DataTypeEnum.Object: {\n if (claim.value.type_ !== 'NESTED') {\n return { attributes: [] };\n }\n return {\n attributes: claim.value.value.map((nestedClaim, index) =>\n detailsCardAttributeFromClaim(nestedClaim, config, concatTestID(testID, index.toString())),\n ),\n };\n }\n case DataTypeEnum.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 DataTypeEnum.Picture: // fallback\n case DataTypeEnum.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: CredentialDetailBindingDto,\n config: Config,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels);\n};\n\nexport const detailsCardFromCredentialWithClaims = (\n credential: CredentialDetailBindingDto,\n claims: ClaimBindingDto[],\n config: Config,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const attributes: CredentialAttribute[] = claims.map((claim, index) =>\n detailsCardAttributeFromClaim(claim, config, concatTestID(testID, 'attribute', index.toString())),\n );\n\n const card = getCredentialCardPropsFromCredential(\n credential,\n claims,\n config,\n undefined,\n concatTestID(testID, 'card'),\n labels,\n );\n\n return {\n attributes,\n card,\n };\n};\n\n// Converts a flat list of attributes into a nested structure\n// modifies the names to not include slashes\nexport const nestAttributes = (attributes: CredentialAttribute[]): CredentialAttribute[] => {\n const result: CredentialAttribute[] = [];\n\n for (const attribute of attributes) {\n const attributePath = attribute.path.split('/');\n if (attributePath.length === 0) {\n result.push(attribute);\n } else {\n const [first, ...rest] = attributePath;\n const parent = result.find((a) => a.name === first);\n if (parent) {\n insertAttributeInParent({ ...attribute, path: rest.join('/') }, parent);\n } else {\n result.push(nestAttributeInDummyParent(attribute));\n }\n }\n }\n\n return result;\n};\n\n// We nest the leaf node in a (one or more) nested object(s)\n// to make sure the tree structure is correctly rendered in proof request screens.\nconst nestAttributeInDummyParent = (attribute: CredentialAttribute): CredentialAttribute => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n if (!rest.length) {\n return attribute;\n }\n\n // The dummy object is not selectable, and contains a placeholder ID\n // the user can't interact with it.\n if (attribute.listValue) {\n return {\n values: [nestAttributeInDummyParent({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: first,\n };\n } else {\n return {\n attributes: [nestAttributeInDummyParent({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: first,\n };\n }\n};\n\n// Recursively insert an attribute into an parent\n// Will create nested parents if necessary\nconst insertAttributeInParent = (attribute: CredentialAttribute, parent: CredentialAttribute) => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n\n const nextParent = parent.attributes?.find((a) => a.name === first);\n\n if (!nextParent) {\n if (attribute.listValue) {\n parent.values?.push(nestAttributeInDummyParent(attribute));\n } else {\n parent.attributes?.push(nestAttributeInDummyParent(attribute));\n }\n } else {\n insertAttributeInParent({ ...attribute, path: rest.join('/') }, nextParent);\n }\n};\n\nfunction parseBase64Image(image: string | undefined) {\n return image ? '__BASE64IMAGE__' : '';\n}\n\nexport function getCredentialSchemaWithoutImages(credentialSchema: CredentialSchemaDetailBindingDto) {\n return {\n ...credentialSchema,\n layoutProperties: {\n ...credentialSchema.layoutProperties,\n background: {\n ...credentialSchema.layoutProperties?.background,\n image: parseBase64Image(credentialSchema.layoutProperties?.background?.image),\n },\n logo: {\n ...credentialSchema.layoutProperties?.logo,\n image: parseBase64Image(credentialSchema.layoutProperties?.logo?.image),\n },\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNativeOneCore","require","_icons","_date","_testID","_credentialImages","ValidityState","exports","getValidityState","credential","state","CredentialStateBindingEnum","REVOKED","Revoked","SUSPENDED","Suspended","Valid","supportsSelectiveDisclosure","config","_formatConfig$capabil","formatConfig","format","schema","Boolean","capabilities","features","includes","FormatFeatureEnum","SelectiveDisclosure","undefined","findClaimByPath","path","claims","exactClaim","find","claim","parentClaim","startsWith","value","type_","formatCredentialDetail","testID","_attributeValue$value","attributeValue","detailsCardAttributeValueFromClaim","hasMsoValidityIssues","_credential$mdocMsoVa","mdocMsoValidityIssue","mdocMsoValidity","nextUpdate","Date","credentialDetailFromCredential","labels","_formatDateTimeLocali","_credential$issuanceD","layoutProperties","credentialDetailPrimary","suspendEndDate","suspendedUntil","formatDateTimeLocalized","suspended","credentialDetailTestID","concatTestID","statusIcon","CredentialWarningIcon","revoked","credentialDetailErrorColor","CredentialErrorIcon","validityIssues","issuanceDate","createdDate","credentialDetailSecondary","primary","primaryAttribute","secondary","secondaryAttribute","cardHeaderFromCredential","_layoutProperties$log","_layoutProperties$log2","_layoutProperties$log3","color","logo","backgroundColor","credentialName","name","icon","image","imageSource","uri","iconLabelColor","fontColor","getCredentialCardPropsFromCredential","notice","_layoutProperties$bac","_layoutProperties$bac2","text","validityIssuesNotice","noticeIcon","CredentialNoticeWarningIcon","result","cardCarouselImages","getCarouselImagesFromClaims","cardImage","background","header","detailsCardAttributeFromClaim","id","split","pop","typeConfig","datatype","array","values","map","arrayValue","index","toString","type","DataTypeEnum","Object","attributes","nestedClaim","_formatDateLocalized","String","date","formatDateLocalized","Picture","SwiyuPicture","_typeConfig$params","params","showAs","detailsCardFromCredential","detailsCardFromCredentialWithClaims","card","nestAttributes","attribute","attributePath","length","push","first","rest","parent","a","insertAttributeInParent","join","nestAttributeInDummyParent","pathParts","listValue","disabled","_parent$attributes","nextParent","_parent$values","_parent$attributes2","parseBase64Image","getCredentialSchemaWithoutImages","credentialSchema","_credentialSchema$lay","_credentialSchema$lay2","_credentialSchema$lay3","_credentialSchema$lay4"],"sources":["credential.ts"],"sourcesContent":["import {\n ClaimBindingDto,\n Config,\n CredentialDetailBindingDto,\n CredentialListItemBindingDto,\n CredentialSchemaBindingDto,\n CredentialStateBindingEnum,\n DataTypeEnum,\n FormatFeatureEnum,\n} from '@procivis/react-native-one-core';\nimport { FC } from 'react';\nimport { SvgProps } from 'react-native-svg';\n\nimport {\n CredentialAttribute,\n CredentialAttributeValue,\n CredentialCardProps,\n CredentialDetailsCardProps,\n CredentialHeaderProps,\n} from '../../ui-components/credential';\nimport { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';\nimport { CredentialErrorIcon, CredentialNoticeWarningIcon, CredentialWarningIcon } from '../../ui-components/icons';\nimport { formatDateLocalized, formatDateTimeLocalized } from '../date';\nimport { concatTestID } from '../testID';\nimport { getCarouselImagesFromClaims } from './credential-images';\n\nexport enum ValidityState {\n Revoked = 'revoked',\n Suspended = 'suspended',\n Valid = 'valid',\n}\n\nexport const getValidityState = (credential: CredentialListItemBindingDto | undefined) => {\n if (credential?.state === CredentialStateBindingEnum.REVOKED) {\n return ValidityState.Revoked;\n }\n if (credential?.state === CredentialStateBindingEnum.SUSPENDED) {\n return ValidityState.Suspended;\n }\n return ValidityState.Valid;\n};\n\nexport const supportsSelectiveDisclosure = (\n credential: CredentialListItemBindingDto | undefined,\n config: Config | undefined,\n) => {\n const formatConfig = credential && config?.format[credential.schema.format];\n return formatConfig\n ? Boolean(formatConfig.capabilities?.features?.includes(FormatFeatureEnum.SelectiveDisclosure))\n : undefined;\n};\n\nexport const findClaimByPath = (path: string | undefined, claims: ClaimBindingDto[]): ClaimBindingDto | undefined => {\n if (!path) {\n return undefined;\n }\n\n const exactClaim = claims.find((claim) => claim.path === path);\n if (exactClaim) {\n return exactClaim;\n }\n\n const parentClaim = claims.find((claim) => path.startsWith(`${claim.path}/`));\n if (parentClaim && parentClaim.value.type_ === 'NESTED') {\n return findClaimByPath(path, parentClaim.value.value);\n }\n\n return undefined;\n};\n\nconst formatCredentialDetail = (claim: ClaimBindingDto, config: Config, testID: string): string => {\n const attributeValue = detailsCardAttributeValueFromClaim(claim, config, testID);\n return attributeValue.value ?? '';\n};\n\nexport const hasMsoValidityIssues = (credential: CredentialDetailBindingDto): 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: CredentialDetailBindingDto,\n claims: ClaimBindingDto[] = [],\n config: Config,\n testID: string,\n labels: CardHeaderLabels,\n): {\n credentialDetailPrimary?: string;\n credentialDetailSecondary?: string;\n credentialDetailErrorColor?: boolean;\n credentialDetailTestID?: string;\n statusIcon?: FC<SvgProps>;\n} => {\n const { layoutProperties } = credential.schema;\n\n switch (credential.state) {\n case CredentialStateBindingEnum.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 CredentialStateBindingEnum.REVOKED:\n return {\n credentialDetailPrimary: labels.revoked,\n credentialDetailErrorColor: true,\n credentialDetailTestID: concatTestID(testID, 'revoked'),\n statusIcon: CredentialErrorIcon,\n };\n }\n\n if (hasMsoValidityIssues(credential)) {\n return {\n credentialDetailPrimary: labels.validityIssues,\n credentialDetailTestID: concatTestID(testID, 'validity-issue'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n let credentialDetailPrimary =\n formatDateTimeLocalized(new Date(credential.issuanceDate ?? credential.createdDate)) ?? '';\n let credentialDetailSecondary: string | undefined;\n\n const primary = findClaimByPath(layoutProperties?.primaryAttribute, claims);\n\n if (primary) {\n credentialDetailPrimary = formatCredentialDetail(primary, config, concatTestID(testID, 'primary'));\n }\n\n const secondary = findClaimByPath(layoutProperties?.secondaryAttribute, claims);\n\n if (secondary) {\n credentialDetailSecondary = formatCredentialDetail(secondary, config, concatTestID(testID, 'secondary'));\n }\n\n return {\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID: concatTestID(testID, 'detail'),\n };\n};\n\nexport const cardHeaderFromCredential = (\n credential: CredentialDetailBindingDto,\n claims: ClaimBindingDto[] = [],\n config: Config,\n testID: string,\n labels: CardHeaderLabels,\n): Omit<CredentialHeaderProps, 'style'> => {\n const {\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailErrorColor,\n credentialDetailTestID,\n statusIcon,\n } = credentialDetailFromCredential(credential, claims, config, testID, labels);\n const { layoutProperties } = credential.schema;\n\n return {\n color: layoutProperties?.logo?.backgroundColor,\n credentialDetailErrorColor,\n credentialDetailPrimary,\n credentialDetailSecondary,\n credentialDetailTestID,\n credentialName: credential.schema.name,\n icon: layoutProperties?.logo?.image\n ? {\n imageSource: {\n uri: layoutProperties.logo.image,\n },\n }\n : undefined,\n iconLabelColor: layoutProperties?.logo?.fontColor,\n statusIcon,\n testID,\n };\n};\n\nexport type CardLabels = CardHeaderLabels & {\n validityIssuesNotice: string;\n};\n\nexport const getCredentialCardPropsFromCredential = (\n credential: CredentialDetailBindingDto,\n claims: ClaimBindingDto[] = [],\n config: Config,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: CardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> => {\n const { layoutProperties } = credential.schema;\n\n if (hasMsoValidityIssues(credential)) {\n notice = {\n text: labels.validityIssuesNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n };\n }\n\n const result: Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'> = {\n cardCarouselImages: getCarouselImagesFromClaims(claims, layoutProperties, concatTestID(testID, 'carousel')),\n cardImage: layoutProperties?.background?.image\n ? { imageSource: { uri: layoutProperties.background.image } }\n : undefined,\n color: layoutProperties?.background?.color,\n header: cardHeaderFromCredential(credential, claims, config, concatTestID(testID, 'header'), labels),\n testID,\n notice,\n };\n\n return result;\n};\n\nexport const detailsCardAttributeFromClaim = (\n claim: ClaimBindingDto,\n config: Config,\n testID: string,\n): CredentialAttribute => {\n const value = detailsCardAttributeValueFromClaim(claim, config, testID);\n return {\n id: claim.path,\n name: claim.path.split('/').pop(),\n path: claim.path,\n ...value,\n };\n};\n\nconst detailsCardAttributeValueFromClaim = (\n claim: ClaimBindingDto,\n config: Config,\n testID: string,\n): CredentialAttributeValue => {\n const typeConfig = config?.datatype[claim.schema.datatype];\n\n if (claim.schema.array) {\n return {\n values: ((claim.value.value as ClaimBindingDto[]) || []).map((arrayValue, index) => {\n return detailsCardAttributeFromClaim(arrayValue, config, concatTestID(testID, index.toString()));\n }),\n };\n } else {\n switch (typeConfig?.type) {\n case DataTypeEnum.Object: {\n if (claim.value.type_ !== 'NESTED') {\n return { attributes: [] };\n }\n return {\n attributes: claim.value.value.map((nestedClaim, index) =>\n detailsCardAttributeFromClaim(nestedClaim, config, concatTestID(testID, index.toString())),\n ),\n };\n }\n case DataTypeEnum.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 DataTypeEnum.Picture: // fallback\n case DataTypeEnum.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: CredentialDetailBindingDto,\n config: Config,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n return detailsCardFromCredentialWithClaims(credential, credential.claims, config, testID, labels);\n};\n\nexport const detailsCardFromCredentialWithClaims = (\n credential: CredentialDetailBindingDto,\n claims: ClaimBindingDto[],\n config: Config,\n testID: string,\n labels: CardLabels,\n): CredentialDetailsCardPropsWithoutWidth => {\n const attributes: CredentialAttribute[] = claims.map((claim, index) =>\n detailsCardAttributeFromClaim(claim, config, concatTestID(testID, 'attribute', index.toString())),\n );\n\n const card = getCredentialCardPropsFromCredential(\n credential,\n claims,\n config,\n undefined,\n concatTestID(testID, 'card'),\n labels,\n );\n\n return {\n attributes,\n card,\n };\n};\n\n// Converts a flat list of attributes into a nested structure\n// modifies the names to not include slashes\nexport const nestAttributes = (attributes: CredentialAttribute[]): CredentialAttribute[] => {\n const result: CredentialAttribute[] = [];\n\n for (const attribute of attributes) {\n const attributePath = attribute.path.split('/');\n if (attributePath.length === 0) {\n result.push(attribute);\n } else {\n const [first, ...rest] = attributePath;\n const parent = result.find((a) => a.name === first);\n if (parent) {\n insertAttributeInParent({ ...attribute, path: rest.join('/') }, parent);\n } else {\n result.push(nestAttributeInDummyParent(attribute));\n }\n }\n }\n\n return result;\n};\n\n// We nest the leaf node in a (one or more) nested object(s)\n// to make sure the tree structure is correctly rendered in proof request screens.\nconst nestAttributeInDummyParent = (attribute: CredentialAttribute): CredentialAttribute => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n if (!rest.length) {\n return attribute;\n }\n\n // The dummy object is not selectable, and contains a placeholder ID\n // the user can't interact with it.\n if (attribute.listValue) {\n return {\n values: [nestAttributeInDummyParent({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: first,\n };\n } else {\n return {\n attributes: [nestAttributeInDummyParent({ ...attribute, path: rest.join('/') })],\n disabled: true,\n id: `${attribute.id}/${first}`,\n name: first,\n path: first,\n };\n }\n};\n\n// Recursively insert an attribute into an parent\n// Will create nested parents if necessary\nconst insertAttributeInParent = (attribute: CredentialAttribute, parent: CredentialAttribute) => {\n const pathParts = attribute.path.split('/');\n const [first, ...rest] = pathParts;\n\n const nextParent = parent.attributes?.find((a) => a.name === first);\n\n if (!nextParent) {\n if (attribute.listValue) {\n parent.values?.push(nestAttributeInDummyParent(attribute));\n } else {\n parent.attributes?.push(nestAttributeInDummyParent(attribute));\n }\n } else {\n insertAttributeInParent({ ...attribute, path: rest.join('/') }, nextParent);\n }\n};\n\nfunction parseBase64Image(image: string | undefined) {\n return image ? '__BASE64IMAGE__' : '';\n}\n\nexport function getCredentialSchemaWithoutImages<T extends CredentialSchemaBindingDto>(credentialSchema: T): T {\n return {\n ...credentialSchema,\n layoutProperties: {\n ...credentialSchema.layoutProperties,\n background: {\n ...credentialSchema.layoutProperties?.background,\n image: parseBase64Image(credentialSchema.layoutProperties?.background?.image),\n },\n logo: {\n ...credentialSchema.layoutProperties?.logo,\n image: parseBase64Image(credentialSchema.layoutProperties?.logo?.image),\n },\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -29,9 +29,7 @@ const defaultIcons = {
|
|
|
29
29
|
EXPIRED: HistoryStatusErrorIcon,
|
|
30
30
|
INTERACTION_CREATED: HistoryStatusAcceptedIcon,
|
|
31
31
|
INTERACTION_ERRORED: HistoryStatusErrorIcon,
|
|
32
|
-
INTERACTION_EXPIRED: HistoryStatusErrorIcon
|
|
33
|
-
REGISTRATION_CERTIFICATE_CREATED: HistoryStatusAcceptedIcon,
|
|
34
|
-
REGISTRATION_CERTIFICATE_REVOKED: HistoryStatusErrorIcon
|
|
32
|
+
INTERACTION_EXPIRED: HistoryStatusErrorIcon
|
|
35
33
|
},
|
|
36
34
|
entityTypes: {
|
|
37
35
|
BACKUP: HistoryRevokeIcon,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HistoryActionBindingEnum","HistoryEntityTypeBindingEnum","React","useMemo","HistoryBackupCreatedIcon","HistoryBackupRestoredIcon","HistoryCertificateIcon","HistoryCredentialIcon","HistoryDidIcon","HistoryIdentifierIcon","HistoryIssueIcon","HistoryItemIcon","HistoryKeyIcon","HistoryOrganisationIcon","HistoryProofRequestIcon","HistoryRevokeIcon","HistorySchemaIcon","HistoryStatusAcceptedIcon","HistoryStatusDeleteIcon","HistoryStatusErrorIcon","HistoryStatusSuspendIcon","HistorySuspendIcon","HistoryTrustAnchorIcon","HistoryTrustedEntityIcon","defaultIcons","actions","ACCEPTED","ACTIVATED","CLAIMS_REMOVED","CREATED","DEACTIVATED","DELETED","ERRORED","IMPORTED","ISSUED","OFFERED","PENDING","REJECTED","REMOVED","REQUESTED","RESTORED","RETRACTED","REVOKED","SHARED","SUSPENDED","UPDATED","WITHDRAWN","REACTIVATED","CSR_GENERATED","EXPIRED","INTERACTION_CREATED","INTERACTION_ERRORED","INTERACTION_EXPIRED","
|
|
1
|
+
{"version":3,"names":["HistoryActionBindingEnum","HistoryEntityTypeBindingEnum","React","useMemo","HistoryBackupCreatedIcon","HistoryBackupRestoredIcon","HistoryCertificateIcon","HistoryCredentialIcon","HistoryDidIcon","HistoryIdentifierIcon","HistoryIssueIcon","HistoryItemIcon","HistoryKeyIcon","HistoryOrganisationIcon","HistoryProofRequestIcon","HistoryRevokeIcon","HistorySchemaIcon","HistoryStatusAcceptedIcon","HistoryStatusDeleteIcon","HistoryStatusErrorIcon","HistoryStatusSuspendIcon","HistorySuspendIcon","HistoryTrustAnchorIcon","HistoryTrustedEntityIcon","defaultIcons","actions","ACCEPTED","ACTIVATED","CLAIMS_REMOVED","CREATED","DEACTIVATED","DELETED","ERRORED","IMPORTED","ISSUED","OFFERED","PENDING","REJECTED","REMOVED","REQUESTED","RESTORED","RETRACTED","REVOKED","SHARED","SUSPENDED","UPDATED","WITHDRAWN","REACTIVATED","CSR_GENERATED","EXPIRED","INTERACTION_CREATED","INTERACTION_ERRORED","INTERACTION_EXPIRED","entityTypes","BACKUP","CERTIFICATE","CREDENTIAL","CREDENTIAL_SCHEMA","DID","IDENTIFIER","KEY","ORGANISATION","PROOF","PROOF_SCHEMA","TRUST_ANCHOR","TRUST_ENTITY","WALLET_UNIT","WALLET_RELYING_PARTY","USER","PROVIDER","STS_ROLE","STS_ORGANISATION","STS_IAM_ROLE","STS_TOKEN","SIGNATURE","getHistoryItemActionIcon","action","_defaultIcons$actions","HistoryListItemIcon","item","statusIcon","typeIcon","_defaultIcons$entityT","entityType","createElement","StatusIcon","TypeIcon"],"sources":["history-list-item-icon.tsx"],"sourcesContent":["import {\n HistoryActionBindingEnum,\n HistoryEntityTypeBindingEnum,\n HistoryListItemBindingDto,\n} from '@procivis/react-native-one-core';\nimport React, { FC, useMemo } from 'react';\nimport { SvgProps } from 'react-native-svg';\n\nimport {\n HistoryBackupCreatedIcon,\n HistoryBackupRestoredIcon,\n HistoryCertificateIcon,\n HistoryCredentialIcon,\n HistoryDidIcon,\n HistoryIdentifierIcon,\n HistoryIssueIcon,\n HistoryItemIcon,\n HistoryKeyIcon,\n HistoryOrganisationIcon,\n HistoryProofRequestIcon,\n HistoryRevokeIcon,\n HistorySchemaIcon,\n HistoryStatusAcceptedIcon,\n HistoryStatusDeleteIcon,\n HistoryStatusErrorIcon,\n HistoryStatusSuspendIcon,\n HistorySuspendIcon,\n HistoryTrustAnchorIcon,\n HistoryTrustedEntityIcon,\n} from '../../ui-components';\n\nconst defaultIcons: {\n actions: { [key in keyof typeof HistoryActionBindingEnum]: FC<SvgProps> };\n entityTypes: { [key in keyof typeof HistoryEntityTypeBindingEnum]: FC<SvgProps> };\n} = {\n actions: {\n ACCEPTED: HistoryStatusAcceptedIcon,\n ACTIVATED: HistoryStatusAcceptedIcon,\n CLAIMS_REMOVED: HistoryStatusDeleteIcon,\n CREATED: HistoryStatusAcceptedIcon,\n DEACTIVATED: HistoryStatusErrorIcon,\n DELETED: HistoryStatusDeleteIcon,\n ERRORED: HistoryStatusErrorIcon,\n IMPORTED: HistoryStatusAcceptedIcon,\n ISSUED: HistoryStatusAcceptedIcon,\n OFFERED: HistoryStatusAcceptedIcon,\n PENDING: HistoryStatusAcceptedIcon,\n REJECTED: HistoryStatusErrorIcon,\n REMOVED: HistoryStatusDeleteIcon,\n REQUESTED: HistoryStatusAcceptedIcon,\n RESTORED: HistoryStatusAcceptedIcon,\n RETRACTED: HistoryStatusErrorIcon,\n REVOKED: HistoryStatusErrorIcon,\n SHARED: HistoryStatusAcceptedIcon,\n SUSPENDED: HistoryStatusSuspendIcon,\n UPDATED: HistoryStatusAcceptedIcon,\n WITHDRAWN: HistoryStatusErrorIcon,\n REACTIVATED: HistoryStatusAcceptedIcon,\n CSR_GENERATED: HistoryStatusAcceptedIcon,\n EXPIRED: HistoryStatusErrorIcon,\n INTERACTION_CREATED: HistoryStatusAcceptedIcon,\n INTERACTION_ERRORED: HistoryStatusErrorIcon,\n INTERACTION_EXPIRED: HistoryStatusErrorIcon,\n },\n entityTypes: {\n BACKUP: HistoryRevokeIcon,\n CERTIFICATE: HistoryCertificateIcon,\n CREDENTIAL: HistoryCredentialIcon,\n CREDENTIAL_SCHEMA: HistorySchemaIcon,\n DID: HistoryDidIcon,\n IDENTIFIER: HistoryIdentifierIcon,\n KEY: HistoryKeyIcon,\n ORGANISATION: HistoryOrganisationIcon,\n PROOF: HistoryProofRequestIcon,\n PROOF_SCHEMA: HistorySchemaIcon,\n TRUST_ANCHOR: HistoryTrustAnchorIcon,\n TRUST_ENTITY: HistoryTrustedEntityIcon,\n WALLET_UNIT: HistoryTrustedEntityIcon,\n WALLET_RELYING_PARTY: HistoryTrustedEntityIcon,\n USER: HistoryIdentifierIcon,\n PROVIDER: HistoryIdentifierIcon,\n STS_ROLE: HistoryIdentifierIcon,\n STS_ORGANISATION: HistoryOrganisationIcon,\n STS_IAM_ROLE: HistoryIdentifierIcon,\n STS_TOKEN: HistoryKeyIcon,\n SIGNATURE: HistoryCertificateIcon,\n },\n};\n\nexport const getHistoryItemActionIcon = (action: HistoryActionBindingEnum) => {\n return defaultIcons.actions[action] ?? HistoryStatusAcceptedIcon;\n};\n\nexport type HistoryListItemIconProps = {\n item: HistoryListItemBindingDto;\n};\n\nexport const HistoryListItemIcon: FC<HistoryListItemIconProps> = ({ item }) => {\n const statusIcon = getHistoryItemActionIcon(item.action);\n const typeIcon = useMemo(() => {\n switch (item.entityType) {\n case HistoryEntityTypeBindingEnum.BACKUP:\n switch (item.action) {\n case HistoryActionBindingEnum.CREATED:\n return HistoryBackupCreatedIcon;\n case HistoryActionBindingEnum.RESTORED:\n return HistoryBackupRestoredIcon;\n default:\n break;\n }\n break;\n case HistoryEntityTypeBindingEnum.CREDENTIAL:\n switch (item.action) {\n case HistoryActionBindingEnum.REVOKED:\n return HistoryRevokeIcon;\n case HistoryActionBindingEnum.SUSPENDED:\n return HistorySuspendIcon;\n default:\n break;\n }\n break;\n default:\n break;\n }\n\n return defaultIcons.entityTypes[item.entityType] ?? HistoryIssueIcon;\n }, [item.action, item.entityType]);\n return <HistoryItemIcon StatusIcon={statusIcon} TypeIcon={typeIcon} />;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["debounce","React","useEffect","useMemo","useState","Animated","StyleSheet","View","BackButton","FilterButton","FoldableHeader","NavigationHeader","Typography","useAppColorScheme","concatTestID","groupEntriesByDay","useListContentInset","HistoryListView","HistoryListScreen","children","groupItems","itemInfoLabelMode","labels","onBackPressed","onHistoryItemPressed","onOpenFilter","onSearchPhraseChange","queryParams","testID","_queryParams$search","colorScheme","empty","setEmpty","scrollOffset","Value","searchPhrase","setSearchPhrase","searchBarVisible","Boolean","search","text","handleSearchPhraseChange","undefined","headerHeight","insets","additionalBottomPadding","createElement","style","styles","container","backgroundColor","background","emptyNotice","white","marginTop","paddingTop","align","color","preset","emptyTitle","shaded","emptySubtitle","contentContainerStyle","itemProps","infoLabelMode","onPress","onEmpty","onScroll","event","nativeEvent","contentOffset","y","useNativeDriver","query","list","header","leftItem","title","searchBar","rightButtons","active","credentialSchemaId","rightButtonAlwaysVisible","searchBarProps","placeholder","staticHeader","create","flex","borderRadius","marginHorizontal","paddingBottom","paddingHorizontal","opacity"],"sources":["history-list-screen.tsx"],"sourcesContent":["import { HistoryListItemBindingDto, HistoryListQueryBindingDto } from '@procivis/react-native-one-core';\nimport { debounce } from 'lodash';\nimport React, { FC, PropsWithChildren, useEffect, useMemo, useState } from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\n\nimport {\n BackButton,\n FilterButton,\n FoldableHeader,\n NavigationHeader,\n Typography,\n useAppColorScheme,\n} from '../../ui-components';\nimport { concatTestID, groupEntriesByDay, HistoryGroupByDaySection, useListContentInset } from '../../utils';\nimport { HistoryListLabels, HistoryListView } from './history-list';\nimport { HistoryListItemViewProps } from './history-list-item';\n\nexport type HistoryListScreenLabels = {\n emptyTitle: string;\n emptySubtitle: string;\n list: HistoryListLabels;\n title: string;\n search: string;\n};\n\nexport type HistoryListScreenProps = {\n groupItems?: (entries: HistoryListItemBindingDto[]) => HistoryGroupByDaySection[];\n itemInfoLabelMode?: HistoryListItemViewProps['infoLabelMode'];\n labels: HistoryListScreenLabels;\n onBackPressed: () => void;\n onHistoryItemPressed: (historyItem: HistoryListItemBindingDto) => void;\n onOpenFilter?: () => void;\n onSearchPhraseChange: (searchPhrase: string | undefined) => void;\n queryParams: Partial<HistoryListQueryBindingDto>;\n testID?: string;\n};\n\nexport const HistoryListScreen: FC<PropsWithChildren<HistoryListScreenProps>> = ({\n children,\n groupItems = groupEntriesByDay,\n itemInfoLabelMode = 'entity',\n labels,\n onBackPressed,\n onHistoryItemPressed,\n onOpenFilter,\n onSearchPhraseChange,\n queryParams,\n testID = 'HistoryScreen',\n}) => {\n const colorScheme = useAppColorScheme();\n const [empty, setEmpty] = useState<boolean>(false);\n const [scrollOffset] = useState(() => new Animated.Value(0));\n\n const [searchPhrase, setSearchPhrase] = useState<string>('');\n const searchBarVisible = !empty || Boolean(queryParams.search?.text);\n\n const handleSearchPhraseChange = useMemo(() => debounce(onSearchPhraseChange, 500), [onSearchPhraseChange]);\n useEffect(() => {\n handleSearchPhraseChange(searchPhrase || undefined);\n }, [searchPhrase, handleSearchPhraseChange]);\n\n const headerHeight = searchBarVisible ? 112 : 70;\n\n const insets = useListContentInset({\n additionalBottomPadding: 24,\n headerHeight,\n });\n\n return (\n <View\n style={[\n styles.container,\n {\n backgroundColor: colorScheme.background,\n },\n ]}\n testID={testID}>\n {empty && (\n <View\n style={[\n styles.emptyNotice,\n {\n backgroundColor: colorScheme.white,\n marginTop: insets.paddingTop,\n },\n ]}>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s\">\n {labels.emptyTitle}\n </Typography>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s/line-height-small\" style={styles.shaded}>\n {labels.emptySubtitle}\n </Typography>\n </View>\n )}\n <HistoryListView\n contentContainerStyle={insets}\n groupItems={groupItems}\n itemProps={{ infoLabelMode: itemInfoLabelMode, onPress: onHistoryItemPressed }}\n onEmpty={setEmpty}\n onScroll={Animated.event([{ nativeEvent: { contentOffset: { y: scrollOffset } } }], {\n useNativeDriver: true,\n })}\n query={queryParams}\n testID={concatTestID(testID, 'list')}\n labels={labels.list}\n />\n {children}\n <FoldableHeader\n header={\n <NavigationHeader\n backgroundColor={'transparent'}\n leftItem={<BackButton onPress={onBackPressed} testID={concatTestID(testID, 'back')} />}\n title={labels.title}\n />\n }\n scrollOffset={scrollOffset}\n searchBar={\n !searchBarVisible\n ? undefined\n : {\n rightButtons: onOpenFilter\n ? [\n <FilterButton\n active={Boolean(queryParams.credentialSchemaId)}\n onPress={onOpenFilter}\n testID={concatTestID(testID, 'filter')}\n />,\n ]\n : undefined,\n rightButtonAlwaysVisible: true,\n searchBarProps: {\n onSearchPhraseChange: setSearchPhrase,\n placeholder: labels.search,\n searchPhrase,\n testID: concatTestID(testID, 'search'),\n },\n }\n }\n staticHeader={!searchBarVisible}\n />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n emptyNotice: {\n borderRadius: 12,\n marginHorizontal: 16,\n paddingBottom: 20,\n paddingHorizontal: 12,\n paddingTop: 16,\n },\n shaded: {\n opacity: 0.7,\n },\n});\n"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["debounce","React","useEffect","useMemo","useState","Animated","StyleSheet","View","BackButton","FilterButton","FoldableHeader","NavigationHeader","Typography","useAppColorScheme","concatTestID","groupEntriesByDay","useListContentInset","HistoryListView","HistoryListScreen","children","groupItems","itemInfoLabelMode","labels","onBackPressed","onHistoryItemPressed","onOpenFilter","onSearchPhraseChange","queryParams","testID","_queryParams$search","colorScheme","empty","setEmpty","scrollOffset","Value","searchPhrase","setSearchPhrase","searchBarVisible","Boolean","search","text","handleSearchPhraseChange","undefined","headerHeight","insets","additionalBottomPadding","createElement","style","styles","container","backgroundColor","background","emptyNotice","white","marginTop","paddingTop","align","color","preset","emptyTitle","shaded","emptySubtitle","contentContainerStyle","itemProps","infoLabelMode","onPress","onEmpty","onScroll","event","nativeEvent","contentOffset","y","useNativeDriver","query","list","header","leftItem","title","searchBar","rightButtons","active","credentialSchemaId","rightButtonAlwaysVisible","searchBarProps","placeholder","staticHeader","create","flex","borderRadius","borderWidth","marginHorizontal","paddingBottom","paddingHorizontal","opacity"],"sources":["history-list-screen.tsx"],"sourcesContent":["import { HistoryListItemBindingDto, HistoryListQueryBindingDto } from '@procivis/react-native-one-core';\nimport { debounce } from 'lodash';\nimport React, { FC, PropsWithChildren, useEffect, useMemo, useState } from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\n\nimport {\n BackButton,\n FilterButton,\n FoldableHeader,\n NavigationHeader,\n Typography,\n useAppColorScheme,\n} from '../../ui-components';\nimport { concatTestID, groupEntriesByDay, HistoryGroupByDaySection, useListContentInset } from '../../utils';\nimport { HistoryListLabels, HistoryListView } from './history-list';\nimport { HistoryListItemViewProps } from './history-list-item';\n\nexport type HistoryListScreenLabels = {\n emptyTitle: string;\n emptySubtitle: string;\n list: HistoryListLabels;\n title: string;\n search: string;\n};\n\nexport type HistoryListScreenProps = {\n groupItems?: (entries: HistoryListItemBindingDto[]) => HistoryGroupByDaySection[];\n itemInfoLabelMode?: HistoryListItemViewProps['infoLabelMode'];\n labels: HistoryListScreenLabels;\n onBackPressed: () => void;\n onHistoryItemPressed: (historyItem: HistoryListItemBindingDto) => void;\n onOpenFilter?: () => void;\n onSearchPhraseChange: (searchPhrase: string | undefined) => void;\n queryParams: Partial<HistoryListQueryBindingDto>;\n testID?: string;\n};\n\nexport const HistoryListScreen: FC<PropsWithChildren<HistoryListScreenProps>> = ({\n children,\n groupItems = groupEntriesByDay,\n itemInfoLabelMode = 'entity',\n labels,\n onBackPressed,\n onHistoryItemPressed,\n onOpenFilter,\n onSearchPhraseChange,\n queryParams,\n testID = 'HistoryScreen',\n}) => {\n const colorScheme = useAppColorScheme();\n const [empty, setEmpty] = useState<boolean>(false);\n const [scrollOffset] = useState(() => new Animated.Value(0));\n\n const [searchPhrase, setSearchPhrase] = useState<string>('');\n const searchBarVisible = !empty || Boolean(queryParams.search?.text);\n\n const handleSearchPhraseChange = useMemo(() => debounce(onSearchPhraseChange, 500), [onSearchPhraseChange]);\n useEffect(() => {\n handleSearchPhraseChange(searchPhrase || undefined);\n }, [searchPhrase, handleSearchPhraseChange]);\n\n const headerHeight = searchBarVisible ? 112 : 70;\n\n const insets = useListContentInset({\n additionalBottomPadding: 24,\n headerHeight,\n });\n\n return (\n <View\n style={[\n styles.container,\n {\n backgroundColor: colorScheme.background,\n },\n ]}\n testID={testID}>\n {empty && (\n <View\n style={[\n styles.emptyNotice,\n {\n backgroundColor: colorScheme.white,\n marginTop: insets.paddingTop,\n },\n ]}>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s\">\n {labels.emptyTitle}\n </Typography>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s/line-height-small\" style={styles.shaded}>\n {labels.emptySubtitle}\n </Typography>\n </View>\n )}\n <HistoryListView\n contentContainerStyle={insets}\n groupItems={groupItems}\n itemProps={{ infoLabelMode: itemInfoLabelMode, onPress: onHistoryItemPressed }}\n onEmpty={setEmpty}\n onScroll={Animated.event([{ nativeEvent: { contentOffset: { y: scrollOffset } } }], {\n useNativeDriver: true,\n })}\n query={queryParams}\n testID={concatTestID(testID, 'list')}\n labels={labels.list}\n />\n {children}\n <FoldableHeader\n header={\n <NavigationHeader\n backgroundColor={'transparent'}\n leftItem={<BackButton onPress={onBackPressed} testID={concatTestID(testID, 'back')} />}\n title={labels.title}\n />\n }\n scrollOffset={scrollOffset}\n searchBar={\n !searchBarVisible\n ? undefined\n : {\n rightButtons: onOpenFilter\n ? [\n <FilterButton\n active={Boolean(queryParams.credentialSchemaId)}\n onPress={onOpenFilter}\n testID={concatTestID(testID, 'filter')}\n />,\n ]\n : undefined,\n rightButtonAlwaysVisible: true,\n searchBarProps: {\n onSearchPhraseChange: setSearchPhrase,\n placeholder: labels.search,\n searchPhrase,\n testID: concatTestID(testID, 'search'),\n },\n }\n }\n staticHeader={!searchBarVisible}\n />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n emptyNotice: {\n borderRadius: 12,\n borderWidth: 0,\n marginHorizontal: 16,\n paddingBottom: 20,\n paddingHorizontal: 12,\n paddingTop: 16,\n },\n shaded: {\n opacity: 0.7,\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -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","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","overflow","paddingBottom","marginBottom"],"sources":["share-credential-v2-group.tsx"],"sourcesContent":["import {\n CredentialListItemBindingDto,\n PresentationDefinitionV2ClaimBindingDto,\n PresentationDefinitionV2ResponseBindingDto,\n PresentationSubmitV2CredentialRequestBindingDto,\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, useCredentialListExpandedCard } from '../../../utils';\nimport { ShareCredentialLabels } from '../v1/share-credential';\nimport { GroupedShareCredentialV2Padding, ShareCredentialV2 } from './share-credential-v2';\n\nexport type CredentialQuerySelection = Record<\n string,\n PresentationSubmitV2CredentialRequestBindingDto | PresentationSubmitV2CredentialRequestBindingDto[]\n>;\n\nexport type ShareCredentialGroupLabels = ShareCredentialLabels & {\n groupHeader: string;\n};\n\nexport type ShareCredentialV2GroupProps = {\n labels: ShareCredentialGroupLabels;\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: CredentialListItemBindingDto['id'],\n fieldPath: PresentationDefinitionV2ClaimBindingDto['path'],\n selected: boolean,\n ) => void;\n presentationDefinition: PresentationDefinitionV2ResponseBindingDto;\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 PresentationSubmitV2CredentialRequestBindingDto[]).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 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: PresentationSubmitV2CredentialRequestBindingDto;\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 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 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 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","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 CredentialListItemBindingDto,\n PresentationDefinitionV2ClaimBindingDto,\n PresentationDefinitionV2ResponseBindingDto,\n PresentationSubmitV2CredentialRequestBindingDto,\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, useCredentialListExpandedCard } from '../../../utils';\nimport { ShareCredentialLabels } from '../v1/share-credential';\nimport { GroupedShareCredentialV2Padding, ShareCredentialV2 } from './share-credential-v2';\n\nexport type CredentialQuerySelection = Record<\n string,\n PresentationSubmitV2CredentialRequestBindingDto | PresentationSubmitV2CredentialRequestBindingDto[]\n>;\n\nexport type ShareCredentialGroupLabels = ShareCredentialLabels & {\n groupHeader: string;\n};\n\nexport type ShareCredentialV2GroupProps = {\n labels: ShareCredentialGroupLabels;\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: CredentialListItemBindingDto['id'],\n fieldPath: PresentationDefinitionV2ClaimBindingDto['path'],\n selected: boolean,\n ) => void;\n presentationDefinition: PresentationDefinitionV2ResponseBindingDto;\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 PresentationSubmitV2CredentialRequestBindingDto[]).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 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: PresentationSubmitV2CredentialRequestBindingDto;\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 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 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 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useMemo","Dimensions","StyleSheet","CredentialDetailsCardListItem","useAppColorScheme","concatTestID","getValidityState","useCoreConfig","ValidityState","shareCredentialCardFromV2PresentationCredential","SelectShareCredentialCardNotice","ShareCredentialCardNotice","GroupedShareCredentialV2Padding","ShareCredentialV2","credentialQuery","credentialRequestId","expanded","grouped","headerAccessory","labels","lastItem","onHeaderPress","onImagePreview","onSelectCredential","onSelectField","selectedCredentialId","selectedFields","style","testID","_applicableCredential","_credential$issuer","colorScheme","applicableCredentials","type_","undefined","failureHint","credential","find","c","id","data","config","cardWidth","get","width","multipleCredentialsAvailable","Boolean","length","validityState","issuer","footer","Revoked","createElement","text","revokedCredentialNotice","Suspended","suspendedCredentialNotice","reason","invalidCredentialNotice","buttonTitle","multipleCredentialsSelect","onPress","multipleCredentialsNotice","onAttributeSelected","fieldPath","selected","card","header","attributes","accessory","credentialId","styles","groupedCredential","bordered","borderColor","background","create","borderWidth","borderRadius","marginBottom","marginHorizontal"],"sources":["share-credential-v2.tsx"],"sourcesContent":["import {\n ApplicableCredentialOrFailureHintBindingEnum,\n CredentialListItemBindingDto,\n PresentationDefinitionV2ClaimBindingDto,\n} from '@procivis/react-native-one-core';\nimport React, { FunctionComponent, useCallback, useMemo } from 'react';\nimport { Dimensions, ImageSourcePropType, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nimport { CredentialDetailsCardListItem, useAppColorScheme } from '../../../ui-components';\nimport { concatTestID, getValidityState, useCoreConfig, ValidityState } from '../../../utils';\nimport { shareCredentialCardFromV2PresentationCredential } from '../../../utils/parsers/credential-sharing-v2';\nimport { SelectShareCredentialCardNotice } from '../select-share-credential-card-notice';\nimport { ShareCredentialCardNotice } from '../share-credential-card-notice';\nimport { ShareCredentialLabels } from '../v1';\n\nexport type ShareCredentialV2Props = {\n credentialQuery: ApplicableCredentialOrFailureHintBindingEnum;\n credentialRequestId: string;\n expanded?: boolean;\n grouped?: boolean;\n headerAccessory?: React.ComponentType<any> | React.ReactElement;\n labels: ShareCredentialLabels;\n lastItem?: boolean;\n onHeaderPress?: (_credentialId?: string) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelectCredential?: () => void;\n onSelectField: (\n credentialId: CredentialListItemBindingDto['id'],\n fieldPath: PresentationDefinitionV2ClaimBindingDto['path'],\n selected: boolean,\n ) => void;\n selectedCredentialId?: CredentialListItemBindingDto['id'];\n selectedFields?: Array<PresentationDefinitionV2ClaimBindingDto['path']>;\n style?: StyleProp<ViewStyle>;\n testID: string;\n};\n\nexport const GroupedShareCredentialV2Padding = 4;\n\nexport const ShareCredentialV2: FunctionComponent<ShareCredentialV2Props> = ({\n credentialQuery,\n credentialRequestId,\n expanded,\n grouped,\n headerAccessory,\n labels,\n lastItem,\n onHeaderPress,\n onImagePreview,\n onSelectCredential,\n onSelectField,\n selectedCredentialId,\n selectedFields,\n style,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n const applicableCredentials =\n credentialQuery.type_ === 'APPLICABLE_CREDENTIALS' ? credentialQuery.applicableCredentials : undefined;\n const failureHint = credentialQuery.type_ === 'FAILURE_HINT' ? credentialQuery.failureHint : undefined;\n const credential = applicableCredentials?.find((c) => c.id === selectedCredentialId) ?? applicableCredentials?.[0];\n const { data: config } = useCoreConfig();\n const cardWidth = useMemo(\n () => Dimensions.get('window').width - 32 - (grouped ? GroupedShareCredentialV2Padding * 2 : 0),\n [grouped],\n );\n\n const multipleCredentialsAvailable = Boolean(applicableCredentials?.length && applicableCredentials.length > 1);\n\n const validityState = getValidityState(\n credential\n ? {\n ...credential,\n issuer: credential?.issuer?.id,\n }\n : undefined,\n );\n\n const footer = useMemo(() => {\n if (!expanded) {\n return;\n }\n if (validityState === ValidityState.Revoked) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.revoked')}\n text={labels.revokedCredentialNotice}\n />\n );\n }\n if (validityState === ValidityState.Suspended) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.suspended')}\n text={labels.suspendedCredentialNotice}\n />\n );\n }\n\n if (failureHint?.reason === 'VALIDITY') {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.invalid')}\n text={labels.invalidCredentialNotice}\n />\n );\n }\n\n if (multipleCredentialsAvailable) {\n return (\n <SelectShareCredentialCardNotice\n buttonTitle={labels.multipleCredentialsSelect}\n onPress={onSelectCredential}\n testID={concatTestID(testID, 'notice.multiple')}\n text={labels.multipleCredentialsNotice}\n />\n );\n }\n }, [\n expanded,\n failureHint?.reason,\n labels.invalidCredentialNotice,\n labels.multipleCredentialsNotice,\n labels.multipleCredentialsSelect,\n labels.revokedCredentialNotice,\n labels.suspendedCredentialNotice,\n multipleCredentialsAvailable,\n onSelectCredential,\n testID,\n validityState,\n ]);\n\n const onAttributeSelected = useCallback(\n (fieldPath: PresentationDefinitionV2ClaimBindingDto['path'], selected: boolean) => {\n if (!selectedCredentialId) {\n return;\n }\n onSelectField(selectedCredentialId, fieldPath, selected);\n },\n [onSelectField, selectedCredentialId],\n );\n\n if (!config) {\n return null;\n }\n\n const {\n card: { header, ...card },\n attributes,\n } = shareCredentialCardFromV2PresentationCredential(\n credential,\n failureHint,\n Boolean(expanded),\n multipleCredentialsAvailable,\n selectedFields,\n config,\n testID,\n labels,\n );\n\n if (headerAccessory) {\n header.accessory = headerAccessory;\n }\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n credentialId: credentialRequestId,\n header,\n onHeaderPress,\n width: cardWidth,\n }}\n expanded={expanded}\n footer={footer}\n lastItem={lastItem}\n onAttributeSelected={onAttributeSelected}\n onImagePreview={onImagePreview}\n style={[\n styles.credential,\n grouped ? styles.groupedCredential : styles.bordered,\n { borderColor: colorScheme.background },\n style,\n ]}\n testID={testID}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n bordered: {\n borderWidth: 1,\n },\n credential: {\n borderRadius: 10,\n marginBottom: 8,\n },\n groupedCredential: {\n marginHorizontal: GroupedShareCredentialV2Padding,\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","Dimensions","StyleSheet","CredentialDetailsCardListItem","useAppColorScheme","concatTestID","getValidityState","useCoreConfig","ValidityState","shareCredentialCardFromV2PresentationCredential","SelectShareCredentialCardNotice","ShareCredentialCardNotice","GroupedShareCredentialV2Padding","ShareCredentialV2","credentialQuery","credentialRequestId","expanded","grouped","headerAccessory","labels","lastItem","onHeaderPress","onImagePreview","onSelectCredential","onSelectField","selectedCredentialId","selectedFields","style","testID","_applicableCredential","_credential$issuer","colorScheme","applicableCredentials","type_","undefined","failureHint","credential","find","c","id","data","config","cardWidth","get","width","multipleCredentialsAvailable","Boolean","length","validityState","issuer","footer","Revoked","createElement","text","revokedCredentialNotice","Suspended","suspendedCredentialNotice","reason","invalidCredentialNotice","buttonTitle","multipleCredentialsSelect","onPress","multipleCredentialsNotice","onAttributeSelected","fieldPath","selected","card","header","attributes","accessory","credentialId","styles","groupedCredential","bordered","borderColor","background","create","borderWidth","borderRadius","marginBottom","marginHorizontal"],"sources":["share-credential-v2.tsx"],"sourcesContent":["import {\n ApplicableCredentialOrFailureHintBindingEnum,\n CredentialListItemBindingDto,\n PresentationDefinitionV2ClaimBindingDto,\n} from '@procivis/react-native-one-core';\nimport React, { FunctionComponent, useCallback, useMemo } from 'react';\nimport { Dimensions, ImageSourcePropType, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nimport { CredentialDetailsCardListItem, useAppColorScheme } from '../../../ui-components';\nimport { concatTestID, getValidityState, useCoreConfig, ValidityState } from '../../../utils';\nimport { shareCredentialCardFromV2PresentationCredential } from '../../../utils/parsers/credential-sharing-v2';\nimport { SelectShareCredentialCardNotice } from '../select-share-credential-card-notice';\nimport { ShareCredentialCardNotice } from '../share-credential-card-notice';\nimport { ShareCredentialLabels } from '../v1';\n\nexport type ShareCredentialV2Props = {\n credentialQuery: ApplicableCredentialOrFailureHintBindingEnum;\n credentialRequestId: string;\n expanded?: boolean;\n grouped?: boolean;\n headerAccessory?: React.ComponentType<any> | React.ReactElement;\n labels: ShareCredentialLabels;\n lastItem?: boolean;\n onHeaderPress?: (_credentialId?: string) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelectCredential?: () => void;\n onSelectField: (\n credentialId: CredentialListItemBindingDto['id'],\n fieldPath: PresentationDefinitionV2ClaimBindingDto['path'],\n selected: boolean,\n ) => void;\n selectedCredentialId?: CredentialListItemBindingDto['id'];\n selectedFields?: Array<PresentationDefinitionV2ClaimBindingDto['path']>;\n style?: StyleProp<ViewStyle>;\n testID: string;\n};\n\nexport const GroupedShareCredentialV2Padding = 4;\n\nexport const ShareCredentialV2: FunctionComponent<ShareCredentialV2Props> = ({\n credentialQuery,\n credentialRequestId,\n expanded,\n grouped,\n headerAccessory,\n labels,\n lastItem,\n onHeaderPress,\n onImagePreview,\n onSelectCredential,\n onSelectField,\n selectedCredentialId,\n selectedFields,\n style,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n const applicableCredentials =\n credentialQuery.type_ === 'APPLICABLE_CREDENTIALS' ? credentialQuery.applicableCredentials : undefined;\n const failureHint = credentialQuery.type_ === 'FAILURE_HINT' ? credentialQuery.failureHint : undefined;\n const credential = applicableCredentials?.find((c) => c.id === selectedCredentialId) ?? applicableCredentials?.[0];\n const { data: config } = useCoreConfig();\n const cardWidth = useMemo(\n () => Dimensions.get('window').width - 32 - (grouped ? GroupedShareCredentialV2Padding * 2 : 0),\n [grouped],\n );\n\n const multipleCredentialsAvailable = Boolean(applicableCredentials?.length && applicableCredentials.length > 1);\n\n const validityState = getValidityState(\n credential\n ? {\n ...credential,\n issuer: credential?.issuer?.id,\n }\n : undefined,\n );\n\n const footer = useMemo(() => {\n if (!expanded) {\n return;\n }\n if (validityState === ValidityState.Revoked) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.revoked')}\n text={labels.revokedCredentialNotice}\n />\n );\n }\n if (validityState === ValidityState.Suspended) {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.suspended')}\n text={labels.suspendedCredentialNotice}\n />\n );\n }\n\n if (failureHint?.reason === 'VALIDITY') {\n return (\n <ShareCredentialCardNotice\n testID={concatTestID(testID, 'notice.invalid')}\n text={labels.invalidCredentialNotice}\n />\n );\n }\n\n if (multipleCredentialsAvailable) {\n return (\n <SelectShareCredentialCardNotice\n buttonTitle={labels.multipleCredentialsSelect}\n onPress={onSelectCredential}\n testID={concatTestID(testID, 'notice.multiple')}\n text={labels.multipleCredentialsNotice}\n />\n );\n }\n }, [\n expanded,\n failureHint?.reason,\n labels.invalidCredentialNotice,\n labels.multipleCredentialsNotice,\n labels.multipleCredentialsSelect,\n labels.revokedCredentialNotice,\n labels.suspendedCredentialNotice,\n multipleCredentialsAvailable,\n onSelectCredential,\n testID,\n validityState,\n ]);\n\n const onAttributeSelected = useCallback(\n (fieldPath: PresentationDefinitionV2ClaimBindingDto['path'], selected: boolean) => {\n if (!selectedCredentialId) {\n return;\n }\n onSelectField(selectedCredentialId, fieldPath, selected);\n },\n [onSelectField, selectedCredentialId],\n );\n\n if (!config) {\n return null;\n }\n\n const {\n card: { header, ...card },\n attributes,\n } = shareCredentialCardFromV2PresentationCredential(\n credential,\n failureHint,\n Boolean(expanded),\n multipleCredentialsAvailable,\n selectedFields,\n config,\n testID,\n labels,\n );\n\n if (headerAccessory) {\n header.accessory = headerAccessory;\n }\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n credentialId: credentialRequestId,\n header,\n onHeaderPress,\n width: cardWidth,\n }}\n expanded={expanded}\n footer={footer}\n lastItem={lastItem}\n onAttributeSelected={onAttributeSelected}\n onImagePreview={onImagePreview}\n style={[\n styles.credential,\n grouped ? styles.groupedCredential : styles.bordered,\n { borderColor: colorScheme.background },\n style,\n ]}\n testID={testID}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n bordered: {\n borderWidth: 1,\n },\n credential: {\n borderRadius: 10,\n borderWidth: 0,\n marginBottom: 8,\n },\n groupedCredential: {\n marginHorizontal: GroupedShareCredentialV2Padding,\n },\n});\n"],"mappings":"AAKA,OAAOA,KAAK,IAAuBC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACtE,SAASC,UAAU,EAAkCC,UAAU,QAAmB,cAAc;AAEhG,SAASC,6BAA6B,EAAEC,iBAAiB,QAAQ,wBAAwB;AACzF,SAASC,YAAY,EAAEC,gBAAgB,EAAEC,aAAa,EAAEC,aAAa,QAAQ,gBAAgB;AAC7F,SAASC,+CAA+C,QAAQ,8CAA8C;AAC9G,SAASC,+BAA+B,QAAQ,wCAAwC;AACxF,SAASC,yBAAyB,QAAQ,iCAAiC;AAyB3E,OAAO,MAAMC,+BAA+B,GAAG,CAAC;AAEhD,OAAO,MAAMC,iBAA4D,GAAGA,CAAC;EAC3EC,eAAe;EACfC,mBAAmB;EACnBC,QAAQ;EACRC,OAAO;EACPC,eAAe;EACfC,MAAM;EACNC,QAAQ;EACRC,aAAa;EACbC,cAAc;EACdC,kBAAkB;EAClBC,aAAa;EACbC,oBAAoB;EACpBC,cAAc;EACdC,KAAK;EACLC;AACF,CAAC,KAAK;EAAA,IAAAC,qBAAA,EAAAC,kBAAA;EACJ,MAAMC,WAAW,GAAG3B,iBAAiB,CAAC,CAAC;EACvC,MAAM4B,qBAAqB,GACzBlB,eAAe,CAACmB,KAAK,KAAK,wBAAwB,GAAGnB,eAAe,CAACkB,qBAAqB,GAAGE,SAAS;EACxG,MAAMC,WAAW,GAAGrB,eAAe,CAACmB,KAAK,KAAK,cAAc,GAAGnB,eAAe,CAACqB,WAAW,GAAGD,SAAS;EACtG,MAAME,UAAU,IAAAP,qBAAA,GAAGG,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAEK,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,EAAE,KAAKd,oBAAoB,CAAC,cAAAI,qBAAA,cAAAA,qBAAA,GAAIG,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAG,CAAC,CAAC;EAClH,MAAM;IAAEQ,IAAI,EAAEC;EAAO,CAAC,GAAGlC,aAAa,CAAC,CAAC;EACxC,MAAMmC,SAAS,GAAG1C,OAAO,CACvB,MAAMC,UAAU,CAAC0C,GAAG,CAAC,QAAQ,CAAC,CAACC,KAAK,GAAG,EAAE,IAAI3B,OAAO,GAAGL,+BAA+B,GAAG,CAAC,GAAG,CAAC,CAAC,EAC/F,CAACK,OAAO,CACV,CAAC;EAED,MAAM4B,4BAA4B,GAAGC,OAAO,CAAC,CAAAd,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAEe,MAAM,KAAIf,qBAAqB,CAACe,MAAM,GAAG,CAAC,CAAC;EAE/G,MAAMC,aAAa,GAAG1C,gBAAgB,CACpC8B,UAAU,GACN;IACE,GAAGA,UAAU;IACba,MAAM,EAAEb,UAAU,aAAVA,UAAU,gBAAAN,kBAAA,GAAVM,UAAU,CAAEa,MAAM,cAAAnB,kBAAA,uBAAlBA,kBAAA,CAAoBS;EAC9B,CAAC,GACDL,SACN,CAAC;EAED,MAAMgB,MAAM,GAAGlD,OAAO,CAAC,MAAM;IAC3B,IAAI,CAACgB,QAAQ,EAAE;MACb;IACF;IACA,IAAIgC,aAAa,KAAKxC,aAAa,CAAC2C,OAAO,EAAE;MAC3C,oBACErD,KAAA,CAAAsD,aAAA,CAACzC,yBAAyB;QACxBiB,MAAM,EAAEvB,YAAY,CAACuB,MAAM,EAAE,gBAAgB,CAAE;QAC/CyB,IAAI,EAAElC,MAAM,CAACmC;MAAwB,CACtC,CAAC;IAEN;IACA,IAAIN,aAAa,KAAKxC,aAAa,CAAC+C,SAAS,EAAE;MAC7C,oBACEzD,KAAA,CAAAsD,aAAA,CAACzC,yBAAyB;QACxBiB,MAAM,EAAEvB,YAAY,CAACuB,MAAM,EAAE,kBAAkB,CAAE;QACjDyB,IAAI,EAAElC,MAAM,CAACqC;MAA0B,CACxC,CAAC;IAEN;IAEA,IAAI,CAAArB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEsB,MAAM,MAAK,UAAU,EAAE;MACtC,oBACE3D,KAAA,CAAAsD,aAAA,CAACzC,yBAAyB;QACxBiB,MAAM,EAAEvB,YAAY,CAACuB,MAAM,EAAE,gBAAgB,CAAE;QAC/CyB,IAAI,EAAElC,MAAM,CAACuC;MAAwB,CACtC,CAAC;IAEN;IAEA,IAAIb,4BAA4B,EAAE;MAChC,oBACE/C,KAAA,CAAAsD,aAAA,CAAC1C,+BAA+B;QAC9BiD,WAAW,EAAExC,MAAM,CAACyC,yBAA0B;QAC9CC,OAAO,EAAEtC,kBAAmB;QAC5BK,MAAM,EAAEvB,YAAY,CAACuB,MAAM,EAAE,iBAAiB,CAAE;QAChDyB,IAAI,EAAElC,MAAM,CAAC2C;MAA0B,CACxC,CAAC;IAEN;EACF,CAAC,EAAE,CACD9C,QAAQ,EACRmB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEsB,MAAM,EACnBtC,MAAM,CAACuC,uBAAuB,EAC9BvC,MAAM,CAAC2C,yBAAyB,EAChC3C,MAAM,CAACyC,yBAAyB,EAChCzC,MAAM,CAACmC,uBAAuB,EAC9BnC,MAAM,CAACqC,yBAAyB,EAChCX,4BAA4B,EAC5BtB,kBAAkB,EAClBK,MAAM,EACNoB,aAAa,CACd,CAAC;EAEF,MAAMe,mBAAmB,GAAGhE,WAAW,CACrC,CAACiE,SAA0D,EAAEC,QAAiB,KAAK;IACjF,IAAI,CAACxC,oBAAoB,EAAE;MACzB;IACF;IACAD,aAAa,CAACC,oBAAoB,EAAEuC,SAAS,EAAEC,QAAQ,CAAC;EAC1D,CAAC,EACD,CAACzC,aAAa,EAAEC,oBAAoB,CACtC,CAAC;EAED,IAAI,CAACgB,MAAM,EAAE;IACX,OAAO,IAAI;EACb;EAEA,MAAM;IACJyB,IAAI,EAAE;MAAEC,MAAM;MAAE,GAAGD;IAAK,CAAC;IACzBE;EACF,CAAC,GAAG3D,+CAA+C,CACjD2B,UAAU,EACVD,WAAW,EACXW,OAAO,CAAC9B,QAAQ,CAAC,EACjB6B,4BAA4B,EAC5BnB,cAAc,EACde,MAAM,EACNb,MAAM,EACNT,MACF,CAAC;EAED,IAAID,eAAe,EAAE;IACnBiD,MAAM,CAACE,SAAS,GAAGnD,eAAe;EACpC;EAEA,oBACEpB,KAAA,CAAAsD,aAAA,CAACjD,6BAA6B;IAC5BiE,UAAU,EAAEA,UAAW;IACvBF,IAAI,EAAE;MACJ,GAAGA,IAAI;MACPI,YAAY,EAAEvD,mBAAmB;MACjCoD,MAAM;MACN9C,aAAa;MACbuB,KAAK,EAAEF;IACT,CAAE;IACF1B,QAAQ,EAAEA,QAAS;IACnBkC,MAAM,EAAEA,MAAO;IACf9B,QAAQ,EAAEA,QAAS;IACnB2C,mBAAmB,EAAEA,mBAAoB;IACzCzC,cAAc,EAAEA,cAAe;IAC/BK,KAAK,EAAE,CACL4C,MAAM,CAACnC,UAAU,EACjBnB,OAAO,GAAGsD,MAAM,CAACC,iBAAiB,GAAGD,MAAM,CAACE,QAAQ,EACpD;MAAEC,WAAW,EAAE3C,WAAW,CAAC4C;IAAW,CAAC,EACvChD,KAAK,CACL;IACFC,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN,CAAC;AAED,MAAM2C,MAAM,GAAGrE,UAAU,CAAC0E,MAAM,CAAC;EAC/BH,QAAQ,EAAE;IACRI,WAAW,EAAE;EACf,CAAC;EACDzC,UAAU,EAAE;IACV0C,YAAY,EAAE,EAAE;IAChBD,WAAW,EAAE,CAAC;IACdE,YAAY,EAAE;EAChB,CAAC;EACDP,iBAAiB,EAAE;IACjBQ,gBAAgB,EAAEpE;EACpB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","StyleSheet","View","concatTestID","TouchableHighlight","ConnectivityBluetoothOffIcon","ConnectivityBluetoothOnIcon","ConnectivityInternetOffIcon","ConnectivityInternetOnIcon","ConnectivityStatusIcon","Typography","useAppColorScheme","ConnectivityTransport","ConnectivityButton","available","disabled","onPress","status","title","transport","testID","colorScheme","backgroundColor","undefined","grayDark","white","opacity","icons","createElement","style","styles","Bluetooth","Internet","button","container","color","text","preset","create","borderRadius","overflow","alignItems","flexDirection","height","paddingHorizontal","paddingVertical","gap"],"sources":["connectivity-button.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport { concatTestID } from '../../utils';\nimport { TouchableHighlight } from '../accessibility';\nimport {\n ConnectivityBluetoothOffIcon,\n ConnectivityBluetoothOnIcon,\n ConnectivityInternetOffIcon,\n ConnectivityInternetOnIcon,\n ConnectivityStatusIcon,\n} from '../icons/connectivity';\nimport { Typography } from '../text';\nimport { useAppColorScheme } from '../theme';\n\nexport enum ConnectivityTransport {\n Internet = 'Internet',\n Bluetooth = 'Bluetooth',\n All = 'All',\n}\n\nexport type ConnectivityButtonProps = {\n available: boolean;\n disabled?: boolean;\n onPress?: () => void;\n status?: boolean;\n title?: string;\n transport: ConnectivityTransport;\n testID?: string;\n};\n\nconst ConnectivityButton: FC<ConnectivityButtonProps> = ({\n available,\n disabled,\n onPress,\n status,\n title,\n transport,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n\n const backgroundColor = status === undefined ? colorScheme.grayDark : colorScheme.white;\n const opacity = disabled ? 0.7 : 1.0;\n const icons = (\n <View style={styles.icons}>\n {transport !== ConnectivityTransport.Bluetooth &&\n (available ? (\n <ConnectivityInternetOnIcon testID={concatTestID(testID, 'icon.on')} />\n ) : (\n <ConnectivityInternetOffIcon testID={concatTestID(testID, 'icon.off')} />\n ))}\n {transport !== ConnectivityTransport.Internet &&\n (available ? (\n <ConnectivityBluetoothOnIcon testID={concatTestID(testID, 'icon.on')} />\n ) : (\n <ConnectivityBluetoothOffIcon testID={concatTestID(testID, 'icon.off')} />\n ))}\n </View>\n );\n return (\n <TouchableHighlight onPress={onPress} style={styles.button} testID={testID}>\n <View style={[styles.container, { backgroundColor, opacity }]}>\n {icons}\n {title && (\n <Typography testID={concatTestID(testID, 'title')} color={colorScheme.text} preset=\"s\">\n {title}\n </Typography>\n )}\n {status !== undefined && <ConnectivityStatusIcon status={status} />}\n </View>\n </TouchableHighlight>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n borderRadius: 20,\n overflow: 'hidden',\n },\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 9,\n },\n icons: {\n alignItems: 'center',\n flexDirection: 'row',\n gap: 5,\n },\n});\n\nexport default ConnectivityButton;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAc,OAAO;AACjC,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,SAASC,YAAY,QAAQ,aAAa;AAC1C,SAASC,kBAAkB,QAAQ,kBAAkB;AACrD,SACEC,4BAA4B,EAC5BC,2BAA2B,EAC3BC,2BAA2B,EAC3BC,0BAA0B,EAC1BC,sBAAsB,QACjB,uBAAuB;AAC9B,SAASC,UAAU,QAAQ,SAAS;AACpC,SAASC,iBAAiB,QAAQ,UAAU;AAE5C,WAAYC,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;AAgBjC,MAAMC,kBAA+C,GAAGA,CAAC;EACvDC,SAAS;EACTC,QAAQ;EACRC,OAAO;EACPC,MAAM;EACNC,KAAK;EACLC,SAAS;EACTC;AACF,CAAC,KAAK;EACJ,MAAMC,WAAW,GAAGV,iBAAiB,CAAC,CAAC;EAEvC,MAAMW,eAAe,GAAGL,MAAM,KAAKM,SAAS,GAAGF,WAAW,CAACG,QAAQ,GAAGH,WAAW,CAACI,KAAK;EACvF,MAAMC,OAAO,GAAGX,QAAQ,GAAG,GAAG,GAAG,GAAG;EACpC,MAAMY,KAAK,gBACT3B,KAAA,CAAA4B,aAAA,CAAC1B,IAAI;IAAC2B,KAAK,EAAEC,MAAM,CAACH;EAAM,GACvBR,SAAS,KAAKP,qBAAqB,CAACmB,SAAS,KAC3CjB,SAAS,gBACRd,KAAA,CAAA4B,aAAA,CAACpB,0BAA0B;IAACY,MAAM,EAAEjB,YAAY,CAACiB,MAAM,EAAE,SAAS;EAAE,CAAE,CAAC,gBAEvEpB,KAAA,CAAA4B,aAAA,CAACrB,2BAA2B;IAACa,MAAM,EAAEjB,YAAY,CAACiB,MAAM,EAAE,UAAU;EAAE,CAAE,CACzE,CAAC,EACHD,SAAS,KAAKP,qBAAqB,CAACoB,QAAQ,KAC1ClB,SAAS,gBACRd,KAAA,CAAA4B,aAAA,CAACtB,2BAA2B;IAACc,MAAM,EAAEjB,YAAY,CAACiB,MAAM,EAAE,SAAS;EAAE,CAAE,CAAC,gBAExEpB,KAAA,CAAA4B,aAAA,CAACvB,4BAA4B;IAACe,MAAM,EAAEjB,YAAY,CAACiB,MAAM,EAAE,UAAU;EAAE,CAAE,CAC1E,CACC,CACP;EACD,oBACEpB,KAAA,CAAA4B,aAAA,CAACxB,kBAAkB;IAACY,OAAO,EAAEA,OAAQ;IAACa,KAAK,EAAEC,MAAM,CAACG,MAAO;IAACb,MAAM,EAAEA;EAAO,gBACzEpB,KAAA,CAAA4B,aAAA,CAAC1B,IAAI;IAAC2B,KAAK,EAAE,CAACC,MAAM,CAACI,SAAS,EAAE;MAAEZ,eAAe;MAAEI;IAAQ,CAAC;EAAE,GAC3DC,KAAK,EACLT,KAAK,iBACJlB,KAAA,CAAA4B,aAAA,CAAClB,UAAU;IAACU,MAAM,EAAEjB,YAAY,CAACiB,MAAM,EAAE,OAAO,CAAE;IAACe,KAAK,EAAEd,WAAW,CAACe,IAAK;IAACC,MAAM,EAAC;EAAG,GACnFnB,KACS,CACb,EACAD,MAAM,KAAKM,SAAS,iBAAIvB,KAAA,CAAA4B,aAAA,CAACnB,sBAAsB;IAACQ,MAAM,EAAEA;EAAO,CAAE,CAC9D,CACY,CAAC;AAEzB,CAAC;AAED,MAAMa,MAAM,GAAG7B,UAAU,CAACqC,MAAM,CAAC;EAC/BL,MAAM,EAAE;IACNM,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE;EACZ,CAAC;
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","concatTestID","TouchableHighlight","ConnectivityBluetoothOffIcon","ConnectivityBluetoothOnIcon","ConnectivityInternetOffIcon","ConnectivityInternetOnIcon","ConnectivityStatusIcon","Typography","useAppColorScheme","ConnectivityTransport","ConnectivityButton","available","disabled","onPress","status","title","transport","testID","colorScheme","backgroundColor","undefined","grayDark","white","opacity","icons","createElement","style","styles","Bluetooth","Internet","button","container","color","text","preset","create","borderRadius","borderWidth","overflow","alignItems","flexDirection","height","paddingHorizontal","paddingVertical","gap"],"sources":["connectivity-button.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport { concatTestID } from '../../utils';\nimport { TouchableHighlight } from '../accessibility';\nimport {\n ConnectivityBluetoothOffIcon,\n ConnectivityBluetoothOnIcon,\n ConnectivityInternetOffIcon,\n ConnectivityInternetOnIcon,\n ConnectivityStatusIcon,\n} from '../icons/connectivity';\nimport { Typography } from '../text';\nimport { useAppColorScheme } from '../theme';\n\nexport enum ConnectivityTransport {\n Internet = 'Internet',\n Bluetooth = 'Bluetooth',\n All = 'All',\n}\n\nexport type ConnectivityButtonProps = {\n available: boolean;\n disabled?: boolean;\n onPress?: () => void;\n status?: boolean;\n title?: string;\n transport: ConnectivityTransport;\n testID?: string;\n};\n\nconst ConnectivityButton: FC<ConnectivityButtonProps> = ({\n available,\n disabled,\n onPress,\n status,\n title,\n transport,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n\n const backgroundColor = status === undefined ? colorScheme.grayDark : colorScheme.white;\n const opacity = disabled ? 0.7 : 1.0;\n const icons = (\n <View style={styles.icons}>\n {transport !== ConnectivityTransport.Bluetooth &&\n (available ? (\n <ConnectivityInternetOnIcon testID={concatTestID(testID, 'icon.on')} />\n ) : (\n <ConnectivityInternetOffIcon testID={concatTestID(testID, 'icon.off')} />\n ))}\n {transport !== ConnectivityTransport.Internet &&\n (available ? (\n <ConnectivityBluetoothOnIcon testID={concatTestID(testID, 'icon.on')} />\n ) : (\n <ConnectivityBluetoothOffIcon testID={concatTestID(testID, 'icon.off')} />\n ))}\n </View>\n );\n return (\n <TouchableHighlight onPress={onPress} style={styles.button} testID={testID}>\n <View style={[styles.container, { backgroundColor, opacity }]}>\n {icons}\n {title && (\n <Typography testID={concatTestID(testID, 'title')} color={colorScheme.text} preset=\"s\">\n {title}\n </Typography>\n )}\n {status !== undefined && <ConnectivityStatusIcon status={status} />}\n </View>\n </TouchableHighlight>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n borderRadius: 20,\n borderWidth: 0,\n overflow: 'hidden',\n },\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n height: 40,\n paddingHorizontal: 12,\n paddingVertical: 9,\n },\n icons: {\n alignItems: 'center',\n flexDirection: 'row',\n gap: 5,\n },\n});\n\nexport default ConnectivityButton;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","StyleSheet","TouchableOpacity","FilterIcon","useAppColorScheme","hitslop","bottom","left","right","top","FilterButton","active","style","props","colorScheme","createElement","_extends","accessibilityRole","accessibilityState","selected","hitSlop","styles","button","backgroundColor","accent","undefined","color","white","create","alignItems","borderRadius","height","justifyContent","width"],"sources":["filter-button.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { Insets, StyleSheet, TouchableOpacityProps } from 'react-native';\n\nimport { TouchableOpacity } from '../accessibility/accessibilityHistoryWrappers';\nimport { FilterIcon } from '../icons/icons';\nimport { useAppColorScheme } from '../theme/color-scheme-context';\n\nexport type FilterButtonProps = TouchableOpacityProps & {\n active: boolean;\n};\n\nconst hitslop: Insets = { bottom: 10, left: 10, right: 10, top: 10 };\n\nconst FilterButton: FC<FilterButtonProps> = ({ active, style, ...props }) => {\n const colorScheme = useAppColorScheme();\n return (\n <TouchableOpacity\n accessibilityRole=\"button\"\n accessibilityState={{ selected: active }}\n hitSlop={hitslop}\n style={[styles.button, { backgroundColor: active ? colorScheme.accent : undefined }, style]}\n {...props}>\n <FilterIcon color={active ? colorScheme.white : colorScheme.accent} />\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n alignItems: 'center',\n borderRadius: 20,\n height: 40,\n justifyContent: 'center',\n width: 40,\n },\n});\n\nexport default FilterButton;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAc,OAAO;AACjC,SAAiBC,UAAU,QAA+B,cAAc;AAExE,SAASC,gBAAgB,QAAQ,+CAA+C;AAChF,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,SAASC,iBAAiB,QAAQ,+BAA+B;AAMjE,MAAMC,OAAe,GAAG;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,KAAK,EAAE,EAAE;EAAEC,GAAG,EAAE;AAAG,CAAC;AAEpE,MAAMC,YAAmC,GAAGA,CAAC;EAAEC,MAAM;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,KAAK;EAC3E,MAAMC,WAAW,GAAGV,iBAAiB,CAAC,CAAC;EACvC,oBACEJ,KAAA,CAAAe,aAAA,CAACb,gBAAgB,EAAAc,QAAA;IACfC,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAE;MAAEC,QAAQ,EAAER;IAAO,CAAE;IACzCS,OAAO,EAAEf,OAAQ;IACjBO,KAAK,EAAE,CAACS,MAAM,CAACC,MAAM,EAAE;MAAEC,eAAe,EAAEZ,MAAM,GAAGG,WAAW,CAACU,MAAM,GAAGC;IAAU,CAAC,EAAEb,KAAK;EAAE,GACxFC,KAAK,gBACTb,KAAA,CAAAe,aAAA,CAACZ,UAAU;IAACuB,KAAK,EAAEf,MAAM,GAAGG,WAAW,CAACa,KAAK,GAAGb,WAAW,CAACU;EAAO,CAAE,CACrD,CAAC;AAEvB,CAAC;AAED,MAAMH,MAAM,GAAGpB,UAAU,CAAC2B,MAAM,CAAC;EAC/BN,MAAM,EAAE;IACNO,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE,EAAE;IAChBC,MAAM,EAAE,EAAE;IACVC,cAAc,EAAE,QAAQ;IACxBC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAEF,
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","TouchableOpacity","FilterIcon","useAppColorScheme","hitslop","bottom","left","right","top","FilterButton","active","style","props","colorScheme","createElement","_extends","accessibilityRole","accessibilityState","selected","hitSlop","styles","button","backgroundColor","accent","undefined","color","white","create","alignItems","borderRadius","borderWidth","height","justifyContent","width"],"sources":["filter-button.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { Insets, StyleSheet, TouchableOpacityProps } from 'react-native';\n\nimport { TouchableOpacity } from '../accessibility/accessibilityHistoryWrappers';\nimport { FilterIcon } from '../icons/icons';\nimport { useAppColorScheme } from '../theme/color-scheme-context';\n\nexport type FilterButtonProps = TouchableOpacityProps & {\n active: boolean;\n};\n\nconst hitslop: Insets = { bottom: 10, left: 10, right: 10, top: 10 };\n\nconst FilterButton: FC<FilterButtonProps> = ({ active, style, ...props }) => {\n const colorScheme = useAppColorScheme();\n return (\n <TouchableOpacity\n accessibilityRole=\"button\"\n accessibilityState={{ selected: active }}\n hitSlop={hitslop}\n style={[styles.button, { backgroundColor: active ? colorScheme.accent : undefined }, style]}\n {...props}>\n <FilterIcon color={active ? colorScheme.white : colorScheme.accent} />\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n alignItems: 'center',\n borderRadius: 20,\n borderWidth: 0,\n height: 40,\n justifyContent: 'center',\n width: 40,\n },\n});\n\nexport default FilterButton;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAc,OAAO;AACjC,SAAiBC,UAAU,QAA+B,cAAc;AAExE,SAASC,gBAAgB,QAAQ,+CAA+C;AAChF,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,SAASC,iBAAiB,QAAQ,+BAA+B;AAMjE,MAAMC,OAAe,GAAG;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,KAAK,EAAE,EAAE;EAAEC,GAAG,EAAE;AAAG,CAAC;AAEpE,MAAMC,YAAmC,GAAGA,CAAC;EAAEC,MAAM;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,KAAK;EAC3E,MAAMC,WAAW,GAAGV,iBAAiB,CAAC,CAAC;EACvC,oBACEJ,KAAA,CAAAe,aAAA,CAACb,gBAAgB,EAAAc,QAAA;IACfC,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAE;MAAEC,QAAQ,EAAER;IAAO,CAAE;IACzCS,OAAO,EAAEf,OAAQ;IACjBO,KAAK,EAAE,CAACS,MAAM,CAACC,MAAM,EAAE;MAAEC,eAAe,EAAEZ,MAAM,GAAGG,WAAW,CAACU,MAAM,GAAGC;IAAU,CAAC,EAAEb,KAAK;EAAE,GACxFC,KAAK,gBACTb,KAAA,CAAAe,aAAA,CAACZ,UAAU;IAACuB,KAAK,EAAEf,MAAM,GAAGG,WAAW,CAACa,KAAK,GAAGb,WAAW,CAACU;EAAO,CAAE,CACrD,CAAC;AAEvB,CAAC;AAED,MAAMH,MAAM,GAAGpB,UAAU,CAAC2B,MAAM,CAAC;EAC/BN,MAAM,EAAE;IACNO,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,MAAM,EAAE,EAAE;IACVC,cAAc,EAAE,QAAQ;IACxBC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAEF,eAAexB,YAAY","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","StyleSheet","useAccessibleAfterTransition","TouchableOpacity","useAppColorScheme","hitSlop","top","left","bottom","right","GhostButton","accessibilityLabel","icon","onPress","style","props","colorScheme","accessible","iconElement","isValidElement","Icon","createElement","color","text","_extends","accessibilityRole","styles","button","create","alignItems","backgroundColor","borderRadius","height","justifyContent","overflow","width"],"sources":["ghost-button.tsx"],"sourcesContent":["import React, { FC, ReactNode, useMemo } from 'react';\nimport { Insets, StyleProp, StyleSheet, TouchableOpacityProps, ViewStyle } from 'react-native';\nimport type { SvgProps } from 'react-native-svg';\n\nimport { useAccessibleAfterTransition } from '../accessibility';\nimport { TouchableOpacity } from '../accessibility/accessibilityHistoryWrappers';\nimport { useAppColorScheme } from '../theme';\n\nexport type GhostButtonProps = TouchableOpacityProps & {\n accessibilityLabel: string;\n icon?: FC<SvgProps> | ReactNode;\n onPress: () => void;\n style?: StyleProp<ViewStyle>;\n};\n\nconst hitSlop: Insets = { top: 10, left: 10, bottom: 10, right: 10 };\n\nconst GhostButton: FC<GhostButtonProps> = ({ accessibilityLabel, icon, onPress, style, ...props }) => {\n const colorScheme = useAppColorScheme();\n const accessible = useAccessibleAfterTransition();\n\n const iconElement = useMemo(() => {\n if (React.isValidElement(icon)) {\n return icon;\n }\n const Icon = icon as FC<SvgProps>;\n return <Icon color={colorScheme.text} />;\n }, [colorScheme.text, icon]);\n\n return (\n <TouchableOpacity\n accessibilityLabel={accessibilityLabel}\n accessibilityRole=\"button\"\n accessible={accessible}\n hitSlop={hitSlop}\n onPress={onPress}\n style={[styles.button, style]}\n {...props}>\n {iconElement}\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n alignItems: 'center',\n backgroundColor: 'transparent',\n borderRadius: 12,\n height: 24,\n justifyContent: 'center',\n overflow: 'hidden',\n width: 24,\n },\n});\n\nexport default GhostButton;\n"],"mappings":";AAAA,OAAOA,KAAK,IAAmBC,OAAO,QAAQ,OAAO;AACrD,SAA4BC,UAAU,QAA0C,cAAc;AAG9F,SAASC,4BAA4B,QAAQ,kBAAkB;AAC/D,SAASC,gBAAgB,QAAQ,+CAA+C;AAChF,SAASC,iBAAiB,QAAQ,UAAU;AAS5C,MAAMC,OAAe,GAAG;EAAEC,GAAG,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,MAAM,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAEpE,MAAMC,WAAiC,GAAGA,CAAC;EAAEC,kBAAkB;EAAEC,IAAI;EAAEC,OAAO;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,KAAK;EACpG,MAAMC,WAAW,GAAGZ,iBAAiB,CAAC,CAAC;EACvC,MAAMa,UAAU,GAAGf,4BAA4B,CAAC,CAAC;EAEjD,MAAMgB,WAAW,GAAGlB,OAAO,CAAC,MAAM;IAChC,iBAAID,KAAK,CAACoB,cAAc,CAACP,IAAI,CAAC,EAAE;MAC9B,OAAOA,IAAI;IACb;IACA,MAAMQ,IAAI,GAAGR,IAAoB;IACjC,oBAAOb,KAAA,CAAAsB,aAAA,CAACD,IAAI;MAACE,KAAK,EAAEN,WAAW,CAACO;IAAK,CAAE,CAAC;EAC1C,CAAC,EAAE,CAACP,WAAW,CAACO,IAAI,EAAEX,IAAI,CAAC,CAAC;EAE5B,oBACEb,KAAA,CAAAsB,aAAA,CAAClB,gBAAgB,EAAAqB,QAAA;IACfb,kBAAkB,EAAEA,kBAAmB;IACvCc,iBAAiB,EAAC,QAAQ;IAC1BR,UAAU,EAAEA,UAAW;IACvBZ,OAAO,EAAEA,OAAQ;IACjBQ,OAAO,EAAEA,OAAQ;IACjBC,KAAK,EAAE,CAACY,MAAM,CAACC,MAAM,EAAEb,KAAK;EAAE,GAC1BC,KAAK,GACRG,WACe,CAAC;AAEvB,CAAC;AAED,MAAMQ,MAAM,GAAGzB,UAAU,CAAC2B,MAAM,CAAC;EAC/BD,MAAM,EAAE;IACNE,UAAU,EAAE,QAAQ;IACpBC,eAAe,EAAE,aAAa;IAC9BC,YAAY,EAAE,EAAE;IAChBC,MAAM,EAAE,EAAE;IACVC,cAAc,EAAE,QAAQ;IACxBC,QAAQ,EAAE,QAAQ;IAClBC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAEF,
|
|
1
|
+
{"version":3,"names":["React","useMemo","StyleSheet","useAccessibleAfterTransition","TouchableOpacity","useAppColorScheme","hitSlop","top","left","bottom","right","GhostButton","accessibilityLabel","icon","onPress","style","props","colorScheme","accessible","iconElement","isValidElement","Icon","createElement","color","text","_extends","accessibilityRole","styles","button","create","alignItems","backgroundColor","borderRadius","borderWidth","height","justifyContent","overflow","width"],"sources":["ghost-button.tsx"],"sourcesContent":["import React, { FC, ReactNode, useMemo } from 'react';\nimport { Insets, StyleProp, StyleSheet, TouchableOpacityProps, ViewStyle } from 'react-native';\nimport type { SvgProps } from 'react-native-svg';\n\nimport { useAccessibleAfterTransition } from '../accessibility';\nimport { TouchableOpacity } from '../accessibility/accessibilityHistoryWrappers';\nimport { useAppColorScheme } from '../theme';\n\nexport type GhostButtonProps = TouchableOpacityProps & {\n accessibilityLabel: string;\n icon?: FC<SvgProps> | ReactNode;\n onPress: () => void;\n style?: StyleProp<ViewStyle>;\n};\n\nconst hitSlop: Insets = { top: 10, left: 10, bottom: 10, right: 10 };\n\nconst GhostButton: FC<GhostButtonProps> = ({ accessibilityLabel, icon, onPress, style, ...props }) => {\n const colorScheme = useAppColorScheme();\n const accessible = useAccessibleAfterTransition();\n\n const iconElement = useMemo(() => {\n if (React.isValidElement(icon)) {\n return icon;\n }\n const Icon = icon as FC<SvgProps>;\n return <Icon color={colorScheme.text} />;\n }, [colorScheme.text, icon]);\n\n return (\n <TouchableOpacity\n accessibilityLabel={accessibilityLabel}\n accessibilityRole=\"button\"\n accessible={accessible}\n hitSlop={hitSlop}\n onPress={onPress}\n style={[styles.button, style]}\n {...props}>\n {iconElement}\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n alignItems: 'center',\n backgroundColor: 'transparent',\n borderRadius: 12,\n borderWidth: 0,\n height: 24,\n justifyContent: 'center',\n overflow: 'hidden',\n width: 24,\n },\n});\n\nexport default GhostButton;\n"],"mappings":";AAAA,OAAOA,KAAK,IAAmBC,OAAO,QAAQ,OAAO;AACrD,SAA4BC,UAAU,QAA0C,cAAc;AAG9F,SAASC,4BAA4B,QAAQ,kBAAkB;AAC/D,SAASC,gBAAgB,QAAQ,+CAA+C;AAChF,SAASC,iBAAiB,QAAQ,UAAU;AAS5C,MAAMC,OAAe,GAAG;EAAEC,GAAG,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,MAAM,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAEpE,MAAMC,WAAiC,GAAGA,CAAC;EAAEC,kBAAkB;EAAEC,IAAI;EAAEC,OAAO;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,KAAK;EACpG,MAAMC,WAAW,GAAGZ,iBAAiB,CAAC,CAAC;EACvC,MAAMa,UAAU,GAAGf,4BAA4B,CAAC,CAAC;EAEjD,MAAMgB,WAAW,GAAGlB,OAAO,CAAC,MAAM;IAChC,iBAAID,KAAK,CAACoB,cAAc,CAACP,IAAI,CAAC,EAAE;MAC9B,OAAOA,IAAI;IACb;IACA,MAAMQ,IAAI,GAAGR,IAAoB;IACjC,oBAAOb,KAAA,CAAAsB,aAAA,CAACD,IAAI;MAACE,KAAK,EAAEN,WAAW,CAACO;IAAK,CAAE,CAAC;EAC1C,CAAC,EAAE,CAACP,WAAW,CAACO,IAAI,EAAEX,IAAI,CAAC,CAAC;EAE5B,oBACEb,KAAA,CAAAsB,aAAA,CAAClB,gBAAgB,EAAAqB,QAAA;IACfb,kBAAkB,EAAEA,kBAAmB;IACvCc,iBAAiB,EAAC,QAAQ;IAC1BR,UAAU,EAAEA,UAAW;IACvBZ,OAAO,EAAEA,OAAQ;IACjBQ,OAAO,EAAEA,OAAQ;IACjBC,KAAK,EAAE,CAACY,MAAM,CAACC,MAAM,EAAEb,KAAK;EAAE,GAC1BC,KAAK,GACRG,WACe,CAAC;AAEvB,CAAC;AAED,MAAMQ,MAAM,GAAGzB,UAAU,CAAC2B,MAAM,CAAC;EAC/BD,MAAM,EAAE;IACNE,UAAU,EAAE,QAAQ;IACpBC,eAAe,EAAE,aAAa;IAC9BC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,MAAM,EAAE,EAAE;IACVC,cAAc,EAAE,QAAQ;IACxBC,QAAQ,EAAE,QAAQ;IAClBC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAEF,eAAe1B,WAAW","ignoreList":[]}
|