@procivis/one-react-native-components 0.3.27 → 0.3.50

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.
Files changed (202) hide show
  1. package/lib/commonjs/components/entity/entity-attributes.js +14 -1
  2. package/lib/commonjs/components/entity/entity-attributes.js.map +1 -1
  3. package/lib/commonjs/components/entity/entity-details-with-buttons.js +9 -42
  4. package/lib/commonjs/components/entity/entity-details-with-buttons.js.map +1 -1
  5. package/lib/commonjs/components/entity/entity-details.js +60 -32
  6. package/lib/commonjs/components/entity/entity-details.js.map +1 -1
  7. package/lib/commonjs/components/entity/index.js +2 -15
  8. package/lib/commonjs/components/entity/index.js.map +1 -1
  9. package/lib/commonjs/components/history/history-list-item.js +14 -12
  10. package/lib/commonjs/components/history/history-list-item.js.map +1 -1
  11. package/lib/commonjs/components/proof-request/share-credential.js +1 -2
  12. package/lib/commonjs/components/proof-request/share-credential.js.map +1 -1
  13. package/lib/commonjs/ui-components/blur/index.js +2 -9
  14. package/lib/commonjs/ui-components/blur/index.js.map +1 -1
  15. package/lib/commonjs/ui-components/buttons/hold-button.js +3 -2
  16. package/lib/commonjs/ui-components/buttons/hold-button.js.map +1 -1
  17. package/lib/commonjs/ui-components/camera/index.js +2 -9
  18. package/lib/commonjs/ui-components/camera/index.js.map +1 -1
  19. package/lib/commonjs/ui-components/control/index.js +0 -12
  20. package/lib/commonjs/ui-components/control/index.js.map +1 -1
  21. package/lib/commonjs/ui-components/credential/card/credential-details-card.js +1 -1
  22. package/lib/commonjs/ui-components/credential/card/credential-details-card.js.map +1 -1
  23. package/lib/commonjs/ui-components/credential/credential-carousel-images.js +15 -8
  24. package/lib/commonjs/ui-components/credential/credential-carousel-images.js.map +1 -1
  25. package/lib/commonjs/ui-components/entity/entity-cluster.js +50 -2
  26. package/lib/commonjs/ui-components/entity/entity-cluster.js.map +1 -1
  27. package/lib/commonjs/ui-components/entity/index.js +3 -16
  28. package/lib/commonjs/ui-components/entity/index.js.map +1 -1
  29. package/lib/commonjs/ui-components/history/history-details.js +1 -1
  30. package/lib/commonjs/ui-components/history/history-details.js.map +1 -1
  31. package/lib/commonjs/ui-components/history/index.js +4 -27
  32. package/lib/commonjs/ui-components/history/index.js.map +1 -1
  33. package/lib/commonjs/ui-components/icons/entity.js +10 -13
  34. package/lib/commonjs/ui-components/icons/entity.js.map +1 -1
  35. package/lib/commonjs/ui-components/input/index.js +3 -32
  36. package/lib/commonjs/ui-components/input/index.js.map +1 -1
  37. package/lib/commonjs/ui-components/list/index.js +4 -19
  38. package/lib/commonjs/ui-components/list/index.js.map +1 -1
  39. package/lib/commonjs/ui-components/loader/index.js +2 -13
  40. package/lib/commonjs/ui-components/loader/index.js.map +1 -1
  41. package/lib/commonjs/ui-components/pin/index.js +2 -21
  42. package/lib/commonjs/ui-components/pin/index.js.map +1 -1
  43. package/lib/commonjs/ui-components/screens/nerd-mode-screen.js.map +1 -1
  44. package/lib/commonjs/ui-components/searchbar/index.js +3 -16
  45. package/lib/commonjs/ui-components/searchbar/index.js.map +1 -1
  46. package/lib/commonjs/ui-components/settings/index.js +6 -37
  47. package/lib/commonjs/ui-components/settings/index.js.map +1 -1
  48. package/lib/commonjs/ui-components/state/index.js +2 -15
  49. package/lib/commonjs/ui-components/state/index.js.map +1 -1
  50. package/lib/commonjs/utils/date.js +1 -1
  51. package/lib/commonjs/utils/date.js.map +1 -1
  52. package/lib/commonjs/utils/hooks/connectivity/connectivity.test.js +4 -0
  53. package/lib/commonjs/utils/hooks/connectivity/connectivity.test.js.map +1 -1
  54. package/lib/commonjs/utils/hooks/core/backup.js +22 -66
  55. package/lib/commonjs/utils/hooks/core/backup.js.map +1 -1
  56. package/lib/commonjs/utils/hooks/core/core-init.js +6 -2
  57. package/lib/commonjs/utils/hooks/core/core-init.js.map +1 -1
  58. package/lib/commonjs/utils/hooks/core/identifiers.js +23 -1
  59. package/lib/commonjs/utils/hooks/core/identifiers.js.map +1 -1
  60. package/lib/commonjs/utils/hooks/core/proofs.js +24 -14
  61. package/lib/commonjs/utils/hooks/core/proofs.js.map +1 -1
  62. package/lib/commonjs/utils/hooks/core/trust-entity.js +56 -14
  63. package/lib/commonjs/utils/hooks/core/trust-entity.js.map +1 -1
  64. package/lib/commonjs/utils/parsers/credential-sharing.js +6 -15
  65. package/lib/commonjs/utils/parsers/credential-sharing.js.map +1 -1
  66. package/lib/commonjs/utils/parsers/credential.js +2 -2
  67. package/lib/commonjs/utils/parsers/credential.js.map +1 -1
  68. package/lib/commonjs/utils/parsers/query.js +23 -86
  69. package/lib/commonjs/utils/parsers/query.js.map +1 -1
  70. package/lib/module/components/entity/entity-attributes.js +15 -2
  71. package/lib/module/components/entity/entity-attributes.js.map +1 -1
  72. package/lib/module/components/entity/entity-details-with-buttons.js +11 -44
  73. package/lib/module/components/entity/entity-details-with-buttons.js.map +1 -1
  74. package/lib/module/components/entity/entity-details.js +61 -33
  75. package/lib/module/components/entity/entity-details.js.map +1 -1
  76. package/lib/module/components/entity/index.js +2 -2
  77. package/lib/module/components/entity/index.js.map +1 -1
  78. package/lib/module/components/history/history-list-item.js +15 -13
  79. package/lib/module/components/history/history-list-item.js.map +1 -1
  80. package/lib/module/components/proof-request/share-credential.js +1 -2
  81. package/lib/module/components/proof-request/share-credential.js.map +1 -1
  82. package/lib/module/ui-components/blur/index.js +2 -2
  83. package/lib/module/ui-components/blur/index.js.map +1 -1
  84. package/lib/module/ui-components/buttons/hold-button.js +4 -3
  85. package/lib/module/ui-components/buttons/hold-button.js.map +1 -1
  86. package/lib/module/ui-components/camera/index.js +2 -2
  87. package/lib/module/ui-components/camera/index.js.map +1 -1
  88. package/lib/module/ui-components/control/index.js +3 -3
  89. package/lib/module/ui-components/control/index.js.map +1 -1
  90. package/lib/module/ui-components/credential/card/credential-details-card.js +1 -1
  91. package/lib/module/ui-components/credential/card/credential-details-card.js.map +1 -1
  92. package/lib/module/ui-components/credential/credential-carousel-images.js +15 -8
  93. package/lib/module/ui-components/credential/credential-carousel-images.js.map +1 -1
  94. package/lib/module/ui-components/entity/entity-cluster.js +51 -3
  95. package/lib/module/ui-components/entity/entity-cluster.js.map +1 -1
  96. package/lib/module/ui-components/entity/index.js +4 -4
  97. package/lib/module/ui-components/entity/index.js.map +1 -1
  98. package/lib/module/ui-components/history/history-details.js +1 -1
  99. package/lib/module/ui-components/history/history-details.js.map +1 -1
  100. package/lib/module/ui-components/history/index.js +6 -6
  101. package/lib/module/ui-components/history/index.js.map +1 -1
  102. package/lib/module/ui-components/icons/entity.js +10 -13
  103. package/lib/module/ui-components/icons/entity.js.map +1 -1
  104. package/lib/module/ui-components/input/index.js +6 -6
  105. package/lib/module/ui-components/input/index.js.map +1 -1
  106. package/lib/module/ui-components/list/index.js +4 -4
  107. package/lib/module/ui-components/list/index.js.map +1 -1
  108. package/lib/module/ui-components/loader/index.js +4 -4
  109. package/lib/module/ui-components/loader/index.js.map +1 -1
  110. package/lib/module/ui-components/pin/index.js +3 -3
  111. package/lib/module/ui-components/pin/index.js.map +1 -1
  112. package/lib/module/ui-components/screens/nerd-mode-screen.js.map +1 -1
  113. package/lib/module/ui-components/searchbar/index.js +4 -4
  114. package/lib/module/ui-components/searchbar/index.js.map +1 -1
  115. package/lib/module/ui-components/settings/index.js +10 -10
  116. package/lib/module/ui-components/settings/index.js.map +1 -1
  117. package/lib/module/ui-components/state/index.js +2 -2
  118. package/lib/module/ui-components/state/index.js.map +1 -1
  119. package/lib/module/utils/date.js +1 -1
  120. package/lib/module/utils/date.js.map +1 -1
  121. package/lib/module/utils/hooks/connectivity/connectivity.test.js +4 -0
  122. package/lib/module/utils/hooks/connectivity/connectivity.test.js.map +1 -1
  123. package/lib/module/utils/hooks/core/backup.js +24 -68
  124. package/lib/module/utils/hooks/core/backup.js.map +1 -1
  125. package/lib/module/utils/hooks/core/core-init.js +5 -3
  126. package/lib/module/utils/hooks/core/core-init.js.map +1 -1
  127. package/lib/module/utils/hooks/core/identifiers.js +21 -0
  128. package/lib/module/utils/hooks/core/identifiers.js.map +1 -1
  129. package/lib/module/utils/hooks/core/proofs.js +24 -14
  130. package/lib/module/utils/hooks/core/proofs.js.map +1 -1
  131. package/lib/module/utils/hooks/core/trust-entity.js +57 -15
  132. package/lib/module/utils/hooks/core/trust-entity.js.map +1 -1
  133. package/lib/module/utils/parsers/credential-sharing.js +6 -15
  134. package/lib/module/utils/parsers/credential-sharing.js.map +1 -1
  135. package/lib/module/utils/parsers/credential.js +2 -2
  136. package/lib/module/utils/parsers/credential.js.map +1 -1
  137. package/lib/module/utils/parsers/query.js +21 -85
  138. package/lib/module/utils/parsers/query.js.map +1 -1
  139. package/lib/typescript/components/entity/entity-attributes.d.ts +1 -0
  140. package/lib/typescript/components/entity/entity-details-with-buttons.d.ts +1 -2
  141. package/lib/typescript/components/entity/entity-details.d.ts +3 -2
  142. package/lib/typescript/components/entity/index.d.ts +2 -1
  143. package/lib/typescript/ui-components/blur/index.d.ts +2 -1
  144. package/lib/typescript/ui-components/buttons/hold-button.d.ts +2 -2
  145. package/lib/typescript/ui-components/camera/index.d.ts +2 -1
  146. package/lib/typescript/ui-components/control/index.d.ts +4 -2
  147. package/lib/typescript/ui-components/credential/credential-carousel-images.d.ts +1 -0
  148. package/lib/typescript/ui-components/entity/entity-cluster.d.ts +1 -0
  149. package/lib/typescript/ui-components/entity/index.d.ts +4 -2
  150. package/lib/typescript/ui-components/history/history-details.d.ts +4 -1
  151. package/lib/typescript/ui-components/history/index.d.ts +6 -3
  152. package/lib/typescript/ui-components/input/index.d.ts +6 -3
  153. package/lib/typescript/ui-components/list/index.d.ts +4 -2
  154. package/lib/typescript/ui-components/loader/index.d.ts +4 -2
  155. package/lib/typescript/ui-components/pin/index.d.ts +4 -2
  156. package/lib/typescript/ui-components/screens/nerd-mode-screen.d.ts +1 -1
  157. package/lib/typescript/ui-components/searchbar/index.d.ts +4 -2
  158. package/lib/typescript/ui-components/settings/index.d.ts +10 -5
  159. package/lib/typescript/ui-components/state/index.d.ts +2 -1
  160. package/lib/typescript/utils/hooks/core/backup.d.ts +5 -0
  161. package/lib/typescript/utils/hooks/core/core-init.d.ts +4 -1
  162. package/lib/typescript/utils/hooks/core/identifiers.d.ts +4 -1
  163. package/lib/typescript/utils/hooks/core/proofs.d.ts +1 -0
  164. package/lib/typescript/utils/hooks/core/trust-entity.d.ts +9 -3
  165. package/lib/typescript/utils/parsers/query.d.ts +8 -7
  166. package/package.json +10 -5
  167. package/src/components/entity/entity-attributes.tsx +16 -2
  168. package/src/components/entity/entity-details-with-buttons.tsx +11 -42
  169. package/src/components/entity/entity-details.tsx +96 -33
  170. package/src/components/entity/index.ts +2 -1
  171. package/src/components/history/history-list-item.tsx +17 -13
  172. package/src/components/proof-request/share-credential.tsx +0 -1
  173. package/src/ui-components/blur/index.ts +2 -1
  174. package/src/ui-components/buttons/hold-button.tsx +6 -5
  175. package/src/ui-components/camera/index.tsx +2 -1
  176. package/src/ui-components/control/index.ts +4 -2
  177. package/src/ui-components/credential/card/credential-details-card.tsx +1 -1
  178. package/src/ui-components/credential/credential-carousel-images.tsx +15 -8
  179. package/src/ui-components/entity/entity-cluster.tsx +63 -10
  180. package/src/ui-components/entity/index.ts +4 -2
  181. package/src/ui-components/history/history-details.tsx +5 -2
  182. package/src/ui-components/history/index.ts +6 -3
  183. package/src/ui-components/icons/entity.tsx +8 -12
  184. package/src/ui-components/input/index.ts +6 -3
  185. package/src/ui-components/list/index.ts +4 -2
  186. package/src/ui-components/loader/index.ts +4 -2
  187. package/src/ui-components/pin/index.ts +4 -2
  188. package/src/ui-components/screens/nerd-mode-screen.tsx +1 -1
  189. package/src/ui-components/searchbar/index.ts +4 -2
  190. package/src/ui-components/settings/index.ts +10 -5
  191. package/src/ui-components/state/index.ts +2 -1
  192. package/src/utils/date.ts +1 -1
  193. package/src/utils/hooks/connectivity/connectivity.test.ts +7 -2
  194. package/src/utils/hooks/core/backup.ts +30 -72
  195. package/src/utils/hooks/core/core-init.ts +5 -3
  196. package/src/utils/hooks/core/identifiers.ts +22 -1
  197. package/src/utils/hooks/core/proofs.ts +27 -16
  198. package/src/utils/hooks/core/trust-entity.ts +73 -23
  199. package/src/utils/parsers/credential-sharing.tsx +8 -14
  200. package/src/utils/parsers/credential.ts +2 -1
  201. package/src/utils/parsers/query.ts +149 -0
  202. package/src/utils/parsers/query.tsx +0 -82
@@ -1,63 +1,91 @@
1
- import { TrustEntityRoleEnum, TrustEntityStateEnum } from '@procivis/react-native-one-core';
1
+ import { IdentifierTypeEnum, TrustEntityRoleEnum, TrustEntityStateEnum } from '@procivis/react-native-one-core';
2
2
  import React, { useMemo } from 'react';
3
3
  import EntityCluster from '../../ui-components/entity/entity-cluster';
4
4
  import { EntityNotTrustedIcon, EntityTrustedIcon } from '../../ui-components/icons';
5
5
  import { concatTestID, replaceBreakingHyphens, useIdentifierDetails } from '../../utils';
6
6
  import { useTrustEntity } from '../../utils/hooks/core/trust-entity';
7
+ const getCertificateCommonName = certificate => {
8
+ var _certificate$x509Attr;
9
+ return (_certificate$x509Attr = certificate.x509Attributes.subject.split(', ').find(s => s.startsWith('CN'))) === null || _certificate$x509Attr === void 0 || (_certificate$x509Attr = _certificate$x509Attr.split('=')) === null || _certificate$x509Attr === void 0 ? void 0 : _certificate$x509Attr.pop();
10
+ };
7
11
  const EntityDetails = ({
8
12
  labels,
9
13
  renderMore,
10
14
  role,
11
15
  style,
12
16
  testID,
17
+ sublineColor,
18
+ textColor,
13
19
  ...props
14
20
  }) => {
15
21
  var _props$identifier, _props$identifier2;
16
22
  const {
17
- data
23
+ data,
24
+ isLoading: isLoadingTrustEntity
18
25
  } = useTrustEntity('identifier' in props ? (_props$identifier = props.identifier) === null || _props$identifier === void 0 ? void 0 : _props$identifier.id : undefined);
19
26
  const trustEntity = 'entity' in props ? props.entity : data !== null && data !== void 0 ? data : undefined;
20
27
  const {
21
- data: identifierDetail
28
+ data: identifierDetail,
29
+ isLoading: isLoadingIdentifier
22
30
  } = useIdentifierDetails('identifier' in props ? (_props$identifier2 = props.identifier) === null || _props$identifier2 === void 0 ? void 0 : _props$identifier2.id : undefined);
23
31
  const trusted = trustEntity && trustEntity.state === TrustEntityStateEnum.ACTIVE && (trustEntity.role === TrustEntityRoleEnum.BOTH || trustEntity.role === role);
32
+ const isLoading = isLoadingIdentifier || isLoadingTrustEntity;
33
+ const avatarProps = useMemo(() => {
34
+ var _identifierDetail$cer, _getCertificateCommon;
35
+ if (isLoading) {
36
+ return undefined;
37
+ }
38
+ const avatar = trusted && (identifierDetail === null || identifierDetail === void 0 ? void 0 : identifierDetail.type) === 'DID' && trustEntity.logo ? {
39
+ imageSource: {
40
+ uri: trustEntity.logo
41
+ }
42
+ } : undefined;
43
+ const placeholderText = (identifierDetail === null || identifierDetail === void 0 ? void 0 : identifierDetail.type) === IdentifierTypeEnum.CERTIFICATE && (_identifierDetail$cer = identifierDetail.certificates) !== null && _identifierDetail$cer !== void 0 && _identifierDetail$cer[0] ? (_getCertificateCommon = getCertificateCommonName(identifierDetail.certificates[0])) === null || _getCertificateCommon === void 0 ? void 0 : _getCertificateCommon.substring(0, 1) : 'D';
44
+ const statusIcon = trusted ? /*#__PURE__*/React.createElement(EntityTrustedIcon, {
45
+ testID: concatTestID(testID, 'statusIcon', 'trusted')
46
+ }) : /*#__PURE__*/React.createElement(EntityNotTrustedIcon, {
47
+ testID: concatTestID(testID, 'statusIcon', 'notTrusted')
48
+ });
49
+ if (trustEntity) {
50
+ return {
51
+ avatar,
52
+ placeholderText: trusted && (identifierDetail === null || identifierDetail === void 0 ? void 0 : identifierDetail.type) === 'DID' ? trustEntity.name.substring(0, 1) : placeholderText,
53
+ statusIcon,
54
+ testID: concatTestID(testID, 'avatar')
55
+ };
56
+ }
57
+ return {
58
+ placeholderText,
59
+ statusIcon
60
+ };
61
+ }, [trustEntity, trusted, identifierDetail, isLoading, testID]);
24
62
  const trustEntityName = useMemo(() => {
25
- if (!trusted) {
26
- var _identifierDetail$did;
27
- if (identifierDetail !== null && identifierDetail !== void 0 && (_identifierDetail$did = identifierDetail.did) !== null && _identifierDetail$did !== void 0 && _identifierDetail$did.did) {
28
- return replaceBreakingHyphens(identifierDetail.did.did);
63
+ var _identifierDetail$cer2, _identifierDetail$did;
64
+ if (isLoading) {
65
+ return '';
66
+ }
67
+ if ((identifierDetail === null || identifierDetail === void 0 ? void 0 : identifierDetail.type) === IdentifierTypeEnum.CERTIFICATE && (_identifierDetail$cer2 = identifierDetail.certificates) !== null && _identifierDetail$cer2 !== void 0 && _identifierDetail$cer2[0]) {
68
+ const commonName = getCertificateCommonName(identifierDetail.certificates[0]);
69
+ if (commonName) {
70
+ return commonName;
29
71
  }
30
- return labels.unknown;
31
72
  }
32
- return trustEntity.name;
33
- }, [labels.unknown, trustEntity, trusted, identifierDetail]);
34
- const trustEntityStatusIcon = useMemo(() => {
35
- if (!trusted) {
36
- return /*#__PURE__*/React.createElement(EntityNotTrustedIcon, {
37
- testID: concatTestID(testID, 'statusIcon', 'notTrusted')
38
- });
73
+ if (trustEntity) {
74
+ return trustEntity.name;
39
75
  }
40
- return /*#__PURE__*/React.createElement(EntityTrustedIcon, {
41
- testID: concatTestID(testID, 'statusIcon', 'trusted')
42
- });
43
- }, [testID, trusted]);
76
+ if (identifierDetail !== null && identifierDetail !== void 0 && (_identifierDetail$did = identifierDetail.did) !== null && _identifierDetail$did !== void 0 && _identifierDetail$did.did) {
77
+ return replaceBreakingHyphens(identifierDetail.did.did);
78
+ }
79
+ return labels.unknown;
80
+ }, [labels.unknown, trustEntity, identifierDetail, isLoading]);
44
81
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(EntityCluster, {
45
- avatar: trustEntity ? {
46
- avatar: trusted && trustEntity.logo ? {
47
- imageSource: {
48
- uri: trustEntity.logo
49
- }
50
- } : undefined,
51
- placeholderText: trusted ? trustEntity.name.substring(0, 1) : "U",
52
- statusIcon: trustEntityStatusIcon,
53
- testID: concatTestID(testID, 'avatar')
54
- } : {
55
- statusIcon: trustEntityStatusIcon,
56
- placeholderText: "U"
57
- },
82
+ avatar: avatarProps,
58
83
  entityName: trustEntityName,
59
84
  style: style,
60
- testID: testID
85
+ testID: testID,
86
+ textColor: textColor,
87
+ sublineColor: sublineColor,
88
+ isLoading: isLoading
61
89
  }), trustEntity && renderMore && renderMore(trustEntity));
62
90
  };
63
91
  export default EntityDetails;
@@ -1 +1 @@
1
- {"version":3,"names":["TrustEntityRoleEnum","TrustEntityStateEnum","React","useMemo","EntityCluster","EntityNotTrustedIcon","EntityTrustedIcon","concatTestID","replaceBreakingHyphens","useIdentifierDetails","useTrustEntity","EntityDetails","labels","renderMore","role","style","testID","props","_props$identifier","_props$identifier2","data","identifier","id","undefined","trustEntity","entity","identifierDetail","trusted","state","ACTIVE","BOTH","trustEntityName","_identifierDetail$did","did","unknown","name","trustEntityStatusIcon","createElement","Fragment","avatar","logo","imageSource","uri","placeholderText","substring","statusIcon","entityName"],"sources":["entity-details.tsx"],"sourcesContent":["import { TrustEntity, TrustEntityRoleEnum, TrustEntityStateEnum } from '@procivis/react-native-one-core';\nimport { IdentifierListItem } from '@procivis/react-native-one-core/dist/src/identifier';\nimport React, { FC, ReactNode, useMemo } from 'react';\nimport { StyleProp, ViewStyle } from 'react-native';\n\nimport EntityCluster from '../../ui-components/entity/entity-cluster';\nimport { EntityNotTrustedIcon, EntityTrustedIcon } from '../../ui-components/icons';\nimport { concatTestID, replaceBreakingHyphens, useIdentifierDetails } from '../../utils';\nimport { useTrustEntity } from '../../utils/hooks/core/trust-entity';\n\nexport type EntityDetailsLabels = {\n unknown: string;\n};\n\nexport type EntityDetailsProps = {\n labels: EntityDetailsLabels;\n renderMore?: (trustEntity: TrustEntity) => ReactNode;\n role: Exclude<TrustEntityRoleEnum, TrustEntityRoleEnum.BOTH>;\n style?: StyleProp<ViewStyle>;\n testID?: string;\n} & (\n | {\n identifier?: IdentifierListItem;\n }\n | {\n entity: TrustEntity;\n }\n );\n\nconst EntityDetails: FC<EntityDetailsProps> = ({ labels, renderMore, role, style, testID, ...props }) => {\n const { data } = useTrustEntity('identifier' in props ? props.identifier?.id : undefined);\n const trustEntity: TrustEntity | undefined = 'entity' in props ? props.entity : data ?? undefined;\n const { data: identifierDetail } = useIdentifierDetails('identifier' in props ? props.identifier?.id : undefined);\n\n const trusted =\n trustEntity &&\n trustEntity.state === TrustEntityStateEnum.ACTIVE &&\n (trustEntity.role === TrustEntityRoleEnum.BOTH || trustEntity.role === role);\n\n const trustEntityName = useMemo(() => {\n if (!trusted) {\n if (identifierDetail?.did?.did) {\n return replaceBreakingHyphens(identifierDetail.did.did);\n }\n return labels.unknown;\n }\n return trustEntity.name;\n }, [labels.unknown, trustEntity, trusted, identifierDetail]);\n\n const trustEntityStatusIcon = useMemo(() => {\n if (!trusted) {\n return <EntityNotTrustedIcon testID={concatTestID(testID, 'statusIcon', 'notTrusted')} />;\n }\n return <EntityTrustedIcon testID={concatTestID(testID, 'statusIcon', 'trusted')} />;\n }, [testID, trusted]);\n\n return (\n <>\n <EntityCluster\n avatar={\n trustEntity\n ? {\n avatar: trusted && trustEntity.logo ? { imageSource: { uri: trustEntity.logo } } : undefined,\n placeholderText: trusted ? trustEntity.name.substring(0, 1) : \"U\",\n statusIcon: trustEntityStatusIcon,\n testID: concatTestID(testID, 'avatar'),\n }\n : {\n statusIcon: trustEntityStatusIcon,\n placeholderText: \"U\",\n }\n }\n entityName={trustEntityName}\n style={style}\n testID={testID}\n />\n {trustEntity && renderMore && renderMore(trustEntity)}\n </>\n );\n};\n\nexport default EntityDetails;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["IdentifierTypeEnum","TrustEntityRoleEnum","TrustEntityStateEnum","React","useMemo","EntityCluster","EntityNotTrustedIcon","EntityTrustedIcon","concatTestID","replaceBreakingHyphens","useIdentifierDetails","useTrustEntity","getCertificateCommonName","certificate","_certificate$x509Attr","x509Attributes","subject","split","find","s","startsWith","pop","EntityDetails","labels","renderMore","role","style","testID","sublineColor","textColor","props","_props$identifier","_props$identifier2","data","isLoading","isLoadingTrustEntity","identifier","id","undefined","trustEntity","entity","identifierDetail","isLoadingIdentifier","trusted","state","ACTIVE","BOTH","avatarProps","_identifierDetail$cer","_getCertificateCommon","avatar","type","logo","imageSource","uri","placeholderText","CERTIFICATE","certificates","substring","statusIcon","createElement","name","trustEntityName","_identifierDetail$cer2","_identifierDetail$did","commonName","did","unknown","Fragment","entityName"],"sources":["entity-details.tsx"],"sourcesContent":["import {\n IdentifierCertificateDetail,\n IdentifierListItem,\n IdentifierTypeEnum,\n TrustEntity,\n TrustEntityRoleEnum,\n TrustEntityStateEnum,\n} from '@procivis/react-native-one-core';\nimport React, { FC, ReactNode, useMemo } from 'react';\nimport { StyleProp, ViewStyle } from 'react-native';\n\nimport { AvatarProps } from '../../ui-components';\nimport EntityCluster from '../../ui-components/entity/entity-cluster';\nimport { EntityNotTrustedIcon, EntityTrustedIcon } from '../../ui-components/icons';\nimport { concatTestID, replaceBreakingHyphens, useIdentifierDetails } from '../../utils';\nimport { useTrustEntity } from '../../utils/hooks/core/trust-entity';\n\nexport type EntityDetailsLabels = {\n unknown: string;\n};\n\nexport type EntityDetailsProps = {\n labels: EntityDetailsLabels;\n renderMore?: (trustEntity: TrustEntity) => ReactNode;\n role: Exclude<TrustEntityRoleEnum, TrustEntityRoleEnum.BOTH>;\n style?: StyleProp<ViewStyle>;\n sublineColor?: string;\n textColor?: string;\n testID?: string;\n} & (\n | {\n identifier?: IdentifierListItem;\n }\n | {\n entity: TrustEntity;\n }\n);\n\nconst getCertificateCommonName = (certificate: IdentifierCertificateDetail): string | undefined => {\n return certificate.x509Attributes.subject\n .split(', ')\n .find((s) => s.startsWith('CN'))\n ?.split('=')\n ?.pop();\n};\n\nconst EntityDetails: FC<EntityDetailsProps> = ({\n labels,\n renderMore,\n role,\n style,\n testID,\n sublineColor,\n textColor,\n ...props\n}) => {\n const { data, isLoading: isLoadingTrustEntity } = useTrustEntity(\n 'identifier' in props ? props.identifier?.id : undefined,\n );\n const trustEntity: TrustEntity | undefined = 'entity' in props ? props.entity : data ?? undefined;\n const { data: identifierDetail, isLoading: isLoadingIdentifier } = useIdentifierDetails(\n 'identifier' in props ? props.identifier?.id : undefined,\n );\n\n const trusted =\n trustEntity &&\n trustEntity.state === TrustEntityStateEnum.ACTIVE &&\n (trustEntity.role === TrustEntityRoleEnum.BOTH || trustEntity.role === role);\n\n const isLoading = isLoadingIdentifier || isLoadingTrustEntity;\n\n const avatarProps: AvatarProps | undefined = useMemo(() => {\n if (isLoading) {\n return undefined;\n }\n\n const avatar =\n trusted && identifierDetail?.type === 'DID' && trustEntity.logo\n ? { imageSource: { uri: trustEntity.logo } }\n : undefined;\n\n const placeholderText =\n identifierDetail?.type === IdentifierTypeEnum.CERTIFICATE && identifierDetail.certificates?.[0]\n ? getCertificateCommonName(identifierDetail.certificates[0])?.substring(0, 1)\n : 'D';\n\n const statusIcon = trusted ? (\n <EntityTrustedIcon testID={concatTestID(testID, 'statusIcon', 'trusted')} />\n ) : (\n <EntityNotTrustedIcon testID={concatTestID(testID, 'statusIcon', 'notTrusted')} />\n );\n\n if (trustEntity) {\n return {\n avatar,\n placeholderText:\n trusted && identifierDetail?.type === 'DID' ? trustEntity.name.substring(0, 1) : placeholderText,\n statusIcon,\n testID: concatTestID(testID, 'avatar'),\n };\n }\n\n return {\n placeholderText,\n statusIcon,\n };\n }, [trustEntity, trusted, identifierDetail, isLoading, testID]);\n\n const trustEntityName = useMemo(() => {\n if (isLoading) {\n return '';\n }\n if (identifierDetail?.type === IdentifierTypeEnum.CERTIFICATE && identifierDetail.certificates?.[0]) {\n const commonName = getCertificateCommonName(identifierDetail.certificates[0]);\n if (commonName) {\n return commonName;\n }\n }\n if (trustEntity) {\n return trustEntity.name;\n }\n if (identifierDetail?.did?.did) {\n return replaceBreakingHyphens(identifierDetail.did.did);\n }\n\n return labels.unknown;\n }, [labels.unknown, trustEntity, identifierDetail, isLoading]);\n\n return (\n <>\n <EntityCluster\n avatar={avatarProps}\n entityName={trustEntityName}\n style={style}\n testID={testID}\n textColor={textColor}\n sublineColor={sublineColor}\n isLoading={isLoading}\n />\n {trustEntity && renderMore && renderMore(trustEntity)}\n </>\n );\n};\n\nexport default EntityDetails;\n"],"mappings":"AAAA,SAGEA,kBAAkB,EAElBC,mBAAmB,EACnBC,oBAAoB,QACf,iCAAiC;AACxC,OAAOC,KAAK,IAAmBC,OAAO,QAAQ,OAAO;AAIrD,OAAOC,aAAa,MAAM,2CAA2C;AACrE,SAASC,oBAAoB,EAAEC,iBAAiB,QAAQ,2BAA2B;AACnF,SAASC,YAAY,EAAEC,sBAAsB,EAAEC,oBAAoB,QAAQ,aAAa;AACxF,SAASC,cAAc,QAAQ,qCAAqC;AAuBpE,MAAMC,wBAAwB,GAAIC,WAAwC,IAAyB;EAAA,IAAAC,qBAAA;EACjG,QAAAA,qBAAA,GAAOD,WAAW,CAACE,cAAc,CAACC,OAAO,CACtCC,KAAK,CAAC,IAAI,CAAC,CACXC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,CAAC,IAAI,CAAC,CAAC,cAAAN,qBAAA,gBAAAA,qBAAA,GAF3BA,qBAAA,CAGHG,KAAK,CAAC,GAAG,CAAC,cAAAH,qBAAA,uBAHPA,qBAAA,CAIHO,GAAG,CAAC,CAAC;AACX,CAAC;AAED,MAAMC,aAAqC,GAAGA,CAAC;EAC7CC,MAAM;EACNC,UAAU;EACVC,IAAI;EACJC,KAAK;EACLC,MAAM;EACNC,YAAY;EACZC,SAAS;EACT,GAAGC;AACL,CAAC,KAAK;EAAA,IAAAC,iBAAA,EAAAC,kBAAA;EACJ,MAAM;IAAEC,IAAI;IAAEC,SAAS,EAAEC;EAAqB,CAAC,GAAGxB,cAAc,CAC9D,YAAY,IAAImB,KAAK,IAAAC,iBAAA,GAAGD,KAAK,CAACM,UAAU,cAAAL,iBAAA,uBAAhBA,iBAAA,CAAkBM,EAAE,GAAGC,SACjD,CAAC;EACD,MAAMC,WAAoC,GAAG,QAAQ,IAAIT,KAAK,GAAGA,KAAK,CAACU,MAAM,GAAGP,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAIK,SAAS;EACjG,MAAM;IAAEL,IAAI,EAAEQ,gBAAgB;IAAEP,SAAS,EAAEQ;EAAoB,CAAC,GAAGhC,oBAAoB,CACrF,YAAY,IAAIoB,KAAK,IAAAE,kBAAA,GAAGF,KAAK,CAACM,UAAU,cAAAJ,kBAAA,uBAAhBA,kBAAA,CAAkBK,EAAE,GAAGC,SACjD,CAAC;EAED,MAAMK,OAAO,GACXJ,WAAW,IACXA,WAAW,CAACK,KAAK,KAAK1C,oBAAoB,CAAC2C,MAAM,KAChDN,WAAW,CAACd,IAAI,KAAKxB,mBAAmB,CAAC6C,IAAI,IAAIP,WAAW,CAACd,IAAI,KAAKA,IAAI,CAAC;EAE9E,MAAMS,SAAS,GAAGQ,mBAAmB,IAAIP,oBAAoB;EAE7D,MAAMY,WAAoC,GAAG3C,OAAO,CAAC,MAAM;IAAA,IAAA4C,qBAAA,EAAAC,qBAAA;IACzD,IAAIf,SAAS,EAAE;MACb,OAAOI,SAAS;IAClB;IAEA,MAAMY,MAAM,GACVP,OAAO,IAAI,CAAAF,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEU,IAAI,MAAK,KAAK,IAAIZ,WAAW,CAACa,IAAI,GAC3D;MAAEC,WAAW,EAAE;QAAEC,GAAG,EAAEf,WAAW,CAACa;MAAK;IAAE,CAAC,GAC1Cd,SAAS;IAEf,MAAMiB,eAAe,GACnB,CAAAd,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEU,IAAI,MAAKnD,kBAAkB,CAACwD,WAAW,KAAAR,qBAAA,GAAIP,gBAAgB,CAACgB,YAAY,cAAAT,qBAAA,eAA7BA,qBAAA,CAAgC,CAAC,CAAC,IAAAC,qBAAA,GAC3FrC,wBAAwB,CAAC6B,gBAAgB,CAACgB,YAAY,CAAC,CAAC,CAAC,CAAC,cAAAR,qBAAA,uBAA1DA,qBAAA,CAA4DS,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3E,GAAG;IAET,MAAMC,UAAU,GAAGhB,OAAO,gBACxBxC,KAAA,CAAAyD,aAAA,CAACrD,iBAAiB;MAACoB,MAAM,EAAEnB,YAAY,CAACmB,MAAM,EAAE,YAAY,EAAE,SAAS;IAAE,CAAE,CAAC,gBAE5ExB,KAAA,CAAAyD,aAAA,CAACtD,oBAAoB;MAACqB,MAAM,EAAEnB,YAAY,CAACmB,MAAM,EAAE,YAAY,EAAE,YAAY;IAAE,CAAE,CAClF;IAED,IAAIY,WAAW,EAAE;MACf,OAAO;QACLW,MAAM;QACNK,eAAe,EACbZ,OAAO,IAAI,CAAAF,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEU,IAAI,MAAK,KAAK,GAAGZ,WAAW,CAACsB,IAAI,CAACH,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAGH,eAAe;QAClGI,UAAU;QACVhC,MAAM,EAAEnB,YAAY,CAACmB,MAAM,EAAE,QAAQ;MACvC,CAAC;IACH;IAEA,OAAO;MACL4B,eAAe;MACfI;IACF,CAAC;EACH,CAAC,EAAE,CAACpB,WAAW,EAAEI,OAAO,EAAEF,gBAAgB,EAAEP,SAAS,EAAEP,MAAM,CAAC,CAAC;EAE/D,MAAMmC,eAAe,GAAG1D,OAAO,CAAC,MAAM;IAAA,IAAA2D,sBAAA,EAAAC,qBAAA;IACpC,IAAI9B,SAAS,EAAE;MACb,OAAO,EAAE;IACX;IACA,IAAI,CAAAO,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEU,IAAI,MAAKnD,kBAAkB,CAACwD,WAAW,KAAAO,sBAAA,GAAItB,gBAAgB,CAACgB,YAAY,cAAAM,sBAAA,eAA7BA,sBAAA,CAAgC,CAAC,CAAC,EAAE;MACnG,MAAME,UAAU,GAAGrD,wBAAwB,CAAC6B,gBAAgB,CAACgB,YAAY,CAAC,CAAC,CAAC,CAAC;MAC7E,IAAIQ,UAAU,EAAE;QACd,OAAOA,UAAU;MACnB;IACF;IACA,IAAI1B,WAAW,EAAE;MACf,OAAOA,WAAW,CAACsB,IAAI;IACzB;IACA,IAAIpB,gBAAgB,aAAhBA,gBAAgB,gBAAAuB,qBAAA,GAAhBvB,gBAAgB,CAAEyB,GAAG,cAAAF,qBAAA,eAArBA,qBAAA,CAAuBE,GAAG,EAAE;MAC9B,OAAOzD,sBAAsB,CAACgC,gBAAgB,CAACyB,GAAG,CAACA,GAAG,CAAC;IACzD;IAEA,OAAO3C,MAAM,CAAC4C,OAAO;EACvB,CAAC,EAAE,CAAC5C,MAAM,CAAC4C,OAAO,EAAE5B,WAAW,EAAEE,gBAAgB,EAAEP,SAAS,CAAC,CAAC;EAE9D,oBACE/B,KAAA,CAAAyD,aAAA,CAAAzD,KAAA,CAAAiE,QAAA,qBACEjE,KAAA,CAAAyD,aAAA,CAACvD,aAAa;IACZ6C,MAAM,EAAEH,WAAY;IACpBsB,UAAU,EAAEP,eAAgB;IAC5BpC,KAAK,EAAEA,KAAM;IACbC,MAAM,EAAEA,MAAO;IACfE,SAAS,EAAEA,SAAU;IACrBD,YAAY,EAAEA,YAAa;IAC3BM,SAAS,EAAEA;EAAU,CACtB,CAAC,EACDK,WAAW,IAAIf,UAAU,IAAIA,UAAU,CAACe,WAAW,CACpD,CAAC;AAEP,CAAC;AAED,eAAejB,aAAa","ignoreList":[]}
@@ -1,3 +1,3 @@
1
- import EntityDetails, { EntityDetailsLabels, EntityDetailsProps } from './entity-details';
2
- export { EntityDetails, EntityDetailsLabels, EntityDetailsProps };
1
+ import EntityDetails from './entity-details';
2
+ export { EntityDetails };
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["EntityDetails","EntityDetailsLabels","EntityDetailsProps"],"sources":["index.ts"],"sourcesContent":["import EntityDetails, { EntityDetailsLabels, EntityDetailsProps } from './entity-details';\n\nexport { EntityDetails, EntityDetailsLabels, EntityDetailsProps };\n"],"mappings":"AAAA,OAAOA,aAAa,IAAIC,mBAAmB,EAAEC,kBAAkB,QAAQ,kBAAkB;AAEzF,SAASF,aAAa,EAAEC,mBAAmB,EAAEC,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["EntityDetails"],"sources":["index.ts"],"sourcesContent":["import type { EntityDetailsLabels, EntityDetailsProps } from './entity-details';\nimport EntityDetails from './entity-details';\n\nexport { EntityDetails, EntityDetailsLabels, EntityDetailsProps };\n"],"mappings":"AACA,OAAOA,aAAa,MAAM,kBAAkB;AAE5C,SAASA,aAAa","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import React, { useCallback } from 'react';
1
+ import React, { useCallback, useMemo } from 'react';
2
2
  import { HistoryItemView } from '../../ui-components';
3
3
  import { formatTime, useTrustEntity } from '../../utils';
4
4
  import { HistoryListItemIcon } from './history-list-item-icon';
@@ -13,19 +13,21 @@ export const HistoryListItemView = ({
13
13
  testID
14
14
  }) => {
15
15
  var _dateFormatter;
16
+ const identifierId = infoLabelMode === 'entity' ? item.target : undefined;
16
17
  const {
17
- data: entity
18
- } = useTrustEntity(infoLabelMode === 'entity' ? item.target : undefined);
18
+ data: trustEntity
19
+ } = useTrustEntity(identifierId);
19
20
  const label = `${labels.entityTypes[item.entityType]} ${labels.actions[item.action]}`;
20
- let infoLabel;
21
- switch (infoLabelMode) {
22
- case 'entity':
23
- infoLabel = entity === null || entity === void 0 ? void 0 : entity.name;
24
- break;
25
- case 'associatedLabel':
26
- infoLabel = item.name;
27
- break;
28
- }
21
+ const info = useMemo(() => {
22
+ switch (infoLabelMode) {
23
+ case 'entity':
24
+ return trustEntity === null || trustEntity === void 0 ? void 0 : trustEntity.name;
25
+ case 'associatedLabel':
26
+ return item.name;
27
+ case 'none':
28
+ return undefined;
29
+ }
30
+ }, [infoLabelMode, item, trustEntity]);
29
31
  const icon = /*#__PURE__*/React.createElement(HistoryListItemIcon, {
30
32
  item: item
31
33
  });
@@ -35,7 +37,7 @@ export const HistoryListItemView = ({
35
37
  return /*#__PURE__*/React.createElement(HistoryItemView, {
36
38
  first: first,
37
39
  icon: icon,
38
- info: infoLabel,
40
+ info: info,
39
41
  label: label,
40
42
  last: last,
41
43
  onPress: pressHandler,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","HistoryItemView","formatTime","useTrustEntity","HistoryListItemIcon","HistoryListItemView","dateFormatter","first","infoLabelMode","item","labels","last","onPress","testID","_dateFormatter","data","entity","target","undefined","label","entityTypes","entityType","actions","action","infoLabel","name","icon","createElement","pressHandler","info","time","Date","createdDate"],"sources":["history-list-item.tsx"],"sourcesContent":["import { HistoryActionEnum, HistoryEntityTypeEnum, HistoryListItem } from '@procivis/react-native-one-core';\nimport React, { FC, useCallback } from 'react';\n\nimport { HistoryItemView } from '../../ui-components';\nimport { formatTime, useTrustEntity } from '../../utils';\nimport { HistoryListItemIcon } from './history-list-item-icon';\n\nexport type HistoryListItemLabels = {\n actions: { [key in keyof typeof HistoryActionEnum]: string };\n entityTypes: { [key in keyof typeof HistoryEntityTypeEnum]: string };\n};\n\nexport interface HistoryListItemViewProps {\n dateFormatter?: (date: Date) => string;\n first?: boolean;\n infoLabelMode?: 'entity' | 'associatedLabel' | 'none';\n item: HistoryListItem;\n labels: HistoryListItemLabels;\n last?: boolean;\n onPress?: (item: HistoryListItem) => void;\n testID?: string;\n}\n\nexport const HistoryListItemView: FC<HistoryListItemViewProps> = ({\n dateFormatter = formatTime,\n first,\n infoLabelMode = 'entity',\n item,\n labels,\n last,\n onPress,\n testID\n}) => {\n const { data: entity } = useTrustEntity(infoLabelMode === 'entity' ? item.target : undefined);\n\n const label = `${labels.entityTypes[item.entityType]} ${labels.actions[item.action]}`;\n let infoLabel;\n switch (infoLabelMode) {\n case 'entity':\n infoLabel = entity?.name;\n break;\n case 'associatedLabel':\n infoLabel = item.name;\n break;\n }\n const icon = <HistoryListItemIcon item={item} />;\n\n const pressHandler = useCallback(() => {\n onPress?.(item);\n }, [onPress, item]);\n\n return (\n <HistoryItemView\n first={first}\n icon={icon}\n info={infoLabel}\n label={label}\n last={last}\n onPress={pressHandler}\n testID={testID}\n time={dateFormatter(new Date(item.createdDate)) ?? ''}\n />\n );\n};\n"],"mappings":"AACA,OAAOA,KAAK,IAAQC,WAAW,QAAQ,OAAO;AAE9C,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SAASC,UAAU,EAAEC,cAAc,QAAQ,aAAa;AACxD,SAASC,mBAAmB,QAAQ,0BAA0B;AAkB9D,OAAO,MAAMC,mBAAiD,GAAGA,CAAC;EAChEC,aAAa,GAAGJ,UAAU;EAC1BK,KAAK;EACLC,aAAa,GAAG,QAAQ;EACxBC,IAAI;EACJC,MAAM;EACNC,IAAI;EACJC,OAAO;EACPC;AACF,CAAC,KAAK;EAAA,IAAAC,cAAA;EACJ,MAAM;IAAEC,IAAI,EAAEC;EAAO,CAAC,GAAGb,cAAc,CAACK,aAAa,KAAK,QAAQ,GAAGC,IAAI,CAACQ,MAAM,GAAGC,SAAS,CAAC;EAE7F,MAAMC,KAAK,GAAG,GAAGT,MAAM,CAACU,WAAW,CAACX,IAAI,CAACY,UAAU,CAAC,IAAIX,MAAM,CAACY,OAAO,CAACb,IAAI,CAACc,MAAM,CAAC,EAAE;EACrF,IAAIC,SAAS;EACb,QAAQhB,aAAa;IACnB,KAAK,QAAQ;MACXgB,SAAS,GAAGR,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAES,IAAI;MACxB;IACF,KAAK,iBAAiB;MACpBD,SAAS,GAAGf,IAAI,CAACgB,IAAI;MACrB;EACJ;EACA,MAAMC,IAAI,gBAAG3B,KAAA,CAAA4B,aAAA,CAACvB,mBAAmB;IAACK,IAAI,EAAEA;EAAK,CAAE,CAAC;EAEhD,MAAMmB,YAAY,GAAG5B,WAAW,CAAC,MAAM;IACrCY,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAGH,IAAI,CAAC;EACjB,CAAC,EAAE,CAACG,OAAO,EAAEH,IAAI,CAAC,CAAC;EAEnB,oBACEV,KAAA,CAAA4B,aAAA,CAAC1B,eAAe;IACdM,KAAK,EAAEA,KAAM;IACbmB,IAAI,EAAEA,IAAK;IACXG,IAAI,EAAEL,SAAU;IAChBL,KAAK,EAAEA,KAAM;IACbR,IAAI,EAAEA,IAAK;IACXC,OAAO,EAAEgB,YAAa;IACtBf,MAAM,EAAEA,MAAO;IACfiB,IAAI,GAAAhB,cAAA,GAAER,aAAa,CAAC,IAAIyB,IAAI,CAACtB,IAAI,CAACuB,WAAW,CAAC,CAAC,cAAAlB,cAAA,cAAAA,cAAA,GAAI;EAAG,CACvD,CAAC;AAEN,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useMemo","HistoryItemView","formatTime","useTrustEntity","HistoryListItemIcon","HistoryListItemView","dateFormatter","first","infoLabelMode","item","labels","last","onPress","testID","_dateFormatter","identifierId","target","undefined","data","trustEntity","label","entityTypes","entityType","actions","action","info","name","icon","createElement","pressHandler","time","Date","createdDate"],"sources":["history-list-item.tsx"],"sourcesContent":["import { HistoryActionEnum, HistoryEntityTypeEnum, HistoryListItem } from '@procivis/react-native-one-core';\nimport React, { FC, useCallback, useMemo } from 'react';\n\nimport { HistoryItemView } from '../../ui-components';\nimport { formatTime, useTrustEntity } from '../../utils';\nimport { HistoryListItemIcon } from './history-list-item-icon';\n\nexport type HistoryListItemLabels = {\n actions: { [key in keyof typeof HistoryActionEnum]: string };\n entityTypes: { [key in keyof typeof HistoryEntityTypeEnum]: string };\n};\n\nexport interface HistoryListItemViewProps {\n dateFormatter?: (date: Date) => string;\n first?: boolean;\n infoLabelMode?: 'entity' | 'associatedLabel' | 'none';\n item: HistoryListItem;\n labels: HistoryListItemLabels;\n last?: boolean;\n onPress?: (item: HistoryListItem) => void;\n testID?: string;\n}\n\nexport const HistoryListItemView: FC<HistoryListItemViewProps> = ({\n dateFormatter = formatTime,\n first,\n infoLabelMode = 'entity',\n item,\n labels,\n last,\n onPress,\n testID,\n}) => {\n const identifierId = infoLabelMode === 'entity' ? item.target : undefined;\n const { data: trustEntity } = useTrustEntity(identifierId);\n\n const label = `${labels.entityTypes[item.entityType]} ${labels.actions[item.action]}`;\n\n const info = useMemo(() => {\n switch (infoLabelMode) {\n case 'entity':\n return trustEntity?.name;\n case 'associatedLabel':\n return item.name;\n case 'none':\n return undefined;\n }\n }, [infoLabelMode, item, trustEntity]);\n\n const icon = <HistoryListItemIcon item={item} />;\n\n const pressHandler = useCallback(() => {\n onPress?.(item);\n }, [onPress, item]);\n\n return (\n <HistoryItemView\n first={first}\n icon={icon}\n info={info}\n label={label}\n last={last}\n onPress={pressHandler}\n testID={testID}\n time={dateFormatter(new Date(item.createdDate)) ?? ''}\n />\n );\n};\n"],"mappings":"AACA,OAAOA,KAAK,IAAQC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAEvD,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SAASC,UAAU,EAAEC,cAAc,QAAQ,aAAa;AACxD,SAASC,mBAAmB,QAAQ,0BAA0B;AAkB9D,OAAO,MAAMC,mBAAiD,GAAGA,CAAC;EAChEC,aAAa,GAAGJ,UAAU;EAC1BK,KAAK;EACLC,aAAa,GAAG,QAAQ;EACxBC,IAAI;EACJC,MAAM;EACNC,IAAI;EACJC,OAAO;EACPC;AACF,CAAC,KAAK;EAAA,IAAAC,cAAA;EACJ,MAAMC,YAAY,GAAGP,aAAa,KAAK,QAAQ,GAAGC,IAAI,CAACO,MAAM,GAAGC,SAAS;EACzE,MAAM;IAAEC,IAAI,EAAEC;EAAY,CAAC,GAAGhB,cAAc,CAACY,YAAY,CAAC;EAE1D,MAAMK,KAAK,GAAG,GAAGV,MAAM,CAACW,WAAW,CAACZ,IAAI,CAACa,UAAU,CAAC,IAAIZ,MAAM,CAACa,OAAO,CAACd,IAAI,CAACe,MAAM,CAAC,EAAE;EAErF,MAAMC,IAAI,GAAGzB,OAAO,CAAC,MAAM;IACzB,QAAQQ,aAAa;MACnB,KAAK,QAAQ;QACX,OAAOW,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEO,IAAI;MAC1B,KAAK,iBAAiB;QACpB,OAAOjB,IAAI,CAACiB,IAAI;MAClB,KAAK,MAAM;QACT,OAAOT,SAAS;IACpB;EACF,CAAC,EAAE,CAACT,aAAa,EAAEC,IAAI,EAAEU,WAAW,CAAC,CAAC;EAEtC,MAAMQ,IAAI,gBAAG7B,KAAA,CAAA8B,aAAA,CAACxB,mBAAmB;IAACK,IAAI,EAAEA;EAAK,CAAE,CAAC;EAEhD,MAAMoB,YAAY,GAAG9B,WAAW,CAAC,MAAM;IACrCa,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAGH,IAAI,CAAC;EACjB,CAAC,EAAE,CAACG,OAAO,EAAEH,IAAI,CAAC,CAAC;EAEnB,oBACEX,KAAA,CAAA8B,aAAA,CAAC3B,eAAe;IACdM,KAAK,EAAEA,KAAM;IACboB,IAAI,EAAEA,IAAK;IACXF,IAAI,EAAEA,IAAK;IACXL,KAAK,EAAEA,KAAM;IACbT,IAAI,EAAEA,IAAK;IACXC,OAAO,EAAEiB,YAAa;IACtBhB,MAAM,EAAEA,MAAO;IACfiB,IAAI,GAAAhB,cAAA,GAAER,aAAa,CAAC,IAAIyB,IAAI,CAACtB,IAAI,CAACuB,WAAW,CAAC,CAAC,cAAAlB,cAAA,cAAAA,cAAA,GAAI;EAAG,CACvD,CAAC;AAEN,CAAC","ignoreList":[]}
@@ -23,7 +23,7 @@ export const ShareCredential = ({
23
23
  style,
24
24
  testID
25
25
  }) => {
26
- var _credential$issuerDid, _credential$issuer;
26
+ var _credential$issuer;
27
27
  const colorScheme = useAppColorScheme();
28
28
  const {
29
29
  data: credential,
@@ -39,7 +39,6 @@ export const ShareCredential = ({
39
39
  const multipleCredentialsAvailable = selectionOptions.length > 1;
40
40
  const validityState = getValidityState(credential ? {
41
41
  ...credential,
42
- issuerDid: credential === null || credential === void 0 || (_credential$issuerDid = credential.issuerDid) === null || _credential$issuerDid === void 0 ? void 0 : _credential$issuerDid.id,
43
42
  issuer: credential === null || credential === void 0 || (_credential$issuer = credential.issuer) === null || _credential$issuer === void 0 ? void 0 : _credential$issuer.id
44
43
  } : undefined);
45
44
  const invalid = useMemo(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["CredentialStateEnum","React","useMemo","StyleSheet","View","Button","ButtonType","CredentialDetailsCardListItem","Typography","useAppColorScheme","concatTestID","useCoreConfig","useCredentialDetail","getValidityState","ValidityState","shareCredentialCardFromCredential","ShareCredential","allCredentials","credentialId","expanded","labels","lastItem","onHeaderPress","onImagePreview","onSelectCredential","onSelectField","request","selectedCredentialId","selectedFields","style","testID","_credential$issuerDid","_credential$issuer","colorScheme","data","credential","isLoading","config","selectionOptions","applicableCredentials","filter","applicableCredentialId","some","id","state","ACCEPTED","multipleCredentialsAvailable","length","validityState","issuerDid","issuer","undefined","invalid","lvvcIssuanceDate","validityCredentialNbf","Date","footer","Revoked","createElement","styles","notice","backgroundColor","background","align","color","text","preset","revokedCredentialNotice","Suspended","suspendedCredentialNotice","invalidCredentialNotice","multipleCredentialsNotice","onPress","noticeButton","title","multipleCredentialsSelect","type","Secondary","card","attributes","Boolean","onAttributeSelected","borderColor","create","borderRadius","borderWidth","marginBottom","marginHorizontal","padding","marginTop","paddingVertical"],"sources":["share-credential.tsx"],"sourcesContent":["import {\n CredentialListItem,\n CredentialStateEnum,\n PresentationDefinitionField,\n PresentationDefinitionRequestedCredential,\n} from '@procivis/react-native-one-core';\nimport React, { FunctionComponent, useMemo } from 'react';\nimport { ImageSourcePropType, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { Button, ButtonType, CredentialDetailsCardListItem, Typography, useAppColorScheme } from '../../ui-components';\nimport { concatTestID } from '../../utils';\nimport { useCoreConfig } from '../../utils/hooks/core/core-config';\nimport { useCredentialDetail } from '../../utils/hooks/core/credentials';\nimport { getValidityState, ValidityState } from '../../utils/parsers/credential';\nimport { shareCredentialCardFromCredential, ShareCredentialCardLabels } from '../../utils/parsers/credential-sharing';\n\nexport type ShareCredentialLabels = ShareCredentialCardLabels & {\n revokedCredentialNotice: string;\n suspendedCredentialNotice: string;\n invalidCredentialNotice: string;\n multipleCredentialsNotice: string;\n multipleCredentialsSelect: string;\n};\n\nexport const ShareCredential: FunctionComponent<{\n allCredentials: CredentialListItem[];\n credentialId: string;\n expanded?: boolean;\n labels: ShareCredentialLabels;\n lastItem?: boolean;\n onHeaderPress?: (_credentialId?: string) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelectCredential?: () => void;\n onSelectField: (_id: PresentationDefinitionField['id'], _selected: boolean) => void;\n request: PresentationDefinitionRequestedCredential;\n selectedCredentialId?: CredentialListItem['id'];\n selectedFields?: Array<PresentationDefinitionField['id']>;\n style?: StyleProp<ViewStyle>;\n testID: string;\n}> = ({\n allCredentials,\n credentialId,\n expanded,\n labels,\n lastItem,\n onHeaderPress,\n onImagePreview,\n onSelectCredential,\n onSelectField,\n request,\n selectedCredentialId,\n selectedFields,\n style,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n const { data: credential, isLoading } = useCredentialDetail(selectedCredentialId);\n const { data: config } = useCoreConfig();\n\n const selectionOptions = useMemo(\n () =>\n request.applicableCredentials.filter((applicableCredentialId) =>\n allCredentials.some(({ id, state }) => id === applicableCredentialId && state === CredentialStateEnum.ACCEPTED),\n ),\n [allCredentials, request],\n );\n const multipleCredentialsAvailable = selectionOptions.length > 1;\n\n const validityState = getValidityState(\n credential\n ? {\n ...credential,\n issuerDid: credential?.issuerDid?.id,\n issuer: credential?.issuer?.id,\n }\n : undefined,\n );\n\n const invalid = useMemo(() => {\n if (!credential?.lvvcIssuanceDate || !request.validityCredentialNbf) {\n return false;\n }\n return new Date(credential.lvvcIssuanceDate) < new Date(request.validityCredentialNbf);\n }, [credential, request]);\n\n const footer = useMemo(() => {\n if (!expanded) {\n return;\n }\n if (validityState === ValidityState.Revoked) {\n return (\n <View\n style={[styles.notice, { backgroundColor: colorScheme.background }]}\n testID={concatTestID(testID, 'notice.revoked')}>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s/line-height-capped\">\n {labels.revokedCredentialNotice}\n </Typography>\n </View>\n );\n }\n if (validityState === ValidityState.Suspended) {\n return (\n <View\n style={[styles.notice, { backgroundColor: colorScheme.background }]}\n testID={concatTestID(testID, 'notice.suspended')}>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s/line-height-capped\">\n {labels.suspendedCredentialNotice}\n </Typography>\n </View>\n );\n }\n\n if (invalid) {\n return (\n <View\n style={[styles.notice, { backgroundColor: colorScheme.background }]}\n testID={concatTestID(testID, 'notice.invalid')}>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s/line-height-capped\">\n {labels.invalidCredentialNotice}\n </Typography>\n </View>\n );\n }\n\n if (multipleCredentialsAvailable) {\n return (\n <View\n style={[styles.notice, { backgroundColor: colorScheme.background }]}\n testID={concatTestID(testID, 'notice.multiple')}>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s/line-height-capped\">\n {labels.multipleCredentialsNotice}\n </Typography>\n <Button\n onPress={onSelectCredential}\n style={styles.noticeButton}\n testID={concatTestID(testID, 'notice.multiple.button')}\n title={labels.multipleCredentialsSelect}\n type={ButtonType.Secondary}\n />\n </View>\n );\n }\n }, [colorScheme, expanded, invalid, labels, multipleCredentialsAvailable, onSelectCredential, testID, validityState]);\n\n if (isLoading || !config) {\n return null;\n }\n\n const { card, attributes } = shareCredentialCardFromCredential(\n credential,\n invalid,\n Boolean(expanded),\n multipleCredentialsAvailable,\n request,\n selectedFields,\n config,\n testID,\n labels,\n );\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n credentialId,\n onHeaderPress,\n }}\n expanded={expanded}\n footer={footer}\n lastItem={lastItem}\n onAttributeSelected={onSelectField}\n onImagePreview={onImagePreview}\n style={[styles.credential, { borderColor: colorScheme.background }, style]}\n testID={testID}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n credential: {\n borderRadius: 10,\n borderWidth: 1,\n marginBottom: 8,\n },\n notice: {\n marginBottom: 22,\n marginHorizontal: 12,\n padding: 12,\n },\n noticeButton: {\n marginTop: 24,\n paddingVertical: 11,\n },\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CredentialStateEnum","React","useMemo","StyleSheet","View","Button","ButtonType","CredentialDetailsCardListItem","Typography","useAppColorScheme","concatTestID","useCoreConfig","useCredentialDetail","getValidityState","ValidityState","shareCredentialCardFromCredential","ShareCredential","allCredentials","credentialId","expanded","labels","lastItem","onHeaderPress","onImagePreview","onSelectCredential","onSelectField","request","selectedCredentialId","selectedFields","style","testID","_credential$issuer","colorScheme","data","credential","isLoading","config","selectionOptions","applicableCredentials","filter","applicableCredentialId","some","id","state","ACCEPTED","multipleCredentialsAvailable","length","validityState","issuer","undefined","invalid","lvvcIssuanceDate","validityCredentialNbf","Date","footer","Revoked","createElement","styles","notice","backgroundColor","background","align","color","text","preset","revokedCredentialNotice","Suspended","suspendedCredentialNotice","invalidCredentialNotice","multipleCredentialsNotice","onPress","noticeButton","title","multipleCredentialsSelect","type","Secondary","card","attributes","Boolean","onAttributeSelected","borderColor","create","borderRadius","borderWidth","marginBottom","marginHorizontal","padding","marginTop","paddingVertical"],"sources":["share-credential.tsx"],"sourcesContent":["import {\n CredentialListItem,\n CredentialStateEnum,\n PresentationDefinitionField,\n PresentationDefinitionRequestedCredential,\n} from '@procivis/react-native-one-core';\nimport React, { FunctionComponent, useMemo } from 'react';\nimport { ImageSourcePropType, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { Button, ButtonType, CredentialDetailsCardListItem, Typography, useAppColorScheme } from '../../ui-components';\nimport { concatTestID } from '../../utils';\nimport { useCoreConfig } from '../../utils/hooks/core/core-config';\nimport { useCredentialDetail } from '../../utils/hooks/core/credentials';\nimport { getValidityState, ValidityState } from '../../utils/parsers/credential';\nimport { shareCredentialCardFromCredential, ShareCredentialCardLabels } from '../../utils/parsers/credential-sharing';\n\nexport type ShareCredentialLabels = ShareCredentialCardLabels & {\n revokedCredentialNotice: string;\n suspendedCredentialNotice: string;\n invalidCredentialNotice: string;\n multipleCredentialsNotice: string;\n multipleCredentialsSelect: string;\n};\n\nexport const ShareCredential: FunctionComponent<{\n allCredentials: CredentialListItem[];\n credentialId: string;\n expanded?: boolean;\n labels: ShareCredentialLabels;\n lastItem?: boolean;\n onHeaderPress?: (_credentialId?: string) => void;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onSelectCredential?: () => void;\n onSelectField: (_id: PresentationDefinitionField['id'], _selected: boolean) => void;\n request: PresentationDefinitionRequestedCredential;\n selectedCredentialId?: CredentialListItem['id'];\n selectedFields?: Array<PresentationDefinitionField['id']>;\n style?: StyleProp<ViewStyle>;\n testID: string;\n}> = ({\n allCredentials,\n credentialId,\n expanded,\n labels,\n lastItem,\n onHeaderPress,\n onImagePreview,\n onSelectCredential,\n onSelectField,\n request,\n selectedCredentialId,\n selectedFields,\n style,\n testID,\n}) => {\n const colorScheme = useAppColorScheme();\n const { data: credential, isLoading } = useCredentialDetail(selectedCredentialId);\n const { data: config } = useCoreConfig();\n\n const selectionOptions = useMemo(\n () =>\n request.applicableCredentials.filter((applicableCredentialId) =>\n allCredentials.some(({ id, state }) => id === applicableCredentialId && state === CredentialStateEnum.ACCEPTED),\n ),\n [allCredentials, request],\n );\n const multipleCredentialsAvailable = selectionOptions.length > 1;\n\n const validityState = getValidityState(\n credential\n ? {\n ...credential,\n issuer: credential?.issuer?.id,\n }\n : undefined,\n );\n\n const invalid = useMemo(() => {\n if (!credential?.lvvcIssuanceDate || !request.validityCredentialNbf) {\n return false;\n }\n return new Date(credential.lvvcIssuanceDate) < new Date(request.validityCredentialNbf);\n }, [credential, request]);\n\n const footer = useMemo(() => {\n if (!expanded) {\n return;\n }\n if (validityState === ValidityState.Revoked) {\n return (\n <View\n style={[styles.notice, { backgroundColor: colorScheme.background }]}\n testID={concatTestID(testID, 'notice.revoked')}>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s/line-height-capped\">\n {labels.revokedCredentialNotice}\n </Typography>\n </View>\n );\n }\n if (validityState === ValidityState.Suspended) {\n return (\n <View\n style={[styles.notice, { backgroundColor: colorScheme.background }]}\n testID={concatTestID(testID, 'notice.suspended')}>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s/line-height-capped\">\n {labels.suspendedCredentialNotice}\n </Typography>\n </View>\n );\n }\n\n if (invalid) {\n return (\n <View\n style={[styles.notice, { backgroundColor: colorScheme.background }]}\n testID={concatTestID(testID, 'notice.invalid')}>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s/line-height-capped\">\n {labels.invalidCredentialNotice}\n </Typography>\n </View>\n );\n }\n\n if (multipleCredentialsAvailable) {\n return (\n <View\n style={[styles.notice, { backgroundColor: colorScheme.background }]}\n testID={concatTestID(testID, 'notice.multiple')}>\n <Typography align=\"center\" color={colorScheme.text} preset=\"s/line-height-capped\">\n {labels.multipleCredentialsNotice}\n </Typography>\n <Button\n onPress={onSelectCredential}\n style={styles.noticeButton}\n testID={concatTestID(testID, 'notice.multiple.button')}\n title={labels.multipleCredentialsSelect}\n type={ButtonType.Secondary}\n />\n </View>\n );\n }\n }, [colorScheme, expanded, invalid, labels, multipleCredentialsAvailable, onSelectCredential, testID, validityState]);\n\n if (isLoading || !config) {\n return null;\n }\n\n const { card, attributes } = shareCredentialCardFromCredential(\n credential,\n invalid,\n Boolean(expanded),\n multipleCredentialsAvailable,\n request,\n selectedFields,\n config,\n testID,\n labels,\n );\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n credentialId,\n onHeaderPress,\n }}\n expanded={expanded}\n footer={footer}\n lastItem={lastItem}\n onAttributeSelected={onSelectField}\n onImagePreview={onImagePreview}\n style={[styles.credential, { borderColor: colorScheme.background }, style]}\n testID={testID}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n credential: {\n borderRadius: 10,\n borderWidth: 1,\n marginBottom: 8,\n },\n notice: {\n marginBottom: 22,\n marginHorizontal: 12,\n padding: 12,\n },\n noticeButton: {\n marginTop: 24,\n paddingVertical: 11,\n },\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,3 @@
1
- import BlurView, { BlurViewProps } from './blur-view';
2
- export { BlurView, BlurViewProps };
1
+ import BlurView from './blur-view';
2
+ export { BlurView };
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BlurView","BlurViewProps"],"sources":["index.ts"],"sourcesContent":["import BlurView, { BlurViewProps } from './blur-view';\n\nexport { BlurView, BlurViewProps };\n"],"mappings":"AAAA,OAAOA,QAAQ,IAAIC,aAAa,QAAQ,aAAa;AAErD,SAASD,QAAQ,EAAEC,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["BlurView"],"sources":["index.ts"],"sourcesContent":["import type { BlurViewProps } from './blur-view';\nimport BlurView from './blur-view';\n\nexport { BlurView, BlurViewProps };\n"],"mappings":"AACA,OAAOA,QAAQ,MAAM,aAAa;AAElC,SAASA,QAAQ","ignoreList":[]}
@@ -2,7 +2,7 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
2
2
  import React, { useCallback, useEffect, useMemo, useState } from 'react';
3
3
  import { StyleSheet, View } from 'react-native';
4
4
  import Animated, { cancelAnimation, Easing, runOnJS, useAnimatedStyle, useDerivedValue, useSharedValue, withTiming } from 'react-native-reanimated';
5
- import { TouchableWithoutFeedback } from '../accessibility/accessibilityHistoryWrappers';
5
+ import { TouchableOpacity } from '../accessibility/accessibilityHistoryWrappers';
6
6
  import { Typography } from '../text';
7
7
  import { useAppColorScheme } from '../theme';
8
8
  const Content = ({
@@ -144,13 +144,14 @@ const HoldButtonLayouted = ({
144
144
  textColor: colorScheme.accentText
145
145
  }, contentProps)))), /*#__PURE__*/React.createElement(View, {
146
146
  style: styles.pressableLayer
147
- }, /*#__PURE__*/React.createElement(TouchableWithoutFeedback, _extends({
147
+ }, /*#__PURE__*/React.createElement(TouchableOpacity, _extends({
148
148
  accessibilityRole: "button",
149
149
  ref: ref,
150
150
  disabled: isFinished || disabled,
151
151
  onLongPress: onLongPress,
152
152
  onPressIn: isFinished ? undefined : onPressIn,
153
- onPressOut: isFinished ? undefined : onPressOut
153
+ onPressOut: isFinished ? undefined : onPressOut,
154
+ activeOpacity: 1
154
155
  }, props), /*#__PURE__*/React.createElement(View, {
155
156
  style: {
156
157
  width,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","StyleSheet","View","Animated","cancelAnimation","Easing","runOnJS","useAnimatedStyle","useDerivedValue","useSharedValue","withTiming","TouchableWithoutFeedback","Typography","useAppColorScheme","Content","title","subtitlePrefix","subtitleSuffix","width","height","textColor","progress","holdTimeoutSecs","disabled","nums","Array","from","length","map","_","index","subtitleHeight","setSubtitleHeight","onSubtitleLayout","nativeEvent","layout","translateY","value","movingUpStyle","transform","createElement","style","styles","contentWrapper","contentDisabled","pointerEvents","color","numberOfLines","subtitle","subtitleDisabled","onLayout","preset","subtitleSecsWrapper","subtitleSecs","val","key","HoldButtonLayouted","onFinished","ref","props","colorScheme","isFinished","setFinished","onLongPress","onPressIn","holdTimeout","duration","easing","linear","finished","onPressOut","translateX","movingRightStyle","movingLeftStyle","contentProps","Fragment","_extends","accent","movingLayer","backgroundColor","accentText","pressableLayer","accessibilityRole","undefined","HoldButton","forwardRef","setLayout","onContainerLayout","container","white","background","borderColor","displayName","create","borderRadius","overflow","opacity","alignItems","justifyContent","paddingBottom","paddingHorizontal","paddingTop","borderWidth","position","flexDirection"],"sources":["hold-button.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { ColorValue, LayoutChangeEvent, StyleSheet, TouchableWithoutFeedbackProps, View } from 'react-native';\nimport Animated, {\n cancelAnimation,\n Easing,\n runOnJS,\n SharedValue,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { TouchableWithoutFeedback, TouchableWithoutFeedbackRef } from '../accessibility/accessibilityHistoryWrappers';\nimport { Typography } from '../text';\nimport { useAppColorScheme } from '../theme';\n\nexport interface HoldButtonProps\n extends Omit<\n TouchableWithoutFeedbackProps,\n 'children' | 'onLayout' | 'onPress' | 'onLongPress' | 'onPressIn' | 'onPressOut'\n > {\n title: string;\n subtitlePrefix: string;\n subtitleSuffix: string;\n holdTimeoutSecs?: number;\n onFinished: () => void;\n}\n\ninterface ContentProps {\n title: string;\n subtitlePrefix: string;\n subtitleSuffix: string;\n width: number;\n height: number;\n textColor: ColorValue;\n progress: SharedValue<number>;\n holdTimeoutSecs: number;\n disabled?: boolean;\n}\n\nconst Content = ({\n title,\n subtitlePrefix,\n subtitleSuffix,\n width,\n height,\n textColor,\n progress,\n holdTimeoutSecs,\n disabled,\n}: ContentProps) => {\n const nums = useMemo(\n () => Array.from({ length: holdTimeoutSecs + 1 }).map((_, index) => holdTimeoutSecs - index),\n [holdTimeoutSecs],\n );\n\n const [subtitleHeight, setSubtitleHeight] = useState<number>(0);\n const onSubtitleLayout = useCallback(({ nativeEvent }: LayoutChangeEvent) => {\n setSubtitleHeight(nativeEvent.layout.height);\n }, []);\n\n const translateY = useDerivedValue(\n () => progress.value * subtitleHeight * holdTimeoutSecs,\n [subtitleHeight, holdTimeoutSecs],\n );\n const movingUpStyle = useAnimatedStyle(() => ({\n transform: [{ translateY: -translateY.value }],\n }), [translateY]);\n\n return (\n <View style={[styles.contentWrapper, disabled && styles.contentDisabled, { width, height }]} pointerEvents=\"none\">\n <Typography color={textColor} numberOfLines={1}>\n {title}\n </Typography>\n\n <View style={[styles.subtitle, disabled && styles.subtitleDisabled]}>\n <Typography onLayout={onSubtitleLayout} preset=\"s/line-height-capped\" color={textColor} numberOfLines={1}>\n {subtitlePrefix}\n </Typography>\n <View style={[styles.subtitleSecsWrapper, { height: subtitleHeight }]}>\n <Animated.View style={[styles.subtitleSecs, movingUpStyle]}>\n {nums.map((val) => (\n <Typography key={val} preset=\"s/line-height-capped\" color={textColor} numberOfLines={1}>\n {val}\n </Typography>\n ))}\n </Animated.View>\n </View>\n <Typography preset=\"s/line-height-capped\" color={textColor} numberOfLines={1}>\n {subtitleSuffix}\n </Typography>\n </View>\n </View>\n );\n};\n\ninterface HoldButtonLayoutedProps extends Omit<HoldButtonProps, 'style'> {\n ref: React.ForwardedRef<TouchableWithoutFeedbackRef>;\n width: number;\n height: number;\n}\n\nconst HoldButtonLayouted = ({\n title,\n subtitlePrefix,\n subtitleSuffix,\n onFinished,\n holdTimeoutSecs = 3,\n width,\n height,\n disabled,\n ref,\n ...props\n}: HoldButtonLayoutedProps) => {\n const colorScheme = useAppColorScheme();\n\n const [isFinished, setFinished] = useState(false);\n useEffect(() => {\n if (isFinished) {\n onFinished();\n }\n }, [isFinished, onFinished]);\n\n const progress = useSharedValue(0);\n\n const onLongPress = useCallback(() => {\n // Fix for detox bug https://github.com/wix/Detox/issues/4754\n if (isFinished || progress.value !== 0) {\n return;\n }\n setFinished(true);\n }, [progress, isFinished]);\n\n const onPressIn = useCallback(() => {\n const holdTimeout = holdTimeoutSecs * 1000;\n\n // start moving forward\n progress.value = withTiming(\n 1,\n {\n duration: (1 - progress.value) * holdTimeout,\n easing: Easing.linear,\n },\n (finished) => {\n if (finished) {\n runOnJS(setFinished)(true);\n } else {\n // start moving back\n progress.value = withTiming(0, {\n duration: progress.value * holdTimeout,\n easing: Easing.linear,\n });\n }\n },\n );\n }, [holdTimeoutSecs, progress]);\n\n const onPressOut = useCallback(() => cancelAnimation(progress), [progress]);\n\n const translateX = useDerivedValue(() => progress.value * width, [width]);\n const movingRightStyle = useAnimatedStyle(() => ({\n transform: [{ translateX: translateX.value }],\n }), [translateX]);\n const movingLeftStyle = useAnimatedStyle(() => ({\n transform: [{ translateX: -translateX.value }],\n }), [translateX]);\n\n const contentProps = useMemo(\n () => ({ title, subtitlePrefix, subtitleSuffix, progress, holdTimeoutSecs, width, height }),\n [title, subtitlePrefix, subtitleSuffix, progress, holdTimeoutSecs, width, height],\n );\n\n return (\n <>\n <Content textColor={colorScheme.accent} disabled={disabled} {...contentProps} />\n {!disabled && (\n <Animated.View style={[styles.movingLayer, { backgroundColor: colorScheme.accent }, movingRightStyle]}>\n <Animated.View style={movingLeftStyle}>\n <Content textColor={colorScheme.accentText} {...contentProps} />\n </Animated.View>\n </Animated.View>\n )}\n <View style={styles.pressableLayer}>\n <TouchableWithoutFeedback\n accessibilityRole=\"button\"\n ref={ref}\n disabled={isFinished || disabled}\n onLongPress={onLongPress}\n onPressIn={isFinished ? undefined : onPressIn}\n onPressOut={isFinished ? undefined : onPressOut}\n {...props}>\n <View style={{ width, height }} />\n </TouchableWithoutFeedback>\n </View>\n </>\n );\n};\n\n/**\n * Press and hold button component\n *\n * follows design: https://www.figma.com/design/cCmAyBQrQWCQZuDi85pJfe/Procivis-One-Wallet-Developments-2025?node-id=1-871\n */\nconst HoldButton = React.forwardRef<TouchableWithoutFeedbackRef, HoldButtonProps>(\n ({ style, disabled, ...props }, ref) => {\n const colorScheme = useAppColorScheme();\n\n const [layout, setLayout] = useState<{ width: number; height: number }>();\n const onContainerLayout = useCallback(({ nativeEvent }: LayoutChangeEvent) => {\n setLayout({ width: nativeEvent.layout.width, height: nativeEvent.layout.height });\n }, []);\n\n return (\n <View\n onLayout={onContainerLayout}\n style={[\n styles.container,\n disabled && styles.disabled,\n {\n backgroundColor: disabled ? colorScheme.white : colorScheme.background,\n borderColor: colorScheme.background,\n },\n style,\n ]}>\n {layout && <HoldButtonLayouted ref={ref} disabled={disabled} {...props} {...layout} />}\n </View>\n );\n },\n);\n\nHoldButton.displayName = 'HoldButton';\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 12,\n height: 68,\n overflow: 'hidden',\n },\n contentDisabled: {\n opacity: 0.4,\n },\n contentWrapper: {\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingBottom: 16,\n paddingHorizontal: 24,\n paddingTop: 12,\n },\n disabled: {\n borderWidth: 1,\n },\n movingLayer: {\n overflow: 'hidden',\n position: 'absolute',\n },\n pressableLayer: {\n position: 'absolute',\n },\n subtitle: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n opacity: 0.8,\n },\n subtitleDisabled: {\n opacity: 1,\n },\n subtitleSecs: {\n alignItems: 'center',\n },\n subtitleSecsWrapper: {\n overflow: 'hidden',\n },\n});\n\nexport default HoldButton;\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AACxE,SAAwCC,UAAU,EAAiCC,IAAI,QAAQ,cAAc;AAC7G,OAAOC,QAAQ,IACbC,eAAe,EACfC,MAAM,EACNC,OAAO,EAEPC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,EACdC,UAAU,QACL,yBAAyB;AAEhC,SAASC,wBAAwB,QAAqC,+CAA+C;AACrH,SAASC,UAAU,QAAQ,SAAS;AACpC,SAASC,iBAAiB,QAAQ,UAAU;AA0B5C,MAAMC,OAAO,GAAGA,CAAC;EACfC,KAAK;EACLC,cAAc;EACdC,cAAc;EACdC,KAAK;EACLC,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,eAAe;EACfC;AACY,CAAC,KAAK;EAClB,MAAMC,IAAI,GAAGzB,OAAO,CAClB,MAAM0B,KAAK,CAACC,IAAI,CAAC;IAAEC,MAAM,EAAEL,eAAe,GAAG;EAAE,CAAC,CAAC,CAACM,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,KAAKR,eAAe,GAAGQ,KAAK,CAAC,EAC5F,CAACR,eAAe,CAClB,CAAC;EAED,MAAM,CAACS,cAAc,EAAEC,iBAAiB,CAAC,GAAGhC,QAAQ,CAAS,CAAC,CAAC;EAC/D,MAAMiC,gBAAgB,GAAGpC,WAAW,CAAC,CAAC;IAAEqC;EAA+B,CAAC,KAAK;IAC3EF,iBAAiB,CAACE,WAAW,CAACC,MAAM,CAAChB,MAAM,CAAC;EAC9C,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMiB,UAAU,GAAG5B,eAAe,CAChC,MAAMa,QAAQ,CAACgB,KAAK,GAAGN,cAAc,GAAGT,eAAe,EACvD,CAACS,cAAc,EAAET,eAAe,CAClC,CAAC;EACD,MAAMgB,aAAa,GAAG/B,gBAAgB,CAAC,OAAO;IAC5CgC,SAAS,EAAE,CAAC;MAAEH,UAAU,EAAE,CAACA,UAAU,CAACC;IAAM,CAAC;EAC/C,CAAC,CAAC,EAAE,CAACD,UAAU,CAAC,CAAC;EAEjB,oBACExC,KAAA,CAAA4C,aAAA,CAACtC,IAAI;IAACuC,KAAK,EAAE,CAACC,MAAM,CAACC,cAAc,EAAEpB,QAAQ,IAAImB,MAAM,CAACE,eAAe,EAAE;MAAE1B,KAAK;MAAEC;IAAO,CAAC,CAAE;IAAC0B,aAAa,EAAC;EAAM,gBAC/GjD,KAAA,CAAA4C,aAAA,CAAC5B,UAAU;IAACkC,KAAK,EAAE1B,SAAU;IAAC2B,aAAa,EAAE;EAAE,GAC5ChC,KACS,CAAC,eAEbnB,KAAA,CAAA4C,aAAA,CAACtC,IAAI;IAACuC,KAAK,EAAE,CAACC,MAAM,CAACM,QAAQ,EAAEzB,QAAQ,IAAImB,MAAM,CAACO,gBAAgB;EAAE,gBAClErD,KAAA,CAAA4C,aAAA,CAAC5B,UAAU;IAACsC,QAAQ,EAAEjB,gBAAiB;IAACkB,MAAM,EAAC,sBAAsB;IAACL,KAAK,EAAE1B,SAAU;IAAC2B,aAAa,EAAE;EAAE,GACtG/B,cACS,CAAC,eACbpB,KAAA,CAAA4C,aAAA,CAACtC,IAAI;IAACuC,KAAK,EAAE,CAACC,MAAM,CAACU,mBAAmB,EAAE;MAAEjC,MAAM,EAAEY;IAAe,CAAC;EAAE,gBACpEnC,KAAA,CAAA4C,aAAA,CAACrC,QAAQ,CAACD,IAAI;IAACuC,KAAK,EAAE,CAACC,MAAM,CAACW,YAAY,EAAEf,aAAa;EAAE,GACxDd,IAAI,CAACI,GAAG,CAAE0B,GAAG,iBACZ1D,KAAA,CAAA4C,aAAA,CAAC5B,UAAU;IAAC2C,GAAG,EAAED,GAAI;IAACH,MAAM,EAAC,sBAAsB;IAACL,KAAK,EAAE1B,SAAU;IAAC2B,aAAa,EAAE;EAAE,GACpFO,GACS,CACb,CACY,CACX,CAAC,eACP1D,KAAA,CAAA4C,aAAA,CAAC5B,UAAU;IAACuC,MAAM,EAAC,sBAAsB;IAACL,KAAK,EAAE1B,SAAU;IAAC2B,aAAa,EAAE;EAAE,GAC1E9B,cACS,CACR,CACF,CAAC;AAEX,CAAC;AAQD,MAAMuC,kBAAkB,GAAGA,CAAC;EAC1BzC,KAAK;EACLC,cAAc;EACdC,cAAc;EACdwC,UAAU;EACVnC,eAAe,GAAG,CAAC;EACnBJ,KAAK;EACLC,MAAM;EACNI,QAAQ;EACRmC,GAAG;EACH,GAAGC;AACoB,CAAC,KAAK;EAC7B,MAAMC,WAAW,GAAG/C,iBAAiB,CAAC,CAAC;EAEvC,MAAM,CAACgD,UAAU,EAAEC,WAAW,CAAC,GAAG9D,QAAQ,CAAC,KAAK,CAAC;EACjDF,SAAS,CAAC,MAAM;IACd,IAAI+D,UAAU,EAAE;MACdJ,UAAU,CAAC,CAAC;IACd;EACF,CAAC,EAAE,CAACI,UAAU,EAAEJ,UAAU,CAAC,CAAC;EAE5B,MAAMpC,QAAQ,GAAGZ,cAAc,CAAC,CAAC,CAAC;EAElC,MAAMsD,WAAW,GAAGlE,WAAW,CAAC,MAAM;IACpC;IACA,IAAIgE,UAAU,IAAIxC,QAAQ,CAACgB,KAAK,KAAK,CAAC,EAAE;MACtC;IACF;IACAyB,WAAW,CAAC,IAAI,CAAC;EACnB,CAAC,EAAE,CAACzC,QAAQ,EAAEwC,UAAU,CAAC,CAAC;EAE1B,MAAMG,SAAS,GAAGnE,WAAW,CAAC,MAAM;IAClC,MAAMoE,WAAW,GAAG3C,eAAe,GAAG,IAAI;;IAE1C;IACAD,QAAQ,CAACgB,KAAK,GAAG3B,UAAU,CACzB,CAAC,EACD;MACEwD,QAAQ,EAAE,CAAC,CAAC,GAAG7C,QAAQ,CAACgB,KAAK,IAAI4B,WAAW;MAC5CE,MAAM,EAAE9D,MAAM,CAAC+D;IACjB,CAAC,EACAC,QAAQ,IAAK;MACZ,IAAIA,QAAQ,EAAE;QACZ/D,OAAO,CAACwD,WAAW,CAAC,CAAC,IAAI,CAAC;MAC5B,CAAC,MAAM;QACL;QACAzC,QAAQ,CAACgB,KAAK,GAAG3B,UAAU,CAAC,CAAC,EAAE;UAC7BwD,QAAQ,EAAE7C,QAAQ,CAACgB,KAAK,GAAG4B,WAAW;UACtCE,MAAM,EAAE9D,MAAM,CAAC+D;QACjB,CAAC,CAAC;MACJ;IACF,CACF,CAAC;EACH,CAAC,EAAE,CAAC9C,eAAe,EAAED,QAAQ,CAAC,CAAC;EAE/B,MAAMiD,UAAU,GAAGzE,WAAW,CAAC,MAAMO,eAAe,CAACiB,QAAQ,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAE3E,MAAMkD,UAAU,GAAG/D,eAAe,CAAC,MAAMa,QAAQ,CAACgB,KAAK,GAAGnB,KAAK,EAAE,CAACA,KAAK,CAAC,CAAC;EACzE,MAAMsD,gBAAgB,GAAGjE,gBAAgB,CAAC,OAAO;IAC/CgC,SAAS,EAAE,CAAC;MAAEgC,UAAU,EAAEA,UAAU,CAAClC;IAAM,CAAC;EAC9C,CAAC,CAAC,EAAE,CAACkC,UAAU,CAAC,CAAC;EACjB,MAAME,eAAe,GAAGlE,gBAAgB,CAAC,OAAO;IAC9CgC,SAAS,EAAE,CAAC;MAAEgC,UAAU,EAAE,CAACA,UAAU,CAAClC;IAAM,CAAC;EAC/C,CAAC,CAAC,EAAE,CAACkC,UAAU,CAAC,CAAC;EAEjB,MAAMG,YAAY,GAAG3E,OAAO,CAC1B,OAAO;IAAEgB,KAAK;IAAEC,cAAc;IAAEC,cAAc;IAAEI,QAAQ;IAAEC,eAAe;IAAEJ,KAAK;IAAEC;EAAO,CAAC,CAAC,EAC3F,CAACJ,KAAK,EAAEC,cAAc,EAAEC,cAAc,EAAEI,QAAQ,EAAEC,eAAe,EAAEJ,KAAK,EAAEC,MAAM,CAClF,CAAC;EAED,oBACEvB,KAAA,CAAA4C,aAAA,CAAA5C,KAAA,CAAA+E,QAAA,qBACE/E,KAAA,CAAA4C,aAAA,CAAC1B,OAAO,EAAA8D,QAAA;IAACxD,SAAS,EAAEwC,WAAW,CAACiB,MAAO;IAACtD,QAAQ,EAAEA;EAAS,GAAKmD,YAAY,CAAG,CAAC,EAC/E,CAACnD,QAAQ,iBACR3B,KAAA,CAAA4C,aAAA,CAACrC,QAAQ,CAACD,IAAI;IAACuC,KAAK,EAAE,CAACC,MAAM,CAACoC,WAAW,EAAE;MAAEC,eAAe,EAAEnB,WAAW,CAACiB;IAAO,CAAC,EAAEL,gBAAgB;EAAE,gBACpG5E,KAAA,CAAA4C,aAAA,CAACrC,QAAQ,CAACD,IAAI;IAACuC,KAAK,EAAEgC;EAAgB,gBACpC7E,KAAA,CAAA4C,aAAA,CAAC1B,OAAO,EAAA8D,QAAA;IAACxD,SAAS,EAAEwC,WAAW,CAACoB;EAAW,GAAKN,YAAY,CAAG,CAClD,CACF,CAChB,eACD9E,KAAA,CAAA4C,aAAA,CAACtC,IAAI;IAACuC,KAAK,EAAEC,MAAM,CAACuC;EAAe,gBACjCrF,KAAA,CAAA4C,aAAA,CAAC7B,wBAAwB,EAAAiE,QAAA;IACvBM,iBAAiB,EAAC,QAAQ;IAC1BxB,GAAG,EAAEA,GAAI;IACTnC,QAAQ,EAAEsC,UAAU,IAAItC,QAAS;IACjCwC,WAAW,EAAEA,WAAY;IACzBC,SAAS,EAAEH,UAAU,GAAGsB,SAAS,GAAGnB,SAAU;IAC9CM,UAAU,EAAET,UAAU,GAAGsB,SAAS,GAAGb;EAAW,GAC5CX,KAAK,gBACT/D,KAAA,CAAA4C,aAAA,CAACtC,IAAI;IAACuC,KAAK,EAAE;MAAEvB,KAAK;MAAEC;IAAO;EAAE,CAAE,CACT,CACtB,CACN,CAAC;AAEP,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMiE,UAAU,gBAAGxF,KAAK,CAACyF,UAAU,CACjC,CAAC;EAAE5C,KAAK;EAAElB,QAAQ;EAAE,GAAGoC;AAAM,CAAC,EAAED,GAAG,KAAK;EACtC,MAAME,WAAW,GAAG/C,iBAAiB,CAAC,CAAC;EAEvC,MAAM,CAACsB,MAAM,EAAEmD,SAAS,CAAC,GAAGtF,QAAQ,CAAoC,CAAC;EACzE,MAAMuF,iBAAiB,GAAG1F,WAAW,CAAC,CAAC;IAAEqC;EAA+B,CAAC,KAAK;IAC5EoD,SAAS,CAAC;MAAEpE,KAAK,EAAEgB,WAAW,CAACC,MAAM,CAACjB,KAAK;MAAEC,MAAM,EAAEe,WAAW,CAACC,MAAM,CAAChB;IAAO,CAAC,CAAC;EACnF,CAAC,EAAE,EAAE,CAAC;EAEN,oBACEvB,KAAA,CAAA4C,aAAA,CAACtC,IAAI;IACHgD,QAAQ,EAAEqC,iBAAkB;IAC5B9C,KAAK,EAAE,CACLC,MAAM,CAAC8C,SAAS,EAChBjE,QAAQ,IAAImB,MAAM,CAACnB,QAAQ,EAC3B;MACEwD,eAAe,EAAExD,QAAQ,GAAGqC,WAAW,CAAC6B,KAAK,GAAG7B,WAAW,CAAC8B,UAAU;MACtEC,WAAW,EAAE/B,WAAW,CAAC8B;IAC3B,CAAC,EACDjD,KAAK;EACL,GACDN,MAAM,iBAAIvC,KAAA,CAAA4C,aAAA,CAACgB,kBAAkB,EAAAoB,QAAA;IAAClB,GAAG,EAAEA,GAAI;IAACnC,QAAQ,EAAEA;EAAS,GAAKoC,KAAK,EAAMxB,MAAM,CAAG,CACjF,CAAC;AAEX,CACF,CAAC;AAEDiD,UAAU,CAACQ,WAAW,GAAG,YAAY;AAErC,MAAMlD,MAAM,GAAGzC,UAAU,CAAC4F,MAAM,CAAC;EAC/BL,SAAS,EAAE;IACTM,YAAY,EAAE,EAAE;IAChB3E,MAAM,EAAE,EAAE;IACV4E,QAAQ,EAAE;EACZ,CAAC;EACDnD,eAAe,EAAE;IACfoD,OAAO,EAAE;EACX,CAAC;EACDrD,cAAc,EAAE;IACdsD,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,eAAe;IAC/BC,aAAa,EAAE,EAAE;IACjBC,iBAAiB,EAAE,EAAE;IACrBC,UAAU,EAAE;EACd,CAAC;EACD9E,QAAQ,EAAE;IACR+E,WAAW,EAAE;EACf,CAAC;EACDxB,WAAW,EAAE;IACXiB,QAAQ,EAAE,QAAQ;IAClBQ,QAAQ,EAAE;EACZ,CAAC;EACDtB,cAAc,EAAE;IACdsB,QAAQ,EAAE;EACZ,CAAC;EACDvD,QAAQ,EAAE;IACRiD,UAAU,EAAE,UAAU;IACtBO,aAAa,EAAE,KAAK;IACpBR,OAAO,EAAE;EACX,CAAC;EACD/C,gBAAgB,EAAE;IAChB+C,OAAO,EAAE;EACX,CAAC;EACD3C,YAAY,EAAE;IACZ4C,UAAU,EAAE;EACd,CAAC;EACD7C,mBAAmB,EAAE;IACnB2C,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAEF,eAAeX,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","StyleSheet","View","Animated","cancelAnimation","Easing","runOnJS","useAnimatedStyle","useDerivedValue","useSharedValue","withTiming","TouchableOpacity","Typography","useAppColorScheme","Content","title","subtitlePrefix","subtitleSuffix","width","height","textColor","progress","holdTimeoutSecs","disabled","nums","Array","from","length","map","_","index","subtitleHeight","setSubtitleHeight","onSubtitleLayout","nativeEvent","layout","translateY","value","movingUpStyle","transform","createElement","style","styles","contentWrapper","contentDisabled","pointerEvents","color","numberOfLines","subtitle","subtitleDisabled","onLayout","preset","subtitleSecsWrapper","subtitleSecs","val","key","HoldButtonLayouted","onFinished","ref","props","colorScheme","isFinished","setFinished","onLongPress","onPressIn","holdTimeout","duration","easing","linear","finished","onPressOut","translateX","movingRightStyle","movingLeftStyle","contentProps","Fragment","_extends","accent","movingLayer","backgroundColor","accentText","pressableLayer","accessibilityRole","undefined","activeOpacity","HoldButton","forwardRef","setLayout","onContainerLayout","container","white","background","borderColor","displayName","create","borderRadius","overflow","opacity","alignItems","justifyContent","paddingBottom","paddingHorizontal","paddingTop","borderWidth","position","flexDirection"],"sources":["hold-button.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { ColorValue, LayoutChangeEvent, StyleSheet, TouchableWithoutFeedbackProps, View } from 'react-native';\nimport Animated, {\n cancelAnimation,\n Easing,\n runOnJS,\n SharedValue,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { TouchableOpacity, TouchableOpacityRef } from '../accessibility/accessibilityHistoryWrappers';\nimport { Typography } from '../text';\nimport { useAppColorScheme } from '../theme';\n\nexport interface HoldButtonProps\n extends Omit<\n TouchableWithoutFeedbackProps,\n 'children' | 'onLayout' | 'onPress' | 'onLongPress' | 'onPressIn' | 'onPressOut'\n > {\n title: string;\n subtitlePrefix: string;\n subtitleSuffix: string;\n holdTimeoutSecs?: number;\n onFinished: () => void;\n}\n\ninterface ContentProps {\n title: string;\n subtitlePrefix: string;\n subtitleSuffix: string;\n width: number;\n height: number;\n textColor: ColorValue;\n progress: SharedValue<number>;\n holdTimeoutSecs: number;\n disabled?: boolean;\n}\n\nconst Content = ({\n title,\n subtitlePrefix,\n subtitleSuffix,\n width,\n height,\n textColor,\n progress,\n holdTimeoutSecs,\n disabled,\n}: ContentProps) => {\n const nums = useMemo(\n () => Array.from({ length: holdTimeoutSecs + 1 }).map((_, index) => holdTimeoutSecs - index),\n [holdTimeoutSecs],\n );\n\n const [subtitleHeight, setSubtitleHeight] = useState<number>(0);\n const onSubtitleLayout = useCallback(({ nativeEvent }: LayoutChangeEvent) => {\n setSubtitleHeight(nativeEvent.layout.height);\n }, []);\n\n const translateY = useDerivedValue(\n () => progress.value * subtitleHeight * holdTimeoutSecs,\n [subtitleHeight, holdTimeoutSecs],\n );\n const movingUpStyle = useAnimatedStyle(() => ({\n transform: [{ translateY: -translateY.value }],\n }), [translateY]);\n\n return (\n <View style={[styles.contentWrapper, disabled && styles.contentDisabled, { width, height }]} pointerEvents=\"none\">\n <Typography color={textColor} numberOfLines={1}>\n {title}\n </Typography>\n\n <View style={[styles.subtitle, disabled && styles.subtitleDisabled]}>\n <Typography onLayout={onSubtitleLayout} preset=\"s/line-height-capped\" color={textColor} numberOfLines={1}>\n {subtitlePrefix}\n </Typography>\n <View style={[styles.subtitleSecsWrapper, { height: subtitleHeight }]}>\n <Animated.View style={[styles.subtitleSecs, movingUpStyle]}>\n {nums.map((val) => (\n <Typography key={val} preset=\"s/line-height-capped\" color={textColor} numberOfLines={1}>\n {val}\n </Typography>\n ))}\n </Animated.View>\n </View>\n <Typography preset=\"s/line-height-capped\" color={textColor} numberOfLines={1}>\n {subtitleSuffix}\n </Typography>\n </View>\n </View>\n );\n};\n\ninterface HoldButtonLayoutedProps extends Omit<HoldButtonProps, 'style'> {\n ref: React.ForwardedRef<TouchableOpacityRef>;\n width: number;\n height: number;\n}\n\nconst HoldButtonLayouted = ({\n title,\n subtitlePrefix,\n subtitleSuffix,\n onFinished,\n holdTimeoutSecs = 3,\n width,\n height,\n disabled,\n ref,\n ...props\n}: HoldButtonLayoutedProps) => {\n const colorScheme = useAppColorScheme();\n\n const [isFinished, setFinished] = useState(false);\n useEffect(() => {\n if (isFinished) {\n onFinished();\n }\n }, [isFinished, onFinished]);\n\n const progress = useSharedValue(0);\n\n const onLongPress = useCallback(() => {\n // Fix for detox bug https://github.com/wix/Detox/issues/4754\n if (isFinished || progress.value !== 0) {\n return;\n }\n setFinished(true);\n }, [progress, isFinished]);\n\n const onPressIn = useCallback(() => {\n const holdTimeout = holdTimeoutSecs * 1000;\n\n // start moving forward\n progress.value = withTiming(\n 1,\n {\n duration: (1 - progress.value) * holdTimeout,\n easing: Easing.linear,\n },\n (finished) => {\n if (finished) {\n runOnJS(setFinished)(true);\n } else {\n // start moving back\n progress.value = withTiming(0, {\n duration: progress.value * holdTimeout,\n easing: Easing.linear,\n });\n }\n },\n );\n }, [holdTimeoutSecs, progress]);\n\n const onPressOut = useCallback(() => cancelAnimation(progress), [progress]);\n\n const translateX = useDerivedValue(() => progress.value * width, [width]);\n const movingRightStyle = useAnimatedStyle(() => ({\n transform: [{ translateX: translateX.value }],\n }), [translateX]);\n const movingLeftStyle = useAnimatedStyle(() => ({\n transform: [{ translateX: -translateX.value }],\n }), [translateX]);\n\n const contentProps = useMemo(\n () => ({ title, subtitlePrefix, subtitleSuffix, progress, holdTimeoutSecs, width, height }),\n [title, subtitlePrefix, subtitleSuffix, progress, holdTimeoutSecs, width, height],\n );\n\n return (\n <>\n <Content textColor={colorScheme.accent} disabled={disabled} {...contentProps} />\n {!disabled && (\n <Animated.View style={[styles.movingLayer, { backgroundColor: colorScheme.accent }, movingRightStyle]}>\n <Animated.View style={movingLeftStyle}>\n <Content textColor={colorScheme.accentText} {...contentProps} />\n </Animated.View>\n </Animated.View>\n )}\n <View style={styles.pressableLayer}>\n <TouchableOpacity\n accessibilityRole=\"button\"\n ref={ref}\n disabled={isFinished || disabled}\n onLongPress={onLongPress}\n onPressIn={isFinished ? undefined : onPressIn}\n onPressOut={isFinished ? undefined : onPressOut}\n activeOpacity={1}\n {...props}>\n <View style={{ width, height }} />\n </TouchableOpacity>\n </View>\n </>\n );\n};\n\n/**\n * Press and hold button component\n *\n * follows design: https://www.figma.com/design/cCmAyBQrQWCQZuDi85pJfe/Procivis-One-Wallet-Developments-2025?node-id=1-871\n */\nconst HoldButton = React.forwardRef<TouchableOpacityRef, HoldButtonProps>(\n ({ style, disabled, ...props }, ref) => {\n const colorScheme = useAppColorScheme();\n\n const [layout, setLayout] = useState<{ width: number; height: number }>();\n const onContainerLayout = useCallback(({ nativeEvent }: LayoutChangeEvent) => {\n setLayout({ width: nativeEvent.layout.width, height: nativeEvent.layout.height });\n }, []);\n\n return (\n <View\n onLayout={onContainerLayout}\n style={[\n styles.container,\n disabled && styles.disabled,\n {\n backgroundColor: disabled ? colorScheme.white : colorScheme.background,\n borderColor: colorScheme.background,\n },\n style,\n ]}>\n {layout && <HoldButtonLayouted ref={ref} disabled={disabled} {...props} {...layout} />}\n </View>\n );\n },\n);\n\nHoldButton.displayName = 'HoldButton';\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 12,\n height: 68,\n overflow: 'hidden',\n },\n contentDisabled: {\n opacity: 0.4,\n },\n contentWrapper: {\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingBottom: 16,\n paddingHorizontal: 24,\n paddingTop: 12,\n },\n disabled: {\n borderWidth: 1,\n },\n movingLayer: {\n overflow: 'hidden',\n position: 'absolute',\n },\n pressableLayer: {\n position: 'absolute',\n },\n subtitle: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n opacity: 0.8,\n },\n subtitleDisabled: {\n opacity: 1,\n },\n subtitleSecs: {\n alignItems: 'center',\n },\n subtitleSecsWrapper: {\n overflow: 'hidden',\n },\n});\n\nexport default HoldButton;\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,3 @@
1
- import QRCodeScanner, { QRCodeScannerProps } from './qr-code-scanner';
2
- export { QRCodeScanner, QRCodeScannerProps };
1
+ import QRCodeScanner from './qr-code-scanner';
2
+ export { QRCodeScanner };
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["QRCodeScanner","QRCodeScannerProps"],"sources":["index.tsx"],"sourcesContent":["import QRCodeScanner, { QRCodeScannerProps } from './qr-code-scanner';\n\nexport { QRCodeScanner, QRCodeScannerProps };\n"],"mappings":"AAAA,OAAOA,aAAa,IAAIC,kBAAkB,QAAQ,mBAAmB;AAErE,SAASD,aAAa,EAAEC,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["QRCodeScanner"],"sources":["index.tsx"],"sourcesContent":["import type { QRCodeScannerProps } from './qr-code-scanner';\nimport QRCodeScanner from './qr-code-scanner';\n\nexport { QRCodeScanner, QRCodeScannerProps };\n"],"mappings":"AACA,OAAOA,aAAa,MAAM,mBAAmB;AAE7C,SAASA,aAAa","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { Checkbox, CheckboxProps } from './checkbox';
2
- import { Switch, SwitchProps } from './switch';
3
- export { Checkbox, CheckboxProps, Switch, SwitchProps };
1
+ import { Checkbox } from './checkbox';
2
+ import { Switch } from './switch';
3
+ export { Checkbox, Switch };
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Checkbox","CheckboxProps","Switch","SwitchProps"],"sources":["index.ts"],"sourcesContent":["import { Checkbox, CheckboxProps } from './checkbox';\nimport { Switch, SwitchProps } from './switch';\n\nexport { Checkbox, CheckboxProps, Switch, SwitchProps };\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,aAAa,QAAQ,YAAY;AACpD,SAASC,MAAM,EAAEC,WAAW,QAAQ,UAAU;AAE9C,SAASH,QAAQ,EAAEC,aAAa,EAAEC,MAAM,EAAEC,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["Checkbox","Switch"],"sources":["index.ts"],"sourcesContent":["import type { CheckboxProps } from './checkbox';\nimport { Checkbox } from './checkbox';\nimport type { SwitchProps } from './switch';\nimport { Switch } from './switch';\n\nexport { Checkbox, CheckboxProps, Switch, SwitchProps };\n"],"mappings":"AACA,SAASA,QAAQ,QAAQ,YAAY;AAErC,SAASC,MAAM,QAAQ,UAAU;AAEjC,SAASD,QAAQ,EAAiBC,MAAM","ignoreList":[]}
@@ -110,7 +110,7 @@ const CredentialDetailsCard = ({
110
110
  }), /*#__PURE__*/React.createElement(CredentialCard, _extends({}, cardProps, {
111
111
  header: {
112
112
  ...header,
113
- accessory: (_header$accessory = header.accessory) !== null && _header$accessory !== void 0 ? _header$accessory : CaretIcon
113
+ accessory: (_header$accessory = header.accessory) !== null && _header$accessory !== void 0 ? _header$accessory : cardProps.onHeaderPress ? CaretIcon : undefined
114
114
  },
115
115
  style: [styles.card, cardProps.style]
116
116
  })), previewAttributes.length > 0 && /*#__PURE__*/React.createElement(Animated.View, {