@oxy.so/services 11.2.0 → 11.4.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 (141) hide show
  1. package/lib/commonjs/index.js +28 -0
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/components/AccountInvitationAcceptance.js +97 -0
  4. package/lib/commonjs/ui/components/AccountInvitationAcceptance.js.map +1 -0
  5. package/lib/commonjs/ui/components/DisplayCurrencySelector.js +49 -0
  6. package/lib/commonjs/ui/components/DisplayCurrencySelector.js.map +1 -0
  7. package/lib/commonjs/ui/components/organizations/OrganizationClaimReview.js +208 -0
  8. package/lib/commonjs/ui/components/organizations/OrganizationClaimReview.js.map +1 -0
  9. package/lib/commonjs/ui/components/organizations/OrganizationClaims.js +77 -0
  10. package/lib/commonjs/ui/components/organizations/OrganizationClaims.js.map +1 -0
  11. package/lib/commonjs/ui/components/organizations/OrganizationDirectorySearch.js +218 -0
  12. package/lib/commonjs/ui/components/organizations/OrganizationDirectorySearch.js.map +1 -0
  13. package/lib/commonjs/ui/components/organizations/OrganizationSettings.js +147 -0
  14. package/lib/commonjs/ui/components/organizations/OrganizationSettings.js.map +1 -0
  15. package/lib/commonjs/ui/components/organizations/OrganizationTypePicker.js +34 -0
  16. package/lib/commonjs/ui/components/organizations/OrganizationTypePicker.js.map +1 -0
  17. package/lib/commonjs/ui/hooks/useDisplayCurrency.js +77 -0
  18. package/lib/commonjs/ui/hooks/useDisplayCurrency.js.map +1 -0
  19. package/lib/commonjs/ui/hooks/useDisplayPrice.js +59 -0
  20. package/lib/commonjs/ui/hooks/useDisplayPrice.js.map +1 -0
  21. package/lib/commonjs/ui/screens/AccountMembersScreen.js +63 -20
  22. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  23. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +14 -5
  24. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  25. package/lib/commonjs/ui/screens/CreateAccountScreen.js +148 -115
  26. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  27. package/lib/commonjs/ui/screens/ManageAccountScreen.js +13 -1
  28. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  29. package/lib/commonjs/ui/screens/PreferencesScreen.js +4 -3
  30. package/lib/commonjs/ui/screens/PreferencesScreen.js.map +1 -1
  31. package/lib/module/index.js +4 -0
  32. package/lib/module/index.js.map +1 -1
  33. package/lib/module/ui/components/AccountInvitationAcceptance.js +94 -0
  34. package/lib/module/ui/components/AccountInvitationAcceptance.js.map +1 -0
  35. package/lib/module/ui/components/DisplayCurrencySelector.js +44 -0
  36. package/lib/module/ui/components/DisplayCurrencySelector.js.map +1 -0
  37. package/lib/module/ui/components/organizations/OrganizationClaimReview.js +205 -0
  38. package/lib/module/ui/components/organizations/OrganizationClaimReview.js.map +1 -0
  39. package/lib/module/ui/components/organizations/OrganizationClaims.js +73 -0
  40. package/lib/module/ui/components/organizations/OrganizationClaims.js.map +1 -0
  41. package/lib/module/ui/components/organizations/OrganizationDirectorySearch.js +215 -0
  42. package/lib/module/ui/components/organizations/OrganizationDirectorySearch.js.map +1 -0
  43. package/lib/module/ui/components/organizations/OrganizationSettings.js +143 -0
  44. package/lib/module/ui/components/organizations/OrganizationSettings.js.map +1 -0
  45. package/lib/module/ui/components/organizations/OrganizationTypePicker.js +30 -0
  46. package/lib/module/ui/components/organizations/OrganizationTypePicker.js.map +1 -0
  47. package/lib/module/ui/hooks/useDisplayCurrency.js +72 -0
  48. package/lib/module/ui/hooks/useDisplayCurrency.js.map +1 -0
  49. package/lib/module/ui/hooks/useDisplayPrice.js +56 -0
  50. package/lib/module/ui/hooks/useDisplayPrice.js.map +1 -0
  51. package/lib/module/ui/screens/AccountMembersScreen.js +63 -20
  52. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  53. package/lib/module/ui/screens/AccountSettingsScreen.js +14 -5
  54. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  55. package/lib/module/ui/screens/CreateAccountScreen.js +149 -115
  56. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  57. package/lib/module/ui/screens/ManageAccountScreen.js +13 -1
  58. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  59. package/lib/module/ui/screens/PreferencesScreen.js +4 -3
  60. package/lib/module/ui/screens/PreferencesScreen.js.map +1 -1
  61. package/lib/typescript/commonjs/index.d.ts +4 -0
  62. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  63. package/lib/typescript/commonjs/ui/components/AccountInvitationAcceptance.d.ts +5 -0
  64. package/lib/typescript/commonjs/ui/components/AccountInvitationAcceptance.d.ts.map +1 -0
  65. package/lib/typescript/commonjs/ui/components/DisplayCurrencySelector.d.ts +3 -0
  66. package/lib/typescript/commonjs/ui/components/DisplayCurrencySelector.d.ts.map +1 -0
  67. package/lib/typescript/commonjs/ui/components/organizations/OrganizationClaimReview.d.ts +3 -0
  68. package/lib/typescript/commonjs/ui/components/organizations/OrganizationClaimReview.d.ts.map +1 -0
  69. package/lib/typescript/commonjs/ui/components/organizations/OrganizationClaims.d.ts +2 -0
  70. package/lib/typescript/commonjs/ui/components/organizations/OrganizationClaims.d.ts.map +1 -0
  71. package/lib/typescript/commonjs/ui/components/organizations/OrganizationDirectorySearch.d.ts +6 -0
  72. package/lib/typescript/commonjs/ui/components/organizations/OrganizationDirectorySearch.d.ts.map +1 -0
  73. package/lib/typescript/commonjs/ui/components/organizations/OrganizationSettings.d.ts +5 -0
  74. package/lib/typescript/commonjs/ui/components/organizations/OrganizationSettings.d.ts.map +1 -0
  75. package/lib/typescript/commonjs/ui/components/organizations/OrganizationTypePicker.d.ts +7 -0
  76. package/lib/typescript/commonjs/ui/components/organizations/OrganizationTypePicker.d.ts.map +1 -0
  77. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +10 -3
  78. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  79. package/lib/typescript/commonjs/ui/hooks/queries/usePersonalPlans.d.ts +4 -3
  80. package/lib/typescript/commonjs/ui/hooks/queries/usePersonalPlans.d.ts.map +1 -1
  81. package/lib/typescript/commonjs/ui/hooks/useDisplayCurrency.d.ts +11 -0
  82. package/lib/typescript/commonjs/ui/hooks/useDisplayCurrency.d.ts.map +1 -0
  83. package/lib/typescript/commonjs/ui/hooks/useDisplayPrice.d.ts +6 -0
  84. package/lib/typescript/commonjs/ui/hooks/useDisplayPrice.d.ts.map +1 -0
  85. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts +1 -1
  86. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  87. package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts +1 -1
  88. package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  89. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  90. package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  91. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  92. package/lib/typescript/commonjs/ui/screens/PreferencesScreen.d.ts.map +1 -1
  93. package/lib/typescript/module/index.d.ts +4 -0
  94. package/lib/typescript/module/index.d.ts.map +1 -1
  95. package/lib/typescript/module/ui/components/AccountInvitationAcceptance.d.ts +5 -0
  96. package/lib/typescript/module/ui/components/AccountInvitationAcceptance.d.ts.map +1 -0
  97. package/lib/typescript/module/ui/components/DisplayCurrencySelector.d.ts +3 -0
  98. package/lib/typescript/module/ui/components/DisplayCurrencySelector.d.ts.map +1 -0
  99. package/lib/typescript/module/ui/components/organizations/OrganizationClaimReview.d.ts +3 -0
  100. package/lib/typescript/module/ui/components/organizations/OrganizationClaimReview.d.ts.map +1 -0
  101. package/lib/typescript/module/ui/components/organizations/OrganizationClaims.d.ts +2 -0
  102. package/lib/typescript/module/ui/components/organizations/OrganizationClaims.d.ts.map +1 -0
  103. package/lib/typescript/module/ui/components/organizations/OrganizationDirectorySearch.d.ts +6 -0
  104. package/lib/typescript/module/ui/components/organizations/OrganizationDirectorySearch.d.ts.map +1 -0
  105. package/lib/typescript/module/ui/components/organizations/OrganizationSettings.d.ts +5 -0
  106. package/lib/typescript/module/ui/components/organizations/OrganizationSettings.d.ts.map +1 -0
  107. package/lib/typescript/module/ui/components/organizations/OrganizationTypePicker.d.ts +7 -0
  108. package/lib/typescript/module/ui/components/organizations/OrganizationTypePicker.d.ts.map +1 -0
  109. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +10 -3
  110. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  111. package/lib/typescript/module/ui/hooks/queries/usePersonalPlans.d.ts +4 -3
  112. package/lib/typescript/module/ui/hooks/queries/usePersonalPlans.d.ts.map +1 -1
  113. package/lib/typescript/module/ui/hooks/useDisplayCurrency.d.ts +11 -0
  114. package/lib/typescript/module/ui/hooks/useDisplayCurrency.d.ts.map +1 -0
  115. package/lib/typescript/module/ui/hooks/useDisplayPrice.d.ts +6 -0
  116. package/lib/typescript/module/ui/hooks/useDisplayPrice.d.ts.map +1 -0
  117. package/lib/typescript/module/ui/icons/Ionicons.d.ts +1 -1
  118. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  119. package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts +1 -1
  120. package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  121. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  122. package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  123. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  124. package/lib/typescript/module/ui/screens/PreferencesScreen.d.ts.map +1 -1
  125. package/package.json +9 -8
  126. package/src/index.ts +5 -0
  127. package/src/ui/components/AccountInvitationAcceptance.tsx +90 -0
  128. package/src/ui/components/DisplayCurrencySelector.tsx +38 -0
  129. package/src/ui/components/__tests__/AccountInvitationAcceptance.test.tsx +61 -0
  130. package/src/ui/components/organizations/OrganizationClaimReview.tsx +218 -0
  131. package/src/ui/components/organizations/OrganizationClaims.tsx +67 -0
  132. package/src/ui/components/organizations/OrganizationDirectorySearch.tsx +228 -0
  133. package/src/ui/components/organizations/OrganizationSettings.tsx +131 -0
  134. package/src/ui/components/organizations/OrganizationTypePicker.tsx +31 -0
  135. package/src/ui/hooks/useDisplayCurrency.ts +64 -0
  136. package/src/ui/hooks/useDisplayPrice.ts +40 -0
  137. package/src/ui/screens/AccountMembersScreen.tsx +71 -27
  138. package/src/ui/screens/AccountSettingsScreen.tsx +22 -4
  139. package/src/ui/screens/CreateAccountScreen.tsx +177 -124
  140. package/src/ui/screens/ManageAccountScreen.tsx +18 -0
  141. package/src/ui/screens/PreferencesScreen.tsx +2 -0
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.OrganizationDirectorySearch = OrganizationDirectorySearch;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _reactQuery = require("@tanstack/react-query");
10
+ var _contracts = require("@oxy.so/contracts");
11
+ var _avatar = require("@oxy.so/bloom/avatar");
12
+ var _button = require("@oxy.so/bloom/button");
13
+ var _settingsList = require("@oxy.so/bloom/settings-list");
14
+ var _textField = require("@oxy.so/bloom/text-field");
15
+ var _typography = require("@oxy.so/bloom/typography");
16
+ var _OxyContext = require("../../context/OxyContext.js");
17
+ var _useI18n = require("../../hooks/useI18n.js");
18
+ var _OrganizationTypePicker = require("./OrganizationTypePicker.js");
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ /** Finding an existing identity never grants ownership or silently creates an account. */
21
+ function OrganizationDirectorySearch({
22
+ onCreateAccount
23
+ }) {
24
+ const {
25
+ oxyServices,
26
+ user,
27
+ canUsePrivateApi
28
+ } = (0, _OxyContext.useOxy)();
29
+ const {
30
+ t
31
+ } = (0, _useI18n.useI18n)();
32
+ const queryClient = (0, _reactQuery.useQueryClient)();
33
+ const [search, setSearch] = (0, _react.useState)('');
34
+ const [query, setQuery] = (0, _react.useState)('');
35
+ const [selected, setSelected] = (0, _react.useState)(null);
36
+ const [adding, setAdding] = (0, _react.useState)(false);
37
+ const [type, setType] = (0, _react.useState)('business');
38
+ const [evidence, setEvidence] = (0, _react.useState)('');
39
+ const [validationError, setValidationError] = (0, _react.useState)(false);
40
+ const personalReady = canUsePrivateApi && user?.kind === 'personal';
41
+ (0, _react.useEffect)(() => {
42
+ const timer = setTimeout(() => setQuery(search.trim()), 300);
43
+ return () => clearTimeout(timer);
44
+ }, [search]);
45
+ const results = (0, _reactQuery.useInfiniteQuery)({
46
+ queryKey: ['oxy', 'organizations', 'search', query],
47
+ queryFn: ({
48
+ pageParam
49
+ }) => oxyServices.organizations.search({
50
+ query,
51
+ limit: 20,
52
+ ...(pageParam ? {
53
+ cursor: pageParam
54
+ } : {})
55
+ }),
56
+ initialPageParam: undefined,
57
+ getNextPageParam: page => page.nextCursor ?? undefined,
58
+ enabled: query.length > 0,
59
+ retry: false
60
+ });
61
+ const claim = (0, _reactQuery.useMutation)({
62
+ mutationFn: () => {
63
+ if (!personalReady || !selected || selected.status !== 'active') throw new Error('An active organization and personal session are required');
64
+ return oxyServices.organizations.claim(selected.accountId, _contracts.organizationClaimInputSchema.parse({
65
+ evidenceReference: evidence
66
+ }));
67
+ },
68
+ onSuccess: () => queryClient.invalidateQueries({
69
+ queryKey: ['oxy', 'organizations']
70
+ })
71
+ });
72
+ const create = (0, _reactQuery.useMutation)({
73
+ mutationFn: () => {
74
+ if (!personalReady) throw new Error('A personal session is required');
75
+ return oxyServices.organizations.create(_contracts.createOrganizationSchema.parse({
76
+ name: search.trim(),
77
+ organizationType: type
78
+ }));
79
+ },
80
+ onSuccess: organization => {
81
+ setSelected(organization);
82
+ setAdding(false);
83
+ void queryClient.invalidateQueries({
84
+ queryKey: ['oxy', 'organizations']
85
+ });
86
+ }
87
+ });
88
+ const reset = () => {
89
+ setSelected(null);
90
+ setAdding(false);
91
+ setEvidence('');
92
+ claim.reset();
93
+ create.reset();
94
+ setValidationError(false);
95
+ };
96
+ if (selected) return /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListGroup, {
97
+ title: selected.name,
98
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
99
+ className: "gap-space-16 p-space-16",
100
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
101
+ children: t(`organizationDirectory.${selected.claimStatus}`)
102
+ }), selected.status === 'inactive' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
103
+ children: t('organizationDirectory.inactive')
104
+ }) : null, selected.claimStatus === 'unclaimed' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
105
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
106
+ children: t('organizationDirectory.claimHint')
107
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextField, {
108
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextFieldInput, {
109
+ label: t('organizationDirectory.evidence'),
110
+ value: evidence,
111
+ onChangeText: setEvidence,
112
+ maxLength: 1000
113
+ })
114
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
115
+ children: t('organizationDirectory.evidenceHint')
116
+ }), claim.isSuccess ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
117
+ accessibilityRole: "alert",
118
+ children: t('organizationDirectory.claimSent')
119
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
120
+ onPress: () => claim.mutate(),
121
+ disabled: !personalReady || selected.status !== 'active' || !evidence.trim() || claim.isPending,
122
+ loading: claim.isPending,
123
+ children: t('organizationDirectory.claim')
124
+ }), claim.isError ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
125
+ accessibilityRole: "alert",
126
+ children: t('organizationDirectory.claimFailed')
127
+ }) : null]
128
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
129
+ children: t('organizationDirectory.claimedHint')
130
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
131
+ appearance: "outline",
132
+ onPress: reset,
133
+ disabled: claim.isPending,
134
+ children: t('organizationDirectory.back')
135
+ })]
136
+ })
137
+ });
138
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
139
+ className: "gap-space-16",
140
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextField, {
141
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextFieldInput, {
142
+ label: t('organizationDirectory.search'),
143
+ value: search,
144
+ onChangeText: value => {
145
+ setSearch(value);
146
+ setValidationError(false);
147
+ },
148
+ maxLength: 200
149
+ })
150
+ }), query && results.isPending ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {}) : null, results.isError ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
151
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
152
+ accessibilityRole: "alert",
153
+ children: t('organizationDirectory.failed')
154
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
155
+ onPress: () => results.refetch(),
156
+ children: t('organizationDirectory.retry')
157
+ })]
158
+ }) : null, results.data ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_settingsList.SettingsListGroup, {
159
+ title: t('organizationDirectory.title'),
160
+ children: [results.data.pages.flatMap(page => page.items).map(organization => /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
161
+ title: organization.name,
162
+ description: [organization.websiteUrl, organization.countryCode, t(`organizationDirectory.${organization.claimStatus}`)].filter(Boolean).join(' · '),
163
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_avatar.Avatar, {
164
+ source: organization.avatar,
165
+ name: organization.name,
166
+ size: 40
167
+ }),
168
+ onPress: () => setSelected(organization)
169
+ }, organization.accountId)), results.data.pages[0].items.length === 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
170
+ children: t('organizationDirectory.empty')
171
+ }) : null, results.hasNextPage ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
172
+ onPress: () => results.fetchNextPage(),
173
+ disabled: results.isFetchingNextPage,
174
+ children: t('organizationDirectory.loadMore')
175
+ }) : null]
176
+ }) : null, results.isSuccess && query === search.trim() ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
177
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
178
+ children: t('organizationDirectory.newAccountHint')
179
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
180
+ onPress: () => onCreateAccount(search.trim(), type),
181
+ children: t('organizationDirectory.newAccount')
182
+ }), personalReady && !adding ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
183
+ appearance: "outline",
184
+ onPress: () => setAdding(true),
185
+ children: t('organizationDirectory.addDirectory')
186
+ }) : null]
187
+ }) : null, adding ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
188
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
189
+ children: t('organizationDirectory.directoryHint')
190
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_OrganizationTypePicker.OrganizationTypePicker, {
191
+ value: type,
192
+ onChange: setType,
193
+ disabled: create.isPending
194
+ }), validationError ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
195
+ accessibilityRole: "alert",
196
+ children: t('organizationDirectory.invalid')
197
+ }) : null, create.isError ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
198
+ accessibilityRole: "alert",
199
+ children: t('organizationDirectory.saveFailed')
200
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
201
+ disabled: !personalReady || create.isPending || !results.isSuccess || query !== search.trim(),
202
+ loading: create.isPending,
203
+ onPress: () => {
204
+ if (!_contracts.createOrganizationSchema.safeParse({
205
+ name: search.trim(),
206
+ organizationType: type
207
+ }).success) {
208
+ setValidationError(true);
209
+ return;
210
+ }
211
+ create.mutate();
212
+ },
213
+ children: t('organizationDirectory.addDirectory')
214
+ })]
215
+ }) : null]
216
+ });
217
+ }
218
+ //# sourceMappingURL=OrganizationDirectorySearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_reactQuery","_contracts","_avatar","_button","_settingsList","_textField","_typography","_OxyContext","_useI18n","_OrganizationTypePicker","_jsxRuntime","OrganizationDirectorySearch","onCreateAccount","oxyServices","user","canUsePrivateApi","useOxy","t","useI18n","queryClient","useQueryClient","search","setSearch","useState","query","setQuery","selected","setSelected","adding","setAdding","type","setType","evidence","setEvidence","validationError","setValidationError","personalReady","kind","useEffect","timer","setTimeout","trim","clearTimeout","results","useInfiniteQuery","queryKey","queryFn","pageParam","organizations","limit","cursor","initialPageParam","undefined","getNextPageParam","page","nextCursor","enabled","length","retry","claim","useMutation","mutationFn","status","Error","accountId","organizationClaimInputSchema","parse","evidenceReference","onSuccess","invalidateQueries","create","createOrganizationSchema","name","organizationType","organization","reset","jsx","SettingsListGroup","title","children","jsxs","View","className","Text","claimStatus","Fragment","TextField","TextFieldInput","label","value","onChangeText","maxLength","isSuccess","accessibilityRole","Button","onPress","mutate","disabled","isPending","loading","isError","appearance","ActivityIndicator","refetch","data","pages","flatMap","items","map","SettingsListItem","description","websiteUrl","countryCode","filter","Boolean","join","icon","Avatar","source","avatar","size","hasNextPage","fetchNextPage","isFetchingNextPage","OrganizationTypePicker","onChange","safeParse","success"],"sourceRoot":"../../../../../src","sources":["ui/components/organizations/OrganizationDirectorySearch.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.OrganizationSettings = OrganizationSettings;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _reactQuery = require("@tanstack/react-query");
10
+ var _contracts = require("@oxy.so/contracts");
11
+ var _button = require("@oxy.so/bloom/button");
12
+ var _toast = require("@oxy.so/bloom/toast");
13
+ var _settingsList = require("@oxy.so/bloom/settings-list");
14
+ var _textField = require("@oxy.so/bloom/text-field");
15
+ var _typography = require("@oxy.so/bloom/typography");
16
+ var _OxyContext = require("../../context/OxyContext.js");
17
+ var _useI18n = require("../../hooks/useI18n.js");
18
+ var _OrganizationTypePicker = require("./OrganizationTypePicker.js");
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ function OrganizationSettings({
21
+ accountId,
22
+ canUpdate
23
+ }) {
24
+ const {
25
+ oxyServices,
26
+ canUsePrivateApi
27
+ } = (0, _OxyContext.useOxy)();
28
+ const {
29
+ t
30
+ } = (0, _useI18n.useI18n)();
31
+ const organization = (0, _reactQuery.useQuery)({
32
+ queryKey: ['oxy', 'organizations', accountId],
33
+ queryFn: () => oxyServices.organizations.get(accountId),
34
+ retry: false
35
+ });
36
+ if (organization.isPending) return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {});
37
+ if (organization.isError) return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
38
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
39
+ accessibilityRole: "alert",
40
+ children: t('organizationDirectory.failed')
41
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
42
+ onPress: () => organization.refetch(),
43
+ children: t('organizationDirectory.retry')
44
+ })]
45
+ });
46
+ if (!canUpdate || !canUsePrivateApi) return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_settingsList.SettingsListGroup, {
47
+ title: t('organizationDirectory.title'),
48
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
49
+ children: t(`organizationDirectory.types.${organization.data.organizationType}`)
50
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
51
+ children: t('organizationDirectory.readonly')
52
+ })]
53
+ });
54
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(OrganizationForm, {
55
+ organization: organization.data
56
+ }, `${accountId}:${organization.data.updatedAt}`);
57
+ }
58
+ function OrganizationForm({
59
+ organization
60
+ }) {
61
+ const {
62
+ oxyServices,
63
+ canUsePrivateApi
64
+ } = (0, _OxyContext.useOxy)();
65
+ const {
66
+ t
67
+ } = (0, _useI18n.useI18n)();
68
+ const queryClient = (0, _reactQuery.useQueryClient)();
69
+ const [legalName, setLegalName] = (0, _react.useState)(organization.legalName ?? '');
70
+ const [website, setWebsite] = (0, _react.useState)(organization.websiteUrl ?? '');
71
+ const [country, setCountry] = (0, _react.useState)(organization.countryCode ?? '');
72
+ const [type, setType] = (0, _react.useState)(organization.organizationType);
73
+ const [invalid, setInvalid] = (0, _react.useState)(false);
74
+ const save = (0, _reactQuery.useMutation)({
75
+ mutationFn: input => {
76
+ if (!canUsePrivateApi) throw new Error('An authenticated session is required');
77
+ return oxyServices.organizations.update(organization.accountId, input);
78
+ },
79
+ onSuccess: () => {
80
+ _toast.toast.success(t('organizationDirectory.saved'));
81
+ void queryClient.invalidateQueries({
82
+ queryKey: ['oxy', 'organizations']
83
+ });
84
+ void queryClient.invalidateQueries({
85
+ queryKey: ['accounts']
86
+ });
87
+ void queryClient.invalidateQueries({
88
+ queryKey: ['users']
89
+ });
90
+ }
91
+ });
92
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListGroup, {
93
+ title: t('organizationDirectory.title'),
94
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
95
+ className: "gap-space-16 p-space-16",
96
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextField, {
97
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextFieldInput, {
98
+ label: t('organizationDirectory.legalName'),
99
+ value: legalName,
100
+ onChangeText: setLegalName,
101
+ maxLength: 300
102
+ })
103
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextField, {
104
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextFieldInput, {
105
+ label: t('organizationDirectory.website'),
106
+ value: website,
107
+ onChangeText: setWebsite,
108
+ autoCapitalize: "none",
109
+ maxLength: 2048
110
+ })
111
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextField, {
112
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextFieldInput, {
113
+ label: t('organizationDirectory.country'),
114
+ value: country,
115
+ onChangeText: setCountry,
116
+ autoCapitalize: "characters",
117
+ maxLength: 2
118
+ })
119
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_OrganizationTypePicker.OrganizationTypePicker, {
120
+ value: type,
121
+ onChange: setType,
122
+ disabled: save.isPending
123
+ }), invalid ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
124
+ accessibilityRole: "alert",
125
+ children: t('organizationDirectory.invalid')
126
+ }) : null, save.isError ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
127
+ accessibilityRole: "alert",
128
+ children: t('organizationDirectory.saveFailed')
129
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
130
+ disabled: save.isPending || !canUsePrivateApi,
131
+ loading: save.isPending,
132
+ onPress: () => {
133
+ const input = _contracts.updateOrganizationSchema.safeParse({
134
+ legalName: legalName.trim() || null,
135
+ websiteUrl: website.trim() || null,
136
+ countryCode: country.trim().toUpperCase() || null,
137
+ organizationType: type
138
+ });
139
+ setInvalid(!input.success);
140
+ if (input.success) save.mutate(input.data);
141
+ },
142
+ children: t('organizationDirectory.save')
143
+ })]
144
+ })
145
+ });
146
+ }
147
+ //# sourceMappingURL=OrganizationSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_reactQuery","_contracts","_button","_toast","_settingsList","_textField","_typography","_OxyContext","_useI18n","_OrganizationTypePicker","_jsxRuntime","OrganizationSettings","accountId","canUpdate","oxyServices","canUsePrivateApi","useOxy","t","useI18n","organization","useQuery","queryKey","queryFn","organizations","get","retry","isPending","jsx","ActivityIndicator","isError","jsxs","View","children","Text","accessibilityRole","Button","onPress","refetch","SettingsListGroup","title","data","organizationType","OrganizationForm","updatedAt","queryClient","useQueryClient","legalName","setLegalName","useState","website","setWebsite","websiteUrl","country","setCountry","countryCode","type","setType","invalid","setInvalid","save","useMutation","mutationFn","input","Error","update","onSuccess","toast","success","invalidateQueries","className","TextField","TextFieldInput","label","value","onChangeText","maxLength","autoCapitalize","OrganizationTypePicker","onChange","disabled","loading","updateOrganizationSchema","safeParse","trim","toUpperCase","mutate"],"sourceRoot":"../../../../../src","sources":["ui/components/organizations/OrganizationSettings.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.OrganizationTypePicker = OrganizationTypePicker;
7
+ var _contracts = require("@oxy.so/contracts");
8
+ var _settingsList = require("@oxy.so/bloom/settings-list");
9
+ var _typography = require("@oxy.so/bloom/typography");
10
+ var _useI18n = require("../../hooks/useI18n.js");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function OrganizationTypePicker({
13
+ value,
14
+ onChange,
15
+ disabled = false
16
+ }) {
17
+ const {
18
+ t
19
+ } = (0, _useI18n.useI18n)();
20
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListGroup, {
21
+ title: t('organizationDirectory.type'),
22
+ children: _contracts.ORGANIZATION_TYPES.map(type => /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
23
+ title: t(`organizationDirectory.types.${type}`),
24
+ accessibilityLabel: t(`organizationDirectory.types.${type}`),
25
+ disabled: disabled,
26
+ onPress: () => onChange(type),
27
+ showChevron: false,
28
+ rightElement: value === type ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
29
+ children: "\u2713"
30
+ }) : undefined
31
+ }, type))
32
+ });
33
+ }
34
+ //# sourceMappingURL=OrganizationTypePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_contracts","require","_settingsList","_typography","_useI18n","_jsxRuntime","OrganizationTypePicker","value","onChange","disabled","t","useI18n","jsx","SettingsListGroup","title","children","ORGANIZATION_TYPES","map","type","SettingsListItem","accessibilityLabel","onPress","showChevron","rightElement","Text","undefined"],"sourceRoot":"../../../../../src","sources":["ui/components/organizations/OrganizationTypePicker.tsx"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAA8C,IAAAI,WAAA,GAAAJ,OAAA;AAEvC,SAASK,sBAAsBA,CAAC;EACrCC,KAAK;EACLC,QAAQ;EACRC,QAAQ,GAAG;AAKb,CAAC,EAAE;EACD,MAAM;IAAEC;EAAE,CAAC,GAAG,IAAAC,gBAAO,EAAC,CAAC;EACvB,oBACE,IAAAN,WAAA,CAAAO,GAAA,EAACV,aAAA,CAAAW,iBAAiB;IAACC,KAAK,EAAEJ,CAAC,CAAC,4BAA4B,CAAE;IAAAK,QAAA,EACvDC,6BAAkB,CAACC,GAAG,CAAEC,IAAI,iBAC3B,IAAAb,WAAA,CAAAO,GAAA,EAACV,aAAA,CAAAiB,gBAAgB;MAEfL,KAAK,EAAEJ,CAAC,CAAC,+BAA+BQ,IAAI,EAAE,CAAE;MAChDE,kBAAkB,EAAEV,CAAC,CAAC,+BAA+BQ,IAAI,EAAE,CAAE;MAC7DT,QAAQ,EAAEA,QAAS;MACnBY,OAAO,EAAEA,CAAA,KAAMb,QAAQ,CAACU,IAAI,CAAE;MAC9BI,WAAW,EAAE,KAAM;MACnBC,YAAY,EAAEhB,KAAK,KAAKW,IAAI,gBAAG,IAAAb,WAAA,CAAAO,GAAA,EAACT,WAAA,CAAAqB,IAAI;QAAAT,QAAA,EAAC;MAAC,CAAM,CAAC,GAAGU;IAAU,GANrDP,IAON,CACF;EAAC,CACe,CAAC;AAExB","ignoreList":[]}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DISPLAY_CURRENCIES = void 0;
7
+ exports.useDisplayCurrency = useDisplayCurrency;
8
+ var _react = require("react");
9
+ var _reactQuery = require("@tanstack/react-query");
10
+ var _core = require("@oxy.so/core");
11
+ var _OxyContext = require("../context/OxyContext.js");
12
+ var _useAccountQueries = require("./queries/useAccountQueries.js");
13
+ var _queryKeys = require("./queries/queryKeys.js");
14
+ var _authStore = require("../stores/authStore.js");
15
+ var _mutationKeys = require("./mutations/mutationKeys.js");
16
+ const DISPLAY_CURRENCIES = exports.DISPLAY_CURRENCIES = ['USD', 'EUR', 'FAIR'];
17
+ let anonymousCurrency = 'USD';
18
+ const anonymousListeners = new Set();
19
+ const subscribeAnonymous = listener => {
20
+ anonymousListeners.add(listener);
21
+ return () => {
22
+ anonymousListeners.delete(listener);
23
+ };
24
+ };
25
+ const anonymousSnapshot = () => anonymousCurrency;
26
+
27
+ /** Account-scoped server preference. A late save can never replace another account. */
28
+ function useDisplayCurrency() {
29
+ const {
30
+ oxyServices,
31
+ activeSessionId,
32
+ isAuthenticated,
33
+ user
34
+ } = (0, _OxyContext.useOxy)();
35
+ const current = (0, _useAccountQueries.useCurrentUser)({
36
+ enabled: isAuthenticated
37
+ });
38
+ const client = (0, _reactQuery.useQueryClient)();
39
+ const anonymous = (0, _react.useSyncExternalStore)(subscribeAnonymous, anonymousSnapshot, () => 'USD');
40
+ const currency = isAuthenticated ? current.data?.userPreferences?.displayCurrency ?? user?.userPreferences?.displayCurrency ?? 'USD' : anonymous;
41
+ const mutation = (0, _reactQuery.useMutation)({
42
+ mutationKey: [..._mutationKeys.mutationKeys.account.updateSettings],
43
+ mutationFn: async input => {
44
+ const updated = await (0, _core.authenticatedApiCall)(oxyServices, input.sessionId, () => oxyServices.users.updateMe({
45
+ userPreferences: {
46
+ displayCurrency: input.currency
47
+ }
48
+ }));
49
+ if (updated.id !== input.userId) throw new Error('Account changed. Please try again.');
50
+ return updated;
51
+ },
52
+ onSuccess: (updated, input) => {
53
+ client.setQueryData(_queryKeys.queryKeys.accounts.current(input.sessionId), updated);
54
+ if (_authStore.useAuthStore.getState().user?.id === input.userId) _authStore.useAuthStore.getState().setUser(updated);
55
+ }
56
+ });
57
+ function selectCurrency(next) {
58
+ if (!DISPLAY_CURRENCIES.includes(next)) return;
59
+ if (!isAuthenticated) {
60
+ anonymousCurrency = next;
61
+ for (const listener of anonymousListeners) listener();
62
+ return;
63
+ }
64
+ if (activeSessionId && user?.id) mutation.mutate({
65
+ currency: next,
66
+ sessionId: activeSessionId,
67
+ userId: user.id
68
+ });
69
+ }
70
+ return {
71
+ currency,
72
+ selectCurrency,
73
+ isSaving: mutation.isPending,
74
+ error: mutation.error
75
+ };
76
+ }
77
+ //# sourceMappingURL=useDisplayCurrency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactQuery","_core","_OxyContext","_useAccountQueries","_queryKeys","_authStore","_mutationKeys","DISPLAY_CURRENCIES","exports","anonymousCurrency","anonymousListeners","Set","subscribeAnonymous","listener","add","delete","anonymousSnapshot","useDisplayCurrency","oxyServices","activeSessionId","isAuthenticated","user","useOxy","current","useCurrentUser","enabled","client","useQueryClient","anonymous","useSyncExternalStore","currency","data","userPreferences","displayCurrency","mutation","useMutation","mutationKey","mutationKeys","account","updateSettings","mutationFn","input","updated","authenticatedApiCall","sessionId","users","updateMe","id","userId","Error","onSuccess","setQueryData","queryKeys","accounts","useAuthStore","getState","setUser","selectCurrency","next","includes","mutate","isSaving","isPending","error"],"sourceRoot":"../../../../src","sources":["ui/hooks/useDisplayCurrency.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useDisplayPrice = useDisplayPrice;
7
+ var _reactQuery = require("@tanstack/react-query");
8
+ var _react = require("react");
9
+ var _display = require("@peable.to/sdk/display");
10
+ var _useDisplayCurrency = require("./useDisplayCurrency.js");
11
+ var _useI18n = require("./useI18n.js");
12
+ /** Display conversion only. Pricing and checkout request bodies retain their source units. */
13
+ function useDisplayPrice() {
14
+ const {
15
+ currency
16
+ } = (0, _useDisplayCurrency.useDisplayCurrency)();
17
+ const {
18
+ t
19
+ } = (0, _useI18n.useI18n)();
20
+ const [now, setNow] = (0, _react.useState)(Date.now);
21
+ const rates = (0, _reactQuery.useQuery)({
22
+ queryKey: ['display-currency', 'faircoin-indexed-price'],
23
+ queryFn: ({
24
+ signal
25
+ }) => (0, _display.readDisplayRates)({
26
+ signal
27
+ }),
28
+ enabled: currency !== 'USD',
29
+ staleTime: 30_000,
30
+ gcTime: 0,
31
+ retry: false,
32
+ refetchInterval: 60_000,
33
+ refetchOnWindowFocus: 'always'
34
+ });
35
+ (0, _react.useEffect)(() => {
36
+ const timer = setInterval(() => setNow(Date.now()), 1000);
37
+ return () => clearInterval(timer);
38
+ }, []);
39
+ function formatUsd(minorUnits) {
40
+ const display = (0, _display.convertDisplayAmount)({
41
+ units: String(minorUnits),
42
+ currency: 'USD',
43
+ displayCurrency: currency,
44
+ rates: rates.isError ? null : rates.data,
45
+ now
46
+ });
47
+ if (!display) return t('preferences.displayCurrency.unavailable', {
48
+ currency
49
+ });
50
+ return currency === 'USD' ? display : t('preferences.displayCurrency.approximate', {
51
+ amount: display
52
+ });
53
+ }
54
+ return {
55
+ currency,
56
+ formatUsd
57
+ };
58
+ }
59
+ //# sourceMappingURL=useDisplayPrice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactQuery","require","_react","_display","_useDisplayCurrency","_useI18n","useDisplayPrice","currency","useDisplayCurrency","t","useI18n","now","setNow","useState","Date","rates","useQuery","queryKey","queryFn","signal","readDisplayRates","enabled","staleTime","gcTime","retry","refetchInterval","refetchOnWindowFocus","useEffect","timer","setInterval","clearInterval","formatUsd","minorUnits","display","convertDisplayAmount","units","String","displayCurrency","isError","data","amount"],"sourceRoot":"../../../../src","sources":["ui/hooks/useDisplayPrice.ts"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAEA;AACO,SAASK,eAAeA,CAAA,EAAG;EAChC,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAAC,sCAAkB,EAAC,CAAC;EACzC,MAAM;IAAEC;EAAE,CAAC,GAAG,IAAAC,gBAAO,EAAC,CAAC;EACvB,MAAM,CAACC,GAAG,EAAEC,MAAM,CAAC,GAAG,IAAAC,eAAQ,EAACC,IAAI,CAACH,GAAG,CAAC;EACxC,MAAMI,KAAK,GAAG,IAAAC,oBAAQ,EAAC;IACrBC,QAAQ,EAAE,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IACxDC,OAAO,EAAEA,CAAC;MAAEC;IAAO,CAAC,KAAK,IAAAC,yBAAgB,EAAC;MAAED;IAAO,CAAC,CAAC;IACrDE,OAAO,EAAEd,QAAQ,KAAK,KAAK;IAC3Be,SAAS,EAAE,MAAM;IACjBC,MAAM,EAAE,CAAC;IACTC,KAAK,EAAE,KAAK;IACZC,eAAe,EAAE,MAAM;IACvBC,oBAAoB,EAAE;EACxB,CAAC,CAAC;EACF,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,KAAK,GAAGC,WAAW,CAAC,MAAMjB,MAAM,CAACE,IAAI,CAACH,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IACzD,OAAO,MAAMmB,aAAa,CAACF,KAAK,CAAC;EACnC,CAAC,EAAE,EAAE,CAAC;EACN,SAASG,SAASA,CAACC,UAAkB,EAAE;IACrC,MAAMC,OAAO,GAAG,IAAAC,6BAAoB,EAAC;MACnCC,KAAK,EAAEC,MAAM,CAACJ,UAAU,CAAC;MACzBzB,QAAQ,EAAE,KAAK;MACf8B,eAAe,EAAE9B,QAAQ;MACzBQ,KAAK,EAAEA,KAAK,CAACuB,OAAO,GAAG,IAAI,GAAGvB,KAAK,CAACwB,IAAI;MACxC5B;IACF,CAAC,CAAC;IACF,IAAI,CAACsB,OAAO,EAAE,OAAOxB,CAAC,CAAC,yCAAyC,EAAE;MAAEF;IAAS,CAAC,CAAC;IAC/E,OAAOA,QAAQ,KAAK,KAAK,GACrB0B,OAAO,GACPxB,CAAC,CAAC,yCAAyC,EAAE;MAAE+B,MAAM,EAAEP;IAAQ,CAAC,CAAC;EACvE;EACA,OAAO;IAAE1B,QAAQ;IAAEwB;EAAU,CAAC;AAChC","ignoreList":[]}