• cartcrom's avatar
    feat: 🤑 Portfolios 🖼 (#6216) · 32e62376
    cartcrom authored
    * feat: squash mgtm differences w/ public repo into new base commit to fix rebase issues going forward
    
    * feat: new settings menu (#85)
    
    * feat: new settings flow
    
    * feat: add statsig geo gate for MGTM assets (#91)
    
    * init
    * feat: geo-gate mgtm features & wallet tab
    
    * feat: new theme toggle (#86)
    
    * feat: new theme toggle
    
    * fix: import
    
    * refactor: polish
    
    * refactor: use enum instead of string union
    
    * feat: mini portfolio tabs (#88)
    
    * feat: mini portfolio tabs
    
    * feat: feature flag
    
    * feat: portfolio query (#89)
    
    * feat: portfolio balance query
    
    * polish
    
    * fix: added todo for api key
    
    * feat: tokens mini-portfolio tab (#93)
    
    * feat: tokens tab
    
    * fix: lint
    
    * fix: pr comment polish
    
    * fix: snapshot update
    
    * feat: common portfolio row component (#99)
    
    * feat: porfolio row component
    
    * fix: updated layout
    
    * feat: update token row design (#100)
    
    * feat: porfolio row component
    
    * fix: updated layout
    
    * fix: updated tokens tab to latest design
    
    * fix: unnused export
    
    * feat: dropdown drawer (#95)
    
    * inital drawer
    
    * feat: animated drawer
    
    * fix: attempt animation perf fix
    
    * fix: lint
    
    * feat: better animations
    
    * fix: scrim
    
    * refactor: const name
    
    * test: update chain switcher test
    
    * test: update chain switcher test id
    
    * feat: Add NFT tab for mini porftolio (#104)
    
    * add NFT tab
    
    * add min width to verified icon size
    
    * add keyArgs to nftBalances query so that different callers dont override query cache
    
    * revert yarn node changes
    
    * use flex shrink
    
    * move styled components to top
    
    * navigate to nft page
    
    * update snapshot test after adding gap to Row
    
    * Update src/components/WalletDropdown/MiniPortfolio/NFT.tsx
    Co-authored-by: default avatarcartcrom <39385577+cartcrom@users.noreply.github.com>
    
    ---------
    Co-authored-by: default avatarcartcrom <39385577+cartcrom@users.noreply.github.com>
    
    * fix scroll behavior (#105)
    
    * feat: portfolio loading state (#106)
    
    * feat: loading state for token row
    
    * fix: revert hardcoded loading states
    
    * fix: removed unused component
    
    * feat: activity feed tab (#103)
    
    * init
    
    * feat: ens avatars
    
    * feat: etherscan api experiment
    
    * fix: ignore error policy
    
    * polish
    
    * fix: query pageSize
    
    * fix: revert redux change
    
    * fix: small polish item
    
    * fix: pr comments
    
    * fix: translated activity titles
    
    * fix: typing and todo comment
    
    * todo comment
    
    * fix: accidental chain name mismatch
    
    * feat: remove dropdown chevron (#110)
    
    * feat: small drawer UI updates (#109)
    
    * feat: small changes
    
    * fix: resize status icon w/ ens
    
    * fix: commented css
    
    * feat: activity loading state (#108)
    
    * feat: activity loading state
    
    * fix: unused wrapper
    
    * fix: activity/nftbalance cache overlap
    
    * fix: mp sidebar width adjustment (#112)
    
    * fix: mp sidebar width adjustment
    
    * fix: navbar breakpoints
    
    * feat: nav bar MenuDropdown updates (#107)
    
    * feat: nav bar MenuDropdown updates
    
    * fix: pool breakpoints
    
    * fix: pool in menu dropdown
    
    * fix: lints
    
    * fix: tests
    
    * feat: swap click updates (#111)
    
    * feat: swap click updates
    
    * fix: updates
    
    * fix: simplify
    
    * fix: snapshots
    
    * fix: snapshots
    
    * feat: collapse button (#113)
    
    * feat: collapse button
    
    * fix: esc keypress and animation
    
    * fix: MP scrollbar (#115)
    
    * feat: hide small balances in token list (#116)
    
    * feat: collapse button (#113)
    
    * feat: collapse button
    
    * fix: esc keypress and animation
    
    * chore: merge
    
    * fix: updates
    
    * feat: show the hidden tokens at the bottom
    
    * feat: empty balance state for tokens (#118)
    
    * feat: empty balance state for tokens
    
    * fix: balance change check
    
    * fix: token inputs on TDP widget (#120)
    
    * feat: remove quick swap button (#125)
    
    * fix: nft activity descriptor (#119)
    
    * fix: improper substring usage error
    
    * pr comments + small fix
    
    * feat: add mini portfolio events (#126)
    
    * add events
    
    * fix failing snapshot test
    
    * incorporate eddie comment
    
    * fix chain switching (#127)
    
    * feat: pre-parse activity to catch errors (#129)
    
    * feat: update wallet option icons (#128)
    
    * feat: update wallet option icons
    
    * feat: theme-aware injected logo, svg logos
    
    * fix: rabby extension
    
    * feat: uni icons avatars (#130)
    
    * feat: update wallet option icons
    
    * feat: theme-aware injected logo, svg logos
    
    * fix: rabby extension
    
    * feat: update avatar / icon logic
    
    * fix: remove testing hardcoded socks balance
    
    * fix: add isTrustWallet check
    
    * feat: pools tab (#122)
    
    * init
    
    * feat: working cross-chain calls
    
    * feat: inline range text
    
    * feat: better multicall perf
    
    * feat: loading state
    
    * feat: pools persist between mounts
    
    * feat: polish
    
    * fix: small refactors
    
    * remove stuff to split into sep pr
    
    * fix: remove comment
    
    * fix: judo PR comments
    
    * fix: currencyKey case
    
    * fix: eddie's comment
    
    * fix (#134)
    
    * feat: removed microsite content, updated responsiveness for wallet tab (#137)
    
    * fix: injector unit tests (#136)
    
    * fix: injector unit tests
    
    * fix: lint
    
    ---------
    Co-authored-by: default avatarcartcrom <cartergcromer@gmail.com>
    
    * feat: toggle closed positions (#138)
    
    * rename file
    
    * refactored hidden row to use for closed positions
    
    * fix: remove unnused atom
    
    * fix: lint
    
    * feat: MP tab empty states (#132)
    
    * feat: squash mgtm differences w/ public repo into new base commit to fix rebase issues going forward
    
    * feat: new settings menu (#85)
    
    * feat: new settings flow
    
    * feat: add statsig geo gate for MGTM assets (#91)
    
    * init
    * feat: geo-gate mgtm features & wallet tab
    
    * feat: new theme toggle (#86)
    
    * feat: new theme toggle
    
    * fix: import
    
    * refactor: polish
    
    * refactor: use enum instead of string union
    
    * feat: mini portfolio tabs (#88)
    
    * feat: mini portfolio tabs
    
    * feat: feature flag
    
    * feat: portfolio query (#89)
    
    * feat: portfolio balance query
    
    * polish
    
    * fix: added todo for api key
    
    * feat: tokens mini-portfolio tab (#93)
    
    * feat: tokens tab
    
    * fix: lint
    
    * fix: pr comment polish
    
    * fix: snapshot update
    
    * feat: common portfolio row component (#99)
    
    * feat: porfolio row component
    
    * fix: updated layout
    
    * feat: update token row design (#100)
    
    * feat: porfolio row component
    
    * fix: updated layout
    
    * fix: updated tokens tab to latest design
    
    * fix: unnused export
    
    * feat: dropdown drawer (#95)
    
    * inital drawer
    
    * feat: animated drawer
    
    * fix: attempt animation perf fix
    
    * fix: lint
    
    * feat: better animations
    
    * fix: scrim
    
    * refactor: const name
    
    * test: update chain switcher test
    
    * test: update chain switcher test id
    
    * feat: Add NFT tab for mini porftolio (#104)
    
    * add NFT tab
    
    * add min width to verified icon size
    
    * add keyArgs to nftBalances query so that different callers dont override query cache
    
    * revert yarn node changes
    
    * use flex shrink
    
    * move styled components to top
    
    * navigate to nft page
    
    * update snapshot test after adding gap to Row
    
    * Update src/components/WalletDropdown/MiniPortfolio/NFT.tsx
    Co-authored-by: default avatarcartcrom <39385577+cartcrom@users.noreply.github.com>
    
    ---------
    Co-authored-by: default avatarcartcrom <39385577+cartcrom@users.noreply.github.com>
    
    * fix scroll behavior (#105)
    
    * feat: portfolio loading state (#106)
    
    * feat: loading state for token row
    
    * fix: revert hardcoded loading states
    
    * fix: removed unused component
    
    * feat: activity feed tab (#103)
    
    * init
    
    * feat: ens avatars
    
    * feat: etherscan api experiment
    
    * fix: ignore error policy
    
    * polish
    
    * fix: query pageSize
    
    * fix: revert redux change
    
    * fix: small polish item
    
    * fix: pr comments
    
    * fix: translated activity titles
    
    * fix: typing and todo comment
    
    * todo comment
    
    * fix: accidental chain name mismatch
    
    * feat: remove dropdown chevron (#110)
    
    * feat: small drawer UI updates (#109)
    
    * feat: small changes
    
    * fix: resize status icon w/ ens
    
    * fix: commented css
    
    * init
    
    * feat: working cross-chain calls
    
    * feat: inline range text
    
    * feat: better multicall perf
    
    * feat: activity loading state (#108)
    
    * feat: activity loading state
    
    * fix: unused wrapper
    
    * feat: loading state
    
    * feat: pools persist between mounts
    
    * fix: activity/nftbalance cache overlap
    
    * fix: mp sidebar width adjustment (#112)
    
    * fix: mp sidebar width adjustment
    
    * fix: navbar breakpoints
    
    * feat: nav bar MenuDropdown updates (#107)
    
    * feat: nav bar MenuDropdown updates
    
    * fix: pool breakpoints
    
    * fix: pool in menu dropdown
    
    * fix: lints
    
    * fix: tests
    
    * feat: swap click updates (#111)
    
    * feat: swap click updates
    
    * fix: updates
    
    * fix: simplify
    
    * fix: snapshots
    
    * fix: snapshots
    
    * feat: collapse button (#113)
    
    * feat: collapse button
    
    * fix: esc keypress and animation
    
    * fix: MP scrollbar (#115)
    
    * feat: hide small balances in token list (#116)
    
    * feat: collapse button (#113)
    
    * feat: collapse button
    
    * fix: esc keypress and animation
    
    * chore: merge
    
    * fix: updates
    
    * feat: show the hidden tokens at the bottom
    
    * feat: empty balance state for tokens (#118)
    
    * feat: empty balance state for tokens
    
    * fix: balance change check
    
    * fix: token inputs on TDP widget (#120)
    
    * feat: polish
    
    * fix: small refactors
    
    * remove stuff to split into sep pr
    
    * fix: remove comment
    
    * feat: remove quick swap button (#125)
    
    * fix: nft activity descriptor (#119)
    
    * fix: improper substring usage error
    
    * pr comments + small fix
    
    * feat: add mini portfolio events (#126)
    
    * add events
    
    * fix failing snapshot test
    
    * incorporate eddie comment
    
    * fix chain switching (#127)
    
    * feat: pre-parse activity to catch errors (#129)
    
    * fix: activity/nftbalance cache overlap
    
    * fix: mp sidebar width adjustment (#112)
    
    * fix: mp sidebar width adjustment
    
    * fix: navbar breakpoints
    
    * feat: nav bar MenuDropdown updates (#107)
    
    * feat: nav bar MenuDropdown updates
    
    * fix: pool breakpoints
    
    * fix: pool in menu dropdown
    
    * fix: lints
    
    * fix: tests
    
    * feat: swap click updates (#111)
    
    * feat: swap click updates
    
    * fix: updates
    
    * fix: simplify
    
    * fix: snapshots
    
    * fix: snapshots
    
    * feat: collapse button (#113)
    
    * feat: collapse button
    
    * fix: esc keypress and animation
    
    * fix: MP scrollbar (#115)
    
    * feat: hide small balances in token list (#116)
    
    * feat: collapse button (#113)
    
    * feat: collapse button
    
    * fix: esc keypress and animation
    
    * chore: merge
    
    * fix: updates
    
    * feat: show the hidden tokens at the bottom
    
    * feat: empty balance state for tokens (#118)
    
    * feat: empty balance state for tokens
    
    * fix: balance change check
    
    * fix: token inputs on TDP widget (#120)
    
    * feat: remove quick swap button (#125)
    
    * fix: nft activity descriptor (#119)
    
    * fix: improper substring usage error
    
    * pr comments + small fix
    
    * feat: add mini portfolio events (#126)
    
    * add events
    
    * fix failing snapshot test
    
    * incorporate eddie comment
    
    * fix chain switching (#127)
    
    * feat: pre-parse activity to catch errors (#129)
    
    * feat: start empty state updates
    
    * feat: update wallet option icons (#128)
    
    * feat: update wallet option icons
    
    * feat: theme-aware injected logo, svg logos
    
    * fix: rabby extension
    
    * feat: empty wallet states w/ good positioning
    
    * feat: finish empty states w/ theme aware icons
    
    * fix: judo PR comments
    
    * fix: currencyKey case
    
    * feat: uni icons avatars (#130)
    
    * feat: update wallet option icons
    
    * feat: theme-aware injected logo, svg logos
    
    * fix: rabby extension
    
    * feat: update avatar / icon logic
    
    * fix: remove testing hardcoded socks balance
    
    * fix: add isTrustWallet check
    
    * fix: eddie's comment
    
    * feat: pools tab (#122)
    
    * init
    
    * feat: working cross-chain calls
    
    * feat: inline range text
    
    * feat: better multicall perf
    
    * feat: loading state
    
    * feat: pools persist between mounts
    
    * feat: polish
    
    * fix: small refactors
    
    * remove stuff to split into sep pr
    
    * fix: remove comment
    
    * fix: judo PR comments
    
    * fix: currencyKey case
    
    * fix: eddie's comment
    
    * fix (#134)
    
    * feat: removed microsite content, updated responsiveness for wallet tab (#137)
    
    * fix: injector unit tests (#136)
    
    * fix: injector unit tests
    
    * fix: lint
    
    ---------
    Co-authored-by: default avatarcartcrom <cartergcromer@gmail.com>
    
    * fix: pool loading state
    
    * fix: simplify pools loading state
    
    * fix: removed unused var
    
    * feat: toggle closed positions (#138)
    
    * rename file
    
    * refactored hidden row to use for closed positions
    
    * fix: remove unnused atom
    
    * fix: lint
    
    * fix: dry
    
    * fix: lint
    
    * fix: address review comments
    
    * fix: lints
    
    * fix: bad merge
    
    ---------
    Co-authored-by: default avatarcartcrom <cartergcromer@gmail.com>
    Co-authored-by: default avatarcartcrom <39385577+cartcrom@users.noreply.github.com>
    Co-authored-by: default avatarTina <59578595+tinaszheng@users.noreply.github.com>
    Co-authored-by: default avatarlynn <41491154+lynnshaoyu@users.noreply.github.com>
    
    * make sure mp is above tax service banner (#142)
    
    * feat: add git version number to settings menu (#141)
    
    * fix: remove unicon tooltip (#146)
    
    * feat: remove unicon tooltip from mobile and timer prop
    
    * fix: flip bool logic
    
    * fix: small nits for mp from fred (#150)
    
    * fixes
    
    * fix
    
    * feat: Local tx activity (#148)
    
    * local swap working
    
    * feat: cross-chain
    
    * fix: revert query changes
    
    * feat: local approvals
    
    * feat: wrapped activity
    
    * feat: local lp tx history
    
    * fix: add doc comment
    
    * fix: linted
    
    * fix: no pools render error (#152)
    
    * feat: mp activity feed design tweaks  (#145)
    
    * feat: squash mgtm differences w/ public repo into new base commit to fix rebase issues going forward
    
    * feat: new settings menu (#85)
    
    * feat: new settings flow
    
    * feat: add statsig geo gate for MGTM assets (#91)
    
    * init
    * feat: geo-gate mgtm features & wallet tab
    
    * feat: new theme toggle (#86)
    
    * feat: new theme toggle
    
    * fix: import
    
    * refactor: polish
    
    * refactor: use enum instead of string union
    
    * feat: mini portfolio tabs (#88)
    
    * feat: mini portfolio tabs
    
    * feat: feature flag
    
    * feat: portfolio query (#89)
    
    * feat: portfolio balance query
    
    * polish
    
    * fix: added todo for api key
    
    * feat: tokens mini-portfolio tab (#93)
    
    * feat: tokens tab
    
    * fix: lint
    
    * fix: pr comment polish
    
    * fix: snapshot update
    
    * feat: common portfolio row component (#99)
    
    * feat: porfolio row component
    
    * fix: updated layout
    
    * feat: update token row design (#100)
    
    * feat: porfolio row component
    
    * fix: updated layout
    
    * fix: updated tokens tab to latest design
    
    * fix: unnused export
    
    * feat: dropdown drawer (#95)
    
    * inital drawer
    
    * feat: animated drawer
    
    * fix: attempt animation perf fix
    
    * fix: lint
    
    * feat: better animations
    
    * fix: scrim
    
    * refactor: const name
    
    * test: update chain switcher test
    
    * test: update chain switcher test id
    
    * feat: Add NFT tab for mini porftolio (#104)
    
    * add NFT tab
    
    * add min width to verified icon size
    
    * add keyArgs to nftBalances query so that different callers dont override query cache
    
    * revert yarn node changes
    
    * use flex shrink
    
    * move styled components to top
    
    * navigate to nft page
    
    * update snapshot test after adding gap to Row
    
    * Update src/components/WalletDropdown/MiniPortfolio/NFT.tsx
    Co-authored-by: default avatarcartcrom <39385577+cartcrom@users.noreply.github.com>
    
    ---------
    Co-authored-by: default avatarcartcrom <39385577+cartcrom@users.noreply.github.com>
    
    * fix scroll behavior (#105)
    
    * feat: portfolio loading state (#106)
    
    * feat: loading state for token row
    
    * fix: revert hardcoded loading states
    
    * fix: removed unused component
    
    * feat: activity feed tab (#103)
    
    * init
    
    * feat: ens avatars
    
    * feat: etherscan api experiment
    
    * fix: ignore error policy
    
    * polish
    
    * fix: query pageSize
    
    * fix: revert redux change
    
    * fix: small polish item
    
    * fix: pr comments
    
    * fix: translated activity titles
    
    * fix: typing and todo comment
    
    * todo comment
    
    * fix: accidental chain name mismatch
    
    * feat: remove dropdown chevron (#110)
    
    * feat: small drawer UI updates (#109)
    
    * feat: small changes
    
    * fix: resize status icon w/ ens
    
    * fix: commented css
    
    * feat: activity loading state (#108)
    
    * feat: activity loading state
    
    * fix: unused wrapper
    
    * fix: activity/nftbalance cache overlap
    
    * fix: mp sidebar width adjustment (#112)
    
    * fix: mp sidebar width adjustment
    
    * fix: navbar breakpoints
    
    * feat: nav bar MenuDropdown updates (#107)
    
    * feat: nav bar MenuDropdown updates
    
    * fix: pool breakpoints
    
    * fix: pool in menu dropdown
    
    * fix: lints
    
    * fix: tests
    
    * feat: swap click updates (#111)
    
    * feat: swap click updates
    
    * fix: updates
    
    * fix: simplify
    
    * fix: snapshots
    
    * fix: snapshots
    
    * feat: collapse button (#113)
    
    * feat: collapse button
    
    * fix: esc keypress and animation
    
    * fix: MP scrollbar (#115)
    
    * feat: hide small balances in token list (#116)
    
    * feat: collapse button (#113)
    
    * feat: collapse button
    
    * fix: esc keypress and animation
    
    * chore: merge
    
    * fix: updates
    
    * feat: show the hidden tokens at the bottom
    
    * feat: empty balance state for tokens (#118)
    
    * feat: empty balance state for tokens
    
    * fix: balance change check
    
    * fix: token inputs on TDP widget (#120)
    
    * feat: remove quick swap button (#125)
    
    * fix: nft activity descriptor (#119)
    
    * fix: improper substring usage error
    
    * pr comments + small fix
    
    * feat: add mini portfolio events (#126)
    
    * add events
    
    * fix failing snapshot test
    
    * incorporate eddie comment
    
    * fix chain switching (#127)
    
    * feat: pre-parse activity to catch errors (#129)
    
    * feat: update wallet option icons (#128)
    
    * feat: update wallet option icons
    
    * feat: theme-aware injected logo, svg logos
    
    * fix: rabby extension
    
    * wip
    
    * feat: uni icons avatars (#130)
    
    * feat: update wallet option icons
    
    * feat: theme-aware injected logo, svg logos
    
    * fix: rabby extension
    
    * feat: update avatar / icon logic
    
    * fix: remove testing hardcoded socks balance
    
    * fix: add isTrustWallet check
    
    * feat: pools tab (#122)
    
    * init
    
    * feat: working cross-chain calls
    
    * feat: inline range text
    
    * feat: better multicall perf
    
    * feat: loading state
    
    * feat: pools persist between mounts
    
    * feat: polish
    
    * fix: small refactors
    
    * remove stuff to split into sep pr
    
    * fix: remove comment
    
    * fix: judo PR comments
    
    * fix: currencyKey case
    
    * fix: eddie's comment
    
    * fix (#134)
    
    * wip with activity status icons
    
    * feat: removed microsite content, updated responsiveness for wallet tab (#137)
    
    * fix: injector unit tests (#136)
    
    * fix: injector unit tests
    
    * fix: lint
    
    ---------
    Co-authored-by: default avatarcartcrom <cartergcromer@gmail.com>
    
    * temp
    
    * in progress
    
    * text, and activity status changes working. missing logo changes
    
    * fix lint issues
    
    * refactor: square logo location
    
    * feat: merge other activity changes
    
    ---------
    Co-authored-by: default avatarcartcrom <cartergcromer@gmail.com>
    Co-authored-by: default avatarcartcrom <39385577+cartcrom@users.noreply.github.com>
    Co-authored-by: default avatarTina <59578595+tinaszheng@users.noreply.github.com>
    Co-authored-by: default avatareddie <66155195+just-toby@users.noreply.github.com>
    
    * feat: portfolio polling/refetching/performance (#154)
    
    * init
    
    * feat: implement asset polling & tx updating balances
    
    * add refetching to activity tab
    
    * fix: re-add error policy
    
    * fix: add TODO
    
    * fix: fix scroll + console warnings on mini portfolio nfts (#155)
    
    * fixes
    
    * rename
    
    * init (#158)
    
    * fix: browser wallet icons (#156)
    
    * fix: moved border radius css (#157)
    
    * feat: token details state for BNB (#151)
    
    * fix: update token details missing flow
    
    * refactor
    
    * fix: lint
    
    * fix: add bnb to queries
    
    * feat: add comment explaining unsupported chains
    
    * fix: remove buy crypto animation (#160)
    
    * fix: price display pools tab (#159)
    
    * fix: price display pools tab
    
    * fix: lint
    
    * feat: pools tab performance (#123)
    
    * init
    
    * fix: pr comments
    
    * update cache return type
    
    * refactor: rename type
    
    * fix: further pr comments
    
    * fix: remove stringify
    
    * refactor: readability and caching
    
    * fix: zach pr comments
    
    * fix: removed hardcoded value
    
    * feat: catch position errors for chains
    
    * fix: add todo comment for followup ticket
    
    * fix: build issue from merge conflict
    
    * refactor: split up token caching function
    
    * feat: separate array slicing into util with tests
    
    * feat: close wallet drawer on wallet connection (#161)
    
    * feat: close wallet drawer on wallet connection
    
    * feat: added comment explaining fetchPolicy
    
    * fix: only close if open
    
    * refactor: add comment about ref
    
    * fix: revert change to useAllTokens & rename with more descriptive name (#163)
    
    * fix: square Arbitrum logo design changes  (#162)
    
    * feat: close wallet drawer on wallet connection
    
    * feat: added comment explaining fetchPolicy
    
    * fix: only close if open
    
    * init
    
    * fixes
    
    * fix border radius
    
    ---------
    Co-authored-by: default avatarcartcrom <cartergcromer@gmail.com>
    
    * fix: token loading state (#165)
    
    * fix: remove unnused code and comments
    
    * fix: privacy policy date
    
    * fix: revert readme change
    
    * fix: remove unnused FOR file
    
    * fix: missed query id
    
    * fix: add id to portfolios query
    
    * fix: widget cypress test
    
    ---------
    Co-authored-by: default avatarTina <59578595+tinaszheng@users.noreply.github.com>
    Co-authored-by: default avatareddie <66155195+just-toby@users.noreply.github.com>
    Co-authored-by: default avatarlynn <41491154+lynnshaoyu@users.noreply.github.com>
    32e62376
arrays.test.ts 296 Bytes