@data-fair/catalog-data-fair 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/download.ts +21 -9
- package/lib/imports.ts +7 -2
- package/package.json +1 -1
- package/types/datafairSchemas/.type/index.d.ts +13 -0
- package/types/datafairSchemas/schema.json +31 -0
- package/types/importConfig/.type/index.js +1 -0
- package/types/importConfig/.type/validate.js +1 -1
- package/types/importConfig/schema.json +2 -1
package/lib/download.ts
CHANGED
|
@@ -55,16 +55,23 @@ const getMetaData = async ({ catalogConfig, resourceId, log, secrets }: GetResou
|
|
|
55
55
|
return field
|
|
56
56
|
})
|
|
57
57
|
|
|
58
|
+
let size: number | undefined
|
|
59
|
+
if (dataset.storage?.dataFiles && dataset.storage.dataFiles.length > 0) {
|
|
60
|
+
// get the last elt of the array to get the /full file size
|
|
61
|
+
const lastFile = dataset.storage.dataFiles[dataset.storage.dataFiles.length - 1]
|
|
62
|
+
size = lastFile.size
|
|
63
|
+
}
|
|
64
|
+
|
|
58
65
|
const resource: Resource = {
|
|
59
66
|
id: resourceId,
|
|
60
67
|
title: dataset.title,
|
|
61
68
|
description: dataset.description,
|
|
62
69
|
format: 'csv',
|
|
63
|
-
origin:
|
|
70
|
+
origin: dataset.page,
|
|
64
71
|
frequency: dataset.frequency,
|
|
65
72
|
image: dataset.image,
|
|
66
73
|
keywords: dataset.keywords,
|
|
67
|
-
size
|
|
74
|
+
size,
|
|
68
75
|
schema: dataset.schema,
|
|
69
76
|
filePath: '',
|
|
70
77
|
}
|
|
@@ -90,7 +97,7 @@ const downloadResource = async (context: GetResourceContext<DataFairConfig>, fil
|
|
|
90
97
|
const filePath = join(context.tmpDir, `${context.resourceId}.csv`)
|
|
91
98
|
try {
|
|
92
99
|
if (file && !context.importConfig.fields?.length && !context.importConfig.filters?.length) {
|
|
93
|
-
await context.log.task('downloading', 'Téléchargement en cours...
|
|
100
|
+
await context.log.task('downloading', 'Téléchargement en cours...', res.size || NaN)
|
|
94
101
|
await downloadResourceFile(filePath, context)
|
|
95
102
|
} else {
|
|
96
103
|
await context.log.task('downloading', 'Téléchargement en cours...', NaN)
|
|
@@ -124,17 +131,19 @@ const downloadResourceFile = async (filePath: string, { catalogConfig, resourceI
|
|
|
124
131
|
}
|
|
125
132
|
|
|
126
133
|
let downloaded = 0
|
|
127
|
-
let
|
|
134
|
+
let lastLogTime = Date.now()
|
|
135
|
+
const logInterval = 500 // ms
|
|
128
136
|
|
|
129
|
-
|
|
137
|
+
await new Promise<void>((resolve, reject) => {
|
|
130
138
|
const fileStream = fs.createWriteStream(filePath, { encoding: 'binary' }) // Ensure binary encoding
|
|
131
139
|
|
|
132
140
|
response.data.on('data', (chunk: Buffer) => {
|
|
133
141
|
downloaded += chunk.length
|
|
134
|
-
|
|
135
|
-
|
|
142
|
+
const now = Date.now()
|
|
143
|
+
if (now - lastLogTime > logInterval) {
|
|
144
|
+
lastLogTime = now
|
|
145
|
+
log.progress('downloading', downloaded)
|
|
136
146
|
.catch(err => console.warn('Progress logging failed:', err))
|
|
137
|
-
.finally(() => { logPromise = null })
|
|
138
147
|
}
|
|
139
148
|
})
|
|
140
149
|
|
|
@@ -157,6 +166,8 @@ const downloadResourceFile = async (filePath: string, { catalogConfig, resourceI
|
|
|
157
166
|
reject(err)
|
|
158
167
|
})
|
|
159
168
|
})
|
|
169
|
+
|
|
170
|
+
await log.progress('downloading', downloaded, downloaded)
|
|
160
171
|
}
|
|
161
172
|
|
|
162
173
|
/**
|
|
@@ -169,7 +180,7 @@ const downloadResourceFile = async (filePath: string, { catalogConfig, resourceI
|
|
|
169
180
|
* @returns A promise that resolves when the file is successfully downloaded and saved.
|
|
170
181
|
* @throws If there is an error writing the file or fetching the dataset.
|
|
171
182
|
*/
|
|
172
|
-
const downloadResourceLines = async (destFile: string, { catalogConfig, resourceId, importConfig, secrets, log }: GetResourceContext<DataFairConfig> & { importConfig: ImportConfig }) => {
|
|
183
|
+
const downloadResourceLines = async (destFile: string, { catalogConfig, resourceId, importConfig, secrets, log }: GetResourceContext<DataFairConfig> & { importConfig: ImportConfig }): Promise<void> => {
|
|
173
184
|
let url: string | null = `${catalogConfig.url}/data-fair/api/v1/datasets/${resourceId}/lines?format=csv&size=5000`
|
|
174
185
|
|
|
175
186
|
if (importConfig.fields) {
|
|
@@ -252,6 +263,7 @@ const downloadResourceLines = async (destFile: string, { catalogConfig, resource
|
|
|
252
263
|
})
|
|
253
264
|
})
|
|
254
265
|
}
|
|
266
|
+
await log.progress('downloading', downloaded, downloaded)
|
|
255
267
|
writer.end()
|
|
256
268
|
}
|
|
257
269
|
|
package/lib/imports.ts
CHANGED
|
@@ -14,11 +14,16 @@ const prepareCatalog = (dataFairDatasets: DataFairDataset[]): ResourceList => {
|
|
|
14
14
|
const catalog: ResourceList = []
|
|
15
15
|
|
|
16
16
|
for (const dataFairDataset of dataFairDatasets) {
|
|
17
|
+
let size: number | undefined
|
|
18
|
+
if (dataFairDataset.storage?.dataFiles && dataFairDataset.storage.dataFiles.length > 0) {
|
|
19
|
+
const lastFile = dataFairDataset.storage.dataFiles[dataFairDataset.storage.dataFiles.length - 1]
|
|
20
|
+
size = lastFile.size
|
|
21
|
+
}
|
|
17
22
|
catalog.push({
|
|
18
23
|
id: dataFairDataset.id,
|
|
19
24
|
title: dataFairDataset.title,
|
|
20
25
|
format: 'csv',
|
|
21
|
-
size
|
|
26
|
+
size,
|
|
22
27
|
type: 'resource',
|
|
23
28
|
origin: dataFairDataset.page
|
|
24
29
|
} as ResourceList[number])
|
|
@@ -42,7 +47,7 @@ export const listResources = async (config: ListResourcesContext<DataFairConfig,
|
|
|
42
47
|
const headers = config.secrets.apiKey ? { 'x-apiKey': config.secrets.apiKey } : undefined
|
|
43
48
|
try {
|
|
44
49
|
const res = (await axios.get(url, { params: dataFairParams, headers }))
|
|
45
|
-
if (res.status !== 200) {
|
|
50
|
+
if (res.status !== 200 || typeof res.data !== 'object') {
|
|
46
51
|
throw new Error(`HTTP error : ${res.status}, ${res.data}`)
|
|
47
52
|
}
|
|
48
53
|
data = res.data
|
package/package.json
CHANGED
|
@@ -210,6 +210,19 @@ export type DataFairDataset = {
|
|
|
210
210
|
*/
|
|
211
211
|
storage?: {
|
|
212
212
|
size?: number;
|
|
213
|
+
/**
|
|
214
|
+
* Le tableau de résultats.
|
|
215
|
+
*/
|
|
216
|
+
dataFiles?: {
|
|
217
|
+
key?: string;
|
|
218
|
+
size?: number;
|
|
219
|
+
name?: string;
|
|
220
|
+
mimetype?: string;
|
|
221
|
+
updatedAt?: string;
|
|
222
|
+
title?: string;
|
|
223
|
+
url?: string;
|
|
224
|
+
[k: string]: unknown;
|
|
225
|
+
}[];
|
|
213
226
|
[k: string]: unknown;
|
|
214
227
|
};
|
|
215
228
|
/**
|
|
@@ -347,6 +347,37 @@
|
|
|
347
347
|
"properties": {
|
|
348
348
|
"size": {
|
|
349
349
|
"type": "integer"
|
|
350
|
+
},
|
|
351
|
+
"dataFiles": {
|
|
352
|
+
"type": "array",
|
|
353
|
+
"description": "Le tableau de résultats.",
|
|
354
|
+
"items": {
|
|
355
|
+
"type": "object",
|
|
356
|
+
"properties": {
|
|
357
|
+
"key": {
|
|
358
|
+
"type": "string"
|
|
359
|
+
},
|
|
360
|
+
"size": {
|
|
361
|
+
"type": "number"
|
|
362
|
+
},
|
|
363
|
+
"name": {
|
|
364
|
+
"type": "string"
|
|
365
|
+
},
|
|
366
|
+
"mimetype": {
|
|
367
|
+
"type": "string"
|
|
368
|
+
},
|
|
369
|
+
"updatedAt": {
|
|
370
|
+
"type": "string",
|
|
371
|
+
"format": "date-time"
|
|
372
|
+
},
|
|
373
|
+
"title": {
|
|
374
|
+
"type": "string"
|
|
375
|
+
},
|
|
376
|
+
"url": {
|
|
377
|
+
"type": "string"
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
350
381
|
}
|
|
351
382
|
}
|
|
352
383
|
},
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"use strict";
|
|
5
5
|
export const validate = validate14;
|
|
6
6
|
export default validate14;
|
|
7
|
-
const schema16 = {"$id":"https://github.com/data-fair/catalog-data-fair/import-config","x-exports":["types","validate","schema"],"title":"Configuration de l'import","type":"object","additionalProperties":false,"properties":{"fields":{"type":"array","default":[],"title":"Colonnes du jeu de données","description":"La liste des colonnes à importer. Si ce champ est vide, toutes les colonnes seront importées.","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"type":{"type":"string"}}},"layout":{"getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/schema?calculated=false","itemTitle":"item.label","itemKey":"item.key"}}},"filters":{"$ref":"#/$defs/filters"}},"$defs":{"filters":{"title":"Filtres prédéfinis","type":"array","default":[],"items":{"type":"object","default":{"type":"in"},"required":["type"],"oneOf":[{"title":"Restreindre à des valeurs précises","required":["field","values","type"],"properties":{"type":{"const":"in"},"field":{"$ref":"#/$defs/filterField"},"values":{"type":"array","title":"Valeurs","description":"Importe seulement des lignes où la valeur du champ indiqué est égale à l'une des valeurs renseignées.<br>*Toutes les valeurs peuvent ne pas être affichées, écrivez pour rechercher un champ particulier.*","items":{"type":"string"},"layout":{"getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/values/${parent.data.field.key}?q={q}&q_mode=complete&size=100&stringify=true"},"props":{"clearable":true}},"default":[]}}},{"title":"Exclure des valeurs","required":["field","values","type"],"properties":{"type":{"const":"nin"},"field":{"$ref":"#/$defs/filterField"},"values":{"type":"array","title":"Valeurs à exclure","description":"Importe seulement des lignes où la valeur du champ indiqué est différente des valeurs renseignées.<br>*Toutes les valeurs peuvent ne pas être affichées, écrivez pour rechercher un champ particulier.*","items":{"type":"string"},"layout":{"getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/values/${parent.data.field.key}?q={q}&q_mode=complete&size=100&stringify=true"},"props":{"clearable":true}},"default":[]}}},{"title":"Supérieur à une valeur","required":["field","value","type"],"properties":{"type":{"const":"gte"},"field":{"$ref":"#/$defs/filterField"},"value":{"type":"string","title":"Valeur minimale","description":"Importe seulement des lignes où la valeur du champ indiqué est supérieur ou égale à la valeur renseignée. La valeur peut être un nombre, une chaîne de caractère (*ordre alphanumérique*), une date.<br>*Toutes les valeurs peuvent ne pas être affichées, écrivez pour rechercher un champ particulier.*","layout":{"comp":"combobox","getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/values/${parent.data.field.key}?q={q}&q_mode=complete&size=100&stringify=true&sort=asc"}}}}},{"title":"Inférieur à une valeur","required":["field","value","type"],"properties":{"type":{"const":"lte"},"field":{"$ref":"#/$defs/filterField"},"value":{"type":"string","title":"Valeur maximale","description":"Importe seulement les lignes où la valeur du champ indiqué est inférieur à la valeur renseignée. La valeur peut être un nombre, une chaîne de caractère (*ordre alphanumérique*), une date.<br>*Toutes les valeurs peuvent ne pas être affichées, écrivez pour rechercher un champ particulier.*","layout":{"comp":"combobox","getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/values/${parent.data.field.key}?q={q}&q_mode=complete&size=100&stringify=true&sort=asc"}}}}},{"title":"Commence par les caractères","required":["field","value","type"],"properties":{"type":{"const":"starts"},"field":{"$ref":"#/$defs/filterFieldString"},"value":{"type":"string","description":"Importe seulement les lignes où le champ (colonne) indiqué commence par une chaîne de caractères précise. La chaîne de caractères est sensible à la casse.<br>Seuls les champs (colonnes) ayant pour valeurs des chaînes de caractères sont acceptées.<br>*Toutes les valeurs peuvent ne pas être affichées, écrivez pour rechercher un champ particulier.*","title":"Commence par les caractères","layout":{"comp":"combobox","getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/values/${parent.data.field.key}?q={q}&q_mode=complete&size=100&stringify=true"}}}}}]}},"filterField":{"type":"object","title":"Colonne de filtre","properties":{"key":{"type":"string"},"label":{"type":"string"},"type":{"type":"string"}},"layout":{"getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/schema?calculated=false","itemTitle":"item.label","itemKey":"item.key"}}},"filterFieldString":{"type":"object","title":"Colonne de filtre","properties":{"key":{"type":"string"},"label":{"type":"string"},"type":{"type":"string"}},"layout":{"getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/schema?calculated=false&type=string","itemTitle":"item.label","itemKey":"item.key"}}}}};
|
|
7
|
+
const schema16 = {"$id":"https://github.com/data-fair/catalog-data-fair/import-config","x-exports":["types","validate","schema"],"title":"Configuration de l'import","type":"object","additionalProperties":false,"properties":{"fields":{"type":"array","default":[],"title":"Colonnes du jeu de données","description":"La liste des colonnes à importer. Si ce champ est vide, toutes les colonnes seront importées.","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"type":{"type":"string"}}},"layout":{"density":"compact","getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/schema?calculated=false","itemTitle":"item.label","itemKey":"item.key"}}},"filters":{"$ref":"#/$defs/filters"}},"$defs":{"filters":{"title":"Filtres prédéfinis","type":"array","default":[],"items":{"type":"object","default":{"type":"in"},"required":["type"],"oneOf":[{"title":"Restreindre à des valeurs précises","required":["field","values","type"],"properties":{"type":{"const":"in"},"field":{"$ref":"#/$defs/filterField"},"values":{"type":"array","title":"Valeurs","description":"Importe seulement des lignes où la valeur du champ indiqué est égale à l'une des valeurs renseignées.<br>*Toutes les valeurs peuvent ne pas être affichées, écrivez pour rechercher un champ particulier.*","items":{"type":"string"},"layout":{"getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/values/${parent.data.field.key}?q={q}&q_mode=complete&size=100&stringify=true"},"props":{"clearable":true}},"default":[]}}},{"title":"Exclure des valeurs","required":["field","values","type"],"properties":{"type":{"const":"nin"},"field":{"$ref":"#/$defs/filterField"},"values":{"type":"array","title":"Valeurs à exclure","description":"Importe seulement des lignes où la valeur du champ indiqué est différente des valeurs renseignées.<br>*Toutes les valeurs peuvent ne pas être affichées, écrivez pour rechercher un champ particulier.*","items":{"type":"string"},"layout":{"getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/values/${parent.data.field.key}?q={q}&q_mode=complete&size=100&stringify=true"},"props":{"clearable":true}},"default":[]}}},{"title":"Supérieur à une valeur","required":["field","value","type"],"properties":{"type":{"const":"gte"},"field":{"$ref":"#/$defs/filterField"},"value":{"type":"string","title":"Valeur minimale","description":"Importe seulement des lignes où la valeur du champ indiqué est supérieur ou égale à la valeur renseignée. La valeur peut être un nombre, une chaîne de caractère (*ordre alphanumérique*), une date.<br>*Toutes les valeurs peuvent ne pas être affichées, écrivez pour rechercher un champ particulier.*","layout":{"comp":"combobox","getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/values/${parent.data.field.key}?q={q}&q_mode=complete&size=100&stringify=true&sort=asc"}}}}},{"title":"Inférieur à une valeur","required":["field","value","type"],"properties":{"type":{"const":"lte"},"field":{"$ref":"#/$defs/filterField"},"value":{"type":"string","title":"Valeur maximale","description":"Importe seulement les lignes où la valeur du champ indiqué est inférieur à la valeur renseignée. La valeur peut être un nombre, une chaîne de caractère (*ordre alphanumérique*), une date.<br>*Toutes les valeurs peuvent ne pas être affichées, écrivez pour rechercher un champ particulier.*","layout":{"comp":"combobox","getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/values/${parent.data.field.key}?q={q}&q_mode=complete&size=100&stringify=true&sort=asc"}}}}},{"title":"Commence par les caractères","required":["field","value","type"],"properties":{"type":{"const":"starts"},"field":{"$ref":"#/$defs/filterFieldString"},"value":{"type":"string","description":"Importe seulement les lignes où le champ (colonne) indiqué commence par une chaîne de caractères précise. La chaîne de caractères est sensible à la casse.<br>Seuls les champs (colonnes) ayant pour valeurs des chaînes de caractères sont acceptées.<br>*Toutes les valeurs peuvent ne pas être affichées, écrivez pour rechercher un champ particulier.*","title":"Commence par les caractères","layout":{"comp":"combobox","getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/values/${parent.data.field.key}?q={q}&q_mode=complete&size=100&stringify=true"}}}}}]}},"filterField":{"type":"object","title":"Colonne de filtre","properties":{"key":{"type":"string"},"label":{"type":"string"},"type":{"type":"string"}},"layout":{"getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/schema?calculated=false","itemTitle":"item.label","itemKey":"item.key"}}},"filterFieldString":{"type":"object","title":"Colonne de filtre","properties":{"key":{"type":"string"},"label":{"type":"string"},"type":{"type":"string"}},"layout":{"getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/schema?calculated=false&type=string","itemTitle":"item.label","itemKey":"item.key"}}}}};
|
|
8
8
|
const schema17 = {"title":"Filtres prédéfinis","type":"array","default":[],"items":{"type":"object","default":{"type":"in"},"required":["type"],"oneOf":[{"title":"Restreindre à des valeurs précises","required":["field","values","type"],"properties":{"type":{"const":"in"},"field":{"$ref":"#/$defs/filterField"},"values":{"type":"array","title":"Valeurs","description":"Importe seulement des lignes où la valeur du champ indiqué est égale à l'une des valeurs renseignées.<br>*Toutes les valeurs peuvent ne pas être affichées, écrivez pour rechercher un champ particulier.*","items":{"type":"string"},"layout":{"getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/values/${parent.data.field.key}?q={q}&q_mode=complete&size=100&stringify=true"},"props":{"clearable":true}},"default":[]}}},{"title":"Exclure des valeurs","required":["field","values","type"],"properties":{"type":{"const":"nin"},"field":{"$ref":"#/$defs/filterField"},"values":{"type":"array","title":"Valeurs à exclure","description":"Importe seulement des lignes où la valeur du champ indiqué est différente des valeurs renseignées.<br>*Toutes les valeurs peuvent ne pas être affichées, écrivez pour rechercher un champ particulier.*","items":{"type":"string"},"layout":{"getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/values/${parent.data.field.key}?q={q}&q_mode=complete&size=100&stringify=true"},"props":{"clearable":true}},"default":[]}}},{"title":"Supérieur à une valeur","required":["field","value","type"],"properties":{"type":{"const":"gte"},"field":{"$ref":"#/$defs/filterField"},"value":{"type":"string","title":"Valeur minimale","description":"Importe seulement des lignes où la valeur du champ indiqué est supérieur ou égale à la valeur renseignée. La valeur peut être un nombre, une chaîne de caractère (*ordre alphanumérique*), une date.<br>*Toutes les valeurs peuvent ne pas être affichées, écrivez pour rechercher un champ particulier.*","layout":{"comp":"combobox","getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/values/${parent.data.field.key}?q={q}&q_mode=complete&size=100&stringify=true&sort=asc"}}}}},{"title":"Inférieur à une valeur","required":["field","value","type"],"properties":{"type":{"const":"lte"},"field":{"$ref":"#/$defs/filterField"},"value":{"type":"string","title":"Valeur maximale","description":"Importe seulement les lignes où la valeur du champ indiqué est inférieur à la valeur renseignée. La valeur peut être un nombre, une chaîne de caractère (*ordre alphanumérique*), une date.<br>*Toutes les valeurs peuvent ne pas être affichées, écrivez pour rechercher un champ particulier.*","layout":{"comp":"combobox","getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/values/${parent.data.field.key}?q={q}&q_mode=complete&size=100&stringify=true&sort=asc"}}}}},{"title":"Commence par les caractères","required":["field","value","type"],"properties":{"type":{"const":"starts"},"field":{"$ref":"#/$defs/filterFieldString"},"value":{"type":"string","description":"Importe seulement les lignes où le champ (colonne) indiqué commence par une chaîne de caractères précise. La chaîne de caractères est sensible à la casse.<br>Seuls les champs (colonnes) ayant pour valeurs des chaînes de caractères sont acceptées.<br>*Toutes les valeurs peuvent ne pas être affichées, écrivez pour rechercher un champ particulier.*","title":"Commence par les caractères","layout":{"comp":"combobox","getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/values/${parent.data.field.key}?q={q}&q_mode=complete&size=100&stringify=true"}}}}}]}};
|
|
9
9
|
const schema18 = {"type":"object","title":"Colonne de filtre","properties":{"key":{"type":"string"},"label":{"type":"string"},"type":{"type":"string"}},"layout":{"getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/schema?calculated=false","itemTitle":"item.label","itemKey":"item.key"}}};
|
|
10
10
|
const schema22 = {"type":"object","title":"Colonne de filtre","properties":{"key":{"type":"string"},"label":{"type":"string"},"type":{"type":"string"}},"layout":{"getItems":{"url":"${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/schema?calculated=false&type=string","itemTitle":"item.label","itemKey":"item.key"}}};
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"layout": {
|
|
32
|
+
"density": "compact",
|
|
32
33
|
"getItems": {
|
|
33
34
|
"url": "${context.catalogConfig.url}/data-fair/api/v1/datasets/${context.resourceId}/schema?calculated=false",
|
|
34
35
|
"itemTitle": "item.label",
|
|
@@ -249,4 +250,4 @@
|
|
|
249
250
|
}
|
|
250
251
|
}
|
|
251
252
|
}
|
|
252
|
-
}
|
|
253
|
+
}
|