mirror of
https://github.com/oceanprotocol/market.git
synced 2024-12-02 05:57:29 +01:00
change label 'data set' with 'dataset'
This commit is contained in:
parent
4d119467a4
commit
f5514bbc1d
16
README.md
16
README.md
@ -103,12 +103,12 @@ cp .env.example .env
|
|||||||
|
|
||||||
## 🦀 Data Sources
|
## 🦀 Data Sources
|
||||||
|
|
||||||
All displayed data in the app is presented around the concept of one data set, which is a combination of:
|
All displayed data in the app is presented around the concept of one dataset, which is a combination of:
|
||||||
|
|
||||||
- metadata about a data set
|
- metadata about a dataset
|
||||||
- the actual data set files
|
- the actual dataset files
|
||||||
- the NFT which represents the data set
|
- the NFT which represents the dataset
|
||||||
- the datatokens representing access rights to the data set files
|
- the datatokens representing access rights to the dataset files
|
||||||
- financial data connected to these datatokens, either a fixed rate exchange contract or a dispenser for free assets
|
- financial data connected to these datatokens, either a fixed rate exchange contract or a dispenser for free assets
|
||||||
- calculations and conversions based on financial data
|
- calculations and conversions based on financial data
|
||||||
- metadata about publisher accounts
|
- metadata about publisher accounts
|
||||||
@ -117,7 +117,7 @@ All this data then comes from multiple sources:
|
|||||||
|
|
||||||
### Aquarius
|
### Aquarius
|
||||||
|
|
||||||
All initial data sets and their metadata (DDO) is retrieved client-side on run-time from the [Aquarius](https://github.com/oceanprotocol/aquarius) instance, defined in `app.config.js`. All app calls to Aquarius are done with 2 internal methods which mimic the same methods in ocean.js, but allow us:
|
All initial datasets and their metadata (DDO) is retrieved client-side on run-time from the [Aquarius](https://github.com/oceanprotocol/aquarius) instance, defined in `app.config.js`. All app calls to Aquarius are done with 2 internal methods which mimic the same methods in ocean.js, but allow us:
|
||||||
|
|
||||||
- to cancel requests when components get unmounted in combination with [axios](https://github.com/axios/axios)
|
- to cancel requests when components get unmounted in combination with [axios](https://github.com/axios/axios)
|
||||||
- hit Aquarius as early as possible without relying on any ocean.js initialization
|
- hit Aquarius as early as possible without relying on any ocean.js initialization
|
||||||
@ -159,7 +159,7 @@ function Component() {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
For components within a single data set view the `useAsset()` hook can be used, which in the background gets the respective metadata from Aquarius.
|
For components within a single dataset view the `useAsset()` hook can be used, which in the background gets the respective metadata from Aquarius.
|
||||||
|
|
||||||
```tsx
|
```tsx
|
||||||
import { useAsset } from '@context/Asset'
|
import { useAsset } from '@context/Asset'
|
||||||
@ -232,7 +232,7 @@ function Component() {
|
|||||||
|
|
||||||
### Purgatory
|
### Purgatory
|
||||||
|
|
||||||
Based on [list-purgatory](https://github.com/oceanprotocol/list-purgatory) some data sets get additional data. Within most components this can be done with the internal `useAsset()` hook which fetches data from the [market-purgatory](https://github.com/oceanprotocol/market-purgatory) endpoint in the background.
|
Based on [list-purgatory](https://github.com/oceanprotocol/list-purgatory) some datasets get additional data. Within most components this can be done with the internal `useAsset()` hook which fetches data from the [market-purgatory](https://github.com/oceanprotocol/market-purgatory) endpoint in the background.
|
||||||
|
|
||||||
For asset purgatory:
|
For asset purgatory:
|
||||||
|
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
{
|
{
|
||||||
"form": {
|
"form": {
|
||||||
"title": "Set allowed algorithms",
|
"title": "Set allowed algorithms",
|
||||||
"description": "Only the algorithms selected here will be allowed to run on your data set. Uncheck all to remove any access to your data set.",
|
"description": "Only the algorithms selected here will be allowed to run on your dataset. Uncheck all to remove any access to your dataset.",
|
||||||
"success": "🎉 Successfully updated. 🎉\n\nUpdates might not show up right away on your asset. In this case, wait some seconds and reload your asset details page in your browser.",
|
"success": "🎉 Successfully updated. 🎉\n\nUpdates might not show up right away on your asset. In this case, wait some seconds and reload your asset details page in your browser.",
|
||||||
"error": "Updating DDO failed.",
|
"error": "Updating DDO failed.",
|
||||||
"data": [
|
"data": [
|
||||||
{
|
{
|
||||||
"name": "publisherTrustedAlgorithms",
|
"name": "publisherTrustedAlgorithms",
|
||||||
"label": "Selected Algorithms",
|
"label": "Selected Algorithms",
|
||||||
"help": "Choose one or multiple algorithms you trust to allow them to run on this data set.",
|
"help": "Choose one or multiple algorithms you trust to allow them to run on this dataset.",
|
||||||
"type": "assetSelectionMultiple",
|
"type": "assetSelectionMultiple",
|
||||||
"multiple": true,
|
"multiple": true,
|
||||||
"options": [],
|
"options": [],
|
||||||
@ -17,7 +17,7 @@
|
|||||||
{
|
{
|
||||||
"name": "allowAllPublishedAlgorithms",
|
"name": "allowAllPublishedAlgorithms",
|
||||||
"label": "All Algorithms",
|
"label": "All Algorithms",
|
||||||
"help": "Allow any published algorithm to run on this data set.",
|
"help": "Allow any published algorithm to run on this dataset.",
|
||||||
"type": "checkbox",
|
"type": "checkbox",
|
||||||
"options": ["Allow any published algorithm"]
|
"options": ["Allow any published algorithm"]
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
"name": "files",
|
"name": "files",
|
||||||
"label": "New file",
|
"label": "New file",
|
||||||
"placeholder": "e.g. https://file.com/file.json",
|
"placeholder": "e.g. https://file.com/file.json",
|
||||||
"help": "This URL will be stored encrypted after publishing. **Please make sure that the endpoint is accessible over the internet and is not protected by a firewall or by credentials.** For a compute data set, your file should match the file type required by the algorithm, and should not exceed 1 GB in file size. Leaving this field empty will not remove the current value.",
|
"help": "This URL will be stored encrypted after publishing. **Please make sure that the endpoint is accessible over the internet and is not protected by a firewall or by credentials.** For a compute dataset, your file should match the file type required by the algorithm, and should not exceed 1 GB in file size. Leaving this field empty will not remove the current value.",
|
||||||
"prominentHelp": true,
|
"prominentHelp": true,
|
||||||
"type": "files"
|
"type": "files"
|
||||||
},
|
},
|
||||||
@ -39,7 +39,7 @@
|
|||||||
"name": "links",
|
"name": "links",
|
||||||
"label": "New sample file",
|
"label": "New sample file",
|
||||||
"placeholder": "e.g. https://file.com/samplefile.json",
|
"placeholder": "e.g. https://file.com/samplefile.json",
|
||||||
"help": "Please provide a URL to a sample of your data set file. This file should reveal the data structure of your data set, e.g. by including the header and one line of a CSV file. This file URL will be publicly available after publishing. **Please make sure that the endpoint is accessible over the internet and is not protected by a firewall or by credentials.** Leaving this field empty will not remove the current value.",
|
"help": "Please provide a URL to a sample of your dataset file. This file should reveal the data structure of your dataset, e.g. by including the header and one line of a CSV file. This file URL will be publicly available after publishing. **Please make sure that the endpoint is accessible over the internet and is not protected by a firewall or by credentials.** Leaving this field empty will not remove the current value.",
|
||||||
"prominentHelp": true,
|
"prominentHelp": true,
|
||||||
"type": "files"
|
"type": "files"
|
||||||
},
|
},
|
||||||
@ -47,7 +47,7 @@
|
|||||||
{
|
{
|
||||||
"name": "timeout",
|
"name": "timeout",
|
||||||
"label": "Timeout",
|
"label": "Timeout",
|
||||||
"help": "Define how long buyers should be able to download the data set again after the initial purchase.",
|
"help": "Define how long buyers should be able to download the dataset again after the initial purchase.",
|
||||||
"type": "select",
|
"type": "select",
|
||||||
"options": ["Forever", "1 day", "1 week", "1 month", "1 year"],
|
"options": ["Forever", "1 day", "1 week", "1 month", "1 year"],
|
||||||
"sortOptions": false,
|
"sortOptions": false,
|
||||||
@ -57,7 +57,7 @@
|
|||||||
"name": "author",
|
"name": "author",
|
||||||
"label": "New Author",
|
"label": "New Author",
|
||||||
"placeholder": "e.g. Mrs McJellyfish",
|
"placeholder": "e.g. Mrs McJellyfish",
|
||||||
"help": "Give proper attribution for your data set.",
|
"help": "Give proper attribution for your dataset.",
|
||||||
"required": false
|
"required": false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"title": "Account",
|
"title": "Account",
|
||||||
"description": "Find the data sets and jobs that you previously accessed."
|
"description": "Find the datasets and jobs that you previously accessed."
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"create": {
|
"create": {
|
||||||
"fixed": {
|
"fixed": {
|
||||||
"title": "Fixed",
|
"title": "Fixed",
|
||||||
"info": "Set your price for accessing this data set. The datatoken for this data set will be worth the entered amount of the selected base token.",
|
"info": "Set your price for accessing this dataset. The datatoken for this dataset will be worth the entered amount of the selected base token.",
|
||||||
"tooltips": {
|
"tooltips": {
|
||||||
"communityFee": "Goes to Ocean DAO for teams to improve the tools, build apps, do outreach, and more. A small fraction is used to burn OCEAN. This fee is collected when downloading or using an asset in a compute job.",
|
"communityFee": "Goes to Ocean DAO for teams to improve the tools, build apps, do outreach, and more. A small fraction is used to burn OCEAN. This fee is collected when downloading or using an asset in a compute job.",
|
||||||
"marketplaceFee": "Goes to the marketplace owner that is hosting and providing the marketplace and is collected when downloading or using an asset in a compute job. In Ocean Market, it is treated as network revenue that goes to the Ocean community."
|
"marketplaceFee": "Goes to the marketplace owner that is hosting and providing the marketplace and is collected when downloading or using an asset in a compute job. In Ocean Market, it is treated as network revenue that goes to the Ocean community."
|
||||||
@ -10,7 +10,7 @@
|
|||||||
},
|
},
|
||||||
"free": {
|
"free": {
|
||||||
"title": "Free",
|
"title": "Free",
|
||||||
"info": "Set your data set as free. The datatoken for this data set will be given for free via creating a faucet.",
|
"info": "Set your dataset as free. The datatoken for this dataset will be given for free via creating a faucet.",
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{
|
||||||
"name": "freeAgreement",
|
"name": "freeAgreement",
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
"name": "author",
|
"name": "author",
|
||||||
"label": "Author",
|
"label": "Author",
|
||||||
"placeholder": "e.g. Jelly McJellyfish",
|
"placeholder": "e.g. Jelly McJellyfish",
|
||||||
"help": "Give proper attribution for your data set. You are welcome to use a pseudonym, and you can change your author name at any time. Please note that it will remain in the transaction history. For more information on how personal data is handled within the metadata, please refer to our [privacy policy](/privacy/en).",
|
"help": "Give proper attribution for your dataset. You are welcome to use a pseudonym, and you can change your author name at any time. Please note that it will remain in the transaction history. For more information on how personal data is handled within the metadata, please refer to our [privacy policy](/privacy/en).",
|
||||||
"required": true
|
"required": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -104,7 +104,7 @@
|
|||||||
"name": "files",
|
"name": "files",
|
||||||
"label": "File",
|
"label": "File",
|
||||||
"placeholder": "e.g. https://file.com/file.json",
|
"placeholder": "e.g. https://file.com/file.json",
|
||||||
"help": "This URL will be stored encrypted after publishing. **Please make sure that the endpoint is accessible over the internet and is not protected by a firewall or by credentials.** For a compute data set, your file should match the file type required by the algorithm, and should not exceed 1 GB in file size. ",
|
"help": "This URL will be stored encrypted after publishing. **Please make sure that the endpoint is accessible over the internet and is not protected by a firewall or by credentials.** For a compute dataset, your file should match the file type required by the algorithm, and should not exceed 1 GB in file size. ",
|
||||||
"prominentHelp": true,
|
"prominentHelp": true,
|
||||||
"type": "files",
|
"type": "files",
|
||||||
"required": true
|
"required": true
|
||||||
@ -113,7 +113,7 @@
|
|||||||
"name": "links",
|
"name": "links",
|
||||||
"label": "Sample file",
|
"label": "Sample file",
|
||||||
"placeholder": "e.g. https://file.com/samplefile.json",
|
"placeholder": "e.g. https://file.com/samplefile.json",
|
||||||
"help": "This file should reveal the data structure of your data set, e.g. by including the header and one line of a CSV file. This file URL will be publicly available after publishing. **Please make sure that the endpoint is accessible over the internet and is not protected by a firewall or by credentials.**",
|
"help": "This file should reveal the data structure of your dataset, e.g. by including the header and one line of a CSV file. This file URL will be publicly available after publishing. **Please make sure that the endpoint is accessible over the internet and is not protected by a firewall or by credentials.**",
|
||||||
"prominentHelp": true,
|
"prominentHelp": true,
|
||||||
"type": "files"
|
"type": "files"
|
||||||
},
|
},
|
||||||
@ -122,7 +122,7 @@
|
|||||||
"label": "Algorithm Privacy",
|
"label": "Algorithm Privacy",
|
||||||
"type": "checkbox",
|
"type": "checkbox",
|
||||||
"options": ["Keep my algorithm private"],
|
"options": ["Keep my algorithm private"],
|
||||||
"help": "By default, your algorithm can be downloaded for free or a fixed price, in addition to running in compute jobs. Enabling this option will prevent downloading, so your algorithm can only be run as part of a compute job on a data set.",
|
"help": "By default, your algorithm can be downloaded for free or a fixed price, in addition to running in compute jobs. Enabling this option will prevent downloading, so your algorithm can only be run as part of a compute job on a dataset.",
|
||||||
"required": false
|
"required": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -138,7 +138,7 @@
|
|||||||
{
|
{
|
||||||
"name": "timeout",
|
"name": "timeout",
|
||||||
"label": "Timeout",
|
"label": "Timeout",
|
||||||
"help": "Define how long buyers should be able to download the data set again after the initial purchase.",
|
"help": "Define how long buyers should be able to download the dataset again after the initial purchase.",
|
||||||
"type": "select",
|
"type": "select",
|
||||||
"options": ["Forever", "1 day", "1 week", "1 month", "1 year"],
|
"options": ["Forever", "1 day", "1 week", "1 month", "1 year"],
|
||||||
"sortOptions": false,
|
"sortOptions": false,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"title": "Publish",
|
"title": "Publish",
|
||||||
"description": "Highlight the important features of your data set or algorithm to make it more discoverable and catch the interest of data consumers.",
|
"description": "Highlight the important features of your dataset or algorithm to make it more discoverable and catch the interest of data consumers.",
|
||||||
"warning": "Publishing into a test network first is strongly recommended. Please familiarize yourself with [the market](https://oceanprotocol.com/technology/marketplaces), [the risks](https://blog.oceanprotocol.com/on-staking-on-data-in-ocean-market-3d8e09eb0a13), and the [Terms of Use](/terms).",
|
"warning": "Publishing into a test network first is strongly recommended. Please familiarize yourself with [the market](https://oceanprotocol.com/technology/marketplaces), [the risks](https://blog.oceanprotocol.com/on-staking-on-data-in-ocean-market-3d8e09eb0a13), and the [Terms of Use](/terms).",
|
||||||
"tooltipAvailableNetworks": "Assets are published to the network your wallet is connected to. These networks are currently supported:"
|
"tooltipAvailableNetworks": "Assets are published to the network your wallet is connected to. These networks are currently supported:"
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"asset": {
|
"asset": {
|
||||||
"title": "Data Set In Purgatory",
|
"title": "Dataset In Purgatory",
|
||||||
"description": "Except for removing liquidity, no further actions are permitted on this data set and it will not be returned in any search. For more details go to [list-purgatory](https://github.com/oceanprotocol/list-purgatory)."
|
"description": "Except for removing liquidity, no further actions are permitted on this dataset and it will not be returned in any search. For more details go to [list-purgatory](https://github.com/oceanprotocol/list-purgatory)."
|
||||||
},
|
},
|
||||||
"account": {
|
"account": {
|
||||||
"title": "Account In Purgatory",
|
"title": "Account In Purgatory",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"siteTitle": "Ocean Market",
|
"siteTitle": "Ocean Market",
|
||||||
"siteTagline": "A marketplace to find, publish and trade data sets in the Ocean Network.",
|
"siteTagline": "A marketplace to find, publish and trade datasets in the Ocean Network.",
|
||||||
"siteUrl": "https://market.oceanprotocol.com",
|
"siteUrl": "https://market.oceanprotocol.com",
|
||||||
"siteImage": "/share.png",
|
"siteImage": "/share.png",
|
||||||
"copyright": "All Rights Reserved. Powered by ",
|
"copyright": "All Rights Reserved. Powered by ",
|
||||||
|
@ -26,7 +26,7 @@ export default function AssetType({
|
|||||||
)}
|
)}
|
||||||
|
|
||||||
<div className={styles.typeLabel}>
|
<div className={styles.typeLabel}>
|
||||||
{type === 'dataset' ? 'data set' : 'algorithm'}
|
{type === 'dataset' ? 'dataset' : 'algorithm'}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{totalSales ? (
|
{totalSales ? (
|
||||||
|
@ -50,7 +50,7 @@ function getConsumeHelpText(
|
|||||||
: hasPreviousOrder
|
: hasPreviousOrder
|
||||||
? `You bought this ${assetType} already allowing you to use it without paying again.`
|
? `You bought this ${assetType} already allowing you to use it without paying again.`
|
||||||
: hasDatatoken
|
: hasDatatoken
|
||||||
? `You own ${dtBalance} ${dtSymbol} allowing you to use this data set by spending 1 ${dtSymbol}, but without paying ${btSymbol} again.`
|
? `You own ${dtBalance} ${dtSymbol} allowing you to use this dataset by spending 1 ${dtSymbol}, but without paying ${btSymbol} again.`
|
||||||
: isBalanceSufficient === false
|
: isBalanceSufficient === false
|
||||||
? `You do not have enough ${btSymbol} in your wallet to purchase this asset.`
|
? `You do not have enough ${btSymbol} in your wallet to purchase this asset.`
|
||||||
: `For using this ${assetType}, you will buy 1 ${dtSymbol} and immediately spend it back to the publisher.`
|
: `For using this ${assetType}, you will buy 1 ${dtSymbol} and immediately spend it back to the publisher.`
|
||||||
|
@ -266,10 +266,10 @@ export default function Compute({
|
|||||||
computeAlgorithm,
|
computeAlgorithm,
|
||||||
selectedAlgorithmAsset
|
selectedAlgorithmAsset
|
||||||
)
|
)
|
||||||
LoggerInstance.log('[compute] Is data set orderable?', allowed)
|
LoggerInstance.log('[compute] Is dataset orderable?', allowed)
|
||||||
if (!allowed)
|
if (!allowed)
|
||||||
throw new Error(
|
throw new Error(
|
||||||
'Data set is not orderable in combination with selected algorithm.'
|
'Dataset is not orderable in combination with selected algorithm.'
|
||||||
)
|
)
|
||||||
|
|
||||||
await initPriceAndFees()
|
await initPriceAndFees()
|
||||||
@ -376,7 +376,7 @@ export default function Compute({
|
|||||||
{asset.services[0].type === 'compute' && (
|
{asset.services[0].type === 'compute' && (
|
||||||
<Alert
|
<Alert
|
||||||
text={
|
text={
|
||||||
"This algorithm has been set to private by the publisher and can't be downloaded. You can run it against any allowed data sets though!"
|
"This algorithm has been set to private by the publisher and can't be downloaded. You can run it against any allowed datasets though!"
|
||||||
}
|
}
|
||||||
state="info"
|
state="info"
|
||||||
/>
|
/>
|
||||||
|
@ -131,7 +131,7 @@ export default function EditComputeDataset({
|
|||||||
{({ values, isSubmitting }) =>
|
{({ values, isSubmitting }) =>
|
||||||
isSubmitting || hasFeedback ? (
|
isSubmitting || hasFeedback ? (
|
||||||
<EditFeedback
|
<EditFeedback
|
||||||
loading="Updating data set with new compute settings..."
|
loading="Updating dataset with new compute settings..."
|
||||||
error={error}
|
error={error}
|
||||||
success={success}
|
success={success}
|
||||||
setError={setError}
|
setError={setError}
|
||||||
|
@ -13,7 +13,7 @@ import { useMarketMetadata } from '@context/MarketMetadata'
|
|||||||
|
|
||||||
const columns: TableOceanColumn<AssetExtended>[] = [
|
const columns: TableOceanColumn<AssetExtended>[] = [
|
||||||
{
|
{
|
||||||
name: 'Data Set',
|
name: 'Dataset',
|
||||||
selector: (row) => {
|
selector: (row) => {
|
||||||
const { metadata } = row
|
const { metadata } = row
|
||||||
return <AssetTitle title={metadata.name} asset={row} />
|
return <AssetTitle title={metadata.name} asset={row} />
|
||||||
|
@ -131,7 +131,7 @@ export default function HomePage(): ReactElement {
|
|||||||
query={queryLatest}
|
query={queryLatest}
|
||||||
action={
|
action={
|
||||||
<Button style="text" to="/search?sort=nft.created&sortOrder=desc">
|
<Button style="text" to="/search?sort=nft.created&sortOrder=desc">
|
||||||
All data sets and algorithms →
|
All datasets and algorithms →
|
||||||
</Button>
|
</Button>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
@ -21,7 +21,7 @@ export function Status({ children }: { children: string }): ReactElement {
|
|||||||
|
|
||||||
const columns: TableOceanColumn<ComputeJobMetaData>[] = [
|
const columns: TableOceanColumn<ComputeJobMetaData>[] = [
|
||||||
{
|
{
|
||||||
name: 'Data Set',
|
name: 'Dataset',
|
||||||
selector: (row) => (
|
selector: (row) => (
|
||||||
<AssetListTitle did={row.inputDID[0]} title={row.assetName} />
|
<AssetListTitle did={row.inputDID[0]} title={row.assetName} />
|
||||||
)
|
)
|
||||||
|
@ -8,7 +8,7 @@ import { useUserPreferences } from '@context/UserPreferences'
|
|||||||
|
|
||||||
const columns: TableOceanColumn<DownloadedAsset>[] = [
|
const columns: TableOceanColumn<DownloadedAsset>[] = [
|
||||||
{
|
{
|
||||||
name: 'Data Set',
|
name: 'Dataset',
|
||||||
selector: (row) => <AssetTitle asset={row.asset} />
|
selector: (row) => <AssetTitle asset={row.asset} />
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -14,7 +14,7 @@ const cx = classNames.bind(styles)
|
|||||||
const clearFilters = [{ display: 'Clear', value: '' }]
|
const clearFilters = [{ display: 'Clear', value: '' }]
|
||||||
|
|
||||||
const serviceFilterItems = [
|
const serviceFilterItems = [
|
||||||
{ display: 'data sets', value: FilterByTypeOptions.Data },
|
{ display: 'datasets', value: FilterByTypeOptions.Data },
|
||||||
{ display: 'algorithms', value: FilterByTypeOptions.Algorithm }
|
{ display: 'algorithms', value: FilterByTypeOptions.Algorithm }
|
||||||
]
|
]
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user