From 53f0029126314faebd87131912bfd3571ac69b87 Mon Sep 17 00:00:00 2001 From: dcodes05 Date: Fri, 25 Aug 2023 10:01:41 +0200 Subject: [PATCH] feat: extract table from history to shared components, removed unused path from tsconfig --- apps/oeth/tsconfig.app.json | 2 +- .../History/HistoryTable.stories.tsx | 21 +- .../src/components/History/HistoryTable.tsx | 111 +- .../oeth/src/components/History/fixtures.ts | 1052 +++++++++++++++++ libs/shared/assets/files/meta.png | Bin 0 -> 86543 bytes .../components/src/DataTable/DataTable.tsx | 124 ++ .../shared/components/src/DataTable/index.tsx | 1 + libs/shared/components/src/LinkIcon/index.tsx | 1 + libs/shared/components/src/index.ts | 3 +- 9 files changed, 1205 insertions(+), 110 deletions(-) create mode 100644 libs/defi/oeth/src/components/History/fixtures.ts create mode 100644 libs/shared/assets/files/meta.png create mode 100644 libs/shared/components/src/DataTable/DataTable.tsx create mode 100644 libs/shared/components/src/DataTable/index.tsx create mode 100644 libs/shared/components/src/LinkIcon/index.tsx diff --git a/apps/oeth/tsconfig.app.json b/apps/oeth/tsconfig.app.json index eb2d36377..e4322b551 100644 --- a/apps/oeth/tsconfig.app.json +++ b/apps/oeth/tsconfig.app.json @@ -18,5 +18,5 @@ "src/**/*.spec.jsx", "src/**/*.test.jsx" ], - "include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.tsx", "../../libs/defi/oeth/src/components/TopNav.tsx"] + "include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.tsx"] } diff --git a/libs/defi/oeth/src/components/History/HistoryTable.stories.tsx b/libs/defi/oeth/src/components/History/HistoryTable.stories.tsx index dc19da82b..9aae7936d 100644 --- a/libs/defi/oeth/src/components/History/HistoryTable.stories.tsx +++ b/libs/defi/oeth/src/components/History/HistoryTable.stories.tsx @@ -1,32 +1,15 @@ import { useState } from 'react'; -import { faker } from '@faker-js/faker'; import { Container, Stack, Typography } from '@mui/material'; import { within } from '@storybook/testing-library'; +import { rows } from './fixtures'; import { HistoryFilterButton } from './HistoryButton'; import { HistoryTable } from './HistoryTable'; import type { Meta, StoryObj } from '@storybook/react'; import type { ColumnFilter } from '@tanstack/react-table'; -import type { HistoryRow } from './HistoryTable'; - -const rows = faker.helpers.multiple( - () => ({ - date: faker.date.recent({ days: 35 }), - balance: faker.number.float({ - min: 10000, - max: 10000000000, - precision: 10, - }), - change: faker.number.float({ min: -10, max: 25 }), - type: faker.helpers.arrayElement(['swap', 'received', 'sent', 'yield']), - link: faker.internet.url(), - }), - { count: 150 }, -); - const WithFilters = () => { const [filter, setFilter] = useState({ id: 'type', value: [] }); return ( @@ -70,6 +53,7 @@ const WithFilters = () => { ))} + {/* @ts-expect-error type mismatch with fixtures */} ); @@ -80,6 +64,7 @@ const meta: Meta = { title: 'History/History table', args: { isLoading: false, + // @ts-expect-error type mismatch rows, }, render: (args) => ( diff --git a/libs/defi/oeth/src/components/History/HistoryTable.tsx b/libs/defi/oeth/src/components/History/HistoryTable.tsx index 2401bb7dc..95698dd6a 100644 --- a/libs/defi/oeth/src/components/History/HistoryTable.tsx +++ b/libs/defi/oeth/src/components/History/HistoryTable.tsx @@ -1,27 +1,12 @@ -import { useEffect, useMemo, useState } from 'react'; +import { useEffect, useMemo, useRef } from 'react'; -import { - Box, - Pagination, - Stack, - Table, - TableBody, - TableCell, - TableHead, - TableRow, -} from '@mui/material'; -import { LinkIcon, quantityFormat } from '@origin/shared/components'; -import { - createColumnHelper, - flexRender, - getCoreRowModel, - getFilteredRowModel, - getPaginationRowModel, - useReactTable, -} from '@tanstack/react-table'; +import { Box, Stack } from '@mui/material'; +import { DataTable, LinkIcon, quantityFormat } from '@origin/shared/components'; +import { createColumnHelper } from '@tanstack/react-table'; import { useIntl } from 'react-intl'; -import type { ColumnFilter, ColumnFiltersState } from '@tanstack/react-table'; +import type { DataTableRef } from '@origin/shared/components'; +import type { ColumnFilter } from '@tanstack/react-table'; type Filter = 'swap' | 'yield' | 'received' | 'sent'; @@ -31,6 +16,7 @@ export interface HistoryRow { change: number; balance: number; link: string; + [key: string]: unknown; } interface Props { @@ -41,9 +27,10 @@ interface Props { const columnHelper = createColumnHelper(); -export function HistoryTable({ rows, filter }: Props) { +export function HistoryTable({ rows, filter, isLoading }: Props) { const intl = useIntl(); - const [columnFilters, setColumnFilters] = useState([]); + const ref = useRef(null); + const columns = useMemo( () => [ columnHelper.accessor('date', { @@ -93,74 +80,18 @@ export function HistoryTable({ rows, filter }: Props) { [intl], ); - const table = useReactTable({ - data: rows, - columns, - state: { - pagination: { - pageSize: 20, - pageIndex: 0, - }, - columnFilters, - }, - getCoreRowModel: getCoreRowModel(), - getPaginationRowModel: getPaginationRowModel(), - getFilteredRowModel: getFilteredRowModel(), - onColumnFiltersChange: setColumnFilters, - // add when we do server side pagination - // manualPagination: true, - pageCount: rows.length / 3, - // add when we do server side pagination - // onPaginationChange: setPagination - }); - useEffect(() => { - table.getColumn('type')?.setFilterValue(filter); - }, [filter, table]); + ref?.current?.setFilter(filter, 'type'); + }, [filter]); + return ( - - - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => ( - - {flexRender( - header.column.columnDef.header, - header.getContext(), - )} - - ))} - - ))} - - - {table.getRowModel().rows.map((row) => ( - - {row.getVisibleCells().map((cell) => ( - - {flexRender(cell.column.columnDef.cell, cell.getContext())} - - ))} - - ))} - -
- table.setPageIndex(page)} - /> -
+ ); } diff --git a/libs/defi/oeth/src/components/History/fixtures.ts b/libs/defi/oeth/src/components/History/fixtures.ts new file mode 100644 index 000000000..c9310ed0c --- /dev/null +++ b/libs/defi/oeth/src/components/History/fixtures.ts @@ -0,0 +1,1052 @@ +export const rows = [ + { + date: '2023-08-09T09:24:28.392Z', + balance: 2905823500, + change: -8.708203432615846, + type: 'sent', + link: 'https://fixed-killing.net/', + }, + { + date: '2023-08-15T22:12:30.081Z', + balance: 844700630, + change: -9.270400318782777, + type: 'yield', + link: 'https://slim-styling.info', + }, + { + date: '2023-08-20T07:01:48.590Z', + balance: 1657474870, + change: 9.077522575389594, + type: 'sent', + link: 'https://milky-grandchild.name', + }, + { + date: '2023-08-06T22:10:47.654Z', + balance: 7383296180, + change: 8.149598793825135, + type: 'yield', + link: 'https://creative-group.name', + }, + { + date: '2023-08-03T06:54:51.975Z', + balance: 8167162390, + change: 7.759596772957593, + type: 'swap', + link: 'https://magnificent-treat.org/', + }, + { + date: '2023-08-13T05:23:36.673Z', + balance: 5229696650, + change: -4.359190490795299, + type: 'sent', + link: 'https://spotted-anesthesiologist.biz/', + }, + { + date: '2023-08-04T01:13:52.464Z', + balance: 4458535780, + change: -9.770266831619665, + type: 'received', + link: 'https://bare-muskrat.name/', + }, + { + date: '2023-08-19T03:04:49.081Z', + balance: 2513642140, + change: 18.21222705533728, + type: 'sent', + link: 'https://self-reliant-yam.info', + }, + { + date: '2023-07-26T03:56:14.395Z', + balance: 843777780, + change: 18.715593725210056, + type: 'swap', + link: 'https://perfumed-happening.org/', + }, + { + date: '2023-08-09T03:11:46.580Z', + balance: 596396680, + change: 1.9720372662413865, + type: 'received', + link: 'https://naughty-imagination.com', + }, + { + date: '2023-08-18T23:12:50.114Z', + balance: 8750886350, + change: 10.70621510851197, + type: 'received', + link: 'https://open-reprocessing.biz', + }, + { + date: '2023-07-24T15:07:06.628Z', + balance: 8322847100, + change: -9.620051335077733, + type: 'yield', + link: 'https://barren-journalist.biz', + }, + { + date: '2023-07-29T19:06:09.805Z', + balance: 636697010, + change: 10.078663516324013, + type: 'received', + link: 'https://whispered-anguish.net/', + }, + { + date: '2023-08-08T07:49:24.348Z', + balance: 4022903100, + change: -3.815771577646956, + type: 'swap', + link: 'https://firm-inversion.net/', + }, + { + date: '2023-07-30T02:08:30.121Z', + balance: 9292536560, + change: 6.059687343658879, + type: 'yield', + link: 'https://vigilant-recapitulation.com/', + }, + { + date: '2023-08-23T22:11:44.622Z', + balance: 3610512300, + change: 12.880512519041076, + type: 'sent', + link: 'https://perfumed-judgment.net/', + }, + { + date: '2023-08-19T10:28:23.081Z', + balance: 2270149970, + change: 10.585962830809876, + type: 'swap', + link: 'https://lawful-councilor.biz/', + }, + { + date: '2023-08-12T16:24:25.785Z', + balance: 6525393130, + change: -4.815741195343435, + type: 'received', + link: 'https://political-tract.name', + }, + { + date: '2023-08-01T18:48:07.428Z', + balance: 5050409710, + change: 4.072673523332924, + type: 'received', + link: 'https://creamy-job.org', + }, + { + date: '2023-08-16T19:17:43.237Z', + balance: 276207460, + change: -3.763450221158564, + type: 'sent', + link: 'https://inconsequential-dozen.net/', + }, + { + date: '2023-08-08T04:50:22.008Z', + balance: 5836661640, + change: 4.948086115764454, + type: 'swap', + link: 'https://plump-webpage.net/', + }, + { + date: '2023-07-30T02:10:47.594Z', + balance: 9709654270, + change: 7.666684470605105, + type: 'sent', + link: 'https://insidious-weekender.com/', + }, + { + date: '2023-08-10T20:13:20.875Z', + balance: 7836963680, + change: -4.659254213329405, + type: 'sent', + link: 'https://speedy-softdrink.info/', + }, + { + date: '2023-07-31T01:35:29.660Z', + balance: 7638311180, + change: -8.740590022644028, + type: 'yield', + link: 'https://grateful-pathogenesis.com', + }, + { + date: '2023-08-16T20:13:53.362Z', + balance: 8572619970, + change: -0.7305871462449431, + type: 'swap', + link: 'https://weak-grit.net', + }, + { + date: '2023-08-09T20:08:42.465Z', + balance: 1902293040, + change: 12.399773884098977, + type: 'swap', + link: 'https://frank-fencing.net/', + }, + { + date: '2023-08-24T14:20:38.983Z', + balance: 4786790460, + change: 2.432553342077881, + type: 'yield', + link: 'https://classic-regionalism.com', + }, + { + date: '2023-07-27T20:27:16.017Z', + balance: 7745072020, + change: -7.67745430348441, + type: 'swap', + link: 'https://nervous-confectionery.biz', + }, + { + date: '2023-08-07T18:15:52.094Z', + balance: 8886290650, + change: -5.531949570868164, + type: 'received', + link: 'https://jaded-phrase.net/', + }, + { + date: '2023-08-03T02:41:25.923Z', + balance: 9154576050, + change: 13.174208792624995, + type: 'sent', + link: 'https://courageous-walnut.com', + }, + { + date: '2023-08-09T04:06:35.138Z', + balance: 4518435720, + change: 15.643867878243327, + type: 'yield', + link: 'https://cooked-everybody.org/', + }, + { + date: '2023-07-27T04:56:40.838Z', + balance: 3989631390, + change: -1.094570824643597, + type: 'sent', + link: 'https://royal-ecliptic.biz/', + }, + { + date: '2023-08-01T08:14:00.584Z', + balance: 6886920130, + change: -2.7221622632350773, + type: 'yield', + link: 'https://new-banyan.org', + }, + { + date: '2023-08-09T23:54:33.670Z', + balance: 4347283380, + change: -1.0765372531022877, + type: 'sent', + link: 'https://conscious-leading.info', + }, + { + date: '2023-08-07T03:39:55.953Z', + balance: 3343251380, + change: 2.493433946510777, + type: 'yield', + link: 'https://fancy-cauliflower.org', + }, + { + date: '2023-07-27T23:43:31.961Z', + balance: 2466109540, + change: 14.945782331051305, + type: 'received', + link: 'https://minor-hellcat.org', + }, + { + date: '2023-08-04T06:50:24.497Z', + balance: 5950003620, + change: -3.7749596126377583, + type: 'sent', + link: 'https://valid-collaboration.com/', + }, + { + date: '2023-08-12T01:10:23.717Z', + balance: 4664512610, + change: 9.078100132755935, + type: 'swap', + link: 'https://muddy-barge.name', + }, + { + date: '2023-08-02T18:31:08.177Z', + balance: 3267278300, + change: 2.896045239176601, + type: 'sent', + link: 'https://healthy-armchair.name/', + }, + { + date: '2023-08-06T13:39:10.559Z', + balance: 5091366940, + change: 7.557168318890035, + type: 'yield', + link: 'https://lonely-waterwheel.biz/', + }, + { + date: '2023-08-07T11:41:08.714Z', + balance: 1948535790, + change: 20.446028797887266, + type: 'yield', + link: 'https://any-serval.name/', + }, + { + date: '2023-07-25T23:19:14.539Z', + balance: 9502426210, + change: -3.571468291338533, + type: 'received', + link: 'https://apt-chipmunk.net', + }, + { + date: '2023-08-04T16:27:00.392Z', + balance: 3086756500, + change: 11.703390107722953, + type: 'yield', + link: 'https://elegant-rancher.net/', + }, + { + date: '2023-08-02T00:49:04.218Z', + balance: 4359492790, + change: 4.026034857379273, + type: 'yield', + link: 'https://flowery-mascara.com', + }, + { + date: '2023-08-08T22:58:36.968Z', + balance: 6365044610, + change: 0.47157082124613225, + type: 'received', + link: 'https://ordinary-bee.com/', + }, + { + date: '2023-08-20T22:17:27.336Z', + balance: 2443112950, + change: 17.89905706536956, + type: 'yield', + link: 'https://impeccable-heirloom.com/', + }, + { + date: '2023-08-10T13:53:41.471Z', + balance: 4940397110, + change: 15.650188649306074, + type: 'sent', + link: 'https://dimpled-membership.org/', + }, + { + date: '2023-08-24T04:08:40.603Z', + balance: 8529300070, + change: 6.192756824893877, + type: 'yield', + link: 'https://gruesome-driveway.biz', + }, + { + date: '2023-08-14T17:11:01.638Z', + balance: 9836327800, + change: -3.895446005044505, + type: 'received', + link: 'https://feminine-honeydew.org/', + }, + { + date: '2023-08-11T22:45:24.587Z', + balance: 9234169940, + change: -6.109909208025783, + type: 'swap', + link: 'https://glum-value.net/', + }, + { + date: '2023-08-02T03:08:45.464Z', + balance: 50482640, + change: -8.19172924850136, + type: 'yield', + link: 'https://elegant-eurocentrism.biz/', + }, + { + date: '2023-08-03T13:59:43.292Z', + balance: 4904208130, + change: 14.849995655240491, + type: 'received', + link: 'https://little-marketer.name', + }, + { + date: '2023-07-22T21:32:21.914Z', + balance: 2065554380, + change: -8.90812263241969, + type: 'received', + link: 'https://single-humanity.name/', + }, + { + date: '2023-07-25T10:36:38.363Z', + balance: 7074928980, + change: 21.41129512572661, + type: 'received', + link: 'https://reckless-leopard.net/', + }, + { + date: '2023-07-21T18:14:45.427Z', + balance: 3596745580, + change: 0.13369130319915712, + type: 'sent', + link: 'https://ignorant-justification.name/', + }, + { + date: '2023-08-16T13:55:57.957Z', + balance: 4940343570, + change: 21.468565927352756, + type: 'sent', + link: 'https://troubled-adoption.info/', + }, + { + date: '2023-08-15T16:31:26.306Z', + balance: 5368313310, + change: 6.284740898991004, + type: 'yield', + link: 'https://sinful-vibraphone.biz', + }, + { + date: '2023-08-06T02:09:55.394Z', + balance: 9049889290, + change: 17.24372491822578, + type: 'swap', + link: 'https://linear-analytics.info', + }, + { + date: '2023-08-20T19:10:52.671Z', + balance: 280894810, + change: 9.847109070979059, + type: 'yield', + link: 'https://trusty-thrill.net', + }, + { + date: '2023-08-23T21:47:13.672Z', + balance: 3674929620, + change: 13.984326762147248, + type: 'sent', + link: 'https://organic-pencil.name', + }, + { + date: '2023-08-03T16:33:59.828Z', + balance: 7063405200, + change: -5.525222755968571, + type: 'swap', + link: 'https://that-princess.name/', + }, + { + date: '2023-08-15T01:04:00.139Z', + balance: 2022351280, + change: 5.126202659448609, + type: 'received', + link: 'https://trained-particle.org', + }, + { + date: '2023-08-01T02:43:08.459Z', + balance: 1681801840, + change: 16.510418973630294, + type: 'received', + link: 'https://bossy-satire.name/', + }, + { + date: '2023-08-14T03:44:53.794Z', + balance: 2530870840, + change: 15.648809940321371, + type: 'yield', + link: 'https://impassioned-front.info', + }, + { + date: '2023-08-13T21:31:45.104Z', + balance: 9628769890, + change: 21.316541467094794, + type: 'received', + link: 'https://soggy-evil.name/', + }, + { + date: '2023-08-10T07:45:17.519Z', + balance: 7429651370, + change: 7.555527552030981, + type: 'sent', + link: 'https://attentive-evening-wear.net/', + }, + { + date: '2023-08-18T00:52:50.334Z', + balance: 3301215310, + change: 0.747177058365196, + type: 'sent', + link: 'https://faraway-standoff.info', + }, + { + date: '2023-08-08T16:20:07.908Z', + balance: 9262014010, + change: 12.837662829551846, + type: 'swap', + link: 'https://fantastic-lightscreen.net/', + }, + { + date: '2023-07-30T22:22:49.349Z', + balance: 464918640, + change: 20.20089789177291, + type: 'swap', + link: 'https://likable-lipstick.biz/', + }, + { + date: '2023-07-31T22:13:38.198Z', + balance: 882609070, + change: 15.083553224103525, + type: 'swap', + link: 'https://strange-gosling.com', + }, + { + date: '2023-08-02T08:02:06.756Z', + balance: 5712603270, + change: 17.230609678663313, + type: 'received', + link: 'https://trim-alloy.name', + }, + { + date: '2023-08-06T15:05:27.310Z', + balance: 3032095510, + change: 18.399766453076154, + type: 'swap', + link: 'https://ignorant-stand.name', + }, + { + date: '2023-08-07T05:24:08.204Z', + balance: 448097240, + change: -9.545999596593902, + type: 'sent', + link: 'https://sane-post.name', + }, + { + date: '2023-08-12T18:49:18.292Z', + balance: 2490197710, + change: 6.249232146656141, + type: 'swap', + link: 'https://cylindrical-cub.name/', + }, + { + date: '2023-07-24T12:55:34.045Z', + balance: 7097047180, + change: 5.744686705293134, + type: 'swap', + link: 'https://petty-general.net/', + }, + { + date: '2023-08-17T07:09:38.713Z', + balance: 1614758830, + change: 17.577561591751873, + type: 'received', + link: 'https://gargantuan-section.net/', + }, + { + date: '2023-08-17T04:52:56.795Z', + balance: 8390280840, + change: 11.74086031736806, + type: 'received', + link: 'https://blind-commuter.org', + }, + { + date: '2023-08-12T09:29:29.953Z', + balance: 4530061750, + change: 3.450965272495523, + type: 'swap', + link: 'https://icy-beating.biz/', + }, + { + date: '2023-08-09T13:37:40.644Z', + balance: 4313041910, + change: 24.373829145915806, + type: 'received', + link: 'https://legitimate-high-rise.com/', + }, + { + date: '2023-08-04T07:56:57.447Z', + balance: 5033169150, + change: -2.1068390388973057, + type: 'swap', + link: 'https://linear-pinto.name', + }, + { + date: '2023-08-01T16:29:50.524Z', + balance: 9455547480, + change: 8.482989118201658, + type: 'yield', + link: 'https://hideous-fish.biz', + }, + { + date: '2023-08-05T00:18:19.468Z', + balance: 5346149900, + change: 24.13860564585775, + type: 'yield', + link: 'https://distinct-storey.net', + }, + { + date: '2023-08-03T07:04:06.504Z', + balance: 4851172100, + change: -7.146439884090796, + type: 'swap', + link: 'https://subtle-heirloom.net', + }, + { + date: '2023-08-11T20:29:43.613Z', + balance: 708300040, + change: 20.75598706724122, + type: 'sent', + link: 'https://tense-heaven.info', + }, + { + date: '2023-08-19T18:40:50.165Z', + balance: 7125903240, + change: 6.754635359393433, + type: 'yield', + link: 'https://afraid-den.org/', + }, + { + date: '2023-08-24T06:13:35.589Z', + balance: 5253690100, + change: -9.951394514646381, + type: 'sent', + link: 'https://wee-pheromone.net/', + }, + { + date: '2023-07-22T19:53:26.638Z', + balance: 7460417740, + change: 24.949184372089803, + type: 'swap', + link: 'https://sticky-cough.net/', + }, + { + date: '2023-08-13T00:39:20.723Z', + balance: 9492220490, + change: -6.812512658070773, + type: 'yield', + link: 'https://evergreen-preface.biz/', + }, + { + date: '2023-07-25T22:54:54.357Z', + balance: 2037309660, + change: -2.651602728292346, + type: 'swap', + link: 'https://immaculate-antling.biz', + }, + { + date: '2023-08-03T05:13:15.796Z', + balance: 5824103640, + change: -9.384545437060297, + type: 'swap', + link: 'https://near-trinket.com', + }, + { + date: '2023-08-13T14:57:19.569Z', + balance: 4860785660, + change: 11.9818445679266, + type: 'yield', + link: 'https://regal-victim.org/', + }, + { + date: '2023-08-08T23:30:51.065Z', + balance: 4520301540, + change: 13.407504328060895, + type: 'swap', + link: 'https://elegant-vengeance.info', + }, + { + date: '2023-08-21T19:58:17.287Z', + balance: 5847510020, + change: -0.0812852883245796, + type: 'swap', + link: 'https://white-origin.biz', + }, + { + date: '2023-08-22T22:15:10.776Z', + balance: 1239111960, + change: 16.282474347390234, + type: 'sent', + link: 'https://hearty-recapitulation.net/', + }, + { + date: '2023-07-23T21:43:26.441Z', + balance: 6238689250, + change: 16.95008099428378, + type: 'received', + link: 'https://infantile-cadet.name/', + }, + { + date: '2023-08-01T00:22:01.761Z', + balance: 9597797590, + change: 6.057171447901055, + type: 'received', + link: 'https://breakable-collaboration.info/', + }, + { + date: '2023-08-03T13:01:19.326Z', + balance: 2281452150, + change: 16.802954020677134, + type: 'swap', + link: 'https://masculine-shot.info/', + }, + { + date: '2023-08-03T16:44:16.524Z', + balance: 7931747350, + change: 10.092162161599845, + type: 'yield', + link: 'https://trim-cabana.biz/', + }, + { + date: '2023-08-17T02:33:01.425Z', + balance: 359045010, + change: -5.322901763720438, + type: 'yield', + link: 'https://bewitched-ramie.name/', + }, + { + date: '2023-08-19T14:39:58.873Z', + balance: 7289689840, + change: 16.130329166771844, + type: 'yield', + link: 'https://fortunate-chalk.info/', + }, + { + date: '2023-08-04T19:43:47.280Z', + balance: 3016172860, + change: 22.86063428153284, + type: 'yield', + link: 'https://round-lobster.net', + }, + { + date: '2023-08-19T00:53:51.768Z', + balance: 565733160, + change: 2.1270179410930723, + type: 'swap', + link: 'https://speedy-mob.org/', + }, + { + date: '2023-08-13T06:13:27.550Z', + balance: 4186946550, + change: 11.174687197199091, + type: 'yield', + link: 'https://edible-gemsbok.name/', + }, + { + date: '2023-07-30T09:00:41.485Z', + balance: 2978894390, + change: 11.23851340613328, + type: 'sent', + link: 'https://nippy-shoelace.org/', + }, + { + date: '2023-08-13T12:32:25.310Z', + balance: 4660696250, + change: 9.436725714476779, + type: 'swap', + link: 'https://unsung-quicksand.org', + }, + { + date: '2023-07-20T20:01:09.859Z', + balance: 8456941250, + change: 21.990910589229316, + type: 'swap', + link: 'https://informal-pine.name/', + }, + { + date: '2023-08-19T22:49:53.336Z', + balance: 7335924290, + change: 18.93318889895454, + type: 'yield', + link: 'https://hot-shack.net/', + }, + { + date: '2023-08-08T23:53:18.730Z', + balance: 9753887310, + change: 13.69695630390197, + type: 'swap', + link: 'https://grounded-mystery.name', + }, + { + date: '2023-08-07T07:34:02.929Z', + balance: 7338495620, + change: -3.475703609874472, + type: 'swap', + link: 'https://potable-father-in-law.org/', + }, + { + date: '2023-08-22T04:50:00.144Z', + balance: 3203831370, + change: 13.897141627967358, + type: 'received', + link: 'https://zesty-basement.name', + }, + { + date: '2023-07-24T14:00:12.428Z', + balance: 2410268600, + change: 21.874963556183502, + type: 'sent', + link: 'https://shady-cynic.net/', + }, + { + date: '2023-08-10T06:14:49.794Z', + balance: 8941298190, + change: 15.559496455825865, + type: 'swap', + link: 'https://hoarse-outlay.info', + }, + { + date: '2023-07-30T03:00:04.392Z', + balance: 7396618700, + change: 17.19702867907472, + type: 'sent', + link: 'https://married-recruit.org', + }, + { + date: '2023-08-01T21:38:11.271Z', + balance: 7207317650, + change: 11.396486917510629, + type: 'yield', + link: 'https://emotional-dollar.org/', + }, + { + date: '2023-08-21T00:46:58.250Z', + balance: 4918808070, + change: 5.468408960150555, + type: 'received', + link: 'https://frugal-city.name', + }, + { + date: '2023-08-11T23:55:18.759Z', + balance: 5963902130, + change: -1.989949174458161, + type: 'sent', + link: 'https://circular-incompetence.info', + }, + { + date: '2023-08-22T10:37:29.606Z', + balance: 9274577290, + change: 15.22795232012868, + type: 'swap', + link: 'https://vacant-readiness.com/', + }, + { + date: '2023-08-05T14:15:45.042Z', + balance: 5975846770, + change: -7.373732902342454, + type: 'yield', + link: 'https://difficult-poetry.name/', + }, + { + date: '2023-07-29T08:18:00.851Z', + balance: 905243960, + change: 7.9436579591128975, + type: 'received', + link: 'https://big-hearted-whirlwind.name', + }, + { + date: '2023-08-23T04:28:12.227Z', + balance: 9041153650, + change: 19.640102320117876, + type: 'sent', + link: 'https://gracious-surplus.biz', + }, + { + date: '2023-08-07T18:13:30.197Z', + balance: 9357065300, + change: 12.417318258667365, + type: 'swap', + link: 'https://silent-format.org', + }, + { + date: '2023-08-18T19:31:36.035Z', + balance: 3179192780, + change: 6.912120553897694, + type: 'sent', + link: 'https://amusing-story.name/', + }, + { + date: '2023-08-13T23:18:03.730Z', + balance: 3396137230, + change: 17.5823252950795, + type: 'yield', + link: 'https://smoggy-phase.biz', + }, + { + date: '2023-08-10T17:57:08.481Z', + balance: 4773039010, + change: 20.291502751642838, + type: 'received', + link: 'https://each-mapping.com/', + }, + { + date: '2023-08-21T21:08:47.161Z', + balance: 8451375620, + change: 9.090326976729557, + type: 'yield', + link: 'https://square-sandal.biz', + }, + { + date: '2023-07-26T20:28:24.791Z', + balance: 4361149570, + change: 20.422242095228285, + type: 'sent', + link: 'https://upright-mood.info', + }, + { + date: '2023-08-12T08:55:13.060Z', + balance: 3338459500, + change: 6.1444697075057775, + type: 'sent', + link: 'https://unusual-listing.name', + }, + { + date: '2023-08-23T19:25:03.696Z', + balance: 8948474910, + change: -2.5751917844172567, + type: 'swap', + link: 'https://secret-management.biz', + }, + { + date: '2023-08-10T15:27:43.987Z', + balance: 464345920, + change: -9.091949654975906, + type: 'swap', + link: 'https://unsteady-goodnight.com', + }, + { + date: '2023-07-21T19:56:15.578Z', + balance: 5117765500, + change: -7.576209468534216, + type: 'swap', + link: 'https://attentive-jasmine.org/', + }, + { + date: '2023-08-08T23:16:04.207Z', + balance: 8379460980, + change: -7.9690452315844595, + type: 'yield', + link: 'https://stable-green.org', + }, + { + date: '2023-08-15T05:30:21.844Z', + balance: 2840231380, + change: -3.1641928444150835, + type: 'yield', + link: 'https://secret-afterlife.info', + }, + { + date: '2023-08-16T16:51:27.599Z', + balance: 7218613590, + change: 4.1357435716781765, + type: 'swap', + link: 'https://hidden-boss.org', + }, + { + date: '2023-08-19T06:36:36.773Z', + balance: 6563180510, + change: 19.629470657091588, + type: 'sent', + link: 'https://guilty-flax.biz', + }, + { + date: '2023-08-20T11:20:58.049Z', + balance: 1287300100, + change: -6.198906524805352, + type: 'swap', + link: 'https://friendly-carving.info', + }, + { + date: '2023-08-04T22:54:30.290Z', + balance: 6411688780, + change: 2.1907601901330054, + type: 'received', + link: 'https://cooked-disconnection.info/', + }, + { + date: '2023-07-26T08:42:36.843Z', + balance: 4969864360, + change: 16.26245578401722, + type: 'sent', + link: 'https://outlying-crust.org', + }, + { + date: '2023-07-24T11:02:29.409Z', + balance: 8182378120, + change: -5.673653923440725, + type: 'swap', + link: 'https://serious-nonconformist.biz', + }, + { + date: '2023-08-24T08:55:00.074Z', + balance: 1701579960, + change: -3.4414722002111375, + type: 'received', + link: 'https://frigid-developmental.name/', + }, + { + date: '2023-08-06T13:10:58.500Z', + balance: 1042456320, + change: -8.591102588688955, + type: 'sent', + link: 'https://assured-knee.org', + }, + { + date: '2023-07-26T20:07:42.635Z', + balance: 6543119150, + change: 23.335167715558782, + type: 'sent', + link: 'https://distorted-ecology.com/', + }, + { + date: '2023-08-21T08:44:47.462Z', + balance: 3981878840, + change: 14.178313665324822, + type: 'received', + link: 'https://playful-trim.name', + }, + { + date: '2023-08-24T04:55:38.463Z', + balance: 9893684510, + change: 3.724940635729581, + type: 'swap', + link: 'https://lovely-opinion.info/', + }, + { + date: '2023-07-24T12:55:12.534Z', + balance: 7060813180, + change: 10.35112926387228, + type: 'sent', + link: 'https://trusty-operating.biz/', + }, + { + date: '2023-08-20T12:57:36.394Z', + balance: 9667993080, + change: -0.25340800173580647, + type: 'sent', + link: 'https://adolescent-caramel.name', + }, + { + date: '2023-08-23T00:30:11.475Z', + balance: 5431122380, + change: 17.010512063279748, + type: 'swap', + link: 'https://flashy-spectacles.org', + }, + { + date: '2023-08-18T19:55:41.124Z', + balance: 7212541150, + change: 9.085896057076752, + type: 'sent', + link: 'https://grouchy-tomography.name', + }, + { + date: '2023-08-15T10:12:04.918Z', + balance: 2716536270, + change: 20.51837938488461, + type: 'sent', + link: 'https://slow-runway.org/', + }, + { + date: '2023-07-24T17:51:22.521Z', + balance: 2147183330, + change: 20.648573914077133, + type: 'sent', + link: 'https://ultimate-elongation.com/', + }, + { + date: '2023-08-07T17:44:28.560Z', + balance: 8418826940, + change: 13.417102973908186, + type: 'swap', + link: 'https://bright-beanstalk.com/', + }, +]; diff --git a/libs/shared/assets/files/meta.png b/libs/shared/assets/files/meta.png new file mode 100644 index 0000000000000000000000000000000000000000..9f06b9ef46e2827f43f2aa1f764711a68f39ce3a GIT binary patch literal 86543 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%0A0)H=OyXb6mpu$jM4ed*puT2v zS+_KhIKJ3hs&*R*+4kj%)M4d|a%Zb~&=e*RzYb|J?~BzkpAyWsQka`HEGK?AQQ8~x z6*`_K(D@neuh&3IG_)jz?CsToZPdc$belSO%Pj}B5IVE&ZfX$pqbl{^D6~ajg!`=l z%j$|u+FLyJ;uhGQ5qc+XFhcQ8LK!ZYqaDD6x<$Qapf*>Vi4$BlUYK72)ViOCUB~#Y z43!a%vag@7VK)WQTmd%|z-Yk}Ew}M~?+0&o1;1&tO+e6NoS7-md7Lb!^^Z+HAJf`}R}(Xwf^JYTnjaV)OF5k%SzG$Phz5Dy)y;&>|KbG5f! zaeOOtNX5@Y%FzfMo`Z+h1rR+4BK;9qg6{yUXD*iy4(<8!N$;qE*(wj$Jz#3y+FHBf zl=)2Bs1wX!7EhC1sP|bXmDf&qj$-Db2nQ|?v(M?e%Vhxt5f%nm7|Yz8gIxO9xvN}| z{js*4fVz&^4NuHoeA}+=^2`#}iGAA`h~_JqM&%z@*4OW;he;bq{Ch(L`dkd5s+Xv% z_ch15ZS#4@H6Ww?@1z8n5t_@BIcbBHiLY>-f$^8@onng$psKc;dCb<^j?ky$&E2Q!FV0OP|Hf3%4xBob+VSzF)`eC=Jej>vD)}imEI<3K-^wQKcD_7*3 zGjV2<9@hDEWI7h8K9&R{~%4 zrW4=SP9rKu`64W3SmBE4ScsSZy7>%9mypn&;gPpr5@Oc7Ow5!pEW6SdOnGWJyHYFC z1o(tk^(>{iOPF$y@c#jw^34OyC)(D%zE28CYj7LNmtXy{#2w*caSXQ9b!R&y^pMzf ztyl0R1GbWwx2Z?C^d{$TA7&{iyv~G0vk6hOv-w})puFinM6;h9k>uKuUNm*qkp_PL zc03`-9xXOE7~0i{IK1TvN!lNV_?e{NolfZy^H;YG?s277%0db(|Jta!*z_G*Ynf@j^!ExFN{Vx!3qt0+)pbqQ*HO@UMUeK0^)ul_y?9> zMhhMHUJjAoC02R3DhG!{%eT2f*`22M83f2F>s$Ndo?4WVvFQzfPG+@(ILY7a?% z$8lL5I2BsD%3lXhh62a4eo*mlG4J%9KN`{c&R!*@QutdrJLG^kTI#Eh(~2pGQrfl{ zJ@!Np&aN7NBbSI-uKELnh2#uOgP-4&ZuFA2oW9+`qleaFNaVA9EQH2(E) z!+S0|Q}S=LTK0G|z0*nP0XXid+ubU<=}83Q*)D%Az20!u+ks<oHm_2u@^G^j`quYEL3{aWLwe>UmN=17V_ZL_a z79hd*9!nw07Q(eSXJgH0f(T>kOfx^8rNp>~?n_(M=anusUo3L{7rvC>uS^A+&+`uB z>nP=D6d3_6DqN|dqlc*j5h6?^OfN;>d@I6!8HrEUwIIQjny-CuR}7QC5lsyDiOgn4 z1(yo(o9+XM0>K1E2xnc1j7`?p8l6a)%=M0^Y1PGIG{C-yp+QMLB*6 zV>SJ1MbDFjk%xWfsZ^dOyHaE3lQQ!be`GL(k4j+*gT;$z1BSNjx-CM8jE-zup4n*3 z$}j}@vXq)bVXH(Tv#oHn^4auT`oie7y@=atMXtBNw@zPJY<42sZji4#EoNrjw<@f* zNzP7WtmiZSfH=DLDKsK2V@Zw1L38HH#~ysYNWHNtQ$hS+R8`eFhZ?}l!D9VPcK~3u zyB}zOJ391;VQQ3l(IK`nB=!h z$H2T?)?gl>PZR%XrL`pzndyTGw-o}v%egz5vO$C0|7iC4L$+rqF5^gjNcGQ44=uW;eFzMRfip&I zE&$g1@Q4OvpY!2h+G?c5o(b}}%7myk%x~nnUWjOI6)1iD%tA(e*;M!EA(;%!52|A3 z#~ymMiCATAR~@rvjo;Tnr!w4Hcw|N1@hvfE^~BIOad>};pYz1;uF5QF*mvLBQ`tZt$(}m_}zuddAltKfA2D6w_7%B^#`SyMA?v)etze1eQhviI)V|EkC z02jr;-i@9TO`dg|2i^}ROd!5$7E`Ua?emr;CXKdjruo@=E>SFa3!wp!`EMdQ0ya}V zX!bYfolGLJ*fUg#Gt-}_nh^e{*#0|%dl8Za9TAcr^XWCrMrLpOn8*+q0jj3Ofu!A6 z>eIee7dK>$Uss`&P}0;Hq!-W!wPf$GsB+YQ<*`m*z-%Ng)eulA>s+M1-- zKKyz~qf=%-QBPb6t9n;c-U%f4I=lT0D*9`QV>2|Dcpg2qJ%v)IqNClZ4WBz zaFS^^-LS51Jlu)8RZ!_DNI3>&JUM_?=jHG4TWh&!ae!)j!K_x9T#NK6MwrjXpxU%S z$`J@rxC7Bv-ih%xs%jd#aJdu1PHrm-9Y_-?=P=e4~ztkh|1JIuX%`^7lu~+Eh>aQ}P zLn^!M2-dJrDshWD5GMCuG;z5VJn8fPTQN~>aUf92HOw5*zqb_L(?$=n&qJoM(C5Id zHdyZ|l?O3r*0|0!RdQt=YZ>3!mfbyK=hq_{q zUI}J#a`j)C^E=6}sbI?XT5*Y#p}V9*{2Zx{gg9%Mf zHrGmw+5!xn6KI<}XljXn41iPDKC(_8xVE(lH13OEjIVj}?n(cRnA0U0Kt(oUR5_?~{>7vd#TJ4KpSSC82VOfwyy=-v8!sUf&%Py? zm`7IIr{|o|IcuHIeZ>?IPF~fr5bci;usza)805a=5AnXtIFCZ`g)d%4k1c4ibxn~O zNC1^sbZJcV>%D;K&0)tL_L?a9^#Gpfjvk%2KqG^ir?_h03G4{ zglFkpxAYq(K8DIrq=g4>g+Z3Si*7$goW83bo&yy}Y;j>05hXd&mh0;vMT$_j%W62YUH0<4M-^C&*L_GR3b zXsN0kA14Mce0m|XywIEq&(qg_muE?fVYE{L$@qFw!4JbUm%q%sy)6zE68Jby4mR@l zhX#tJIB`og3ZU^tB~p}}0=cPjcBWPy$~K7d!k#hx_`$$yV){|>66jX1K~*MCh?>W> zkRi}+lE3Gj-}u3={Mt|6ppX^-e5pXjZ5bkIvB>>WN@ z)!te&bq|=%nK)VkM}#CX-Aozy`->PphiDbzJJVuwR zI~RV?^eXWZFB{X1gcRLNCE52y$i8M1$jCbWZx)gfu^$(!f#*I4K?@s?#4};g8kZDg zZ5PYoblr=3^lM|?p5njyw3qbpl!wV*{x(0N>OGc_=7J5+OtF+Z4f%M;Fv}Y5rU#s_ z^Fv8{&9n$#O^vdcXOOB^l@4P2Q~~pg@O9@4hwcThMQ>U&ednur@aE$p=|z~*@-!)s zU*^jZhpUANvnOpO~hbmE(8L?uNTWi-xx?2(x+LeGY zS21hcV(nZo@xq4Ol9u__@f!Y<8kK~C9q4Qej!yQT%41}!DJHsO`s>8Up>zpv2UKIc zpX?>xiey9TKfAjgvp@I;Lv=EkAeApqP<%!q)867@Rly$A|Y6>27j!L z6KDJb!NE?qal4bUe!pIoX>rbpe>kIm%CZ}yVX=D=s6;Bq?q4_qeHil4e1Z!VOu8RzYMq`sQrTY~w zZIcxMQn@;}O72s19~vaCYn+Zda)^x~U52jzNxQj(n+%Q2*%hZEg!t8FJ*~wKXt?y| zVQJdoS8C?PD&T?=4BkMv1~`+np>E5K}i*0tm7^3-}idU5@O zb9~-{;>y`iW=R?9ac3TT)S9?x5hFTbsGJfFd_1!*|AO=2=$G!>8#nc_67xZ>ez)C8 zcGKGp7+R0+UeFECD&lELE;&hxlvgcBLjKzm9eDm@t|hA6?+$&8qAV?3LayqEN|&~; zt;44K2$xVQHdgB#;@hq^rnHFSfy>ORT#S*(BXEi=SmSL`Mod4*w5%fzsA$eALdD=L z2lBCdY7*bbBGgq1D6J<$)TE!VrNzzfbZujvvb6Qe*46ix#xCYjFx-t51i;eHWOX=H z8MHc*n>vDoJ;^?mde*H)R<}PleW24FN_#}sbEc4@g>4pINQ(pOIjF8iTH8p{4d1x= za0x+MMg*0D57ri%35Xg|#|@>4((eICGZYcLs?QB)8iL9GzkoKm^N5KsNTn^<-Bd^; z0-DjO(h2=D5#pFjtVcT~aJ||^_1;fjKGjL5x;Jijj>zlax7sI+;(%!rJP_as7NthfU2UZPQ{E&brZ`M88B1nzbOU&=U4p| zdCAYeDkcvWCp6w8CnFTdekSbM{=ym%V^o~O=hbH`%2uH9VJOsDrLnk@Sv)8;;B;}@ zJ&kpH=Vz}k`$umF*la&av{|L_(QqLDw5*`~azlh;>P1<@SfDLVglb3#4&m2JD&E}_ zQwm$T5gJ$ac3iM~MAEScLKd1$VGc&2$&wzCZ2+k;OaT4AgK%l$d5qY48%6qEv_G5G zH?f7gIAWD$UM^`#njK&^(*DY6=#YIdGjS>AIQ=E+?ycLmeln$5v^(`$oN5m4E9I45}g2-5@?|j?3pDX;~W$p6;zQ8L=_&e`jv{+XCDb;4C;NWKF|J70+?^10Sb30CqA#yhnIt1pgGq48Z6;ki_Zm8$nn|vH2lA5;K&;4uT*oKm4rrjEdXWoET zrH2s*cWb8fU0bBVx#)9(h9)}AuzlLGy9zMaQ-|NU?qU!ufxiZkwl~bQ525|x zpHC2>W=O_@GhBy&d1K27fs7iqFx1A}j@Jw9f}7ezUA5-CIo?yWn$GR(p+Mr! zU{7TS6*D*-G{ku0YT(5_+Z4VR%cQ!>e^hA%ktDtSw>?zCA`8B(CVhNQ(zI4`Cl)>8 zk~sQ7oD5KYbC!Ij7)j0!;GE zwZl5hr;bhFl#5G6qz1y?N=zk(Wcgv90Wc@4hwmD^4tTQ2;L^}UOs(&7!WM~?^Nb-i zT~Q^Kp|x_5t7NR?f$DT}&Kn(w;Sh5fb`XeZ7)O1Md)Ej;x2=rQM;#`_uF3Q~Q&Of@ z2*zI{(+TxZ#{`8S$o?~K6ZY5HF!??m?(?obunRxsQ*+1DGb=qXitSi|==1K3$GLFH z0-Or{UXmuA#S)2CEf)AXULSd!zs&UVD`}O0kF;3TScF1Hmgn7VNm&v;(;9JHKe?&@ z)I=6abkEPb*{0`Arg~NnD^U{ES#u-kaC%r`PFyM) zD;nw)hOA>^??z~Rt+7MHdMU#%6!Nd~M#RliAlMOVTtK`f zCpT(Fto~Rsj309P&>qc^jKcSt%gy7<&U<{DYIw>DH4XB&?+M%(E0bsbMv-rxOPPehRtiL*7qb4D&v)j z!kCSBI>d}viRtf5G*fjfQ>7B)T4h=eog96~B5**Ra7)EsEM*_>E$Ul+-SSeE7g2*H z-X8wZ{UeCSqV_5)%3d#= ztt`glEw3< ziDlvGx_aC#!vmpmyY9XPrW3YZ%ZHT4vi+dL;n#6c2CgDoI@M%BS z%F=t<78p7`SNKUt?4I>gOA=KT%f75`1#!&&LRLbo*uf@MHAxwW>R3>#@~WCUMhfp#{5zi;0c!{TFYSy@k$=`_+KO9O#s&KRI@_o^Cy z84Mkcw@KMY)sJGEqub~E*bCj_-3g=W?x{NB*(&Byzc3{;oqF||GOoBvl3whHk5+@b z&Qe6Cemur@Z`t#eXIq%k8dreJBnx+^=!a=BAqaP@m7SVvv$NS+bMEH#Vn$bj{*AQs z1?7FzRf)oI|M(+bym)VX1=FE*o!-Ig=m@eb+^l{`p>&|BSdOFj>dwxvNqVg6(pc6c zYbwDS+T1_x?-sk}J!3rXpS>bLaaXI)7ON!a^t0$^`cyiDMjt~b`CjQhJMP({I||B;)bb~#0!nAqqcJ$=c~!6E2|Xu(V>e-S`=cgM}{Sb2~sU; z22&FFU+Jc4o{%x5db>+oc6!g^lvbVE?R}Ek``LF0mniXvv1V$A_vc|^y|Q+XW=%1p z7}CEAio=G3y{p6CCx#y84=@NJ%*I8?ksNRXxxY8o^Q7xxCl!qTcis?rt|ODDY7C&< zOIBZv7DAqr&qOX2lr-2UY77EBCK(VpH~b(mLlFH#6yM@pBWyPd<$fhwRnz*S>x_26 zSjIY&2}yh5Ty3@G#Ao{X+M|e`j4=Q-sTNx31f;!E-BlAq94BT|0VJH zKxU`O1c~f_q5Qo!GHD;4yDdIR6TQB%f_j_1vqajt98=~&QHh(Gh4-%#m5j;guw&KG zUq}!AKpEe9zp|sRbvHoZbp!YkKb>x^T-BsJ^5f(!`4Ea@2a9zi35(SzSlO^ce`Qth0iGk7f+~NvD4ndsvt?s@kU8&}blY5QBpSnE> z&~^sh4*(l-W*^~F7cZ+2xq)sPKHwoK|I*ImddVPYK{VqQmI*DL8XUV2bL96W~ zxjr^as=B{Y8w??Mc4A_qkLq3GA_+#BsqV3|>zw2^_B1Ti)6~!AWXwDTAp1LrQM74c z;gn$91t6A^1(lFcxYHFq3Rn-b-IX^q4Ium>xq`M|_3t%SKpU-lgfreOuNqO~Wn#)n z#y^o^V6`R>$hSG0NRh7MfRc3725<3e+p3B&r0-4QqXP7E>?8_ZbSZA9GiVOdD*zO0 zPCfmxSnzez;lwh!z@QYt-NYwK0)B_)AJmSdX;~#nKS!&F5X;d1_MH9i|M_UY@e8%$ z`FSb_C0kzj5=S|%^rsbd!C9Va${u+2V~UuOSfI&aZe|Yri~RO9u`#D?b@Gt1y@3Lf z9$CuXpo1#(FFcd^Tg=U?ku)y$FQ1WPXB-C$#Lp4H;Ta|1Ju?m9>QxFLcx>O50M;1Lq9k-Gks;1=Hq-m+9uFzgFc}8z{D{`YCHZvF1CE_}y0ybyd7(_-hEo zO}a-J9U~|FuX63G@)+RqN7w{PsA}e>P4m?oUF%#N9n`RmggQQM&(<;I?L0goLftZ> z4bIr1#~8yE+q*ST!pzX7f!r!QnVfC^V}A!Z!oO$-&FaPzO3pe9C(S(RaY&QxDXDFx z7Xd|0hW9W@FNYr%jaO*UuJx2IenbXWsz(YLBvCF%B_u5u_fO`xdHjGJjr9eeGo1#x z?rK}5*;(2}&CV7qwb1@iD`8st+8_5X94>~aG-i#bCgnR zZA!1z@@jVrWVH+15_xM{*u?(THdR)zUOvF&XpD@c84Bab@h2tquXYZcT?e;0usORD zKRTJG3Qd&1Ez%NF(QnZ|S1+ya)GV~VQks)lFLXVT2}qEsG#nQzOxQQcI?E6E z(3x9OzSxBe+Q8wT-i1>Xg+FdRj2g1Ke?iC-g9 zm&pxjl`g1BZ@G~#cL{OW${M7s8yzbS2SCw?lBSWt=`-1~GxNzDHH3|}*bWSvcNPfQNwEM#RWUWaMN?MS9t?R<^$ z_^8Yu{5@9A#~G@p3ued-$X;y9iy2C_m+r_xb3Q-*_SAKEf z>xM&MSM^c7H%CW-_G&6)*u?7HYP8Ig?b2J+Pm1?_odxnki@qAa#@$$%<9j>-D>3%o z3C-I15}Ek#-OCPLz5yNXXFg#MR0jQ{+lGyn8Cr~$-5=6yHD{7QiVx9>9GH}=#(|({ zhs;v3eRs&#AyNs&PUTZwDwu_IX_DLby^O;h<~<4(Q5}bjE%Y=dl_W*dBg{fw-;jND z1NQG*{qTf+3*ks8n4OAfxIXMqe(pkJq=Te)%m(-<@^F|;`I}Du>>HM|>(@UvWyJwa zzh=M`mZLw$60`mBX`0ujv~uLw6O5D$KVY=x& z;jbz+k(Ik~Vt{#z1B`z)Rvm(7p2sZumq&927^-J&H_1*@l9WaB<m z;n3*66kSlm2qU9rWa1oNOdv0{=`GTME;b4JQ5>9jgWHo^snxd=&J3MS337jp2;@?q z)=$^bn=sP-z?*STBPI%jsUN7rG#`{ZE%WSKfeYqI`IMVonNG$W=lEAsD1@)A#vZ%v3zIY zU`h=hjnI45mXvNInKAVUBYgQw^-Y6m&Z9$9<<07Vi6b9^bSB2j`a!@Fjw>#N@1AxM zIe=iP+|2e*EIfYAvGgAv`|&A#JMhPcF{ufzCmP9-9**nX(7JpDYSxm@f+DaTWc-P}jz^i@Z$EAOh~1CF7ap4S6w>kxaFAHKT2YViF>a)r zSG%+G4=f-WUV`{Iek=)LV0f(Y1;Uqht-kpK9b-H```qJa0KhIopOP_IH_pM2=Yz=n5pNHD_IH zKoBU?R;@kyh)M*ZXpA2Dl20J3S=(;?1bMq(ZwsoRPOxVy@m_f?j1jC(I92-YcO7}e zUhcDiUN{&F)JCM;K#`BYeue*Ljv1y(%Nv>>+Ll;_ge(?i05K|tfE)R?gXiLO&)-I1 zT|M8PY_i_w#S44>TEHFsS~h!kqDve9C3{Z|n3|s{*eaLBHVVHgOIN3Xe^8Rwd{}#F zh_)2uut53;C@^3=c+*j^znj6gzZLf^MPINQUWb=d2j7=wVoQ-D>x2(FYsQMIj(*$n zJy`lw-gbT41gV>#vD{ToJuiV)DT#BCEAKAr6b#?ZLiU|2aF-TLE~?S%WY2DTDwV(7 z2Xcxm49(&)5=XriOXO0&e4B6AnO#D%D)iq9B$@rmNLtqD74cI>(E^H6nBvJSUJ^_@ zUFlQL*Fi-mCYS*XNL_L>=OvS#CkGUo6=x2BhwVjlH`K2!ct;ya9aqsu#lGeD^VY%d z$MPn85W)&B>~?m`Hs0v8jhkhO3*Fn)77=SjwC$FeG_xark)a63Ir=TBsEldYSZwFY z47H_6;9bv29Z2i}&kNda9xq1f*RImZ^xl{j8;B`gTAMaAf%J<~qGM zwX$xlQvN-a>bx2=YH981i@1jW%{#4B)Y9RVN^bw<-6dju&UFbJEqSFJV4UN?s+dSt zmAzbB%}JZE(BLqUv)2SZ43 z#IPMc6tv0Lp<3z!JdltkBF3yoEz6XvG9`TNA)J8&4X4Y$|Go%ga$p9dFfBlbZA&@g{DJ+p$cUl3|6DBX$#+=M(`7oCRHI-M>_ z9h1H`k9O=@*9q_9oK8xc^Q7i*UCn5m?W3ksa96Sosv->>x(yh{$+;~Tv)y< z>Jn`OXmsK0@hq#V*+6rcQ)T{D9L+R5A=+}tpc}f|b~pk$BU!*+xeE-T-g`#N;|Q5F@dLS_OR#_+$Z+t6qa1U3{{Qi+3tTimN{am-b8i&5)W z^J8>uqSKd>d{C+0Ym566E*SvrJc$WydI33OD`97*=}f*ji~D@}UxKk#$}bDVHkpqP z96$IbqubPtl|NBEg!UU#k>uAOn36aq(0>_Zu88cKyq5pXh|J?Llo5kW$2=BVzJnXo z*ar>aIJ-17+c{^r4EvK70z5UplvohIE0|Wqo2UYC&Q*@J7GS;wTIr^T7i~UT1wAN- zk)V!$GSif~n%>9!G_iL7VYn)r9_smOUp`3m4fx%N?o+}vvWk8Wi#jP`4xskyzr;s} zAWTOvmOB%Or|>DwDndK+`E|R2fBh+DXP5nWtYyr-5-U zjX<)3tK^!5Jf|ttz*mgHf#`QW4gI_szX!;TDBY*+2<;(Puc5Qk9C7C~-L|v)rG7mJ z+jvr(V>@YDaBGNuFlL!!ejVVJrLI4ZjwnrVOtJ2T@|47Wr7H>FEz1+pPSc95n!(2W z;r*ftY@A2iOEm|ta8-RDc)zbP%K^WCb5{R&6`(xRo=rqWcCH8{k|!h3Ww_nwSFB|C zmbL36b?$}o;@qu~-L%Q#ID=9Hy|@&7SBP4B(OII8qbc1L&84jgG!3Y7tve;bu2A0A z`i}b4FmU5euEegdrQhM3akljn$iAOKTihW>4&XY&bVsrM2%J9t12+Av7Gco_P9rTJ z*{y36vX8jpwaOKmTcUylH-QeTeUGx`30QdtpA(r(!qp7k!lpmU`mwwDVy1)1zrV&* z)geNqkDb|Bg8JFq+qu{F6W4E_xRqrSNVq8DV6akQ%(%B`1Tv6Ony=1;wd}y3ISc!z z)}{J>LSi5cS`nG)0IJ>CjpYYT2>!ud9$8q^alCgdJseNxY={OoPX>#a=>kSxzO33x1N z0}wfnWp2~+-ySZF0@6ce3#tVIW#EYUiBNO;q&MVe?Z31EztS>XdDH@jV(b4Lf=w7B zAC#1g9vnPLSqlD$xpavm2eOe5W)%PH$9+|rf=v+msG_bR@A@IRlG=Su6^pX7lFLs{ zcTPxtli)5rZfR|D$u(hd!uW;UNL{MZCqwXRiq@V`qXfG*u*ZD4T&piN6@HjDf3>QF zi{mq5LG5s~aPtF;!|xHxp9Mz0pp=)VWU^07ypkTFa4M8ll7hbTrsm7zk+#=k0aED} zGtdNVgQA<5I#t4W)0}~=ulpqF`qlBWr61i@0V$j}CaW%`I0$(VPLuV>jWIDMbS(?w z?eA2%gtlA=8hUZQ<-?h&d(8_g2N$|t2J?NirD?l*Q`FVJ+vFYZEU(6UeS+Ns0Ad1_ z=5g=Ms4S74<4FLT`M#D%X-!A-E~qGO`oWQUOVNVf{iD+v@j6TI@PX}|8wOFKlyy_{ zyAQ4y6}9fZr)7VYFD=Kmc}PW0_Wg)y&YHWL{E=P!;BFebPmWtVO{WsX_$*3vG!3Y}3xePOXWds5(N zCOt#HMSvsVRG~`XRrCV=N%r-U7Z7>J9DhRO&RflGG-1qN-Jm*rQDOQi>$3PTu7dt7 z*18~iW#jlay;)hv>iR&yoO#NI<*SRC=$s%14v;d|k$;t{E@&bNkSj-CCQqk}`+4N@&K>2W}6qkUq$gKC3KU$J#URG48Y z&bFPc5A7ZUp>lowyXu&dkxL^^chPmQo{#0M#IR!HF+oVs>X*!}w*jhitJCGXWZt9Q ztERs>pd%*@H2pj*U7qxeZ|{*9<1%NN&5s7tBXrtUnA1$F%L7}{0z~Xpboq{d^8FeD zTJY-S=tJ7I#y5Y2WG%b%+_VFp@)I zMvq2$Ej>b`C>nwpJJ!vtvT-%u7JiLf<|(+(|D*x>qxx%FPV%U}&x=B-R?7l~`Ko@8d${1n4oG#Zt;3EDTWRuO-N)*#}FzGRwqI)02Jg?vU}V zO+j875E=x_xd2}aj73m4IjB$Ab77_f_6bR5p)DFe<9nV*Yi}km+t`pLb67@s>L6F< z79?`@2q3Uk-T~6P`w_f9CKu9C${jId$W|M@R`GHJ-DNa@O z@tZ$j%>nD2&qjMdMUYaYB~XVq1OO)&G*Rq5Z*fx;8L zp(PJRUqZ)|HV-=P=`|wLN+1yal4jXS|AE11*+gSFH^>XKY>lM|1V`KfksvsGNj#Fmi zx%Lsl*-!q!jrcp0@Xm;0kNFC}-19A6Ppfg+CMblKua`|d{&+boL-<`e}7Z6m6Byj;g7KBvp^JCO)cB%HZ^t{ zn+me1lQ$qHqAsewS*|N#BWeaRD4$XXk{>L8Z&x&I+8*Adg+DYsdy|}Rhx)1BG)4*9AA(ou&#t4CYmq`OaiS`JzZ@0M?wE(@b$jF}&Y30O=DV z`mN}L0Mw%}3d~1$b~nJfJQLEM)5m$JigRq9ihdO)!PXPr#A$cIsq%kKeT7>SVE48G zDxe??1VKURMrx!(I!DLo?v3sg1f&Mi4bmMWh9H8#=yx;Ft-~Zsbp6ld& z?)x0H`+(7v9C8IUaY$IH5f=(g1oRMkFycwqQp>kdqF?y1wO-#pG<1gkp;+Ce)QiH; zpS*pu#wq3KMcAdM@)XNy)4k9p6X>Y?RI7#7Ditj5WNFO_$FKM?K?IJB?UUGi(}z<7 zALcb?@`{D-ko#G4jf)`mDI3;$C$&p2zGTlXJBH#CI@+X8Npm@Sx9B9Hyx)e2hHUN> z=07;Pt@T!iqV$xsy|n+uG9ZsUVnzKlT8K!RF!IgnnTtA!?93cNt`hxzkpK52XQW^xx0I964@WuJ7wnY=Bqh4a@^QmYg|&tKTZm>G5FU=?X`8N72KBeP}N zLs!S7wUAsHR}7I*3kye76U>n%oJ9wIKJF{~A8W}aL8XLUx>Ig8Wu{oqEK25aS3Z0LOxh(@CyzNwQ%r+k94{FqFehvG^ z`GHVr!gx6uh$(?2LO&H*IWKsTiG7)SqIM)_B~<*kD8ds9g%yop`2M>~^A+W1ac_cE(nD%}0D<%*h6=A*MzD z9VM4j&#z8gRvl!Zp}moq~#RuqIn--{z`g8{X2xRajN%jmx@#gqBoOZLF2o{q!CUB}JEX z8gqEQ%s}k2F8v;?E)$uuEiu!G7UrlcVGG?PXc-HM$?^Qrh|Z6io6C>RDq@wF9O7=i`#s#%z~h=(p{{ajg|o zy4_8rQU4*{<2%d2u}XRKxgQ$1mhvLgM?vPf*V8vH760>^h#GCDjpnAr-AiZP`MrcH z0PURmr2JM6apKEaR7d24$~t+%$7So-Y%y0}=Mw(ZyNFyl@@NUdJu+_)-dZddaL zYekhPf81zsCqVqIXx9)&XAd*hio++V;T*|voOyF4N^VRU`ftvEO{4H>W`J16aR#)q z>RZuC7DTk>%Kk1(;_F;W{Aq{abECBOMpen`=glqj+Yfweum|rkq7t**Nh4wP0VPrH$r&y?jN!DafSr7q7O#k_#m_am$F{SQu?5IM;(=TKRt8QLR zz~fC${NfU$^R(p@417iCD8dFmOKG*C0#rkrs+DQ``l3LbY5M#`7;RTqxB#{4P{BD2 z-(QbEX@6j+t@G9b(gg1F7JV)6XKiq1(fJ6BVUmwlJkS)>zOYwM*IueUwk{?+lTdoamsWtZnfAn@b*! zXLtn5zrPCnEl=6q>C2};TkLN^BVUlxDE78(J}QA?+CYxBv=`jFv{aJ>qGzelaZ04( zhxy<#wf8kBSsp+G5q1;QjGZAkb=J~JH>xKxDMht}7e3a5ue5bgvrh_@Gk1M0RElj) z#sXNM+5&{)7 ziee(n#S`w8Tz;e;I~EdKTbo^NELEWNI%j6R98>AqdCzMyTKI9sc5PN&)HEJG=I9DJ z(ah*%TtNQ$L&Ce)TRLrsqLqtt~Uu=ilEnG+i=t5}}t*tkKq+Mgq;iTlMbn^0OO5^h=~W6um;s z{K|?-%Y8A9y>-S=w@kmV?@iAIQX0kh3g@pkU`5Vdc2w8YG%HYZNSix25~p~FW#YGm zebuGhAQ^r_PO2omB73pfq&{YhVjHKOy^}yZp)YZzoaLRQaYp&C+#$yR7;=tU{*G4WF~b z>tYmbYso-1MMv`78V(#>{tnCCZ|0 z9_%EAfuhtYNI9;}Vf8w37`HTz?*GXJ-Y8N1bJg#!C55NLA%>qgXtVsP z(!NCcRHSBz2&hkXwJ4C%2=y%_<%D3hRn{?$D;RuDLQP2xzNzbL;lj-n@^R^(oCsFZ zZC@Zx2&jv0y5Fui)_+nFvdy<(9mFWZFro*Iv5^>nYLypvPS$2Yc<&VxK8HytRqji~ z4utw*fG;4`J&!lV>KM61AccL;7h_c8+t#lh9XI@X`tOYsO=rHCm(3WX0ZO2xItooN zVH6y?1S*}Rwloh(;^je$fSAd|Y}|o$UA(#Y8dF&A3nXHh-Sd5~b+DLDmC87sL9$Eh z1{#E!j8|HHb&3~EdaXLGko#B{&j#G%mNOd^pk1H471v|V3Yg$2cG-g(2TvKZJ1jsT z4Jg4j%A__G5z@0b`(`@ycDoB+9&?t{%-H=19}zC{QMvl}n}0Ag#Xjm2oyB!wxq>S; zrJ9Zz9I7qjoJCLyodyPba8UO*Jw(V76qMj!BpS6JZ#f9de_Qf`^v~^Ph`pu4S*m4O z>y@PxuIIDWUjh&LN@NPl z0GdLC7|!L%nW{~}&#AMzLi)}|8EE-|3fNl9}rPoQG^-kB&{YJTZ>_%C;Mk`!4%bjanh>{}^igwu= zqOvT`st6*;kgMx^vpDj>2kMIdx7fZ6m)xl{CI}e|edm))Ez@>6Lp{N90wmIi4yISy z!}it)gNR+FV3~_3vQDUZg+t$ubTsHak81H#_J32rjG?{W;!-5@j62Ql)QGJq6zM(f zx(}$OTGUS+B$7?rrP%Q)w_wn4zPlRF>aYT|5g^WhWH^^2!s|KbcEdx0^5HGhW-0Ig z$H+45FZMluhm?DR=#A+r)ak=Q#;9YagZe1(d!8&tfzk5w4}ckoHtr|Q!!064r;`ds z)?i*Xq#i|#=r1~$AB*Xr+|xRbom8!E`5i~wgc2*sB;b8owqZLYse|!2a(6f$KV3v9 z&$p=rY?@vz!|b`VSx+KXV!1Us!R?{m`>2+m=iIosF$sut|+F*|G}2-7uJcT=Q+XinF-5BKnIN zQ#sE_qlKglAIp9RHORKy`&Fo>OWKYGwgqsFX{I0KnhsBUMs+m>u_JsTtHEAm{Qd2f zYUn?Q_$+v|GOsW`*aiSvXGtY@N-`=Ynd~rzLeifQDv)2>qYf7;<}kKv8>Dk;4zbFP z5B1tQjMqd|=zaPkrTOQOAkv(>1q)|)suQe$mKN$XmfF}Sem=V9R)I{p3fcm!w-@a^ z^3S5Y*+Wa-#lL+ASD5!z$$vIJoDL|aUnK7@Vy7olO>bSDsvW=NileOwW0yPa+YL_( zQIXzZT4bxWS;xlzOq5zbASaM@e<1SfXpW;(S^$IN$Vj0@rz=LyMwgSWc z=i8xa0Ls4IFlcrH|QE$eank^U?UX6wo9H4OZODd-ns1%dB z?BzgQJu#*~21+u%&Ya?}Rfa?`1h0lZYFkN}?gp=$HKKKI8>TyZ1r&7LZ7R$A%+lXVh6W)t8&xt+%GwfdK=BzAxHS&Ot56L6WRX&t+LGT&-86d{N^G`il z^E(|Lz^Aay$?hm8HtMV378Y?F$7J{Ol1{Pfpgh{py-F|Np>O{8-f`}W7`C{u4R@z} zeAFQ^(safa8R^Nj<7#>J19+2uYECC{xWrvbyt$o}w6_8b*C38?7nInn;a=cP7G(po z(E-J&h5=zOX=-{#aKc;4TwaMcMR}(lc9InBY9Ex=9LEnLlY@R`8$S)-n4=fSG~CBf zj?o00Ct4Gc=9r#e{uF8++5Wwh0Lp;9U-7zVB6nOUV#v5m+0mHI)@4n$lMgy^8prmRHGo%p2H&Htva{ zn*@VlOk&)J>~uy+Ns%9Zb%O=HTfYf%NN>tnb-EbRcU>*vNbv3ZS;hn+@G)`WLZv^P z$i*?1a2GQUO`uwHqvtDamxlBNLmw;?*wn)UOq=1Z(cd-H9>`ll_p2CcT=5gCJ|zlH zEWh6c`e6L<*m(D$)SwMZD$V;DjS+q!t`5V$(q!J~x8LoRw$pxGc^Y$|tXRp^6;TXcoHX$3sQO{E0_ECq#Ep9OLbc<8$6{Ib**;iTOH^>Uw~(nzr)Y4aq#Zj&abL z10dzZ`jh^BL&6Y}xakWa*~8tvb3)r6B{J$2Xl}~*q3e6}V*f@T#^e`03JP>s?bCZdi{uM_6a$n-ooJ;5HvF3Gsk+ z_sEMp#;z$+R4 zWX!%f3Ykof;7e8H$@jhZ3X+iEidk^uR54R&EO=(oj5nPlO?JAsg zz`9eCg=dpu*|MYAyo+IqA=hEdbTNDZ^TCMi&=0q%6d`txY1lJqSXZna!kutSjtsfr zG}1>?89BoQ?5N`(Nud6o6F%Wn5OgC>b3Xv_+nxQ6krutos0aDhFp@%p5Cs_C+{Yon=mOBE}90We_LM5sq}F^ z&^WU2MbZw~E`h*eY7I{-;+%4>)OybXMAIXG>JvU4g$I_z-EAMDGwJ)zC9VPVur|@QrD`1> zjP0=Psr}giANK9@(h=G}-S7aP#hqO+Vk>N-J~is52#CO z;*`C+@G*!zEA*l&U5m6&oS7#oo#x!=P;jMP!M{R0Q=VR4jvF91k9@5kxToZ2cu7$3 z(sQdePddS8v|sv#TTxq9i;uV`)9A~S%86O+u9PRGr?B(G?M(xM{lb`&R$GwpWp%en zKoJ*qk8kfABlo4jna?l&fM*|5c`K#yX0IP}Wd!zbYL({EAK0~oE3V@3@Xh=AihDCd zl<=B3eUn!{x-UBZJUh7hR$g^?!=V`w?7W*f)|K)U7NgQzh1CeF&ap(YXRIfTvts!N zxGbg|Y4~ltlJKUF6kdtfpeX3cRL$hu$$X^b7~u#))xT>gT$dn;WC1c07Df!ci)?K$ zV4}xsV{G!KcS}02UDy?6Vx}oEzB_?x>iZ|+-di>!)PKL9a@fiExv8W~)1d>4&As-# z9&{Yb`j~4vBr`5Gidns|<3)%oeAh}yY_0wA(a&jY@8e&L?`s6LwMfDseLioSBc72e zHQJJ?V`gCp36$rH1Q+dy@`8%r`@nCtgpi-EAFM9}9W$0+X_;nP&;^rr4Np&wW4A5^ z0BAA|xNXt#j-r$?VnKmuS_b21+@ChJkj7%njO2gm@jnAP8ZY?xYxhwNKf$z%=OM(i zvAJ&|RB<$dx_j<(w|umX0hGurh2dD;fd|KZi4r3Nnh8{!gN)wJSA0v+KL#RNtuVhz zzonpwd7{SMVZ)@Lrjl44lU*;frbHvt*IgAAFeRS_x~jyIm`E>Xyik8$yMp|F#yF`~ zx5M!wcV0RAOkK_j$zmF0rsc=j_-d<=JM#1nbIa z%X$boJeEmGO5^t_T(A9puQLf*YcHX*V8dyX0;po%?9c|0V0;Rc#r=c~+6;SX;eXM) z%kZyhHwenTyj`5{b2Y|iqPtKee9bMBoeMGSJ_;}D9!tP@TbhyQz;(Gp>0`f?EUqyY z(FX(7aAbK#mJEqn-!*4JVo|~3!>H8A7RL0Y{zQ+3(BjIMo+&R}MU?3sj4ceuBi$S8 zGg=01ZLn+ubJ%UQc~|pT$q@O!B`d}nl7=O=V;u6HZPHJ28)@2UdHFFY=E(_P$&|P2 zXv=2|*gVk7{UVSv0K-Qp|1($?Jl~ZOliKk$Oxk1`GulB$IdQbsf=sAU(TVY9Jcdk+ zFI9N)`LftUduZn1=^5lFzq?x;xwdW=3so>AHAAZ5i8z+tGIrY|st6vs@Rb1i8WLrG zTZDHR|A_{_L?Ip%6feX#f_H(H?onGuT%Ck)N~rN*uq309_dtqMQ;d`4(@lTR6MuA@ z+%3X|5d!W3zwznY26GA8>Q}`o=6wD|9luM6&vg8Ub#ZUd;Xl~Te))BWA_m7$Zx-Ry zsCZ&wVPwY}xcJBbN`o5WyuT1>DVFJ`CcrwN-yj#`Sj)|EH0Vdf?`{FV3txd{FYhxx zFF*#r)*G`2Q1M$tAe7$}BKyF>)|c^DOaWho*GCi_U?tPB+=@p7Vfvx;RO(+j{p$>O zb_;rMdpE8-S(u!5cL3-os(SD3MY$Yw57@8Xx(s~gCi~d#g7*(Cyhk2Se$}!YFha~z z_$44MIr(vhL_-&ge9nY0kEmbvjsQe2=J)l}B}@2wGz# z7fG`T=@c>|MvjQ4WTe{%1hAVKkuckpX&*|VjXb`gveC7Br{eOeHMx%Fn{I&z zb4Wpgyr-B^y3Ms%r)y~1&Oq@J@SrK0wTDuSS$pABFyt?IbMO9mdUm<@!tDVzy>9p2 z?$F#|TDZk%;SZi?aTvu}k->T19kmZ1m3_dsZbZ zF@7Jqkw;IC0+IM`Z#CxG_qQK_;120Jfd}6nTiOP~z?|}YnGvlMzzxa@=^{8b)wg5H zM2xpkN`B16Sj#5C?IL@Ubct3R_3e&4XKg*z7q{$|)Cs$ycOF+ViH`dBR4hE7->$Sq z(qBGHhl?Dbh;M*US;_FED&V(2xZKoVM?X}XcXJ|-)$vlZDUE4!Pybue z(NI3c?VR#O5dcPcJLf{F&zMhs^;ze@JynZ*oh!1@0Z?~nHv|x*Q3=; zlVttK0Z1Ll;Z!pdqSL5Jl3k!SsblIvVInsoLUsa}#*!t;tOK%dwz)!-~ZW zr{TpzC`ukL>inKbu8bU!rMf#3up!nvO>kjBH{cTxx;nFl5lI>)Wt_bq1rRmL{aSuk zC8#UeCLPY1HYj=ehS1UJAtG~q8$#LlXlduaE>4zwQ&~646O>MX@rR$|snN@v`$z9z zo#zMPmxV7}vL9|^0H#A-NFUQ^!;+R=Q~p5&_a4cf&L3+puhntvmyAb}B=hvtZRxWa z(!&inLS1w+f-Zi%t|-Kde=uDcJYL-s1-PjOZ8=3>@A=WxUv`qFy@qRLhK4yT1{Av$ zsz0As;JLYR z(z*>X+}SP!X;!sM&F&maNAFx5QpBFtUiO29()7c&P)`mVJ{BtSNhHoGH6F3uqv%8L zcsb>^mFGi`h%AUIz1sdVFJ)P|O`7s8^!ruc>3DA`yuDl8uuaB|%1CKZ`vt;C`?aU! zKO;8K^xZJ5zr8(&+191N=m;gWKpo=3mMG!_=%Nc%yDe@YWC&Z`2e-H=q%zk;`m68L zyYa8te~8M4Z$TrX3>;4^zmb(xU(?-HR5|wo<24b@5F^Lf#Z#*O zSitt=xH3P8X|f&W;NuwVJ$7E5mHXtyoov7izemI> z{WJlaR_X2oJLQVkdJhf7=gn+nmD1j=2Zvs|35YZIy+I;||7~n+vYt*g zG6O+|v>(VBU7EbiY=R{@v_JN|gTIQM6 zZa}9$hYUgeV`MDFX2ZaJapo@2>6XQnmAASW$sgI!yO}#n_Cf#WVnC}GqNti$k+XS%8H-td&`h&1 zt3gebGyR(lu*}Up^RnaO^*c~)yR*JPwaDpft=wmveaEeh`+fbA6hx*SjC5$)9|Z*H z1g~^kD-5RMNqI%FNhx&Q{*xB{V&aZ9@9}ox$k5N*#a#B6UnSoI=bm4IZLLRK(nhsq z9&~&gu`mZG2Nxq*`g**E!lu1#J=H-2pNT+@>dz4ntDTq`TWk$8&ofhW!oRV`M`k>q z^Ha;~Bhf03g7FtbuI&9PlSp<_ z4ML@rW2w6>S2`Jy<*Y;chZMV+Ag5NNb%5bFl)L*yX!WIx*n~XfO0BQ_A+h+ zwor=?r7{B|cVDVyBCB6}MiM6Ux}%MUGX$>IaDM>U^CV@TOd*)V(5J}KJrVUDv{Dx- z1PnzLk>WF59(GU$gQI`toXkqT>iIWXx~B=07m~r7KTMjMgSz13@Z6-F84*%SyZEb& zjVm9xd|<^c8E0GjR1I1k8KWi$-IP6wc^T;x?uP@nTY-;}?XJ45o{eSS6)Fov(_FD) zMm2mPCB*Mr>*!if_4yx<4yjkOg^>uOlW!b+Jh&)GnV`j_W`Vfy53&2D%;tv%Q%C70 zx^75E{Lsle(ZYCwWnf7i&eG%XK83LT+H3PR0iO0Juq^Z9>;4c(vte#9F$5oxzy#=F z5@RkaHTc86y{Gtd*xU7bvrFCOe2)5{0}x?Clx?qF#um=>yd=m?z~B=#L|k{RooKC0 zreF8>*%IQ+*18w}d<9VJ=%4&7YlXKqvW#Wuy`+YvH!|nlQQ-#$9nE43f#!lsWpPOw znE(f<$UIKu^TTUd^g}21lFY&Jpzl`^%!A96#So>U(qIf)!2E;5i&BY(Py&R)W-C2& zQ`$2WV@$C2kYcdHhJ5BW%2tIyLS1GpSdw9N)$0f!k+YUum;M(>5GTLsxjS#{m`{gp zSNPQ*!m&Jd?jOIOXI#`}L#=2ZrRF`4E2a9PI21(ETr@3dCU~>2`D5O!vNudE$HVch zhOe2Wm_7&u-fLV*8lX~9?ilAhnk7yk=HNWjIf^L#(G~y_!KTz~R|w=%{A_x$io85y zNhi(&C$PrBKE2Ykzs+??{XhwP0)vkB)B1%6^%;(h+m|t%ENrKYjuST->FZF(OZB~H z)t%@)%s(lHQN;b>U)>{|;yt8)?=YW%~P_?txlIaQ5BGJjluw zwX;7-&P&;Fi4U80UL*GIOU3-4X0ssKy_=s=L>C*GYW!=G+3zT|;@k#-T+Ug+@J8;F zWMkIzJ#X;45-f!R!6OgOta)<{A=0P{WkI9ML@$y!+6jfNPiWf3niZ*|1t|0oAL@^> zCDyFm3M77YUMt3^6PH!da&lpdOg>%E=Tls{3q z2{^^u5{{(-OErAj@cD1xu5f@f^WDK!XZ^igN0Bt~qKez(!PgtW@o(NX8D~qCGxAiV zQ=RR3W;FAKkXY9Fuxl=tKFgy7JY;haEm84gWbR36z__(+6;kZ?euYv*?+PJXlG|(7 zufZ!JQ-6(xk^E|LcW8X|E&;y_N}^l|Af(VPU>fVN2zaGN5oI7AJ8+$wG#Z(RaOS&7 zUg|mTI$xn2;ke;xUmQz_eEsz^E^{s5z%uR?7J*olTh)2=uR(rQY^f>!Qi~;D*EaPF znE=-8rg-ja&lTioqariQski3{g10j%9HoCnlQH;xaJKGDQ z&R~S;?GXhLcZmt+R(kmC51#Wef-}-Lj{N&>)#z$QGCPr5*2~YwOww$jPv3s~(()NB z0FKA765}c+Nnog6xU#y6^+I*fpL1wY$az=&jwdA7%DkMeCBz0p!4$MLRsI>76|qO$ z1sS26z%DW%#`H~GM~Ya~ikB%==7H&;LcJ#Kddl~%X99VJPkKUBgX&VNIz`#AdoGk9 zv2)m6bRK%V!l8#_M{Kq1B?BMRD2*7d|K=xp#L-XU+iNeL%Hl*jPX*%cM?ETd@F zC+gfFBR~1?uM}H^8kMUx>|fY2^f8zz3;nowb8;c*VUX15b@h{a=u$Ock9IO@9wduB z;^(w)+`^w?Tb9@D);x*%EdLFtW^>KsoV(H?rfyZ;lLfZLPxL9+%aD;U!e6xJx1y+k z{ytB7TJ3xM7P*a9IRUJ|stP zj^RyBt0Sb1Z^N>c9HQyfjngE6kj|rC_F*#VR~Nk|qw7_pm@j$f-a|E^)UU9tOq#8% zDEQrk)|SD`0_MKK@uKXCS{STZL`uC>GA_zIQcEA~w8!T9{W-cM=9jU*@klqO`t%TP z<%L1kleh47)R^X6yTox9FzOY9R60FTh*e+V>;VkD?ao^A^RosI3l5^F2$rYR5E`G9Q= zdDiC`?#788(LjLrH64yC4U9zFLhQMjGO$eG-b^-1{NcRB>MB6IFG~(qeeFgEJr6>H zhrnPD0a5}-BSgOS=l@CfYN=OSx5C;k-u0YGQ1>dh|MTG|V4WP*b5Zw9MhVWs{=hBP!;Vadqi) zuRr4AdqupiC(<5A%NYTOxPU&AOEETG+CmJuo!ud(oue%8Oq- zoA0D)xc!u~Y(y^B%RYA(eV;EQ&jmUci}c_#Fk?1SRaOOzib>0O#VD($_Me-1SK;e@7sDBG#S19N};FZhh5x-a_NHLSNO<g3kiyev zeN>(?zo}}kMlWsz(OY+Sl%3d5;{>e_w^b84LY@=NG5ToI8in0CfFtD#_v^i-H7W$u z>1ha9ZXt;ojk`qrXGHe(Vf@bZj3mAEFHkux`^!46x@`b=ZmI1>7Z!^+g+DJUX+;NR zJjCj1LN{7vS?=4fwy2Sb*BZ{5+Pa1|zu@IbkM&(yXY{`QS;@@$#V9ot%dsz23!SjN zG|Gk49W#2$-~StcG;Z)wfOyh$3W=l9I=c4!sOlyDci@ba}lK< zO+*ZftG7?z3%#O>(D&dpeD?@joSD)k|KLC^7y?u&JNg?t2Se^c=i}-+A4Yfq_PdRO zS8)~5#Z{IQ8;vv+K7kUix-a(I+gNf-cpHyk5u8=ijwm<_d4l29@&)}+0rir-E!^Ap zxRWDIu%5#gK(^n}yxP(2oShni?lsYlv-=Uv@AqN;+omZ(rgi#|;`@>Vf6ZDVVxK)3 zH_O32SmFgZ>wxzD_mXMSRi{L$56R~*6Rg!+_%FMv48VgR{F&%oetc^lR=R*c%QDwd z?Y|}I>MEWR`^Cy#Sb(G##BxC`VP;s`mMyR(+@)OCTzk~y-Qj~8Q}x{Hwy!{oUVz^@k|BI=XuD=7B&NfBZNw1LbI4v^ z=pjs5DOC1Ao|=teChO=RhypMZ@8hJplw#pi+)=B3>>#q@^7DTbMfdm*fBBy4PEQMR zW^f=v!*YvsAl%1lFwup;pibhkYFKoSE8$r5lj0UceoLI|E1EGTPTX<&h_9h-HTSc> zjdw&ed3nW=gDM1BLNTy}l)kf^hj)JpaW{MAZBzGkUiHWGL7kFx3$Z*_P|9ZZd&?qE z)}PI?(XmsM_tQ9QZ=Wj~lcUO@9Gz@y;z6Kcc4Vb=tqc`fVy(@r-2~?}(M(6Z5K7ECNO)CwP`ITjjsKWBkjcf*5CTb5*MFInlhWVDO^X}Rus82oMo+!oEI z1T*w4izar+Z9?fSEX{8HlJRT8vWw*Md`sY;mAICe@4pRR(07L<*5c^Mv zA5YP&2lt)dH}!ISAYmq_uKXB#JG$}uPEt~LbBC7S);#fPwGi$D6V@FMq^XwiH7@g$ zj#IC7a5Uacb(Az{@oP~7auw570UX8wE;k%McnR5S4i636mTD0=i;*!uwqKBkl#Rh2G3QQu42^H^mb`cStBnqL5m+aB zkcq3`Q4GdX*|M*ey&QbvoE1vL*Kvr;hLUL5lDMhTm**HIfh@Jt`|&%NaJ;ONy|FQG z^1z~IC~;du_hBZ`^eVng=@q;!q)nZ0deumY12@lWPJ@xx9=&}a+=>psntjHk+y|5H z{X9ngdA~;lKa{?7Bn(o0M=|)r&-$1S@z|5S_4Cg)7!8IDg`*-zhwAz#EX_Lh36RS3 z*cnE+OkgyN-qpW&d{DNzo*7t^7@&C&) zK57}x#3|3iNxzA%`}nI*bCs=&)18M8(WBuoF|Ka4VkPH6YKm-mdS-X1e1#67loYngl0#?$^zJ zC~WmuM~LvXtnzLgW-E_`eJS{a{0mbkU7@PYtv+;}WudYz>i;jCk`|X2D-$vB|9_+- BaoGR> literal 0 HcmV?d00001 diff --git a/libs/shared/components/src/DataTable/DataTable.tsx b/libs/shared/components/src/DataTable/DataTable.tsx new file mode 100644 index 000000000..b1ca3308e --- /dev/null +++ b/libs/shared/components/src/DataTable/DataTable.tsx @@ -0,0 +1,124 @@ +import { forwardRef, useImperativeHandle, useState } from 'react'; + +import { + Pagination, + Stack, + Table, + TableBody, + TableCell, + TableHead, + TableRow, +} from '@mui/material'; +import { + flexRender, + getCoreRowModel, + getFilteredRowModel, + getPaginationRowModel, + useReactTable, +} from '@tanstack/react-table'; + +import type { + ColumnDef, + ColumnFilter, + ColumnFiltersState, +} from '@tanstack/react-table'; + +type Data = Record; + +interface Props { + rows: Data[]; + columns: ColumnDef[]; + isLoading: boolean; + pageSize?: number; + pageCount: number; +} + +export const DataTable = forwardRef( + ({ rows, columns, pageSize = 20, pageCount }: Props, ref) => { + const [columnFilters, setColumnFilters] = useState([]); + const table = useReactTable({ + data: rows, + columns, + state: { + pagination: { + pageSize, + pageIndex: 0, + }, + columnFilters, + }, + getCoreRowModel: getCoreRowModel(), + getPaginationRowModel: getPaginationRowModel(), + getFilteredRowModel: getFilteredRowModel(), + onColumnFiltersChange: setColumnFilters, + // add when we do server side pagination + // manualPagination: true, + pageCount, + // add when we do server side pagination + // onPaginationChange: setPagination + }); + + useImperativeHandle( + ref, + (): DataTableRef => { + return { + setFilter: (filter: ColumnFilter, columnName: string) => { + table.getColumn(columnName)?.setFilterValue(filter); + }, + }; + }, + [table], + ); + return ( + + + + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => ( + + {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + + ))} + + ))} + + + {table.getRowModel().rows.map((row) => ( + + {row.getVisibleCells().map((cell) => ( + + {flexRender(cell.column.columnDef.cell, cell.getContext())} + + ))} + + ))} + +
+ table.setPageIndex(page)} + /> +
+ ); + }, +); + +DataTable.displayName = 'DataTable'; + +export type DataTableRef = { + setFilter: (filter: ColumnFilter, columnName: string) => void; +}; diff --git a/libs/shared/components/src/DataTable/index.tsx b/libs/shared/components/src/DataTable/index.tsx new file mode 100644 index 000000000..89841a480 --- /dev/null +++ b/libs/shared/components/src/DataTable/index.tsx @@ -0,0 +1 @@ +export * from './DataTable'; diff --git a/libs/shared/components/src/LinkIcon/index.tsx b/libs/shared/components/src/LinkIcon/index.tsx new file mode 100644 index 000000000..1718f57d5 --- /dev/null +++ b/libs/shared/components/src/LinkIcon/index.tsx @@ -0,0 +1 @@ +export * from './LinkIcon'; diff --git a/libs/shared/components/src/index.ts b/libs/shared/components/src/index.ts index 785656bb9..0c0f87547 100644 --- a/libs/shared/components/src/index.ts +++ b/libs/shared/components/src/index.ts @@ -1,3 +1,4 @@ export * from './Cards'; export * from './top-nav'; -export * from './LinkIcon/LinkIcon'; +export * from './LinkIcon'; +export * from './DataTable';