@oxy.so/services 11.2.0-oxy-one.7 → 11.3.0

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 (77) hide show
  1. package/lib/commonjs/ui/components/organizations/OrganizationClaimReview.js +208 -0
  2. package/lib/commonjs/ui/components/organizations/OrganizationClaimReview.js.map +1 -0
  3. package/lib/commonjs/ui/components/organizations/OrganizationClaims.js +77 -0
  4. package/lib/commonjs/ui/components/organizations/OrganizationClaims.js.map +1 -0
  5. package/lib/commonjs/ui/components/organizations/OrganizationDirectorySearch.js +218 -0
  6. package/lib/commonjs/ui/components/organizations/OrganizationDirectorySearch.js.map +1 -0
  7. package/lib/commonjs/ui/components/organizations/OrganizationSettings.js +147 -0
  8. package/lib/commonjs/ui/components/organizations/OrganizationSettings.js.map +1 -0
  9. package/lib/commonjs/ui/components/organizations/OrganizationTypePicker.js +34 -0
  10. package/lib/commonjs/ui/components/organizations/OrganizationTypePicker.js.map +1 -0
  11. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +14 -5
  12. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  13. package/lib/commonjs/ui/screens/CreateAccountScreen.js +148 -115
  14. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  15. package/lib/commonjs/ui/screens/ManageAccountScreen.js +13 -1
  16. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  17. package/lib/module/ui/components/organizations/OrganizationClaimReview.js +205 -0
  18. package/lib/module/ui/components/organizations/OrganizationClaimReview.js.map +1 -0
  19. package/lib/module/ui/components/organizations/OrganizationClaims.js +73 -0
  20. package/lib/module/ui/components/organizations/OrganizationClaims.js.map +1 -0
  21. package/lib/module/ui/components/organizations/OrganizationDirectorySearch.js +215 -0
  22. package/lib/module/ui/components/organizations/OrganizationDirectorySearch.js.map +1 -0
  23. package/lib/module/ui/components/organizations/OrganizationSettings.js +143 -0
  24. package/lib/module/ui/components/organizations/OrganizationSettings.js.map +1 -0
  25. package/lib/module/ui/components/organizations/OrganizationTypePicker.js +30 -0
  26. package/lib/module/ui/components/organizations/OrganizationTypePicker.js.map +1 -0
  27. package/lib/module/ui/screens/AccountSettingsScreen.js +14 -5
  28. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  29. package/lib/module/ui/screens/CreateAccountScreen.js +149 -115
  30. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  31. package/lib/module/ui/screens/ManageAccountScreen.js +13 -1
  32. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  33. package/lib/typescript/commonjs/ui/components/organizations/OrganizationClaimReview.d.ts +3 -0
  34. package/lib/typescript/commonjs/ui/components/organizations/OrganizationClaimReview.d.ts.map +1 -0
  35. package/lib/typescript/commonjs/ui/components/organizations/OrganizationClaims.d.ts +2 -0
  36. package/lib/typescript/commonjs/ui/components/organizations/OrganizationClaims.d.ts.map +1 -0
  37. package/lib/typescript/commonjs/ui/components/organizations/OrganizationDirectorySearch.d.ts +6 -0
  38. package/lib/typescript/commonjs/ui/components/organizations/OrganizationDirectorySearch.d.ts.map +1 -0
  39. package/lib/typescript/commonjs/ui/components/organizations/OrganizationSettings.d.ts +5 -0
  40. package/lib/typescript/commonjs/ui/components/organizations/OrganizationSettings.d.ts.map +1 -0
  41. package/lib/typescript/commonjs/ui/components/organizations/OrganizationTypePicker.d.ts +7 -0
  42. package/lib/typescript/commonjs/ui/components/organizations/OrganizationTypePicker.d.ts.map +1 -0
  43. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +3 -2
  44. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  45. package/lib/typescript/commonjs/ui/hooks/queries/usePersonalPlans.d.ts +2 -2
  46. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts +1 -1
  47. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  48. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  49. package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  50. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  51. package/lib/typescript/module/ui/components/organizations/OrganizationClaimReview.d.ts +3 -0
  52. package/lib/typescript/module/ui/components/organizations/OrganizationClaimReview.d.ts.map +1 -0
  53. package/lib/typescript/module/ui/components/organizations/OrganizationClaims.d.ts +2 -0
  54. package/lib/typescript/module/ui/components/organizations/OrganizationClaims.d.ts.map +1 -0
  55. package/lib/typescript/module/ui/components/organizations/OrganizationDirectorySearch.d.ts +6 -0
  56. package/lib/typescript/module/ui/components/organizations/OrganizationDirectorySearch.d.ts.map +1 -0
  57. package/lib/typescript/module/ui/components/organizations/OrganizationSettings.d.ts +5 -0
  58. package/lib/typescript/module/ui/components/organizations/OrganizationSettings.d.ts.map +1 -0
  59. package/lib/typescript/module/ui/components/organizations/OrganizationTypePicker.d.ts +7 -0
  60. package/lib/typescript/module/ui/components/organizations/OrganizationTypePicker.d.ts.map +1 -0
  61. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +3 -2
  62. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  63. package/lib/typescript/module/ui/hooks/queries/usePersonalPlans.d.ts +2 -2
  64. package/lib/typescript/module/ui/icons/Ionicons.d.ts +1 -1
  65. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  66. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  67. package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  68. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  69. package/package.json +8 -8
  70. package/src/ui/components/organizations/OrganizationClaimReview.tsx +218 -0
  71. package/src/ui/components/organizations/OrganizationClaims.tsx +67 -0
  72. package/src/ui/components/organizations/OrganizationDirectorySearch.tsx +228 -0
  73. package/src/ui/components/organizations/OrganizationSettings.tsx +131 -0
  74. package/src/ui/components/organizations/OrganizationTypePicker.tsx +31 -0
  75. package/src/ui/screens/AccountSettingsScreen.tsx +22 -4
  76. package/src/ui/screens/CreateAccountScreen.tsx +177 -124
  77. package/src/ui/screens/ManageAccountScreen.tsx +18 -0
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+
3
+ import { useState } from 'react';
4
+ import { ActivityIndicator, View } from 'react-native';
5
+ import { useInfiniteQuery, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
6
+ import { isHttpRequestError } from '@oxy.so/core';
7
+ import { organizationClaimReviewSchema } from '@oxy.so/contracts';
8
+ import { Button } from '@oxy.so/bloom/button';
9
+ import { SettingsListGroup, SettingsListItem } from '@oxy.so/bloom/settings-list';
10
+ import { TextField, TextFieldInput } from '@oxy.so/bloom/text-field';
11
+ import { Text } from '@oxy.so/bloom/typography';
12
+ import { useOxy } from "../../context/OxyContext.js";
13
+ import { useI18n } from "../../hooks/useI18n.js";
14
+
15
+ /** The queue is requested only after an explicit action; the server rechecks staff authority. */
16
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
17
+ export function OrganizationClaimReview() {
18
+ const {
19
+ t
20
+ } = useI18n();
21
+ const {
22
+ user,
23
+ canUsePrivateApi
24
+ } = useOxy();
25
+ const [open, setOpen] = useState(false);
26
+ return /*#__PURE__*/_jsxs(SettingsListGroup, {
27
+ children: [/*#__PURE__*/_jsx(SettingsListItem, {
28
+ title: t('organizationDirectory.review.title'),
29
+ disabled: !canUsePrivateApi,
30
+ onPress: () => setOpen(value => !value)
31
+ }), open && user?.kind === 'personal' && canUsePrivateApi ? /*#__PURE__*/_jsx(ReviewQueue, {}, user.id) : null]
32
+ });
33
+ }
34
+ function ReviewQueue() {
35
+ const {
36
+ t
37
+ } = useI18n();
38
+ const {
39
+ oxyServices,
40
+ user,
41
+ canUsePrivateApi
42
+ } = useOxy();
43
+ const [selected, setSelected] = useState(null);
44
+ const requests = useInfiniteQuery({
45
+ queryKey: ['oxy', 'organizations', 'review', user?.id, canUsePrivateApi],
46
+ queryFn: ({
47
+ pageParam
48
+ }) => oxyServices.organizations.reviewClaims({
49
+ status: 'pending',
50
+ limit: 20,
51
+ ...(pageParam ? {
52
+ cursor: pageParam
53
+ } : {})
54
+ }),
55
+ initialPageParam: undefined,
56
+ getNextPageParam: page => page.nextCursor ?? undefined,
57
+ enabled: canUsePrivateApi,
58
+ retry: false,
59
+ gcTime: 0
60
+ });
61
+ const claims = requests.data?.pages.flatMap(page => page.items) ?? [];
62
+ const ids = [...new Set(claims.map(claim => claim.accountId))].sort();
63
+ const organizations = useQuery({
64
+ queryKey: ['oxy', 'organizations', 'review-organizations', ids],
65
+ queryFn: async () => {
66
+ const batches = [];
67
+ for (let offset = 0; offset < ids.length; offset += 100) batches.push(oxyServices.organizations.batch({
68
+ ids: ids.slice(offset, offset + 100)
69
+ }));
70
+ return (await Promise.all(batches)).flatMap(batch => batch.items);
71
+ },
72
+ enabled: canUsePrivateApi && requests.isSuccess && ids.length > 0,
73
+ retry: false
74
+ });
75
+ if (requests.isPending) return /*#__PURE__*/_jsx(ActivityIndicator, {});
76
+ if (requests.isError) return /*#__PURE__*/_jsxs(View, {
77
+ className: "gap-space-16 p-space-16",
78
+ children: [/*#__PURE__*/_jsx(Text, {
79
+ accessibilityRole: "alert",
80
+ children: t(isHttpRequestError(requests.error) && requests.error.status === 403 ? 'organizationDirectory.review.forbidden' : 'organizationDirectory.requestError')
81
+ }), /*#__PURE__*/_jsx(Button, {
82
+ onPress: () => requests.refetch(),
83
+ children: t('organizationDirectory.retry')
84
+ })]
85
+ });
86
+ if (selected) return /*#__PURE__*/_jsx(ReviewDetail, {
87
+ claimId: selected,
88
+ onClose: () => setSelected(null)
89
+ }, selected);
90
+ return /*#__PURE__*/_jsxs(View, {
91
+ className: "gap-space-16 p-space-16",
92
+ children: [claims.length === 0 ? /*#__PURE__*/_jsx(Text, {
93
+ children: t('organizationDirectory.review.empty')
94
+ }) : null, claims.map(claim => /*#__PURE__*/_jsx(SettingsListItem, {
95
+ title: organizations.data?.find(item => item.requestedAccountId === claim.accountId)?.organization.name ?? t('organizationDirectory.view'),
96
+ description: t('organizationDirectory.pending'),
97
+ onPress: () => setSelected(claim.id)
98
+ }, claim.id)), requests.hasNextPage ? /*#__PURE__*/_jsx(Button, {
99
+ onPress: () => requests.fetchNextPage(),
100
+ disabled: requests.isFetchingNextPage,
101
+ children: t('organizationDirectory.loadMore')
102
+ }) : null]
103
+ });
104
+ }
105
+ function ReviewDetail({
106
+ claimId,
107
+ onClose
108
+ }) {
109
+ const {
110
+ t
111
+ } = useI18n();
112
+ const {
113
+ oxyServices,
114
+ user,
115
+ canUsePrivateApi
116
+ } = useOxy();
117
+ const queryClient = useQueryClient();
118
+ const [evidence, setEvidence] = useState('');
119
+ const [authorizationRevoked, setAuthorizationRevoked] = useState(false);
120
+ const detail = useQuery({
121
+ queryKey: ['oxy', 'organizations', 'review-detail', user?.id, canUsePrivateApi, claimId],
122
+ queryFn: () => oxyServices.organizations.reviewClaimDetail(claimId),
123
+ enabled: canUsePrivateApi,
124
+ retry: false,
125
+ gcTime: 0
126
+ });
127
+ const review = useMutation({
128
+ mutationFn: decision => {
129
+ if (!canUsePrivateApi || authorizationRevoked || !detail.isSuccess || !detail.data || detail.data.claimantUserId === user?.id) throw new Error('Independent staff review is required');
130
+ return oxyServices.organizations.reviewClaim(claimId, organizationClaimReviewSchema.parse({
131
+ decision,
132
+ evidenceReference: evidence
133
+ }));
134
+ },
135
+ onError: error => {
136
+ if (isHttpRequestError(error) && error.status === 403) setAuthorizationRevoked(true);
137
+ },
138
+ onSuccess: async () => {
139
+ await queryClient.invalidateQueries({
140
+ queryKey: ['oxy', 'organizations']
141
+ });
142
+ await queryClient.invalidateQueries({
143
+ queryKey: ['accounts']
144
+ });
145
+ onClose();
146
+ }
147
+ });
148
+ const conflict = isHttpRequestError(review.error) && review.error.status === 409;
149
+ const forbidden = isHttpRequestError(review.error) && review.error.status === 403;
150
+ const selfReview = detail.data?.claimantUserId === user?.id;
151
+ return /*#__PURE__*/_jsxs(View, {
152
+ className: "gap-space-16 p-space-16",
153
+ children: [detail.isPending ? /*#__PURE__*/_jsx(ActivityIndicator, {}) : null, detail.isError ? /*#__PURE__*/_jsxs(_Fragment, {
154
+ children: [/*#__PURE__*/_jsx(Text, {
155
+ accessibilityRole: "alert",
156
+ children: t(isHttpRequestError(detail.error) && detail.error.status === 403 ? 'organizationDirectory.review.forbidden' : 'organizationDirectory.requestError')
157
+ }), /*#__PURE__*/_jsx(Button, {
158
+ onPress: () => detail.refetch(),
159
+ children: t('organizationDirectory.retry')
160
+ })]
161
+ }) : null, authorizationRevoked ? /*#__PURE__*/_jsx(Text, {
162
+ accessibilityRole: "alert",
163
+ children: t('organizationDirectory.review.forbidden')
164
+ }) : null, detail.isSuccess && canUsePrivateApi && !authorizationRevoked ? /*#__PURE__*/_jsxs(_Fragment, {
165
+ children: [/*#__PURE__*/_jsx(Text, {
166
+ children: t('organizationDirectory.evidence')
167
+ }), /*#__PURE__*/_jsx(Text, {
168
+ selectable: true,
169
+ children: detail.data.evidenceReference
170
+ }), /*#__PURE__*/_jsx(Text, {
171
+ children: t('organizationDirectory.review.hint')
172
+ }), selfReview ? /*#__PURE__*/_jsx(Text, {
173
+ children: t('organizationDirectory.review.independent')
174
+ }) : null, /*#__PURE__*/_jsx(TextField, {
175
+ children: /*#__PURE__*/_jsx(TextFieldInput, {
176
+ label: t('organizationDirectory.review.evidence'),
177
+ value: evidence,
178
+ onChangeText: setEvidence,
179
+ maxLength: 1000
180
+ })
181
+ }), review.isError ? /*#__PURE__*/_jsx(Text, {
182
+ accessibilityRole: "alert",
183
+ children: t(conflict ? 'organizationDirectory.review.conflict' : forbidden ? 'organizationDirectory.review.forbidden' : 'organizationDirectory.review.failed')
184
+ }) : null, ['approved', 'rejected'].map(decision => /*#__PURE__*/_jsx(Button, {
185
+ disabled: !canUsePrivateApi || selfReview || detail.data.status !== 'pending' || !evidence.trim() || review.isPending || conflict || forbidden,
186
+ onPress: () => review.mutate(decision),
187
+ children: t(`organizationDirectory.review.${decision}`)
188
+ }, decision)), conflict ? /*#__PURE__*/_jsx(Button, {
189
+ onPress: async () => {
190
+ await queryClient.invalidateQueries({
191
+ queryKey: ['oxy', 'organizations']
192
+ });
193
+ onClose();
194
+ },
195
+ children: t('organizationDirectory.retry')
196
+ }) : null]
197
+ }) : null, /*#__PURE__*/_jsx(Button, {
198
+ appearance: "outline",
199
+ onPress: onClose,
200
+ disabled: review.isPending,
201
+ children: t('organizationDirectory.back')
202
+ })]
203
+ });
204
+ }
205
+ //# sourceMappingURL=OrganizationClaimReview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","ActivityIndicator","View","useInfiniteQuery","useMutation","useQuery","useQueryClient","isHttpRequestError","organizationClaimReviewSchema","Button","SettingsListGroup","SettingsListItem","TextField","TextFieldInput","Text","useOxy","useI18n","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","OrganizationClaimReview","t","user","canUsePrivateApi","open","setOpen","children","title","disabled","onPress","value","kind","ReviewQueue","id","oxyServices","selected","setSelected","requests","queryKey","queryFn","pageParam","organizations","reviewClaims","status","limit","cursor","initialPageParam","undefined","getNextPageParam","page","nextCursor","enabled","retry","gcTime","claims","data","pages","flatMap","items","ids","Set","map","claim","accountId","sort","batches","offset","length","push","batch","slice","Promise","all","isSuccess","isPending","isError","className","accessibilityRole","error","refetch","ReviewDetail","claimId","onClose","find","item","requestedAccountId","organization","name","description","hasNextPage","fetchNextPage","isFetchingNextPage","queryClient","evidence","setEvidence","authorizationRevoked","setAuthorizationRevoked","detail","reviewClaimDetail","review","mutationFn","decision","claimantUserId","Error","reviewClaim","parse","evidenceReference","onError","onSuccess","invalidateQueries","conflict","forbidden","selfReview","selectable","label","onChangeText","maxLength","trim","mutate","appearance"],"sourceRoot":"../../../../../src","sources":["ui/components/organizations/OrganizationClaimReview.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ import { View } from 'react-native';
4
+ import { useInfiniteQuery, useQuery } from '@tanstack/react-query';
5
+ import { Button } from '@oxy.so/bloom/button';
6
+ import { SettingsListGroup, SettingsListItem } from '@oxy.so/bloom/settings-list';
7
+ import { Text } from '@oxy.so/bloom/typography';
8
+ import { useOxy } from "../../context/OxyContext.js";
9
+ import { useI18n } from "../../hooks/useI18n.js";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ export function OrganizationClaims() {
12
+ const {
13
+ oxyServices,
14
+ user,
15
+ canUsePrivateApi
16
+ } = useOxy();
17
+ const {
18
+ t
19
+ } = useI18n();
20
+ const enabled = canUsePrivateApi && user?.kind === 'personal';
21
+ const requests = useInfiniteQuery({
22
+ queryKey: ['oxy', 'organizations', 'claims', user?.id, canUsePrivateApi],
23
+ queryFn: ({
24
+ pageParam
25
+ }) => oxyServices.organizations.myClaims({
26
+ limit: 20,
27
+ ...(pageParam ? {
28
+ cursor: pageParam
29
+ } : {})
30
+ }),
31
+ initialPageParam: undefined,
32
+ getNextPageParam: page => page.nextCursor ?? undefined,
33
+ enabled,
34
+ retry: false,
35
+ gcTime: 0
36
+ });
37
+ const claims = requests.data?.pages.flatMap(page => page.items) ?? [];
38
+ const ids = [...new Set(claims.map(claim => claim.accountId))].sort();
39
+ const organizations = useQuery({
40
+ queryKey: ['oxy', 'organizations', 'claims-employers', ids],
41
+ queryFn: async () => {
42
+ const batches = [];
43
+ for (let offset = 0; offset < ids.length; offset += 100) batches.push(oxyServices.organizations.batch({
44
+ ids: ids.slice(offset, offset + 100)
45
+ }));
46
+ return (await Promise.all(batches)).flatMap(batch => batch.items);
47
+ },
48
+ enabled: enabled && ids.length > 0,
49
+ retry: false
50
+ });
51
+ if (!enabled || !requests.isError && claims.length === 0) return null;
52
+ return /*#__PURE__*/_jsxs(SettingsListGroup, {
53
+ title: t('organizationDirectory.requests'),
54
+ children: [requests.isError ? /*#__PURE__*/_jsxs(View, {
55
+ children: [/*#__PURE__*/_jsx(Text, {
56
+ accessibilityRole: "alert",
57
+ children: t('organizationDirectory.requestError')
58
+ }), /*#__PURE__*/_jsx(Button, {
59
+ onPress: () => requests.refetch(),
60
+ children: t('organizationDirectory.retry')
61
+ })]
62
+ }) : null, !requests.isError && claims.map(claim => /*#__PURE__*/_jsx(SettingsListItem, {
63
+ title: organizations.data?.find(item => item.requestedAccountId === claim.accountId)?.organization.name ?? t('organizationDirectory.view'),
64
+ description: t(`organizationDirectory.${claim.status}`),
65
+ showChevron: false
66
+ }, claim.id)), !requests.isError && requests.hasNextPage ? /*#__PURE__*/_jsx(Button, {
67
+ onPress: () => requests.fetchNextPage(),
68
+ disabled: requests.isFetchingNextPage,
69
+ children: t('organizationDirectory.loadMore')
70
+ }) : null]
71
+ });
72
+ }
73
+ //# sourceMappingURL=OrganizationClaims.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["View","useInfiniteQuery","useQuery","Button","SettingsListGroup","SettingsListItem","Text","useOxy","useI18n","jsx","_jsx","jsxs","_jsxs","OrganizationClaims","oxyServices","user","canUsePrivateApi","t","enabled","kind","requests","queryKey","id","queryFn","pageParam","organizations","myClaims","limit","cursor","initialPageParam","undefined","getNextPageParam","page","nextCursor","retry","gcTime","claims","data","pages","flatMap","items","ids","Set","map","claim","accountId","sort","batches","offset","length","push","batch","slice","Promise","all","isError","title","children","accessibilityRole","onPress","refetch","find","item","requestedAccountId","organization","name","description","status","showChevron","hasNextPage","fetchNextPage","disabled","isFetchingNextPage"],"sourceRoot":"../../../../../src","sources":["ui/components/organizations/OrganizationClaims.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useState } from 'react';
4
+ import { ActivityIndicator, View } from 'react-native';
5
+ import { useInfiniteQuery, useMutation, useQueryClient } from '@tanstack/react-query';
6
+ import { createOrganizationSchema, organizationClaimInputSchema } from '@oxy.so/contracts';
7
+ import { Avatar } from '@oxy.so/bloom/avatar';
8
+ import { Button } from '@oxy.so/bloom/button';
9
+ import { SettingsListGroup, SettingsListItem } from '@oxy.so/bloom/settings-list';
10
+ import { TextField, TextFieldInput } from '@oxy.so/bloom/text-field';
11
+ import { Text } from '@oxy.so/bloom/typography';
12
+ import { useOxy } from "../../context/OxyContext.js";
13
+ import { useI18n } from "../../hooks/useI18n.js";
14
+ import { OrganizationTypePicker } from "./OrganizationTypePicker.js";
15
+
16
+ /** Finding an existing identity never grants ownership or silently creates an account. */
17
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
18
+ export function OrganizationDirectorySearch({
19
+ onCreateAccount
20
+ }) {
21
+ const {
22
+ oxyServices,
23
+ user,
24
+ canUsePrivateApi
25
+ } = useOxy();
26
+ const {
27
+ t
28
+ } = useI18n();
29
+ const queryClient = useQueryClient();
30
+ const [search, setSearch] = useState('');
31
+ const [query, setQuery] = useState('');
32
+ const [selected, setSelected] = useState(null);
33
+ const [adding, setAdding] = useState(false);
34
+ const [type, setType] = useState('business');
35
+ const [evidence, setEvidence] = useState('');
36
+ const [validationError, setValidationError] = useState(false);
37
+ const personalReady = canUsePrivateApi && user?.kind === 'personal';
38
+ useEffect(() => {
39
+ const timer = setTimeout(() => setQuery(search.trim()), 300);
40
+ return () => clearTimeout(timer);
41
+ }, [search]);
42
+ const results = useInfiniteQuery({
43
+ queryKey: ['oxy', 'organizations', 'search', query],
44
+ queryFn: ({
45
+ pageParam
46
+ }) => oxyServices.organizations.search({
47
+ query,
48
+ limit: 20,
49
+ ...(pageParam ? {
50
+ cursor: pageParam
51
+ } : {})
52
+ }),
53
+ initialPageParam: undefined,
54
+ getNextPageParam: page => page.nextCursor ?? undefined,
55
+ enabled: query.length > 0,
56
+ retry: false
57
+ });
58
+ const claim = useMutation({
59
+ mutationFn: () => {
60
+ if (!personalReady || !selected || selected.status !== 'active') throw new Error('An active organization and personal session are required');
61
+ return oxyServices.organizations.claim(selected.accountId, organizationClaimInputSchema.parse({
62
+ evidenceReference: evidence
63
+ }));
64
+ },
65
+ onSuccess: () => queryClient.invalidateQueries({
66
+ queryKey: ['oxy', 'organizations']
67
+ })
68
+ });
69
+ const create = useMutation({
70
+ mutationFn: () => {
71
+ if (!personalReady) throw new Error('A personal session is required');
72
+ return oxyServices.organizations.create(createOrganizationSchema.parse({
73
+ name: search.trim(),
74
+ organizationType: type
75
+ }));
76
+ },
77
+ onSuccess: organization => {
78
+ setSelected(organization);
79
+ setAdding(false);
80
+ void queryClient.invalidateQueries({
81
+ queryKey: ['oxy', 'organizations']
82
+ });
83
+ }
84
+ });
85
+ const reset = () => {
86
+ setSelected(null);
87
+ setAdding(false);
88
+ setEvidence('');
89
+ claim.reset();
90
+ create.reset();
91
+ setValidationError(false);
92
+ };
93
+ if (selected) return /*#__PURE__*/_jsx(SettingsListGroup, {
94
+ title: selected.name,
95
+ children: /*#__PURE__*/_jsxs(View, {
96
+ className: "gap-space-16 p-space-16",
97
+ children: [/*#__PURE__*/_jsx(Text, {
98
+ children: t(`organizationDirectory.${selected.claimStatus}`)
99
+ }), selected.status === 'inactive' ? /*#__PURE__*/_jsx(Text, {
100
+ children: t('organizationDirectory.inactive')
101
+ }) : null, selected.claimStatus === 'unclaimed' ? /*#__PURE__*/_jsxs(_Fragment, {
102
+ children: [/*#__PURE__*/_jsx(Text, {
103
+ children: t('organizationDirectory.claimHint')
104
+ }), /*#__PURE__*/_jsx(TextField, {
105
+ children: /*#__PURE__*/_jsx(TextFieldInput, {
106
+ label: t('organizationDirectory.evidence'),
107
+ value: evidence,
108
+ onChangeText: setEvidence,
109
+ maxLength: 1000
110
+ })
111
+ }), /*#__PURE__*/_jsx(Text, {
112
+ children: t('organizationDirectory.evidenceHint')
113
+ }), claim.isSuccess ? /*#__PURE__*/_jsx(Text, {
114
+ accessibilityRole: "alert",
115
+ children: t('organizationDirectory.claimSent')
116
+ }) : /*#__PURE__*/_jsx(Button, {
117
+ onPress: () => claim.mutate(),
118
+ disabled: !personalReady || selected.status !== 'active' || !evidence.trim() || claim.isPending,
119
+ loading: claim.isPending,
120
+ children: t('organizationDirectory.claim')
121
+ }), claim.isError ? /*#__PURE__*/_jsx(Text, {
122
+ accessibilityRole: "alert",
123
+ children: t('organizationDirectory.claimFailed')
124
+ }) : null]
125
+ }) : /*#__PURE__*/_jsx(Text, {
126
+ children: t('organizationDirectory.claimedHint')
127
+ }), /*#__PURE__*/_jsx(Button, {
128
+ appearance: "outline",
129
+ onPress: reset,
130
+ disabled: claim.isPending,
131
+ children: t('organizationDirectory.back')
132
+ })]
133
+ })
134
+ });
135
+ return /*#__PURE__*/_jsxs(View, {
136
+ className: "gap-space-16",
137
+ children: [/*#__PURE__*/_jsx(TextField, {
138
+ children: /*#__PURE__*/_jsx(TextFieldInput, {
139
+ label: t('organizationDirectory.search'),
140
+ value: search,
141
+ onChangeText: value => {
142
+ setSearch(value);
143
+ setValidationError(false);
144
+ },
145
+ maxLength: 200
146
+ })
147
+ }), query && results.isPending ? /*#__PURE__*/_jsx(ActivityIndicator, {}) : null, results.isError ? /*#__PURE__*/_jsxs(View, {
148
+ children: [/*#__PURE__*/_jsx(Text, {
149
+ accessibilityRole: "alert",
150
+ children: t('organizationDirectory.failed')
151
+ }), /*#__PURE__*/_jsx(Button, {
152
+ onPress: () => results.refetch(),
153
+ children: t('organizationDirectory.retry')
154
+ })]
155
+ }) : null, results.data ? /*#__PURE__*/_jsxs(SettingsListGroup, {
156
+ title: t('organizationDirectory.title'),
157
+ children: [results.data.pages.flatMap(page => page.items).map(organization => /*#__PURE__*/_jsx(SettingsListItem, {
158
+ title: organization.name,
159
+ description: [organization.websiteUrl, organization.countryCode, t(`organizationDirectory.${organization.claimStatus}`)].filter(Boolean).join(' · '),
160
+ icon: /*#__PURE__*/_jsx(Avatar, {
161
+ source: organization.avatar,
162
+ name: organization.name,
163
+ size: 40
164
+ }),
165
+ onPress: () => setSelected(organization)
166
+ }, organization.accountId)), results.data.pages[0].items.length === 0 ? /*#__PURE__*/_jsx(Text, {
167
+ children: t('organizationDirectory.empty')
168
+ }) : null, results.hasNextPage ? /*#__PURE__*/_jsx(Button, {
169
+ onPress: () => results.fetchNextPage(),
170
+ disabled: results.isFetchingNextPage,
171
+ children: t('organizationDirectory.loadMore')
172
+ }) : null]
173
+ }) : null, results.isSuccess && query === search.trim() ? /*#__PURE__*/_jsxs(_Fragment, {
174
+ children: [/*#__PURE__*/_jsx(Text, {
175
+ children: t('organizationDirectory.newAccountHint')
176
+ }), /*#__PURE__*/_jsx(Button, {
177
+ onPress: () => onCreateAccount(search.trim(), type),
178
+ children: t('organizationDirectory.newAccount')
179
+ }), personalReady && !adding ? /*#__PURE__*/_jsx(Button, {
180
+ appearance: "outline",
181
+ onPress: () => setAdding(true),
182
+ children: t('organizationDirectory.addDirectory')
183
+ }) : null]
184
+ }) : null, adding ? /*#__PURE__*/_jsxs(_Fragment, {
185
+ children: [/*#__PURE__*/_jsx(Text, {
186
+ children: t('organizationDirectory.directoryHint')
187
+ }), /*#__PURE__*/_jsx(OrganizationTypePicker, {
188
+ value: type,
189
+ onChange: setType,
190
+ disabled: create.isPending
191
+ }), validationError ? /*#__PURE__*/_jsx(Text, {
192
+ accessibilityRole: "alert",
193
+ children: t('organizationDirectory.invalid')
194
+ }) : null, create.isError ? /*#__PURE__*/_jsx(Text, {
195
+ accessibilityRole: "alert",
196
+ children: t('organizationDirectory.saveFailed')
197
+ }) : null, /*#__PURE__*/_jsx(Button, {
198
+ disabled: !personalReady || create.isPending || !results.isSuccess || query !== search.trim(),
199
+ loading: create.isPending,
200
+ onPress: () => {
201
+ if (!createOrganizationSchema.safeParse({
202
+ name: search.trim(),
203
+ organizationType: type
204
+ }).success) {
205
+ setValidationError(true);
206
+ return;
207
+ }
208
+ create.mutate();
209
+ },
210
+ children: t('organizationDirectory.addDirectory')
211
+ })]
212
+ }) : null]
213
+ });
214
+ }
215
+ //# sourceMappingURL=OrganizationDirectorySearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useState","ActivityIndicator","View","useInfiniteQuery","useMutation","useQueryClient","createOrganizationSchema","organizationClaimInputSchema","Avatar","Button","SettingsListGroup","SettingsListItem","TextField","TextFieldInput","Text","useOxy","useI18n","OrganizationTypePicker","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","OrganizationDirectorySearch","onCreateAccount","oxyServices","user","canUsePrivateApi","t","queryClient","search","setSearch","query","setQuery","selected","setSelected","adding","setAdding","type","setType","evidence","setEvidence","validationError","setValidationError","personalReady","kind","timer","setTimeout","trim","clearTimeout","results","queryKey","queryFn","pageParam","organizations","limit","cursor","initialPageParam","undefined","getNextPageParam","page","nextCursor","enabled","length","retry","claim","mutationFn","status","Error","accountId","parse","evidenceReference","onSuccess","invalidateQueries","create","name","organizationType","organization","reset","title","children","className","claimStatus","label","value","onChangeText","maxLength","isSuccess","accessibilityRole","onPress","mutate","disabled","isPending","loading","isError","appearance","refetch","data","pages","flatMap","items","map","description","websiteUrl","countryCode","filter","Boolean","join","icon","source","avatar","size","hasNextPage","fetchNextPage","isFetchingNextPage","onChange","safeParse","success"],"sourceRoot":"../../../../../src","sources":["ui/components/organizations/OrganizationDirectorySearch.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,iBAAiB,EAAEC,IAAI,QAAQ,cAAc;AACtD,SAASC,gBAAgB,EAAEC,WAAW,EAAEC,cAAc,QAAQ,uBAAuB;AACrF,SACEC,wBAAwB,EACxBC,4BAA4B,QAGvB,mBAAmB;AAC1B,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,SAASC,iBAAiB,EAAEC,gBAAgB,QAAQ,6BAA6B;AACjF,SAASC,SAAS,EAAEC,cAAc,QAAQ,0BAA0B;AACpE,SAASC,IAAI,QAAQ,0BAA0B;AAC/C,SAASC,MAAM,QAAQ,6BAA0B;AACjD,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,sBAAsB,QAAQ,6BAA0B;;AAEjE;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,OAAO,SAASC,2BAA2BA,CAAC;EAC1CC;AAGF,CAAC,EAAE;EACD,MAAM;IAAEC,WAAW;IAAEC,IAAI;IAAEC;EAAiB,CAAC,GAAGb,MAAM,CAAC,CAAC;EACxD,MAAM;IAAEc;EAAE,CAAC,GAAGb,OAAO,CAAC,CAAC;EACvB,MAAMc,WAAW,GAAGzB,cAAc,CAAC,CAAC;EACpC,MAAM,CAAC0B,MAAM,EAAEC,SAAS,CAAC,GAAGhC,QAAQ,CAAC,EAAE,CAAC;EACxC,MAAM,CAACiC,KAAK,EAAEC,QAAQ,CAAC,GAAGlC,QAAQ,CAAC,EAAE,CAAC;EACtC,MAAM,CAACmC,QAAQ,EAAEC,WAAW,CAAC,GAAGpC,QAAQ,CAAsB,IAAI,CAAC;EACnE,MAAM,CAACqC,MAAM,EAAEC,SAAS,CAAC,GAAGtC,QAAQ,CAAC,KAAK,CAAC;EAC3C,MAAM,CAACuC,IAAI,EAAEC,OAAO,CAAC,GAAGxC,QAAQ,CAAmB,UAAU,CAAC;EAC9D,MAAM,CAACyC,QAAQ,EAAEC,WAAW,CAAC,GAAG1C,QAAQ,CAAC,EAAE,CAAC;EAC5C,MAAM,CAAC2C,eAAe,EAAEC,kBAAkB,CAAC,GAAG5C,QAAQ,CAAC,KAAK,CAAC;EAC7D,MAAM6C,aAAa,GAAGjB,gBAAgB,IAAID,IAAI,EAAEmB,IAAI,KAAK,UAAU;EACnE/C,SAAS,CAAC,MAAM;IACd,MAAMgD,KAAK,GAAGC,UAAU,CAAC,MAAMd,QAAQ,CAACH,MAAM,CAACkB,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IAC5D,OAAO,MAAMC,YAAY,CAACH,KAAK,CAAC;EAClC,CAAC,EAAE,CAAChB,MAAM,CAAC,CAAC;EACZ,MAAMoB,OAAO,GAAGhD,gBAAgB,CAAC;IAC/BiD,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAEnB,KAAK,CAAC;IACnDoB,OAAO,EAAEA,CAAC;MAAEC;IAAU,CAAC,KACrB5B,WAAW,CAAC6B,aAAa,CAACxB,MAAM,CAAC;MAC/BE,KAAK;MACLuB,KAAK,EAAE,EAAE;MACT,IAAIF,SAAS,GAAG;QAAEG,MAAM,EAAEH;MAAU,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC,CAAC;IACJI,gBAAgB,EAAEC,SAA+B;IACjDC,gBAAgB,EAAGC,IAAI,IAAKA,IAAI,CAACC,UAAU,IAAIH,SAAS;IACxDI,OAAO,EAAE9B,KAAK,CAAC+B,MAAM,GAAG,CAAC;IACzBC,KAAK,EAAE;EACT,CAAC,CAAC;EACF,MAAMC,KAAK,GAAG9D,WAAW,CAAC;IACxB+D,UAAU,EAAEA,CAAA,KAAM;MAChB,IAAI,CAACtB,aAAa,IAAI,CAACV,QAAQ,IAAIA,QAAQ,CAACiC,MAAM,KAAK,QAAQ,EAC7D,MAAM,IAAIC,KAAK,CAAC,0DAA0D,CAAC;MAC7E,OAAO3C,WAAW,CAAC6B,aAAa,CAACW,KAAK,CACpC/B,QAAQ,CAACmC,SAAS,EAClB/D,4BAA4B,CAACgE,KAAK,CAAC;QAAEC,iBAAiB,EAAE/B;MAAS,CAAC,CACpE,CAAC;IACH,CAAC;IACDgC,SAAS,EAAEA,CAAA,KAAM3C,WAAW,CAAC4C,iBAAiB,CAAC;MAAEtB,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe;IAAE,CAAC;EACvF,CAAC,CAAC;EACF,MAAMuB,MAAM,GAAGvE,WAAW,CAAC;IACzB+D,UAAU,EAAEA,CAAA,KAAM;MAChB,IAAI,CAACtB,aAAa,EAAE,MAAM,IAAIwB,KAAK,CAAC,gCAAgC,CAAC;MACrE,OAAO3C,WAAW,CAAC6B,aAAa,CAACoB,MAAM,CACrCrE,wBAAwB,CAACiE,KAAK,CAAC;QAAEK,IAAI,EAAE7C,MAAM,CAACkB,IAAI,CAAC,CAAC;QAAE4B,gBAAgB,EAAEtC;MAAK,CAAC,CAChF,CAAC;IACH,CAAC;IACDkC,SAAS,EAAGK,YAAY,IAAK;MAC3B1C,WAAW,CAAC0C,YAAY,CAAC;MACzBxC,SAAS,CAAC,KAAK,CAAC;MAChB,KAAKR,WAAW,CAAC4C,iBAAiB,CAAC;QAAEtB,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe;MAAE,CAAC,CAAC;IAC5E;EACF,CAAC,CAAC;EACF,MAAM2B,KAAK,GAAGA,CAAA,KAAM;IAClB3C,WAAW,CAAC,IAAI,CAAC;IACjBE,SAAS,CAAC,KAAK,CAAC;IAChBI,WAAW,CAAC,EAAE,CAAC;IACfwB,KAAK,CAACa,KAAK,CAAC,CAAC;IACbJ,MAAM,CAACI,KAAK,CAAC,CAAC;IACdnC,kBAAkB,CAAC,KAAK,CAAC;EAC3B,CAAC;EACD,IAAIT,QAAQ,EACV,oBACEhB,IAAA,CAACT,iBAAiB;IAACsE,KAAK,EAAE7C,QAAQ,CAACyC,IAAK;IAAAK,QAAA,eACtC1D,KAAA,CAACrB,IAAI;MAACgF,SAAS,EAAC,yBAAyB;MAAAD,QAAA,gBACvC9D,IAAA,CAACL,IAAI;QAAAmE,QAAA,EAAEpD,CAAC,CAAC,yBAAyBM,QAAQ,CAACgD,WAAW,EAAE;MAAC,CAAO,CAAC,EAChEhD,QAAQ,CAACiC,MAAM,KAAK,UAAU,gBAC7BjD,IAAA,CAACL,IAAI;QAAAmE,QAAA,EAAEpD,CAAC,CAAC,gCAAgC;MAAC,CAAO,CAAC,GAChD,IAAI,EACPM,QAAQ,CAACgD,WAAW,KAAK,WAAW,gBACnC5D,KAAA,CAAAF,SAAA;QAAA4D,QAAA,gBACE9D,IAAA,CAACL,IAAI;UAAAmE,QAAA,EAAEpD,CAAC,CAAC,iCAAiC;QAAC,CAAO,CAAC,eACnDV,IAAA,CAACP,SAAS;UAAAqE,QAAA,eACR9D,IAAA,CAACN,cAAc;YACbuE,KAAK,EAAEvD,CAAC,CAAC,gCAAgC,CAAE;YAC3CwD,KAAK,EAAE5C,QAAS;YAChB6C,YAAY,EAAE5C,WAAY;YAC1B6C,SAAS,EAAE;UAAK,CACjB;QAAC,CACO,CAAC,eACZpE,IAAA,CAACL,IAAI;UAAAmE,QAAA,EAAEpD,CAAC,CAAC,oCAAoC;QAAC,CAAO,CAAC,EACrDqC,KAAK,CAACsB,SAAS,gBACdrE,IAAA,CAACL,IAAI;UAAC2E,iBAAiB,EAAC,OAAO;UAAAR,QAAA,EAAEpD,CAAC,CAAC,iCAAiC;QAAC,CAAO,CAAC,gBAE7EV,IAAA,CAACV,MAAM;UACLiF,OAAO,EAAEA,CAAA,KAAMxB,KAAK,CAACyB,MAAM,CAAC,CAAE;UAC9BC,QAAQ,EACN,CAAC/C,aAAa,IACdV,QAAQ,CAACiC,MAAM,KAAK,QAAQ,IAC5B,CAAC3B,QAAQ,CAACQ,IAAI,CAAC,CAAC,IAChBiB,KAAK,CAAC2B,SACP;UACDC,OAAO,EAAE5B,KAAK,CAAC2B,SAAU;UAAAZ,QAAA,EAExBpD,CAAC,CAAC,6BAA6B;QAAC,CAC3B,CACT,EACAqC,KAAK,CAAC6B,OAAO,gBACZ5E,IAAA,CAACL,IAAI;UAAC2E,iBAAiB,EAAC,OAAO;UAAAR,QAAA,EAAEpD,CAAC,CAAC,mCAAmC;QAAC,CAAO,CAAC,GAC7E,IAAI;MAAA,CACR,CAAC,gBAEHV,IAAA,CAACL,IAAI;QAAAmE,QAAA,EAAEpD,CAAC,CAAC,mCAAmC;MAAC,CAAO,CACrD,eACDV,IAAA,CAACV,MAAM;QAACuF,UAAU,EAAC,SAAS;QAACN,OAAO,EAAEX,KAAM;QAACa,QAAQ,EAAE1B,KAAK,CAAC2B,SAAU;QAAAZ,QAAA,EACpEpD,CAAC,CAAC,4BAA4B;MAAC,CAC1B,CAAC;IAAA,CACL;EAAC,CACU,CAAC;EAExB,oBACEN,KAAA,CAACrB,IAAI;IAACgF,SAAS,EAAC,cAAc;IAAAD,QAAA,gBAC5B9D,IAAA,CAACP,SAAS;MAAAqE,QAAA,eACR9D,IAAA,CAACN,cAAc;QACbuE,KAAK,EAAEvD,CAAC,CAAC,8BAA8B,CAAE;QACzCwD,KAAK,EAAEtD,MAAO;QACduD,YAAY,EAAGD,KAAK,IAAK;UACvBrD,SAAS,CAACqD,KAAK,CAAC;UAChBzC,kBAAkB,CAAC,KAAK,CAAC;QAC3B,CAAE;QACF2C,SAAS,EAAE;MAAI,CAChB;IAAC,CACO,CAAC,EACXtD,KAAK,IAAIkB,OAAO,CAAC0C,SAAS,gBAAG1E,IAAA,CAAClB,iBAAiB,IAAE,CAAC,GAAG,IAAI,EACzDkD,OAAO,CAAC4C,OAAO,gBACdxE,KAAA,CAACrB,IAAI;MAAA+E,QAAA,gBACH9D,IAAA,CAACL,IAAI;QAAC2E,iBAAiB,EAAC,OAAO;QAAAR,QAAA,EAAEpD,CAAC,CAAC,8BAA8B;MAAC,CAAO,CAAC,eAC1EV,IAAA,CAACV,MAAM;QAACiF,OAAO,EAAEA,CAAA,KAAMvC,OAAO,CAAC8C,OAAO,CAAC,CAAE;QAAAhB,QAAA,EAAEpD,CAAC,CAAC,6BAA6B;MAAC,CAAS,CAAC;IAAA,CACjF,CAAC,GACL,IAAI,EACPsB,OAAO,CAAC+C,IAAI,gBACX3E,KAAA,CAACb,iBAAiB;MAACsE,KAAK,EAAEnD,CAAC,CAAC,6BAA6B,CAAE;MAAAoD,QAAA,GACxD9B,OAAO,CAAC+C,IAAI,CAACC,KAAK,CAChBC,OAAO,CAAEvC,IAAI,IAAKA,IAAI,CAACwC,KAAK,CAAC,CAC7BC,GAAG,CAAExB,YAAY,iBAChB3D,IAAA,CAACR,gBAAgB;QAEfqE,KAAK,EAAEF,YAAY,CAACF,IAAK;QACzB2B,WAAW,EAAE,CACXzB,YAAY,CAAC0B,UAAU,EACvB1B,YAAY,CAAC2B,WAAW,EACxB5E,CAAC,CAAC,yBAAyBiD,YAAY,CAACK,WAAW,EAAE,CAAC,CACvD,CACEuB,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,KAAK,CAAE;QACfC,IAAI,eAAE1F,IAAA,CAACX,MAAM;UAACsG,MAAM,EAAEhC,YAAY,CAACiC,MAAO;UAACnC,IAAI,EAAEE,YAAY,CAACF,IAAK;UAACoC,IAAI,EAAE;QAAG,CAAE,CAAE;QACjFtB,OAAO,EAAEA,CAAA,KAAMtD,WAAW,CAAC0C,YAAY;MAAE,GAVpCA,YAAY,CAACR,SAWnB,CACF,CAAC,EACHnB,OAAO,CAAC+C,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAACE,KAAK,CAACrC,MAAM,KAAK,CAAC,gBACvC7C,IAAA,CAACL,IAAI;QAAAmE,QAAA,EAAEpD,CAAC,CAAC,6BAA6B;MAAC,CAAO,CAAC,GAC7C,IAAI,EACPsB,OAAO,CAAC8D,WAAW,gBAClB9F,IAAA,CAACV,MAAM;QAACiF,OAAO,EAAEA,CAAA,KAAMvC,OAAO,CAAC+D,aAAa,CAAC,CAAE;QAACtB,QAAQ,EAAEzC,OAAO,CAACgE,kBAAmB;QAAAlC,QAAA,EAClFpD,CAAC,CAAC,gCAAgC;MAAC,CAC9B,CAAC,GACP,IAAI;IAAA,CACS,CAAC,GAClB,IAAI,EACPsB,OAAO,CAACqC,SAAS,IAAIvD,KAAK,KAAKF,MAAM,CAACkB,IAAI,CAAC,CAAC,gBAC3C1B,KAAA,CAAAF,SAAA;MAAA4D,QAAA,gBACE9D,IAAA,CAACL,IAAI;QAAAmE,QAAA,EAAEpD,CAAC,CAAC,sCAAsC;MAAC,CAAO,CAAC,eACxDV,IAAA,CAACV,MAAM;QAACiF,OAAO,EAAEA,CAAA,KAAMjE,eAAe,CAACM,MAAM,CAACkB,IAAI,CAAC,CAAC,EAAEV,IAAI,CAAE;QAAA0C,QAAA,EACzDpD,CAAC,CAAC,kCAAkC;MAAC,CAChC,CAAC,EACRgB,aAAa,IAAI,CAACR,MAAM,gBACvBlB,IAAA,CAACV,MAAM;QAACuF,UAAU,EAAC,SAAS;QAACN,OAAO,EAAEA,CAAA,KAAMpD,SAAS,CAAC,IAAI,CAAE;QAAA2C,QAAA,EACzDpD,CAAC,CAAC,oCAAoC;MAAC,CAClC,CAAC,GACP,IAAI;IAAA,CACR,CAAC,GACD,IAAI,EACPQ,MAAM,gBACLd,KAAA,CAAAF,SAAA;MAAA4D,QAAA,gBACE9D,IAAA,CAACL,IAAI;QAAAmE,QAAA,EAAEpD,CAAC,CAAC,qCAAqC;MAAC,CAAO,CAAC,eACvDV,IAAA,CAACF,sBAAsB;QAACoE,KAAK,EAAE9C,IAAK;QAAC6E,QAAQ,EAAE5E,OAAQ;QAACoD,QAAQ,EAAEjB,MAAM,CAACkB;MAAU,CAAE,CAAC,EACrFlD,eAAe,gBACdxB,IAAA,CAACL,IAAI;QAAC2E,iBAAiB,EAAC,OAAO;QAAAR,QAAA,EAAEpD,CAAC,CAAC,+BAA+B;MAAC,CAAO,CAAC,GACzE,IAAI,EACP8C,MAAM,CAACoB,OAAO,gBACb5E,IAAA,CAACL,IAAI;QAAC2E,iBAAiB,EAAC,OAAO;QAAAR,QAAA,EAAEpD,CAAC,CAAC,kCAAkC;MAAC,CAAO,CAAC,GAC5E,IAAI,eACRV,IAAA,CAACV,MAAM;QACLmF,QAAQ,EACN,CAAC/C,aAAa,IAAI8B,MAAM,CAACkB,SAAS,IAAI,CAAC1C,OAAO,CAACqC,SAAS,IAAIvD,KAAK,KAAKF,MAAM,CAACkB,IAAI,CAAC,CACnF;QACD6C,OAAO,EAAEnB,MAAM,CAACkB,SAAU;QAC1BH,OAAO,EAAEA,CAAA,KAAM;UACb,IACE,CAACpF,wBAAwB,CAAC+G,SAAS,CAAC;YAAEzC,IAAI,EAAE7C,MAAM,CAACkB,IAAI,CAAC,CAAC;YAAE4B,gBAAgB,EAAEtC;UAAK,CAAC,CAAC,CACjF+E,OAAO,EACV;YACA1E,kBAAkB,CAAC,IAAI,CAAC;YACxB;UACF;UACA+B,MAAM,CAACgB,MAAM,CAAC,CAAC;QACjB,CAAE;QAAAV,QAAA,EAEDpD,CAAC,CAAC,oCAAoC;MAAC,CAClC,CAAC;IAAA,CACT,CAAC,GACD,IAAI;EAAA,CACJ,CAAC;AAEX","ignoreList":[]}