@procivis/one-react-native-components 0.3.142 → 0.3.143

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 (69) hide show
  1. package/lib/commonjs/components/proof-request/index.js +1 -12
  2. package/lib/commonjs/components/proof-request/index.js.map +1 -1
  3. package/lib/commonjs/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
  4. package/lib/commonjs/components/proof-request/v2/share-credential-v2.js.map +1 -1
  5. package/lib/commonjs/utils/hooks/core/proofs.js +1 -1
  6. package/lib/commonjs/utils/hooks/core/proofs.js.map +1 -1
  7. package/lib/commonjs/utils/parsers/credential-sharing-v2.js +34 -3
  8. package/lib/commonjs/utils/parsers/credential-sharing-v2.js.map +1 -1
  9. package/lib/commonjs/utils/parsers/index.js +0 -11
  10. package/lib/commonjs/utils/parsers/index.js.map +1 -1
  11. package/lib/commonjs/utils/parsers/query.js +1 -1
  12. package/lib/commonjs/utils/parsers/query.js.map +1 -1
  13. package/lib/module/components/proof-request/index.js +0 -1
  14. package/lib/module/components/proof-request/index.js.map +1 -1
  15. package/lib/module/components/proof-request/v2/share-credential-v2-group.js.map +1 -1
  16. package/lib/module/components/proof-request/v2/share-credential-v2.js.map +1 -1
  17. package/lib/module/utils/hooks/core/proofs.js +1 -1
  18. package/lib/module/utils/hooks/core/proofs.js.map +1 -1
  19. package/lib/module/utils/parsers/credential-sharing-v2.js +31 -1
  20. package/lib/module/utils/parsers/credential-sharing-v2.js.map +1 -1
  21. package/lib/module/utils/parsers/index.js +0 -1
  22. package/lib/module/utils/parsers/index.js.map +1 -1
  23. package/lib/module/utils/parsers/query.js +1 -1
  24. package/lib/module/utils/parsers/query.js.map +1 -1
  25. package/lib/typescript/components/proof-request/index.d.ts +0 -1
  26. package/lib/typescript/components/proof-request/v2/share-credential-v2-group.d.ts +8 -1
  27. package/lib/typescript/components/proof-request/v2/share-credential-v2.d.ts +1 -1
  28. package/lib/typescript/ui-components/text/typography.d.ts +13 -13
  29. package/lib/typescript/utils/hooks/core/proofs.d.ts +2 -2
  30. package/lib/typescript/utils/parsers/credential-sharing-v2.d.ts +10 -2
  31. package/lib/typescript/utils/parsers/index.d.ts +0 -1
  32. package/package.json +5 -4
  33. package/src/components/proof-request/index.ts +0 -1
  34. package/src/components/proof-request/v2/share-credential-v2-group.tsx +9 -2
  35. package/src/components/proof-request/v2/share-credential-v2.tsx +1 -1
  36. package/src/utils/hooks/core/proofs.ts +3 -3
  37. package/src/utils/parsers/credential-sharing-v2.tsx +70 -1
  38. package/src/utils/parsers/index.ts +0 -1
  39. package/src/utils/parsers/query.ts +0 -1
  40. package/lib/commonjs/components/proof-request/v1/group.js +0 -35
  41. package/lib/commonjs/components/proof-request/v1/group.js.map +0 -1
  42. package/lib/commonjs/components/proof-request/v1/index.js +0 -39
  43. package/lib/commonjs/components/proof-request/v1/index.js.map +0 -1
  44. package/lib/commonjs/components/proof-request/v1/select-credential.js +0 -53
  45. package/lib/commonjs/components/proof-request/v1/select-credential.js.map +0 -1
  46. package/lib/commonjs/components/proof-request/v1/share-credential.js +0 -110
  47. package/lib/commonjs/components/proof-request/v1/share-credential.js.map +0 -1
  48. package/lib/commonjs/utils/parsers/credential-sharing.js +0 -269
  49. package/lib/commonjs/utils/parsers/credential-sharing.js.map +0 -1
  50. package/lib/module/components/proof-request/v1/group.js +0 -27
  51. package/lib/module/components/proof-request/v1/group.js.map +0 -1
  52. package/lib/module/components/proof-request/v1/index.js +0 -4
  53. package/lib/module/components/proof-request/v1/index.js.map +0 -1
  54. package/lib/module/components/proof-request/v1/select-credential.js +0 -44
  55. package/lib/module/components/proof-request/v1/select-credential.js.map +0 -1
  56. package/lib/module/components/proof-request/v1/share-credential.js +0 -101
  57. package/lib/module/components/proof-request/v1/share-credential.js.map +0 -1
  58. package/lib/module/utils/parsers/credential-sharing.js +0 -256
  59. package/lib/module/utils/parsers/credential-sharing.js.map +0 -1
  60. package/lib/typescript/components/proof-request/v1/group.d.ts +0 -2
  61. package/lib/typescript/components/proof-request/v1/index.d.ts +0 -3
  62. package/lib/typescript/components/proof-request/v1/select-credential.d.ts +0 -15
  63. package/lib/typescript/components/proof-request/v1/share-credential.d.ts +0 -27
  64. package/lib/typescript/utils/parsers/credential-sharing.d.ts +0 -21
  65. package/src/components/proof-request/v1/group.tsx +0 -26
  66. package/src/components/proof-request/v1/index.ts +0 -3
  67. package/src/components/proof-request/v1/select-credential.tsx +0 -55
  68. package/src/components/proof-request/v1/share-credential.tsx +0 -159
  69. package/src/utils/parsers/credential-sharing.tsx +0 -415
@@ -1,8 +1,15 @@
1
1
  import { CredentialListItem, PresentationDefinitionV2, PresentationDefinitionV2Claim, PresentationSubmitV2CredentialRequest } from '@procivis/react-native-one-core';
2
2
  import { FC } from 'react';
3
3
  import { ImageSourcePropType, StyleProp, ViewStyle } from 'react-native';
4
- import { ShareCredentialLabels } from '../v1/share-credential';
4
+ import { ShareCredentialCardLabels } from '../../../utils';
5
5
  export type CredentialQuerySelection = Record<string, PresentationSubmitV2CredentialRequest | PresentationSubmitV2CredentialRequest[]>;
6
+ export type ShareCredentialLabels = ShareCredentialCardLabels & {
7
+ invalidCredentialNotice: string;
8
+ multipleCredentialsNotice: string;
9
+ multipleCredentialsSelect: string;
10
+ revokedCredentialNotice: string;
11
+ suspendedCredentialNotice: string;
12
+ };
6
13
  export type ShareCredentialGroupLabels = ShareCredentialLabels & {
7
14
  groupHeader: string;
8
15
  };
@@ -1,7 +1,7 @@
1
1
  import { ApplicableCredentialOrFailureHint, CredentialListItem, PresentationDefinitionV2Claim } from '@procivis/react-native-one-core';
2
2
  import React, { FunctionComponent } from 'react';
3
3
  import { ImageSourcePropType, StyleProp, ViewStyle } from 'react-native';
4
- import { ShareCredentialLabels } from '../v1';
4
+ import { ShareCredentialLabels } from './share-credential-v2-group';
5
5
  export type ShareCredentialV2Props = {
6
6
  credentialQuery: ApplicableCredentialOrFailureHint;
7
7
  credentialRequestId: string;
@@ -7,87 +7,87 @@ declare const presets: {
7
7
  readonly lineHeight: 36;
8
8
  readonly letterSpacing: 0.2;
9
9
  readonly fontFamily?: string | undefined;
10
- readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
10
+ readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "condensed" | 300 | "light" | "regular" | 100 | 200 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "heavy" | undefined;
11
11
  };
12
12
  readonly l: {
13
13
  readonly fontSize: 24;
14
14
  readonly lineHeight: 33;
15
15
  readonly fontFamily?: string | undefined;
16
- readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
16
+ readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "condensed" | 300 | "light" | "regular" | 100 | 200 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "heavy" | undefined;
17
17
  };
18
18
  readonly 'l/line-height-large': {
19
19
  readonly fontSize: 24;
20
20
  readonly lineHeight: 28;
21
21
  readonly fontFamily?: string | undefined;
22
- readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
22
+ readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "condensed" | 300 | "light" | "regular" | 100 | 200 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "heavy" | undefined;
23
23
  };
24
24
  readonly regular: {
25
25
  readonly fontSize: 17;
26
26
  readonly lineHeight: 24;
27
27
  readonly fontFamily?: string | undefined;
28
- readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
28
+ readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "condensed" | 300 | "light" | "regular" | 100 | 200 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "heavy" | undefined;
29
29
  };
30
30
  readonly m: {
31
31
  readonly fontSize: 17;
32
32
  readonly lineHeight: 22;
33
33
  readonly letterSpacing: -0.2;
34
34
  readonly fontFamily?: string | undefined;
35
- readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
35
+ readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "condensed" | 300 | "light" | "regular" | 100 | 200 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "heavy" | undefined;
36
36
  };
37
37
  readonly 'm/heading': {
38
38
  readonly fontSize: 17;
39
39
  readonly lineHeight: 22;
40
40
  readonly letterSpacing: -0.2;
41
41
  readonly fontFamily?: string | undefined;
42
- readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
42
+ readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "condensed" | 300 | "light" | "regular" | 100 | 200 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "heavy" | undefined;
43
43
  };
44
44
  readonly s: {
45
45
  readonly fontSize: 14;
46
46
  readonly lineHeight: 22;
47
47
  readonly fontFamily?: string | undefined;
48
- readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
48
+ readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "condensed" | 300 | "light" | "regular" | 100 | 200 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "heavy" | undefined;
49
49
  };
50
50
  readonly 's/line-height-capped': {
51
51
  readonly fontSize: 14;
52
52
  readonly lineHeight: 22;
53
53
  readonly letterSpacing: -0.2;
54
54
  readonly fontFamily?: string | undefined;
55
- readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
55
+ readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "condensed" | 300 | "light" | "regular" | 100 | 200 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "heavy" | undefined;
56
56
  };
57
57
  readonly 's/line-height-small': {
58
58
  readonly fontSize: 14;
59
59
  readonly lineHeight: 18;
60
60
  readonly letterSpacing: 0.3;
61
61
  readonly fontFamily?: string | undefined;
62
- readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
62
+ readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "condensed" | 300 | "light" | "regular" | 100 | 200 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "heavy" | undefined;
63
63
  };
64
64
  readonly 's/code': {
65
65
  readonly fontSize: 14;
66
66
  readonly lineHeight: 22;
67
67
  readonly letterSpacing: 0.2;
68
68
  readonly fontFamily?: string | undefined;
69
- readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
69
+ readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "condensed" | 300 | "light" | "regular" | 100 | 200 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "heavy" | undefined;
70
70
  };
71
71
  readonly xs: {
72
72
  readonly fontSize: 12;
73
73
  readonly lineHeight: 22;
74
74
  readonly letterSpacing: -0.1;
75
75
  readonly fontFamily?: string | undefined;
76
- readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
76
+ readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "condensed" | 300 | "light" | "regular" | 100 | 200 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "heavy" | undefined;
77
77
  };
78
78
  readonly 'xs/line-height-small': {
79
79
  readonly fontSize: 12;
80
80
  readonly lineHeight: 18;
81
81
  readonly letterSpacing: 0.3;
82
82
  readonly fontFamily?: string | undefined;
83
- readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
83
+ readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "condensed" | 300 | "light" | "regular" | 100 | 200 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "heavy" | undefined;
84
84
  };
85
85
  readonly 'xs/code': {
86
86
  readonly fontSize: 12;
87
87
  readonly lineHeight: 18;
88
88
  readonly letterSpacing: 0.3;
89
89
  readonly fontFamily?: string | undefined;
90
- readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "light" | "regular" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "condensed" | "heavy" | undefined;
90
+ readonly fontWeight?: 500 | "bold" | "normal" | "100" | "black" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "condensed" | 300 | "light" | "regular" | 100 | 200 | 400 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "medium" | "semibold" | "condensedBold" | "heavy" | undefined;
91
91
  };
92
92
  };
93
93
  export type TypographyProps = BaseTextProps & {
@@ -1,4 +1,4 @@
1
- import { CreateProofRequest, HistoryErrorMetadata, PresentationSubmitCredentialRequest, ProofListQuery, ProofState, ProposeProofRequest, ShareProofRequest } from '@procivis/react-native-one-core';
1
+ import { CreateProofRequest, HistoryErrorMetadata, PresentationSubmitV2CredentialRequest, ProofListQuery, ProofState, ProposeProofRequest, ShareProofRequest } from '@procivis/react-native-one-core';
2
2
  import { Transport } from '../connectivity/connectivity';
3
3
  export declare const PROOF_DETAIL_QUERY_KEY = "proof-detail";
4
4
  export declare const PROOF_STATE_QUERY_KEY = "proof-state";
@@ -15,7 +15,7 @@ type ProofUrlHookParams = {
15
15
  };
16
16
  export declare const useProofUrl: () => import("react-query").UseMutationResult<string, unknown, ProofUrlHookParams, unknown>;
17
17
  export declare const useProofAccept: () => import("react-query").UseMutationResult<void, unknown, {
18
- credentials: Record<string, PresentationSubmitCredentialRequest[]>;
18
+ credentials: Record<string, PresentationSubmitV2CredentialRequest[]>;
19
19
  interactionId: string;
20
20
  }, unknown>;
21
21
  export declare const useProofReject: () => import("react-query").UseMutationResult<void, unknown, string, unknown>;
@@ -1,7 +1,15 @@
1
- import { CoreConfig, CredentialQueryFailureHint, PresentationDefinitionV2Claim, PresentationDefinitionV2Credential } from '@procivis/react-native-one-core';
1
+ import { CoreConfig, CredentialDetail, CredentialQueryFailureHint, PresentationDefinitionV2Claim, PresentationDefinitionV2Credential } from '@procivis/react-native-one-core';
2
2
  import { CredentialAttribute, CredentialCardNotice, CredentialCardProps } from '../../ui-components';
3
3
  import { CredentialDetailsCardPropsWithoutWidth } from '.';
4
- import { ShareCredentialCardLabels } from './credential-sharing';
4
+ import { CardLabels } from './credential';
5
+ export type ShareCredentialCardLabels = CardLabels & {
6
+ selectiveDisclosure: string;
7
+ missingAttribute: string;
8
+ missingCredential: string;
9
+ multipleCredentials: string;
10
+ disclosurePolicyViolation: string;
11
+ };
12
+ export declare const validityCheckedCardFromCredential: (credential: CredentialDetail | PresentationDefinitionV2Credential, expanded: boolean, selectiveDisclosureSupported: boolean | undefined, multipleCredentialsAvailable: boolean, config: CoreConfig, notice: CredentialCardNotice | undefined, testID: string, labels: ShareCredentialCardLabels, language: string | undefined) => Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'testID' | 'width'>;
5
13
  export declare const shareCredentialCardAttributeFromV2Claim: (claim: PresentationDefinitionV2Claim, selection: string[] | undefined, parentShared: boolean, parentUserSelected: boolean, config: CoreConfig, testID: string, language: string | undefined, nested?: boolean, listValue?: boolean) => CredentialAttribute;
6
14
  export declare const missingCredentialCardFromFailureHint: (failureHint: CredentialQueryFailureHint | undefined, notice: CredentialCardNotice | undefined, testID: string, labels: ShareCredentialCardLabels) => Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'width'>;
7
15
  export declare const shareCredentialCardFromV2PresentationCredential: (credential: PresentationDefinitionV2Credential | undefined, failureHint: CredentialQueryFailureHint | undefined, expanded: boolean, multipleCredentialsAvailable: boolean, purpose: string | undefined, selectedFields: string[] | undefined, config: CoreConfig, testID: string, labels: ShareCredentialCardLabels, language: string | undefined) => CredentialDetailsCardPropsWithoutWidth;
@@ -1,6 +1,5 @@
1
1
  export * from './credential';
2
2
  export * from './credential-images';
3
- export * from './credential-sharing';
4
3
  export * from './credential-sharing-v2';
5
4
  export * from './query';
6
5
  export * from './universal-links';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@procivis/one-react-native-components",
3
- "version": "0.3.142",
3
+ "version": "0.3.143",
4
4
  "author": "Procivis AG (https://procivis.ch)",
5
5
  "license": "Apache-2.0",
6
6
  "description": "Common Procivis ONE UI components for react-native",
@@ -53,7 +53,7 @@
53
53
  "@babel/runtime": "^7.25.0",
54
54
  "@commitlint/config-conventional": "^11.0.0",
55
55
  "@gorhom/bottom-sheet": "^5.1.2",
56
- "@procivis/react-native-one-core": "1.112373.0",
56
+ "@procivis/react-native-one-core": "1.114493.0",
57
57
  "@procivis/react-native-picker": "5.0.3",
58
58
  "@react-native-async-storage/async-storage": "^1.17.3",
59
59
  "@react-native-community/blur": "^4.4.0",
@@ -72,7 +72,7 @@
72
72
  "@react-native/typescript-config": "0.77.1",
73
73
  "@react-navigation/native": "^6.0.6",
74
74
  "@release-it/conventional-changelog": "^2.0.0",
75
- "@sentry/react-native": "^5.24.1",
75
+ "@sentry/react-native": "^7.8.0",
76
76
  "@storybook/addon-actions": "^8.6.7",
77
77
  "@storybook/addon-controls": "^8.6.7",
78
78
  "@storybook/addon-designs": "^8.2.1",
@@ -142,7 +142,7 @@
142
142
  "vite": "^6.4.2"
143
143
  },
144
144
  "peerDependencies": {
145
- "@procivis/react-native-one-core": "^1.112373.0",
145
+ "@procivis/react-native-one-core": "^1.114493.0",
146
146
  "@procivis/react-native-picker": "*",
147
147
  "@react-native-community/blur": "*",
148
148
  "@react-native-community/netinfo": "^11.4.1",
@@ -292,6 +292,7 @@
292
292
  "packageManager": "pnpm@10.5.2",
293
293
  "pnpm": {
294
294
  "patchedDependencies": {
295
+ "react-native": "patches/react-native.patch",
295
296
  "react-native-web": "patches/react-native-web.patch"
296
297
  }
297
298
  }
@@ -1,4 +1,3 @@
1
1
  export * from './select-share-credential-card-notice';
2
2
  export * from './share-credential-card-notice';
3
- export * from './v1';
4
3
  export * from './v2';
@@ -18,8 +18,7 @@ import {
18
18
  UpIcon,
19
19
  } from '../../../ui-components';
20
20
  import CredentialGroupHeader from '../../../ui-components/credential/group/credential-group-header';
21
- import { concatTestID, useCredentialListExpandedCard } from '../../../utils';
22
- import { ShareCredentialLabels } from '../v1/share-credential';
21
+ import { concatTestID, ShareCredentialCardLabels, useCredentialListExpandedCard } from '../../../utils';
23
22
  import { GroupedShareCredentialV2Padding, ShareCredentialV2 } from './share-credential-v2';
24
23
 
25
24
  export type CredentialQuerySelection = Record<
@@ -27,6 +26,14 @@ export type CredentialQuerySelection = Record<
27
26
  PresentationSubmitV2CredentialRequest | PresentationSubmitV2CredentialRequest[]
28
27
  >;
29
28
 
29
+ export type ShareCredentialLabels = ShareCredentialCardLabels & {
30
+ invalidCredentialNotice: string;
31
+ multipleCredentialsNotice: string;
32
+ multipleCredentialsSelect: string;
33
+ revokedCredentialNotice: string;
34
+ suspendedCredentialNotice: string;
35
+ };
36
+
30
37
  export type ShareCredentialGroupLabels = ShareCredentialLabels & {
31
38
  groupHeader: string;
32
39
  };
@@ -12,7 +12,7 @@ import { concatTestID, getValidityState, useCoreConfig, ValidityState } from '..
12
12
  import { shareCredentialCardFromV2PresentationCredential } from '../../../utils/parsers/credential-sharing-v2';
13
13
  import { SelectShareCredentialCardNotice } from '../select-share-credential-card-notice';
14
14
  import { ShareCredentialCardNotice } from '../share-credential-card-notice';
15
- import { ShareCredentialLabels } from '../v1';
15
+ import { ShareCredentialLabels } from './share-credential-v2-group';
16
16
 
17
17
  export type ShareCredentialV2Props = {
18
18
  credentialQuery: ApplicableCredentialOrFailureHint;
@@ -6,7 +6,7 @@ import {
6
6
  HistoryErrorMetadata,
7
7
  IdentifierListQuery,
8
8
  OneError,
9
- PresentationSubmitCredentialRequest,
9
+ PresentationSubmitV2CredentialRequest,
10
10
  ProofListQuery,
11
11
  ProofSchemaDetail,
12
12
  ProofState,
@@ -102,9 +102,9 @@ export const useProofAccept = () => {
102
102
  interactionId,
103
103
  credentials,
104
104
  }: {
105
- credentials: Record<string, PresentationSubmitCredentialRequest[]>;
105
+ credentials: Record<string, PresentationSubmitV2CredentialRequest[]>;
106
106
  interactionId: string;
107
- }) => core.holderSubmitProof(interactionId, credentials),
107
+ }) => core.holderSubmitProofV2(interactionId, credentials),
108
108
  {
109
109
  onError: async (err) => {
110
110
  reportException(err, 'Proof submission failure');
@@ -2,6 +2,7 @@ import {
2
2
  Claim,
3
3
  ClaimValue,
4
4
  CoreConfig,
5
+ CredentialDetail,
5
6
  CredentialQueryFailureHint,
6
7
  CredentialType,
7
8
  PresentationDefinitionV2Claim,
@@ -14,6 +15,7 @@ import {
14
15
  CredentialAttribute,
15
16
  CredentialCardNotice,
16
17
  CredentialCardProps,
18
+ CredentialHeaderProps,
17
19
  CredentialNoticeWarningIcon,
18
20
  CredentialWarningIcon,
19
21
  PurposeInfoIcon,
@@ -27,7 +29,74 @@ import {
27
29
  getCredentialCardPropsFromCredential,
28
30
  supportsSelectiveDisclosure,
29
31
  } from '.';
30
- import { ShareCredentialCardLabels, validityCheckedCardFromCredential } from './credential-sharing';
32
+ import { CardLabels, credentialDetailFromPresentationV2Credential } from './credential';
33
+
34
+ export type ShareCredentialCardLabels = CardLabels & {
35
+ selectiveDisclosure: string;
36
+ missingAttribute: string;
37
+ missingCredential: string;
38
+ multipleCredentials: string;
39
+ disclosurePolicyViolation: string;
40
+ };
41
+
42
+ export const validityCheckedCardFromCredential = (
43
+ credential: CredentialDetail | PresentationDefinitionV2Credential,
44
+ expanded: boolean,
45
+ selectiveDisclosureSupported: boolean | undefined,
46
+ multipleCredentialsAvailable: boolean,
47
+ config: CoreConfig,
48
+ notice: CredentialCardNotice | undefined,
49
+ testID: string,
50
+ labels: ShareCredentialCardLabels,
51
+ language: string | undefined,
52
+ ): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'testID' | 'width'> => {
53
+ let credentialHeaderDetail:
54
+ | Pick<
55
+ CredentialHeaderProps,
56
+ | 'credentialDetailPrimary'
57
+ | 'credentialDetailSecondary'
58
+ | 'credentialDetailErrorColor'
59
+ | 'credentialDetailTestID'
60
+ | 'statusIcon'
61
+ >
62
+ | undefined;
63
+ if (selectiveDisclosureSupported === false) {
64
+ credentialHeaderDetail = {
65
+ credentialDetailPrimary: labels.selectiveDisclosure,
66
+ credentialDetailTestID: concatTestID(testID, 'header.nonSelectiveDisclosure'),
67
+ statusIcon: CredentialWarningIcon,
68
+ };
69
+ } else if ('embeddedDisclosurePolicyViolation' in credential) {
70
+ credentialHeaderDetail = {
71
+ credentialDetailPrimary: labels.disclosurePolicyViolation,
72
+ credentialDetailTestID: concatTestID(testID, 'header.dislosurePolicyViolation'),
73
+ statusIcon: CredentialWarningIcon,
74
+ };
75
+ } else if (!expanded && multipleCredentialsAvailable) {
76
+ credentialHeaderDetail = {
77
+ credentialDetailPrimary: labels.multipleCredentials,
78
+ credentialDetailTestID: concatTestID(testID, 'header.multiple'),
79
+ statusIcon: CredentialWarningIcon,
80
+ };
81
+ }
82
+
83
+ const card = getCredentialCardPropsFromCredential(
84
+ credentialDetailFromPresentationV2Credential(credential),
85
+ credential.claims,
86
+ config,
87
+ notice,
88
+ testID,
89
+ labels,
90
+ language,
91
+ );
92
+ return {
93
+ ...card,
94
+ header: {
95
+ ...card.header,
96
+ ...credentialHeaderDetail,
97
+ },
98
+ };
99
+ };
31
100
 
32
101
  const v2ClaimValueToClaimValue = (value: PresentationDefinitionV2ClaimValue): ClaimValue => {
33
102
  if (value.type_ !== 'NESTED') {
@@ -1,6 +1,5 @@
1
1
  export * from './credential';
2
2
  export * from './credential-images';
3
- export * from './credential-sharing';
4
3
  export * from './credential-sharing-v2';
5
4
  export * from './query';
6
5
  export * from './universal-links';
@@ -87,7 +87,6 @@ export const getQueryKeyFromCredentialSchemaListQueryParams = (
87
87
  'exact',
88
88
  'ids',
89
89
  'include',
90
- 'schemaId',
91
90
  'schemaIds',
92
91
  'formats',
93
92
  'usesBatchIssuance',
@@ -1,35 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ProofRequestGroup = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
- var _reactNative = require("react-native");
9
- var _theme = require("../../../ui-components/theme");
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- const ProofRequestGroup = ({
12
- children
13
- }) => {
14
- const colorScheme = (0, _theme.useAppColorScheme)();
15
- return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
16
- style: styles.group
17
- }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
18
- style: [styles.separator, {
19
- backgroundColor: colorScheme.grayDark
20
- }]
21
- }), children);
22
- };
23
- exports.ProofRequestGroup = ProofRequestGroup;
24
- const styles = _reactNative.StyleSheet.create({
25
- group: {
26
- marginTop: 16
27
- },
28
- separator: {
29
- height: 1,
30
- marginBottom: 16,
31
- marginHorizontal: 4,
32
- opacity: 0.5
33
- }
34
- });
35
- //# sourceMappingURL=group.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_theme","e","__esModule","default","ProofRequestGroup","children","colorScheme","useAppColorScheme","createElement","View","style","styles","group","separator","backgroundColor","grayDark","exports","StyleSheet","create","marginTop","height","marginBottom","marginHorizontal","opacity"],"sources":["group.tsx"],"sourcesContent":["import React, { FunctionComponent, PropsWithChildren } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport { useAppColorScheme } from '../../../ui-components/theme';\n\nexport const ProofRequestGroup: FunctionComponent<PropsWithChildren> = ({ children }) => {\n const colorScheme = useAppColorScheme();\n return (\n <View style={styles.group}>\n <View style={[styles.separator, { backgroundColor: colorScheme.grayDark }]} />\n {children}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n group: {\n marginTop: 16,\n },\n separator: {\n height: 1,\n marginBottom: 16,\n marginHorizontal: 4,\n opacity: 0.5,\n },\n});\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AAAiE,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1D,MAAMG,iBAAuD,GAAGA,CAAC;EAAEC;AAAS,CAAC,KAAK;EACvF,MAAMC,WAAW,GAAG,IAAAC,wBAAiB,EAAC,CAAC;EACvC,oBACEX,MAAA,CAAAO,OAAA,CAAAK,aAAA,CAACT,YAAA,CAAAU,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC;EAAM,gBACxBhB,MAAA,CAAAO,OAAA,CAAAK,aAAA,CAACT,YAAA,CAAAU,IAAI;IAACC,KAAK,EAAE,CAACC,MAAM,CAACE,SAAS,EAAE;MAAEC,eAAe,EAAER,WAAW,CAACS;IAAS,CAAC;EAAE,CAAE,CAAC,EAC7EV,QACG,CAAC;AAEX,CAAC;AAACW,OAAA,CAAAZ,iBAAA,GAAAA,iBAAA;AAEF,MAAMO,MAAM,GAAGM,uBAAU,CAACC,MAAM,CAAC;EAC/BN,KAAK,EAAE;IACLO,SAAS,EAAE;EACb,CAAC;EACDN,SAAS,EAAE;IACTO,MAAM,EAAE,CAAC;IACTC,YAAY,EAAE,EAAE;IAChBC,gBAAgB,EAAE,CAAC;IACnBC,OAAO,EAAE;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _group = require("./group");
7
- Object.keys(_group).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _group[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _group[key];
14
- }
15
- });
16
- });
17
- var _selectCredential = require("./select-credential");
18
- Object.keys(_selectCredential).forEach(function (key) {
19
- if (key === "default" || key === "__esModule") return;
20
- if (key in exports && exports[key] === _selectCredential[key]) return;
21
- Object.defineProperty(exports, key, {
22
- enumerable: true,
23
- get: function () {
24
- return _selectCredential[key];
25
- }
26
- });
27
- });
28
- var _shareCredential = require("./share-credential");
29
- Object.keys(_shareCredential).forEach(function (key) {
30
- if (key === "default" || key === "__esModule") return;
31
- if (key in exports && exports[key] === _shareCredential[key]) return;
32
- Object.defineProperty(exports, key, {
33
- enumerable: true,
34
- get: function () {
35
- return _shareCredential[key];
36
- }
37
- });
38
- });
39
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_group","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_selectCredential","_shareCredential"],"sources":["index.ts"],"sourcesContent":["export * from './group';\nexport * from './select-credential';\nexport * from './share-credential';\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,iBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,iBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,iBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,iBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,gBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,gBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,gBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,gBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -1,53 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.SelectCredential = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var _reactNative = require("react-native");
9
- var _uiComponents = require("../../../ui-components");
10
- var _coreConfig = require("../../../utils/hooks/core/core-config");
11
- var _credentials = require("../../../utils/hooks/core/credentials");
12
- var _credentialSharing = require("../../../utils/parsers/credential-sharing");
13
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
- const SelectCredential = ({
16
- credentialId,
17
- labels,
18
- language,
19
- lastItem,
20
- onImagePreview,
21
- onPress,
22
- request,
23
- selected,
24
- testID
25
- }) => {
26
- const {
27
- data: credential
28
- } = (0, _credentials.useCredentialDetail)(credentialId);
29
- const {
30
- data: config
31
- } = (0, _coreConfig.useCoreConfig)();
32
- const cardWidth = (0, _react.useMemo)(() => _reactNative.Dimensions.get('window').width - 32, []);
33
- if (!credential || !config) {
34
- return null;
35
- }
36
- const {
37
- card,
38
- attributes
39
- } = (0, _credentialSharing.selectCredentialCardFromCredential)(credential, selected, request, config, testID, labels, language);
40
- return /*#__PURE__*/_react.default.createElement(_uiComponents.CredentialDetailsCardListItem, {
41
- attributes: attributes,
42
- card: {
43
- ...card,
44
- onHeaderPress: onPress,
45
- width: cardWidth
46
- },
47
- expanded: selected,
48
- lastItem: lastItem,
49
- onImagePreview: onImagePreview
50
- });
51
- };
52
- exports.SelectCredential = SelectCredential;
53
- //# sourceMappingURL=select-credential.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uiComponents","_coreConfig","_credentials","_credentialSharing","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","SelectCredential","credentialId","labels","language","lastItem","onImagePreview","onPress","request","selected","testID","data","credential","useCredentialDetail","config","useCoreConfig","cardWidth","useMemo","Dimensions","width","card","attributes","selectCredentialCardFromCredential","createElement","CredentialDetailsCardListItem","onHeaderPress","expanded","exports"],"sources":["select-credential.tsx"],"sourcesContent":["import { PresentationDefinitionRequestedCredential } from '@procivis/react-native-one-core';\nimport React, { FC, useMemo } from 'react';\nimport { Dimensions, ImageSourcePropType } from 'react-native';\n\nimport { CredentialDetailsCardListItem } from '../../../ui-components';\nimport { useCoreConfig } from '../../../utils/hooks/core/core-config';\nimport { useCredentialDetail } from '../../../utils/hooks/core/credentials';\nimport {\n selectCredentialCardFromCredential,\n ShareCredentialCardLabels,\n} from '../../../utils/parsers/credential-sharing';\n\nexport const SelectCredential: FC<{\n credentialId: string;\n labels: ShareCredentialCardLabels;\n language?: string;\n lastItem: boolean;\n onImagePreview: (title: string, image: ImageSourcePropType) => void;\n onPress?: () => void;\n request: PresentationDefinitionRequestedCredential;\n selected: boolean;\n testID: string;\n}> = ({ credentialId, labels, language, lastItem, onImagePreview, onPress, request, selected, testID }) => {\n const { data: credential } = useCredentialDetail(credentialId);\n const { data: config } = useCoreConfig();\n const cardWidth = useMemo(() => Dimensions.get('window').width - 32, []);\n\n if (!credential || !config) {\n return null;\n }\n\n const { card, attributes } = selectCredentialCardFromCredential(\n credential,\n selected,\n request,\n config,\n testID,\n labels,\n language,\n );\n\n return (\n <CredentialDetailsCardListItem\n attributes={attributes}\n card={{\n ...card,\n onHeaderPress: onPress,\n width: cardWidth,\n }}\n expanded={selected}\n lastItem={lastItem}\n onImagePreview={onImagePreview}\n />\n );\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AAGmD,SAAAM,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAR,wBAAAQ,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAE5C,MAAMW,gBAUX,GAAGA,CAAC;EAAEC,YAAY;EAAEC,MAAM;EAAEC,QAAQ;EAAEC,QAAQ;EAAEC,cAAc;EAAEC,OAAO;EAAEC,OAAO;EAAEC,QAAQ;EAAEC;AAAO,CAAC,KAAK;EACzG,MAAM;IAAEC,IAAI,EAAEC;EAAW,CAAC,GAAG,IAAAC,gCAAmB,EAACX,YAAY,CAAC;EAC9D,MAAM;IAAES,IAAI,EAAEG;EAAO,CAAC,GAAG,IAAAC,yBAAa,EAAC,CAAC;EACxC,MAAMC,SAAS,GAAG,IAAAC,cAAO,EAAC,MAAMC,uBAAU,CAAC7B,GAAG,CAAC,QAAQ,CAAC,CAAC8B,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC;EAExE,IAAI,CAACP,UAAU,IAAI,CAACE,MAAM,EAAE;IAC1B,OAAO,IAAI;EACb;EAEA,MAAM;IAAEM,IAAI;IAAEC;EAAW,CAAC,GAAG,IAAAC,qDAAkC,EAC7DV,UAAU,EACVH,QAAQ,EACRD,OAAO,EACPM,MAAM,EACNJ,MAAM,EACNP,MAAM,EACNC,QACF,CAAC;EAED,oBACE/B,MAAA,CAAAc,OAAA,CAAAoC,aAAA,CAAC9C,aAAA,CAAA+C,6BAA6B;IAC5BH,UAAU,EAAEA,UAAW;IACvBD,IAAI,EAAE;MACJ,GAAGA,IAAI;MACPK,aAAa,EAAElB,OAAO;MACtBY,KAAK,EAAEH;IACT,CAAE;IACFU,QAAQ,EAAEjB,QAAS;IACnBJ,QAAQ,EAAEA,QAAS;IACnBC,cAAc,EAAEA;EAAe,CAChC,CAAC;AAEN,CAAC;AAACqB,OAAA,CAAA1B,gBAAA,GAAAA,gBAAA","ignoreList":[]}