diff --git a/packages/api/package.json b/packages/api/package.json index 7d16f0a0c055de2e62c4e54956b7929493205dba..282e9580e0063d4873f83dafc6f0ca818b8102d2 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -5,6 +5,7 @@ "private": true, "main": "./src/index.js", "type": "module", + "scripts": { "build": "tsc", "daily": "node --loader ts-node/esm/transpile-only ./src/scripts/daily.ts", @@ -20,12 +21,12 @@ "db:add-migration": "NODE_OPTIONS='--loader ts-node/esm/transpile-only' knex migrate:make", "db:watch": "npx --yes --package=@pgtyped/cli pgtyped -w -c pgtyped-config.json", "db:check": "npx --yes --package=@pgtyped/cli pgtyped -c pgtyped-config.ci.json", - "dev": "node --watch --loader ts-node/esm/transpile-only --inspect ./src/index.ts", + "dev": "node --watch --enable-source-maps --loader ts-node/esm/transpile-only --inspect ./src/index.ts", "daily-debug": "node --inspect-brk=3000 --loader ts-node/esm/transpile-only ./src/scripts/daily.ts", "dev:update": "npm-check-updates -u && npm install && npm audit fix", "documents:check": "node NODE_OPTIONS='--loader ts-node/esm/transpile-only' ./api/src/scripts/documents-check.ts", "lint": "prettier --write . && eslint --fix .", - "start": "node --loader ts-node/esm/transpile-only ./src/index.ts", + "start": "node --enable-source-maps --loader ts-node/esm/transpile-only ./src/index.ts", "test": "npm run test:unit && npm run test:integration", "test:unit": "vitest --environment node --root src/ --config ../vitest.unit.config.ts", "test:integration": "NODE_OPTIONS='--loader ts-node/esm/transpile-only' vitest --environment node --root src/ --config ../vitest.integration.config.ts", @@ -35,6 +36,7 @@ "matrices": "node --loader ts-node/esm/transpile-only ./src/scripts/matrices.ts" }, "@comment dependencies": { + "--enable-source-maps": "Vient de l'issue https://github.com/TypeStrong/ts-node/issues/2053", "modules esm": ".ncurc.json à ne pas updater tant que on ne compile pas pour es2020: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c. Pas simple de migrer ts-node.", "express-graphql": "bloque l'upgrade de graphql" }, diff --git a/packages/api/src/api/graphql/resolvers/titres-etapes.ts b/packages/api/src/api/graphql/resolvers/titres-etapes.ts index 51dcbfa2d71154435eb9aac5bfc8138231333fd8..7077ddd26de6044bf471a9383eb73334c20e473f 100644 --- a/packages/api/src/api/graphql/resolvers/titres-etapes.ts +++ b/packages/api/src/api/graphql/resolvers/titres-etapes.ts @@ -37,11 +37,14 @@ import { getEntrepriseDocuments } from '../../rest/entreprises.queries.js' import { deleteTitreEtapeEntrepriseDocument, getEntrepriseDocumentIdsByEtapeId, insertTitreEtapeEntrepriseDocument } from '../../../database/queries/titres-etapes.queries.js' import { EntrepriseDocument, EntrepriseId } from 'camino-common/src/entreprise.js' import { Pool } from 'pg' -import { getGeojsonInformation } from '../../rest/perimetre.queries.js' +import { convertPoints, getGeojsonInformation } from '../../rest/perimetre.queries.js' import { SDOMZoneId } from 'camino-common/src/static/sdom.js' import { getSecteurMaritime } from 'camino-common/src/static/facades.js' import { FeatureCollectionPoints, FeatureMultiPolygon, equalGeojson } from 'camino-common/src/perimetre.js' import { FieldsEtape } from '../../../database/queries/_options' +import { canHaveForages } from 'camino-common/src/permissions/titres.js' +import { GEO_SYSTEME_IDS } from 'camino-common/src/static/geoSystemes.js' +import { TitreTypeId } from 'camino-common/src/static/titresTypes.js' const statutIdAndDateGet = (etape: ITitreEtape, user: User, depose = false): { date: CaminoDate; statutId: EtapeStatutId } => { const result = { date: etape.date, statutId: etape.statutId } @@ -167,6 +170,25 @@ export const arePointsOnPerimeter = (perimetre: FeatureMultiPolygon, points: Fea }) } +const getForagesProperties = async ( + titreTypeId: TitreTypeId, + geojsonOrigineGeoSystemeId: ITitreEtape['geojsonOrigineGeoSystemeId'], + geojsonOrigineForages: ITitreEtape['geojsonOrigineForages'], + pool: Pool +): Promise<Pick<ITitreEtape, 'geojson4326Forages' | 'geojsonOrigineForages'>> => { + if (canHaveForages(titreTypeId) && isNotNullNorUndefined(geojsonOrigineForages) && isNotNullNorUndefined(geojsonOrigineGeoSystemeId)) { + return { + geojson4326Forages: await convertPoints(pool, geojsonOrigineGeoSystemeId, GEO_SYSTEME_IDS.WGS84, geojsonOrigineForages), + geojsonOrigineForages, + } + } + + return { + geojson4326Forages: null, + geojsonOrigineForages: null, + } +} + const etapeCreer = async ({ etape }: { etape: ITitreEtape }, context: Context, info: GraphQLResolveInfo) => { try { const user = context.user @@ -233,6 +255,9 @@ const etapeCreer = async ({ etape }: { etape: ITitreEtape }, context: Context, i if (!titreTypeId) { throw new Error(`le type du titre de la ${titreDemarche.id} n'est pas chargé`) } + + etape = { ...etape, ...(await getForagesProperties(titreTypeId, etape.geojsonOrigineGeoSystemeId, etape.geojsonOrigineForages, context.pool)) } + const rulesErrors = titreEtapeUpdationValidate(etape, titreDemarche, titreDemarche.titre, documents, entrepriseDocuments, sdomZones, user) if (rulesErrors.length) { throw new Error(rulesErrors.join(', ')) @@ -427,6 +452,8 @@ const etapeModifier = async ({ etape }: { etape: ITitreEtape }, context: Context throw new Error(`le type du titre de la ${titreDemarche.id} n'est pas chargé`) } + etape = { ...etape, ...(await getForagesProperties(titreTypeId, etape.geojsonOrigineGeoSystemeId, etape.geojsonOrigineForages, context.pool)) } + const rulesErrors = titreEtapeUpdationValidate(etape, titreDemarche, titreDemarche.titre, documents, entrepriseDocuments, sdomZones, user, titreEtapeOld) if (rulesErrors.length) { diff --git a/packages/api/src/api/graphql/schemas/titres-etapes.graphql b/packages/api/src/api/graphql/schemas/titres-etapes.graphql index 8bc79cf6be6b2d19131b0564499f4de4579ae24c..e35e1a00195c76800fc7b0a3f5c1363f6cfe6a5b 100644 --- a/packages/api/src/api/graphql/schemas/titres-etapes.graphql +++ b/packages/api/src/api/graphql/schemas/titres-etapes.graphql @@ -87,6 +87,8 @@ type Etape { geojson4326Points: Json geojsonOriginePoints: Json geojsonOriginePerimetre: Json + geojson4326Forages: Json + geojsonOrigineForages: Json geojsonOrigineGeoSystemeId: String } @@ -118,6 +120,8 @@ type EtapeHeritage { geojsonOriginePoints: Json geojsonOriginePerimetre: Json geojsonOrigineGeoSystemeId: String + geojson4326Forages: Json + geojsonOrigineForages: Json "Titulaires du titre dans son dernier état de validité" titulaires: [Entreprise] @@ -165,6 +169,7 @@ input InputEtapeCreation { geojson4326Points: Json geojsonOriginePoints: Json geojsonOriginePerimetre: Json + geojsonOrigineForages: Json geojsonOrigineGeoSystemeId: String titulaires: [InputEtapeEntreprise!] amodiataires: [InputEtapeEntreprise!] @@ -200,6 +205,7 @@ input InputEtapeModification { geojson4326Points: Json geojsonOriginePoints: Json geojsonOriginePerimetre: Json + geojsonOrigineForages: Json geojsonOrigineGeoSystemeId: String } diff --git a/packages/api/src/api/rest/__snapshots__/perimetre.test.integration.ts.snap b/packages/api/src/api/rest/__snapshots__/perimetre.test.integration.ts.snap index 7d42b722d3af0e676826420a177f0702ae230330..672c1f0e898a50d256b4186bf900b7f3a8d2bc92 100644 --- a/packages/api/src/api/rest/__snapshots__/perimetre.test.integration.ts.snap +++ b/packages/api/src/api/rest/__snapshots__/perimetre.test.integration.ts.snap @@ -1880,3 +1880,82 @@ exports[`geojsonImport > fichier valide geojson 2154 1`] = ` "surface": 51.48, } `; + +exports[`geojsonImportForages > csv valide en 2972 1`] = ` +{ + "geojson4326": { + "features": [ + { + "geometry": { + "coordinates": [ + -40.598937151159184, + 61.54628068732175, + ], + "type": "Point", + }, + "properties": { + "description": "Point A", + "nom": "A", + "profondeur": 12.12, + "type": "rejet", + }, + "type": "Feature", + }, + { + "geometry": { + "coordinates": [ + -40.37064788704864, + 61.5292784396591, + ], + "type": "Point", + }, + "properties": { + "description": "Point B", + "nom": "B", + "profondeur": 12.12, + "type": "captage", + }, + "type": "Feature", + }, + ], + "type": "FeatureCollection", + }, + "origin": { + "features": [ + { + "geometry": { + "coordinates": [ + 1051195.1083143658, + 6867800.046355472, + ], + "type": "Point", + }, + "properties": { + "description": "Point A", + "nom": "A", + "profondeur": 12.12, + "type": "rejet", + }, + "type": "Feature", + }, + { + "geometry": { + "coordinates": [ + 1063526.39792456, + 6867885.978687251, + ], + "type": "Point", + }, + "properties": { + "description": "Point B", + "nom": "B", + "profondeur": 12.12, + "type": "captage", + }, + "type": "Feature", + }, + ], + "type": "FeatureCollection", + }, +} +`; diff --git a/packages/api/src/api/rest/demarches.queries.ts b/packages/api/src/api/rest/demarches.queries.ts index bb54c6b5eaac70ed915a670f025e487f90be506d..9195446b9b2b84984145c77abbd95b789ee74244 100644 --- a/packages/api/src/api/rest/demarches.queries.ts +++ b/packages/api/src/api/rest/demarches.queries.ts @@ -16,7 +16,7 @@ import { sectionValidator } from 'camino-common/src/static/titresTypes_demarches import { sdomZoneIdValidator } from 'camino-common/src/static/sdom.js' import { foretIdValidator } from 'camino-common/src/static/forets.js' import { Pool } from 'pg' -import { featureCollectionPointsValidator, featureMultiPolygonValidator, multiPolygonValidator } from 'camino-common/src/perimetre.js' +import { featureCollectionForagesValidator, featureCollectionPointsValidator, featureMultiPolygonValidator, multiPolygonValidator } from 'camino-common/src/perimetre.js' import { etapeHeritagePropsValidator } from 'camino-common/src/heritage.js' import { titreIdValidator } from 'camino-common/src/validators/titres.js' import { demarcheTypeIdValidator } from 'camino-common/src/static/demarchesTypes.js' @@ -49,6 +49,8 @@ const getEtapesByDemarcheIdDbValidator = z.object({ geojson_origine_points: featureCollectionPointsValidator.nullable(), geojson_origine_perimetre: featureMultiPolygonValidator.nullable(), geojson_origine_geo_systeme_id: geoSystemeIdValidator.nullable(), + geojson4326_forages: featureCollectionForagesValidator.nullable(), + geojson_origine_forages: featureCollectionForagesValidator.nullable(), }) export const getEtapesByDemarcheId = async (pool: Pool, demarcheId: DemarcheId) => { @@ -82,7 +84,9 @@ select e.geojson4326_points as geojson4326_points, e.geojson_origine_points, e.geojson_origine_perimetre, - e.geojson_origine_geo_systeme_id + e.geojson_origine_geo_systeme_id, + e.geojson4326_forages, + e.geojson_origine_forages from titres_etapes e where diff --git a/packages/api/src/api/rest/demarches.queries.types.ts b/packages/api/src/api/rest/demarches.queries.types.ts index 9bd3749cdf71d03655e754922c0104a81df68917..abd04dde8a6c7058b858c6f162355dd3c17d8724 100644 --- a/packages/api/src/api/rest/demarches.queries.types.ts +++ b/packages/api/src/api/rest/demarches.queries.types.ts @@ -21,9 +21,11 @@ export interface IGetEtapesByDemarcheIdDbResult { etape_statut_id: string; etape_type_id: string; forets: Json; + geojson_origine_forages: Json | null; geojson_origine_geo_systeme_id: string | null; geojson_origine_perimetre: Json | null; geojson_origine_points: Json | null; + geojson4326_forages: Json | null; geojson4326_perimetre: Json | null; geojson4326_points: Json | null; heritage_contenu: Json | null; diff --git a/packages/api/src/api/rest/format/titres.ts b/packages/api/src/api/rest/format/titres.ts index 0fa5822a806f2755b2da0fba220184ac201342a7..f1941118cadc247e9e5e4695f115dbda4e959241 100644 --- a/packages/api/src/api/rest/format/titres.ts +++ b/packages/api/src/api/rest/format/titres.ts @@ -89,7 +89,7 @@ export const titresTableFormat = async (pool: Pool, titres: ITitre[]) => { facades_maritimes: getFacadesMaritimeCell(titre.secteursMaritime, separator), departements: departements.join(separator), regions: regions.join(separator), - administrations_noms: titre.administrations!.map(id => Administrations[id].nom).join(separator), + administrations_noms: titre.administrations?.map(id => Administrations[id].nom).join(separator), titulaires_noms: titre.titulaires?.map(e => e.nom).join(separator), titulaires_adresses: titre.titulaires?.map(e => `${e.adresse} ${e.codePostal} ${e.commune}`).join(separator), titulaires_legal: titre.titulaires?.map(e => e.legalEtranger || e.legalSiren).join(separator), @@ -133,7 +133,7 @@ export const titreGeojsonPropertiesFormat = (communesIndex: Record<CommuneId, st facades_maritimes: getFacadesComputed(titre.secteursMaritime).map(({ facade }) => facade), departements, regions, - administrations_noms: titre.administrations!.map(id => Administrations[id].nom), + administrations_noms: titre.administrations?.map(id => Administrations[id].nom), titulaires_noms: titre.titulaires?.map(e => e.nom) || null, titulaires_legal: titre.titulaires?.map(e => e.legalEtranger || e.legalSiren) || null, amodiataires_noms: titre.amodiataires?.map(e => e.nom) || null, diff --git a/packages/api/src/api/rest/perimetre.queries.ts b/packages/api/src/api/rest/perimetre.queries.ts index c671d0e831e5d341ab6b6e6547e70626d2085d85..0e983e8fcf875646d5b46d486264d55e61d335c4 100644 --- a/packages/api/src/api/rest/perimetre.queries.ts +++ b/packages/api/src/api/rest/perimetre.queries.ts @@ -4,7 +4,7 @@ import { Redefine, dbQueryAndValidate } from '../../pg-database.js' import { z } from 'zod' import { Pool } from 'pg' import { GeoSystemeId } from 'camino-common/src/static/geoSystemes.js' -import { FeatureCollectionPoints, FeatureMultiPolygon, MultiPoint, MultiPolygon, featureMultiPolygonValidator, multiPointsValidator, multiPolygonValidator } from 'camino-common/src/perimetre.js' +import { FeatureMultiPolygon, GenericFeatureCollection, MultiPoint, MultiPolygon, featureMultiPolygonValidator, multiPointsValidator, multiPolygonValidator } from 'camino-common/src/perimetre.js' import { IConvertMultiPointDbQuery, IGetGeojsonByGeoSystemeIdDbQuery, IGetGeojsonInformationDbQuery, IGetTitresIntersectionWithGeojsonDbQuery } from './perimetre.queries.types.js' import { TitreStatutId, TitresStatutIds, titreStatutIdValidator } from 'camino-common/src/static/titresStatuts.js' import { DOMAINES_IDS, DomaineId } from 'camino-common/src/static/domaines.js' @@ -16,7 +16,12 @@ import { sdomZoneIdValidator } from 'camino-common/src/static/sdom.js' import { isNullOrUndefined } from 'camino-common/src/typescript-tools.js' import { KM2, km2Validator, m2Validator } from 'camino-common/src/number.js' -export const convertPoints = async (pool: Pool, fromGeoSystemeId: GeoSystemeId, toGeoSystemeId: GeoSystemeId, geojsonPoints: FeatureCollectionPoints): Promise<FeatureCollectionPoints> => { +export const convertPoints = async <T extends z.ZodTypeAny>( + pool: Pool, + fromGeoSystemeId: GeoSystemeId, + toGeoSystemeId: GeoSystemeId, + geojsonPoints: GenericFeatureCollection<T> +): Promise<GenericFeatureCollection<T>> => { if (fromGeoSystemeId === toGeoSystemeId) { return geojsonPoints } diff --git a/packages/api/src/api/rest/perimetre.test.integration.ts b/packages/api/src/api/rest/perimetre.test.integration.ts index f3f0d1a2a7279662e907c670403beab333c6475a..03a6ddc203570b9d23ace6086bbe98910aa7a808 100644 --- a/packages/api/src/api/rest/perimetre.test.integration.ts +++ b/packages/api/src/api/rest/perimetre.test.integration.ts @@ -6,11 +6,13 @@ import type { Pool } from 'pg' import { HTTP_STATUS } from 'camino-common/src/http.js' import { FeatureCollection, + FeatureCollectionForages, FeatureCollectionPoints, featureCollectionPointsValidator, FeatureCollectionPolygon, FeatureMultiPolygon, GeojsonImportBody, + GeojsonImportForagesBody, GeojsonImportPointsBody, } from 'camino-common/src/perimetre.js' import { GEO_SYSTEME_IDS, GeoSystemeId, sortedGeoSystemes } from 'camino-common/src/static/geoSystemes.js' @@ -1137,3 +1139,196 @@ describe('geojsonImportPoints', () => { `) }) }) + +describe('geojsonImportForages', () => { + test('fichier geojson invalide', async () => { + const fileName = `existing_temp_file_${idGenerate()}.geojson` + mkdirSync(dir, { recursive: true }) + writeFileSync(`${dir}/${fileName}`, 'Hey there!') + const body: GeojsonImportForagesBody = { + tempDocumentName: tempDocumentNameValidator.parse(fileName), + fileType: 'geojson', + } + + const tested = await restPostCall(dbPool, '/rest/geojson_forages/import/:geoSystemeId', { geoSystemeId: GEO_SYSTEME_IDS.WGS84 }, userSuper, body) + expect(tested.statusCode).toBe(HTTP_STATUS.HTTP_STATUS_BAD_REQUEST) + }) + + test('fichier geojson valide sans conversion', async () => { + const feature: FeatureCollectionForages = { + type: 'FeatureCollection', + features: [ + { + type: 'Feature', + geometry: { type: 'Point', coordinates: [-52.54, 4.22269896902571] }, + properties: { nom: 'A', description: 'Une description du point A', profondeur: 10.12, type: 'captage' }, + }, + ], + } + const fileName = `existing_temp_file_${idGenerate()}.geojson` + mkdirSync(dir, { recursive: true }) + writeFileSync(`${dir}/${fileName}`, JSON.stringify(feature)) + const body: GeojsonImportForagesBody = { + tempDocumentName: tempDocumentNameValidator.parse(fileName), + fileType: 'geojson', + } + + const tested = await restPostCall(dbPool, '/rest/geojson_forages/import/:geoSystemeId', { geoSystemeId: GEO_SYSTEME_IDS.WGS84 }, userSuper, body) + expect(tested.statusCode).toBe(HTTP_STATUS.HTTP_STATUS_OK) + expect(tested.body).toMatchInlineSnapshot(` + { + "geojson4326": { + "features": [ + { + "geometry": { + "coordinates": [ + -52.54, + 4.22269896902571, + ], + "type": "Point", + }, + "properties": { + "description": "Une description du point A", + "nom": "A", + "profondeur": 10.12, + "type": "captage", + }, + "type": "Feature", + }, + ], + "type": "FeatureCollection", + }, + "origin": { + "features": [ + { + "geometry": { + "coordinates": [ + -52.54, + 4.22269896902571, + ], + "type": "Point", + }, + "properties": { + "description": "Une description du point A", + "nom": "A", + "profondeur": 10.12, + "type": "captage", + }, + "type": "Feature", + }, + ], + "type": "FeatureCollection", + }, + } + `) + }) + + test('geojson valide avec conversion', async () => { + const feature: FeatureCollectionForages = { + type: 'FeatureCollection', + features: [ + { + type: 'Feature', + geometry: { type: 'Point', coordinates: [1051195.108314365847036, 6867800.046355471946299] }, + properties: { nom: 'A', description: 'Une description du point A', profondeur: 11.1, type: 'rejet' }, + }, + ], + } + const fileName = `existing_temp_file_${idGenerate()}.geojson` + mkdirSync(dir, { recursive: true }) + writeFileSync(`${dir}/${fileName}`, JSON.stringify(feature)) + const body: GeojsonImportForagesBody = { + tempDocumentName: tempDocumentNameValidator.parse(fileName), + fileType: 'geojson', + } + + const tested = await restPostCall(dbPool, '/rest/geojson_forages/import/:geoSystemeId', { geoSystemeId: GEO_SYSTEME_IDS['RGF93 / Lambert-93'] }, userSuper, body) + expect(tested.statusCode).toBe(HTTP_STATUS.HTTP_STATUS_OK) + expect(tested.body).toMatchInlineSnapshot(` + { + "geojson4326": { + "features": [ + { + "geometry": { + "coordinates": [ + 7.785447944275908, + 48.81446215755622, + ], + "type": "Point", + }, + "properties": { + "description": "Une description du point A", + "nom": "A", + "profondeur": 11.1, + "type": "rejet", + }, + "type": "Feature", + }, + ], + "type": "FeatureCollection", + }, + "origin": { + "features": [ + { + "geometry": { + "coordinates": [ + 1051195.1083143658, + 6867800.046355472, + ], + "type": "Point", + }, + "properties": { + "description": "Une description du point A", + "nom": "A", + "profondeur": 11.1, + "type": "rejet", + }, + "type": "Feature", + }, + ], + "type": "FeatureCollection", + }, + } + `) + }) + + test('csv valide en 2972', async () => { + const fileName = `existing_temp_file_${idGenerate()}.csv` + mkdirSync(dir, { recursive: true }) + writeFileSync( + `${dir}/${fileName}`, + `nom;description;x;y;profondeur;type +A;Point A;1051195.108314365847036;6867800.046355471946299;12.12;rejet +B;Point B;1063526.397924559889361;6867885.978687250986695;12,12;captage` + ) + const body: GeojsonImportForagesBody = { + tempDocumentName: tempDocumentNameValidator.parse(fileName), + fileType: 'csv', + } + + const tested = await restPostCall(dbPool, '/rest/geojson_forages/import/:geoSystemeId', { geoSystemeId: GEO_SYSTEME_IDS['RGFG95 / UTM zone 22N'] }, userSuper, body) + expect(tested.statusCode).toBe(HTTP_STATUS.HTTP_STATUS_OK) + expect(tested.body).toMatchSnapshot() + + const testedWithError = await restPostCall(dbPool, '/rest/geojson_forages/import/:geoSystemeId', { geoSystemeId: GEO_SYSTEME_IDS.WGS84 }, userSuper, body) + expect(testedWithError.statusCode).toBe(HTTP_STATUS.HTTP_STATUS_BAD_REQUEST) + }) + + test('csv invalide en 2972', async () => { + const fileName = `existing_temp_file_${idGenerate()}.csv` + mkdirSync(dir, { recursive: true }) + writeFileSync( + `${dir}/${fileName}`, + `nom;description;x;y;profondeur;type +A;Point A;1051195.108314365847036;6867800.046355471946299;1212;1212 +B;Point B;1063526.397924559889361;6867885.978687250986695;12.12;12,12` + ) + const body: GeojsonImportForagesBody = { + tempDocumentName: tempDocumentNameValidator.parse(fileName), + fileType: 'csv', + } + + const tested = await restPostCall(dbPool, '/rest/geojson_forages/import/:geoSystemeId', { geoSystemeId: GEO_SYSTEME_IDS['RGFG95 / UTM zone 22N'] }, userSuper, body) + expect(tested.statusCode).toBe(HTTP_STATUS.HTTP_STATUS_BAD_REQUEST) + }) +}) diff --git a/packages/api/src/api/rest/perimetre.ts b/packages/api/src/api/rest/perimetre.ts index 1ab56b19b56b817456c341b47c8d04ef4f865467..683ed5f859dee8be1684e22d68df1576b46f81ab 100644 --- a/packages/api/src/api/rest/perimetre.ts +++ b/packages/api/src/api/rest/perimetre.ts @@ -25,6 +25,11 @@ import { polygonValidator, featureCollectionPolygonValidator, GeojsonImportPointsResponse, + GeojsonImportForagesResponse, + featureCollectionForagesValidator, + FeatureCollectionForages, + featureForagePropertiesValidator, + geojsonImportForagesBodyValidator, } from 'camino-common/src/perimetre.js' import { join } from 'node:path' import { readFileSync } from 'node:fs' @@ -35,7 +40,7 @@ import { TitreSlug } from 'camino-common/src/validators/titres.js' import { canReadEtape } from './permissions/etapes.js' import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js' import xlsx from 'xlsx' -import { z } from 'zod' +import { ZodTypeAny, z } from 'zod' export const convertGeojsonPointsToGeoSystemeId = (pool: Pool) => async (req: CaminoRequest, res: CustomResponse<FeatureCollectionPoints>) => { const geoSystemeIdParsed = geoSystemeIdValidator.safeParse(req.params.geoSystemeId) @@ -157,8 +162,8 @@ const csvCommonValidator = z }) const csvCommonLowerValidator = z.object({ nom: z.string(), description: z.string().optional() }) -const csvMetreToJsonValidator = z.array(csvCommonValidator.pipe(csvCommonLowerValidator.extend({ x: csvInputNumberValidator, y: csvInputNumberValidator }))) -const csvDegToJsonValidator = z.array(csvCommonValidator.pipe(csvCommonLowerValidator.extend({ longitude: csvInputNumberValidator, latitude: csvInputNumberValidator }))) +const makeCsvToJsonValidator = <T extends ZodTypeAny>(pointValidator: T) => z.array(csvCommonValidator.pipe(pointValidator)) + export const geojsonImport = (pool: Pool) => async (req: CaminoRequest, res: CustomResponse<GeojsonInformations>) => { const user = req.auth @@ -235,6 +240,7 @@ export const geojsonImport = (pool: Pool) => async (req: CaminoRequest, res: Cus let points: FeatureCollectionPoints['features'] switch (uniteId) { case 'met': { + const csvMetreToJsonValidator = makeCsvToJsonValidator(csvCommonLowerValidator.extend({ x: csvInputNumberValidator, y: csvInputNumberValidator })) const rows = csvMetreToJsonValidator.parse(converted) coordinates = [[rows.map(({ x, y }) => [x, y])]] points = rows.map(ligne => ({ @@ -248,6 +254,7 @@ export const geojsonImport = (pool: Pool) => async (req: CaminoRequest, res: Cus } case 'gon': case 'deg': { + const csvDegToJsonValidator = makeCsvToJsonValidator(csvCommonLowerValidator.extend({ longitude: csvInputNumberValidator, latitude: csvInputNumberValidator })) const rows = csvDegToJsonValidator.parse(converted) coordinates = [[rows.map(({ longitude, latitude }) => [longitude, latitude])]] points = rows.map(ligne => ({ @@ -336,6 +343,112 @@ export const geojsonImportPoints = (pool: Pool) => async (req: CaminoRequest, re } } +export const geojsonImportForages = (pool: Pool) => async (req: CaminoRequest, res: CustomResponse<GeojsonImportForagesResponse>) => { + const user = req.auth + + const geoSystemeId = geoSystemeIdValidator.safeParse(req.params.geoSystemeId) + if (!user || isDefault(user)) { + res.sendStatus(HTTP_STATUS.HTTP_STATUS_FORBIDDEN) + } else if (!geoSystemeId.success) { + console.warn(`le geoSystemeId est obligatoire`) + res.sendStatus(HTTP_STATUS.HTTP_STATUS_FORBIDDEN) + } else { + const geojsonImportInput = geojsonImportForagesBodyValidator.safeParse(req.body) + + if (geojsonImportInput.success) { + try { + const filename = geojsonImportInput.data.tempDocumentName + + const pathFrom = join(process.cwd(), `/files/tmp/${filename}`) + const fileType = geojsonImportInput.data.fileType + let features: FeatureCollectionForages + switch (fileType) { + case 'geojson': { + const fileContent = readFileSync(pathFrom) + features = featureCollectionForagesValidator.parse(JSON.parse(fileContent.toString())) + + break + } + + case 'shp': { + const fileContent = readFileSync(pathFrom) + const shpParsed = shpjs.parseShp(fileContent) + features = featureCollectionForagesValidator.parse(shpParsed) + + break + } + + case 'csv': { + const fileContent = readFileSync(pathFrom, { encoding: 'utf-8' }) + const result = xlsx.read(fileContent, { type: 'string', FS: ';', raw: true }) + + if (result.SheetNames.length !== 1) { + throw new Error(`une erreur est survenue lors de la lecture du csv, il ne devrait y avoir qu'un seul document ${result.SheetNames}`) + } + const sheet1 = result.Sheets[result.SheetNames[0]] + const converted = xlsx.utils.sheet_to_json(sheet1, { raw: true }) + const uniteId = GeoSystemes[geoSystemeId.data].uniteId + + let coordinates: MultiPolygon['coordinates'] + let points: FeatureCollectionForages['features'] + + switch (uniteId) { + case 'met': { + const csvMetreToJsonValidator = makeCsvToJsonValidator( + featureForagePropertiesValidator.omit({ profondeur: true }).extend({ x: csvInputNumberValidator, y: csvInputNumberValidator, profondeur: csvInputNumberValidator }) + ) + + const rows = csvMetreToJsonValidator.parse(converted) + coordinates = [[rows.map(({ x, y }) => [x, y])]] + points = rows.map(ligne => ({ + type: 'Feature', + properties: { nom: ligne.nom, description: ligne.description, profondeur: ligne.profondeur, type: ligne.type }, + geometry: { type: 'Point', coordinates: [ligne.x, ligne.y] }, + })) + + coordinates[0][0].push([rows[0].x, rows[0].y]) + break + } + case 'gon': + case 'deg': { + const csvDegToJsonValidator = makeCsvToJsonValidator( + featureForagePropertiesValidator.omit({ profondeur: true }).extend({ longitude: csvInputNumberValidator, latitude: csvInputNumberValidator, profondeur: csvInputNumberValidator }) + ) + const rows = csvDegToJsonValidator.parse(converted) + coordinates = [[rows.map(({ longitude, latitude }) => [longitude, latitude])]] + points = rows.map(ligne => ({ + type: 'Feature', + properties: { nom: ligne.nom, description: ligne.description, profondeur: ligne.profondeur, type: ligne.type }, + geometry: { type: 'Point', coordinates: [ligne.longitude, ligne.latitude] }, + })) + coordinates[0][0].push([rows[0].longitude, rows[0].latitude]) + break + } + default: + exhaustiveCheck(uniteId) + throw new Error('Cas impossible mais typescript ne voit pas que exhaustiveCheck throw une exception') + } + features = { type: 'FeatureCollection', features: points } + break + } + default: { + exhaustiveCheck(fileType) + throw new Error('Cas impossible mais typescript ne voit pas que exhaustiveCheck throw une exception') + } + } + + const conversion = await convertPoints(pool, geoSystemeId.data, GEO_SYSTEME_IDS.WGS84, features) + res.json({ geojson4326: conversion, origin: features }) + } catch (e: any) { + console.error(e) + res.status(HTTP_STATUS.HTTP_STATUS_BAD_REQUEST).send(e) + } + } else { + res.status(HTTP_STATUS.HTTP_STATUS_BAD_REQUEST).send(geojsonImportInput.error) + } + } +} + const getAlertesSuperposition = async (geojson4326_perimetre: MultiPolygon | null, titreTypeId: TitreTypeId, titreSlug: TitreSlug, user: User, pool: Pool) => { if (titreTypeId === 'axm' && (isSuper(user) || isAdministrationAdmin(user) || isAdministrationEditeur(user)) && geojson4326_perimetre !== null) { // vérifie qu’il n’existe pas de demandes de titres en cours sur ce périmètre diff --git a/packages/api/src/api/rest/titres.queries.ts b/packages/api/src/api/rest/titres.queries.ts index 4f3d39d11986f5a7cb47255b78aa93a7f09ea1df..94c1779372ebe4271a0264501c932bb656374793 100644 --- a/packages/api/src/api/rest/titres.queries.ts +++ b/packages/api/src/api/rest/titres.queries.ts @@ -112,6 +112,8 @@ export const getTitre = async (pool: Pool, user: User, idOrSlug: TitreIdOrSlug): geojson_origine_points: etape.geojson_origine_points, geojson_origine_perimetre: etape.geojson_origine_perimetre, geojson_origine_geo_systeme_id: etape.geojson_origine_geo_systeme_id, + geojson4326_forages: etape.geojson4326_forages, + geojson_origine_forages: etape.geojson_origine_forages, communes, secteurs_maritimes: etape.secteurs_maritime ?? [], sdom_zones: etape.sdom_zones ?? [], diff --git a/packages/api/src/business/processes/__snapshots__/titres-etapes-areas-update.test.integration.ts.snap b/packages/api/src/business/processes/__snapshots__/titres-etapes-areas-update.test.integration.ts.snap index 7e5addc243223bc8283d65c6ddbe2f5eed46c7a6..eb02521fad086fa6d5fc22c824b090a16ecfb996 100644 --- a/packages/api/src/business/processes/__snapshots__/titres-etapes-areas-update.test.integration.ts.snap +++ b/packages/api/src/business/processes/__snapshots__/titres-etapes-areas-update.test.integration.ts.snap @@ -25,6 +25,7 @@ exports[`titresEtapesAreasUpdate > met à jour les communes, forêts et zone du "forets": [ "DBR", ], + "geojson4326Forages": null, "geojson4326Perimetre": { "geometry": { "coordinates": [ @@ -59,6 +60,7 @@ exports[`titresEtapesAreasUpdate > met à jour les communes, forêts et zone du "type": "Feature", }, "geojson4326Points": null, + "geojsonOrigineForages": null, "geojsonOrigineGeoSystemeId": "4326", "geojsonOriginePerimetre": { "geometry": { @@ -157,6 +159,7 @@ exports[`titresEtapesAreasUpdate > met à jour les communes, forêts et zone du "forets": [ "DBR", ], + "geojson4326Forages": null, "geojson4326Perimetre": { "geometry": { "coordinates": [ @@ -191,6 +194,7 @@ exports[`titresEtapesAreasUpdate > met à jour les communes, forêts et zone du "type": "Feature", }, "geojson4326Points": null, + "geojsonOrigineForages": null, "geojsonOrigineGeoSystemeId": "4326", "geojsonOriginePerimetre": { "geometry": { diff --git a/packages/api/src/business/utils/titre-etape-heritage-props-find.ts b/packages/api/src/business/utils/titre-etape-heritage-props-find.ts index 2f46086a8ec2a4d96b32be9325f7a2ecc3358c85..4b8136e0b7d1bd83a2d3364a988b4fab653e313d 100644 --- a/packages/api/src/business/utils/titre-etape-heritage-props-find.ts +++ b/packages/api/src/business/utils/titre-etape-heritage-props-find.ts @@ -1,4 +1,4 @@ -import { ITitreEtape, IEntreprise, ITitreEntreprise } from '../../types.js' +import { ITitreEtape, IEntreprise, ITitreEntreprise, ITitreEtapePerimetre } from '../../types.js' import { objectClone } from '../../tools/index.js' import { SubstanceLegaleId } from 'camino-common/src/static/substancesLegales.js' import { CaminoDate } from 'camino-common/src/date.js' @@ -82,11 +82,20 @@ export const titreEtapeHeritagePropsFind = (titreEtape: ITitreEtape, prevTitreEt newTitreEtape = objectClone(newTitreEtape) switch (propId) { - case 'perimetre': - newTitreEtape.geojson4326Perimetre = prevTitreEtape.geojson4326Perimetre - newTitreEtape.geojson4326Points = prevTitreEtape.geojson4326Points - newTitreEtape.surface = prevTitreEtape.surface + case 'perimetre': { + const perimetre: ITitreEtapePerimetre = { + geojson4326Perimetre: prevTitreEtape.geojson4326Perimetre, + geojson4326Points: prevTitreEtape.geojson4326Points, + geojsonOrigineGeoSystemeId: prevTitreEtape.geojsonOrigineGeoSystemeId, + geojsonOriginePoints: prevTitreEtape.geojsonOriginePoints, + geojsonOriginePerimetre: prevTitreEtape.geojsonOriginePerimetre, + geojsonOrigineForages: prevTitreEtape.geojsonOrigineForages, + geojson4326Forages: prevTitreEtape.geojson4326Forages, + surface: prevTitreEtape.surface ?? 0, + } + newTitreEtape = { ...newTitreEtape, ...perimetre } break + } case 'amodiataires': case 'titulaires': newTitreEtape[propId] = newValue as IEntreprise[] diff --git a/packages/api/src/knex/migrations/20240312103907_add_titres-etapes_geojson_forage.ts b/packages/api/src/knex/migrations/20240312103907_add_titres-etapes_geojson_forage.ts new file mode 100644 index 0000000000000000000000000000000000000000..3fbb99df520c11af39ab9e0ef4db2b6751d868bf --- /dev/null +++ b/packages/api/src/knex/migrations/20240312103907_add_titres-etapes_geojson_forage.ts @@ -0,0 +1,12 @@ +import { Knex } from 'knex' + +export const up = async (knex: Knex) => { + await knex.raw('alter table titres_etapes add column geojson4326_forages JSONB') + await knex.raw('alter table titres_etapes add column geojson_origine_forages JSONB') + + await knex.raw( + 'ALTER TABLE titres_etapes ADD CONSTRAINT forages_origine_not_null_when_forages4326_not_null CHECK (("geojson4326_forages", "geojson_origine_forages") IS NULL OR ("geojson4326_forages", "geojson_origine_forages") IS NOT NULL)' + ) +} + +export const down = () => ({}) diff --git a/packages/api/src/server/rest.ts b/packages/api/src/server/rest.ts index 31375be773ee34c5427e70548bfb83feb19090f0..f0e808b58ee96e5644b77ac241d9b58c8672c199 100644 --- a/packages/api/src/server/rest.ts +++ b/packages/api/src/server/rest.ts @@ -47,7 +47,7 @@ import { SendFileOptions } from 'express-serve-static-core' import { activiteDocumentDownload, getActivite, updateActivite, deleteActivite } from '../api/rest/activites.js' import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js' import { getDemarcheByIdOrSlug } from '../api/rest/demarches.js' -import { geojsonImport, geojsonImportPoints, convertGeojsonPointsToGeoSystemeId, getPerimetreInfos } from '../api/rest/perimetre.js' +import { geojsonImport, geojsonImportPoints, convertGeojsonPointsToGeoSystemeId, getPerimetreInfos, geojsonImportForages } from '../api/rest/perimetre.js' import { getDataGouvStats } from '../api/rest/statistiques/datagouv.js' import { addAdministrationActiviteTypeEmails, deleteAdministrationActiviteTypeEmails, getAdministrationActiviteTypeEmails, getAdministrationUtilisateurs } from '../api/rest/administrations.js' import { titreDemandeCreer } from '../api/rest/titre-demande.js' @@ -152,6 +152,7 @@ const restRouteImplementations: Readonly<{ [key in CaminoRestRoute]: Transform<k '/rest/communes': { get: getCommunes }, '/rest/geojson/import/:geoSystemeId': { post: geojsonImport }, '/rest/geojson_points/import/:geoSystemeId': { post: geojsonImportPoints }, + '/rest/geojson_forages/import/:geoSystemeId': { post: geojsonImportForages }, '/rest/geojson_points/:geoSystemeId': { post: convertGeojsonPointsToGeoSystemeId }, '/deconnecter': { get: logout }, '/changerMotDePasse': { get: resetPassword }, diff --git a/packages/api/src/types.ts b/packages/api/src/types.ts index 56fbc7cbd727d14ef665c2f368046ca11d1c293f..6c010e43c090b8ce9aa56f121984984500ddf624 100644 --- a/packages/api/src/types.ts +++ b/packages/api/src/types.ts @@ -26,7 +26,7 @@ import { ForetId } from 'camino-common/src/static/forets.js' import { TitreId, TitreSlug } from 'camino-common/src/validators/titres.js' import { EtapeId, EtapeSlug } from 'camino-common/src/etape' import { ActiviteId } from 'camino-common/src/activite.js' -import { FeatureCollectionPoints, FeatureMultiPolygon, GeojsonPoint, MultiPolygon } from 'camino-common/src/perimetre.js' +import { FeatureCollectionForages, FeatureCollectionPoints, FeatureMultiPolygon, GeojsonPoint, MultiPolygon } from 'camino-common/src/perimetre.js' import { EtapeHeritageProps } from 'camino-common/src/heritage' import { GeoSystemeId } from 'camino-common/src/static/geoSystemes' @@ -271,7 +271,18 @@ interface IDocument { etape?: ITitreEtape | null suppression?: boolean | null } -interface ITitreEtape { + +export interface ITitreEtapePerimetre { + geojson4326Perimetre: FeatureMultiPolygon | null | undefined + geojson4326Points: FeatureCollectionPoints | null | undefined + geojsonOriginePerimetre: FeatureMultiPolygon | null | undefined + geojsonOriginePoints: FeatureCollectionPoints | null | undefined + geojsonOrigineGeoSystemeId: GeoSystemeId | null | undefined + geojson4326Forages: FeatureCollectionForages | null | undefined + geojsonOrigineForages: FeatureCollectionForages | null | undefined + surface: number | null | undefined +} +type ITitreEtape = { id: EtapeId slug?: EtapeSlug typeId: EtapeTypeId @@ -279,7 +290,6 @@ interface ITitreEtape { ordre?: number | null date: CaminoDate duree?: number | null - surface?: number | null contenu?: IContenu | null documents?: IDocument[] | null documentIds?: string[] | null @@ -301,12 +311,7 @@ interface ITitreEtape { decisionsAnnexesSections?: DeepReadonly<(Omit<Section, 'elements'> & { elements: (SectionElement & { sectionId?: string })[] })[]> | null decisionsAnnexesContenu?: IDecisionAnnexeContenu | null notes?: string | null - geojson4326Perimetre?: FeatureMultiPolygon | null - geojson4326Points?: FeatureCollectionPoints | null - geojsonOriginePerimetre?: FeatureMultiPolygon | null - geojsonOriginePoints?: FeatureCollectionPoints | null - geojsonOrigineGeoSystemeId?: GeoSystemeId | null -} +} & Partial<ITitreEtapePerimetre> interface ITitreEtapeFiltre { typeId: string diff --git a/packages/common/src/demarche.ts b/packages/common/src/demarche.ts index 74a35b338ebdbe1301658fee6a7d09d3a86ae13f..21e0910174a447c34a0a1bae88387da2d15caa52 100644 --- a/packages/common/src/demarche.ts +++ b/packages/common/src/demarche.ts @@ -17,7 +17,7 @@ import { TITRES_TYPES_TYPES_IDS } from './static/titresTypesTypes.js' import { UniteId, uniteIdValidator, UNITE_IDS, Unites } from './static/unites.js' import { capitalize } from './strings.js' import { foretIdValidator } from './static/forets.js' -import { featureCollectionPointsValidator, featureMultiPolygonValidator } from './perimetre.js' +import { featureCollectionForagesValidator, featureCollectionPointsValidator, featureMultiPolygonValidator } from './perimetre.js' import { geoSystemeIdValidator } from './static/geoSystemes.js' export const demarcheIdValidator = z.string().brand<'DemarcheId'>() @@ -64,6 +64,8 @@ const etapePerimetreValidator = z.object({ geojson_origine_perimetre: featureMultiPolygonValidator, geojson_origine_points: featureCollectionPointsValidator.nullable(), geojson_origine_geo_systeme_id: geoSystemeIdValidator, + geojson4326_forages: featureCollectionForagesValidator.nullable(), + geojson_origine_forages: featureCollectionForagesValidator.nullable(), surface: z.number(), communes: z.array(z.object({ id: communeIdValidator, nom: z.string() })), secteurs_maritimes: z.array(secteurMaritimeValidator), diff --git a/packages/common/src/etape.ts b/packages/common/src/etape.ts index 6a666a4c4f0a6b36fa73ff17730323b881f029bd..66b4ea410c2c5f4f03f8116f2853950aa5e07283 100644 --- a/packages/common/src/etape.ts +++ b/packages/common/src/etape.ts @@ -7,7 +7,7 @@ import { etapeStatutIdValidator } from './static/etapesStatuts.js' import { EtapeTypeId, etapeTypeIdValidator } from './static/etapesTypes.js' import { SubstanceLegaleId } from './static/substancesLegales.js' import { z } from 'zod' -import { FeatureCollectionPoints, FeatureMultiPolygon } from './perimetre.js' +import { FeatureCollectionForages, FeatureCollectionPoints, FeatureMultiPolygon } from './perimetre.js' import { KM2 } from './number.js' import { GeoSystemeId } from './static/geoSystemes.js' @@ -56,6 +56,8 @@ type EtapeBase = { geojsonOriginePerimetre?: FeatureMultiPolygon | null geojsonOriginePoints?: FeatureCollectionPoints | null geojsonOrigineGeoSystemeId?: GeoSystemeId | null + geojson4326Forages?: FeatureCollectionForages | null + geojsonOrigineForages?: FeatureCollectionForages | null surface?: KM2 | null notes: null | string diff --git a/packages/common/src/heritage.ts b/packages/common/src/heritage.ts index 0568add25320cb28ac0b4db51e2c6231aa321d88..bfbc20f1f6b51af908bf9bc58b9809746fbeec59 100644 --- a/packages/common/src/heritage.ts +++ b/packages/common/src/heritage.ts @@ -15,7 +15,7 @@ export const mappingHeritagePropsNameEtapePropsName = { dateFin: ['dateFin'], duree: ['duree'], substances: ['substances'], - perimetre: ['geojson4326Perimetre', 'geojson4326Points', 'surface', 'geojsonOriginePerimetre', 'geojsonOriginePoints', 'geojsonOrigineGeoSystemeId'], + perimetre: ['geojson4326Perimetre', 'geojson4326Points', 'surface', 'geojsonOriginePerimetre', 'geojsonOriginePoints', 'geojsonOrigineGeoSystemeId', 'geojson4326Forages', 'geojsonOrigineForages'], } as const satisfies Record<EtapeHeritageProps, Readonly<string[]>> export type MappingHeritagePropsNameEtapePropsName = typeof mappingHeritagePropsNameEtapePropsName diff --git a/packages/common/src/perimetre.ts b/packages/common/src/perimetre.ts index 8df58511003b5396f7d19fd7cc7d068f4f48ccd5..aa4d7a6a2149aa119fd8e686f9b0a09cbc04cf80 100644 --- a/packages/common/src/perimetre.ts +++ b/packages/common/src/perimetre.ts @@ -85,10 +85,19 @@ export const featureCollectionPolygonValidator = featureCollectionValidator.exte export type FeatureCollectionPolygon = z.infer<typeof featureCollectionPolygonValidator> -export const featureCollectionPointsValidator = featureCollectionValidator.extend({ features: z.array(featurePointValidator) }) +// Permet d’obtenir un type générique sur FeatureCollection<T>, utile pour esquiver la « distributivity » +const makeFeatureCollectionValidator = <T extends z.ZodTypeAny>(schema: T) => featureCollectionValidator.extend({ features: z.array(schema) }) +export type GenericFeatureCollection<T extends z.ZodTypeAny> = z.infer<ReturnType<typeof makeFeatureCollectionValidator<T>>> +export const featureCollectionPointsValidator = makeFeatureCollectionValidator(featurePointValidator) export type FeatureCollectionPoints = z.infer<typeof featureCollectionPointsValidator> +export const featureForagePropertiesValidator = z.object({ nom: z.string(), description: z.string().nullish(), type: z.enum(['captage', 'rejet']), profondeur: z.number() }) +const featureForageValidator = z.object({ type: z.literal('Feature'), geometry: pointValidator, properties: featureForagePropertiesValidator }) + +export const featureCollectionForagesValidator = makeFeatureCollectionValidator(featureForageValidator) +export type FeatureCollectionForages = z.infer<typeof featureCollectionForagesValidator> + export type FeatureCollection = z.infer<typeof featureCollectionMultipolygonValidator> const superpositionAlerteValidator = z.object({ slug: titreSlugValidator, nom: z.string(), titre_statut_id: titreStatutIdValidator }) @@ -122,10 +131,14 @@ export type GeojsonImportBody = z.infer<typeof geojsonImportBodyValidator> export const geojsonImportPointBodyValidator = geojsonImportBodyValidator.pick({ tempDocumentName: true }) export type GeojsonImportPointsBody = z.infer<typeof geojsonImportPointBodyValidator> - export const geojsonImportPointResponseValidator = z.object({ geojson4326: featureCollectionPointsValidator, origin: featureCollectionPointsValidator }) export type GeojsonImportPointsResponse = z.infer<typeof geojsonImportPointResponseValidator> +export const geojsonImportForagesBodyValidator = geojsonImportBodyValidator.pick({ tempDocumentName: true, fileType: true }) +export type GeojsonImportForagesBody = z.infer<typeof geojsonImportForagesBodyValidator> +export const geojsonImportForagesResponseValidator = z.object({ geojson4326: featureCollectionForagesValidator, origin: featureCollectionForagesValidator }) +export type GeojsonImportForagesResponse = z.infer<typeof geojsonImportForagesResponseValidator> + const internalEqualGeojson = (geo1: MultiPolygon, geo2: MultiPolygon): boolean => { for (let indexLevel1 = 0; indexLevel1 < geo1.coordinates.length; indexLevel1++) { for (let indexLevel2 = 0; indexLevel2 < geo1.coordinates[indexLevel1].length; indexLevel2++) { diff --git a/packages/common/src/permissions/titres.ts b/packages/common/src/permissions/titres.ts index db08277d749cdaa43c5259795a44311572dfa49b..99aba1ee681d881a4fdb224318357d0e4b6027bd 100644 --- a/packages/common/src/permissions/titres.ts +++ b/packages/common/src/permissions/titres.ts @@ -140,3 +140,5 @@ export const canHaveActiviteTypeId = (activiteTypeId: ActivitesTypesId, titre: T return false } + +export const canHaveForages = (titreTypeId: TitreTypeId): boolean => titreTypeId === 'pxg' diff --git a/packages/common/src/rest.ts b/packages/common/src/rest.ts index d1ca024420247d740c82cc5894d75441c35e640b..c07b178194a48404edf7bd4411b7e37b8af69540 100644 --- a/packages/common/src/rest.ts +++ b/packages/common/src/rest.ts @@ -43,6 +43,8 @@ import { geoSystemeIdValidator } from './static/geoSystemes.js' import { featureCollectionPointsValidator, geojsonImportBodyValidator, + geojsonImportForagesBodyValidator, + geojsonImportForagesResponseValidator, geojsonImportPointBodyValidator, geojsonImportPointResponseValidator, geojsonInformationsValidator, @@ -100,6 +102,7 @@ const IDS = [ '/rest/geojson/import/:geoSystemeId', '/rest/geojson_points/:geoSystemeId', '/rest/geojson_points/import/:geoSystemeId', + '/rest/geojson_forages/import/:geoSystemeId', '/rest/communes', '/deconnecter', '/changerMotDePasse', @@ -188,6 +191,10 @@ export const CaminoRestRoutes = { params: { geoSystemeId: geoSystemeIdValidator }, post: { input: geojsonImportPointBodyValidator, output: geojsonImportPointResponseValidator }, }, + '/rest/geojson_forages/import/:geoSystemeId': { + params: { geoSystemeId: geoSystemeIdValidator }, + post: { input: geojsonImportForagesBodyValidator, output: geojsonImportForagesResponseValidator }, + }, '/deconnecter': { get: { output: z.string() } }, '/changerMotDePasse': { get: { output: z.string() } }, '/download/fichiers/:documentId': { params: { documentId: z.union([documentIdValidator, entrepriseDocumentIdValidator]) }, download: true }, diff --git a/packages/ui/src/api/fragments/titre-etape.js b/packages/ui/src/api/fragments/titre-etape.js index 877e2d1d1c2f6bfed498bb46c44ce804e4e3e09c..ee83f064a5e32ffcbd2c8b96ea94350aa1f02280 100644 --- a/packages/ui/src/api/fragments/titre-etape.js +++ b/packages/ui/src/api/fragments/titre-etape.js @@ -27,6 +27,8 @@ const fragmentHeritageEtape = gql` geojsonOriginePoints geojsonOriginePerimetre geojsonOrigineGeoSystemeId + geojson4326Forages + geojsonOrigineForages substances contenu } @@ -90,6 +92,8 @@ const fragmentEtapeHeritage = gql` geojsonOriginePoints geojsonOriginePerimetre geojsonOrigineGeoSystemeId + geojson4326Forages + geojsonOrigineForages substances @@ -141,6 +145,8 @@ const fragmentEtape = gql` geojsonOriginePoints geojsonOriginePerimetre geojsonOrigineGeoSystemeId + geojson4326Forages + geojsonOrigineForages substances documents { ...document diff --git a/packages/ui/src/components/_common/dsfr-perimetre-table.tsx b/packages/ui/src/components/_common/dsfr-perimetre-table.tsx index c57225e6ad0842ac95752bf8d3b8d0214e8592f6..c5b97a7dd923982c43363e675314387205c599b8 100644 --- a/packages/ui/src/components/_common/dsfr-perimetre-table.tsx +++ b/packages/ui/src/components/_common/dsfr-perimetre-table.tsx @@ -1,19 +1,19 @@ -import { AsyncData } from '@/api/client-rest' import { contentTypes } from 'camino-common/src/rest' import { GeoSysteme, GeoSystemes, GeoSystemeId } from 'camino-common/src/static/geoSystemes' -import { defineComponent, ref, watch, computed } from 'vue' +import { defineComponent, FunctionalComponent } from 'vue' import { DsfrLink } from '../_ui/dsfr-button' import { TableRow, TextColumnData } from '../_ui/table' import { TableAuto, Column } from '../_ui/table-auto' -import { FeatureCollectionPoints, FeatureMultiPolygon } from 'camino-common/src/perimetre' +import { FeatureCollectionForages, FeatureCollectionPoints, FeatureMultiPolygon } from 'camino-common/src/perimetre' import { TitreSlug } from 'camino-common/src/validators/titres' import { capitalize } from 'camino-common/src/strings' import { indexToLetter, toDegresMinutes } from 'camino-common/src/number' -import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools' +import { NotNullableKeys, isNotNullNorUndefined } from 'camino-common/src/typescript-tools' import { GeoSystemeTypeahead } from './geosysteme-typeahead' interface Props { geojson_origine_points: FeatureCollectionPoints + geojson_origine_forages: FeatureCollectionForages | null geo_systeme_id: GeoSystemeId titreSlug: TitreSlug maxRows: number @@ -24,11 +24,20 @@ const labels = { deg: { x: 'longitude', y: 'latitude' }, gon: { x: 'longitude', y: 'latitude' }, } as const satisfies Record<GeoSysteme['uniteId'], { x: string; y: string }> -const geoJsonToArray = (perimetre: FeatureCollectionPoints): TableRow<string>[] => { + +const geoJsonToArray = (perimetre: FeatureCollectionPoints | FeatureCollectionForages): TableRow<string>[] => { return perimetre.features.map<TableRow<string>>((feature, index) => { const x_deg = toDegresMinutes(feature.geometry.coordinates[0]) const y_deg = toDegresMinutes(feature.geometry.coordinates[1]) + let foragesProperties + if ('profondeur' in feature.properties) { + foragesProperties = { + profondeur: { value: `${feature.properties.profondeur}` }, + type: { value: capitalize(feature.properties.type) }, + } + } + return { id: `${index}`, link: null, @@ -39,97 +48,114 @@ const geoJsonToArray = (perimetre: FeatureCollectionPoints): TableRow<string>[] y: { value: `${feature.geometry.coordinates[1]}` }, x_deg: { value: `${x_deg.degres}°${Intl.NumberFormat('fr-FR').format(x_deg.minutes)}'` }, y_deg: { value: `${y_deg.degres}°${Intl.NumberFormat('fr-FR').format(y_deg.minutes)}'` }, + ...foragesProperties, }, } }) } -export const TabCaminoTable = defineComponent<Props>(props => { - const currentRows = ref<AsyncData<TableRow<string>[]>>({ status: 'LOADING' }) - - watch( - () => props.geojson_origine_points, - () => { - currentRows.value = { status: 'LOADED', value: geoJsonToArray(props.geojson_origine_points) } - }, - { immediate: true } - ) +const TablePoints: FunctionalComponent<Pick<Props, 'geo_systeme_id' | 'geojson_origine_points' | 'maxRows' | 'titreSlug'> & { caption: string }> = props => { + const uniteId = GeoSystemes[props.geo_systeme_id].uniteId - const columns = computed(() => { - const uniteId = GeoSystemes[props.geo_systeme_id].uniteId + const columns: Column<string>[] = [ + { id: 'nom', name: 'Nom du point', noSort: true }, + { id: 'description', name: 'Description', noSort: true }, + { id: 'x', name: capitalize(labels[uniteId].x), noSort: true }, + { id: 'y', name: capitalize(labels[uniteId].y), noSort: true }, + ] - if (isNotNullNorUndefined(uniteId)) { - const alwaysPresentColumns: Column<string>[] = [ - { id: 'nom', name: 'Nom du point', noSort: true }, - { id: 'description', name: 'Description', noSort: true }, - { id: 'x', name: capitalize(labels[uniteId].x), noSort: true }, - { id: 'y', name: capitalize(labels[uniteId].y), noSort: true }, - ] + if (uniteId === 'deg') { + columns.push({ id: 'x_deg', name: 'Longitude (E)', noSort: true }, { id: 'y_deg', name: 'Latitude (N)', noSort: true }) + } - if (uniteId === 'deg') { - alwaysPresentColumns.push({ id: 'x_deg', name: 'Longitude (E)', noSort: true }, { id: 'y_deg', name: 'Latitude (N)', noSort: true }) - } + const currentRows = geoJsonToArray(props.geojson_origine_points) - return alwaysPresentColumns - } + const rowsToDisplay = currentRows.slice(0, props.maxRows) - return [] - }) - const csvContent = computed(() => { - if (currentRows.value.status === 'LOADED') { - const uniteId = GeoSystemes[props.geo_systeme_id].uniteId - const columsToSave = columns.value + const values = currentRows.map(({ columns: c }) => columns.map(({ id }) => c[id]?.value ?? '').join(';')) - const values = currentRows.value.value.map(({ columns }) => columsToSave.map(({ id }) => columns[id]?.value ?? '').join(';')) + const csvContent = encodeURI(`${columns.map(c => (c.id === 'x' || c.id === 'y' ? labels[uniteId][c.id] : c.id)).join(';')}\n${values.join('\n')}`) - return encodeURI(`${columsToSave.map(c => (c.id === 'x' || c.id === 'y' ? labels[uniteId][c.id] : c.id)).join(';')}\n${values.join('\n')}`) - } + if (currentRows.length > props.maxRows + 1) { + rowsToDisplay.push({ + id: `${props.maxRows + 1}`, + link: null, + columns: columns.reduce<Record<string, TextColumnData>>((acc, { id }) => { + acc[id] = { value: '...' } - return '' - }) + return acc + }, {}), + }) + } - const rowsToDisplay = computed(() => { - if (currentRows.value.status === 'LOADED') { - const rows = currentRows.value.value.slice(0, props.maxRows) + return ( + <div style={{ display: 'flex', flexDirection: 'column' }}> + <TableAuto caption={props.caption} class="fr-mb-1w" columns={columns} rows={rowsToDisplay} initialSort="noSort" /> - if (currentRows.value.value.length > props.maxRows + 1) { - rows.push({ - id: `${props.maxRows + 1}`, - link: null, - columns: columns.value.reduce<Record<string, TextColumnData>>((acc, { id }) => { - acc[id] = { value: '...' } + <DsfrLink + style={{ alignSelf: 'end' }} + href={`data:${contentTypes.csv};charset=utf-8,${csvContent}`} + download={`points-${props.titreSlug}.csv`} + icon="fr-icon-download-line" + buttonType="secondary" + title="Télécharge les points au format csv" + label=".csv" + /> + </div> + ) +} - return acc - }, {}), - }) - } +const TableForages: FunctionalComponent<NotNullableKeys<Pick<Props, 'geo_systeme_id' | 'geojson_origine_forages' | 'titreSlug'>>> = props => { + const uniteId = GeoSystemes[props.geo_systeme_id].uniteId - return rows - } + const columns: Column<string>[] = [ + { id: 'nom', name: 'Nom', noSort: true }, + { id: 'description', name: 'Description', noSort: true }, + { id: 'profondeur', name: 'Profondeur (NGF)', noSort: true }, + { id: 'type', name: 'Type', noSort: true }, + { id: 'x', name: capitalize(labels[uniteId].x), noSort: true }, + { id: 'y', name: capitalize(labels[uniteId].y), noSort: true }, + ] - return [] - }) + const currentRows = geoJsonToArray(props.geojson_origine_forages) - return () => ( + const values = currentRows.map(({ columns: c }) => columns.map(({ id }) => (id === 'type' ? `${c.type.value}`.toLowerCase() : c[id]?.value ?? '')).join(';')) + + const csvContent = encodeURI(`${columns.map(c => (c.id === 'x' || c.id === 'y' ? labels[uniteId][c.id] : c.id)).join(';')}\n${values.join('\n')}`) + + return ( <div style={{ display: 'flex', flexDirection: 'column' }}> - <GeoSystemeTypeahead disabled={true} geoSystemeId={props.geo_systeme_id} /> - <TableAuto caption="" class="fr-mb-1w" columns={columns.value} rows={rowsToDisplay.value} initialSort="noSort" /> + <TableAuto caption="Forages" class="fr-mb-1w" columns={columns} rows={currentRows} initialSort="noSort" /> <DsfrLink style={{ alignSelf: 'end' }} - href={`data:${contentTypes.csv};charset=utf-8,${csvContent.value}`} - download={`points-${props.titreSlug}.csv`} + href={`data:${contentTypes.csv};charset=utf-8,${csvContent}`} + download={`forages-${props.titreSlug}.csv`} icon="fr-icon-download-line" buttonType="secondary" - title="Télécharge les points au format csv" + title="Télécharge les forages au format csv" label=".csv" /> </div> ) +} + +export const TabCaminoTable = defineComponent<Props>(props => { + return () => ( + <div style={{ display: 'flex', flexDirection: 'column' }}> + <GeoSystemeTypeahead disabled={true} geoSystemeId={props.geo_systeme_id} /> + + <TablePoints caption={isNotNullNorUndefined(props.geojson_origine_forages) ? 'Points' : ''} {...props} /> + + {isNotNullNorUndefined(props.geojson_origine_forages) ? ( + <TableForages geo_systeme_id={props.geo_systeme_id} geojson_origine_forages={props.geojson_origine_forages} titreSlug={props.titreSlug} /> + ) : null} + </div> + ) }) // @ts-ignore waiting for https://github.com/vuejs/core/issues/7833 -TabCaminoTable.props = ['geojson_origine_points', 'geo_systeme_id', 'titreSlug', 'maxRows'] +TabCaminoTable.props = ['geojson_origine_points', 'geojson_origine_forages', 'geo_systeme_id', 'titreSlug', 'maxRows'] export const transformMultipolygonToPoints = (geojson_perimetre: FeatureMultiPolygon): FeatureCollectionPoints => { const currentPoints: (FeatureCollectionPoints['features'][0] & { properties: { latitude: string; longitude: string } })[] = [] diff --git a/packages/ui/src/components/_common/dsfr-perimetre.stories.tsx b/packages/ui/src/components/_common/dsfr-perimetre.stories.tsx index 55ff83bffc026e119946f5f71622d165cb672905..f5fba1ef6f5c0cd333454de080470de243b16016 100644 --- a/packages/ui/src/components/_common/dsfr-perimetre.stories.tsx +++ b/packages/ui/src/components/_common/dsfr-perimetre.stories.tsx @@ -5,7 +5,7 @@ import { DsfrPerimetre } from './dsfr-perimetre' import { titreIdValidator, titreSlugValidator } from 'camino-common/src/validators/titres' import { TitresStatutIds } from 'camino-common/src/static/titresStatuts' import { TITRES_TYPES_IDS } from 'camino-common/src/static/titresTypes' -import { FeatureCollectionPoints, FeatureMultiPolygon } from 'camino-common/src/perimetre' +import { FeatureCollectionForages, FeatureCollectionPoints, FeatureMultiPolygon } from 'camino-common/src/perimetre' import { ApiClient } from '@/api/api-client' import { GEO_SYSTEME_IDS } from 'camino-common/src/static/geoSystemes' @@ -44,6 +44,14 @@ const geojson4326_points: FeatureCollectionPoints = { ], } +const geojson4326_forages: FeatureCollectionForages = { + type: 'FeatureCollection', + features: [ + { type: 'Feature', properties: { nom: 'C1', description: 'Captage 1', profondeur: 42, type: 'captage' }, geometry: { type: 'Point', coordinates: [-52.5620583466962, 4.23454263425535] } }, + { type: 'Feature', properties: { nom: 'R1', description: 'Rejet 1', profondeur: 42, type: 'rejet' }, geometry: { type: 'Point', coordinates: [-52.5640583466962, 4.23754263425535] } }, + ], +} + const pushAction = action('push') const getGeojsonByGeoSystemeIdAction = action('getGeojsonByGeoSystemeId') const getTitresWithPerimetreForCarteAction = action('getGeojsonByGeoSystemeId') @@ -65,7 +73,16 @@ export const DefaultNoSnapshot: StoryFn = () => ( <> <MapPattern /> <DsfrPerimetre - perimetre={{ geojson4326_perimetre, geojson4326_points: null, geojson_origine_perimetre: geojson4326_perimetre, geojson_origine_points: null, geojson_origine_geo_systeme_id: '4326' }} + titreTypeId="axm" + perimetre={{ + geojson4326_perimetre, + geojson4326_points: null, + geojson_origine_perimetre: geojson4326_perimetre, + geojson_origine_points: null, + geojson_origine_geo_systeme_id: '4326', + geojson4326_forages: null, + geojson_origine_forages: null, + }} calculateNeighbours={true} apiClient={{ ...apiClientMock, @@ -122,7 +139,16 @@ export const NoNeighborsNoSnapshot: StoryFn = () => ( <> <MapPattern /> <DsfrPerimetre - perimetre={{ geojson4326_perimetre, geojson4326_points: null, geojson_origine_perimetre: geojson4326_perimetre, geojson_origine_points: null, geojson_origine_geo_systeme_id: '4326' }} + titreTypeId="axm" + perimetre={{ + geojson4326_perimetre, + geojson4326_points: null, + geojson_origine_perimetre: geojson4326_perimetre, + geojson_origine_points: null, + geojson_origine_geo_systeme_id: '4326', + geojson4326_forages: null, + geojson_origine_forages: null, + }} calculateNeighbours={false} apiClient={apiClientMock} titreSlug={titreSlugValidator.parse('titre-slug')} @@ -158,12 +184,15 @@ export const PolygonWithLacuneNoSnapshot: StoryFn = () => ( <> <MapPattern /> <DsfrPerimetre + titreTypeId="axm" perimetre={{ geojson4326_perimetre: perimetreWithLacune, geojson4326_points: null, geojson_origine_perimetre: perimetreWithLacune, geojson_origine_points: null, geojson_origine_geo_systeme_id: '4326', + geojson4326_forages: null, + geojson_origine_forages: null, }} calculateNeighbours={true} apiClient={apiClientMock} @@ -196,7 +225,16 @@ export const BigNoSnapshot: StoryFn = () => ( <> <MapPattern /> <DsfrPerimetre - perimetre={{ geojson4326_perimetre: bigGeoJson, geojson4326_points: null, geojson_origine_perimetre: bigGeoJson, geojson_origine_points: null, geojson_origine_geo_systeme_id: '4326' }} + titreTypeId="axm" + perimetre={{ + geojson4326_perimetre: bigGeoJson, + geojson4326_points: null, + geojson_origine_perimetre: bigGeoJson, + geojson_origine_points: null, + geojson_origine_geo_systeme_id: '4326', + geojson4326_forages: null, + geojson_origine_forages: null, + }} titreSlug={titreSlugValidator.parse('titre-slug')} router={{ push: to => { @@ -252,12 +290,15 @@ export const MultipleNoSnapshot: StoryFn = () => ( <> <MapPattern /> <DsfrPerimetre + titreTypeId="axm" perimetre={{ geojson4326_perimetre: multiplePolygone, geojson_origine_perimetre: multiplePolygone, geojson_origine_points: null, geojson_origine_geo_systeme_id: '4326', geojson4326_points: null, + geojson4326_forages: null, + geojson_origine_forages: null, }} titreSlug={titreSlugValidator.parse('titre-slug')} router={{ @@ -336,12 +377,15 @@ export const MultiplePolygonWithLacuneTableau: StoryFn = () => ( <> <MapPattern /> <DsfrPerimetre + titreTypeId="axm" perimetre={{ geojson4326_perimetre: multiplePolygoneWithLacune, geojson4326_points: null, geojson_origine_perimetre: multiplePolygoneWithLacune, geojson_origine_points: null, geojson_origine_geo_systeme_id: '4326', + geojson4326_forages: null, + geojson_origine_forages: null, }} calculateNeighbours={true} apiClient={apiClientMock} @@ -369,12 +413,15 @@ export const CustomPoints: StoryFn = () => ( <> <MapPattern /> <DsfrPerimetre + titreTypeId="axm" perimetre={{ geojson4326_perimetre, geojson4326_points: customPoints, geojson_origine_perimetre: geojson4326_perimetre, geojson_origine_points: customPoints, geojson_origine_geo_systeme_id: '4326', + geojson4326_forages: null, + geojson_origine_forages: null, }} initTab="points" calculateNeighbours={false} @@ -393,12 +440,15 @@ export const CustomPointsWithoutNameAndDesc: StoryFn = () => ( <> <MapPattern /> <DsfrPerimetre + titreTypeId="axm" perimetre={{ geojson4326_perimetre, geojson4326_points: customPointWithoutNameAndDesc, geojson_origine_perimetre: geojson4326_perimetre, geojson_origine_points: customPointWithoutNameAndDesc, geojson_origine_geo_systeme_id: '4326', + geojson4326_forages: null, + geojson_origine_forages: null, }} initTab="points" calculateNeighbours={false} @@ -412,6 +462,7 @@ export const CustomPointsWithAnotherGeoSysteme: StoryFn = () => ( <> <MapPattern /> <DsfrPerimetre + titreTypeId="axm" perimetre={{ geojson4326_perimetre, geojson4326_points: customPointWithoutNameAndDesc, @@ -422,6 +473,8 @@ export const CustomPointsWithAnotherGeoSysteme: StoryFn = () => ( features: [{ type: 'Feature', properties: { nom: 'Nom', description: 'Description' }, geometry: { type: 'Point', coordinates: [338097.8, 462518.2] } }], }, geojson_origine_geo_systeme_id: '2154', + geojson4326_forages: null, + geojson_origine_forages: null, }} initTab="points" calculateNeighbours={false} @@ -435,6 +488,7 @@ export const CustomPointsWithAnotherLegacyGeoSysteme: StoryFn = () => ( <> <MapPattern /> <DsfrPerimetre + titreTypeId="axm" perimetre={{ geojson4326_perimetre, geojson4326_points: customPointWithoutNameAndDesc, @@ -445,6 +499,8 @@ export const CustomPointsWithAnotherLegacyGeoSysteme: StoryFn = () => ( features: [{ type: 'Feature', properties: { nom: 'Nom', description: 'Description' }, geometry: { type: 'Point', coordinates: [338097.8, 462518.2] } }], }, geojson_origine_geo_systeme_id: GEO_SYSTEME_IDS.RGFG95, + geojson4326_forages: null, + geojson_origine_forages: null, }} initTab="points" calculateNeighbours={false} @@ -453,3 +509,26 @@ export const CustomPointsWithAnotherLegacyGeoSysteme: StoryFn = () => ( /> </> ) + +export const WithForages: StoryFn = () => ( + <DsfrPerimetre + titreTypeId="pxm" + perimetre={{ + geojson4326_perimetre, + geojson4326_points: customPointWithoutNameAndDesc, + geojson_origine_perimetre: geojson4326_perimetre, + geojson_origine_points: { + type: 'FeatureCollection', + properties: {}, + features: [{ type: 'Feature', properties: { nom: 'Nom', description: 'Description' }, geometry: { type: 'Point', coordinates: [338097.8, 462518.2] } }], + }, + geojson_origine_geo_systeme_id: GEO_SYSTEME_IDS.RGFG95, + geojson4326_forages, + geojson_origine_forages: geojson4326_forages, + }} + initTab="points" + calculateNeighbours={false} + apiClient={apiClientMock} + titreSlug={titreSlugValidator.parse('titre-slug')} + /> +) diff --git a/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_CustomPoints.html b/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_CustomPoints.html index 0b116fa8dee3c1b8bcf5fa10f230a70db26c15ed..13f45e0490e6b43d5819d7a7093ea61576b85588 100644 --- a/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_CustomPoints.html +++ b/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_CustomPoints.html @@ -312,53 +312,56 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">1</span></td> - <td class=""><span class="">Description du point 1</span></td> - <td class=""><span class="">-52.5660583466962</span></td> - <td class=""><span class="">4.23944263425535</span></td> - <td class=""><span class="">-52°33,964'</span></td> - <td class=""><span class="">4°14,367'</span></td> - </tr> - <tr> - <td class=""><span class="">2</span></td> - <td class=""><span class="">Description du point 2</span></td> - <td class=""><span class="">-52.5591878553913</span></td> - <td class=""><span class="">4.22269896902571</span></td> - <td class=""><span class="">-52°33,551'</span></td> - <td class=""><span class="">4°13,362'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0A1;Description%20du%20point%201;-52.5660583466962;4.23944263425535;-52%C2%B033,964';4%C2%B014,367'%0A2;Description%20du%20point%202;-52.5591878553913;4.22269896902571;-52%C2%B033,551';4%C2%B013,362'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">1</span></td> + <td class=""><span class="">Description du point 1</span></td> + <td class=""><span class="">-52.5660583466962</span></td> + <td class=""><span class="">4.23944263425535</span></td> + <td class=""><span class="">-52°33,964'</span></td> + <td class=""><span class="">4°14,367'</span></td> + </tr> + <tr> + <td class=""><span class="">2</span></td> + <td class=""><span class="">Description du point 2</span></td> + <td class=""><span class="">-52.5591878553913</span></td> + <td class=""><span class="">4.22269896902571</span></td> + <td class=""><span class="">-52°33,551'</span></td> + <td class=""><span class="">4°13,362'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0A1;Description%20du%20point%201;-52.5660583466962;4.23944263425535;-52%C2%B033,964';4%C2%B014,367'%0A2;Description%20du%20point%202;-52.5591878553913;4.22269896902571;-52%C2%B033,551';4%C2%B013,362'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_CustomPointsWithAnotherGeoSysteme.html b/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_CustomPointsWithAnotherGeoSysteme.html index 0ddd790f98c695a615b6093f779bdccd4319abaa..93fd6af83aaaa71d4e6d0e4f2833e7f61063dc66 100644 --- a/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_CustomPointsWithAnotherGeoSysteme.html +++ b/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_CustomPointsWithAnotherGeoSysteme.html @@ -312,37 +312,40 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">X</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Y</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">Nom</span></td> - <td class=""><span class="">Description</span></td> - <td class=""><span class="">338097.8</span></td> - <td class=""><span class="">462518.2</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;x;y%0ANom;Description;338097.8;462518.2" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">X</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Y</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">Nom</span></td> + <td class=""><span class="">Description</span></td> + <td class=""><span class="">338097.8</span></td> + <td class=""><span class="">462518.2</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;x;y%0ANom;Description;338097.8;462518.2" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_CustomPointsWithAnotherLegacyGeoSysteme.html b/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_CustomPointsWithAnotherLegacyGeoSysteme.html index ba2badd5540d09c76ba52d2794b625ffad25b979..ef239651d0ddb1f1d30c6f947b4fa65b81853c29 100644 --- a/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_CustomPointsWithAnotherLegacyGeoSysteme.html +++ b/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_CustomPointsWithAnotherLegacyGeoSysteme.html @@ -312,45 +312,48 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">Nom</span></td> - <td class=""><span class="">Description</span></td> - <td class=""><span class="">338097.8</span></td> - <td class=""><span class="">462518.2</span></td> - <td class=""><span class="">338097°48'</span></td> - <td class=""><span class="">462518°12'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0ANom;Description;338097.8;462518.2;338097%C2%B048';462518%C2%B012'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">Nom</span></td> + <td class=""><span class="">Description</span></td> + <td class=""><span class="">338097.8</span></td> + <td class=""><span class="">462518.2</span></td> + <td class=""><span class="">338097°48'</span></td> + <td class=""><span class="">462518°12'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0ANom;Description;338097.8;462518.2;338097%C2%B048';462518%C2%B012'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_CustomPointsWithoutNameAndDesc.html b/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_CustomPointsWithoutNameAndDesc.html index 8b9b780f65dcce67faa8762e0350710243cbd238..21d20abb4779033e2e352c2d551a7bc79834b8b9 100644 --- a/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_CustomPointsWithoutNameAndDesc.html +++ b/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_CustomPointsWithoutNameAndDesc.html @@ -312,45 +312,48 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class=""></span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-52.5660583466962</span></td> - <td class=""><span class="">4.23944263425535</span></td> - <td class=""><span class="">-52°33,964'</span></td> - <td class=""><span class="">4°14,367'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0A;;-52.5660583466962;4.23944263425535;-52%C2%B033,964';4%C2%B014,367'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class=""></span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-52.5660583466962</span></td> + <td class=""><span class="">4.23944263425535</span></td> + <td class=""><span class="">-52°33,964'</span></td> + <td class=""><span class="">4°14,367'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0A;;-52.5660583466962;4.23944263425535;-52%C2%B033,964';4%C2%B014,367'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_MultiplePolygonWithLacuneTableau.html b/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_MultiplePolygonWithLacuneTableau.html index 2f800d339afb2e5d0f868e95b40d7a9d03eeae49..dac00199874ca5fc059ba39bd91d17490624546d 100644 --- a/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_MultiplePolygonWithLacuneTableau.html +++ b/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_MultiplePolygonWithLacuneTableau.html @@ -312,205 +312,208 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-52.5660583466962</span></td> - <td class=""><span class="">4.23944263425535</span></td> - <td class=""><span class="">-52°33,964'</span></td> - <td class=""><span class="">4°14,367'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-52.5591878553913</span></td> - <td class=""><span class="">4.22269896902571</span></td> - <td class=""><span class="">-52°33,551'</span></td> - <td class=""><span class="">4°13,362'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-52.5550566725882</span></td> - <td class=""><span class="">4.22438936251509</span></td> - <td class=""><span class="">-52°33,303'</span></td> - <td class=""><span class="">4°13,463'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-52.5619271168799</span></td> - <td class=""><span class="">4.24113309117193</span></td> - <td class=""><span class="">-52°33,716'</span></td> - <td class=""><span class="">4°14,468'</span></td> - </tr> - <tr> - <td class=""><span class="">E</span></td> - <td class=""><span class="">Polygone 1 - Lacune 1</span></td> - <td class=""><span class="">-52.563</span></td> - <td class=""><span class="">4.236</span></td> - <td class=""><span class="">-52°33,78'</span></td> - <td class=""><span class="">4°14,16'</span></td> - </tr> - <tr> - <td class=""><span class="">F</span></td> - <td class=""><span class="">Polygone 1 - Lacune 1</span></td> - <td class=""><span class="">-52.5591878553913</span></td> - <td class=""><span class="">4.227</span></td> - <td class=""><span class="">-52°33,551'</span></td> - <td class=""><span class="">4°13,62'</span></td> - </tr> - <tr> - <td class=""><span class="">G</span></td> - <td class=""><span class="">Polygone 1 - Lacune 1</span></td> - <td class=""><span class="">-52.561</span></td> - <td class=""><span class="">4.236</span></td> - <td class=""><span class="">-52°33,66'</span></td> - <td class=""><span class="">4°14,16'</span></td> - </tr> - <tr> - <td class=""><span class="">H</span></td> - <td class=""><span class="">Polygone 2</span></td> - <td class=""><span class="">-53.58181013905019</span></td> - <td class=""><span class="">3.8309654861273</span></td> - <td class=""><span class="">-53°34,909'</span></td> - <td class=""><span class="">3°49,858'</span></td> - </tr> - <tr> - <td class=""><span class="">I</span></td> - <td class=""><span class="">Polygone 2</span></td> - <td class=""><span class="">-53.58178306390299</span></td> - <td class=""><span class="">3.8219278216269807</span></td> - <td class=""><span class="">-53°34,907'</span></td> - <td class=""><span class="">3°49,316'</span></td> - </tr> - <tr> - <td class=""><span class="">J</span></td> - <td class=""><span class="">Polygone 2</span></td> - <td class=""><span class="">-53.572785590706495</span></td> - <td class=""><span class="">3.82195493825841</span></td> - <td class=""><span class="">-53°34,367'</span></td> - <td class=""><span class="">3°49,317'</span></td> - </tr> - <tr> - <td class=""><span class="">K</span></td> - <td class=""><span class="">Polygone 2</span></td> - <td class=""><span class="">-53.57281257175149</span></td> - <td class=""><span class="">3.8309926670647294</span></td> - <td class=""><span class="">-53°34,369'</span></td> - <td class=""><span class="">3°49,86'</span></td> - </tr> - <tr> - <td class=""><span class="">L</span></td> - <td class=""><span class="">Polygone 3</span></td> - <td class=""><span class="">-53.60031408473134</span></td> - <td class=""><span class="">3.8224780986447566</span></td> - <td class=""><span class="">-53°36,019'</span></td> - <td class=""><span class="">3°49,349'</span></td> - </tr> - <tr> - <td class=""><span class="">M</span></td> - <td class=""><span class="">Polygone 3</span></td> - <td class=""><span class="">-53.59891645305842</span></td> - <td class=""><span class="">3.8181831495446303</span></td> - <td class=""><span class="">-53°35,935'</span></td> - <td class=""><span class="">3°49,091'</span></td> - </tr> - <tr> - <td class=""><span class="">N</span></td> - <td class=""><span class="">Polygone 3</span></td> - <td class=""><span class="">-53.58181205656814</span></td> - <td class=""><span class="">3.82379854768971</span></td> - <td class=""><span class="">-53°34,909'</span></td> - <td class=""><span class="">3°49,428'</span></td> - </tr> - <tr> - <td class=""><span class="">O</span></td> - <td class=""><span class="">Polygone 3</span></td> - <td class=""><span class="">-53.58320964990986</span></td> - <td class=""><span class="">3.828093576227541</span></td> - <td class=""><span class="">-53°34,993'</span></td> - <td class=""><span class="">3°49,686'</span></td> - </tr> - <tr> - <td class=""><span class="">P</span></td> - <td class=""><span class="">Polygone 4</span></td> - <td class=""><span class="">-53.583861926103765</span></td> - <td class=""><span class="">3.8502114455117433</span></td> - <td class=""><span class="">-53°35,032'</span></td> - <td class=""><span class="">3°51,013'</span></td> - </tr> - <tr> - <td class=""><span class="">Q</span></td> - <td class=""><span class="">Polygone 4</span></td> - <td class=""><span class="">-53.592379712320195</span></td> - <td class=""><span class="">3.834289122043602</span></td> - <td class=""><span class="">-53°35,543'</span></td> - <td class=""><span class="">3°50,057'</span></td> - </tr> - <tr> - <td class=""><span class="">R</span></td> - <td class=""><span class="">Polygone 4</span></td> - <td class=""><span class="">-53.588417035915334</span></td> - <td class=""><span class="">3.8321501920354253</span></td> - <td class=""><span class="">-53°35,305'</span></td> - <td class=""><span class="">3°49,929'</span></td> - </tr> - <tr> - <td class=""><span class="">S</span></td> - <td class=""><span class="">Polygone 4</span></td> - <td class=""><span class="">-53.57989914401643</span></td> - <td class=""><span class="">3.8480725119510217</span></td> - <td class=""><span class="">-53°34,794'</span></td> - <td class=""><span class="">3°50,884'</span></td> - </tr> - <tr> - <td class=""><span class="">T</span></td> - <td class=""><span class="">Polygone 5</span></td> - <td class=""><span class="">-52.54</span></td> - <td class=""><span class="">4.22269896902571</span></td> - <td class=""><span class="">-52°32,4'</span></td> - <td class=""><span class="">4°13,362'</span></td> - </tr> - <tr> - <td class=""><span class="">...</span></td> - <td class=""><span class="">...</span></td> - <td class=""><span class="">...</span></td> - <td class=""><span class="">...</span></td> - <td class=""><span class="">...</span></td> - <td class=""><span class="">...</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-52.5660583466962;4.23944263425535;-52%C2%B033,964';4%C2%B014,367'%0AB;Polygone%201;-52.5591878553913;4.22269896902571;-52%C2%B033,551';4%C2%B013,362'%0AC;Polygone%201;-52.5550566725882;4.22438936251509;-52%C2%B033,303';4%C2%B013,463'%0AD;Polygone%201;-52.5619271168799;4.24113309117193;-52%C2%B033,716';4%C2%B014,468'%0AE;Polygone%201%20-%20Lacune%201;-52.563;4.236;-52%C2%B033,78';4%C2%B014,16'%0AF;Polygone%201%20-%20Lacune%201;-52.5591878553913;4.227;-52%C2%B033,551';4%C2%B013,62'%0AG;Polygone%201%20-%20Lacune%201;-52.561;4.236;-52%C2%B033,66';4%C2%B014,16'%0AH;Polygone%202;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AI;Polygone%202;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AJ;Polygone%202;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AK;Polygone%202;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'%0AL;Polygone%203;-53.60031408473134;3.8224780986447566;-53%C2%B036,019';3%C2%B049,349'%0AM;Polygone%203;-53.59891645305842;3.8181831495446303;-53%C2%B035,935';3%C2%B049,091'%0AN;Polygone%203;-53.58181205656814;3.82379854768971;-53%C2%B034,909';3%C2%B049,428'%0AO;Polygone%203;-53.58320964990986;3.828093576227541;-53%C2%B034,993';3%C2%B049,686'%0AP;Polygone%204;-53.583861926103765;3.8502114455117433;-53%C2%B035,032';3%C2%B051,013'%0AQ;Polygone%204;-53.592379712320195;3.834289122043602;-53%C2%B035,543';3%C2%B050,057'%0AR;Polygone%204;-53.588417035915334;3.8321501920354253;-53%C2%B035,305';3%C2%B049,929'%0AS;Polygone%204;-53.57989914401643;3.8480725119510217;-53%C2%B034,794';3%C2%B050,884'%0AT;Polygone%205;-52.54;4.22269896902571;-52%C2%B032,4';4%C2%B013,362'%0AU;Polygone%205;-52.55;4.22438936251509;-52%C2%B033';4%C2%B013,463'%0AV;Polygone%205;-52.55;4.24113309117193;-52%C2%B033';4%C2%B014,468'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-52.5660583466962</span></td> + <td class=""><span class="">4.23944263425535</span></td> + <td class=""><span class="">-52°33,964'</span></td> + <td class=""><span class="">4°14,367'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-52.5591878553913</span></td> + <td class=""><span class="">4.22269896902571</span></td> + <td class=""><span class="">-52°33,551'</span></td> + <td class=""><span class="">4°13,362'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-52.5550566725882</span></td> + <td class=""><span class="">4.22438936251509</span></td> + <td class=""><span class="">-52°33,303'</span></td> + <td class=""><span class="">4°13,463'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-52.5619271168799</span></td> + <td class=""><span class="">4.24113309117193</span></td> + <td class=""><span class="">-52°33,716'</span></td> + <td class=""><span class="">4°14,468'</span></td> + </tr> + <tr> + <td class=""><span class="">E</span></td> + <td class=""><span class="">Polygone 1 - Lacune 1</span></td> + <td class=""><span class="">-52.563</span></td> + <td class=""><span class="">4.236</span></td> + <td class=""><span class="">-52°33,78'</span></td> + <td class=""><span class="">4°14,16'</span></td> + </tr> + <tr> + <td class=""><span class="">F</span></td> + <td class=""><span class="">Polygone 1 - Lacune 1</span></td> + <td class=""><span class="">-52.5591878553913</span></td> + <td class=""><span class="">4.227</span></td> + <td class=""><span class="">-52°33,551'</span></td> + <td class=""><span class="">4°13,62'</span></td> + </tr> + <tr> + <td class=""><span class="">G</span></td> + <td class=""><span class="">Polygone 1 - Lacune 1</span></td> + <td class=""><span class="">-52.561</span></td> + <td class=""><span class="">4.236</span></td> + <td class=""><span class="">-52°33,66'</span></td> + <td class=""><span class="">4°14,16'</span></td> + </tr> + <tr> + <td class=""><span class="">H</span></td> + <td class=""><span class="">Polygone 2</span></td> + <td class=""><span class="">-53.58181013905019</span></td> + <td class=""><span class="">3.8309654861273</span></td> + <td class=""><span class="">-53°34,909'</span></td> + <td class=""><span class="">3°49,858'</span></td> + </tr> + <tr> + <td class=""><span class="">I</span></td> + <td class=""><span class="">Polygone 2</span></td> + <td class=""><span class="">-53.58178306390299</span></td> + <td class=""><span class="">3.8219278216269807</span></td> + <td class=""><span class="">-53°34,907'</span></td> + <td class=""><span class="">3°49,316'</span></td> + </tr> + <tr> + <td class=""><span class="">J</span></td> + <td class=""><span class="">Polygone 2</span></td> + <td class=""><span class="">-53.572785590706495</span></td> + <td class=""><span class="">3.82195493825841</span></td> + <td class=""><span class="">-53°34,367'</span></td> + <td class=""><span class="">3°49,317'</span></td> + </tr> + <tr> + <td class=""><span class="">K</span></td> + <td class=""><span class="">Polygone 2</span></td> + <td class=""><span class="">-53.57281257175149</span></td> + <td class=""><span class="">3.8309926670647294</span></td> + <td class=""><span class="">-53°34,369'</span></td> + <td class=""><span class="">3°49,86'</span></td> + </tr> + <tr> + <td class=""><span class="">L</span></td> + <td class=""><span class="">Polygone 3</span></td> + <td class=""><span class="">-53.60031408473134</span></td> + <td class=""><span class="">3.8224780986447566</span></td> + <td class=""><span class="">-53°36,019'</span></td> + <td class=""><span class="">3°49,349'</span></td> + </tr> + <tr> + <td class=""><span class="">M</span></td> + <td class=""><span class="">Polygone 3</span></td> + <td class=""><span class="">-53.59891645305842</span></td> + <td class=""><span class="">3.8181831495446303</span></td> + <td class=""><span class="">-53°35,935'</span></td> + <td class=""><span class="">3°49,091'</span></td> + </tr> + <tr> + <td class=""><span class="">N</span></td> + <td class=""><span class="">Polygone 3</span></td> + <td class=""><span class="">-53.58181205656814</span></td> + <td class=""><span class="">3.82379854768971</span></td> + <td class=""><span class="">-53°34,909'</span></td> + <td class=""><span class="">3°49,428'</span></td> + </tr> + <tr> + <td class=""><span class="">O</span></td> + <td class=""><span class="">Polygone 3</span></td> + <td class=""><span class="">-53.58320964990986</span></td> + <td class=""><span class="">3.828093576227541</span></td> + <td class=""><span class="">-53°34,993'</span></td> + <td class=""><span class="">3°49,686'</span></td> + </tr> + <tr> + <td class=""><span class="">P</span></td> + <td class=""><span class="">Polygone 4</span></td> + <td class=""><span class="">-53.583861926103765</span></td> + <td class=""><span class="">3.8502114455117433</span></td> + <td class=""><span class="">-53°35,032'</span></td> + <td class=""><span class="">3°51,013'</span></td> + </tr> + <tr> + <td class=""><span class="">Q</span></td> + <td class=""><span class="">Polygone 4</span></td> + <td class=""><span class="">-53.592379712320195</span></td> + <td class=""><span class="">3.834289122043602</span></td> + <td class=""><span class="">-53°35,543'</span></td> + <td class=""><span class="">3°50,057'</span></td> + </tr> + <tr> + <td class=""><span class="">R</span></td> + <td class=""><span class="">Polygone 4</span></td> + <td class=""><span class="">-53.588417035915334</span></td> + <td class=""><span class="">3.8321501920354253</span></td> + <td class=""><span class="">-53°35,305'</span></td> + <td class=""><span class="">3°49,929'</span></td> + </tr> + <tr> + <td class=""><span class="">S</span></td> + <td class=""><span class="">Polygone 4</span></td> + <td class=""><span class="">-53.57989914401643</span></td> + <td class=""><span class="">3.8480725119510217</span></td> + <td class=""><span class="">-53°34,794'</span></td> + <td class=""><span class="">3°50,884'</span></td> + </tr> + <tr> + <td class=""><span class="">T</span></td> + <td class=""><span class="">Polygone 5</span></td> + <td class=""><span class="">-52.54</span></td> + <td class=""><span class="">4.22269896902571</span></td> + <td class=""><span class="">-52°32,4'</span></td> + <td class=""><span class="">4°13,362'</span></td> + </tr> + <tr> + <td class=""><span class="">...</span></td> + <td class=""><span class="">...</span></td> + <td class=""><span class="">...</span></td> + <td class=""><span class="">...</span></td> + <td class=""><span class="">...</span></td> + <td class=""><span class="">...</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-52.5660583466962;4.23944263425535;-52%C2%B033,964';4%C2%B014,367'%0AB;Polygone%201;-52.5591878553913;4.22269896902571;-52%C2%B033,551';4%C2%B013,362'%0AC;Polygone%201;-52.5550566725882;4.22438936251509;-52%C2%B033,303';4%C2%B013,463'%0AD;Polygone%201;-52.5619271168799;4.24113309117193;-52%C2%B033,716';4%C2%B014,468'%0AE;Polygone%201%20-%20Lacune%201;-52.563;4.236;-52%C2%B033,78';4%C2%B014,16'%0AF;Polygone%201%20-%20Lacune%201;-52.5591878553913;4.227;-52%C2%B033,551';4%C2%B013,62'%0AG;Polygone%201%20-%20Lacune%201;-52.561;4.236;-52%C2%B033,66';4%C2%B014,16'%0AH;Polygone%202;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AI;Polygone%202;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AJ;Polygone%202;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AK;Polygone%202;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'%0AL;Polygone%203;-53.60031408473134;3.8224780986447566;-53%C2%B036,019';3%C2%B049,349'%0AM;Polygone%203;-53.59891645305842;3.8181831495446303;-53%C2%B035,935';3%C2%B049,091'%0AN;Polygone%203;-53.58181205656814;3.82379854768971;-53%C2%B034,909';3%C2%B049,428'%0AO;Polygone%203;-53.58320964990986;3.828093576227541;-53%C2%B034,993';3%C2%B049,686'%0AP;Polygone%204;-53.583861926103765;3.8502114455117433;-53%C2%B035,032';3%C2%B051,013'%0AQ;Polygone%204;-53.592379712320195;3.834289122043602;-53%C2%B035,543';3%C2%B050,057'%0AR;Polygone%204;-53.588417035915334;3.8321501920354253;-53%C2%B035,305';3%C2%B049,929'%0AS;Polygone%204;-53.57989914401643;3.8480725119510217;-53%C2%B034,794';3%C2%B050,884'%0AT;Polygone%205;-52.54;4.22269896902571;-52%C2%B032,4';4%C2%B013,362'%0AU;Polygone%205;-52.55;4.22438936251509;-52%C2%B033';4%C2%B013,463'%0AV;Polygone%205;-52.55;4.24113309117193;-52%C2%B033';4%C2%B014,468'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_WithForages.html b/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_WithForages.html new file mode 100644 index 0000000000000000000000000000000000000000..381e8682872bb3356b5c6f412429a015a27ae854 --- /dev/null +++ b/packages/ui/src/components/_common/dsfr-perimetre.stories_snapshots_WithForages.html @@ -0,0 +1,109 @@ +<div class="dsfr"> + <div class="fr-tabs"> + <ul class="fr-tabs__list" role="tablist" aria-label="Affichage des titres en vue carte ou tableau"> + <li role="presentation"><button id="tabpanel-carte-271" class="fr-tabs__tab fr-icon-earth-fill fr-tabs__tab--icon-left" tabindex="-1" role="tab" aria-label="Carte" aria-selected="false" aria-controls="tabpanel-carte-271-panel">Carte</button></li> + <li role="presentation"><button id="tabpanel-points-271" class="fr-tabs__tab fr-icon-list-unordered fr-tabs__tab--icon-left" tabindex="0" role="tab" aria-label="Tableau" aria-selected="true" aria-controls="tabpanel-points-271-panel">Tableau</button></li> + </ul> + <div id="tabpanel-carte-271-panel" class="fr-tabs__panel" role="tabpanel" aria-labelledby="tabpanel-carte-271" tabindex="0"> + <!----> + </div> + <div id="tabpanel-points-271-panel" class="fr-tabs__panel fr-tabs__panel--selected" role="tabpanel" aria-labelledby="tabpanel-points-271" tabindex="0"> + <div style="display: flex; flex-direction: column;"> + <div id="typeahead_670_wrapper" class="_typeahead_8eddf1 dsfr"> + <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> + <!----> + </div> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption>Points</caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">Nom</span></td> + <td class=""><span class="">Description</span></td> + <td class=""><span class="">338097.8</span></td> + <td class=""><span class="">462518.2</span></td> + <td class=""><span class="">338097°48'</span></td> + <td class=""><span class="">462518°12'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0ANom;Description;338097.8;462518.2;338097%C2%B048';462518%C2%B012'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption>Forages</caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Profondeur (NGF)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Type</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">C1</span></td> + <td class=""><span class="">Captage 1</span></td> + <td class=""><span class="">42</span></td> + <td class=""><span class="">Captage</span></td> + <td class=""><span class="">-52.5620583466962</span></td> + <td class=""><span class="">4.23454263425535</span></td> + </tr> + <tr> + <td class=""><span class="">R1</span></td> + <td class=""><span class="">Rejet 1</span></td> + <td class=""><span class="">42</span></td> + <td class=""><span class="">Rejet</span></td> + <td class=""><span class="">-52.5640583466962</span></td> + <td class=""><span class="">4.23754263425535</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les forages au format csv" href="data:text/csv;charset=utf-8,nom;description;profondeur;type;longitude;latitude%0AC1;Captage%201;42;captage;-52.5620583466962;4.23454263425535%0AR1;Rejet%201;42;rejet;-52.5640583466962;4.23754263425535" download="forages-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + </div> + </div> + </div> +</div> \ No newline at end of file diff --git a/packages/ui/src/components/_common/dsfr-perimetre.tsx b/packages/ui/src/components/_common/dsfr-perimetre.tsx index 3bee40669467f5944695ddf37d9f6062061b368c..0a1466bbd48f0fa16e9142cb752160e8fa98ef33 100644 --- a/packages/ui/src/components/_common/dsfr-perimetre.tsx +++ b/packages/ui/src/components/_common/dsfr-perimetre.tsx @@ -2,13 +2,14 @@ import { defineComponent, HTMLAttributes, defineAsyncComponent, computed } from import { Tab, Tabs } from '../_ui/tabs' import { TitreSlug } from 'camino-common/src/validators/titres' import { Router } from 'vue-router' -import { FeatureCollection, FeatureCollectionPoints, FeatureMultiPolygon } from 'camino-common/src/perimetre' +import { FeatureCollection, FeatureCollectionForages, FeatureCollectionPoints, FeatureMultiPolygon } from 'camino-common/src/perimetre' import { DsfrLink } from '../_ui/dsfr-button' import { contentTypes } from 'camino-common/src/rest' import { ApiClient } from '../../api/api-client' import { TabCaminoTable, transformMultipolygonToPoints } from './dsfr-perimetre-table' import { OmitDistributive, isNotNullNorUndefined } from 'camino-common/src/typescript-tools' import { GeoSystemeId } from 'camino-common/src/static/geoSystemes' +import { TitreTypeId } from 'camino-common/src/static/titresTypes' export type TabId = 'carte' | 'points' type Props = { @@ -18,8 +19,11 @@ type Props = { geojson_origine_geo_systeme_id: GeoSystemeId geojson_origine_perimetre: FeatureMultiPolygon geojson_origine_points: FeatureCollectionPoints | null + geojson4326_forages: FeatureCollectionForages | null + geojson_origine_forages: FeatureCollectionForages | null } titreSlug: TitreSlug + titreTypeId: TitreTypeId initTab?: TabId class?: HTMLAttributes['class'] } & ( @@ -61,7 +65,13 @@ export const DsfrPerimetre = defineComponent<Props>((props: Props) => { icon: 'fr-icon-list-unordered', title: 'Tableau', renderContent: () => ( - <TabCaminoTable geojson_origine_points={geojsonOriginePoints.value} titreSlug={props.titreSlug} geo_systeme_id={props.perimetre.geojson_origine_geo_systeme_id} maxRows={maxRows} /> + <TabCaminoTable + geojson_origine_points={geojsonOriginePoints.value} + titreSlug={props.titreSlug} + geo_systeme_id={props.perimetre.geojson_origine_geo_systeme_id} + geojson_origine_forages={props.perimetre.geojson_origine_forages} + maxRows={maxRows} + /> ), }, ] as const satisfies readonly Tab<TabId>[] @@ -69,7 +79,16 @@ export const DsfrPerimetre = defineComponent<Props>((props: Props) => { return () => <Tabs initTab={props.initTab ?? 'carte'} tabs={vues} tabsTitle={'Affichage des titres en vue carte ou tableau'} tabClicked={_newTabId => {}} /> }) -type TabCaminoMapProps = OmitDistributive<Props, 'perimetre'> & { perimetre: { [key in keyof Props['perimetre']]: NonNullable<Props['perimetre'][key]> } } +type TabCaminoMapProps = OmitDistributive<Props, 'perimetre'> & { + perimetre: { + geojson4326_perimetre: FeatureMultiPolygon + geojson4326_points: FeatureCollectionPoints + geojson_origine_geo_systeme_id: GeoSystemeId + geojson_origine_perimetre: FeatureMultiPolygon + geojson_origine_points: FeatureCollectionPoints + geojson4326_forages: FeatureCollectionForages | null + } +} const TabCaminoMap = defineComponent<TabCaminoMapProps>(props => { const neighbours = props.calculateNeighbours ? { apiClient: props.apiClient, titreSlug: props.titreSlug, router: props.router } : null @@ -95,7 +114,7 @@ const TabCaminoMap = defineComponent<TabCaminoMapProps>(props => { return () => ( <div style={{ display: 'flex', flexDirection: 'column' }}> - <DemarcheMap perimetre={props.perimetre} style={{ minHeight: '400px' }} class="fr-mb-1w" maxMarkers={maxRows} neighbours={neighbours} /> + <DemarcheMap perimetre={props.perimetre} titreTypeId={props.titreTypeId} style={{ minHeight: '400px' }} class="fr-mb-1w" maxMarkers={maxRows} neighbours={neighbours} /> <div style={{ alignSelf: 'end' }}> {props.perimetre.geojson_origine_geo_systeme_id !== '4326' ? ( <DsfrLink @@ -122,7 +141,7 @@ const TabCaminoMap = defineComponent<TabCaminoMapProps>(props => { }) // @ts-ignore waiting for https://github.com/vuejs/core/issues/7833 -DsfrPerimetre.props = ['perimetre', 'apiClient', 'titreSlug', 'router', 'initTab', 'calculateNeighbours'] +DsfrPerimetre.props = ['perimetre', 'apiClient', 'titreSlug', 'titreTypeId', 'router', 'initTab', 'calculateNeighbours'] // @ts-ignore waiting for https://github.com/vuejs/core/issues/7833 -TabCaminoMap.props = ['perimetre', 'apiClient', 'titreSlug', 'router', 'initTab', 'calculateNeighbours'] +TabCaminoMap.props = ['perimetre', 'apiClient', 'titreSlug', 'titreTypeId', 'router', 'initTab', 'calculateNeighbours'] diff --git a/packages/ui/src/components/demarche/demarche-etape.stories.tsx b/packages/ui/src/components/demarche/demarche-etape.stories.tsx index d8329c73c3dcacaee711a3c422a7a616add9cae4..d32cb5670a6c9a5a6a86b4f23fca7e124921259b 100644 --- a/packages/ui/src/components/demarche/demarche-etape.stories.tsx +++ b/packages/ui/src/components/demarche/demarche-etape.stories.tsx @@ -282,6 +282,8 @@ export const NoSnapshotDemande: StoryFn = () => ( }, }, geojson_origine_points: null, + geojson4326_forages: null, + geojson_origine_forages: null, surface: 10, communes: [], sdom_zones: [], @@ -526,6 +528,8 @@ export const DemandeArmMecaniseNonDeposable: StoryFn = () => ( geojson_origine_geo_systeme_id: '4326', geojson_origine_perimetre: demandeArmMecaniseNonDeposable, geojson_origine_points: null, + geojson4326_forages: null, + geojson_origine_forages: null, surface: 10, communes: [], sdom_zones: [], @@ -609,6 +613,8 @@ export const DemandeArmMecaniseDeposable: StoryFn = () => ( geojson_origine_geo_systeme_id: '4326', geojson_origine_perimetre: demandeArmMecaniseDeposable, geojson_origine_points: null, + geojson4326_forages: null, + geojson_origine_forages: null, surface: 10, communes: [], sdom_zones: [], @@ -696,6 +702,8 @@ export const DemandeArmNonMecaniseDeposable: StoryFn = () => ( geojson_origine_geo_systeme_id: '4326', geojson_origine_perimetre: demandeArmNonMecaniseDeposable, geojson_origine_points: null, + geojson4326_forages: null, + geojson_origine_forages: null, surface: 10, communes: [], sdom_zones: [], @@ -804,6 +812,8 @@ export const DemandeAvecSeulementPerimetre: StoryFn = () => ( geojson_origine_geo_systeme_id: '4326', geojson_origine_perimetre: demandeAvecSeulementPerimetre, geojson_origine_points: null, + geojson4326_forages: null, + geojson_origine_forages: null, surface: 0, communes: [], sdom_zones: [], @@ -866,6 +876,8 @@ export const DemandeAvecGrosseNote: StoryFn = () => ( geojson_origine_geo_systeme_id: '4326', geojson_origine_perimetre: demandeAvecGrosseNote, geojson_origine_points: null, + geojson4326_forages: null, + geojson_origine_forages: null, surface: 0, communes: [], sdom_zones: [], diff --git a/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeArmMecaniseDeposable.html b/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeArmMecaniseDeposable.html index 68c6ebee1ada814aac88adc690d9cf3da3d5a0e5..24bbcd662b9aba5fd5a69d5e685949a20f642b0e 100644 --- a/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeArmMecaniseDeposable.html +++ b/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeArmMecaniseDeposable.html @@ -80,133 +80,136 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.58181013905019</span></td> - <td class=""><span class="">3.8309654861273</span></td> - <td class=""><span class="">-53°34,909'</span></td> - <td class=""><span class="">3°49,858'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.58178306390299</span></td> - <td class=""><span class="">3.8219278216269807</span></td> - <td class=""><span class="">-53°34,907'</span></td> - <td class=""><span class="">3°49,316'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.572785590706495</span></td> - <td class=""><span class="">3.82195493825841</span></td> - <td class=""><span class="">-53°34,367'</span></td> - <td class=""><span class="">3°49,317'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.57281257175149</span></td> - <td class=""><span class="">3.8309926670647294</span></td> - <td class=""><span class="">-53°34,369'</span></td> - <td class=""><span class="">3°49,86'</span></td> - </tr> - <tr> - <td class=""><span class="">E</span></td> - <td class=""><span class="">Polygone 2</span></td> - <td class=""><span class="">-53.60031408473134</span></td> - <td class=""><span class="">3.8224780986447566</span></td> - <td class=""><span class="">-53°36,019'</span></td> - <td class=""><span class="">3°49,349'</span></td> - </tr> - <tr> - <td class=""><span class="">F</span></td> - <td class=""><span class="">Polygone 2</span></td> - <td class=""><span class="">-53.59891645305842</span></td> - <td class=""><span class="">3.8181831495446303</span></td> - <td class=""><span class="">-53°35,935'</span></td> - <td class=""><span class="">3°49,091'</span></td> - </tr> - <tr> - <td class=""><span class="">G</span></td> - <td class=""><span class="">Polygone 2</span></td> - <td class=""><span class="">-53.58181205656814</span></td> - <td class=""><span class="">3.82379854768971</span></td> - <td class=""><span class="">-53°34,909'</span></td> - <td class=""><span class="">3°49,428'</span></td> - </tr> - <tr> - <td class=""><span class="">H</span></td> - <td class=""><span class="">Polygone 2</span></td> - <td class=""><span class="">-53.58320964990986</span></td> - <td class=""><span class="">3.828093576227541</span></td> - <td class=""><span class="">-53°34,993'</span></td> - <td class=""><span class="">3°49,686'</span></td> - </tr> - <tr> - <td class=""><span class="">I</span></td> - <td class=""><span class="">Polygone 3</span></td> - <td class=""><span class="">-53.583861926103765</span></td> - <td class=""><span class="">3.8502114455117433</span></td> - <td class=""><span class="">-53°35,032'</span></td> - <td class=""><span class="">3°51,013'</span></td> - </tr> - <tr> - <td class=""><span class="">J</span></td> - <td class=""><span class="">Polygone 3</span></td> - <td class=""><span class="">-53.592379712320195</span></td> - <td class=""><span class="">3.834289122043602</span></td> - <td class=""><span class="">-53°35,543'</span></td> - <td class=""><span class="">3°50,057'</span></td> - </tr> - <tr> - <td class=""><span class="">K</span></td> - <td class=""><span class="">Polygone 3</span></td> - <td class=""><span class="">-53.588417035915334</span></td> - <td class=""><span class="">3.8321501920354253</span></td> - <td class=""><span class="">-53°35,305'</span></td> - <td class=""><span class="">3°49,929'</span></td> - </tr> - <tr> - <td class=""><span class="">L</span></td> - <td class=""><span class="">Polygone 3</span></td> - <td class=""><span class="">-53.57989914401643</span></td> - <td class=""><span class="">3.8480725119510217</span></td> - <td class=""><span class="">-53°34,794'</span></td> - <td class=""><span class="">3°50,884'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AB;Polygone%201;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AC;Polygone%201;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AD;Polygone%201;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'%0AE;Polygone%202;-53.60031408473134;3.8224780986447566;-53%C2%B036,019';3%C2%B049,349'%0AF;Polygone%202;-53.59891645305842;3.8181831495446303;-53%C2%B035,935';3%C2%B049,091'%0AG;Polygone%202;-53.58181205656814;3.82379854768971;-53%C2%B034,909';3%C2%B049,428'%0AH;Polygone%202;-53.58320964990986;3.828093576227541;-53%C2%B034,993';3%C2%B049,686'%0AI;Polygone%203;-53.583861926103765;3.8502114455117433;-53%C2%B035,032';3%C2%B051,013'%0AJ;Polygone%203;-53.592379712320195;3.834289122043602;-53%C2%B035,543';3%C2%B050,057'%0AK;Polygone%203;-53.588417035915334;3.8321501920354253;-53%C2%B035,305';3%C2%B049,929'%0AL;Polygone%203;-53.57989914401643;3.8480725119510217;-53%C2%B034,794';3%C2%B050,884'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.58181013905019</span></td> + <td class=""><span class="">3.8309654861273</span></td> + <td class=""><span class="">-53°34,909'</span></td> + <td class=""><span class="">3°49,858'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.58178306390299</span></td> + <td class=""><span class="">3.8219278216269807</span></td> + <td class=""><span class="">-53°34,907'</span></td> + <td class=""><span class="">3°49,316'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.572785590706495</span></td> + <td class=""><span class="">3.82195493825841</span></td> + <td class=""><span class="">-53°34,367'</span></td> + <td class=""><span class="">3°49,317'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.57281257175149</span></td> + <td class=""><span class="">3.8309926670647294</span></td> + <td class=""><span class="">-53°34,369'</span></td> + <td class=""><span class="">3°49,86'</span></td> + </tr> + <tr> + <td class=""><span class="">E</span></td> + <td class=""><span class="">Polygone 2</span></td> + <td class=""><span class="">-53.60031408473134</span></td> + <td class=""><span class="">3.8224780986447566</span></td> + <td class=""><span class="">-53°36,019'</span></td> + <td class=""><span class="">3°49,349'</span></td> + </tr> + <tr> + <td class=""><span class="">F</span></td> + <td class=""><span class="">Polygone 2</span></td> + <td class=""><span class="">-53.59891645305842</span></td> + <td class=""><span class="">3.8181831495446303</span></td> + <td class=""><span class="">-53°35,935'</span></td> + <td class=""><span class="">3°49,091'</span></td> + </tr> + <tr> + <td class=""><span class="">G</span></td> + <td class=""><span class="">Polygone 2</span></td> + <td class=""><span class="">-53.58181205656814</span></td> + <td class=""><span class="">3.82379854768971</span></td> + <td class=""><span class="">-53°34,909'</span></td> + <td class=""><span class="">3°49,428'</span></td> + </tr> + <tr> + <td class=""><span class="">H</span></td> + <td class=""><span class="">Polygone 2</span></td> + <td class=""><span class="">-53.58320964990986</span></td> + <td class=""><span class="">3.828093576227541</span></td> + <td class=""><span class="">-53°34,993'</span></td> + <td class=""><span class="">3°49,686'</span></td> + </tr> + <tr> + <td class=""><span class="">I</span></td> + <td class=""><span class="">Polygone 3</span></td> + <td class=""><span class="">-53.583861926103765</span></td> + <td class=""><span class="">3.8502114455117433</span></td> + <td class=""><span class="">-53°35,032'</span></td> + <td class=""><span class="">3°51,013'</span></td> + </tr> + <tr> + <td class=""><span class="">J</span></td> + <td class=""><span class="">Polygone 3</span></td> + <td class=""><span class="">-53.592379712320195</span></td> + <td class=""><span class="">3.834289122043602</span></td> + <td class=""><span class="">-53°35,543'</span></td> + <td class=""><span class="">3°50,057'</span></td> + </tr> + <tr> + <td class=""><span class="">K</span></td> + <td class=""><span class="">Polygone 3</span></td> + <td class=""><span class="">-53.588417035915334</span></td> + <td class=""><span class="">3.8321501920354253</span></td> + <td class=""><span class="">-53°35,305'</span></td> + <td class=""><span class="">3°49,929'</span></td> + </tr> + <tr> + <td class=""><span class="">L</span></td> + <td class=""><span class="">Polygone 3</span></td> + <td class=""><span class="">-53.57989914401643</span></td> + <td class=""><span class="">3.8480725119510217</span></td> + <td class=""><span class="">-53°34,794'</span></td> + <td class=""><span class="">3°50,884'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AB;Polygone%201;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AC;Polygone%201;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AD;Polygone%201;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'%0AE;Polygone%202;-53.60031408473134;3.8224780986447566;-53%C2%B036,019';3%C2%B049,349'%0AF;Polygone%202;-53.59891645305842;3.8181831495446303;-53%C2%B035,935';3%C2%B049,091'%0AG;Polygone%202;-53.58181205656814;3.82379854768971;-53%C2%B034,909';3%C2%B049,428'%0AH;Polygone%202;-53.58320964990986;3.828093576227541;-53%C2%B034,993';3%C2%B049,686'%0AI;Polygone%203;-53.583861926103765;3.8502114455117433;-53%C2%B035,032';3%C2%B051,013'%0AJ;Polygone%203;-53.592379712320195;3.834289122043602;-53%C2%B035,543';3%C2%B050,057'%0AK;Polygone%203;-53.588417035915334;3.8321501920354253;-53%C2%B035,305';3%C2%B049,929'%0AL;Polygone%203;-53.57989914401643;3.8480725119510217;-53%C2%B034,794';3%C2%B050,884'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeArmMecaniseNonDeposable.html b/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeArmMecaniseNonDeposable.html index 78d6e8eb21be52c962dbf2268353d515f75cf476..1de918484a800a3992707b4350ec21a70975bc14 100644 --- a/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeArmMecaniseNonDeposable.html +++ b/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeArmMecaniseNonDeposable.html @@ -80,133 +80,136 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.58181013905019</span></td> - <td class=""><span class="">3.8309654861273</span></td> - <td class=""><span class="">-53°34,909'</span></td> - <td class=""><span class="">3°49,858'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.58178306390299</span></td> - <td class=""><span class="">3.8219278216269807</span></td> - <td class=""><span class="">-53°34,907'</span></td> - <td class=""><span class="">3°49,316'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.572785590706495</span></td> - <td class=""><span class="">3.82195493825841</span></td> - <td class=""><span class="">-53°34,367'</span></td> - <td class=""><span class="">3°49,317'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.57281257175149</span></td> - <td class=""><span class="">3.8309926670647294</span></td> - <td class=""><span class="">-53°34,369'</span></td> - <td class=""><span class="">3°49,86'</span></td> - </tr> - <tr> - <td class=""><span class="">E</span></td> - <td class=""><span class="">Polygone 2</span></td> - <td class=""><span class="">-53.60031408473134</span></td> - <td class=""><span class="">3.8224780986447566</span></td> - <td class=""><span class="">-53°36,019'</span></td> - <td class=""><span class="">3°49,349'</span></td> - </tr> - <tr> - <td class=""><span class="">F</span></td> - <td class=""><span class="">Polygone 2</span></td> - <td class=""><span class="">-53.59891645305842</span></td> - <td class=""><span class="">3.8181831495446303</span></td> - <td class=""><span class="">-53°35,935'</span></td> - <td class=""><span class="">3°49,091'</span></td> - </tr> - <tr> - <td class=""><span class="">G</span></td> - <td class=""><span class="">Polygone 2</span></td> - <td class=""><span class="">-53.58181205656814</span></td> - <td class=""><span class="">3.82379854768971</span></td> - <td class=""><span class="">-53°34,909'</span></td> - <td class=""><span class="">3°49,428'</span></td> - </tr> - <tr> - <td class=""><span class="">H</span></td> - <td class=""><span class="">Polygone 2</span></td> - <td class=""><span class="">-53.58320964990986</span></td> - <td class=""><span class="">3.828093576227541</span></td> - <td class=""><span class="">-53°34,993'</span></td> - <td class=""><span class="">3°49,686'</span></td> - </tr> - <tr> - <td class=""><span class="">I</span></td> - <td class=""><span class="">Polygone 3</span></td> - <td class=""><span class="">-53.583861926103765</span></td> - <td class=""><span class="">3.8502114455117433</span></td> - <td class=""><span class="">-53°35,032'</span></td> - <td class=""><span class="">3°51,013'</span></td> - </tr> - <tr> - <td class=""><span class="">J</span></td> - <td class=""><span class="">Polygone 3</span></td> - <td class=""><span class="">-53.592379712320195</span></td> - <td class=""><span class="">3.834289122043602</span></td> - <td class=""><span class="">-53°35,543'</span></td> - <td class=""><span class="">3°50,057'</span></td> - </tr> - <tr> - <td class=""><span class="">K</span></td> - <td class=""><span class="">Polygone 3</span></td> - <td class=""><span class="">-53.588417035915334</span></td> - <td class=""><span class="">3.8321501920354253</span></td> - <td class=""><span class="">-53°35,305'</span></td> - <td class=""><span class="">3°49,929'</span></td> - </tr> - <tr> - <td class=""><span class="">L</span></td> - <td class=""><span class="">Polygone 3</span></td> - <td class=""><span class="">-53.57989914401643</span></td> - <td class=""><span class="">3.8480725119510217</span></td> - <td class=""><span class="">-53°34,794'</span></td> - <td class=""><span class="">3°50,884'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AB;Polygone%201;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AC;Polygone%201;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AD;Polygone%201;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'%0AE;Polygone%202;-53.60031408473134;3.8224780986447566;-53%C2%B036,019';3%C2%B049,349'%0AF;Polygone%202;-53.59891645305842;3.8181831495446303;-53%C2%B035,935';3%C2%B049,091'%0AG;Polygone%202;-53.58181205656814;3.82379854768971;-53%C2%B034,909';3%C2%B049,428'%0AH;Polygone%202;-53.58320964990986;3.828093576227541;-53%C2%B034,993';3%C2%B049,686'%0AI;Polygone%203;-53.583861926103765;3.8502114455117433;-53%C2%B035,032';3%C2%B051,013'%0AJ;Polygone%203;-53.592379712320195;3.834289122043602;-53%C2%B035,543';3%C2%B050,057'%0AK;Polygone%203;-53.588417035915334;3.8321501920354253;-53%C2%B035,305';3%C2%B049,929'%0AL;Polygone%203;-53.57989914401643;3.8480725119510217;-53%C2%B034,794';3%C2%B050,884'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.58181013905019</span></td> + <td class=""><span class="">3.8309654861273</span></td> + <td class=""><span class="">-53°34,909'</span></td> + <td class=""><span class="">3°49,858'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.58178306390299</span></td> + <td class=""><span class="">3.8219278216269807</span></td> + <td class=""><span class="">-53°34,907'</span></td> + <td class=""><span class="">3°49,316'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.572785590706495</span></td> + <td class=""><span class="">3.82195493825841</span></td> + <td class=""><span class="">-53°34,367'</span></td> + <td class=""><span class="">3°49,317'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.57281257175149</span></td> + <td class=""><span class="">3.8309926670647294</span></td> + <td class=""><span class="">-53°34,369'</span></td> + <td class=""><span class="">3°49,86'</span></td> + </tr> + <tr> + <td class=""><span class="">E</span></td> + <td class=""><span class="">Polygone 2</span></td> + <td class=""><span class="">-53.60031408473134</span></td> + <td class=""><span class="">3.8224780986447566</span></td> + <td class=""><span class="">-53°36,019'</span></td> + <td class=""><span class="">3°49,349'</span></td> + </tr> + <tr> + <td class=""><span class="">F</span></td> + <td class=""><span class="">Polygone 2</span></td> + <td class=""><span class="">-53.59891645305842</span></td> + <td class=""><span class="">3.8181831495446303</span></td> + <td class=""><span class="">-53°35,935'</span></td> + <td class=""><span class="">3°49,091'</span></td> + </tr> + <tr> + <td class=""><span class="">G</span></td> + <td class=""><span class="">Polygone 2</span></td> + <td class=""><span class="">-53.58181205656814</span></td> + <td class=""><span class="">3.82379854768971</span></td> + <td class=""><span class="">-53°34,909'</span></td> + <td class=""><span class="">3°49,428'</span></td> + </tr> + <tr> + <td class=""><span class="">H</span></td> + <td class=""><span class="">Polygone 2</span></td> + <td class=""><span class="">-53.58320964990986</span></td> + <td class=""><span class="">3.828093576227541</span></td> + <td class=""><span class="">-53°34,993'</span></td> + <td class=""><span class="">3°49,686'</span></td> + </tr> + <tr> + <td class=""><span class="">I</span></td> + <td class=""><span class="">Polygone 3</span></td> + <td class=""><span class="">-53.583861926103765</span></td> + <td class=""><span class="">3.8502114455117433</span></td> + <td class=""><span class="">-53°35,032'</span></td> + <td class=""><span class="">3°51,013'</span></td> + </tr> + <tr> + <td class=""><span class="">J</span></td> + <td class=""><span class="">Polygone 3</span></td> + <td class=""><span class="">-53.592379712320195</span></td> + <td class=""><span class="">3.834289122043602</span></td> + <td class=""><span class="">-53°35,543'</span></td> + <td class=""><span class="">3°50,057'</span></td> + </tr> + <tr> + <td class=""><span class="">K</span></td> + <td class=""><span class="">Polygone 3</span></td> + <td class=""><span class="">-53.588417035915334</span></td> + <td class=""><span class="">3.8321501920354253</span></td> + <td class=""><span class="">-53°35,305'</span></td> + <td class=""><span class="">3°49,929'</span></td> + </tr> + <tr> + <td class=""><span class="">L</span></td> + <td class=""><span class="">Polygone 3</span></td> + <td class=""><span class="">-53.57989914401643</span></td> + <td class=""><span class="">3.8480725119510217</span></td> + <td class=""><span class="">-53°34,794'</span></td> + <td class=""><span class="">3°50,884'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AB;Polygone%201;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AC;Polygone%201;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AD;Polygone%201;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'%0AE;Polygone%202;-53.60031408473134;3.8224780986447566;-53%C2%B036,019';3%C2%B049,349'%0AF;Polygone%202;-53.59891645305842;3.8181831495446303;-53%C2%B035,935';3%C2%B049,091'%0AG;Polygone%202;-53.58181205656814;3.82379854768971;-53%C2%B034,909';3%C2%B049,428'%0AH;Polygone%202;-53.58320964990986;3.828093576227541;-53%C2%B034,993';3%C2%B049,686'%0AI;Polygone%203;-53.583861926103765;3.8502114455117433;-53%C2%B035,032';3%C2%B051,013'%0AJ;Polygone%203;-53.592379712320195;3.834289122043602;-53%C2%B035,543';3%C2%B050,057'%0AK;Polygone%203;-53.588417035915334;3.8321501920354253;-53%C2%B035,305';3%C2%B049,929'%0AL;Polygone%203;-53.57989914401643;3.8480725119510217;-53%C2%B034,794';3%C2%B050,884'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeArmNonMecaniseDeposable.html b/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeArmNonMecaniseDeposable.html index 6d70458a0518aed9e4035e813f54cb3c18d2a3fc..3cc40a8f5a0dc460c9a3918a3be376088b9d09f8 100644 --- a/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeArmNonMecaniseDeposable.html +++ b/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeArmNonMecaniseDeposable.html @@ -80,133 +80,136 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.58181013905019</span></td> - <td class=""><span class="">3.8309654861273</span></td> - <td class=""><span class="">-53°34,909'</span></td> - <td class=""><span class="">3°49,858'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.58178306390299</span></td> - <td class=""><span class="">3.8219278216269807</span></td> - <td class=""><span class="">-53°34,907'</span></td> - <td class=""><span class="">3°49,316'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.572785590706495</span></td> - <td class=""><span class="">3.82195493825841</span></td> - <td class=""><span class="">-53°34,367'</span></td> - <td class=""><span class="">3°49,317'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.57281257175149</span></td> - <td class=""><span class="">3.8309926670647294</span></td> - <td class=""><span class="">-53°34,369'</span></td> - <td class=""><span class="">3°49,86'</span></td> - </tr> - <tr> - <td class=""><span class="">E</span></td> - <td class=""><span class="">Polygone 2</span></td> - <td class=""><span class="">-53.60031408473134</span></td> - <td class=""><span class="">3.8224780986447566</span></td> - <td class=""><span class="">-53°36,019'</span></td> - <td class=""><span class="">3°49,349'</span></td> - </tr> - <tr> - <td class=""><span class="">F</span></td> - <td class=""><span class="">Polygone 2</span></td> - <td class=""><span class="">-53.59891645305842</span></td> - <td class=""><span class="">3.8181831495446303</span></td> - <td class=""><span class="">-53°35,935'</span></td> - <td class=""><span class="">3°49,091'</span></td> - </tr> - <tr> - <td class=""><span class="">G</span></td> - <td class=""><span class="">Polygone 2</span></td> - <td class=""><span class="">-53.58181205656814</span></td> - <td class=""><span class="">3.82379854768971</span></td> - <td class=""><span class="">-53°34,909'</span></td> - <td class=""><span class="">3°49,428'</span></td> - </tr> - <tr> - <td class=""><span class="">H</span></td> - <td class=""><span class="">Polygone 2</span></td> - <td class=""><span class="">-53.58320964990986</span></td> - <td class=""><span class="">3.828093576227541</span></td> - <td class=""><span class="">-53°34,993'</span></td> - <td class=""><span class="">3°49,686'</span></td> - </tr> - <tr> - <td class=""><span class="">I</span></td> - <td class=""><span class="">Polygone 3</span></td> - <td class=""><span class="">-53.583861926103765</span></td> - <td class=""><span class="">3.8502114455117433</span></td> - <td class=""><span class="">-53°35,032'</span></td> - <td class=""><span class="">3°51,013'</span></td> - </tr> - <tr> - <td class=""><span class="">J</span></td> - <td class=""><span class="">Polygone 3</span></td> - <td class=""><span class="">-53.592379712320195</span></td> - <td class=""><span class="">3.834289122043602</span></td> - <td class=""><span class="">-53°35,543'</span></td> - <td class=""><span class="">3°50,057'</span></td> - </tr> - <tr> - <td class=""><span class="">K</span></td> - <td class=""><span class="">Polygone 3</span></td> - <td class=""><span class="">-53.588417035915334</span></td> - <td class=""><span class="">3.8321501920354253</span></td> - <td class=""><span class="">-53°35,305'</span></td> - <td class=""><span class="">3°49,929'</span></td> - </tr> - <tr> - <td class=""><span class="">L</span></td> - <td class=""><span class="">Polygone 3</span></td> - <td class=""><span class="">-53.57989914401643</span></td> - <td class=""><span class="">3.8480725119510217</span></td> - <td class=""><span class="">-53°34,794'</span></td> - <td class=""><span class="">3°50,884'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AB;Polygone%201;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AC;Polygone%201;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AD;Polygone%201;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'%0AE;Polygone%202;-53.60031408473134;3.8224780986447566;-53%C2%B036,019';3%C2%B049,349'%0AF;Polygone%202;-53.59891645305842;3.8181831495446303;-53%C2%B035,935';3%C2%B049,091'%0AG;Polygone%202;-53.58181205656814;3.82379854768971;-53%C2%B034,909';3%C2%B049,428'%0AH;Polygone%202;-53.58320964990986;3.828093576227541;-53%C2%B034,993';3%C2%B049,686'%0AI;Polygone%203;-53.583861926103765;3.8502114455117433;-53%C2%B035,032';3%C2%B051,013'%0AJ;Polygone%203;-53.592379712320195;3.834289122043602;-53%C2%B035,543';3%C2%B050,057'%0AK;Polygone%203;-53.588417035915334;3.8321501920354253;-53%C2%B035,305';3%C2%B049,929'%0AL;Polygone%203;-53.57989914401643;3.8480725119510217;-53%C2%B034,794';3%C2%B050,884'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.58181013905019</span></td> + <td class=""><span class="">3.8309654861273</span></td> + <td class=""><span class="">-53°34,909'</span></td> + <td class=""><span class="">3°49,858'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.58178306390299</span></td> + <td class=""><span class="">3.8219278216269807</span></td> + <td class=""><span class="">-53°34,907'</span></td> + <td class=""><span class="">3°49,316'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.572785590706495</span></td> + <td class=""><span class="">3.82195493825841</span></td> + <td class=""><span class="">-53°34,367'</span></td> + <td class=""><span class="">3°49,317'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.57281257175149</span></td> + <td class=""><span class="">3.8309926670647294</span></td> + <td class=""><span class="">-53°34,369'</span></td> + <td class=""><span class="">3°49,86'</span></td> + </tr> + <tr> + <td class=""><span class="">E</span></td> + <td class=""><span class="">Polygone 2</span></td> + <td class=""><span class="">-53.60031408473134</span></td> + <td class=""><span class="">3.8224780986447566</span></td> + <td class=""><span class="">-53°36,019'</span></td> + <td class=""><span class="">3°49,349'</span></td> + </tr> + <tr> + <td class=""><span class="">F</span></td> + <td class=""><span class="">Polygone 2</span></td> + <td class=""><span class="">-53.59891645305842</span></td> + <td class=""><span class="">3.8181831495446303</span></td> + <td class=""><span class="">-53°35,935'</span></td> + <td class=""><span class="">3°49,091'</span></td> + </tr> + <tr> + <td class=""><span class="">G</span></td> + <td class=""><span class="">Polygone 2</span></td> + <td class=""><span class="">-53.58181205656814</span></td> + <td class=""><span class="">3.82379854768971</span></td> + <td class=""><span class="">-53°34,909'</span></td> + <td class=""><span class="">3°49,428'</span></td> + </tr> + <tr> + <td class=""><span class="">H</span></td> + <td class=""><span class="">Polygone 2</span></td> + <td class=""><span class="">-53.58320964990986</span></td> + <td class=""><span class="">3.828093576227541</span></td> + <td class=""><span class="">-53°34,993'</span></td> + <td class=""><span class="">3°49,686'</span></td> + </tr> + <tr> + <td class=""><span class="">I</span></td> + <td class=""><span class="">Polygone 3</span></td> + <td class=""><span class="">-53.583861926103765</span></td> + <td class=""><span class="">3.8502114455117433</span></td> + <td class=""><span class="">-53°35,032'</span></td> + <td class=""><span class="">3°51,013'</span></td> + </tr> + <tr> + <td class=""><span class="">J</span></td> + <td class=""><span class="">Polygone 3</span></td> + <td class=""><span class="">-53.592379712320195</span></td> + <td class=""><span class="">3.834289122043602</span></td> + <td class=""><span class="">-53°35,543'</span></td> + <td class=""><span class="">3°50,057'</span></td> + </tr> + <tr> + <td class=""><span class="">K</span></td> + <td class=""><span class="">Polygone 3</span></td> + <td class=""><span class="">-53.588417035915334</span></td> + <td class=""><span class="">3.8321501920354253</span></td> + <td class=""><span class="">-53°35,305'</span></td> + <td class=""><span class="">3°49,929'</span></td> + </tr> + <tr> + <td class=""><span class="">L</span></td> + <td class=""><span class="">Polygone 3</span></td> + <td class=""><span class="">-53.57989914401643</span></td> + <td class=""><span class="">3.8480725119510217</span></td> + <td class=""><span class="">-53°34,794'</span></td> + <td class=""><span class="">3°50,884'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AB;Polygone%201;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AC;Polygone%201;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AD;Polygone%201;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'%0AE;Polygone%202;-53.60031408473134;3.8224780986447566;-53%C2%B036,019';3%C2%B049,349'%0AF;Polygone%202;-53.59891645305842;3.8181831495446303;-53%C2%B035,935';3%C2%B049,091'%0AG;Polygone%202;-53.58181205656814;3.82379854768971;-53%C2%B034,909';3%C2%B049,428'%0AH;Polygone%202;-53.58320964990986;3.828093576227541;-53%C2%B034,993';3%C2%B049,686'%0AI;Polygone%203;-53.583861926103765;3.8502114455117433;-53%C2%B035,032';3%C2%B051,013'%0AJ;Polygone%203;-53.592379712320195;3.834289122043602;-53%C2%B035,543';3%C2%B050,057'%0AK;Polygone%203;-53.588417035915334;3.8321501920354253;-53%C2%B035,305';3%C2%B049,929'%0AL;Polygone%203;-53.57989914401643;3.8480725119510217;-53%C2%B034,794';3%C2%B050,884'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeAvecGrosseNote.html b/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeAvecGrosseNote.html index 7eb2bf3b1a318a74fc69674682c8fe384aa4d04f..ebfdd3d63fd096ffe23d49acfd87ab208e0933d5 100644 --- a/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeAvecGrosseNote.html +++ b/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeAvecGrosseNote.html @@ -49,69 +49,72 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.58181013905019</span></td> - <td class=""><span class="">3.8309654861273</span></td> - <td class=""><span class="">-53°34,909'</span></td> - <td class=""><span class="">3°49,858'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.58178306390299</span></td> - <td class=""><span class="">3.8219278216269807</span></td> - <td class=""><span class="">-53°34,907'</span></td> - <td class=""><span class="">3°49,316'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.572785590706495</span></td> - <td class=""><span class="">3.82195493825841</span></td> - <td class=""><span class="">-53°34,367'</span></td> - <td class=""><span class="">3°49,317'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.57281257175149</span></td> - <td class=""><span class="">3.8309926670647294</span></td> - <td class=""><span class="">-53°34,369'</span></td> - <td class=""><span class="">3°49,86'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AB;Polygone%201;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AC;Polygone%201;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AD;Polygone%201;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.58181013905019</span></td> + <td class=""><span class="">3.8309654861273</span></td> + <td class=""><span class="">-53°34,909'</span></td> + <td class=""><span class="">3°49,858'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.58178306390299</span></td> + <td class=""><span class="">3.8219278216269807</span></td> + <td class=""><span class="">-53°34,907'</span></td> + <td class=""><span class="">3°49,316'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.572785590706495</span></td> + <td class=""><span class="">3.82195493825841</span></td> + <td class=""><span class="">-53°34,367'</span></td> + <td class=""><span class="">3°49,317'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.57281257175149</span></td> + <td class=""><span class="">3.8309926670647294</span></td> + <td class=""><span class="">-53°34,369'</span></td> + <td class=""><span class="">3°49,86'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AB;Polygone%201;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AC;Polygone%201;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AD;Polygone%201;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeAvecSeulementPerimetre.html b/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeAvecSeulementPerimetre.html index 09ab1e14015d50462df3959e9e96496dfd29ba23..8b04e1267a67ebe1ee0f903b5fef3865c1606725 100644 --- a/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeAvecSeulementPerimetre.html +++ b/packages/ui/src/components/demarche/demarche-etape.stories_snapshots_DemandeAvecSeulementPerimetre.html @@ -28,69 +28,72 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.58181013905019</span></td> - <td class=""><span class="">3.8309654861273</span></td> - <td class=""><span class="">-53°34,909'</span></td> - <td class=""><span class="">3°49,858'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.58178306390299</span></td> - <td class=""><span class="">3.8219278216269807</span></td> - <td class=""><span class="">-53°34,907'</span></td> - <td class=""><span class="">3°49,316'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.572785590706495</span></td> - <td class=""><span class="">3.82195493825841</span></td> - <td class=""><span class="">-53°34,367'</span></td> - <td class=""><span class="">3°49,317'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.57281257175149</span></td> - <td class=""><span class="">3.8309926670647294</span></td> - <td class=""><span class="">-53°34,369'</span></td> - <td class=""><span class="">3°49,86'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AB;Polygone%201;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AC;Polygone%201;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AD;Polygone%201;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.58181013905019</span></td> + <td class=""><span class="">3.8309654861273</span></td> + <td class=""><span class="">-53°34,909'</span></td> + <td class=""><span class="">3°49,858'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.58178306390299</span></td> + <td class=""><span class="">3.8219278216269807</span></td> + <td class=""><span class="">-53°34,907'</span></td> + <td class=""><span class="">3°49,316'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.572785590706495</span></td> + <td class=""><span class="">3.82195493825841</span></td> + <td class=""><span class="">-53°34,367'</span></td> + <td class=""><span class="">3°49,317'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.57281257175149</span></td> + <td class=""><span class="">3.8309926670647294</span></td> + <td class=""><span class="">-53°34,369'</span></td> + <td class=""><span class="">3°49,86'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AB;Polygone%201;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AC;Polygone%201;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AD;Polygone%201;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/demarche/demarche-etape.tsx b/packages/ui/src/components/demarche/demarche-etape.tsx index be1070bf6f5247967bb99f84c0ef2dff6b3b5115..27a27fc093fd7e36c37b7db85b4cea24ee3ce40f 100644 --- a/packages/ui/src/components/demarche/demarche-etape.tsx +++ b/packages/ui/src/components/demarche/demarche-etape.tsx @@ -243,6 +243,7 @@ export const DemarcheEtape = defineComponent<Props>(props => { class="fr-pt-2w" initTab={props.initTab} titreSlug={props.titre.slug} + titreTypeId={props.titre.typeId} apiClient={props.apiClient} calculateNeighbours={false} perimetre={{ @@ -251,6 +252,8 @@ export const DemarcheEtape = defineComponent<Props>(props => { geojson_origine_perimetre: props.etape.fondamentale.perimetre.geojson_origine_perimetre, geojson_origine_points: props.etape.fondamentale.perimetre.geojson_origine_points, geojson_origine_geo_systeme_id: props.etape.fondamentale.perimetre.geojson_origine_geo_systeme_id, + geojson4326_forages: props.etape.fondamentale.perimetre.geojson4326_forages, + geojson_origine_forages: props.etape.fondamentale.perimetre.geojson_origine_forages, }} /> ) : null} diff --git a/packages/ui/src/components/demarche/demarche-map.tsx b/packages/ui/src/components/demarche/demarche-map.tsx index 7479bfe4b32f9e2b6d1b97bdda9d85716aa87961..781c08e5ebbe000972160e7469d4450f11cb6ca5 100644 --- a/packages/ui/src/components/demarche/demarche-map.tsx +++ b/packages/ui/src/components/demarche/demarche-map.tsx @@ -1,31 +1,38 @@ import { FunctionalComponent, HTMLAttributes, defineComponent, onMounted, ref, Ref, computed, watch, onUnmounted } from 'vue' -import { FullscreenControl, Map, NavigationControl, StyleSpecification, LayerSpecification, LngLatBounds, SourceSpecification, Popup, GeoJSONSource } from 'maplibre-gl' +import { FullscreenControl, Map, NavigationControl, StyleSpecification, LayerSpecification, LngLatBounds, SourceSpecification, Popup } from 'maplibre-gl' import 'maplibre-gl/dist/maplibre-gl.css' import { z } from 'zod' import { DsfrSeparator } from '../_ui/dsfr-separator' -import { FeatureCollectionPoints, FeatureMultiPolygon } from 'camino-common/src/perimetre' +import { FeatureCollectionForages, FeatureCollectionPoints, FeatureMultiPolygon, featureForagePropertiesValidator } from 'camino-common/src/perimetre' import { random } from '@/utils/vue-tsx-utils' import { TitresStatutIds } from 'camino-common/src/static/titresStatuts' import { TitreSlug } from 'camino-common/src/validators/titres' import { TitreApiClient } from '../titre/titre-api-client' import { TitreWithPerimetre } from '../titres/mapUtil' -import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools' +import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from 'camino-common/src/typescript-tools' import { couleurParDomaine } from '../_common/domaine' -import { getDomaineId } from 'camino-common/src/static/titresTypes' +import { TitreTypeId, getDomaineId } from 'camino-common/src/static/titresTypes' import { Router } from 'vue-router' +import { canHaveForages } from 'camino-common/src/permissions/titres' +import { capitalize } from 'camino-common/src/strings' +import { CaminoMapLibre } from '@/typings/maplibre-gl' const contoursSourceName = 'Contours' const pointsSourceName = 'Points' +const foragesSourceName = 'Forages' const contoursLineName = 'ContoursLine' const contourPointsName = 'ContoursPoints' +const contourForagesName = 'ContoursForages' +const contourForagesLabel = 'ContoursForagesLabel' const titresValidesFillName = 'TitresValidesFill' const titresValidesLineName = 'TitresValidesLine' type Props = { - perimetre: { geojson4326_perimetre: FeatureMultiPolygon; geojson4326_points: FeatureCollectionPoints } + perimetre: { geojson4326_perimetre: FeatureMultiPolygon; geojson4326_points: FeatureCollectionPoints; geojson4326_forages: FeatureCollectionForages | null } maxMarkers: number style?: HTMLAttributes['style'] class?: HTMLAttributes['class'] + titreTypeId: TitreTypeId neighbours: { apiClient: Pick<TitreApiClient, 'getTitresWithPerimetreForCarte'> titreSlug: TitreSlug @@ -59,11 +66,13 @@ const overlayLayers = [ contoursLineName, contourPointsName, 'ContoursPointLabels', + contourForagesName, + contourForagesLabel, ] as const const overlayLayerIdValidator = z.enum(overlayLayers) type OverlayLayerId = z.infer<typeof overlayLayerIdValidator> -const overlayNames = [sdomOverlayName, 'Façades maritimes', 'Limite de la redevance d’archéologie préventive', contoursSourceName, pointsSourceName, 'Titres valides'] as const +const overlayNames = [sdomOverlayName, 'Façades maritimes', 'Limite de la redevance d’archéologie préventive', contoursSourceName, pointsSourceName, foragesSourceName, 'Titres valides'] as const const overlayNameValidator = z.enum(overlayNames) type OverlayName = z.infer<typeof overlayNameValidator> @@ -73,6 +82,7 @@ const overlayMapNames = { 'Limite de la redevance d’archéologie préventive': ['RedevanceArcheologiePreventive'], [contoursSourceName]: [contoursLineName, 'ContoursFill'], [pointsSourceName]: [contourPointsName, 'ContoursPointLabels'], + [foragesSourceName]: [contourForagesName, contourForagesLabel], 'Titres valides': [titresValidesLineName, titresValidesFillName], } as const satisfies Record<OverlayName, Readonly<OverlayLayerId[]>> @@ -115,7 +125,7 @@ const layersSourceSpecifications: Record<LayerId, SourceSpecification> = { }, } const staticOverlayLayersSourceSpecification: Record< - Exclude<OverlayLayerId, 'ContoursLine' | 'ContoursFill' | 'ContoursPoints' | 'ContoursPointLabels' | 'TitresValidesLine' | 'TitresValidesFill'>, + Exclude<OverlayLayerId, 'ContoursLine' | 'ContoursFill' | 'ContoursPoints' | 'ContoursPointLabels' | 'TitresValidesLine' | 'TitresValidesFill' | 'ContoursForages' | 'ContoursForagesLabel'>, SourceSpecification > = { SDOM: { @@ -199,6 +209,29 @@ const overlayConfigs: Record<OverlayLayerId, LayerSpecification> = { 'text-allow-overlap': false, }, }, + [contourForagesName]: { + id: contourForagesName, + type: 'circle', + source: foragesSourceName, + paint: { + 'circle-color': '#fcc63a', + 'circle-radius': 16, + 'circle-stroke-width': 4, + 'circle-stroke-color': ['get', 'strokeColor'], + }, + }, + [contourForagesLabel]: { + id: contourForagesLabel, + type: 'symbol', + source: foragesSourceName, + paint: { + 'text-color': '#000000', + }, + layout: { + 'text-field': ['get', 'nom'], + 'text-allow-overlap': false, + }, + }, [titresValidesLineName]: { id: titresValidesLineName, type: 'line', @@ -224,10 +257,10 @@ const overlayConfigs: Record<OverlayLayerId, LayerSpecification> = { export const DemarcheMap = defineComponent<Props>(props => { const mapRef = ref<HTMLDivElement | null>(null) const layersControlVisible = ref<boolean>(false) - const map = ref<Map | null>(null) as Ref<Map | null> + const map = ref<CaminoMapLibre | null>(null) as Ref<CaminoMapLibre | null> - const defaultOverlayLayer = computed<Extract<OverlayName, 'Contours' | 'Points' | 'Titres valides'>[]>(() => { - const values: Extract<OverlayName, 'Contours' | 'Points' | 'Titres valides'>[] = [] + const defaultOverlayLayer = computed<Extract<OverlayName, 'Contours' | 'Points' | 'Titres valides' | 'Forages'>[]>(() => { + const values: Extract<OverlayName, 'Contours' | 'Points' | 'Titres valides' | 'Forages'>[] = [] if (props.neighbours !== null) { values.push('Titres valides') } @@ -236,6 +269,10 @@ export const DemarcheMap = defineComponent<Props>(props => { values.push('Points') } + if (canHaveForages(props.titreTypeId)) { + values.push('Forages') + } + return values }) @@ -248,17 +285,49 @@ export const DemarcheMap = defineComponent<Props>(props => { } }) + const forages = computed<FeatureCollectionForages>(() => { + return { + type: 'FeatureCollection', + features: + props.perimetre.geojson4326_forages?.features.map(feature => { + return { + ...feature, + properties: { + ...feature.properties, + strokeColor: feature.properties.type === 'captage' ? '#00A95F' : '#845d48', + latitude: feature.geometry.coordinates[1], + longitude: feature.geometry.coordinates[0], + }, + } + }) ?? [], + } + }) + + const bounds = computed<LngLatBounds>(() => { + const bounds = new LngLatBounds() + props.perimetre.geojson4326_perimetre.geometry.coordinates.forEach(top => { + top.forEach(lowerLever => lowerLever.forEach(coordinates => bounds.extend(coordinates))) + }) + props.perimetre.geojson4326_forages?.features.forEach(feature => bounds.extend(feature.geometry.coordinates)) + + return bounds + }) + watch( () => props.perimetre, () => { - const bounds = new LngLatBounds() - props.perimetre.geojson4326_perimetre.geometry.coordinates.forEach(top => { - top.forEach(lowerLever => lowerLever.forEach(coordinates => bounds.extend(coordinates))) - }) - ;(map.value?.getSource(contoursSourceName) as GeoJSONSource).setData(props.perimetre.geojson4326_perimetre) - ;(map.value?.getSource(pointsSourceName) as GeoJSONSource).setData(points.value) + map.value?.getSource(contoursSourceName).setData(props.perimetre.geojson4326_perimetre) + map.value?.getSource(pointsSourceName).setData(points.value) + map.value?.getSource(foragesSourceName).setData(forages.value) + } + ) - map.value?.fitBounds(bounds, { padding: 50 }) + watch( + () => [bounds.value, map.value], + () => { + if (isNotNullNorUndefined(map.value) && isNotNullNorUndefined(bounds.value)) { + map.value?.fitBounds(bounds.value, { padding: 50 }) + } } ) @@ -282,7 +351,7 @@ export const DemarcheMap = defineComponent<Props>(props => { typesIds: [], }) - ;(map.value?.getSource('TitresValides') as GeoJSONSource).setData({ + map.value?.getSource('TitresValides').setData({ type: 'FeatureCollection', features: res.elements .filter(({ slug }) => slug !== props.neighbours?.titreSlug) @@ -307,11 +376,6 @@ export const DemarcheMap = defineComponent<Props>(props => { } onMounted(() => { - const bounds = new LngLatBounds() - props.perimetre.geojson4326_perimetre.geometry.coordinates.forEach(top => { - top.forEach(lowerLever => lowerLever.forEach(coordinates => bounds.extend(coordinates))) - }) - const style: StyleSpecification = { version: 8, glyphs: 'https://etalab-tiles.fr/fonts/{fontstack}/{range}.pbf', @@ -326,6 +390,11 @@ export const DemarcheMap = defineComponent<Props>(props => { type: 'geojson', data: points.value, }, + + [foragesSourceName]: { + type: 'geojson', + data: forages.value, + }, TitresValides: { type: 'geojson', data: { type: 'FeatureCollection', features: [] }, @@ -344,13 +413,13 @@ export const DemarcheMap = defineComponent<Props>(props => { if (mapRef.value === null) { console.error("la carte ne peut pas être chargée à cause d'un problème technique, contactez l'équipe Camion") } else { - const mapLibre: Map = new Map({ + const mapLibre: CaminoMapLibre = new Map({ container: mapRef.value, cooperativeGestures: true, style, - center: bounds.getCenter().toArray(), + center: bounds.value.getCenter().toArray(), zoom: 16, - }) + }) as CaminoMapLibre map.value = mapLibre @@ -385,8 +454,6 @@ export const DemarcheMap = defineComponent<Props>(props => { 'top-right' ) - mapLibre.fitBounds(bounds, { padding: 50 }) - mapLibre.on('moveend', moveend) mapLibre.on('click', contourPointsName, e => { @@ -402,6 +469,24 @@ export const DemarcheMap = defineComponent<Props>(props => { } }) + mapLibre.on('click', contourForagesName, e => { + if (isNotNullNorUndefinedNorEmpty(e.features)) { + const properties = featureForagePropertiesValidator.safeParse(e.features[0].properties) + if (properties.success) { + new Popup({ closeButton: false, maxWidth: '500' }) + .setLngLat(e.lngLat) + .setHTML( + `<div class="fr-text--md fr-m-0" style="max-width: 400px;"><div>Latitude : <b>${e.features[0].properties.latitude}</b></div><div>Longitude : <b>${ + e.features[0].properties.longitude + }</b><div>Nom : <b>${properties.data.nom}</b><div>Profondeur : <b>${properties.data.profondeur} NGF</b></div><div>Type : <b>${capitalize(properties.data.type)}</b>${ + isNotNullNorUndefined(properties.data.description) ? `<div>Description : ${properties.data.description}</div>` : '' + }</div>` + ) + .addTo(mapLibre) + } + } + }) + const popup = new Popup({ closeButton: false, maxWidth: '500', @@ -483,7 +568,16 @@ export const DemarcheMap = defineComponent<Props>(props => { setLayer={selectLayer} toggleOverlayLayer={toggleOverlayLayer} defaultOverlayLayer={defaultOverlayLayer.value} - overlays={overlayNames.filter(name => props.neighbours !== null || name !== 'Titres valides')} + overlays={overlayNames.filter(name => { + if (isNullOrUndefined(props.neighbours) && name === 'Titres valides') { + return false + } + if (!canHaveForages(props.titreTypeId) && name === 'Forages') { + return false + } + + return true + })} /> </div> ) @@ -538,4 +632,4 @@ const LayersControl: FunctionalComponent<{ } // @ts-ignore waiting for https://github.com/vuejs/core/issues/7833 -DemarcheMap.props = ['perimetre', 'class', 'style', 'maxMarkers', 'neighbours', 'router'] +DemarcheMap.props = ['perimetre', 'class', 'style', 'maxMarkers', 'neighbours', 'router', 'titreTypeId'] diff --git a/packages/ui/src/components/etape/edit.vue b/packages/ui/src/components/etape/edit.vue index 0bb90265cc0b749a3adf9c6397c318b97970a399..d165b783b272001d2e80d2a75078867688363cbc 100644 --- a/packages/ui/src/components/etape/edit.vue +++ b/packages/ui/src/components/etape/edit.vue @@ -26,6 +26,7 @@ :apiClient="apiClient" :onEtapeChange="onEtapePerimetreChange" :onPointsChange="onEtapePointsChange" + :onForagesChange="onEtapeForagesChange" :completeUpdate="perimetreCompleteUpdate" /> </Bloc> @@ -381,6 +382,9 @@ export default { this.etape.geojsonOriginePoints = perimetreInfos.geojson_origine_points this.etape.geojsonOrigineGeoSystemeId = perimetreInfos.geojson_origine_geo_systeme_id + this.etape.geojson4326Forages = perimetreInfos.geojson4326_forages + this.etape.geojsonOrigineForages = perimetreInfos.geojson_origine_forages + this.$emit('alertes-update', { superposition_alertes: perimetreInfos.superposition_alertes, sdomZoneIds: perimetreInfos.sdomZoneIds }) this.$emit('update:etape', this.etape) }, @@ -389,6 +393,11 @@ export default { this.etape.geojsonOriginePoints = geojsonOriginePoints this.$emit('update:etape', this.etape) }, + onEtapeForagesChange(geojson4326Forages, geojsonOrigineForages) { + this.etape.geojson4326Forages = geojson4326Forages + this.etape.geojsonOrigineForages = geojsonOrigineForages + this.$emit('update:etape', this.etape) + }, }, } </script> diff --git a/packages/ui/src/components/etape/forages-import-popup.stories.tsx b/packages/ui/src/components/etape/forages-import-popup.stories.tsx new file mode 100644 index 0000000000000000000000000000000000000000..cdf78232d25791c93415e081954857fa0c082742 --- /dev/null +++ b/packages/ui/src/components/etape/forages-import-popup.stories.tsx @@ -0,0 +1,36 @@ +import { Meta, StoryFn } from '@storybook/vue3' +import { action } from '@storybook/addon-actions' +import { ApiClient } from '@/api/api-client' +import { FeatureCollectionForages } from 'camino-common/src/perimetre' +import { tempDocumentNameValidator } from 'camino-common/src/document' +import { ForagesImportPopup } from './forages-import-popup' + +const meta: Meta = { + title: 'Components/Etape/ImportForages', + component: ForagesImportPopup, +} +export default meta + +const close = action('close') +const geojsonForagesImportAction = action('geojsonForagesImport') +const geojsonImport = action('geojsonImport') +const resultAction = action('resultAction') + +const apiClient: Pick<ApiClient, 'uploadTempDocument' | 'geojsonForagesImport'> = { + geojsonForagesImport(body, geoSystemeId) { + geojsonForagesImportAction(body, geoSystemeId) + const result: FeatureCollectionForages = { + features: [], + type: 'FeatureCollection', + } + + return Promise.resolve({ geojson4326: result, origin: result }) + }, + uploadTempDocument(document) { + geojsonImport(document) + + return Promise.resolve(tempDocumentNameValidator.parse('name')) + }, +} + +export const Default: StoryFn = () => <ForagesImportPopup close={close} apiClient={apiClient} result={resultAction} geoSystemeId="2154" /> diff --git a/packages/ui/src/components/etape/forages-import-popup.stories_snapshots_Default.html b/packages/ui/src/components/etape/forages-import-popup.stories_snapshots_Default.html new file mode 100644 index 0000000000000000000000000000000000000000..313a2c1f0ded577ab6c03b76613ed63b5735f760 --- /dev/null +++ b/packages/ui/src/components/etape/forages-import-popup.stories_snapshots_Default.html @@ -0,0 +1,59 @@ +<!--teleport start--> +<div class="dsfr"> + <dialog id="monId" class="fr-modal fr-modal--opened" open="" aria-modal="true" role="dialog" aria-labelledby="monId-title" style="z-index: 1000001;"> + <div class="fr-container fr-container--fluid fr-container-md"> + <div class="fr-grid-row fr-grid-row--center"> + <div class="fr-col-12 fr-col-md-8 fr-col-lg-6"> + <div class="fr-modal__body"> + <div class="fr-modal__header"><button class="fr-btn--close fr-btn" aria-controls="monId" title="Fermer">Fermer</button></div> + <div class="fr-modal__content"> + <h1 id="monId-title" class="fr-modal__title"><span class="fr-icon-arrow-right-line fr-icon--lg" aria-hidden="true"></span>Modification des forages</h1> + <div class="fr-container"> + <form> + <fieldset class="fr-fieldset fr-mt-2w" id="geographic"> + <div class="fr-fieldset__element"> + <div class="fr-select-group"><label class="fr-label" for="type">Système géographique</label> + <div id="typeahead_271_wrapper" class="_typeahead_8eddf1 dsfr"> + <div class="flex"><input id="typeahead_271" type="text" name="typeahead_271" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> + <!----> + </div> + </div> + </div> + </fieldset> + <fieldset class="fr-fieldset" id="radio_670" aria-labelledby="radio_670-legend"> + <legend class="fr-fieldset__legend--regular fr-fieldset__legend" id="radio_670-legend">Type de fichier + <!----> + </legend> + <div class="fr-fieldset__element fr-fieldset__element--inline"> + <div class="fr-radio-group"><input type="radio" id="radio_670-0" name="radio_670"><label class="fr-label" for="radio_670-0">csv + <!----> + </label></div> + </div> + <div class="fr-fieldset__element fr-fieldset__element--inline"> + <div class="fr-radio-group"><input type="radio" id="radio_670-1" name="radio_670"><label class="fr-label" for="radio_670-1">geojson + <!----> + </label></div> + </div> + <div class="fr-fieldset__element fr-fieldset__element--inline"> + <div class="fr-radio-group"><input type="radio" id="radio_670-2" name="radio_670"><label class="fr-label" for="radio_670-2">shape + <!----> + </label></div> + </div> + </fieldset> + <!----> + </form> + </div> + </div> + <div class="fr-modal__footer"> + <ul class="fr-btns-group fr-btns-group--right fr-btns-group--inline-reverse fr-btns-group--inline-lg fr-btns-group--icon-left"> + <li><button class="fr-btn fr-icon-check-line fr-btn--icon-left disabled" disabled="">Importer</button></li> + <li><button class="fr-btn fr-icon-arrow-go-back-fill fr-btn--icon-left fr-btn--secondary" aria-controls="monId">Annuler</button></li> + </ul> + </div> + </div> + </div> + </div> + </div> + </dialog> +</div> +<!--teleport end--> \ No newline at end of file diff --git a/packages/ui/src/components/etape/forages-import-popup.tsx b/packages/ui/src/components/etape/forages-import-popup.tsx new file mode 100644 index 0000000000000000000000000000000000000000..b1445390fdb97af2d3820fc1c74189b649bd7e65 --- /dev/null +++ b/packages/ui/src/components/etape/forages-import-popup.tsx @@ -0,0 +1,103 @@ +import { caminoDefineComponent } from '@/utils/vue-tsx-utils' +import { FunctionalPopup } from '../_ui/functional-popup' +import { InputFile } from '../_ui/dsfr-input-file' +import { GeoSystemeId, GeoSystemes } from 'camino-common/src/static/geoSystemes' +import { ref } from 'vue' +import { ApiClient } from '@/api/api-client' +import { FeatureCollectionForages } from 'camino-common/src/perimetre' +import { Alert } from '../_ui/alert' +import { GeoSystemeTypeahead } from '../_common/geosysteme-typeahead' +import { DsfrInputRadio } from '../_ui/dsfr-input-radio' +import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools' + +interface Props { + apiClient: Pick<ApiClient, 'uploadTempDocument' | 'geojsonForagesImport'> + geoSystemeId: GeoSystemeId + result: (value: { geojson4326: FeatureCollectionForages; origin: FeatureCollectionForages } | Error) => void + close: () => void +} + +export const ForagesImportPopup = caminoDefineComponent<Props>(['apiClient', 'close', 'result', 'geoSystemeId'], props => { + const importFile = ref<File | null>(null) + + const fileChange = async (file: File) => { + importFile.value = file + } + + type FileType = 'geojson' | 'shp' | 'csv' + const fileType = ref<FileType | null>(null) + const fileTypeSelected = (value: FileType) => { + fileType.value = value + } + + const content = () => ( + <form> + <fieldset class="fr-fieldset fr-mt-2w" id="geographic"> + <div class="fr-fieldset__element"> + <div class="fr-select-group"> + <label class="fr-label" for="type"> + Système géographique + </label> + <GeoSystemeTypeahead geoSystemeId={props.geoSystemeId} disabled={true} /> + </div> + </div> + </fieldset> + <DsfrInputRadio + legend={{ main: 'Type de fichier' }} + orientation="horizontal" + valueChanged={fileTypeSelected} + elements={[ + { legend: { main: 'csv' }, itemId: 'csv' }, + { legend: { main: 'geojson' }, itemId: 'geojson' }, + { legend: { main: 'shape' }, itemId: 'shp' }, + ]} + /> + + {isNotNullNorUndefined(fileType.value) ? ( + <> + <Alert + type="info" + small={true} + title={ + <> + Vous pouvez déposer un fichier de forages pour modifier ou supprimer les propriétés des forages. Ils doivent avoir les champs suivants : "nom" (nous vous conseillons de ne pas dépasser + 3 caractères), "description", "type" (rejet ou captage), "profondeur" (en NGF) + {fileType.value !== 'csv' ? '. ' : `, ${GeoSystemes[props.geoSystemeId].uniteId === 'deg' ? '"longitude", "latitude". ' : '"x", "y". '}`} + Seul le champ description peut être vide. + </> + } + /> + + <fieldset class="fr-fieldset" id="fichier"> + <div class="fr-fieldset__element"> + <InputFile accept={[fileType.value]} uploadFile={fileChange} /> + </div> + </fieldset> + </> + ) : null} + </form> + ) + + return () => ( + <FunctionalPopup + title="Modification des forages" + content={content} + close={props.close} + validate={{ + action: async () => { + if (importFile.value !== null && fileType.value !== null) { + const tempFile = await props.apiClient.uploadTempDocument(importFile.value) + try { + const result = await props.apiClient.geojsonForagesImport({ tempDocumentName: tempFile, fileType: fileType.value }, props.geoSystemeId) + props.result(result) + } catch (e: any) { + props.result(new Error("Erreur lors de l'import")) + } + } + }, + text: 'Importer', + }} + canValidate={importFile.value !== null} + /> + ) +}) diff --git a/packages/ui/src/components/etape/perimetre-edit.stories.tsx b/packages/ui/src/components/etape/perimetre-edit.stories.tsx index 90603510ec8065fb2881e7563d48f0bd68bc68a8..f5da0becbd806f65185c5f48f5fc00ecb1f896d5 100644 --- a/packages/ui/src/components/etape/perimetre-edit.stories.tsx +++ b/packages/ui/src/components/etape/perimetre-edit.stories.tsx @@ -1,7 +1,7 @@ import { Meta, StoryFn } from '@storybook/vue3' import { action } from '@storybook/addon-actions' import { ApiClient } from '@/api/api-client' -import { FeatureCollectionPoints, FeatureMultiPolygon, GeojsonInformations } from 'camino-common/src/perimetre' +import { FeatureCollectionForages, FeatureCollectionPoints, FeatureMultiPolygon, GeojsonInformations } from 'camino-common/src/perimetre' import { tempDocumentNameValidator } from 'camino-common/src/document' import { PerimetreEdit, Props } from './perimetre-edit' import { toCaminoDate } from 'camino-common/src/date' @@ -24,6 +24,7 @@ const getGeojsonByGeoSystemeIdAction = action('getGeojsonByGeoSystemeId') const completeUpdateAction = action('completeUpdate') const onEtapeChangeAction = action('onEtapeChange') const onPointsChangeAction = action('onPointsChange') +const onForagesChangeAction = action('onForagesChange') const perimetre: FeatureMultiPolygon = { type: 'Feature', @@ -44,7 +45,7 @@ const perimetre: FeatureMultiPolygon = { }, } -const apiClient: Pick<ApiClient, 'uploadTempDocument' | 'geojsonImport' | 'getGeojsonByGeoSystemeId' | 'geojsonPointsImport'> = { +const apiClient: Pick<ApiClient, 'uploadTempDocument' | 'geojsonImport' | 'getGeojsonByGeoSystemeId' | 'geojsonPointsImport' | 'geojsonForagesImport'> = { geojsonImport(body, geoSystemeId) { geojsonImportAction(body, geoSystemeId) @@ -55,6 +56,11 @@ const apiClient: Pick<ApiClient, 'uploadTempDocument' | 'geojsonImport' | 'getGe return Promise.reject(new Error('plop')) }, + geojsonForagesImport(body, geoSystemeId) { + geojsonImportAction(body, geoSystemeId) + + return Promise.reject(new Error('plop')) + }, uploadTempDocument(document) { uploadTempDocumentAction(document) @@ -77,6 +83,9 @@ const onEtapeChange = (geojsonInformations: GeojsonInformations) => { const onPointsChange = (geojson4326Points: FeatureCollectionPoints) => { onPointsChangeAction(geojson4326Points) } +const onForagesChange = (geojson4326Forages: FeatureCollectionForages) => { + onForagesChangeAction(geojson4326Forages) +} const etapeNoHeritage: Props['etape'] = { typeId: 'mfr', heritageProps: { perimetre: { actif: false } }, @@ -85,6 +94,8 @@ const etapeNoHeritage: Props['etape'] = { geojsonOriginePerimetre: null, geojsonOriginePoints: null, geojsonOrigineGeoSystemeId: null, + geojson4326Forages: null, + geojsonOrigineForages: null, surface: null, } @@ -99,6 +110,7 @@ export const EmptyNoHeritage: StoryFn = () => ( completeUpdate={completeUpdate} onEtapeChange={onEtapeChange} onPointsChange={onPointsChange} + onForagesChange={onForagesChange} /> ) const etapeEmptyHeritage: Props['etape'] = { @@ -116,6 +128,7 @@ export const EmptyHeritage: StoryFn = () => ( titreTypeId="arm" titreSlug={titreSlug} onPointsChange={onPointsChange} + onForagesChange={onForagesChange} /> ) @@ -147,6 +160,7 @@ export const Heritage: StoryFn = () => ( titreTypeId="arm" titreSlug={titreSlug} onPointsChange={onPointsChange} + onForagesChange={onForagesChange} /> ) @@ -169,6 +183,7 @@ export const FilledNoHeritage: StoryFn = () => ( titreTypeId="arm" titreSlug={titreSlug} onPointsChange={onPointsChange} + onForagesChange={onForagesChange} /> ) @@ -191,5 +206,38 @@ export const LegacyGeoSysteme: StoryFn = () => ( titreTypeId="arm" titreSlug={titreSlug} onPointsChange={onPointsChange} + onForagesChange={onForagesChange} + /> +) + +const geojsonForages: FeatureCollectionForages = { + type: 'FeatureCollection', + features: [ + { type: 'Feature', properties: { nom: 'C1', description: 'Captage 1', profondeur: 42, type: 'captage' }, geometry: { type: 'Point', coordinates: [-52.5620583466962, 4.23454263425535] } }, + { type: 'Feature', properties: { nom: 'R1', description: 'Rejet 1', profondeur: 42, type: 'rejet' }, geometry: { type: 'Point', coordinates: [-52.5640583466962, 4.23754263425535] } }, + ], +} +const etapeWithForages: Props['etape'] = { + ...etapeEmptyHeritage, + geojson4326Perimetre: perimetre, + surface: km2Validator.parse(2), + geojsonOriginePerimetre: perimetre, + geojsonOriginePoints: null, + geojsonOrigineGeoSystemeId: '4326', + geojson4326Forages: geojsonForages, + geojsonOrigineForages: geojsonForages, + heritageProps: { perimetre: { actif: false } }, +} +export const WithForages: StoryFn = () => ( + <PerimetreEdit + initTab="points" + completeUpdate={completeUpdate} + onEtapeChange={onEtapeChange} + apiClient={apiClient} + etape={etapeWithForages} + titreTypeId="pxg" + titreSlug={titreSlug} + onPointsChange={onPointsChange} + onForagesChange={onForagesChange} /> ) diff --git a/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_EmptyHeritage.html b/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_EmptyHeritage.html index 21862d26aacd46308de69f2cb7c3d116e7c7a8e1..d34aa75194f2c8f7fa25a2983e50c74f0699a55d 100644 --- a/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_EmptyHeritage.html +++ b/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_EmptyHeritage.html @@ -12,5 +12,6 @@ </div> <!----> <!----> + <!----> </div> </div> \ No newline at end of file diff --git a/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_EmptyNoHeritage.html b/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_EmptyNoHeritage.html index 1da55f43283ba4ac46ff6b0ccfbea95ccc68ccea..eadec65cca38d65cf7f61de6fe5de17c87e84e69 100644 --- a/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_EmptyNoHeritage.html +++ b/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_EmptyNoHeritage.html @@ -10,5 +10,6 @@ </div> <!----> <!----> + <!----> </div> </div> \ No newline at end of file diff --git a/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_FilledNoHeritage.html b/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_FilledNoHeritage.html index 85b8c787ab674f6b288beef5eda01bdcc603392f..e5c7158346dacfa97f57b9bd0ec0046a38934bcc 100644 --- a/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_FilledNoHeritage.html +++ b/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_FilledNoHeritage.html @@ -2,6 +2,7 @@ <div class="dsfr"> <div class="mb-s"> <div><button class="fr-btn fr-btn--primary fr-btn--md" title="Importer un périmètre" aria-label="Importer un périmètre" type="button">Importer un périmètre</button><button class="fr-btn fr-btn--secondary fr-btn--md fr-ml-2w" title="Éditer les points" aria-label="Éditer les points" type="button">Éditer les points</button> + <!----> <!----> <div class="fr-mt-2w"> <div class="dsfr"> @@ -19,61 +20,64 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-52.54</span></td> - <td class=""><span class="">4.22269896902571</span></td> - <td class=""><span class="">-52°32,4'</span></td> - <td class=""><span class="">4°13,362'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-52.55</span></td> - <td class=""><span class="">4.22438936251509</span></td> - <td class=""><span class="">-52°33'</span></td> - <td class=""><span class="">4°13,463'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-52.55</span></td> - <td class=""><span class="">4.24113309117193</span></td> - <td class=""><span class="">-52°33'</span></td> - <td class=""><span class="">4°14,468'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-52.54;4.22269896902571;-52%C2%B032,4';4%C2%B013,362'%0AB;Polygone%201;-52.55;4.22438936251509;-52%C2%B033';4%C2%B013,463'%0AC;Polygone%201;-52.55;4.24113309117193;-52%C2%B033';4%C2%B014,468'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-52.54</span></td> + <td class=""><span class="">4.22269896902571</span></td> + <td class=""><span class="">-52°32,4'</span></td> + <td class=""><span class="">4°13,362'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-52.55</span></td> + <td class=""><span class="">4.22438936251509</span></td> + <td class=""><span class="">-52°33'</span></td> + <td class=""><span class="">4°13,463'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-52.55</span></td> + <td class=""><span class="">4.24113309117193</span></td> + <td class=""><span class="">-52°33'</span></td> + <td class=""><span class="">4°14,468'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-52.54;4.22269896902571;-52%C2%B032,4';4%C2%B013,362'%0AB;Polygone%201;-52.55;4.22438936251509;-52%C2%B033';4%C2%B013,463'%0AC;Polygone%201;-52.55;4.24113309117193;-52%C2%B033';4%C2%B014,468'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> @@ -85,5 +89,6 @@ </div> <!----> <!----> + <!----> </div> </div> \ No newline at end of file diff --git a/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_Heritage.html b/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_Heritage.html index 84bc7e5b5d83592d19c4848b65c0255bfbb94935..ed2b8fcfc617da9fdf81b510f3c2a5d7e9a3beb9 100644 --- a/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_Heritage.html +++ b/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_Heritage.html @@ -18,61 +18,64 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-52.54</span></td> - <td class=""><span class="">4.22269896902571</span></td> - <td class=""><span class="">-52°32,4'</span></td> - <td class=""><span class="">4°13,362'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-52.55</span></td> - <td class=""><span class="">4.22438936251509</span></td> - <td class=""><span class="">-52°33'</span></td> - <td class=""><span class="">4°13,463'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-52.55</span></td> - <td class=""><span class="">4.24113309117193</span></td> - <td class=""><span class="">-52°33'</span></td> - <td class=""><span class="">4°14,468'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-52.54;4.22269896902571;-52%C2%B032,4';4%C2%B013,362'%0AB;Polygone%201;-52.55;4.22438936251509;-52%C2%B033';4%C2%B013,463'%0AC;Polygone%201;-52.55;4.24113309117193;-52%C2%B033';4%C2%B014,468'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-52.54</span></td> + <td class=""><span class="">4.22269896902571</span></td> + <td class=""><span class="">-52°32,4'</span></td> + <td class=""><span class="">4°13,362'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-52.55</span></td> + <td class=""><span class="">4.22438936251509</span></td> + <td class=""><span class="">-52°33'</span></td> + <td class=""><span class="">4°13,463'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-52.55</span></td> + <td class=""><span class="">4.24113309117193</span></td> + <td class=""><span class="">-52°33'</span></td> + <td class=""><span class="">4°14,468'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-52.54;4.22269896902571;-52%C2%B032,4';4%C2%B013,362'%0AB;Polygone%201;-52.55;4.22438936251509;-52%C2%B033';4%C2%B013,463'%0AC;Polygone%201;-52.55;4.24113309117193;-52%C2%B033';4%C2%B014,468'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> @@ -88,5 +91,6 @@ </div> <!----> <!----> + <!----> </div> </div> \ No newline at end of file diff --git a/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_LegacyGeoSysteme.html b/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_LegacyGeoSysteme.html index 85b8c787ab674f6b288beef5eda01bdcc603392f..e5c7158346dacfa97f57b9bd0ec0046a38934bcc 100644 --- a/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_LegacyGeoSysteme.html +++ b/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_LegacyGeoSysteme.html @@ -2,6 +2,7 @@ <div class="dsfr"> <div class="mb-s"> <div><button class="fr-btn fr-btn--primary fr-btn--md" title="Importer un périmètre" aria-label="Importer un périmètre" type="button">Importer un périmètre</button><button class="fr-btn fr-btn--secondary fr-btn--md fr-ml-2w" title="Éditer les points" aria-label="Éditer les points" type="button">Éditer les points</button> + <!----> <!----> <div class="fr-mt-2w"> <div class="dsfr"> @@ -19,61 +20,64 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-52.54</span></td> - <td class=""><span class="">4.22269896902571</span></td> - <td class=""><span class="">-52°32,4'</span></td> - <td class=""><span class="">4°13,362'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-52.55</span></td> - <td class=""><span class="">4.22438936251509</span></td> - <td class=""><span class="">-52°33'</span></td> - <td class=""><span class="">4°13,463'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-52.55</span></td> - <td class=""><span class="">4.24113309117193</span></td> - <td class=""><span class="">-52°33'</span></td> - <td class=""><span class="">4°14,468'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-52.54;4.22269896902571;-52%C2%B032,4';4%C2%B013,362'%0AB;Polygone%201;-52.55;4.22438936251509;-52%C2%B033';4%C2%B013,463'%0AC;Polygone%201;-52.55;4.24113309117193;-52%C2%B033';4%C2%B014,468'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-52.54</span></td> + <td class=""><span class="">4.22269896902571</span></td> + <td class=""><span class="">-52°32,4'</span></td> + <td class=""><span class="">4°13,362'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-52.55</span></td> + <td class=""><span class="">4.22438936251509</span></td> + <td class=""><span class="">-52°33'</span></td> + <td class=""><span class="">4°13,463'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-52.55</span></td> + <td class=""><span class="">4.24113309117193</span></td> + <td class=""><span class="">-52°33'</span></td> + <td class=""><span class="">4°14,468'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-52.54;4.22269896902571;-52%C2%B032,4';4%C2%B013,362'%0AB;Polygone%201;-52.55;4.22438936251509;-52%C2%B033';4%C2%B013,463'%0AC;Polygone%201;-52.55;4.24113309117193;-52%C2%B033';4%C2%B014,468'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> @@ -85,5 +89,6 @@ </div> <!----> <!----> + <!----> </div> </div> \ No newline at end of file diff --git a/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_WithForages.html b/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_WithForages.html new file mode 100644 index 0000000000000000000000000000000000000000..69836cc0147025cfc3633e4ba2b79bc76fb044c6 --- /dev/null +++ b/packages/ui/src/components/etape/perimetre-edit.stories_snapshots_WithForages.html @@ -0,0 +1,141 @@ +<div class="dsfr"> + <div class="dsfr"> + <div class="mb-s"> + <div><button class="fr-btn fr-btn--primary fr-btn--md" title="Importer un périmètre" aria-label="Importer un périmètre" type="button">Importer un périmètre</button><button class="fr-btn fr-btn--secondary fr-btn--md fr-ml-2w" title="Éditer les points" aria-label="Éditer les points" type="button">Éditer les points</button><button class="fr-btn fr-btn--secondary fr-btn--md fr-ml-2w" title="Éditer les forages" aria-label="Éditer les forages" type="button">Éditer les forages</button> + <!----> + <div class="fr-mt-2w"> + <div class="dsfr"> + <div class="fr-tabs"> + <ul class="fr-tabs__list" role="tablist" aria-label="Affichage des titres en vue carte ou tableau"> + <li role="presentation"><button id="tabpanel-carte-271" class="fr-tabs__tab fr-icon-earth-fill fr-tabs__tab--icon-left" tabindex="-1" role="tab" aria-label="Carte" aria-selected="false" aria-controls="tabpanel-carte-271-panel">Carte</button></li> + <li role="presentation"><button id="tabpanel-points-271" class="fr-tabs__tab fr-icon-list-unordered fr-tabs__tab--icon-left" tabindex="0" role="tab" aria-label="Tableau" aria-selected="true" aria-controls="tabpanel-points-271-panel">Tableau</button></li> + </ul> + <div id="tabpanel-carte-271-panel" class="fr-tabs__panel" role="tabpanel" aria-labelledby="tabpanel-carte-271" tabindex="0"> + <!----> + </div> + <div id="tabpanel-points-271-panel" class="fr-tabs__panel fr-tabs__panel--selected" role="tabpanel" aria-labelledby="tabpanel-points-271" tabindex="0"> + <div style="display: flex; flex-direction: column;"> + <div id="typeahead_670_wrapper" class="_typeahead_8eddf1 dsfr"> + <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> + <!----> + </div> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption>Points</caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-52.54</span></td> + <td class=""><span class="">4.22269896902571</span></td> + <td class=""><span class="">-52°32,4'</span></td> + <td class=""><span class="">4°13,362'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-52.55</span></td> + <td class=""><span class="">4.22438936251509</span></td> + <td class=""><span class="">-52°33'</span></td> + <td class=""><span class="">4°13,463'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-52.55</span></td> + <td class=""><span class="">4.24113309117193</span></td> + <td class=""><span class="">-52°33'</span></td> + <td class=""><span class="">4°14,468'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-52.54;4.22269896902571;-52%C2%B032,4';4%C2%B013,362'%0AB;Polygone%201;-52.55;4.22438936251509;-52%C2%B033';4%C2%B013,463'%0AC;Polygone%201;-52.55;4.24113309117193;-52%C2%B033';4%C2%B014,468'" download="points-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption>Forages</caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Profondeur (NGF)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Type</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">C1</span></td> + <td class=""><span class="">Captage 1</span></td> + <td class=""><span class="">42</span></td> + <td class=""><span class="">Captage</span></td> + <td class=""><span class="">-52.5620583466962</span></td> + <td class=""><span class="">4.23454263425535</span></td> + </tr> + <tr> + <td class=""><span class="">R1</span></td> + <td class=""><span class="">Rejet 1</span></td> + <td class=""><span class="">42</span></td> + <td class=""><span class="">Rejet</span></td> + <td class=""><span class="">-52.5640583466962</span></td> + <td class=""><span class="">4.23754263425535</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les forages au format csv" href="data:text/csv;charset=utf-8,nom;description;profondeur;type;longitude;latitude%0AC1;Captage%201;42;captage;-52.5620583466962;4.23454263425535%0AR1;Rejet%201;42;rejet;-52.5640583466962;4.23754263425535" download="forages-titre-slug.csv" style="align-self: end;">.csv</a> + </div> + </div> + </div> + </div> + </div> + <div class="fr-text--md">Surface : 2 Km²</div> + </div> + </div> + <!----> + </div> + <!----> + <!----> + <!----> + </div> +</div> \ No newline at end of file diff --git a/packages/ui/src/components/etape/perimetre-edit.tsx b/packages/ui/src/components/etape/perimetre-edit.tsx index 663020e7ac5379b70b372186b0c2961793534682..a54161d768540bb6aa2c0d5cc7ebb9d8db909967 100644 --- a/packages/ui/src/components/etape/perimetre-edit.tsx +++ b/packages/ui/src/components/etape/perimetre-edit.tsx @@ -4,7 +4,7 @@ import { FunctionalComponent, HTMLAttributes, computed, defineComponent, onMount import { DsfrButton } from '../_ui/dsfr-button' import { ApiClient } from '@/api/api-client' import { EtapeTypeId } from 'camino-common/src/static/etapesTypes' -import { FeatureCollectionPoints, FeatureMultiPolygon, GeojsonInformations } from 'camino-common/src/perimetre' +import { FeatureCollectionForages, FeatureCollectionPoints, FeatureMultiPolygon, GeojsonInformations } from 'camino-common/src/perimetre' import { TitreTypeId } from 'camino-common/src/static/titresTypes' import { DsfrPerimetre } from '../_common/dsfr-perimetre' import { TitreSlug } from 'camino-common/src/validators/titres' @@ -14,21 +14,37 @@ import { EtapeWithHeritage, EtapeFondamentale } from 'camino-common/src/etape' import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools' import { PointsImportPopup } from './points-import-popup' import { GeoSystemeId } from 'camino-common/src/static/geoSystemes' +import { ForagesImportPopup } from './forages-import-popup' +import { canHaveForages } from 'camino-common/src/permissions/titres' export interface Props { - apiClient: Pick<ApiClient, 'uploadTempDocument' | 'geojsonImport' | 'getGeojsonByGeoSystemeId' | 'geojsonPointsImport'> + apiClient: Pick<ApiClient, 'uploadTempDocument' | 'geojsonImport' | 'getGeojsonByGeoSystemeId' | 'geojsonPointsImport' | 'geojsonForagesImport'> etape: { typeId: EtapeTypeId heritageProps: { perimetre: EtapeWithHeritage< 'perimetre', - Pick<EtapeFondamentale, 'geojson4326Perimetre' | 'surface' | 'geojson4326Points' | 'typeId' | 'date' | 'geojsonOriginePerimetre' | 'geojsonOriginePoints' | 'geojsonOrigineGeoSystemeId'> + Pick< + EtapeFondamentale, + | 'geojson4326Perimetre' + | 'surface' + | 'geojson4326Points' + | 'typeId' + | 'date' + | 'geojsonOriginePerimetre' + | 'geojsonOriginePoints' + | 'geojsonOrigineGeoSystemeId' + | 'geojsonOrigineForages' + | 'geojson4326Forages' + > >['heritageProps']['perimetre'] } geojson4326Perimetre: FeatureMultiPolygon | null geojson4326Points: FeatureCollectionPoints | null geojsonOriginePerimetre: FeatureMultiPolygon | null | undefined geojsonOriginePoints: FeatureCollectionPoints | null + geojson4326Forages: FeatureCollectionForages | null + geojsonOrigineForages: FeatureCollectionForages | null geojsonOrigineGeoSystemeId: GeoSystemeId | null surface: KM2 | null } @@ -37,6 +53,7 @@ export interface Props { completeUpdate: (complete: boolean) => void onEtapeChange: (geojsonInformations: GeojsonInformations) => void onPointsChange: (geojson4326Points: FeatureCollectionPoints, geojsonOriginePoints: FeatureCollectionPoints) => void + onForagesChange: (geojson4326Forages: FeatureCollectionForages, geojsonOrigineForages: FeatureCollectionForages) => void initTab?: 'points' | 'carte' } @@ -47,10 +64,13 @@ type DisplayPerimetreProps = { geojson4326Points: FeatureCollectionPoints | null geojsonOriginePerimetre: FeatureMultiPolygon | null | undefined geojsonOriginePoints: FeatureCollectionPoints | null + geojson4326Forages: FeatureCollectionForages | null + geojsonOrigineForages: FeatureCollectionForages | null geojsonOrigineGeoSystemeId: GeoSystemeId | null } surface: KM2 | null titreSlug: TitreSlug + titreTypeId: TitreTypeId initTab?: 'points' | 'carte' class?: HTMLAttributes['class'] } @@ -68,8 +88,11 @@ const DisplayPerimetre: FunctionalComponent<DisplayPerimetreProps> = props => { geojson_origine_perimetre: props.etape.geojsonOriginePerimetre, geojson_origine_points: props.etape.geojsonOriginePoints, geojson_origine_geo_systeme_id: props.etape.geojsonOrigineGeoSystemeId, + geojson4326_forages: props.etape.geojson4326Forages, + geojson_origine_forages: props.etape.geojsonOrigineForages, }} titreSlug={props.titreSlug} + titreTypeId={props.titreTypeId} initTab={props.initTab ?? 'carte'} /> @@ -84,6 +107,7 @@ const DisplayPerimetre: FunctionalComponent<DisplayPerimetreProps> = props => { export const PerimetreEdit = defineComponent<Props>(props => { const importPerimetrePopup = ref<boolean>(false) const importPointsPopup = ref<boolean>(false) + const importForagesPopup = ref<boolean>(false) const importError = ref<boolean>(false) const complete = computed(() => { @@ -115,6 +139,13 @@ export const PerimetreEdit = defineComponent<Props>(props => { importPointsPopup.value = false } + const openForagesPopup = () => { + importForagesPopup.value = true + } + const closeForagesPopup = () => { + importForagesPopup.value = false + } + const surface = ref<KM2 | null>(props.etape.surface) const result = (value: GeojsonInformations | Error) => { @@ -138,6 +169,16 @@ export const PerimetreEdit = defineComponent<Props>(props => { } } + const resultForages = (value: { geojson4326: FeatureCollectionForages; origin: FeatureCollectionForages } | Error) => { + if ('geojson4326' in value) { + importError.value = false + props.onForagesChange(value.geojson4326, value.origin) + } else { + importError.value = true + console.error(value) + } + } + return () => ( <div class="dsfr"> <HeritageEdit @@ -147,12 +188,23 @@ export const PerimetreEdit = defineComponent<Props>(props => { <div> <DsfrButton onClick={openPerimetrePopup} title="Importer un périmètre" /> {isNotNullNorUndefined(props.etape.geojson4326Perimetre) && isNotNullNorUndefined(props.etape.geojsonOrigineGeoSystemeId) ? ( - <DsfrButton class="fr-ml-2w" onClick={openPointsPopup} buttonType="secondary" title="Éditer les points" /> + <> + <DsfrButton class="fr-ml-2w" onClick={openPointsPopup} buttonType="secondary" title="Éditer les points" /> + {canHaveForages(props.titreTypeId) ? <DsfrButton class="fr-ml-2w" onClick={openForagesPopup} buttonType="secondary" title="Éditer les forages" /> : null} + </> ) : null} {importError.value ? <Alert class="fr-mt-2w" title="Une erreur est survenue lors de l’import de votre fichier." type="error" description="Vérifiez le contenu de votre fichier" /> : null} - <DisplayPerimetre class="fr-mt-2w" apiClient={props.apiClient} etape={props.etape} titreSlug={props.titreSlug} initTab={props.initTab} surface={surface.value} /> + <DisplayPerimetre + class="fr-mt-2w" + apiClient={props.apiClient} + etape={props.etape} + titreSlug={props.titreSlug} + initTab={props.initTab} + surface={surface.value} + titreTypeId={props.titreTypeId} + /> </div> )} read={heritage => ( @@ -165,8 +217,11 @@ export const PerimetreEdit = defineComponent<Props>(props => { geojsonOriginePerimetre: heritage?.geojsonOriginePerimetre ?? null, geojsonOriginePoints: heritage?.geojsonOriginePoints ?? null, geojsonOrigineGeoSystemeId: heritage?.geojsonOrigineGeoSystemeId ?? null, + geojson4326Forages: heritage?.geojson4326Forages ?? null, + geojsonOrigineForages: heritage?.geojsonOrigineForages ?? null, }} titreSlug={props.titreSlug} + titreTypeId={props.titreTypeId} initTab={props.initTab} surface={heritage?.surface ?? null} /> @@ -178,9 +233,13 @@ export const PerimetreEdit = defineComponent<Props>(props => { {importPointsPopup.value && isNotNullNorUndefined(props.etape.geojsonOrigineGeoSystemeId) ? ( <PointsImportPopup close={closePointsPopup} result={resultPoints} geoSystemeId={props.etape.geojsonOrigineGeoSystemeId} apiClient={props.apiClient} /> ) : null} + + {importForagesPopup.value && isNotNullNorUndefined(props.etape.geojsonOrigineGeoSystemeId) ? ( + <ForagesImportPopup close={closeForagesPopup} result={resultForages} geoSystemeId={props.etape.geojsonOrigineGeoSystemeId} apiClient={props.apiClient} /> + ) : null} </div> ) }) // @ts-ignore waiting for https://github.com/vuejs/core/issues/7833 -PerimetreEdit.props = ['etape', 'apiClient', 'titreTypeId', 'titreSlug', 'completeUpdate', 'onEtapeChange', 'initTab', 'onPointsChange'] +PerimetreEdit.props = ['etape', 'apiClient', 'titreTypeId', 'titreSlug', 'completeUpdate', 'onEtapeChange', 'initTab', 'onPointsChange', 'onForagesChange'] diff --git a/packages/ui/src/components/etape/perimetre-import-popup.stories_snapshots_Default.html b/packages/ui/src/components/etape/perimetre-import-popup.stories_snapshots_Default.html index 91b967245107acab81bcb739d63ca70c5d260591..41fa16e6ca34931d680cbcecfe3e0333a0bf5fa9 100644 --- a/packages/ui/src/components/etape/perimetre-import-popup.stories_snapshots_Default.html +++ b/packages/ui/src/components/etape/perimetre-import-popup.stories_snapshots_Default.html @@ -10,8 +10,6 @@ <h1 id="monId-title" class="fr-modal__title"><span class="fr-icon-arrow-right-line fr-icon--lg" aria-hidden="true"></span>Import d'un périmètre</h1> <div class="fr-container"> <form> - <!----> - <!----> <fieldset class="fr-fieldset fr-mt-2w" id="geographic"> <div class="fr-fieldset__element"> <div class="fr-select-group"><label class="fr-label" for="type">Système géographique</label> @@ -43,6 +41,8 @@ </div> </fieldset> <!----> + <!----> + <!----> </form> </div> </div> diff --git a/packages/ui/src/components/etape/perimetre-import-popup.tsx b/packages/ui/src/components/etape/perimetre-import-popup.tsx index c1151e31381cd035f906c9c3b55a1cf9450fd507..d476b06241fa0bc4804ee48f2fa1ec0d844e6c0e 100644 --- a/packages/ui/src/components/etape/perimetre-import-popup.tsx +++ b/packages/ui/src/components/etape/perimetre-import-popup.tsx @@ -48,21 +48,6 @@ export const PerimetreImportPopup = caminoDefineComponent<Props>(['apiClient', ' const content = () => ( <form> - {fileType.value === 'geojson' || fileType.value === 'shp' ? <Alert type="info" small={true} title={<>Vous ne devez déposer que des fichiers ayant un seul multipolygone.</>} /> : null} - - {fileType.value === 'csv' ? ( - <Alert - type="info" - small={true} - title={ - <> - Le dépôt csv n'est possible que pour des périmètres simples : un seul polygone sans lacune ayant moins de 20 sommets. Ils doivent avoir les 4 champs suivants : "nom", "description",{' '} - {GeoSystemes[systemeGeographique.value].uniteId === 'deg' ? '"longitude", "latitude"' : '"x", "y"'}. Seul le champ description peut être vide. - </> - } - /> - ) : null} - <fieldset class="fr-fieldset fr-mt-2w" id="geographic"> <div class="fr-fieldset__element"> <div class="fr-select-group"> @@ -83,6 +68,21 @@ export const PerimetreImportPopup = caminoDefineComponent<Props>(['apiClient', ' { legend: { main: 'shape' }, itemId: 'shp' }, ]} /> + {fileType.value === 'geojson' || fileType.value === 'shp' ? <Alert type="info" small={true} title={<>Vous ne devez déposer que des fichiers ayant un seul multipolygone.</>} /> : null} + + {fileType.value === 'csv' ? ( + <Alert + type="info" + small={true} + title={ + <> + Le dépôt csv n'est possible que pour des périmètres simples : un seul polygone sans lacune ayant moins de 20 sommets. Ils doivent avoir les 4 champs suivants : "nom", "description",{' '} + {GeoSystemes[systemeGeographique.value].uniteId === 'deg' ? '"longitude", "latitude"' : '"x", "y"'}. Seul le champ description peut être vide. + </> + } + /> + ) : null} + {isNotNullNorUndefined(fileType.value) ? ( <fieldset class="fr-fieldset" id="fichier"> <div class="fr-fieldset__element"> diff --git a/packages/ui/src/components/titre.stories.tsx b/packages/ui/src/components/titre.stories.tsx index 1686f0f654b4d54a283a5b8aab6ec0c18b937234..40305ce3f168743163d89850908dfd65bf108052 100644 --- a/packages/ui/src/components/titre.stories.tsx +++ b/packages/ui/src/components/titre.stories.tsx @@ -208,6 +208,8 @@ const titre: TitreGet = { }, geojson_origine_points: null, geojson_origine_geo_systeme_id: '4326', + geojson4326_forages: null, + geojson_origine_forages: null, surface: 0, communes: [], sdom_zones: [], @@ -369,7 +371,7 @@ const chantePieApiClient: PropsApiClient = { getTitreAction(titreIdOrSlug) // prettier-ignore - const chantepieData = titreGetValidator.parse({"id":"Ju80kBYMoDstD5J6H8wqWRdo","nom":"Chantepie","slug":"m-cx-chantepie-1988","titre_type_id":"cxm","titre_statut_id":"val","titre_doublon":null,"references":[{"nom":"2013-0224-MI","referenceTypeId":"deb"}],"titre_last_modified_date":"2023-10-12","demarches":[{"id":"PpD4be1fwbWJ7TZCdwvZj0vQ","slug":"m-cx-chantepie-1988-oct01","description":null,"etapes":[{"etape_type_id":"dpu","fondamentale":{"date_debut":null,"date_fin":null,"duree":600,"substances":["auru","arge","cuiv","ferx","plom","souf","zinc","scoc"],"titulaires":[{"id":"fr-632022711","nom":"ELF AQUITAINE PRODUCTION","operateur":false}],"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-0.10565832,48.148920934],[-0.115003634,48.139837998],[-0.099602309,48.120982819],[-0.08524026,48.121293005],[-0.061686458,48.148697133],[-0.10565832,48.148920934]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.105658320330431,48.1489209342693]},"properties":{"nom":"A","description":"Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0616864580218711,48.1486971325525]},"properties":{"nom":"B","description":"Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0852402595925762,48.1212930049111]},"properties":{"nom":"C","description":"Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0996023094257926,48.1209828190687]},"properties":{"nom":"D","description":"Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.115003633563279,48.1398379979624]},"properties":{"nom":"E","description":"Axe du clocher de Rouez"}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-0.10565832,48.148920934],[-0.115003634,48.139837998],[-0.099602309,48.120982819],[-0.08524026,48.121293005],[-0.061686458,48.148697133],[-0.10565832,48.148920934]]]]}},"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.105658320330431,48.1489209342693]},"properties":{"nom":"A","description":"Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0616864580218711,48.1486971325525]},"properties":{"nom":"B","description":"Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0852402595925762,48.1212930049111]},"properties":{"nom":"C","description":"Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0996023094257926,48.1209828190687]},"properties":{"nom":"D","description":"Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.115003633563279,48.1398379979624]},"properties":{"nom":"E","description":"Axe du clocher de Rouez"}}]},"geojson_origine_geo_systeme_id":"4326","surface":8,"communes":[{"id":"72256","nom":"Rouez"},{"id":"72351","nom":"Tennie"}],"secteurs_maritimes":[],"sdom_zones":[],"forets":[]}},"etape_statut_id":"acc","date":"1988-09-01","id":"OxqtxQwW0B3AUIHFR7k32Ycl","ordre":2,"notes":null,"slug":"m-cx-chantepie-1988-oct01-dpu01","sections_with_values":[{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":false,"type":"text","value":"JORFTEXT000000681488"},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":"INDE8800659D"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dex","fondamentale":{"date_debut":null,"date_fin":null,"duree":600,"substances":["auru","arge","cuiv","ferx","plom","souf","zinc","scoc"],"titulaires":[{"id":"fr-632022711","nom":"ELF AQUITAINE PRODUCTION","operateur":false}],"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-0.10565832,48.148920934],[-0.115003634,48.139837998],[-0.099602309,48.120982819],[-0.08524026,48.121293005],[-0.061686458,48.148697133],[-0.10565832,48.148920934]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.105658320330431,48.1489209342693]},"properties":{"nom":"A","description":"Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0616864580218711,48.1486971325525]},"properties":{"nom":"B","description":"Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0852402595925762,48.1212930049111]},"properties":{"nom":"C","description":"Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0996023094257926,48.1209828190687]},"properties":{"nom":"D","description":"Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.115003633563279,48.1398379979624]},"properties":{"nom":"E","description":"Axe du clocher de Rouez"}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-0.10565832,48.148920934],[-0.115003634,48.139837998],[-0.099602309,48.120982819],[-0.08524026,48.121293005],[-0.061686458,48.148697133],[-0.10565832,48.148920934]]]]}},"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.105658320330431,48.1489209342693]},"properties":{"nom":"A","description":"Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0616864580218711,48.1486971325525]},"properties":{"nom":"B","description":"Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0852402595925762,48.1212930049111]},"properties":{"nom":"C","description":"Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0996023094257926,48.1209828190687]},"properties":{"nom":"D","description":"Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.115003633563279,48.1398379979624]},"properties":{"nom":"E","description":"Axe du clocher de Rouez"}}]},"geojson_origine_geo_systeme_id":"4326","surface":8,"communes":[{"id":"72256","nom":"Rouez"},{"id":"72351","nom":"Tennie"}],"secteurs_maritimes":[],"sdom_zones":[],"forets":[]}},"etape_statut_id":"acc","date":"1988-08-24","id":"XkNmBmjc6YYY6OEncdCAldnU","ordre":1,"notes":null,"slug":"m-cx-chantepie-1988-oct01-dex01","sections_with_values":[{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":true,"type":"text","value":null},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"oct","demarche_statut_id":"acc","demarche_date_debut":"1988-09-01","demarche_date_fin":"2038-09-01","ordre":1},{"id":"mkPvJYXFO2InPppXamCRo2Cv","slug":"m-cx-chantepie-1988-mut01","description":null,"etapes":[{"etape_type_id":"dpu","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":[],"titulaires":[{"id":"fr-409160132","nom":"TOTALENERGIES EP FRANCE (TEPF)","operateur":false}],"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2000-06-06","id":"lc3diJKRphb029ufvF73FlSn","ordre":2,"notes":null,"slug":"m-cx-chantepie-1988-mut01-dpu01","sections_with_values":[{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":false,"type":"text","value":"JORFTEXT000000765254"},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":"ECOI0000251A"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dex","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":[],"titulaires":[{"id":"fr-409160132","nom":"TOTALENERGIES EP FRANCE (TEPF)","operateur":false}],"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2000-05-25","id":"2n1RaQcCxZMVta2Qfv1pUIRS","ordre":1,"notes":null,"slug":"m-cx-chantepie-1988-mut01-dex01","sections_with_values":[{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":true,"type":"text","value":null},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"mut","demarche_statut_id":"acc","demarche_date_debut":null,"demarche_date_fin":null,"ordre":2}],"nb_activites_to_do":null}) + const chantepieData = titreGetValidator.parse({"id":"Ju80kBYMoDstD5J6H8wqWRdo","nom":"Chantepie","slug":"m-cx-chantepie-1988","titre_type_id":"cxm","titre_statut_id":"val","titre_doublon":null,"references":[{"nom":"2013-0224-MI","referenceTypeId":"deb"}],"titre_last_modified_date":"2023-10-12","demarches":[{"id":"PpD4be1fwbWJ7TZCdwvZj0vQ","slug":"m-cx-chantepie-1988-oct01","description":null,"etapes":[{"etape_type_id":"dpu","fondamentale":{"date_debut":null,"date_fin":null,"duree":600,"substances":["auru","arge","cuiv","ferx","plom","souf","zinc","scoc"],"titulaires":[{"id":"fr-632022711","nom":"ELF AQUITAINE PRODUCTION","operateur":false}],"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-0.10565832,48.148920934],[-0.115003634,48.139837998],[-0.099602309,48.120982819],[-0.08524026,48.121293005],[-0.061686458,48.148697133],[-0.10565832,48.148920934]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.105658320330431,48.1489209342693]},"properties":{"nom":"A","description":"Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0616864580218711,48.1486971325525]},"properties":{"nom":"B","description":"Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0852402595925762,48.1212930049111]},"properties":{"nom":"C","description":"Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0996023094257926,48.1209828190687]},"properties":{"nom":"D","description":"Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.115003633563279,48.1398379979624]},"properties":{"nom":"E","description":"Axe du clocher de Rouez"}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-0.10565832,48.148920934],[-0.115003634,48.139837998],[-0.099602309,48.120982819],[-0.08524026,48.121293005],[-0.061686458,48.148697133],[-0.10565832,48.148920934]]]]}},"geojson4326_forages":null,"geojson_origine_forages":null,"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.105658320330431,48.1489209342693]},"properties":{"nom":"A","description":"Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0616864580218711,48.1486971325525]},"properties":{"nom":"B","description":"Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0852402595925762,48.1212930049111]},"properties":{"nom":"C","description":"Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0996023094257926,48.1209828190687]},"properties":{"nom":"D","description":"Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.115003633563279,48.1398379979624]},"properties":{"nom":"E","description":"Axe du clocher de Rouez"}}]},"geojson_origine_geo_systeme_id":"4326","surface":8,"communes":[{"id":"72256","nom":"Rouez"},{"id":"72351","nom":"Tennie"}],"secteurs_maritimes":[],"sdom_zones":[],"forets":[]}},"etape_statut_id":"acc","date":"1988-09-01","id":"OxqtxQwW0B3AUIHFR7k32Ycl","ordre":2,"notes":null,"slug":"m-cx-chantepie-1988-oct01-dpu01","sections_with_values":[{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":false,"type":"text","value":"JORFTEXT000000681488"},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":"INDE8800659D"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dex","fondamentale":{"date_debut":null,"date_fin":null,"duree":600,"substances":["auru","arge","cuiv","ferx","plom","souf","zinc","scoc"],"titulaires":[{"id":"fr-632022711","nom":"ELF AQUITAINE PRODUCTION","operateur":false}],"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-0.10565832,48.148920934],[-0.115003634,48.139837998],[-0.099602309,48.120982819],[-0.08524026,48.121293005],[-0.061686458,48.148697133],[-0.10565832,48.148920934]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.105658320330431,48.1489209342693]},"properties":{"nom":"A","description":"Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0616864580218711,48.1486971325525]},"properties":{"nom":"B","description":"Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0852402595925762,48.1212930049111]},"properties":{"nom":"C","description":"Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0996023094257926,48.1209828190687]},"properties":{"nom":"D","description":"Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.115003633563279,48.1398379979624]},"properties":{"nom":"E","description":"Axe du clocher de Rouez"}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-0.10565832,48.148920934],[-0.115003634,48.139837998],[-0.099602309,48.120982819],[-0.08524026,48.121293005],[-0.061686458,48.148697133],[-0.10565832,48.148920934]]]]}},"geojson4326_forages":null,"geojson_origine_forages":null,"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.105658320330431,48.1489209342693]},"properties":{"nom":"A","description":"Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0616864580218711,48.1486971325525]},"properties":{"nom":"B","description":"Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0852402595925762,48.1212930049111]},"properties":{"nom":"C","description":"Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.0996023094257926,48.1209828190687]},"properties":{"nom":"D","description":"Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-0.115003633563279,48.1398379979624]},"properties":{"nom":"E","description":"Axe du clocher de Rouez"}}]},"geojson_origine_geo_systeme_id":"4326","surface":8,"communes":[{"id":"72256","nom":"Rouez"},{"id":"72351","nom":"Tennie"}],"secteurs_maritimes":[],"sdom_zones":[],"forets":[]}},"etape_statut_id":"acc","date":"1988-08-24","id":"XkNmBmjc6YYY6OEncdCAldnU","ordre":1,"notes":null,"slug":"m-cx-chantepie-1988-oct01-dex01","sections_with_values":[{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":true,"type":"text","value":null},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"oct","demarche_statut_id":"acc","demarche_date_debut":"1988-09-01","demarche_date_fin":"2038-09-01","ordre":1},{"id":"mkPvJYXFO2InPppXamCRo2Cv","slug":"m-cx-chantepie-1988-mut01","description":null,"etapes":[{"etape_type_id":"dpu","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":[],"titulaires":[{"id":"fr-409160132","nom":"TOTALENERGIES EP FRANCE (TEPF)","operateur":false}],"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2000-06-06","id":"lc3diJKRphb029ufvF73FlSn","ordre":2,"notes":null,"slug":"m-cx-chantepie-1988-mut01-dpu01","sections_with_values":[{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":false,"type":"text","value":"JORFTEXT000000765254"},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":"ECOI0000251A"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dex","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":[],"titulaires":[{"id":"fr-409160132","nom":"TOTALENERGIES EP FRANCE (TEPF)","operateur":false}],"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2000-05-25","id":"2n1RaQcCxZMVta2Qfv1pUIRS","ordre":1,"notes":null,"slug":"m-cx-chantepie-1988-mut01-dex01","sections_with_values":[{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":true,"type":"text","value":null},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"mut","demarche_statut_id":"acc","demarche_date_debut":null,"demarche_date_fin":null,"ordre":2}],"nb_activites_to_do":null}) chantepieData.nom = 'Chantepie avec un titre assez long' chantepieData.nb_activites_to_do = 2 @@ -419,7 +421,7 @@ const criqueAdolpheApiClient: PropsApiClient = { getTitreAction(titreIdOrSlug) // prettier-ignore - const criqueAdolpheData = titreGetValidator.parse({"id":"tbFvGIDboAzxTb54GQyghTyc","nom":"Crique Adolphe","slug":"m-ar-crique-adolphe-2023","titre_type_id":"arm","titre_statut_id":"ech","titre_doublon":null,"references":[{"nom":"2022-032","referenceTypeId":"ptm"},{"nom":"AR 2022-027","referenceTypeId":"onf"}],"titre_last_modified_date":"2023-10-20","demarches":[{"id":"yAvBOMdHDsyES7phbS5hRKLA","slug":"m-ar-crique-adolphe-2023-oct01","description":null,"etapes":[{"etape_type_id":"sco","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":null,"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"fai","date":"2023-09-19","id":"5649942721fd9f3478381ae9","ordre":16,"notes":null,"slug":"m-ar-crique-adolphe-2023-oct01-sco01","sections_with_values":[{"id":"suivi","nom":"Suivi de la démarche","elements":[{"id":"signataire","nom":"Signataire ONF","description":"Prénom et nom du représentant légal du titulaire de l'ONF","optionnel":true,"type":"text","value":null},{"id":"titulaire","nom":"Signataire titulaire","description":"Prénom et nom du représentant légal du titulaire de l'autorisation","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"aca","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":null,"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"fav","date":"2023-01-11","id":"oXXG5ToIYbw8MvdYPX7sMMAP","ordre":12,"notes":null,"slug":"m-ar-crique-adolphe-2023-oct01-aca01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"sca","etape_statut_id":"fai","date":"2023-01-11","id":"WLXKWB9Fv17gm2gTJYIXnTyX","ordre":11,"notes":null,"slug":"m-ar-crique-adolphe-2023-oct01-sca01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"rde","etape_statut_id":"fav","date":"2022-12-29","id":"y0SCXGJ1OBYSthcWyojyOLZX","ordre":9,"notes":null,"slug":"m-ar-crique-adolphe-2023-oct01-rde01","sections_with_values":[{"id":"deal","nom":"DEAL","elements":[{"id":"numero-dossier-deal-eau","nom":"Numéro de dossier","description":"Numéro de dossier DEAL Service eau","optionnel":true,"type":"text","value":""},{"id":"numero-recepisse","nom":"Numéro de récépissé","description":"Numéro de récépissé émis par la DEAL Service eau","optionnel":true,"type":"text","value":"R03-2022-12-29-00005"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mcr","etape_statut_id":"fav","date":"2022-12-05","id":"0vdB4jaJbpIpyUnIZkKPsmCm","ordre":7,"notes":null,"slug":"m-ar-crique-adolphe-2023-oct01-mcr01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mfr","fondamentale":{"date_debut":null,"date_fin":null,"duree":4,"substances":["auru"],"titulaires":[{"id":"fr-794312231","nom":"SOCIETE MINIERE DE L OUEST (S.M.O)","operateur":false}],"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.581810139,3.830965486],[-53.581783064,3.821927822],[-53.572785591,3.821954938],[-53.572812572,3.830992667],[-53.581810139,3.830965486]]],[[[-53.600314085,3.822478099],[-53.598916453,3.81818315],[-53.581812057,3.823798548],[-53.58320965,3.828093576],[-53.600314085,3.822478099]]],[[[-53.583861926,3.850211446],[-53.592379712,3.834289122],[-53.588417036,3.832150192],[-53.579899144,3.848072512],[-53.583861926,3.850211446]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.58181013905019,3.8309654861273]},"properties":{"nom":"S1","description":"ARM1.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.57281257175149,3.8309926670647294]},"properties":{"nom":"S2","description":"ARM1.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.572785590706495,3.82195493825841]},"properties":{"nom":"S3","description":"ARM1.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.58178306390299,3.8219278216269807]},"properties":{"nom":"S4","description":"ARM1.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.60031408473134,3.8224780986447566]},"properties":{"nom":"S5","description":"ARM2.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.58320964990986,3.828093576227541]},"properties":{"nom":"S6","description":"ARM2.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.58181205656814,3.82379854768971]},"properties":{"nom":"S7","description":"ARM2.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.59891645305842,3.8181831495446303]},"properties":{"nom":"S8","description":"ARM2.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.583861926103765,3.8502114455117433]},"properties":{"nom":"S9","description":"ARM3.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.57989914401643,3.8480725119510217]},"properties":{"nom":"S10","description":"ARM3.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.588417035915334,3.8321501920354253]},"properties":{"nom":"S11","description":"ARM3.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.592379712320195,3.834289122043602]},"properties":{"nom":"S12","description":"ARM3.3"}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.581810139,3.830965486],[-53.581783064,3.821927822],[-53.572785591,3.821954938],[-53.572812572,3.830992667],[-53.581810139,3.830965486]]],[[[-53.600314085,3.822478099],[-53.598916453,3.81818315],[-53.581812057,3.823798548],[-53.58320965,3.828093576],[-53.600314085,3.822478099]]],[[[-53.583861926,3.850211446],[-53.592379712,3.834289122],[-53.588417036,3.832150192],[-53.579899144,3.848072512],[-53.583861926,3.850211446]]]]}},"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.58181013905019,3.8309654861273]},"properties":{"nom":"S1","description":"ARM1.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.57281257175149,3.8309926670647294]},"properties":{"nom":"S2","description":"ARM1.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.572785590706495,3.82195493825841]},"properties":{"nom":"S3","description":"ARM1.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.58178306390299,3.8219278216269807]},"properties":{"nom":"S4","description":"ARM1.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.60031408473134,3.8224780986447566]},"properties":{"nom":"S5","description":"ARM2.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.58320964990986,3.828093576227541]},"properties":{"nom":"S6","description":"ARM2.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.58181205656814,3.82379854768971]},"properties":{"nom":"S7","description":"ARM2.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.59891645305842,3.8181831495446303]},"properties":{"nom":"S8","description":"ARM2.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.583861926103765,3.8502114455117433]},"properties":{"nom":"S9","description":"ARM3.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.57989914401643,3.8480725119510217]},"properties":{"nom":"S10","description":"ARM3.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.588417035915334,3.8321501920354253]},"properties":{"nom":"S11","description":"ARM3.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.592379712320195,3.834289122043602]},"properties":{"nom":"S12","description":"ARM3.3"}}]},"geojson_origine_geo_systeme_id":"4326","surface":3,"communes":[{"id":"97353","nom":"Maripasoula"}],"secteurs_maritimes":[],"sdom_zones":[],"forets":[]}},"etape_statut_id":"fai","date":"2022-11-08","id":"pwqOEAsAmaWi0o24QiVeVZ40","ordre":3,"notes":null,"slug":"m-ar-crique-adolphe-2023-oct01-mfr01","sections_with_values":[{"id":"arm","nom":"Caractéristiques ARM","elements":[{"id":"mecanise","nom":"Prospection mécanisée","description":"","type":"radio","value":true},{"id":"franchissements","nom":"Franchissements de cours d'eau","description":"Nombre de franchissements de cours d'eau","optionnel":true,"type":"integer","value":12}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mdp","etape_statut_id":"fai","date":"2022-11-08","id":"pF4UG6UrCOJmKjtgmtpwthTQ","ordre":4,"notes":null,"slug":"m-ar-crique-adolphe-2023-oct01-mdp01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dae","etape_statut_id":"exe","date":"2022-09-26","id":"KA7tyvIdlqQmmVOuVjEl0Hdt","ordre":1,"notes":null,"slug":"m-ar-crique-adolphe-2023-oct01-dae01","sections_with_values":[{"id":"mea","nom":"Mission autorité environnementale","elements":[{"id":"arrete","nom":"Arrêté préfectoral","description":"Numéro de l'arrêté préfectoral portant décision dans le cadre de l’examen au cas par cas du projet d’autorisation de recherche minière","optionnel":true,"type":"text","value":"R03-2022-09-26-00002"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"oct","demarche_statut_id":"acc","demarche_date_debut":"2023-09-19","demarche_date_fin":"2024-01-19","ordre":1}],"nb_activites_to_do":null}) + const criqueAdolpheData = titreGetValidator.parse({"id":"tbFvGIDboAzxTb54GQyghTyc","nom":"Crique Adolphe","slug":"m-ar-crique-adolphe-2023","titre_type_id":"arm","titre_statut_id":"ech","titre_doublon":null,"references":[{"nom":"2022-032","referenceTypeId":"ptm"},{"nom":"AR 2022-027","referenceTypeId":"onf"}],"titre_last_modified_date":"2023-10-20","demarches":[{"id":"yAvBOMdHDsyES7phbS5hRKLA","slug":"m-ar-crique-adolphe-2023-oct01","description":null,"etapes":[{"etape_type_id":"sco","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":null,"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"fai","date":"2023-09-19","id":"5649942721fd9f3478381ae9","ordre":16,"notes":null,"slug":"m-ar-crique-adolphe-2023-oct01-sco01","sections_with_values":[{"id":"suivi","nom":"Suivi de la démarche","elements":[{"id":"signataire","nom":"Signataire ONF","description":"Prénom et nom du représentant légal du titulaire de l'ONF","optionnel":true,"type":"text","value":null},{"id":"titulaire","nom":"Signataire titulaire","description":"Prénom et nom du représentant légal du titulaire de l'autorisation","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"aca","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":null,"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"fav","date":"2023-01-11","id":"oXXG5ToIYbw8MvdYPX7sMMAP","ordre":12,"notes":null,"slug":"m-ar-crique-adolphe-2023-oct01-aca01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"sca","etape_statut_id":"fai","date":"2023-01-11","id":"WLXKWB9Fv17gm2gTJYIXnTyX","ordre":11,"notes":null,"slug":"m-ar-crique-adolphe-2023-oct01-sca01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"rde","etape_statut_id":"fav","date":"2022-12-29","id":"y0SCXGJ1OBYSthcWyojyOLZX","ordre":9,"notes":null,"slug":"m-ar-crique-adolphe-2023-oct01-rde01","sections_with_values":[{"id":"deal","nom":"DEAL","elements":[{"id":"numero-dossier-deal-eau","nom":"Numéro de dossier","description":"Numéro de dossier DEAL Service eau","optionnel":true,"type":"text","value":""},{"id":"numero-recepisse","nom":"Numéro de récépissé","description":"Numéro de récépissé émis par la DEAL Service eau","optionnel":true,"type":"text","value":"R03-2022-12-29-00005"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mcr","etape_statut_id":"fav","date":"2022-12-05","id":"0vdB4jaJbpIpyUnIZkKPsmCm","ordre":7,"notes":null,"slug":"m-ar-crique-adolphe-2023-oct01-mcr01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mfr","fondamentale":{"date_debut":null,"date_fin":null,"duree":4,"substances":["auru"],"titulaires":[{"id":"fr-794312231","nom":"SOCIETE MINIERE DE L OUEST (S.M.O)","operateur":false}],"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.581810139,3.830965486],[-53.581783064,3.821927822],[-53.572785591,3.821954938],[-53.572812572,3.830992667],[-53.581810139,3.830965486]]],[[[-53.600314085,3.822478099],[-53.598916453,3.81818315],[-53.581812057,3.823798548],[-53.58320965,3.828093576],[-53.600314085,3.822478099]]],[[[-53.583861926,3.850211446],[-53.592379712,3.834289122],[-53.588417036,3.832150192],[-53.579899144,3.848072512],[-53.583861926,3.850211446]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.58181013905019,3.8309654861273]},"properties":{"nom":"S1","description":"ARM1.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.57281257175149,3.8309926670647294]},"properties":{"nom":"S2","description":"ARM1.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.572785590706495,3.82195493825841]},"properties":{"nom":"S3","description":"ARM1.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.58178306390299,3.8219278216269807]},"properties":{"nom":"S4","description":"ARM1.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.60031408473134,3.8224780986447566]},"properties":{"nom":"S5","description":"ARM2.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.58320964990986,3.828093576227541]},"properties":{"nom":"S6","description":"ARM2.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.58181205656814,3.82379854768971]},"properties":{"nom":"S7","description":"ARM2.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.59891645305842,3.8181831495446303]},"properties":{"nom":"S8","description":"ARM2.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.583861926103765,3.8502114455117433]},"properties":{"nom":"S9","description":"ARM3.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.57989914401643,3.8480725119510217]},"properties":{"nom":"S10","description":"ARM3.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.588417035915334,3.8321501920354253]},"properties":{"nom":"S11","description":"ARM3.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.592379712320195,3.834289122043602]},"properties":{"nom":"S12","description":"ARM3.3"}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.581810139,3.830965486],[-53.581783064,3.821927822],[-53.572785591,3.821954938],[-53.572812572,3.830992667],[-53.581810139,3.830965486]]],[[[-53.600314085,3.822478099],[-53.598916453,3.81818315],[-53.581812057,3.823798548],[-53.58320965,3.828093576],[-53.600314085,3.822478099]]],[[[-53.583861926,3.850211446],[-53.592379712,3.834289122],[-53.588417036,3.832150192],[-53.579899144,3.848072512],[-53.583861926,3.850211446]]]]}},"geojson4326_forages":null,"geojson_origine_forages":null,"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.58181013905019,3.8309654861273]},"properties":{"nom":"S1","description":"ARM1.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.57281257175149,3.8309926670647294]},"properties":{"nom":"S2","description":"ARM1.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.572785590706495,3.82195493825841]},"properties":{"nom":"S3","description":"ARM1.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.58178306390299,3.8219278216269807]},"properties":{"nom":"S4","description":"ARM1.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.60031408473134,3.8224780986447566]},"properties":{"nom":"S5","description":"ARM2.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.58320964990986,3.828093576227541]},"properties":{"nom":"S6","description":"ARM2.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.58181205656814,3.82379854768971]},"properties":{"nom":"S7","description":"ARM2.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.59891645305842,3.8181831495446303]},"properties":{"nom":"S8","description":"ARM2.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.583861926103765,3.8502114455117433]},"properties":{"nom":"S9","description":"ARM3.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.57989914401643,3.8480725119510217]},"properties":{"nom":"S10","description":"ARM3.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.588417035915334,3.8321501920354253]},"properties":{"nom":"S11","description":"ARM3.3"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.592379712320195,3.834289122043602]},"properties":{"nom":"S12","description":"ARM3.3"}}]},"geojson_origine_geo_systeme_id":"4326","surface":3,"communes":[{"id":"97353","nom":"Maripasoula"}],"secteurs_maritimes":[],"sdom_zones":[],"forets":[]}},"etape_statut_id":"fai","date":"2022-11-08","id":"pwqOEAsAmaWi0o24QiVeVZ40","ordre":3,"notes":null,"slug":"m-ar-crique-adolphe-2023-oct01-mfr01","sections_with_values":[{"id":"arm","nom":"Caractéristiques ARM","elements":[{"id":"mecanise","nom":"Prospection mécanisée","description":"","type":"radio","value":true},{"id":"franchissements","nom":"Franchissements de cours d'eau","description":"Nombre de franchissements de cours d'eau","optionnel":true,"type":"integer","value":12}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mdp","etape_statut_id":"fai","date":"2022-11-08","id":"pF4UG6UrCOJmKjtgmtpwthTQ","ordre":4,"notes":null,"slug":"m-ar-crique-adolphe-2023-oct01-mdp01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dae","etape_statut_id":"exe","date":"2022-09-26","id":"KA7tyvIdlqQmmVOuVjEl0Hdt","ordre":1,"notes":null,"slug":"m-ar-crique-adolphe-2023-oct01-dae01","sections_with_values":[{"id":"mea","nom":"Mission autorité environnementale","elements":[{"id":"arrete","nom":"Arrêté préfectoral","description":"Numéro de l'arrêté préfectoral portant décision dans le cadre de l’examen au cas par cas du projet d’autorisation de recherche minière","optionnel":true,"type":"text","value":"R03-2022-09-26-00002"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"oct","demarche_statut_id":"acc","demarche_date_debut":"2023-09-19","demarche_date_fin":"2024-01-19","ordre":1}],"nb_activites_to_do":null}) criqueAdolpheData.nb_activites_to_do = 0 return Promise.resolve(criqueAdolpheData) @@ -444,7 +446,7 @@ const abattisKoticaApiClient: PropsApiClient = { getTitreAction(titreIdOrSlug) // prettier-ignore - const abattisData = titreGetValidator.parse({"id":"ooyCY2eGMXLunjmwPbBYyQcf","nom":"Abattis Kotika","slug":"m-ar-abattis-kotika-2006","titre_type_id":"arm","titre_statut_id":"ech","titre_doublon":null,"references":[{"nom":"AR2006060","referenceTypeId":"onf"},{"nom":"2006-061","referenceTypeId":"ptm"}],"titre_last_modified_date":null,"demarches":[{"id":"SjKhYLXdqcla1BaN3nmgQhPs","slug":"m-ar-abattis-kotika-2006-oct01","description":null,"etapes":[{"etape_type_id":"def","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":[],"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2006-11-28","id":"Pw734o5mdB2K2AWaOKQ85Ydz","ordre":5,"notes":null,"slug":"m-ar-abattis-kotika-2006-oct01-def01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"sco","fondamentale":{"date_debut":null,"date_fin":"2007-03-27","duree":4,"substances":["auru"],"titulaires":[{"id":"fr-480857036","nom":"TOMANY","operateur":false}],"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-54.256565011,3.953104288],[-54.257194444,3.948468234],[-54.239271461,3.946452081],[-54.238766556,3.950762546],[-54.256565011,3.953104288]]],[[[-54.251541223,3.944796229],[-54.251001626,3.940173776],[-54.233048995,3.942095626],[-54.233561357,3.946673115],[-54.251541223,3.944796229]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.256565011133,3.95310428827045]},"properties":{"nom":"1","description":"a"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2387665564076,3.95076254570704]},"properties":{"nom":"2","description":"b"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2392714613677,3.9464520807474]},"properties":{"nom":"3","description":"c"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2571944444789,3.94846823388004]},"properties":{"nom":"4","description":"d"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.251541223062,3.94479622927321]},"properties":{"nom":"1","description":"e"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2335613570663,3.94667311503072]},"properties":{"nom":"2","description":"f"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2330489949186,3.94209562569541]},"properties":{"nom":"3","description":"g"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.251001625524,3.94017377611083]},"properties":{"nom":"4","description":"h"}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-54.256565011,3.953104288],[-54.257194444,3.948468234],[-54.239271461,3.946452081],[-54.238766556,3.950762546],[-54.256565011,3.953104288]]],[[[-54.251541223,3.944796229],[-54.251001626,3.940173776],[-54.233048995,3.942095626],[-54.233561357,3.946673115],[-54.251541223,3.944796229]]]]}},"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.256565011133,3.95310428827045]},"properties":{"nom":"1","description":"a"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2387665564076,3.95076254570704]},"properties":{"nom":"2","description":"b"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2392714613677,3.9464520807474]},"properties":{"nom":"3","description":"c"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2571944444789,3.94846823388004]},"properties":{"nom":"4","description":"d"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.251541223062,3.94479622927321]},"properties":{"nom":"1","description":"e"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2335613570663,3.94667311503072]},"properties":{"nom":"2","description":"f"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2330489949186,3.94209562569541]},"properties":{"nom":"3","description":"g"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.251001625524,3.94017377611083]},"properties":{"nom":"4","description":"h"}}]},"geojson_origine_geo_systeme_id":"4326","surface":2,"communes":[{"id":"97362","nom":"Papaichton"}],"secteurs_maritimes":[],"sdom_zones":["0_potentielle","2"],"forets":[]}},"etape_statut_id":"fai","date":"2006-11-28","id":"1iF8kbcg0oGaEMAJxgUZYk8W","ordre":6,"notes":null,"slug":"m-ar-abattis-kotika-2006-oct01-sco01","sections_with_values":[{"id":"arm","nom":"Caractéristiques ARM","elements":[{"id":"mecanise","nom":"Prospection mécanisée","type":"radio","value":null}]},{"id":"suivi","nom":"Suivi de la démarche","elements":[{"id":"signataire","nom":"Signataire ONF","description":"Prénom et nom du représentant légal du titulaire de l'ONF","optionnel":true,"type":"text","value":"Michel Borderes"},{"id":"titulaire","nom":"Signataire titulaire","description":"Prénom et nom du représentant légal du titulaire de l'autorisation","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"men","etape_statut_id":"fai","date":"2006-10-16","id":"TMWQQo20x3j7BJ8Sboaq1B20","ordre":2,"notes":null,"slug":"m-ar-abattis-kotika-2006-oct01-men01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"oct","demarche_statut_id":"acc","demarche_date_debut":"2006-11-28","demarche_date_fin":"2007-03-27","ordre":1}],"nb_activites_to_do":null}) + const abattisData = titreGetValidator.parse({"id":"ooyCY2eGMXLunjmwPbBYyQcf","nom":"Abattis Kotika","slug":"m-ar-abattis-kotika-2006","titre_type_id":"arm","titre_statut_id":"ech","titre_doublon":null,"references":[{"nom":"AR2006060","referenceTypeId":"onf"},{"nom":"2006-061","referenceTypeId":"ptm"}],"titre_last_modified_date":null,"demarches":[{"id":"SjKhYLXdqcla1BaN3nmgQhPs","slug":"m-ar-abattis-kotika-2006-oct01","description":null,"etapes":[{"etape_type_id":"def","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":[],"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2006-11-28","id":"Pw734o5mdB2K2AWaOKQ85Ydz","ordre":5,"notes":null,"slug":"m-ar-abattis-kotika-2006-oct01-def01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"sco","fondamentale":{"date_debut":null,"date_fin":"2007-03-27","duree":4,"substances":["auru"],"titulaires":[{"id":"fr-480857036","nom":"TOMANY","operateur":false}],"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-54.256565011,3.953104288],[-54.257194444,3.948468234],[-54.239271461,3.946452081],[-54.238766556,3.950762546],[-54.256565011,3.953104288]]],[[[-54.251541223,3.944796229],[-54.251001626,3.940173776],[-54.233048995,3.942095626],[-54.233561357,3.946673115],[-54.251541223,3.944796229]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.256565011133,3.95310428827045]},"properties":{"nom":"1","description":"a"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2387665564076,3.95076254570704]},"properties":{"nom":"2","description":"b"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2392714613677,3.9464520807474]},"properties":{"nom":"3","description":"c"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2571944444789,3.94846823388004]},"properties":{"nom":"4","description":"d"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.251541223062,3.94479622927321]},"properties":{"nom":"1","description":"e"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2335613570663,3.94667311503072]},"properties":{"nom":"2","description":"f"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2330489949186,3.94209562569541]},"properties":{"nom":"3","description":"g"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.251001625524,3.94017377611083]},"properties":{"nom":"4","description":"h"}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-54.256565011,3.953104288],[-54.257194444,3.948468234],[-54.239271461,3.946452081],[-54.238766556,3.950762546],[-54.256565011,3.953104288]]],[[[-54.251541223,3.944796229],[-54.251001626,3.940173776],[-54.233048995,3.942095626],[-54.233561357,3.946673115],[-54.251541223,3.944796229]]]]}},"geojson4326_forages":null,"geojson_origine_forages":null,"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.256565011133,3.95310428827045]},"properties":{"nom":"1","description":"a"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2387665564076,3.95076254570704]},"properties":{"nom":"2","description":"b"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2392714613677,3.9464520807474]},"properties":{"nom":"3","description":"c"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2571944444789,3.94846823388004]},"properties":{"nom":"4","description":"d"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.251541223062,3.94479622927321]},"properties":{"nom":"1","description":"e"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2335613570663,3.94667311503072]},"properties":{"nom":"2","description":"f"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.2330489949186,3.94209562569541]},"properties":{"nom":"3","description":"g"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-54.251001625524,3.94017377611083]},"properties":{"nom":"4","description":"h"}}]},"geojson_origine_geo_systeme_id":"4326","surface":2,"communes":[{"id":"97362","nom":"Papaichton"}],"secteurs_maritimes":[],"sdom_zones":["0_potentielle","2"],"forets":[]}},"etape_statut_id":"fai","date":"2006-11-28","id":"1iF8kbcg0oGaEMAJxgUZYk8W","ordre":6,"notes":null,"slug":"m-ar-abattis-kotika-2006-oct01-sco01","sections_with_values":[{"id":"arm","nom":"Caractéristiques ARM","elements":[{"id":"mecanise","nom":"Prospection mécanisée","type":"radio","value":null}]},{"id":"suivi","nom":"Suivi de la démarche","elements":[{"id":"signataire","nom":"Signataire ONF","description":"Prénom et nom du représentant légal du titulaire de l'ONF","optionnel":true,"type":"text","value":"Michel Borderes"},{"id":"titulaire","nom":"Signataire titulaire","description":"Prénom et nom du représentant légal du titulaire de l'autorisation","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"men","etape_statut_id":"fai","date":"2006-10-16","id":"TMWQQo20x3j7BJ8Sboaq1B20","ordre":2,"notes":null,"slug":"m-ar-abattis-kotika-2006-oct01-men01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"oct","demarche_statut_id":"acc","demarche_date_debut":"2006-11-28","demarche_date_fin":"2007-03-27","ordre":1}],"nb_activites_to_do":null}) abattisData.nb_activites_to_do = 0 return Promise.resolve(abattisData) @@ -469,7 +471,7 @@ const bonEspoirApiClient: PropsApiClient = { getTitreAction(titreIdOrSlug) // prettier-ignore - const bonEspoirData = titreGetValidator.parse({"id":"sJorD6pQomXTN7oRpyGwLijB","nom":"Bon Espoir","slug":"m-pr-bon-espoir-2001","titre_type_id":"prm","titre_statut_id":"ech","titre_doublon":null,"references":[{"nom":"21/2001","referenceTypeId":"dea"},{"nom":"2013-0033-MI","referenceTypeId":"deb"}],"titre_last_modified_date":"2023-11-30","demarches":[{"id":"ry8fHgRWiKEOE1x1ZANmajh8","slug":"m-pr-bon-espoir-2001-oct01","description":null,"etapes":[{"etape_type_id":"dpu","fondamentale":{"date_debut":"2001-11-01","date_fin":null,"duree":60,"substances":["auru","scoc"],"titulaires":null,"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.957932101,5.077769388],[-53.957523215,4.987353337],[-53.86736267,4.98775355],[-53.867226527,4.956317348],[-53.777063114,4.956702765],[-53.776987892,4.938687225],[-53.569873008,4.939523155],[-53.570206958,5.025376089],[-53.759383912,5.02460196],[-53.759612886,5.078649124],[-53.957932101,5.077769388]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.9579321010744,5.07776938770113]},"properties":{"nom":"1","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7596128864516,5.07864912381548]},"properties":{"nom":"2","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.759383911755,5.02460196044417]},"properties":{"nom":"3","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.5702069576163,5.02537608911083]},"properties":{"nom":"4","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.5698730075868,4.93952315477954]},"properties":{"nom":"5","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7769878916108,4.93868722476635]},"properties":{"nom":"6","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7770631139658,4.95670276466037]},"properties":{"nom":"7","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8672265271601,4.95631734759459]},"properties":{"nom":"8","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8673626701318,4.98775355007457]},"properties":{"nom":"9","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.9575232150351,4.98735333700249]},"properties":{"nom":"10","description":null}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.957932101,5.077769388],[-53.957523215,4.987353337],[-53.86736267,4.98775355],[-53.867226527,4.956317348],[-53.777063114,4.956702765],[-53.776987892,4.938687225],[-53.569873008,4.939523155],[-53.570206958,5.025376089],[-53.759383912,5.02460196],[-53.759612886,5.078649124],[-53.957932101,5.077769388]]]]}},"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.9579321010744,5.07776938770113]},"properties":{"nom":"1","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7596128864516,5.07864912381548]},"properties":{"nom":"2","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.759383911755,5.02460196044417]},"properties":{"nom":"3","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.5702069576163,5.02537608911083]},"properties":{"nom":"4","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.5698730075868,4.93952315477954]},"properties":{"nom":"5","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7769878916108,4.93868722476635]},"properties":{"nom":"6","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7770631139658,4.95670276466037]},"properties":{"nom":"7","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8672265271601,4.95631734759459]},"properties":{"nom":"8","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8673626701318,4.98775355007457]},"properties":{"nom":"9","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.9575232150351,4.98735333700249]},"properties":{"nom":"10","description":null}}]},"geojson_origine_geo_systeme_id":"4326","surface":465.5,"communes":[{"id":"97306","nom":"Mana"},{"id":"97311","nom":"Saint-Laurent-du-Maroni"}],"secteurs_maritimes":[],"sdom_zones":["0","2"],"forets":["LDD","MDF","PAUL"]}},"etape_statut_id":"acc","date":"2001-10-26","id":"CRVhvEIQAc319vUd8BfZoH5W","ordre":2,"notes":null,"slug":"m-pr-bon-espoir-2001-oct01-dpu01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":3201430},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":"EUR"}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":false,"type":"text","value":"JORFTEXT000000774145"},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":"ECOI0100462D"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dex","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":[],"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2001-10-24","id":"Ce4K8goEZzjqXRJLL051jcpD","ordre":1,"notes":null,"slug":"m-pr-bon-espoir-2001-oct01-dex01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":true,"type":"text","value":null},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[{"id":"2001-10-24-dec-cdc61459","description":"Décret du 24 octobre 2001 accordant un permis de recherches A en Guyane","document_type_id":"dec","public_lecture":true,"entreprises_lecture":true}],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"oct","demarche_statut_id":"acc","demarche_date_debut":"2001-11-01","demarche_date_fin":"2006-11-01","ordre":1},{"id":"PnFewl8P4Zt5Vm49zXqyn7Ml","slug":"m-pr-bon-espoir-2001-pr101","description":null,"etapes":[{"etape_type_id":"dpu","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":["auru"],"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2010-03-02","id":"qtn2a3DNPx258VZgSjqXGKf6","ordre":4,"notes":null,"slug":"m-pr-bon-espoir-2001-pr101-dpu02","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":560000},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":"EUR"}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":false,"type":"text","value":"JORFTEXT000021889053"},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":"DEVO1003938A"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dex","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":[],"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2010-02-17","id":"tjOMgkb83wksMc6DFuqrecbu","ordre":3,"notes":null,"slug":"m-pr-bon-espoir-2001-pr101-dex02","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":true,"type":"text","value":null},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[{"id":"2010-02-17-arr-a26ea089","description":"Arrêté du 17 février 2010 modifiant l'arrêté du 6 mai 2009 prolongeant la validité du permis exclusif de recherches de mines d'or dit « Permis de Bon Espoir » et réduisant sa surface (Guyane)","document_type_id":"arr","public_lecture":true,"entreprises_lecture":true}],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dpu","fondamentale":{"date_debut":null,"date_fin":"2011-10-31","duree":null,"substances":["auru"],"titulaires":null,"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.957777778,5.076666667],[-53.9575,5.0325],[-53.894444444,5.000555556],[-53.820833333,4.979722222],[-53.713888889,4.963888889],[-53.732222222,5.023611111],[-53.876388889,5.022777778],[-53.957777778,5.076666667]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.9577777777778,5.07666666666667]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8763888888889,5.02277777777778]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7322222222222,5.02361111111111]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7138888888889,4.96388888888889]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8208333333333,4.97972222222222]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8944444444444,5.00055555555556]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.9575,5.0325]},"properties":{"nom":"G","description":null}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.957777778,5.076666667],[-53.9575,5.0325],[-53.894444444,5.000555556],[-53.820833333,4.979722222],[-53.713888889,4.963888889],[-53.732222222,5.023611111],[-53.876388889,5.022777778],[-53.957777778,5.076666667]]]]}},"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.9577777777778,5.07666666666667]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8763888888889,5.02277777777778]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7322222222222,5.02361111111111]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7138888888889,4.96388888888889]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8208333333333,4.97972222222222]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8944444444444,5.00055555555556]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.9575,5.0325]},"properties":{"nom":"G","description":null}}]},"geojson_origine_geo_systeme_id":"4326","surface":122.275,"communes":[{"id":"97306","nom":"Mana"},{"id":"97311","nom":"Saint-Laurent-du-Maroni"}],"secteurs_maritimes":[],"sdom_zones":["0","2"],"forets":["LDD","PAUL"]}},"etape_statut_id":"acc","date":"2009-05-16","id":"07cbyPCYcOtKYkw4kOqg2Sed","ordre":2,"notes":null,"slug":"m-pr-bon-espoir-2001-pr101-dpu01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":837000},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":"EUR"}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":false,"type":"text","value":"JORFTEXT000020616467"},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":"DEVO0909004A"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dex","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":[],"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2009-05-06","id":"orsPMmIfX4kSgVus0HTrBxAo","ordre":1,"notes":null,"slug":"m-pr-bon-espoir-2001-pr101-dex01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":true,"type":"text","value":null},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[{"id":"2009-05-06-arr-54f88e41","description":"Arrêté du 6 mai 2009 prolongeant la validité du permis exclusif de recherches de mines d'or dit « Permis Bon Espoir » et réduisant sa superficie (Guyane)","document_type_id":"arr","public_lecture":true,"entreprises_lecture":true}],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"pr1","demarche_statut_id":"acc","demarche_date_debut":"2006-11-01","demarche_date_fin":"2011-10-31","ordre":2},{"id":"EMFAv33wlGqMcjd6DwKzQBvr","slug":"m-pr-bon-espoir-2001-pr201","description":null,"etapes":[{"etape_type_id":"dpu","fondamentale":{"date_debut":null,"date_fin":"2016-10-31","duree":60,"substances":["auru","scoc"],"titulaires":[{"id":"fr-401802863","nom":"ARMINA RESSOURCES MINIERES SARL","operateur":false}],"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2015-08-15","id":"Qp5DRYEN3Nc9n4CIwEYW7evs","ordre":9,"notes":null,"slug":"m-pr-bon-espoir-2001-pr201-dpu01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":1250000},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":"EUR"}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":false,"type":"text","value":"JORFTEXT000031053068"},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":"EINL1518062A"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dex","fondamentale":{"date_debut":null,"date_fin":null,"duree":60,"substances":["auru","scoc"],"titulaires":[{"id":"fr-401802863","nom":"ARMINA RESSOURCES MINIERES SARL","operateur":false}],"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2015-08-03","id":"ABvgimvovFWeEhoMOrKi4wAy","ordre":8,"notes":null,"slug":"m-pr-bon-espoir-2001-pr201-dex01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":true,"type":"text","value":null},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[{"id":"2015-08-03-arm-8bf71a65","description":"Arrêté du 3 août 2015 prolongeant la durée de validité du permis exclusif de recherches de mines d'or et de substances connexes dit « Permis de Bon Espoir » attribué à la société Armina Ressources Minières dans le département de Guyane","document_type_id":"arm","public_lecture":true,"entreprises_lecture":true}],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mdp","etape_statut_id":"fai","date":"2011-06-30","id":"nLXaR7H78V43GB47ypDoqvKz","ordre":2,"notes":null,"slug":"m-pr-bon-espoir-2001-pr201-mdp01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mfr","fondamentale":{"date_debut":null,"date_fin":null,"duree":60,"substances":["auru","arge","cuiv"],"titulaires":[{"id":"fr-401802863","nom":"ARMINA RESSOURCES MINIERES SARL","operateur":false}],"amodiataires":null,"perimetre":null},"etape_statut_id":"fai","date":"2011-06-29","id":"iV47juaOeL4EAUsOqiWN6gOO","ordre":1,"notes":null,"slug":"m-pr-bon-espoir-2001-pr201-mfr01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"pr2","demarche_statut_id":"acc","demarche_date_debut":"2011-10-31","demarche_date_fin":"2016-10-31","ordre":3}],"nb_activites_to_do":null}) + const bonEspoirData = titreGetValidator.parse({"id":"sJorD6pQomXTN7oRpyGwLijB","nom":"Bon Espoir","slug":"m-pr-bon-espoir-2001","titre_type_id":"prm","titre_statut_id":"ech","titre_doublon":null,"references":[{"nom":"21/2001","referenceTypeId":"dea"},{"nom":"2013-0033-MI","referenceTypeId":"deb"}],"titre_last_modified_date":"2023-11-30","demarches":[{"id":"ry8fHgRWiKEOE1x1ZANmajh8","slug":"m-pr-bon-espoir-2001-oct01","description":null,"etapes":[{"etape_type_id":"dpu","fondamentale":{"date_debut":"2001-11-01","date_fin":null,"duree":60,"substances":["auru","scoc"],"titulaires":null,"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.957932101,5.077769388],[-53.957523215,4.987353337],[-53.86736267,4.98775355],[-53.867226527,4.956317348],[-53.777063114,4.956702765],[-53.776987892,4.938687225],[-53.569873008,4.939523155],[-53.570206958,5.025376089],[-53.759383912,5.02460196],[-53.759612886,5.078649124],[-53.957932101,5.077769388]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.9579321010744,5.07776938770113]},"properties":{"nom":"1","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7596128864516,5.07864912381548]},"properties":{"nom":"2","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.759383911755,5.02460196044417]},"properties":{"nom":"3","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.5702069576163,5.02537608911083]},"properties":{"nom":"4","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.5698730075868,4.93952315477954]},"properties":{"nom":"5","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7769878916108,4.93868722476635]},"properties":{"nom":"6","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7770631139658,4.95670276466037]},"properties":{"nom":"7","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8672265271601,4.95631734759459]},"properties":{"nom":"8","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8673626701318,4.98775355007457]},"properties":{"nom":"9","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.9575232150351,4.98735333700249]},"properties":{"nom":"10","description":null}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.957932101,5.077769388],[-53.957523215,4.987353337],[-53.86736267,4.98775355],[-53.867226527,4.956317348],[-53.777063114,4.956702765],[-53.776987892,4.938687225],[-53.569873008,4.939523155],[-53.570206958,5.025376089],[-53.759383912,5.02460196],[-53.759612886,5.078649124],[-53.957932101,5.077769388]]]]}},"geojson4326_forages":null,"geojson_origine_forages":null,"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.9579321010744,5.07776938770113]},"properties":{"nom":"1","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7596128864516,5.07864912381548]},"properties":{"nom":"2","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.759383911755,5.02460196044417]},"properties":{"nom":"3","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.5702069576163,5.02537608911083]},"properties":{"nom":"4","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.5698730075868,4.93952315477954]},"properties":{"nom":"5","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7769878916108,4.93868722476635]},"properties":{"nom":"6","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7770631139658,4.95670276466037]},"properties":{"nom":"7","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8672265271601,4.95631734759459]},"properties":{"nom":"8","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8673626701318,4.98775355007457]},"properties":{"nom":"9","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.9575232150351,4.98735333700249]},"properties":{"nom":"10","description":null}}]},"geojson_origine_geo_systeme_id":"4326","surface":465.5,"communes":[{"id":"97306","nom":"Mana"},{"id":"97311","nom":"Saint-Laurent-du-Maroni"}],"secteurs_maritimes":[],"sdom_zones":["0","2"],"forets":["LDD","MDF","PAUL"]}},"etape_statut_id":"acc","date":"2001-10-26","id":"CRVhvEIQAc319vUd8BfZoH5W","ordre":2,"notes":null,"slug":"m-pr-bon-espoir-2001-oct01-dpu01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":3201430},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":"EUR"}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":false,"type":"text","value":"JORFTEXT000000774145"},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":"ECOI0100462D"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dex","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":[],"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2001-10-24","id":"Ce4K8goEZzjqXRJLL051jcpD","ordre":1,"notes":null,"slug":"m-pr-bon-espoir-2001-oct01-dex01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":true,"type":"text","value":null},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[{"id":"2001-10-24-dec-cdc61459","description":"Décret du 24 octobre 2001 accordant un permis de recherches A en Guyane","document_type_id":"dec","public_lecture":true,"entreprises_lecture":true}],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"oct","demarche_statut_id":"acc","demarche_date_debut":"2001-11-01","demarche_date_fin":"2006-11-01","ordre":1},{"id":"PnFewl8P4Zt5Vm49zXqyn7Ml","slug":"m-pr-bon-espoir-2001-pr101","description":null,"etapes":[{"etape_type_id":"dpu","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":["auru"],"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2010-03-02","id":"qtn2a3DNPx258VZgSjqXGKf6","ordre":4,"notes":null,"slug":"m-pr-bon-espoir-2001-pr101-dpu02","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":560000},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":"EUR"}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":false,"type":"text","value":"JORFTEXT000021889053"},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":"DEVO1003938A"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dex","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":[],"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2010-02-17","id":"tjOMgkb83wksMc6DFuqrecbu","ordre":3,"notes":null,"slug":"m-pr-bon-espoir-2001-pr101-dex02","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":true,"type":"text","value":null},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[{"id":"2010-02-17-arr-a26ea089","description":"Arrêté du 17 février 2010 modifiant l'arrêté du 6 mai 2009 prolongeant la validité du permis exclusif de recherches de mines d'or dit « Permis de Bon Espoir » et réduisant sa surface (Guyane)","document_type_id":"arr","public_lecture":true,"entreprises_lecture":true}],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dpu","fondamentale":{"date_debut":null,"date_fin":"2011-10-31","duree":null,"substances":["auru"],"titulaires":null,"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.957777778,5.076666667],[-53.9575,5.0325],[-53.894444444,5.000555556],[-53.820833333,4.979722222],[-53.713888889,4.963888889],[-53.732222222,5.023611111],[-53.876388889,5.022777778],[-53.957777778,5.076666667]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.9577777777778,5.07666666666667]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8763888888889,5.02277777777778]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7322222222222,5.02361111111111]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7138888888889,4.96388888888889]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8208333333333,4.97972222222222]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8944444444444,5.00055555555556]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.9575,5.0325]},"properties":{"nom":"G","description":null}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.957777778,5.076666667],[-53.9575,5.0325],[-53.894444444,5.000555556],[-53.820833333,4.979722222],[-53.713888889,4.963888889],[-53.732222222,5.023611111],[-53.876388889,5.022777778],[-53.957777778,5.076666667]]]]}},"geojson4326_forages":null,"geojson_origine_forages":null,"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.9577777777778,5.07666666666667]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8763888888889,5.02277777777778]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7322222222222,5.02361111111111]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.7138888888889,4.96388888888889]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8208333333333,4.97972222222222]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.8944444444444,5.00055555555556]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.9575,5.0325]},"properties":{"nom":"G","description":null}}]},"geojson_origine_geo_systeme_id":"4326","surface":122.275,"communes":[{"id":"97306","nom":"Mana"},{"id":"97311","nom":"Saint-Laurent-du-Maroni"}],"secteurs_maritimes":[],"sdom_zones":["0","2"],"forets":["LDD","PAUL"]}},"etape_statut_id":"acc","date":"2009-05-16","id":"07cbyPCYcOtKYkw4kOqg2Sed","ordre":2,"notes":null,"slug":"m-pr-bon-espoir-2001-pr101-dpu01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":837000},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":"EUR"}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":false,"type":"text","value":"JORFTEXT000020616467"},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":"DEVO0909004A"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dex","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":[],"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2009-05-06","id":"orsPMmIfX4kSgVus0HTrBxAo","ordre":1,"notes":null,"slug":"m-pr-bon-espoir-2001-pr101-dex01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":true,"type":"text","value":null},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[{"id":"2009-05-06-arr-54f88e41","description":"Arrêté du 6 mai 2009 prolongeant la validité du permis exclusif de recherches de mines d'or dit « Permis Bon Espoir » et réduisant sa superficie (Guyane)","document_type_id":"arr","public_lecture":true,"entreprises_lecture":true}],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"pr1","demarche_statut_id":"acc","demarche_date_debut":"2006-11-01","demarche_date_fin":"2011-10-31","ordre":2},{"id":"EMFAv33wlGqMcjd6DwKzQBvr","slug":"m-pr-bon-espoir-2001-pr201","description":null,"etapes":[{"etape_type_id":"dpu","fondamentale":{"date_debut":null,"date_fin":"2016-10-31","duree":60,"substances":["auru","scoc"],"titulaires":[{"id":"fr-401802863","nom":"ARMINA RESSOURCES MINIERES SARL","operateur":false}],"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2015-08-15","id":"Qp5DRYEN3Nc9n4CIwEYW7evs","ordre":9,"notes":null,"slug":"m-pr-bon-espoir-2001-pr201-dpu01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":1250000},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":"EUR"}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":false,"type":"text","value":"JORFTEXT000031053068"},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":"EINL1518062A"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dex","fondamentale":{"date_debut":null,"date_fin":null,"duree":60,"substances":["auru","scoc"],"titulaires":[{"id":"fr-401802863","nom":"ARMINA RESSOURCES MINIERES SARL","operateur":false}],"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2015-08-03","id":"ABvgimvovFWeEhoMOrKi4wAy","ordre":8,"notes":null,"slug":"m-pr-bon-espoir-2001-pr201-dex01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":true,"type":"text","value":null},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[{"id":"2015-08-03-arm-8bf71a65","description":"Arrêté du 3 août 2015 prolongeant la durée de validité du permis exclusif de recherches de mines d'or et de substances connexes dit « Permis de Bon Espoir » attribué à la société Armina Ressources Minières dans le département de Guyane","document_type_id":"arm","public_lecture":true,"entreprises_lecture":true}],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mdp","etape_statut_id":"fai","date":"2011-06-30","id":"nLXaR7H78V43GB47ypDoqvKz","ordre":2,"notes":null,"slug":"m-pr-bon-espoir-2001-pr201-mdp01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mfr","fondamentale":{"date_debut":null,"date_fin":null,"duree":60,"substances":["auru","arge","cuiv"],"titulaires":[{"id":"fr-401802863","nom":"ARMINA RESSOURCES MINIERES SARL","operateur":false}],"amodiataires":null,"perimetre":null},"etape_statut_id":"fai","date":"2011-06-29","id":"iV47juaOeL4EAUsOqiWN6gOO","ordre":1,"notes":null,"slug":"m-pr-bon-espoir-2001-pr201-mfr01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"pr2","demarche_statut_id":"acc","demarche_date_debut":"2011-10-31","demarche_date_fin":"2016-10-31","ordre":3}],"nb_activites_to_do":null}) bonEspoirData.nb_activites_to_do = 0 // prettier-ignore bonEspoirData.demarches.push(demarcheGetValidator.parse({ "id": "idtravaux", "ordre": 4, "slug": "m-pr-bon-espoir-2001-dam01", "description": null, "etapes": [{"etape_type_id": "wpo", "ordre": 4,notes: null, "etape_statut_id": "acc","date": "2012-07-23", "id": "idEtapeTravaux1","slug": "m-pr-bon-espoir-2001-dam01-wpo01","sections_with_values": [],"entreprises_documents": [],"documents": [{"id": "2012-07-23-apd-607c3aa8","description": "N°2012-SPR-DRMSS-1","document_type_id": "apd","public_lecture": false,"entreprises_lecture": false }],"decisions_annexes_contenu": null,"decisions_annexes_sections": null}, {"etape_type_id": "wpp", "ordre": 3,notes: null,"etape_statut_id": "fai","date": "2011-05-04","id": "idEtapeTravaux2","slug": "m-pr-bon-espoir-2001-dam01-wpp01","sections_with_values": [],"entreprises_documents": [],"documents": [{"id": "id_Document","description": "","document_type_id": "apu","public_lecture": false,"entreprises_lecture": false }],"decisions_annexes_contenu": null,"decisions_annexes_sections": null}, {"etape_type_id": "wfd", "ordre": 2,notes: null, "etape_statut_id": "fai","date": "2010-10-01","id": "idEtapeTravaux3","slug": "m-pr-bon-espoir-2001-dam01-wfd01","sections_with_values": [],"entreprises_documents": [],"documents": [],"decisions_annexes_contenu": null,"decisions_annexes_sections": null}, {"etape_type_id": "wre","ordre": 1,notes: null,"etape_statut_id": "fav","date": "2010-10-01","id": "idEtapeTravaux4","slug": "m-pr-bon-espoir-2001-dam01-wre01","sections_with_values": [],"entreprises_documents": [],"documents": [],"decisions_annexes_contenu": null,"decisions_annexes_sections": null}],"demarche_type_id": "dam","demarche_statut_id": "fpm","demarche_date_debut": null,"demarche_date_fin": null @@ -477,7 +479,7 @@ const bonEspoirApiClient: PropsApiClient = { })) // prettier-ignore - bonEspoirData.demarches.push(demarcheGetValidator.parse({"id":"KxHulLhT5XtziPhZDWpFuyA9", "ordre": 5, "slug":"m-pr-bon-espoir-2001-vct01","description":null,"etapes":[{"etape_type_id":"mcr","etape_statut_id":"fav","date":"2017-08-07","id":"OOKaEetpmAhDX17hcLEFWTZ1","ordre":4,notes: null,"slug":"m-pr-bon-espoir-2001-vct01-mcr01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mdp","etape_statut_id":"fai","date":"2016-11-07","id":"fNt0G9CmdMc6iIG9x239wZ5E","ordre":2,notes: null,"slug":"m-pr-bon-espoir-2001-vct01-mdp01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mfr","fondamentale":{"date_debut":null,"date_fin":null,"duree":180,"substances":["auru","scoc"],"titulaires":[{"id":"fr-401802863","nom":"ARMINA RESSOURCES MINIERES SARL","operateur":false}],"amodiataires":null,"perimetre":{"geojson4326_points": null,"geojson_origine_points": null, "geojson4326_perimetre":{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-53.95781742722346,5.076877972864504],[-53.95761604147164,5.032517695391918],[-53.894654620091046,5.000735152488521],[-53.82094960753945,4.97999409410299],[-53.71414492282594,4.963998224562106],[-53.73241245985785,5.023653513799631],[-53.87657715038456,5.023033474690702],[-53.95781742722346,5.076877972864504]]]]},"properties":null}, "geojson_origine_perimetre":{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-53.95781742722346,5.076877972864504],[-53.95761604147164,5.032517695391918],[-53.894654620091046,5.000735152488521],[-53.82094960753945,4.97999409410299],[-53.71414492282594,4.963998224562106],[-53.73241245985785,5.023653513799631],[-53.87657715038456,5.023033474690702],[-53.95781742722346,5.076877972864504]]]]},"properties":null},"geojson_origine_geo_systeme_id":"4326","surface":122.275,"communes":[{"id":"97311","nom":"Saint-Laurent-du-Maroni"},{"id":"97306","nom":"Mana"}],"secteurs_maritimes":[],"sdom_zones":["0","2"],"forets":["LDD","PAUL"]}},"etape_statut_id":"fai","date":"2016-10-28","id":"VqBn5DzAtcMQWFY0CIiO6X1A","ordre":1,notes: null,"slug":"m-pr-bon-espoir-2001-vct01-mfr01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"vct","demarche_statut_id":"ins","demarche_date_debut":"2016-10-31","demarche_date_fin":null})) + bonEspoirData.demarches.push(demarcheGetValidator.parse({"id":"KxHulLhT5XtziPhZDWpFuyA9", "ordre": 5, "slug":"m-pr-bon-espoir-2001-vct01","description":null,"etapes":[{"etape_type_id":"mcr","etape_statut_id":"fav","date":"2017-08-07","id":"OOKaEetpmAhDX17hcLEFWTZ1","ordre":4,notes: null,"slug":"m-pr-bon-espoir-2001-vct01-mcr01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mdp","etape_statut_id":"fai","date":"2016-11-07","id":"fNt0G9CmdMc6iIG9x239wZ5E","ordre":2,notes: null,"slug":"m-pr-bon-espoir-2001-vct01-mdp01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mfr","fondamentale":{"date_debut":null,"date_fin":null,"duree":180,"substances":["auru","scoc"],"titulaires":[{"id":"fr-401802863","nom":"ARMINA RESSOURCES MINIERES SARL","operateur":false}],"amodiataires":null,"perimetre":{"geojson4326_points": null,"geojson4326_forages":null,"geojson_origine_forages":null,"geojson_origine_points": null, "geojson4326_perimetre":{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-53.95781742722346,5.076877972864504],[-53.95761604147164,5.032517695391918],[-53.894654620091046,5.000735152488521],[-53.82094960753945,4.97999409410299],[-53.71414492282594,4.963998224562106],[-53.73241245985785,5.023653513799631],[-53.87657715038456,5.023033474690702],[-53.95781742722346,5.076877972864504]]]]},"properties":null}, "geojson_origine_perimetre":{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-53.95781742722346,5.076877972864504],[-53.95761604147164,5.032517695391918],[-53.894654620091046,5.000735152488521],[-53.82094960753945,4.97999409410299],[-53.71414492282594,4.963998224562106],[-53.73241245985785,5.023653513799631],[-53.87657715038456,5.023033474690702],[-53.95781742722346,5.076877972864504]]]]},"properties":null},"geojson_origine_geo_systeme_id":"4326","surface":122.275,"communes":[{"id":"97311","nom":"Saint-Laurent-du-Maroni"},{"id":"97306","nom":"Mana"}],"secteurs_maritimes":[],"sdom_zones":["0","2"],"forets":["LDD","PAUL"]}},"etape_statut_id":"fai","date":"2016-10-28","id":"VqBn5DzAtcMQWFY0CIiO6X1A","ordre":1,notes: null,"slug":"m-pr-bon-espoir-2001-vct01-mfr01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"vct","demarche_statut_id":"ins","demarche_date_debut":"2016-10-31","demarche_date_fin":null})) return Promise.resolve(bonEspoirData) }, @@ -525,7 +527,7 @@ const basseManaApiClient: PropsApiClient = { getTitreAction(titreIdOrSlug) // prettier-ignore - const basseManaData = titreGetValidator.parse({"id":"ORKjSbwrb87xE53MsYClV8OF","nom":"Basse Mana","slug":"m-pr-basse-mana-2018","titre_type_id":"prm","titre_statut_id":"mod","titre_doublon":null,"references":[{"nom":"22/2018","referenceTypeId":"dea"},{"nom":"2016-0010-MI","referenceTypeId":"deb"}],"titre_last_modified_date":"2023-12-19","demarches":[{"id":"GnIerujOWqlS3U06Xcbc1Dr0","slug":"m-pr-basse-mana-2018-oct01","description":null,"etapes":[{"etape_type_id":"dpu","fondamentale":{"date_debut":null,"date_fin":null,"duree":36,"substances":["tant","niob","lith","bery","etai","wolf","tita","auru"],"titulaires":[{"id":"fr-790856850","nom":"SUDMINE","operateur":true}],"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.69912524,5.291376757],[-53.735659753,5.24333287],[-53.684773658,5.232646225],[-53.664223513,5.237523538],[-53.655434468,5.250348173],[-53.640244916,5.250448761],[-53.63310533,5.269791199],[-53.665016693,5.273532076],[-53.69912524,5.291376757]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.699125239725,5.29137675727333]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6650166925488,5.27353207619541]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6331053301638,5.26979119871868]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6402449164671,5.25044876137938]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6554344678131,5.25034817283726]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.664223513371,5.23752353831223]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6847736578144,5.232646225266]},"properties":{"nom":"G","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.735659753333,5.24333287037071]},"properties":{"nom":"H","description":null}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.69912524,5.291376757],[-53.735659753,5.24333287],[-53.684773658,5.232646225],[-53.664223513,5.237523538],[-53.655434468,5.250348173],[-53.640244916,5.250448761],[-53.63310533,5.269791199],[-53.665016693,5.273532076],[-53.69912524,5.291376757]]]]}},"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.699125239725,5.29137675727333]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6650166925488,5.27353207619541]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6331053301638,5.26979119871868]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6402449164671,5.25044876137938]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6554344678131,5.25034817283726]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.664223513371,5.23752353831223]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6847736578144,5.232646225266]},"properties":{"nom":"G","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.735659753333,5.24333287037071]},"properties":{"nom":"H","description":null}}]},"geojson_origine_geo_systeme_id":"4326","surface":48,"communes":[{"id":"97306","nom":"Mana"}],"secteurs_maritimes":[],"sdom_zones":["2"],"forets":["BSM"]}},"etape_statut_id":"acc","date":"2018-09-11","id":"ooH6ZbECJPcDPFsE0McnKvUm","ordre":9,"notes":null,"slug":"m-pr-basse-mana-2018-oct01-dpu01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":150000},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":"EUR"}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":false,"type":"text","value":"JORFTEXT000037382008"},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":"ECOL1816264A"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dex","fondamentale":{"date_debut":null,"date_fin":null,"duree":36,"substances":["tant","niob","lith","bery","etai","wolf","tita","auru"],"titulaires":[{"id":"fr-790856850","nom":"SUDMINE","operateur":true}],"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.69912524,5.291376757],[-53.735659753,5.24333287],[-53.684773658,5.232646225],[-53.664223513,5.237523538],[-53.655434468,5.250348173],[-53.640244916,5.250448761],[-53.63310533,5.269791199],[-53.665016693,5.273532076],[-53.69912524,5.291376757]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.699125239725,5.29137675727333]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6650166925488,5.27353207619541]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6331053301638,5.26979119871868]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6402449164671,5.25044876137938]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6554344678131,5.25034817283726]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.664223513371,5.23752353831223]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6847736578144,5.232646225266]},"properties":{"nom":"G","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.735659753333,5.24333287037071]},"properties":{"nom":"H","description":null}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.69912524,5.291376757],[-53.735659753,5.24333287],[-53.684773658,5.232646225],[-53.664223513,5.237523538],[-53.655434468,5.250348173],[-53.640244916,5.250448761],[-53.63310533,5.269791199],[-53.665016693,5.273532076],[-53.69912524,5.291376757]]]]}},"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.699125239725,5.29137675727333]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6650166925488,5.27353207619541]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6331053301638,5.26979119871868]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6402449164671,5.25044876137938]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6554344678131,5.25034817283726]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.664223513371,5.23752353831223]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6847736578144,5.232646225266]},"properties":{"nom":"G","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.735659753333,5.24333287037071]},"properties":{"nom":"H","description":null}}]},"geojson_origine_geo_systeme_id":"4326","surface":48,"communes":[{"id":"97306","nom":"Mana"}],"secteurs_maritimes":[],"sdom_zones":["2"],"forets":["BSM"]}},"etape_statut_id":"acc","date":"2018-08-31","id":"KJtV68vswF5ewUyF2jTuLGhS","ordre":8,"notes":null,"slug":"m-pr-basse-mana-2018-oct01-dex01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":150000},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":"EUR"}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":true,"type":"text","value":"JORFTEXT000037382008"},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":"ECOL1816264A"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mdp","etape_statut_id":"fai","date":"2016-08-28","id":"qVJM9zS6hWyIr3My5OoubQA3","ordre":2,"notes":null,"slug":"m-pr-basse-mana-2018-oct01-mdp01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mfr","fondamentale":{"date_debut":null,"date_fin":null,"duree":36,"substances":["tant","niob","scoc"],"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"fai","date":"2016-06-19","id":"abABihashClZP0lL3NUPELNV","ordre":1,"notes":null,"slug":"m-pr-basse-mana-2018-oct01-mfr01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"oct","demarche_statut_id":"acc","demarche_date_debut":"2018-09-11","demarche_date_fin":"2021-09-11","ordre":1},{"id":"mZAUVvPyznbzpj3e3grjFmlJ","slug":"m-pr-basse-mana-2018-pr101","description":null,"etapes":[{"etape_type_id":"rpu","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":null,"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"fai","date":"2023-11-17","id":"f76c17ab21ca966988390d92","ordre":11,"notes":null,"slug":"m-pr-basse-mana-2018-pr101-rpu01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dpu","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":null,"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2023-11-15","id":"71f6497117b21325d53d8e56","ordre":10,"notes":null,"slug":"m-pr-basse-mana-2018-pr101-dpu01","sections_with_values":[{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":false,"type":"text","value":"Texte 3 sur 160"}]}],"entreprises_documents":[],"documents":[{"id":"2023-11-15-pub-4d420801","description":"","document_type_id":"pub","public_lecture":true,"entreprises_lecture":true}],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dex","fondamentale":{"date_debut":null,"date_fin":null,"duree":30,"substances":null,"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2023-11-07","id":"590f6dd2f808eeadf51b820e","ordre":9,"notes":null,"slug":"m-pr-basse-mana-2018-pr101-dex01","sections_with_values":[{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":true,"type":"text","value":null},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"ppc","etape_statut_id":"ter","date":"2023-04-14","id":"da4a6c74690a6d1ef01ddde2","ordre":6,"notes":null,"slug":"m-pr-basse-mana-2018-pr101-ppc01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"ppu","etape_statut_id":"fai","date":"2023-03-27","id":"M1mK0vhAHH5CTaUwq4cJzK49","ordre":5,"notes":null,"slug":"m-pr-basse-mana-2018-pr101-ppu01","sections_with_values":[{"id":"opdp","elements":[{"id":"lien","nom":"Lien public externe","description":"","optionnel":true,"type":"url","value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mfr","fondamentale":{"date_debut":null,"date_fin":null,"duree":60,"substances":["tant","niob","lith","bery","etai","wolf","tita","auru"],"titulaires":[{"id":"fr-790856850","nom":"SUDMINE","operateur":false}],"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.699150462,5.291394409],[-53.735684972,5.243350526],[-53.684798879,5.232663884],[-53.664248736,5.237541197],[-53.655459692,5.250365831],[-53.640270141,5.25046642],[-53.633130556,5.269808856],[-53.665119187,5.29162312],[-53.699150462,5.291394409]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.699150462397206,5.291394409468797]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66511918689031,5.291623119512839]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.633130556393525,5.269808855679936]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.64027014144058,5.250466419912988]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.65545969176547,5.250365830767107]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.664248736219285,5.2375411971227654]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.684798879087204,5.232663883719148]},"properties":{"nom":"G","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.73568497160258,5.2433505257409125]},"properties":{"nom":"H","description":null}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.699150462,5.291394409],[-53.735684972,5.243350526],[-53.684798879,5.232663884],[-53.664248736,5.237541197],[-53.655459692,5.250365831],[-53.640270141,5.25046642],[-53.633130556,5.269808856],[-53.665119187,5.29162312],[-53.699150462,5.291394409]]]]}},"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.699150462397206,5.291394409468797]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66511918689031,5.291623119512839]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.633130556393525,5.269808855679936]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.64027014144058,5.250466419912988]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.65545969176547,5.250365830767107]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.664248736219285,5.2375411971227654]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.684798879087204,5.232663883719148]},"properties":{"nom":"G","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.73568497160258,5.2433505257409125]},"properties":{"nom":"H","description":null}}]},"geojson_origine_geo_systeme_id":"4326","surface":0,"communes":[{"id":"97306","nom":"Mana"}],"secteurs_maritimes":[],"sdom_zones":["2"],"forets":["BSM"]}},"etape_statut_id":"fai","date":"2021-04-30","id":"NKW0jIKc5cPBIp2dwu2VceCG","ordre":1,"notes":null,"slug":"m-pr-basse-mana-2018-pr101-mfr01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mdp","etape_statut_id":"fai","date":"2021-04-30","id":"wFb34sxGyHoRNOByPffQZyAF","ordre":2,"notes":null,"slug":"m-pr-basse-mana-2018-pr101-mdp01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"pr1","demarche_statut_id":"acc","demarche_date_debut":"2021-09-11","demarche_date_fin":"2024-03-11","ordre":2},{"id":"5df48d3536a38dd1dab542d7","slug":"m-pr-basse-mana-2018-pr201","description":"","etapes":[{"etape_type_id":"mdp","etape_statut_id":"fai","date":"2023-10-30","id":"37a1752da216067fc73328f9","ordre":2,"notes":null,"slug":"m-pr-basse-mana-2018-pr201-mdp01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mfr","fondamentale":{"date_debut":null,"date_fin":null,"duree":60,"substances":["tant","niob","lith","bery","etai","wolf","tita","auru"],"titulaires":null,"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.695977303,5.258026897],[-53.691661753,5.243894121],[-53.691207935,5.238962049],[-53.669472448,5.23643451],[-53.664266765,5.23754112],[-53.655468706,5.250365792],[-53.640270103,5.250457383],[-53.634220223,5.267391339],[-53.649339565,5.274005465],[-53.669437597,5.274805058],[-53.669882058,5.281761504],[-53.671594626,5.281690874],[-53.67432345,5.276844434],[-53.67742349,5.274481516],[-53.685231828,5.270616251],[-53.695977303,5.258026897]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.695977302723314,5.258026897118486]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.68523182828244,5.270616251350751]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.67742349010169,5.274481516415551]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.67432345044184,5.276844434310086]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.671594626284566,5.281690874443703]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66988205803166,5.281761503749559]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66943759690406,5.2748050575845875]},"properties":{"nom":"G","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.64933956522329,5.274005464773927]},"properties":{"nom":"H","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.63422022259896,5.267391338838475]},"properties":{"nom":"I","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.64027010339901,5.25045738302719]},"properties":{"nom":"J","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.655468706369525,5.250365792413383]},"properties":{"nom":"K","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66426676493007,5.2375411203489115]},"properties":{"nom":"L","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66947244758239,5.236434510036549]},"properties":{"nom":"M","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.691207934852734,5.238962048893827]},"properties":{"nom":"N","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.69166175320614,5.243894120712839]},"properties":{"nom":"O","description":null}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.695977303,5.258026897],[-53.691661753,5.243894121],[-53.691207935,5.238962049],[-53.669472448,5.23643451],[-53.664266765,5.23754112],[-53.655468706,5.250365792],[-53.640270103,5.250457383],[-53.634220223,5.267391339],[-53.649339565,5.274005465],[-53.669437597,5.274805058],[-53.669882058,5.281761504],[-53.671594626,5.281690874],[-53.67432345,5.276844434],[-53.67742349,5.274481516],[-53.685231828,5.270616251],[-53.695977303,5.258026897]]]]}},"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.695977302723314,5.258026897118486]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.68523182828244,5.270616251350751]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.67742349010169,5.274481516415551]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.67432345044184,5.276844434310086]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.671594626284566,5.281690874443703]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66988205803166,5.281761503749559]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66943759690406,5.2748050575845875]},"properties":{"nom":"G","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.64933956522329,5.274005464773927]},"properties":{"nom":"H","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.63422022259896,5.267391338838475]},"properties":{"nom":"I","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.64027010339901,5.25045738302719]},"properties":{"nom":"J","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.655468706369525,5.250365792413383]},"properties":{"nom":"K","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66426676493007,5.2375411203489115]},"properties":{"nom":"L","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66947244758239,5.236434510036549]},"properties":{"nom":"M","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.691207934852734,5.238962048893827]},"properties":{"nom":"N","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.69166175320614,5.243894120712839]},"properties":{"nom":"O","description":null}}]},"geojson_origine_geo_systeme_id":"4326","surface":20.69,"communes":[{"id":"97306","nom":"Mana"}],"secteurs_maritimes":[],"sdom_zones":["2"],"forets":["BSM"]}},"etape_statut_id":"fai","date":"2023-10-30","id":"47a22a6ca44891d40e2f4149","ordre":1,"notes":null,"slug":"m-pr-basse-mana-2018-pr201-mfr01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"pr2","demarche_statut_id":"dep","demarche_date_debut":"2024-03-11","demarche_date_fin":null,"ordre":3}],"nb_activites_to_do":null}) + const basseManaData = titreGetValidator.parse({"id":"ORKjSbwrb87xE53MsYClV8OF","nom":"Basse Mana","slug":"m-pr-basse-mana-2018","titre_type_id":"prm","titre_statut_id":"mod","titre_doublon":null,"references":[{"nom":"22/2018","referenceTypeId":"dea"},{"nom":"2016-0010-MI","referenceTypeId":"deb"}],"titre_last_modified_date":"2023-12-19","demarches":[{"id":"GnIerujOWqlS3U06Xcbc1Dr0","slug":"m-pr-basse-mana-2018-oct01","description":null,"etapes":[{"etape_type_id":"dpu","fondamentale":{"date_debut":null,"date_fin":null,"duree":36,"substances":["tant","niob","lith","bery","etai","wolf","tita","auru"],"titulaires":[{"id":"fr-790856850","nom":"SUDMINE","operateur":true}],"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.69912524,5.291376757],[-53.735659753,5.24333287],[-53.684773658,5.232646225],[-53.664223513,5.237523538],[-53.655434468,5.250348173],[-53.640244916,5.250448761],[-53.63310533,5.269791199],[-53.665016693,5.273532076],[-53.69912524,5.291376757]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.699125239725,5.29137675727333]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6650166925488,5.27353207619541]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6331053301638,5.26979119871868]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6402449164671,5.25044876137938]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6554344678131,5.25034817283726]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.664223513371,5.23752353831223]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6847736578144,5.232646225266]},"properties":{"nom":"G","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.735659753333,5.24333287037071]},"properties":{"nom":"H","description":null}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.69912524,5.291376757],[-53.735659753,5.24333287],[-53.684773658,5.232646225],[-53.664223513,5.237523538],[-53.655434468,5.250348173],[-53.640244916,5.250448761],[-53.63310533,5.269791199],[-53.665016693,5.273532076],[-53.69912524,5.291376757]]]]}},"geojson4326_forages":null,"geojson_origine_forages":null, "geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.699125239725,5.29137675727333]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6650166925488,5.27353207619541]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6331053301638,5.26979119871868]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6402449164671,5.25044876137938]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6554344678131,5.25034817283726]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.664223513371,5.23752353831223]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6847736578144,5.232646225266]},"properties":{"nom":"G","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.735659753333,5.24333287037071]},"properties":{"nom":"H","description":null}}]},"geojson_origine_geo_systeme_id":"4326","surface":48,"communes":[{"id":"97306","nom":"Mana"}],"secteurs_maritimes":[],"sdom_zones":["2"],"forets":["BSM"]}},"etape_statut_id":"acc","date":"2018-09-11","id":"ooH6ZbECJPcDPFsE0McnKvUm","ordre":9,"notes":null,"slug":"m-pr-basse-mana-2018-oct01-dpu01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":150000},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":"EUR"}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":false,"type":"text","value":"JORFTEXT000037382008"},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":"ECOL1816264A"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dex","fondamentale":{"date_debut":null,"date_fin":null,"duree":36,"substances":["tant","niob","lith","bery","etai","wolf","tita","auru"],"titulaires":[{"id":"fr-790856850","nom":"SUDMINE","operateur":true}],"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.69912524,5.291376757],[-53.735659753,5.24333287],[-53.684773658,5.232646225],[-53.664223513,5.237523538],[-53.655434468,5.250348173],[-53.640244916,5.250448761],[-53.63310533,5.269791199],[-53.665016693,5.273532076],[-53.69912524,5.291376757]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.699125239725,5.29137675727333]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6650166925488,5.27353207619541]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6331053301638,5.26979119871868]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6402449164671,5.25044876137938]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6554344678131,5.25034817283726]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.664223513371,5.23752353831223]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6847736578144,5.232646225266]},"properties":{"nom":"G","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.735659753333,5.24333287037071]},"properties":{"nom":"H","description":null}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.69912524,5.291376757],[-53.735659753,5.24333287],[-53.684773658,5.232646225],[-53.664223513,5.237523538],[-53.655434468,5.250348173],[-53.640244916,5.250448761],[-53.63310533,5.269791199],[-53.665016693,5.273532076],[-53.69912524,5.291376757]]]]}},"geojson4326_forages":null,"geojson_origine_forages":null,"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.699125239725,5.29137675727333]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6650166925488,5.27353207619541]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6331053301638,5.26979119871868]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6402449164671,5.25044876137938]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6554344678131,5.25034817283726]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.664223513371,5.23752353831223]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.6847736578144,5.232646225266]},"properties":{"nom":"G","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.735659753333,5.24333287037071]},"properties":{"nom":"H","description":null}}]},"geojson_origine_geo_systeme_id":"4326","surface":48,"communes":[{"id":"97306","nom":"Mana"}],"secteurs_maritimes":[],"sdom_zones":["2"],"forets":["BSM"]}},"etape_statut_id":"acc","date":"2018-08-31","id":"KJtV68vswF5ewUyF2jTuLGhS","ordre":8,"notes":null,"slug":"m-pr-basse-mana-2018-oct01-dex01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":150000},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":"EUR"}]},{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":true,"type":"text","value":"JORFTEXT000037382008"},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":"ECOL1816264A"}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mdp","etape_statut_id":"fai","date":"2016-08-28","id":"qVJM9zS6hWyIr3My5OoubQA3","ordre":2,"notes":null,"slug":"m-pr-basse-mana-2018-oct01-mdp01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mfr","fondamentale":{"date_debut":null,"date_fin":null,"duree":36,"substances":["tant","niob","scoc"],"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"fai","date":"2016-06-19","id":"abABihashClZP0lL3NUPELNV","ordre":1,"notes":null,"slug":"m-pr-basse-mana-2018-oct01-mfr01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"oct","demarche_statut_id":"acc","demarche_date_debut":"2018-09-11","demarche_date_fin":"2021-09-11","ordre":1},{"id":"mZAUVvPyznbzpj3e3grjFmlJ","slug":"m-pr-basse-mana-2018-pr101","description":null,"etapes":[{"etape_type_id":"rpu","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":null,"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"fai","date":"2023-11-17","id":"f76c17ab21ca966988390d92","ordre":11,"notes":null,"slug":"m-pr-basse-mana-2018-pr101-rpu01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dpu","fondamentale":{"date_debut":null,"date_fin":null,"duree":null,"substances":null,"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2023-11-15","id":"71f6497117b21325d53d8e56","ordre":10,"notes":null,"slug":"m-pr-basse-mana-2018-pr101-dpu01","sections_with_values":[{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":false,"type":"text","value":"Texte 3 sur 160"}]}],"entreprises_documents":[],"documents":[{"id":"2023-11-15-pub-4d420801","description":"","document_type_id":"pub","public_lecture":true,"entreprises_lecture":true}],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"dex","fondamentale":{"date_debut":null,"date_fin":null,"duree":30,"substances":null,"titulaires":null,"amodiataires":null,"perimetre":null},"etape_statut_id":"acc","date":"2023-11-07","id":"590f6dd2f808eeadf51b820e","ordre":9,"notes":null,"slug":"m-pr-basse-mana-2018-pr101-dex01","sections_with_values":[{"id":"publication","nom":"Références Légifrance","elements":[{"id":"jorf","nom":"Numéro JORF","description":"","optionnel":true,"type":"text","value":null},{"id":"nor","nom":"Numéro NOR","description":"","optionnel":true,"type":"text","value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"ppc","etape_statut_id":"ter","date":"2023-04-14","id":"da4a6c74690a6d1ef01ddde2","ordre":6,"notes":null,"slug":"m-pr-basse-mana-2018-pr101-ppc01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"ppu","etape_statut_id":"fai","date":"2023-03-27","id":"M1mK0vhAHH5CTaUwq4cJzK49","ordre":5,"notes":null,"slug":"m-pr-basse-mana-2018-pr101-ppu01","sections_with_values":[{"id":"opdp","elements":[{"id":"lien","nom":"Lien public externe","description":"","optionnel":true,"type":"url","value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mfr","fondamentale":{"date_debut":null,"date_fin":null,"duree":60,"substances":["tant","niob","lith","bery","etai","wolf","tita","auru"],"titulaires":[{"id":"fr-790856850","nom":"SUDMINE","operateur":false}],"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.699150462,5.291394409],[-53.735684972,5.243350526],[-53.684798879,5.232663884],[-53.664248736,5.237541197],[-53.655459692,5.250365831],[-53.640270141,5.25046642],[-53.633130556,5.269808856],[-53.665119187,5.29162312],[-53.699150462,5.291394409]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.699150462397206,5.291394409468797]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66511918689031,5.291623119512839]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.633130556393525,5.269808855679936]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.64027014144058,5.250466419912988]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.65545969176547,5.250365830767107]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.664248736219285,5.2375411971227654]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.684798879087204,5.232663883719148]},"properties":{"nom":"G","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.73568497160258,5.2433505257409125]},"properties":{"nom":"H","description":null}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.699150462,5.291394409],[-53.735684972,5.243350526],[-53.684798879,5.232663884],[-53.664248736,5.237541197],[-53.655459692,5.250365831],[-53.640270141,5.25046642],[-53.633130556,5.269808856],[-53.665119187,5.29162312],[-53.699150462,5.291394409]]]]}},"geojson4326_forages":null,"geojson_origine_forages":null,"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.699150462397206,5.291394409468797]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66511918689031,5.291623119512839]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.633130556393525,5.269808855679936]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.64027014144058,5.250466419912988]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.65545969176547,5.250365830767107]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.664248736219285,5.2375411971227654]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.684798879087204,5.232663883719148]},"properties":{"nom":"G","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.73568497160258,5.2433505257409125]},"properties":{"nom":"H","description":null}}]},"geojson_origine_geo_systeme_id":"4326","surface":0,"communes":[{"id":"97306","nom":"Mana"}],"secteurs_maritimes":[],"sdom_zones":["2"],"forets":["BSM"]}},"etape_statut_id":"fai","date":"2021-04-30","id":"NKW0jIKc5cPBIp2dwu2VceCG","ordre":1,"notes":null,"slug":"m-pr-basse-mana-2018-pr101-mfr01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mdp","etape_statut_id":"fai","date":"2021-04-30","id":"wFb34sxGyHoRNOByPffQZyAF","ordre":2,"notes":null,"slug":"m-pr-basse-mana-2018-pr101-mdp01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"pr1","demarche_statut_id":"acc","demarche_date_debut":"2021-09-11","demarche_date_fin":"2024-03-11","ordre":2},{"id":"5df48d3536a38dd1dab542d7","slug":"m-pr-basse-mana-2018-pr201","description":"","etapes":[{"etape_type_id":"mdp","etape_statut_id":"fai","date":"2023-10-30","id":"37a1752da216067fc73328f9","ordre":2,"notes":null,"slug":"m-pr-basse-mana-2018-pr201-mdp01","sections_with_values":[],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null},{"etape_type_id":"mfr","fondamentale":{"date_debut":null,"date_fin":null,"duree":60,"substances":["tant","niob","lith","bery","etai","wolf","tita","auru"],"titulaires":null,"amodiataires":null,"perimetre":{"geojson4326_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.695977303,5.258026897],[-53.691661753,5.243894121],[-53.691207935,5.238962049],[-53.669472448,5.23643451],[-53.664266765,5.23754112],[-53.655468706,5.250365792],[-53.640270103,5.250457383],[-53.634220223,5.267391339],[-53.649339565,5.274005465],[-53.669437597,5.274805058],[-53.669882058,5.281761504],[-53.671594626,5.281690874],[-53.67432345,5.276844434],[-53.67742349,5.274481516],[-53.685231828,5.270616251],[-53.695977303,5.258026897]]]]}},"geojson4326_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.695977302723314,5.258026897118486]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.68523182828244,5.270616251350751]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.67742349010169,5.274481516415551]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.67432345044184,5.276844434310086]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.671594626284566,5.281690874443703]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66988205803166,5.281761503749559]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66943759690406,5.2748050575845875]},"properties":{"nom":"G","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.64933956522329,5.274005464773927]},"properties":{"nom":"H","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.63422022259896,5.267391338838475]},"properties":{"nom":"I","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.64027010339901,5.25045738302719]},"properties":{"nom":"J","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.655468706369525,5.250365792413383]},"properties":{"nom":"K","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66426676493007,5.2375411203489115]},"properties":{"nom":"L","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66947244758239,5.236434510036549]},"properties":{"nom":"M","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.691207934852734,5.238962048893827]},"properties":{"nom":"N","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.69166175320614,5.243894120712839]},"properties":{"nom":"O","description":null}}]},"geojson_origine_perimetre":{"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-53.695977303,5.258026897],[-53.691661753,5.243894121],[-53.691207935,5.238962049],[-53.669472448,5.23643451],[-53.664266765,5.23754112],[-53.655468706,5.250365792],[-53.640270103,5.250457383],[-53.634220223,5.267391339],[-53.649339565,5.274005465],[-53.669437597,5.274805058],[-53.669882058,5.281761504],[-53.671594626,5.281690874],[-53.67432345,5.276844434],[-53.67742349,5.274481516],[-53.685231828,5.270616251],[-53.695977303,5.258026897]]]]}},"geojson4326_forages":null,"geojson_origine_forages":null,"geojson_origine_points":{"type":"FeatureCollection","properties":{},"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.695977302723314,5.258026897118486]},"properties":{"nom":"A","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.68523182828244,5.270616251350751]},"properties":{"nom":"B","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.67742349010169,5.274481516415551]},"properties":{"nom":"C","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.67432345044184,5.276844434310086]},"properties":{"nom":"D","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.671594626284566,5.281690874443703]},"properties":{"nom":"E","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66988205803166,5.281761503749559]},"properties":{"nom":"F","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66943759690406,5.2748050575845875]},"properties":{"nom":"G","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.64933956522329,5.274005464773927]},"properties":{"nom":"H","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.63422022259896,5.267391338838475]},"properties":{"nom":"I","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.64027010339901,5.25045738302719]},"properties":{"nom":"J","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.655468706369525,5.250365792413383]},"properties":{"nom":"K","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66426676493007,5.2375411203489115]},"properties":{"nom":"L","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.66947244758239,5.236434510036549]},"properties":{"nom":"M","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.691207934852734,5.238962048893827]},"properties":{"nom":"N","description":null}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-53.69166175320614,5.243894120712839]},"properties":{"nom":"O","description":null}}]},"geojson_origine_geo_systeme_id":"4326","surface":20.69,"communes":[{"id":"97306","nom":"Mana"}],"secteurs_maritimes":[],"sdom_zones":["2"],"forets":["BSM"]}},"etape_statut_id":"fai","date":"2023-10-30","id":"47a22a6ca44891d40e2f4149","ordre":1,"notes":null,"slug":"m-pr-basse-mana-2018-pr201-mfr01","sections_with_values":[{"id":"prx","nom":"Propriétés du permis exclusif de recherches","elements":[{"id":"engagement","nom":"Engagement","optionnel":true,"type":"number","value":null},{"id":"engagementDeviseId","nom":"Devise de l'engagement","description":"","optionnel":true,"type":"select","options":[{"id":"EUR","nom":"Euros"},{"id":"FRF","nom":"Francs"},{"id":"XPF","nom":"Francs Pacifique"}],"value":null}]}],"entreprises_documents":[],"documents":[],"decisions_annexes_contenu":null,"decisions_annexes_sections":null}],"demarche_type_id":"pr2","demarche_statut_id":"dep","demarche_date_debut":"2024-03-11","demarche_date_fin":null,"ordre":3}],"nb_activites_to_do":null}) return Promise.resolve(basseManaData) }, diff --git a/packages/ui/src/components/titre.stories_snapshots_AbattisKoticaOctroi.html b/packages/ui/src/components/titre.stories_snapshots_AbattisKoticaOctroi.html index d9a5241ebe1fd43aba130048ac9e6f8baa8fe556..096e0c1ab7f399fd2de98e0c74620bd0f0297f7a 100644 --- a/packages/ui/src/components/titre.stories_snapshots_AbattisKoticaOctroi.html +++ b/packages/ui/src/components/titre.stories_snapshots_AbattisKoticaOctroi.html @@ -135,101 +135,104 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">1</span></td> - <td class=""><span class="">a</span></td> - <td class=""><span class="">-54.256565011133</span></td> - <td class=""><span class="">3.95310428827045</span></td> - <td class=""><span class="">-54°15,394'</span></td> - <td class=""><span class="">3°57,186'</span></td> - </tr> - <tr> - <td class=""><span class="">2</span></td> - <td class=""><span class="">b</span></td> - <td class=""><span class="">-54.2387665564076</span></td> - <td class=""><span class="">3.95076254570704</span></td> - <td class=""><span class="">-54°14,326'</span></td> - <td class=""><span class="">3°57,046'</span></td> - </tr> - <tr> - <td class=""><span class="">3</span></td> - <td class=""><span class="">c</span></td> - <td class=""><span class="">-54.2392714613677</span></td> - <td class=""><span class="">3.9464520807474</span></td> - <td class=""><span class="">-54°14,356'</span></td> - <td class=""><span class="">3°56,787'</span></td> - </tr> - <tr> - <td class=""><span class="">4</span></td> - <td class=""><span class="">d</span></td> - <td class=""><span class="">-54.2571944444789</span></td> - <td class=""><span class="">3.94846823388004</span></td> - <td class=""><span class="">-54°15,432'</span></td> - <td class=""><span class="">3°56,908'</span></td> - </tr> - <tr> - <td class=""><span class="">1</span></td> - <td class=""><span class="">e</span></td> - <td class=""><span class="">-54.251541223062</span></td> - <td class=""><span class="">3.94479622927321</span></td> - <td class=""><span class="">-54°15,093'</span></td> - <td class=""><span class="">3°56,688'</span></td> - </tr> - <tr> - <td class=""><span class="">2</span></td> - <td class=""><span class="">f</span></td> - <td class=""><span class="">-54.2335613570663</span></td> - <td class=""><span class="">3.94667311503072</span></td> - <td class=""><span class="">-54°14,014'</span></td> - <td class=""><span class="">3°56,8'</span></td> - </tr> - <tr> - <td class=""><span class="">3</span></td> - <td class=""><span class="">g</span></td> - <td class=""><span class="">-54.2330489949186</span></td> - <td class=""><span class="">3.94209562569541</span></td> - <td class=""><span class="">-54°13,983'</span></td> - <td class=""><span class="">3°56,526'</span></td> - </tr> - <tr> - <td class=""><span class="">4</span></td> - <td class=""><span class="">h</span></td> - <td class=""><span class="">-54.251001625524</span></td> - <td class=""><span class="">3.94017377611083</span></td> - <td class=""><span class="">-54°15,06'</span></td> - <td class=""><span class="">3°56,41'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0A1;a;-54.256565011133;3.95310428827045;-54%C2%B015,394';3%C2%B057,186'%0A2;b;-54.2387665564076;3.95076254570704;-54%C2%B014,326';3%C2%B057,046'%0A3;c;-54.2392714613677;3.9464520807474;-54%C2%B014,356';3%C2%B056,787'%0A4;d;-54.2571944444789;3.94846823388004;-54%C2%B015,432';3%C2%B056,908'%0A1;e;-54.251541223062;3.94479622927321;-54%C2%B015,093';3%C2%B056,688'%0A2;f;-54.2335613570663;3.94667311503072;-54%C2%B014,014';3%C2%B056,8'%0A3;g;-54.2330489949186;3.94209562569541;-54%C2%B013,983';3%C2%B056,526'%0A4;h;-54.251001625524;3.94017377611083;-54%C2%B015,06';3%C2%B056,41'" download="points-m-ar-abattis-kotika-2006.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">1</span></td> + <td class=""><span class="">a</span></td> + <td class=""><span class="">-54.256565011133</span></td> + <td class=""><span class="">3.95310428827045</span></td> + <td class=""><span class="">-54°15,394'</span></td> + <td class=""><span class="">3°57,186'</span></td> + </tr> + <tr> + <td class=""><span class="">2</span></td> + <td class=""><span class="">b</span></td> + <td class=""><span class="">-54.2387665564076</span></td> + <td class=""><span class="">3.95076254570704</span></td> + <td class=""><span class="">-54°14,326'</span></td> + <td class=""><span class="">3°57,046'</span></td> + </tr> + <tr> + <td class=""><span class="">3</span></td> + <td class=""><span class="">c</span></td> + <td class=""><span class="">-54.2392714613677</span></td> + <td class=""><span class="">3.9464520807474</span></td> + <td class=""><span class="">-54°14,356'</span></td> + <td class=""><span class="">3°56,787'</span></td> + </tr> + <tr> + <td class=""><span class="">4</span></td> + <td class=""><span class="">d</span></td> + <td class=""><span class="">-54.2571944444789</span></td> + <td class=""><span class="">3.94846823388004</span></td> + <td class=""><span class="">-54°15,432'</span></td> + <td class=""><span class="">3°56,908'</span></td> + </tr> + <tr> + <td class=""><span class="">1</span></td> + <td class=""><span class="">e</span></td> + <td class=""><span class="">-54.251541223062</span></td> + <td class=""><span class="">3.94479622927321</span></td> + <td class=""><span class="">-54°15,093'</span></td> + <td class=""><span class="">3°56,688'</span></td> + </tr> + <tr> + <td class=""><span class="">2</span></td> + <td class=""><span class="">f</span></td> + <td class=""><span class="">-54.2335613570663</span></td> + <td class=""><span class="">3.94667311503072</span></td> + <td class=""><span class="">-54°14,014'</span></td> + <td class=""><span class="">3°56,8'</span></td> + </tr> + <tr> + <td class=""><span class="">3</span></td> + <td class=""><span class="">g</span></td> + <td class=""><span class="">-54.2330489949186</span></td> + <td class=""><span class="">3.94209562569541</span></td> + <td class=""><span class="">-54°13,983'</span></td> + <td class=""><span class="">3°56,526'</span></td> + </tr> + <tr> + <td class=""><span class="">4</span></td> + <td class=""><span class="">h</span></td> + <td class=""><span class="">-54.251001625524</span></td> + <td class=""><span class="">3.94017377611083</span></td> + <td class=""><span class="">-54°15,06'</span></td> + <td class=""><span class="">3°56,41'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0A1;a;-54.256565011133;3.95310428827045;-54%C2%B015,394';3%C2%B057,186'%0A2;b;-54.2387665564076;3.95076254570704;-54%C2%B014,326';3%C2%B057,046'%0A3;c;-54.2392714613677;3.9464520807474;-54%C2%B014,356';3%C2%B056,787'%0A4;d;-54.2571944444789;3.94846823388004;-54%C2%B015,432';3%C2%B056,908'%0A1;e;-54.251541223062;3.94479622927321;-54%C2%B015,093';3%C2%B056,688'%0A2;f;-54.2335613570663;3.94667311503072;-54%C2%B014,014';3%C2%B056,8'%0A3;g;-54.2330489949186;3.94209562569541;-54%C2%B013,983';3%C2%B056,526'%0A4;h;-54.251001625524;3.94017377611083;-54%C2%B015,06';3%C2%B056,41'" download="points-m-ar-abattis-kotika-2006.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> @@ -306,101 +309,104 @@ <div class="flex"><input id="typeahead_878" type="text" name="typeahead_878" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">1</span></td> - <td class=""><span class="">a</span></td> - <td class=""><span class="">-54.256565011133</span></td> - <td class=""><span class="">3.95310428827045</span></td> - <td class=""><span class="">-54°15,394'</span></td> - <td class=""><span class="">3°57,186'</span></td> - </tr> - <tr> - <td class=""><span class="">2</span></td> - <td class=""><span class="">b</span></td> - <td class=""><span class="">-54.2387665564076</span></td> - <td class=""><span class="">3.95076254570704</span></td> - <td class=""><span class="">-54°14,326'</span></td> - <td class=""><span class="">3°57,046'</span></td> - </tr> - <tr> - <td class=""><span class="">3</span></td> - <td class=""><span class="">c</span></td> - <td class=""><span class="">-54.2392714613677</span></td> - <td class=""><span class="">3.9464520807474</span></td> - <td class=""><span class="">-54°14,356'</span></td> - <td class=""><span class="">3°56,787'</span></td> - </tr> - <tr> - <td class=""><span class="">4</span></td> - <td class=""><span class="">d</span></td> - <td class=""><span class="">-54.2571944444789</span></td> - <td class=""><span class="">3.94846823388004</span></td> - <td class=""><span class="">-54°15,432'</span></td> - <td class=""><span class="">3°56,908'</span></td> - </tr> - <tr> - <td class=""><span class="">1</span></td> - <td class=""><span class="">e</span></td> - <td class=""><span class="">-54.251541223062</span></td> - <td class=""><span class="">3.94479622927321</span></td> - <td class=""><span class="">-54°15,093'</span></td> - <td class=""><span class="">3°56,688'</span></td> - </tr> - <tr> - <td class=""><span class="">2</span></td> - <td class=""><span class="">f</span></td> - <td class=""><span class="">-54.2335613570663</span></td> - <td class=""><span class="">3.94667311503072</span></td> - <td class=""><span class="">-54°14,014'</span></td> - <td class=""><span class="">3°56,8'</span></td> - </tr> - <tr> - <td class=""><span class="">3</span></td> - <td class=""><span class="">g</span></td> - <td class=""><span class="">-54.2330489949186</span></td> - <td class=""><span class="">3.94209562569541</span></td> - <td class=""><span class="">-54°13,983'</span></td> - <td class=""><span class="">3°56,526'</span></td> - </tr> - <tr> - <td class=""><span class="">4</span></td> - <td class=""><span class="">h</span></td> - <td class=""><span class="">-54.251001625524</span></td> - <td class=""><span class="">3.94017377611083</span></td> - <td class=""><span class="">-54°15,06'</span></td> - <td class=""><span class="">3°56,41'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0A1;a;-54.256565011133;3.95310428827045;-54%C2%B015,394';3%C2%B057,186'%0A2;b;-54.2387665564076;3.95076254570704;-54%C2%B014,326';3%C2%B057,046'%0A3;c;-54.2392714613677;3.9464520807474;-54%C2%B014,356';3%C2%B056,787'%0A4;d;-54.2571944444789;3.94846823388004;-54%C2%B015,432';3%C2%B056,908'%0A1;e;-54.251541223062;3.94479622927321;-54%C2%B015,093';3%C2%B056,688'%0A2;f;-54.2335613570663;3.94667311503072;-54%C2%B014,014';3%C2%B056,8'%0A3;g;-54.2330489949186;3.94209562569541;-54%C2%B013,983';3%C2%B056,526'%0A4;h;-54.251001625524;3.94017377611083;-54%C2%B015,06';3%C2%B056,41'" download="points-m-ar-abattis-kotika-2006.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">1</span></td> + <td class=""><span class="">a</span></td> + <td class=""><span class="">-54.256565011133</span></td> + <td class=""><span class="">3.95310428827045</span></td> + <td class=""><span class="">-54°15,394'</span></td> + <td class=""><span class="">3°57,186'</span></td> + </tr> + <tr> + <td class=""><span class="">2</span></td> + <td class=""><span class="">b</span></td> + <td class=""><span class="">-54.2387665564076</span></td> + <td class=""><span class="">3.95076254570704</span></td> + <td class=""><span class="">-54°14,326'</span></td> + <td class=""><span class="">3°57,046'</span></td> + </tr> + <tr> + <td class=""><span class="">3</span></td> + <td class=""><span class="">c</span></td> + <td class=""><span class="">-54.2392714613677</span></td> + <td class=""><span class="">3.9464520807474</span></td> + <td class=""><span class="">-54°14,356'</span></td> + <td class=""><span class="">3°56,787'</span></td> + </tr> + <tr> + <td class=""><span class="">4</span></td> + <td class=""><span class="">d</span></td> + <td class=""><span class="">-54.2571944444789</span></td> + <td class=""><span class="">3.94846823388004</span></td> + <td class=""><span class="">-54°15,432'</span></td> + <td class=""><span class="">3°56,908'</span></td> + </tr> + <tr> + <td class=""><span class="">1</span></td> + <td class=""><span class="">e</span></td> + <td class=""><span class="">-54.251541223062</span></td> + <td class=""><span class="">3.94479622927321</span></td> + <td class=""><span class="">-54°15,093'</span></td> + <td class=""><span class="">3°56,688'</span></td> + </tr> + <tr> + <td class=""><span class="">2</span></td> + <td class=""><span class="">f</span></td> + <td class=""><span class="">-54.2335613570663</span></td> + <td class=""><span class="">3.94667311503072</span></td> + <td class=""><span class="">-54°14,014'</span></td> + <td class=""><span class="">3°56,8'</span></td> + </tr> + <tr> + <td class=""><span class="">3</span></td> + <td class=""><span class="">g</span></td> + <td class=""><span class="">-54.2330489949186</span></td> + <td class=""><span class="">3.94209562569541</span></td> + <td class=""><span class="">-54°13,983'</span></td> + <td class=""><span class="">3°56,526'</span></td> + </tr> + <tr> + <td class=""><span class="">4</span></td> + <td class=""><span class="">h</span></td> + <td class=""><span class="">-54.251001625524</span></td> + <td class=""><span class="">3.94017377611083</span></td> + <td class=""><span class="">-54°15,06'</span></td> + <td class=""><span class="">3°56,41'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0A1;a;-54.256565011133;3.95310428827045;-54%C2%B015,394';3%C2%B057,186'%0A2;b;-54.2387665564076;3.95076254570704;-54%C2%B014,326';3%C2%B057,046'%0A3;c;-54.2392714613677;3.9464520807474;-54%C2%B014,356';3%C2%B056,787'%0A4;d;-54.2571944444789;3.94846823388004;-54%C2%B015,432';3%C2%B056,908'%0A1;e;-54.251541223062;3.94479622927321;-54%C2%B015,093';3%C2%B056,688'%0A2;f;-54.2335613570663;3.94667311503072;-54%C2%B014,014';3%C2%B056,8'%0A3;g;-54.2330489949186;3.94209562569541;-54%C2%B013,983';3%C2%B056,526'%0A4;h;-54.251001625524;3.94017377611083;-54%C2%B015,06';3%C2%B056,41'" download="points-m-ar-abattis-kotika-2006.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/titre.stories_snapshots_BasseManaMod.html b/packages/ui/src/components/titre.stories_snapshots_BasseManaMod.html index 2a9c198bb21645a76551da2f47eee3160822a85e..6be47281963c1192db338b11f74fd77af76ed276 100644 --- a/packages/ui/src/components/titre.stories_snapshots_BasseManaMod.html +++ b/packages/ui/src/components/titre.stories_snapshots_BasseManaMod.html @@ -143,101 +143,104 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.699150462397206</span></td> - <td class=""><span class="">5.291394409468797</span></td> - <td class=""><span class="">-53°41,949'</span></td> - <td class=""><span class="">5°17,484'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.66511918689031</span></td> - <td class=""><span class="">5.291623119512839</span></td> - <td class=""><span class="">-53°39,907'</span></td> - <td class=""><span class="">5°17,497'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.633130556393525</span></td> - <td class=""><span class="">5.269808855679936</span></td> - <td class=""><span class="">-53°37,988'</span></td> - <td class=""><span class="">5°16,189'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.64027014144058</span></td> - <td class=""><span class="">5.250466419912988</span></td> - <td class=""><span class="">-53°38,416'</span></td> - <td class=""><span class="">5°15,028'</span></td> - </tr> - <tr> - <td class=""><span class="">E</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.65545969176547</span></td> - <td class=""><span class="">5.250365830767107</span></td> - <td class=""><span class="">-53°39,328'</span></td> - <td class=""><span class="">5°15,022'</span></td> - </tr> - <tr> - <td class=""><span class="">F</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.664248736219285</span></td> - <td class=""><span class="">5.2375411971227654</span></td> - <td class=""><span class="">-53°39,855'</span></td> - <td class=""><span class="">5°14,253'</span></td> - </tr> - <tr> - <td class=""><span class="">G</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.684798879087204</span></td> - <td class=""><span class="">5.232663883719148</span></td> - <td class=""><span class="">-53°41,088'</span></td> - <td class=""><span class="">5°13,96'</span></td> - </tr> - <tr> - <td class=""><span class="">H</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.73568497160258</span></td> - <td class=""><span class="">5.2433505257409125</span></td> - <td class=""><span class="">-53°44,141'</span></td> - <td class=""><span class="">5°14,601'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;;-53.699150462397206;5.291394409468797;-53%C2%B041,949';5%C2%B017,484'%0AB;;-53.66511918689031;5.291623119512839;-53%C2%B039,907';5%C2%B017,497'%0AC;;-53.633130556393525;5.269808855679936;-53%C2%B037,988';5%C2%B016,189'%0AD;;-53.64027014144058;5.250466419912988;-53%C2%B038,416';5%C2%B015,028'%0AE;;-53.65545969176547;5.250365830767107;-53%C2%B039,328';5%C2%B015,022'%0AF;;-53.664248736219285;5.2375411971227654;-53%C2%B039,855';5%C2%B014,253'%0AG;;-53.684798879087204;5.232663883719148;-53%C2%B041,088';5%C2%B013,96'%0AH;;-53.73568497160258;5.2433505257409125;-53%C2%B044,141';5%C2%B014,601'" download="points-m-pr-basse-mana-2018.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.699150462397206</span></td> + <td class=""><span class="">5.291394409468797</span></td> + <td class=""><span class="">-53°41,949'</span></td> + <td class=""><span class="">5°17,484'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.66511918689031</span></td> + <td class=""><span class="">5.291623119512839</span></td> + <td class=""><span class="">-53°39,907'</span></td> + <td class=""><span class="">5°17,497'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.633130556393525</span></td> + <td class=""><span class="">5.269808855679936</span></td> + <td class=""><span class="">-53°37,988'</span></td> + <td class=""><span class="">5°16,189'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.64027014144058</span></td> + <td class=""><span class="">5.250466419912988</span></td> + <td class=""><span class="">-53°38,416'</span></td> + <td class=""><span class="">5°15,028'</span></td> + </tr> + <tr> + <td class=""><span class="">E</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.65545969176547</span></td> + <td class=""><span class="">5.250365830767107</span></td> + <td class=""><span class="">-53°39,328'</span></td> + <td class=""><span class="">5°15,022'</span></td> + </tr> + <tr> + <td class=""><span class="">F</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.664248736219285</span></td> + <td class=""><span class="">5.2375411971227654</span></td> + <td class=""><span class="">-53°39,855'</span></td> + <td class=""><span class="">5°14,253'</span></td> + </tr> + <tr> + <td class=""><span class="">G</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.684798879087204</span></td> + <td class=""><span class="">5.232663883719148</span></td> + <td class=""><span class="">-53°41,088'</span></td> + <td class=""><span class="">5°13,96'</span></td> + </tr> + <tr> + <td class=""><span class="">H</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.73568497160258</span></td> + <td class=""><span class="">5.2433505257409125</span></td> + <td class=""><span class="">-53°44,141'</span></td> + <td class=""><span class="">5°14,601'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;;-53.699150462397206;5.291394409468797;-53%C2%B041,949';5%C2%B017,484'%0AB;;-53.66511918689031;5.291623119512839;-53%C2%B039,907';5%C2%B017,497'%0AC;;-53.633130556393525;5.269808855679936;-53%C2%B037,988';5%C2%B016,189'%0AD;;-53.64027014144058;5.250466419912988;-53%C2%B038,416';5%C2%B015,028'%0AE;;-53.65545969176547;5.250365830767107;-53%C2%B039,328';5%C2%B015,022'%0AF;;-53.664248736219285;5.2375411971227654;-53%C2%B039,855';5%C2%B014,253'%0AG;;-53.684798879087204;5.232663883719148;-53%C2%B041,088';5%C2%B013,96'%0AH;;-53.73568497160258;5.2433505257409125;-53%C2%B044,141';5%C2%B014,601'" download="points-m-pr-basse-mana-2018.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> @@ -477,101 +480,104 @@ <div class="flex"><input id="typeahead_878" type="text" name="typeahead_878" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.699150462397206</span></td> - <td class=""><span class="">5.291394409468797</span></td> - <td class=""><span class="">-53°41,949'</span></td> - <td class=""><span class="">5°17,484'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.66511918689031</span></td> - <td class=""><span class="">5.291623119512839</span></td> - <td class=""><span class="">-53°39,907'</span></td> - <td class=""><span class="">5°17,497'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.633130556393525</span></td> - <td class=""><span class="">5.269808855679936</span></td> - <td class=""><span class="">-53°37,988'</span></td> - <td class=""><span class="">5°16,189'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.64027014144058</span></td> - <td class=""><span class="">5.250466419912988</span></td> - <td class=""><span class="">-53°38,416'</span></td> - <td class=""><span class="">5°15,028'</span></td> - </tr> - <tr> - <td class=""><span class="">E</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.65545969176547</span></td> - <td class=""><span class="">5.250365830767107</span></td> - <td class=""><span class="">-53°39,328'</span></td> - <td class=""><span class="">5°15,022'</span></td> - </tr> - <tr> - <td class=""><span class="">F</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.664248736219285</span></td> - <td class=""><span class="">5.2375411971227654</span></td> - <td class=""><span class="">-53°39,855'</span></td> - <td class=""><span class="">5°14,253'</span></td> - </tr> - <tr> - <td class=""><span class="">G</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.684798879087204</span></td> - <td class=""><span class="">5.232663883719148</span></td> - <td class=""><span class="">-53°41,088'</span></td> - <td class=""><span class="">5°13,96'</span></td> - </tr> - <tr> - <td class=""><span class="">H</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.73568497160258</span></td> - <td class=""><span class="">5.2433505257409125</span></td> - <td class=""><span class="">-53°44,141'</span></td> - <td class=""><span class="">5°14,601'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;;-53.699150462397206;5.291394409468797;-53%C2%B041,949';5%C2%B017,484'%0AB;;-53.66511918689031;5.291623119512839;-53%C2%B039,907';5%C2%B017,497'%0AC;;-53.633130556393525;5.269808855679936;-53%C2%B037,988';5%C2%B016,189'%0AD;;-53.64027014144058;5.250466419912988;-53%C2%B038,416';5%C2%B015,028'%0AE;;-53.65545969176547;5.250365830767107;-53%C2%B039,328';5%C2%B015,022'%0AF;;-53.664248736219285;5.2375411971227654;-53%C2%B039,855';5%C2%B014,253'%0AG;;-53.684798879087204;5.232663883719148;-53%C2%B041,088';5%C2%B013,96'%0AH;;-53.73568497160258;5.2433505257409125;-53%C2%B044,141';5%C2%B014,601'" download="points-m-pr-basse-mana-2018.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.699150462397206</span></td> + <td class=""><span class="">5.291394409468797</span></td> + <td class=""><span class="">-53°41,949'</span></td> + <td class=""><span class="">5°17,484'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.66511918689031</span></td> + <td class=""><span class="">5.291623119512839</span></td> + <td class=""><span class="">-53°39,907'</span></td> + <td class=""><span class="">5°17,497'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.633130556393525</span></td> + <td class=""><span class="">5.269808855679936</span></td> + <td class=""><span class="">-53°37,988'</span></td> + <td class=""><span class="">5°16,189'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.64027014144058</span></td> + <td class=""><span class="">5.250466419912988</span></td> + <td class=""><span class="">-53°38,416'</span></td> + <td class=""><span class="">5°15,028'</span></td> + </tr> + <tr> + <td class=""><span class="">E</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.65545969176547</span></td> + <td class=""><span class="">5.250365830767107</span></td> + <td class=""><span class="">-53°39,328'</span></td> + <td class=""><span class="">5°15,022'</span></td> + </tr> + <tr> + <td class=""><span class="">F</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.664248736219285</span></td> + <td class=""><span class="">5.2375411971227654</span></td> + <td class=""><span class="">-53°39,855'</span></td> + <td class=""><span class="">5°14,253'</span></td> + </tr> + <tr> + <td class=""><span class="">G</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.684798879087204</span></td> + <td class=""><span class="">5.232663883719148</span></td> + <td class=""><span class="">-53°41,088'</span></td> + <td class=""><span class="">5°13,96'</span></td> + </tr> + <tr> + <td class=""><span class="">H</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.73568497160258</span></td> + <td class=""><span class="">5.2433505257409125</span></td> + <td class=""><span class="">-53°44,141'</span></td> + <td class=""><span class="">5°14,601'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;;-53.699150462397206;5.291394409468797;-53%C2%B041,949';5%C2%B017,484'%0AB;;-53.66511918689031;5.291623119512839;-53%C2%B039,907';5%C2%B017,497'%0AC;;-53.633130556393525;5.269808855679936;-53%C2%B037,988';5%C2%B016,189'%0AD;;-53.64027014144058;5.250466419912988;-53%C2%B038,416';5%C2%B015,028'%0AE;;-53.65545969176547;5.250365830767107;-53%C2%B039,328';5%C2%B015,022'%0AF;;-53.664248736219285;5.2375411971227654;-53%C2%B039,855';5%C2%B014,253'%0AG;;-53.684798879087204;5.232663883719148;-53%C2%B041,088';5%C2%B013,96'%0AH;;-53.73568497160258;5.2433505257409125;-53%C2%B044,141';5%C2%B014,601'" download="points-m-pr-basse-mana-2018.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/titre.stories_snapshots_BonEspoirOctroi.html b/packages/ui/src/components/titre.stories_snapshots_BonEspoirOctroi.html index 06b5923fcc2177d66b113744c28bee66b8a701d9..669986cec07853db09bec8e41e828170081b4919 100644 --- a/packages/ui/src/components/titre.stories_snapshots_BonEspoirOctroi.html +++ b/packages/ui/src/components/titre.stories_snapshots_BonEspoirOctroi.html @@ -162,117 +162,120 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">1</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.9579321010744</span></td> - <td class=""><span class="">5.07776938770113</span></td> - <td class=""><span class="">-53°57,476'</span></td> - <td class=""><span class="">5°4,666'</span></td> - </tr> - <tr> - <td class=""><span class="">2</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.7596128864516</span></td> - <td class=""><span class="">5.07864912381548</span></td> - <td class=""><span class="">-53°45,577'</span></td> - <td class=""><span class="">5°4,719'</span></td> - </tr> - <tr> - <td class=""><span class="">3</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.759383911755</span></td> - <td class=""><span class="">5.02460196044417</span></td> - <td class=""><span class="">-53°45,563'</span></td> - <td class=""><span class="">5°1,476'</span></td> - </tr> - <tr> - <td class=""><span class="">4</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.5702069576163</span></td> - <td class=""><span class="">5.02537608911083</span></td> - <td class=""><span class="">-53°34,212'</span></td> - <td class=""><span class="">5°1,523'</span></td> - </tr> - <tr> - <td class=""><span class="">5</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.5698730075868</span></td> - <td class=""><span class="">4.93952315477954</span></td> - <td class=""><span class="">-53°34,192'</span></td> - <td class=""><span class="">4°56,371'</span></td> - </tr> - <tr> - <td class=""><span class="">6</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.7769878916108</span></td> - <td class=""><span class="">4.93868722476635</span></td> - <td class=""><span class="">-53°46,619'</span></td> - <td class=""><span class="">4°56,321'</span></td> - </tr> - <tr> - <td class=""><span class="">7</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.7770631139658</span></td> - <td class=""><span class="">4.95670276466037</span></td> - <td class=""><span class="">-53°46,624'</span></td> - <td class=""><span class="">4°57,402'</span></td> - </tr> - <tr> - <td class=""><span class="">8</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.8672265271601</span></td> - <td class=""><span class="">4.95631734759459</span></td> - <td class=""><span class="">-53°52,034'</span></td> - <td class=""><span class="">4°57,379'</span></td> - </tr> - <tr> - <td class=""><span class="">9</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.8673626701318</span></td> - <td class=""><span class="">4.98775355007457</span></td> - <td class=""><span class="">-53°52,042'</span></td> - <td class=""><span class="">4°59,265'</span></td> - </tr> - <tr> - <td class=""><span class="">10</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.9575232150351</span></td> - <td class=""><span class="">4.98735333700249</span></td> - <td class=""><span class="">-53°57,451'</span></td> - <td class=""><span class="">4°59,241'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0A1;;-53.9579321010744;5.07776938770113;-53%C2%B057,476';5%C2%B04,666'%0A2;;-53.7596128864516;5.07864912381548;-53%C2%B045,577';5%C2%B04,719'%0A3;;-53.759383911755;5.02460196044417;-53%C2%B045,563';5%C2%B01,476'%0A4;;-53.5702069576163;5.02537608911083;-53%C2%B034,212';5%C2%B01,523'%0A5;;-53.5698730075868;4.93952315477954;-53%C2%B034,192';4%C2%B056,371'%0A6;;-53.7769878916108;4.93868722476635;-53%C2%B046,619';4%C2%B056,321'%0A7;;-53.7770631139658;4.95670276466037;-53%C2%B046,624';4%C2%B057,402'%0A8;;-53.8672265271601;4.95631734759459;-53%C2%B052,034';4%C2%B057,379'%0A9;;-53.8673626701318;4.98775355007457;-53%C2%B052,042';4%C2%B059,265'%0A10;;-53.9575232150351;4.98735333700249;-53%C2%B057,451';4%C2%B059,241'" download="points-m-pr-bon-espoir-2001.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">1</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.9579321010744</span></td> + <td class=""><span class="">5.07776938770113</span></td> + <td class=""><span class="">-53°57,476'</span></td> + <td class=""><span class="">5°4,666'</span></td> + </tr> + <tr> + <td class=""><span class="">2</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.7596128864516</span></td> + <td class=""><span class="">5.07864912381548</span></td> + <td class=""><span class="">-53°45,577'</span></td> + <td class=""><span class="">5°4,719'</span></td> + </tr> + <tr> + <td class=""><span class="">3</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.759383911755</span></td> + <td class=""><span class="">5.02460196044417</span></td> + <td class=""><span class="">-53°45,563'</span></td> + <td class=""><span class="">5°1,476'</span></td> + </tr> + <tr> + <td class=""><span class="">4</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.5702069576163</span></td> + <td class=""><span class="">5.02537608911083</span></td> + <td class=""><span class="">-53°34,212'</span></td> + <td class=""><span class="">5°1,523'</span></td> + </tr> + <tr> + <td class=""><span class="">5</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.5698730075868</span></td> + <td class=""><span class="">4.93952315477954</span></td> + <td class=""><span class="">-53°34,192'</span></td> + <td class=""><span class="">4°56,371'</span></td> + </tr> + <tr> + <td class=""><span class="">6</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.7769878916108</span></td> + <td class=""><span class="">4.93868722476635</span></td> + <td class=""><span class="">-53°46,619'</span></td> + <td class=""><span class="">4°56,321'</span></td> + </tr> + <tr> + <td class=""><span class="">7</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.7770631139658</span></td> + <td class=""><span class="">4.95670276466037</span></td> + <td class=""><span class="">-53°46,624'</span></td> + <td class=""><span class="">4°57,402'</span></td> + </tr> + <tr> + <td class=""><span class="">8</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.8672265271601</span></td> + <td class=""><span class="">4.95631734759459</span></td> + <td class=""><span class="">-53°52,034'</span></td> + <td class=""><span class="">4°57,379'</span></td> + </tr> + <tr> + <td class=""><span class="">9</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.8673626701318</span></td> + <td class=""><span class="">4.98775355007457</span></td> + <td class=""><span class="">-53°52,042'</span></td> + <td class=""><span class="">4°59,265'</span></td> + </tr> + <tr> + <td class=""><span class="">10</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.9575232150351</span></td> + <td class=""><span class="">4.98735333700249</span></td> + <td class=""><span class="">-53°57,451'</span></td> + <td class=""><span class="">4°59,241'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0A1;;-53.9579321010744;5.07776938770113;-53%C2%B057,476';5%C2%B04,666'%0A2;;-53.7596128864516;5.07864912381548;-53%C2%B045,577';5%C2%B04,719'%0A3;;-53.759383911755;5.02460196044417;-53%C2%B045,563';5%C2%B01,476'%0A4;;-53.5702069576163;5.02537608911083;-53%C2%B034,212';5%C2%B01,523'%0A5;;-53.5698730075868;4.93952315477954;-53%C2%B034,192';4%C2%B056,371'%0A6;;-53.7769878916108;4.93868722476635;-53%C2%B046,619';4%C2%B056,321'%0A7;;-53.7770631139658;4.95670276466037;-53%C2%B046,624';4%C2%B057,402'%0A8;;-53.8672265271601;4.95631734759459;-53%C2%B052,034';4%C2%B057,379'%0A9;;-53.8673626701318;4.98775355007457;-53%C2%B052,042';4%C2%B059,265'%0A10;;-53.9575232150351;4.98735333700249;-53%C2%B057,451';4%C2%B059,241'" download="points-m-pr-bon-espoir-2001.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> @@ -369,117 +372,120 @@ <div class="flex"><input id="typeahead_878" type="text" name="typeahead_878" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">1</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.9579321010744</span></td> - <td class=""><span class="">5.07776938770113</span></td> - <td class=""><span class="">-53°57,476'</span></td> - <td class=""><span class="">5°4,666'</span></td> - </tr> - <tr> - <td class=""><span class="">2</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.7596128864516</span></td> - <td class=""><span class="">5.07864912381548</span></td> - <td class=""><span class="">-53°45,577'</span></td> - <td class=""><span class="">5°4,719'</span></td> - </tr> - <tr> - <td class=""><span class="">3</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.759383911755</span></td> - <td class=""><span class="">5.02460196044417</span></td> - <td class=""><span class="">-53°45,563'</span></td> - <td class=""><span class="">5°1,476'</span></td> - </tr> - <tr> - <td class=""><span class="">4</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.5702069576163</span></td> - <td class=""><span class="">5.02537608911083</span></td> - <td class=""><span class="">-53°34,212'</span></td> - <td class=""><span class="">5°1,523'</span></td> - </tr> - <tr> - <td class=""><span class="">5</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.5698730075868</span></td> - <td class=""><span class="">4.93952315477954</span></td> - <td class=""><span class="">-53°34,192'</span></td> - <td class=""><span class="">4°56,371'</span></td> - </tr> - <tr> - <td class=""><span class="">6</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.7769878916108</span></td> - <td class=""><span class="">4.93868722476635</span></td> - <td class=""><span class="">-53°46,619'</span></td> - <td class=""><span class="">4°56,321'</span></td> - </tr> - <tr> - <td class=""><span class="">7</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.7770631139658</span></td> - <td class=""><span class="">4.95670276466037</span></td> - <td class=""><span class="">-53°46,624'</span></td> - <td class=""><span class="">4°57,402'</span></td> - </tr> - <tr> - <td class=""><span class="">8</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.8672265271601</span></td> - <td class=""><span class="">4.95631734759459</span></td> - <td class=""><span class="">-53°52,034'</span></td> - <td class=""><span class="">4°57,379'</span></td> - </tr> - <tr> - <td class=""><span class="">9</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.8673626701318</span></td> - <td class=""><span class="">4.98775355007457</span></td> - <td class=""><span class="">-53°52,042'</span></td> - <td class=""><span class="">4°59,265'</span></td> - </tr> - <tr> - <td class=""><span class="">10</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.9575232150351</span></td> - <td class=""><span class="">4.98735333700249</span></td> - <td class=""><span class="">-53°57,451'</span></td> - <td class=""><span class="">4°59,241'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0A1;;-53.9579321010744;5.07776938770113;-53%C2%B057,476';5%C2%B04,666'%0A2;;-53.7596128864516;5.07864912381548;-53%C2%B045,577';5%C2%B04,719'%0A3;;-53.759383911755;5.02460196044417;-53%C2%B045,563';5%C2%B01,476'%0A4;;-53.5702069576163;5.02537608911083;-53%C2%B034,212';5%C2%B01,523'%0A5;;-53.5698730075868;4.93952315477954;-53%C2%B034,192';4%C2%B056,371'%0A6;;-53.7769878916108;4.93868722476635;-53%C2%B046,619';4%C2%B056,321'%0A7;;-53.7770631139658;4.95670276466037;-53%C2%B046,624';4%C2%B057,402'%0A8;;-53.8672265271601;4.95631734759459;-53%C2%B052,034';4%C2%B057,379'%0A9;;-53.8673626701318;4.98775355007457;-53%C2%B052,042';4%C2%B059,265'%0A10;;-53.9575232150351;4.98735333700249;-53%C2%B057,451';4%C2%B059,241'" download="points-m-pr-bon-espoir-2001.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">1</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.9579321010744</span></td> + <td class=""><span class="">5.07776938770113</span></td> + <td class=""><span class="">-53°57,476'</span></td> + <td class=""><span class="">5°4,666'</span></td> + </tr> + <tr> + <td class=""><span class="">2</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.7596128864516</span></td> + <td class=""><span class="">5.07864912381548</span></td> + <td class=""><span class="">-53°45,577'</span></td> + <td class=""><span class="">5°4,719'</span></td> + </tr> + <tr> + <td class=""><span class="">3</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.759383911755</span></td> + <td class=""><span class="">5.02460196044417</span></td> + <td class=""><span class="">-53°45,563'</span></td> + <td class=""><span class="">5°1,476'</span></td> + </tr> + <tr> + <td class=""><span class="">4</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.5702069576163</span></td> + <td class=""><span class="">5.02537608911083</span></td> + <td class=""><span class="">-53°34,212'</span></td> + <td class=""><span class="">5°1,523'</span></td> + </tr> + <tr> + <td class=""><span class="">5</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.5698730075868</span></td> + <td class=""><span class="">4.93952315477954</span></td> + <td class=""><span class="">-53°34,192'</span></td> + <td class=""><span class="">4°56,371'</span></td> + </tr> + <tr> + <td class=""><span class="">6</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.7769878916108</span></td> + <td class=""><span class="">4.93868722476635</span></td> + <td class=""><span class="">-53°46,619'</span></td> + <td class=""><span class="">4°56,321'</span></td> + </tr> + <tr> + <td class=""><span class="">7</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.7770631139658</span></td> + <td class=""><span class="">4.95670276466037</span></td> + <td class=""><span class="">-53°46,624'</span></td> + <td class=""><span class="">4°57,402'</span></td> + </tr> + <tr> + <td class=""><span class="">8</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.8672265271601</span></td> + <td class=""><span class="">4.95631734759459</span></td> + <td class=""><span class="">-53°52,034'</span></td> + <td class=""><span class="">4°57,379'</span></td> + </tr> + <tr> + <td class=""><span class="">9</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.8673626701318</span></td> + <td class=""><span class="">4.98775355007457</span></td> + <td class=""><span class="">-53°52,042'</span></td> + <td class=""><span class="">4°59,265'</span></td> + </tr> + <tr> + <td class=""><span class="">10</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.9575232150351</span></td> + <td class=""><span class="">4.98735333700249</span></td> + <td class=""><span class="">-53°57,451'</span></td> + <td class=""><span class="">4°59,241'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0A1;;-53.9579321010744;5.07776938770113;-53%C2%B057,476';5%C2%B04,666'%0A2;;-53.7596128864516;5.07864912381548;-53%C2%B045,577';5%C2%B04,719'%0A3;;-53.759383911755;5.02460196044417;-53%C2%B045,563';5%C2%B01,476'%0A4;;-53.5702069576163;5.02537608911083;-53%C2%B034,212';5%C2%B01,523'%0A5;;-53.5698730075868;4.93952315477954;-53%C2%B034,192';4%C2%B056,371'%0A6;;-53.7769878916108;4.93868722476635;-53%C2%B046,619';4%C2%B056,321'%0A7;;-53.7770631139658;4.95670276466037;-53%C2%B046,624';4%C2%B057,402'%0A8;;-53.8672265271601;4.95631734759459;-53%C2%B052,034';4%C2%B057,379'%0A9;;-53.8673626701318;4.98775355007457;-53%C2%B052,042';4%C2%B059,265'%0A10;;-53.9575232150351;4.98735333700249;-53%C2%B057,451';4%C2%B059,241'" download="points-m-pr-bon-espoir-2001.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/titre.stories_snapshots_BonEspoirProlongation2.html b/packages/ui/src/components/titre.stories_snapshots_BonEspoirProlongation2.html index a121081bc19786e2ddb53860af3553df8e3c6a7e..fbcb850fe520634ece9a5a33f78ae53d1625e616 100644 --- a/packages/ui/src/components/titre.stories_snapshots_BonEspoirProlongation2.html +++ b/packages/ui/src/components/titre.stories_snapshots_BonEspoirProlongation2.html @@ -169,93 +169,96 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.9577777777778</span></td> - <td class=""><span class="">5.07666666666667</span></td> - <td class=""><span class="">-53°57,467'</span></td> - <td class=""><span class="">5°4,6'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.8763888888889</span></td> - <td class=""><span class="">5.02277777777778</span></td> - <td class=""><span class="">-53°52,583'</span></td> - <td class=""><span class="">5°1,367'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.7322222222222</span></td> - <td class=""><span class="">5.02361111111111</span></td> - <td class=""><span class="">-53°43,933'</span></td> - <td class=""><span class="">5°1,417'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.7138888888889</span></td> - <td class=""><span class="">4.96388888888889</span></td> - <td class=""><span class="">-53°42,833'</span></td> - <td class=""><span class="">4°57,833'</span></td> - </tr> - <tr> - <td class=""><span class="">E</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.8208333333333</span></td> - <td class=""><span class="">4.97972222222222</span></td> - <td class=""><span class="">-53°49,25'</span></td> - <td class=""><span class="">4°58,783'</span></td> - </tr> - <tr> - <td class=""><span class="">F</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.8944444444444</span></td> - <td class=""><span class="">5.00055555555556</span></td> - <td class=""><span class="">-53°53,667'</span></td> - <td class=""><span class="">5°0,033'</span></td> - </tr> - <tr> - <td class=""><span class="">G</span></td> - <td class=""><span class=""></span></td> - <td class=""><span class="">-53.9575</span></td> - <td class=""><span class="">5.0325</span></td> - <td class=""><span class="">-53°57,45'</span></td> - <td class=""><span class="">5°1,95'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;;-53.9577777777778;5.07666666666667;-53%C2%B057,467';5%C2%B04,6'%0AB;;-53.8763888888889;5.02277777777778;-53%C2%B052,583';5%C2%B01,367'%0AC;;-53.7322222222222;5.02361111111111;-53%C2%B043,933';5%C2%B01,417'%0AD;;-53.7138888888889;4.96388888888889;-53%C2%B042,833';4%C2%B057,833'%0AE;;-53.8208333333333;4.97972222222222;-53%C2%B049,25';4%C2%B058,783'%0AF;;-53.8944444444444;5.00055555555556;-53%C2%B053,667';5%C2%B00,033'%0AG;;-53.9575;5.0325;-53%C2%B057,45';5%C2%B01,95'" download="points-m-pr-bon-espoir-2001.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.9577777777778</span></td> + <td class=""><span class="">5.07666666666667</span></td> + <td class=""><span class="">-53°57,467'</span></td> + <td class=""><span class="">5°4,6'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.8763888888889</span></td> + <td class=""><span class="">5.02277777777778</span></td> + <td class=""><span class="">-53°52,583'</span></td> + <td class=""><span class="">5°1,367'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.7322222222222</span></td> + <td class=""><span class="">5.02361111111111</span></td> + <td class=""><span class="">-53°43,933'</span></td> + <td class=""><span class="">5°1,417'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.7138888888889</span></td> + <td class=""><span class="">4.96388888888889</span></td> + <td class=""><span class="">-53°42,833'</span></td> + <td class=""><span class="">4°57,833'</span></td> + </tr> + <tr> + <td class=""><span class="">E</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.8208333333333</span></td> + <td class=""><span class="">4.97972222222222</span></td> + <td class=""><span class="">-53°49,25'</span></td> + <td class=""><span class="">4°58,783'</span></td> + </tr> + <tr> + <td class=""><span class="">F</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.8944444444444</span></td> + <td class=""><span class="">5.00055555555556</span></td> + <td class=""><span class="">-53°53,667'</span></td> + <td class=""><span class="">5°0,033'</span></td> + </tr> + <tr> + <td class=""><span class="">G</span></td> + <td class=""><span class=""></span></td> + <td class=""><span class="">-53.9575</span></td> + <td class=""><span class="">5.0325</span></td> + <td class=""><span class="">-53°57,45'</span></td> + <td class=""><span class="">5°1,95'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;;-53.9577777777778;5.07666666666667;-53%C2%B057,467';5%C2%B04,6'%0AB;;-53.8763888888889;5.02277777777778;-53%C2%B052,583';5%C2%B01,367'%0AC;;-53.7322222222222;5.02361111111111;-53%C2%B043,933';5%C2%B01,417'%0AD;;-53.7138888888889;4.96388888888889;-53%C2%B042,833';4%C2%B057,833'%0AE;;-53.8208333333333;4.97972222222222;-53%C2%B049,25';4%C2%B058,783'%0AF;;-53.8944444444444;5.00055555555556;-53%C2%B053,667';5%C2%B00,033'%0AG;;-53.9575;5.0325;-53%C2%B057,45';5%C2%B01,95'" download="points-m-pr-bon-espoir-2001.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/titre.stories_snapshots_ChantepieMutation.html b/packages/ui/src/components/titre.stories_snapshots_ChantepieMutation.html index da60d581afc74d402602fe662ab6903d8aa27635..e62215bcc6d15641fbd2843d230cdb9d255db80b 100644 --- a/packages/ui/src/components/titre.stories_snapshots_ChantepieMutation.html +++ b/packages/ui/src/components/titre.stories_snapshots_ChantepieMutation.html @@ -131,77 +131,80 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après</span></td> - <td class=""><span class="">-0.105658320330431</span></td> - <td class=""><span class="">48.1489209342693</span></td> - <td class=""><span class="">0°6,34'</span></td> - <td class=""><span class="">48°8,935'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez</span></td> - <td class=""><span class="">-0.0616864580218711</span></td> - <td class=""><span class="">48.1486971325525</span></td> - <td class=""><span class="">0°3,701'</span></td> - <td class=""><span class="">48°8,922'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie</span></td> - <td class=""><span class="">-0.0852402595925762</span></td> - <td class=""><span class="">48.1212930049111</span></td> - <td class=""><span class="">0°5,114'</span></td> - <td class=""><span class="">48°7,278'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay</span></td> - <td class=""><span class="">-0.0996023094257926</span></td> - <td class=""><span class="">48.1209828190687</span></td> - <td class=""><span class="">0°5,976'</span></td> - <td class=""><span class="">48°7,259'</span></td> - </tr> - <tr> - <td class=""><span class="">E</span></td> - <td class=""><span class="">Axe du clocher de Rouez</span></td> - <td class=""><span class="">-0.115003633563279</span></td> - <td class=""><span class="">48.1398379979624</span></td> - <td class=""><span class="">0°6,9'</span></td> - <td class=""><span class="">48°8,39'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20103,%20joignant%20Rouez%20et%20Criss%C3%A9%20et%20de%20la%20droite%20joignant%20l'intersection%20de%20l'axe%20de%20la%20rivi%C3%A8re%20La%20V%C3%A8gre%20avec%20la%20limite%20des%20communes%20de%20Sill%C3%A9-le-Guillaume%20et%20de%20Rouez,%20d'une%20part,%20au%20sommet%20B%20d%C3%A9fini%20ci-apr%C3%A8s;-0.105658320330431;48.1489209342693;0%C2%B06,34';48%C2%B08,935'%0AB;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20304%20allant%20de%20Sill%C3%A9-le-Guillaume%20%C3%A0%20Conlie%20et%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20167%20allant%20%C3%A0%20Rouez;-0.0616864580218711;48.1486971325525;0%C2%B03,701';48%C2%B08,922'%0AC;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Sill%C3%A9-le-Guillaume%20et%20l'axe%20du%20clocher%20de%20Tennie,%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie;-0.0852402595925762;48.1212930049111;0%C2%B05,114';48%C2%B07,278'%0AD;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Rouez%20et%20l'axe%20du%20clocher%20de%20Bernay;-0.0996023094257926;48.1209828190687;0%C2%B05,976';48%C2%B07,259'%0AE;Axe%20du%20clocher%20de%20Rouez;-0.115003633563279;48.1398379979624;0%C2%B06,9';48%C2%B08,39'" download="points-m-cx-chantepie-1988.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après</span></td> + <td class=""><span class="">-0.105658320330431</span></td> + <td class=""><span class="">48.1489209342693</span></td> + <td class=""><span class="">0°6,34'</span></td> + <td class=""><span class="">48°8,935'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez</span></td> + <td class=""><span class="">-0.0616864580218711</span></td> + <td class=""><span class="">48.1486971325525</span></td> + <td class=""><span class="">0°3,701'</span></td> + <td class=""><span class="">48°8,922'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie</span></td> + <td class=""><span class="">-0.0852402595925762</span></td> + <td class=""><span class="">48.1212930049111</span></td> + <td class=""><span class="">0°5,114'</span></td> + <td class=""><span class="">48°7,278'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay</span></td> + <td class=""><span class="">-0.0996023094257926</span></td> + <td class=""><span class="">48.1209828190687</span></td> + <td class=""><span class="">0°5,976'</span></td> + <td class=""><span class="">48°7,259'</span></td> + </tr> + <tr> + <td class=""><span class="">E</span></td> + <td class=""><span class="">Axe du clocher de Rouez</span></td> + <td class=""><span class="">-0.115003633563279</span></td> + <td class=""><span class="">48.1398379979624</span></td> + <td class=""><span class="">0°6,9'</span></td> + <td class=""><span class="">48°8,39'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20103,%20joignant%20Rouez%20et%20Criss%C3%A9%20et%20de%20la%20droite%20joignant%20l'intersection%20de%20l'axe%20de%20la%20rivi%C3%A8re%20La%20V%C3%A8gre%20avec%20la%20limite%20des%20communes%20de%20Sill%C3%A9-le-Guillaume%20et%20de%20Rouez,%20d'une%20part,%20au%20sommet%20B%20d%C3%A9fini%20ci-apr%C3%A8s;-0.105658320330431;48.1489209342693;0%C2%B06,34';48%C2%B08,935'%0AB;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20304%20allant%20de%20Sill%C3%A9-le-Guillaume%20%C3%A0%20Conlie%20et%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20167%20allant%20%C3%A0%20Rouez;-0.0616864580218711;48.1486971325525;0%C2%B03,701';48%C2%B08,922'%0AC;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Sill%C3%A9-le-Guillaume%20et%20l'axe%20du%20clocher%20de%20Tennie,%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie;-0.0852402595925762;48.1212930049111;0%C2%B05,114';48%C2%B07,278'%0AD;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Rouez%20et%20l'axe%20du%20clocher%20de%20Bernay;-0.0996023094257926;48.1209828190687;0%C2%B05,976';48%C2%B07,259'%0AE;Axe%20du%20clocher%20de%20Rouez;-0.115003633563279;48.1398379979624;0%C2%B06,9';48%C2%B08,39'" download="points-m-cx-chantepie-1988.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/titre.stories_snapshots_ChantepieOctroi.html b/packages/ui/src/components/titre.stories_snapshots_ChantepieOctroi.html index 7217450c7fe13b045f760fa2b80150b2fe8898e4..7121db6734a9addc6bad1968b130705ada637f27 100644 --- a/packages/ui/src/components/titre.stories_snapshots_ChantepieOctroi.html +++ b/packages/ui/src/components/titre.stories_snapshots_ChantepieOctroi.html @@ -131,77 +131,80 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après</span></td> - <td class=""><span class="">-0.105658320330431</span></td> - <td class=""><span class="">48.1489209342693</span></td> - <td class=""><span class="">0°6,34'</span></td> - <td class=""><span class="">48°8,935'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez</span></td> - <td class=""><span class="">-0.0616864580218711</span></td> - <td class=""><span class="">48.1486971325525</span></td> - <td class=""><span class="">0°3,701'</span></td> - <td class=""><span class="">48°8,922'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie</span></td> - <td class=""><span class="">-0.0852402595925762</span></td> - <td class=""><span class="">48.1212930049111</span></td> - <td class=""><span class="">0°5,114'</span></td> - <td class=""><span class="">48°7,278'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay</span></td> - <td class=""><span class="">-0.0996023094257926</span></td> - <td class=""><span class="">48.1209828190687</span></td> - <td class=""><span class="">0°5,976'</span></td> - <td class=""><span class="">48°7,259'</span></td> - </tr> - <tr> - <td class=""><span class="">E</span></td> - <td class=""><span class="">Axe du clocher de Rouez</span></td> - <td class=""><span class="">-0.115003633563279</span></td> - <td class=""><span class="">48.1398379979624</span></td> - <td class=""><span class="">0°6,9'</span></td> - <td class=""><span class="">48°8,39'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20103,%20joignant%20Rouez%20et%20Criss%C3%A9%20et%20de%20la%20droite%20joignant%20l'intersection%20de%20l'axe%20de%20la%20rivi%C3%A8re%20La%20V%C3%A8gre%20avec%20la%20limite%20des%20communes%20de%20Sill%C3%A9-le-Guillaume%20et%20de%20Rouez,%20d'une%20part,%20au%20sommet%20B%20d%C3%A9fini%20ci-apr%C3%A8s;-0.105658320330431;48.1489209342693;0%C2%B06,34';48%C2%B08,935'%0AB;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20304%20allant%20de%20Sill%C3%A9-le-Guillaume%20%C3%A0%20Conlie%20et%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20167%20allant%20%C3%A0%20Rouez;-0.0616864580218711;48.1486971325525;0%C2%B03,701';48%C2%B08,922'%0AC;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Sill%C3%A9-le-Guillaume%20et%20l'axe%20du%20clocher%20de%20Tennie,%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie;-0.0852402595925762;48.1212930049111;0%C2%B05,114';48%C2%B07,278'%0AD;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Rouez%20et%20l'axe%20du%20clocher%20de%20Bernay;-0.0996023094257926;48.1209828190687;0%C2%B05,976';48%C2%B07,259'%0AE;Axe%20du%20clocher%20de%20Rouez;-0.115003633563279;48.1398379979624;0%C2%B06,9';48%C2%B08,39'" download="points-m-cx-chantepie-1988.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après</span></td> + <td class=""><span class="">-0.105658320330431</span></td> + <td class=""><span class="">48.1489209342693</span></td> + <td class=""><span class="">0°6,34'</span></td> + <td class=""><span class="">48°8,935'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez</span></td> + <td class=""><span class="">-0.0616864580218711</span></td> + <td class=""><span class="">48.1486971325525</span></td> + <td class=""><span class="">0°3,701'</span></td> + <td class=""><span class="">48°8,922'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie</span></td> + <td class=""><span class="">-0.0852402595925762</span></td> + <td class=""><span class="">48.1212930049111</span></td> + <td class=""><span class="">0°5,114'</span></td> + <td class=""><span class="">48°7,278'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay</span></td> + <td class=""><span class="">-0.0996023094257926</span></td> + <td class=""><span class="">48.1209828190687</span></td> + <td class=""><span class="">0°5,976'</span></td> + <td class=""><span class="">48°7,259'</span></td> + </tr> + <tr> + <td class=""><span class="">E</span></td> + <td class=""><span class="">Axe du clocher de Rouez</span></td> + <td class=""><span class="">-0.115003633563279</span></td> + <td class=""><span class="">48.1398379979624</span></td> + <td class=""><span class="">0°6,9'</span></td> + <td class=""><span class="">48°8,39'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20103,%20joignant%20Rouez%20et%20Criss%C3%A9%20et%20de%20la%20droite%20joignant%20l'intersection%20de%20l'axe%20de%20la%20rivi%C3%A8re%20La%20V%C3%A8gre%20avec%20la%20limite%20des%20communes%20de%20Sill%C3%A9-le-Guillaume%20et%20de%20Rouez,%20d'une%20part,%20au%20sommet%20B%20d%C3%A9fini%20ci-apr%C3%A8s;-0.105658320330431;48.1489209342693;0%C2%B06,34';48%C2%B08,935'%0AB;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20304%20allant%20de%20Sill%C3%A9-le-Guillaume%20%C3%A0%20Conlie%20et%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20167%20allant%20%C3%A0%20Rouez;-0.0616864580218711;48.1486971325525;0%C2%B03,701';48%C2%B08,922'%0AC;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Sill%C3%A9-le-Guillaume%20et%20l'axe%20du%20clocher%20de%20Tennie,%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie;-0.0852402595925762;48.1212930049111;0%C2%B05,114';48%C2%B07,278'%0AD;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Rouez%20et%20l'axe%20du%20clocher%20de%20Bernay;-0.0996023094257926;48.1209828190687;0%C2%B05,976';48%C2%B07,259'%0AE;Axe%20du%20clocher%20de%20Rouez;-0.115003633563279;48.1398379979624;0%C2%B06,9';48%C2%B08,39'" download="points-m-cx-chantepie-1988.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> @@ -287,77 +290,80 @@ <div class="flex"><input id="typeahead_878" type="text" name="typeahead_878" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après</span></td> - <td class=""><span class="">-0.105658320330431</span></td> - <td class=""><span class="">48.1489209342693</span></td> - <td class=""><span class="">0°6,34'</span></td> - <td class=""><span class="">48°8,935'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez</span></td> - <td class=""><span class="">-0.0616864580218711</span></td> - <td class=""><span class="">48.1486971325525</span></td> - <td class=""><span class="">0°3,701'</span></td> - <td class=""><span class="">48°8,922'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie</span></td> - <td class=""><span class="">-0.0852402595925762</span></td> - <td class=""><span class="">48.1212930049111</span></td> - <td class=""><span class="">0°5,114'</span></td> - <td class=""><span class="">48°7,278'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay</span></td> - <td class=""><span class="">-0.0996023094257926</span></td> - <td class=""><span class="">48.1209828190687</span></td> - <td class=""><span class="">0°5,976'</span></td> - <td class=""><span class="">48°7,259'</span></td> - </tr> - <tr> - <td class=""><span class="">E</span></td> - <td class=""><span class="">Axe du clocher de Rouez</span></td> - <td class=""><span class="">-0.115003633563279</span></td> - <td class=""><span class="">48.1398379979624</span></td> - <td class=""><span class="">0°6,9'</span></td> - <td class=""><span class="">48°8,39'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20103,%20joignant%20Rouez%20et%20Criss%C3%A9%20et%20de%20la%20droite%20joignant%20l'intersection%20de%20l'axe%20de%20la%20rivi%C3%A8re%20La%20V%C3%A8gre%20avec%20la%20limite%20des%20communes%20de%20Sill%C3%A9-le-Guillaume%20et%20de%20Rouez,%20d'une%20part,%20au%20sommet%20B%20d%C3%A9fini%20ci-apr%C3%A8s;-0.105658320330431;48.1489209342693;0%C2%B06,34';48%C2%B08,935'%0AB;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20304%20allant%20de%20Sill%C3%A9-le-Guillaume%20%C3%A0%20Conlie%20et%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20167%20allant%20%C3%A0%20Rouez;-0.0616864580218711;48.1486971325525;0%C2%B03,701';48%C2%B08,922'%0AC;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Sill%C3%A9-le-Guillaume%20et%20l'axe%20du%20clocher%20de%20Tennie,%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie;-0.0852402595925762;48.1212930049111;0%C2%B05,114';48%C2%B07,278'%0AD;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Rouez%20et%20l'axe%20du%20clocher%20de%20Bernay;-0.0996023094257926;48.1209828190687;0%C2%B05,976';48%C2%B07,259'%0AE;Axe%20du%20clocher%20de%20Rouez;-0.115003633563279;48.1398379979624;0%C2%B06,9';48%C2%B08,39'" download="points-m-cx-chantepie-1988.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après</span></td> + <td class=""><span class="">-0.105658320330431</span></td> + <td class=""><span class="">48.1489209342693</span></td> + <td class=""><span class="">0°6,34'</span></td> + <td class=""><span class="">48°8,935'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez</span></td> + <td class=""><span class="">-0.0616864580218711</span></td> + <td class=""><span class="">48.1486971325525</span></td> + <td class=""><span class="">0°3,701'</span></td> + <td class=""><span class="">48°8,922'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie</span></td> + <td class=""><span class="">-0.0852402595925762</span></td> + <td class=""><span class="">48.1212930049111</span></td> + <td class=""><span class="">0°5,114'</span></td> + <td class=""><span class="">48°7,278'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay</span></td> + <td class=""><span class="">-0.0996023094257926</span></td> + <td class=""><span class="">48.1209828190687</span></td> + <td class=""><span class="">0°5,976'</span></td> + <td class=""><span class="">48°7,259'</span></td> + </tr> + <tr> + <td class=""><span class="">E</span></td> + <td class=""><span class="">Axe du clocher de Rouez</span></td> + <td class=""><span class="">-0.115003633563279</span></td> + <td class=""><span class="">48.1398379979624</span></td> + <td class=""><span class="">0°6,9'</span></td> + <td class=""><span class="">48°8,39'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20103,%20joignant%20Rouez%20et%20Criss%C3%A9%20et%20de%20la%20droite%20joignant%20l'intersection%20de%20l'axe%20de%20la%20rivi%C3%A8re%20La%20V%C3%A8gre%20avec%20la%20limite%20des%20communes%20de%20Sill%C3%A9-le-Guillaume%20et%20de%20Rouez,%20d'une%20part,%20au%20sommet%20B%20d%C3%A9fini%20ci-apr%C3%A8s;-0.105658320330431;48.1489209342693;0%C2%B06,34';48%C2%B08,935'%0AB;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20304%20allant%20de%20Sill%C3%A9-le-Guillaume%20%C3%A0%20Conlie%20et%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20167%20allant%20%C3%A0%20Rouez;-0.0616864580218711;48.1486971325525;0%C2%B03,701';48%C2%B08,922'%0AC;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Sill%C3%A9-le-Guillaume%20et%20l'axe%20du%20clocher%20de%20Tennie,%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie;-0.0852402595925762;48.1212930049111;0%C2%B05,114';48%C2%B07,278'%0AD;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Rouez%20et%20l'axe%20du%20clocher%20de%20Bernay;-0.0996023094257926;48.1209828190687;0%C2%B05,976';48%C2%B07,259'%0AE;Axe%20du%20clocher%20de%20Rouez;-0.115003633563279;48.1398379979624;0%C2%B06,9';48%C2%B08,39'" download="points-m-cx-chantepie-1988.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> @@ -427,77 +433,80 @@ <div class="flex"><input id="typeahead_25" type="text" name="typeahead_25" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après</span></td> - <td class=""><span class="">-0.105658320330431</span></td> - <td class=""><span class="">48.1489209342693</span></td> - <td class=""><span class="">0°6,34'</span></td> - <td class=""><span class="">48°8,935'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez</span></td> - <td class=""><span class="">-0.0616864580218711</span></td> - <td class=""><span class="">48.1486971325525</span></td> - <td class=""><span class="">0°3,701'</span></td> - <td class=""><span class="">48°8,922'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie</span></td> - <td class=""><span class="">-0.0852402595925762</span></td> - <td class=""><span class="">48.1212930049111</span></td> - <td class=""><span class="">0°5,114'</span></td> - <td class=""><span class="">48°7,278'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay</span></td> - <td class=""><span class="">-0.0996023094257926</span></td> - <td class=""><span class="">48.1209828190687</span></td> - <td class=""><span class="">0°5,976'</span></td> - <td class=""><span class="">48°7,259'</span></td> - </tr> - <tr> - <td class=""><span class="">E</span></td> - <td class=""><span class="">Axe du clocher de Rouez</span></td> - <td class=""><span class="">-0.115003633563279</span></td> - <td class=""><span class="">48.1398379979624</span></td> - <td class=""><span class="">0°6,9'</span></td> - <td class=""><span class="">48°8,39'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20103,%20joignant%20Rouez%20et%20Criss%C3%A9%20et%20de%20la%20droite%20joignant%20l'intersection%20de%20l'axe%20de%20la%20rivi%C3%A8re%20La%20V%C3%A8gre%20avec%20la%20limite%20des%20communes%20de%20Sill%C3%A9-le-Guillaume%20et%20de%20Rouez,%20d'une%20part,%20au%20sommet%20B%20d%C3%A9fini%20ci-apr%C3%A8s;-0.105658320330431;48.1489209342693;0%C2%B06,34';48%C2%B08,935'%0AB;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20304%20allant%20de%20Sill%C3%A9-le-Guillaume%20%C3%A0%20Conlie%20et%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20167%20allant%20%C3%A0%20Rouez;-0.0616864580218711;48.1486971325525;0%C2%B03,701';48%C2%B08,922'%0AC;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Sill%C3%A9-le-Guillaume%20et%20l'axe%20du%20clocher%20de%20Tennie,%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie;-0.0852402595925762;48.1212930049111;0%C2%B05,114';48%C2%B07,278'%0AD;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Rouez%20et%20l'axe%20du%20clocher%20de%20Bernay;-0.0996023094257926;48.1209828190687;0%C2%B05,976';48%C2%B07,259'%0AE;Axe%20du%20clocher%20de%20Rouez;-0.115003633563279;48.1398379979624;0%C2%B06,9';48%C2%B08,39'" download="points-m-cx-chantepie-1988.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après</span></td> + <td class=""><span class="">-0.105658320330431</span></td> + <td class=""><span class="">48.1489209342693</span></td> + <td class=""><span class="">0°6,34'</span></td> + <td class=""><span class="">48°8,935'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez</span></td> + <td class=""><span class="">-0.0616864580218711</span></td> + <td class=""><span class="">48.1486971325525</span></td> + <td class=""><span class="">0°3,701'</span></td> + <td class=""><span class="">48°8,922'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie</span></td> + <td class=""><span class="">-0.0852402595925762</span></td> + <td class=""><span class="">48.1212930049111</span></td> + <td class=""><span class="">0°5,114'</span></td> + <td class=""><span class="">48°7,278'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay</span></td> + <td class=""><span class="">-0.0996023094257926</span></td> + <td class=""><span class="">48.1209828190687</span></td> + <td class=""><span class="">0°5,976'</span></td> + <td class=""><span class="">48°7,259'</span></td> + </tr> + <tr> + <td class=""><span class="">E</span></td> + <td class=""><span class="">Axe du clocher de Rouez</span></td> + <td class=""><span class="">-0.115003633563279</span></td> + <td class=""><span class="">48.1398379979624</span></td> + <td class=""><span class="">0°6,9'</span></td> + <td class=""><span class="">48°8,39'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20103,%20joignant%20Rouez%20et%20Criss%C3%A9%20et%20de%20la%20droite%20joignant%20l'intersection%20de%20l'axe%20de%20la%20rivi%C3%A8re%20La%20V%C3%A8gre%20avec%20la%20limite%20des%20communes%20de%20Sill%C3%A9-le-Guillaume%20et%20de%20Rouez,%20d'une%20part,%20au%20sommet%20B%20d%C3%A9fini%20ci-apr%C3%A8s;-0.105658320330431;48.1489209342693;0%C2%B06,34';48%C2%B08,935'%0AB;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20304%20allant%20de%20Sill%C3%A9-le-Guillaume%20%C3%A0%20Conlie%20et%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20167%20allant%20%C3%A0%20Rouez;-0.0616864580218711;48.1486971325525;0%C2%B03,701';48%C2%B08,922'%0AC;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Sill%C3%A9-le-Guillaume%20et%20l'axe%20du%20clocher%20de%20Tennie,%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie;-0.0852402595925762;48.1212930049111;0%C2%B05,114';48%C2%B07,278'%0AD;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Rouez%20et%20l'axe%20du%20clocher%20de%20Bernay;-0.0996023094257926;48.1209828190687;0%C2%B05,976';48%C2%B07,259'%0AE;Axe%20du%20clocher%20de%20Rouez;-0.115003633563279;48.1398379979624;0%C2%B06,9';48%C2%B08,39'" download="points-m-cx-chantepie-1988.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/titre.stories_snapshots_ChantepieOctroiAsEntreprise.html b/packages/ui/src/components/titre.stories_snapshots_ChantepieOctroiAsEntreprise.html index 3ff95998ccf5b10e4ea4721e349fe5ea6f24cbd0..53da57bdb2e2c28f0288480e1b3248feaa3a3ecc 100644 --- a/packages/ui/src/components/titre.stories_snapshots_ChantepieOctroiAsEntreprise.html +++ b/packages/ui/src/components/titre.stories_snapshots_ChantepieOctroiAsEntreprise.html @@ -130,77 +130,80 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après</span></td> - <td class=""><span class="">-0.105658320330431</span></td> - <td class=""><span class="">48.1489209342693</span></td> - <td class=""><span class="">0°6,34'</span></td> - <td class=""><span class="">48°8,935'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez</span></td> - <td class=""><span class="">-0.0616864580218711</span></td> - <td class=""><span class="">48.1486971325525</span></td> - <td class=""><span class="">0°3,701'</span></td> - <td class=""><span class="">48°8,922'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie</span></td> - <td class=""><span class="">-0.0852402595925762</span></td> - <td class=""><span class="">48.1212930049111</span></td> - <td class=""><span class="">0°5,114'</span></td> - <td class=""><span class="">48°7,278'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay</span></td> - <td class=""><span class="">-0.0996023094257926</span></td> - <td class=""><span class="">48.1209828190687</span></td> - <td class=""><span class="">0°5,976'</span></td> - <td class=""><span class="">48°7,259'</span></td> - </tr> - <tr> - <td class=""><span class="">E</span></td> - <td class=""><span class="">Axe du clocher de Rouez</span></td> - <td class=""><span class="">-0.115003633563279</span></td> - <td class=""><span class="">48.1398379979624</span></td> - <td class=""><span class="">0°6,9'</span></td> - <td class=""><span class="">48°8,39'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20103,%20joignant%20Rouez%20et%20Criss%C3%A9%20et%20de%20la%20droite%20joignant%20l'intersection%20de%20l'axe%20de%20la%20rivi%C3%A8re%20La%20V%C3%A8gre%20avec%20la%20limite%20des%20communes%20de%20Sill%C3%A9-le-Guillaume%20et%20de%20Rouez,%20d'une%20part,%20au%20sommet%20B%20d%C3%A9fini%20ci-apr%C3%A8s;-0.105658320330431;48.1489209342693;0%C2%B06,34';48%C2%B08,935'%0AB;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20304%20allant%20de%20Sill%C3%A9-le-Guillaume%20%C3%A0%20Conlie%20et%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20167%20allant%20%C3%A0%20Rouez;-0.0616864580218711;48.1486971325525;0%C2%B03,701';48%C2%B08,922'%0AC;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Sill%C3%A9-le-Guillaume%20et%20l'axe%20du%20clocher%20de%20Tennie,%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie;-0.0852402595925762;48.1212930049111;0%C2%B05,114';48%C2%B07,278'%0AD;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Rouez%20et%20l'axe%20du%20clocher%20de%20Bernay;-0.0996023094257926;48.1209828190687;0%C2%B05,976';48%C2%B07,259'%0AE;Axe%20du%20clocher%20de%20Rouez;-0.115003633563279;48.1398379979624;0%C2%B06,9';48%C2%B08,39'" download="points-m-cx-chantepie-1988.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après</span></td> + <td class=""><span class="">-0.105658320330431</span></td> + <td class=""><span class="">48.1489209342693</span></td> + <td class=""><span class="">0°6,34'</span></td> + <td class=""><span class="">48°8,935'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez</span></td> + <td class=""><span class="">-0.0616864580218711</span></td> + <td class=""><span class="">48.1486971325525</span></td> + <td class=""><span class="">0°3,701'</span></td> + <td class=""><span class="">48°8,922'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie</span></td> + <td class=""><span class="">-0.0852402595925762</span></td> + <td class=""><span class="">48.1212930049111</span></td> + <td class=""><span class="">0°5,114'</span></td> + <td class=""><span class="">48°7,278'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay</span></td> + <td class=""><span class="">-0.0996023094257926</span></td> + <td class=""><span class="">48.1209828190687</span></td> + <td class=""><span class="">0°5,976'</span></td> + <td class=""><span class="">48°7,259'</span></td> + </tr> + <tr> + <td class=""><span class="">E</span></td> + <td class=""><span class="">Axe du clocher de Rouez</span></td> + <td class=""><span class="">-0.115003633563279</span></td> + <td class=""><span class="">48.1398379979624</span></td> + <td class=""><span class="">0°6,9'</span></td> + <td class=""><span class="">48°8,39'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20103,%20joignant%20Rouez%20et%20Criss%C3%A9%20et%20de%20la%20droite%20joignant%20l'intersection%20de%20l'axe%20de%20la%20rivi%C3%A8re%20La%20V%C3%A8gre%20avec%20la%20limite%20des%20communes%20de%20Sill%C3%A9-le-Guillaume%20et%20de%20Rouez,%20d'une%20part,%20au%20sommet%20B%20d%C3%A9fini%20ci-apr%C3%A8s;-0.105658320330431;48.1489209342693;0%C2%B06,34';48%C2%B08,935'%0AB;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20304%20allant%20de%20Sill%C3%A9-le-Guillaume%20%C3%A0%20Conlie%20et%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20167%20allant%20%C3%A0%20Rouez;-0.0616864580218711;48.1486971325525;0%C2%B03,701';48%C2%B08,922'%0AC;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Sill%C3%A9-le-Guillaume%20et%20l'axe%20du%20clocher%20de%20Tennie,%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie;-0.0852402595925762;48.1212930049111;0%C2%B05,114';48%C2%B07,278'%0AD;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Rouez%20et%20l'axe%20du%20clocher%20de%20Bernay;-0.0996023094257926;48.1209828190687;0%C2%B05,976';48%C2%B07,259'%0AE;Axe%20du%20clocher%20de%20Rouez;-0.115003633563279;48.1398379979624;0%C2%B06,9';48%C2%B08,39'" download="points-m-cx-chantepie-1988.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> @@ -285,77 +288,80 @@ <div class="flex"><input id="typeahead_878" type="text" name="typeahead_878" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après</span></td> - <td class=""><span class="">-0.105658320330431</span></td> - <td class=""><span class="">48.1489209342693</span></td> - <td class=""><span class="">0°6,34'</span></td> - <td class=""><span class="">48°8,935'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez</span></td> - <td class=""><span class="">-0.0616864580218711</span></td> - <td class=""><span class="">48.1486971325525</span></td> - <td class=""><span class="">0°3,701'</span></td> - <td class=""><span class="">48°8,922'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie</span></td> - <td class=""><span class="">-0.0852402595925762</span></td> - <td class=""><span class="">48.1212930049111</span></td> - <td class=""><span class="">0°5,114'</span></td> - <td class=""><span class="">48°7,278'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay</span></td> - <td class=""><span class="">-0.0996023094257926</span></td> - <td class=""><span class="">48.1209828190687</span></td> - <td class=""><span class="">0°5,976'</span></td> - <td class=""><span class="">48°7,259'</span></td> - </tr> - <tr> - <td class=""><span class="">E</span></td> - <td class=""><span class="">Axe du clocher de Rouez</span></td> - <td class=""><span class="">-0.115003633563279</span></td> - <td class=""><span class="">48.1398379979624</span></td> - <td class=""><span class="">0°6,9'</span></td> - <td class=""><span class="">48°8,39'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20103,%20joignant%20Rouez%20et%20Criss%C3%A9%20et%20de%20la%20droite%20joignant%20l'intersection%20de%20l'axe%20de%20la%20rivi%C3%A8re%20La%20V%C3%A8gre%20avec%20la%20limite%20des%20communes%20de%20Sill%C3%A9-le-Guillaume%20et%20de%20Rouez,%20d'une%20part,%20au%20sommet%20B%20d%C3%A9fini%20ci-apr%C3%A8s;-0.105658320330431;48.1489209342693;0%C2%B06,34';48%C2%B08,935'%0AB;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20304%20allant%20de%20Sill%C3%A9-le-Guillaume%20%C3%A0%20Conlie%20et%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20167%20allant%20%C3%A0%20Rouez;-0.0616864580218711;48.1486971325525;0%C2%B03,701';48%C2%B08,922'%0AC;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Sill%C3%A9-le-Guillaume%20et%20l'axe%20du%20clocher%20de%20Tennie,%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie;-0.0852402595925762;48.1212930049111;0%C2%B05,114';48%C2%B07,278'%0AD;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Rouez%20et%20l'axe%20du%20clocher%20de%20Bernay;-0.0996023094257926;48.1209828190687;0%C2%B05,976';48%C2%B07,259'%0AE;Axe%20du%20clocher%20de%20Rouez;-0.115003633563279;48.1398379979624;0%C2%B06,9';48%C2%B08,39'" download="points-m-cx-chantepie-1988.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après</span></td> + <td class=""><span class="">-0.105658320330431</span></td> + <td class=""><span class="">48.1489209342693</span></td> + <td class=""><span class="">0°6,34'</span></td> + <td class=""><span class="">48°8,935'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez</span></td> + <td class=""><span class="">-0.0616864580218711</span></td> + <td class=""><span class="">48.1486971325525</span></td> + <td class=""><span class="">0°3,701'</span></td> + <td class=""><span class="">48°8,922'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie</span></td> + <td class=""><span class="">-0.0852402595925762</span></td> + <td class=""><span class="">48.1212930049111</span></td> + <td class=""><span class="">0°5,114'</span></td> + <td class=""><span class="">48°7,278'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay</span></td> + <td class=""><span class="">-0.0996023094257926</span></td> + <td class=""><span class="">48.1209828190687</span></td> + <td class=""><span class="">0°5,976'</span></td> + <td class=""><span class="">48°7,259'</span></td> + </tr> + <tr> + <td class=""><span class="">E</span></td> + <td class=""><span class="">Axe du clocher de Rouez</span></td> + <td class=""><span class="">-0.115003633563279</span></td> + <td class=""><span class="">48.1398379979624</span></td> + <td class=""><span class="">0°6,9'</span></td> + <td class=""><span class="">48°8,39'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20103,%20joignant%20Rouez%20et%20Criss%C3%A9%20et%20de%20la%20droite%20joignant%20l'intersection%20de%20l'axe%20de%20la%20rivi%C3%A8re%20La%20V%C3%A8gre%20avec%20la%20limite%20des%20communes%20de%20Sill%C3%A9-le-Guillaume%20et%20de%20Rouez,%20d'une%20part,%20au%20sommet%20B%20d%C3%A9fini%20ci-apr%C3%A8s;-0.105658320330431;48.1489209342693;0%C2%B06,34';48%C2%B08,935'%0AB;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20304%20allant%20de%20Sill%C3%A9-le-Guillaume%20%C3%A0%20Conlie%20et%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20167%20allant%20%C3%A0%20Rouez;-0.0616864580218711;48.1486971325525;0%C2%B03,701';48%C2%B08,922'%0AC;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Sill%C3%A9-le-Guillaume%20et%20l'axe%20du%20clocher%20de%20Tennie,%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie;-0.0852402595925762;48.1212930049111;0%C2%B05,114';48%C2%B07,278'%0AD;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Rouez%20et%20l'axe%20du%20clocher%20de%20Bernay;-0.0996023094257926;48.1209828190687;0%C2%B05,976';48%C2%B07,259'%0AE;Axe%20du%20clocher%20de%20Rouez;-0.115003633563279;48.1398379979624;0%C2%B06,9';48%C2%B08,39'" download="points-m-cx-chantepie-1988.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> @@ -423,77 +429,80 @@ <div class="flex"><input id="typeahead_25" type="text" name="typeahead_25" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après</span></td> - <td class=""><span class="">-0.105658320330431</span></td> - <td class=""><span class="">48.1489209342693</span></td> - <td class=""><span class="">0°6,34'</span></td> - <td class=""><span class="">48°8,935'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez</span></td> - <td class=""><span class="">-0.0616864580218711</span></td> - <td class=""><span class="">48.1486971325525</span></td> - <td class=""><span class="">0°3,701'</span></td> - <td class=""><span class="">48°8,922'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie</span></td> - <td class=""><span class="">-0.0852402595925762</span></td> - <td class=""><span class="">48.1212930049111</span></td> - <td class=""><span class="">0°5,114'</span></td> - <td class=""><span class="">48°7,278'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay</span></td> - <td class=""><span class="">-0.0996023094257926</span></td> - <td class=""><span class="">48.1209828190687</span></td> - <td class=""><span class="">0°5,976'</span></td> - <td class=""><span class="">48°7,259'</span></td> - </tr> - <tr> - <td class=""><span class="">E</span></td> - <td class=""><span class="">Axe du clocher de Rouez</span></td> - <td class=""><span class="">-0.115003633563279</span></td> - <td class=""><span class="">48.1398379979624</span></td> - <td class=""><span class="">0°6,9'</span></td> - <td class=""><span class="">48°8,39'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20103,%20joignant%20Rouez%20et%20Criss%C3%A9%20et%20de%20la%20droite%20joignant%20l'intersection%20de%20l'axe%20de%20la%20rivi%C3%A8re%20La%20V%C3%A8gre%20avec%20la%20limite%20des%20communes%20de%20Sill%C3%A9-le-Guillaume%20et%20de%20Rouez,%20d'une%20part,%20au%20sommet%20B%20d%C3%A9fini%20ci-apr%C3%A8s;-0.105658320330431;48.1489209342693;0%C2%B06,34';48%C2%B08,935'%0AB;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20304%20allant%20de%20Sill%C3%A9-le-Guillaume%20%C3%A0%20Conlie%20et%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20167%20allant%20%C3%A0%20Rouez;-0.0616864580218711;48.1486971325525;0%C2%B03,701';48%C2%B08,922'%0AC;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Sill%C3%A9-le-Guillaume%20et%20l'axe%20du%20clocher%20de%20Tennie,%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie;-0.0852402595925762;48.1212930049111;0%C2%B05,114';48%C2%B07,278'%0AD;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Rouez%20et%20l'axe%20du%20clocher%20de%20Bernay;-0.0996023094257926;48.1209828190687;0%C2%B05,976';48%C2%B07,259'%0AE;Axe%20du%20clocher%20de%20Rouez;-0.115003633563279;48.1398379979624;0%C2%B06,9';48%C2%B08,39'" download="points-m-cx-chantepie-1988.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Intersection de l'axe de la route départementale n° 103, joignant Rouez et Crissé et de la droite joignant l'intersection de l'axe de la rivière La Vègre avec la limite des communes de Sillé-le-Guillaume et de Rouez, d'une part, au sommet B défini ci-après</span></td> + <td class=""><span class="">-0.105658320330431</span></td> + <td class=""><span class="">48.1489209342693</span></td> + <td class=""><span class="">0°6,34'</span></td> + <td class=""><span class="">48°8,935'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Intersection de l'axe de la route départementale n° 304 allant de Sillé-le-Guillaume à Conlie et de l'axe de la route départementale n° 167 allant à Rouez</span></td> + <td class=""><span class="">-0.0616864580218711</span></td> + <td class=""><span class="">48.1486971325525</span></td> + <td class=""><span class="">0°3,701'</span></td> + <td class=""><span class="">48°8,922'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Sillé-le-Guillaume et l'axe du clocher de Tennie, et de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie</span></td> + <td class=""><span class="">-0.0852402595925762</span></td> + <td class=""><span class="">48.1212930049111</span></td> + <td class=""><span class="">0°5,114'</span></td> + <td class=""><span class="">48°7,278'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class="">Intersection de la droite joignant l'axe du clocher de Parennes et l'axe du clocher de Conlie et de la droite joignant l'axe du clocher de Rouez et l'axe du clocher de Bernay</span></td> + <td class=""><span class="">-0.0996023094257926</span></td> + <td class=""><span class="">48.1209828190687</span></td> + <td class=""><span class="">0°5,976'</span></td> + <td class=""><span class="">48°7,259'</span></td> + </tr> + <tr> + <td class=""><span class="">E</span></td> + <td class=""><span class="">Axe du clocher de Rouez</span></td> + <td class=""><span class="">-0.115003633563279</span></td> + <td class=""><span class="">48.1398379979624</span></td> + <td class=""><span class="">0°6,9'</span></td> + <td class=""><span class="">48°8,39'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20103,%20joignant%20Rouez%20et%20Criss%C3%A9%20et%20de%20la%20droite%20joignant%20l'intersection%20de%20l'axe%20de%20la%20rivi%C3%A8re%20La%20V%C3%A8gre%20avec%20la%20limite%20des%20communes%20de%20Sill%C3%A9-le-Guillaume%20et%20de%20Rouez,%20d'une%20part,%20au%20sommet%20B%20d%C3%A9fini%20ci-apr%C3%A8s;-0.105658320330431;48.1489209342693;0%C2%B06,34';48%C2%B08,935'%0AB;Intersection%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20304%20allant%20de%20Sill%C3%A9-le-Guillaume%20%C3%A0%20Conlie%20et%20de%20l'axe%20de%20la%20route%20d%C3%A9partementale%20n%C2%B0%20167%20allant%20%C3%A0%20Rouez;-0.0616864580218711;48.1486971325525;0%C2%B03,701';48%C2%B08,922'%0AC;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Sill%C3%A9-le-Guillaume%20et%20l'axe%20du%20clocher%20de%20Tennie,%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie;-0.0852402595925762;48.1212930049111;0%C2%B05,114';48%C2%B07,278'%0AD;Intersection%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Parennes%20et%20l'axe%20du%20clocher%20de%20Conlie%20et%20de%20la%20droite%20joignant%20l'axe%20du%20clocher%20de%20Rouez%20et%20l'axe%20du%20clocher%20de%20Bernay;-0.0996023094257926;48.1209828190687;0%C2%B05,976';48%C2%B07,259'%0AE;Axe%20du%20clocher%20de%20Rouez;-0.115003633563279;48.1398379979624;0%C2%B06,9';48%C2%B08,39'" download="points-m-cx-chantepie-1988.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/titre.stories_snapshots_CriqueAdolpheOctroi.html b/packages/ui/src/components/titre.stories_snapshots_CriqueAdolpheOctroi.html index ba1c3efadfb1f0f29850deb867161495e9e82e62..e506356829898bffe85a36040f76e70c80ad4bd9 100644 --- a/packages/ui/src/components/titre.stories_snapshots_CriqueAdolpheOctroi.html +++ b/packages/ui/src/components/titre.stories_snapshots_CriqueAdolpheOctroi.html @@ -138,133 +138,136 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">S1</span></td> - <td class=""><span class="">ARM1.3</span></td> - <td class=""><span class="">-53.58181013905019</span></td> - <td class=""><span class="">3.8309654861273</span></td> - <td class=""><span class="">-53°34,909'</span></td> - <td class=""><span class="">3°49,858'</span></td> - </tr> - <tr> - <td class=""><span class="">S2</span></td> - <td class=""><span class="">ARM1.3</span></td> - <td class=""><span class="">-53.57281257175149</span></td> - <td class=""><span class="">3.8309926670647294</span></td> - <td class=""><span class="">-53°34,369'</span></td> - <td class=""><span class="">3°49,86'</span></td> - </tr> - <tr> - <td class=""><span class="">S3</span></td> - <td class=""><span class="">ARM1.3</span></td> - <td class=""><span class="">-53.572785590706495</span></td> - <td class=""><span class="">3.82195493825841</span></td> - <td class=""><span class="">-53°34,367'</span></td> - <td class=""><span class="">3°49,317'</span></td> - </tr> - <tr> - <td class=""><span class="">S4</span></td> - <td class=""><span class="">ARM1.3</span></td> - <td class=""><span class="">-53.58178306390299</span></td> - <td class=""><span class="">3.8219278216269807</span></td> - <td class=""><span class="">-53°34,907'</span></td> - <td class=""><span class="">3°49,316'</span></td> - </tr> - <tr> - <td class=""><span class="">S5</span></td> - <td class=""><span class="">ARM2.3</span></td> - <td class=""><span class="">-53.60031408473134</span></td> - <td class=""><span class="">3.8224780986447566</span></td> - <td class=""><span class="">-53°36,019'</span></td> - <td class=""><span class="">3°49,349'</span></td> - </tr> - <tr> - <td class=""><span class="">S6</span></td> - <td class=""><span class="">ARM2.3</span></td> - <td class=""><span class="">-53.58320964990986</span></td> - <td class=""><span class="">3.828093576227541</span></td> - <td class=""><span class="">-53°34,993'</span></td> - <td class=""><span class="">3°49,686'</span></td> - </tr> - <tr> - <td class=""><span class="">S7</span></td> - <td class=""><span class="">ARM2.3</span></td> - <td class=""><span class="">-53.58181205656814</span></td> - <td class=""><span class="">3.82379854768971</span></td> - <td class=""><span class="">-53°34,909'</span></td> - <td class=""><span class="">3°49,428'</span></td> - </tr> - <tr> - <td class=""><span class="">S8</span></td> - <td class=""><span class="">ARM2.3</span></td> - <td class=""><span class="">-53.59891645305842</span></td> - <td class=""><span class="">3.8181831495446303</span></td> - <td class=""><span class="">-53°35,935'</span></td> - <td class=""><span class="">3°49,091'</span></td> - </tr> - <tr> - <td class=""><span class="">S9</span></td> - <td class=""><span class="">ARM3.3</span></td> - <td class=""><span class="">-53.583861926103765</span></td> - <td class=""><span class="">3.8502114455117433</span></td> - <td class=""><span class="">-53°35,032'</span></td> - <td class=""><span class="">3°51,013'</span></td> - </tr> - <tr> - <td class=""><span class="">S10</span></td> - <td class=""><span class="">ARM3.3</span></td> - <td class=""><span class="">-53.57989914401643</span></td> - <td class=""><span class="">3.8480725119510217</span></td> - <td class=""><span class="">-53°34,794'</span></td> - <td class=""><span class="">3°50,884'</span></td> - </tr> - <tr> - <td class=""><span class="">S11</span></td> - <td class=""><span class="">ARM3.3</span></td> - <td class=""><span class="">-53.588417035915334</span></td> - <td class=""><span class="">3.8321501920354253</span></td> - <td class=""><span class="">-53°35,305'</span></td> - <td class=""><span class="">3°49,929'</span></td> - </tr> - <tr> - <td class=""><span class="">S12</span></td> - <td class=""><span class="">ARM3.3</span></td> - <td class=""><span class="">-53.592379712320195</span></td> - <td class=""><span class="">3.834289122043602</span></td> - <td class=""><span class="">-53°35,543'</span></td> - <td class=""><span class="">3°50,057'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AS1;ARM1.3;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AS2;ARM1.3;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'%0AS3;ARM1.3;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AS4;ARM1.3;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AS5;ARM2.3;-53.60031408473134;3.8224780986447566;-53%C2%B036,019';3%C2%B049,349'%0AS6;ARM2.3;-53.58320964990986;3.828093576227541;-53%C2%B034,993';3%C2%B049,686'%0AS7;ARM2.3;-53.58181205656814;3.82379854768971;-53%C2%B034,909';3%C2%B049,428'%0AS8;ARM2.3;-53.59891645305842;3.8181831495446303;-53%C2%B035,935';3%C2%B049,091'%0AS9;ARM3.3;-53.583861926103765;3.8502114455117433;-53%C2%B035,032';3%C2%B051,013'%0AS10;ARM3.3;-53.57989914401643;3.8480725119510217;-53%C2%B034,794';3%C2%B050,884'%0AS11;ARM3.3;-53.588417035915334;3.8321501920354253;-53%C2%B035,305';3%C2%B049,929'%0AS12;ARM3.3;-53.592379712320195;3.834289122043602;-53%C2%B035,543';3%C2%B050,057'" download="points-m-ar-crique-adolphe-2023.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">S1</span></td> + <td class=""><span class="">ARM1.3</span></td> + <td class=""><span class="">-53.58181013905019</span></td> + <td class=""><span class="">3.8309654861273</span></td> + <td class=""><span class="">-53°34,909'</span></td> + <td class=""><span class="">3°49,858'</span></td> + </tr> + <tr> + <td class=""><span class="">S2</span></td> + <td class=""><span class="">ARM1.3</span></td> + <td class=""><span class="">-53.57281257175149</span></td> + <td class=""><span class="">3.8309926670647294</span></td> + <td class=""><span class="">-53°34,369'</span></td> + <td class=""><span class="">3°49,86'</span></td> + </tr> + <tr> + <td class=""><span class="">S3</span></td> + <td class=""><span class="">ARM1.3</span></td> + <td class=""><span class="">-53.572785590706495</span></td> + <td class=""><span class="">3.82195493825841</span></td> + <td class=""><span class="">-53°34,367'</span></td> + <td class=""><span class="">3°49,317'</span></td> + </tr> + <tr> + <td class=""><span class="">S4</span></td> + <td class=""><span class="">ARM1.3</span></td> + <td class=""><span class="">-53.58178306390299</span></td> + <td class=""><span class="">3.8219278216269807</span></td> + <td class=""><span class="">-53°34,907'</span></td> + <td class=""><span class="">3°49,316'</span></td> + </tr> + <tr> + <td class=""><span class="">S5</span></td> + <td class=""><span class="">ARM2.3</span></td> + <td class=""><span class="">-53.60031408473134</span></td> + <td class=""><span class="">3.8224780986447566</span></td> + <td class=""><span class="">-53°36,019'</span></td> + <td class=""><span class="">3°49,349'</span></td> + </tr> + <tr> + <td class=""><span class="">S6</span></td> + <td class=""><span class="">ARM2.3</span></td> + <td class=""><span class="">-53.58320964990986</span></td> + <td class=""><span class="">3.828093576227541</span></td> + <td class=""><span class="">-53°34,993'</span></td> + <td class=""><span class="">3°49,686'</span></td> + </tr> + <tr> + <td class=""><span class="">S7</span></td> + <td class=""><span class="">ARM2.3</span></td> + <td class=""><span class="">-53.58181205656814</span></td> + <td class=""><span class="">3.82379854768971</span></td> + <td class=""><span class="">-53°34,909'</span></td> + <td class=""><span class="">3°49,428'</span></td> + </tr> + <tr> + <td class=""><span class="">S8</span></td> + <td class=""><span class="">ARM2.3</span></td> + <td class=""><span class="">-53.59891645305842</span></td> + <td class=""><span class="">3.8181831495446303</span></td> + <td class=""><span class="">-53°35,935'</span></td> + <td class=""><span class="">3°49,091'</span></td> + </tr> + <tr> + <td class=""><span class="">S9</span></td> + <td class=""><span class="">ARM3.3</span></td> + <td class=""><span class="">-53.583861926103765</span></td> + <td class=""><span class="">3.8502114455117433</span></td> + <td class=""><span class="">-53°35,032'</span></td> + <td class=""><span class="">3°51,013'</span></td> + </tr> + <tr> + <td class=""><span class="">S10</span></td> + <td class=""><span class="">ARM3.3</span></td> + <td class=""><span class="">-53.57989914401643</span></td> + <td class=""><span class="">3.8480725119510217</span></td> + <td class=""><span class="">-53°34,794'</span></td> + <td class=""><span class="">3°50,884'</span></td> + </tr> + <tr> + <td class=""><span class="">S11</span></td> + <td class=""><span class="">ARM3.3</span></td> + <td class=""><span class="">-53.588417035915334</span></td> + <td class=""><span class="">3.8321501920354253</span></td> + <td class=""><span class="">-53°35,305'</span></td> + <td class=""><span class="">3°49,929'</span></td> + </tr> + <tr> + <td class=""><span class="">S12</span></td> + <td class=""><span class="">ARM3.3</span></td> + <td class=""><span class="">-53.592379712320195</span></td> + <td class=""><span class="">3.834289122043602</span></td> + <td class=""><span class="">-53°35,543'</span></td> + <td class=""><span class="">3°50,057'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AS1;ARM1.3;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AS2;ARM1.3;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'%0AS3;ARM1.3;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AS4;ARM1.3;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AS5;ARM2.3;-53.60031408473134;3.8224780986447566;-53%C2%B036,019';3%C2%B049,349'%0AS6;ARM2.3;-53.58320964990986;3.828093576227541;-53%C2%B034,993';3%C2%B049,686'%0AS7;ARM2.3;-53.58181205656814;3.82379854768971;-53%C2%B034,909';3%C2%B049,428'%0AS8;ARM2.3;-53.59891645305842;3.8181831495446303;-53%C2%B035,935';3%C2%B049,091'%0AS9;ARM3.3;-53.583861926103765;3.8502114455117433;-53%C2%B035,032';3%C2%B051,013'%0AS10;ARM3.3;-53.57989914401643;3.8480725119510217;-53%C2%B034,794';3%C2%B050,884'%0AS11;ARM3.3;-53.588417035915334;3.8321501920354253;-53%C2%B035,305';3%C2%B049,929'%0AS12;ARM3.3;-53.592379712320195;3.834289122043602;-53%C2%B035,543';3%C2%B050,057'" download="points-m-ar-crique-adolphe-2023.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> @@ -491,133 +494,136 @@ <div class="flex"><input id="typeahead_878" type="text" name="typeahead_878" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">S1</span></td> - <td class=""><span class="">ARM1.3</span></td> - <td class=""><span class="">-53.58181013905019</span></td> - <td class=""><span class="">3.8309654861273</span></td> - <td class=""><span class="">-53°34,909'</span></td> - <td class=""><span class="">3°49,858'</span></td> - </tr> - <tr> - <td class=""><span class="">S2</span></td> - <td class=""><span class="">ARM1.3</span></td> - <td class=""><span class="">-53.57281257175149</span></td> - <td class=""><span class="">3.8309926670647294</span></td> - <td class=""><span class="">-53°34,369'</span></td> - <td class=""><span class="">3°49,86'</span></td> - </tr> - <tr> - <td class=""><span class="">S3</span></td> - <td class=""><span class="">ARM1.3</span></td> - <td class=""><span class="">-53.572785590706495</span></td> - <td class=""><span class="">3.82195493825841</span></td> - <td class=""><span class="">-53°34,367'</span></td> - <td class=""><span class="">3°49,317'</span></td> - </tr> - <tr> - <td class=""><span class="">S4</span></td> - <td class=""><span class="">ARM1.3</span></td> - <td class=""><span class="">-53.58178306390299</span></td> - <td class=""><span class="">3.8219278216269807</span></td> - <td class=""><span class="">-53°34,907'</span></td> - <td class=""><span class="">3°49,316'</span></td> - </tr> - <tr> - <td class=""><span class="">S5</span></td> - <td class=""><span class="">ARM2.3</span></td> - <td class=""><span class="">-53.60031408473134</span></td> - <td class=""><span class="">3.8224780986447566</span></td> - <td class=""><span class="">-53°36,019'</span></td> - <td class=""><span class="">3°49,349'</span></td> - </tr> - <tr> - <td class=""><span class="">S6</span></td> - <td class=""><span class="">ARM2.3</span></td> - <td class=""><span class="">-53.58320964990986</span></td> - <td class=""><span class="">3.828093576227541</span></td> - <td class=""><span class="">-53°34,993'</span></td> - <td class=""><span class="">3°49,686'</span></td> - </tr> - <tr> - <td class=""><span class="">S7</span></td> - <td class=""><span class="">ARM2.3</span></td> - <td class=""><span class="">-53.58181205656814</span></td> - <td class=""><span class="">3.82379854768971</span></td> - <td class=""><span class="">-53°34,909'</span></td> - <td class=""><span class="">3°49,428'</span></td> - </tr> - <tr> - <td class=""><span class="">S8</span></td> - <td class=""><span class="">ARM2.3</span></td> - <td class=""><span class="">-53.59891645305842</span></td> - <td class=""><span class="">3.8181831495446303</span></td> - <td class=""><span class="">-53°35,935'</span></td> - <td class=""><span class="">3°49,091'</span></td> - </tr> - <tr> - <td class=""><span class="">S9</span></td> - <td class=""><span class="">ARM3.3</span></td> - <td class=""><span class="">-53.583861926103765</span></td> - <td class=""><span class="">3.8502114455117433</span></td> - <td class=""><span class="">-53°35,032'</span></td> - <td class=""><span class="">3°51,013'</span></td> - </tr> - <tr> - <td class=""><span class="">S10</span></td> - <td class=""><span class="">ARM3.3</span></td> - <td class=""><span class="">-53.57989914401643</span></td> - <td class=""><span class="">3.8480725119510217</span></td> - <td class=""><span class="">-53°34,794'</span></td> - <td class=""><span class="">3°50,884'</span></td> - </tr> - <tr> - <td class=""><span class="">S11</span></td> - <td class=""><span class="">ARM3.3</span></td> - <td class=""><span class="">-53.588417035915334</span></td> - <td class=""><span class="">3.8321501920354253</span></td> - <td class=""><span class="">-53°35,305'</span></td> - <td class=""><span class="">3°49,929'</span></td> - </tr> - <tr> - <td class=""><span class="">S12</span></td> - <td class=""><span class="">ARM3.3</span></td> - <td class=""><span class="">-53.592379712320195</span></td> - <td class=""><span class="">3.834289122043602</span></td> - <td class=""><span class="">-53°35,543'</span></td> - <td class=""><span class="">3°50,057'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AS1;ARM1.3;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AS2;ARM1.3;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'%0AS3;ARM1.3;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AS4;ARM1.3;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AS5;ARM2.3;-53.60031408473134;3.8224780986447566;-53%C2%B036,019';3%C2%B049,349'%0AS6;ARM2.3;-53.58320964990986;3.828093576227541;-53%C2%B034,993';3%C2%B049,686'%0AS7;ARM2.3;-53.58181205656814;3.82379854768971;-53%C2%B034,909';3%C2%B049,428'%0AS8;ARM2.3;-53.59891645305842;3.8181831495446303;-53%C2%B035,935';3%C2%B049,091'%0AS9;ARM3.3;-53.583861926103765;3.8502114455117433;-53%C2%B035,032';3%C2%B051,013'%0AS10;ARM3.3;-53.57989914401643;3.8480725119510217;-53%C2%B034,794';3%C2%B050,884'%0AS11;ARM3.3;-53.588417035915334;3.8321501920354253;-53%C2%B035,305';3%C2%B049,929'%0AS12;ARM3.3;-53.592379712320195;3.834289122043602;-53%C2%B035,543';3%C2%B050,057'" download="points-m-ar-crique-adolphe-2023.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">S1</span></td> + <td class=""><span class="">ARM1.3</span></td> + <td class=""><span class="">-53.58181013905019</span></td> + <td class=""><span class="">3.8309654861273</span></td> + <td class=""><span class="">-53°34,909'</span></td> + <td class=""><span class="">3°49,858'</span></td> + </tr> + <tr> + <td class=""><span class="">S2</span></td> + <td class=""><span class="">ARM1.3</span></td> + <td class=""><span class="">-53.57281257175149</span></td> + <td class=""><span class="">3.8309926670647294</span></td> + <td class=""><span class="">-53°34,369'</span></td> + <td class=""><span class="">3°49,86'</span></td> + </tr> + <tr> + <td class=""><span class="">S3</span></td> + <td class=""><span class="">ARM1.3</span></td> + <td class=""><span class="">-53.572785590706495</span></td> + <td class=""><span class="">3.82195493825841</span></td> + <td class=""><span class="">-53°34,367'</span></td> + <td class=""><span class="">3°49,317'</span></td> + </tr> + <tr> + <td class=""><span class="">S4</span></td> + <td class=""><span class="">ARM1.3</span></td> + <td class=""><span class="">-53.58178306390299</span></td> + <td class=""><span class="">3.8219278216269807</span></td> + <td class=""><span class="">-53°34,907'</span></td> + <td class=""><span class="">3°49,316'</span></td> + </tr> + <tr> + <td class=""><span class="">S5</span></td> + <td class=""><span class="">ARM2.3</span></td> + <td class=""><span class="">-53.60031408473134</span></td> + <td class=""><span class="">3.8224780986447566</span></td> + <td class=""><span class="">-53°36,019'</span></td> + <td class=""><span class="">3°49,349'</span></td> + </tr> + <tr> + <td class=""><span class="">S6</span></td> + <td class=""><span class="">ARM2.3</span></td> + <td class=""><span class="">-53.58320964990986</span></td> + <td class=""><span class="">3.828093576227541</span></td> + <td class=""><span class="">-53°34,993'</span></td> + <td class=""><span class="">3°49,686'</span></td> + </tr> + <tr> + <td class=""><span class="">S7</span></td> + <td class=""><span class="">ARM2.3</span></td> + <td class=""><span class="">-53.58181205656814</span></td> + <td class=""><span class="">3.82379854768971</span></td> + <td class=""><span class="">-53°34,909'</span></td> + <td class=""><span class="">3°49,428'</span></td> + </tr> + <tr> + <td class=""><span class="">S8</span></td> + <td class=""><span class="">ARM2.3</span></td> + <td class=""><span class="">-53.59891645305842</span></td> + <td class=""><span class="">3.8181831495446303</span></td> + <td class=""><span class="">-53°35,935'</span></td> + <td class=""><span class="">3°49,091'</span></td> + </tr> + <tr> + <td class=""><span class="">S9</span></td> + <td class=""><span class="">ARM3.3</span></td> + <td class=""><span class="">-53.583861926103765</span></td> + <td class=""><span class="">3.8502114455117433</span></td> + <td class=""><span class="">-53°35,032'</span></td> + <td class=""><span class="">3°51,013'</span></td> + </tr> + <tr> + <td class=""><span class="">S10</span></td> + <td class=""><span class="">ARM3.3</span></td> + <td class=""><span class="">-53.57989914401643</span></td> + <td class=""><span class="">3.8480725119510217</span></td> + <td class=""><span class="">-53°34,794'</span></td> + <td class=""><span class="">3°50,884'</span></td> + </tr> + <tr> + <td class=""><span class="">S11</span></td> + <td class=""><span class="">ARM3.3</span></td> + <td class=""><span class="">-53.588417035915334</span></td> + <td class=""><span class="">3.8321501920354253</span></td> + <td class=""><span class="">-53°35,305'</span></td> + <td class=""><span class="">3°49,929'</span></td> + </tr> + <tr> + <td class=""><span class="">S12</span></td> + <td class=""><span class="">ARM3.3</span></td> + <td class=""><span class="">-53.592379712320195</span></td> + <td class=""><span class="">3.834289122043602</span></td> + <td class=""><span class="">-53°35,543'</span></td> + <td class=""><span class="">3°50,057'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AS1;ARM1.3;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AS2;ARM1.3;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'%0AS3;ARM1.3;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AS4;ARM1.3;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AS5;ARM2.3;-53.60031408473134;3.8224780986447566;-53%C2%B036,019';3%C2%B049,349'%0AS6;ARM2.3;-53.58320964990986;3.828093576227541;-53%C2%B034,993';3%C2%B049,686'%0AS7;ARM2.3;-53.58181205656814;3.82379854768971;-53%C2%B034,909';3%C2%B049,428'%0AS8;ARM2.3;-53.59891645305842;3.8181831495446303;-53%C2%B035,935';3%C2%B049,091'%0AS9;ARM3.3;-53.583861926103765;3.8502114455117433;-53%C2%B035,032';3%C2%B051,013'%0AS10;ARM3.3;-53.57989914401643;3.8480725119510217;-53%C2%B034,794';3%C2%B050,884'%0AS11;ARM3.3;-53.588417035915334;3.8321501920354253;-53%C2%B035,305';3%C2%B049,929'%0AS12;ARM3.3;-53.592379712320195;3.834289122043602;-53%C2%B035,543';3%C2%B050,057'" download="points-m-ar-crique-adolphe-2023.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/titre.stories_snapshots_Full.html b/packages/ui/src/components/titre.stories_snapshots_Full.html index ba7781a98d4fe6710f75ac8d98a4a7414b21b0b9..20f111422ce484fb10451a5019aeebf39ec76bf1 100644 --- a/packages/ui/src/components/titre.stories_snapshots_Full.html +++ b/packages/ui/src/components/titre.stories_snapshots_Full.html @@ -112,69 +112,72 @@ <div class="flex"><input id="typeahead_670" type="text" name="typeahead_670" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.58181013905019</span></td> - <td class=""><span class="">3.8309654861273</span></td> - <td class=""><span class="">-53°34,909'</span></td> - <td class=""><span class="">3°49,858'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.58178306390299</span></td> - <td class=""><span class="">3.8219278216269807</span></td> - <td class=""><span class="">-53°34,907'</span></td> - <td class=""><span class="">3°49,316'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.572785590706495</span></td> - <td class=""><span class="">3.82195493825841</span></td> - <td class=""><span class="">-53°34,367'</span></td> - <td class=""><span class="">3°49,317'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.57281257175149</span></td> - <td class=""><span class="">3.8309926670647294</span></td> - <td class=""><span class="">-53°34,369'</span></td> - <td class=""><span class="">3°49,86'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AB;Polygone%201;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AC;Polygone%201;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AD;Polygone%201;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'" download="points-slug-du-titre.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.58181013905019</span></td> + <td class=""><span class="">3.8309654861273</span></td> + <td class=""><span class="">-53°34,909'</span></td> + <td class=""><span class="">3°49,858'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.58178306390299</span></td> + <td class=""><span class="">3.8219278216269807</span></td> + <td class=""><span class="">-53°34,907'</span></td> + <td class=""><span class="">3°49,316'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.572785590706495</span></td> + <td class=""><span class="">3.82195493825841</span></td> + <td class=""><span class="">-53°34,367'</span></td> + <td class=""><span class="">3°49,317'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.57281257175149</span></td> + <td class=""><span class="">3.8309926670647294</span></td> + <td class=""><span class="">-53°34,369'</span></td> + <td class=""><span class="">3°49,86'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AB;Polygone%201;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AC;Polygone%201;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AD;Polygone%201;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'" download="points-slug-du-titre.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> @@ -235,69 +238,72 @@ <div class="flex"><input id="typeahead_878" type="text" name="typeahead_878" disabled="" class="_typeahead-input_8eddf1 fr-input" placeholder="" autocomplete="off"></div> <!----> </div> - <div style="overflow-x: auto;" class="fr-mb-1w"> - <div class="fr-table"> - <table style="display: table;"> - <caption></caption> - <thead> - <tr> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Nom du point</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Description</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Longitude (E)</div> - </th> - <th scope="col" class="nowrap"> - <div class="fr-text--md">Latitude (N)</div> - </th> - </tr> - </thead> - <tbody> - <tr> - <td class=""><span class="">A</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.58181013905019</span></td> - <td class=""><span class="">3.8309654861273</span></td> - <td class=""><span class="">-53°34,909'</span></td> - <td class=""><span class="">3°49,858'</span></td> - </tr> - <tr> - <td class=""><span class="">B</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.58178306390299</span></td> - <td class=""><span class="">3.8219278216269807</span></td> - <td class=""><span class="">-53°34,907'</span></td> - <td class=""><span class="">3°49,316'</span></td> - </tr> - <tr> - <td class=""><span class="">C</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.572785590706495</span></td> - <td class=""><span class="">3.82195493825841</span></td> - <td class=""><span class="">-53°34,367'</span></td> - <td class=""><span class="">3°49,317'</span></td> - </tr> - <tr> - <td class=""><span class="">D</span></td> - <td class=""><span class="">Polygone 1</span></td> - <td class=""><span class="">-53.57281257175149</span></td> - <td class=""><span class="">3.8309926670647294</span></td> - <td class=""><span class="">-53°34,369'</span></td> - <td class=""><span class="">3°49,86'</span></td> - </tr> - </tbody> - </table> - </div> - </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AB;Polygone%201;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AC;Polygone%201;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AD;Polygone%201;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'" download="points-slug-du-titre.csv" style="align-self: end;">.csv</a> + <div style="display: flex; flex-direction: column;"> + <div style="overflow-x: auto;" class="fr-mb-1w"> + <div class="fr-table"> + <table style="display: table;"> + <caption></caption> + <thead> + <tr> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Nom du point</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Description</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Longitude (E)</div> + </th> + <th scope="col" class="nowrap"> + <div class="fr-text--md">Latitude (N)</div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td class=""><span class="">A</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.58181013905019</span></td> + <td class=""><span class="">3.8309654861273</span></td> + <td class=""><span class="">-53°34,909'</span></td> + <td class=""><span class="">3°49,858'</span></td> + </tr> + <tr> + <td class=""><span class="">B</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.58178306390299</span></td> + <td class=""><span class="">3.8219278216269807</span></td> + <td class=""><span class="">-53°34,907'</span></td> + <td class=""><span class="">3°49,316'</span></td> + </tr> + <tr> + <td class=""><span class="">C</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.572785590706495</span></td> + <td class=""><span class="">3.82195493825841</span></td> + <td class=""><span class="">-53°34,367'</span></td> + <td class=""><span class="">3°49,317'</span></td> + </tr> + <tr> + <td class=""><span class="">D</span></td> + <td class=""><span class="">Polygone 1</span></td> + <td class=""><span class="">-53.57281257175149</span></td> + <td class=""><span class="">3.8309926670647294</span></td> + <td class=""><span class="">-53°34,369'</span></td> + <td class=""><span class="">3°49,86'</span></td> + </tr> + </tbody> + </table> + </div> + </div><a class="fr-btn fr-btn--secondary fr-btn--icon-right fr-icon-download-line" title="Télécharge les points au format csv" href="data:text/csv;charset=utf-8,nom;description;longitude;latitude;x_deg;y_deg%0AA;Polygone%201;-53.58181013905019;3.8309654861273;-53%C2%B034,909';3%C2%B049,858'%0AB;Polygone%201;-53.58178306390299;3.8219278216269807;-53%C2%B034,907';3%C2%B049,316'%0AC;Polygone%201;-53.572785590706495;3.82195493825841;-53%C2%B034,367';3%C2%B049,317'%0AD;Polygone%201;-53.57281257175149;3.8309926670647294;-53%C2%B034,369';3%C2%B049,86'" download="points-slug-du-titre.csv" style="align-self: end;">.csv</a> + </div> + <!----> </div> </div> </div> diff --git a/packages/ui/src/components/titre/perimetre-api-client.ts b/packages/ui/src/components/titre/perimetre-api-client.ts index 2194085d7ee4a9e7aecd28bd18a3f36165845bd7..c5f6f7ffcc19c2053696f414f65de307314024a8 100644 --- a/packages/ui/src/components/titre/perimetre-api-client.ts +++ b/packages/ui/src/components/titre/perimetre-api-client.ts @@ -1,4 +1,13 @@ -import { FeatureCollectionPoints, GeojsonImportBody, GeojsonImportPointsBody, GeojsonImportPointsResponse, GeojsonInformations, PerimetreInformations } from 'camino-common/src/perimetre' +import { + FeatureCollectionPoints, + GeojsonImportBody, + GeojsonImportForagesBody, + GeojsonImportForagesResponse, + GeojsonImportPointsBody, + GeojsonImportPointsResponse, + GeojsonInformations, + PerimetreInformations, +} from 'camino-common/src/perimetre' import { GeoSystemeId } from 'camino-common/src/static/geoSystemes' import { getWithJson, postWithJson } from '../../api/client-rest' import { EtapeIdOrSlug } from 'camino-common/src/etape' @@ -8,6 +17,7 @@ export interface PerimetreApiClient { getGeojsonByGeoSystemeId: (geojson: FeatureCollectionPoints, geoSystemeId: GeoSystemeId) => Promise<FeatureCollectionPoints> geojsonImport: (body: GeojsonImportBody, geoSystemeId: GeoSystemeId) => Promise<GeojsonInformations | Error> geojsonPointsImport: (body: GeojsonImportPointsBody, geoSystemeId: GeoSystemeId) => Promise<GeojsonImportPointsResponse | Error> + geojsonForagesImport: (body: GeojsonImportForagesBody, geoSystemeId: GeoSystemeId) => Promise<GeojsonImportForagesResponse | Error> getPerimetreInfosByEtapeId: (etapeId: EtapeIdOrSlug) => Promise<PerimetreInformations> getPerimetreInfosByDemarcheId: (demarcheId: DemarcheIdOrSlug) => Promise<PerimetreInformations> } @@ -22,6 +32,9 @@ export const perimetreApiClient: PerimetreApiClient = { geojsonPointsImport: (body: GeojsonImportPointsBody, geoSystemeId: GeoSystemeId) => { return postWithJson('/rest/geojson_points/import/:geoSystemeId', { geoSystemeId }, body) }, + geojsonForagesImport: (body: GeojsonImportForagesBody, geoSystemeId: GeoSystemeId) => { + return postWithJson('/rest/geojson_forages/import/:geoSystemeId', { geoSystemeId }, body) + }, getPerimetreInfosByEtapeId: (etapeId: EtapeIdOrSlug) => { return getWithJson('/rest/etapes/:etapeId/geojson', { etapeId }) }, diff --git a/packages/ui/src/components/titre/titre-demarche.tsx b/packages/ui/src/components/titre/titre-demarche.tsx index 25427333728568fbd770ce8d2b7a1bf7c2c19103..8164ce50237c3aedc86f6d290c999ecf42f9f4e2 100644 --- a/packages/ui/src/components/titre/titre-demarche.tsx +++ b/packages/ui/src/components/titre/titre-demarche.tsx @@ -175,6 +175,7 @@ export const TitreDemarche = defineComponent<Props>(props => { <DsfrPerimetre class="fr-pt-3w" titreSlug={props.titre.slug} + titreTypeId={props.titre.titre_type_id} apiClient={props.apiClient} calculateNeighbours={true} perimetre={{ ...perimetre.value }} diff --git a/packages/ui/src/typings/maplibre-gl.d.ts b/packages/ui/src/typings/maplibre-gl.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..5fa4f848d5830a3a7141fcd56dda5d3264be0e1e --- /dev/null +++ b/packages/ui/src/typings/maplibre-gl.d.ts @@ -0,0 +1,9 @@ +import * as maplibre from 'maplibre-gl' + +export class CaminoMapLibre extends maplibre.Map { + getSource(id: string): maplibre.GeoJSONSource +} + +declare module 'maplibre' { + export declare class CaminoMapLibre extends maplibre.Map {} +} diff --git a/packages/ui/src/utils/titre-etape-save.js b/packages/ui/src/utils/titre-etape-save.js index b8df777c5f204d50cf6b83672d3af8dd5cf572d8..3291324ce033d1f7b97a75ff4be656d488f40fa7 100644 --- a/packages/ui/src/utils/titre-etape-save.js +++ b/packages/ui/src/utils/titre-etape-save.js @@ -29,6 +29,7 @@ export const etapeSaveFormat = etape => { delete etape.demarche delete etape.surface + delete etape.geojson4326Forages etape.substances = etape.substances?.filter(substanceId => !!substanceId)