@rainlanguage/ui-components 0.0.1-alpha.10

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 (236) hide show
  1. package/README.md +58 -0
  2. package/dist/__fixtures__/orderDetail.d.ts +99 -0
  3. package/dist/__fixtures__/orderDetail.js +204 -0
  4. package/dist/__fixtures__/settings-12-11-24.json +160 -0
  5. package/dist/__mocks__/MockComponent.d.ts +1 -0
  6. package/dist/__mocks__/MockComponent.js +2 -0
  7. package/dist/__mocks__/MockComponent.svelte +3 -0
  8. package/dist/__mocks__/MockComponent.svelte.d.ts +18 -0
  9. package/dist/__mocks__/mockTransactionStore.d.ts +22 -0
  10. package/dist/__mocks__/mockTransactionStore.js +56 -0
  11. package/dist/__mocks__/mockWeb3Config.d.ts +2 -0
  12. package/dist/__mocks__/mockWeb3Config.js +15 -0
  13. package/dist/__mocks__/queries.d.ts +13 -0
  14. package/dist/__mocks__/queries.js +64 -0
  15. package/dist/__mocks__/settings.d.ts +3 -0
  16. package/dist/__mocks__/settings.js +37 -0
  17. package/dist/__mocks__/stores.d.ts +94 -0
  18. package/dist/__mocks__/stores.js +113 -0
  19. package/dist/app.css +3 -0
  20. package/dist/assets/ledger.svg +6 -0
  21. package/dist/assets/logo-dark.svg +15 -0
  22. package/dist/assets/logo-light.svg +15 -0
  23. package/dist/assets/walletconnect.svg +1 -0
  24. package/dist/components/BadgeActive.svelte +9 -0
  25. package/dist/components/BadgeActive.svelte.d.ts +19 -0
  26. package/dist/components/BlockQuote.svelte +1 -0
  27. package/dist/components/BlockQuote.svelte.d.ts +29 -0
  28. package/dist/components/ButtonDarkMode.svelte +14 -0
  29. package/dist/components/ButtonDarkMode.svelte.d.ts +18 -0
  30. package/dist/components/ButtonLoading.svelte +11 -0
  31. package/dist/components/ButtonLoading.svelte.d.ts +24 -0
  32. package/dist/components/ButtonTab.svelte +7 -0
  33. package/dist/components/ButtonTab.svelte.d.ts +23 -0
  34. package/dist/components/ButtonVaultLink.svelte +29 -0
  35. package/dist/components/ButtonVaultLink.svelte.d.ts +22 -0
  36. package/dist/components/CardProperty.svelte +11 -0
  37. package/dist/components/CardProperty.svelte.d.ts +31 -0
  38. package/dist/components/CheckboxMyItemsOnly.svelte +23 -0
  39. package/dist/components/CheckboxMyItemsOnly.svelte.d.ts +21 -0
  40. package/dist/components/CheckboxZeroBalanceVault.svelte +20 -0
  41. package/dist/components/CheckboxZeroBalanceVault.svelte.d.ts +19 -0
  42. package/dist/components/CodeMirrorDotrain.svelte +35 -0
  43. package/dist/components/CodeMirrorDotrain.svelte.d.ts +23 -0
  44. package/dist/components/CodeMirrorRainlang.svelte +34 -0
  45. package/dist/components/CodeMirrorRainlang.svelte.d.ts +23 -0
  46. package/dist/components/DropdownProperty.svelte +12 -0
  47. package/dist/components/DropdownProperty.svelte.d.ts +19 -0
  48. package/dist/components/EditableSpan.svelte +46 -0
  49. package/dist/components/EditableSpan.svelte.d.ts +21 -0
  50. package/dist/components/Hash.svelte +85 -0
  51. package/dist/components/Hash.svelte.d.ts +28 -0
  52. package/dist/components/Heading.svelte +19 -0
  53. package/dist/components/Heading.svelte.d.ts +29 -0
  54. package/dist/components/IconError.svelte +8 -0
  55. package/dist/components/IconError.svelte.d.ts +16 -0
  56. package/dist/components/IconExternalLink.svelte +18 -0
  57. package/dist/components/IconExternalLink.svelte.d.ts +18 -0
  58. package/dist/components/IconInfo.svelte +8 -0
  59. package/dist/components/IconInfo.svelte.d.ts +16 -0
  60. package/dist/components/IconLedger.svelte +13 -0
  61. package/dist/components/IconLedger.svelte.d.ts +16 -0
  62. package/dist/components/IconSuccess.svelte +8 -0
  63. package/dist/components/IconSuccess.svelte.d.ts +16 -0
  64. package/dist/components/IconTelegram.svelte +12 -0
  65. package/dist/components/IconTelegram.svelte.d.ts +25 -0
  66. package/dist/components/IconWalletConnect.svelte +13 -0
  67. package/dist/components/IconWalletConnect.svelte.d.ts +16 -0
  68. package/dist/components/IconWarning.svelte +8 -0
  69. package/dist/components/IconWarning.svelte.d.ts +16 -0
  70. package/dist/components/License.svelte +29 -0
  71. package/dist/components/License.svelte.d.ts +25 -0
  72. package/dist/components/ListViewOrderbookFilters.svelte +58 -0
  73. package/dist/components/ListViewOrderbookFilters.svelte.d.ts +28 -0
  74. package/dist/components/OrderOrVaultHash.svelte +24 -0
  75. package/dist/components/OrderOrVaultHash.svelte.d.ts +22 -0
  76. package/dist/components/PageHeader.svelte +33 -0
  77. package/dist/components/PageHeader.svelte.d.ts +21 -0
  78. package/dist/components/TanstackAppTable.svelte +73 -0
  79. package/dist/components/TanstackAppTable.svelte.d.ts +30 -0
  80. package/dist/components/Text.svelte +12 -0
  81. package/dist/components/Text.svelte.d.ts +31 -0
  82. package/dist/components/charts/APYTimeFilters.svelte +47 -0
  83. package/dist/components/charts/APYTimeFilters.svelte.d.ts +19 -0
  84. package/dist/components/charts/ChartTimeFilters.svelte +35 -0
  85. package/dist/components/charts/ChartTimeFilters.svelte.d.ts +18 -0
  86. package/dist/components/charts/LightweightChart.svelte +110 -0
  87. package/dist/components/charts/LightweightChart.svelte.d.ts +29 -0
  88. package/dist/components/charts/OrderTradesChart.svelte +36 -0
  89. package/dist/components/charts/OrderTradesChart.svelte.d.ts +21 -0
  90. package/dist/components/charts/TableTimeFilters.svelte +48 -0
  91. package/dist/components/charts/TableTimeFilters.svelte.d.ts +19 -0
  92. package/dist/components/charts/TanstackLightweightChartLine.svelte +24 -0
  93. package/dist/components/charts/TanstackLightweightChartLine.svelte.d.ts +23 -0
  94. package/dist/components/charts/VaultBalanceChart.svelte +37 -0
  95. package/dist/components/charts/VaultBalanceChart.svelte.d.ts +22 -0
  96. package/dist/components/checkbox/Checkbox.svelte +17 -0
  97. package/dist/components/checkbox/Checkbox.svelte.d.ts +21 -0
  98. package/dist/components/deployment/ButtonSelectOption.svelte +14 -0
  99. package/dist/components/deployment/ButtonSelectOption.svelte.d.ts +20 -0
  100. package/dist/components/deployment/ComposedRainlangModal.svelte +35 -0
  101. package/dist/components/deployment/ComposedRainlangModal.svelte.d.ts +19 -0
  102. package/dist/components/deployment/DeploymentSectionHeader.svelte +14 -0
  103. package/dist/components/deployment/DeploymentSectionHeader.svelte.d.ts +19 -0
  104. package/dist/components/deployment/DeploymentSteps.svelte +252 -0
  105. package/dist/components/deployment/DeploymentSteps.svelte.d.ts +38 -0
  106. package/dist/components/deployment/DeploymentTile.svelte +19 -0
  107. package/dist/components/deployment/DeploymentTile.svelte.d.ts +21 -0
  108. package/dist/components/deployment/DeploymentsSection.svelte +20 -0
  109. package/dist/components/deployment/DeploymentsSection.svelte.d.ts +19 -0
  110. package/dist/components/deployment/DepositInput.svelte +93 -0
  111. package/dist/components/deployment/DepositInput.svelte.d.ts +20 -0
  112. package/dist/components/deployment/DepositsSection.svelte +8 -0
  113. package/dist/components/deployment/DepositsSection.svelte.d.ts +20 -0
  114. package/dist/components/deployment/DisclaimerModal.svelte +54 -0
  115. package/dist/components/deployment/DisclaimerModal.svelte.d.ts +19 -0
  116. package/dist/components/deployment/FieldDefinitionInput.svelte +66 -0
  117. package/dist/components/deployment/FieldDefinitionInput.svelte.d.ts +20 -0
  118. package/dist/components/deployment/FieldDefinitionsSection.svelte +9 -0
  119. package/dist/components/deployment/FieldDefinitionsSection.svelte.d.ts +20 -0
  120. package/dist/components/deployment/InvalidStrategiesSection.svelte +19 -0
  121. package/dist/components/deployment/InvalidStrategiesSection.svelte.d.ts +19 -0
  122. package/dist/components/deployment/SelectToken.svelte +88 -0
  123. package/dist/components/deployment/SelectToken.svelte.d.ts +21 -0
  124. package/dist/components/deployment/SelectTokensSection.svelte +17 -0
  125. package/dist/components/deployment/SelectTokensSection.svelte.d.ts +21 -0
  126. package/dist/components/deployment/ShareChoicesButton.svelte +26 -0
  127. package/dist/components/deployment/ShareChoicesButton.svelte.d.ts +18 -0
  128. package/dist/components/deployment/StrategyPage.svelte +70 -0
  129. package/dist/components/deployment/StrategyPage.svelte.d.ts +19 -0
  130. package/dist/components/deployment/TokenIOInput.svelte +62 -0
  131. package/dist/components/deployment/TokenIOInput.svelte.d.ts +22 -0
  132. package/dist/components/deployment/TokenIOSection.svelte +17 -0
  133. package/dist/components/deployment/TokenIOSection.svelte.d.ts +21 -0
  134. package/dist/components/deployment/ValidStrategiesSection.svelte +25 -0
  135. package/dist/components/deployment/ValidStrategiesSection.svelte.d.ts +19 -0
  136. package/dist/components/deployment/getDeploymentTransactionArgs.d.ts +17 -0
  137. package/dist/components/deployment/getDeploymentTransactionArgs.js +24 -0
  138. package/dist/components/detail/DepositOrWithdrawButtons.svelte +44 -0
  139. package/dist/components/detail/DepositOrWithdrawButtons.svelte.d.ts +26 -0
  140. package/dist/components/detail/OrderDetail.svelte +195 -0
  141. package/dist/components/detail/OrderDetail.svelte.d.ts +36 -0
  142. package/dist/components/detail/TanstackOrderQuote.svelte +173 -0
  143. package/dist/components/detail/TanstackOrderQuote.svelte.d.ts +22 -0
  144. package/dist/components/detail/TanstackPageContentDetail.svelte +56 -0
  145. package/dist/components/detail/TanstackPageContentDetail.svelte.d.ts +31 -0
  146. package/dist/components/detail/VaultDetail.svelte +178 -0
  147. package/dist/components/detail/VaultDetail.svelte.d.ts +35 -0
  148. package/dist/components/dropdown/DropdownActiveSubgraphs.svelte +38 -0
  149. package/dist/components/dropdown/DropdownActiveSubgraphs.svelte.d.ts +21 -0
  150. package/dist/components/dropdown/DropdownCheckbox.svelte +77 -0
  151. package/dist/components/dropdown/DropdownCheckbox.svelte.d.ts +26 -0
  152. package/dist/components/dropdown/DropdownOrderListAccounts.svelte +15 -0
  153. package/dist/components/dropdown/DropdownOrderListAccounts.svelte.d.ts +20 -0
  154. package/dist/components/dropdown/DropdownOrderStatus.svelte +31 -0
  155. package/dist/components/dropdown/DropdownOrderStatus.svelte.d.ts +19 -0
  156. package/dist/components/dropdown/DropdownRadio.svelte +45 -0
  157. package/dist/components/dropdown/DropdownRadio.svelte.d.ts +30 -0
  158. package/dist/components/icon/RainLogo.svelte +54 -0
  159. package/dist/components/icon/RainLogo.svelte.d.ts +25 -0
  160. package/dist/components/icon/Refresh.svelte +57 -0
  161. package/dist/components/icon/Refresh.svelte.d.ts +40 -0
  162. package/dist/components/input/InputHex.svelte +42 -0
  163. package/dist/components/input/InputHex.svelte.d.ts +19 -0
  164. package/dist/components/input/InputOrderHash.svelte +22 -0
  165. package/dist/components/input/InputOrderHash.svelte.d.ts +20 -0
  166. package/dist/components/input/InputRegistryUrl.svelte +18 -0
  167. package/dist/components/input/InputRegistryUrl.svelte.d.ts +16 -0
  168. package/dist/components/input/InputToken.svelte +53 -0
  169. package/dist/components/input/InputToken.svelte.d.ts +19 -0
  170. package/dist/components/input/InputTokenAmount.svelte +63 -0
  171. package/dist/components/input/InputTokenAmount.svelte.d.ts +21 -0
  172. package/dist/components/tables/OrderAPY.svelte +57 -0
  173. package/dist/components/tables/OrderAPY.svelte.d.ts +19 -0
  174. package/dist/components/tables/OrderTradesListTable.svelte +145 -0
  175. package/dist/components/tables/OrderTradesListTable.svelte.d.ts +21 -0
  176. package/dist/components/tables/OrderVaultsVolTable.svelte +67 -0
  177. package/dist/components/tables/OrderVaultsVolTable.svelte.d.ts +19 -0
  178. package/dist/components/tables/OrdersListTable.svelte +181 -0
  179. package/dist/components/tables/OrdersListTable.svelte.d.ts +35 -0
  180. package/dist/components/tables/VaultBalanceChangesTable.svelte +74 -0
  181. package/dist/components/tables/VaultBalanceChangesTable.svelte.d.ts +17 -0
  182. package/dist/components/tables/VaultsListTable.svelte +229 -0
  183. package/dist/components/tables/VaultsListTable.svelte.d.ts +40 -0
  184. package/dist/components/wallet/WalletConnect.svelte +28 -0
  185. package/dist/components/wallet/WalletConnect.svelte.d.ts +23 -0
  186. package/dist/errors/DeploymentStepsError.d.ts +24 -0
  187. package/dist/errors/DeploymentStepsError.js +45 -0
  188. package/dist/errors/index.d.ts +1 -0
  189. package/dist/errors/index.js +1 -0
  190. package/dist/index.d.ts +89 -0
  191. package/dist/index.js +89 -0
  192. package/dist/queries/constants.d.ts +2 -0
  193. package/dist/queries/constants.js +2 -0
  194. package/dist/queries/keys.d.ts +9 -0
  195. package/dist/queries/keys.js +9 -0
  196. package/dist/queries/queryClient.d.ts +3 -0
  197. package/dist/queries/queryClient.js +16 -0
  198. package/dist/services/getExplorerLink.d.ts +1 -0
  199. package/dist/services/getExplorerLink.js +10 -0
  200. package/dist/services/handleShareChoices.d.ts +2 -0
  201. package/dist/services/handleShareChoices.js +10 -0
  202. package/dist/services/historicalOrderCharts.d.ts +12 -0
  203. package/dist/services/historicalOrderCharts.js +496 -0
  204. package/dist/services/index.d.ts +2 -0
  205. package/dist/services/index.js +1 -0
  206. package/dist/services/registry.d.ts +25 -0
  207. package/dist/services/registry.js +133 -0
  208. package/dist/services/time.d.ts +6 -0
  209. package/dist/services/time.js +17 -0
  210. package/dist/stores/transactionStore.d.ts +98 -0
  211. package/dist/stores/transactionStore.js +303 -0
  212. package/dist/test/matchers.d.ts +6 -0
  213. package/dist/test/matchers.js +4 -0
  214. package/dist/types/appStores.d.ts +19 -0
  215. package/dist/types/appStores.js +1 -0
  216. package/dist/types/modal.d.ts +20 -0
  217. package/dist/types/modal.js +1 -0
  218. package/dist/types/strategy.d.ts +10 -0
  219. package/dist/types/strategy.js +1 -0
  220. package/dist/types/transaction.d.ts +27 -0
  221. package/dist/types/transaction.js +1 -0
  222. package/dist/utils/breadcrumbs.d.ts +5 -0
  223. package/dist/utils/breadcrumbs.js +9 -0
  224. package/dist/utils/codeMirrorThemes.d.ts +2 -0
  225. package/dist/utils/codeMirrorThemes.js +86 -0
  226. package/dist/utils/hex.d.ts +2 -0
  227. package/dist/utils/hex.js +3 -0
  228. package/dist/utils/lightweightChartsThemes.d.ts +52 -0
  229. package/dist/utils/lightweightChartsThemes.js +21 -0
  230. package/dist/utils/number.d.ts +14 -0
  231. package/dist/utils/number.js +43 -0
  232. package/dist/utils/time.d.ts +12 -0
  233. package/dist/utils/time.js +27 -0
  234. package/dist/utils/vault.d.ts +2 -0
  235. package/dist/utils/vault.js +29 -0
  236. package/package.json +86 -0
@@ -0,0 +1,110 @@
1
+ <script generics="T extends keyof SeriesOptionsMap, D, O">import { Spinner } from "flowbite-svelte";
2
+ import {
3
+ createChart
4
+ } from "lightweight-charts";
5
+ import { onDestroy, onMount } from "svelte";
6
+ import ChartTimeFilters from "./ChartTimeFilters.svelte";
7
+ export let data = [];
8
+ export let loading = false;
9
+ export let emptyMessage = "None found";
10
+ export let title = void 0;
11
+ export let priceSymbol = void 0;
12
+ export let createSeries;
13
+ export let lightweightChartsTheme;
14
+ let chartElement = void 0;
15
+ let chart;
16
+ let series;
17
+ let timeDelta;
18
+ let timeFrom;
19
+ let timeTo;
20
+ let previousDataLength = 0;
21
+ function setTimeScale() {
22
+ if (chart === void 0) return;
23
+ timeTo = Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3);
24
+ timeFrom = timeTo - timeDelta;
25
+ chart.timeScale().setVisibleRange({
26
+ from: timeFrom,
27
+ to: timeTo
28
+ });
29
+ }
30
+ function setOptions() {
31
+ if (chart === void 0) return;
32
+ chart.applyOptions({
33
+ ...$lightweightChartsTheme,
34
+ autoSize: true,
35
+ localization: {
36
+ priceFormatter: (p) => priceSymbol ? `${p.toFixed(4)} ${priceSymbol}` : p.toFixed(4)
37
+ }
38
+ });
39
+ }
40
+ function updateNewDataPoints() {
41
+ if (series === void 0 || data.length === 0) return;
42
+ if (previousDataLength === 0) {
43
+ series.setData(data);
44
+ } else if (data.length > previousDataLength) {
45
+ const newPoints = data.slice(previousDataLength);
46
+ newPoints.forEach((point) => {
47
+ series?.update(point);
48
+ });
49
+ }
50
+ previousDataLength = data.length;
51
+ setTimeScale();
52
+ }
53
+ function destroyChart() {
54
+ if (chart == void 0) return;
55
+ chart.remove();
56
+ chart = void 0;
57
+ }
58
+ function setupChart() {
59
+ if (chartElement === void 0) return;
60
+ chart = createChart(chartElement);
61
+ series = createSeries(chart);
62
+ setOptions();
63
+ updateNewDataPoints();
64
+ }
65
+ $: if (data || series) updateNewDataPoints();
66
+ $: if (timeDelta) setTimeScale();
67
+ $: if ($lightweightChartsTheme) setOptions();
68
+ $: if (chartElement && data.length > 0 && !chart) setupChart();
69
+ onMount(() => {
70
+ setupChart();
71
+ });
72
+ onDestroy(() => {
73
+ destroyChart();
74
+ });
75
+ </script>
76
+
77
+ <div
78
+ class="flex h-full flex-col overflow-hidden rounded-lg border bg-gray-50 dark:border-none dark:bg-gray-700"
79
+ >
80
+ <div class="flex w-full justify-between border-b p-3 pb-0 dark:border-gray-700">
81
+ <div class="text-gray-900 dark:text-white">
82
+ {#if title !== undefined}
83
+ <div data-testid="lightweightChartTitle" class="mb-2 text-xl">{title}</div>
84
+ {/if}
85
+ </div>
86
+
87
+ <div>
88
+ {#if loading}
89
+ <Spinner data-testid="lightweightChartSpinner" class="mr-2 h-4 w-4" color="white" />
90
+ {/if}
91
+ {#if data.length > 0}
92
+ <ChartTimeFilters bind:timeDelta />
93
+ {/if}
94
+ </div>
95
+ </div>
96
+ <div class="relative flex w-full grow items-center justify-center bg-white dark:bg-gray-800">
97
+ {#if data.length === 0 && !loading}
98
+ <div class="text-gray-800 dark:text-gray-400" data-testid="lightweightChartEmptyMessage">
99
+ {emptyMessage}
100
+ </div>
101
+ {:else}
102
+ <div
103
+ bind:this={chartElement}
104
+ class="h-full w-full overflow-hidden"
105
+ {...$$props}
106
+ data-testid="lightweightChartElement"
107
+ ></div>
108
+ {/if}
109
+ </div>
110
+ </div>
@@ -0,0 +1,29 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { Readable } from 'svelte/store';
3
+ import { type IChartApi, type UTCTimestamp, type ISeriesApi, type WhitespaceData, type Time, type DeepPartial, type SeriesOptionsCommon, type SeriesOptionsMap } from 'lightweight-charts';
4
+ declare class __sveltets_Render<T extends keyof SeriesOptionsMap, D, O> {
5
+ props(): {
6
+ [x: string]: any;
7
+ data?: {
8
+ value: number;
9
+ time: UTCTimestamp;
10
+ color?: string;
11
+ }[] | undefined;
12
+ loading?: boolean | undefined;
13
+ emptyMessage?: string | undefined;
14
+ title?: string | undefined;
15
+ priceSymbol?: string | undefined;
16
+ createSeries: (chart: IChartApi) => ISeriesApi<T, Time, WhitespaceData<Time>, O, DeepPartial<O & SeriesOptionsCommon>>;
17
+ lightweightChartsTheme: Readable<Record<string, unknown>>;
18
+ };
19
+ events(): {} & {
20
+ [evt: string]: CustomEvent<any>;
21
+ };
22
+ slots(): {};
23
+ }
24
+ export type LightweightChartProps<T extends keyof SeriesOptionsMap, D, O> = ReturnType<__sveltets_Render<T, D, O>['props']>;
25
+ export type LightweightChartEvents<T extends keyof SeriesOptionsMap, D, O> = ReturnType<__sveltets_Render<T, D, O>['events']>;
26
+ export type LightweightChartSlots<T extends keyof SeriesOptionsMap, D, O> = ReturnType<__sveltets_Render<T, D, O>['slots']>;
27
+ export default class LightweightChart<T extends keyof SeriesOptionsMap, D, O> extends SvelteComponent<LightweightChartProps<T, D, O>, LightweightChartEvents<T, D, O>, LightweightChartSlots<T, D, O>> {
28
+ }
29
+ export {};
@@ -0,0 +1,36 @@
1
+ <script>import { getOrderTradesList } from "@rainlanguage/orderbook/js_api";
2
+ import { prepareHistoricalOrderChartData } from "../../services/historicalOrderCharts";
3
+ import TanstackLightweightChartLine from "./TanstackLightweightChartLine.svelte";
4
+ import { createQuery } from "@tanstack/svelte-query";
5
+ import { QKEY_ORDER_TRADES_LIST } from "../../queries/keys";
6
+ export let id;
7
+ export let subgraphUrl;
8
+ export let colorTheme;
9
+ export let lightweightChartsTheme;
10
+ $: query = createQuery({
11
+ queryKey: [QKEY_ORDER_TRADES_LIST, id],
12
+ queryFn: async () => {
13
+ const data = await getOrderTradesList(
14
+ subgraphUrl || "",
15
+ id,
16
+ {
17
+ page: 1,
18
+ pageSize: 10
19
+ },
20
+ BigInt(1e3),
21
+ void 0
22
+ );
23
+ return prepareHistoricalOrderChartData(data, $colorTheme);
24
+ },
25
+ enabled: !!subgraphUrl
26
+ });
27
+ </script>
28
+
29
+ <TanstackLightweightChartLine
30
+ title="Trades"
31
+ {query}
32
+ timeTransform={(d) => d.time}
33
+ valueTransform={(d) => d.value}
34
+ emptyMessage="No trades found"
35
+ {lightweightChartsTheme}
36
+ />
@@ -0,0 +1,21 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ id: string;
5
+ subgraphUrl: string;
6
+ colorTheme: any;
7
+ lightweightChartsTheme: any;
8
+ };
9
+ events: {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {};
13
+ exports?: {} | undefined;
14
+ bindings?: string | undefined;
15
+ };
16
+ export type OrderTradesChartProps = typeof __propDef.props;
17
+ export type OrderTradesChartEvents = typeof __propDef.events;
18
+ export type OrderTradesChartSlots = typeof __propDef.slots;
19
+ export default class OrderTradesChart extends SvelteComponent<OrderTradesChartProps, OrderTradesChartEvents, OrderTradesChartSlots> {
20
+ }
21
+ export {};
@@ -0,0 +1,48 @@
1
+ <script>import ButtonTab from "../ButtonTab.svelte";
2
+ import { ButtonGroup } from "flowbite-svelte";
3
+ const TIME_DELTA_24_HOURS = 60 * 60 * 24;
4
+ const TIME_DELTA_48_HOURS = TIME_DELTA_24_HOURS * 2;
5
+ let now = Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3);
6
+ let timeDelta;
7
+ function setNow() {
8
+ now = Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3);
9
+ }
10
+ export let startTimestamp;
11
+ export let endTimestamp;
12
+ </script>
13
+
14
+ <ButtonGroup class="bg-gray-800" data-testid="lightweightChartYearButtons">
15
+ <ButtonTab
16
+ on:click={() => {
17
+ setNow();
18
+ timeDelta = undefined;
19
+ startTimestamp = undefined;
20
+ endTimestamp = undefined;
21
+ }}
22
+ active={timeDelta === undefined}
23
+ size="xs"
24
+ class="px-2 py-1">All Time</ButtonTab
25
+ >
26
+ <ButtonTab
27
+ on:click={() => {
28
+ setNow();
29
+ timeDelta = TIME_DELTA_48_HOURS;
30
+ startTimestamp = now - TIME_DELTA_48_HOURS;
31
+ endTimestamp = now;
32
+ }}
33
+ active={timeDelta === TIME_DELTA_48_HOURS}
34
+ size="xs"
35
+ class="px-2 py-1">48 Hours</ButtonTab
36
+ >
37
+ <ButtonTab
38
+ on:click={() => {
39
+ setNow();
40
+ timeDelta = TIME_DELTA_24_HOURS;
41
+ startTimestamp = now - TIME_DELTA_24_HOURS;
42
+ endTimestamp = now;
43
+ }}
44
+ active={timeDelta === TIME_DELTA_24_HOURS}
45
+ size="xs"
46
+ class="px-2 py-1">24 Hours</ButtonTab
47
+ >
48
+ </ButtonGroup>
@@ -0,0 +1,19 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ startTimestamp: number | undefined;
5
+ endTimestamp: number | undefined;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ exports?: {} | undefined;
12
+ bindings?: string | undefined;
13
+ };
14
+ export type TableTimeFiltersProps = typeof __propDef.props;
15
+ export type TableTimeFiltersEvents = typeof __propDef.events;
16
+ export type TableTimeFiltersSlots = typeof __propDef.slots;
17
+ export default class TableTimeFilters extends SvelteComponent<TableTimeFiltersProps, TableTimeFiltersEvents, TableTimeFiltersSlots> {
18
+ }
19
+ export {};
@@ -0,0 +1,24 @@
1
+ <script generics="T">import LightweightChart from "./LightweightChart.svelte";
2
+ import { sortBy } from "lodash";
3
+ export let query;
4
+ export let timeTransform;
5
+ export let valueTransform;
6
+ export let lightweightChartsTheme;
7
+ const transformAndSortData = (data2) => {
8
+ const transformedData = data2.map((d) => ({
9
+ value: valueTransform(d),
10
+ time: timeTransform(d)
11
+ }));
12
+ return sortBy(transformedData, (d) => d.time);
13
+ };
14
+ $: data = transformAndSortData($query.data ?? []);
15
+ const createSeries = (chart) => chart.addLineSeries({ lineWidth: 1 });
16
+ </script>
17
+
18
+ <LightweightChart
19
+ {createSeries}
20
+ {data}
21
+ loading={$query.isLoading}
22
+ {...$$props}
23
+ {lightweightChartsTheme}
24
+ />
@@ -0,0 +1,23 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { Readable } from 'svelte/store';
3
+ import type { CreateQueryResult } from '@tanstack/svelte-query';
4
+ import type { UTCTimestamp } from 'lightweight-charts';
5
+ declare class __sveltets_Render<T> {
6
+ props(): {
7
+ [x: string]: any;
8
+ query: CreateQueryResult<T[]>;
9
+ timeTransform: (data: T) => UTCTimestamp;
10
+ valueTransform: (data: T) => number;
11
+ lightweightChartsTheme: Readable<Record<string, unknown>>;
12
+ };
13
+ events(): {} & {
14
+ [evt: string]: CustomEvent<any>;
15
+ };
16
+ slots(): {};
17
+ }
18
+ export type TanstackLightweightChartLineProps<T> = ReturnType<__sveltets_Render<T>['props']>;
19
+ export type TanstackLightweightChartLineEvents<T> = ReturnType<__sveltets_Render<T>['events']>;
20
+ export type TanstackLightweightChartLineSlots<T> = ReturnType<__sveltets_Render<T>['slots']>;
21
+ export default class TanstackLightweightChartLine<T> extends SvelteComponent<TanstackLightweightChartLineProps<T>, TanstackLightweightChartLineEvents<T>, TanstackLightweightChartLineSlots<T>> {
22
+ }
23
+ export {};
@@ -0,0 +1,37 @@
1
+ <script>import { timestampSecondsToUTCTimestamp } from "../../utils/time";
2
+ import { bigintToFloat } from "../../utils/number";
3
+ import { createQuery } from "@tanstack/svelte-query";
4
+ import {
5
+ getVaultBalanceChanges
6
+ } from "@rainlanguage/orderbook/js_api";
7
+ import TanstackLightweightChartLine from "../charts/TanstackLightweightChartLine.svelte";
8
+ import { QKEY_VAULT_CHANGES } from "../../queries/keys";
9
+ export let vault;
10
+ export let id;
11
+ export let subgraphUrl;
12
+ export let lightweightChartsTheme;
13
+ $: query = createQuery({
14
+ queryKey: [id, QKEY_VAULT_CHANGES + id, QKEY_VAULT_CHANGES],
15
+ queryFn: () => {
16
+ return getVaultBalanceChanges(subgraphUrl || "", vault.id, {
17
+ page: 1,
18
+ pageSize: 1e3
19
+ });
20
+ },
21
+ enabled: !!subgraphUrl
22
+ });
23
+ const Chart = TanstackLightweightChartLine;
24
+ </script>
25
+
26
+ {#if vault && $query.data}
27
+ <Chart
28
+ title="Balance history"
29
+ priceSymbol={vault.token.symbol}
30
+ {query}
31
+ timeTransform={(d) => timestampSecondsToUTCTimestamp(BigInt(d.timestamp))}
32
+ valueTransform={(d) =>
33
+ bigintToFloat(BigInt(d.newVaultBalance), Number(vault.token.decimals ?? 0))}
34
+ emptyMessage="No deposits or withdrawals found"
35
+ {lightweightChartsTheme}
36
+ />
37
+ {/if}
@@ -0,0 +1,22 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { SgVault } from '@rainlanguage/orderbook/js_api';
3
+ declare const __propDef: {
4
+ props: {
5
+ vault: SgVault;
6
+ id: string;
7
+ subgraphUrl: string;
8
+ lightweightChartsTheme: any;
9
+ };
10
+ events: {
11
+ [evt: string]: CustomEvent<any>;
12
+ };
13
+ slots: {};
14
+ exports?: {} | undefined;
15
+ bindings?: string | undefined;
16
+ };
17
+ export type VaultBalanceChartProps = typeof __propDef.props;
18
+ export type VaultBalanceChartEvents = typeof __propDef.events;
19
+ export type VaultBalanceChartSlots = typeof __propDef.slots;
20
+ export default class VaultBalanceChart extends SvelteComponent<VaultBalanceChartProps, VaultBalanceChartEvents, VaultBalanceChartSlots> {
21
+ }
22
+ export {};
@@ -0,0 +1,17 @@
1
+ <script>import { createEventDispatcher } from "svelte";
2
+ import { Checkbox as FlowbiteCheckbox, Label } from "flowbite-svelte";
3
+ const dispatch = createEventDispatcher();
4
+ export let label = "";
5
+ export let checked = false;
6
+ function handleChange() {
7
+ checked = !checked;
8
+ dispatch("change", checked);
9
+ }
10
+ </script>
11
+
12
+ <div class="flex items-center">
13
+ <FlowbiteCheckbox {checked} on:click={handleChange} data-testid="checkbox" />
14
+ <Label class="ml-2">
15
+ {label}
16
+ </Label>
17
+ </div>
@@ -0,0 +1,21 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ label?: string;
5
+ checked?: boolean;
6
+ };
7
+ events: {
8
+ change: CustomEvent<any>;
9
+ } & {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {};
13
+ exports?: {} | undefined;
14
+ bindings?: string | undefined;
15
+ };
16
+ export type CheckboxProps = typeof __propDef.props;
17
+ export type CheckboxEvents = typeof __propDef.events;
18
+ export type CheckboxSlots = typeof __propDef.slots;
19
+ export default class Checkbox extends SvelteComponent<CheckboxProps, CheckboxEvents, CheckboxSlots> {
20
+ }
21
+ export {};
@@ -0,0 +1,14 @@
1
+ <script>import { Button } from "flowbite-svelte";
2
+ export let active;
3
+ export let buttonText;
4
+ export let clickHandler;
5
+ </script>
6
+
7
+ <Button
8
+ size="lg"
9
+ color="alternative"
10
+ class={active ? 'border-2 border-blue-300 dark:border-blue-700' : 'border-2 border-transparent'}
11
+ on:click={clickHandler}
12
+ >
13
+ {buttonText}
14
+ </Button>
@@ -0,0 +1,20 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ active: boolean;
5
+ buttonText: string;
6
+ clickHandler: () => void;
7
+ };
8
+ events: {
9
+ [evt: string]: CustomEvent<any>;
10
+ };
11
+ slots: {};
12
+ exports?: {} | undefined;
13
+ bindings?: string | undefined;
14
+ };
15
+ export type ButtonSelectOptionProps = typeof __propDef.props;
16
+ export type ButtonSelectOptionEvents = typeof __propDef.events;
17
+ export type ButtonSelectOptionSlots = typeof __propDef.slots;
18
+ export default class ButtonSelectOption extends SvelteComponent<ButtonSelectOptionProps, ButtonSelectOptionEvents, ButtonSelectOptionSlots> {
19
+ }
20
+ export {};
@@ -0,0 +1,35 @@
1
+ <script>import CodeMirror from "svelte-codemirror-editor";
2
+ import { RainlangLR } from "codemirror-rainlang";
3
+ import { lightCodeMirrorTheme } from "../../utils/codeMirrorThemes";
4
+ import { Button, Modal } from "flowbite-svelte";
5
+ export let gui;
6
+ let rainlangText = null;
7
+ let open = false;
8
+ async function generateRainlang() {
9
+ const rainlang = await gui.getComposedRainlang();
10
+ if (rainlang) {
11
+ rainlangText = rainlang;
12
+ open = true;
13
+ }
14
+ }
15
+ </script>
16
+
17
+ <Button color="light" size="lg" on:click={generateRainlang}>Show Rainlang</Button>
18
+
19
+ <Modal size="xl" class="bg-opacity-90 backdrop-blur-sm" bind:open data-testid="modal">
20
+ <div data-testid="modal-content">
21
+ <h3 class="mb-2 text-2xl font-semibold text-gray-900 dark:text-white">Generated Rainlang</h3>
22
+ <CodeMirror
23
+ value={rainlangText}
24
+ extensions={[RainlangLR]}
25
+ theme={lightCodeMirrorTheme}
26
+ readonly={true}
27
+ styles={{
28
+ '&': {
29
+ height: '70vh',
30
+ width: '100%'
31
+ }
32
+ }}
33
+ />
34
+ </div>
35
+ </Modal>
@@ -0,0 +1,19 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { DotrainOrderGui } from '@rainlanguage/orderbook/js_api';
3
+ declare const __propDef: {
4
+ props: {
5
+ gui: DotrainOrderGui;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ exports?: {} | undefined;
12
+ bindings?: string | undefined;
13
+ };
14
+ export type ComposedRainlangModalProps = typeof __propDef.props;
15
+ export type ComposedRainlangModalEvents = typeof __propDef.events;
16
+ export type ComposedRainlangModalSlots = typeof __propDef.slots;
17
+ export default class ComposedRainlangModal extends SvelteComponent<ComposedRainlangModalProps, ComposedRainlangModalEvents, ComposedRainlangModalSlots> {
18
+ }
19
+ export {};
@@ -0,0 +1,14 @@
1
+ <script>export let title;
2
+ export let description = "";
3
+ </script>
4
+
5
+ <div class="flex max-w-xl flex-grow flex-col gap-y-4 text-left">
6
+ <h1 class="break-words text-xl font-semibold text-gray-900 lg:text-2xl dark:text-white">
7
+ {title}
8
+ </h1>
9
+ {#if description}
10
+ <p class="break-words text-sm font-light text-gray-600 lg:text-base dark:text-gray-400">
11
+ {description}
12
+ </p>
13
+ {/if}
14
+ </div>
@@ -0,0 +1,19 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ title: string;
5
+ description?: string;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ exports?: {} | undefined;
12
+ bindings?: string | undefined;
13
+ };
14
+ export type DeploymentSectionHeaderProps = typeof __propDef.props;
15
+ export type DeploymentSectionHeaderEvents = typeof __propDef.events;
16
+ export type DeploymentSectionHeaderSlots = typeof __propDef.slots;
17
+ export default class DeploymentSectionHeader extends SvelteComponent<DeploymentSectionHeaderProps, DeploymentSectionHeaderEvents, DeploymentSectionHeaderSlots> {
18
+ }
19
+ export {};