@orderly.network/portfolio 2.0.0 → 2.0.1-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,10 +1,11 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as _orderly_network_types from '@orderly.network/types';
3
3
  import { API } from '@orderly.network/types';
4
- import { Column } from '@orderly.network/ui';
4
+ import { TableColumn, PaginationMeta } from '@orderly.network/ui';
5
5
  import * as react from 'react';
6
6
  import { FC, PropsWithChildren } from 'react';
7
7
  import { LayoutProps } from '@orderly.network/ui-scaffold';
8
+ import { PositionsProps } from '@orderly.network/ui-positions';
8
9
 
9
10
  type Props = {
10
11
  connected?: boolean;
@@ -12,7 +13,7 @@ type Props = {
12
13
  onWithdraw?: () => void;
13
14
  onDeposit?: () => void;
14
15
  onLeverageEdit?: () => void;
15
- portfolioValue: number;
16
+ portfolioValue: number | null;
16
17
  visible: boolean;
17
18
  toggleVisible: () => void;
18
19
  wrongNetwork: boolean;
@@ -67,7 +68,7 @@ declare const useAssetsLineChartScript: () => {
67
68
 
68
69
  declare const HistoryDataGroupWidget: () => react_jsx_runtime.JSX.Element;
69
70
 
70
- declare const useAssetHistoryColumns: () => Column[];
71
+ declare const useAssetHistoryColumns: () => TableColumn[];
71
72
 
72
73
  declare const useAssetHistoryHook: () => {
73
74
  dataSource: _orderly_network_types.API.AssetHistoryRow[];
@@ -88,7 +89,8 @@ declare const useAssetHistoryHook: () => {
88
89
  value: any;
89
90
  }) => void;
90
91
  setPage: react.Dispatch<react.SetStateAction<number>>;
91
- setPageSize: (pageSize: number) => void;
92
+ setPageSize: (size: number) => void;
93
+ pagination: PaginationMeta;
92
94
  };
93
95
 
94
96
  type UseAssetHistoryReturn = ReturnType<typeof useAssetHistoryHook>;
@@ -157,10 +159,11 @@ declare const useFundingHistoryHook: () => {
157
159
  value: any;
158
160
  }) => void;
159
161
  readonly setPage: react.Dispatch<react.SetStateAction<number>>;
160
- readonly setPageSize: (pageSize: number) => void;
162
+ readonly setPageSize: (size: number) => void;
163
+ readonly pagination: PaginationMeta;
161
164
  };
162
165
 
163
- declare const useFundingHistoryColumns: () => Column<API.FundingFeeRow & {
166
+ declare const useFundingHistoryColumns: () => TableColumn<API.FundingFeeRow & {
164
167
  annual_rate: number;
165
168
  }>[];
166
169
 
@@ -187,7 +190,8 @@ declare const useDistributionHistoryHook: () => {
187
190
  value: any;
188
191
  }) => void;
189
192
  readonly setPage: react.Dispatch<react.SetStateAction<number>>;
190
- readonly setPageSize: (pageSize: number) => void;
193
+ readonly setPageSize: (size: number) => void;
194
+ readonly pagination: PaginationMeta;
191
195
  };
192
196
  type useDistributionHistoryHookReturn = ReturnType<typeof useDistributionHistoryHook>;
193
197
 
@@ -196,6 +200,10 @@ declare const DistributionHistoryUI: FC<FundingHistoryProps>;
196
200
 
197
201
  declare const OverviewPage: () => react_jsx_runtime.JSX.Element;
198
202
 
203
+ declare const OverviewContextProvider: ({ children, }: {
204
+ children: React.ReactNode;
205
+ }) => react_jsx_runtime.JSX.Element;
206
+
199
207
  declare const index$3_AssetHistory: typeof AssetHistory;
200
208
  declare const index$3_AssetHistoryWidget: typeof AssetHistoryWidget;
201
209
  declare const index$3_AssetWidget: typeof AssetWidget;
@@ -205,6 +213,7 @@ declare const index$3_DistributionHistoryUI: typeof DistributionHistoryUI;
205
213
  declare const index$3_DistributionHistoryWidget: typeof DistributionHistoryWidget;
206
214
  declare const index$3_FundingHistoryWidget: typeof FundingHistoryWidget;
207
215
  declare const index$3_HistoryDataGroupWidget: typeof HistoryDataGroupWidget;
216
+ declare const index$3_OverviewContextProvider: typeof OverviewContextProvider;
208
217
  declare const index$3_OverviewPage: typeof OverviewPage;
209
218
  declare const index$3_PerformanceUI: typeof PerformanceUI;
210
219
  declare const index$3_PerformanceWidget: typeof PerformanceWidget;
@@ -215,14 +224,14 @@ declare const index$3_useFundingHistoryColumns: typeof useFundingHistoryColumns;
215
224
  declare const index$3_useFundingHistoryHook: typeof useFundingHistoryHook;
216
225
  declare const index$3_usePerformanceScript: typeof usePerformanceScript;
217
226
  declare namespace index$3 {
218
- export { index$3_AssetHistory as AssetHistory, index$3_AssetHistoryWidget as AssetHistoryWidget, index$3_AssetWidget as AssetWidget, index$3_AssetsChartWidget as AssetsChartWidget, index$3_AssetsUI as AssetsUI, index$3_DistributionHistoryUI as DistributionHistoryUI, index$3_DistributionHistoryWidget as DistributionHistoryWidget, index$3_FundingHistoryWidget as FundingHistoryWidget, index$3_HistoryDataGroupWidget as HistoryDataGroupWidget, index$3_OverviewPage as OverviewPage, index$3_PerformanceUI as PerformanceUI, index$3_PerformanceWidget as PerformanceWidget, index$3_useAssetHistoryColumns as useAssetHistoryColumns, index$3_useAssetHistoryHook as useAssetHistoryHook, index$3_useAssetsLineChartScript as useAssetsLineChartScript, index$3_useFundingHistoryColumns as useFundingHistoryColumns, index$3_useFundingHistoryHook as useFundingHistoryHook, index$3_usePerformanceScript as usePerformanceScript };
227
+ export { index$3_AssetHistory as AssetHistory, index$3_AssetHistoryWidget as AssetHistoryWidget, index$3_AssetWidget as AssetWidget, index$3_AssetsChartWidget as AssetsChartWidget, index$3_AssetsUI as AssetsUI, index$3_DistributionHistoryUI as DistributionHistoryUI, index$3_DistributionHistoryWidget as DistributionHistoryWidget, index$3_FundingHistoryWidget as FundingHistoryWidget, index$3_HistoryDataGroupWidget as HistoryDataGroupWidget, index$3_OverviewContextProvider as OverviewContextProvider, index$3_OverviewPage as OverviewPage, index$3_PerformanceUI as PerformanceUI, index$3_PerformanceWidget as PerformanceWidget, index$3_useAssetHistoryColumns as useAssetHistoryColumns, index$3_useAssetHistoryHook as useAssetHistoryHook, index$3_useAssetsLineChartScript as useAssetsLineChartScript, index$3_useFundingHistoryColumns as useFundingHistoryColumns, index$3_useFundingHistoryHook as useFundingHistoryHook, index$3_usePerformanceScript as usePerformanceScript };
219
228
  }
220
229
 
221
230
  declare const PortfolioLayoutWidget: (props: PropsWithChildren<LayoutProps>) => react_jsx_runtime.JSX.Element;
222
231
 
223
232
  type UseFeeTierScriptOptions = {
224
- dataAdapter?: (columns: Column[], dataSource: any[]) => {
225
- columns: Column[];
233
+ dataAdapter?: (columns: TableColumn[], dataSource: any[]) => {
234
+ columns: TableColumn[];
226
235
  dataSource: any[];
227
236
  };
228
237
  };
@@ -237,7 +246,7 @@ declare namespace index$2 {
237
246
  export { index$2_FeeTierPage as FeeTierPage };
238
247
  }
239
248
 
240
- declare const PositionsPage: () => react_jsx_runtime.JSX.Element;
249
+ declare const PositionsPage: (props: PositionsProps) => react_jsx_runtime.JSX.Element;
241
250
 
242
251
  declare const page$1_PositionsPage: typeof PositionsPage;
243
252
  declare namespace page$1 {
@@ -253,12 +262,12 @@ declare namespace page {
253
262
 
254
263
  declare const APIManagerWidget: () => react_jsx_runtime.JSX.Element;
255
264
 
256
- declare const ApiManagerPage: () => react_jsx_runtime.JSX.Element;
265
+ declare const APIManagerPage: () => react_jsx_runtime.JSX.Element;
257
266
 
267
+ declare const index$1_APIManagerPage: typeof APIManagerPage;
258
268
  declare const index$1_APIManagerWidget: typeof APIManagerWidget;
259
- declare const index$1_ApiManagerPage: typeof ApiManagerPage;
260
269
  declare namespace index$1 {
261
- export { index$1_APIManagerWidget as APIManagerWidget, index$1_ApiManagerPage as ApiManagerPage };
270
+ export { index$1_APIManagerPage as APIManagerPage, index$1_APIManagerWidget as APIManagerWidget };
262
271
  }
263
272
 
264
273
  declare const SettingWidget: () => react_jsx_runtime.JSX.Element;
package/dist/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as _orderly_network_types from '@orderly.network/types';
3
3
  import { API } from '@orderly.network/types';
4
- import { Column } from '@orderly.network/ui';
4
+ import { TableColumn, PaginationMeta } from '@orderly.network/ui';
5
5
  import * as react from 'react';
6
6
  import { FC, PropsWithChildren } from 'react';
7
7
  import { LayoutProps } from '@orderly.network/ui-scaffold';
8
+ import { PositionsProps } from '@orderly.network/ui-positions';
8
9
 
9
10
  type Props = {
10
11
  connected?: boolean;
@@ -12,7 +13,7 @@ type Props = {
12
13
  onWithdraw?: () => void;
13
14
  onDeposit?: () => void;
14
15
  onLeverageEdit?: () => void;
15
- portfolioValue: number;
16
+ portfolioValue: number | null;
16
17
  visible: boolean;
17
18
  toggleVisible: () => void;
18
19
  wrongNetwork: boolean;
@@ -67,7 +68,7 @@ declare const useAssetsLineChartScript: () => {
67
68
 
68
69
  declare const HistoryDataGroupWidget: () => react_jsx_runtime.JSX.Element;
69
70
 
70
- declare const useAssetHistoryColumns: () => Column[];
71
+ declare const useAssetHistoryColumns: () => TableColumn[];
71
72
 
72
73
  declare const useAssetHistoryHook: () => {
73
74
  dataSource: _orderly_network_types.API.AssetHistoryRow[];
@@ -88,7 +89,8 @@ declare const useAssetHistoryHook: () => {
88
89
  value: any;
89
90
  }) => void;
90
91
  setPage: react.Dispatch<react.SetStateAction<number>>;
91
- setPageSize: (pageSize: number) => void;
92
+ setPageSize: (size: number) => void;
93
+ pagination: PaginationMeta;
92
94
  };
93
95
 
94
96
  type UseAssetHistoryReturn = ReturnType<typeof useAssetHistoryHook>;
@@ -157,10 +159,11 @@ declare const useFundingHistoryHook: () => {
157
159
  value: any;
158
160
  }) => void;
159
161
  readonly setPage: react.Dispatch<react.SetStateAction<number>>;
160
- readonly setPageSize: (pageSize: number) => void;
162
+ readonly setPageSize: (size: number) => void;
163
+ readonly pagination: PaginationMeta;
161
164
  };
162
165
 
163
- declare const useFundingHistoryColumns: () => Column<API.FundingFeeRow & {
166
+ declare const useFundingHistoryColumns: () => TableColumn<API.FundingFeeRow & {
164
167
  annual_rate: number;
165
168
  }>[];
166
169
 
@@ -187,7 +190,8 @@ declare const useDistributionHistoryHook: () => {
187
190
  value: any;
188
191
  }) => void;
189
192
  readonly setPage: react.Dispatch<react.SetStateAction<number>>;
190
- readonly setPageSize: (pageSize: number) => void;
193
+ readonly setPageSize: (size: number) => void;
194
+ readonly pagination: PaginationMeta;
191
195
  };
192
196
  type useDistributionHistoryHookReturn = ReturnType<typeof useDistributionHistoryHook>;
193
197
 
@@ -196,6 +200,10 @@ declare const DistributionHistoryUI: FC<FundingHistoryProps>;
196
200
 
197
201
  declare const OverviewPage: () => react_jsx_runtime.JSX.Element;
198
202
 
203
+ declare const OverviewContextProvider: ({ children, }: {
204
+ children: React.ReactNode;
205
+ }) => react_jsx_runtime.JSX.Element;
206
+
199
207
  declare const index$3_AssetHistory: typeof AssetHistory;
200
208
  declare const index$3_AssetHistoryWidget: typeof AssetHistoryWidget;
201
209
  declare const index$3_AssetWidget: typeof AssetWidget;
@@ -205,6 +213,7 @@ declare const index$3_DistributionHistoryUI: typeof DistributionHistoryUI;
205
213
  declare const index$3_DistributionHistoryWidget: typeof DistributionHistoryWidget;
206
214
  declare const index$3_FundingHistoryWidget: typeof FundingHistoryWidget;
207
215
  declare const index$3_HistoryDataGroupWidget: typeof HistoryDataGroupWidget;
216
+ declare const index$3_OverviewContextProvider: typeof OverviewContextProvider;
208
217
  declare const index$3_OverviewPage: typeof OverviewPage;
209
218
  declare const index$3_PerformanceUI: typeof PerformanceUI;
210
219
  declare const index$3_PerformanceWidget: typeof PerformanceWidget;
@@ -215,14 +224,14 @@ declare const index$3_useFundingHistoryColumns: typeof useFundingHistoryColumns;
215
224
  declare const index$3_useFundingHistoryHook: typeof useFundingHistoryHook;
216
225
  declare const index$3_usePerformanceScript: typeof usePerformanceScript;
217
226
  declare namespace index$3 {
218
- export { index$3_AssetHistory as AssetHistory, index$3_AssetHistoryWidget as AssetHistoryWidget, index$3_AssetWidget as AssetWidget, index$3_AssetsChartWidget as AssetsChartWidget, index$3_AssetsUI as AssetsUI, index$3_DistributionHistoryUI as DistributionHistoryUI, index$3_DistributionHistoryWidget as DistributionHistoryWidget, index$3_FundingHistoryWidget as FundingHistoryWidget, index$3_HistoryDataGroupWidget as HistoryDataGroupWidget, index$3_OverviewPage as OverviewPage, index$3_PerformanceUI as PerformanceUI, index$3_PerformanceWidget as PerformanceWidget, index$3_useAssetHistoryColumns as useAssetHistoryColumns, index$3_useAssetHistoryHook as useAssetHistoryHook, index$3_useAssetsLineChartScript as useAssetsLineChartScript, index$3_useFundingHistoryColumns as useFundingHistoryColumns, index$3_useFundingHistoryHook as useFundingHistoryHook, index$3_usePerformanceScript as usePerformanceScript };
227
+ export { index$3_AssetHistory as AssetHistory, index$3_AssetHistoryWidget as AssetHistoryWidget, index$3_AssetWidget as AssetWidget, index$3_AssetsChartWidget as AssetsChartWidget, index$3_AssetsUI as AssetsUI, index$3_DistributionHistoryUI as DistributionHistoryUI, index$3_DistributionHistoryWidget as DistributionHistoryWidget, index$3_FundingHistoryWidget as FundingHistoryWidget, index$3_HistoryDataGroupWidget as HistoryDataGroupWidget, index$3_OverviewContextProvider as OverviewContextProvider, index$3_OverviewPage as OverviewPage, index$3_PerformanceUI as PerformanceUI, index$3_PerformanceWidget as PerformanceWidget, index$3_useAssetHistoryColumns as useAssetHistoryColumns, index$3_useAssetHistoryHook as useAssetHistoryHook, index$3_useAssetsLineChartScript as useAssetsLineChartScript, index$3_useFundingHistoryColumns as useFundingHistoryColumns, index$3_useFundingHistoryHook as useFundingHistoryHook, index$3_usePerformanceScript as usePerformanceScript };
219
228
  }
220
229
 
221
230
  declare const PortfolioLayoutWidget: (props: PropsWithChildren<LayoutProps>) => react_jsx_runtime.JSX.Element;
222
231
 
223
232
  type UseFeeTierScriptOptions = {
224
- dataAdapter?: (columns: Column[], dataSource: any[]) => {
225
- columns: Column[];
233
+ dataAdapter?: (columns: TableColumn[], dataSource: any[]) => {
234
+ columns: TableColumn[];
226
235
  dataSource: any[];
227
236
  };
228
237
  };
@@ -237,7 +246,7 @@ declare namespace index$2 {
237
246
  export { index$2_FeeTierPage as FeeTierPage };
238
247
  }
239
248
 
240
- declare const PositionsPage: () => react_jsx_runtime.JSX.Element;
249
+ declare const PositionsPage: (props: PositionsProps) => react_jsx_runtime.JSX.Element;
241
250
 
242
251
  declare const page$1_PositionsPage: typeof PositionsPage;
243
252
  declare namespace page$1 {
@@ -253,12 +262,12 @@ declare namespace page {
253
262
 
254
263
  declare const APIManagerWidget: () => react_jsx_runtime.JSX.Element;
255
264
 
256
- declare const ApiManagerPage: () => react_jsx_runtime.JSX.Element;
265
+ declare const APIManagerPage: () => react_jsx_runtime.JSX.Element;
257
266
 
267
+ declare const index$1_APIManagerPage: typeof APIManagerPage;
258
268
  declare const index$1_APIManagerWidget: typeof APIManagerWidget;
259
- declare const index$1_ApiManagerPage: typeof ApiManagerPage;
260
269
  declare namespace index$1 {
261
- export { index$1_APIManagerWidget as APIManagerWidget, index$1_ApiManagerPage as ApiManagerPage };
270
+ export { index$1_APIManagerPage as APIManagerPage, index$1_APIManagerWidget as APIManagerWidget };
262
271
  }
263
272
 
264
273
  declare const SettingWidget: () => react_jsx_runtime.JSX.Element;
package/dist/index.js CHANGED
@@ -14,15 +14,16 @@ var utils = require('@orderly.network/utils');
14
14
  var chart = require('@orderly.network/chart');
15
15
  var uiScaffold = require('@orderly.network/ui-scaffold');
16
16
  var uiPositions = require('@orderly.network/ui-positions');
17
+ var uiOrders = require('@orderly.network/ui-orders');
17
18
 
18
- var Jo=Object.defineProperty;var V=(e,t)=>{for(var o in t)Jo(e,o,{get:t[o],enumerable:!0});};var Jt={};V(Jt,{AssetHistory:()=>ne,AssetHistoryWidget:()=>se,AssetWidget:()=>re,AssetsChartWidget:()=>ke,AssetsUI:()=>oe,DistributionHistoryUI:()=>ce,DistributionHistoryWidget:()=>me,FundingHistoryWidget:()=>de,HistoryDataGroupWidget:()=>pe,OverviewPage:()=>Xt,PerformanceUI:()=>ge,PerformanceWidget:()=>ye,useAssetHistoryColumns:()=>ie,useAssetHistoryHook:()=>ae,useAssetsLineChartScript:()=>Fe,useFundingHistoryColumns:()=>le,useFundingHistoryHook:()=>ue,usePerformanceScript:()=>fe});var Ye=()=>{let{connect:e}=hooks.useWalletConnector(),{state:t}=hooks.useAccount(),{totalValue:o,freeCollateral:r}=hooks.useCollateral(),{wrongNetwork:i}=reactApp.useAppContext(),[a]=hooks.usePositionStream(),[n]=hooks.useLeverage(),[s,m]=hooks.useLocalStorage("orderly_assets_visible",!0),d=react.useMemo(()=>t.status===types.AccountStatusEnum.EnableTrading,[t]),c=()=>{ui.modal.show(uiLeverage.LeverageWidgetId);},f=()=>{ui.modal.show(uiTransfer.DepositAndWithdrawWithDialogId,{activeTab:"deposit"});},g=()=>{ui.modal.show(uiTransfer.DepositAndWithdrawWithDialogId,{activeTab:"withdraw"});};return {connected:d,connect:e,portfolioValue:o,freeCollateral:r,unrealPnL:a.aggregated.unrealPnL,unrealROI:a.totalUnrealizedROI,currentLeverage:n,onLeverageEdit:c,visible:s,wrongNetwork:i,toggleVisible:()=>m(!s),onDeposit:f,onWithdraw:g}};var Ft=e=>jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.CardTitle,{children:"Overview"}),jsxRuntime.jsxs(ui.Flex,{gap:3,children:[jsxRuntime.jsx(ui.Button,{disabled:e.disabled,size:"md",color:"secondary",onClick:()=>e.onWithdraw?.(),icon:jsxRuntime.jsx(ui.ArrowUpSquareFillIcon,{}),"data-testid":"oui-testid-portfolio-assets-withdraw-btn",children:"Withdraw"}),jsxRuntime.jsx(ui.Button,{disabled:e.disabled,size:"md",onClick:()=>e.onDeposit?.(),icon:jsxRuntime.jsx(ui.ArrowDownSquareFillIcon,{}),"data-testid":"oui-testid-portfolio-assets-deposit-btn",children:"Deposit"})]})]});var oe=e=>jsxRuntime.jsx(ui.Card,{classNames:{footer:"oui-h-[48px]",root:"oui-h-[240px]"},title:jsxRuntime.jsx(Ft,{disabled:!e.connected||e.wrongNetwork,onDeposit:e.onDeposit,onWithdraw:e.onWithdraw}),children:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Statistic,{label:jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Total value"}),jsxRuntime.jsx("button",{onClick:()=>{e.toggleVisible();},"data-testid":"oui-testid-portfolio-assets-eye-btn",children:e.visible?jsxRuntime.jsx(ui.EyeIcon,{size:16,color:"white"}):jsxRuntime.jsx(ui.EyeCloseIcon,{size:16,color:"white"})})]}),children:jsxRuntime.jsx(ui.Either,{value:(e.connected??!1)&&!e.wrongNetwork,left:jsxRuntime.jsx(Pr,{}),children:jsxRuntime.jsx(ui.Text.numeral,{visible:e.visible,unit:"USDC",style:{"--oui-gradient-angle":"45deg"},unitClassName:"oui-text-base oui-text-base-contrast-80 oui-h-9 oui-ml-1",className:ui.gradientTextVariants({className:"oui-font-bold oui-text-3xl",color:"brand"}),children:e.portfolioValue})})}),jsxRuntime.jsx(ui.Divider,{className:"oui-my-4",intensity:8}),jsxRuntime.jsx(uiConnector.AuthGuard,{buttonProps:{size:"lg",fullWidth:!0},children:jsxRuntime.jsx(vr,{unrealROI:e.unrealROI,unrealPnL:e.unrealPnL,freeCollateral:e.freeCollateral,currentLeverage:e.currentLeverage,onLeverageEdit:e.onLeverageEdit,visible:e.visible})})]})}),Pr=()=>jsxRuntime.jsxs(ui.Flex,{gap:1,className:"oui-h-9",children:[jsxRuntime.jsx(ui.Text.gradient,{color:"brand",weight:"bold",children:"--"}),jsxRuntime.jsx(ui.Text,{children:"USDC"})]}),vr=e=>jsxRuntime.jsxs(ui.Grid,{cols:3,className:"oui-h-12",children:[jsxRuntime.jsx(ui.Statistic,{label:"Unrealized PnL",children:jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,size:"lg",weight:"semibold",visible:e.visible,children:e.unrealPnL}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,rule:"percentages",size:"sm",weight:"semibold",prefix:"(",suffix:")",visible:e.visible,children:e.unrealROI})]})}),jsxRuntime.jsx(ui.Statistic,{label:"Max account leverage",children:jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",children:[jsxRuntime.jsx("span",{"data-testid":"oui-testid-portfolio-assets-maxAccountLeverage-value",className:"oui-text-lg",children:e.currentLeverage}),jsxRuntime.jsx("span",{children:"x"}),jsxRuntime.jsx("button",{className:"oui-ml-1",onClick:()=>e.onLeverageEdit?.(),"data-testid":"oui-testid-portfolio-assets-maxAccountLeverage-edit-btn",children:jsxRuntime.jsx(ui.EditIcon,{color:"white",size:18})})]})}),jsxRuntime.jsx(ui.Statistic,{label:"Available to withdraw",align:"right",valueProps:{size:"lg",visible:e.visible},children:e.freeCollateral})]});var re=()=>{let{connected:e,connect:t,portfolioValue:o,onLeverageEdit:r,...i}=Ye();return jsxRuntime.jsx(oe,{onConnectWallet:t,connected:e,portfolioValue:o,onLeverageEdit:r,...i})};var kt=(r=>(r.WEEK="7D",r.MONTH="30D",r.QUARTER="90D",r))(kt||{}),Rt=(e,t)=>{let[o]=react.useState(()=>{let l=new Date;return new Date(dateFns.getYear(l),dateFns.getMonth(l),dateFns.getDate(l),0,0,0)}),{isRealtime:r=!1}=t||{},i=Object.values(kt),[a,n]=hooks.useLocalStorage(e,"7D"),{totalValue:s}=hooks.useCollateral(),m=l=>{switch(l){case"30D":return dateFns.subDays(o,35);case"90D":return dateFns.subDays(o,95);default:return dateFns.subDays(o,10)}},d=react.useMemo(()=>{switch(a){case"7D":return 7;case"30D":return 30;case"90D":return 90;default:return 7}},[a]),[c,f]=react.useState(m(a)),g=react.useMemo(()=>dateFns.addDays(o,1),[o]),[u]=hooks.useStatisticsDaily({startDate:c.toISOString().split("T")[0],endDate:g.toISOString().split("T")[0]},{ignoreAggregation:!0}),[P]=hooks.useAssetsHistory({startTime:dateFns.subDays(o,2).getTime().toString(),endTime:g.getTime().toString()}),y=l=>{f(m(l)),n(l);},X=l=>{let C=new utils.Decimal(s).sub(l.lastItem.account_value);if(Array.isArray(l.assetHistory)&&l.assetHistory.length>0&&typeof l.lastItem.snapshot_time<"u"){let v=[];for(let h=0;h<l.assetHistory.length;h++){let S=l.assetHistory[h];S.created_time>l.lastItem.snapshot_time&&v.push(S);}for(let h=0;h<v.length;h++){let S=v[h];S.side==="DEPOSIT"?S.trans_status==="COMPLETED"&&(C=C.sub(S.amount)):S.side==="WITHDRAW"&&S.trans_status!=="FAILED"&&(C=C.add(S.amount));}}return C.toNumber()},J=(l,C)=>{let v=l[l.length-1],h=dateFns.format(o,"yyyy-MM-dd");return {...v,date:h,perp_volume:0,account_value:C||(v?.account_value??0),pnl:X({lastItem:v,assetHistory:P,totalValue:C})}},z=(l,C)=>!Array.isArray(l)||l.length===0?l:(l[l.length-1].date,dateFns.format(o,"yyyy-MM-dd"),l.concat([J(l,C)])),W=(l,C)=>{let v=C?z(l,s):l;return v.slice(v.length-d)},O=react.useMemo(()=>s?W(u,r):[],[u,s]),$e=react.useMemo(()=>{let l=utils.zero,C=utils.zero,v=utils.zero;if(Array.isArray(O)&&O.length){O.forEach(ee=>{C=C.add(ee.pnl);});let h=O[0],S=u.findIndex(ee=>ee.date===h.date),j=u[S-1]?.account_value;typeof j>"u"||j===0?v=utils.zero:v=C.div(j);}if(u.length>0)for(let h=0;h<d;h++){let S=u[u.length-1-h];S&&(l=l.add(S.perp_volume??0));}return {vol:l.toNumber(),pnl:C.toNumber(),roi:v.toNumber()}},[O,u,d]);return {periodTypes:i,period:a,onPeriodChange:y,data:O,aggregateValue:$e,createFakeData:(l,C)=>Array.from({length:2},(v,h)=>({date:dateFns.format(h===0?c:new Date,"yyyy-MM-dd"),...h===0?l:C})),volumeUpdateDate:u?.[u.length-1]?.date??""}};var _t=react.createContext({}),Lr="portfolio_performance_period",Ie=()=>react.useContext(_t),Ht=({children:e})=>{let t=Rt(Lr,{isRealtime:!0});return jsxRuntime.jsx(_t.Provider,{value:{...t},children:e})};var Fe=()=>{let e=Ie(),{wrongNetwork:t}=reactApp.useAppContext(),o=reactApp.useDataTap(e.data,{accountStatus:types.AccountStatusEnum.EnableTrading,fallbackData:e.createFakeData({account_value:0},{account_value:500})}),r=react.useMemo(()=>o?.length??0>0?o:e.createFakeData({account_value:0},{account_value:500}),[o]);return {...e,wrongNetwork:t,data:r,invisible:t||!e.data.length}};var De=e=>jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.CardTitle,{children:e.title}),jsxRuntime.jsx("div",{className:"oui-min-w-14",children:jsxRuntime.jsx(ui.Select.options,{size:"xs",value:e.period,onValueChange:e.onPeriodChange,options:e.periodTypes.map(t=>({value:t,label:t}))})})]});var Nt=e=>{let{onPeriodChange:t,periodTypes:o,period:r,data:i}=e;return jsxRuntime.jsx(ui.Card,{title:jsxRuntime.jsx(De,{onPeriodChange:t,periodTypes:o,period:r,title:"Assets"}),id:"portfolio-overview-assets-chart",classNames:{content:"oui-h-[168px] oui-pb-0"},children:jsxRuntime.jsx(chart.AssetLineChart,{data:e.data,invisible:e.invisible})})};var ke=()=>{let e=Fe();return jsxRuntime.jsx(Nt,{...e})};var ie=()=>{let{data:e}=hooks.useQuery("/v1/public/chain_info");return react.useMemo(()=>[{title:"Token",dataIndex:"token",width:80,render:o=>jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[jsxRuntime.jsx(ui.TokenIcon,{name:o,size:"xs"}),jsxRuntime.jsx("span",{children:o})]})},{title:"Time",dataIndex:"created_time",width:80,rule:"date"},{title:"TxID",dataIndex:"tx_id",width:120,render:(o,r)=>{if(!o)return jsxRuntime.jsx("div",{className:"oui-text-base-contrast-54",children:"-"});let n=`${e?.find(s=>parseInt(r.chain_id)===parseInt(s.chain_id))?.explorer_base_url}/tx/${o}`;return jsxRuntime.jsx("a",{href:n,target:"_blank",children:jsxRuntime.jsx(ui.Text.formatted,{copyable:!!o,rule:"txId",className:"oui-underline-offset-4 oui-underline oui-decoration-dashed oui-decoration-line-16",onCopy:s=>{s.preventDefault(),s.stopPropagation(),ui.toast.success("Copy success");},children:o})})}},{title:"Status",dataIndex:"trans_status",width:100,formatter:o=>ui.capitalizeFirstLetter(o.toLowerCase())},{title:"Type",dataIndex:"side",width:80,formatter:o=>ui.capitalizeFirstLetter(o.toLowerCase()),render:o=>jsxRuntime.jsx(ui.Text,{color:o.toLowerCase(),children:o})},{title:"Amount",dataIndex:"amount",width:100,rule:"price",formatter:(o,r)=>r.side==="WITHDRAW"?-(o-(r.fee??0)):o-(r.fee??0),numeralProps:{coloring:!0,showIdentifier:!0}}],[e])},Kt=[{label:"All",value:"All"},{label:"Deposit",value:"DEPOSIT"},{label:"Withdrawal",value:"WITHDRAW"}];var q=e=>{let{from:t,to:o}=e;return typeof o>"u"&&(o=new Date),dateFns.differenceInDays(t,o)===0?[t,dateFns.setHours(o,23)]:[t,o]};var ae=()=>{let[e]=react.useState(()=>{let P=new Date;return new Date(dateFns.getYear(P),dateFns.getMonth(P),dateFns.getDate(P),0,0,0)}),[t,o]=react.useState([utils.subtractDaysFromCurrentDate(90,e),e]),[r,i]=react.useState("All"),{page:a,pageSize:n,setPage:s,setPageSize:m,parseMeta:d}=ui.usePagination(),[c,{meta:f,isLoading:g}]=hooks.useAssetsHistory({startTime:t[0].getTime().toString(),endTime:dateFns.set(t[1],{hours:23,minutes:59,seconds:59,milliseconds:0}).getTime().toString(),page:a,pageSize:n,side:r}),u=P=>{P.name==="side"&&(i(P.value),s(1)),P.name==="dateRange"&&(o(q(P.value)),s(1));};return {dataSource:c,meta:d(f),total:f?.total,isLoading:g,queryParameter:{side:r,dateRange:t},onFilter:u,setPage:s,setPageSize:m}};var ne=e=>{let{dataSource:t,meta:o,setPage:r,setPageSize:i,queryParameter:a,onFilter:n,isLoading:s}=e,{side:m,dateRange:d}=a,c=ie();return jsxRuntime.jsxs(uiConnector.AuthGuardDataTable,{bordered:!0,loading:s,classNames:{header:"oui-text-base-contrast-36",body:"oui-text-base-contrast-80"},columns:c,dataSource:t,children:[jsxRuntime.jsx(ui.Filter,{items:[{type:"select",name:"side",options:Kt,value:m},{type:"range",name:"dateRange",value:{from:d[0],to:d[1]}}],onFilter:f=>{n(f);}}),jsxRuntime.jsx(ui.Pagination,{...o,onPageChange:r,onPageSizeChange:i})]})};var se=()=>{let e=ae();return jsxRuntime.jsx(ne,{...e})};var le=()=>react.useMemo(()=>[{title:"Instrument",dataIndex:"symbol",width:80,rule:"symbol",textProps:{showIcon:!0}},{title:"Time",dataIndex:"created_time",width:120,rule:"date"},{title:"Funding rate / Annual rate",dataIndex:"funding_rate",width:80,render:(t,o)=>jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx(ui.Text.numeral,{rule:"percentages",dp:6,children:o.funding_rate}),jsxRuntime.jsx("span",{children:"/"}),jsxRuntime.jsx(ui.Text.numeral,{rule:"percentages",dp:6,children:o.annual_rate})]})},{title:"Payment type",dataIndex:"payment_type",width:80,render:t=>{switch(t){case"Pay":return "Paid";case"Receive":return "Received";default:return t}}},{title:"Funding fee (USDC)",dataIndex:"funding_fee",width:80,rule:"price",formatter(t,o,r){return Number(t)*-1},numeralProps:{coloring:!0,showIdentifier:!0,ignoreDP:!0}}],[]);var ot=e=>{let{dataSource:t,queryParameter:o,onFilter:r,isLoading:i,meta:a,setPage:n,setPageSize:s}=e,m=le(),d=hooks.useSymbolsInfo(),{symbol:c,dateRange:f}=o;return jsxRuntime.jsxs(uiConnector.AuthGuardDataTable,{bordered:!0,columns:m,dataSource:t,loading:i,generatedRowKey:g=>`${g.updated_time}`,classNames:{header:"oui-text-base-contrast-36",body:"oui-text-base-contrast-80"},children:[jsxRuntime.jsx(ui.Filter,{items:[{type:"select",name:"symbol",isCombine:!0,options:[{label:"All",value:"All"},...Object.keys(d).map(g=>({label:g.split("_")[1],value:g}))],value:c,valueFormatter:g=>g==="All"?"All":g.split("_")[1]},{type:"range",name:"dateRange",value:{from:f[0],to:f[1]}}],onFilter:g=>{r(g);}}),jsxRuntime.jsx(ui.Pagination,{...a,onPageChange:n,onPageSizeChange:s})]})};var ue=()=>{let[e]=react.useState(()=>{let y=new Date;return new Date(dateFns.getYear(y),dateFns.getMonth(y),dateFns.getDate(y),0,0,0)}),[t,o]=react.useState([utils.subtractDaysFromCurrentDate(90,e),e]),[r,i]=react.useState("All"),{page:a,pageSize:n,setPage:s,setPageSize:m,parseMeta:d}=ui.usePagination(),[c,{isLoading:f,meta:g,isValidating:u}]=hooks.useFundingFeeHistory({dataRange:[t[0].getTime(),dateFns.set(t[1],{hours:23,minutes:59,seconds:59,milliseconds:0}).getTime()],symbol:r,page:a,pageSize:n},{keepPreviousData:!0}),P=y=>{y.name==="symbol"&&(i(y.value),s(1)),y.name==="dateRange"&&(o(q(y.value)),s(1));};return {dataSource:c,meta:d(g),isLoading:f,isValidating:u,queryParameter:{symbol:r,dateRange:t},onFilter:P,setPage:s,setPageSize:m}};var de=()=>{let e=ue();return jsxRuntime.jsx(ot,{...e})};var Bt=()=>react.useMemo(()=>[{title:"Token",dataIndex:"token",width:80,render:(t,o)=>jsxRuntime.jsxs(ui.Flex,{gapX:2,children:[jsxRuntime.jsx(ui.TokenIcon,{name:t,size:"xs"}),jsxRuntime.jsx("span",{children:t})]})},{title:"Time",dataIndex:"updated_time",width:120,rule:"date"},{title:"Status",dataIndex:"status",width:120,formatter(t,o,r){switch(t){case"CREATED":case"SPLIT":return "Processing";case"COMPLETED":default:return "Completed"}}},{title:"Type",dataIndex:"type",width:80,formatter:t=>{switch(t){case"REFERRER_REBATE":return "Referral commission";case"REFEREE_REBATE":return "Referee rebate";case"BROKER_FEE":return "Broker fee";default:return "-"}}},{title:"Amount",dataIndex:"amount",width:80}],[]),Ut=[{label:"All",value:"All"},{label:"Referral commission",value:"REFERRER_REBATE"},{label:"Referee rebate",value:"REFEREE_REBATE"},{label:"Broker fee",value:"BROKER_FEE"}];var ce=e=>{let{dataSource:t,queryParameter:o,onFilter:r,isLoading:i,isValidating:a,meta:n,setPage:s,setPageSize:m}=e,d=Bt(),{type:c,dateRange:f}=o;return jsxRuntime.jsxs(uiConnector.AuthGuardDataTable,{bordered:!0,columns:d,dataSource:t,loading:i,isValidating:a,className:"oui-font-semibold",classNames:{header:"oui-text-base-contrast-36",body:"oui-text-base-contrast-80"},children:[jsxRuntime.jsx(ui.Filter,{items:[{type:"select",name:"type",options:Ut,value:c},{type:"range",name:"dateRange",value:{from:f[0],to:f[1]}}],onFilter:g=>{r(g);}}),jsxRuntime.jsx(ui.Pagination,{...n,onPageChange:s,onPageSizeChange:m})]})};var Gt=()=>{let[e]=react.useState(()=>{let y=new Date;return new Date(dateFns.getYear(y),dateFns.getMonth(y),dateFns.getDate(y),0,0,0)}),[t,o]=react.useState([utils.subtractDaysFromCurrentDate(90,e),e]),[r,i]=react.useState("All"),{page:a,pageSize:n,setPage:s,setPageSize:m,parseMeta:d}=ui.usePagination(),[c,{isLoading:f,meta:g,isValidating:u}]=hooks.useDistributionHistory({dataRange:[t[0].getTime(),dateFns.set(t[1],{hours:23,minutes:59,seconds:59,milliseconds:0}).getTime()],type:r,pageSize:n,page:a}),P=y=>{y.name==="type"&&(i(y.value),s(1)),y.name==="dateRange"&&(o(q(y.value)),s(1));};return {dataSource:c,meta:d(g),isLoading:f,isValidating:u,queryParameter:{type:r,dateRange:t},onFilter:P,setPage:s,setPageSize:m}};var me=()=>{let e=Gt();return jsxRuntime.jsx(ce,{...e})};var $t=e=>{let{active:t="deposit",onTabChange:o}=e;return jsxRuntime.jsx(ui.Card,{children:jsxRuntime.jsxs(ui.Tabs,{value:t,onValueChange:o,variant:"contained",size:"xl",children:[jsxRuntime.jsx(ui.TabPanel,{title:"Deposits & Withdrawals",icon:jsxRuntime.jsx(ui.ArrowLeftRightIcon,{}),value:"deposit",children:jsxRuntime.jsx(se,{})}),jsxRuntime.jsx(ui.TabPanel,{title:"Funding",icon:jsxRuntime.jsx(ui.FeeTierIcon,{}),value:"funding",children:jsxRuntime.jsx(de,{})}),jsxRuntime.jsx(ui.TabPanel,{title:"Distribution",icon:jsxRuntime.jsx(ui.ServerFillIcon,{}),value:"distribution",children:jsxRuntime.jsx(me,{})})]})})};var Zt=()=>{let[e,t]=react.useState("deposit");return {active:e,onTabChange:o=>t(o)}};var pe=()=>{let e=Zt();return jsxRuntime.jsx($t,{...e})};var ge=e=>{let{periodTypes:t,period:o,onPeriodChange:r,aggregateValue:i,invisible:a,visible:n,volumeUpdateDate:s}=e;return jsxRuntime.jsxs(ui.Card,{title:jsxRuntime.jsx(De,{onPeriodChange:r,periodTypes:t,period:o,title:"Performance"}),id:"portfolio-overview-performance",children:[jsxRuntime.jsxs(ui.Grid,{cols:3,gap:4,children:[jsxRuntime.jsx(ui.Box,{gradient:"neutral",r:"md",px:4,py:2,angle:184,border:!0,borderColor:6,children:jsxRuntime.jsx(ui.Statistic,{label:`${o} ROI`,valueProps:{rule:"percentages",coloring:!0,visible:n},children:a?"--":i.roi})}),jsxRuntime.jsx(ui.Box,{gradient:"neutral",r:"md",px:4,py:2,angle:184,border:!0,borderColor:6,children:jsxRuntime.jsx(ui.Statistic,{label:`${o} PnL`,valueProps:{coloring:!0,showIdentifier:!0,visible:n},children:a?"--":i.pnl})}),jsxRuntime.jsx(ui.Box,{gradient:"neutral",r:"md",px:4,py:2,angle:184,border:!0,borderColor:6,children:jsxRuntime.jsx(ui.Statistic,{classNames:{label:"oui-w-full"},label:jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx("span",{children:`${o} Volume (USDC)`}),jsxRuntime.jsx("span",{children:s})]}),children:a?"--":i.vol})})]}),jsxRuntime.jsxs(ui.Grid,{cols:2,gap:4,children:[jsxRuntime.jsx(aa,{data:e.data??[],invisible:e.invisible}),jsxRuntime.jsx(na,{data:e.data??[],invisible:e.invisible||(e.data?.length??0)<=2})]})]})},aa=e=>jsxRuntime.jsxs(ui.Box,{mt:4,height:"188px",children:[jsxRuntime.jsx(ui.Text,{as:"div",size:"sm",className:"oui-mb-3",children:"Daily PnL"}),jsxRuntime.jsx(ui.Box,{r:"md",className:"oui-border oui-border-line-4 oui-h-[188px]",children:jsxRuntime.jsx(chart.PnLBarChart,{data:e.data,invisible:e.invisible||(e.data?.length??0)<=2})})]}),na=e=>jsxRuntime.jsxs(ui.Box,{mt:4,children:[jsxRuntime.jsx(ui.Text,{as:"div",size:"sm",className:"oui-mb-3",children:"Cumulative PnL"}),jsxRuntime.jsx(ui.Box,{r:"md",className:"oui-border oui-border-line-4 oui-h-[188px]",children:jsxRuntime.jsx(chart.PnlLineChart,{data:e.data,invisible:e.invisible||(e.data?.length??0)<=2})})]});var fe=()=>{let e=Ie(),[t]=hooks.useLocalStorage("orderly_assets_visible",!0),{wrongNetwork:o}=reactApp.useAppContext(),{state:r}=hooks.useAccount(),i=reactApp.useDataTap(e.data,{accountStatus:types.AccountStatusEnum.EnableTrading,fallbackData:e.createFakeData({account_value:0,pnl:0},{account_value:500,pnl:500})}),a=react.useMemo(()=>i?.length??0>0?i:e.createFakeData({account_value:0,pnl:0},{account_value:500,pnl:500}),[i]);return {...e,data:a,invisible:o||r.status<types.AccountStatusEnum.EnableTrading,visible:t}};var ye=()=>{let e=fe();return jsxRuntime.jsx(ge,{...e})};var Xt=()=>jsxRuntime.jsx(Ht,{children:jsxRuntime.jsxs(ui.Grid,{cols:2,gap:4,children:[jsxRuntime.jsx(re,{}),jsxRuntime.jsx(ke,{}),jsxRuntime.jsx(ui.Grid.span,{colSpan:2,children:jsxRuntime.jsx(ye,{})}),jsxRuntime.jsx(ui.Grid.span,{colSpan:2,children:jsxRuntime.jsx(pe,{})})]})});var jt=e=>{let{children:t,...o}=e;return jsxRuntime.jsx(uiScaffold.Scaffold,{leftSidebar:e.hideSideBar?null:jsxRuntime.jsx(ba,{...o}),routerAdapter:e.routerAdapter,classNames:{content:"lg:oui-mb-0",topNavbar:"oui-bg-base-9",leftSidebar:"oui-m-3 oui-p-4 oui-broder oui-border-[1px] oui-border-line oui-rounded-xl oui-bg-base-9"},...e,children:jsxRuntime.jsx(ui.Box,{mx:3,my:6,children:t})})},ba=e=>{let{expanded:t,setExpand:o}=uiScaffold.useScaffoldContext();return jsxRuntime.jsx(uiScaffold.SideBar,{title:"Portfolio",...e,open:t,onOpenChange:r=>o(r),onItemSelect:r=>{e.onItemSelect?.(r),e.routerAdapter?.onRouteChange?.({href:r.href||"",name:r.name});}})};var eo=e=>{let{routerAdapter:t}=uiScaffold.useScaffoldContext(),[o,r]=react.useState(e.current??t?.currentPath??"/portfolio");react.useEffect(()=>{(o||t?.currentPath)&&r(o||t?.currentPath||"/portfolio");},[o,t?.currentPath]);let i=react.useMemo(()=>[{name:"Overview",href:"/portfolio",icon:jsxRuntime.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M5.24316 2.19727C3.58641 2.19727 2.24316 3.54044 2.24316 5.19727V12.6973C2.24316 14.3541 3.58641 15.6973 5.24316 15.6973H12.7432C14.3999 15.6973 15.7432 14.3541 15.7432 12.6973V5.19727C15.7432 3.54044 14.3999 2.19727 12.7432 2.19727H5.24316ZM5.24316 3.69727H12.7432C13.5719 3.69727 14.2432 4.36882 14.2432 5.19727V12.6973C14.2432 13.2484 13.9319 13.734 13.4894 13.9947C13.3454 12.2235 11.4427 11.1973 8.99316 11.1973C6.54366 11.1973 4.60341 12.251 4.48566 13.9997C4.04241 13.739 3.74316 13.2484 3.74316 12.6973V5.19727C3.74316 4.36882 4.41441 3.69727 5.24316 3.69727ZM8.99316 5.19727C7.54341 5.19727 6.36816 6.37252 6.36816 7.82227C6.36816 9.27202 7.54341 10.4473 8.99316 10.4473C10.4429 10.4473 11.6182 9.27202 11.6182 7.82227C11.6182 6.37252 10.4429 5.19727 8.99316 5.19727Z",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"Fee tier",href:"/portfolio/feeTier",icon:jsxRuntime.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M5.99829 1.51062C4.34154 1.51062 2.99829 2.85387 2.99829 4.51062V13.5106C2.99829 15.1674 4.34154 16.5106 5.99829 16.5106H11.9983C13.655 16.5106 14.9983 15.1674 14.9983 13.5106V4.51062C14.9983 2.85387 13.655 1.51062 11.9983 1.51062H5.99829ZM5.99829 3.76062H11.9983C12.4123 3.76062 12.7483 4.09662 12.7483 4.51062V6.01062C12.7483 6.42462 12.4123 6.76062 11.9983 6.76062H5.99829C5.58429 6.76062 5.24829 6.42462 5.24829 6.01062V4.51062C5.24829 4.09662 5.58429 3.76062 5.99829 3.76062ZM5.99829 8.26062C6.41229 8.26062 6.74829 8.59662 6.74829 9.01062C6.74829 9.42462 6.41229 9.76062 5.99829 9.76062C5.58429 9.76062 5.24829 9.42462 5.24829 9.01062C5.24829 8.59662 5.58429 8.26062 5.99829 8.26062ZM8.99829 8.26062C9.41229 8.26062 9.74829 8.59662 9.74829 9.01062C9.74829 9.42462 9.41229 9.76062 8.99829 9.76062C8.58429 9.76062 8.24829 9.42462 8.24829 9.01062C8.24829 8.59662 8.58429 8.26062 8.99829 8.26062ZM11.9983 8.26062C12.4123 8.26062 12.7483 8.59662 12.7483 9.01062C12.7483 9.42462 12.4123 9.76062 11.9983 9.76062C11.5843 9.76062 11.2483 9.42462 11.2483 9.01062C11.2483 8.59662 11.5843 8.26062 11.9983 8.26062ZM5.99829 10.5106C6.41229 10.5106 6.74829 10.8466 6.74829 11.2606C6.74829 11.6746 6.41229 12.0106 5.99829 12.0106C5.58429 12.0106 5.24829 11.6746 5.24829 11.2606C5.24829 10.8466 5.58429 10.5106 5.99829 10.5106ZM8.99829 10.5106C9.41229 10.5106 9.74829 10.8466 9.74829 11.2606C9.74829 11.6746 9.41229 12.0106 8.99829 12.0106C8.58429 12.0106 8.24829 11.6746 8.24829 11.2606C8.24829 10.8466 8.58429 10.5106 8.99829 10.5106ZM11.9983 10.5106C12.4123 10.5106 12.7483 10.8466 12.7483 11.2606V13.5106C12.7483 13.9246 12.4123 14.2606 11.9983 14.2606C11.5843 14.2606 11.2483 13.9246 11.2483 13.5106V11.2606C11.2483 10.8466 11.5843 10.5106 11.9983 10.5106ZM5.99829 12.7606C6.41229 12.7606 6.74829 13.0966 6.74829 13.5106C6.74829 13.9246 6.41229 14.2606 5.99829 14.2606C5.58429 14.2606 5.24829 13.9246 5.24829 13.5106C5.24829 13.0966 5.58429 12.7606 5.99829 12.7606ZM8.99829 12.7606C9.41229 12.7606 9.74829 13.0966 9.74829 13.5106C9.74829 13.9246 9.41229 14.2606 8.99829 14.2606C8.58429 14.2606 8.24829 13.9246 8.24829 13.5106C8.24829 13.0966 8.58429 12.7606 8.99829 12.7606Z",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"API key",href:"/portfolio/apiKey",icon:jsxRuntime.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M9.02124 1.49915C7.77849 1.49915 6.77124 2.5064 6.77124 3.74915C6.77124 4.70015 7.40049 5.55517 8.26974 5.86942L8.27124 8.24915H5.27124C4.85724 8.24915 4.52124 8.58515 4.52124 8.99915L4.52048 12.1304C3.65723 12.4274 3.02124 13.2981 3.02124 14.2491C3.02124 15.4919 4.02849 16.4991 5.27124 16.4991C6.51399 16.4991 7.52124 15.4919 7.52124 14.2491C7.52124 13.2981 6.92499 12.4596 6.02949 12.1206L6.02124 9.74915H9.02124H12.0212L12.0265 12.1319C11.1257 12.4446 10.5212 13.2981 10.5212 14.2491C10.5212 15.4919 11.5285 16.4991 12.7712 16.4991C14.014 16.4991 15.0212 15.4919 15.0212 14.2491C15.0212 13.2981 14.407 12.4611 13.5272 12.1281L13.5212 8.99915C13.5212 8.58515 13.1852 8.24915 12.7712 8.24915H9.77124L9.76899 5.86639C10.642 5.55814 11.2712 4.70015 11.2712 3.74915C11.2712 2.5064 10.264 1.49915 9.02124 1.49915Z",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"Setting",href:"/portfolio/setting",icon:jsxRuntime.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M6.72601 1.84159C5.66251 2.17834 4.74527 2.7296 3.93677 3.48185C3.68702 3.7151 3.61052 4.09534 3.77252 4.39609C4.37327 5.50684 3.74476 6.69484 2.39026 6.76309C2.05801 6.78034 1.76477 7.02559 1.68677 7.34884C1.55252 7.90759 1.49927 8.37559 1.49927 8.98984C1.49927 9.50509 1.55476 10.0878 1.66351 10.6068C1.73101 10.9308 2.01302 11.1641 2.34302 11.1933C3.70652 11.3111 4.38152 12.3506 3.77252 13.6773C3.63752 13.9721 3.69902 14.3246 3.93677 14.5443C4.73327 15.2816 5.64826 15.8006 6.72601 16.1381C7.03351 16.2348 7.38076 16.1186 7.56976 15.8568C8.40376 14.7033 9.61352 14.6988 10.4055 15.8568C10.5923 16.1298 10.9343 16.2611 11.2493 16.1613C12.2895 15.8343 13.2585 15.2771 14.0618 14.5443C14.3093 14.3193 14.3745 13.9541 14.226 13.6541C13.602 12.3948 14.3198 11.2383 15.6083 11.2166C15.9503 11.2106 16.2548 10.9856 16.335 10.6541C16.4648 10.1163 16.4993 9.64759 16.4993 8.98984C16.4993 8.42434 16.4325 7.86709 16.3118 7.32559C16.2353 6.98359 15.936 6.74059 15.585 6.73984C14.3168 6.73759 13.6058 5.49109 14.226 4.39609C14.3985 4.09084 14.3445 3.71735 14.085 3.48185C13.2675 2.73935 12.2708 2.15959 11.226 1.84159C10.905 1.74409 10.5638 1.86409 10.3823 2.14609C9.65776 3.27109 8.30477 3.29135 7.59302 2.16935C7.41077 1.8821 7.05001 1.73809 6.72601 1.84159ZM8.99927 5.98984C10.656 5.98984 11.9993 7.33309 11.9993 8.98984C11.9993 10.6466 10.656 11.9898 8.99927 11.9898C7.34252 11.9898 5.99927 10.6466 5.99927 8.98984C5.99927 7.33309 7.34252 5.98984 8.99927 5.98984Z",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})}],[]),a=hooks.useMediaQuery("(max-width: 768px)");return {items:i,current:o,hideSideBar:a,onItemSelect:n=>{typeof n.href>"u"||(r(n.href),t?.onRouteChange({href:n.href,name:n.name}));}}};var Sa=e=>{let t=eo({current:e.leftSideProps?.current});return jsxRuntime.jsx(jt,{...t,...e,children:e.children})};var lo={};V(lo,{FeeTierPage:()=>so});var lt=[{tier:1,maker_fee:"0.03%",taker_fee:"0.06%",volume_min:0,volume_max:5e5},{tier:2,maker_fee:"0.024%",taker_fee:"0.054%",volume_min:5e5,volume_max:25e5},{tier:3,maker_fee:"0.018%",taker_fee:"0.048%",volume_min:25e5,volume_max:1e7},{tier:4,maker_fee:"0.012%",taker_fee:"0.042%",volume_min:1e7,volume_max:1e8},{tier:5,maker_fee:"0.006%",taker_fee:"0.036%",volume_min:1e8,volume_max:25e7,or:"/",staking_min:3e5,staking_max:null},{tier:6,maker_fee:"0%",taker_fee:"0.03%",volume_min:25e7,volume_max:null,or:"/",staking:null,staking_min:null,staking_max:null}];var ro=()=>react.useMemo(()=>[{title:"Tier",dataIndex:"tier",align:"left",width:100},{title:"30 Day Volume (USDC)",dataIndex:"volume",align:"center",width:170,render:(t,o)=>{let{volume_min:r,volume_max:i}=o;return !r&&!i?jsxRuntime.jsx("div",{style:{fontVariantLigatures:"none"},children:"--"}):r&&!i?jsxRuntime.jsxs("div",{children:["Above ",utils.numberToHumanStyle(r,r===25e5?1:0)]}):jsxRuntime.jsxs("div",{children:[r&&utils.numberToHumanStyle(r,r===25e5?1:0)," - ",i&&utils.numberToHumanStyle(i,i===25e5?1:0)]})}},{title:"Maker",dataIndex:"maker_fee",align:"right",width:100,render:t=>jsxRuntime.jsx(ui.Text,{children:t})},{title:"Taker",dataIndex:"taker_fee",align:"right",width:100,render:t=>jsxRuntime.jsx(ui.Text,{children:t})}],[]);function io(e){let{dataAdapter:t}=e||{},[o,r]=react.useState(),{data:i}=hooks.useAccountInfo(),a=ro(),{data:n}=hooks.usePrivateQuery("/v1/volume/user/stats"),{columns:s,dataSource:m}=react.useMemo(()=>typeof t=="function"?t(a,lt):{columns:a,dataSource:lt},[t,a]),d=(u,P)=>{let{futures_taker_fee_rate:y=0,futures_maker_fee_rate:X=0}=P,J=`${new utils.Decimal(y).mul(.01).toString()}%`,z=`${new utils.Decimal(X).mul(.01).toString()}%`;for(let W of u)if(J===W.taker_fee&&z===W.maker_fee)return W.tier};react.useEffect(()=>{if(!i)return;let u=d(m,i);r(u);},[i,m]);let c=react.useMemo(()=>{let u=i?.futures_taker_fee_rate;if(!(typeof u>"u"))return `${new utils.Decimal(u).mul(.01).toString()}%`},[i]),f=react.useMemo(()=>{let u=i?.futures_maker_fee_rate;if(!(typeof u>"u"))return `${new utils.Decimal(u).mul(.01).toString()}%`},[i]);return {...reactApp.useDataTap({tier:o,vol:n?.perp_volume_last_30_days,takerFeeRate:c,makerFeeRate:f},{accountStatus:types.AccountStatusEnum.EnableTrading}),columns:s,dataSource:m}}var ao=e=>{let{columns:t,dataSource:o,tier:r,vol:i,takerFeeRate:a,makerFeeRate:n}=e;return jsxRuntime.jsxs(ui.Card,{title:jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"lg",children:"Fee tier"}),jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx(ui.Text,{size:"xs",intensity:54,children:"Updated daily by"}),jsxRuntime.jsx(ui.Text,{size:"xs",intensity:80,children:"2:00 UTC"})]})]}),className:"w-full",id:"oui-portfolio-fee-tier",children:[jsxRuntime.jsx(ui.Divider,{}),jsxRuntime.jsx(Wa,{tier:r,vol:i,takerFeeRate:a,makerFeeRate:n}),jsxRuntime.jsx(Oa,{dataSource:o,columns:t,tier:r})]})},Wa=e=>jsxRuntime.jsxs(ui.Flex,{direction:"row",gapX:4,my:4,itemAlign:"stretch",children:[jsxRuntime.jsx(He,{label:"Your Tier",value:jsxRuntime.jsx(ui.Text.gradient,{color:"brand",angle:270,size:"base",children:e.tier||"--"})}),jsxRuntime.jsx(He,{label:"30D Trading Volume (USDC)",value:jsxRuntime.jsx(ui.Text.numeral,{rule:"price",dp:2,rm:utils.Decimal.ROUND_DOWN,children:typeof e.vol!==void 0?`${e.vol}`:"-"})}),jsxRuntime.jsx(He,{label:"Take fee rate",value:jsxRuntime.jsx(ui.Text.gradient,{color:"brand",angle:270,size:"base",children:e.takerFeeRate||"--"})}),jsxRuntime.jsx(He,{label:"Marker fee rate",value:jsxRuntime.jsx(ui.Text.gradient,{color:"brand",angle:270,size:"base",children:e.makerFeeRate||"--"})})]}),He=e=>jsxRuntime.jsxs(ui.Box,{gradient:"neutral",r:"lg",px:4,py:2,angle:184,width:"100%",border:!0,borderColor:6,children:[jsxRuntime.jsx(ui.Text,{as:"div",intensity:36,size:"2xs",weight:"semibold",className:"oui-leading-[18px]",children:e.label}),jsxRuntime.jsx(ui.Text,{size:"base",intensity:80,className:"oui-leading-[24px] oui-mt-[2px]",children:e.value})]}),Oa=e=>{let[t,o]=react.useState(void 0);react.useEffect(()=>{let i=document.getElementById("oui-fee-tier-content")?.getBoundingClientRect(),a=document.getElementById("oui-fee-tier-current")?.getBoundingClientRect();if(a&&i){let n=a.top-i.top;o(n);}},[e.tier]);let r=react.useCallback((i,a)=>a+1==e.tier?{id:"oui-fee-tier-current",className:"oui-h-12 oui-text-[rgba(0,0,0,0.88)] oui-pointer-events-none"}:{className:"oui-h-12"},[e.tier]);return jsxRuntime.jsxs(ui.Box,{id:"oui-fee-tier-content",className:"oui-border-b oui-border-line-4 oui-relative",children:[t&&jsxRuntime.jsx(ui.Box,{angle:90,gradient:"brand",className:"oui-rounded-[6px] oui-absolute oui-w-full",style:{top:`${t}px`,height:"48px"}}),jsxRuntime.jsx(ui.DataTable,{bordered:!0,className:"oui-font-semibold",classNames:{header:"oui-text-base-contrast-36",body:"oui-text-base-contrast-80",root:"oui-bg-transparent"},onRow:r,columns:e.columns,dataSource:e.dataSource})]})};var no=e=>{let t=io(e);return jsxRuntime.jsx(ao,{...t})};var so=e=>jsxRuntime.jsx(no,{...e});var uo={};V(uo,{PositionsPage:()=>Za});var Za=()=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("h3",{children:"Positions"}),jsxRuntime.jsx(ui.Divider,{className:"oui-my-4"}),jsxRuntime.jsx(ui.Box,{px:3,children:jsxRuntime.jsx(uiPositions.PositionsWidget,{})})]});var co={};V(co,{OrdersPage:()=>Ya});var Ya=()=>jsxRuntime.jsx("div",{children:"OrderPage"});var Io={};V(Io,{APIManagerWidget:()=>Ue,ApiManagerPage:()=>To});var po=()=>{let[e,t]=react.useState(!1),[o,r]=react.useState(!1),[i,a]=react.useState(),{configStore:n}=react.useContext(hooks.OrderlyContext),s=n.get("brokerId"),{wrongNetwork:m}=reactApp.useAppContext(),{state:d,account:c}=hooks.useAccount(),f=d.status===types.AccountStatusEnum.EnableTrading,{data:g}=hooks.useQuery(`/v1/get_account?address=${c.address}&broker_id=${s}&chain_type=${c.walletAdapter?.chainNamespace}`),[u,{generateOrderlyKey:P,setIPRestriction:y,removeOrderkyKey:X,resetOrderlyKeyIPRestriction:J,refresh:z,isLoading:W,error:O}]=hooks.useApiKeyManager({keyInfo:{keyStatus:"ACTIVE"}}),$e=()=>{t(!0);},At=()=>{window.open("https://orderly.network/docs/build-on-evm/evm-api/api-authentication","_blank");},l=()=>{t(!1);},C=async(b,k)=>{try{let F=(qe,Pe)=>{let{key:Qo,secretKey:Yo}=qe;l(),a({key:Qo,screctKey:Yo,ip:Pe,permissions:k?.split(",")?.map(Xo=>xt(Xo)).join(", ")}),r(!0);},R=await P(k);if(ui.toast.success("API key created"),(b?.length||0)>0){let qe=R.key.startsWith("ed25519:")?R.key:`ed25519:${R.key}`,Pe=await y(qe,b);Pe.success&&F(R,Pe.data.ip_restriction_list?.join(","));}else F(R,void 0);}catch(F){F?.message&&ui.toast.error(F?.message);}return Promise.resolve(0)},v=()=>{r(!1),z();},h=()=>{navigator.clipboard.writeText(JSON.stringify(i)),ui.toast.success("API info copied");},S=()=>{v();},j=b=>new Promise(async k=>{await X(b.orderly_key).then(async F=>{if(F?.success){ui.toast.success("API key deleted"),z();let R=await c.keyStore.getOrderlyKey()?.getPublicKey();b.orderly_key===R&&c.destoryOrderlyKey();}k(1);},F=>{}).catch(F=>{});}),ee=async(b,k)=>{let F;(k?.length||0)===0?F=J(b.orderly_key,"ALLOW_ALL_IPS"):F=y(b.orderly_key,k);let R=await F;return R.success?(ui.toast.success("API key updated"),z(),Promise.resolve()):(ui.toast.error(R.message),Promise.reject())},No=()=>ui.toast.success("Account id copied"),Eo=b=>{typeof b<"u"&&navigator.clipboard.writeText(b.replace("ed25519:","")),ui.toast.success("API key copied");},Lo=()=>ui.toast.success("Secret key copied"),Ko=()=>ui.toast.success("Restricted IP copied"),Ce=react.useMemo(()=>u?.filter(b=>b.tag==="manualCreated"&&b.key_status==="ACTIVE"),[u]),Mo=b=>/^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(,((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9]))*$/.test(b)?"":"IP restriction format is incorrect.",zo=reactApp.useDataTap(g?.account_id,{accountStatus:types.AccountStatusEnum.EnableTrading}),Wo=reactApp.useDataTap(g?.user_id,{accountStatus:types.AccountStatusEnum.EnableTrading}),{page:Ze,pageSize:he,setPage:Oo,setPageSize:Bo,parseMeta:Uo}=ui.usePagination({page:1}),Vo=react.useMemo(()=>Ce?.length,[Ce]),Go=b=>{Oo(b);},$o=b=>{Bo(b);},Zo=react.useMemo(()=>{let b=(Ze-1)*he,k=b+he;return Ce?.slice(b,k)},[Ce,Ze,he]),qo=Uo({total:Vo??0,current_page:Ze,records_per_page:he});return {address:zo??"--",uid:`${Wo??"--"}`,onCreateApiKey:$e,onReadApiGuide:At,showCreateDialog:e,hideCreateDialog:l,doCreate:C,showCreatedDialog:o,hideCreatedDialog:v,onCopyApiKeyInfo:h,doConfirm:S,doDelete:j,doEdit:ee,canCreateApiKey:f,status:d.status,keys:Zo,generateKey:i,onCopyAccountId:No,wrongNetwork:m,onCopyApiKey:Eo,onCopyApiSecretKey:Lo,onCopyIP:Ko,verifyIP:Mo,isLoading:W,meta:qo,onPageChange:Go,onPageSizeChange:$o}};function xt(e){return e.charAt(0).toUpperCase()+e.slice(1)}var fo=e=>{let[t,o]=react.useState(""),[r,i]=react.useState(!0),[a,n]=react.useState(!0),[s,m]=react.useState("");return react.useEffect(()=>{e.showCreateDialog||(o(""),i(!0),n(!0),m(""));},[e.showCreateDialog]),react.useEffect(()=>{t.length===0&&m("");},[t]),jsxRuntime.jsx(ui.SimpleDialog,{size:"sm",open:e.showCreateDialog,onOpenChange:d=>{e.hideCreateDialog?.();},title:"Create API key",actions:{primary:{label:"Confirm",className:"oui-w-[120px] lg:oui-w-[154px]","data-testid":"oui-testid-apiKey-createApiKey-dialog-comfirm-btn",onClick:async()=>{if(t.length>0){let c=e.verifyIP(t);if(m(c),c.length>0)return}let d=[];r&&d.push("read"),a&&d.push("trading"),await e.doCreate(t,d.join(","));},disabled:!a&&!r,size:"md"}},classNames:{footer:"oui-justify-center",content:"oui-bg-base-8 oui-w-[300px] lg:oui-w-[360px] oui-font-semibold"},children:jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:6,children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:1,width:"100%",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text,{intensity:54,size:"2xs",children:"IP restriction (optional)"}),jsxRuntime.jsx("textarea",{"data-testid":"oui-testid-apiKey-createApiKey-dialog-textarea",placeholder:"Add IP addresses, separated by commas.",className:ui.cn("oui-text-sm oui-text-base-contrast-80 oui-p-3 oui-h-[100px] oui-rounded-xl oui-bg-base-6 oui-w-full","oui-border-0 focus:oui-border-2 focus:oui-border-primary oui-outline-none","oui-placeholder-base-contrast-20",s.length>0&&"oui-outline-1 oui-outline-danger focus:oui-outline-none"),value:t,onChange:d=>{o(d.target.value);},style:{resize:"none"}}),s.length>0&&jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx("div",{className:"oui-h-1 oui-w-1 oui-rounded-full oui-bg-danger"}),jsxRuntime.jsx(ui.Text,{color:"danger",size:"xs",children:s})]})]}),jsxRuntime.jsx(ui.Statistic,{label:jsxRuntime.jsx(ui.Text,{size:"xs",intensity:54,children:"Permissions"}),className:"oui-w-full",children:jsxRuntime.jsxs(ui.Flex,{direction:"row",gap:6,itemAlign:"start",className:"oui-mt-2",children:[jsxRuntime.jsx(be,{size:18,checked:r,onCheckedChange:d=>i(d),label:"Read",testid:"oui-testid-apiKey-createApiKey-dialog-read-checkbox"}),jsxRuntime.jsx(be,{size:18,checked:a,onCheckedChange:d=>n(d),label:"Trading",testid:"oui-testid-apiKey-createApiKey-dialog-trading-checkbox"})]})})]})})},be=e=>jsxRuntime.jsxs("button",{disabled:e.disabled,onClick:t=>{e.onCheckedChange(!e.checked);},className:"disabled:oui-cursor-not-allowed disabled:oui-opacity-50 oui-flex oui-items-center oui-gap-2","data-testid":e.testid,children:[e.checked?jsxRuntime.jsx("svg",{width:"props.size",height:e.size,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.99072 2.92981C4.78172 2.92981 2.99072 4.72071 2.99072 6.92981V16.9298C2.99072 19.1389 4.78172 20.9298 6.99072 20.9298H16.9907C19.1997 20.9298 20.9907 19.1389 20.9907 16.9298V6.92981C20.9907 4.72071 19.1997 2.92981 16.9907 2.92981H6.99072ZM16.9853 7.31211C17.2125 7.09537 17.5236 7 17.8218 7C18.1201 7 18.4312 7.09537 18.6584 7.31211C19.1139 7.74546 19.1139 8.47384 18.6584 8.9072L10.5077 16.675C10.0534 17.1083 9.28909 17.1083 8.83472 16.675L5.34077 13.3459C4.88641 12.9126 4.88641 12.1841 5.34077 11.7508C5.79631 11.3175 6.56057 11.3175 7.01493 11.7508L9.67122 14.2822L16.9853 7.31211Z",fill:"white",fillOpacity:"0.54"})}):jsxRuntime.jsx("svg",{width:e.size,height:e.size,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M6.99072 2.92981C4.78172 2.92981 2.99072 4.72071 2.99072 6.92981V16.9298C2.99072 19.1389 4.78172 20.9298 6.99072 20.9298H16.9907C19.1997 20.9298 20.9907 19.1389 20.9907 16.9298V6.92981C20.9907 4.72071 19.1997 2.92981 16.9907 2.92981H6.99072ZM6.99072 4.92981H16.9907C18.0957 4.92981 18.9907 5.82521 18.9907 6.92981V16.9298C18.9907 18.0344 18.0957 18.9298 16.9907 18.9298H6.99072C5.88572 18.9298 4.99072 18.0344 4.99072 16.9298V6.92981C4.99072 5.82521 5.88572 4.92981 6.99072 4.92981Z",fill:"white",fillOpacity:"0.54"})}),jsxRuntime.jsx(ui.Text,{intensity:54,size:"sm",children:e.label})]});var bo=e=>{let t=e.generateKey?.ip??"--";return jsxRuntime.jsx(ui.SimpleDialog,{size:"sm",open:e.showCreatedDialog,onOpenChange:o=>{e.hideCreatedDialog?.();},title:"API key created",actions:{primary:{label:"OK","data-testid":"oui-testid-apiKey-createdApiKey-dialog-ok-btn",className:"oui-w-[120px] lg:oui-w-[154px] oui-bg-base-2 hover:oui-bg-base-3",size:"md",onClick:async()=>e.doConfirm()},secondary:{label:"Copy API info","data-testid":"oui-testid-apiKey-createdApiKey-dialog-copy-btn",className:"oui-w-[120px] lg:oui-w-[154px] oui-bg-primary hover:oui-opacity-80",size:"md",onClick:async()=>e.onCopyApiKeyInfo()}},classNames:{footer:"oui-justify-center",content:"oui-bg-base-8 oui-w-[300px] lg:oui-w-[360px] oui-font-semibold",body:"oui-py-0 oui-pt-5"},children:jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:4,itemAlign:"start",children:[jsxRuntime.jsx(ui.Statistic,{label:"API key",children:jsxRuntime.jsx(ui.Text.formatted,{size:"sm",intensity:80,copyable:!0,copyIconSize:16,className:"oui-break-all",onCopy:()=>e.onCopyApiKey(e.generateKey?.key),"data-testid":"oui-testid-apiKey-createdApiKey-dialog-key-span",children:e.generateKey?.key})}),jsxRuntime.jsxs(ui.Statistic,{label:"Secret key",children:[jsxRuntime.jsx(ui.Text.formatted,{size:"sm",intensity:80,copyable:!0,copyIconSize:16,className:"oui-break-all",onCopy:e.onCopyApiSecretKey,children:e.generateKey?.screctKey})," "]}),jsxRuntime.jsx(ui.Statistic,{label:"IP",children:jsxRuntime.jsxs(ui.Flex,{width:320,gap:1,itemAlign:"center",className:"oui-text-base-contrast-80 oui-text-sm",children:[jsxRuntime.jsx(ui.Box,{className:"oui-max-h-[100px] oui-flex-1 oui-overflow-hidden oui-text-ellipsis oui-line-clamp-5 oui-break-all",children:t}),t!=="--"&&jsxRuntime.jsx(ui.Box,{width:16,height:16,className:"oui-cursor-pointer oui-flex-shrink-0",children:jsxRuntime.jsx(ui.CopyIcon,{color:"white",opacity:.54,size:16,onClick:o=>{e.generateKey?.ip&&navigator.clipboard.writeText(e.generateKey?.ip),e?.onCopyIP();}})})]})}),jsxRuntime.jsx(ui.Statistic,{label:"Permissions",children:jsxRuntime.jsx(ui.Text,{size:"sm",intensity:80,"data-testid":"oui-testid-apiKey-createdApiKey-dialog-permissions-span",children:e.generateKey?.permissions})}),jsxRuntime.jsx("div",{}),jsxRuntime.jsx(ui.Text,{color:"warning",size:"xs",className:"oui-text-center",children:"Please copy the API secret. Once you close this pop-up, the API secret will be encrypted."})]})})};var ho=e=>{let{item:t,open:o,setOpen:r,onDelete:i}=e;return jsxRuntime.jsx(ui.SimpleDialog,{size:"sm",open:o,onOpenChange:r,title:"Delete API key",actions:{primary:{label:"Confirm","data-testid":"oui-testid-apiKey-deleteApiKey-dialog-confirm-btn",className:"oui-w-[120px] lg:oui-w-[154px]",size:"md",onClick:async()=>{await e.onDelete?.(t),r(!1);}},secondary:{label:"Cancel",className:"oui-w-[120px] lg:oui-w-[154px]",size:"md",onClick:async()=>{r(!1);}}},classNames:{footer:"oui-justify-center",content:"oui-bg-base-8 oui-w-[300px] lg:oui-w-[360px] oui-font-semibold"},children:jsxRuntime.jsxs(ui.Flex,{className:"oui-text-xs",children:["Delete your API key \xA0",jsxRuntime.jsx(ui.Text,{color:"primaryLight",children:Ct(t?.orderly_key)}),"\xA0?"]})})};var vo=e=>{let{item:t,open:o,setOpen:r,onUpdate:i}=e,[a,n]=react.useState(t.ip_restriction_list?.join(",")),[s,m]=react.useState(!0),[d,c]=react.useState(!0),[f,g]=react.useState("");return react.useEffect(()=>{n(t.ip_restriction_list.join(",")),m(t.scope?.toLocaleLowerCase().includes("read")||!1),c(t.scope?.toLocaleLowerCase().includes("trading")||!1);},[t]),react.useEffect(()=>{a.length===0&&g("");},[a]),jsxRuntime.jsx(ui.SimpleDialog,{size:"sm",open:o,onOpenChange:r,title:"Edit API key",actions:{primary:{label:"Confirm","data-testid":"oui-testid-apiKey-editApiKey-dialog-confirm-btn",className:"oui-w-[120px] lg:oui-w-[154px]",onClick:async()=>{if(a.length>0){let u=e.verifyIP(a);if(g(u),u.length>0)return}await e.onUpdate?.(t,a),r(!1);},disabled:t.ip_restriction_list.join(",")===a,size:"md",fullWidth:!0}},classNames:{footer:"oui-justify-center",content:"oui-bg-base-8 oui-w-[300px] lg:oui-w-[360px] oui-font-semibold"},children:jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:6,children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:1,width:"100%",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text,{intensity:54,size:"2xs",children:"IP restriction (optional)"}),jsxRuntime.jsx("textarea",{"data-testid":"oui-testid-apiKey-editApiKey-dialog-textarea",placeholder:"Add IP addresses, separated by commas.",className:ui.cn("oui-text-sm oui-text-base-contrast-80 oui-p-3 oui-h-[100px] oui-rounded-xl oui-bg-base-6 oui-w-full","oui-border-0 focus:oui-border-2 focus:oui-border-primary oui-outline-none","oui-placeholder-base-contrast-20",f.length>0&&"oui-outline-1 oui-outline-danger focus:oui-outline-none"),value:a,onChange:u=>{n(u.target.value);},style:{resize:"none"}}),f.length>0&&jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx("div",{className:"oui-h-1 oui-w-1 oui-rounded-full oui-bg-danger"}),jsxRuntime.jsx(ui.Text,{color:"danger",size:"xs",children:f})]})]}),jsxRuntime.jsx(ui.Statistic,{label:jsxRuntime.jsx(ui.Text,{size:"xs",intensity:54,children:"Permissions"}),className:"oui-w-full",children:jsxRuntime.jsxs(ui.Flex,{direction:"row",gap:6,itemAlign:"start",className:"oui-mt-2",children:[jsxRuntime.jsx(be,{disabled:!0,size:18,checked:s,onCheckedChange:u=>m(u),label:"Read"}),jsxRuntime.jsx(be,{disabled:!0,size:18,checked:d,onCheckedChange:u=>c(u),label:"Trading"})]})})]})})};var So=e=>jsxRuntime.jsxs(ui.Card,{title:"API keys",id:"portfolio-apikey-manager",className:"oui-bg-base-9 oui-font-semibold",children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:4,width:"100%",className:"oui-font-semibold",children:[jsxRuntime.jsx(In,{...e}),jsxRuntime.jsx(Fn,{...e})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(Dn,{...e}),jsxRuntime.jsx(fo,{...e}),jsxRuntime.jsx(bo,{...e})]})]}),In=e=>jsxRuntime.jsxs(ui.Flex,{width:"100%",gap:4,className:"oui-border-t-2 oui-border-line-6 oui-pt-4",children:[jsxRuntime.jsxs(ui.Flex,{py:2,px:4,direction:"column",itemAlign:"start",r:"xl",gradient:"neutral",angle:27,border:!0,className:"oui-w-1/2",children:[jsxRuntime.jsx(ui.Text,{size:"xs",intensity:36,children:"Account ID"}),jsxRuntime.jsx(ui.Text.formatted,{size:"base",inlist:80,rule:"address",copyable:e.address!=="--",copyIconSize:16,onCopy:e.onCopyAccountId,copyIconTestid:"oui-testid-apiKey-accountInfo-accountId-copy-btn",children:e.address})]}),jsxRuntime.jsxs(ui.Flex,{py:2,px:4,direction:"column",itemAlign:"start",r:"xl",gradient:"neutral",angle:27,border:!0,className:"oui-w-1/2",children:[jsxRuntime.jsx(ui.Text,{size:"xs",intensity:36,children:"UID"}),jsxRuntime.jsx(ui.Text,{size:"base",inlist:80,children:e.uid})]})]}),Fn=e=>jsxRuntime.jsxs(ui.Flex,{width:"100%",direction:"row",className:"oui-text-sm oui-border-b-2 oui-border-line-6 oui-pb-4",children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",width:"100%",gap:1,children:[jsxRuntime.jsxs(ui.Text,{intensity:54,children:["Create API keys to suit your trading needs. For your security, don't share your API keys with anyone."," "]}),jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",className:"oui-text-primary-light oui-fill-primary-light hover:oui-text-primary oui-cursor-pointer oui-text-2xs md:oui-text-xs xl:oui-text-sm",onClick:e.onReadApiGuide,children:[jsxRuntime.jsx(ui.Text,{children:"Read API guide"}),jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M4.008 7.995c0-.368.298-.666.666-.666H9.71L7.733 5.331l.937-.936 3.143 3.122c.13.13.195.304.195.479a.67.67 0 0 1-.195.478L8.67 11.596l-.937-.937 1.978-1.998H4.674a.666.666 0 0 1-.666-.666"})})]})]}),jsxRuntime.jsx(uiConnector.AuthGuardTooltip,{side:"top",tooltip:{connectWallet:"Please connect wallet before create API key",signIn:"Please sign in before create API key",enableTrading:"Please enable trading before create API key",wrongNetwork:"Please switch to a supported network to create API key"},children:jsxRuntime.jsx(ui.Button,{size:"md",icon:jsxRuntime.jsx(ui.PlusIcon,{}),variant:"contained",color:"primary",onClick:e.onCreateApiKey,disabled:!e.canCreateApiKey||e.wrongNetwork,"data-testid":"oui-testid-apiKey-createApiKey-btn",children:"Create API key"})})]}),Dn=e=>jsxRuntime.jsx(uiConnector.AuthGuardDataTable,{bordered:!0,columns:[{title:"API key",dataIndex:"orderly_key",render:o=>jsxRuntime.jsx(ui.Text.formatted,{rule:"",copyable:!0,copyIconSize:16,onCopy:()=>{e.onCopyApiKey?.(o);},children:Ct(o)})},{title:"Permission type",dataIndex:"scope",render:o=>o?.split(",").map(r=>xt(`${r}`)).join(", ")},{title:"Restricted IP",dataIndex:"ip_restriction_list",render:o=>{let r=o.join(",");return r.length===0&&(r="--"),jsxRuntime.jsx(ui.Tooltip,{content:r,className:"oui-max-w-[200px] oui-break-all",children:jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx("div",{className:" oui-overflow-ellipsis oui-overflow-hidden",children:r}),r!=="--"&&jsxRuntime.jsx(ui.Box,{width:16,height:16,className:"oui-cursor-pointer",children:jsxRuntime.jsx(ui.CopyIcon,{color:"white",opacity:.54,size:16,onClick:i=>{navigator.clipboard.writeText(r),e?.onCopyIP();}})})]})})}},{title:"Expiration date",dataIndex:"expiration",render:o=>jsxRuntime.jsx(ui.Text.formatted,{rule:"date",formatString:"yyyy-MM-dd",children:o})},{title:"",dataIndex:"action",width:120,render:(o,r)=>jsxRuntime.jsxs(ui.Flex,{direction:"row",gap:2,children:[jsxRuntime.jsx(kn,{item:r,onUpdate:e.doEdit,verifyIP:e.verifyIP}),jsxRuntime.jsx(Rn,{item:r,onDelete:e.doDelete})]})}],loading:e.isLoading,dataSource:e.keys,emptyView:jsxRuntime.jsx(uiConnector.AuthGuardEmpty,{}),classNames:{header:"oui-bg-base-9 oui-text-xs oui-text-base-contrast-36",body:"oui-text-xs oui-text-base-contrast-80"},children:jsxRuntime.jsx(ui.Pagination,{...e.meta,onPageChange:e.onPageChange,onPageSizeChange:e.onPageSizeChange})}),kn=e=>{let{item:t,onUpdate:o,verifyIP:r}=e,[i,a]=react.useState(!1);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Button,{size:"xs",color:"primary",variant:"contained",onClick:n=>{n.stopPropagation(),a(!0);},"data-testid":"oui-testid-apiKey-keyList-edit-btn",children:"Edit"}),i&&jsxRuntime.jsx(vo,{item:t,open:i,setOpen:a,onUpdate:o,verifyIP:r})]})},Rn=e=>{let{item:t,onDelete:o}=e,[r,i]=react.useState(!1);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Button,{size:"xs",color:"gray",variant:"contained",onClick:a=>{a.stopPropagation(),i(!0);},"data-testid":"oui-testid-apiKey-keyList-delete-btn",children:"Delete"}),r&&jsxRuntime.jsx(ho,{item:t,open:r,setOpen:i,onDelete:o})]})};function Ct(e){return typeof e>"u"?"-":`${`${e}`.replace("ed25519:","").slice(0,6)}*****`}var Ue=()=>{let e=po();return jsxRuntime.jsx(So,{...e})};var To=()=>jsxRuntime.jsx(Ue,{});var Ho={};V(Ho,{SettingPage:()=>_o,SettingWidget:()=>Ge});var ko=e=>jsxRuntime.jsx(ui.Card,{title:"System upgrade",id:"portfolio-apikey-manager",className:"oui-bg-base-9 oui-font-semibold",children:jsxRuntime.jsxs(ui.Flex,{direction:"row",gap:4,width:"100%",itemAlign:"center",pt:4,className:"oui-font-semibold oui-border-t-2 oui-border-line-6",children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",className:"oui-flex-1",children:[jsxRuntime.jsx(ui.Text,{intensity:80,size:"base",children:"Cancel open orders during system upgrade"}),jsxRuntime.jsx(ui.Text,{intensity:54,size:"sm",children:"During the upgrade period, all open orders will be cancelled to manage your risk in case of high market volatility."})]}),jsxRuntime.jsxs(uiConnector.AuthGuardTooltip,{align:"end",children:[jsxRuntime.jsx(ui.Switch,{checked:e.maintenance_cancel_orders,onCheckedChange:t=>{e.setMaintainConfig(t);},disabled:e.isSetting||!e.canTouch,"data-testid":"oui-testid-setting-switch-btn"})," "]})]})});var Ro=()=>{let{data:e,mutate:t}=hooks.useAccountInfo(),{wrongNetwork:o}=reactApp.useAppContext(),[r,{isMutating:i}]=hooks.useMutation("/v1/client/maintenance_config"),[a,n]=react.useState(!1);react.useEffect(()=>{n(e?.maintenance_cancel_orders||!1);},[e]);let s=hooks.useDebouncedCallback(c=>{r({maintenance_cancel_order_flag:c}).then(f=>{f.success||n(!c);});},300),m=c=>{n(c),s(c);},{state:d}=hooks.useAccount();return {maintenance_cancel_orders:a,setMaintainConfig:m,isSetting:!1,canTouch:d.status===types.AccountStatusEnum.EnableTrading&&!o}};var Ge=()=>{let e=Ro();return jsxRuntime.jsx(ko,{...e})};var _o=()=>jsxRuntime.jsx(Ge,{});
19
+ var or=Object.defineProperty;var G=(e,t)=>{for(var o in t)or(e,o,{get:t[o],enumerable:!0});};var oo={};G(oo,{AssetHistory:()=>ne,AssetHistoryWidget:()=>se,AssetWidget:()=>re,AssetsChartWidget:()=>He,AssetsUI:()=>oe,DistributionHistoryUI:()=>ce,DistributionHistoryWidget:()=>me,FundingHistoryWidget:()=>de,HistoryDataGroupWidget:()=>pe,OverviewContextProvider:()=>De,OverviewPage:()=>to,PerformanceUI:()=>ge,PerformanceWidget:()=>ye,useAssetHistoryColumns:()=>ie,useAssetHistoryHook:()=>ae,useAssetsLineChartScript:()=>_e,useFundingHistoryColumns:()=>le,useFundingHistoryHook:()=>ue,usePerformanceScript:()=>fe});var ot=()=>{let{connect:e}=hooks.useWalletConnector(),{state:t}=hooks.useAccount(),{totalValue:o,freeCollateral:r}=hooks.useCollateral(),{wrongNetwork:i}=reactApp.useAppContext(),[a]=hooks.usePositionStream(),[s]=hooks.useLeverage(),[n,c]=hooks.useLocalStorage("orderly_assets_visible",!0),l=react.useMemo(()=>t.status===types.AccountStatusEnum.EnableTrading,[t]),m=()=>{ui.modal.show(uiLeverage.LeverageWidgetId);},g=()=>{ui.modal.show(uiTransfer.DepositAndWithdrawWithDialogId,{activeTab:"deposit"});},p=()=>{ui.modal.show(uiTransfer.DepositAndWithdrawWithDialogId,{activeTab:"withdraw"});};return {connected:l,connect:e,portfolioValue:o,freeCollateral:r,unrealPnL:a.aggregated.total_unreal_pnl,unrealROI:a.totalUnrealizedROI,currentLeverage:s,onLeverageEdit:m,visible:n,wrongNetwork:i,toggleVisible:()=>c(!n),onDeposit:g,onWithdraw:p}};var Ht=e=>jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.CardTitle,{children:"Overview"}),jsxRuntime.jsxs(ui.Flex,{gap:3,children:[jsxRuntime.jsx(ui.Button,{disabled:e.disabled,size:"md",color:"secondary",onClick:()=>e.onWithdraw?.(),icon:jsxRuntime.jsx(ui.ArrowUpSquareFillIcon,{}),"data-testid":"oui-testid-portfolio-assets-withdraw-btn",children:"Withdraw"}),jsxRuntime.jsx(ui.Button,{disabled:e.disabled,size:"md",onClick:()=>e.onDeposit?.(),icon:jsxRuntime.jsx(ui.ArrowDownSquareFillIcon,{}),"data-testid":"oui-testid-portfolio-assets-deposit-btn",children:"Deposit"})]})]});var oe=e=>jsxRuntime.jsx(ui.Card,{classNames:{footer:"oui-h-[48px]",root:"oui-h-[240px]"},title:jsxRuntime.jsx(Ht,{disabled:!e.connected||e.wrongNetwork,onDeposit:e.onDeposit,onWithdraw:e.onWithdraw}),children:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Statistic,{label:jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Total value"}),jsxRuntime.jsx("button",{onClick:()=>{e.toggleVisible();},"data-testid":"oui-testid-portfolio-assets-eye-btn",children:e.visible?jsxRuntime.jsx(ui.EyeIcon,{size:16,color:"white"}):jsxRuntime.jsx(ui.EyeCloseIcon,{size:16,color:"white"})})]}),children:jsxRuntime.jsx(ui.Either,{value:(e.connected??!1)&&!e.wrongNetwork,left:jsxRuntime.jsx(Tr,{}),children:jsxRuntime.jsx(ui.Text.numeral,{visible:e.visible,unit:"USDC",style:{"--oui-gradient-angle":"45deg"},unitClassName:"oui-text-base oui-text-base-contrast-80 oui-h-9 oui-ml-1",className:ui.gradientTextVariants({className:"oui-font-bold oui-text-3xl",color:"brand"}),children:e.portfolioValue??"--"})})}),jsxRuntime.jsx(ui.Divider,{className:"oui-my-4",intensity:8}),jsxRuntime.jsx(uiConnector.AuthGuard,{buttonProps:{size:"lg",fullWidth:!0},children:jsxRuntime.jsx(Sr,{unrealROI:e.unrealROI,unrealPnL:e.unrealPnL,freeCollateral:e.freeCollateral,currentLeverage:e.currentLeverage,onLeverageEdit:e.onLeverageEdit,visible:e.visible})})]})}),Tr=()=>jsxRuntime.jsxs(ui.Flex,{gap:1,className:"oui-h-9",children:[jsxRuntime.jsx(ui.Text.gradient,{color:"brand",weight:"bold",children:"--"}),jsxRuntime.jsx(ui.Text,{children:"USDC"})]}),Sr=e=>jsxRuntime.jsxs(ui.Grid,{cols:3,className:"oui-h-12",children:[jsxRuntime.jsx(ui.Statistic,{label:"Unrealized PnL",children:jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,size:"lg",weight:"semibold",visible:e.visible,children:e.unrealPnL}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,rule:"percentages",size:"sm",weight:"semibold",prefix:"(",suffix:")",visible:e.visible,children:e.unrealROI})]})}),jsxRuntime.jsx(ui.Statistic,{label:"Max account leverage",children:jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",children:[jsxRuntime.jsx("span",{"data-testid":"oui-testid-portfolio-assets-maxAccountLeverage-value",className:"oui-text-lg",children:e.currentLeverage}),jsxRuntime.jsx("span",{children:"x"}),jsxRuntime.jsx("button",{className:"oui-ml-1",onClick:()=>e.onLeverageEdit?.(),"data-testid":"oui-testid-portfolio-assets-maxAccountLeverage-edit-btn",children:jsxRuntime.jsx(ui.EditIcon,{color:"white",size:18})})]})}),jsxRuntime.jsx(ui.Statistic,{label:"Available to withdraw",align:"right",valueProps:{size:"lg",visible:e.visible},children:e.freeCollateral})]});var re=()=>{let{connected:e,connect:t,portfolioValue:o,onLeverageEdit:r,...i}=ot();return jsxRuntime.jsx(oe,{onConnectWallet:t,connected:e,portfolioValue:o,onLeverageEdit:r,...i})};var Mt=(r=>(r.WEEK="7D",r.MONTH="30D",r.QUARTER="90D",r))(Mt||{}),Et=(e,t)=>{let[o]=react.useState(()=>{let u=new Date;return new Date(dateFns.getYear(u),dateFns.getMonth(u),dateFns.getDate(u),0,0,0)}),{isRealtime:r=!1}=t||{},i=Object.values(Mt),[a,s]=hooks.useLocalStorage(e,"7D"),{totalValue:n}=hooks.useCollateral(),c=u=>{switch(u){case"30D":return dateFns.subDays(o,35);case"90D":return dateFns.subDays(o,95);default:return dateFns.subDays(o,10)}},l=react.useMemo(()=>{switch(a){case"7D":return 7;case"30D":return 30;case"90D":return 90;default:return 7}},[a]),[m,g]=react.useState(c(a)),p=react.useMemo(()=>dateFns.addDays(o,1),[o]),[d]=hooks.useStatisticsDaily({startDate:m.toISOString().split("T")[0],endDate:p.toISOString().split("T")[0]},{ignoreAggregation:!0}),[_]=hooks.useAssetsHistory({startTime:dateFns.subDays(o,2).getTime().toString(),endTime:p.getTime().toString()}),P=u=>{g(c(u)),s(u);},x=u=>{if(n==null)return null;let C=new utils.Decimal(n).sub(u.lastItem.account_value);if(Array.isArray(u.assetHistory)&&u.assetHistory.length>0&&typeof u.lastItem.snapshot_time<"u"){let v=[];for(let h=0;h<u.assetHistory.length;h++){let A=u.assetHistory[h];A.created_time>u.lastItem.snapshot_time&&v.push(A);}for(let h=0;h<v.length;h++){let A=v[h];A.side==="DEPOSIT"?A.trans_status==="COMPLETED"&&(C=C.sub(A.amount)):A.side==="WITHDRAW"&&A.trans_status!=="FAILED"&&(C=C.add(A.amount));}}return C.toNumber()},J=(u,C)=>{let v=u[u.length-1],h=dateFns.format(o,"yyyy-MM-dd");return {...v,date:h,perp_volume:0,account_value:C!==null?C:v?.account_value??0,pnl:x({lastItem:v,assetHistory:_,totalValue:C})??0}},W=(u,C)=>!Array.isArray(u)||u.length===0?u:(u[u.length-1].date,dateFns.format(o,"yyyy-MM-dd"),u.concat([J(u,C)])),O=(u,C)=>{let v=C?W(u,n):u;return v.slice(v.length-l)},B=react.useMemo(()=>n==null?[]:O(d,r),[d,n]),Qe=react.useMemo(()=>{let u=utils.zero,C=utils.zero,v=utils.zero;if(Array.isArray(B)&&B.length){B.forEach(ee=>{C=C.add(ee.pnl);});let h=B[0],A=d.findIndex(ee=>ee.date===h.date),j=d[A-1]?.account_value;typeof j>"u"||j===0?v=utils.zero:v=C.div(j);}if(d.length>0)for(let h=0;h<l;h++){let A=d[d.length-1-h];A&&(u=u.add(A.perp_volume??0));}return {vol:u.toNumber(),pnl:C.toNumber(),roi:v.toNumber()}},[B,d,l]);return {periodTypes:i,period:a,onPeriodChange:P,data:B,aggregateValue:Qe,createFakeData:(u,C)=>Array.from({length:2},(v,h)=>({date:dateFns.format(h===0?m:new Date,"yyyy-MM-dd"),...h===0?u:C})),volumeUpdateDate:d?.[d.length-1]?.date??""}};var Kt=react.createContext({}),Wr="portfolio_performance_period",ke=()=>react.useContext(Kt),De=({children:e})=>{let t=Et(Wr,{isRealtime:!0});return jsxRuntime.jsx(Kt.Provider,{value:{...t},children:e})};var _e=()=>{let e=ke(),{wrongNetwork:t}=reactApp.useAppContext(),o=reactApp.useDataTap(e.data,{accountStatus:types.AccountStatusEnum.EnableTrading,fallbackData:e.createFakeData({account_value:0},{account_value:500})}),r=react.useMemo(()=>o?.length??0>0?o:e.createFakeData({account_value:0},{account_value:500}),[o]);return {...e,wrongNetwork:t,data:r,invisible:t||!e.data.length}};var Re=e=>jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.CardTitle,{children:e.title}),jsxRuntime.jsx("div",{className:"oui-min-w-14",children:jsxRuntime.jsx(ui.Select.options,{size:"xs",value:e.period,onValueChange:e.onPeriodChange,options:e.periodTypes.map(t=>({value:t,label:t}))})})]});var Lt=e=>{let{onPeriodChange:t,periodTypes:o,period:r,data:i}=e;return jsxRuntime.jsx(ui.Card,{title:jsxRuntime.jsx(Re,{onPeriodChange:t,periodTypes:o,period:r,title:"Assets"}),id:"portfolio-overview-assets-chart",classNames:{content:"oui-h-[168px] oui-pb-0"},children:jsxRuntime.jsx(chart.AssetLineChart,{data:e.data,invisible:e.invisible})})};var He=()=>{let e=_e();return jsxRuntime.jsx(Lt,{...e})};var ie=()=>{let{data:e}=hooks.useQuery("/v1/public/chain_info");return react.useMemo(()=>[{title:"Token",dataIndex:"token",width:80,render:o=>jsxRuntime.jsxs(ui.Flex,{gapX:1,children:[jsxRuntime.jsx(ui.TokenIcon,{name:o,size:"xs"}),jsxRuntime.jsx("span",{children:o})]})},{title:"Time",dataIndex:"created_time",width:80,rule:"date"},{title:"TxID",dataIndex:"tx_id",width:120,render:(o,r)=>{if(!o)return jsxRuntime.jsx("div",{className:"oui-text-base-contrast-54",children:"-"});let s=`${e?.find(n=>parseInt(r.chain_id)===parseInt(n.chain_id))?.explorer_base_url}/tx/${o}`;return jsxRuntime.jsx("a",{href:s,target:"_blank",children:jsxRuntime.jsx(ui.Text.formatted,{copyable:!!o,rule:"txId",className:"oui-underline-offset-4 oui-underline oui-decoration-dashed oui-decoration-line-16",onCopy:n=>{n.preventDefault(),n.stopPropagation(),ui.toast.success("Copy success");},children:o})})}},{title:"Status",dataIndex:"trans_status",width:100,formatter:o=>ui.capitalizeFirstLetter(o.toLowerCase())},{title:"Type",dataIndex:"side",width:80,formatter:o=>ui.capitalizeFirstLetter(o.toLowerCase()),render:o=>jsxRuntime.jsx(ui.Text,{color:o.toLowerCase(),children:o})},{title:"Amount",dataIndex:"amount",width:100,rule:"price",formatter:(o,r)=>r.side==="WITHDRAW"?-(o-(r.fee??0)):o-(r.fee??0),numeralProps:{coloring:!0,showIdentifier:!0}}],[e])},Ot=[{label:"All",value:"All"},{label:"Deposit",value:"DEPOSIT"},{label:"Withdrawal",value:"WITHDRAW"}];var Q=e=>{let{from:t,to:o}=e;return typeof o>"u"&&(o=new Date),dateFns.differenceInDays(t,o)===0?[t,dateFns.setHours(o,23)]:[t,o]};var ae=()=>{let[e]=react.useState(()=>{let P=new Date;return new Date(dateFns.getYear(P),dateFns.getMonth(P),dateFns.getDate(P),0,0,0)}),[t,o]=react.useState([utils.subtractDaysFromCurrentDate(90,e),e]),[r,i]=react.useState("All"),{page:a,pageSize:s,setPage:n,setPageSize:c,parseMeta:l}=ui.usePagination(),[m,{meta:g,isLoading:p}]=hooks.useAssetsHistory({startTime:t[0].getTime().toString(),endTime:dateFns.set(t[1],{hours:23,minutes:59,seconds:59,milliseconds:0}).getTime().toString(),page:a,pageSize:s,side:r}),d=P=>{P.name==="side"&&(i(P.value),n(1)),P.name==="dateRange"&&(o(Q(P.value)),n(1));},_=react.useMemo(()=>({...l(g),onPageChange:n,onPageSizeChange:c}),[g,n,c]);return {dataSource:m,meta:l(g),total:g?.total,isLoading:p,queryParameter:{side:r,dateRange:t},onFilter:d,setPage:n,setPageSize:c,pagination:_}};var ne=e=>{let{dataSource:t,meta:o,setPage:r,setPageSize:i,queryParameter:a,onFilter:s,isLoading:n}=e,{side:c,dateRange:l}=a,m=ie();return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.DataFilter,{items:[{type:"select",name:"side",options:Ot,value:c},{type:"range",name:"dateRange",value:{from:l[0],to:l[1]}}],onFilter:g=>{s(g);}}),jsxRuntime.jsx(uiConnector.AuthGuardTableView,{bordered:!0,loading:n,classNames:{root:"oui-h-[calc(100%_-_49px)]"},columns:m,dataSource:t,pagination:e.pagination})]})};var se=()=>{let e=ae();return jsxRuntime.jsx(ne,{...e})};var le=()=>react.useMemo(()=>[{title:"Instrument",dataIndex:"symbol",width:80,rule:"symbol",textProps:{showIcon:!0}},{title:"Time",dataIndex:"created_time",width:120,rule:"date"},{title:"Funding rate / Annual rate",dataIndex:"funding_rate",width:80,render:(t,o)=>jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx(ui.Text.numeral,{rule:"percentages",dp:6,children:o.funding_rate}),jsxRuntime.jsx("span",{children:"/"}),jsxRuntime.jsx(ui.Text.numeral,{rule:"percentages",dp:6,children:o.annual_rate})]})},{title:"Payment type",dataIndex:"payment_type",width:80,render:t=>{switch(t){case"Pay":return "Paid";case"Receive":return "Received";default:return t}}},{title:"Funding fee (USDC)",dataIndex:"funding_fee",width:80,rule:"price",formatter(t,o,r){return Number(t)*-1},numeralProps:{coloring:!0,showIdentifier:!0,ignoreDP:!0}}],[]);var lt=e=>{let{dataSource:t,queryParameter:o,onFilter:r,isLoading:i,meta:a,setPage:s,setPageSize:n}=e,c=le(),l=hooks.useSymbolsInfo(),{symbol:m,dateRange:g}=o;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.DataFilter,{items:[{type:"select",name:"symbol",isCombine:!0,options:[{label:"All",value:"All"},...Object.keys(l).map(p=>({label:p.split("_")[1],value:p}))],value:m,valueFormatter:p=>p==="All"?"All":p.split("_")[1]},{type:"range",name:"dateRange",value:{from:g[0],to:g[1]}}],onFilter:p=>{r(p);}}),jsxRuntime.jsx(uiConnector.AuthGuardTableView,{bordered:!0,columns:c,dataSource:t,loading:i,generatedRowKey:p=>`${p.updated_time}`,classNames:{root:"oui-h-[calc(100%_-_49px)]"},pagination:e.pagination})]})};var ue=()=>{let[e]=react.useState(()=>{let x=new Date;return new Date(dateFns.getYear(x),dateFns.getMonth(x),dateFns.getDate(x),0,0,0)}),[t,o]=react.useState([utils.subtractDaysFromCurrentDate(90,e),e]),[r,i]=react.useState("All"),{page:a,pageSize:s,setPage:n,setPageSize:c,parseMeta:l}=ui.usePagination(),[m,{isLoading:g,meta:p,isValidating:d}]=hooks.useFundingFeeHistory({dataRange:[t[0].getTime(),dateFns.set(t[1],{hours:23,minutes:59,seconds:59,milliseconds:0}).getTime()],symbol:r,page:a,pageSize:s},{keepPreviousData:!0}),_=x=>{x.name==="symbol"&&(i(x.value),n(1)),x.name==="dateRange"&&(o(Q(x.value)),n(1));},P=react.useMemo(()=>({...l(p),onPageChange:n,onPageSizeChange:c}),[p,n,c]);return {dataSource:m,meta:l(p),isLoading:g,isValidating:d,queryParameter:{symbol:r,dateRange:t},onFilter:_,setPage:n,setPageSize:c,pagination:P}};var de=()=>{let e=ue();return jsxRuntime.jsx(lt,{...e})};var $t=()=>react.useMemo(()=>[{title:"Token",dataIndex:"token",width:80,render:(t,o)=>jsxRuntime.jsxs(ui.Flex,{gapX:2,children:[jsxRuntime.jsx(ui.TokenIcon,{name:t,size:"xs"}),jsxRuntime.jsx("span",{children:t})]})},{title:"Time",dataIndex:"updated_time",width:120,rule:"date"},{title:"Status",dataIndex:"status",width:120,formatter(t,o,r){switch(t){case"CREATED":case"SPLIT":return "Processing";case"COMPLETED":default:return "Completed"}}},{title:"Type",dataIndex:"type",width:80,formatter:t=>{switch(t){case"REFERRER_REBATE":return "Referral commission";case"REFEREE_REBATE":return "Referee rebate";case"BROKER_FEE":return "Broker fee";default:return "-"}}},{title:"Amount",dataIndex:"amount",width:80}],[]),Zt=[{label:"All",value:"All"},{label:"Referral commission",value:"REFERRER_REBATE"},{label:"Referee rebate",value:"REFEREE_REBATE"},{label:"Broker fee",value:"BROKER_FEE"}];var ce=e=>{let{dataSource:t,queryParameter:o,onFilter:r,isLoading:i,isValidating:a,meta:s,setPage:n,setPageSize:c}=e,l=$t(),{type:m,dateRange:g}=o;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.DataFilter,{items:[{type:"select",name:"type",options:Zt,value:m},{type:"range",name:"dateRange",value:{from:g[0],to:g[1]}}],onFilter:p=>{r(p);}}),jsxRuntime.jsx(uiConnector.AuthGuardTableView,{bordered:!0,columns:l,dataSource:t,loading:i,className:"oui-font-semibold",classNames:{root:"oui-h-[calc(100%_-_49px)]"},pagination:e.pagination})]})};var Qt=()=>{let[e]=react.useState(()=>{let x=new Date;return new Date(dateFns.getYear(x),dateFns.getMonth(x),dateFns.getDate(x),0,0,0)}),[t,o]=react.useState([utils.subtractDaysFromCurrentDate(90,e),e]),[r,i]=react.useState("All"),{page:a,pageSize:s,setPage:n,setPageSize:c,parseMeta:l}=ui.usePagination(),[m,{isLoading:g,meta:p,isValidating:d}]=hooks.useDistributionHistory({dataRange:[t[0].getTime(),dateFns.set(t[1],{hours:23,minutes:59,seconds:59,milliseconds:0}).getTime()],type:r,pageSize:s,page:a}),_=x=>{x.name==="type"&&(i(x.value),n(1)),x.name==="dateRange"&&(o(Q(x.value)),n(1));},P=react.useMemo(()=>({...l(p),onPageChange:n,onPageSizeChange:c}),[p,n,c]);return {dataSource:m,meta:l(p),isLoading:g,isValidating:d,queryParameter:{type:r,dateRange:t},onFilter:_,setPage:n,setPageSize:c,pagination:P}};var me=()=>{let e=Qt();return jsxRuntime.jsx(ce,{...e})};var Yt=e=>{let{active:t="deposit",onTabChange:o}=e;return jsxRuntime.jsx(ui.Card,{children:jsxRuntime.jsxs(ui.Tabs,{value:t,onValueChange:o,variant:"contained",size:"xl",children:[jsxRuntime.jsx(ui.TabPanel,{title:"Deposits & Withdrawals",icon:jsxRuntime.jsx(ui.ArrowLeftRightIcon,{}),value:"deposit",children:jsxRuntime.jsx(se,{})}),jsxRuntime.jsx(ui.TabPanel,{title:"Funding",icon:jsxRuntime.jsx(ui.FeeTierIcon,{}),value:"funding",children:jsxRuntime.jsx(de,{})}),jsxRuntime.jsx(ui.TabPanel,{title:"Distribution",icon:jsxRuntime.jsx(ui.ServerFillIcon,{}),value:"distribution",children:jsxRuntime.jsx(me,{})})]})})};var Xt=()=>{let[e,t]=react.useState("deposit");return {active:e,onTabChange:o=>t(o)}};var pe=()=>{let e=Xt();return jsxRuntime.jsx(Yt,{...e})};var ge=e=>{let{periodTypes:t,period:o,onPeriodChange:r,aggregateValue:i,invisible:a,visible:s,volumeUpdateDate:n}=e;return jsxRuntime.jsxs(ui.Card,{title:jsxRuntime.jsx(Re,{onPeriodChange:r,periodTypes:t,period:o,title:"Performance"}),id:"portfolio-overview-performance",children:[jsxRuntime.jsxs(ui.Grid,{cols:3,gap:4,children:[jsxRuntime.jsx(ui.Box,{gradient:"neutral",r:"md",px:4,py:2,angle:184,border:!0,borderColor:6,children:jsxRuntime.jsx(ui.Statistic,{label:`${o} ROI`,valueProps:{rule:"percentages",coloring:!0,visible:s},children:a?"--":i.roi})}),jsxRuntime.jsx(ui.Box,{gradient:"neutral",r:"md",px:4,py:2,angle:184,border:!0,borderColor:6,children:jsxRuntime.jsx(ui.Statistic,{label:`${o} PnL`,valueProps:{coloring:!0,showIdentifier:!0,visible:s},children:a?"--":i.pnl})}),jsxRuntime.jsx(ui.Box,{gradient:"neutral",r:"md",px:4,py:2,angle:184,border:!0,borderColor:6,children:jsxRuntime.jsx(ui.Statistic,{classNames:{label:"oui-w-full"},label:jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx("span",{children:`${o} Volume (USDC)`}),jsxRuntime.jsx("span",{children:n})]}),children:a?"--":i.vol})})]}),jsxRuntime.jsxs(ui.Grid,{cols:2,gap:4,children:[jsxRuntime.jsx(ma,{data:e.data??[],invisible:e.invisible}),jsxRuntime.jsx(pa,{data:e.data??[],invisible:e.invisible||(e.data?.length??0)<=2})]})]})},ma=e=>jsxRuntime.jsxs(ui.Box,{mt:4,height:"188px",children:[jsxRuntime.jsx(ui.Text,{as:"div",size:"sm",className:"oui-mb-3",children:"Daily PnL"}),jsxRuntime.jsx(ui.Box,{r:"md",className:"oui-border oui-border-line-4 oui-h-[188px]",children:jsxRuntime.jsx(chart.PnLBarChart,{data:e.data,invisible:e.invisible||(e.data?.length??0)<=2})})]}),pa=e=>jsxRuntime.jsxs(ui.Box,{mt:4,children:[jsxRuntime.jsx(ui.Text,{as:"div",size:"sm",className:"oui-mb-3",children:"Cumulative PnL"}),jsxRuntime.jsx(ui.Box,{r:"md",className:"oui-border oui-border-line-4 oui-h-[188px]",children:jsxRuntime.jsx(chart.PnlLineChart,{data:e.data,invisible:e.invisible||(e.data?.length??0)<=2})})]});var fe=()=>{let e=ke(),[t]=hooks.useLocalStorage("orderly_assets_visible",!0),{wrongNetwork:o}=reactApp.useAppContext(),{state:r}=hooks.useAccount(),i=reactApp.useDataTap(e.data,{accountStatus:types.AccountStatusEnum.EnableTrading,fallbackData:e.createFakeData({account_value:0,pnl:0},{account_value:500,pnl:500})}),a=react.useMemo(()=>i?.length??0>0?i:e.createFakeData({account_value:0,pnl:0},{account_value:500,pnl:500}),[i]);return {...e,data:a,invisible:o||r.status<types.AccountStatusEnum.EnableTrading,visible:t}};var ye=()=>{let e=fe();return jsxRuntime.jsx(ge,{...e})};var to=()=>jsxRuntime.jsx(De,{children:jsxRuntime.jsxs(ui.Grid,{cols:2,gap:4,children:[jsxRuntime.jsx(re,{}),jsxRuntime.jsx(He,{}),jsxRuntime.jsx(ui.Grid.span,{colSpan:2,children:jsxRuntime.jsx(ye,{})}),jsxRuntime.jsx(ui.Grid.span,{colSpan:2,children:jsxRuntime.jsx(pe,{})})]})});var ro=e=>{let{children:t,...o}=e;return jsxRuntime.jsx(uiScaffold.Scaffold,{leftSidebar:e.hideSideBar?null:jsxRuntime.jsx(Ta,{...o}),routerAdapter:e.routerAdapter,classNames:{content:"lg:oui-mb-0",topNavbar:"oui-bg-base-9",leftSidebar:"oui-m-3 oui-p-4 oui-broder oui-border-[1px] oui-border-line oui-rounded-xl oui-bg-base-9"},...e,children:jsxRuntime.jsx(ui.Box,{mx:3,my:6,children:t})})},Ta=e=>{let{expanded:t,setExpand:o}=uiScaffold.useScaffoldContext();return jsxRuntime.jsx(uiScaffold.SideBar,{title:"Portfolio",...e,open:t,onOpenChange:r=>o(r),onItemSelect:r=>{e.onItemSelect?.(r),e.routerAdapter?.onRouteChange?.({href:r.href||"",name:r.name});}})};var io=e=>{let{routerAdapter:t}=uiScaffold.useScaffoldContext(),[o,r]=react.useState(e.current??t?.currentPath??"/portfolio");react.useEffect(()=>{(o||t?.currentPath)&&r(o||t?.currentPath||"/portfolio");},[o,t?.currentPath]);let i=react.useMemo(()=>[{name:"Overview",href:"/portfolio",icon:jsxRuntime.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M5.24316 2.19727C3.58641 2.19727 2.24316 3.54044 2.24316 5.19727V12.6973C2.24316 14.3541 3.58641 15.6973 5.24316 15.6973H12.7432C14.3999 15.6973 15.7432 14.3541 15.7432 12.6973V5.19727C15.7432 3.54044 14.3999 2.19727 12.7432 2.19727H5.24316ZM5.24316 3.69727H12.7432C13.5719 3.69727 14.2432 4.36882 14.2432 5.19727V12.6973C14.2432 13.2484 13.9319 13.734 13.4894 13.9947C13.3454 12.2235 11.4427 11.1973 8.99316 11.1973C6.54366 11.1973 4.60341 12.251 4.48566 13.9997C4.04241 13.739 3.74316 13.2484 3.74316 12.6973V5.19727C3.74316 4.36882 4.41441 3.69727 5.24316 3.69727ZM8.99316 5.19727C7.54341 5.19727 6.36816 6.37252 6.36816 7.82227C6.36816 9.27202 7.54341 10.4473 8.99316 10.4473C10.4429 10.4473 11.6182 9.27202 11.6182 7.82227C11.6182 6.37252 10.4429 5.19727 8.99316 5.19727Z",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"Positions",href:"/portfolio/positions",icon:jsxRuntime.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M4.51 3.021a3 3 0 0 0-3 3v6a3 3 0 0 0 3 3h9a3 3 0 0 0 3-3v-6a3 3 0 0 0-3-3zm2.25 3a.76.76 0 0 1 .54.211.77.77 0 0 1 0 1.078l-.75.75a.77.77 0 0 1-.54.211h-.75a.75.75 0 0 1 0-1.5h.422l.54-.539a.76.76 0 0 1 .539-.21m3 .75h3a.75.75 0 0 1 0 1.5h-3a.75.75 0 0 1 0-1.5m-3 2.25a.76.76 0 0 1 .54.211.77.77 0 0 1 0 1.079l-.75.75a.77.77 0 0 1-.54.21h-.75a.75.75 0 0 1 0-1.5h.422l.54-.539a.76.76 0 0 1 .539-.21m3 .75h3a.75.75 0 0 1 0 1.5h-3a.75.75 0 0 1 0-1.5",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"Orders",href:"/portfolio/orders",icon:jsxRuntime.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M5.693 1.5C4.229 1.5 3.02 2.61 3.02 4.006v9.984c0 1.398 1.208 2.508 2.672 2.508h6.657c1.463 0 2.671-1.11 2.671-2.508V6.726c0-2.672-2.579-5.227-5.25-5.227zm4.828 1.593c1.33.352 2.562 1.58 2.906 2.906h-1.734c-.667 0-1.172-.472-1.172-1.008zm-3.75 2.906h.75a.75.75 0 0 1 0 1.5h-.75a.75.75 0 0 1 0-1.5m0 3h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5m0 3h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"Fee tier",href:"/portfolio/feeTier",icon:jsxRuntime.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M5.99829 1.51062C4.34154 1.51062 2.99829 2.85387 2.99829 4.51062V13.5106C2.99829 15.1674 4.34154 16.5106 5.99829 16.5106H11.9983C13.655 16.5106 14.9983 15.1674 14.9983 13.5106V4.51062C14.9983 2.85387 13.655 1.51062 11.9983 1.51062H5.99829ZM5.99829 3.76062H11.9983C12.4123 3.76062 12.7483 4.09662 12.7483 4.51062V6.01062C12.7483 6.42462 12.4123 6.76062 11.9983 6.76062H5.99829C5.58429 6.76062 5.24829 6.42462 5.24829 6.01062V4.51062C5.24829 4.09662 5.58429 3.76062 5.99829 3.76062ZM5.99829 8.26062C6.41229 8.26062 6.74829 8.59662 6.74829 9.01062C6.74829 9.42462 6.41229 9.76062 5.99829 9.76062C5.58429 9.76062 5.24829 9.42462 5.24829 9.01062C5.24829 8.59662 5.58429 8.26062 5.99829 8.26062ZM8.99829 8.26062C9.41229 8.26062 9.74829 8.59662 9.74829 9.01062C9.74829 9.42462 9.41229 9.76062 8.99829 9.76062C8.58429 9.76062 8.24829 9.42462 8.24829 9.01062C8.24829 8.59662 8.58429 8.26062 8.99829 8.26062ZM11.9983 8.26062C12.4123 8.26062 12.7483 8.59662 12.7483 9.01062C12.7483 9.42462 12.4123 9.76062 11.9983 9.76062C11.5843 9.76062 11.2483 9.42462 11.2483 9.01062C11.2483 8.59662 11.5843 8.26062 11.9983 8.26062ZM5.99829 10.5106C6.41229 10.5106 6.74829 10.8466 6.74829 11.2606C6.74829 11.6746 6.41229 12.0106 5.99829 12.0106C5.58429 12.0106 5.24829 11.6746 5.24829 11.2606C5.24829 10.8466 5.58429 10.5106 5.99829 10.5106ZM8.99829 10.5106C9.41229 10.5106 9.74829 10.8466 9.74829 11.2606C9.74829 11.6746 9.41229 12.0106 8.99829 12.0106C8.58429 12.0106 8.24829 11.6746 8.24829 11.2606C8.24829 10.8466 8.58429 10.5106 8.99829 10.5106ZM11.9983 10.5106C12.4123 10.5106 12.7483 10.8466 12.7483 11.2606V13.5106C12.7483 13.9246 12.4123 14.2606 11.9983 14.2606C11.5843 14.2606 11.2483 13.9246 11.2483 13.5106V11.2606C11.2483 10.8466 11.5843 10.5106 11.9983 10.5106ZM5.99829 12.7606C6.41229 12.7606 6.74829 13.0966 6.74829 13.5106C6.74829 13.9246 6.41229 14.2606 5.99829 14.2606C5.58429 14.2606 5.24829 13.9246 5.24829 13.5106C5.24829 13.0966 5.58429 12.7606 5.99829 12.7606ZM8.99829 12.7606C9.41229 12.7606 9.74829 13.0966 9.74829 13.5106C9.74829 13.9246 9.41229 14.2606 8.99829 14.2606C8.58429 14.2606 8.24829 13.9246 8.24829 13.5106C8.24829 13.0966 8.58429 12.7606 8.99829 12.7606Z",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"API key",href:"/portfolio/apiKey",icon:jsxRuntime.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M9.02124 1.49915C7.77849 1.49915 6.77124 2.5064 6.77124 3.74915C6.77124 4.70015 7.40049 5.55517 8.26974 5.86942L8.27124 8.24915H5.27124C4.85724 8.24915 4.52124 8.58515 4.52124 8.99915L4.52048 12.1304C3.65723 12.4274 3.02124 13.2981 3.02124 14.2491C3.02124 15.4919 4.02849 16.4991 5.27124 16.4991C6.51399 16.4991 7.52124 15.4919 7.52124 14.2491C7.52124 13.2981 6.92499 12.4596 6.02949 12.1206L6.02124 9.74915H9.02124H12.0212L12.0265 12.1319C11.1257 12.4446 10.5212 13.2981 10.5212 14.2491C10.5212 15.4919 11.5285 16.4991 12.7712 16.4991C14.014 16.4991 15.0212 15.4919 15.0212 14.2491C15.0212 13.2981 14.407 12.4611 13.5272 12.1281L13.5212 8.99915C13.5212 8.58515 13.1852 8.24915 12.7712 8.24915H9.77124L9.76899 5.86639C10.642 5.55814 11.2712 4.70015 11.2712 3.74915C11.2712 2.5064 10.264 1.49915 9.02124 1.49915Z",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})},{name:"Settings",href:"/portfolio/setting",icon:jsxRuntime.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M6.72601 1.84159C5.66251 2.17834 4.74527 2.7296 3.93677 3.48185C3.68702 3.7151 3.61052 4.09534 3.77252 4.39609C4.37327 5.50684 3.74476 6.69484 2.39026 6.76309C2.05801 6.78034 1.76477 7.02559 1.68677 7.34884C1.55252 7.90759 1.49927 8.37559 1.49927 8.98984C1.49927 9.50509 1.55476 10.0878 1.66351 10.6068C1.73101 10.9308 2.01302 11.1641 2.34302 11.1933C3.70652 11.3111 4.38152 12.3506 3.77252 13.6773C3.63752 13.9721 3.69902 14.3246 3.93677 14.5443C4.73327 15.2816 5.64826 15.8006 6.72601 16.1381C7.03351 16.2348 7.38076 16.1186 7.56976 15.8568C8.40376 14.7033 9.61352 14.6988 10.4055 15.8568C10.5923 16.1298 10.9343 16.2611 11.2493 16.1613C12.2895 15.8343 13.2585 15.2771 14.0618 14.5443C14.3093 14.3193 14.3745 13.9541 14.226 13.6541C13.602 12.3948 14.3198 11.2383 15.6083 11.2166C15.9503 11.2106 16.2548 10.9856 16.335 10.6541C16.4648 10.1163 16.4993 9.64759 16.4993 8.98984C16.4993 8.42434 16.4325 7.86709 16.3118 7.32559C16.2353 6.98359 15.936 6.74059 15.585 6.73984C14.3168 6.73759 13.6058 5.49109 14.226 4.39609C14.3985 4.09084 14.3445 3.71735 14.085 3.48185C13.2675 2.73935 12.2708 2.15959 11.226 1.84159C10.905 1.74409 10.5638 1.86409 10.3823 2.14609C9.65776 3.27109 8.30477 3.29135 7.59302 2.16935C7.41077 1.8821 7.05001 1.73809 6.72601 1.84159ZM8.99927 5.98984C10.656 5.98984 11.9993 7.33309 11.9993 8.98984C11.9993 10.6466 10.656 11.9898 8.99927 11.9898C7.34252 11.9898 5.99927 10.6466 5.99927 8.98984C5.99927 7.33309 7.34252 5.98984 8.99927 5.98984Z",className:"oui-fill-current group-data-[actived=true]:oui-fill-[url(#side-menu-gradient)]"})})}],[]),a=hooks.useMediaQuery("(max-width: 768px)");return {items:i,current:o,hideSideBar:a,onItemSelect:s=>{typeof s.href>"u"||(r(s.href),t?.onRouteChange({href:s.href,name:s.name}));}}};var _a=e=>{let t=io({current:e.leftSideProps?.current});return jsxRuntime.jsx(ro,{...t,...e,children:e.children})};var po={};G(po,{FeeTierPage:()=>mo});var gt=[{tier:1,maker_fee:"0.03%",taker_fee:"0.06%",volume_min:0,volume_max:5e5},{tier:2,maker_fee:"0.02%",taker_fee:"0.05%",volume_min:5e5,volume_max:25e5},{tier:3,maker_fee:"0.015%",taker_fee:"0.045%",volume_min:25e5,volume_max:1e7},{tier:4,maker_fee:"0.01%",taker_fee:"0.04%",volume_min:1e7,volume_max:5e7},{tier:5,maker_fee:"0.005%",taker_fee:"0.035%",volume_min:5e7,volume_max:125e6,or:"/",staking_min:3e5,staking_max:null},{tier:6,maker_fee:"0%",taker_fee:"0.03%",volume_min:125e6,volume_max:null,or:"/",staking:null,staking_min:null,staking_max:null}];var so=()=>react.useMemo(()=>[{title:"Tier",dataIndex:"tier",align:"left",width:100},{title:"30 Day Volume (USDC)",dataIndex:"volume",align:"center",width:170,render:(t,o)=>{let{volume_min:r,volume_max:i}=o;return !r&&!i?jsxRuntime.jsx("div",{style:{fontVariantLigatures:"none"},children:"--"}):r&&!i?jsxRuntime.jsxs("div",{children:["Above ",utils.numberToHumanStyle(r,r===25e5?1:0)]}):jsxRuntime.jsxs("div",{children:[r&&utils.numberToHumanStyle(r,r===25e5?1:0)," - ",i&&utils.numberToHumanStyle(i,i===25e5?1:0)]})}},{title:"Maker",dataIndex:"maker_fee",align:"right",width:100,render:t=>jsxRuntime.jsx(ui.Text,{children:t})},{title:"Taker",dataIndex:"taker_fee",align:"right",width:100,render:t=>jsxRuntime.jsx(ui.Text,{children:t})}],[]);function lo(e){let{dataAdapter:t}=e||{},[o,r]=react.useState(),{data:i}=hooks.useAccountInfo(),a=so(),{data:s}=hooks.usePrivateQuery("/v1/volume/user/stats"),{columns:n,dataSource:c}=react.useMemo(()=>typeof t=="function"?t(a,gt):{columns:a,dataSource:gt},[t,a]),l=(d,_)=>{let{futures_taker_fee_rate:P=0,futures_maker_fee_rate:x=0}=_,J=`${new utils.Decimal(P).mul(.01).toString()}%`,W=`${new utils.Decimal(x).mul(.01).toString()}%`;for(let O of d)if(J===O.taker_fee&&W===O.maker_fee)return O.tier};react.useEffect(()=>{if(!i)return;let d=l(c,i);r(d);},[i,c]);let m=react.useMemo(()=>{let d=i?.futures_taker_fee_rate;if(!(typeof d>"u"))return `${new utils.Decimal(d).mul(.01).toString()}%`},[i]),g=react.useMemo(()=>{let d=i?.futures_maker_fee_rate;if(!(typeof d>"u"))return `${new utils.Decimal(d).mul(.01).toString()}%`},[i]);return {...reactApp.useDataTap({tier:o,vol:s?.perp_volume_last_30_days,takerFeeRate:m,makerFeeRate:g},{accountStatus:types.AccountStatusEnum.EnableTrading}),columns:n,dataSource:c}}var uo=e=>{let{columns:t,dataSource:o,tier:r,vol:i,takerFeeRate:a,makerFeeRate:s}=e;return jsxRuntime.jsxs(ui.Card,{title:jsxRuntime.jsxs(ui.Flex,{justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"lg",children:"Fee tier"}),jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx(ui.Text,{size:"xs",intensity:54,children:"Updated daily by"}),jsxRuntime.jsx(ui.Text,{size:"xs",intensity:80,children:"2:00 UTC"})]})]}),className:"w-full",id:"oui-portfolio-fee-tier",children:[jsxRuntime.jsx(ui.Divider,{}),jsxRuntime.jsx(Za,{tier:r,vol:i,takerFeeRate:a,makerFeeRate:s}),jsxRuntime.jsx(qa,{dataSource:o,columns:t,tier:r})]})},Za=e=>jsxRuntime.jsxs(ui.Flex,{direction:"row",gapX:4,my:4,itemAlign:"stretch",children:[jsxRuntime.jsx(Ee,{label:"Your Tier",value:jsxRuntime.jsx(ui.Text.gradient,{color:"brand",angle:270,size:"base",children:e.tier||"--"})}),jsxRuntime.jsx(Ee,{label:"30D Trading Volume (USDC)",value:jsxRuntime.jsx(ui.Text.numeral,{rule:"price",dp:2,rm:utils.Decimal.ROUND_DOWN,children:typeof e.vol!==void 0?`${e.vol}`:"-"})}),jsxRuntime.jsx(Ee,{label:"Take fee rate",value:jsxRuntime.jsx(ui.Text.gradient,{color:"brand",angle:270,size:"base",children:e.takerFeeRate||"--"})}),jsxRuntime.jsx(Ee,{label:"Marker fee rate",value:jsxRuntime.jsx(ui.Text.gradient,{color:"brand",angle:270,size:"base",children:e.makerFeeRate||"--"})})]}),Ee=e=>jsxRuntime.jsxs(ui.Box,{gradient:"neutral",r:"lg",px:4,py:2,angle:184,width:"100%",border:!0,borderColor:6,children:[jsxRuntime.jsx(ui.Text,{as:"div",intensity:36,size:"2xs",weight:"semibold",className:"oui-leading-[18px]",children:e.label}),jsxRuntime.jsx(ui.Text,{size:"base",intensity:80,className:"oui-leading-[24px] oui-mt-[2px]",children:e.value})]}),qa=e=>{let[t,o]=react.useState(void 0);react.useEffect(()=>{let i=document.getElementById("oui-fee-tier-content")?.getBoundingClientRect(),a=document.getElementById("oui-fee-tier-current")?.getBoundingClientRect();if(a&&i){let s=a.top-i.top;o(s);}},[e.tier]);let r=react.useCallback((i,a)=>a+1==e.tier?{id:"oui-fee-tier-current",className:"oui-h-12 oui-text-[rgba(0,0,0,0.88)] oui-pointer-events-none"}:{className:"oui-h-12"},[e.tier]);return jsxRuntime.jsxs(ui.Box,{id:"oui-fee-tier-content",className:"oui-border-b oui-border-line-4 oui-relative",children:[t&&jsxRuntime.jsx(ui.Box,{angle:90,gradient:"brand",className:"oui-rounded-[6px] oui-absolute oui-w-full",style:{top:`${t}px`,height:"48px"}}),jsxRuntime.jsx(ui.TableView,{bordered:!0,className:"oui-font-semibold",classNames:{root:"oui-bg-transparent"},onRow:r,columns:e.columns,dataSource:e.dataSource})]})};var co=e=>{let t=lo(e);return jsxRuntime.jsx(uo,{...t})};var mo=e=>jsxRuntime.jsx(co,{...e});var fo={};G(fo,{PositionsPage:()=>tn});var tn=e=>jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",gap:4,width:"100%",height:"100%",children:[jsxRuntime.jsx(ui.Flex,{children:jsxRuntime.jsx(ui.Text,{size:"lg",children:"Positions"})}),jsxRuntime.jsx(ui.Divider,{className:"oui-w-full"}),jsxRuntime.jsx(ui.Box,{width:"100%",className:"oui-h-[calc(100%_-_59px)]",children:jsxRuntime.jsx(uiPositions.PositionsWidget,{...e})})]});var xo={};G(xo,{OrdersPage:()=>ln});var ln=()=>jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",gap:4,width:"100%",height:"100%",children:[jsxRuntime.jsx(ui.Flex,{children:jsxRuntime.jsx(ui.Text,{size:"lg",children:"Orders"})}),jsxRuntime.jsx(ui.Divider,{className:"oui-w-full"}),jsxRuntime.jsx(ui.Box,{width:"100%",className:"oui-h-[calc(100%_-_59px)]",children:jsxRuntime.jsx(uiOrders.OrdersWidget,{})})]});var Ho={};G(Ho,{APIManagerPage:()=>Ro,APIManagerWidget:()=>$e});var Co=()=>{let[e,t]=react.useState(!1),[o,r]=react.useState(!1),[i,a]=react.useState(),{configStore:s}=react.useContext(hooks.OrderlyContext),n=s.get("brokerId"),{wrongNetwork:c}=reactApp.useAppContext(),{state:l,account:m}=hooks.useAccount(),g=l.status===types.AccountStatusEnum.EnableTrading,{data:p}=hooks.useQuery(`/v1/get_account?address=${m.address}&broker_id=${n}&chain_type=${m.walletAdapter?.chainNamespace}`),[d,{generateOrderlyKey:_,setIPRestriction:P,removeOrderlyKey:x,resetOrderlyKeyIPRestriction:J,refresh:W,isLoading:O,error:B}]=hooks.useApiKeyManager({keyInfo:{keyStatus:"ACTIVE"}}),Qe=()=>{t(!0);},Ft=()=>{window.open("https://orderly.network/docs/build-on-evm/evm-api/api-authentication","_blank");},u=()=>{t(!1);},C=async(b,R)=>{try{let F=(et,we)=>{let{key:jo,secretKey:er}=et;u(),a({key:jo,screctKey:er,ip:we,permissions:R?.split(",")?.map(tr=>vt(tr)).join(", ")}),r(!0);},H=await _(R);if(ui.toast.success("API key created"),(b?.length||0)>0){let et=H.key.startsWith("ed25519:")?H.key:`ed25519:${H.key}`,we=await P(et,b);we.success&&F(H,we.data.ip_restriction_list?.join(","));}else F(H,void 0);}catch(F){F?.message&&ui.toast.error(F?.message);}return Promise.resolve(0)},v=()=>{r(!1),W();},h=()=>{navigator.clipboard.writeText(JSON.stringify(i)),ui.toast.success("API info copied");},A=()=>{v();},j=b=>new Promise(async R=>{await x(b.orderly_key).then(async F=>{if(F?.success){ui.toast.success("API key deleted"),W();let H=await m.keyStore.getOrderlyKey()?.getPublicKey();b.orderly_key===H&&m.destroyOrderlyKey();}R(1);},F=>{}).catch(F=>{});}),ee=async(b,R)=>{let F;(R?.length||0)===0?F=J(b.orderly_key,"ALLOW_ALL_IPS"):F=P(b.orderly_key,R);let H=await F;return H.success?(ui.toast.success("API key updated"),W(),Promise.resolve()):(ui.toast.error(H.message),Promise.reject())},Wo=()=>ui.toast.success("Account id copied"),Oo=b=>{typeof b<"u"&&navigator.clipboard.writeText(b.replace("ed25519:","")),ui.toast.success("API key copied");},Bo=()=>ui.toast.success("Secret key copied"),Uo=()=>ui.toast.success("Restricted IP copied"),Pe=react.useMemo(()=>d?.filter(b=>b.tag==="manualCreated"&&b.key_status==="ACTIVE"),[d]),Vo=b=>/^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(,((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9]))*$/.test(b)?"":"IP restriction format is incorrect.",Go=reactApp.useDataTap(p?.account_id,{accountStatus:types.AccountStatusEnum.EnableTrading}),$o=reactApp.useDataTap(p?.user_id,{accountStatus:types.AccountStatusEnum.EnableTrading}),{page:Ye,pageSize:ve,setPage:Xe,setPageSize:Je,parseMeta:Zo}=ui.usePagination({page:1}),qo=react.useMemo(()=>Pe?.length,[Pe]),Qo=b=>{Xe(b);},Yo=b=>{Je(b);},Xo=react.useMemo(()=>{let b=(Ye-1)*ve,R=b+ve;return Pe?.slice(b,R)},[Pe,Ye,ve]),je=Zo({total:qo??0,current_page:Ye,records_per_page:ve}),Jo=react.useMemo(()=>({...je,onPageChange:Xe,onPageSizeChange:Je}),[je,Xe,Je]);return {address:Go??"--",uid:`${$o??"--"}`,onCreateApiKey:Qe,onReadApiGuide:Ft,showCreateDialog:e,hideCreateDialog:u,doCreate:C,showCreatedDialog:o,hideCreatedDialog:v,onCopyApiKeyInfo:h,doConfirm:A,doDelete:j,doEdit:ee,canCreateApiKey:g,status:l.status,keys:Xo,generateKey:i,onCopyAccountId:Wo,wrongNetwork:c,onCopyApiKey:Oo,onCopyApiSecretKey:Bo,onCopyIP:Uo,verifyIP:Vo,isLoading:O,meta:je,onPageChange:Qo,onPageSizeChange:Yo,pagination:Jo}};function vt(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Po=e=>{let[t,o]=react.useState(""),[r,i]=react.useState(!0),[a,s]=react.useState(!0),[n,c]=react.useState("");return react.useEffect(()=>{e.showCreateDialog||(o(""),i(!0),s(!0),c(""));},[e.showCreateDialog]),react.useEffect(()=>{t.length===0&&c("");},[t]),jsxRuntime.jsx(ui.SimpleDialog,{size:"sm",open:e.showCreateDialog,onOpenChange:l=>{e.hideCreateDialog?.();},title:"Create API key",actions:{primary:{label:"Confirm",className:"oui-w-[120px] lg:oui-w-[154px]","data-testid":"oui-testid-apiKey-createApiKey-dialog-comfirm-btn",onClick:async()=>{if(t.length>0){let m=e.verifyIP(t);if(c(m),m.length>0)return}let l=[];r&&l.push("read"),a&&l.push("trading"),await e.doCreate(t,l.join(","));},disabled:!a&&!r,size:"md"}},classNames:{footer:"oui-justify-center",content:"oui-bg-base-8 oui-w-[300px] lg:oui-w-[360px] oui-font-semibold"},children:jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:6,children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:1,width:"100%",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text,{intensity:54,size:"2xs",children:"IP restriction (optional)"}),jsxRuntime.jsx("textarea",{"data-testid":"oui-testid-apiKey-createApiKey-dialog-textarea",placeholder:"Add IP addresses, separated by commas.",className:ui.cn("oui-text-sm oui-text-base-contrast-80 oui-p-3 oui-h-[100px] oui-rounded-xl oui-bg-base-6 oui-w-full","oui-border-0 focus:oui-border-2 focus:oui-border-primary-darken oui-outline-none","oui-placeholder-base-contrast-20",n.length>0&&"oui-outline-1 oui-outline-danger focus:oui-outline-none"),value:t,onChange:l=>{o(l.target.value);},style:{resize:"none"}}),n.length>0&&jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx("div",{className:"oui-h-1 oui-w-1 oui-rounded-full oui-bg-danger"}),jsxRuntime.jsx(ui.Text,{color:"danger",size:"xs",children:n})]})]}),jsxRuntime.jsx(ui.Statistic,{label:jsxRuntime.jsx(ui.Text,{size:"xs",intensity:54,children:"Permissions"}),className:"oui-w-full",children:jsxRuntime.jsxs(ui.Flex,{direction:"row",gap:6,itemAlign:"start",className:"oui-mt-2",children:[jsxRuntime.jsx(he,{size:18,checked:r,onCheckedChange:l=>i(l),label:"Read",testid:"oui-testid-apiKey-createApiKey-dialog-read-checkbox"}),jsxRuntime.jsx(he,{size:18,checked:a,onCheckedChange:l=>s(l),label:"Trading",testid:"oui-testid-apiKey-createApiKey-dialog-trading-checkbox"})]})})]})})},he=e=>jsxRuntime.jsxs("button",{disabled:e.disabled,onClick:t=>{e.onCheckedChange(!e.checked);},className:"disabled:oui-cursor-not-allowed disabled:oui-opacity-50 oui-flex oui-items-center oui-gap-2","data-testid":e.testid,children:[e.checked?jsxRuntime.jsx("svg",{width:"props.size",height:e.size,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.99072 2.92981C4.78172 2.92981 2.99072 4.72071 2.99072 6.92981V16.9298C2.99072 19.1389 4.78172 20.9298 6.99072 20.9298H16.9907C19.1997 20.9298 20.9907 19.1389 20.9907 16.9298V6.92981C20.9907 4.72071 19.1997 2.92981 16.9907 2.92981H6.99072ZM16.9853 7.31211C17.2125 7.09537 17.5236 7 17.8218 7C18.1201 7 18.4312 7.09537 18.6584 7.31211C19.1139 7.74546 19.1139 8.47384 18.6584 8.9072L10.5077 16.675C10.0534 17.1083 9.28909 17.1083 8.83472 16.675L5.34077 13.3459C4.88641 12.9126 4.88641 12.1841 5.34077 11.7508C5.79631 11.3175 6.56057 11.3175 7.01493 11.7508L9.67122 14.2822L16.9853 7.31211Z",fill:"white",fillOpacity:"0.54"})}):jsxRuntime.jsx("svg",{width:e.size,height:e.size,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M6.99072 2.92981C4.78172 2.92981 2.99072 4.72071 2.99072 6.92981V16.9298C2.99072 19.1389 4.78172 20.9298 6.99072 20.9298H16.9907C19.1997 20.9298 20.9907 19.1389 20.9907 16.9298V6.92981C20.9907 4.72071 19.1997 2.92981 16.9907 2.92981H6.99072ZM6.99072 4.92981H16.9907C18.0957 4.92981 18.9907 5.82521 18.9907 6.92981V16.9298C18.9907 18.0344 18.0957 18.9298 16.9907 18.9298H6.99072C5.88572 18.9298 4.99072 18.0344 4.99072 16.9298V6.92981C4.99072 5.82521 5.88572 4.92981 6.99072 4.92981Z",fill:"white",fillOpacity:"0.54"})}),jsxRuntime.jsx(ui.Text,{intensity:54,size:"sm",children:e.label})]});var Ao=e=>{let t=e.generateKey?.ip??"--";return jsxRuntime.jsx(ui.SimpleDialog,{size:"sm",open:e.showCreatedDialog,onOpenChange:o=>{e.hideCreatedDialog?.();},title:"API key created",actions:{primary:{label:"OK","data-testid":"oui-testid-apiKey-createdApiKey-dialog-ok-btn",className:"oui-w-[120px] lg:oui-w-[154px] oui-bg-base-2 hover:oui-bg-base-3",size:"md",onClick:async()=>e.doConfirm()},secondary:{label:"Copy API info","data-testid":"oui-testid-apiKey-createdApiKey-dialog-copy-btn",className:"oui-w-[120px] lg:oui-w-[154px] oui-bg-primary-darken hover:oui-opacity-80",size:"md",onClick:async()=>e.onCopyApiKeyInfo()}},classNames:{footer:"oui-justify-center",content:"oui-bg-base-8 oui-w-[300px] lg:oui-w-[360px] oui-font-semibold",body:"oui-py-0 oui-pt-5"},children:jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:4,itemAlign:"start",children:[jsxRuntime.jsx(ui.Statistic,{label:"API key",children:jsxRuntime.jsx(ui.Text.formatted,{size:"sm",intensity:80,copyable:!0,copyIconSize:16,className:"oui-break-all",onCopy:()=>e.onCopyApiKey(e.generateKey?.key),"data-testid":"oui-testid-apiKey-createdApiKey-dialog-key-span",children:e.generateKey?.key})}),jsxRuntime.jsxs(ui.Statistic,{label:"Secret key",children:[jsxRuntime.jsx(ui.Text.formatted,{size:"sm",intensity:80,copyable:!0,copyIconSize:16,className:"oui-break-all",onCopy:e.onCopyApiSecretKey,children:e.generateKey?.screctKey})," "]}),jsxRuntime.jsx(ui.Statistic,{label:"IP",children:jsxRuntime.jsxs(ui.Flex,{width:320,gap:1,itemAlign:"center",className:"oui-text-base-contrast-80 oui-text-sm",children:[jsxRuntime.jsx(ui.Box,{className:"oui-max-h-[100px] oui-flex-1 oui-overflow-hidden oui-text-ellipsis oui-line-clamp-5 oui-break-all",children:t}),t!=="--"&&jsxRuntime.jsx(ui.Box,{width:16,height:16,className:"oui-cursor-pointer oui-flex-shrink-0",children:jsxRuntime.jsx(ui.CopyIcon,{color:"white",opacity:.54,size:16,onClick:o=>{e.generateKey?.ip&&navigator.clipboard.writeText(e.generateKey?.ip),e?.onCopyIP();}})})]})}),jsxRuntime.jsx(ui.Statistic,{label:"Permissions",children:jsxRuntime.jsx(ui.Text,{size:"sm",intensity:80,"data-testid":"oui-testid-apiKey-createdApiKey-dialog-permissions-span",children:e.generateKey?.permissions})}),jsxRuntime.jsx("div",{}),jsxRuntime.jsx(ui.Text,{color:"warning",size:"xs",className:"oui-text-center",children:"Please copy the API secret. Once you close this pop-up, the API secret will be encrypted."})]})})};var So=e=>{let{item:t,open:o,setOpen:r,onDelete:i}=e;return jsxRuntime.jsx(ui.SimpleDialog,{size:"sm",open:o,onOpenChange:r,title:"Delete API key",actions:{primary:{label:"Confirm","data-testid":"oui-testid-apiKey-deleteApiKey-dialog-confirm-btn",className:"oui-w-[120px] lg:oui-w-[154px]",size:"md",onClick:async()=>{await e.onDelete?.(t),r(!1);}},secondary:{label:"Cancel",className:"oui-w-[120px] lg:oui-w-[154px]",size:"md",onClick:async()=>{r(!1);}}},classNames:{footer:"oui-justify-center",content:"oui-bg-base-8 oui-w-[300px] lg:oui-w-[360px] oui-font-semibold"},children:jsxRuntime.jsxs(ui.Flex,{className:"oui-text-xs",children:["Delete your API key \xA0",jsxRuntime.jsx(ui.Text,{color:"primaryLight",children:At(t?.orderly_key)}),"\xA0?"]})})};var Fo=e=>{let{item:t,open:o,setOpen:r,onUpdate:i}=e,[a,s]=react.useState(t.ip_restriction_list?.join(",")),[n,c]=react.useState(!0),[l,m]=react.useState(!0),[g,p]=react.useState("");return react.useEffect(()=>{s(t.ip_restriction_list.join(",")),c(t.scope?.toLocaleLowerCase().includes("read")||!1),m(t.scope?.toLocaleLowerCase().includes("trading")||!1);},[t]),react.useEffect(()=>{a.length===0&&p("");},[a]),jsxRuntime.jsx(ui.SimpleDialog,{size:"sm",open:o,onOpenChange:r,title:"Edit API key",actions:{primary:{label:"Confirm","data-testid":"oui-testid-apiKey-editApiKey-dialog-confirm-btn",className:"oui-w-[120px] lg:oui-w-[154px]",onClick:async()=>{if(a.length>0){let d=e.verifyIP(a);if(p(d),d.length>0)return}await e.onUpdate?.(t,a),r(!1);},disabled:t.ip_restriction_list.join(",")===a,size:"md",fullWidth:!0}},classNames:{footer:"oui-justify-center",content:"oui-bg-base-8 oui-w-[300px] lg:oui-w-[360px] oui-font-semibold"},children:jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:6,children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:1,width:"100%",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text,{intensity:54,size:"2xs",children:"IP restriction (optional)"}),jsxRuntime.jsx("textarea",{"data-testid":"oui-testid-apiKey-editApiKey-dialog-textarea",placeholder:"Add IP addresses, separated by commas.",className:ui.cn("oui-text-sm oui-text-base-contrast-80 oui-p-3 oui-h-[100px] oui-rounded-xl oui-bg-base-6 oui-w-full","oui-border-0 focus:oui-border-2 focus:oui-border-primary-darken oui-outline-none","oui-placeholder-base-contrast-20",g.length>0&&"oui-outline-1 oui-outline-danger focus:oui-outline-none"),value:a,onChange:d=>{s(d.target.value);},style:{resize:"none"}}),g.length>0&&jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx("div",{className:"oui-h-1 oui-w-1 oui-rounded-full oui-bg-danger"}),jsxRuntime.jsx(ui.Text,{color:"danger",size:"xs",children:g})]})]}),jsxRuntime.jsx(ui.Statistic,{label:jsxRuntime.jsx(ui.Text,{size:"xs",intensity:54,children:"Permissions"}),className:"oui-w-full",children:jsxRuntime.jsxs(ui.Flex,{direction:"row",gap:6,itemAlign:"start",className:"oui-mt-2",children:[jsxRuntime.jsx(he,{disabled:!0,size:18,checked:n,onCheckedChange:d=>c(d),label:"Read"}),jsxRuntime.jsx(he,{disabled:!0,size:18,checked:l,onCheckedChange:d=>m(d),label:"Trading"})]})})]})})};var Do=e=>jsxRuntime.jsxs(ui.Card,{title:"API keys",id:"portfolio-apikey-manager",className:"oui-bg-base-9 oui-font-semibold",children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:4,width:"100%",className:"oui-font-semibold",children:[jsxRuntime.jsx(Kn,{...e}),jsxRuntime.jsx(Ln,{...e})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(zn,{...e}),jsxRuntime.jsx(Po,{...e}),jsxRuntime.jsx(Ao,{...e})]})]}),Kn=e=>jsxRuntime.jsxs(ui.Flex,{width:"100%",gap:4,className:"oui-border-t-2 oui-border-line-6 oui-pt-4",children:[jsxRuntime.jsxs(ui.Flex,{py:2,px:4,direction:"column",itemAlign:"start",r:"xl",gradient:"neutral",angle:27,border:!0,className:"oui-w-1/2",children:[jsxRuntime.jsx(ui.Text,{size:"xs",intensity:36,children:"Account ID"}),jsxRuntime.jsx(ui.Text.formatted,{size:"base",inlist:80,rule:"address",copyable:e.address!=="--",copyIconSize:16,onCopy:e.onCopyAccountId,copyIconTestid:"oui-testid-apiKey-accountInfo-accountId-copy-btn",children:e.address})]}),jsxRuntime.jsxs(ui.Flex,{py:2,px:4,direction:"column",itemAlign:"start",r:"xl",gradient:"neutral",angle:27,border:!0,className:"oui-w-1/2",children:[jsxRuntime.jsx(ui.Text,{size:"xs",intensity:36,children:"UID"}),jsxRuntime.jsx(ui.Text,{size:"base",inlist:80,children:e.uid})]})]}),Ln=e=>jsxRuntime.jsxs(ui.Flex,{width:"100%",direction:"row",className:"oui-text-sm oui-border-b-2 oui-border-line-6 oui-pb-4",children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",width:"100%",gap:1,children:[jsxRuntime.jsxs(ui.Text,{intensity:54,children:["Create API keys to suit your trading needs. For your security, don't share your API keys with anyone."," "]}),jsxRuntime.jsxs(ui.Flex,{itemAlign:"center",className:"oui-text-primary-light oui-fill-primary-light hover:oui-text-primary-darken oui-cursor-pointer oui-text-2xs md:oui-text-xs xl:oui-text-sm",onClick:e.onReadApiGuide,children:[jsxRuntime.jsx(ui.Text,{children:"Read API guide"}),jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M4.008 7.995c0-.368.298-.666.666-.666H9.71L7.733 5.331l.937-.936 3.143 3.122c.13.13.195.304.195.479a.67.67 0 0 1-.195.478L8.67 11.596l-.937-.937 1.978-1.998H4.674a.666.666 0 0 1-.666-.666"})})]})]}),jsxRuntime.jsx(uiConnector.AuthGuardTooltip,{side:"top",tooltip:{connectWallet:"Please connect wallet before create API key",signIn:"Please sign in before create API key",enableTrading:"Please enable trading before create API key",wrongNetwork:"Please switch to a supported network to create API key"},children:jsxRuntime.jsx(ui.Button,{size:"md",icon:jsxRuntime.jsx(ui.PlusIcon,{}),variant:"contained",color:"primary",onClick:e.onCreateApiKey,disabled:!e.canCreateApiKey||e.wrongNetwork,"data-testid":"oui-testid-apiKey-createApiKey-btn",children:"Create API key"})})]}),zn=e=>jsxRuntime.jsx(uiConnector.AuthGuardTableView,{bordered:!0,columns:[{title:"API key",dataIndex:"orderly_key",render:o=>jsxRuntime.jsx(ui.Text.formatted,{rule:"",copyable:!0,copyIconSize:16,onCopy:()=>{e.onCopyApiKey?.(o);},children:At(o)})},{title:"Permission type",dataIndex:"scope",render:o=>o?.split(",").map(r=>vt(`${r}`)).join(", ")},{title:"Restricted IP",dataIndex:"ip_restriction_list",render:o=>{let r=o.join(",");return r.length===0&&(r="--"),jsxRuntime.jsx(ui.Tooltip,{content:r,className:"oui-max-w-[200px] oui-break-all",children:jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx("div",{className:" oui-overflow-ellipsis oui-overflow-hidden",children:r}),r!=="--"&&jsxRuntime.jsx(ui.Box,{width:16,height:16,className:"oui-cursor-pointer",children:jsxRuntime.jsx(ui.CopyIcon,{color:"white",opacity:.54,size:16,onClick:i=>{navigator.clipboard.writeText(r),e?.onCopyIP();}})})]})})}},{title:"Expiration date",dataIndex:"expiration",render:o=>jsxRuntime.jsx(ui.Text.formatted,{rule:"date",formatString:"yyyy-MM-dd",children:o})},{title:"",dataIndex:"action",width:120,render:(o,r)=>jsxRuntime.jsxs(ui.Flex,{direction:"row",gap:2,children:[jsxRuntime.jsx(Wn,{item:r,onUpdate:e.doEdit,verifyIP:e.verifyIP}),jsxRuntime.jsx(On,{item:r,onDelete:e.doDelete})]})}],loading:e.isLoading,dataSource:e.keys,emptyView:jsxRuntime.jsx(uiConnector.AuthGuardEmpty,{}),classNames:{},pagination:e.pagination}),Wn=e=>{let{item:t,onUpdate:o,verifyIP:r}=e,[i,a]=react.useState(!1);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Button,{size:"xs",color:"primary",variant:"contained",onClick:s=>{s.stopPropagation(),a(!0);},"data-testid":"oui-testid-apiKey-keyList-edit-btn",children:"Edit"}),i&&jsxRuntime.jsx(Fo,{item:t,open:i,setOpen:a,onUpdate:o,verifyIP:r})]})},On=e=>{let{item:t,onDelete:o}=e,[r,i]=react.useState(!1);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Button,{size:"xs",color:"gray",variant:"contained",onClick:a=>{a.stopPropagation(),i(!0);},"data-testid":"oui-testid-apiKey-keyList-delete-btn",children:"Delete"}),r&&jsxRuntime.jsx(So,{item:t,open:r,setOpen:i,onDelete:o})]})};function At(e){return typeof e>"u"?"-":`${`${e}`.replace("ed25519:","").slice(0,6)}*****`}var $e=()=>{let e=Co();return jsxRuntime.jsx(Do,{...e})};var Ro=()=>jsxRuntime.jsx($e,{});var zo={};G(zo,{SettingPage:()=>Lo,SettingWidget:()=>qe});var Eo=e=>jsxRuntime.jsx(ui.Card,{title:"System upgrade",id:"portfolio-apikey-manager",className:"oui-bg-base-9 oui-font-semibold",children:jsxRuntime.jsxs(ui.Flex,{direction:"row",gap:4,width:"100%",itemAlign:"center",pt:4,className:"oui-font-semibold oui-border-t-2 oui-border-line-6",children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",className:"oui-flex-1",children:[jsxRuntime.jsx(ui.Text,{intensity:80,size:"base",children:"Cancel open orders during system upgrade"}),jsxRuntime.jsx(ui.Text,{intensity:54,size:"sm",children:"During the upgrade period, all open orders will be cancelled to manage your risk in case of high market volatility."})]}),jsxRuntime.jsxs(uiConnector.AuthGuardTooltip,{align:"end",children:[jsxRuntime.jsx(ui.Switch,{checked:e.maintenance_cancel_orders,onCheckedChange:t=>{e.setMaintainConfig(t);},disabled:e.isSetting||!e.canTouch,"data-testid":"oui-testid-setting-switch-btn"})," "]})]})});var Ko=()=>{let{data:e,mutate:t}=hooks.useAccountInfo(),{wrongNetwork:o}=reactApp.useAppContext(),[r,{isMutating:i}]=hooks.useMutation("/v1/client/maintenance_config"),[a,s]=react.useState(!1);react.useEffect(()=>{s(e?.maintenance_cancel_orders||!1);},[e]);let n=hooks.useDebouncedCallback(m=>{r({maintenance_cancel_order_flag:m}).then(g=>{g.success||s(!m);});},300),c=m=>{s(m),n(m);},{state:l}=hooks.useAccount();return {maintenance_cancel_orders:a,setMaintainConfig:c,isSetting:!1,canTouch:l.status===types.AccountStatusEnum.EnableTrading&&!o}};var qe=()=>{let e=Ko();return jsxRuntime.jsx(Eo,{...e})};var Lo=()=>jsxRuntime.jsx(qe,{});
19
20
 
20
- exports.APIManagerModule = Io;
21
- exports.FeeTierModule = lo;
22
- exports.OrdersModule = co;
23
- exports.OverviewModule = Jt;
24
- exports.PortfolioLayoutWidget = Sa;
25
- exports.PositionsModule = uo;
26
- exports.SettingModule = Ho;
21
+ exports.APIManagerModule = Ho;
22
+ exports.FeeTierModule = po;
23
+ exports.OrdersModule = xo;
24
+ exports.OverviewModule = oo;
25
+ exports.PortfolioLayoutWidget = _a;
26
+ exports.PositionsModule = fo;
27
+ exports.SettingModule = zo;
27
28
  //# sourceMappingURL=out.js.map
28
29
  //# sourceMappingURL=index.js.map