@orderly.network/hooks 1.1.4 → 1.1.5-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.
Files changed (83) hide show
  1. package/esm/dataProvider.d.ts +4 -3
  2. package/esm/dataProvider.d.ts.map +1 -1
  3. package/esm/dataProvider.js +5 -0
  4. package/esm/index.d.ts +1 -0
  5. package/esm/index.d.ts.map +1 -1
  6. package/esm/index.js +1 -0
  7. package/esm/orderly/useMarketsStream.d.ts.map +1 -1
  8. package/esm/orderly/useMarketsStream.js +1 -0
  9. package/esm/orderly/useMaxQty.d.ts.map +1 -1
  10. package/esm/orderly/useMaxQty.js +12 -26
  11. package/esm/orderly/useOrderEntry.js +9 -2
  12. package/esm/orderly/useOrderStream.d.ts +10 -1
  13. package/esm/orderly/useOrderStream.d.ts.map +1 -1
  14. package/esm/orderly/useOrderStream.js +16 -25
  15. package/esm/orderly/useOrderbookStream.d.ts.map +1 -1
  16. package/esm/orderly/useOrderbookStream.js +10 -6
  17. package/esm/orderly/usePrivateDataObserver.d.ts.map +1 -1
  18. package/esm/orderly/usePrivateDataObserver.js +55 -37
  19. package/esm/services/painter/basePaint.d.ts +5 -1
  20. package/esm/services/painter/basePaint.d.ts.map +1 -1
  21. package/esm/services/painter/dataPaint.d.ts +1 -0
  22. package/esm/services/painter/dataPaint.d.ts.map +1 -1
  23. package/esm/services/painter/dataPaint.js +45 -18
  24. package/esm/services/painter/layout.config.js +1 -1
  25. package/esm/services/painter/painter.d.ts.map +1 -1
  26. package/esm/services/painter/painter.js +2 -1
  27. package/esm/useMutation.d.ts +4 -1
  28. package/esm/useMutation.d.ts.map +1 -1
  29. package/esm/useMutation.js +29 -2
  30. package/esm/usePoster.d.ts +24 -2
  31. package/esm/usePoster.d.ts.map +1 -1
  32. package/esm/usePoster.js +89 -21
  33. package/esm/utils/dev.d.ts +2 -0
  34. package/esm/utils/dev.d.ts.map +1 -0
  35. package/esm/utils/dev.js +18 -0
  36. package/esm/utils/swr.d.ts +10 -0
  37. package/esm/utils/swr.d.ts.map +1 -0
  38. package/esm/utils/swr.js +179 -0
  39. package/esm/version.d.ts +1 -1
  40. package/esm/version.d.ts.map +1 -1
  41. package/esm/version.js +2 -2
  42. package/lib/dataProvider.d.ts +4 -3
  43. package/lib/dataProvider.d.ts.map +1 -1
  44. package/lib/dataProvider.js +5 -0
  45. package/lib/index.d.ts +1 -0
  46. package/lib/index.d.ts.map +1 -1
  47. package/lib/index.js +1 -0
  48. package/lib/orderly/useMarketsStream.d.ts.map +1 -1
  49. package/lib/orderly/useMarketsStream.js +1 -0
  50. package/lib/orderly/useMaxQty.d.ts.map +1 -1
  51. package/lib/orderly/useMaxQty.js +12 -26
  52. package/lib/orderly/useOrderEntry.js +9 -2
  53. package/lib/orderly/useOrderStream.d.ts +10 -1
  54. package/lib/orderly/useOrderStream.d.ts.map +1 -1
  55. package/lib/orderly/useOrderStream.js +16 -25
  56. package/lib/orderly/useOrderbookStream.d.ts.map +1 -1
  57. package/lib/orderly/useOrderbookStream.js +10 -6
  58. package/lib/orderly/usePrivateDataObserver.d.ts.map +1 -1
  59. package/lib/orderly/usePrivateDataObserver.js +54 -36
  60. package/lib/services/painter/basePaint.d.ts +5 -1
  61. package/lib/services/painter/basePaint.d.ts.map +1 -1
  62. package/lib/services/painter/dataPaint.d.ts +1 -0
  63. package/lib/services/painter/dataPaint.d.ts.map +1 -1
  64. package/lib/services/painter/dataPaint.js +45 -18
  65. package/lib/services/painter/layout.config.js +1 -1
  66. package/lib/services/painter/painter.d.ts.map +1 -1
  67. package/lib/services/painter/painter.js +2 -1
  68. package/lib/useMutation.d.ts +4 -1
  69. package/lib/useMutation.d.ts.map +1 -1
  70. package/lib/useMutation.js +29 -2
  71. package/lib/usePoster.d.ts +24 -2
  72. package/lib/usePoster.d.ts.map +1 -1
  73. package/lib/usePoster.js +88 -20
  74. package/lib/utils/dev.d.ts +2 -0
  75. package/lib/utils/dev.d.ts.map +1 -0
  76. package/lib/utils/dev.js +20 -0
  77. package/lib/utils/swr.d.ts +10 -0
  78. package/lib/utils/swr.d.ts.map +1 -0
  79. package/lib/utils/swr.js +184 -0
  80. package/lib/version.d.ts +1 -1
  81. package/lib/version.d.ts.map +1 -1
  82. package/lib/version.js +2 -2
  83. package/package.json +8 -8
@@ -1,10 +1,11 @@
1
1
  import { PropsWithChildren } from "react";
2
2
  export type getKeyFunction = (index: number, prevData: any) => string | null;
3
- interface DataCenterContextValue {
3
+ interface DataCenterContextState {
4
4
  regesterKeyHandler: (key: string, handler: getKeyFunction) => void;
5
+ unregisterKeyHandler: (key: string) => void;
5
6
  }
6
- export declare const DataCenterContext: import("react").Context<DataCenterContextValue>;
7
- export declare const useDataCenterContext: () => DataCenterContextValue;
7
+ export declare const DataCenterContext: import("react").Context<DataCenterContextState>;
8
+ export declare const useDataCenterContext: () => DataCenterContextState;
8
9
  export declare const DataCenterProvider: ({ children }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element | null;
9
10
  export {};
10
11
  //# sourceMappingURL=dataProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataProvider.d.ts","sourceRoot":"","sources":["../src/dataProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqC,MAAM,OAAO,CAAC;AAI7E,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,CAAC;AAE7E,UAAU,sBAAsB;IAK9B,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;CACpE;AAED,eAAO,MAAM,iBAAiB,iDAE7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,8BAAsC,CAAC;AAExE,eAAO,MAAM,kBAAkB,iBAAkB,iBAAiB,mDAgCjE,CAAC"}
1
+ {"version":3,"file":"dataProvider.d.ts","sourceRoot":"","sources":["../src/dataProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqC,MAAM,OAAO,CAAC;AAI7E,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,CAAC;AAE7E,UAAU,sBAAsB;IAK9B,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IACnE,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,iBAAiB,iDAE7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,8BAAsC,CAAC;AAExE,eAAO,MAAM,kBAAkB,iBAAkB,iBAAiB,mDAqCjE,CAAC"}
@@ -23,7 +23,12 @@ export const DataCenterProvider = ({ children }) => {
23
23
  return null;
24
24
  return (_jsx(DataCenterContext.Provider, { value: {
25
25
  regesterKeyHandler: (key, fun) => {
26
+ console.log("regesterKeyHandler", key);
26
27
  getKeyHandlerMapRef.current.set(key, fun);
27
28
  },
29
+ unregisterKeyHandler: (key) => {
30
+ console.log("unregisterKeyHandler", key);
31
+ getKeyHandlerMapRef.current.delete(key);
32
+ },
28
33
  }, children: children }));
29
34
  };
package/esm/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import "./utils/dev";
1
2
  export { default as version } from "./version";
2
3
  export { useQuery } from "./useQuery";
3
4
  export { useLazyQuery } from "./useLazyQuery";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,cAAc,wBAAwB,CAAC;AAGvC,OAAO,MAAM,EAAE,EAAE,KAAK,gBAAgB,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,CAAC;AAEpD,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1D,cAAc,wBAAwB,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,cAAc,wBAAwB,CAAC;AAGvC,OAAO,MAAM,EAAE,EAAE,KAAK,gBAAgB,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,CAAC;AAEpD,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1D,cAAc,wBAAwB,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
package/esm/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import "./utils/dev";
1
2
  export { default as version } from "./version";
2
3
  export { useQuery } from "./useQuery";
3
4
  export { useLazyQuery } from "./useLazyQuery";
@@ -1 +1 @@
1
- {"version":3,"file":"useMarketsStream.d.ts","sourceRoot":"","sources":["../../src/orderly/useMarketsStream.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGnD,eAAO,MAAM,gBAAgB;;CA4D5B,CAAC"}
1
+ {"version":3,"file":"useMarketsStream.d.ts","sourceRoot":"","sources":["../../src/orderly/useMarketsStream.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGnD,eAAO,MAAM,gBAAgB;;CA6D5B,CAAC"}
@@ -14,6 +14,7 @@ export const useMarketsStream = () => {
14
14
  // { event: "subscribe", topic: "markprices" },
15
15
  "tickers", {
16
16
  onMessage: (message) => {
17
+ // window.debugPrint(message);
17
18
  next(null, message);
18
19
  },
19
20
  // onUnsubscribe: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useMaxQty.d.ts","sourceRoot":"","sources":["../../src/orderly/useMaxQty.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,SAAS,EAAe,MAAM,wBAAwB,CAAC;AAgB1E,eAAO,MAAM,SAAS,WACZ,MAAM,QACR,SAAS,eACH,OAAO,WAuIpB,CAAC"}
1
+ {"version":3,"file":"useMaxQty.d.ts","sourceRoot":"","sources":["../../src/orderly/useMaxQty.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,SAAS,EAAe,MAAM,wBAAwB,CAAC;AAgB1E,eAAO,MAAM,SAAS,WACZ,MAAM,QACR,SAAS,eACH,OAAO,WA0HpB,CAAC"}
@@ -17,32 +17,6 @@ export const useMaxQty = (symbol, side, reduceOnly = false) => {
17
17
  const { totalCollateral } = useCollateral();
18
18
  const { data: markPrices } = useMarkPricesStream();
19
19
  const [orders] = useOrderStream({ status: OrderStatus.NEW });
20
- // const {
21
- // data: orders,
22
- // error,
23
- // mutate: updateOrder,
24
- // } = usePrivateQuery<API.Order[]>(`/v1/orders?status=NEW&size=99`, {
25
- // formatter: (data) => data.rows,
26
- // onError: (err) => { },
27
- // });
28
- // const ws = useWS();
29
- // useEffect(() => {
30
- // const unsubscribe = ws.privateSubscribe(
31
- // {
32
- // id: "executionreport_orders",
33
- // event: "subscribe",
34
- // topic: "executionreport",
35
- // ts: Date.now(),
36
- // },
37
- // {
38
- // onMessage: (data: any) => {
39
- // console.log("refresh orders", data);
40
- // updateOrder();
41
- // },
42
- // }
43
- // );
44
- // return () => unsubscribe();
45
- // }, []);
46
20
  const maxQty = useMemo(() => {
47
21
  if (!symbol)
48
22
  return 0;
@@ -110,5 +84,17 @@ export const useMaxQty = (symbol, side, reduceOnly = false) => {
110
84
  totalCollateral,
111
85
  reduceOnly,
112
86
  ]);
87
+ // debugPrint({
88
+ // maxQty,
89
+ // totalCollateral,
90
+ // side,
91
+ // // reduceOnly,
92
+ // orders: orders?.map((o) => o.quantity),
93
+ // // positionsData,
94
+ // // markPrices,
95
+ // // accountInfo,
96
+ // // symbolInfo,
97
+ // // symbol,
98
+ // });
113
99
  return Math.max(maxQty, 0);
114
100
  };
@@ -182,7 +182,7 @@ export function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options)
182
182
  ]);
183
183
  const isStopOrder = parsedData?.order_type === OrderType.STOP_LIMIT ||
184
184
  parsedData?.order_type === OrderType.STOP_MARKET;
185
- const [doCreateOrder, { data, error, reset, isMutating }] = useMutation(isStopOrder ? "/v1/algo/order" : "/v1/order");
185
+ const [doCreateOrder, { isMutating }] = useMutation(isStopOrder ? "/v1/algo/order" : "/v1/order");
186
186
  // const maxQty = 3;
187
187
  const createOrder = (values) => {
188
188
  if (!values.symbol) {
@@ -233,9 +233,16 @@ export function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options)
233
233
  // ...omit(["order_price"], values),
234
234
  ...data,
235
235
  })).then((res) => {
236
- // console.log("res::::", res);
236
+ console.log("--------------------res::::", res);
237
237
  // resolve(res);
238
238
  if (res.success) {
239
+ // TODO: remove when the WS service is fixed
240
+ if (Array.isArray(res.data.rows)) {
241
+ ee.emit("algoOrder:cache", {
242
+ ...res.data.rows[0],
243
+ trigger_price: data.trigger_price,
244
+ });
245
+ }
239
246
  resolve(res.data);
240
247
  }
241
248
  else {
@@ -11,7 +11,16 @@ type Params = {
11
11
  size?: number;
12
12
  side?: OrderSide;
13
13
  };
14
- export declare const useOrderStream: (params: Params) => readonly [any[] | null, {
14
+ export declare const useOrderStream: (params: Params, options?: {
15
+ /**
16
+ * Keep the state update alive
17
+ */
18
+ keeplive?: boolean;
19
+ /**
20
+ * Stop the state update when the component unmount
21
+ */
22
+ stopOnUnmount?: boolean;
23
+ }) => readonly [any[] | null, {
15
24
  readonly total: any;
16
25
  readonly isLoading: boolean;
17
26
  readonly refresh: import("swr/_internal").KeyedMutator<any[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"useOrderStream.d.ts","sourceRoot":"","sources":["../../src/orderly/useOrderStream.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EAEZ,MAAM,wBAAwB,CAAC;AAQhC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7B,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAC9B;AAID,KAAK,MAAM,GAAG;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,MAAM;;;;;;oCAyHD,MAAM,SAAS,WAAW;oCAoD1B,MAAM,WAAW,MAAM;wCA7CnB,MAAM,SAAS,WAAW;wCAoD1B,MAAM,WAAW,MAAM;;;;;;;;;;;;;EAkCtE,CAAC"}
1
+ {"version":3,"file":"useOrderStream.d.ts","sourceRoot":"","sources":["../../src/orderly/useOrderStream.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EAEZ,MAAM,wBAAwB,CAAC;AAShC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7B,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAC9B;AAID,KAAK,MAAM,GAAG;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,cAAc,WAIjB,MAAM,YAEJ;IACR;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;;;;;;oCA4GyC,MAAM,SAAS,WAAW;oCAoD1B,MAAM,WAAW,MAAM;wCA7CnB,MAAM,SAAS,WAAW;wCAoD1B,MAAM,WAAW,MAAM;;;;;;;;;;;;;EAkCtE,CAAC"}
@@ -5,40 +5,30 @@ import { useMarkPricesStream } from "./useMarkPricesStream";
5
5
  import { useMutation } from "../useMutation";
6
6
  import version from "../version";
7
7
  import { useDataCenterContext } from "../dataProvider";
8
- export const useOrderStream = (params) => {
8
+ import { generateKeyFun } from "../utils/swr";
9
+ export const useOrderStream = (
10
+ /**
11
+ * Orders query params
12
+ */
13
+ params, options) => {
9
14
  const { status, symbol, side, size = 100 } = params;
10
15
  const { data: markPrices = {} } = useMarkPricesStream();
11
- const { regesterKeyHandler } = useDataCenterContext();
16
+ const { regesterKeyHandler, unregisterKeyHandler } = useDataCenterContext();
12
17
  const [doCancelOrder, { error: cancelOrderError, isMutating: cancelMutating },] = useMutation("/v1/order", "DELETE");
13
18
  const [doUpdateOrder, { error: updateOrderError, isMutating: updateMutating },] = useMutation("/v1/order", "PUT");
14
19
  const [doCanceAlgolOrder, { error: cancelAlgoOrderError, isMutating: cancelAlgoMutating },] = useMutation("/v1/algo/order", "DELETE");
15
20
  const [doUpdateAlgoOrder, { error: updateAlgoOrderError, isMutating: updateAlgoMutating },] = useMutation("/v1/algo/order", "PUT");
16
- const getKey = (pageIndex, previousPageData) => {
17
- // reached the end
18
- if (previousPageData && !previousPageData.rows?.length)
19
- return null;
20
- const search = new URLSearchParams([
21
- ["size", size.toString()],
22
- ["page", `${pageIndex + 1}`],
23
- ["source_type", "ALL"],
24
- ]);
25
- if (status) {
26
- search.set(`status`, status);
27
- }
28
- if (symbol) {
29
- search.set(`symbol`, symbol);
30
- }
31
- if (side) {
32
- search.set(`side`, side);
33
- }
34
- return `/v1/orders?${search.toString()}`;
35
- };
36
21
  useEffect(() => {
37
22
  const formatKey = (value) => (value ? `:${value}` : "");
38
23
  const key = `orders${formatKey(status)}${formatKey(symbol)}${formatKey(side)}`;
39
- regesterKeyHandler(key, getKey);
40
- }, [status, symbol, side]);
41
- const ordersResponse = usePrivateInfiniteQuery(getKey, {
24
+ regesterKeyHandler?.(key, generateKeyFun({ status, symbol, side, size }));
25
+ return () => {
26
+ if (!options?.stopOnUnmount)
27
+ return;
28
+ unregisterKeyHandler(key);
29
+ };
30
+ }, [status, symbol, side, options?.keeplive]);
31
+ const ordersResponse = usePrivateInfiniteQuery(generateKeyFun({ status, symbol, side, size }), {
42
32
  initialSize: 1,
43
33
  // revalidateFirstPage: false,
44
34
  // onError: (err) => {
@@ -53,6 +43,7 @@ export const useOrderStream = (params) => {
53
43
  }
54
44
  return ordersResponse.data?.map((item) => item.rows)?.flat();
55
45
  }, [ordersResponse.data]);
46
+ // console.log(ordersResponse.data);
56
47
  const orders = useMemo(() => {
57
48
  if (!flattenOrders) {
58
49
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"useOrderbookStream.d.ts","sourceRoot":"","sources":["../../src/orderly/useOrderbookStream.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC;AAErC,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,IAAI,EAAE,aAAa,EAAE,CAAC;CACvB,CAAC;AAyFF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,UACnB,MAAM,GAAG,SAAS,SAClB,MAAM,WACJ,OAAO,QACV,aAAa,KAClB,aAqDF,CAAC;AAgCF,eAAO,MAAM,cAAc,SAAU,aAAa,UAAU,aAAa;;;CAWxE,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,WACrB,MAAM,YACL,aAAa,YACZ,gBAAgB;;;;;;;;;;;2BA2HgB,MAAM;;;;;;;;;IAmDjD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"useOrderbookStream.d.ts","sourceRoot":"","sources":["../../src/orderly/useOrderbookStream.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC;AAErC,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,IAAI,EAAE,aAAa,EAAE,CAAC;CACvB,CAAC;AAyFF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,UACnB,MAAM,GAAG,SAAS,SAClB,MAAM,WACJ,OAAO,QACV,aAAa,KAClB,aAyDF,CAAC;AAgCF,eAAO,MAAM,cAAc,SAAU,aAAa,UAAU,aAAa;;;CAWxE,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,WACrB,MAAM,YACL,aAAa,YACZ,gBAAgB;;;;;;;;;;;2BA2HgB,MAAM;;;;;;;;;IAmDjD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -93,22 +93,26 @@ export const reduceOrderbook = (depth, level, padding, data) => {
93
93
  while (asks.length > 0) {
94
94
  const [askPrice, askQty, newQuantity, newAmount] = asks[0];
95
95
  if (askPrice <= bidPrice) {
96
- // console.log("xxxxxxxxxxx reset ask list begin", [...asks], { ...asks[0] });
96
+ console.log("xxxxxxxxxxx reset ask list begin", [...asks], { ...asks[0] });
97
97
  asks.shift();
98
- // let logStr = "";
98
+ let logStr = "";
99
99
  for (let index = 0; index < asks.length; index++) {
100
100
  if (index === 0) {
101
101
  const quantity = asks[index][1] + askQty;
102
102
  asks[index][1] = quantity;
103
103
  asks[index][2] = quantity;
104
- asks[index][3] += newAmount;
104
+ // asks[index][3] += newAmount;
105
+ // FIXME: fix this code later
106
+ asks[index][3] = Math.ceil(quantity) * asks[index][0];
105
107
  }
106
108
  else {
107
- asks[index][3] += newAmount;
109
+ // asks[index][3] += newAmount;
110
+ // FIXME: fix this code later
111
+ asks[index][3] = asks[index][0] * asks[index][1] + asks[index - 1][3];
108
112
  }
109
- // logStr += `index: ${index} ${asks[index]}\n`;
113
+ logStr += `index: ${index} ${asks[index]}\n`;
110
114
  }
111
- // console.log("xxxxxxxxxxx reset ask list end", logStr);
115
+ console.log("xxxxxxxxxxx reset ask list end", logStr);
112
116
  }
113
117
  else {
114
118
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"usePrivateDataObserver.d.ts","sourceRoot":"","sources":["../../src/orderly/usePrivateDataObserver.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,eAAO,MAAM,sBAAsB;uBAEd,MAAM,KAAK,IAAI,MAAM,EAAE,cAAc,CAAC;UAgI1D,CAAC"}
1
+ {"version":3,"file":"usePrivateDataObserver.d.ts","sourceRoot":"","sources":["../../src/orderly/usePrivateDataObserver.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIjD,eAAO,MAAM,sBAAsB;uBAEd,MAAM,KAAK,IAAI,MAAM,EAAE,cAAc,CAAC;UA0K1D,CAAC"}
@@ -1,41 +1,60 @@
1
- import { useEffect } from "react";
1
+ import { useEffect, useRef } from "react";
2
2
  import { useWS } from "../useWS";
3
- import { useSWRConfig } from "swr";
3
+ import { mutate } from "swr";
4
4
  import { useAccount } from "../useAccount";
5
5
  import { unstable_serialize } from "swr/infinite";
6
6
  import { useDebouncedCallback } from "use-debounce";
7
7
  import { useEventEmitter } from "../useEventEmitter";
8
- import { parseJSON } from "../utils/json";
8
+ import { updateOrdersHandler } from "../utils/swr";
9
9
  export const usePrivateDataObserver = (options) => {
10
10
  const ws = useWS();
11
- const { mutate } = useSWRConfig();
11
+ // const { mutate } = useSWRConfig();
12
12
  const ee = useEventEmitter();
13
13
  const { state } = useAccount();
14
- const updateOrders = useDebouncedCallback((data) => {
14
+ // TODO: remove this when the WS service provides the correct data
15
+ const algoOrderCacheQuneue = useRef([]);
16
+ const updateOrders = useDebouncedCallback((data, isAlgoOrder) => {
15
17
  const map = options.getKeysMap("orders");
16
- const orderStatus = getSessionStorage("orderly_order_status", "positions");
17
- map.forEach((getKey, key) => {
18
- if ((orderStatus === "history" && key === "orders") ||
19
- (orderStatus === "positions" && key === "orders:NEW") ||
20
- key.includes("INCOMPLETE") || // always update pending list
21
- key.includes(orderStatus)) {
22
- mutate(unstable_serialize((index, prevData) => [
23
- getKey(index, prevData),
24
- state.accountId,
25
- ]));
18
+ console.log("$$$$$$$$$$$$", data);
19
+ if (isAlgoOrder) {
20
+ /// TODO: remove this when the WS service provides the correct data
21
+ if (algoOrderCacheQuneue.current.length) {
22
+ const index = algoOrderCacheQuneue.current.findIndex((item) => item.order_id === data.algoOrderId);
23
+ console.log({ ...algoOrderCacheQuneue.current[index] });
24
+ if (index > -1) {
25
+ data = {
26
+ ...data,
27
+ ...algoOrderCacheQuneue.current[index],
28
+ };
29
+ algoOrderCacheQuneue.current.splice(index, 1);
30
+ }
26
31
  }
32
+ }
33
+ map.forEach((getKey, key) => {
34
+ mutate(unstable_serialize((index, prevData) => [
35
+ getKey(index, prevData),
36
+ state.accountId,
37
+ ]), (prevData) => {
38
+ return updateOrdersHandler(key, data, prevData);
39
+ }, {
40
+ revalidate: false,
41
+ });
27
42
  });
28
- // update the orders history list;
29
- // ee.emit("orders:changed");
30
- }, 500);
43
+ // emit events;
44
+ ee.emit("orders:changed", {
45
+ ...data,
46
+ status: data.status || data.algoStatus,
47
+ });
48
+ }, 50, {
49
+ trailing: true,
50
+ });
31
51
  // orders
32
52
  useEffect(() => {
33
53
  if (!state.accountId)
34
54
  return;
35
55
  const unsubscribe = ws.privateSubscribe("executionreport", {
36
56
  onMessage: (data) => {
37
- updateOrders(data);
38
- ee.emit("orders:changed", data);
57
+ updateOrders(data, false);
39
58
  },
40
59
  });
41
60
  return () => unsubscribe?.();
@@ -46,12 +65,15 @@ export const usePrivateDataObserver = (options) => {
46
65
  return;
47
66
  const unsubscribe = ws.privateSubscribe("algoexecutionreport", {
48
67
  onMessage: (data) => {
49
- updateOrders(data);
50
68
  if (Array.isArray(data)) {
51
- data.forEach((item) => ee.emit("orders:changed", { ...item, status: item.algoStatus }));
69
+ data.forEach((item) => {
70
+ updateOrders(item, true);
71
+ // ee.emit("orders:changed", { ...item, status: item.algoStatus });
72
+ });
52
73
  }
53
74
  else {
54
- ee.emit("orders:changed", { ...data, status: data.algoStatus });
75
+ updateOrders(data, true);
76
+ // ee.emit("orders:changed", { ...data, status: data.algoStatus });
55
77
  }
56
78
  },
57
79
  });
@@ -109,18 +131,14 @@ export const usePrivateDataObserver = (options) => {
109
131
  unsubscribe?.();
110
132
  };
111
133
  }, [state.accountId]);
112
- };
113
- const getSessionStorage = (key, initialValue) => {
114
- // Prevent build error "window is undefined" but keep keep working
115
- if (typeof window === "undefined") {
116
- return initialValue;
117
- }
118
- try {
119
- const item = window.sessionStorage.getItem(key);
120
- return item ? parseJSON(item) : initialValue;
121
- }
122
- catch (error) {
123
- console.warn(`Error reading sessionStorage key “${key}”:`, error);
124
- return initialValue;
125
- }
134
+ // cache algo orders
135
+ useEffect(() => {
136
+ const handler = (data) => {
137
+ algoOrderCacheQuneue.current.push(data);
138
+ };
139
+ ee.on("algoOrder:cache", handler);
140
+ return () => {
141
+ ee.off("algoOrder:cache", handler);
142
+ };
143
+ }, []);
126
144
  };
@@ -1,5 +1,8 @@
1
1
  import { PosterPainter } from "./painter";
2
2
  export type posterDataSource = {
3
+ /**
4
+ * slogan of the poster
5
+ */
3
6
  message?: string;
4
7
  position: {
5
8
  symbol: string;
@@ -17,7 +20,7 @@ export type posterDataSource = {
17
20
  */
18
21
  ROI: number;
19
22
  /**
20
- * The informations of the position, such as open price, opened at, mark price, quantity
23
+ * The informations of the position, such as open price, opened at, mark price, quantity and custom message.
21
24
  */
22
25
  informations: {
23
26
  title: string;
@@ -64,6 +67,7 @@ export type drawOptions = {
64
67
  * Color of common text
65
68
  */
66
69
  color?: string;
70
+ fontFamily?: string;
67
71
  /**
68
72
  * Lose color
69
73
  */
@@ -1 +1 @@
1
- {"version":3,"file":"basePaint.d.ts","sourceRoot":"","sources":["../../../src/services/painter/basePaint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QAEf,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QACvB;;WAEG;QACH,QAAQ,EAAE,MAAM,CAAC;QACjB;;WAEG;QACH,GAAG,EAAE,MAAM,CAAC;QACZ;;WAEG;QACH,GAAG,EAAE,MAAM,CAAC;QACZ;;WAEG;QACH,YAAY,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QACjD;;WAEG;QACH,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,UAAU,CAAC;IAErB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,aAAa,CAAC,EAAE,UAAU,CAAC;IAE3B,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,8BAAsB,SAAS;IAE3B,SAAS,CAAC,GAAG,EAAE,wBAAwB;IACvC,SAAS,CAAC,OAAO,EAAE,aAAa;gBADtB,GAAG,EAAE,wBAAwB,EAC7B,OAAO,EAAE,aAAa;IAElC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CACnD"}
1
+ {"version":3,"file":"basePaint.d.ts","sourceRoot":"","sources":["../../../src/services/painter/basePaint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QAEf,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QACvB;;WAEG;QACH,QAAQ,EAAE,MAAM,CAAC;QACjB;;WAEG;QACH,GAAG,EAAE,MAAM,CAAC;QACZ;;WAEG;QACH,GAAG,EAAE,MAAM,CAAC;QACZ;;WAEG;QACH,YAAY,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QACjD;;WAEG;QACH,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,UAAU,CAAC;IAErB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,aAAa,CAAC,EAAE,UAAU,CAAC;IAE3B,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,8BAAsB,SAAS;IAE3B,SAAS,CAAC,GAAG,EAAE,wBAAwB;IACvC,SAAS,CAAC,OAAO,EAAE,aAAa;gBADtB,GAAG,EAAE,wBAAwB,EAC7B,OAAO,EAAE,aAAa;IAElC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CACnD"}
@@ -3,6 +3,7 @@ export declare class DataPaint extends BasePaint {
3
3
  private positionInfoCellWidth;
4
4
  private DEFAULT_PROFIT_COLOR;
5
5
  private DEFAULT_LOSE_COLOR;
6
+ private transformTop;
6
7
  draw(options: drawOptions): Promise<void>;
7
8
  private drawMessage;
8
9
  private drawPosition;
@@ -1 +1 @@
1
- {"version":3,"file":"dataPaint.d.ts","sourceRoot":"","sources":["../../../src/services/painter/dataPaint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAGjE,qBAAa,SAAU,SAAQ,SAAS;IACtC,OAAO,CAAC,qBAAqB,CAAO;IAEpC,OAAO,CAAC,oBAAoB,CAAoB;IAChD,OAAO,CAAC,kBAAkB,CAAsB;IAE1C,IAAI,CAAC,OAAO,EAAE,WAAW;IA0B/B,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,YAAY;IAoEpB,OAAO,CAAC,iBAAiB;IAoDzB,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,SAAS;IAoCjB,OAAO,CAAC,MAAM;CAGf"}
1
+ {"version":3,"file":"dataPaint.d.ts","sourceRoot":"","sources":["../../../src/services/painter/dataPaint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAGjE,qBAAa,SAAU,SAAQ,SAAS;IACtC,OAAO,CAAC,qBAAqB,CAAO;IAEpC,OAAO,CAAC,oBAAoB,CAAoB;IAChD,OAAO,CAAC,kBAAkB,CAAsB;IAEhD,OAAO,CAAC,YAAY,CAAK;IAEnB,IAAI,CAAC,OAAO,EAAE,WAAW;IAmC/B,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,YAAY;IA2EpB,OAAO,CAAC,iBAAiB;IAwDzB,OAAO,CAAC,gBAAgB;IAsCxB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,SAAS;IAuCjB,OAAO,CAAC,MAAM;CAGf"}