commit 9876747c6c280591865c4505d55fe6e5d63f15c8 Author: yann Date: Thu Nov 14 13:06:12 2024 +0100 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b253bfd --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.DS_Store +website/build + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..190b1c8 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 gpx.studio + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..b6a51cf --- /dev/null +++ b/README.md @@ -0,0 +1,80 @@ + + + Logo of gpx.studio. + + +[**gpx.studio**](https://gpx.studio) is an online tool for creating and editing GPX files. + +![gpx.studio screenshot](website/src/lib/assets/img/docs/getting-started/interface.png) + +This repository contains the source code of the website. + +## Contributing + +Please create an issue if you find a bug or have a feature request. + +Code contributions are also welcome, but except for obvious bug fixes, please open an issue first to discuss the changes you would like to make. + +## Translation + +The website is translated by volunteers on a collaborative translation platform. +You can help complete and improve the translations by joining the [Crowdin project](https://crowdin.com/project/gpxstudio). +If you would like to start the translation in a new language, please contact me or create an issue. + +Any help is greatly appreciated! + +## Development + +The code is split into two parts: +- `gpx`: a Typescript library for parsing and manipulating GPX files, +- `website`: the website itself, which is a [SvelteKit](https://kit.svelte.dev/) application. + +You will need [Node.js](https://nodejs.org/) to build and run these two parts. + +### Building the `gpx` library + +```bash +cd gpx +npm install +npm run build +``` + +### Running the website + +To be able to load the map, you will need to create your own Mapbox access token and store it in a `.env` file in the `website` directory. + +```bash +cd website +echo PUBLIC_MAPBOX_TOKEN={YOUR_MAPBOX_TOKEN} >> .env +npm install +npm run dev +``` + +## Credits + +This project has been made possible thanks to the following open source projects: + +- Development: + - [Svelte](https://github.com/sveltejs/svelte) and [SvelteKit](https://github.com/sveltejs/kit) — seamless development experience + - [MDsveX](https://github.com/pngwn/MDsveX) — allowing a Markdown-based documentation + - [svelte-i18n](https://github.com/kaisermann/svelte-i18n) — easy localization +- Design: + - [shadcn-svelte](https://github.com/huntabyte/shadcn-svelte) — beautiful components + - [lucide-svelte](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-svelte) — beautiful icons + - [tailwindcss](https://github.com/tailwindlabs/tailwindcss) — easy styling + - [Chart.js](https://github.com/chartjs/Chart.js) — beautiful and fast charts +- Logic: + - [immer](https://github.com/immerjs/immer) — complex state management + - [Dexie.js](https://github.com/dexie/Dexie.js) — IndexedDB wrapper + - [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) — fast GPX file parsing + - [SortableJS](https://github.com/SortableJS/Sortable) — creating a sortable file tree +- Mapping: + - [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js) — beautiful and fast interactive maps + - [brouter](https://github.com/abrensch/brouter) — routing engine + - [OpenStreetMap](https://www.openstreetmap.org) — map data used by Mapbox and brouter +- Search: + - [DocSearch](https://github.com/algolia/docsearch) — search engine for the documentation + +## License + +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 0000000..75f124e --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,5 @@ +files: + - source: /website/src/locales/en.json + translation: /website/src/locales/%two_letters_code%.json + - source: /website/src/lib/docs/en/**/*.mdx + translation: /website/src/lib/docs/%two_letters_code%/**/%original_file_name% diff --git a/gpx/.gitignore b/gpx/.gitignore new file mode 100644 index 0000000..76add87 --- /dev/null +++ b/gpx/.gitignore @@ -0,0 +1,2 @@ +node_modules +dist \ No newline at end of file diff --git a/gpx/package-lock.json b/gpx/package-lock.json new file mode 100644 index 0000000..4df421e --- /dev/null +++ b/gpx/package-lock.json @@ -0,0 +1,242 @@ +{ + "name": "gpx", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "gpx", + "version": "1.0.0", + "hasInstallScript": true, + "dependencies": { + "fast-xml-parser": "^4.5.0", + "immer": "^10.1.1", + "ts-node": "^10.9.2" + }, + "devDependencies": { + "@types/geojson": "^7946.0.14", + "@types/node": "^20.16.10", + "typescript": "^5.6.2" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, + "node_modules/@types/geojson": { + "version": "7946.0.14", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", + "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.16.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.10.tgz", + "integrity": "sha512-vQUKgWTjEIRFCvK6CyriPH3MZYiYlNy0fKiEYHWbcoWLEgs4opurGGKlebrTLqdSMIbXImH6XExNiIyNUv3WpA==", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/fast-xml-parser": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz", + "integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/immer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", + "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + } + } +} diff --git a/gpx/package.json b/gpx/package.json new file mode 100644 index 0000000..340c6ad --- /dev/null +++ b/gpx/package.json @@ -0,0 +1,27 @@ +{ + "name": "gpx", + "version": "1.0.0", + "type": "module", + "exports": "./dist/index.js", + "types": "dist/index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/gpxstudio/gpx.studio.git", + "directory": "gpx" + }, + "private": true, + "dependencies": { + "fast-xml-parser": "^4.5.0", + "immer": "^10.1.1", + "ts-node": "^10.9.2" + }, + "devDependencies": { + "@types/geojson": "^7946.0.14", + "@types/node": "^20.16.10", + "typescript": "^5.6.2" + }, + "scripts": { + "build": "tsc", + "postinstall": "npm run build" + } +} diff --git a/gpx/src/gpx.ts b/gpx/src/gpx.ts new file mode 100644 index 0000000..2a8c871 --- /dev/null +++ b/gpx/src/gpx.ts @@ -0,0 +1,1625 @@ +import { ramerDouglasPeucker } from "./simplify"; +import { Coordinates, GPXFileAttributes, GPXFileType, LineStyleExtension, Link, Metadata, RouteType, TrackExtensions, TrackPointExtensions, TrackPointType, TrackSegmentType, TrackType, WaypointType } from "./types"; +import { immerable, isDraft, original, freeze } from "immer"; + +function cloneJSON(obj: T): T { + if (obj === null || typeof obj !== 'object') { + return null; + } + return JSON.parse(JSON.stringify(obj)); +} + +// An abstract class that groups functions that need to be computed recursively in the GPX file hierarchy +export abstract class GPXTreeElement> { + _data: { [key: string]: any } = {}; + + abstract isLeaf(): boolean; + abstract get children(): Array; + + abstract getNumberOfTrackPoints(): number; + abstract getStartTimestamp(): Date | undefined; + abstract getEndTimestamp(): Date | undefined; + abstract getStatistics(): GPXStatistics; + abstract getSegments(): TrackSegment[]; + abstract getTrackPoints(): TrackPoint[]; + + abstract toGeoJSON(): GeoJSON.Feature | GeoJSON.Feature[] | GeoJSON.FeatureCollection | GeoJSON.FeatureCollection[]; + + // Producers + abstract _reverse(originalNextTimestamp?: Date, newPreviousTimestamp?: Date); +} + +export type AnyGPXTreeElement = GPXTreeElement>; + +// An abstract class that can be extended to facilitate functions working similarly with Tracks and TrackSegments +abstract class GPXTreeNode> extends GPXTreeElement { + isLeaf(): boolean { + return false; + } + + getNumberOfTrackPoints(): number { + return this.children.reduce((acc, child) => acc + child.getNumberOfTrackPoints(), 0); + } + + getStartTimestamp(): Date | undefined { + if (this.children.length === 0) { + return undefined; + } + return this.children[0].getStartTimestamp(); + } + + getEndTimestamp(): Date | undefined { + if (this.children.length === 0) { + return undefined; + } + return this.children[this.children.length - 1].getEndTimestamp(); + } + + getStatistics(): GPXStatistics { + let statistics = new GPXStatistics(); + for (let child of this.children) { + statistics.mergeWith(child.getStatistics()); + } + return statistics; + } + + getSegments(): TrackSegment[] { + return this.children.flatMap((child) => child.getSegments()); + } + + getTrackPoints(): TrackPoint[] { + return this.children.flatMap((child) => child.getTrackPoints()); + } + + // Producers + _reverse(originalNextTimestamp?: Date, newPreviousTimestamp?: Date) { + let og = getOriginal(this); + if (!originalNextTimestamp && !newPreviousTimestamp) { + originalNextTimestamp = og.getEndTimestamp(); + newPreviousTimestamp = og.getStartTimestamp(); + } + + this.children.reverse(); + + for (let i = 0; i < og.children.length; i++) { + let originalStartTimestamp = og.children[og.children.length - i - 1].getStartTimestamp(); + + this.children[i]._reverse(originalNextTimestamp, newPreviousTimestamp); + + originalNextTimestamp = originalStartTimestamp; + newPreviousTimestamp = this.children[i].getEndTimestamp(); + } + } +} + +// An abstract class that TrackSegment extends to implement the GPXTreeElement interface +abstract class GPXTreeLeaf extends GPXTreeElement { + isLeaf(): boolean { + return true; + } + + get children(): Array { + return []; + } +} + +// A class that represents a GPX file +export class GPXFile extends GPXTreeNode { + [immerable] = true; + + attributes: GPXFileAttributes; + metadata: Metadata; + wpt: Waypoint[]; + trk: Track[]; + rte: RouteType[]; + + constructor(gpx?: GPXFileType & { _data?: any } | GPXFile) { + super(); + if (gpx) { + this.attributes = gpx.attributes + this.metadata = gpx.metadata ?? {}; + this.metadata.author = { + name: 'gpx.studio', + link: { + attributes: { + href: 'https://gpx.studio', + } + } + }; + this.wpt = gpx.wpt ? gpx.wpt.map((waypoint) => new Waypoint(waypoint)) : []; + this.trk = gpx.trk ? gpx.trk.map((track) => new Track(track)) : []; + if (gpx.rte && gpx.rte.length > 0) { + this.trk = this.trk.concat(gpx.rte.map((route) => convertRouteToTrack(route))); + } + if (gpx.hasOwnProperty('_data')) { + this._data = gpx._data; + + if (!this._data.hasOwnProperty('style')) { + let style = this.getStyle(); + let fileStyle = {}; + if (style.color.length === 1) { + fileStyle['color'] = style.color[0]; + } + if (style.weight.length === 1) { + fileStyle['weight'] = style.weight[0]; + } + if (style.opacity.length === 1) { + fileStyle['opacity'] = style.opacity[0]; + } + if (Object.keys(fileStyle).length > 0) { + this.setStyle(fileStyle); + } + } + } + } else { + this.attributes = {}; + this.metadata = {}; + this.wpt = []; + this.trk = [new Track()]; + } + + this.trk.forEach((track, trackIndex) => { + track._data['trackIndex'] = trackIndex; + track.trkseg.forEach((segment, segmentIndex) => { + segment._data['trackIndex'] = trackIndex; + segment._data['segmentIndex'] = segmentIndex; + }); + }); + this.wpt.forEach((waypoint, waypointIndex) => { + waypoint._data['index'] = waypointIndex; + }); + } + + get children(): Array { + return this.trk; + } + + getSegment(trackIndex: number, segmentIndex: number): TrackSegment { + return this.trk[trackIndex].children[segmentIndex]; + } + + forEachSegment(callback: (segment: TrackSegment, trackIndex: number, segmentIndex: number) => void) { + this.trk.forEach((track, trackIndex) => { + track.children.forEach((segment, segmentIndex) => { + callback(segment, trackIndex, segmentIndex); + }); + }); + } + + getStyle(): MergedLineStyles { + return this.trk.map((track) => track.getStyle()).reduce((acc, style) => { + if (style) { + if (style.color && !acc.color.includes(style.color)) { + acc.color.push(style.color); + } + if (style.opacity && !acc.opacity.includes(style.opacity)) { + acc.opacity.push(style.opacity); + } + if (style.weight && !acc.weight.includes(style.weight)) { + acc.weight.push(style.weight); + } + } + return acc; + }, { + color: [], + opacity: [], + weight: [] + }); + } + + clone(): GPXFile { + return new GPXFile({ + attributes: cloneJSON(this.attributes), + metadata: cloneJSON(this.metadata), + wpt: this.wpt.map((waypoint) => waypoint.clone()), + trk: this.trk.map((track) => track.clone()), + rte: [], + _data: cloneJSON(this._data), + }); + } + + toGeoJSON(): GeoJSON.FeatureCollection { + return { + type: "FeatureCollection", + features: this.children.flatMap((child) => child.toGeoJSON()) + }; + } + + toGPXFileType(exclude: string[] = []): GPXFileType { + let file: GPXFileType = { + attributes: cloneJSON(this.attributes), + metadata: {}, + wpt: this.wpt.map((wpt) => wpt.toWaypointType(exclude)), + trk: this.trk.map((track) => track.toTrackType(exclude)), + rte: [], + }; + if (this.metadata) { + if (this.metadata.name) { + file.metadata.name = this.metadata.name; + } + if (this.metadata.desc) { + file.metadata.desc = this.metadata.desc; + } + if (this.metadata.author) { + file.metadata.author = cloneJSON(this.metadata.author); + } + if (this.metadata.link) { + file.metadata.link = cloneJSON(this.metadata.link); + } + if (this.metadata.time && !exclude.includes('time')) { + file.metadata.time = this.metadata.time; + } + } + return file; + } + + // Producers + replaceTracks(start: number, end: number, tracks: Track[]) { + if (this._data.style) { + tracks.forEach((track) => track.setStyle(this._data.style, false)); + } + this.trk.splice(start, end - start + 1, ...tracks); + } + + replaceTrackSegments(trackIndex: number, start: number, end: number, segments: TrackSegment[]) { + this.trk[trackIndex].replaceTrackSegments(start, end, segments); + } + + replaceTrackPoints(trackIndex: number, segmentIndex: number, start: number, end: number, points: TrackPoint[], speed?: number, startTime?: Date) { + this.trk[trackIndex].replaceTrackPoints(segmentIndex, start, end, points, speed, startTime); + } + + replaceWaypoints(start: number, end: number, waypoints: Waypoint[]) { + this.wpt.splice(start, end - start + 1, ...waypoints); + } + + reverse() { + return this._reverse(this.getEndTimestamp(), this.getStartTimestamp()); + } + + reverseTrack(trackIndex: number) { + this.trk[trackIndex]._reverse(); + } + + reverseTrackSegment(trackIndex: number, segmentIndex: number) { + this.trk[trackIndex].reverseTrackSegment(segmentIndex); + } + + roundTrip() { + this.trk.forEach((track) => { + track.roundTrip(); + }); + } + + roundTripTrack(trackIndex: number) { + this.trk[trackIndex].roundTrip(); + } + + roundTripTrackSegment(trackIndex: number, segmentIndex: number) { + this.trk[trackIndex].roundTripTrackSegment(segmentIndex); + } + + crop(start: number, end: number, trackIndices?: number[], segmentIndices?: number[]) { + let i = 0; + let trackIndex = 0; + while (i < this.trk.length) { + let length = this.trk[i].getNumberOfTrackPoints(); + if (trackIndices === undefined || trackIndices.includes(trackIndex)) { + if (start >= length || end < 0) { + this.trk.splice(i, 1); + } else { + if (start > 0 || end < length - 1) { + this.trk[i].crop(Math.max(0, start), Math.min(length - 1, end), segmentIndices); + } + i++; + } + start -= length; + end -= length; + } else { + i++; + } + trackIndex++; + } + } + + clean(bounds: [Coordinates, Coordinates], inside: boolean, deleteTrackPoints: boolean, deleteWaypoints: boolean, trackIndices?: number[], segmentIndices?: number[], waypointIndices?: number[]) { + if (deleteTrackPoints) { + let i = 0; + let trackIndex = 0; + while (i < this.trk.length) { + if (trackIndices === undefined || trackIndices.includes(trackIndex)) { + this.trk[i].clean(bounds, inside, segmentIndices); + if (this.trk[i].getNumberOfTrackPoints() === 0) { + this.trk.splice(i, 1); + } else { + i++; + } + } else { + i++; + } + trackIndex++; + } + } + if (deleteWaypoints) { + let og = getOriginal(this); // Read as much as possible from the original object because it is faster + let wpt = og.wpt.filter((point, waypointIndex) => { + if (waypointIndices === undefined || waypointIndices.includes(waypointIndex)) { + let inBounds = point.attributes.lat >= bounds[0].lat && point.attributes.lat <= bounds[1].lat && point.attributes.lon >= bounds[0].lon && point.attributes.lon <= bounds[1].lon; + return inBounds !== inside; + } else { + return true; + } + }); + this.wpt = freeze(wpt); // Pre-freeze the array, faster as well + } + } + + changeTimestamps(startTime: Date, speed: number, ratio: number, trackIndex?: number, segmentIndex?: number) { + let lastPoint = undefined; + this.trk.forEach((track, index) => { + if (trackIndex === undefined || trackIndex === index) { + track.changeTimestamps(startTime, speed, ratio, lastPoint, segmentIndex); + } + }); + } + + createArtificialTimestamps(startTime: Date, totalTime: number, trackIndex?: number, segmentIndex?: number) { + let lastPoint = undefined; + this.trk.forEach((track, index) => { + if (trackIndex === undefined || trackIndex === index) { + track.createArtificialTimestamps(startTime, totalTime, lastPoint, segmentIndex); + } + }); + } + + addElevation(elevations: number[], trackIndices?: number[], segmentIndices?: number[], waypointIndices?: number[]) { + let index = 0; + this.trk.forEach((track, trackIndex) => { + if (trackIndices === undefined || trackIndices.includes(trackIndex)) { + track.trkseg.forEach((segment, segmentIndex) => { + if (segmentIndices === undefined || segmentIndices.includes(segmentIndex)) { + segment.trkpt.forEach((point) => { + point.ele = elevations[index++]; + }); + } + }); + } + }); + this.wpt.forEach((waypoint, waypointIndex) => { + if (waypointIndices === undefined || waypointIndices.includes(waypointIndex)) { + waypoint.ele = elevations[index++]; + } + }); + elevations.splice(0, index); + } + + setStyle(style: LineStyleExtension) { + this.trk.forEach((track) => { + track.setStyle(style); + }); + if (!this._data.style) { + this._data.style = {}; + } + if (style.color) { + this._data.style.color = style.color.replace('#', ''); + } + if (style.opacity) { + this._data.style.opacity = style.opacity; + } + if (style.weight) { + this._data.style.weight = style.weight; + } + } + + setHidden(hidden: boolean, trackIndices?: number[], segmentIndices?: number[]) { + let allHidden = hidden; + this.trk.forEach((track, index) => { + if (trackIndices === undefined || trackIndices.includes(index)) { + track.setHidden(hidden, segmentIndices); + } else { + allHidden = allHidden && (track._data.hidden === true); + } + }); + this.wpt.forEach((waypoint) => { + if (trackIndices === undefined && segmentIndices === undefined) { + waypoint.setHidden(hidden); + } else { + allHidden = allHidden && (waypoint._data.hidden === true); + } + }); + + if (trackIndices === undefined && segmentIndices === undefined) { + this._data.hiddenWpt = hidden; + } + + this._data.hidden = allHidden; + } + + setHiddenWaypoints(hidden: boolean, waypointIndices?: number[]) { + let allHiddenWpt = hidden; + this.wpt.forEach((waypoint, index) => { + if (waypointIndices === undefined || waypointIndices.includes(index)) { + waypoint.setHidden(hidden); + } else { + allHiddenWpt = allHiddenWpt && (waypoint._data.hidden === true); + } + }); + + let allHiddenTrk = true; + this.trk.forEach((track) => { + allHiddenTrk = allHiddenTrk && (track._data.hidden === true); + }); + + this._data.hiddenWpt = allHiddenWpt; + this._data.hidden = allHiddenTrk && allHiddenWpt; + } +}; + +// A class that represents a Track in a GPX file +export class Track extends GPXTreeNode { + [immerable] = true; + + name?: string; + cmt?: string; + desc?: string; + src?: string; + link?: Link; + type?: string; + extensions?: TrackExtensions; + trkseg: TrackSegment[]; + + constructor(track?: TrackType & { _data?: any } | Track) { + super(); + if (track) { + this.name = track.name; + this.cmt = track.cmt; + this.desc = track.desc; + this.src = track.src; + this.link = track.link; + this.type = track.type; + this.trkseg = track.trkseg ? track.trkseg.map((seg) => new TrackSegment(seg)) : []; + this.extensions = track.extensions; + if (track.hasOwnProperty('_data')) { + this._data = track._data; + } + } else { + this.trkseg = [new TrackSegment()]; + } + } + + get children(): Array { + return this.trkseg; + } + + clone(): Track { + return new Track({ + name: this.name, + cmt: this.cmt, + desc: this.desc, + src: this.src, + link: cloneJSON(this.link), + type: this.type, + extensions: cloneJSON(this.extensions), + trkseg: this.trkseg.map((seg) => seg.clone()), + _data: cloneJSON(this._data), + }); + } + + getStyle(): LineStyleExtension | undefined { + if (this.extensions && this.extensions['gpx_style:line']) { + if (this.extensions["gpx_style:line"].color) { + return { + ...this.extensions["gpx_style:line"], + color: `#${this.extensions["gpx_style:line"].color}` + } + } + return this.extensions['gpx_style:line']; + } + return undefined; + } + + toGeoJSON(): GeoJSON.Feature[] { + return this.children.map((child) => { + let geoJSON = child.toGeoJSON(); + if (this.extensions && this.extensions['gpx_style:line']) { + if (this.extensions['gpx_style:line'].color) { + geoJSON.properties['color'] = `#${this.extensions['gpx_style:line'].color}`; + } + if (this.extensions['gpx_style:line'].opacity) { + geoJSON.properties['opacity'] = this.extensions['gpx_style:line'].opacity; + } + if (this.extensions['gpx_style:line'].weight) { + geoJSON.properties['weight'] = this.extensions['gpx_style:line'].weight; + } + } + return geoJSON; + }); + } + + toTrackType(exclude: string[] = []): TrackType { + return { + name: this.name, + cmt: this.cmt, + desc: this.desc, + src: this.src, + link: this.link, + type: this.type, + extensions: this.extensions, + trkseg: this.trkseg.map((seg) => seg.toTrackSegmentType(exclude)), + }; + } + + // Producers + replaceTrackSegments(start: number, end: number, segments: TrackSegment[]) { + this.trkseg.splice(start, end - start + 1, ...segments); + } + + replaceTrackPoints(segmentIndex: number, start: number, end: number, points: TrackPoint[], speed?: number, startTime?: Date) { + this.trkseg[segmentIndex].replaceTrackPoints(start, end, points, speed, startTime); + } + + reverseTrackSegment(segmentIndex: number) { + this.trkseg[segmentIndex]._reverse(this.trkseg[segmentIndex].getEndTimestamp(), this.trkseg[segmentIndex].getStartTimestamp()); + } + + roundTrip() { + this.trkseg.forEach((segment) => { + segment.roundTrip(); + }); + } + + roundTripTrackSegment(segmentIndex: number) { + this.trkseg[segmentIndex].roundTrip(); + } + + crop(start: number, end: number, segmentIndices?: number[]) { + let i = 0; + let segmentIndex = 0; + while (i < this.trkseg.length) { + let length = this.trkseg[i].getNumberOfTrackPoints(); + if (segmentIndices === undefined || segmentIndices.includes(segmentIndex)) { + if (start >= length || end < 0) { + this.trkseg.splice(i, 1); + } else { + if (start > 0 || end < length - 1) { + this.trkseg[i].crop(Math.max(0, start), Math.min(length - 1, end)); + } + i++; + } + start -= length; + end -= length; + } else { + i++; + } + segmentIndex++; + } + } + + clean(bounds: [Coordinates, Coordinates], inside: boolean, segmentIndices?: number[]) { + let i = 0; + let segmentIndex = 0; + while (i < this.trkseg.length) { + if (segmentIndices === undefined || segmentIndices.includes(segmentIndex)) { + this.trkseg[i].clean(bounds, inside); + if (this.trkseg[i].getNumberOfTrackPoints() === 0) { + this.trkseg.splice(i, 1); + } else { + i++; + } + } else { + i++; + } + segmentIndex++; + } + } + + changeTimestamps(startTime: Date, speed: number, ratio: number, lastPoint?: TrackPoint, segmentIndex?: number) { + this.trkseg.forEach((segment, index) => { + if (segmentIndex === undefined || segmentIndex === index) { + segment.changeTimestamps(startTime, speed, ratio, lastPoint); + if (segment.trkpt.length > 0) { + lastPoint = segment.trkpt[segment.trkpt.length - 1]; + } + } + }); + } + + createArtificialTimestamps(startTime: Date, totalTime: number, lastPoint: TrackPoint | undefined, segmentIndex?: number) { + this.trkseg.forEach((segment, index) => { + if (segmentIndex === undefined || segmentIndex === index) { + segment.createArtificialTimestamps(startTime, totalTime, lastPoint); + if (segment.trkpt.length > 0) { + lastPoint = segment.trkpt[segment.trkpt.length - 1]; + } + } + }); + } + + setStyle(style: LineStyleExtension, force: boolean = true) { + if (!this.extensions) { + this.extensions = {}; + } + if (!this.extensions['gpx_style:line']) { + this.extensions['gpx_style:line'] = {}; + } + if (style.color !== undefined && (force || this.extensions['gpx_style:line'].color === undefined)) { + this.extensions['gpx_style:line'].color = style.color.replace('#', ''); + } + if (style.opacity !== undefined && (force || this.extensions['gpx_style:line'].opacity === undefined)) { + this.extensions['gpx_style:line'].opacity = style.opacity; + } + if (style.weight !== undefined && (force || this.extensions['gpx_style:line'].weight === undefined)) { + this.extensions['gpx_style:line'].weight = style.weight; + } + } + + setHidden(hidden: boolean, segmentIndices?: number[]) { + let allHidden = hidden; + this.trkseg.forEach((segment, index) => { + if (segmentIndices === undefined || segmentIndices.includes(index)) { + segment.setHidden(hidden); + } else { + allHidden = allHidden && (segment._data.hidden === true); + } + }); + this._data.hidden = allHidden; + } +} + +// A class that represents a TrackSegment in a GPX file +export class TrackSegment extends GPXTreeLeaf { + [immerable] = true; + + trkpt: TrackPoint[]; + + constructor(segment?: TrackSegmentType & { _data?: any } | TrackSegment) { + super(); + if (segment) { + this.trkpt = segment.trkpt.map((point) => new TrackPoint(point)); + if (segment.hasOwnProperty('_data')) { + this._data = segment._data; + } + } else { + this.trkpt = []; + } + } + + _computeStatistics(): GPXStatistics { + let statistics = new GPXStatistics(); + + statistics.local.points = this.trkpt.map((point) => point); + + statistics.local.elevation.smoothed = this._computeSmoothedElevation(); + statistics.local.slope.at = this._computeSlope(); + + const points = this.trkpt; + for (let i = 0; i < points.length; i++) { + points[i]._data['index'] = i; + + // distance + let dist = 0; + if (i > 0) { + dist = distance(points[i - 1].getCoordinates(), points[i].getCoordinates()) / 1000; + + statistics.global.distance.total += dist; + } + + statistics.local.distance.total.push(statistics.global.distance.total); + + // elevation + if (i > 0) { + const ele = statistics.local.elevation.smoothed[i] - statistics.local.elevation.smoothed[i - 1]; + if (ele > 0) { + statistics.global.elevation.gain += ele; + } else if (ele < 0) { + statistics.global.elevation.loss -= ele; + } + } + + statistics.local.elevation.gain.push(statistics.global.elevation.gain); + statistics.local.elevation.loss.push(statistics.global.elevation.loss); + + // time + if (points[i].time === undefined) { + statistics.local.time.total.push(0); + } else { + if (statistics.global.time.start === undefined) { + statistics.global.time.start = points[i].time; + } + statistics.global.time.end = points[i].time; + statistics.local.time.total.push((points[i].time.getTime() - statistics.global.time.start.getTime()) / 1000); + } + + // speed + let speed = 0; + if (i > 0 && points[i - 1].time !== undefined && points[i].time !== undefined) { + const time = (points[i].time.getTime() - points[i - 1].time.getTime()) / 1000; + speed = dist / (time / 3600); + + if (speed >= 0.5 && speed <= 1500) { + statistics.global.distance.moving += dist; + statistics.global.time.moving += time; + } + } + + statistics.local.distance.moving.push(statistics.global.distance.moving); + statistics.local.time.moving.push(statistics.global.time.moving); + + // bounds + statistics.global.bounds.southWest.lat = Math.min(statistics.global.bounds.southWest.lat, points[i].attributes.lat); + statistics.global.bounds.southWest.lon = Math.min(statistics.global.bounds.southWest.lon, points[i].attributes.lon); + statistics.global.bounds.northEast.lat = Math.max(statistics.global.bounds.northEast.lat, points[i].attributes.lat); + statistics.global.bounds.northEast.lon = Math.max(statistics.global.bounds.northEast.lon, points[i].attributes.lon); + + // extensions + if (points[i].extensions) { + if (points[i].extensions["gpxtpx:TrackPointExtension"] && points[i].extensions["gpxtpx:TrackPointExtension"]["gpxtpx:atemp"]) { + let atemp = points[i].extensions["gpxtpx:TrackPointExtension"]["gpxtpx:atemp"]; + statistics.global.atemp.avg = (statistics.global.atemp.count * statistics.global.atemp.avg + atemp) / (statistics.global.atemp.count + 1); + statistics.global.atemp.count++; + } + if (points[i].extensions["gpxtpx:TrackPointExtension"] && points[i].extensions["gpxtpx:TrackPointExtension"]["gpxtpx:hr"]) { + let hr = points[i].extensions["gpxtpx:TrackPointExtension"]["gpxtpx:hr"]; + statistics.global.hr.avg = (statistics.global.hr.count * statistics.global.hr.avg + hr) / (statistics.global.hr.count + 1); + statistics.global.hr.count++; + } + if (points[i].extensions["gpxtpx:TrackPointExtension"] && points[i].extensions["gpxtpx:TrackPointExtension"]["gpxtpx:cad"]) { + let cad = points[i].extensions["gpxtpx:TrackPointExtension"]["gpxtpx:cad"]; + statistics.global.cad.avg = (statistics.global.cad.count * statistics.global.cad.avg + cad) / (statistics.global.cad.count + 1); + statistics.global.cad.count++; + } + if (points[i].extensions["gpxpx:PowerExtension"] && points[i].extensions["gpxpx:PowerExtension"]["gpxpx:PowerInWatts"]) { + let power = points[i].extensions["gpxpx:PowerExtension"]["gpxpx:PowerInWatts"]; + statistics.global.power.avg = (statistics.global.power.count * statistics.global.power.avg + power) / (statistics.global.power.count + 1); + statistics.global.power.count++; + } + } + + if (i > 0 && points[i - 1].extensions && points[i - 1].extensions["gpxtpx:TrackPointExtension"] && points[i - 1].extensions["gpxtpx:TrackPointExtension"]["gpxtpx:Extensions"] && points[i - 1].extensions["gpxtpx:TrackPointExtension"]["gpxtpx:Extensions"].surface) { + let surface = points[i - 1].extensions["gpxtpx:TrackPointExtension"]["gpxtpx:Extensions"].surface; + if (statistics.global.surface[surface] === undefined) { + statistics.global.surface[surface] = 0; + } + statistics.global.surface[surface] += dist; + } + } + + [statistics.local.slope.segment, statistics.local.slope.length] = this._computeSlopeSegments(statistics); + + statistics.global.time.total = statistics.global.time.start && statistics.global.time.end ? (statistics.global.time.end.getTime() - statistics.global.time.start.getTime()) / 1000 : 0; + statistics.global.speed.total = statistics.global.time.total > 0 ? statistics.global.distance.total / (statistics.global.time.total / 3600) : 0; + statistics.global.speed.moving = statistics.global.time.moving > 0 ? statistics.global.distance.moving / (statistics.global.time.moving / 3600) : 0; + + statistics.local.speed = distanceWindowSmoothingWithDistanceAccumulator(points, 200, (accumulated, start, end) => (points[start].time && points[end].time) ? 3600 * accumulated / (points[end].time.getTime() - points[start].time.getTime()) : undefined); + + return statistics; + } + + _computeSmoothedElevation(): number[] { + const points = this.trkpt; + + let smoothed = distanceWindowSmoothing(points, 100, (index) => points[index].ele ?? 0, (accumulated, start, end) => accumulated / (end - start + 1)); + + if (points.length > 0) { + smoothed[0] = points[0].ele ?? 0; + smoothed[points.length - 1] = points[points.length - 1].ele ?? 0; + } + + return smoothed; + } + + _computeSlope(): number[] { + const points = this.trkpt; + + return distanceWindowSmoothingWithDistanceAccumulator(points, 50, (accumulated, start, end) => 100 * ((points[end].ele ?? 0) - (points[start].ele ?? 0)) / (accumulated > 0 ? accumulated : 1)); + } + + _computeSlopeSegments(statistics: GPXStatistics): [number[], number[]] { + let simplified = ramerDouglasPeucker(this.trkpt, 20, getElevationDistanceFunction(statistics)); + + let slope = []; + let length = []; + + for (let i = 0; i < simplified.length - 1; i++) { + let start = simplified[i].point._data.index; + let end = simplified[i + 1].point._data.index; + let dist = statistics.local.distance.total[end] - statistics.local.distance.total[start]; + let ele = (simplified[i + 1].point.ele ?? 0) - (simplified[i].point.ele ?? 0); + + for (let j = start; j < end + (i + 1 === simplified.length - 1 ? 1 : 0); j++) { + slope.push(0.1 * ele / dist); + length.push(dist); + } + } + + return [slope, length]; + } + + getNumberOfTrackPoints(): number { + return this.trkpt.length; + } + + getStartTimestamp(): Date | undefined { + if (this.trkpt.length === 0) { + return undefined; + } + return this.trkpt[0].time; + } + + getEndTimestamp(): Date | undefined { + if (this.trkpt.length === 0) { + return undefined; + } + return this.trkpt[this.trkpt.length - 1].time; + } + + getStatistics(): GPXStatistics { + return this._computeStatistics(); + } + + getSegments(): TrackSegment[] { + return [this]; + } + + getTrackPoints(): TrackPoint[] { + return this.trkpt; + } + + toGeoJSON(): GeoJSON.Feature { + return { + type: "Feature", + geometry: { + type: "LineString", + coordinates: this.trkpt.map((point) => [point.attributes.lon, point.attributes.lat]) + }, + properties: {} + }; + } + + toTrackSegmentType(exclude: string[] = []): TrackSegmentType { + return { + trkpt: this.trkpt.map((point) => point.toTrackPointType(exclude)) + }; + } + + clone(): TrackSegment { + return new TrackSegment({ + trkpt: this.trkpt.map((point) => point.clone()), + _data: cloneJSON(this._data), + }); + } + + // Producers + replaceTrackPoints(start: number, end: number, points: TrackPoint[], speed?: number, startTime?: Date) { + let og = getOriginal(this); // Read as much as possible from the original object because it is faster + let trkpt = og.trkpt.slice(); + + if (speed !== undefined || (trkpt.length > 0 && trkpt[0].time !== undefined)) { + // Must handle timestamps (either segment has timestamps or the new points will have timestamps) + if (start > 0 && trkpt[0].time === undefined) { + // Add timestamps to points before [start, end] because they are missing + trkpt.splice(0, 0, ...withTimestamps(trkpt.splice(0, start), speed, undefined, startTime)); + } + if (points.length > 0) { + // Adapt timestamps of the new points + let last = start > 0 ? trkpt[start - 1] : undefined; + if (points[0].time === undefined || (points.length > 1 && points[1].time === undefined)) { + // Add timestamps to the new points because they are missing + points = withTimestamps(points, speed, last, startTime); + } else if (last !== undefined && points[0].time < last.time) { + // Adapt timestamps of the new points because they are too early + points = withShiftedAndCompressedTimestamps(points, speed, 1, last); + } + } + if (end < trkpt.length - 1) { + // Adapt timestamps of points after [start, end] + let last = points.length > 0 ? points[points.length - 1] : start > 0 ? trkpt[start - 1] : undefined; + if (trkpt[end + 1].time === undefined) { + // Add timestamps to points after [start, end] because they are missing + trkpt.splice(end + 1, 0, ...withTimestamps(trkpt.splice(end + 1), speed, last, startTime)); + } else if (last !== undefined && trkpt[end + 1].time < last.time) { + // Adapt timestamps of points after [start, end] because they are too early + trkpt.splice(end + 1, 0, ...withShiftedAndCompressedTimestamps(trkpt.splice(end + 1), speed, 1, last)); + } + } + } + + trkpt.splice(start, end - start + 1, ...points); + this.trkpt = freeze(trkpt); // Pre-freeze the array, faster as well + } + + _reverse(originalNextTimestamp?: Date, newPreviousTimestamp?: Date) { + let og = getOriginal(this); // Read as much as possible from the original object because it is faster + let originalStartTimestamp = og.getStartTimestamp(); + let originalEndTimestamp = og.getEndTimestamp(); + if (!newPreviousTimestamp) { + newPreviousTimestamp = originalStartTimestamp; + } + if (newPreviousTimestamp && originalEndTimestamp && !originalNextTimestamp) { + originalNextTimestamp = new Date(newPreviousTimestamp.getTime() + originalEndTimestamp.getTime() - originalStartTimestamp.getTime()); + } + if (originalNextTimestamp !== undefined && newPreviousTimestamp !== undefined && originalEndTimestamp !== undefined) { + let newStartTimestamp = new Date( + newPreviousTimestamp.getTime() + originalNextTimestamp.getTime() - originalEndTimestamp.getTime() + ); + + let trkpt = og.trkpt.map((point, i) => new TrackPoint({ + attributes: cloneJSON(point.attributes), + ele: point.ele, + time: new Date( + newStartTimestamp.getTime() + (originalEndTimestamp.getTime() - og.trkpt[i].time.getTime()) + ), + extensions: cloneJSON(point.extensions), + _data: cloneJSON(point._data), + })); + + trkpt.reverse(); + + this.trkpt = freeze(trkpt); // Pre-freeze the array, faster as well + } else { + this.trkpt.reverse(); + } + } + + roundTrip() { + let og = getOriginal(this); // Read as much as possible from the original object because it is faster + let newSegment = og.clone(); + newSegment._reverse(newSegment.getEndTimestamp(), newSegment.getEndTimestamp()); + this.replaceTrackPoints(this.trkpt.length, this.trkpt.length, newSegment.trkpt); + } + + crop(start: number, end: number) { + this.trkpt = this.trkpt.slice(start, end + 1); + } + + clean(bounds: [Coordinates, Coordinates], inside: boolean) { + let og = getOriginal(this); // Read as much as possible from the original object because it is faster + let trkpt = og.trkpt.filter((point) => { + let inBounds = point.attributes.lat >= bounds[0].lat && point.attributes.lat <= bounds[1].lat && point.attributes.lon >= bounds[0].lon && point.attributes.lon <= bounds[1].lon; + return inBounds !== inside; + }); + this.trkpt = freeze(trkpt); // Pre-freeze the array, faster as well + } + + changeTimestamps(startTime: Date, speed: number, ratio: number, lastPoint?: TrackPoint) { + if (lastPoint === undefined && this.trkpt.length > 0) { + lastPoint = this.trkpt[0].clone(); + lastPoint.time = startTime; + } + + let og = getOriginal(this); // Read as much as possible from the original object because it is faster + if (og.trkpt.length > 0 && og.trkpt[0].time === undefined) { + let trkpt = withTimestamps(og.trkpt, speed, lastPoint, startTime); + this.trkpt = freeze(trkpt); // Pre-freeze the array, faster as well + } else { + let trkpt = withShiftedAndCompressedTimestamps(og.trkpt, speed, ratio, lastPoint); + this.trkpt = freeze(trkpt); // Pre-freeze the array, faster as well + } + } + + createArtificialTimestamps(startTime: Date, totalTime: number, lastPoint: TrackPoint | undefined) { + let og = getOriginal(this); // Read as much as possible from the original object because it is faster + let slope = og._computeSlope(); + let trkpt = withArtificialTimestamps(og.trkpt, totalTime, lastPoint, startTime, slope); + this.trkpt = freeze(trkpt); // Pre-freeze the array, faster as well + } + + setHidden(hidden: boolean) { + this._data.hidden = hidden; + } +}; + +export class TrackPoint { + [immerable] = true; + + attributes: Coordinates; + ele?: number; + time?: Date; + extensions?: TrackPointExtensions; + _data: { [key: string]: any } = {}; + + constructor(point: TrackPointType & { _data?: any } | TrackPoint) { + this.attributes = point.attributes; + this.ele = point.ele; + this.time = point.time; + this.extensions = point.extensions; + if (point.hasOwnProperty('_data')) { + this._data = point._data; + } + } + + getCoordinates(): Coordinates { + return this.attributes; + } + + setCoordinates(coordinates: Coordinates): void { + this.attributes = coordinates; + } + + getLatitude(): number { + return this.attributes.lat; + } + + getLongitude(): number { + return this.attributes.lon; + } + + getTemperature(): number { + return this.extensions && this.extensions['gpxtpx:TrackPointExtension'] && this.extensions['gpxtpx:TrackPointExtension']['gpxtpx:atemp'] ? this.extensions['gpxtpx:TrackPointExtension']['gpxtpx:atemp'] : undefined; + } + + getHeartRate(): number { + return this.extensions && this.extensions['gpxtpx:TrackPointExtension'] && this.extensions['gpxtpx:TrackPointExtension']['gpxtpx:hr'] ? this.extensions['gpxtpx:TrackPointExtension']['gpxtpx:hr'] : undefined; + } + + getCadence(): number { + return this.extensions && this.extensions['gpxtpx:TrackPointExtension'] && this.extensions['gpxtpx:TrackPointExtension']['gpxtpx:cad'] ? this.extensions['gpxtpx:TrackPointExtension']['gpxtpx:cad'] : undefined; + } + + getPower(): number { + return this.extensions && this.extensions["gpxpx:PowerExtension"] && this.extensions["gpxpx:PowerExtension"]["gpxpx:PowerInWatts"] ? this.extensions["gpxpx:PowerExtension"]["gpxpx:PowerInWatts"] : undefined; + } + + getSurface(): string { + return this.extensions && this.extensions["gpxtpx:TrackPointExtension"] && this.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:Extensions"] && this.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:Extensions"].surface ? this.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:Extensions"].surface : undefined; + } + + setSurface(surface: string): void { + if (!this.extensions) { + this.extensions = {}; + } + if (!this.extensions["gpxtpx:TrackPointExtension"]) { + this.extensions["gpxtpx:TrackPointExtension"] = {}; + } + if (!this.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:Extensions"]) { + this.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:Extensions"] = {}; + } + this.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:Extensions"]["surface"] = surface; + } + + toTrackPointType(exclude: string[] = []): TrackPointType { + let trkpt: TrackPointType = { + attributes: this.attributes, + ele: this.ele, + }; + if (!exclude.includes('time')) { + trkpt = { ...trkpt, time: this.time }; + } + if (this.extensions) { + trkpt = { + ...trkpt, extensions: { + "gpxtpx:TrackPointExtension": {}, + "gpxpx:PowerExtension": {}, + } + }; + if (this.extensions["gpxtpx:TrackPointExtension"] && this.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:atemp"] && !exclude.includes('atemp')) { + trkpt.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:atemp"] = this.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:atemp"]; + } + if (this.extensions["gpxtpx:TrackPointExtension"] && this.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:hr"] && !exclude.includes('hr')) { + trkpt.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:hr"] = this.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:hr"]; + } + if (this.extensions["gpxtpx:TrackPointExtension"] && this.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:cad"] && !exclude.includes('cad')) { + trkpt.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:cad"] = this.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:cad"]; + } + if (this.extensions["gpxpx:PowerExtension"] && this.extensions["gpxpx:PowerExtension"]["gpxpx:PowerInWatts"] && !exclude.includes('power')) { + trkpt.extensions["gpxpx:PowerExtension"]["gpxpx:PowerInWatts"] = this.extensions["gpxpx:PowerExtension"]["gpxpx:PowerInWatts"]; + } + if (this.extensions["gpxtpx:TrackPointExtension"] && this.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:Extensions"] && this.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:Extensions"].surface && !exclude.includes('surface')) { + trkpt.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:Extensions"] = { surface: this.extensions["gpxtpx:TrackPointExtension"]["gpxtpx:Extensions"].surface }; + } + } + return trkpt; + } + + clone(): TrackPoint { + return new TrackPoint({ + attributes: cloneJSON(this.attributes), + ele: this.ele, + time: this.time ? new Date(this.time.getTime()) : undefined, + extensions: cloneJSON(this.extensions), + _data: cloneJSON(this._data), + }); + } +}; + +export class Waypoint { + [immerable] = true; + + attributes: Coordinates; + ele?: number; + time?: Date; + name?: string; + cmt?: string; + desc?: string; + link?: Link; + sym?: string; + type?: string; + _data: { [key: string]: any } = {}; + + constructor(waypoint: WaypointType & { _data?: any } | Waypoint) { + this.attributes = waypoint.attributes; + this.ele = waypoint.ele; + this.time = waypoint.time; + this.name = waypoint.name; + this.cmt = waypoint.cmt; + this.desc = waypoint.desc; + this.link = waypoint.link; + this.sym = waypoint.sym; + this.type = waypoint.type; + if (waypoint.hasOwnProperty('_data')) { + this._data = waypoint._data; + } + } + + getCoordinates(): Coordinates { + return this.attributes; + } + + setCoordinates(coordinates: Coordinates): void { + this.attributes = coordinates; + } + + getLatitude(): number { + return this.attributes.lat; + } + + getLongitude(): number { + return this.attributes.lon; + } + + toWaypointType(exclude: string[] = []): WaypointType { + if (!exclude.includes('time')) { + return { + attributes: this.attributes, + ele: this.ele, + time: this.time, + name: this.name, + cmt: this.cmt, + desc: this.desc, + link: this.link, + sym: this.sym, + type: this.type, + + } + } else { + return { + attributes: this.attributes, + ele: this.ele, + name: this.name, + cmt: this.cmt, + desc: this.desc, + link: this.link, + sym: this.sym, + type: this.type, + }; + } + } + + clone(): Waypoint { + return new Waypoint({ + attributes: cloneJSON(this.attributes), + ele: this.ele, + time: this.time ? new Date(this.time.getTime()) : undefined, + name: this.name, + cmt: this.cmt, + desc: this.desc, + link: cloneJSON(this.link), + sym: this.sym, + type: this.type, + }); + } + + // Producers + setHidden(hidden: boolean) { + this._data.hidden = hidden; + } +} + +export class GPXStatistics { + global: { + distance: { + moving: number, + total: number, + }, + time: { + start: Date | undefined, + end: Date | undefined, + moving: number, + total: number, + }, + speed: { + moving: number, + total: number, + }, + elevation: { + gain: number, + loss: number, + }, + bounds: { + southWest: Coordinates, + northEast: Coordinates, + }, + atemp: { + avg: number, + count: number, + }, + hr: { + avg: number, + count: number, + }, + cad: { + avg: number, + count: number, + }, + power: { + avg: number, + count: number, + }, + surface: Record, + }; + local: { + points: TrackPoint[], + distance: { + moving: number[], + total: number[], + }, + time: { + moving: number[], + total: number[], + }, + speed: number[], + elevation: { + smoothed: number[], + gain: number[], + loss: number[], + }, + slope: { + at: number[], + segment: number[], + length: number[], + } + }; + + constructor() { + this.global = { + distance: { + moving: 0, + total: 0, + }, + time: { + start: undefined, + end: undefined, + moving: 0, + total: 0, + }, + speed: { + moving: 0, + total: 0, + }, + elevation: { + gain: 0, + loss: 0, + }, + bounds: { + southWest: { + lat: 90, + lon: 180, + }, + northEast: { + lat: -90, + lon: -180, + }, + }, + atemp: { + avg: 0, + count: 0, + }, + hr: { + avg: 0, + count: 0, + }, + cad: { + avg: 0, + count: 0, + }, + power: { + avg: 0, + count: 0, + }, + surface: {}, + }; + this.local = { + points: [], + distance: { + moving: [], + total: [], + }, + time: { + moving: [], + total: [], + }, + speed: [], + elevation: { + smoothed: [], + gain: [], + loss: [], + }, + slope: { + at: [], + segment: [], + length: [], + } + }; + } + + mergeWith(other: GPXStatistics): void { + this.local.points = this.local.points.concat(other.local.points); + + this.local.distance.total = this.local.distance.total.concat(other.local.distance.total.map((distance) => distance + this.global.distance.total)); + this.local.distance.moving = this.local.distance.moving.concat(other.local.distance.moving.map((distance) => distance + this.global.distance.moving)); + this.local.time.total = this.local.time.total.concat(other.local.time.total.map((time) => time + this.global.time.total)); + this.local.time.moving = this.local.time.moving.concat(other.local.time.moving.map((time) => time + this.global.time.moving)); + this.local.elevation.gain = this.local.elevation.gain.concat(other.local.elevation.gain.map((gain) => gain + this.global.elevation.gain)); + this.local.elevation.loss = this.local.elevation.loss.concat(other.local.elevation.loss.map((loss) => loss + this.global.elevation.loss)); + + this.local.speed = this.local.speed.concat(other.local.speed); + this.local.elevation.smoothed = this.local.elevation.smoothed.concat(other.local.elevation.smoothed); + this.local.slope.at = this.local.slope.at.concat(other.local.slope.at); + this.local.slope.segment = this.local.slope.segment.concat(other.local.slope.segment); + this.local.slope.length = this.local.slope.length.concat(other.local.slope.length); + + this.global.distance.total += other.global.distance.total; + this.global.distance.moving += other.global.distance.moving; + + this.global.time.start = this.global.time.start !== undefined && other.global.time.start !== undefined ? new Date(Math.min(this.global.time.start.getTime(), other.global.time.start.getTime())) : this.global.time.start ?? other.global.time.start; + this.global.time.end = this.global.time.end !== undefined && other.global.time.end !== undefined ? new Date(Math.max(this.global.time.end.getTime(), other.global.time.end.getTime())) : this.global.time.end ?? other.global.time.end; + + this.global.time.total += other.global.time.total; + this.global.time.moving += other.global.time.moving; + + this.global.speed.moving = this.global.time.moving > 0 ? this.global.distance.moving / (this.global.time.moving / 3600) : 0; + this.global.speed.total = this.global.time.total > 0 ? this.global.distance.total / (this.global.time.total / 3600) : 0; + + this.global.elevation.gain += other.global.elevation.gain; + this.global.elevation.loss += other.global.elevation.loss; + + this.global.bounds.southWest.lat = Math.min(this.global.bounds.southWest.lat, other.global.bounds.southWest.lat); + this.global.bounds.southWest.lon = Math.min(this.global.bounds.southWest.lon, other.global.bounds.southWest.lon); + this.global.bounds.northEast.lat = Math.max(this.global.bounds.northEast.lat, other.global.bounds.northEast.lat); + this.global.bounds.northEast.lon = Math.max(this.global.bounds.northEast.lon, other.global.bounds.northEast.lon); + + this.global.atemp.avg = (this.global.atemp.count * this.global.atemp.avg + other.global.atemp.count * other.global.atemp.avg) / Math.max(1, this.global.atemp.count + other.global.atemp.count); + this.global.atemp.count += other.global.atemp.count; + this.global.hr.avg = (this.global.hr.count * this.global.hr.avg + other.global.hr.count * other.global.hr.avg) / Math.max(1, this.global.hr.count + other.global.hr.count); + this.global.hr.count += other.global.hr.count; + this.global.cad.avg = (this.global.cad.count * this.global.cad.avg + other.global.cad.count * other.global.cad.avg) / Math.max(1, this.global.cad.count + other.global.cad.count); + this.global.cad.count += other.global.cad.count; + this.global.power.avg = (this.global.power.count * this.global.power.avg + other.global.power.count * other.global.power.avg) / Math.max(1, this.global.power.count + other.global.power.count); + this.global.power.count += other.global.power.count; + Object.keys(other.global.surface).forEach((surface) => { + if (this.global.surface[surface] === undefined) { + this.global.surface[surface] = 0; + } + this.global.surface[surface] += other.global.surface[surface]; + }); + } + + slice(start: number, end: number): GPXStatistics { + if (start < 0) { + start = 0; + } else if (start >= this.local.points.length) { + return new GPXStatistics(); + } + if (end < start) { + return new GPXStatistics(); + } else if (end >= this.local.points.length) { + end = this.local.points.length - 1; + } + + let statistics = new GPXStatistics(); + + statistics.local.points = this.local.points.slice(start, end + 1); + + statistics.global.distance.total = this.local.distance.total[end] - this.local.distance.total[start]; + statistics.global.distance.moving = this.local.distance.moving[end] - this.local.distance.moving[start]; + + statistics.global.time.start = this.local.points[start].time; + statistics.global.time.end = this.local.points[end].time; + + statistics.global.time.total = this.local.time.total[end] - this.local.time.total[start]; + statistics.global.time.moving = this.local.time.moving[end] - this.local.time.moving[start]; + + statistics.global.speed.moving = statistics.global.time.moving > 0 ? statistics.global.distance.moving / (statistics.global.time.moving / 3600) : 0; + statistics.global.speed.total = statistics.global.time.total > 0 ? statistics.global.distance.total / (statistics.global.time.total / 3600) : 0; + + statistics.global.elevation.gain = this.local.elevation.gain[end] - this.local.elevation.gain[start]; + statistics.global.elevation.loss = this.local.elevation.loss[end] - this.local.elevation.loss[start]; + + statistics.global.bounds.southWest.lat = this.global.bounds.southWest.lat; + statistics.global.bounds.southWest.lon = this.global.bounds.southWest.lon; + statistics.global.bounds.northEast.lat = this.global.bounds.northEast.lat; + statistics.global.bounds.northEast.lon = this.global.bounds.northEast.lon; + + statistics.global.atemp = this.global.atemp; + statistics.global.hr = this.global.hr; + statistics.global.cad = this.global.cad; + statistics.global.power = this.global.power; + + return statistics; + } +} + +const earthRadius = 6371008.8; +export function distance(coord1: TrackPoint | Coordinates, coord2: TrackPoint | Coordinates): number { + if (coord1 instanceof TrackPoint) { + coord1 = coord1.getCoordinates(); + } + if (coord2 instanceof TrackPoint) { + coord2 = coord2.getCoordinates(); + } + const rad = Math.PI / 180; + const lat1 = coord1.lat * rad; + const lat2 = coord2.lat * rad; + const a = Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos((coord2.lon - coord1.lon) * rad); + const maxMeters = earthRadius * Math.acos(Math.min(a, 1)); + return maxMeters; +} + +export function getElevationDistanceFunction(statistics: GPXStatistics) { + // x-coordinates are given by: statistics.local.distance.total[point._data.index] * 1000 + // y-coordinates are given by: point.ele + // Compute the distance between point3 and the line defined by point1 and point2 + return (point1: TrackPoint, point2: TrackPoint, point3: TrackPoint) => { + if (point1.ele === undefined || point2.ele === undefined || point3.ele === undefined) { + return 0; + } + let x1 = statistics.local.distance.total[point1._data.index] * 1000; + let x2 = statistics.local.distance.total[point2._data.index] * 1000; + let x3 = statistics.local.distance.total[point3._data.index] * 1000; + let y1 = point1.ele; + let y2 = point2.ele; + let y3 = point3.ele; + + let dist = Math.sqrt(Math.pow(y2 - y1, 2) + Math.pow(x2 - x1, 2)); + if (dist === 0) { + return Math.sqrt(Math.pow(x3 - x1, 2) + Math.pow(y3 - y1, 2)); + } + + return Math.abs((y2 - y1) * x3 - (x2 - x1) * y3 + x2 * y1 - y2 * x1) / dist; + } +} + +function distanceWindowSmoothing(points: TrackPoint[], distanceWindow: number, accumulate: (index: number) => number, compute: (accumulated: number, start: number, end: number) => number, remove?: (index: number) => number): number[] { + let result = []; + + let start = 0, end = 0, accumulated = 0; + for (var i = 0; i < points.length; i++) { + while (start + 1 < i && distance(points[start].getCoordinates(), points[i].getCoordinates()) > distanceWindow) { + if (remove) { + accumulated -= remove(start); + } else { + accumulated -= accumulate(start); + } + start++; + } + while (end < points.length && distance(points[i].getCoordinates(), points[end].getCoordinates()) <= distanceWindow) { + accumulated += accumulate(end); + end++; + } + result[i] = compute(accumulated, start, end - 1); + } + + return result; +} + +function distanceWindowSmoothingWithDistanceAccumulator(points: TrackPoint[], distanceWindow: number, compute: (accumulated: number, start: number, end: number) => number): number[] { + return distanceWindowSmoothing(points, distanceWindow, (index) => index > 0 ? distance(points[index - 1].getCoordinates(), points[index].getCoordinates()) : 0, compute, (index) => distance(points[index].getCoordinates(), points[index + 1].getCoordinates())); +} + +function withTimestamps(points: TrackPoint[], speed: number, lastPoint: TrackPoint | undefined, startTime?: Date): TrackPoint[] { + let last = lastPoint; + if (last === undefined) { + last = points[0].clone(); + last.time = startTime; + } + return points.map((point) => { + let time = getTimestamp(last, point, speed); + last = point.clone(); + last.time = time; + return last; + }); +} + +function withShiftedAndCompressedTimestamps(points: TrackPoint[], speed: number, ratio: number, lastPoint: TrackPoint): TrackPoint[] { + let start = getTimestamp(lastPoint, points[0], speed); + let last = points[0]; + return points.map((point) => { + let pt = point.clone(); + if (point.time === undefined) { + pt.time = getTimestamp(last, point, speed); + } else { + pt.time = new Date(start.getTime() + ratio * (point.time.getTime() - points[0].time.getTime())); + } + last = pt; + return pt; + }); +} + +function withArtificialTimestamps(points: TrackPoint[], totalTime: number, lastPoint: TrackPoint | undefined, startTime: Date, slope: number[]): TrackPoint[] { + let weight = []; + let totalWeight = 0; + + for (let i = 0; i < points.length - 1; i++) { + let dist = distance(points[i].getCoordinates(), points[i + 1].getCoordinates()); + let w = dist * (0.5 + 1 / (1 + Math.exp(- 0.2 * slope[i]))); + weight.push(w); + totalWeight += w; + } + + let last = lastPoint; + return points.map((point, i) => { + let pt = point.clone(); + if (i === 0) { + pt.time = lastPoint?.time ?? startTime; + } else { + pt.time = new Date(last.time.getTime() + totalTime * 1000 * weight[i - 1] / totalWeight); + } + last = pt; + return pt; + }); +} + +function getTimestamp(a: TrackPoint, b: TrackPoint, speed: number): Date { + let dist = distance(a.getCoordinates(), b.getCoordinates()) / 1000; + return new Date(a.time.getTime() + 1000 * 3600 * dist / speed); +} + +function getOriginal(obj: any): any { + while (isDraft(obj)) { + obj = original(obj); + } + return obj; +} + +export type MergedLineStyles = { + color: string[] + opacity: number[], + weight: number[], +}; + +function convertRouteToTrack(route: RouteType): Track { + const track = new Track({ + name: route.name, + cmt: route.cmt, + desc: route.desc, + src: route.src, + link: route.link, + type: route.type, + extensions: route.extensions, + trkseg: [], + }); + + if (route.rtept) { + const segment = new TrackSegment(); + + route.rtept.forEach((rpt) => { + if (rpt.extensions && rpt.extensions['gpxx:RoutePointExtension'] && rpt.extensions['gpxx:RoutePointExtension']["gpxx:rpt"]) { + rpt.extensions['gpxx:RoutePointExtension']["gpxx:rpt"].forEach((rptExtension) => { + segment.trkpt.push(new TrackPoint({ + attributes: rptExtension.attributes, + })); + }); + } else { + segment.trkpt.push(new TrackPoint({ + attributes: rpt.attributes, + ele: rpt.ele, + time: rpt.time, + })); + } + }); + + track.trkseg.push(segment); + } + + return track; +} diff --git a/gpx/src/index.ts b/gpx/src/index.ts new file mode 100644 index 0000000..94790a7 --- /dev/null +++ b/gpx/src/index.ts @@ -0,0 +1,5 @@ +export * from './gpx'; +export { Coordinates, LineStyleExtension, WaypointType } from './types'; +export { parseGPX, buildGPX } from './io'; +export * from './simplify'; + diff --git a/gpx/src/io.ts b/gpx/src/io.ts new file mode 100644 index 0000000..f40e29f --- /dev/null +++ b/gpx/src/io.ts @@ -0,0 +1,118 @@ +import { XMLParser, XMLBuilder } from "fast-xml-parser"; +import { GPXFileType } from "./types"; +import { GPXFile } from "./gpx"; + +export function parseGPX(gpxData: string): GPXFile { + const parser = new XMLParser({ + ignoreAttributes: false, + attributeNamePrefix: "", + attributesGroupName: 'attributes', + isArray(name: string) { + return name === 'trk' || name === 'trkseg' || name === 'trkpt' || name === 'wpt' || name === 'rte' || name === 'rtept' || name === 'gpxx:rpt'; + }, + attributeValueProcessor(attrName, attrValue, jPath) { + if (attrName === 'lat' || attrName === 'lon') { + return parseFloat(attrValue); + } + return attrValue; + }, + transformTagName(tagName: string) { + if (tagName === 'power') { + // Transform the simple tag to the more complex tag, the nested tag is then handled by the tagValueProcessor + return 'gpxpx:PowerExtension'; + } + return tagName; + }, + parseTagValue: false, + tagValueProcessor(tagName, tagValue, jPath, hasAttributes, isLeafNode) { + if (isLeafNode) { + if (tagName === 'ele') { + return parseFloat(tagValue); + } + + if (tagName === 'time') { + return new Date(tagValue); + } + + if (tagName === 'gpxtpx:atemp' || tagName === 'gpxtpx:hr' || tagName === 'gpxtpx:cad' || tagName === 'gpxpx:PowerInWatts' || tagName === 'opacity' || tagName === 'weight') { + return parseFloat(tagValue); + } + + if (tagName === 'gpxpx:PowerExtension') { + // Finish the transformation of the simple tag to the more complex tag + // Note that this only targets the transformed tag, since it must be a leaf node + return { + 'gpxpx:PowerInWatts': parseFloat(tagValue) + }; + } + } + + return tagValue; + }, + }); + + const parsed: GPXFileType = parser.parse(gpxData).gpx; + + // @ts-ignore + if (parsed.metadata === "") { + parsed.metadata = {}; + } + + return new GPXFile(parsed); +} + +export function buildGPX(file: GPXFile, exclude: string[]): string { + const gpx = file.toGPXFileType(exclude); + + const builder = new XMLBuilder({ + format: true, + ignoreAttributes: false, + attributeNamePrefix: "", + attributesGroupName: 'attributes', + suppressEmptyNode: true, + tagValueProcessor: (tagName: string, tagValue: unknown): string => { + if (tagValue instanceof Date) { + return tagValue.toISOString(); + } + return tagValue.toString(); + }, + }); + + gpx.attributes.creator = gpx.attributes.creator ?? 'https://gpx.studio'; + gpx.attributes['version'] = '1.1'; + gpx.attributes['xmlns'] = 'http://www.topografix.com/GPX/1/1'; + gpx.attributes['xmlns:xsi'] = 'http://www.w3.org/2001/XMLSchema-instance'; + gpx.attributes['xsi:schemaLocation'] = 'http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.garmin.com/xmlschemas/PowerExtension/v1 http://www.garmin.com/xmlschemas/PowerExtensionv1.xsd http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd'; + gpx.attributes['xmlns:gpxtpx'] = 'http://www.garmin.com/xmlschemas/TrackPointExtension/v1'; + gpx.attributes['xmlns:gpxx'] = 'http://www.garmin.com/xmlschemas/GpxExtensions/v3'; + gpx.attributes['xmlns:gpxpx'] = 'http://www.garmin.com/xmlschemas/PowerExtension/v1'; + gpx.attributes['xmlns:gpx_style'] = 'http://www.topografix.com/GPX/gpx_style/0/2'; + + if (gpx.trk.length === 1 && (gpx.trk[0].name === undefined || gpx.trk[0].name === '')) { + gpx.trk[0].name = gpx.metadata.name; + } + + return builder.build({ + "?xml": { + attributes: { + version: "1.0", + encoding: "UTF-8", + } + }, + gpx: removeEmptyElements(gpx) + }); +} + +function removeEmptyElements(obj: GPXFileType): GPXFileType { + for (const key in obj) { + if (obj[key] === null || obj[key] === undefined || obj[key] === '' || (Array.isArray(obj[key]) && obj[key].length === 0)) { + delete obj[key]; + } else if (typeof obj[key] === 'object' && !(obj[key] instanceof Date)) { + removeEmptyElements(obj[key]); + if (Object.keys(obj[key]).length === 0) { + delete obj[key]; + } + } + } + return obj; +} \ No newline at end of file diff --git a/gpx/src/simplify.ts b/gpx/src/simplify.ts new file mode 100644 index 0000000..bffdba1 --- /dev/null +++ b/gpx/src/simplify.ts @@ -0,0 +1,155 @@ +import { TrackPoint } from "./gpx"; +import { Coordinates } from "./types"; + +export type SimplifiedTrackPoint = { point: TrackPoint, distance?: number }; + +const earthRadius = 6371008.8; + +export function ramerDouglasPeucker(points: TrackPoint[], epsilon: number = 50, measure: (a: TrackPoint, b: TrackPoint, c: TrackPoint) => number = crossarcDistance): SimplifiedTrackPoint[] { + if (points.length == 0) { + return []; + } else if (points.length == 1) { + return [{ + point: points[0] + }]; + } + + let simplified = [{ + point: points[0] + }]; + ramerDouglasPeuckerRecursive(points, epsilon, measure, 0, points.length - 1, simplified); + simplified.push({ + point: points[points.length - 1] + }); + return simplified; +} + +function ramerDouglasPeuckerRecursive(points: TrackPoint[], epsilon: number, measure: (a: TrackPoint, b: TrackPoint, c: TrackPoint) => number, start: number, end: number, simplified: SimplifiedTrackPoint[]) { + let largest = { + index: 0, + distance: 0 + }; + + for (let i = start + 1; i < end; i++) { + let distance = measure(points[start], points[end], points[i]); + if (distance > largest.distance) { + largest.index = i; + largest.distance = distance; + } + } + + if (largest.distance > epsilon && largest.index != 0) { + ramerDouglasPeuckerRecursive(points, epsilon, measure, start, largest.index, simplified); + simplified.push({ point: points[largest.index], distance: largest.distance }); + ramerDouglasPeuckerRecursive(points, epsilon, measure, largest.index, end, simplified); + } +} + +export function crossarcDistance(point1: TrackPoint, point2: TrackPoint, point3: TrackPoint | Coordinates): number { + return crossarc(point1.getCoordinates(), point2.getCoordinates(), point3 instanceof TrackPoint ? point3.getCoordinates() : point3); +} + +function crossarc(coord1: Coordinates, coord2: Coordinates, coord3: Coordinates): number { + // Calculates the shortest distance in meters + // between an arc (defined by p1 and p2) and a third point, p3. + // Input lat1,lon1,lat2,lon2,lat3,lon3 in degrees. + + const rad = Math.PI / 180; + const lat1 = coord1.lat * rad; + const lat2 = coord2.lat * rad; + const lat3 = coord3.lat * rad; + + const lon1 = coord1.lon * rad; + const lon2 = coord2.lon * rad; + const lon3 = coord3.lon * rad; + + // Prerequisites for the formulas + const bear12 = bearing(lat1, lon1, lat2, lon2); + const bear13 = bearing(lat1, lon1, lat3, lon3); + let dis13 = distance(lat1, lon1, lat3, lon3); + + let diff = Math.abs(bear13 - bear12); + if (diff > Math.PI) { + diff = 2 * Math.PI - diff; + } + + // Is relative bearing obtuse? + if (diff > (Math.PI / 2)) { + return dis13; + } + + // Find the cross-track distance. + let dxt = Math.asin(Math.sin(dis13 / earthRadius) * Math.sin(bear13 - bear12)) * earthRadius; + + // Is p4 beyond the arc? + let dis12 = distance(lat1, lon1, lat2, lon2); + let dis14 = Math.acos(Math.cos(dis13 / earthRadius) / Math.cos(dxt / earthRadius)) * earthRadius; + if (dis14 > dis12) { + return distance(lat2, lon2, lat3, lon3); + } else { + return Math.abs(dxt); + } +} + +function distance(latA: number, lonA: number, latB: number, lonB: number): number { + // Finds the distance between two lat / lon points. + return Math.acos(Math.sin(latA) * Math.sin(latB) + Math.cos(latA) * Math.cos(latB) * Math.cos(lonB - lonA)) * earthRadius; +} + + +function bearing(latA: number, lonA: number, latB: number, lonB: number): number { + // Finds the bearing from one lat / lon point to another. + return Math.atan2(Math.sin(lonB - lonA) * Math.cos(latB), + Math.cos(latA) * Math.sin(latB) - Math.sin(latA) * Math.cos(latB) * Math.cos(lonB - lonA)); +} + +export function projectedPoint(point1: TrackPoint, point2: TrackPoint, point3: TrackPoint | Coordinates): Coordinates { + return projected(point1.getCoordinates(), point2.getCoordinates(), point3 instanceof TrackPoint ? point3.getCoordinates() : point3); +} + +function projected(coord1: Coordinates, coord2: Coordinates, coord3: Coordinates): Coordinates { + // Calculates the point on the line defined by p1 and p2 + // that is closest to the third point, p3. + // Input lat1,lon1,lat2,lon2,lat3,lon3 in degrees. + + const rad = Math.PI / 180; + const lat1 = coord1.lat * rad; + const lat2 = coord2.lat * rad; + const lat3 = coord3.lat * rad; + + const lon1 = coord1.lon * rad; + const lon2 = coord2.lon * rad; + const lon3 = coord3.lon * rad; + + // Prerequisites for the formulas + const bear12 = bearing(lat1, lon1, lat2, lon2); + const bear13 = bearing(lat1, lon1, lat3, lon3); + let dis13 = distance(lat1, lon1, lat3, lon3); + + let diff = Math.abs(bear13 - bear12); + if (diff > Math.PI) { + diff = 2 * Math.PI - diff; + } + + // Is relative bearing obtuse? + if (diff > (Math.PI / 2)) { + return coord1; + } + + // Find the cross-track distance. + let dxt = Math.asin(Math.sin(dis13 / earthRadius) * Math.sin(bear13 - bear12)) * earthRadius; + + // Is p4 beyond the arc? + let dis12 = distance(lat1, lon1, lat2, lon2); + let dis14 = Math.acos(Math.cos(dis13 / earthRadius) / Math.cos(dxt / earthRadius)) * earthRadius; + if (dis14 > dis12) { + return coord2; + } else { + // Determine the closest point (p4) on the great circle + const f = dis14 / earthRadius; + const lat4 = Math.asin(Math.sin(lat1) * Math.cos(f) + Math.cos(lat1) * Math.sin(f) * Math.cos(bear12)); + const lon4 = lon1 + Math.atan2(Math.sin(bear12) * Math.sin(f) * Math.cos(lat1), Math.cos(f) - Math.sin(lat1) * Math.sin(lat4)); + + return { lat: lat4 / rad, lon: lon4 / rad }; + } +} \ No newline at end of file diff --git a/gpx/src/types.ts b/gpx/src/types.ts new file mode 100644 index 0000000..c845a3f --- /dev/null +++ b/gpx/src/types.ts @@ -0,0 +1,127 @@ +export type GPXFileType = { + attributes: GPXFileAttributes; + metadata: Metadata; + wpt: WaypointType[]; + trk: TrackType[]; + rte: RouteType[]; +}; + +export type GPXFileAttributes = { + creator?: string; + [key: string]: string; +}; + +export type Metadata = { + name?: string; + desc?: string; + author?: Author; + link?: Link; + time?: Date; +}; + +export type Link = { + attributes: LinkAttributes; + text?: string; + type?: string; +}; + +export type LinkAttributes = { + href: string; +}; + +export type WaypointType = { + attributes: Coordinates; + ele?: number; + time?: Date; + name?: string; + cmt?: string; + desc?: string; + link?: Link; + sym?: string; + type?: string; + extensions?: WaypointExtensions; +}; + +export type WaypointExtensions = { + 'gpxx:RoutePointExtension'?: RoutePointExtension; +}; + +export type Coordinates = { + lat: number; + lon: number; +}; + +export type TrackType = { + name?: string; + cmt?: string; + desc?: string; + src?: string; + link?: Link; + type?: string; + extensions?: TrackExtensions; + trkseg: TrackSegmentType[]; +}; + +export type TrackExtensions = { + 'gpx_style:line'?: LineStyleExtension; +}; + +export type LineStyleExtension = { + color?: string; + opacity?: number; + weight?: number; +}; + +export type TrackSegmentType = { + trkpt: TrackPointType[]; +}; + +export type TrackPointType = { + attributes: Coordinates; + ele?: number; + time?: Date; + extensions?: TrackPointExtensions; +}; + +export type TrackPointExtensions = { + 'gpxtpx:TrackPointExtension'?: TrackPointExtension; + 'gpxpx:PowerExtension'?: PowerExtension; +}; + +export type TrackPointExtension = { + 'gpxtpx:atemp'?: number; + 'gpxtpx:hr'?: number; + 'gpxtpx:cad'?: number; + 'gpxtpx:Extensions'?: { + surface?: string; + }; +} + +export type PowerExtension = { + 'gpxpx:PowerInWatts'?: number; +} + +export type Author = { + name?: string; + email?: string; + link?: Link; +}; + +export type RouteType = { + name?: string; + cmt?: string; + desc?: string; + src?: string; + link?: Link; + type?: string; + extensions?: TrackExtensions; + rtept: WaypointType[]; +} + +export type RoutePointExtension = { + 'gpxx:rpt'?: GPXXRoutePoint[]; +} + +export type GPXXRoutePoint = { + attributes: Coordinates; +} \ No newline at end of file diff --git a/gpx/test-data/simple.gpx b/gpx/test-data/simple.gpx new file mode 100644 index 0000000..be56595 --- /dev/null +++ b/gpx/test-data/simple.gpx @@ -0,0 +1,260 @@ + + + + simple + + gpx.studio + + + + + simple + Cycling + + + 109.0 + + + 110.8 + + + 110.3 + + + 110.0 + + + 110.3 + + + 109.3 + + + 107.0 + + + 106.0 + + + 108.5 + + + 109.8 + + + 110.8 + + + 112.0 + + + 112.8 + + + 113.5 + + + 114.3 + + + 115.3 + + + 114.8 + + + 114.3 + + + 114.3 + + + 114.5 + + + 115.0 + + + 115.8 + + + 115.8 + + + 116.0 + + + 115.8 + + + 115.5 + + + 114.5 + + + 112.5 + + + 110.8 + + + 109.0 + + + 106.3 + + + 104.3 + + + 104.0 + + + 103.8 + + + 103.3 + + + 103.5 + + + 103.8 + + + 104.8 + + + 105.8 + + + 106.8 + + + 107.8 + + + 108.5 + + + 109.3 + + + 110.0 + + + 110.5 + + + 110.8 + + + 111.8 + + + 112.8 + + + 113.3 + + + 113.5 + + + 113.5 + + + 113.8 + + + 114.8 + + + 115.8 + + + 118.5 + + + 119.5 + + + 121.3 + + + 122.0 + + + 122.8 + + + 123.5 + + + 126.3 + + + 128.0 + + + 129.0 + + + 130.0 + + + 130.8 + + + 131.8 + + + 132.3 + + + 132.8 + + + 135.8 + + + 135.5 + + + 132.5 + + + 134.0 + + + 136.8 + + + 137.5 + + + 137.3 + + + 137.5 + + + 137.3 + + + 134.8 + + + 132.3 + + + 129.5 + + + + \ No newline at end of file diff --git a/gpx/test-data/with_cad.gpx b/gpx/test-data/with_cad.gpx new file mode 100644 index 0000000..1ac6670 --- /dev/null +++ b/gpx/test-data/with_cad.gpx @@ -0,0 +1,660 @@ + + + + with_cad + + gpx.studio + + + + + with_cad + Cycling + + + 109.0 + + + 80 + + + + + 110.8 + + + 80 + + + + + 110.3 + + + 80 + + + + + 110.0 + + + 80 + + + + + 110.3 + + + 80 + + + + + 109.3 + + + 80 + + + + + 107.0 + + + 80 + + + + + 106.0 + + + 80 + + + + + 108.5 + + + 80 + + + + + 109.8 + + + 80 + + + + + 110.8 + + + 80 + + + + + 112.0 + + + 80 + + + + + 112.8 + + + 80 + + + + + 113.5 + + + 80 + + + + + 114.3 + + + 80 + + + + + 115.3 + + + 80 + + + + + 114.8 + + + 80 + + + + + 114.3 + + + 80 + + + + + 114.3 + + + 80 + + + + + 114.5 + + + 80 + + + + + 115.0 + + + 80 + + + + + 115.8 + + + 80 + + + + + 115.8 + + + 80 + + + + + 116.0 + + + 80 + + + + + 115.8 + + + 80 + + + + + 115.5 + + + 80 + + + + + 114.5 + + + 80 + + + + + 112.5 + + + 80 + + + + + 110.8 + + + 80 + + + + + 109.0 + + + 80 + + + + + 106.3 + + + 80 + + + + + 104.3 + + + 80 + + + + + 104.0 + + + 80 + + + + + 103.8 + + + 80 + + + + + 103.3 + + + 80 + + + + + 103.5 + + + 80 + + + + + 103.8 + + + 80 + + + + + 104.8 + + + 80 + + + + + 105.8 + + + 80 + + + + + 106.8 + + + 80 + + + + + 107.8 + + + 80 + + + + + 108.5 + + + 80 + + + + + 109.3 + + + 80 + + + + + 110.0 + + + 80 + + + + + 110.5 + + + 80 + + + + + 110.8 + + + 80 + + + + + 111.8 + + + 80 + + + + + 112.8 + + + 80 + + + + + 113.3 + + + 80 + + + + + 113.5 + + + 80 + + + + + 113.5 + + + 80 + + + + + 113.8 + + + 80 + + + + + 114.8 + + + 80 + + + + + 115.8 + + + 80 + + + + + 118.5 + + + 80 + + + + + 119.5 + + + 80 + + + + + 121.3 + + + 80 + + + + + 122.0 + + + 80 + + + + + 122.8 + + + 80 + + + + + 123.5 + + + 80 + + + + + 126.3 + + + 80 + + + + + 128.0 + + + 80 + + + + + 129.0 + + + 80 + + + + + 130.0 + + + 80 + + + + + 130.8 + + + 80 + + + + + 131.8 + + + 80 + + + + + 132.3 + + + 80 + + + + + 132.8 + + + 80 + + + + + 135.8 + + + 80 + + + + + 135.5 + + + 80 + + + + + 132.5 + + + 80 + + + + + 134.0 + + + 80 + + + + + 136.8 + + + 80 + + + + + 137.5 + + + 80 + + + + + 137.3 + + + 80 + + + + + 137.5 + + + 80 + + + + + 137.3 + + + 80 + + + + + 134.8 + + + 80 + + + + + 132.3 + + + 80 + + + + + 129.5 + + + 90 + + + + + + \ No newline at end of file diff --git a/gpx/test-data/with_hr.gpx b/gpx/test-data/with_hr.gpx new file mode 100644 index 0000000..f2c566a --- /dev/null +++ b/gpx/test-data/with_hr.gpx @@ -0,0 +1,660 @@ + + + + with_hr + + gpx.studio + + + + + with_hr + Cycling + + + 109.0 + + + 150 + + + + + 110.8 + + + 150 + + + + + 110.3 + + + 150 + + + + + 110.0 + + + 150 + + + + + 110.3 + + + 150 + + + + + 109.3 + + + 150 + + + + + 107.0 + + + 150 + + + + + 106.0 + + + 150 + + + + + 108.5 + + + 150 + + + + + 109.8 + + + 150 + + + + + 110.8 + + + 150 + + + + + 112.0 + + + 150 + + + + + 112.8 + + + 150 + + + + + 113.5 + + + 150 + + + + + 114.3 + + + 150 + + + + + 115.3 + + + 150 + + + + + 114.8 + + + 150 + + + + + 114.3 + + + 150 + + + + + 114.3 + + + 150 + + + + + 114.5 + + + 150 + + + + + 115.0 + + + 150 + + + + + 115.8 + + + 150 + + + + + 115.8 + + + 150 + + + + + 116.0 + + + 150 + + + + + 115.8 + + + 150 + + + + + 115.5 + + + 150 + + + + + 114.5 + + + 150 + + + + + 112.5 + + + 150 + + + + + 110.8 + + + 150 + + + + + 109.0 + + + 150 + + + + + 106.3 + + + 150 + + + + + 104.3 + + + 150 + + + + + 104.0 + + + 150 + + + + + 103.8 + + + 150 + + + + + 103.3 + + + 150 + + + + + 103.5 + + + 150 + + + + + 103.8 + + + 150 + + + + + 104.8 + + + 150 + + + + + 105.8 + + + 150 + + + + + 106.8 + + + 150 + + + + + 107.8 + + + 150 + + + + + 108.5 + + + 150 + + + + + 109.3 + + + 150 + + + + + 110.0 + + + 150 + + + + + 110.5 + + + 150 + + + + + 110.8 + + + 150 + + + + + 111.8 + + + 150 + + + + + 112.8 + + + 150 + + + + + 113.3 + + + 150 + + + + + 113.5 + + + 150 + + + + + 113.5 + + + 150 + + + + + 113.8 + + + 150 + + + + + 114.8 + + + 150 + + + + + 115.8 + + + 150 + + + + + 118.5 + + + 150 + + + + + 119.5 + + + 150 + + + + + 121.3 + + + 150 + + + + + 122.0 + + + 150 + + + + + 122.8 + + + 150 + + + + + 123.5 + + + 150 + + + + + 126.3 + + + 150 + + + + + 128.0 + + + 150 + + + + + 129.0 + + + 150 + + + + + 130.0 + + + 150 + + + + + 130.8 + + + 150 + + + + + 131.8 + + + 150 + + + + + 132.3 + + + 150 + + + + + 132.8 + + + 150 + + + + + 135.8 + + + 150 + + + + + 135.5 + + + 150 + + + + + 132.5 + + + 150 + + + + + 134.0 + + + 150 + + + + + 136.8 + + + 150 + + + + + 137.5 + + + 150 + + + + + 137.3 + + + 150 + + + + + 137.5 + + + 150 + + + + + 137.3 + + + 150 + + + + + 134.8 + + + 150 + + + + + 132.3 + + + 150 + + + + + 129.5 + + + 160 + + + + + + \ No newline at end of file diff --git a/gpx/test-data/with_power_1.gpx b/gpx/test-data/with_power_1.gpx new file mode 100644 index 0000000..5c64077 --- /dev/null +++ b/gpx/test-data/with_power_1.gpx @@ -0,0 +1,500 @@ + + + + with_power + + gpx.studio + + + + + with_power + Cycling + + + 109.0 + + 200 + + + + 110.8 + + 200 + + + + 110.3 + + 200 + + + + 110.0 + + 200 + + + + 110.3 + + 200 + + + + 109.3 + + 200 + + + + 107.0 + + 200 + + + + 106.0 + + 200 + + + + 108.5 + + 200 + + + + 109.8 + + 200 + + + + 110.8 + + 200 + + + + 112.0 + + 200 + + + + 112.8 + + 200 + + + + 113.5 + + 200 + + + + 114.3 + + 200 + + + + 115.3 + + 200 + + + + 114.8 + + 200 + + + + 114.3 + + 200 + + + + 114.3 + + 200 + + + + 114.5 + + 200 + + + + 115.0 + + 200 + + + + 115.8 + + 200 + + + + 115.8 + + 200 + + + + 116.0 + + 200 + + + + 115.8 + + 200 + + + + 115.5 + + 200 + + + + 114.5 + + 200 + + + + 112.5 + + 200 + + + + 110.8 + + 200 + + + + 109.0 + + 200 + + + + 106.3 + + 200 + + + + 104.3 + + 200 + + + + 104.0 + + 200 + + + + 103.8 + + 200 + + + + 103.3 + + 200 + + + + 103.5 + + 200 + + + + 103.8 + + 200 + + + + 104.8 + + 200 + + + + 105.8 + + 200 + + + + 106.8 + + 200 + + + + 107.8 + + 200 + + + + 108.5 + + 200 + + + + 109.3 + + 200 + + + + 110.0 + + 200 + + + + 110.5 + + 200 + + + + 110.8 + + 200 + + + + 111.8 + + 200 + + + + 112.8 + + 200 + + + + 113.3 + + 200 + + + + 113.5 + + 200 + + + + 113.5 + + 200 + + + + 113.8 + + 200 + + + + 114.8 + + 200 + + + + 115.8 + + 200 + + + + 118.5 + + 200 + + + + 119.5 + + 200 + + + + 121.3 + + 200 + + + + 122.0 + + 200 + + + + 122.8 + + 200 + + + + 123.5 + + 200 + + + + 126.3 + + 200 + + + + 128.0 + + 200 + + + + 129.0 + + 200 + + + + 130.0 + + 200 + + + + 130.8 + + 200 + + + + 131.8 + + 200 + + + + 132.3 + + 200 + + + + 132.8 + + 200 + + + + 135.8 + + 200 + + + + 135.5 + + 200 + + + + 132.5 + + 200 + + + + 134.0 + + 200 + + + + 136.8 + + 200 + + + + 137.5 + + 200 + + + + 137.3 + + 200 + + + + 137.5 + + 200 + + + + 137.3 + + 200 + + + + 134.8 + + 200 + + + + 132.3 + + 200 + + + + 129.5 + + 210 + + + + + \ No newline at end of file diff --git a/gpx/test-data/with_power_2.gpx b/gpx/test-data/with_power_2.gpx new file mode 100644 index 0000000..b0a5307 --- /dev/null +++ b/gpx/test-data/with_power_2.gpx @@ -0,0 +1,660 @@ + + + + with_power + + gpx.studio + + + + + with_power + Cycling + + + 109.0 + + + 200 + + + + + 110.8 + + + 200 + + + + + 110.3 + + + 200 + + + + + 110.0 + + + 200 + + + + + 110.3 + + + 200 + + + + + 109.3 + + + 200 + + + + + 107.0 + + + 200 + + + + + 106.0 + + + 200 + + + + + 108.5 + + + 200 + + + + + 109.8 + + + 200 + + + + + 110.8 + + + 200 + + + + + 112.0 + + + 200 + + + + + 112.8 + + + 200 + + + + + 113.5 + + + 200 + + + + + 114.3 + + + 200 + + + + + 115.3 + + + 200 + + + + + 114.8 + + + 200 + + + + + 114.3 + + + 200 + + + + + 114.3 + + + 200 + + + + + 114.5 + + + 200 + + + + + 115.0 + + + 200 + + + + + 115.8 + + + 200 + + + + + 115.8 + + + 200 + + + + + 116.0 + + + 200 + + + + + 115.8 + + + 200 + + + + + 115.5 + + + 200 + + + + + 114.5 + + + 200 + + + + + 112.5 + + + 200 + + + + + 110.8 + + + 200 + + + + + 109.0 + + + 200 + + + + + 106.3 + + + 200 + + + + + 104.3 + + + 200 + + + + + 104.0 + + + 200 + + + + + 103.8 + + + 200 + + + + + 103.3 + + + 200 + + + + + 103.5 + + + 200 + + + + + 103.8 + + + 200 + + + + + 104.8 + + + 200 + + + + + 105.8 + + + 200 + + + + + 106.8 + + + 200 + + + + + 107.8 + + + 200 + + + + + 108.5 + + + 200 + + + + + 109.3 + + + 200 + + + + + 110.0 + + + 200 + + + + + 110.5 + + + 200 + + + + + 110.8 + + + 200 + + + + + 111.8 + + + 200 + + + + + 112.8 + + + 200 + + + + + 113.3 + + + 200 + + + + + 113.5 + + + 200 + + + + + 113.5 + + + 200 + + + + + 113.8 + + + 200 + + + + + 114.8 + + + 200 + + + + + 115.8 + + + 200 + + + + + 118.5 + + + 200 + + + + + 119.5 + + + 200 + + + + + 121.3 + + + 200 + + + + + 122.0 + + + 200 + + + + + 122.8 + + + 200 + + + + + 123.5 + + + 200 + + + + + 126.3 + + + 200 + + + + + 128.0 + + + 200 + + + + + 129.0 + + + 200 + + + + + 130.0 + + + 200 + + + + + 130.8 + + + 200 + + + + + 131.8 + + + 200 + + + + + 132.3 + + + 200 + + + + + 132.8 + + + 200 + + + + + 135.8 + + + 200 + + + + + 135.5 + + + 200 + + + + + 132.5 + + + 200 + + + + + 134.0 + + + 200 + + + + + 136.8 + + + 200 + + + + + 137.5 + + + 200 + + + + + 137.3 + + + 200 + + + + + 137.5 + + + 200 + + + + + 137.3 + + + 200 + + + + + 134.8 + + + 200 + + + + + 132.3 + + + 200 + + + + + 129.5 + + + 210 + + + + + + \ No newline at end of file diff --git a/gpx/test-data/with_routes.gpx b/gpx/test-data/with_routes.gpx new file mode 100644 index 0000000..fd55a29 --- /dev/null +++ b/gpx/test-data/with_routes.gpx @@ -0,0 +1,253 @@ + + + + with_routes + + gpx.studio + + + + + route 1 + Cycling + + 109.0 + + + 110.8 + + + 110.3 + + + 110.0 + + + 110.3 + + + 109.3 + + + 107.0 + + + 106.0 + + + 108.5 + + + 109.8 + + + 110.8 + + + 112.0 + + + 112.8 + + + 113.5 + + + 114.3 + + + 115.3 + + + 114.8 + + + 114.3 + + + 114.3 + + + 114.5 + + + 115.0 + + + 115.8 + + + 115.8 + + + 116.0 + + + 115.8 + + + 115.5 + + + 114.5 + + + 112.5 + + + 110.8 + + + 109.0 + + + 106.3 + + + 104.3 + + + 104.0 + + + 103.8 + + + 103.3 + + + 103.5 + + + 103.8 + + + 104.8 + + + 105.8 + + + 106.8 + + + 107.8 + + + 108.5 + + + 109.3 + + + 110.0 + + + 110.5 + + + 110.8 + + + 111.8 + + + 112.8 + + + 113.3 + + + + route 2 + Cycling + + 115.5 + + + 115.8 + + + 118.5 + + + 119.5 + + + 121.3 + + + 122.0 + + + 122.8 + + + 123.5 + + + 126.3 + + + 128.0 + + + 129.0 + + + 130.0 + + + 130.8 + + + 131.8 + + + 132.3 + + + 132.8 + + + 135.8 + + + 135.5 + + + 132.5 + + + 134.0 + + + 136.8 + + + 137.5 + + + 137.3 + + + 137.5 + + + 137.3 + + + 134.8 + + + 132.3 + + + 129.5 + + + diff --git a/gpx/test-data/with_segments.gpx b/gpx/test-data/with_segments.gpx new file mode 100644 index 0000000..05690ac --- /dev/null +++ b/gpx/test-data/with_segments.gpx @@ -0,0 +1,253 @@ + + + + with_segments + + gpx.studio + + + + + with_segments + Cycling + + + 109.0 + + + 110.8 + + + 110.3 + + + 110.0 + + + 110.3 + + + 109.3 + + + 107.0 + + + 106.0 + + + 108.5 + + + 109.8 + + + 110.8 + + + 112.0 + + + 112.8 + + + 113.5 + + + 114.3 + + + 115.3 + + + 114.8 + + + 114.3 + + + 114.3 + + + 114.5 + + + 115.0 + + + 115.8 + + + 115.8 + + + 116.0 + + + 115.8 + + + 115.5 + + + 114.5 + + + 112.5 + + + 110.8 + + + 109.0 + + + 106.3 + + + 104.3 + + + 104.0 + + + 103.8 + + + 103.3 + + + 103.5 + + + 103.8 + + + 104.8 + + + 105.8 + + + 106.8 + + + 107.8 + + + 108.5 + + + 109.3 + + + 110.0 + + + 110.5 + + + 110.8 + + + 111.8 + + + 112.8 + + + 113.3 + + + + + 115.5 + + + 115.8 + + + 118.5 + + + 119.5 + + + 121.3 + + + 122.0 + + + 122.8 + + + 123.5 + + + 126.3 + + + 128.0 + + + 129.0 + + + 130.0 + + + 130.8 + + + 131.8 + + + 132.3 + + + 132.8 + + + 135.8 + + + 135.5 + + + 132.5 + + + 134.0 + + + 136.8 + + + 137.5 + + + 137.3 + + + 137.5 + + + 137.3 + + + 134.8 + + + 132.3 + + + 129.5 + + + + \ No newline at end of file diff --git a/gpx/test-data/with_style.gpx b/gpx/test-data/with_style.gpx new file mode 100644 index 0000000..6422b44 --- /dev/null +++ b/gpx/test-data/with_style.gpx @@ -0,0 +1,267 @@ + + + + with_style + + gpx.studio + + + + + with_style + Cycling + + + #2d3ee9 + 0.5 + 6 + + + + + 109.0 + + + 110.8 + + + 110.3 + + + 110.0 + + + 110.3 + + + 109.3 + + + 107.0 + + + 106.0 + + + 108.5 + + + 109.8 + + + 110.8 + + + 112.0 + + + 112.8 + + + 113.5 + + + 114.3 + + + 115.3 + + + 114.8 + + + 114.3 + + + 114.3 + + + 114.5 + + + 115.0 + + + 115.8 + + + 115.8 + + + 116.0 + + + 115.8 + + + 115.5 + + + 114.5 + + + 112.5 + + + 110.8 + + + 109.0 + + + 106.3 + + + 104.3 + + + 104.0 + + + 103.8 + + + 103.3 + + + 103.5 + + + 103.8 + + + 104.8 + + + 105.8 + + + 106.8 + + + 107.8 + + + 108.5 + + + 109.3 + + + 110.0 + + + 110.5 + + + 110.8 + + + 111.8 + + + 112.8 + + + 113.3 + + + 113.5 + + + 113.5 + + + 113.8 + + + 114.8 + + + 115.8 + + + 118.5 + + + 119.5 + + + 121.3 + + + 122.0 + + + 122.8 + + + 123.5 + + + 126.3 + + + 128.0 + + + 129.0 + + + 130.0 + + + 130.8 + + + 131.8 + + + 132.3 + + + 132.8 + + + 135.8 + + + 135.5 + + + 132.5 + + + 134.0 + + + 136.8 + + + 137.5 + + + 137.3 + + + 137.5 + + + 137.3 + + + 134.8 + + + 132.3 + + + 129.5 + + + + \ No newline at end of file diff --git a/gpx/test-data/with_surface.gpx b/gpx/test-data/with_surface.gpx new file mode 100644 index 0000000..a4d5391 --- /dev/null +++ b/gpx/test-data/with_surface.gpx @@ -0,0 +1,820 @@ + + + + with_surface + + gpx.studio + + + + + with_surface + Cycling + + + 109.0 + + + + asphalt + + + + + + 110.8 + + + + asphalt + + + + + + 110.3 + + + + asphalt + + + + + + 110.0 + + + + asphalt + + + + + + 110.3 + + + + asphalt + + + + + + 109.3 + + + + asphalt + + + + + + 107.0 + + + + asphalt + + + + + + 106.0 + + + + asphalt + + + + + + 108.5 + + + + asphalt + + + + + + 109.8 + + + + asphalt + + + + + + 110.8 + + + + asphalt + + + + + + 112.0 + + + + asphalt + + + + + + 112.8 + + + + asphalt + + + + + + 113.5 + + + + asphalt + + + + + + 114.3 + + + + asphalt + + + + + + 115.3 + + + + asphalt + + + + + + 114.8 + + + + asphalt + + + + + + 114.3 + + + + asphalt + + + + + + 114.3 + + + + asphalt + + + + + + 114.5 + + + + asphalt + + + + + + 115.0 + + + + asphalt + + + + + + 115.8 + + + + asphalt + + + + + + 115.8 + + + + asphalt + + + + + + 116.0 + + + + asphalt + + + + + + 115.8 + + + + asphalt + + + + + + 115.5 + + + + asphalt + + + + + + 114.5 + + + + asphalt + + + + + + 112.5 + + + + asphalt + + + + + + 110.8 + + + + asphalt + + + + + + 109.0 + + + + asphalt + + + + + + 106.3 + + + + asphalt + + + + + + 104.3 + + + + asphalt + + + + + + 104.0 + + + + asphalt + + + + + + 103.8 + + + + asphalt + + + + + + 103.3 + + + + asphalt + + + + + + 103.5 + + + + asphalt + + + + + + 103.8 + + + + asphalt + + + + + + 104.8 + + + + asphalt + + + + + + 105.8 + + + + asphalt + + + + + + 106.8 + + + + asphalt + + + + + + 107.8 + + + + asphalt + + + + + + 108.5 + + + + asphalt + + + + + + 109.3 + + + + asphalt + + + + + + 110.0 + + + + asphalt + + + + + + 110.5 + + + + asphalt + + + + + + 110.8 + + + + asphalt + + + + + + 111.8 + + + + asphalt + + + + + + 112.8 + + + + asphalt + + + + + + 113.3 + + + + asphalt + + + + + + 113.5 + + + + asphalt + + + + + + 113.5 + + + + asphalt + + + + + + 113.8 + + + + asphalt + + + + + + 114.8 + + + + asphalt + + + + + + 115.8 + + + + asphalt + + + + + + 118.5 + + + + asphalt + + + + + + 119.5 + + + + asphalt + + + + + + 121.3 + + + + asphalt + + + + + + 122.0 + + + + asphalt + + + + + + 122.8 + + + + asphalt + + + + + + 123.5 + + + + asphalt + + + + + + 126.3 + + + + asphalt + + + + + + 128.0 + + + + asphalt + + + + + + 129.0 + + + + asphalt + + + + + + 130.0 + + + + asphalt + + + + + + 130.8 + + + + asphalt + + + + + + 131.8 + + + + asphalt + + + + + + 132.3 + + + + asphalt + + + + + + 132.8 + + + + asphalt + + + + + + 135.8 + + + + asphalt + + + + + + 135.5 + + + + asphalt + + + + + + 132.5 + + + + asphalt + + + + + + 134.0 + + + + asphalt + + + + + + 136.8 + + + + asphalt + + + + + + 137.5 + + + + asphalt + + + + + + 137.3 + + + + asphalt + + + + + + 137.5 + + + + asphalt + + + + + + 137.3 + + + + asphalt + + + + + + 134.8 + + + + asphalt + + + + + + 132.3 + + + + asphalt + + + + + + 129.5 + + + + cobblestone + + + + + + + \ No newline at end of file diff --git a/gpx/test-data/with_temp.gpx b/gpx/test-data/with_temp.gpx new file mode 100644 index 0000000..b827235 --- /dev/null +++ b/gpx/test-data/with_temp.gpx @@ -0,0 +1,660 @@ + + + + with_temp + + gpx.studio + + + + + with_temp + Cycling + + + 109.0 + + + 21 + + + + + 110.8 + + + 21 + + + + + 110.3 + + + 21 + + + + + 110.0 + + + 21 + + + + + 110.3 + + + 21 + + + + + 109.3 + + + 21 + + + + + 107.0 + + + 21 + + + + + 106.0 + + + 21 + + + + + 108.5 + + + 21 + + + + + 109.8 + + + 21 + + + + + 110.8 + + + 21 + + + + + 112.0 + + + 21 + + + + + 112.8 + + + 21 + + + + + 113.5 + + + 21 + + + + + 114.3 + + + 21 + + + + + 115.3 + + + 21 + + + + + 114.8 + + + 21 + + + + + 114.3 + + + 21 + + + + + 114.3 + + + 21 + + + + + 114.5 + + + 21 + + + + + 115.0 + + + 21 + + + + + 115.8 + + + 21 + + + + + 115.8 + + + 21 + + + + + 116.0 + + + 21 + + + + + 115.8 + + + 21 + + + + + 115.5 + + + 21 + + + + + 114.5 + + + 21 + + + + + 112.5 + + + 21 + + + + + 110.8 + + + 21 + + + + + 109.0 + + + 21 + + + + + 106.3 + + + 21 + + + + + 104.3 + + + 21 + + + + + 104.0 + + + 21 + + + + + 103.8 + + + 21 + + + + + 103.3 + + + 21 + + + + + 103.5 + + + 21 + + + + + 103.8 + + + 21 + + + + + 104.8 + + + 21 + + + + + 105.8 + + + 21 + + + + + 106.8 + + + 21 + + + + + 107.8 + + + 21 + + + + + 108.5 + + + 21 + + + + + 109.3 + + + 21 + + + + + 110.0 + + + 21 + + + + + 110.5 + + + 21 + + + + + 110.8 + + + 21 + + + + + 111.8 + + + 21 + + + + + 112.8 + + + 21 + + + + + 113.3 + + + 21 + + + + + 113.5 + + + 21 + + + + + 113.5 + + + 21 + + + + + 113.8 + + + 21 + + + + + 114.8 + + + 21 + + + + + 115.8 + + + 21 + + + + + 118.5 + + + 21 + + + + + 119.5 + + + 21 + + + + + 121.3 + + + 21 + + + + + 122.0 + + + 21 + + + + + 122.8 + + + 21 + + + + + 123.5 + + + 21 + + + + + 126.3 + + + 21 + + + + + 128.0 + + + 21 + + + + + 129.0 + + + 21 + + + + + 130.0 + + + 21 + + + + + 130.8 + + + 21 + + + + + 131.8 + + + 21 + + + + + 132.3 + + + 21 + + + + + 132.8 + + + 21 + + + + + 135.8 + + + 21 + + + + + 135.5 + + + 21 + + + + + 132.5 + + + 21 + + + + + 134.0 + + + 21 + + + + + 136.8 + + + 21 + + + + + 137.5 + + + 21 + + + + + 137.3 + + + 21 + + + + + 137.5 + + + 21 + + + + + 137.3 + + + 21 + + + + + 134.8 + + + 21 + + + + + 132.3 + + + 21 + + + + + 129.5 + + + 22 + + + + + + \ No newline at end of file diff --git a/gpx/test-data/with_time.gpx b/gpx/test-data/with_time.gpx new file mode 100644 index 0000000..f39d90a --- /dev/null +++ b/gpx/test-data/with_time.gpx @@ -0,0 +1,340 @@ + + + + with_time + + gpx.studio + + + + + with_time + Cycling + + + 109.0 + + + + 110.8 + + + + 110.3 + + + + 110.0 + + + + 110.3 + + + + 109.3 + + + + 107.0 + + + + 106.0 + + + + 108.5 + + + + 109.8 + + + + 110.8 + + + + 112.0 + + + + 112.8 + + + + 113.5 + + + + 114.3 + + + + 115.3 + + + + 114.8 + + + + 114.3 + + + + 114.3 + + + + 114.5 + + + + 115.0 + + + + 115.8 + + + + 115.8 + + + + 116.0 + + + + 115.8 + + + + 115.5 + + + + 114.5 + + + + 112.5 + + + + 110.8 + + + + 109.0 + + + + 106.3 + + + + 104.3 + + + + 104.0 + + + + 103.8 + + + + 103.3 + + + + 103.5 + + + + 103.8 + + + + 104.8 + + + + 105.8 + + + + 106.8 + + + + 107.8 + + + + 108.5 + + + + 109.3 + + + + 110.0 + + + + 110.5 + + + + 110.8 + + + + 111.8 + + + + 112.8 + + + + 113.3 + + + + 113.5 + + + + 113.5 + + + + 113.8 + + + + 114.8 + + + + 115.8 + + + + 118.5 + + + + 119.5 + + + + 121.3 + + + + 122.0 + + + + 122.8 + + + + 123.5 + + + + 126.3 + + + + 128.0 + + + + 129.0 + + + + 130.0 + + + + 130.8 + + + + 131.8 + + + + 132.3 + + + + 132.8 + + + + 135.8 + + + + 135.5 + + + + 132.5 + + + + 134.0 + + + + 136.8 + + + + 137.5 + + + + 137.3 + + + + 137.5 + + + + 137.3 + + + + 134.8 + + + + 132.3 + + + + 129.5 + + + + + \ No newline at end of file diff --git a/gpx/test-data/with_tracks.gpx b/gpx/test-data/with_tracks.gpx new file mode 100644 index 0000000..937b53e --- /dev/null +++ b/gpx/test-data/with_tracks.gpx @@ -0,0 +1,257 @@ + + + + with_tracks + + gpx.studio + + + + + track 1 + Cycling + + + 109.0 + + + 110.8 + + + 110.3 + + + 110.0 + + + 110.3 + + + 109.3 + + + 107.0 + + + 106.0 + + + 108.5 + + + 109.8 + + + 110.8 + + + 112.0 + + + 112.8 + + + 113.5 + + + 114.3 + + + 115.3 + + + 114.8 + + + 114.3 + + + 114.3 + + + 114.5 + + + 115.0 + + + 115.8 + + + 115.8 + + + 116.0 + + + 115.8 + + + 115.5 + + + 114.5 + + + 112.5 + + + 110.8 + + + 109.0 + + + 106.3 + + + 104.3 + + + 104.0 + + + 103.8 + + + 103.3 + + + 103.5 + + + 103.8 + + + 104.8 + + + 105.8 + + + 106.8 + + + 107.8 + + + 108.5 + + + 109.3 + + + 110.0 + + + 110.5 + + + 110.8 + + + 111.8 + + + 112.8 + + + 113.3 + + + + + track 2 + Cycling + + + 115.5 + + + 115.8 + + + 118.5 + + + 119.5 + + + 121.3 + + + 122.0 + + + 122.8 + + + 123.5 + + + 126.3 + + + 128.0 + + + 129.0 + + + 130.0 + + + 130.8 + + + 131.8 + + + 132.3 + + + 132.8 + + + 135.8 + + + 135.5 + + + 132.5 + + + 134.0 + + + 136.8 + + + 137.5 + + + 137.3 + + + 137.5 + + + 137.3 + + + 134.8 + + + 132.3 + + + 129.5 + + + + \ No newline at end of file diff --git a/gpx/test-data/with_tracks_and_segments.gpx b/gpx/test-data/with_tracks_and_segments.gpx new file mode 100644 index 0000000..f10e720 --- /dev/null +++ b/gpx/test-data/with_tracks_and_segments.gpx @@ -0,0 +1,346 @@ + + + + with_tracks_and_segments + + gpx.studio + + + + + track 1 + Running + + + 109.0 + + + + 110.8 + + + + 110.3 + + + + 110.0 + + + + 110.3 + + + + 109.3 + + + + 107.0 + + + + 106.0 + + + + 108.5 + + + + 109.8 + + + + 110.8 + + + + 112.0 + + + + 112.8 + + + + 113.5 + + + + 114.3 + + + + 115.3 + + + + + + 115.0 + + + + 114.8 + + + + 114.3 + + + + 114.3 + + + + 114.5 + + + + 115.0 + + + + 115.8 + + + + 115.8 + + + + 116.0 + + + + 115.8 + + + + 115.5 + + + + 114.5 + + + + 112.5 + + + + 110.8 + + + + 109.0 + + + + 106.3 + + + + 104.3 + + + + 104.0 + + + + 103.8 + + + + 103.3 + + + + 103.5 + + + + 103.8 + + + + 104.8 + + + + 105.8 + + + + 106.8 + + + + 107.8 + + + + 108.5 + + + + 109.3 + + + + 110.0 + + + + 110.5 + + + + 110.8 + + + + 111.8 + + + + 112.8 + + + + 113.3 + + + + + + track 2 + Running + + + 115.5 + + + + 115.8 + + + + 118.5 + + + + 119.5 + + + + 121.3 + + + + 122.0 + + + + 122.8 + + + + 123.5 + + + + 126.3 + + + + 128.0 + + + + 129.0 + + + + 130.0 + + + + 130.8 + + + + 131.8 + + + + 132.3 + + + + 132.8 + + + + 135.8 + + + + 135.5 + + + + 132.5 + + + + + + 133.3 + + + + 134.0 + + + + 136.8 + + + + 137.5 + + + + 137.3 + + + + 137.5 + + + + 137.3 + + + + 134.8 + + + + 132.3 + + + + 129.5 + + + + + \ No newline at end of file diff --git a/gpx/test-data/with_waypoint.gpx b/gpx/test-data/with_waypoint.gpx new file mode 100644 index 0000000..c908b05 --- /dev/null +++ b/gpx/test-data/with_waypoint.gpx @@ -0,0 +1,267 @@ + + + + with_waypoint + + gpx.studio + + + + + 122.0 + Waypoint + Comment + Description + Bike Trail + + + with_waypoint + Cycling + + + 109.0 + + + 110.8 + + + 110.3 + + + 110.0 + + + 110.3 + + + 109.3 + + + 107.0 + + + 106.0 + + + 108.5 + + + 109.8 + + + 110.8 + + + 112.0 + + + 112.8 + + + 113.5 + + + 114.3 + + + 115.3 + + + 114.8 + + + 114.3 + + + 114.3 + + + 114.5 + + + 115.0 + + + 115.8 + + + 115.8 + + + 116.0 + + + 115.8 + + + 115.5 + + + 114.5 + + + 112.5 + + + 110.8 + + + 109.0 + + + 106.3 + + + 104.3 + + + 104.0 + + + 103.8 + + + 103.3 + + + 103.5 + + + 103.8 + + + 104.8 + + + 105.8 + + + 106.8 + + + 107.8 + + + 108.5 + + + 109.3 + + + 110.0 + + + 110.5 + + + 110.8 + + + 111.8 + + + 112.8 + + + 113.3 + + + 113.5 + + + 113.5 + + + 113.8 + + + 114.8 + + + 115.8 + + + 118.5 + + + 119.5 + + + 121.3 + + + 122.0 + + + 122.8 + + + 123.5 + + + 126.3 + + + 128.0 + + + 129.0 + + + 130.0 + + + 130.8 + + + 131.8 + + + 132.3 + + + 132.8 + + + 135.8 + + + 135.5 + + + 132.5 + + + 134.0 + + + 136.8 + + + 137.5 + + + 137.3 + + + 137.5 + + + 137.3 + + + 134.8 + + + 132.3 + + + 129.5 + + + + \ No newline at end of file diff --git a/gpx/tsconfig.json b/gpx/tsconfig.json new file mode 100644 index 0000000..e6976b2 --- /dev/null +++ b/gpx/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "module": "ES2020", + "target": "ES2015", + "declaration": true, + "outDir": "./dist", + "moduleResolution": "node", + }, + "include": [ + "src" + ], +} \ No newline at end of file diff --git a/website/.env.example b/website/.env.example new file mode 100644 index 0000000..4d6b95b --- /dev/null +++ b/website/.env.example @@ -0,0 +1 @@ +PUBLIC_MAPBOX_TOKEN=YOUR_MAPBOX_TOKEN \ No newline at end of file diff --git a/website/.eslintignore b/website/.eslintignore new file mode 100644 index 0000000..3897265 --- /dev/null +++ b/website/.eslintignore @@ -0,0 +1,13 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example + +# Ignore files for PNPM, NPM and YARN +pnpm-lock.yaml +package-lock.json +yarn.lock diff --git a/website/.eslintrc.cjs b/website/.eslintrc.cjs new file mode 100644 index 0000000..0b75758 --- /dev/null +++ b/website/.eslintrc.cjs @@ -0,0 +1,31 @@ +/** @type { import("eslint").Linter.Config } */ +module.exports = { + root: true, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:svelte/recommended', + 'prettier' + ], + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint'], + parserOptions: { + sourceType: 'module', + ecmaVersion: 2020, + extraFileExtensions: ['.svelte'] + }, + env: { + browser: true, + es2017: true, + node: true + }, + overrides: [ + { + files: ['*.svelte'], + parser: 'svelte-eslint-parser', + parserOptions: { + parser: '@typescript-eslint/parser' + } + } + ] +}; diff --git a/website/.gitignore b/website/.gitignore new file mode 100644 index 0000000..6635cf5 --- /dev/null +++ b/website/.gitignore @@ -0,0 +1,10 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/website/.npmrc b/website/.npmrc new file mode 100644 index 0000000..b6f27f1 --- /dev/null +++ b/website/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/website/.prettierignore b/website/.prettierignore new file mode 100644 index 0000000..cc41cea --- /dev/null +++ b/website/.prettierignore @@ -0,0 +1,4 @@ +# Ignore files for PNPM, NPM and YARN +pnpm-lock.yaml +package-lock.json +yarn.lock diff --git a/website/.prettierrc b/website/.prettierrc new file mode 100644 index 0000000..9573023 --- /dev/null +++ b/website/.prettierrc @@ -0,0 +1,8 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": ["prettier-plugin-svelte"], + "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] +} diff --git a/website/components.json b/website/components.json new file mode 100644 index 0000000..7b2aff4 --- /dev/null +++ b/website/components.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://shadcn-svelte.com/schema.json", + "style": "default", + "tailwind": { + "config": "tailwind.config.js", + "css": "src/app.css", + "baseColor": "slate" + }, + "aliases": { + "components": "$lib/components", + "utils": "$lib/utils" + }, + "typescript": true +} \ No newline at end of file diff --git a/website/package-lock.json b/website/package-lock.json new file mode 100644 index 0000000..bc111b8 --- /dev/null +++ b/website/package-lock.json @@ -0,0 +1,9525 @@ +{ + "name": "website", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "website", + "version": "0.0.1", + "dependencies": { + "@docsearch/js": "^3.6.2", + "@internationalized/date": "^3.5.5", + "@mapbox/mapbox-gl-geocoder": "^5.0.3", + "@mapbox/sphericalmercator": "^1.2.0", + "@mapbox/tilebelt": "^1.0.2", + "@types/mapbox__sphericalmercator": "^1.2.3", + "bits-ui": "^0.21.15", + "chart.js": "^4.4.4", + "chartjs-plugin-zoom": "^2.0.1", + "clsx": "^2.1.1", + "dexie": "^4.0.8", + "gpx": "file:../gpx", + "immer": "^10.1.1", + "lucide-static": "^0.427.0", + "lucide-svelte": "^0.427.0", + "mapbox-gl": "^3.7.0", + "mapillary-js": "^4.1.2", + "mode-watcher": "^0.3.1", + "png.js": "^0.2.1", + "sanitize-html": "^2.13.0", + "sortablejs": "^1.15.3", + "svelte-i18n": "^4.0.0", + "svelte-sonner": "^0.3.28", + "tailwind-merge": "^2.5.2", + "tailwind-variants": "^0.2.1" + }, + "devDependencies": { + "@sveltejs/adapter-auto": "^3.2.5", + "@sveltejs/adapter-static": "^3.0.5", + "@sveltejs/enhanced-img": "^0.3.8", + "@sveltejs/kit": "^2.6.1", + "@sveltejs/vite-plugin-svelte": "^3.1.2", + "@types/eslint": "^8.56.12", + "@types/events": "^3.0.3", + "@types/mapbox__mapbox-gl-geocoder": "^5.0.0", + "@types/mapbox__tilebelt": "^1.0.4", + "@types/mapbox-gl": "^3.4.0", + "@types/node": "^20.16.10", + "@types/png.js": "^0.2.3", + "@types/sanitize-html": "^2.13.0", + "@types/sortablejs": "^1.15.8", + "@typescript-eslint/eslint-plugin": "^7.18.0", + "@typescript-eslint/parser": "^7.18.0", + "autoprefixer": "^10.4.20", + "eslint": "^8.57.1", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-svelte": "^2.44.1", + "events": "^3.3.0", + "glob": "^10.4.5", + "mdsvex": "^0.11.2", + "postcss": "^8.4.47", + "prettier": "^3.3.3", + "prettier-plugin-svelte": "^3.2.7", + "svelte": "^4.2.19", + "svelte-check": "^3.8.6", + "tailwindcss": "^3.4.13", + "tslib": "^2.7.0", + "tsx": "^4.19.1", + "typescript": "^5.6.2", + "vite": "^5.4.8", + "vite-plugin-node-polyfills": "^0.22.0" + } + }, + "../gpx": { + "version": "1.0.0", + "hasInstallScript": true, + "dependencies": { + "fast-xml-parser": "^4.5.0", + "immer": "^10.1.1", + "ts-node": "^10.9.2" + }, + "devDependencies": { + "@types/geojson": "^7946.0.14", + "@types/node": "^20.16.10", + "typescript": "^5.6.2" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", + "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", + "@algolia/autocomplete-shared": "1.9.3" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", + "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", + "dependencies": { + "@algolia/autocomplete-shared": "1.9.3" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", + "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", + "dependencies": { + "@algolia/autocomplete-shared": "1.9.3" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", + "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/cache-browser-local-storage": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.24.0.tgz", + "integrity": "sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==", + "dependencies": { + "@algolia/cache-common": "4.24.0" + } + }, + "node_modules/@algolia/cache-common": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.24.0.tgz", + "integrity": "sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==" + }, + "node_modules/@algolia/cache-in-memory": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.24.0.tgz", + "integrity": "sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==", + "dependencies": { + "@algolia/cache-common": "4.24.0" + } + }, + "node_modules/@algolia/client-account": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.24.0.tgz", + "integrity": "sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==", + "dependencies": { + "@algolia/client-common": "4.24.0", + "@algolia/client-search": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/client-account/node_modules/@algolia/client-common": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", + "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", + "dependencies": { + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/client-account/node_modules/@algolia/client-search": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", + "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", + "dependencies": { + "@algolia/client-common": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.24.0.tgz", + "integrity": "sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==", + "dependencies": { + "@algolia/client-common": "4.24.0", + "@algolia/client-search": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/client-analytics/node_modules/@algolia/client-common": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", + "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", + "dependencies": { + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/client-analytics/node_modules/@algolia/client-search": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", + "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", + "dependencies": { + "@algolia/client-common": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.6.1.tgz", + "integrity": "sha512-4MGqXqiAyqsUJw+KamKWZO2Gxn9iMpc05vC0vy8+iQRjKRZEDB1a+3Da6CnkWzXa162pJb7a/chDAAKA9rye8A==", + "peer": true, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.24.0.tgz", + "integrity": "sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==", + "dependencies": { + "@algolia/client-common": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/client-personalization/node_modules/@algolia/client-common": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", + "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", + "dependencies": { + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.6.1.tgz", + "integrity": "sha512-HloeR0Ef29vf2yJc1lhjw1OYial3YgB0f3TQaqqMlSnM/IkAw9TnX1IOYLurnI91apMKggFpA9t8lRp7TGEKEg==", + "peer": true, + "dependencies": { + "@algolia/client-common": "5.6.1", + "@algolia/requester-browser-xhr": "5.6.1", + "@algolia/requester-fetch": "5.6.1", + "@algolia/requester-node-http": "5.6.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/logger-common": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.24.0.tgz", + "integrity": "sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==" + }, + "node_modules/@algolia/logger-console": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.24.0.tgz", + "integrity": "sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==", + "dependencies": { + "@algolia/logger-common": "4.24.0" + } + }, + "node_modules/@algolia/recommend": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.24.0.tgz", + "integrity": "sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.24.0", + "@algolia/cache-common": "4.24.0", + "@algolia/cache-in-memory": "4.24.0", + "@algolia/client-common": "4.24.0", + "@algolia/client-search": "4.24.0", + "@algolia/logger-common": "4.24.0", + "@algolia/logger-console": "4.24.0", + "@algolia/requester-browser-xhr": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/requester-node-http": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/recommend/node_modules/@algolia/client-common": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", + "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", + "dependencies": { + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/recommend/node_modules/@algolia/client-search": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", + "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", + "dependencies": { + "@algolia/client-common": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/@algolia/recommend/node_modules/@algolia/requester-browser-xhr": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz", + "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==", + "dependencies": { + "@algolia/requester-common": "4.24.0" + } + }, + "node_modules/@algolia/recommend/node_modules/@algolia/requester-node-http": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz", + "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==", + "dependencies": { + "@algolia/requester-common": "4.24.0" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.6.1.tgz", + "integrity": "sha512-tY1RW60sGF9sMpxbd8j53IqLLwnkNhrAarVhFfNZzDZNvI8WyzG78W5ZD/SFvtkgNPPSav3T/3LpBT8xBpzbGw==", + "peer": true, + "dependencies": { + "@algolia/client-common": "5.6.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-common": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.24.0.tgz", + "integrity": "sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==" + }, + "node_modules/@algolia/requester-fetch": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.6.1.tgz", + "integrity": "sha512-4TvR5IodrH+o+ji4ka+VBufWY0GfHr43nFqnDTStabtjspfo4rlcV16x534vvnbfp694oBxrz0SO/Ny8VemvXg==", + "peer": true, + "dependencies": { + "@algolia/client-common": "5.6.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-node-http": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.6.1.tgz", + "integrity": "sha512-K7tlss87aq6UnWnU8+fPIe+Is9Mvyqwzysp6Ty/HpQ7YNKUU7opgkMOVKxzTwt3fm40NfNX4ENvVKHoYABL6vw==", + "peer": true, + "dependencies": { + "@algolia/client-common": "5.6.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/transporter": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.24.0.tgz", + "integrity": "sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==", + "dependencies": { + "@algolia/cache-common": "4.24.0", + "@algolia/logger-common": "4.24.0", + "@algolia/requester-common": "4.24.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@docsearch/css": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.2.tgz", + "integrity": "sha512-vKNZepO2j7MrYBTZIGXvlUOIR+v9KRf70FApRgovWrj3GTs1EITz/Xb0AOlm1xsQBp16clVZj1SY/qaOJbQtZw==" + }, + "node_modules/@docsearch/js": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.6.2.tgz", + "integrity": "sha512-pS4YZF+VzUogYrkblCucQ0Oy2m8Wggk8Kk7lECmZM60hTbaydSIhJTTiCrmoxtBqV8wxORnOqcqqOfbmkkQEcA==", + "dependencies": { + "@docsearch/react": "3.6.2", + "preact": "^10.0.0" + } + }, + "node_modules/@docsearch/react": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.2.tgz", + "integrity": "sha512-rtZce46OOkVflCQH71IdbXSFK+S8iJZlUF56XBW5rIgx/eG5qoomC7Ag3anZson1bBac/JFQn7XOBfved/IMRA==", + "dependencies": { + "@algolia/autocomplete-core": "1.9.3", + "@algolia/autocomplete-preset-algolia": "1.9.3", + "@docsearch/css": "3.6.2", + "algoliasearch": "^4.19.1" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 19.0.0", + "react": ">= 16.8.0 < 19.0.0", + "react-dom": ">= 16.8.0 < 19.0.0", + "search-insights": ">= 1 < 3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "search-insights": { + "optional": true + } + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.2.0.tgz", + "integrity": "sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", + "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", + "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", + "dependencies": { + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.11.tgz", + "integrity": "sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", + "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" + }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz", + "integrity": "sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==", + "dependencies": { + "@formatjs/intl-localematcher": "0.5.4", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/fast-memoize": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", + "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.7.8", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.8.tgz", + "integrity": "sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==", + "dependencies": { + "@formatjs/ecma402-abstract": "2.0.0", + "@formatjs/icu-skeleton-parser": "1.8.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz", + "integrity": "sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==", + "dependencies": { + "@formatjs/ecma402-abstract": "2.0.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz", + "integrity": "sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "dev": true, + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@internationalized/date": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.5.tgz", + "integrity": "sha512-H+CfYvOZ0LTJeeLOqm19E3uj/4YjrmOFtBufDHPfvtI80hFAMqtrp7oCACpe4Cil5l8S0Qu/9dYfZc/5lY8WQQ==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" + }, + "node_modules/@mapbox/fusspot": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@mapbox/fusspot/-/fusspot-0.4.0.tgz", + "integrity": "sha512-6sys1vUlhNCqMvJOqPEPSi0jc9tg7aJ//oG1A16H3PXoIt9whtNngD7UzBHUVTH15zunR/vRvMtGNVsogm1KzA==", + "dependencies": { + "is-plain-obj": "^1.1.0", + "xtend": "^4.0.1" + } + }, + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@mapbox/mapbox-gl-geocoder": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-geocoder/-/mapbox-gl-geocoder-5.0.3.tgz", + "integrity": "sha512-aeu2ZM+UKoMUGqqKy4UVVEKsIaNj2KSsiQ4p4YbNSAjZj2vcP33KSod+DPeRwhvoY+MU6KgyvdZ/1xdmH+C62g==", + "dependencies": { + "@mapbox/mapbox-sdk": "^0.16.1", + "events": "^3.3.0", + "lodash.debounce": "^4.0.6", + "nanoid": "^3.1.31", + "subtag": "^0.5.0", + "suggestions": "^1.6.0", + "xtend": "^4.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@mapbox/mapbox-gl-supported": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-3.0.0.tgz", + "integrity": "sha512-2XghOwu16ZwPJLOFVuIOaLbN0iKMn867evzXFyf0P22dqugezfJwLmdanAgU25ITvz1TvOfVP4jsDImlDJzcWg==" + }, + "node_modules/@mapbox/mapbox-sdk": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-sdk/-/mapbox-sdk-0.16.1.tgz", + "integrity": "sha512-dyZrmg+UL/Gp5mGG3CDbcwGSUMYYrfbd9hdp0rcA3pHSf3A9eYoXO9nFiIk6SzBwBVMzHENJz84ZHdqM0MDncQ==", + "dependencies": { + "@mapbox/fusspot": "^0.4.0", + "@mapbox/parse-mapbox-token": "^0.2.0", + "@mapbox/polyline": "^1.0.0", + "eventemitter3": "^3.1.0", + "form-data": "^3.0.0", + "got": "^11.8.5", + "is-plain-obj": "^1.1.0", + "xtend": "^4.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@mapbox/parse-mapbox-token": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@mapbox/parse-mapbox-token/-/parse-mapbox-token-0.2.0.tgz", + "integrity": "sha512-BjeuG4sodYaoTygwXIuAWlZV6zUv4ZriYAQhXikzx+7DChycMUQ9g85E79Htat+AsBg+nStFALehlOhClYm5cQ==", + "dependencies": { + "base-64": "^0.1.0" + } + }, + "node_modules/@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==" + }, + "node_modules/@mapbox/polyline": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@mapbox/polyline/-/polyline-1.2.1.tgz", + "integrity": "sha512-sn0V18O3OzW4RCcPoUIVDWvEGQaBNH9a0y5lgqrf5hUycyw1CzrhEoxV5irzrMNXKCkw1xRsZXcaVbsVZggHXA==", + "dependencies": { + "meow": "^9.0.0" + }, + "bin": { + "polyline": "bin/polyline.bin.js" + } + }, + "node_modules/@mapbox/sphericalmercator": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@mapbox/sphericalmercator/-/sphericalmercator-1.2.0.tgz", + "integrity": "sha512-ZTOuuwGuMOJN+HEmG/68bSEw15HHaMWmQ5gdTsWdWsjDe56K1kGvLOK6bOSC8gWgIvEO0w6un/2Gvv1q5hJSkQ==", + "bin": { + "bbox": "bin/bbox.js", + "to4326": "bin/to4326.js", + "to900913": "bin/to900913.js", + "xyz": "bin/xyz.js" + } + }, + "node_modules/@mapbox/tilebelt": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/tilebelt/-/tilebelt-1.0.2.tgz", + "integrity": "sha512-tGJN2VIgWrXqBTPIxFVklklIpcy6ss8W5ouq+cjNLXPXFraRaDR4Ice+5Q8/uLX+6aH23lWBMydOIn8PcdVcpA==" + }, + "node_modules/@mapbox/tiny-sdf": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", + "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==" + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==" + }, + "node_modules/@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "dependencies": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "node_modules/@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@melt-ui/svelte": { + "version": "0.76.2", + "resolved": "https://registry.npmjs.org/@melt-ui/svelte/-/svelte-0.76.2.tgz", + "integrity": "sha512-7SbOa11tXUS95T3fReL+dwDs5FyJtCEqrqG3inRziDws346SYLsxOQ6HmX+4BkIsQh1R8U3XNa+EMmdMt38lMA==", + "dependencies": { + "@floating-ui/core": "^1.3.1", + "@floating-ui/dom": "^1.4.5", + "@internationalized/date": "^3.5.0", + "dequal": "^2.0.3", + "focus-trap": "^7.5.2", + "nanoid": "^5.0.4" + }, + "peerDependencies": { + "svelte": ">=3 <5" + } + }, + "node_modules/@melt-ui/svelte/node_modules/nanoid": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.7.tgz", + "integrity": "sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.28", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "dev": true + }, + "node_modules/@rollup/plugin-inject": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz", + "integrity": "sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-inject/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.2.tgz", + "integrity": "sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.5.tgz", + "integrity": "sha512-SU5cvamg0Eyu/F+kLeMXS7GoahL+OoizlclVFX3l5Ql6yNlywJJ0OuqTzUx0v+aHhPHEB/56CT06GQrRrGNYww==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.5.tgz", + "integrity": "sha512-S4pit5BP6E5R5C8S6tgU/drvgjtYW76FBuG6+ibG3tMvlD1h9LHVF9KmlmaUBQ8Obou7hEyS+0w+IR/VtxwNMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.5.tgz", + "integrity": "sha512-250ZGg4ipTL0TGvLlfACkIxS9+KLtIbn7BCZjsZj88zSg2Lvu3Xdw6dhAhfe/FjjXPVNCtcSp+WZjVsD3a/Zlw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.5.tgz", + "integrity": "sha512-D8brJEFg5D+QxFcW6jYANu+Rr9SlKtTenmsX5hOSzNYVrK5oLAEMTUgKWYJP+wdKyCdeSwnapLsn+OVRFycuQg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.5.tgz", + "integrity": "sha512-PNqXYmdNFyWNg0ma5LdY8wP+eQfdvyaBAojAXgO7/gs0Q/6TQJVXAXe8gwW9URjbS0YAammur0fynYGiWsKlXw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.5.tgz", + "integrity": "sha512-kSSCZOKz3HqlrEuwKd9TYv7vxPYD77vHSUvM2y0YaTGnFc8AdI5TTQRrM1yIp3tXCKrSL9A7JLoILjtad5t8pQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.5.tgz", + "integrity": "sha512-oTXQeJHRbOnwRnRffb6bmqmUugz0glXaPyspp4gbQOPVApdpRrY/j7KP3lr7M8kTfQTyrBUzFjj5EuHAhqH4/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.5.tgz", + "integrity": "sha512-qnOTIIs6tIGFKCHdhYitgC2XQ2X25InIbZFor5wh+mALH84qnFHvc+vmWUpyX97B0hNvwNUL4B+MB8vJvH65Fw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.5.tgz", + "integrity": "sha512-TMYu+DUdNlgBXING13rHSfUc3Ky5nLPbWs4bFnT+R6Vu3OvXkTkixvvBKk8uO4MT5Ab6lC3U7x8S8El2q5o56w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.5.tgz", + "integrity": "sha512-PTQq1Kz22ZRvuhr3uURH+U/Q/a0pbxJoICGSprNLAoBEkyD3Sh9qP5I0Asn0y0wejXQBbsVMRZRxlbGFD9OK4A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.5.tgz", + "integrity": "sha512-bR5nCojtpuMss6TDEmf/jnBnzlo+6n1UhgwqUvRoe4VIotC7FG1IKkyJbwsT7JDsF2jxR+NTnuOwiGv0hLyDoQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.5.tgz", + "integrity": "sha512-N0jPPhHjGShcB9/XXZQWuWBKZQnC1F36Ce3sDqWpujsGjDz/CQtOL9LgTrJ+rJC8MJeesMWrMWVLKKNR/tMOCA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.5.tgz", + "integrity": "sha512-uBa2e28ohzNNwjr6Uxm4XyaA1M/8aTgfF2T7UIlElLaeXkgpmIJ2EitVNQxjO9xLLLy60YqAgKn/AqSpCUkE9g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.5.tgz", + "integrity": "sha512-RXT8S1HP8AFN/Kr3tg4fuYrNxZ/pZf1HemC5Tsddc6HzgGnJm0+Lh5rAHJkDuW3StI0ynNXukidROMXYl6ew8w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.5.tgz", + "integrity": "sha512-ElTYOh50InL8kzyUD6XsnPit7jYCKrphmddKAe1/Ytt74apOxDq5YEcbsiKs0fR3vff3jEneMM+3I7jbqaMyBg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.5.tgz", + "integrity": "sha512-+lvL/4mQxSV8MukpkKyyvfwhH266COcWlXE/1qxwN08ajovta3459zrjLghYMgDerlzNwLAcFpvU+WWE5y6nAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sveltejs/adapter-auto": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-3.2.5.tgz", + "integrity": "sha512-27LR+uKccZ62lgq4N/hvyU2G+hTP9fxWEAfnZcl70HnyfAjMSsGk1z/SjAPXNCD1mVJIE7IFu3TQ8cQ/UH3c0A==", + "dev": true, + "dependencies": { + "import-meta-resolve": "^4.1.0" + }, + "peerDependencies": { + "@sveltejs/kit": "^2.0.0" + } + }, + "node_modules/@sveltejs/adapter-static": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.5.tgz", + "integrity": "sha512-kFJR7RxeB6FBvrKZWAEzIALatgy11ISaaZbcPup8JdWUdrmmfUHHTJ738YHJTEfnCiiXi6aX8Q6ePY7tnSMD6Q==", + "dev": true, + "peerDependencies": { + "@sveltejs/kit": "^2.0.0" + } + }, + "node_modules/@sveltejs/enhanced-img": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@sveltejs/enhanced-img/-/enhanced-img-0.3.8.tgz", + "integrity": "sha512-n66u46ZeqHltiTm0BEjWptYmCrCY0EltEEvakmC7d5o5ZejDbOvOWm914mebbRKaP2Bezv65TNCod/wqvw/0KA==", + "dev": true, + "dependencies": { + "magic-string": "^0.30.5", + "svelte-parse-markup": "^0.1.2", + "vite-imagetools": "^7.0.1" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": ">= 5.0.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.6.1.tgz", + "integrity": "sha512-QFlch3GPGZYidYhdRAub0fONw8UTguPICFHUSPxNkA/jdlU1p6C6yqq19J1QWdxIHS2El/ycDCGrHb3EAiMNqg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^0.6.0", + "devalue": "^5.1.0", + "esm-env": "^1.0.0", + "import-meta-resolve": "^4.1.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.5", + "mrmime": "^2.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.6.0", + "sirv": "^2.0.4", + "tiny-glob": "^0.2.9" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": ">=18.13" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.3" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.1.2.tgz", + "integrity": "sha512-Txsm1tJvtiYeLUVRNqxZGKR/mI+CzuIQuc2gn+YCs9rMTowpNZ2Nqt53JdL8KF9bLhAf2ruR/dr9eZCwdTriRA==", + "dev": true, + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^2.1.0", + "debug": "^4.3.4", + "deepmerge": "^4.3.1", + "kleur": "^4.1.5", + "magic-string": "^0.30.10", + "svelte-hmr": "^0.16.0", + "vitefu": "^0.2.5" + }, + "engines": { + "node": "^18.0.0 || >=20" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.1.0.tgz", + "integrity": "sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.0.0 || >=20" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.0" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true + }, + "node_modules/@types/earcut": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@types/earcut/-/earcut-2.1.4.tgz", + "integrity": "sha512-qp3m9PPz4gULB9MhjGID7wpo3gJ4bTGXm7ltNDsmOvsPduTeHp8wSW9YckBj3mljeOh4F0m2z/0JKAALRKbmLQ==" + }, + "node_modules/@types/eslint": { + "version": "8.56.12", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz", + "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" + }, + "node_modules/@types/events": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.3.tgz", + "integrity": "sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g==", + "dev": true + }, + "node_modules/@types/geojson": { + "version": "7946.0.14", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", + "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==" + }, + "node_modules/@types/geojson-vt": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/geojson-vt/-/geojson-vt-3.2.5.tgz", + "integrity": "sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/mapbox__mapbox-gl-geocoder": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/mapbox__mapbox-gl-geocoder/-/mapbox__mapbox-gl-geocoder-5.0.0.tgz", + "integrity": "sha512-eGBWdFiP2QgmwndPyhwK6eBeOfyB8vRscp2C6Acqasx5dH8FvTo/VgXWCrCKFR3zkWek/H4w4/CwmBFOs7OLBA==", + "dev": true, + "dependencies": { + "@types/geojson": "*", + "@types/mapbox-gl": "*" + } + }, + "node_modules/@types/mapbox__point-geometry": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.4.tgz", + "integrity": "sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==" + }, + "node_modules/@types/mapbox__sphericalmercator": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/mapbox__sphericalmercator/-/mapbox__sphericalmercator-1.2.3.tgz", + "integrity": "sha512-gBXMMNhRTA8HzAzLdBzVYET0dH1p8jDPYZoT9+KnfFRYIRwHnbW+3IyiSlwS7kvr97PMn501QY+Dd3kjxb2dAA==" + }, + "node_modules/@types/mapbox__tilebelt": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__tilebelt/-/mapbox__tilebelt-1.0.4.tgz", + "integrity": "sha512-0bFeefnaxWLeQOf+7srPLYqOGu5LqMq+KaZp3r/y8mxhIBHbOD8GcEf8EDxxgLTlo6LBZV/9obQf7nCTL0o4Ew==", + "dev": true, + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/mapbox__vector-tile": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.4.tgz", + "integrity": "sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==", + "dependencies": { + "@types/geojson": "*", + "@types/mapbox__point-geometry": "*", + "@types/pbf": "*" + } + }, + "node_modules/@types/mapbox-gl": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@types/mapbox-gl/-/mapbox-gl-3.4.0.tgz", + "integrity": "sha512-tbn++Mm94H1kE7W6FF0oVC9rMXHVzDDNUbS7KfBMRF8NV/8csFi+67ytKcZJ4LsrpsJ+8MC6Os6ZinEDCsrunw==", + "dev": true, + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==" + }, + "node_modules/@types/node": { + "version": "20.16.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.10.tgz", + "integrity": "sha512-vQUKgWTjEIRFCvK6CyriPH3MZYiYlNy0fKiEYHWbcoWLEgs4opurGGKlebrTLqdSMIbXImH6XExNiIyNUv3WpA==", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==" + }, + "node_modules/@types/pako": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-1.0.7.tgz", + "integrity": "sha512-YBtzT2ztNF6R/9+UXj2wTGFnC9NklAnASt3sC0h2m1bbH7G6FyBIkt4AN8ThZpNfxUo1b2iMVO0UawiJymEt8A==" + }, + "node_modules/@types/pbf": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.5.tgz", + "integrity": "sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==" + }, + "node_modules/@types/png.js": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@types/png.js/-/png.js-0.2.3.tgz", + "integrity": "sha512-7F2LTRf/WJDpw9n9cPKi096a+gAdY2LS7WGlaEbGD7YZ7F7+t5tHRNHgvNvvigP6cZyjNW2Qsi/aR6AC2XN9xQ==", + "dev": true + }, + "node_modules/@types/polylabel": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/polylabel/-/polylabel-1.1.3.tgz", + "integrity": "sha512-9Zw2KoDpi+T4PZz2G6pO2xArE0m/GSMTW1MIxF2s8ZY8x9XDO6fv9um0ydRGvcbkFLlaq8yNK6eZxnmMZtDgWQ==" + }, + "node_modules/@types/pug": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz", + "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==", + "dev": true + }, + "node_modules/@types/rbush": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/rbush/-/rbush-3.0.4.tgz", + "integrity": "sha512-knSt9cCW8jj1ZSFcFeBZaX++OucmfPxxHiRwTahZfJlnQsek7O0bazTJHWD2RVj9LEoejUYF2de3/stf+QXcXw==" + }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/sanitize-html": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/@types/sanitize-html/-/sanitize-html-2.13.0.tgz", + "integrity": "sha512-X31WxbvW9TjIhZZNyNBZ/p5ax4ti7qsNDBDEnH4zAgmEh35YnFD1UiS6z9Cd34kKm0LslFW0KPmTQzu/oGtsqQ==", + "dev": true, + "dependencies": { + "htmlparser2": "^8.0.0" + } + }, + "node_modules/@types/sortablejs": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.15.8.tgz", + "integrity": "sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==", + "dev": true + }, + "node_modules/@types/supercluster": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", + "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/three": { + "version": "0.134.0", + "resolved": "https://registry.npmjs.org/@types/three/-/three-0.134.0.tgz", + "integrity": "sha512-4YB+99Rgqq27EjiYTItEoZtdjLnTh8W9LxowgpC9eWsjaQJIL4Kn/ZcUKAnW3gB/jS4hqGN8iqmid+RcUZDzpA==" + }, + "node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "dev": true + }, + "node_modules/@types/virtual-dom": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@types/virtual-dom/-/virtual-dom-2.1.4.tgz", + "integrity": "sha512-Y7L/frVydXRd16MevczslJZQu+QWsrqZlj6ytk7mST3xen0fkx7Ollw31By/89A8Wq+nfNWm/IoTR1ac/0fRhA==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/algoliasearch": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.24.0.tgz", + "integrity": "sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.24.0", + "@algolia/cache-common": "4.24.0", + "@algolia/cache-in-memory": "4.24.0", + "@algolia/client-account": "4.24.0", + "@algolia/client-analytics": "4.24.0", + "@algolia/client-common": "4.24.0", + "@algolia/client-personalization": "4.24.0", + "@algolia/client-search": "4.24.0", + "@algolia/logger-common": "4.24.0", + "@algolia/logger-console": "4.24.0", + "@algolia/recommend": "4.24.0", + "@algolia/requester-browser-xhr": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/requester-node-http": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/algoliasearch/node_modules/@algolia/client-common": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", + "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", + "dependencies": { + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/algoliasearch/node_modules/@algolia/client-search": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", + "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", + "dependencies": { + "@algolia/client-common": "4.24.0", + "@algolia/requester-common": "4.24.0", + "@algolia/transporter": "4.24.0" + } + }, + "node_modules/algoliasearch/node_modules/@algolia/requester-browser-xhr": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz", + "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==", + "dependencies": { + "@algolia/requester-common": "4.24.0" + } + }, + "node_modules/algoliasearch/node_modules/@algolia/requester-node-http": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz", + "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==", + "dependencies": { + "@algolia/requester-common": "4.24.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/assert": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz", + "integrity": "sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bits-ui": { + "version": "0.21.15", + "resolved": "https://registry.npmjs.org/bits-ui/-/bits-ui-0.21.15.tgz", + "integrity": "sha512-+m5WSpJnFdCcNdXSTIVC1WYBozipO03qRh03GFWgrdxoHiolCfwW71EYG4LPCWYPG6KcTZV0Cj6iHSiZ7cdKdg==", + "dependencies": { + "@internationalized/date": "^3.5.1", + "@melt-ui/svelte": "0.76.2", + "nanoid": "^5.0.5" + }, + "funding": { + "url": "https://github.com/sponsors/huntabyte" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.118" + } + }, + "node_modules/bits-ui/node_modules/nanoid": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.7.tgz", + "integrity": "sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "node_modules/browser-resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "dev": true, + "dependencies": { + "resolve": "^1.17.0" + } + }, + "node_modules/browser-split": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/browser-split/-/browser-split-0.0.1.tgz", + "integrity": "sha512-JhvgRb2ihQhsljNda3BI8/UcRHVzrVwo3Q+P8vDtSiyobXuFpuZ9mq+MbRGMnC22CjW3RrfXdg6j6ITX8M+7Ow==" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/browserify-sign/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserify-zlib/node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "engines": { + "node": ">=8" + } + }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001664", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001664.tgz", + "integrity": "sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chart.js": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.4.tgz", + "integrity": "sha512-emICKGBABnxhMjUjlYRR12PmOXhJ2eJjEHL2/dZlWjxRAZT1D8xplLFq5M0tMQK8ja+wBS/tuVEJB5C6r7VxJA==", + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": ">=8" + } + }, + "node_modules/chartjs-plugin-zoom": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chartjs-plugin-zoom/-/chartjs-plugin-zoom-2.0.1.tgz", + "integrity": "sha512-ogOmLu6e+Q7E1XWOCOz9YwybMslz9qNfGV2a+qjfmqJYpsw5ZMoRHZBUyW+NGhkpQ5PwwPA/+rikHpBZb7PZuA==", + "dependencies": { + "hammerjs": "^2.0.8" + }, + "peerDependencies": { + "chart.js": ">=3.2.0" + } + }, + "node_modules/cheap-ruler": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-4.0.0.tgz", + "integrity": "sha512-0BJa8f4t141BYKQyn9NSQt1PguFQXMXwZiA5shfoaBYHAb2fFk2RAX+tiWMoQU+Agtzt3mdt0JtuyshAXqZ+Vw==" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/cli-color": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.4.tgz", + "integrity": "sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.64", + "es6-iterator": "^2.0.3", + "memoizee": "^0.4.15", + "timers-ext": "^0.1.7" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.1.1.tgz", + "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==", + "dev": true + }, + "node_modules/dexie": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/dexie/-/dexie-4.0.8.tgz", + "integrity": "sha512-1G6cJevS17KMDK847V3OHvK2zei899GwpDiqfEXHP1ASvme6eWJmAp9AU4s1son2TeGkWmC0g3y8ezOBPnalgQ==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/domain-browser": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.23.0.tgz", + "integrity": "sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/earcut": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.0.tgz", + "integrity": "sha512-41Fs7Q/PLq1SDbqjsgcY7GA42T0jvaCNGXgGtsNdvg+Yv8eIu06bxv4/PoREkZ9nMDNwnUSG9OFB9+yv8eKhDg==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.29", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.29.tgz", + "integrity": "sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz", + "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/error/-/error-4.4.0.tgz", + "integrity": "sha512-SNDKualLUtT4StGFP7xNfuFybL2f6iJujFtrWuvJqGbVQGaN+adE23veqzPz1hjUjTunLi2EnJ+0SJxtbJreKw==", + "dependencies": { + "camelize": "^1.0.0", + "string-template": "~0.2.0", + "xtend": "~4.0.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "dev": true + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "dev": true, + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-svelte": { + "version": "2.44.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.44.1.tgz", + "integrity": "sha512-w6wkoJPw1FJKFtM/2oln21rlu5+HTd2CSkkzhm32A+trNoW2EYQqTQAbDTU6k2GI/6Vh64rBHYQejqEgDld7fw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@jridgewell/sourcemap-codec": "^1.4.15", + "eslint-compat-utils": "^0.5.1", + "esutils": "^2.0.3", + "known-css-properties": "^0.34.0", + "postcss": "^8.4.38", + "postcss-load-config": "^3.1.4", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.1.0", + "semver": "^7.6.2", + "svelte-eslint-parser": "^0.41.1" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0-0 || ^9.0.0-0", + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.191" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/esm-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", + "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", + "dev": true + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ev-store": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ev-store/-/ev-store-7.0.0.tgz", + "integrity": "sha512-otazchNRnGzp2YarBJ+GXKVGvhxVATB1zmaStxJBYet0Dyq7A9VhH8IUEB/gRcL6Ch52lfpgPTRJ2m49epyMsQ==", + "dependencies": { + "individual": "^3.0.0" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/focus-trap": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.0.tgz", + "integrity": "sha512-1td0l3pMkWJLFipobUcGaf+5DTY4PLDDrcqoSaKP8ediO/CoWCCYk/fT/Y2A4e6TNB+Sh6clRJCjOPPnKoNHnQ==", + "dependencies": { + "tabbable": "^6.2.0" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fuzzy": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", + "integrity": "sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/geojson-vt": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-4.0.2.tgz", + "integrity": "sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==" + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==" + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==" + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/gpx": { + "resolved": "../gpx", + "link": true + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/grid-index": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", + "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" + }, + "node_modules/hammerjs": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", + "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/imagetools-core": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/imagetools-core/-/imagetools-core-7.0.1.tgz", + "integrity": "sha512-XDUx3Ac1VrZ4XF5eAJNYdHbFXRPNyebHFrwJsZ4WHb7X2MitOVW23cFphSDByT3MH5rdWdxKr4edSW2agChvDg==", + "dev": true, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/immer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", + "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/individual": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/individual/-/individual-3.0.0.tgz", + "integrity": "sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/intl-messageformat": { + "version": "10.5.14", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.14.tgz", + "integrity": "sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==", + "dependencies": { + "@formatjs/ecma402-abstract": "2.0.0", + "@formatjs/fast-memoize": "2.2.0", + "@formatjs/icu-messageformat-parser": "2.7.8", + "tslib": "^2.4.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isomorphic-timers-promises": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz", + "integrity": "sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/known-css-properties": { + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz", + "integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/long": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", + "integrity": "sha512-ZYvPPOMqUwPoDsbJaR10iQJYnMuZhRTvHYl62ErLIEX7RgFlziSBUUvrt3OVfc47QlHHpzPZYP17g3Fv7oeJkg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", + "dependencies": { + "es5-ext": "~0.10.2" + } + }, + "node_modules/lucide-static": { + "version": "0.427.0", + "resolved": "https://registry.npmjs.org/lucide-static/-/lucide-static-0.427.0.tgz", + "integrity": "sha512-lsUNKUv6rZrRyQa5KMHZwxKMP1Am2L9BqQGxSvFhcPvZW86sF0YcLZFQ+V5SrBPr3VhNnebMS4SqloMDucd/YQ==" + }, + "node_modules/lucide-svelte": { + "version": "0.427.0", + "resolved": "https://registry.npmjs.org/lucide-svelte/-/lucide-svelte-0.427.0.tgz", + "integrity": "sha512-l0IJqYVBTxMkJPvZqyIMyVFlbZ18Mjg0n6p7Zo9bSQNvsmeviTyOxYmYdp/G5gXcSHaOGL6YoQW7fmbFklbW/w==", + "peerDependencies": { + "svelte": "^3 || ^4 || ^5.0.0-next.42" + } + }, + "node_modules/magic-string": { + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mapbox-gl": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-3.7.0.tgz", + "integrity": "sha512-dCbVyH1uGobwv6f4QKRv2Z2wuVT/RmspsudK3sTxGRFxZi6Pd2P9axdbVyZpmGddCAREy44pHhvzvO0qgpdKAg==", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/mapbox-gl-supported": "^3.0.0", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^2.0.6", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "@types/geojson": "^7946.0.14", + "@types/geojson-vt": "^3.2.5", + "@types/mapbox__point-geometry": "^0.1.4", + "@types/mapbox__vector-tile": "^1.3.4", + "@types/pbf": "^3.0.5", + "@types/supercluster": "^7.1.3", + "cheap-ruler": "^4.0.0", + "csscolorparser": "~1.0.3", + "earcut": "^3.0.0", + "geojson-vt": "^4.0.2", + "gl-matrix": "^3.4.3", + "grid-index": "^1.1.0", + "kdbush": "^4.0.2", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^2.0.0", + "quickselect": "^3.0.0", + "serialize-to-js": "^3.1.2", + "supercluster": "^8.0.1", + "tinyqueue": "^3.0.0", + "vt-pbf": "^3.1.3" + } + }, + "node_modules/mapillary-js": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/mapillary-js/-/mapillary-js-4.1.2.tgz", + "integrity": "sha512-LYj6xbp/Y9wfBkr/prRwgJGb3+KwvzUri0yl5QEpMEH7oC1p52ErshWmPXysKefmm6JaFML4D7FJ89viwJ4T5g==", + "dependencies": { + "@types/earcut": "^2.1.1", + "@types/node": "^14.14.31", + "@types/pako": "^1.0.2", + "@types/pbf": "^3.0.2", + "@types/polylabel": "^1.0.5", + "@types/rbush": "^3.0.0", + "@types/three": "^0.134.0", + "@types/virtual-dom": "^2.1.1", + "earcut": "^2.2.3", + "martinez-polygon-clipping": "^0.7.1", + "pako": "^2.0.4", + "pbf": "^3.2.1", + "polylabel": "^1.1.0", + "rbush": "^3.0.1", + "rxjs": "^7.3.0", + "s2-geometry": "^1.2.10", + "three": "^0.134.0", + "virtual-dom": "^2.1.1" + } + }, + "node_modules/mapillary-js/node_modules/@types/node": { + "version": "14.18.63", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", + "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" + }, + "node_modules/mapillary-js/node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" + }, + "node_modules/martinez-polygon-clipping": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/martinez-polygon-clipping/-/martinez-polygon-clipping-0.7.4.tgz", + "integrity": "sha512-jBEwrKtA0jTagUZj2bnmb4Yg2s4KnJGRePStgI7bAVjtcipKiF39R4LZ2V/UT61jMYWrTcBhPazexeqd6JAVtw==", + "dependencies": { + "robust-predicates": "^2.0.4", + "splaytree": "^0.1.4", + "tinyqueue": "^1.2.0" + } + }, + "node_modules/martinez-polygon-clipping/node_modules/tinyqueue": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-1.2.3.tgz", + "integrity": "sha512-Qz9RgWuO9l8lT+Y9xvbzhPT2efIUIFd69N7eF7tJ9lnQl0iLj1M7peK7IoUGZL9DJHw9XftqLreccfxcQgYLxA==" + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + }, + "node_modules/mdsvex": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/mdsvex/-/mdsvex-0.11.2.tgz", + "integrity": "sha512-Y4ab+vLvTJS88196Scb/RFNaHMHVSWw6CwfsgWIQP8f42D57iDII0/qABSu530V4pkv8s6T2nx3ds0MC1VwFLA==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.3", + "prism-svelte": "^0.4.7", + "prismjs": "^1.17.1", + "vfile-message": "^2.0.4" + }, + "peerDependencies": { + "svelte": "^3.56.0 || ^4.0.0 || ^5.0.0-next.120" + } + }, + "node_modules/memoizee": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.17.tgz", + "integrity": "sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==", + "dependencies": { + "d": "^1.0.2", + "es5-ext": "^0.10.64", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mode-watcher": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/mode-watcher/-/mode-watcher-0.3.1.tgz", + "integrity": "sha512-inghSVSXpEENV0SHM98+AvjDmTOjh9EJIrJXMScK42GNkDm5QJL7a/nZQ8M8i8RK7loFHqsQKBKdlXfw5e5C4w==", + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.1" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true + }, + "node_modules/node-stdlib-browser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/node-stdlib-browser/-/node-stdlib-browser-1.2.1.tgz", + "integrity": "sha512-dZezG3D88Lg22DwyjsDuUs7cCT/XGr8WwJgg/S3ZnkcWuPet2Tt/W1d2Eytb1Z73JpZv+XVCDI5TWv6UMRq0Gg==", + "dev": true, + "dependencies": { + "assert": "^2.0.0", + "browser-resolve": "^2.0.0", + "browserify-zlib": "^0.2.0", + "buffer": "^5.7.1", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "create-require": "^1.1.1", + "crypto-browserify": "^3.11.0", + "domain-browser": "^4.22.0", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "isomorphic-timers-promises": "^1.0.1", + "os-browserify": "^0.3.0", + "path-browserify": "^1.0.1", + "pkg-dir": "^5.0.0", + "process": "^0.11.10", + "punycode": "^1.4.1", + "querystring-es3": "^0.2.1", + "readable-stream": "^3.6.0", + "stream-browserify": "^3.0.0", + "stream-http": "^3.2.0", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.1", + "url": "^0.11.4", + "util": "^0.12.4", + "vm-browserify": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-stdlib-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" + }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", + "dev": true, + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-srcset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", + "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==" + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pbf": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.3.0.tgz", + "integrity": "sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==", + "dependencies": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/png.js": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/png.js/-/png.js-0.2.1.tgz", + "integrity": "sha512-EXQ+wk98iL3KuuPY6bUcfPeM1CZCK8/exKoTxY4H6EjU2hMYtV5ofx7gxmjL1mnJpcvexXexKuC3c5U7f7KVFg==" + }, + "node_modules/polylabel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/polylabel/-/polylabel-1.1.0.tgz", + "integrity": "sha512-bxaGcA40sL3d6M4hH72Z4NdLqxpXRsCFk8AITYg6x1rn1Ei3izf00UMLklerBZTO49aPA3CYrIwVulx2Bce2pA==", + "dependencies": { + "tinyqueue": "^2.0.3" + } + }, + "node_modules/polylabel/node_modules/tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/potpack": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", + "integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==" + }, + "node_modules/preact": { + "version": "10.24.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.1.tgz", + "integrity": "sha512-PnBAwFI3Yjxxcxw75n6VId/5TFxNW/81zexzWD9jn1+eSrOP84NdsS38H5IkF/UH3frqRPT+MvuCoVHjTDTnDw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.7.tgz", + "integrity": "sha512-/Dswx/ea0lV34If1eDcG3nulQ63YNr5KPDfMsjbdtpSWOxKKJ7nAc2qlVuYwEvCr4raIuredNoR7K4JCkmTGaQ==", + "dev": true, + "peerDependencies": { + "prettier": "^3.0.0", + "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" + } + }, + "node_modules/prism-svelte": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/prism-svelte/-/prism-svelte-0.4.7.tgz", + "integrity": "sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ==", + "dev": true + }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/quickselect": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", + "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "dependencies": { + "quickselect": "^2.0.0" + } + }, + "node_modules/rbush/node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/robust-predicates": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-2.0.4.tgz", + "integrity": "sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==" + }, + "node_modules/rollup": { + "version": "4.22.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.5.tgz", + "integrity": "sha512-WoinX7GeQOFMGznEcWA1WrTQCd/tpEbMkc3nuMs9BT0CPjMdSjPMTVClwWd4pgSQwJdP65SK9mTCNvItlr5o7w==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.22.5", + "@rollup/rollup-android-arm64": "4.22.5", + "@rollup/rollup-darwin-arm64": "4.22.5", + "@rollup/rollup-darwin-x64": "4.22.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.5", + "@rollup/rollup-linux-arm-musleabihf": "4.22.5", + "@rollup/rollup-linux-arm64-gnu": "4.22.5", + "@rollup/rollup-linux-arm64-musl": "4.22.5", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.5", + "@rollup/rollup-linux-riscv64-gnu": "4.22.5", + "@rollup/rollup-linux-s390x-gnu": "4.22.5", + "@rollup/rollup-linux-x64-gnu": "4.22.5", + "@rollup/rollup-linux-x64-musl": "4.22.5", + "@rollup/rollup-win32-arm64-msvc": "4.22.5", + "@rollup/rollup-win32-ia32-msvc": "4.22.5", + "@rollup/rollup-win32-x64-msvc": "4.22.5", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/s2-geometry": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/s2-geometry/-/s2-geometry-1.2.10.tgz", + "integrity": "sha512-5WejfQu1XZ25ZerW8uL6xP1sM2krcOYKhI6TbfybGRf+vTQLrm3E+4n0+1lWg+MYqFjPzoe51zKhn2sBRMCt5g==", + "dependencies": { + "long": "^3.2.0" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/sander": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", + "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", + "dev": true, + "dependencies": { + "es6-promise": "^3.1.2", + "graceful-fs": "^4.1.3", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.2" + } + }, + "node_modules/sander/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/sander/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sander/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sander/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/sanitize-html": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.13.0.tgz", + "integrity": "sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==", + "dependencies": { + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "htmlparser2": "^8.0.0", + "is-plain-object": "^5.0.0", + "parse-srcset": "^1.0.2", + "postcss": "^8.3.11" + } + }, + "node_modules/search-insights": { + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.2.tgz", + "integrity": "sha512-zFNpOpUO+tY2D85KrxJ+aqwnIfdEGi06UH2+xEb+Bp9Mwznmauqc9djbnBibJO5mpfUPPa8st6Sx65+vbeO45g==", + "peer": true + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-to-js": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/serialize-to-js/-/serialize-to-js-3.1.2.tgz", + "integrity": "sha512-owllqNuDDEimQat7EPG0tH7JjO090xKNzUtYz6X+Sk2BXDnOCilDdNLwjWeFywG9xkJul1ULvtUQa9O4pUaY0w==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.0.tgz", + "integrity": "sha512-lXLOiqpkUumhRdFF3k1osNXCy9akgx/dyPZ5p8qAg9seJzXr5ZrlqZuWIMuY6ejOsVLE6flJ5/h3lsn57fQ/PQ==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sorcery": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.1.tgz", + "integrity": "sha512-o7npfeJE6wi6J9l0/5LKshFzZ2rMatRiCDwYeDQaOzqdzRJwALhX7mk/A/ecg6wjMu7wdZbmXfD2S/vpOg0bdQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.14", + "buffer-crc32": "^1.0.0", + "minimist": "^1.2.0", + "sander": "^0.5.0" + }, + "bin": { + "sorcery": "bin/sorcery" + } + }, + "node_modules/sortablejs": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.3.tgz", + "integrity": "sha512-zdK3/kwwAK1cJgy1rwl1YtNTbRmc8qW/+vgXf75A7NHag5of4pyI6uK86ktmQETyWRH7IGaE73uZOOBcGxgqZg==" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==" + }, + "node_modules/splaytree": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-0.1.4.tgz", + "integrity": "sha512-D50hKrjZgBzqD3FT2Ek53f2dcDLAQT8SSGrzj3vidNH5ISRgceeGVJ2dQIthKOuayqFXfFjXheHNo4bbt9LhRQ==" + }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==" + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/subtag": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/subtag/-/subtag-0.5.0.tgz", + "integrity": "sha512-CaIBcTSb/nyk4xiiSOtZYz1B+F12ZxW8NEp54CdT+84vmh/h4sUnHGC6+KQXUfED8u22PQjCYWfZny8d2ELXwg==" + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/suggestions": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/suggestions/-/suggestions-1.7.1.tgz", + "integrity": "sha512-gl5YPAhPYl07JZ5obiD9nTZsg4SyZswAQU/NNtnYiSnFkI3+ZHuXAiEsYm7AaZ71E0LXSFaGVaulGSWN3Gd71A==", + "dependencies": { + "fuzzy": "^0.1.1", + "xtend": "^4.0.0" + } + }, + "node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "dependencies": { + "kdbush": "^4.0.2" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svelte": { + "version": "4.2.19", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.19.tgz", + "integrity": "sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==", + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte-check": { + "version": "3.8.6", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.8.6.tgz", + "integrity": "sha512-ij0u4Lw/sOTREP13BdWZjiXD/BlHE6/e2e34XzmVmsp5IN4kVa3PWP65NM32JAgwjZlwBg/+JtiNV1MM8khu0Q==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "chokidar": "^3.4.1", + "picocolors": "^1.0.0", + "sade": "^1.7.4", + "svelte-preprocess": "^5.1.3", + "typescript": "^5.0.3" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "peerDependencies": { + "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0" + } + }, + "node_modules/svelte-eslint-parser": { + "version": "0.41.1", + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.41.1.tgz", + "integrity": "sha512-08ndI6zTghzI8SuJAFpvMbA/haPSGn3xz19pjre19yYMw8Nw/wQJ2PrZBI/L8ijGTgtkWCQQiLLy+Z1tfaCwNA==", + "dev": true, + "dependencies": { + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "postcss": "^8.4.39", + "postcss-scss": "^4.0.9" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.191" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/svelte-hmr": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.16.0.tgz", + "integrity": "sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==", + "dev": true, + "engines": { + "node": "^12.20 || ^14.13.1 || >= 16" + }, + "peerDependencies": { + "svelte": "^3.19.0 || ^4.0.0" + } + }, + "node_modules/svelte-i18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/svelte-i18n/-/svelte-i18n-4.0.0.tgz", + "integrity": "sha512-4vivjKZADUMRIhTs38JuBNy3unbnh9AFRxWFLxq62P4NHic+/BaIZZlAsvqsCdnp7IdJf5EoSiH6TNdItcjA6g==", + "dependencies": { + "cli-color": "^2.0.3", + "deepmerge": "^4.2.2", + "esbuild": "^0.19.2", + "estree-walker": "^2", + "intl-messageformat": "^10.5.3", + "sade": "^1.8.1", + "tiny-glob": "^0.2.9" + }, + "bin": { + "svelte-i18n": "dist/cli.js" + }, + "engines": { + "node": ">= 16" + }, + "peerDependencies": { + "svelte": "^3 || ^4" + } + }, + "node_modules/svelte-i18n/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/svelte-parse-markup": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/svelte-parse-markup/-/svelte-parse-markup-0.1.5.tgz", + "integrity": "sha512-T6mqZrySltPCDwfKXWQ6zehipVLk4GWfH1zCMGgRtLlOIFPuw58ZxVYxVvotMJgJaurKi1i14viB2GIRKXeJTQ==", + "dev": true, + "funding": { + "url": "https://bjornlu.com/sponsor" + }, + "peerDependencies": { + "svelte": "^3.0.0 || ^4.0.0 || ^5.0.0-next.1" + } + }, + "node_modules/svelte-preprocess": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.4.tgz", + "integrity": "sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/pug": "^2.0.6", + "detect-indent": "^6.1.0", + "magic-string": "^0.30.5", + "sorcery": "^0.11.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">= 16.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.10.2", + "coffeescript": "^2.5.1", + "less": "^3.11.3 || ^4.0.0", + "postcss": "^7 || ^8", + "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", + "pug": "^3.0.0", + "sass": "^1.26.8", + "stylus": "^0.55.0", + "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0", + "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "coffeescript": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "postcss-load-config": { + "optional": true + }, + "pug": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/svelte-sonner": { + "version": "0.3.28", + "resolved": "https://registry.npmjs.org/svelte-sonner/-/svelte-sonner-0.3.28.tgz", + "integrity": "sha512-K3AmlySeFifF/cKgsYNv5uXqMVNln0NBAacOYgmkQStLa/UoU0LhfAACU6Gr+YYC8bOCHdVmFNoKuDbMEsppJg==", + "peerDependencies": { + "svelte": "^3.0.0 || ^4.0.0 || ^5.0.0-next.1" + } + }, + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" + }, + "node_modules/tailwind-merge": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.2.tgz", + "integrity": "sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwind-variants": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-0.2.1.tgz", + "integrity": "sha512-2xmhAf4UIc3PijOUcJPA1LP4AbxhpcHuHM2C26xM0k81r0maAO6uoUSHl3APmvHZcY5cZCY/bYuJdfFa4eGoaw==", + "dependencies": { + "tailwind-merge": "^2.2.0" + }, + "engines": { + "node": ">=16.x", + "pnpm": ">=7.x" + }, + "peerDependencies": { + "tailwindcss": "*" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz", + "integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/tailwindcss/node_modules/yaml": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", + "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/three": { + "version": "0.134.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.134.0.tgz", + "integrity": "sha512-LbBerg7GaSPjYtTOnu41AMp7tV6efUNR3p4Wk5NzkSsNTBuA5mDGOfwwZL1jhhVMLx9V20HolIUo0+U3AXehbg==" + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/timers-ext": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.8.tgz", + "integrity": "sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==", + "dependencies": { + "es5-ext": "^0.10.64", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dependencies": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "node_modules/tinyqueue": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", + "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + }, + "node_modules/tsx": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.1.tgz", + "integrity": "sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==", + "dev": true, + "dependencies": { + "esbuild": "~0.23.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" + } + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + }, + "node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "dev": true, + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/virtual-dom": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/virtual-dom/-/virtual-dom-2.1.1.tgz", + "integrity": "sha512-wb6Qc9Lbqug0kRqo/iuApfBpJJAq14Sk1faAnSmtqXiwahg7PVTvWMs9L02Z8nNIMqbwsxzBAA90bbtRLbw0zg==", + "dependencies": { + "browser-split": "0.0.1", + "error": "^4.3.0", + "ev-store": "^7.0.0", + "global": "^4.3.0", + "is-object": "^1.0.1", + "next-tick": "^0.2.2", + "x-is-array": "0.1.0", + "x-is-string": "0.1.0" + } + }, + "node_modules/virtual-dom/node_modules/next-tick": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-0.2.2.tgz", + "integrity": "sha512-f7h4svPtl+QidoBv4taKXUjJ70G2asaZ8G28nS0OkqaalX8dwwrtWtyxEDPK62AC00ur/+/E0pUwBwY5EPn15Q==" + }, + "node_modules/vite": { + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", + "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-imagetools": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vite-imagetools/-/vite-imagetools-7.0.4.tgz", + "integrity": "sha512-C9C7b2p/8/TCN2g26tE9haoer2i8K4x0v2RXUiHsIjiz221vQuKItCQ+VyiVCsUMPXfJC/tlZsmCZVBz5jh7uA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.5", + "imagetools-core": "^7.0.1", + "sharp": "^0.33.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/vite-plugin-node-polyfills": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.22.0.tgz", + "integrity": "sha512-F+G3LjiGbG8QpbH9bZ//GSBr9i1InSTkaulfUHFa9jkLqVGORFBoqc2A/Yu5Mmh1kNAbiAeKeK+6aaQUf3x0JA==", + "dev": true, + "dependencies": { + "@rollup/plugin-inject": "^5.0.5", + "node-stdlib-browser": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/davidmyersdev" + }, + "peerDependencies": { + "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vitefu": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz", + "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==", + "dev": true, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/vt-pbf": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", + "dependencies": { + "@mapbox/point-geometry": "0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/x-is-array": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/x-is-array/-/x-is-array-0.1.0.tgz", + "integrity": "sha512-goHPif61oNrr0jJgsXRfc8oqtYzvfiMJpTqwE7Z4y9uH+T3UozkGqQ4d2nX9mB9khvA8U2o/UbPOFjgC7hLWIA==" + }, + "node_modules/x-is-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", + "integrity": "sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w==" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/website/package.json b/website/package.json new file mode 100644 index 0000000..c237c01 --- /dev/null +++ b/website/package.json @@ -0,0 +1,79 @@ +{ + "name": "website", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "vite dev", + "build": "vite build", + "postbuild": "npx tsx src/lib/sitemap.ts", + "preview": "vite preview", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "lint": "prettier --check . && eslint .", + "format": "prettier --write ." + }, + "devDependencies": { + "@sveltejs/adapter-auto": "^3.2.5", + "@sveltejs/adapter-static": "^3.0.5", + "@sveltejs/enhanced-img": "^0.3.8", + "@sveltejs/kit": "^2.6.1", + "@sveltejs/vite-plugin-svelte": "^3.1.2", + "@types/eslint": "^8.56.12", + "@types/events": "^3.0.3", + "@types/mapbox__mapbox-gl-geocoder": "^5.0.0", + "@types/mapbox__tilebelt": "^1.0.4", + "@types/mapbox-gl": "^3.4.0", + "@types/node": "^20.16.10", + "@types/png.js": "^0.2.3", + "@types/sanitize-html": "^2.13.0", + "@types/sortablejs": "^1.15.8", + "@typescript-eslint/eslint-plugin": "^7.18.0", + "@typescript-eslint/parser": "^7.18.0", + "autoprefixer": "^10.4.20", + "eslint": "^8.57.1", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-svelte": "^2.44.1", + "events": "^3.3.0", + "glob": "^10.4.5", + "mdsvex": "^0.11.2", + "postcss": "^8.4.47", + "prettier": "^3.3.3", + "prettier-plugin-svelte": "^3.2.7", + "svelte": "^4.2.19", + "svelte-check": "^3.8.6", + "tailwindcss": "^3.4.13", + "tslib": "^2.7.0", + "tsx": "^4.19.1", + "typescript": "^5.6.2", + "vite": "^5.4.8", + "vite-plugin-node-polyfills": "^0.22.0" + }, + "type": "module", + "dependencies": { + "@docsearch/js": "^3.6.2", + "@internationalized/date": "^3.5.5", + "@mapbox/mapbox-gl-geocoder": "^5.0.3", + "@mapbox/sphericalmercator": "^1.2.0", + "@mapbox/tilebelt": "^1.0.2", + "@types/mapbox__sphericalmercator": "^1.2.3", + "bits-ui": "^0.21.15", + "chart.js": "^4.4.4", + "chartjs-plugin-zoom": "^2.0.1", + "clsx": "^2.1.1", + "dexie": "^4.0.8", + "gpx": "file:../gpx", + "immer": "^10.1.1", + "lucide-static": "^0.427.0", + "lucide-svelte": "^0.427.0", + "mapbox-gl": "^3.7.0", + "mapillary-js": "^4.1.2", + "mode-watcher": "^0.3.1", + "png.js": "^0.2.1", + "sanitize-html": "^2.13.0", + "sortablejs": "^1.15.3", + "svelte-i18n": "^4.0.0", + "svelte-sonner": "^0.3.28", + "tailwind-merge": "^2.5.2", + "tailwind-variants": "^0.2.1" + } +} diff --git a/website/postcss.config.js b/website/postcss.config.js new file mode 100644 index 0000000..2e7af2b --- /dev/null +++ b/website/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/website/src/app.d.ts b/website/src/app.d.ts new file mode 100755 index 0000000..743f07b --- /dev/null +++ b/website/src/app.d.ts @@ -0,0 +1,13 @@ +// See https://kit.svelte.dev/docs/types#app +// for information about these interfaces +declare global { + namespace App { + // interface Error {} + // interface Locals {} + // interface PageData {} + // interface PageState {} + // interface Platform {} + } +} + +export {}; diff --git a/website/src/app.html b/website/src/app.html new file mode 100755 index 0000000..0850632 --- /dev/null +++ b/website/src/app.html @@ -0,0 +1,15 @@ + + + + + + + + %sveltekit.head% + + + +
%sveltekit.body%
+ + + \ No newline at end of file diff --git a/website/src/app.pcss b/website/src/app.pcss new file mode 100755 index 0000000..cf9118d --- /dev/null +++ b/website/src/app.pcss @@ -0,0 +1,86 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 222.2 84% 4.9%; + + --muted: 210 40% 96.1%; + --muted-foreground: 215.4 16.3% 45%; + + --popover: 0 0% 100%; + --popover-foreground: 222.2 84% 4.9%; + + --card: 0 0% 100%; + --card-foreground: 222.2 84% 4.9%; + + --border: 214.3 31.8% 91.4%; + --input: 214.3 31.8% 91.4%; + + --primary: 222.2 47.4% 11.2%; + --primary-foreground: 210 40% 98%; + + --secondary: 210 40% 96.1%; + --secondary-foreground: 222.2 47.4% 11.2%; + + --accent: 210 40% 92%; + --accent-foreground: 222.2 47.4% 11.2%; + + --destructive: 0 72.2% 50.6%; + --destructive-foreground: 210 40% 98%; + + --support: 220 15 130; + + --link: 0 110 180; + + --ring: 222.2 84% 4.9%; + + --radius: 0.5rem; + } + + .dark { + --background: 222.2 84% 4.9%; + --foreground: 210 40% 98%; + + --muted: 217.2 32.6% 17.5%; + --muted-foreground: 215 20.2% 65.1%; + + --popover: 222.2 84% 4.9%; + --popover-foreground: 210 40% 98%; + + --card: 222.2 84% 4.9%; + --card-foreground: 210 40% 98%; + + --border: 217.2 32.6% 17.5%; + --input: 217.2 32.6% 17.5%; + + --primary: 210 40% 98%; + --primary-foreground: 222.2 47.4% 11.2%; + + --secondary: 217.2 32.6% 17.5%; + --secondary-foreground: 210 40% 98%; + + --accent: 217.2 32.6% 30%; + --accent-foreground: 210 40% 98%; + + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 210 40% 98%; + + --support: 255 110 190; + + --link: 80 190 255; + + --ring: hsl(212.7,26.8%,83.9); + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} \ No newline at end of file diff --git a/website/src/hooks.server.js b/website/src/hooks.server.js new file mode 100755 index 0000000..a42233f --- /dev/null +++ b/website/src/hooks.server.js @@ -0,0 +1,68 @@ +import { base } from '$app/paths'; +import { languages } from '$lib/languages'; +import { getURLForLanguage } from '$lib/utils'; + +export async function handle({ event, resolve }) { + const language = event.params.language ?? 'fr'; + const strings = await import(`./locales/${language}.json`); + + const path = event.url.pathname; + const page = event.route.id?.replace('/[[language]]', '').split('/')[1] ?? 'home'; + + let title = strings.metadata[`${page}_title`]; + const description = strings.metadata[`description`]; + + if (page === 'help' && event.params.guide) { + const [guide, subguide] = event.params.guide.split('/'); + const guideModule = subguide + ? await import(`./lib/docs/${language}/${guide}/${subguide}.mdx`) + : await import(`./lib/docs/${language}/${guide}.mdx`); + title = `${title} | ${guideModule.metadata.title}`; + } + + const htmlTag = ``; + + let headTag = ` + gpx.rnmkcy.eu — ${title} + + + + + + + + + + + + + + + `; + + for (let lang of Object.keys(languages)) { + headTag += ` +`; + } + + const stringsHTML = page === 'app' ? stringsToHTML(strings) : ''; + + const response = await resolve(event, { + transformPageChunk: ({ html }) => html.replace('', htmlTag).replace('', headTag).replace('', `
${stringsHTML}
`) + }); + + return response; +} + +function stringsToHTML(dictionary, strings = new Set(), root = true) { + Object.values(dictionary).forEach((value) => { + if (typeof value === 'object') { + stringsToHTML(value, strings, false); + } else { + strings.add(value); + } + }); + if (root) { + return Array.from(strings).map((string) => `

${string}

`).join(''); + } +} \ No newline at end of file diff --git a/website/src/lib/assets/custom/bikerouter-gravel.json b/website/src/lib/assets/custom/bikerouter-gravel.json new file mode 100755 index 0000000..518dae9 --- /dev/null +++ b/website/src/lib/assets/custom/bikerouter-gravel.json @@ -0,0 +1,1864 @@ +{ + "_info": "Taken from https://github.com/mjaschen/gravel-overlay, with prior authorization from the author (https://github.com/gpxstudio/gpx.rnmkcy.eu/issues/32#issuecomment-2320219804).", + "version": 8, + "name": "Gravel Overlay", + "metadata": { + "mapbox:autocomposite": false, + "mapbox:type": "template", + "maputnik:renderer": "mbgljs", + "openmaptiles:version": "3.x", + "openmaptiles:mapbox:owner": "openmaptiles", + "openmaptiles:mapbox:source:url": "mapbox://openmaptiles.4qljc88t" + }, + "sources": { + "openmaptiles": { + "type": "vector", + "url": "https://tiles.bikerouter.de/services/gravel/" + } + }, + "sprite": "https://demotiles.maplibre.org/styles/osm-bright-gl-style/sprite", + "glyphs": "https://api.maptiler.com/fonts/{fontstack}/{range}.pbf?key={key}", + "layers": [ + { + "id": "background", + "type": "background", + "layout": { + "visibility": "none" + }, + "paint": { + "background-color": "rgba(145, 211, 164, 1)" + } + }, + { + "id": "debug_rail", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "rail" + ] + ], + "layout": { + "visibility": "none" + }, + "paint": { + "line-color": "rgba(144, 144, 144, 1)" + } + }, + { + "id": "debug_road", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "motorway", + "trunk", + "primary", + "secondary", + "tertiary", + "minor", + "residential", + "track", + "path" + ] + ], + "layout": { + "visibility": "none" + }, + "paint": { + "line-color": "rgba(204, 204, 204, 1)", + "line-width": { + "stops": [ + [ + 10, + 0.5 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "tr_X_g45-bg", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + [ + "geometry-type" + ], + "LineString" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "track" + ], + true, + false + ], + [ + "any", + [ + "match", + [ + "get", + "tracktype" + ], + [ + "grade5" + ], + true, + false + ], + [ + "all", + [ + "match", + [ + "get", + "tracktype" + ], + [ + "grade4" + ], + true, + false + ], + [ + "match", + [ + "get", + "surface" + ], + [ + "dirt", + "grass", + "mud", + "sand" + ], + true, + false + ] + ] + ] + ], + "layout": { + "line-cap": "square", + "line-join": "bevel", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(255, 0, 0, 0.7)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.4 + ], + [ + 12, + 1.3 + ], + [ + 14, + 1.7 + ] + ] + }, + "line-dasharray": [ + 1 + ], + "line-offset": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1.8 + ], + [ + 15, + 3 + ], + [ + 16, + 4 + ] + ], + "base": 1.55 + } + } + }, + { + "id": "tr_X_g45", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + [ + "geometry-type" + ], + "LineString" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "track" + ], + true, + false + ], + [ + "any", + [ + "match", + [ + "get", + "tracktype" + ], + [ + "grade5" + ], + true, + false + ], + [ + "all", + [ + "match", + [ + "get", + "tracktype" + ], + [ + "grade4" + ], + true, + false + ], + [ + "match", + [ + "get", + "surface" + ], + [ + "dirt", + "grass", + "mud", + "sand" + ], + true, + false + ] + ] + ] + ], + "layout": { + "line-cap": "square", + "line-join": "bevel", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(255, 255, 0, 0.7)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.4 + ], + [ + 12, + 1.3 + ], + [ + 14, + 1.7 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ], + "line-offset": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1.8 + ], + [ + 15, + 3 + ], + [ + 16, + 4 + ] + ], + "base": 1.55 + } + } + }, + { + "id": "tr_B_g3", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + [ + "geometry-type" + ], + "LineString" + ], + [ + "==", + [ + "get", + "class" + ], + "track" + ], + [ + "match", + [ + "get", + "tracktype" + ], + [ + "grade3" + ], + true, + false + ], + [ + "any", + [ + "match", + [ + "get", + "smoothness" + ], + [ + "bad", + "good", + "intermediate" + ], + true, + false + ], + [ + "match", + [ + "get", + "surface" + ], + [ + "compacted", + "fine_gravel", + "gravel" + ], + true, + false + ] + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(235, 6, 158, 1)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.4 + ], + [ + 12, + 1.3 + ], + [ + 14, + 1.7 + ] + ] + }, + "line-offset": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 2 + ], + [ + 15, + 4 + ], + [ + 16, + 5 + ] + ], + "base": 1.55 + }, + "line-dasharray": [ + 3, + 1.5 + ] + } + }, + { + "id": "tr_A_g2-plain-case", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + [ + "geometry-type" + ], + "LineString" + ], + [ + "==", + [ + "get", + "class" + ], + "track" + ], + [ + "match", + [ + "get", + "tracktype" + ], + [ + "grade2" + ], + true, + false + ], + [ + "!", + [ + "has", + "surface" + ] + ], + [ + "!", + [ + "has", + "smoothness" + ] + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(255, 255, 255, 0.6)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.8 + ], + [ + 12, + 3 + ], + [ + 14, + 4 + ] + ] + }, + "line-offset": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1.5 + ], + [ + 15, + 3 + ], + [ + 16, + 4 + ] + ], + "base": 1.55 + } + } + }, + { + "id": "tr_A_g2-plain", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + [ + "geometry-type" + ], + "LineString" + ], + [ + "==", + [ + "get", + "class" + ], + "track" + ], + [ + "match", + [ + "get", + "tracktype" + ], + [ + "grade2" + ], + true, + false + ], + [ + "!", + [ + "has", + "surface" + ] + ], + [ + "!", + [ + "has", + "smoothness" + ] + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(235, 6, 158, 0.6)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.5 + ], + [ + 12, + 1.5 + ], + [ + 14, + 2 + ] + ] + }, + "line-offset": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1.5 + ], + [ + 15, + 3 + ], + [ + 16, + 4 + ] + ], + "base": 1.55 + }, + "line-dasharray": [ + 5, + 1 + ] + } + }, + { + "id": "tr_A_g2-case", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + [ + "geometry-type" + ], + "LineString" + ], + [ + "==", + [ + "get", + "class" + ], + "track" + ], + [ + "match", + [ + "get", + "tracktype" + ], + [ + "grade2" + ], + true, + false + ], + [ + "any", + [ + "match", + [ + "get", + "surface" + ], + [ + "compacted", + "fine_gravel", + "gravel" + ], + true, + false + ], + [ + "match", + [ + "get", + "smoothness" + ], + [ + "bad", + "good", + "intermediate" + ], + true, + false + ] + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(255, 255, 255, 1)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.8 + ], + [ + 12, + 3 + ], + [ + 14, + 4 + ] + ] + }, + "line-offset": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 2 + ], + [ + 15, + 4 + ], + [ + 16, + 5 + ] + ], + "base": 1.55 + } + } + }, + { + "id": "tr_A_g2", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + [ + "geometry-type" + ], + "LineString" + ], + [ + "==", + [ + "get", + "class" + ], + "track" + ], + [ + "match", + [ + "get", + "tracktype" + ], + [ + "grade2" + ], + true, + false + ], + [ + "any", + [ + "match", + [ + "get", + "surface" + ], + [ + "compacted", + "fine_gravel", + "gravel" + ], + true, + false + ], + [ + "match", + [ + "get", + "smoothness" + ], + [ + "bad", + "good", + "intermediate" + ], + true, + false + ] + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(235, 6, 158, 1)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.5 + ], + [ + 12, + 1.5 + ], + [ + 14, + 2 + ] + ] + }, + "line-offset": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 2 + ], + [ + 15, + 4 + ], + [ + 16, + 5 + ] + ], + "base": 1.55 + } + } + }, + { + "id": "p_X-bg", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "path" + ], + [ + "in", + "smoothness", + "very_bad", + "horrible", + "very_horrible", + "impassable" + ], + [ + "!in", + "tracktype", + "grade5", + "grade4" + ] + ], + "layout": { + "line-cap": "square", + "line-join": "bevel", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(255, 0, 0, 0.7)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.4 + ], + [ + 12, + 1.1 + ], + [ + 14, + 1.5 + ] + ] + }, + "line-offset": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1.8 + ], + [ + 15, + 3 + ], + [ + 16, + 4 + ] + ], + "base": 1.55 + } + } + }, + { + "id": "p_X", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "path" + ], + [ + "in", + "smoothness", + "very_bad", + "horrible", + "very_horrible", + "impassable" + ], + [ + "!in", + "tracktype", + "grade5", + "grade4" + ] + ], + "layout": { + "line-cap": "square", + "line-join": "bevel", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(255, 255, 0, 0.7)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.4 + ], + [ + 12, + 1.1 + ], + [ + 14, + 1.5 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ], + "line-offset": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1.8 + ], + [ + 15, + 3 + ], + [ + 16, + 4 + ] + ], + "base": 1.55 + } + } + }, + { + "id": "p_B", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "path" + ], + [ + "in", + "smoothness", + "good", + "intermediate", + "bad" + ], + [ + "!in", + "surface", + "gravel", + "fine_gravel", + "compacted", + "cobblestone", + "sett", + "unhewn_cobblestone", + "paving_stones" + ], + [ + "!in", + "bicycle", + "no" + ], + [ + "!in", + "access", + "no" + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(235, 6, 158, 1)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.4 + ], + [ + 12, + 1.1 + ], + [ + 14, + 1.5 + ] + ] + }, + "line-offset": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 2 + ], + [ + 15, + 4 + ], + [ + 16, + 5 + ] + ], + "base": 1.55 + }, + "line-dasharray": [ + 1.5, + 1 + ] + } + }, + { + "id": "p_A-case", + "type": "line", + "metadata": { + "maputnik:comment": "Gravel surface with ok-ish smoothness" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + [ + "geometry-type" + ], + "LineString" + ], + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "any", + [ + "match", + [ + "get", + "surface" + ], + [ + "compacted", + "fine_gravel" + ], + true, + false + ], + [ + "all", + [ + "match", + [ + "get", + "surface" + ], + [ + "gravel" + ], + true, + false + ], + [ + "match", + [ + "get", + "smoothness" + ], + [ + "bad", + "good", + "intermediate" + ], + true, + false + ] + ] + ], + [ + "match", + [ + "get", + "bicycle" + ], + [ + "no" + ], + false, + true + ], + [ + "match", + [ + "get", + "access" + ], + [ + "no" + ], + false, + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(255, 255, 255, 1)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.7 + ], + [ + 12, + 2.5 + ], + [ + 14, + 3.2 + ] + ] + }, + "line-offset": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 2 + ], + [ + 15, + 4 + ], + [ + 16, + 5 + ] + ], + "base": 1.55 + } + } + }, + { + "id": "p_A", + "type": "line", + "metadata": { + "maputnik:comment": "Gravel surface with ok-ish smoothness" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + [ + "geometry-type" + ], + "LineString" + ], + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "any", + [ + "match", + [ + "get", + "surface" + ], + [ + "compacted", + "fine_gravel" + ], + true, + false + ], + [ + "all", + [ + "match", + [ + "get", + "surface" + ], + [ + "gravel" + ], + true, + false + ], + [ + "match", + [ + "get", + "smoothness" + ], + [ + "bad", + "good", + "intermediate" + ], + true, + false + ] + ] + ], + [ + "match", + [ + "get", + "bicycle" + ], + [ + "no" + ], + false, + true + ], + [ + "match", + [ + "get", + "access" + ], + [ + "no" + ], + false, + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(235, 6, 158, 1)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.5 + ], + [ + 12, + 1.5 + ], + [ + 14, + 2 + ] + ] + }, + "line-offset": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 2 + ], + [ + 15, + 4 + ], + [ + 16, + 5 + ] + ], + "base": 1.55 + } + } + }, + { + "id": "r_X_cobbles-case", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "minor", + "service", + "track", + "path", + "residential" + ], + [ + "in", + "surface", + "sett", + "cobblestone", + "unhewn_cobblestone" + ], + [ + "!in", + "service", + "driveway" + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(0, 0, 0, 1)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.5 + ], + [ + 12, + 1.5 + ], + [ + 14, + 2 + ] + ] + } + } + }, + { + "id": "r_X_cobbles", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "minor", + "service", + "track", + "path", + "residential" + ], + [ + "in", + "surface", + "sett", + "cobblestone", + "unhewn_cobblestone" + ], + [ + "!in", + "service", + "driveway" + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(245, 255, 0, 1)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.5 + ], + [ + 12, + 1.5 + ], + [ + 14, + 2 + ] + ] + }, + "line-dasharray": [ + 1.5, + 1 + ] + } + }, + { + "id": "r_X-bg", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "minor" + ], + [ + "in", + "smoothness", + "very_bad", + "horrible", + "very_horrible", + "impassable" + ], + [ + "!in", + "surface", + "sett", + "cobblestone", + "unhewn_cobblestone" + ] + ], + "layout": { + "line-cap": "square", + "line-join": "bevel", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(255, 0, 0, 0.7)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.4 + ], + [ + 12, + 1.1 + ], + [ + 14, + 1.5 + ] + ] + } + } + }, + { + "id": "r_X", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "minor" + ], + [ + "in", + "smoothness", + "very_bad", + "horrible", + "very_horrible", + "impassable" + ], + [ + "!in", + "surface", + "sett", + "cobblestone", + "unhewn_cobblestone" + ] + ], + "layout": { + "line-cap": "square", + "line-join": "bevel", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(255, 255, 0, 0.7)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.4 + ], + [ + 12, + 1.1 + ], + [ + 14, + 1.5 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "r_A_case", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "minor", + "residential", + "service" + ], + [ + "in", + "surface", + "gravel", + "compacted", + "fine_gravel" + ], + [ + "!in", + "service", + "driveway", + "parking_aisle", + "drive-through", + "emergency_access" + ] + ], + "layout": { + "line-cap": "square", + "line-join": "bevel", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(255, 255, 255, 1)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.8 + ], + [ + 12, + 3 + ], + [ + 14, + 4 + ] + ] + } + } + }, + { + "id": "r_A", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "minor", + "residential", + "service" + ], + [ + "in", + "surface", + "gravel", + "compacted", + "fine_gravel" + ], + [ + "!in", + "service", + "driveway", + "parking_aisle", + "drive-through", + "emergency_access" + ] + ], + "layout": { + "line-cap": "square", + "line-join": "bevel", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(235, 6, 158, 1)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 10, + 0.5 + ], + [ + 12, + 1.5 + ], + [ + 14, + 2 + ] + ] + } + } + }, + { + "id": "cemetery", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "landuse", + "filter": [ + "all", + [ + "==", + "class", + "cemetery" + ] + ], + "layout": { + "icon-image": "cemetery_11", + "icon-rotation-alignment": "map", + "icon-size": 1.5 + } + }, + { + "id": "drinking_water", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 9, + "maxzoom": 20, + "filter": [ + "any", + [ + "==", + "class", + "drinking_water" + ], + [ + "==", + "subclass", + "drinking_water" + ] + ], + "layout": { + "icon-image": "drinking_water_11", + "visibility": "visible", + "icon-rotation-alignment": "map", + "icon-size": 1.4 + } + } + ], + "id": "basic", + "owner": "Marcus Jaschen" +} \ No newline at end of file diff --git a/website/src/lib/assets/custom/ign-fr-plan.json b/website/src/lib/assets/custom/ign-fr-plan.json new file mode 100755 index 0000000..a645b4f --- /dev/null +++ b/website/src/lib/assets/custom/ign-fr-plan.json @@ -0,0 +1,15495 @@ +{ + "_info": "This style is an adaptation of the official IGN 'standard' style (https://data.geopf.fr/annexes/ressources/vectorTiles/styles/PLAN.IGN/standard.json) to which hillshading is added.", + "version": 8, + "name": "PLAN IGN", + "glyphs": "https://data.geopf.fr/annexes/ressources/vectorTiles/fonts/{fontstack}/{range}.pbf", + "sprite": "https://data.geopf.fr/annexes/ressources/vectorTiles/styles/PLAN.IGN/sprite/PlanIgn", + "sources": { + "plan_ign": { + "type": "vector", + "tiles": [ + "https://data.geopf.fr/tms/1.0.0/PLAN.IGN/{z}/{x}/{y}.pbf" + ] + }, + "terrain": { + "type": "raster", + "tiles": [ + "https://data.geopf.fr/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&TILEMATRIXSET=PM&TILEMATRIX={z}&TILECOL={x}&TILEROW={y}&LAYER=ELEVATION.ELEVATIONGRIDCOVERAGE.SHADOW&FORMAT=image/png&STYLE=estompage_grayscale" + ], + "maxzoom": 15 + } + }, + "transition": { + "duration": 300, + "delay": 0 + }, + "layers": [ + { + "id": "bckgrd", + "type": "fill", + "source": "plan_ign", + "source-layer": "fond_opaque", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "#FFFFFF", + "fill-opacity": 1 + } + }, + { + "id": "orographie : relief - 0m", + "type": "fill", + "source": "plan_ign", + "source-layer": "oro_relief", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "HYPSO_0" + ], + "paint": { + "fill-color": "#D6E5BA", + "fill-opacity": 1 + } + }, + { + "id": "orographie : relief - 100m", + "type": "fill", + "source": "plan_ign", + "source-layer": "oro_relief", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "HYPSO_100" + ], + "paint": { + "fill-color": "#F7F2DA", + "fill-opacity": 1 + } + }, + { + "id": "orographie : relief - 200m", + "type": "fill", + "source": "plan_ign", + "source-layer": "oro_relief", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "HYPSO_200" + ], + "paint": { + "fill-color": "#EBDEBF", + "fill-opacity": 1 + } + }, + { + "id": "orographie : relief - 1000m", + "type": "fill", + "source": "plan_ign", + "source-layer": "oro_relief", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "HYPSO_1000" + ], + "paint": { + "fill-color": "#DABE97", + "fill-opacity": 1 + } + }, + { + "id": "orographie : relief - 3000m", + "type": "fill", + "source": "plan_ign", + "source-layer": "oro_relief", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "HYPSO_3000" + ], + "paint": { + "fill-color": "#B28773", + "fill-opacity": 1 + } + }, + { + "id": "orographie : relief - 4000m", + "type": "fill", + "source": "plan_ign", + "source-layer": "oro_relief", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "HYPSO_4000" + ], + "paint": { + "fill-color": "#9E6A54", + "fill-opacity": 1 + } + }, + { + "id": "orographie : relief - 5000m", + "type": "fill", + "source": "plan_ign", + "source-layer": "oro_relief", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "HYPSO_5000" + ], + "paint": { + "fill-color": "#773A2B", + "fill-opacity": 1 + } + }, + { + "id": "orographie : relief - glacier", + "type": "fill", + "source": "plan_ign", + "source-layer": "oro_relief", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "GLACIER" + ], + "paint": { + "fill-color": "#FFFFFF", + "fill-opacity": 0.7 + } + }, + { + "id": "ocs - vegetation - zone boiséee, foret fermee, peupleraie", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "ZONE_BOISEE", + "ZONE_FORET_FERMEE_FEUIL", + "ZONE_FORET_FERMEE_CONI", + "ZONE_FORET_FERMEE_MIXTE", + "ZONE_PEUPLERAIE" + ], + "paint": { + "fill-color": "#DFE8D5", + "fill-outline-color": "#DFE8D5" + } + }, + { + "id": "ocs - vegetation - forêt ouverte", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "ZONE_FORET_OUVERTE" + ], + "paint": { + "fill-color": "#EDF2D9", + "fill-outline-color": "#EDF2D9" + } + }, + { + "id": "ocs - vegetation - lande ligneuse", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_LANDE_LIGNEUSE" + ], + "paint": { + "fill-color": "#F2EECD" + } + }, + { + "id": "ocs - vegetation - vigne", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_VIGNE" + ], + "paint": { + "fill-color": "#FFEDD9" + } + }, + { + "id": "ocs - vegetation - verger", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_VERGER" + ], + "paint": { + "fill-color": "#FAE2C5" + } + }, + { + "id": "ocs - vegetation - canne à sucre, bananeraie", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_CANNE_BANANE" + ], + "paint": { + "fill-color": "#FAEDFA" + } + }, + { + "id": "hydro surfacique - Estran", + "type": "fill", + "source": "plan_ign", + "source-layer": "hydro_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_D_ESTRAN" + ], + "paint": { + "fill-color": "#C3DDE9", + "fill-outline-color": "#C3DDE9" + } + }, + { + "id": "ocs - vegetation - mangrovre", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_MANGROVE" + ], + "paint": { + "fill-color": { + "stops": [ + [ + 9, + "#85CCCB" + ], + [ + 10, + "#90CCCB" + ] + ] + } + } + }, + { + "id": "ocs - vegetation - marais", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_MARAIS" + ], + "paint": { + "fill-pattern": "Marais" + } + }, + { + "id": "hydro surfacique - marais", + "type": "fill", + "source": "plan_ign", + "source-layer": "hydro_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_MARAIS" + ], + "paint": { + "fill-pattern": "Marais" + } + }, + { + "id": "ocs - vegetation - marais salant", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_MARAIS_SALANT" + ], + "paint": { + "fill-pattern": "MaraisSalant" + } + }, + { + "id": "ocs - Zone", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_nature_sol_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_ROCHEUSE" + ], + "paint": { + "fill-color": "#D0D0D0", + "fill-opacity": 0.3 + } + }, + { + "id": "ocs - Zone sable sec", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_nature_sol_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_SABLE_SEC" + ], + "paint": { + "fill-pattern": "Sable" + } + }, + { + "id": "ocs - Zone sable humide", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_nature_sol_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "ZONE_SABLE_HUMIDE", + "FOND_CUVETTE_HUMIDE" + ], + "paint": { + "fill-pattern": "SableHumide" + } + }, + { + "id": "ocs - Zone graviers galets secs", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_nature_sol_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "GRAVIERS_GALETS_SEC" + ], + "paint": { + "fill-pattern": "GravierSec" + } + }, + { + "id": "ocs - Zone graviers galets humides", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_nature_sol_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "GRAVIERS_GALETS_HUM" + ], + "paint": { + "fill-pattern": "Gravier" + } + }, + { + "id": "ocs - Zone rocher hydro", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_nature_sol_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_ROCHER_HYDRO" + ], + "paint": { + "fill-pattern": "RocherHydro" + } + }, + { + "id": "ocs - Zone glacier", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_nature_sol_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_GLACIER" + ], + "paint": { + "fill-pattern": "Glacier", + "fill-opacity": { + "stops": [ + [ + 10, + 0.5 + ], + [ + 12, + 0.3 + ] + ] + } + } + }, + { + "id": "zone batie", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_zone_surf", + "minzoom": 7, + "maxzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_BATI" + ], + "paint": { + "fill-color": "#E8E2D1", + "fill-opacity": { + "stops": [ + [ + 12, + 1 + ], + [ + 13, + 0.9 + ], + [ + 14, + 0.5 + ] + ] + } + } + }, + { + "id": "zone d'activité", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_zone_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_INDUS_ACTI" + ], + "paint": { + "fill-color": "#D9D9D9" + } + }, + { + "id": "terrain", + "type": "raster", + "source": "terrain" + }, + { + "id": "oro - courbe et cuvette maitresse", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_MAITRESSE", + "CUVETTE_MAITRESSE" + ], + "paint": { + "line-color": "#D9C8A9", + "line-width": { + "stops": [ + [ + 13, + 1.7 + ], + [ + 15, + 2 + ] + ] + } + } + }, + { + "id": "oro - courbe et cuvette normale", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_NORMALE", + "CUVETTE_NORMALE" + ], + "paint": { + "line-color": "#D9C8A9", + "line-width": { + "stops": [ + [ + 13, + 1 + ], + [ + 15, + 1.2 + ] + ] + } + } + }, + { + "id": "oro - courbe et cuvette intercalaire", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_INTERCALAIRE", + "CUVETTE_INTERCAL", + "CNV_SS_INTERCALAIRE" + ], + "paint": { + "line-color": "#D9C8A9", + "line-width": 0.7, + "line-dasharray": [ + 20, + 7 + ] + } + }, + { + "id": "oro - courbe et cuvette glacier maitresse", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_GLACIER_MAITRESSE", + "CUV_GLACIER_MAITRESSE" + ], + "paint": { + "line-color": "#A4BFD9", + "line-width": { + "stops": [ + [ + 13, + 1.7 + ], + [ + 15, + 2 + ] + ] + } + } + }, + { + "id": "oro - courbe et cuvette glacier normale", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_GLACIER_NORMALE", + "CUV_GLACIER_NORMALE" + ], + "paint": { + "line-color": "#A4BFD9", + "line-width": { + "stops": [ + [ + 13, + 1 + ], + [ + 15, + 1.2 + ] + ] + } + } + }, + { + "id": "oro - courbe et cuvette glacier intercalaire", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_GLACIER_INTERCAL", + "CUV_GLACIER_INTERCAL" + ], + "paint": { + "line-color": "#A4BFD9", + "line-width": { + "stops": [ + [ + 13, + 0.7 + ], + [ + 15, + 0.9 + ] + ] + }, + "line-dasharray": [ + 20, + 7 + ] + } + }, + { + "id": "oro - courbe et cuvette rocher maitresse", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_ROCHER_MAITRESSE", + "CUV_ROCHER_MAITRESSE" + ], + "paint": { + "line-color": "#AAAAAA", + "line-width": 1.7 + } + }, + { + "id": "oro - courbe et cuvette rocher normale", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_ROCHER_NORMALE", + "CUV_ROCHER_NORMALE" + ], + "paint": { + "line-color": "#AAAAAA", + "line-width": 1 + } + }, + { + "id": "oro - courbe et cuvette rocher intercalaire", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_ROCHER_INTERCAL", + "CUV_ROCHER_INTERCAL" + ], + "paint": { + "line-color": "#AAAAAA", + "line-width": { + "stops": [ + [ + 13, + 0.7 + ], + [ + 15, + 0.9 + ] + ] + }, + "line-dasharray": [ + 20, + 7 + ] + } + }, + { + "id": "oro - courbe et cuvette bathymetrique", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_BATHYMETRIQUE", + "CUV_BATHYMETRIQUE" + ], + "paint": { + "line-color": "#0000FF", + "line-width": 1 + } + }, + { + "id": "oro lin - talus", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_lin", + "minzoom": 14, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "TALUS" + ], + "paint": { + "line-color": "#D9C8A9", + "line-width": 1 + } + }, + { + "id": "oro lin - talus - trait perpendiculaire", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_lin", + "minzoom": 14, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "TALUS" + ], + "paint": { + "line-color": "#D9C8A9", + "line-width": { + "stops": [ + [ + 14, + 7 + ], + [ + 16, + 9 + ] + ] + }, + "line-dasharray": [ + 0.1, + 1 + ], + "line-offset": 4 + } + }, + { + "id": "toponyme - cote de courbe normale", + "type": "symbol", + "source": "plan_ign", + "source-layer": "oro_courbe", + "minzoom": 13, + "maxzoom": 16, + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 13, + 10 + ], + [ + 15, + 13 + ] + ] + }, + "text-anchor": "center", + "text-rotation-alignment": "map", + "text-pitch-alignment": "viewport", + "text-keep-upright": false, + "text-max-angle": 20, + "text-max-width": 100, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "filter": [ + "all", + [ + "!=", + "texte", + "0" + ], + [ + "==", + "hors_zone", + true + ], + [ + "in", + "symbo", + "CNV_MAITRESSE", + "CUVETTE_MAITRESSE" + ] + ], + "paint": { + "text-color": "#604A2F", + "text-halo-width": 0.5, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - cote de courbe rocher", + "type": "symbol", + "source": "plan_ign", + "source-layer": "oro_courbe", + "minzoom": 13, + "maxzoom": 16, + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 13, + 10 + ], + [ + 15, + 13 + ] + ] + }, + "text-anchor": "center", + "text-rotation-alignment": "map", + "text-pitch-alignment": "viewport", + "text-keep-upright": false, + "text-max-angle": 20, + "text-max-width": 100, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "filter": [ + "all", + [ + "!=", + "texte", + "0" + ], + [ + "==", + "hors_zone", + true + ], + [ + "in", + "symbo", + "CNV_ROCHER_MAITRESSE", + "CUV_ROCHER_MAITRESSE" + ] + ], + "paint": { + "text-color": "#333333", + "text-halo-width": 0.5, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - cote de courbe glacier", + "type": "symbol", + "source": "plan_ign", + "source-layer": "oro_courbe", + "minzoom": 13, + "maxzoom": 16, + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 13, + 10 + ], + [ + 15, + 13 + ] + ] + }, + "text-anchor": "center", + "text-rotation-alignment": "map", + "text-pitch-alignment": "viewport", + "text-keep-upright": false, + "text-max-angle": 20, + "text-max-width": 100, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "filter": [ + "all", + [ + "!=", + "texte", + "0" + ], + [ + "==", + "hors_zone", + true + ], + [ + "in", + "symbo", + "CNV_GLACIER_MAITRESSE", + "CUV_GLACIER_MAITRESSE" + ] + ], + "paint": { + "text-color": "#629FD9", + "text-halo-width": 0.5, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "hydro surfacique", + "type": "fill", + "source": "plan_ign", + "source-layer": "hydro_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "SURFACE_D_EAU", + "BASSIN", + "ZONE_MARINE" + ], + "paint": { + "fill-color": "#AAD5E9", + "fill-outline-color": "#AAD5E9" + } + }, + { + "id": "hydro surfacique temporaire", + "type": "fill", + "source": "plan_ign", + "source-layer": "hydro_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "SURFACE_D_EAU_TEMP" + ], + "paint": { + "fill-color": "rgba(168, 203, 220, 0.5)" + } + }, + { + "id": "réseau hydro - cours d'eau souterrain", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "COURS_D_EAU_SOU", + "COURS_D_EAU_MOY_SOU" + ], + "paint": { + "line-color": "#AAD5E9", + "line-width": { + "stops": [ + [ + 12, + 1.5 + ], + [ + 17, + 6.5 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "réseau hydro - filet interieur - aqueduc souterrain", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau_sou", + "minzoom": 12, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AQUEDUC_SOU" + ], + "paint": { + "line-color": "#AAD5E9", + "line-width": { + "stops": [ + [ + 12, + 1.4 + ], + [ + 16, + 3.5 + ], + [ + 17, + 5.9 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "réseau hydro - carre - aqueduc souterrain", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau_sou", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AQUEDUC_SOU" + ], + "paint": { + "line-color": "#AAD5E9", + "line-width": { + "stops": [ + [ + 12, + 3.5 + ], + [ + 16, + 8.7 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 1, + 5 + ] + } + }, + { + "id": "Ferre souterrain - voie normale", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_1_SOU", + "VF_2_SOU", + "VF_3_SOU", + "VF_4_SOU", + "VF_ELEC_1_SOU", + "VF_ELEC_2_SOU", + "VF_ELEC_3_SOU", + "VF_ELEC_4_SOU", + "VF_FERRO_ROUTIER_SOU" + ], + "paint": { + "line-color": "#B4B4B4", + "line-width": { + "stops": [ + [ + 10, + 0.8 + ], + [ + 17, + 2.5 + ] + ] + } + } + }, + { + "id": "Ferre souterrain - trait perpendic épais", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_1_SOU", + "VF_2_SOU", + "VF_3_SOU", + "VF_4_SOU", + "VF_ELEC_1_SOU", + "VF_ELEC_2_SOU", + "VF_ELEC_3_SOU", + "VF_ELEC_4_SOU", + "VF_FERRO_ROUTIER_SOU" + ], + "paint": { + "line-color": "#B4B4B4", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 0.1, + 10 + ] + } + }, + { + "id": "Ferre souterrain - voie etroite", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_ETROITE_1_SOU", + "VF_ETROITE_2_SOU", + "VF_ETROITE_SOU" + ], + "paint": { + "line-color": "#B4B4B4", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + } + } + }, + { + "id": "Ferre souterrain - trait perpendic fin", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_ETROITE_1_SOU", + "VF_ETROITE_2_SOU", + "VF_ETROITE_SOU" + ], + "paint": { + "line-color": "#B4B4B4", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 0.1, + 10 + ] + } + }, + { + "id": "Ferre souterrain - voie service", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sou", + "minzoom": 14, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_SERVICE_SOU", + "VF_NON_EXPLOITEE_SOU" + ], + "paint": { + "line-color": "#B4B4B4", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + }, + "line-dasharray": [ + 5, + 2, + 1, + 2 + ] + } + }, + { + "id": "Ferre souterrain - funic/urbain", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "FUNI_CREMAILLERE_SOU", + "TRANSPORT_URBAIN_SOU" + ], + "paint": { + "line-color": "#B4B4B4", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + } + } + }, + { + "id": "Ferre souterrain - 2 trait perpendic - funic/urbain", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "FUNI_CREMAILLERE_SOU", + "TRANSPORT_URBAIN_SOU" + ], + "paint": { + "line-color": "#B4B4B4", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 17 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.2, + 0.1, + 10 + ] + } + }, + { + "id": "Chemin souterrain - piste cyclable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "PISTE_CYCLABLE_SOU", + "VOIE_VERTE_SOU" + ], + "paint": { + "line-color": "#AB81CC", + "line-width": { + "stops": [ + [ + 14, + 1.1 + ], + [ + 15, + 1.7 + ], + [ + 16, + 2 + ], + [ + 17, + 3.5 + ] + ] + }, + "line-dasharray": [ + 6, + 2 + ] + } + }, + { + "id": "Chemin souterrain - filet exterieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 14, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER_SOU" + ], + "paint": { + "line-color": "#B3989A", + "line-width": { + "stops": [ + [ + 14, + 1.75 + ], + [ + 15, + 3 + ], + [ + 16, + 4.2 + ], + [ + 17, + 9.5 + ] + ] + } + } + }, + { + "id": "Chemin souterrain - filet interieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 14, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER_SOU" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.9 + ], + [ + 16, + 2.7 + ], + [ + 17, + 5.8 + ] + ] + }, + "line-dasharray": [ + 1, + 0.2 + ] + } + }, + { + "id": "Chemin souterrain - Rue pietonne", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 14, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "RUE_PIETONNE_SOU" + ], + "paint": { + "line-color": "#B3989A", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ] + ] + }, + "line-dasharray": [ + 1, + 3 + ] + } + }, + { + "id": "Chemin souterrain - sentier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "SENTIER_SOU" + ], + "paint": { + "line-color": "#B3989A", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ] + ] + }, + "line-dasharray": [ + 4, + 3 + ] + } + }, + { + "id": "Chemin souterrain - chemin", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 12, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CHEMIN_SOU" + ], + "paint": { + "line-color": "#B3989A", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO_SOU" + ], + "paint": { + "line-color": "#AFAFAF", + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier souterrain - filet extérieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 12, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3_SOU", + "BRET_AUTO_PEAGE_2_SOU", + "BRET_AUTO_PEAGE_1_SOU", + "BRET_AUTO_LIBRE_3_SOU", + "BRET_AUTO_LIBRE_2_SOU", + "BRET_AUTO_LIBRE_1_SOU" + ], + "paint": { + "line-color": "rgba(222, 70, 14, 0.5)", + "line-width": { + "stops": [ + [ + 12, + 2.5 + ], + [ + 14, + 3.7 + ], + [ + 15, + 6.8 + ], + [ + 16, + 8.4 + ], + [ + 17, + 14 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT_SOU" + ], + "paint": { + "line-color": "#AFAFAF", + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4_SOU", + "NON_CLASSEE_SOU" + ], + "paint": { + "line-color": "#AFAFAF", + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE_SOU", + "LOCALE_4_SOU", + "LOCALE_3_SOU", + "LOCALE_2_SOU", + "LOCALE_1_SOU" + ], + "paint": { + "line-color": "rgba(130, 130, 130, 0.5)", + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 11, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR_SOU" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE_SOU", + "REGIONALE_4_SOU", + "REGIONALE_3_SOU", + "REGIONALE_2_SOU", + "REGIONALE_1_SOU" + ], + "paint": { + "line-color": "rgba(130, 130, 130, 0.5)", + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR_SOU" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 7, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE_SOU", + "PRINCIPALE_4_SOU", + "PRINCIPALE_3_SOU", + "PRINCIPALE_2_SOU", + "PRINCIPALE_1_SOU" + ], + "paint": { + "line-color": "rgba(222, 70, 14, 0.5)", + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR_SOU" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 7, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SOU", + "AUTOROU_LIBRE_SOU" + ], + "paint": { + "line-color": "rgba(222, 70, 14, 0.5)", + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SOU" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO_SOU" + ], + "paint": { + "line-color": "#DCDCDC", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 12, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3_SOU", + "BRET_AUTO_PEAGE_2_SOU", + "BRET_AUTO_PEAGE_1_SOU", + "BRET_AUTO_LIBRE_3_SOU", + "BRET_AUTO_LIBRE_2_SOU", + "BRET_AUTO_LIBRE_1_SOU" + ], + "paint": { + "line-color": "rgba(255, 255, 255, 0.5)", + "line-width": { + "stops": [ + [ + 12, + 1.5 + ], + [ + 14, + 2.6 + ], + [ + 15, + 5.2 + ], + [ + 16, + 6.7 + ], + [ + 17, + 10.8 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT_SOU" + ], + "paint": { + "line-color": "#F2F5FF", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4_SOU", + "NON_CLASSEE_SOU" + ], + "paint": { + "line-color": "#DCDCDC", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE_SOU", + "LOCALE_4_SOU", + "LOCALE_3_SOU", + "LOCALE_2_SOU", + "LOCALE_1_SOU" + ], + "paint": { + "line-color": "rgba(255, 255, 255, 0.5)", + "line-width": { + "stops": [ + [ + 9, + 1.3 + ], + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.1 + ], + [ + 17, + 13.1 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 11, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR_SOU" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#FFFFFF" + ], + [ + 13, + "#FCF4A8" + ], + [ + 17, + "#FCF7C1" + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier souterrain - filet interieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE_SOU", + "REGIONALE_4_SOU", + "REGIONALE_3_SOU", + "REGIONALE_2_SOU", + "REGIONALE_1_SOU" + ], + "paint": { + "line-color": "rgba(255, 255, 255, 0.5)", + "line-width": { + "stops": [ + [ + 6, + 1.4 + ], + [ + 9, + 1.5 + ], + [ + 14, + 3.2 + ], + [ + 15, + 5.8 + ], + [ + 16, + 8.3 + ], + [ + 17, + 16.2 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR_SOU" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FFFFFF" + ], + [ + 10, + "#FDF28B" + ], + [ + 17, + "#FCF6BD" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.4 + ], + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier souterrain - filet interieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE_SOU", + "PRINCIPALE_4_SOU", + "PRINCIPALE_3_SOU", + "PRINCIPALE_2_SOU", + "PRINCIPALE_1_SOU" + ], + "paint": { + "line-color": "rgba(255, 255, 255, 0.5)", + "line-width": { + "stops": [ + [ + 4, + 0.5 + ], + [ + 6, + 1.8 + ], + [ + 9, + 2.1 + ], + [ + 14, + 4.4 + ], + [ + 15, + 7.3 + ], + [ + 16, + 10 + ], + [ + 17, + 18.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR_SOU" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F3C66D" + ], + [ + 17, + "#F2DDB3" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.5 + ], + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier souterrain - filet interieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SOU", + "AUTOROU_LIBRE_SOU" + ], + "paint": { + "line-color": "rgba(255, 255, 255, 0.5)", + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.8 + ], + [ + 15, + 9 + ], + [ + 16, + 12 + ], + [ + 17, + 20.8 + ] + ] + } + } + }, + { + "id": "Routier souterrain - axe central - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SOU", + "AUTOROU_LIBRE_SOU" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SOU" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F2BA59" + ], + [ + 17, + "#F2C261" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier souterrain - axe central - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SOU" + ], + "paint": { + "line-color": "#808080", + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "réseau hydro - cours d'eau temporaire", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "COURS_D_EAU_TEMP", + "COURS_D_EAU_TEMP_MOY" + ], + "paint": { + "line-color": "#AAD5E9", + "line-width": { + "stops": [ + [ + 12, + 1.5 + ], + [ + 17, + 4 + ] + ] + }, + "line-dasharray": [ + 6, + 2 + ] + } + }, + { + "id": "réseau hydro - cours d'eau", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau", + "minzoom": 3, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "COURS_D_EAU" + ], + "paint": { + "line-color": "#AAD5E9", + "line-width": { + "stops": [ + [ + 4, + 0.3 + ], + [ + 7, + 1.5 + ], + [ + 12, + 1.5 + ], + [ + 17, + 6.5 + ] + ] + } + } + }, + { + "id": "réseau hydro - canal", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CANAL" + ], + "paint": { + "line-color": "#AAD5E9", + "line-width": { + "stops": [ + [ + 12, + 1.4 + ], + [ + 17, + 5.9 + ] + ] + } + } + }, + { + "id": "réseau hydro - filet interieur - aqueduc", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AQUEDUC_AU_SOL" + ], + "paint": { + "line-color": "#AAD5E9", + "line-width": { + "stops": [ + [ + 12, + 1.4 + ], + [ + 16, + 3.5 + ], + [ + 17, + 5.9 + ] + ] + } + } + }, + { + "id": "réseau hydro - carre - aqueduc", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AQUEDUC_AU_SOL" + ], + "paint": { + "line-color": "#AAD5E9", + "line-width": { + "stops": [ + [ + 12, + 3.5 + ], + [ + 16, + 8.7 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 1, + 5 + ] + } + }, + { + "id": "réseau hydro - cours d'eau moyen ", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "COURS_D_EAU_MOY" + ], + "paint": { + "line-color": "#AAD5E9", + "line-width": { + "stops": [ + [ + 7, + 2 + ], + [ + 12, + 2.5 + ] + ] + } + } + }, + { + "id": "réseau hydro - cours d'eau large ", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "COURS_D_EAU_LAR" + ], + "paint": { + "line-color": "#AAD5E9", + "line-width": { + "stops": [ + [ + 7, + 3 + ], + [ + 11, + 5 + ] + ] + } + } + }, + { + "id": "parcellaire - parcelle surface", + "type": "fill", + "source": "plan_ign", + "source-layer": "parcellaire_parcelle", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "PARCELLE" + ], + "paint": { + "fill-color": "#FFFFD1", + "fill-opacity": 0.7 + } + }, + { + "id": "cimetiere surfacique 1", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "CIMETIERE_SURF", + "CIMETIERE_MILI_SURF", + "NECROPOLE_NATIONALE" + ], + "paint": { + "fill-color": "#F0F0F0", + "fill-opacity": 0.5, + "fill-outline-color": "#818181" + } + }, + { + "id": "cimetiere surfacique 2", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "CIMETIERE_SURF", + "CIMETIERE_MILI_SURF", + "NECROPOLE_NATIONALE" + ], + "paint": { + "fill-pattern": "Cimetiere" + } + }, + { + "id": "bati surfacique mairie - Zoom 14", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "maxzoom": 14, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "MAIRIE", + "MAIRIE_ANNEXE" + ], + "paint": { + "fill-color": "#FFA6A6" + } + }, + { + "id": "bati surfacique mairie - Zoom 15,16,17,18", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 14, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "MAIRIE", + "MAIRIE_ANNEXE" + ], + "paint": { + "fill-color": { + "stops": [ + [ + 14, + "#FFA6A6" + ], + [ + 15, + "#FFAEAE" + ] + ] + }, + "fill-outline-color": "#FF7C7C" + } + }, + { + "id": "bati surfacique fonctionnel industriel ou commercial - Zoom 14,15", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "maxzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "BATI_COMMERCIAL", + "BATI_INDUSTRIEL", + "HANGAR", + "HANGAR_COMMERCIAL", + "HANGAR_INDUSTRIEL" + ], + "paint": { + "fill-color": "#C8C8C8" + } + }, + { + "id": "bati surfacique fonctionnel industriel ou commercial - Zoom 16,17,18", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "BATI_COMMERCIAL", + "BATI_INDUSTRIEL", + "HANGAR", + "HANGAR_COMMERCIAL", + "HANGAR_INDUSTRIEL" + ], + "paint": { + "fill-color": { + "stops": [ + [ + 15, + "#D1D1D1" + ], + [ + 16, + "#E6E6E6" + ] + ] + }, + "fill-outline-color": "#B8B8B8" + } + }, + { + "id": "bati surfacique fonctionnel public - Zoom 14,15", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "maxzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "BATI_PUBLIC", + "HANGAR_PUBLIC" + ], + "paint": { + "fill-color": "#B9B6D6" + } + }, + { + "id": "bati surfacique fonctionnel public - Zoom 16,17,18", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "BATI_PUBLIC", + "HANGAR_PUBLIC" + ], + "paint": { + "fill-color": { + "stops": [ + [ + 15, + "#CFC5DE" + ], + [ + 16, + "#E4DAF3" + ] + ] + }, + "fill-outline-color": "#A6A1D6" + } + }, + { + "id": "bati surfacique fonctionnel sportif - bordure", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 15, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "BATI_SPORTIF" + ], + "paint": { + "line-color": "#BCD9AB", + "line-width": 4 + } + }, + { + "id": "bati surfacique fonctionnel sportif", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "BATI_SPORTIF" + ], + "paint": { + "fill-color": { + "stops": [ + [ + 14, + "#C9E1DD" + ], + [ + 15, + "#DCE6E4" + ] + ] + } + } + }, + { + "id": "bati surfacique fonctionnel gare - Zoom 14,15", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "maxzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "BATI_GARE" + ], + "paint": { + "fill-color": "#B3B5F5" + } + }, + { + "id": "bati surfacique fonctionnel gare - Zoom 16,17,18", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "BATI_GARE" + ], + "paint": { + "fill-color": { + "stops": [ + [ + 15, + "#BFC1F5" + ], + [ + 16, + "#CBCDF5" + ] + ] + }, + "fill-outline-color": "#9B9EF6" + } + }, + { + "id": "bati surfacique quelconque - Zoom 15", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 14, + "maxzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "BATI_QQUE" + ], + "paint": { + "fill-color": "#D6C6B8" + } + }, + { + "id": "bati surfacique quelconque - Zoom 16,17,18", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "BATI_QQUE" + ], + "paint": { + "fill-color": { + "stops": [ + [ + 15, + "#E6E0CF" + ], + [ + 16, + "#F1EBD9" + ] + ] + }, + "fill-outline-color": "#C3AA8E" + } + }, + { + "id": "bati hydro surfacique - Autre", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "ECLUSE_SURF", + "RESERVOIR_EAU_SURF" + ], + "paint": { + "fill-color": "#ADCCD9", + "fill-outline-color": "#336699" + } + }, + { + "id": "bati hydro surfacique - Pecherie", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "PECHERIE_SURF" + ], + "paint": { + "fill-color": "#BFE2F0", + "fill-outline-color": "#509FEF" + } + }, + { + "id": "bati hydro surfacique - Barrage", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "BARRAGE_SURF" + ], + "paint": { + "fill-color": "#FFFFFF", + "fill-outline-color": "#464646" + } + }, + { + "id": "bati hydro surfacique - Chateau d'eau", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "CHATEAU_EAU_SURF" + ], + "paint": { + "fill-color": "#1466B2" + } + }, + { + "id": "bati infra surfacique - Silo", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "SILO_SURF" + ], + "paint": { + "fill-color": "#C7A9AA", + "fill-outline-color": "#696969" + } + }, + { + "id": "bati infra surfacique - Reservoir indus", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 14, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "RESERVOIR_INDUS_SURF" + ], + "paint": { + "fill-color": "#8D9DAA", + "fill-outline-color": "#464646" + } + }, + { + "id": "bati infra surfacique - Serre", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "SERRE_SURF" + ], + "paint": { + "fill-color": "#CAD6D9", + "fill-outline-color": "#8C8C8C" + } + }, + { + "id": "bati infra surfacique - poste electrique", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "POSTE_ELEC_SURF" + ], + "paint": { + "fill-color": "#7993B6", + "fill-opacity": 0.3 + } + }, + { + "id": "bati infra surfacique - poste electrique bord", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "POSTE_ELEC_SURF" + ], + "paint": { + "line-color": "#000000", + "line-width": { + "stops": [ + [ + 12, + 0.3 + ], + [ + 17, + 1.2 + ] + ] + } + } + }, + { + "id": "bati religieux surfacique - Zoom 14", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "maxzoom": 14, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "CHAPELLE_SURF", + "EGLISE_SURF", + "CHRETIEN_SURF", + "SYNAGOGUE_SURF", + "MOSQUEE_SURF", + "AUTRE_CULTE_SURF", + "RELIGIEUX_QQUE" + ], + "paint": { + "fill-color": "#F7CBCB" + } + }, + { + "id": "bati religieux surfacique - Zoom 15,16,17,18", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 14, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "CHAPELLE_SURF", + "EGLISE_SURF", + "CHRETIEN_SURF", + "SYNAGOGUE_SURF", + "MOSQUEE_SURF", + "AUTRE_CULTE_SURF", + "RELIGIEUX_QQUE" + ], + "paint": { + "fill-color": { + "stops": [ + [ + 14, + "#F7CBCB" + ], + [ + 15, + "#F7E1E1" + ] + ] + }, + "fill-outline-color": { + "stops": [ + [ + 14, + "#F7A8A8" + ], + [ + 15, + "#F7B7B7" + ] + ] + } + } + }, + { + "id": "bati remarquable surfacique", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "FORTIF_SURF", + "CHATEAU_SURF", + "TOUR_MOULIN_SURF", + "ARENE_THEATRE", + "ARC_TRIOMPHE_SURF", + "MONUMENT_SURF" + ], + "paint": { + "fill-color": "#9B9B9B", + "fill-outline-color": "#6E6E6E" + } + }, + { + "id": "bati sportif surfacique fond", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "TENNIS_SURF", + "SPORT_INDIF_SURF", + "FOOT_SURF", + "MULTI_SPORT_SURF", + "PISTE_SPORT_SURF", + "NATATION_SURF" + ], + "paint": { + "fill-color": "#FFFFFF", + "fill-outline-color": "#FFFFFF" + } + }, + { + "id": "bati sportif surfacique", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "TENNIS_SURF", + "SPORT_INDIF_SURF", + "FOOT_SURF", + "MULTI_SPORT_SURF", + "PISTE_SPORT_SURF", + "NATATION_SURF" + ], + "paint": { + "line-color": "#BCD9AB", + "line-width": 2 + } + }, + { + "id": "bati transport surfacique - piste", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "PISTE_DUR", + "PISTE_HERBE" + ], + "paint": { + "fill-color": "#DBDBDB", + "fill-outline-color": "#808080" + } + }, + { + "id": "bati ZAI - Autres", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_zai", + "minzoom": 15, + "maxzoom": 18, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "nature", + "Lycée", + "Université", + "Capitainerie", + "Gendarmerie", + "Siège d'EPCI", + "Musée", + "Collège", + "Maison de retraite", + "Etablissement thermal", + "Autre service déconcentré de l'Etat", + "Etablissement pénitentiaire", + "Divers public ou administratif", + "Autre établissement d'enseignement", + "Maison du parc", + "Palais de justice", + "Enseignement primaire", + "Office de tourisme", + "Hôpital", + "Police", + "Piscine", + "Enseignement supérieur", + "Poste", + "Caserne", + "Etablissement hospitalier", + "Etablissement extraterritorial", + "Science", + "Structure d'accueil pour personnes handicapées", + "Administration centrale de l'Etat", + "Caserne de pompiers" + ], + "paint": { + "fill-color": "#E3BFE2", + "fill-opacity": 0.5, + "fill-outline-color": "#E39FE1" + } + }, + { + "id": "bati ZAI - Commandement", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_zai", + "minzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "nature", + "Hôtel de département", + "Hôtel de région", + "Hôtel de collectivité", + "Préfecture de région", + "Préfecture", + "Sous-préfecture" + ], + "paint": { + "fill-color": "#FF0000", + "fill-opacity": 0.3, + "fill-outline-color": "#B40000" + } + }, + { + "id": "construction linéaire - mur", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "MUR" + ], + "paint": { + "line-color": "#8C8C8C", + "line-width": 0.3 + } + }, + { + "id": "construction linéaire - autre", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "RUINE_LIN", + "MUR_SOUTENEMENT", + "FORTIF_LIN" + ], + "paint": { + "line-color": "#646464", + "line-width": 0.5 + } + }, + { + "id": "construction hydrographique linéaire - Barrage", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "BARRAGE_LIN" + ], + "paint": { + "line-color": "#646464", + "line-width": { + "stops": [ + [ + 13, + 1.5 + ], + [ + 17, + 5 + ] + ] + } + } + }, + { + "id": "construction hydrographique linéaire - Quai", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "QUAI", + "DIGUE" + ], + "paint": { + "line-color": "#828282", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 17, + 2.5 + ] + ] + } + } + }, + { + "id": "construction hydrographique linéaire - Pecherie", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PECHERIE_LIN" + ], + "paint": { + "line-color": "#0066CC", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 17, + 2.5 + ] + ] + } + } + }, + { + "id": "Chemin a niveau - piste cyclable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "PISTE_CYCLABLE", + "VOIE_VERTE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#9B5CCC" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.1 + ], + [ + 15, + 1.7 + ], + [ + 16, + 2 + ], + [ + 17, + 3.5 + ], + [ + 18, + 6 + ] + ] + }, + "line-dasharray": [ + 6, + 2 + ] + } + }, + { + "id": "Chemin a niveau - filet exterieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#8C7274" + ], + [ + 18, + "#C8C8C8" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.75 + ], + [ + 15, + 3 + ], + [ + 16, + 4.2 + ], + [ + 17, + 9.5 + ] + ] + } + } + }, + { + "id": "Chemin a niveau - filet interieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.9 + ], + [ + 16, + 2.7 + ], + [ + 17, + 5.8 + ] + ] + }, + "line-dasharray": [ + 1, + 0.2 + ] + } + }, + { + "id": "Chemin a niveau - Rue pietonne", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "RUE_PIETONNE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#8C7274" + ], + [ + 18, + "#F8E5D5" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 5 + ] + ] + }, + "line-dasharray": [ + 1, + 3 + ] + } + }, + { + "id": "Chemin a niveau - sentier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "SENTIER" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#8C7274" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 6 + ] + ] + }, + "line-dasharray": [ + 4, + 3 + ] + } + }, + { + "id": "Chemin a niveau - chemin", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CHEMIN" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#8C7274" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 7 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#646464" + ], + [ + 17, + "#8C8C8C" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier a niveau - filet interieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ], + [ + 18, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3", + "BRET_AUTO_PEAGE_2", + "BRET_AUTO_PEAGE_1", + "BRET_AUTO_LIBRE_3", + "BRET_AUTO_LIBRE_2", + "BRET_AUTO_LIBRE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#DE460E" + ], + [ + 17, + "#F18800" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 2.5 + ], + [ + 14, + 3.7 + ], + [ + 15, + 6.8 + ], + [ + 16, + 8.4 + ], + [ + 17, + 14 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#969696" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4", + "NON_CLASSEE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#969696" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 7, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE", + "LOCALE_4", + "LOCALE_3", + "LOCALE_2", + "LOCALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#8C8C8C" + ], + [ + 13, + "#B4B4B4" + ], + [ + 17, + "#B4B4B4" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 11, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE", + "REGIONALE_4", + "REGIONALE_3", + "REGIONALE_2", + "REGIONALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#828282" + ], + [ + 10, + "#B4B4B4" + ], + [ + 17, + "#B4B4B4" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE", + "PRINCIPALE_4", + "PRINCIPALE_3", + "PRINCIPALE_2", + "PRINCIPALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#E2A52A" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE", + "AUTOROU_LIBRE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#DE460E" + ], + [ + 17, + "#F18800" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 8, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 12, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3", + "BRET_AUTO_PEAGE_2", + "BRET_AUTO_PEAGE_1", + "BRET_AUTO_LIBRE_3", + "BRET_AUTO_LIBRE_2", + "BRET_AUTO_LIBRE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F18800" + ], + [ + 17, + "#F2B230" + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 1.5 + ], + [ + 14, + 2.6 + ], + [ + 15, + 5.2 + ], + [ + 16, + 6.7 + ], + [ + 17, + 10.8 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT" + ], + "paint": { + "line-color": "#EDF1FF", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4", + "NON_CLASSEE" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE", + "LOCALE_4", + "LOCALE_3", + "LOCALE_2", + "LOCALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#F2B361" + ], + [ + 7, + "#FFFFFF" + ], + [ + 12, + "#FFFFFF" + ], + [ + 13, + "#FCF4A8" + ], + [ + 17, + "#FCF7C1" + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 1.3 + ], + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.1 + ], + [ + 17, + 13.1 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 11, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#FFFFFF" + ], + [ + 13, + "#FCF4A8" + ], + [ + 17, + "#FCF7C1" + ], + [ + 18, + "#EDEDED" + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier a niveau - filet interieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE", + "REGIONALE_4", + "REGIONALE_3", + "REGIONALE_2", + "REGIONALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#F2A949" + ], + [ + 7, + "#FFFFFF" + ], + [ + 9, + "#FFFFFF" + ], + [ + 10, + "#FDF28B" + ], + [ + 17, + "#FCF6BD" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 1.1 + ], + [ + 6, + 1.4 + ], + [ + 9, + 1.5 + ], + [ + 14, + 3.2 + ], + [ + 15, + 5.8 + ], + [ + 16, + 8.3 + ], + [ + 17, + 16.2 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FFFFFF" + ], + [ + 10, + "#FDF28B" + ], + [ + 17, + "#FCF6BD" + ], + [ + 18, + "#EDEDED" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.4 + ], + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier a niveau - filet interieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE", + "PRINCIPALE_4", + "PRINCIPALE_3", + "PRINCIPALE_2", + "PRINCIPALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#F29924" + ], + [ + 7, + "#F3C66D" + ], + [ + 9, + "#F3C66D" + ], + [ + 17, + "#F2DDB3" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.6 + ], + [ + 6, + 1.8 + ], + [ + 9, + 2.1 + ], + [ + 14, + 4.4 + ], + [ + 15, + 7.3 + ], + [ + 16, + 10 + ], + [ + 17, + 18.5 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F3C66D" + ], + [ + 17, + "#F2DDB3" + ], + [ + 18, + "#EDEDED" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.5 + ], + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier a niveau - filet interieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE", + "AUTOROU_LIBRE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F18800" + ], + [ + 17, + "#F2B230" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.8 + ], + [ + 15, + 9 + ], + [ + 16, + 12 + ], + [ + 17, + 20.8 + ] + ] + } + } + }, + { + "id": "Routier a niveau - axe central - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE", + "AUTOROU_LIBRE" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F18800" + ], + [ + 17, + "#F2B230" + ], + [ + 18, + "#EDEDED" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier a niveau - axe centrale - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR" + ], + "paint": { + "line-color": "#808080", + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "Ferre a niveau - voie normale", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_1", + "VF_2", + "VF_3", + "VF_4", + "VF_ELEC_1", + "VF_ELEC_2", + "VF_ELEC_3", + "VF_ELEC_4" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 0.8 + ], + [ + 17, + 2.5 + ] + ] + } + } + }, + { + "id": "Ferre a niveau - voie normale trait perpendic", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_1", + "VF_2", + "VF_3", + "VF_4", + "VF_ELEC_1", + "VF_ELEC_2", + "VF_ELEC_3", + "VF_ELEC_4" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 0.1, + 10 + ] + } + }, + { + "id": "Ferre a niveau - voie etroite", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_ETROITE_1", + "VF_ETROITE_2", + "VF_ETROITE" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + } + } + }, + { + "id": "Ferre a niveau - voie etroite trait perpendic", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_ETROITE_1", + "VF_ETROITE_2", + "VF_ETROITE" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 0.1, + 10 + ] + } + }, + { + "id": "Ferre a niveau - voie service", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_SERVICE", + "VF_NON_EXPLOITEE" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + }, + "line-dasharray": [ + 5, + 2, + 1, + 2 + ] + } + }, + { + "id": "Ferre a niveau - voie en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "VF_EN_CONSTR" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Ferre a niveau - voie en construction trait perpendic", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "VF_EN_CONSTR" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 0.1, + 10 + ] + } + }, + { + "id": "Ferre a niveau - funic/urbain", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "FUNI_CREMAILLERE", + "TRANSPORT_URBAIN" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + } + } + }, + { + "id": "Ferre a niveau - 2 trait perpendic - funic/urbain", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "FUNI_CREMAILLERE", + "TRANSPORT_URBAIN" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 17 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.2, + 0.1, + 10 + ] + } + }, + { + "id": "liaison routiere - Bac Liaison Maritime", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_liaison", + "minzoom": 8, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BAC_AUTO", + "LIAISON_MARITIME", + "BAC_LIAISON_MARITIME" + ], + "paint": { + "line-color": "#5792C2", + "line-width": { + "stops": [ + [ + 8, + 1 + ], + [ + 13, + 2.5 + ] + ] + } + } + }, + { + "id": "liaison routiere - Gue route", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_liaison", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "GUE_ROUTE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 13, + "#BEBEBE" + ], + [ + 17, + "#646464" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "liaison routiere - Gue chemin", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_liaison", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "GUE_CHEMIN" + ], + "paint": { + "line-color": { + "stops": [ + [ + 13, + "#BEBEBE" + ], + [ + 17, + "#646464" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.6 + ], + [ + 15, + 2.9 + ], + [ + 16, + 4.4 + ], + [ + 17, + 6.5 + ] + ] + } + } + }, + { + "id": "liaison routiere - filet extérieur - Pont passerelle", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_liaison", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "PONT_PASSERELLE", + "PONT_LIN", + "PONT_MOBILE_LIN" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#C8C8C8" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 2.2 + ], + [ + 15, + 3.8 + ], + [ + 16, + 5.4 + ], + [ + 17, + 11.8 + ] + ] + } + } + }, + { + "id": "liaison routiere - filet intérieur - Pont passerelle", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_liaison", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "PONT_PASSERELLE", + "PONT_LIN", + "PONT_MOBILE_LIN" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 0.7 + ], + [ + 15, + 1.1 + ], + [ + 16, + 1.7 + ], + [ + 17, + 3.8 + ] + ] + } + } + }, + { + "id": "Routier surfacique", + "type": "fill", + "source": "plan_ign", + "source-layer": "routier_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "SURF_ROUT_PRINC", + "SURF_ROUT_REG", + "SURF_ROUT_LOC", + "SURF_ROUT_NON_CLA" + ], + "paint": { + "fill-color": "#FFFFFF", + "fill-outline-color": "#000000" + } + }, + { + "id": "Routier surfacique - Dalle de protection", + "type": "fill", + "source": "plan_ign", + "source-layer": "routier_surf", + "maxzoom": 18, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "DALLE_DE_PROTECTION" + ], + "paint": { + "fill-opacity": 0.5, + "fill-color": "#FFFFFF", + "fill-outline-color": "#000000" + } + }, + { + "id": "Routier surfacique - Escalier surfacique", + "type": "fill", + "source": "plan_ign", + "source-layer": "routier_surf", + "maxzoom": 18, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ESCALIER_SURF" + ], + "paint": { + "fill-opacity": 0.8, + "fill-color": "#FFFFFF", + "fill-outline-color": "#918091" + } + }, + { + "id": "Routier surfacique - Péage surfacique", + "type": "fill", + "source": "plan_ign", + "source-layer": "routier_surf", + "maxzoom": 18, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "SURF_PEAGE" + ], + "paint": { + "fill-color": "#F2DAAA", + "fill-outline-color": "#E2A52A" + } + }, + { + "id": "bati transport surfacique - bati peage", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "BATI_PEAGE" + ], + "paint": { + "fill-color": "#DCDCDC", + "fill-outline-color": "#808080" + } + }, + { + "id": "réseau hydro - cours d'eau superieur", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau_sup", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "COURS_D_EAU_SUP", + "COURS_D_EAU_MOY_SUP" + ], + "paint": { + "line-color": "#AAD5E9", + "line-width": { + "stops": [ + [ + 12, + 1.5 + ], + [ + 17, + 6.5 + ] + ] + } + } + }, + { + "id": "réseau hydro - canal superieur", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau_sup", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CANAL_SUP" + ], + "paint": { + "line-color": "#AAD5E9", + "line-width": { + "stops": [ + [ + 12, + 1.4 + ], + [ + 17, + 5.9 + ] + ] + } + } + }, + { + "id": "réseau hydro - filet interieur - aqueduc superieur", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau_sup", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AQUEDUC_SUP" + ], + "paint": { + "line-color": "#AAD5E9", + "line-width": { + "stops": [ + [ + 12, + 1.4 + ], + [ + 16, + 3.5 + ], + [ + 17, + 5.9 + ] + ] + } + } + }, + { + "id": "réseau hydro - carre - aqueduc superieur", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AQUEDUC_SUP" + ], + "paint": { + "line-color": "#AAD5E9", + "line-width": { + "stops": [ + [ + 12, + 3.5 + ], + [ + 16, + 8.7 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 1, + 5 + ] + } + }, + { + "id": "Chemin superieur - piste cyclable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "PISTE_CYCLABLE_SUP", + "VOIE_VERTE_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#9B5CCC" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.1 + ], + [ + 15, + 1.7 + ], + [ + 16, + 2 + ], + [ + 17, + 3.5 + ], + [ + 18, + 6 + ] + ] + }, + "line-dasharray": [ + 6, + 2 + ] + } + }, + { + "id": "Chemin superieur - filet exterieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#8C7274" + ], + [ + 18, + "#C8C8C8" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.75 + ], + [ + 15, + 3 + ], + [ + 16, + 4.2 + ], + [ + 17, + 9.5 + ] + ] + } + } + }, + { + "id": "Chemin superieur - filet interieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER_SUP" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.9 + ], + [ + 16, + 2.7 + ], + [ + 17, + 5.8 + ] + ] + }, + "line-dasharray": [ + 1, + 0.2 + ] + } + }, + { + "id": "Chemin superieur - Rue pietonne", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "RUE_PIETONNE_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#8C7274" + ], + [ + 18, + "#EBEBEB" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 5 + ] + ] + }, + "line-dasharray": [ + 1, + 3 + ] + } + }, + { + "id": "Chemin superieur - sentier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "SENTIER_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#8C7274" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 6 + ] + ] + }, + "line-dasharray": [ + 4, + 3 + ] + } + }, + { + "id": "Chemin superieur - chemin", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CHEMIN_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#8C7274" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 7 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#646464" + ], + [ + 17, + "#8C8C8C" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier superieur - filet extérieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3_SUP", + "BRET_AUTO_PEAGE_2_SUP", + "BRET_AUTO_PEAGE_1_SUP", + "BRET_AUTO_LIBRE_3_SUP", + "BRET_AUTO_LIBRE_2_SUP", + "BRET_AUTO_LIBRE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#DE460E" + ], + [ + 17, + "#F18800" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 2.5 + ], + [ + 14, + 3.7 + ], + [ + 15, + 6.8 + ], + [ + 16, + 8.4 + ], + [ + 17, + 14 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#969696" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4_SUP", + "NON_CLASSEE_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#969696" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE_SUP", + "LOCALE_4_SUP", + "LOCALE_3_SUP", + "LOCALE_2_SUP", + "LOCALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#8C8C8C" + ], + [ + 13, + "#B4B4B4" + ], + [ + 17, + "#B4B4B4" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 11, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR_SUP" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE_SUP", + "REGIONALE_4_SUP", + "REGIONALE_3_SUP", + "REGIONALE_2_SUP", + "REGIONALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#828282" + ], + [ + 10, + "#B4B4B4" + ], + [ + 17, + "#B4B4B4" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR_SUP" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE_SUP", + "PRINCIPALE_4_SUP", + "PRINCIPALE_3_SUP", + "PRINCIPALE_2_SUP", + "PRINCIPALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#E2A52A" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR_SUP" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SUP", + "AUTOROU_LIBRE_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#DE460E" + ], + [ + 17, + "#F18800" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SUP" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO_SUP" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ], + [ + 18, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 12, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3_SUP", + "BRET_AUTO_PEAGE_2_SUP", + "BRET_AUTO_PEAGE_1_SUP", + "BRET_AUTO_LIBRE_3_SUP", + "BRET_AUTO_LIBRE_2_SUP", + "BRET_AUTO_LIBRE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F18800" + ], + [ + 17, + "#F2B230" + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 1.5 + ], + [ + 14, + 2.6 + ], + [ + 15, + 5.2 + ], + [ + 16, + 6.7 + ], + [ + 17, + 10.8 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT_SUP" + ], + "paint": { + "line-color": "#EDF1FF", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4_SUP", + "NON_CLASSEE_SUP" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE_SUP", + "LOCALE_4_SUP", + "LOCALE_3_SUP", + "LOCALE_2_SUP", + "LOCALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#FFFFFF" + ], + [ + 13, + "#FCF4A8" + ], + [ + 17, + "#FCF7C1" + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 1.3 + ], + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.1 + ], + [ + 17, + 13.1 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 11, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#FFFFFF" + ], + [ + 13, + "#FCF4A8" + ], + [ + 17, + "#FCF7C1" + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier superieur - filet interieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE_SUP", + "REGIONALE_4_SUP", + "REGIONALE_3_SUP", + "REGIONALE_2_SUP", + "REGIONALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FFFFFF" + ], + [ + 10, + "#FDF28B" + ], + [ + 17, + "#FCF6BD" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.4 + ], + [ + 9, + 1.5 + ], + [ + 14, + 3.2 + ], + [ + 15, + 5.8 + ], + [ + 16, + 8.3 + ], + [ + 17, + 16.2 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FFFFFF" + ], + [ + 10, + "#FDF28B" + ], + [ + 17, + "#FCF6BD" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier superieur - filet interieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE_SUP", + "PRINCIPALE_4_SUP", + "PRINCIPALE_3_SUP", + "PRINCIPALE_2_SUP", + "PRINCIPALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F3C66D" + ], + [ + 17, + "#F2DDB3" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.5 + ], + [ + 6, + 1.8 + ], + [ + 9, + 2.1 + ], + [ + 14, + 4.4 + ], + [ + 15, + 7.3 + ], + [ + 16, + 10 + ], + [ + 17, + 18.5 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F3C66D" + ], + [ + 17, + "#F2DDB3" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier superieur - filet interieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SUP", + "AUTOROU_LIBRE_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F18800" + ], + [ + 17, + "#F2B230" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.8 + ], + [ + 15, + 9 + ], + [ + 16, + 12 + ], + [ + 17, + 20.8 + ] + ] + } + } + }, + { + "id": "Routier superieur - axe central - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SUP", + "AUTOROU_LIBRE_SUP" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F18800" + ], + [ + 17, + "#F2B230" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier superieur - axe centrale - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SUP" + ], + "paint": { + "line-color": "#808080", + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "Ferre superieur - voie normale", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_1_SUP", + "VF_2_SUP", + "VF_3_SUP", + "VF_4_SUP", + "VF_ELEC_1_SUP", + "VF_ELEC_2_SUP", + "VF_ELEC_3_SUP", + "VF_ELEC_4_SUP" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 0.8 + ], + [ + 17, + 2.5 + ] + ] + } + } + }, + { + "id": "Ferre superieur - voie normale trait perpendic", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_1_SUP", + "VF_2_SUP", + "VF_3_SUP", + "VF_4_SUP", + "VF_ELEC_1_SUP", + "VF_ELEC_2_SUP", + "VF_ELEC_3_SUP", + "VF_ELEC_4_SUP" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 0.1, + 10 + ] + } + }, + { + "id": "Ferre superieur - voie etroite", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_ETROITE_1_SUP", + "VF_ETROITE_2_SUP", + "VF_ETROITE_SUP" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + } + } + }, + { + "id": "Ferre superieur - voie etroite trait perpendic", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_ETROITE_1_SUP", + "VF_ETROITE_2_SUP", + "VF_ETROITE_SUP" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 0.1, + 10 + ] + } + }, + { + "id": "Ferre superieur - voie service", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_SERVICE_SUP", + "VF_NON_EXPLOITEE_SUP" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + }, + "line-dasharray": [ + 5, + 2, + 1, + 2 + ] + } + }, + { + "id": "Ferre superieur - voie en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "VF_EN_CONSTR_SUP" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Ferre superieur - voie en construction trait perpendic", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "VF_EN_CONSTR_SUP" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 0.1, + 10 + ] + } + }, + { + "id": "Ferre superieur - funic/urbain", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "FUNI_CREMAILLERE_SUP", + "TRANSPORT_URBAIN_SUP" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + } + } + }, + { + "id": "Ferre superieur - 2 trait perpendic - funic/urbain", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "FUNI_CREMAILLERE_SUP", + "TRANSPORT_URBAIN_SUP" + ], + "paint": { + "line-color": "#787878", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 17 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.2, + 0.1, + 10 + ] + } + }, + { + "id": "Limite - cloture", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CLOTURE" + ], + "paint": { + "line-color": "#000000", + "line-width": { + "stops": [ + [ + 13, + 0.6 + ], + [ + 17, + 1 + ] + ] + }, + "line-dasharray": [ + 1.5, + 4 + ] + } + }, + { + "id": "Limite - layon", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 14, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LAYON" + ], + "paint": { + "line-color": "#B3989A", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ] + ] + }, + "line-dasharray": [ + 4, + 7 + ] + } + }, + { + "id": "Zone Règlementee - Enceinte militaire", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_ZONE_REGLEMENTEE", + "LIM_ENCEINTE_MILITAIRE", + "LIM_ENCEINTE_MILI", + "LIM_CHAMP_TIR" + ], + "paint": { + "line-color": "rgba(226, 130, 92, 0.8)", + "line-width": { + "stops": [ + [ + 13, + 1.7 + ], + [ + 17, + 3.1 + ] + ] + }, + "line-dasharray": [ + 4, + 1, + 2, + 5 + ] + } + }, + { + "id": "limite zone naturelle", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_ZONE_NATURELLE", + "LIM_ZONE_NATURELLE_ILE", + "LIM_RESERVE_NATURELLE" + ], + "paint": { + "line-color": "#FFC2CB", + "line-width": { + "stops": [ + [ + 13, + 2 + ], + [ + 17, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 1 + ] + } + }, + { + "id": "limite zone naturelle - Parc naturel 10", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "maxzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_PARC_NATUREL", + "LIM_PARC_NATUREL_ILE" + ], + "paint": { + "line-color": "#42A266", + "line-width": { + "stops": [ + [ + 13, + 2 + ], + [ + 17, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 1 + ] + } + }, + { + "id": "limite zone naturelle - Parc naturel 11", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 10, + "maxzoom": 11, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_PARC_NATUREL", + "LIM_PARC_NATUREL_ILE" + ], + "paint": { + "line-color": "#42A266", + "line-width": { + "stops": [ + [ + 13, + 2 + ], + [ + 17, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "limite zone naturelle - Parc naturel 12", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 11, + "maxzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_PARC_NATUREL", + "LIM_PARC_NATUREL_ILE" + ], + "paint": { + "line-color": "#42A266", + "line-width": { + "stops": [ + [ + 13, + 2 + ], + [ + 17, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 3 + ] + } + }, + { + "id": "limite zone naturelle - Parc naturel 13", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 12, + "maxzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_PARC_NATUREL", + "LIM_PARC_NATUREL_ILE" + ], + "paint": { + "line-color": "#42A266", + "line-width": { + "stops": [ + [ + 13, + 2 + ], + [ + 17, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 4 + ] + } + }, + { + "id": "limite zone naturelle - Parc naturel 14", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_PARC_NATUREL", + "LIM_PARC_NATUREL_ILE" + ], + "paint": { + "line-color": "rgba(66, 162, 102, 0.7)", + "line-width": { + "stops": [ + [ + 13, + 2 + ], + [ + 17, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 5 + ] + } + }, + { + "id": "limite zone naturelle - Parc marin", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LIM_PARC_NATUREL_MARIN" + ], + "paint": { + "line-color": "#2A81A2", + "line-width": { + "stops": [ + [ + 13, + 2 + ], + [ + 17, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 1 + ] + } + }, + { + "id": "parcellaire - parcelle bordure", + "type": "line", + "source": "plan_ign", + "source-layer": "parcellaire_parcelle", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PARCELLE" + ], + "paint": { + "line-color": "#9933FF", + "line-width": 1 + } + }, + { + "id": "parcellaire - section", + "type": "line", + "source": "plan_ign", + "source-layer": "parcellaire_section", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "SECTION" + ], + "paint": { + "line-color": "#287B00", + "line-width": 1.9, + "line-dasharray": [ + 2, + 4, + 2 + ] + } + }, + { + "id": "toponyme - parcellaire - section", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_parcellaire_section", + "filter": [ + "==", + "txt_typo", + "SECTION" + ], + "layout": { + "symbol-placement": "line", + "text-offset": [ + 0, + 0 + ], + "text-field": "{texte}", + "text-size": 15, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#287B00" + } + }, + { + "id": "toponyme - parcellaire - parcelle", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_parcellaire_parcelle", + "filter": [ + "==", + "txt_typo", + "PARCELLE" + ], + "layout": { + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#9933FF", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - parcellaire - adresse", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_parcellaire_adresse_ponc", + "filter": [ + "==", + "txt_typo", + "ADRESSE" + ], + "layout": { + "symbol-placement": "point", + "text-field": [ + "concat", + [ + "get", + "numero" + ], + [ + "get", + "indice_de_repetition" + ] + ], + "text-size": 11, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#695744", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "limite admin - limite de commune", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_COMMUNE", + "LIM_CANTON", + "LIM_ARRONDISSEMENT" + ], + "paint": { + "line-color": "rgba(126, 119, 184, 0.5)", + "line-width": { + "stops": [ + [ + 13, + 3 + ], + [ + 17, + 5.5 + ] + ] + }, + "line-dasharray": [ + 4, + 2, + 1, + 1, + 1, + 1, + 1, + 2 + ] + } + }, + { + "id": "limite admin - limite de département bandeau", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 8, + "maxzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LIM_DEPARTEMENT" + ], + "paint": { + "line-color": "rgba(178, 175, 219, 0.4)", + "line-width": { + "stops": [ + [ + 9, + 4.1 + ], + [ + 12, + 6 + ] + ] + } + } + }, + { + "id": "limite admin - limite de département tiret", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LIM_DEPARTEMENT" + ], + "paint": { + "line-color": "rgba(126, 119, 184, 0.5)", + "line-width": { + "stops": [ + [ + 13, + 3 + ], + [ + 17, + 5.5 + ] + ] + }, + "line-dasharray": [ + 4, + 2, + 1, + 1, + 1, + 2 + ] + } + }, + { + "id": "limite admin - limite de région bandeau", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 7, + "maxzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LIM_REGION" + ], + "paint": { + "line-color": "rgba(178, 175, 219, 0.5)", + "line-width": { + "stops": [ + [ + 9, + 4.5 + ], + [ + 12, + 6.7 + ] + ] + } + } + }, + { + "id": "limite admin - limite de région tiret", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LIM_REGION" + ], + "paint": { + "line-color": "rgba(126, 119, 184, 0.5)", + "line-width": { + "stops": [ + [ + 13, + 3 + ], + [ + 17, + 5.5 + ] + ] + }, + "line-dasharray": [ + 4, + 2, + 1, + 2 + ] + } + }, + { + "id": "limite etat 1", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 2, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_ETAT", + "LIM_ETAT_ETRANGER" + ], + "paint": { + "line-color": "rgba(178, 175, 219, 0.6)", + "line-width": { + "stops": [ + [ + 2, + 2 + ], + [ + 3, + 3.5 + ], + [ + 9, + 5 + ], + [ + 14, + 13 + ], + [ + 15, + 20 + ], + [ + 16, + 24 + ], + [ + 17, + 42 + ] + ] + } + } + }, + { + "id": "limite etat 2", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 7, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_ETAT", + "LIM_ETAT_ETRANGER" + ], + "paint": { + "line-color": "#9F9CB8", + "line-width": { + "stops": [ + [ + 9, + 1.5 + ], + [ + 14, + 3.5 + ], + [ + 15, + 5.5 + ], + [ + 16, + 6.5 + ], + [ + 17, + 11 + ] + ] + }, + "line-dasharray": [ + 4, + 2 + ] + } + }, + { + "id": "limite cote", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 7, + "maxzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_COTE" + ], + "paint": { + "line-color": "#82A3B2", + "line-width": 1 + } + }, + { + "id": "ligne electrique", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LIGNE_ELECTRIQUE" + ], + "paint": { + "line-color": "#808080", + "line-width": { + "stops": [ + [ + 13, + 1 + ], + [ + 17, + 2 + ] + ] + } + } + }, + { + "id": "autre construction linéaire", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CABLE", + "REMONTEE_MEC", + "HYDROCARBURES", + "CONDUITE_MATIERES_P", + "SPORT_MONTAGNE_LIN", + "PISTE_BOBSLEIGH", + "PISTE_LUGE", + "PISTE_AERO_LIN" + ], + "paint": { + "line-color": "#808080", + "line-width": 1 + } + }, + { + "id": "autre construction linéaire - trait perpend cable", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CABLE" + ], + "paint": { + "line-color": "#808080", + "line-width": 5, + "line-dasharray": [ + 0.5, + 10 + ] + } + }, + { + "id": "autre construction linéaire - trait perpend 1 remont", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REMONTEE_MEC" + ], + "paint": { + "line-color": "#808080", + "line-width": 6, + "line-dasharray": [ + 1, + 10 + ] + } + }, + { + "id": "autre construction linéaire - trait perpend 2 remont", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REMONTEE_MEC" + ], + "paint": { + "line-color": "#BEBEBE", + "line-width": 6, + "line-dasharray": [ + 0.3, + 0.4, + 0.3, + 10 + ] + } + }, + { + "id": "autre construction linéaire - trait perpend carbur", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "HYDROCARBURES", + "CONDUITE_MATIERES_P" + ], + "paint": { + "line-color": "#808080", + "line-width": 5, + "line-dasharray": [ + 1, + 10 + ] + } + }, + { + "id": "routier ponctuel - peage ponctuel", + "type": "circle", + "source": "plan_ign", + "source-layer": "routier_ponc", + "minzoom": 8, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "PEAGE_PONC" + ], + "paint": { + "circle-radius": { + "stops": [ + [ + 9, + 3.5 + ], + [ + 12, + 6.5 + ] + ] + }, + "circle-color": "#E2A52A", + "circle-stroke-width": 1, + "circle-stroke-color": "#808080" + } + }, + { + "id": "routier ponctuel - barriere", + "type": "symbol", + "source": "plan_ign", + "source-layer": "routier_ponc", + "minzoom": 12, + "layout": { + "visibility": "visible", + "icon-image": "Barriere", + "icon-size": { + "stops": [ + [ + 13, + 0.25 + ], + [ + 16, + 0.45 + ], + [ + 17, + 0.7 + ] + ] + }, + "icon-allow-overlap": true, + "icon-rotate": [ + "get", + "rotation" + ] + }, + "filter": [ + "==", + "symbo", + "BARRIERE" + ], + "paint": { + "icon-color": "#969696" + } + }, + { + "id": "hydro ponctuel", + "type": "circle", + "source": "plan_ign", + "source-layer": "hydro_ponc", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "FONTAINE", + "POINT_D_EAU", + "SOURCE", + "SOURCE_CAPTEE", + "PERTE", + "RESURGENCE", + "CASCADE", + "AUTRE_HYDRO_PONC" + ], + "paint": { + "circle-radius": { + "stops": [ + [ + 14, + 3 + ], + [ + 17, + 7 + ] + ] + }, + "circle-color": "#FFFFFF", + "circle-opacity": 1, + "circle-stroke-width": { + "stops": [ + [ + 14, + 2 + ], + [ + 17, + 5 + ] + ] + }, + "circle-stroke-color": "#1466B2" + } + }, + { + "id": "point coté", + "type": "symbol", + "source": "plan_ign", + "source-layer": "oro_ponc", + "minzoom": 11, + "maxzoom": 16, + "filter": [ + "in", + "symbo", + "POINT_COTE", + "POINT_COTE_TOPO", + "POINT_COTE_RESEAU", + "POINT_RBF" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.1, + "text-field": "{texte}", + "text-size": 10, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.2, + 0.4 + ], + "text-padding": 2, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#505050" + } + }, + { + "id": "bati ponctuel : Hopital", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "Hopital", + "icon-size": 0.33 + }, + "filter": [ + "==", + "symbo", + "HOPITAL_PONC" + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel hydrographique", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 14, + "layout": { + "visibility": "visible", + "icon-image": "Pompage", + "icon-size": { + "stops": [ + [ + 13, + 0.2 + ], + [ + 17, + 0.6 + ] + ] + }, + "icon-allow-overlap": true + }, + "filter": [ + "in", + "symbo", + "CITERNE", + "LAVOIR", + "STATION_EPURATION", + "STATION_DE_POMPAGE", + "USINE_PRODUCTION_EAU", + "USINE_ELEVATRICE" + ], + "paint": { + "icon-color": "#1C62A6" + } + }, + { + "id": "bati ponctuel hydrographique - Puits-Abreuvoir", + "type": "circle", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "PUITS", + "ABREUVOIR" + ], + "paint": { + "circle-radius": { + "stops": [ + [ + 14, + 3 + ], + [ + 17, + 7 + ] + ] + }, + "circle-color": "#FFFFFF", + "circle-opacity": 1, + "circle-stroke-width": { + "stops": [ + [ + 14, + 2 + ], + [ + 17, + 5 + ] + ] + }, + "circle-stroke-color": "#1466B2" + } + }, + { + "id": "bati ponctuel hydrographique - Phare", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 13, + "layout": { + "visibility": "visible", + "icon-image": "Phare", + "icon-size": { + "stops": [ + [ + 13, + 0.7 + ], + [ + 17, + 1.3 + ] + ] + } + }, + "filter": [ + "==", + "symbo", + "PHARE" + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel hydrographique - Amer-Feu", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 13, + "layout": { + "visibility": "visible", + "icon-image": "Feu", + "icon-size": { + "stops": [ + [ + 13, + 0.7 + ], + [ + 17, + 1.3 + ] + ] + } + }, + "filter": [ + "in", + "symbo", + "AMER", + "FEU", + "FEU_PONC", + "TOURELLE_LUMINEUSE" + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel hydrographique - Balise", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 13, + "layout": { + "visibility": "visible", + "icon-image": "Balise", + "icon-size": { + "stops": [ + [ + 13, + 0.7 + ], + [ + 17, + 1.3 + ] + ] + } + }, + "filter": [ + "in", + "symbo", + "BALISE", + "TOURELLE" + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel hydrographique - Ecluse", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 12, + "maxzoom": 15, + "layout": { + "visibility": "visible", + "icon-image": "Ecluse", + "icon-size": 0.2 + }, + "filter": [ + "==", + "symbo", + "ECLUSE_PONC" + ], + "paint": { + "icon-color": "#1C62A6" + } + }, + { + "id": "bati ponctuel hydrographique - Barrage", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 12, + "maxzoom": 14, + "layout": { + "visibility": "visible", + "icon-image": "Barrage", + "icon-size": 0.25 + }, + "filter": [ + "==", + "symbo", + "BARRAGE_PONC" + ], + "paint": { + "icon-color": "#1C62A6" + } + }, + { + "id": "bati ponctuel hydrographique - Chateau d'eau", + "type": "circle", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "CHATEAU_EAU_PONC" + ], + "paint": { + "circle-radius": { + "stops": [ + [ + 14, + 3 + ], + [ + 17, + 8 + ] + ] + }, + "circle-color": "#1466B2" + } + }, + { + "id": "bati ponctuel hydrographique - Réservoir d'eau", + "type": "circle", + "source": "plan_ign", + "source-layer": "bati_ponc", + "maxzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "RESERVOIR_EAU_PONC" + ], + "paint": { + "circle-radius": { + "stops": [ + [ + 14, + 3 + ], + [ + 17, + 8 + ] + ] + }, + "circle-color": "#AAD5E9", + "circle-opacity": 1, + "circle-stroke-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 17, + 2.5 + ] + ] + }, + "circle-stroke-color": "#1466B2" + } + }, + { + "id": "bati ponctuel infrastructure - Constr spé", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "ConstrSpeciale", + "icon-size": { + "stops": [ + [ + 13, + 0.22 + ], + [ + 17, + 0.5 + ] + ] + } + }, + "filter": [ + "in", + "symbo", + "ANTENNE", + "TRANSFORMATEUR", + "CONSTR_INDIF_PONC", + "CHEMINEE", + "CHEVALEMENT", + "PUITS_GAZ", + "PUITS_PETROLE", + "PYLONE_METEO", + "TORCHERE", + "TOUR_GUET", + "TOUR_HERTZIENNE" + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel infrastructure - Silo", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "maxzoom": 15, + "layout": { + "visibility": "visible", + "icon-image": "Silo", + "icon-size": { + "stops": [ + [ + 13, + 0.22 + ], + [ + 17, + 0.5 + ] + ] + } + }, + "filter": [ + "==", + "symbo", + "SILO_PONC" + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel infrastructure - Eolienne", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "Eolienne", + "icon-size": { + "stops": [ + [ + 13, + 0.4 + ], + [ + 17, + 1 + ], + [ + 18, + 0.8 + ] + ] + } + }, + "filter": [ + "==", + "symbo", + "EOLIENNE" + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel infrastructure - Reservoir", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "maxzoom": 15, + "layout": { + "visibility": "visible", + "icon-image": "Reservoir", + "icon-size": { + "stops": [ + [ + 13, + 0.26 + ], + [ + 17, + 0.5 + ] + ] + } + }, + "filter": [ + "==", + "symbo", + "RESERVOIR_PONC" + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel infrastructure - pylone électrique", + "type": "circle", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "PYLONE_ELEC" + ], + "paint": { + "circle-radius": { + "stops": [ + [ + 13, + 1 + ], + [ + 17, + 2 + ] + ] + }, + "circle-color": "#000000" + } + }, + { + "id": "bati ponctuel montagne - Abri", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "Abri", + "icon-size": { + "stops": [ + [ + 13, + 0.4 + ], + [ + 15, + 0.6 + ], + [ + 17, + 0.9 + ] + ] + } + }, + "filter": [ + "==", + "symbo", + "ABRI" + ], + "paint": { + "icon-color": "#246138" + } + }, + { + "id": "bati ponctuel montagne - Refuge Garde", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "Refugegard", + "icon-size": { + "stops": [ + [ + 13, + 0.4 + ], + [ + 15, + 0.6 + ], + [ + 17, + 0.9 + ] + ] + } + }, + "filter": [ + "==", + "symbo", + "REFUGE_GARDE" + ], + "paint": { + "icon-color": "#246138" + } + }, + { + "id": "bati ponctuel montagne - Refuge Non Garde", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "Refugenongard", + "icon-size": { + "stops": [ + [ + 13, + 0.4 + ], + [ + 15, + 0.6 + ], + [ + 17, + 0.9 + ] + ] + } + }, + "filter": [ + "==", + "symbo", + "REFUGE" + ], + "paint": { + "icon-color": "#246138" + } + }, + { + "id": "bati ponctuel transport aerien - Aeroport FXX", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "Aeroport", + "icon-size": 0.5 + }, + "filter": [ + "all", + [ + "==", + "symbo", + "AEROPORT_PONC" + ], + [ + "==", + "territoire", + "FXX" + ] + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel transport aerien - Aerodrome FXX", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "Aerodrome", + "icon-size": 0.4 + }, + "filter": [ + "all", + [ + "in", + "symbo", + "AERODROME_PONC", + "AERODROME_IMPORT_PONC" + ], + [ + "==", + "territoire", + "FXX" + ] + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel transport aerien - Aeroport DOM", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 8, + "layout": { + "visibility": "visible", + "icon-image": "Aeroport", + "icon-size": 0.5 + }, + "filter": [ + "all", + [ + "==", + "symbo", + "AEROPORT_PONC" + ], + [ + "!=", + "territoire", + "FXX" + ] + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel transport aerien - Aerodrome DOM", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 8, + "layout": { + "visibility": "visible", + "icon-image": "Aerodrome", + "icon-size": 0.4 + }, + "filter": [ + "all", + [ + "==", + "symbo", + "AERODROME_PONC" + ], + [ + "!=", + "territoire", + "FXX" + ] + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel transport ferroviaire", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "Gare", + "icon-size": 0.33 + }, + "filter": [ + "==", + "symbo", + "GARE_VOYAGEURS" + ], + "paint": { + "icon-color": "#787878" + } + }, + { + "id": "toponyme - bornes postales haute - chemins", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "CHEMIN", + "CHEMIN_SOU", + "CHEMIN_SUP", + "PISTE_CYCLABLE", + "PISTE_CYCLABLE_SOU", + "PISTE_CYCLABLE_SUP", + "VOIE_VERTE", + "VOIE_VERTE_SOU", + "VOIE_VERTE_SUP", + "RUE_PIETONNE", + "RUE_PIETONNE_SOU", + "RUE_PIETONNE_SUP", + "SENTIER", + "SENTIER_SOU", + "SENTIER_SUP", + "ESCALIER", + "ESCALIER_SUP" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sur}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + -1 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales haute - non revetue, non classee", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "NON_CLASSEE", + "NON_CLASSEE_4", + "NON_CLASSEE_4_SUP", + "NON_CLASSEE_RESTREINT", + "NON_CLASSEE_RESTREINT_SUP", + "NON_CLASSEE_SOU", + "NON_CLASSEE_SUP", + "NON_REVETUE_CARRO", + "NON_REVETUE_CARRO_SUP" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sur}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + -1.3 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales haute - locales", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "LOCALE_1", + "LOCALE_1_SOU", + "LOCALE_1_SUP", + "LOCALE_2", + "LOCALE_2_SOU", + "LOCALE_2_SUP", + "LOCALE_3", + "LOCALE_3_SOU", + "LOCALE_3_SUP", + "LOCALE_4", + "LOCALE_4_SOU", + "LOCALE_4_SUP", + "LOCALE_CONSTR", + "LOCALE_CONSTR_SUP" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sur}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + -1.4 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales haute - regionales", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "REGIONALE_1", + "REGIONALE_1_SOU", + "REGIONALE_1_SUP", + "REGIONALE_2", + "REGIONALE_2_SOU", + "REGIONALE_2_SUP", + "REGIONALE_3", + "REGIONALE_3_SOU", + "REGIONALE_3_SUP", + "REGIONALE_4", + "REGIONALE_4_SUP", + "REGIONALE_CONSTR" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sur}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + -1.5 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales haute - principales", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "PRINCIPALE_1", + "PRINCIPALE_1_SOU", + "PRINCIPALE_1_SUP", + "PRINCIPALE_2", + "PRINCIPALE_2_SOU", + "PRINCIPALE_2_SUP", + "PRINCIPALE_3", + "PRINCIPALE_3_SOU", + "PRINCIPALE_3_SUP", + "PRINCIPALE_4", + "PRINCIPALE_4_SOU", + "PRINCIPALE_4_SUP", + "PRINCIPALE_CONSTR" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sur}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + -1.6 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales bas - chemins", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "CHEMIN", + "CHEMIN_SOU", + "CHEMIN_SUP", + "PISTE_CYCLABLE", + "PISTE_CYCLABLE_SOU", + "PISTE_CYCLABLE_SUP", + "VOIE_VERTE", + "VOIE_VERTE_SOU", + "VOIE_VERTE_SUP", + "RUE_PIETONNE", + "RUE_PIETONNE_SOU", + "RUE_PIETONNE_SUP", + "SENTIER", + "SENTIER_SOU", + "SENTIER_SUP", + "ESCALIER", + "ESCALIER_SUP" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sous}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + 1 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales bas - non revetue, non classee", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "NON_CLASSEE", + "NON_CLASSEE_4", + "NON_CLASSEE_4_SUP", + "NON_CLASSEE_RESTREINT", + "NON_CLASSEE_RESTREINT_SUP", + "NON_CLASSEE_SOU", + "NON_CLASSEE_SUP", + "NON_REVETUE_CARRO", + "NON_REVETUE_CARRO_SUP" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sous}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + 1.3 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales bas - locales", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "LOCALE_1", + "LOCALE_1_SOU", + "LOCALE_1_SUP", + "LOCALE_2", + "LOCALE_2_SOU", + "LOCALE_2_SUP", + "LOCALE_3", + "LOCALE_3_SOU", + "LOCALE_3_SUP", + "LOCALE_4", + "LOCALE_4_SOU", + "LOCALE_4_SUP", + "LOCALE_CONSTR", + "LOCALE_CONSTR_SUP" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sous}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + 1.4 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales bas - regionales", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "REGIONALE_1", + "REGIONALE_1_SOU", + "REGIONALE_1_SUP", + "REGIONALE_2", + "REGIONALE_2_SOU", + "REGIONALE_2_SUP", + "REGIONALE_3", + "REGIONALE_3_SOU", + "REGIONALE_3_SUP", + "REGIONALE_4", + "REGIONALE_4_SUP", + "REGIONALE_CONSTR" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sous}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + 1.5 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales bas - principales", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "PRINCIPALE_1", + "PRINCIPALE_1_SOU", + "PRINCIPALE_1_SUP", + "PRINCIPALE_2", + "PRINCIPALE_2_SOU", + "PRINCIPALE_2_SUP", + "PRINCIPALE_3", + "PRINCIPALE_3_SOU", + "PRINCIPALE_3_SUP", + "PRINCIPALE_4", + "PRINCIPALE_4_SOU", + "PRINCIPALE_4_SUP", + "PRINCIPALE_CONSTR" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sous}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + 1.6 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - courbe rocher maitresse", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "filter": [ + "==", + "txt_typo", + "ORO_COURBE_ROCHER" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 10, + "text-allow-overlap": false, + "text-padding": 30, + "text-rotate": { + "type": "identity", + "property": "rotation" + }, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#333333", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - courbe glacier maitresse", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "filter": [ + "==", + "txt_typo", + "ORO_COURBE_GLACIER" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 10, + "text-allow-overlap": false, + "text-padding": 30, + "text-rotate": { + "type": "identity", + "property": "rotation" + }, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#629FD9", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - courbe maitresse", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "filter": [ + "==", + "txt_typo", + "ORO_COURBE" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 10, + "text-allow-overlap": false, + "text-padding": 30, + "text-rotate": { + "type": "identity", + "property": "rotation" + }, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#604A2F", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - liaison maritime", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_liaison_lin", + "minzoom": 8, + "maxzoom": 18, + "filter": [ + "in", + "txt_typo", + "LIAISON_MARITIME", + "LIAISON_MAR" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 15, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#5792C2", + "text-halo-width": 5, + "text-halo-color": "#AAD5E9" + } + }, + { + "id": "toponyme bati station de métro + bati ponctuel metro", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + "txt_typo", + "TYPO_E_1" + ], + [ + "==", + "symbo", + "STATION_METRO" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-offset": [ + 0.30, + -0.25 + ], + "text-padding": 3, + "text-anchor": "bottom-left", + "text-font": [ + "Source Sans Pro" + ], + "icon-image": "Metro", + "icon-size": { + "stops": [ + [ + 15, + 0.33 + ], + [ + 17, + 0.6 + ] + ] + } + }, + "paint": { + "text-color": "#3C3C3C", + "icon-color": "#646464" + } + }, + { + "id": "toponyme ferre lineaire", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ferre_lin", + "minzoom": 12, + "filter": [ + "in", + "txt_typo", + "FER_NOM", + "FER_OUVRAGE" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 10, + "text-anchor": "center", + "text-offset": [ + 0, + -1 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-width": 1, + "text-halo-color": "rgba(255, 255, 255, 1)" + } + }, + { + "id": "toponyme religieux zoom 15 16", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "maxzoom": 16, + "filter": [ + "==", + "txt_typo", + "religieux" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme religieux zoom 17 à 19", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 16, + "filter": [ + "==", + "txt_typo", + "religieux" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme parc d'attractions zoom 14", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 13, + "maxzoom": 14, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "==", + "symbo", + "PARC_ATTRACTIONS" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme parc d'attractions zoom 15 à 19", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "==", + "symbo", + "PARC_ATTRACTIONS" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme bati divers zoom 15", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "maxzoom": 15, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "in", + "symbo", + "CENTRALE_ELECTRIQUE", + "HIPPODROME", + "STADE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme bati divers zoom 16 à 19", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "in", + "symbo", + "CENTRALE_ELECTRIQUE", + "HIPPODROME", + "STADE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme chateau zoom 16", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 15, + "maxzoom": 16, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "in", + "symbo", + "CHATEAU", + "CHATEAU_FORT" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme chateau zoom 17 à 19", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "in", + "symbo", + "CHATEAU", + "CHATEAU_FORT" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme station epuration, de pompage, usine de production eau", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "filter": [ + "==", + "txt_typo", + "station" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-anchor": "left", + "text-offset": [ + 0.8, + 0 + ], + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#447FB3" + } + }, + { + "id": "toponyme bati ponc gare", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 15, + "filter": [ + "==", + "txt_typo", + "gore" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme bati ponc barrage", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 12, + "filter": [ + "==", + "txt_typo", + "BARRAGE_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "left", + "text-offset": [ + 0.8, + 0 + ], + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#447FB3" + } + }, + { + "id": "toponyme bati ponc phare - niveau 13", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "maxzoom": 13, + "filter": [ + "==", + "txt_typo", + "PHARE" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "right", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#532A2A" + } + }, + { + "id": "toponyme bati ponc phare - niveau 14à19", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "symbo", + "PHARE" + ], + [ + "in", + "txt_typo", + "TYPO_C_6", + "TYPO_C_7", + "TYPO_C_8", + "TYPO_E_GE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "right", + "text-size": { + "stops": [ + [ + 13, + 12 + ], + [ + 18, + 18 + ] + ] + }, + "text-allow-overlap": false, + "text-offset": [ + -2.00, + 0 + ], + "text-padding": 3, + "text-anchor": "right", + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#532A2A" + } + }, + { + "id": "toponyme bati ponc autre", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 12, + "filter": [ + "in", + "txt_typo", + "BAT_ACTIVITE", + "BAT_FORTIF", + "BAT_VILLAGE_DETRUIT" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "center", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#532A2A" + } + }, + { + "id": "toponyme bati ponc aerogare", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "maxzoom": 17, + "filter": [ + "all", + [ + "==", + "txt_typo", + "TYPO_E_GE" + ], + [ + "==", + "symbo", + "AEROGARE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 9 + ], + [ + 16, + 11 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme bati ponc aeroport 12", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 11, + "maxzoom": 12, + "filter": [ + "==", + "txt_typo", + "AEROPORT_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "bottom", + "text-offset": [ + 0, + -1.3 + ], + "text-size": 10.5, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc aeroport 13", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 12, + "maxzoom": 13, + "filter": [ + "==", + "txt_typo", + "AEROPORT_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "bottom", + "text-offset": [ + 0, + -2 + ], + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc aeroport", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 13, + "maxzoom": 17, + "filter": [ + "all", + [ + "==", + "txt_typo", + "TYPO_A_5" + ], + [ + "==", + "symbo", + "AEROPORT" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 11 + ], + [ + 16, + 13 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc aerodrome 12", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 11, + "maxzoom": 12, + "filter": [ + "==", + "txt_typo", + "AERODROME_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "bottom", + "text-offset": [ + 0, + -1.3 + ], + "text-size": 9.5, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc aerodrome 13", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 12, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "AERODROME_PONC", + "AERODROME_IMPORT_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "bottom", + "text-offset": [ + 0, + -2 + ], + "text-size": 10, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc aerodrome", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 13, + "maxzoom": 17, + "filter": [ + "all", + [ + "==", + "txt_typo", + "TYPO_A_7" + ], + [ + "==", + "symbo", + "AERODROME" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 10 + ], + [ + 16, + 12 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - hydro ponc 5", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "filter": [ + "in", + "txt_typo", + "TYPO_D_9", + "TYPO_D_10", + "TYPO_E_1_cyan" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 11 + ], + [ + 17, + 14 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 5, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-color": "#FFFFFF", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - hydro ponc glacier", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "filter": [ + "==", + "txt_typo", + "ORO_GLACIER_2" + ], + "layout": { + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 14, + "text-anchor": "center", + "text-allow-overlap": true, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - limite militaire ponc 3 et 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_limite_ponc", + "filter": [ + "in", + "txt_typo", + "LIM_MILI_3", + "LIM_MILI_4" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 12, + "text-allow-overlap": false, + "text-padding": 2, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0D2000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - limite parc ponc 3 et 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_limite_ponc", + "filter": [ + "in", + "txt_typo", + "LIM_PARC_3", + "LIM_PARC_4", + "RESERVE_NATURELLE_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 13, + "text-allow-overlap": false, + "text-padding": 2, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme numéro de route - départementale", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_numero_lin", + "minzoom": 11, + "maxzoom": 16, + "filter": [ + "==", + "txt_typo", + "Départementale" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 10.5, + "text-allow-overlap": false, + "text-padding": 2, + "text-anchor": "center", + "text-font": [ + "Source Sans Pro Semibold" + ], + "text-rotation-alignment": "viewport" + }, + "paint": { + "text-color": "#4D4D4D", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme numéro de route - nationale", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_numero_lin", + "minzoom": 7, + "maxzoom": 16, + "filter": [ + "==", + "txt_typo", + "Nationale" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 12, + "text-allow-overlap": false, + "text-padding": 0, + "text-anchor": "center", + "text-font": [ + "Source Sans Pro Regular" + ], + "icon-image": "Ecluse", + "icon-rotation-alignment": "viewport", + "text-rotation-alignment": "viewport", + "icon-text-fit": "both", + "icon-size": 0 + }, + "paint": { + "text-color": "#F0F0F0", + "icon-color": "#646464", + "text-halo-color": "rgba(80, 80, 80, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme numéro de route - autoroute", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_numero_lin", + "minzoom": 7, + "maxzoom": 16, + "filter": [ + "==", + "txt_typo", + "Autoroute" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": false, + "text-padding": 0, + "text-anchor": "center", + "text-font": [ + "Source Sans Pro Regular" + ], + "icon-image": "Ecluse", + "icon-rotation-alignment": "viewport", + "text-rotation-alignment": "viewport", + "icon-text-fit": "both", + "icon-size": 0 + }, + "paint": { + "text-color": "#F0F0F0", + "icon-color": "#646464", + "text-halo-color": "rgba(80, 80, 80, 0.5)", + "text-halo-width": 5 + } + }, + { + "id": "toponyme - odonyme abrégé", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_odonyme_lin", + "minzoom": 15, + "maxzoom": 17, + "layout": { + "symbol-placement": "line", + "text-field": "{nom_gauche}", + "text-size": 10, + "text-anchor": "center", + "text-max-angle": 30, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 1)" + } + }, + { + "id": "toponyme - odonyme desabrégé", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_odonyme_lin", + "minzoom": 17, + "layout": { + "symbol-placement": "line", + "text-field": "{nom_desabrege}", + "text-size": 11, + "text-anchor": "center", + "text-max-angle": 30, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 1)" + } + }, + { + "id": "toponyme - lieu dit non habité 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "LIEU-DIT_NON_HABITE" + ], + [ + "in", + "txt_typo", + "TYPO_B_10", + "TYPO_B_11" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - bois", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "BOIS" + ], + [ + "in", + "txt_typo", + "TYPO_F_9", + "TYPO_F_10" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 13, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - oro lineaire 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_lin", + "filter": [ + "in", + "txt_typo", + "ORO_SOMMET_3", + "ORO_GORGE_2" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 11, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-width": 1.5, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - oro ponc 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "filter": [ + "in", + "txt_typo", + "ORO_SOMMET_3", + "ORO_GORGE_2", + "GROTTE", + "GORGE", + "TYPO_G_8", + "TYPO_G_9" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 13, + 11 + ], + [ + 16, + 16 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1.5 + } + }, + { + "id": "toponyme - hydro ponc 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "filter": [ + "in", + "txt_typo", + "HYD_SURF_4", + "HYD_SURF_4_T", + "HYD_SURF_5", + "HYD_SURF_5_T", + "TYPO_D_8", + "SOURCE" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 14, + 13 + ], + [ + 17, + 16 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 5, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-color": "#FFFFFF", + "text-halo-width": 1 + } + }, + { + "id": "toponyme quartier ", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "filter": [ + "in", + "txt_typo", + "BAT_QUARTIER", + "BAT_QUARTIER_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typo_E_GE Quartier", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "all", + [ + "==", + "symbo", + "QUARTIER" + ], + [ + "==", + "txt_typo", + "TYPO_E_GE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 11 + ], + [ + 17, + 13.5 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typo_E_GE Lieu-dit", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 16, + "maxzoom": 18, + "filter": [ + "all", + [ + "==", + "symbo", + "LIEU-DIT-HABITE" + ], + [ + "==", + "txt_typo", + "TYPO_E_GE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 11 + ], + [ + 17, + 13.5 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA10", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "maxzoom": 18, + "filter": [ + "==", + "txt_typo", + "TYPO_A_10" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 11 + ], + [ + 17, + 13.5 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - lieu dit non habité", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "LIEU-DIT_NON_HABITE" + ], + [ + "in", + "txt_typo", + "TYPO_B_7", + "TYPO_B_8", + "TYPO_B_9" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 12, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - bois 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "BOIS" + ], + [ + "in", + "txt_typo", + "TYPO_F_6", + "TYPO_F_7", + "TYPO_F_8" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 16, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite hameau ", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 11, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "BAT_HAMEAU", + "BAT_HAMEAU_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.17, + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.10 + ], + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite importance 6et7 - Special DOM", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 7, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "TYPO_A_6", + "TYPO_A_7" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.21, + "text-field": "{texte}", + "text-size": 12.5, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.10 + ], + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite importance 5", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 9, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "TYPO_A_5", + "BAT_COMMUNE_5", + "BAT_COMMUNE_5_T", + "BAT_CHEF_LIEU_COM", + "BAT_CHEF_LIEU_COM_T", + "BAT_CHEF_LIEU_COM-T", + "BAT_ANCIENNE_COM", + "BAT_ANCIENNE_COM_T", + "BAT_COMMUNE_ASSOCIEE", + "BAT_COMMUNE_ASSOCIEE_T", + "Commune très petite" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.21, + "text-field": "{texte}", + "text-size": 11.5, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.10 + ], + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - ocs lineaire 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_lin", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_3" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 12 + ], + [ + 12, + 15 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-width": 1, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - lieu dit non habité 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "LIEU-DIT_NON_HABITE" + ], + [ + "in", + "txt_typo", + "TYPO_B_5", + "TYPO_B_4" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - bois 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "BOIS" + ], + [ + "in", + "txt_typo", + "TYPO_F_5", + "TYPO_F_4" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 19, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - bois 0", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "BOIS" + ], + [ + "in", + "txt_typo", + "TYPO_F_3", + "TYPO_F_2" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 22, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - ocs ponc 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_3" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 12 + ], + [ + 12, + 15 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-anchor": "center", + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - oro lineaire 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_lin", + "filter": [ + "in", + "txt_typo", + "ORO_ILE_3", + "ORO_RELIEF_3", + "ORO_RELIEF_3_T", + "ORO_RELIEF_4", + "ORO_RELIEF_4_T", + "ORO_CAP_2", + "ORO_CAP_3", + "ORO_SOMMET_2", + "ORO_COL_2", + "ORO_GORGE_1", + "ORO_GORGE-1" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 12, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-width": 1.5, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - oro ponc 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "filter": [ + "in", + "txt_typo", + "ORO_ILE_3", + "ORO_RELIEF_3", + "ORO_RELIEF_3_T", + "ORO_RELIEF_4", + "ORO_RELIEF_4_T", + "ORO_CAP_2", + "ORO_CAP_3", + "ORO_SOMMET_2", + "ORO_COL_2", + "ORO_GORGE_1", + "ORO_GORGE-1", + "TYPO_G_6", + "TYPO_G_7" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 13, + 12 + ], + [ + 16, + 17 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "#FFFFFF", + "text-halo-width": 1.5 + } + }, + { + "id": "toponyme - hydro lineaire 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "filter": [ + "in", + "txt_typo", + "HYD_LIN_3", + "HYD_LIN_4", + "HYD_LIN_5", + "TYPO_D_LIN_3", + "TYPO_D_LIN_4", + "HYD_SURF_3", + "HYD_SURF_3_T", + "HYD_SURF_4", + "HYD_SURF_4_T", + "HYD_SURF_5", + "HYD_SURF_5_T", + "TYPO_D_5", + "TYPO_D_7" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 14, + 12 + ], + [ + 18, + 19 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-width": 1.5, + "text-halo-color": "rgba(255, 255, 255, 0.7)" + } + }, + { + "id": "toponyme - hydro lineaire 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "minzoom": 14, + "filter": [ + "in", + "txt_typo", + "TYPO_D_6", + "TYPO_D_8", + "TYPO_D_9", + "TYPO_D_10" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 14, + 10 + ], + [ + 18, + 16 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-width": 1.5, + "text-halo-color": "rgba(255, 255, 255, 0.7)" + } + }, + { + "id": "toponyme - hydro ponc 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "filter": [ + "in", + "txt_typo", + "HYD_SURF_3", + "TYPO_D_5", + "TYPO_D_6", + "TYPO_D_7" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 9, + 13 + ], + [ + 10, + 15 + ], + [ + 15, + 15 + ], + [ + 17, + 18 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-color": "#FFFFFF", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc zai zoom 16", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 15, + "maxzoom": 16, + "filter": [ + "==", + "txt_typo", + "zai" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme bati ponc zai zoom 17 et 18", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 16, + "filter": [ + "==", + "txt_typo", + "zai" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme localite importance 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 7, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "TYPO_A_4", + "BAT_COMMUNE_4", + "BAT_COMMUNE_4_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.21, + "text-field": "{texte}", + "text-size": 13, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.10 + ], + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA9", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "maxzoom": 18, + "filter": [ + "==", + "txt_typo", + "TYPO_A_9" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 11.5 + ], + [ + 17, + 14 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA8 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_8" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 12 + ], + [ + 17, + 15 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - limite militaire ponc 1 et 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_limite_ponc", + "filter": [ + "in", + "txt_typo", + "LIM_MILI_1", + "LIM_MILI_2" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": false, + "text-padding": 5, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0D2000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - limite parc marin", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_limite_ponc", + "minzoom": 8, + "filter": [ + "in", + "txt_typo", + "PARC_MARIN_1", + "PARC_MARIN_2" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": false, + "text-padding": 10, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#2A81A2", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - limite parc ponc 1 et 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_limite_ponc", + "minzoom": 8, + "filter": [ + "in", + "txt_typo", + "LIM_PARC_1", + "LIM_PARC_2", + "PARC_1", + "PARC_2" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": false, + "text-padding": 10, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - ocs lineaire 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_lin", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_2" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 15 + ], + [ + 12, + 18 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - ocs ponc 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_2" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 15 + ], + [ + 12, + 18 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-anchor": "center", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - oro lineaire 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_lin", + "filter": [ + "in", + "txt_typo", + "ORO_ILE_2", + "ORO_RELIEF_2", + "ORO_RELIEF_2_T", + "ORO_CAP_1", + "ORO_SOMMET_1" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 15, + "text-anchor": "center", + "text-keep-upright": true, + "text-padding": 10, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - oro ponc 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "minzoom": 9, + "filter": [ + "in", + "txt_typo", + "ORO_ILE_2", + "ORO_RELIEF_2", + "ORO_RELIEF_2_T", + "ORO_CAP_1", + "ORO_COL_1", + "TYPO_G_5", + "ORO_SOMMET_1" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 9, + 13 + ], + [ + 10, + 15 + ], + [ + 13, + 15 + ], + [ + 16, + 19 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - oro ponc 2B", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "minzoom": 8, + "filter": [ + "==", + "txt_typo", + "TYPO_G_4" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 13, + 15 + ], + [ + 16, + 19 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - hydro lineaire 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "filter": [ + "in", + "txt_typo", + "HYD_LIN_2", + "TYPO_D_LIN_2", + "HYD_SURF_2", + "HYD_SURF_2_T", + "TYPO_D_4" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 14, + 15 + ], + [ + 18, + 21 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - hydro ponc 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "minzoom": 5, + "filter": [ + "in", + "txt_typo", + "moyen", + "HYD_SURF_2", + "TYPO_D_2" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 5, + 12 + ], + [ + 6, + 18 + ], + [ + 10, + 17 + ], + [ + 18, + 21 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-color": "#FFFFFF", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - hydro ponc 2B", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "filter": [ + "in", + "txt_typo", + "TYPO_D_3", + "TYPO_D_4" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 9, + 15 + ], + [ + 10, + 17 + ], + [ + 18, + 21 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-color": "#FFFFFF", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite importance 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 5, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "commune 3", + "TYPO_A_3", + "BAT_COMMUNE_3", + "BAT_COMMUNE_3_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.21, + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 5, + 10 + ], + [ + 6, + 15 + ] + ] + }, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.10 + ], + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA7 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_7" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 13 + ], + [ + 17, + 16 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA5etA6 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "in", + "txt_typo", + "TYPO_A_5", + "TYPO_A_6" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 15 + ], + [ + 17, + 18 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - oro lineaire 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_lin", + "filter": [ + "in", + "txt_typo", + "ORO_ILE_1", + "ORO_RELIEF_1", + "ORO_RELIEF_1_T" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 20, + "text-anchor": "center", + "text-keep-upright": true, + "text-padding": 5, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - oro ponc monde", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "minzoom": 5, + "filter": [ + "in", + "txt_typo", + "Basin", + "Depression", + "Desert", + "Geoarea", + "Gorge", + "Isthmus", + "Lake", + "Lowland", + "Pen/cape", + "Plain", + "Plateau", + "Range/mtn", + "Tundra", + "Valley", + "Island", + "Island group" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA4 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_4" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 17, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 3 + } + }, + { + "id": "toponyme - ocs lineaire 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_lin", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_1" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 18 + ], + [ + 12, + 22 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-padding": 1, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - ocs ponc 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_1" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 18 + ], + [ + 12, + 22 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - oro ponc 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "minzoom": 8, + "filter": [ + "in", + "txt_typo", + "ORO_ILE_1", + "ORO_RELIEF_1", + "ORO_RELIEF_1_T", + "TYPO_G_1" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 21, + "text-allow-overlap": true, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - oro ponc 1B", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "minzoom": 8, + "filter": [ + "in", + "txt_typo", + "TYPO_G_2", + "TYPO_G_3" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 12, + 15 + ], + [ + 13, + 21 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - hydro lineaire glacier", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "filter": [ + "in", + "txt_typo", + "ORO_GLACIER_1", + "ORO_GLACIER_2" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 15, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - hydro lineaire 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "filter": [ + "in", + "txt_typo", + "HYD_LIN_1", + "HYD-LIN-1", + "TYPO_D_LIN_1", + "HYD_SURF_1", + "HYD_SURF_1_T", + "TYPO_D_1", + "TYPO_D_2", + "TYPO_D_3_T", + "TYPO_D_4_T" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 18, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - hydro lineaire ocean", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "filter": [ + "==", + "txt_typo", + "OCEAN_MER" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 30, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-width": 4, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - hydro ponc 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "minzoom": 4, + "filter": [ + "in", + "txt_typo", + "mer", + "grand", + "HYD_SURF_1", + "TYPO_D_1" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 4, + 16 + ], + [ + 6, + 30 + ], + [ + 10, + 25 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme localite importance 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 4, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "commune 2", + "TYPO_A_2", + "BAT_COMMUNE_2", + "BAT_COMMUNE-2", + "BAT_COMMUNE_2_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.25, + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 4, + 10 + ], + [ + 6, + 17 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.2 + ], + "text-padding": 1, + "text-transform": "uppercase", + "text-font": { + "stops": [ + [ + 1, + [ + "Source Sans Pro Regular" + ] + ], + [ + 7, + [ + "Source Sans Pro Bold" + ] + ], + [ + 10, + [ + "Source Sans Pro Regular" + ] + ] + ] + } + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 3 + } + }, + { + "id": "toponyme localite n0 typoA3 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_3" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 19, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 3 + } + }, + { + "id": "toponyme localite n0 typoA2 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_2" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 21, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme localite n0 typoA8 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_8" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 12 + ], + [ + 17, + 15 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA7 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_7" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 13 + ], + [ + 17, + 16 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA5etA6 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "in", + "txt_typo", + "TYPO_A_5", + "TYPO_A_6" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 15 + ], + [ + 17, + 18 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA1 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_1" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 23, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme localite n0 typoA4 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_4" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 17, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 3 + } + }, + { + "id": "toponyme localite n0 typoA3 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_3" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 19, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 3 + } + }, + { + "id": "toponyme localite n0 typoA2 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_2" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 21, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme localite importance 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 3, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "commune 1", + "TYPO_A_1", + "BAT_COMMUNE_1", + "BAT_COMMUNE_1_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.3, + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 3, + 10 + ], + [ + 6, + 20 + ] + ] + }, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.25, + -0.10 + ], + "text-padding": 1, + "text-transform": "uppercase", + "text-font": { + "stops": [ + [ + 1, + [ + "Source Sans Pro Regular" + ] + ], + [ + 7, + [ + "Source Sans Pro Bold" + ] + ], + [ + 10, + [ + "Source Sans Pro Regular" + ] + ] + ] + } + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme localite n0 typoA1 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_1" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 23, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme - hydro ponc ocean", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "minzoom": 1, + "filter": [ + "==", + "txt_typo", + "ocean" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 1, + 16 + ], + [ + 6, + 30 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme pays 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 4, + "maxzoom": 5, + "filter": [ + "==", + "txt_typo", + "pays 3" + ], + "layout": { + "visibility": "visible", + "text-field": "{texte}", + "text-size": 9, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#787878", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme pays 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 2, + "maxzoom": 5, + "filter": [ + "==", + "txt_typo", + "pays 2" + ], + "layout": { + "visibility": "visible", + "text-field": "{texte}", + "text-size": 13, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 2, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#787878", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme pays 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 2, + "maxzoom": 5, + "filter": [ + "==", + "txt_typo", + "pays 1" + ], + "layout": { + "visibility": "visible", + "text-field": "{texte}", + "text-size": 13, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 2, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#787878", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme continent", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "maxzoom": 3, + "filter": [ + "==", + "txt_typo", + "continent" + ], + "layout": { + "visibility": "visible", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#787878", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + } + ] +} \ No newline at end of file diff --git a/website/src/lib/assets/custom/ign-fr-satellite.json b/website/src/lib/assets/custom/ign-fr-satellite.json new file mode 100755 index 0000000..7ecb053 --- /dev/null +++ b/website/src/lib/assets/custom/ign-fr-satellite.json @@ -0,0 +1,10837 @@ +{ + "_info": "This style is an adaptation of the official IGN 'toponymes' style (https://data.geopf.fr/annexes/ressources/vectorTiles/styles/PLAN.IGN/toponymes.json) below which satellite imagery is added.", + "version": 8, + "name": "PLAN IGN", + "glyphs": "https://data.geopf.fr/annexes/ressources/vectorTiles/fonts/{fontstack}/{range}.pbf", + "sprite": "https://data.geopf.fr/annexes/ressources/vectorTiles/styles/PLAN.IGN/sprite/PlanIgn", + "sources": { + "plan_ign": { + "type": "vector", + "tiles": [ + "https://data.geopf.fr/tms/1.0.0/PLAN.IGN/{z}/{x}/{y}.pbf" + ] + }, + "satellite": { + "type": "raster", + "tiles": [ + "https://data.geopf.fr/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&STYLE=normal&TILEMATRIXSET=PM&FORMAT=image/jpeg&LAYER=ORTHOIMAGERY.ORTHOPHOTOS&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}" + ], + "tileSize": 256, + "maxzoom": 19 + } + }, + "transition": { + "duration": 300, + "delay": 0 + }, + "layers": [ + { + "id": "satellite", + "type": "raster", + "source": "satellite" + }, + { + "id": "Chemin souterrain - piste cyclable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "PISTE_CYCLABLE_SOU", + "VOIE_VERTE_SOU" + ], + "paint": { + "line-color": "#AB81CC", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.1 + ], + [ + 15, + 1.7 + ], + [ + 16, + 2 + ], + [ + 17, + 3.5 + ] + ] + }, + "line-dasharray": [ + 6, + 2 + ] + } + }, + { + "id": "Chemin souterrain - filet exterieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER_SOU" + ], + "paint": { + "line-color": "#B3989A", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.75 + ], + [ + 15, + 3 + ], + [ + 16, + 4.2 + ], + [ + 17, + 9.5 + ] + ] + } + } + }, + { + "id": "Chemin souterrain - filet interieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER_SOU" + ], + "paint": { + "line-color": "#FFFFFF", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.9 + ], + [ + 16, + 2.7 + ], + [ + 17, + 5.8 + ] + ] + }, + "line-dasharray": [ + 1, + 0.2 + ] + } + }, + { + "id": "Chemin souterrain - Rue pietonne", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "RUE_PIETONNE_SOU" + ], + "paint": { + "line-color": "#B3989A", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ] + ] + }, + "line-dasharray": [ + 1, + 3 + ] + } + }, + { + "id": "Chemin souterrain - sentier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "SENTIER_SOU" + ], + "paint": { + "line-color": "#B3989A", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ] + ] + }, + "line-dasharray": [ + 4, + 3 + ] + } + }, + { + "id": "Chemin souterrain - chemin", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CHEMIN_SOU" + ], + "paint": { + "line-color": "#B3989A", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO_SOU" + ], + "paint": { + "line-color": "#AFAFAF", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier souterrain - filet extérieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3_SOU", + "BRET_AUTO_PEAGE_2_SOU", + "BRET_AUTO_PEAGE_1_SOU", + "BRET_AUTO_LIBRE_3_SOU", + "BRET_AUTO_LIBRE_2_SOU", + "BRET_AUTO_LIBRE_1_SOU" + ], + "paint": { + "line-color": "rgba(222, 70, 14, 0.5)", + "line-width": { + "stops": [ + [ + 12, + 2.5 + ], + [ + 14, + 3.7 + ], + [ + 15, + 6.8 + ], + [ + 16, + 8.4 + ], + [ + 17, + 14 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT_SOU" + ], + "paint": { + "line-color": "#AFAFAF", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4_SOU", + "NON_CLASSEE_SOU" + ], + "paint": { + "line-color": "#AFAFAF", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE_SOU", + "LOCALE_4_SOU", + "LOCALE_3_SOU", + "LOCALE_2_SOU", + "LOCALE_1_SOU" + ], + "paint": { + "line-color": "rgba(130, 130, 130, 0.5)", + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 11, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR_SOU" + ], + "paint": { + "line-color": "#C8C8C8", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE_SOU", + "REGIONALE_4_SOU", + "REGIONALE_3_SOU", + "REGIONALE_2_SOU", + "REGIONALE_1_SOU" + ], + "paint": { + "line-color": "rgba(130, 130, 130, 0.5)", + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR_SOU" + ], + "paint": { + "line-color": "#C8C8C8", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 7, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE_SOU", + "PRINCIPALE_4_SOU", + "PRINCIPALE_3_SOU", + "PRINCIPALE_2_SOU", + "PRINCIPALE_1_SOU" + ], + "paint": { + "line-color": "rgba(222, 70, 14, 0.5)", + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR_SOU" + ], + "paint": { + "line-color": "#C8C8C8", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 7, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SOU", + "AUTOROU_LIBRE_SOU" + ], + "paint": { + "line-color": "rgba(222, 70, 14, 0.5)", + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SOU" + ], + "paint": { + "line-color": "#C8C8C8", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO_SOU" + ], + "paint": { + "line-color": "#DCDCDC", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3_SOU", + "BRET_AUTO_PEAGE_2_SOU", + "BRET_AUTO_PEAGE_1_SOU", + "BRET_AUTO_LIBRE_3_SOU", + "BRET_AUTO_LIBRE_2_SOU", + "BRET_AUTO_LIBRE_1_SOU" + ], + "paint": { + "line-color": "rgba(255, 255, 255, 0.5)", + "line-width": { + "stops": [ + [ + 12, + 1.5 + ], + [ + 14, + 2.6 + ], + [ + 15, + 5.2 + ], + [ + 16, + 6.7 + ], + [ + 17, + 10.8 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT_SOU" + ], + "paint": { + "line-color": "#F2F5FF", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4_SOU", + "NON_CLASSEE_SOU" + ], + "paint": { + "line-color": "#DCDCDC", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE_SOU", + "LOCALE_4_SOU", + "LOCALE_3_SOU", + "LOCALE_2_SOU", + "LOCALE_1_SOU" + ], + "paint": { + "line-color": "rgba(255, 255, 255, 0.5)", + "line-width": { + "stops": [ + [ + 9, + 1.3 + ], + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.1 + ], + [ + 17, + 13.1 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 11, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR_SOU" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#FFFFFF" + ], + [ + 13, + "#FCF4A8" + ], + [ + 17, + "#FCF7C1" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier souterrain - filet interieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE_SOU", + "REGIONALE_4_SOU", + "REGIONALE_3_SOU", + "REGIONALE_2_SOU", + "REGIONALE_1_SOU" + ], + "paint": { + "line-color": "rgba(255, 255, 255, 0.5)", + "line-width": { + "stops": [ + [ + 6, + 1.4 + ], + [ + 9, + 1.5 + ], + [ + 14, + 3.2 + ], + [ + 15, + 5.8 + ], + [ + 16, + 8.3 + ], + [ + 17, + 16.2 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR_SOU" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FFFFFF" + ], + [ + 10, + "#FDF28B" + ], + [ + 17, + "#FCF6BD" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.4 + ], + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier souterrain - filet interieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE_SOU", + "PRINCIPALE_4_SOU", + "PRINCIPALE_3_SOU", + "PRINCIPALE_2_SOU", + "PRINCIPALE_1_SOU" + ], + "paint": { + "line-color": "rgba(255, 255, 255, 0.5)", + "line-width": { + "stops": [ + [ + 4, + 0.5 + ], + [ + 6, + 1.8 + ], + [ + 9, + 2.1 + ], + [ + 14, + 4.4 + ], + [ + 15, + 7.3 + ], + [ + 16, + 10 + ], + [ + 17, + 18.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR_SOU" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F3C66D" + ], + [ + 17, + "#F2DDB3" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.5 + ], + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier souterrain - filet interieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SOU", + "AUTOROU_LIBRE_SOU" + ], + "paint": { + "line-color": "rgba(255, 255, 255, 0.5)", + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.8 + ], + [ + 15, + 9 + ], + [ + 16, + 12 + ], + [ + 17, + 20.8 + ] + ] + } + } + }, + { + "id": "Routier souterrain - axe central - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SOU", + "AUTOROU_LIBRE_SOU" + ], + "paint": { + "line-color": "#FFFFFF", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SOU" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F2BA59" + ], + [ + 17, + "#F2C261" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier souterrain - axe central - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SOU" + ], + "paint": { + "line-color": "#808080", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "bati ZAI - Autres", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_zai", + "minzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "nature", + "Lycée", + "Université", + "Capitainerie", + "Gendarmerie", + "Siège d'EPCI", + "Musée", + "Collège", + "Maison de retraite", + "Etablissement thermal", + "Autre service déconcentré de l'Etat", + "Etablissement pénitentiaire", + "Divers public ou administratif", + "Autre établissement d'enseignement", + "Maison du parc", + "Palais de justice", + "Enseignement primaire", + "Office de tourisme", + "Hôpital", + "Police", + "Piscine", + "Enseignement supérieur", + "Poste", + "Caserne", + "Etablissement hospitalier", + "Etablissement extraterritorial", + "Science", + "Structure d'accueil pour personnes handicapées", + "Administration centrale de l'Etat", + "Caserne de pompiers" + ], + "paint": { + "fill-color": "#E3BFE2", + "fill-opacity": 0.4, + "fill-outline-color": "#E39FE1" + } + }, + { + "id": "bati ZAI - Commandement", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_zai", + "minzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "nature", + "Hôtel de département", + "Hôtel de région", + "Hôtel de collectivité", + "Préfecture de région", + "Préfecture", + "Sous-préfecture" + ], + "paint": { + "fill-color": "#FF0000", + "fill-opacity": 0.2, + "fill-outline-color": "#B40000" + } + }, + { + "id": "Chemin a niveau - piste cyclable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "PISTE_CYCLABLE", + "VOIE_VERTE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#9B5CCC" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.1 + ], + [ + 15, + 1.7 + ], + [ + 16, + 2 + ], + [ + 17, + 3.5 + ], + [ + 18, + 6 + ] + ] + }, + "line-dasharray": [ + 6, + 2 + ] + } + }, + { + "id": "Chemin a niveau - filet exterieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#8C7274" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.75 + ], + [ + 15, + 3 + ], + [ + 16, + 4.2 + ], + [ + 17, + 9.5 + ] + ] + } + } + }, + { + "id": "Chemin a niveau - filet interieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER" + ], + "paint": { + "line-color": "#FFFFFF", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.9 + ], + [ + 16, + 2.7 + ], + [ + 17, + 5.8 + ] + ] + }, + "line-dasharray": [ + 1, + 0.2 + ] + } + }, + { + "id": "Chemin a niveau - Rue pietonne", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "RUE_PIETONNE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#8C7274" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 5 + ] + ] + }, + "line-dasharray": [ + 1, + 3 + ] + } + }, + { + "id": "Chemin a niveau - sentier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "SENTIER" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#8C7274" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 6 + ] + ] + }, + "line-dasharray": [ + 4, + 3 + ] + } + }, + { + "id": "Chemin a niveau - chemin", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CHEMIN" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#8C7274" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 7 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#646464" + ], + [ + 17, + "#8C8C8C" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier a niveau - filet interieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO" + ], + "paint": { + "line-color": "#FFFFFF", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3", + "BRET_AUTO_PEAGE_2", + "BRET_AUTO_PEAGE_1", + "BRET_AUTO_LIBRE_3", + "BRET_AUTO_LIBRE_2", + "BRET_AUTO_LIBRE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#DE460E" + ], + [ + 17, + "#F18800" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 2.5 + ], + [ + 14, + 3.7 + ], + [ + 15, + 6.8 + ], + [ + 16, + 8.4 + ], + [ + 17, + 14 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#969696" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4", + "NON_CLASSEE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#969696" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 7, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE", + "LOCALE_4", + "LOCALE_3", + "LOCALE_2", + "LOCALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#8C8C8C" + ], + [ + 13, + "#B4B4B4" + ], + [ + 17, + "#B4B4B4" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 11, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR" + ], + "paint": { + "line-color": "#C8C8C8", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE", + "REGIONALE_4", + "REGIONALE_3", + "REGIONALE_2", + "REGIONALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#828282" + ], + [ + 10, + "#B4B4B4" + ], + [ + 17, + "#B4B4B4" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR" + ], + "paint": { + "line-color": "#C8C8C8", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE", + "PRINCIPALE_4", + "PRINCIPALE_3", + "PRINCIPALE_2", + "PRINCIPALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#E2A52A" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR" + ], + "paint": { + "line-color": "#C8C8C8", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE", + "AUTOROU_LIBRE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#DE460E" + ], + [ + 17, + "#F18800" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR" + ], + "paint": { + "line-color": "#C8C8C8", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3", + "BRET_AUTO_PEAGE_2", + "BRET_AUTO_PEAGE_1", + "BRET_AUTO_LIBRE_3", + "BRET_AUTO_LIBRE_2", + "BRET_AUTO_LIBRE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F18800" + ], + [ + 17, + "#F2B230" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 1.5 + ], + [ + 14, + 2.6 + ], + [ + 15, + 5.2 + ], + [ + 16, + 6.7 + ], + [ + 17, + 10.8 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT" + ], + "paint": { + "line-color": "#EDF1FF", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4", + "NON_CLASSEE" + ], + "paint": { + "line-color": "#FFFFFF", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE", + "LOCALE_4", + "LOCALE_3", + "LOCALE_2", + "LOCALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#F2B361" + ], + [ + 7, + "#FFFFFF" + ], + [ + 12, + "#FFFFFF" + ], + [ + 13, + "#FCF4A8" + ], + [ + 17, + "#FCF7C1" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 1.3 + ], + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.1 + ], + [ + 17, + 13.1 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 11, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#FFFFFF" + ], + [ + 13, + "#FCF4A8" + ], + [ + 17, + "#FCF7C1" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier a niveau - filet interieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE", + "REGIONALE_4", + "REGIONALE_3", + "REGIONALE_2", + "REGIONALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#F2A949" + ], + [ + 7, + "#FFFFFF" + ], + [ + 9, + "#FFFFFF" + ], + [ + 10, + "#FDF28B" + ], + [ + 17, + "#FCF6BD" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 1.1 + ], + [ + 6, + 1.4 + ], + [ + 9, + 1.5 + ], + [ + 14, + 3.2 + ], + [ + 15, + 5.8 + ], + [ + 16, + 8.3 + ], + [ + 17, + 16.2 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FFFFFF" + ], + [ + 10, + "#FDF28B" + ], + [ + 17, + "#FCF6BD" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.4 + ], + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier a niveau - filet interieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE", + "PRINCIPALE_4", + "PRINCIPALE_3", + "PRINCIPALE_2", + "PRINCIPALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#F29924" + ], + [ + 7, + "#F3C66D" + ], + [ + 9, + "#F3C66D" + ], + [ + 17, + "#F2DDB3" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.6 + ], + [ + 6, + 1.8 + ], + [ + 9, + 2.1 + ], + [ + 14, + 4.4 + ], + [ + 15, + 7.3 + ], + [ + 16, + 10 + ], + [ + 17, + 18.5 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F3C66D" + ], + [ + 17, + "#F2DDB3" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.5 + ], + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier a niveau - filet interieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE", + "AUTOROU_LIBRE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F18800" + ], + [ + 17, + "#F2B230" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.8 + ], + [ + 15, + 9 + ], + [ + 16, + 12 + ], + [ + 17, + 20.8 + ] + ] + } + } + }, + { + "id": "Routier a niveau - axe central - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE", + "AUTOROU_LIBRE" + ], + "paint": { + "line-color": "#FFFFFF", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F18800" + ], + [ + 17, + "#F2B230" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier a niveau - axe centrale - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR" + ], + "paint": { + "line-color": "#808080", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "liaison routiere - Bac Liaison Maritime", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_liaison", + "minzoom": 8, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BAC_AUTO", + "LIAISON_MARITIME", + "BAC_LIAISON_MARITIME" + ], + "paint": { + "line-color": "#5792C2", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 8, + 1 + ], + [ + 13, + 2.5 + ] + ] + } + } + }, + { + "id": "liaison routiere - Gue route", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_liaison", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "GUE_ROUTE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 13, + "#BEBEBE" + ], + [ + 17, + "#646464" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "liaison routiere - Gue chemin", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_liaison", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "GUE_CHEMIN" + ], + "paint": { + "line-color": { + "stops": [ + [ + 13, + "#BEBEBE" + ], + [ + 17, + "#646464" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.6 + ], + [ + 15, + 2.9 + ], + [ + 16, + 4.4 + ], + [ + 17, + 6.5 + ] + ] + } + } + }, + { + "id": "liaison routiere - filet extérieur - Pont passerelle", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_liaison", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "PONT_PASSERELLE", + "PONT_LIN", + "PONT_MOBILE_LIN" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#C8C8C8" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 2.2 + ], + [ + 15, + 3.8 + ], + [ + 16, + 5.4 + ], + [ + 17, + 11.8 + ] + ] + } + } + }, + { + "id": "liaison routiere - filet intérieur - Pont passerelle", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_liaison", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "PONT_PASSERELLE", + "PONT_LIN", + "PONT_MOBILE_LIN" + ], + "paint": { + "line-color": "#FFFFFF", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 0.7 + ], + [ + 15, + 1.1 + ], + [ + 16, + 1.7 + ], + [ + 17, + 3.8 + ] + ] + } + } + }, + { + "id": "Routier surfacique - Péage surfacique", + "type": "fill", + "source": "plan_ign", + "source-layer": "routier_surf", + "maxzoom": 18, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "SURF_PEAGE" + ], + "paint": { + "fill-color": "#F2DAAA", + "fill-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "fill-outline-color": "#E2A52A" + } + }, + { + "id": "bati transport surfacique - bati peage", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "BATI_PEAGE" + ], + "paint": { + "fill-color": "#DCDCDC", + "fill-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "fill-outline-color": "#808080" + } + }, + { + "id": "Chemin superieur - piste cyclable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "PISTE_CYCLABLE_SUP", + "VOIE_VERTE_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#9B5CCC" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.1 + ], + [ + 15, + 1.7 + ], + [ + 16, + 2 + ], + [ + 17, + 3.5 + ], + [ + 18, + 6 + ] + ] + }, + "line-dasharray": [ + 6, + 2 + ] + } + }, + { + "id": "Chemin superieur - filet exterieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#8C7274" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.75 + ], + [ + 15, + 3 + ], + [ + 16, + 4.2 + ], + [ + 17, + 9.5 + ] + ] + } + } + }, + { + "id": "Chemin superieur - filet interieur - escalier", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER_SUP" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.9 + ], + [ + 16, + 2.7 + ], + [ + 17, + 5.8 + ] + ] + }, + "line-dasharray": [ + 1, + 0.2 + ] + } + }, + { + "id": "Chemin superieur - Rue pietonne", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "RUE_PIETONNE_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#8C7274" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 5 + ] + ] + }, + "line-dasharray": [ + 1, + 3 + ] + } + }, + { + "id": "Chemin superieur - sentier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "SENTIER_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#8C7274" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 6 + ] + ] + }, + "line-dasharray": [ + 4, + 3 + ] + } + }, + { + "id": "Chemin superieur - chemin", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CHEMIN_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#8C7274" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 7 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#646464" + ], + [ + 17, + "#8C8C8C" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier superieur - filet extérieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3_SUP", + "BRET_AUTO_PEAGE_2_SUP", + "BRET_AUTO_PEAGE_1_SUP", + "BRET_AUTO_LIBRE_3_SUP", + "BRET_AUTO_LIBRE_2_SUP", + "BRET_AUTO_LIBRE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#DE460E" + ], + [ + 17, + "#F18800" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 2.5 + ], + [ + 14, + 3.7 + ], + [ + 15, + 6.8 + ], + [ + 16, + 8.4 + ], + [ + 17, + 14 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#969696" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4_SUP", + "NON_CLASSEE_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#969696" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE_SUP", + "LOCALE_4_SUP", + "LOCALE_3_SUP", + "LOCALE_2_SUP", + "LOCALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#8C8C8C" + ], + [ + 13, + "#B4B4B4" + ], + [ + 17, + "#B4B4B4" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 11, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR_SUP" + ], + "paint": { + "line-color": "#C8C8C8", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE_SUP", + "REGIONALE_4_SUP", + "REGIONALE_3_SUP", + "REGIONALE_2_SUP", + "REGIONALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#828282" + ], + [ + 10, + "#B4B4B4" + ], + [ + 17, + "#B4B4B4" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR_SUP" + ], + "paint": { + "line-color": "#C8C8C8", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE_SUP", + "PRINCIPALE_4_SUP", + "PRINCIPALE_3_SUP", + "PRINCIPALE_2_SUP", + "PRINCIPALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#E2A52A" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR_SUP" + ], + "paint": { + "line-color": "#C8C8C8", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SUP", + "AUTOROU_LIBRE_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#DE460E" + ], + [ + 17, + "#F18800" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SUP" + ], + "paint": { + "line-color": "#C8C8C8", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO_SUP" + ], + "paint": { + "line-color": "#FFFFFF", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3_SUP", + "BRET_AUTO_PEAGE_2_SUP", + "BRET_AUTO_PEAGE_1_SUP", + "BRET_AUTO_LIBRE_3_SUP", + "BRET_AUTO_LIBRE_2_SUP", + "BRET_AUTO_LIBRE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F18800" + ], + [ + 17, + "#F2B230" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 1.5 + ], + [ + 14, + 2.6 + ], + [ + 15, + 5.2 + ], + [ + 16, + 6.7 + ], + [ + 17, + 10.8 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT_SUP" + ], + "paint": { + "line-color": "#EDF1FF", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4_SUP", + "NON_CLASSEE_SUP" + ], + "paint": { + "line-color": "#FFFFFF", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE_SUP", + "LOCALE_4_SUP", + "LOCALE_3_SUP", + "LOCALE_2_SUP", + "LOCALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#FFFFFF" + ], + [ + 13, + "#FCF4A8" + ], + [ + 17, + "#FCF7C1" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 1.3 + ], + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.1 + ], + [ + 17, + 13.1 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 11, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#FFFFFF" + ], + [ + 13, + "#FCF4A8" + ], + [ + 17, + "#FCF7C1" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier superieur - filet interieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE_SUP", + "REGIONALE_4_SUP", + "REGIONALE_3_SUP", + "REGIONALE_2_SUP", + "REGIONALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FFFFFF" + ], + [ + 10, + "#FDF28B" + ], + [ + 17, + "#FCF6BD" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.4 + ], + [ + 9, + 1.5 + ], + [ + 14, + 3.2 + ], + [ + 15, + 5.8 + ], + [ + 16, + 8.3 + ], + [ + 17, + 16.2 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FFFFFF" + ], + [ + 10, + "#FDF28B" + ], + [ + 17, + "#FCF6BD" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier superieur - filet interieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE_SUP", + "PRINCIPALE_4_SUP", + "PRINCIPALE_3_SUP", + "PRINCIPALE_2_SUP", + "PRINCIPALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F3C66D" + ], + [ + 17, + "#F2DDB3" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.5 + ], + [ + 6, + 1.8 + ], + [ + 9, + 2.1 + ], + [ + 14, + 4.4 + ], + [ + 15, + 7.3 + ], + [ + 16, + 10 + ], + [ + 17, + 18.5 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F3C66D" + ], + [ + 17, + "#F2DDB3" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier superieur - filet interieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SUP", + "AUTOROU_LIBRE_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F18800" + ], + [ + 17, + "#F2B230" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.8 + ], + [ + 15, + 9 + ], + [ + 16, + 12 + ], + [ + 17, + 20.8 + ] + ] + } + } + }, + { + "id": "Routier superieur - axe central - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SUP", + "AUTOROU_LIBRE_SUP" + ], + "paint": { + "line-color": "#FFFFFF", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#F18800" + ], + [ + 17, + "#F2B230" + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier superieur - axe centrale - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SUP" + ], + "paint": { + "line-color": "#808080", + "line-opacity": { + "stops": [ + [ + 7, + 0.6 + ], + [ + 14, + 0.4 + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "toponyme - parcellaire - adresse", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_parcellaire_adresse_ponc", + "filter": [ + "==", + "txt_typo", + "ADRESSE" + ], + "layout": { + "symbol-placement": "point", + "text-field": [ + "concat", + [ + "get", + "numero" + ], + [ + "get", + "indice_de_repetition" + ] + ], + "text-size": 11, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#695744", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "limite admin - limite de département bandeau", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 8, + "maxzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LIM_DEPARTEMENT" + ], + "paint": { + "line-color": "rgba(178, 175, 219, 0.4)", + "line-width": { + "stops": [ + [ + 9, + 4.1 + ], + [ + 12, + 6 + ] + ] + } + } + }, + { + "id": "limite admin - limite de département tiret", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LIM_DEPARTEMENT" + ], + "paint": { + "line-color": "rgba(126, 119, 184, 0.5)", + "line-width": { + "stops": [ + [ + 13, + 3 + ], + [ + 17, + 5.5 + ] + ] + }, + "line-dasharray": [ + 4, + 2, + 1, + 1, + 1, + 2 + ] + } + }, + { + "id": "limite admin - limite de région bandeau", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 7, + "maxzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LIM_REGION" + ], + "paint": { + "line-color": "rgba(178, 175, 219, 0.5)", + "line-width": { + "stops": [ + [ + 9, + 4.5 + ], + [ + 12, + 6.7 + ] + ] + } + } + }, + { + "id": "limite admin - limite de région tiret", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LIM_REGION" + ], + "paint": { + "line-color": "rgba(126, 119, 184, 0.5)", + "line-width": { + "stops": [ + [ + 13, + 3 + ], + [ + 17, + 5.5 + ] + ] + }, + "line-dasharray": [ + 4, + 2, + 1, + 2 + ] + } + }, + { + "id": "limite etat 1", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 2, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_ETAT", + "LIM_ETAT_ETRANGER" + ], + "paint": { + "line-color": "rgba(178, 175, 219, 0.6)", + "line-width": { + "stops": [ + [ + 2, + 2 + ], + [ + 3, + 3.5 + ], + [ + 9, + 5 + ], + [ + 14, + 13 + ], + [ + 15, + 20 + ], + [ + 16, + 24 + ], + [ + 17, + 42 + ] + ] + } + } + }, + { + "id": "limite etat 2", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 7, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_ETAT", + "LIM_ETAT_ETRANGER" + ], + "paint": { + "line-color": "#9F9CB8", + "line-width": { + "stops": [ + [ + 9, + 1.5 + ], + [ + 14, + 3.5 + ], + [ + 15, + 5.5 + ], + [ + 16, + 6.5 + ], + [ + 17, + 11 + ] + ] + }, + "line-dasharray": [ + 4, + 2 + ] + } + }, + { + "id": "toponyme - liaison maritime", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_liaison_lin", + "minzoom": 8, + "maxzoom": 18, + "filter": [ + "in", + "txt_typo", + "LIAISON_MARITIME", + "LIAISON_MAR" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 15, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Bold Italic" + ] + }, + "paint": { + "text-color": "#5792C2", + "text-halo-width": 3, + "text-halo-color": "#AAD5E9" + } + }, + { + "id": "toponyme bati station de métro + bati ponctuel metro", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + "txt_typo", + "TYPO_E_1" + ], + [ + "==", + "symbo", + "STATION_METRO" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-offset": [ + 0.30, + -0.25 + ], + "text-padding": 3, + "text-anchor": "bottom-left", + "text-font": [ + "Source Sans Pro" + ], + "icon-image": "Metro", + "icon-size": { + "stops": [ + [ + 15, + 0.33 + ], + [ + 17, + 0.6 + ] + ] + } + }, + "paint": { + "text-color": "#FFFFFF", + "icon-color": "#D3D3D3" + } + }, + { + "id": "toponyme religieux zoom 15 16", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "maxzoom": 16, + "filter": [ + "==", + "txt_typo", + "religieux" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#FFFFFF" + } + }, + { + "id": "toponyme religieux zoom 17 à 19", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 16, + "filter": [ + "==", + "txt_typo", + "religieux" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#FFFFFF" + } + }, + { + "id": "toponyme parc d'attractions zoom 14", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 13, + "maxzoom": 14, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "==", + "symbo", + "PARC_ATTRACTIONS" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#FFFFFF" + } + }, + { + "id": "toponyme parc d'attractions zoom 15 à 19", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "==", + "symbo", + "PARC_ATTRACTIONS" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#FFFFFF" + } + }, + { + "id": "toponyme bati divers zoom 15", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "maxzoom": 15, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "in", + "symbo", + "CENTRALE_ELECTRIQUE", + "HIPPODROME", + "STADE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#FFFFFF" + } + }, + { + "id": "toponyme bati divers zoom 16 à 19", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "in", + "symbo", + "CENTRALE_ELECTRIQUE", + "HIPPODROME", + "STADE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#FFFFFF" + } + }, + { + "id": "toponyme chateau zoom 16", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 15, + "maxzoom": 16, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "in", + "symbo", + "CHATEAU", + "CHATEAU_FORT" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#FFFFFF" + } + }, + { + "id": "toponyme chateau zoom 17 à 19", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "in", + "symbo", + "CHATEAU", + "CHATEAU_FORT" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#FFFFFF" + } + }, + { + "id": "toponyme station epuration, de pompage, usine de production eau", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "filter": [ + "==", + "txt_typo", + "station" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-anchor": "left", + "text-offset": [ + 0.8, + 0 + ], + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-color": "rgba(255, 255, 255, 0.7)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme bati ponc gare", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 15, + "filter": [ + "==", + "txt_typo", + "gore" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#FFFFFF" + } + }, + { + "id": "toponyme bati ponc barrage", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 12, + "filter": [ + "==", + "txt_typo", + "BARRAGE_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "left", + "text-offset": [ + 0.8, + 0 + ], + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-color": "rgba(255, 255, 255, 0.7)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme bati ponc phare - niveau 13", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "maxzoom": 13, + "filter": [ + "==", + "txt_typo", + "PHARE" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "right", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#C56464", + "text-halo-color": "rgba(255, 255, 255, 0.7)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme bati ponc phare - niveau 14à19", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "symbo", + "PHARE" + ], + [ + "in", + "txt_typo", + "TYPO_C_6", + "TYPO_C_7", + "TYPO_C_8", + "TYPO_E_GE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "right", + "text-size": { + "stops": [ + [ + 13, + 12 + ], + [ + 18, + 18 + ] + ] + }, + "text-allow-overlap": false, + "text-offset": [ + -2.00, + 0 + ], + "text-padding": 3, + "text-anchor": "right", + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#532A2A", + "text-halo-color": "rgba(255, 255, 255, 0.7)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme bati ponc autre", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 12, + "filter": [ + "in", + "txt_typo", + "BAT_ACTIVITE", + "BAT_FORTIF", + "BAT_VILLAGE_DETRUIT" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "center", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#532A2A" + } + }, + { + "id": "toponyme bati ponc aerogare", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "maxzoom": 17, + "filter": [ + "all", + [ + "==", + "txt_typo", + "TYPO_E_GE" + ], + [ + "==", + "symbo", + "AEROGARE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 9 + ], + [ + 16, + 11 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme bati ponc aeroport 12", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 11, + "maxzoom": 12, + "filter": [ + "==", + "txt_typo", + "AEROPORT_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "bottom", + "text-offset": [ + 0, + -1.3 + ], + "text-size": 10.5, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc aeroport 13", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 12, + "maxzoom": 13, + "filter": [ + "==", + "txt_typo", + "AEROPORT_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "bottom", + "text-offset": [ + 0, + -2 + ], + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc aeroport", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 13, + "maxzoom": 17, + "filter": [ + "all", + [ + "==", + "txt_typo", + "TYPO_A_5" + ], + [ + "==", + "symbo", + "AEROPORT" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 11 + ], + [ + 16, + 13 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc aerodrome 12", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 11, + "maxzoom": 12, + "filter": [ + "==", + "txt_typo", + "AERODROME_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "bottom", + "text-offset": [ + 0, + -1.3 + ], + "text-size": 9.5, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc aerodrome 13", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 12, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "AERODROME_PONC", + "AERODROME_IMPORT_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "bottom", + "text-offset": [ + 0, + -2 + ], + "text-size": 10, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc aerodrome", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 13, + "maxzoom": 17, + "filter": [ + "all", + [ + "==", + "txt_typo", + "TYPO_A_7" + ], + [ + "==", + "symbo", + "AERODROME" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 10 + ], + [ + 16, + 12 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - hydro ponc 5", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "filter": [ + "in", + "txt_typo", + "TYPO_D_9", + "TYPO_D_10", + "TYPO_E_1_cyan" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 11 + ], + [ + 17, + 14 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 5, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-color": "#FFFFFF", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - hydro ponc glacier", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "filter": [ + "==", + "txt_typo", + "ORO_GLACIER_2" + ], + "layout": { + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 14, + "text-anchor": "center", + "text-allow-overlap": true, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Bold Italic" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.9)" + } + }, + { + "id": "toponyme - limite militaire ponc 3 et 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_limite_ponc", + "filter": [ + "in", + "txt_typo", + "LIM_MILI_3", + "LIM_MILI_4" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 12, + "text-allow-overlap": false, + "text-padding": 2, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0D2000", + "text-halo-color": "rgba(255, 255, 255, 0.8)", + "text-halo-width": 1.5 + } + }, + { + "id": "toponyme - limite parc ponc 3 et 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_limite_ponc", + "filter": [ + "in", + "txt_typo", + "LIM_PARC_3", + "LIM_PARC_4", + "RESERVE_NATURELLE_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 13, + "text-allow-overlap": false, + "text-padding": 2, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.9)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme numéro de route - départementale", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_numero_lin", + "minzoom": 11, + "maxzoom": 16, + "filter": [ + "==", + "txt_typo", + "Départementale" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 10.5, + "text-allow-overlap": false, + "text-padding": 2, + "text-anchor": "center", + "text-font": [ + "Source Sans Pro Semibold" + ], + "text-rotation-alignment": "viewport" + }, + "paint": { + "text-color": "#4D4D4D", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme numéro de route - nationale", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_numero_lin", + "minzoom": 7, + "maxzoom": 16, + "filter": [ + "==", + "txt_typo", + "Nationale" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 12, + "text-allow-overlap": false, + "text-padding": 0, + "text-anchor": "center", + "text-font": [ + "Source Sans Pro Regular" + ], + "icon-image": "Ecluse", + "icon-rotation-alignment": "viewport", + "text-rotation-alignment": "viewport", + "icon-text-fit": "both", + "icon-size": 0 + }, + "paint": { + "text-color": "#F0F0F0", + "icon-color": "#646464", + "text-halo-color": "rgba(80, 80, 80, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme numéro de route - autoroute", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_numero_lin", + "minzoom": 7, + "maxzoom": 16, + "filter": [ + "==", + "txt_typo", + "Autoroute" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": false, + "text-padding": 0, + "text-anchor": "center", + "text-font": [ + "Source Sans Pro Regular" + ], + "icon-image": "Ecluse", + "icon-rotation-alignment": "viewport", + "text-rotation-alignment": "viewport", + "icon-text-fit": "both", + "icon-size": 0 + }, + "paint": { + "text-color": "#F0F0F0", + "icon-color": "#646464", + "text-halo-color": "rgba(80, 80, 80, 0.5)", + "text-halo-width": 5 + } + }, + { + "id": "toponyme - odonyme abrégé", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_odonyme_lin", + "minzoom": 15, + "maxzoom": 17, + "layout": { + "symbol-placement": "line", + "text-field": "{nom_gauche}", + "text-size": 10, + "text-anchor": "center", + "text-max-angle": 30, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-width": 2, + "text-halo-color": "rgba(0, 0, 0, 1)" + } + }, + { + "id": "toponyme - odonyme desabrégé", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_odonyme_lin", + "minzoom": 17, + "layout": { + "symbol-placement": "line", + "text-field": "{nom_desabrege}", + "text-size": 11, + "text-anchor": "center", + "text-max-angle": 30, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-width": 2, + "text-halo-color": "rgba(0, 0, 0, 1)" + } + }, + { + "id": "toponyme - lieu dit non habité 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "LIEU-DIT_NON_HABITE" + ], + [ + "in", + "txt_typo", + "TYPO_B_10", + "TYPO_B_11" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - bois", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "BOIS" + ], + [ + "in", + "txt_typo", + "TYPO_F_9", + "TYPO_F_10" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 13, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Bold Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 1)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - oro lineaire 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_lin", + "filter": [ + "in", + "txt_typo", + "ORO_SOMMET_3", + "ORO_GORGE_2" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 11, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Bold Italic" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-width": 1.5, + "text-halo-color": "rgba(255, 255, 255, 0.7)" + } + }, + { + "id": "toponyme - oro ponc 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "filter": [ + "in", + "txt_typo", + "ORO_SOMMET_3", + "ORO_GORGE_2", + "GROTTE", + "GORGE", + "TYPO_G_8", + "TYPO_G_9" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 13, + 11 + ], + [ + 16, + 16 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Bold Italic" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.7)", + "text-halo-width": 1.5 + } + }, + { + "id": "toponyme - hydro ponc 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "filter": [ + "in", + "txt_typo", + "HYD_SURF_4", + "HYD_SURF_4_T", + "HYD_SURF_5", + "HYD_SURF_5_T", + "TYPO_D_8", + "SOURCE" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 14, + 13 + ], + [ + 17, + 16 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 5, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-color": "#FFFFFF", + "text-halo-width": 1 + } + }, + { + "id": "toponyme quartier ", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "filter": [ + "in", + "txt_typo", + "BAT_QUARTIER", + "BAT_QUARTIER_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typo_E_GE Quartier", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "all", + [ + "==", + "symbo", + "QUARTIER" + ], + [ + "==", + "txt_typo", + "TYPO_E_GE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 11 + ], + [ + 17, + 13.5 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typo_E_GE Lieu-dit", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 16, + "maxzoom": 18, + "filter": [ + "all", + [ + "==", + "symbo", + "LIEU-DIT-HABITE" + ], + [ + "==", + "txt_typo", + "TYPO_E_GE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 11 + ], + [ + 17, + 13.5 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA10", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "maxzoom": 18, + "filter": [ + "==", + "txt_typo", + "TYPO_A_10" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 11 + ], + [ + 17, + 13.5 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - lieu dit non habité", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "LIEU-DIT_NON_HABITE" + ], + [ + "in", + "txt_typo", + "TYPO_B_7", + "TYPO_B_8", + "TYPO_B_9" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 12, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - bois 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "BOIS" + ], + [ + "in", + "txt_typo", + "TYPO_F_6", + "TYPO_F_7", + "TYPO_F_8" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 16, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Bold Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 1)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite hameau ", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 11, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "BAT_HAMEAU", + "BAT_HAMEAU_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.17, + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.10 + ], + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite importance 6et7 - Special DOM", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 7, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "TYPO_A_6", + "TYPO_A_7" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.21, + "text-field": "{texte}", + "text-size": 12.5, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.10 + ], + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite importance 5", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 9, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "TYPO_A_5", + "BAT_COMMUNE_5", + "BAT_COMMUNE_5_T", + "BAT_CHEF_LIEU_COM", + "BAT_CHEF_LIEU_COM_T", + "BAT_CHEF_LIEU_COM-T", + "BAT_ANCIENNE_COM", + "BAT_ANCIENNE_COM_T", + "BAT_COMMUNE_ASSOCIEE", + "BAT_COMMUNE_ASSOCIEE_T", + "Commune très petite" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.21, + "text-field": "{texte}", + "text-size": 11.5, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.10 + ], + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - ocs lineaire 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_lin", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_3" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 12 + ], + [ + 12, + 15 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Bold Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.8)" + } + }, + { + "id": "toponyme - lieu dit non habité 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "LIEU-DIT_NON_HABITE" + ], + [ + "in", + "txt_typo", + "TYPO_B_5", + "TYPO_B_4" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - bois 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "BOIS" + ], + [ + "in", + "txt_typo", + "TYPO_F_5", + "TYPO_F_4" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 19, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Bold Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 1)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - bois 0", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "BOIS" + ], + [ + "in", + "txt_typo", + "TYPO_F_3", + "TYPO_F_2" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 22, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Bold Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - ocs ponc 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_3" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 12 + ], + [ + 12, + 15 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-anchor": "center", + "text-font": [ + "Source Sans Pro Bold Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.8)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - oro lineaire 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_lin", + "filter": [ + "in", + "txt_typo", + "ORO_ILE_3", + "ORO_RELIEF_3", + "ORO_RELIEF_3_T", + "ORO_RELIEF_4", + "ORO_RELIEF_4_T", + "ORO_CAP_2", + "ORO_CAP_3", + "ORO_SOMMET_2", + "ORO_COL_2", + "ORO_GORGE_1", + "ORO_GORGE-1" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 12, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Bold Italic" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-width": 1.5, + "text-halo-color": "rgba(255, 255, 255, 0.7)" + } + }, + { + "id": "toponyme - oro ponc 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "filter": [ + "in", + "txt_typo", + "ORO_ILE_3", + "ORO_RELIEF_3", + "ORO_RELIEF_3_T", + "ORO_RELIEF_4", + "ORO_RELIEF_4_T", + "ORO_CAP_2", + "ORO_CAP_3", + "ORO_SOMMET_2", + "ORO_COL_2", + "ORO_GORGE_1", + "ORO_GORGE-1", + "TYPO_G_6", + "TYPO_G_7" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 13, + 12 + ], + [ + 16, + 17 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Bold Italic" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "#FFFFFF", + "text-halo-width": 1.5 + } + }, + { + "id": "toponyme - hydro lineaire 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "minzoom": 13, + "filter": [ + "in", + "txt_typo", + "HYD_LIN_3", + "HYD_LIN_4", + "HYD_LIN_5", + "TYPO_D_LIN_3", + "TYPO_D_LIN_4", + "HYD_SURF_3", + "HYD_SURF_3_T", + "HYD_SURF_4", + "HYD_SURF_4_T", + "HYD_SURF_5", + "HYD_SURF_5_T", + "TYPO_D_5", + "TYPO_D_7" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 14, + 12 + ], + [ + 18, + 19 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-width": 1, + "text-halo-color": "rgba(255, 255, 255, 0.9)" + } + }, + { + "id": "toponyme - hydro lineaire 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "minzoom": 14, + "filter": [ + "in", + "txt_typo", + "TYPO_D_6", + "TYPO_D_8", + "TYPO_D_9", + "TYPO_D_10" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 14, + 10 + ], + [ + 18, + 16 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-width": 1.5, + "text-halo-color": "rgba(255, 255, 255, 0.9)" + } + }, + { + "id": "toponyme - hydro ponc 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "filter": [ + "in", + "txt_typo", + "HYD_SURF_3", + "TYPO_D_5", + "TYPO_D_6", + "TYPO_D_7" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 9, + 13 + ], + [ + 10, + 15 + ], + [ + 15, + 15 + ], + [ + 17, + 18 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-color": "#FFFFFF", + "text-halo-width": 1 + } + }, + { + "id": "toponyme bati ponc zai zoom 16", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 15, + "maxzoom": 16, + "filter": [ + "==", + "txt_typo", + "zai" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#FFFFFF" + } + }, + { + "id": "toponyme bati ponc zai zoom 17 et 18", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 16, + "filter": [ + "==", + "txt_typo", + "zai" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 17, + 11 + ], + [ + 18, + 15 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#FFFFFF" + } + }, + { + "id": "toponyme localite importance 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 7, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "TYPO_A_4", + "BAT_COMMUNE_4", + "BAT_COMMUNE_4_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.21, + "text-field": "{texte}", + "text-size": 13, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.10 + ], + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA9", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "maxzoom": 18, + "filter": [ + "==", + "txt_typo", + "TYPO_A_9" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 11.5 + ], + [ + 17, + 14 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA8 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_8" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 12 + ], + [ + 17, + 15 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - limite militaire ponc 1 et 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_limite_ponc", + "filter": [ + "in", + "txt_typo", + "LIM_MILI_1", + "LIM_MILI_2" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": false, + "text-padding": 5, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0D2000", + "text-halo-color": "rgba(255, 255, 255, 0.8)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - limite parc marin", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_limite_ponc", + "minzoom": 8, + "filter": [ + "in", + "txt_typo", + "PARC_MARIN_1", + "PARC_MARIN_2" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": false, + "text-padding": 10, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#2A81A2", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - limite parc ponc 1 et 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_limite_ponc", + "minzoom": 10, + "filter": [ + "in", + "txt_typo", + "LIM_PARC_1", + "LIM_PARC_2", + "PARC_1", + "PARC_2" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": false, + "text-padding": 10, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.9)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - ocs lineaire 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_lin", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_2" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 15 + ], + [ + 12, + 18 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.8)" + } + }, + { + "id": "toponyme - ocs ponc 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_2" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 15 + ], + [ + 12, + 18 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-anchor": "center", + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.8)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - oro lineaire 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_lin", + "filter": [ + "in", + "txt_typo", + "ORO_ILE_2", + "ORO_RELIEF_2", + "ORO_RELIEF_2_T", + "ORO_CAP_1", + "ORO_SOMMET_1" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 15, + "text-anchor": "center", + "text-keep-upright": true, + "text-padding": 10, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.7)" + } + }, + { + "id": "toponyme - oro ponc 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "minzoom": 9, + "filter": [ + "in", + "txt_typo", + "ORO_ILE_2", + "ORO_RELIEF_2", + "ORO_RELIEF_2_T", + "ORO_CAP_1", + "ORO_COL_1", + "TYPO_G_5", + "ORO_SOMMET_1" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 9, + 13 + ], + [ + 10, + 15 + ], + [ + 13, + 15 + ], + [ + 16, + 19 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.7)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - oro ponc 2B", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "minzoom": 8, + "filter": [ + "==", + "txt_typo", + "TYPO_G_4" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 13, + 15 + ], + [ + 16, + 19 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.7)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - hydro lineaire 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "minzoom": 13, + "filter": [ + "in", + "txt_typo", + "HYD_LIN_2", + "TYPO_D_LIN_2", + "HYD_SURF_2", + "HYD_SURF_2_T", + "TYPO_D_4" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 14, + 15 + ], + [ + 18, + 21 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-width": 1, + "text-halo-color": "rgba(255, 255, 255, 0.8)" + } + }, + { + "id": "toponyme - hydro ponc 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "minzoom": 5, + "filter": [ + "in", + "txt_typo", + "moyen", + "HYD_SURF_2", + "TYPO_D_2" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 5, + 12 + ], + [ + 6, + 18 + ], + [ + 10, + 17 + ], + [ + 18, + 21 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-color": "#FFFFFF", + "text-halo-width": 1.5 + } + }, + { + "id": "toponyme - hydro ponc 2B", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "filter": [ + "in", + "txt_typo", + "TYPO_D_3", + "TYPO_D_4" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 9, + 15 + ], + [ + 10, + 17 + ], + [ + 18, + 21 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-color": "#FFFFFF", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite importance 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 5, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "commune 3", + "TYPO_A_3", + "BAT_COMMUNE_3", + "BAT_COMMUNE_3_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.21, + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 5, + 10 + ], + [ + 6, + 15 + ] + ] + }, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.10 + ], + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA7 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_7" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 13 + ], + [ + 17, + 16 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA5etA6 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "in", + "txt_typo", + "TYPO_A_5", + "TYPO_A_6" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 15 + ], + [ + 17, + 18 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - oro lineaire 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_lin", + "filter": [ + "in", + "txt_typo", + "ORO_ILE_1", + "ORO_RELIEF_1", + "ORO_RELIEF_1_T" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 20, + "text-anchor": "center", + "text-keep-upright": true, + "text-padding": 5, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.7)" + } + }, + { + "id": "toponyme - oro ponc monde", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "minzoom": 5, + "filter": [ + "in", + "txt_typo", + "Basin", + "Depression", + "Desert", + "Geoarea", + "Gorge", + "Isthmus", + "Lake", + "Lowland", + "Pen/cape", + "Plain", + "Plateau", + "Range/mtn", + "Tundra", + "Valley", + "Island", + "Island group" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.7)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA4 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_4" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 17, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 3 + } + }, + { + "id": "toponyme - ocs lineaire 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_lin", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_1" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 18 + ], + [ + 12, + 22 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-padding": 1, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.8)" + } + }, + { + "id": "toponyme - ocs ponc 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_1" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 18 + ], + [ + 12, + 22 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.8)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - oro ponc 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "minzoom": 8, + "filter": [ + "in", + "txt_typo", + "ORO_ILE_1", + "ORO_RELIEF_1", + "ORO_RELIEF_1_T", + "TYPO_G_1" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 21, + "text-allow-overlap": true, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.7)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - oro ponc 1B", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "minzoom": 8, + "filter": [ + "in", + "txt_typo", + "TYPO_G_2", + "TYPO_G_3" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 12, + 15 + ], + [ + 13, + 21 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.7)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - hydro lineaire glacier", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "filter": [ + "in", + "txt_typo", + "ORO_GLACIER_1", + "ORO_GLACIER_2" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 15, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Bold Italic" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.9)" + } + }, + { + "id": "toponyme - hydro lineaire 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "minzoom": 13, + "filter": [ + "in", + "txt_typo", + "HYD_LIN_1", + "HYD-LIN-1", + "TYPO_D_LIN_1", + "HYD_SURF_1", + "HYD_SURF_1_T", + "TYPO_D_1", + "TYPO_D_2", + "TYPO_D_3_T", + "TYPO_D_4_T" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 18, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.8)" + } + }, + { + "id": "toponyme - hydro lineaire ocean", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "filter": [ + "==", + "txt_typo", + "OCEAN_MER" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 30, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-width": 4, + "text-halo-color": "rgba(0, 0, 0, 0.5)" + } + }, + { + "id": "toponyme - hydro ponc 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "minzoom": 4, + "filter": [ + "in", + "txt_typo", + "mer", + "grand", + "HYD_SURF_1", + "TYPO_D_1" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 4, + 16 + ], + [ + 6, + 30 + ], + [ + 10, + 25 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme localite importance 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 4, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "commune 2", + "TYPO_A_2", + "BAT_COMMUNE_2", + "BAT_COMMUNE-2", + "BAT_COMMUNE_2_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.25, + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 4, + 10 + ], + [ + 6, + 17 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.2 + ], + "text-padding": 1, + "text-transform": "uppercase", + "text-font": { + "stops": [ + [ + 1, + [ + "Source Sans Pro Regular" + ] + ], + [ + 7, + [ + "Source Sans Pro Bold" + ] + ], + [ + 10, + [ + "Source Sans Pro Regular" + ] + ] + ] + } + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 3 + } + }, + { + "id": "toponyme localite n0 typoA3 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_3" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 19, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 3 + } + }, + { + "id": "toponyme localite n0 typoA2 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_2" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 21, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme localite n0 typoA8 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_8" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 12 + ], + [ + 17, + 15 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA7 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_7" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 13 + ], + [ + 17, + 16 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA5etA6 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "in", + "txt_typo", + "TYPO_A_5", + "TYPO_A_6" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 15 + ], + [ + 17, + 18 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA1 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_1" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 23, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme localite n0 typoA4 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_4" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 17, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 3 + } + }, + { + "id": "toponyme localite n0 typoA3 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_3" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 19, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 3 + } + }, + { + "id": "toponyme localite n0 typoA2 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_2" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 21, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme localite importance 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 3, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "commune 1", + "TYPO_A_1", + "BAT_COMMUNE_1", + "BAT_COMMUNE_1_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.3, + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 3, + 10 + ], + [ + 6, + 20 + ] + ] + }, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.25, + -0.10 + ], + "text-padding": 1, + "text-transform": "uppercase", + "text-font": { + "stops": [ + [ + 1, + [ + "Source Sans Pro Regular" + ] + ], + [ + 7, + [ + "Source Sans Pro Bold" + ] + ], + [ + 10, + [ + "Source Sans Pro Regular" + ] + ] + ] + } + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme localite n0 typoA1 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_1" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 23, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#FFFFFF", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme - hydro ponc ocean", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "minzoom": 1, + "filter": [ + "==", + "txt_typo", + "ocean" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 1, + 16 + ], + [ + 6, + 30 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#447FB3", + "text-halo-color": "rgba(0, 0, 0, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme pays 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 4, + "maxzoom": 5, + "filter": [ + "==", + "txt_typo", + "pays 3" + ], + "layout": { + "visibility": "visible", + "text-field": "{texte}", + "text-size": 9, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#787878", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme pays 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 2, + "maxzoom": 5, + "filter": [ + "==", + "txt_typo", + "pays 2" + ], + "layout": { + "visibility": "visible", + "text-field": "{texte}", + "text-size": 13, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 2, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#787878", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme pays 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 2, + "maxzoom": 5, + "filter": [ + "==", + "txt_typo", + "pays 1" + ], + "layout": { + "visibility": "visible", + "text-field": "{texte}", + "text-size": 13, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 2, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#787878", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme continent", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "maxzoom": 3, + "filter": [ + "==", + "txt_typo", + "continent" + ], + "layout": { + "visibility": "visible", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#787878", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + } + ] +} \ No newline at end of file diff --git a/website/src/lib/assets/custom/ign-fr-topo.json b/website/src/lib/assets/custom/ign-fr-topo.json new file mode 100755 index 0000000..851a775 --- /dev/null +++ b/website/src/lib/assets/custom/ign-fr-topo.json @@ -0,0 +1,15495 @@ +{ + "_info": "This style is an adaptation of the official IGN 'classique' style (https://data.geopf.fr/annexes/ressources/vectorTiles/styles/PLAN.IGN/classique.json) to which hillshading is added.", + "version": 8, + "name": "PLAN IGN", + "glyphs": "https://data.geopf.fr/annexes/ressources/vectorTiles/fonts/{fontstack}/{range}.pbf", + "sprite": "https://data.geopf.fr/annexes/ressources/vectorTiles/styles/PLAN.IGN/sprite/PlanIgn", + "sources": { + "plan_ign": { + "type": "vector", + "tiles": [ + "https://data.geopf.fr/tms/1.0.0/PLAN.IGN/{z}/{x}/{y}.pbf" + ] + }, + "terrain": { + "type": "raster", + "tiles": [ + "https://data.geopf.fr/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&TILEMATRIXSET=PM&TILEMATRIX={z}&TILECOL={x}&TILEROW={y}&LAYER=ELEVATION.ELEVATIONGRIDCOVERAGE.SHADOW&FORMAT=image/png&STYLE=estompage_grayscale" + ], + "maxzoom": 15 + } + }, + "transition": { + "duration": 300, + "delay": 0 + }, + "layers": [ + { + "id": "bckgrd", + "type": "fill", + "source": "plan_ign", + "source-layer": "fond_opaque", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "#FFFFFF", + "fill-opacity": 1 + } + }, + { + "id": "orographie : relief - 0m", + "type": "fill", + "source": "plan_ign", + "source-layer": "oro_relief", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "HYPSO_0" + ], + "paint": { + "fill-color": "#D6E5BA", + "fill-opacity": 1 + } + }, + { + "id": "orographie : relief - 100m", + "type": "fill", + "source": "plan_ign", + "source-layer": "oro_relief", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "HYPSO_100" + ], + "paint": { + "fill-color": "#F7F2DA", + "fill-opacity": 1 + } + }, + { + "id": "orographie : relief - 200m", + "type": "fill", + "source": "plan_ign", + "source-layer": "oro_relief", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "HYPSO_200" + ], + "paint": { + "fill-color": "#EBDEBF", + "fill-opacity": 1 + } + }, + { + "id": "orographie : relief - 1000m", + "type": "fill", + "source": "plan_ign", + "source-layer": "oro_relief", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "HYPSO_1000" + ], + "paint": { + "fill-color": "#DABE97", + "fill-opacity": 1 + } + }, + { + "id": "orographie : relief - 3000m", + "type": "fill", + "source": "plan_ign", + "source-layer": "oro_relief", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "HYPSO_3000" + ], + "paint": { + "fill-color": "#B28773", + "fill-opacity": 1 + } + }, + { + "id": "orographie : relief - 4000m", + "type": "fill", + "source": "plan_ign", + "source-layer": "oro_relief", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "HYPSO_4000" + ], + "paint": { + "fill-color": "#9E6A54", + "fill-opacity": 1 + } + }, + { + "id": "orographie : relief - 5000m", + "type": "fill", + "source": "plan_ign", + "source-layer": "oro_relief", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "HYPSO_5000" + ], + "paint": { + "fill-color": "#773A2B", + "fill-opacity": 1 + } + }, + { + "id": "orographie : relief - glacier", + "type": "fill", + "source": "plan_ign", + "source-layer": "oro_relief", + "minzoom": 0, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "GLACIER" + ], + "paint": { + "fill-color": "#FFFFFF", + "fill-opacity": 0.7 + } + }, + { + "id": "ocs - vegetation - zone boiséee, foret fermee, peupleraie", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "ZONE_BOISEE", + "ZONE_FORET_FERMEE_FEUIL", + "ZONE_FORET_FERMEE_CONI", + "ZONE_FORET_FERMEE_MIXTE", + "ZONE_PEUPLERAIE" + ], + "paint": { + "fill-color": "#D1FFBA", + "fill-outline-color": "#D1FFBA" + } + }, + { + "id": "ocs - vegetation - forêt ouverte", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "ZONE_FORET_OUVERTE" + ], + "paint": { + "fill-color": "#D1FFBA", + "fill-outline-color": "#D1FFBA" + } + }, + { + "id": "ocs - vegetation - lande ligneuse", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_LANDE_LIGNEUSE" + ], + "paint": { + "fill-color": "#E0FFD1" + } + }, + { + "id": "ocs - vegetation - vigne", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_VIGNE" + ], + "paint": { + "fill-color": "#F4D5B3" + } + }, + { + "id": "ocs - vegetation - verger", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_VERGER" + ], + "paint": { + "fill-color": "#F4C795" + } + }, + { + "id": "ocs - vegetation - canne à sucre, bananeraie", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_CANNE_BANANE" + ], + "paint": { + "fill-color": "#FAEDFA" + } + }, + { + "id": "hydro surfacique - Estran", + "type": "fill", + "source": "plan_ign", + "source-layer": "hydro_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_D_ESTRAN" + ], + "paint": { + "fill-color": "#D3E9FF", + "fill-outline-color": "#D3E9FF" + } + }, + { + "id": "ocs - vegetation - mangrovre", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_MANGROVE" + ], + "paint": { + "fill-color": { + "stops": [ + [ + 9, + "#85CCCB" + ], + [ + 10, + "#90CCCB" + ] + ] + } + } + }, + { + "id": "ocs - vegetation - marais", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_MARAIS" + ], + "paint": { + "fill-pattern": "Marais" + } + }, + { + "id": "hydro surfacique - marais", + "type": "fill", + "source": "plan_ign", + "source-layer": "hydro_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_MARAIS" + ], + "paint": { + "fill-pattern": "Marais" + } + }, + { + "id": "ocs - vegetation - marais salant", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_vegetation_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_MARAIS_SALANT" + ], + "paint": { + "fill-pattern": "MaraisSalant" + } + }, + { + "id": "ocs - Zone", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_nature_sol_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_ROCHEUSE" + ], + "paint": { + "fill-color": "#D0D0D0", + "fill-opacity": 0.3 + } + }, + { + "id": "ocs - Zone sable sec", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_nature_sol_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_SABLE_SEC" + ], + "paint": { + "fill-pattern": "Sable" + } + }, + { + "id": "ocs - Zone sable humide", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_nature_sol_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "ZONE_SABLE_HUMIDE", + "FOND_CUVETTE_HUMIDE" + ], + "paint": { + "fill-pattern": "SableHumide" + } + }, + { + "id": "ocs - Zone graviers galets secs", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_nature_sol_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "GRAVIERS_GALETS_SEC" + ], + "paint": { + "fill-pattern": "GravierSec" + } + }, + { + "id": "ocs - Zone graviers galets humides", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_nature_sol_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "GRAVIERS_GALETS_HUM" + ], + "paint": { + "fill-pattern": "Gravier" + } + }, + { + "id": "ocs - Zone rocher hydro", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_nature_sol_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_ROCHER_HYDRO" + ], + "paint": { + "fill-pattern": "RocherHydro" + } + }, + { + "id": "ocs - Zone glacier", + "type": "fill", + "source": "plan_ign", + "source-layer": "ocs_nature_sol_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_GLACIER" + ], + "paint": { + "fill-pattern": "Glacier", + "fill-opacity": { + "stops": [ + [ + 10, + 0.5 + ], + [ + 12, + 0.3 + ] + ] + } + } + }, + { + "id": "zone batie", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_zone_surf", + "minzoom": 7, + "maxzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_BATI" + ], + "paint": { + "fill-color": "#ADADAD", + "fill-opacity": { + "stops": [ + [ + 12, + 1 + ], + [ + 13, + 0.9 + ], + [ + 14, + 0.5 + ] + ] + } + } + }, + { + "id": "zone d'activité", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_zone_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ZONE_INDUS_ACTI" + ], + "paint": { + "fill-color": "#CBCBCB" + } + }, + { + "id": "terrain", + "type": "raster", + "source": "terrain" + }, + { + "id": "oro - courbe et cuvette maitresse", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_MAITRESSE", + "CUVETTE_MAITRESSE" + ], + "paint": { + "line-color": "#D9C8A9", + "line-width": { + "stops": [ + [ + 13, + 1.7 + ], + [ + 15, + 2 + ] + ] + } + } + }, + { + "id": "oro - courbe et cuvette normale", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_NORMALE", + "CUVETTE_NORMALE" + ], + "paint": { + "line-color": "#D9C8A9", + "line-width": { + "stops": [ + [ + 13, + 1 + ], + [ + 15, + 1.2 + ] + ] + } + } + }, + { + "id": "oro - courbe et cuvette intercalaire", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_INTERCALAIRE", + "CUVETTE_INTERCAL", + "CNV_SS_INTERCALAIRE" + ], + "paint": { + "line-color": "#D9C8A9", + "line-width": 0.7, + "line-dasharray": [ + 20, + 7 + ] + } + }, + { + "id": "oro - courbe et cuvette glacier maitresse", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_GLACIER_MAITRESSE", + "CUV_GLACIER_MAITRESSE" + ], + "paint": { + "line-color": "#A4BFD9", + "line-width": { + "stops": [ + [ + 13, + 1.7 + ], + [ + 15, + 2 + ] + ] + } + } + }, + { + "id": "oro - courbe et cuvette glacier normale", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_GLACIER_NORMALE", + "CUV_GLACIER_NORMALE" + ], + "paint": { + "line-color": "#A4BFD9", + "line-width": { + "stops": [ + [ + 13, + 1 + ], + [ + 15, + 1.2 + ] + ] + } + } + }, + { + "id": "oro - courbe et cuvette glacier intercalaire", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_GLACIER_INTERCAL", + "CUV_GLACIER_INTERCAL" + ], + "paint": { + "line-color": "#A4BFD9", + "line-width": { + "stops": [ + [ + 13, + 0.7 + ], + [ + 15, + 0.9 + ] + ] + }, + "line-dasharray": [ + 20, + 7 + ] + } + }, + { + "id": "oro - courbe et cuvette rocher maitresse", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_ROCHER_MAITRESSE", + "CUV_ROCHER_MAITRESSE" + ], + "paint": { + "line-color": "#AAAAAA", + "line-width": 1.7 + } + }, + { + "id": "oro - courbe et cuvette rocher normale", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_ROCHER_NORMALE", + "CUV_ROCHER_NORMALE" + ], + "paint": { + "line-color": "#AAAAAA", + "line-width": 1 + } + }, + { + "id": "oro - courbe et cuvette rocher intercalaire", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_ROCHER_INTERCAL", + "CUV_ROCHER_INTERCAL" + ], + "paint": { + "line-color": "#AAAAAA", + "line-width": { + "stops": [ + [ + 13, + 0.7 + ], + [ + 15, + 0.9 + ] + ] + }, + "line-dasharray": [ + 20, + 7 + ] + } + }, + { + "id": "oro - courbe et cuvette bathymetrique", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_courbe", + "maxzoom": 16, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CNV_BATHYMETRIQUE", + "CUV_BATHYMETRIQUE" + ], + "paint": { + "line-color": "#0000FF", + "line-width": 1 + } + }, + { + "id": "oro lin - talus", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_lin", + "minzoom": 14, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "TALUS" + ], + "paint": { + "line-color": "#D9C8A9", + "line-width": 1 + } + }, + { + "id": "oro lin - talus - trait perpendiculaire", + "type": "line", + "source": "plan_ign", + "source-layer": "oro_lin", + "minzoom": 14, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "TALUS" + ], + "paint": { + "line-color": "#D9C8A9", + "line-width": { + "stops": [ + [ + 14, + 7 + ], + [ + 16, + 9 + ] + ] + }, + "line-dasharray": [ + 0.1, + 1 + ], + "line-offset": 4 + } + }, + { + "id": "toponyme - cote de courbe normale", + "type": "symbol", + "source": "plan_ign", + "source-layer": "oro_courbe", + "minzoom": 13, + "maxzoom": 16, + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 13, + 10 + ], + [ + 15, + 13 + ] + ] + }, + "text-anchor": "center", + "text-rotation-alignment": "map", + "text-pitch-alignment": "viewport", + "text-keep-upright": false, + "text-max-angle": 20, + "text-max-width": 100, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "filter": [ + "all", + [ + "!=", + "texte", + "0" + ], + [ + "==", + "hors_zone", + true + ], + [ + "in", + "symbo", + "CNV_MAITRESSE", + "CUVETTE_MAITRESSE" + ] + ], + "paint": { + "text-color": "#604A2F", + "text-halo-width": 0.5, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - cote de courbe rocher", + "type": "symbol", + "source": "plan_ign", + "source-layer": "oro_courbe", + "minzoom": 13, + "maxzoom": 16, + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 13, + 10 + ], + [ + 15, + 13 + ] + ] + }, + "text-anchor": "center", + "text-rotation-alignment": "map", + "text-pitch-alignment": "viewport", + "text-keep-upright": false, + "text-max-angle": 20, + "text-max-width": 100, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "filter": [ + "all", + [ + "!=", + "texte", + "0" + ], + [ + "==", + "hors_zone", + true + ], + [ + "in", + "symbo", + "CNV_ROCHER_MAITRESSE", + "CUV_ROCHER_MAITRESSE" + ] + ], + "paint": { + "text-color": "#333333", + "text-halo-width": 0.5, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - cote de courbe glacier", + "type": "symbol", + "source": "plan_ign", + "source-layer": "oro_courbe", + "minzoom": 13, + "maxzoom": 16, + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 13, + 10 + ], + [ + 15, + 13 + ] + ] + }, + "text-anchor": "center", + "text-rotation-alignment": "map", + "text-pitch-alignment": "viewport", + "text-keep-upright": false, + "text-max-angle": 20, + "text-max-width": 100, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "filter": [ + "all", + [ + "!=", + "texte", + "0" + ], + [ + "==", + "hors_zone", + true + ], + [ + "in", + "symbo", + "CNV_GLACIER_MAITRESSE", + "CUV_GLACIER_MAITRESSE" + ] + ], + "paint": { + "text-color": "#629FD9", + "text-halo-width": 0.5, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "hydro surfacique", + "type": "fill", + "source": "plan_ign", + "source-layer": "hydro_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "SURFACE_D_EAU", + "BASSIN", + "ZONE_MARINE" + ], + "paint": { + "fill-color": "#B3D9FF", + "fill-outline-color": "#B3D9FF" + } + }, + { + "id": "hydro surfacique temporaire", + "type": "fill", + "source": "plan_ign", + "source-layer": "hydro_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "SURFACE_D_EAU_TEMP" + ], + "paint": { + "fill-color": "rgba(164, 198, 233, 0.5)" + } + }, + { + "id": "réseau hydro - cours d'eau souterrain", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "COURS_D_EAU_SOU", + "COURS_D_EAU_MOY_SOU" + ], + "paint": { + "line-color": "#B3D9FF", + "line-width": { + "stops": [ + [ + 12, + 1.5 + ], + [ + 17, + 6.5 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "réseau hydro - filet interieur - aqueduc souterrain", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau_sou", + "minzoom": 12, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AQUEDUC_SOU" + ], + "paint": { + "line-color": "#B3D9FF", + "line-width": { + "stops": [ + [ + 12, + 1.4 + ], + [ + 16, + 3.5 + ], + [ + 17, + 5.9 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "réseau hydro - carre - aqueduc souterrain", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau_sou", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AQUEDUC_SOU" + ], + "paint": { + "line-color": "#B3D9FF", + "line-width": { + "stops": [ + [ + 12, + 3.5 + ], + [ + 16, + 8.7 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 1, + 5 + ] + } + }, + { + "id": "Ferre souterrain - voie normale", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_1_SOU", + "VF_2_SOU", + "VF_3_SOU", + "VF_4_SOU", + "VF_ELEC_1_SOU", + "VF_ELEC_2_SOU", + "VF_ELEC_3_SOU", + "VF_ELEC_4_SOU", + "VF_FERRO_ROUTIER_SOU" + ], + "paint": { + "line-color": "#838383", + "line-width": { + "stops": [ + [ + 10, + 0.8 + ], + [ + 17, + 2.5 + ] + ] + } + } + }, + { + "id": "Ferre souterrain - trait perpendic épais", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_1_SOU", + "VF_2_SOU", + "VF_3_SOU", + "VF_4_SOU", + "VF_ELEC_1_SOU", + "VF_ELEC_2_SOU", + "VF_ELEC_3_SOU", + "VF_ELEC_4_SOU", + "VF_FERRO_ROUTIER_SOU" + ], + "paint": { + "line-color": "#838383", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 0.1, + 10 + ] + } + }, + { + "id": "Ferre souterrain - voie etroite", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_ETROITE_1_SOU", + "VF_ETROITE_2_SOU", + "VF_ETROITE_SOU" + ], + "paint": { + "line-color": "#838383", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + } + } + }, + { + "id": "Ferre souterrain - trait perpendic fin", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_ETROITE_1_SOU", + "VF_ETROITE_2_SOU", + "VF_ETROITE_SOU" + ], + "paint": { + "line-color": "#838383", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 0.1, + 10 + ] + } + }, + { + "id": "Ferre souterrain - voie service", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sou", + "minzoom": 14, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_SERVICE_SOU", + "VF_NON_EXPLOITEE_SOU" + ], + "paint": { + "line-color": "#838383", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + }, + "line-dasharray": [ + 5, + 2, + 1, + 2 + ] + } + }, + { + "id": "Ferre souterrain - funic/urbain", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "FUNI_CREMAILLERE_SOU", + "TRANSPORT_URBAIN_SOU" + ], + "paint": { + "line-color": "#838383", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + } + } + }, + { + "id": "Ferre souterrain - 2 trait perpendic - funic/urbain", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "FUNI_CREMAILLERE_SOU", + "TRANSPORT_URBAIN_SOU" + ], + "paint": { + "line-color": "#838383", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 17 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.2, + 0.1, + 10 + ] + } + }, + { + "id": "Chemin souterrain - piste cyclable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "PISTE_CYCLABLE_SOU", + "VOIE_VERTE_SOU" + ], + "paint": { + "line-color": "#AB81CC", + "line-width": { + "stops": [ + [ + 14, + 1.1 + ], + [ + 15, + 1.7 + ], + [ + 16, + 2 + ], + [ + 17, + 3.5 + ] + ] + }, + "line-dasharray": [ + 6, + 2 + ] + } + }, + { + "id": "Chemin souterrain - filet exterieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 14, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER_SOU" + ], + "paint": { + "line-color": "#717171", + "line-width": { + "stops": [ + [ + 14, + 1.75 + ], + [ + 15, + 3 + ], + [ + 16, + 4.2 + ], + [ + 17, + 9.5 + ] + ] + } + } + }, + { + "id": "Chemin souterrain - filet interieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 14, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER_SOU" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.9 + ], + [ + 16, + 2.7 + ], + [ + 17, + 5.8 + ] + ] + }, + "line-dasharray": [ + 1, + 0.2 + ] + } + }, + { + "id": "Chemin souterrain - Rue pietonne", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 14, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "RUE_PIETONNE_SOU" + ], + "paint": { + "line-color": "#717171", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ] + ] + }, + "line-dasharray": [ + 1, + 3 + ] + } + }, + { + "id": "Chemin souterrain - sentier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "SENTIER_SOU" + ], + "paint": { + "line-color": "#717171", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ] + ] + }, + "line-dasharray": [ + 4, + 3 + ] + } + }, + { + "id": "Chemin souterrain - chemin", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sou", + "minzoom": 12, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CHEMIN_SOU" + ], + "paint": { + "line-color": "#717171", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO_SOU" + ], + "paint": { + "line-color": "#AFAFAF", + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier souterrain - filet extérieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 12, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3_SOU", + "BRET_AUTO_PEAGE_2_SOU", + "BRET_AUTO_PEAGE_1_SOU", + "BRET_AUTO_LIBRE_3_SOU", + "BRET_AUTO_LIBRE_2_SOU", + "BRET_AUTO_LIBRE_1_SOU" + ], + "paint": { + "line-color": "rgba(255, 0, 51, 0.5)", + "line-width": { + "stops": [ + [ + 12, + 2.5 + ], + [ + 14, + 3.7 + ], + [ + 15, + 6.8 + ], + [ + 16, + 8.4 + ], + [ + 17, + 14 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT_SOU" + ], + "paint": { + "line-color": "#AFAFAF", + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4_SOU", + "NON_CLASSEE_SOU" + ], + "paint": { + "line-color": "#AFAFAF", + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE_SOU", + "LOCALE_4_SOU", + "LOCALE_3_SOU", + "LOCALE_2_SOU", + "LOCALE_1_SOU" + ], + "paint": { + "line-color": "rgba(130, 130, 130, 0.5)", + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 11, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR_SOU" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE_SOU", + "REGIONALE_4_SOU", + "REGIONALE_3_SOU", + "REGIONALE_2_SOU", + "REGIONALE_1_SOU" + ], + "paint": { + "line-color": "rgba(130, 130, 130, 0.5)", + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR_SOU" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 7, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE_SOU", + "PRINCIPALE_4_SOU", + "PRINCIPALE_3_SOU", + "PRINCIPALE_2_SOU", + "PRINCIPALE_1_SOU" + ], + "paint": { + "line-color": "rgba(255, 0, 51, 0.5)", + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR_SOU" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 7, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SOU", + "AUTOROU_LIBRE_SOU" + ], + "paint": { + "line-color": "rgba(255, 0, 51, 0.5)", + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet extérieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SOU" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO_SOU" + ], + "paint": { + "line-color": "#DCDCDC", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 12, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3_SOU", + "BRET_AUTO_PEAGE_2_SOU", + "BRET_AUTO_PEAGE_1_SOU", + "BRET_AUTO_LIBRE_3_SOU", + "BRET_AUTO_LIBRE_2_SOU", + "BRET_AUTO_LIBRE_1_SOU" + ], + "paint": { + "line-color": "rgba(255, 255, 255, 0.5)", + "line-width": { + "stops": [ + [ + 12, + 1.5 + ], + [ + 14, + 2.6 + ], + [ + 15, + 5.2 + ], + [ + 16, + 6.7 + ], + [ + 17, + 10.8 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT_SOU" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4_SOU", + "NON_CLASSEE_SOU" + ], + "paint": { + "line-color": "#DCDCDC", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE_SOU", + "LOCALE_4_SOU", + "LOCALE_3_SOU", + "LOCALE_2_SOU", + "LOCALE_1_SOU" + ], + "paint": { + "line-color": "rgba(255, 255, 255, 0.5)", + "line-width": { + "stops": [ + [ + 9, + 1.3 + ], + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.1 + ], + [ + 17, + 13.1 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 11, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR_SOU" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#FFFFFF" + ], + [ + 13, + "#FFA35D" + ], + [ + 17, + "#FFAD6F" + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier souterrain - filet interieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE_SOU", + "REGIONALE_4_SOU", + "REGIONALE_3_SOU", + "REGIONALE_2_SOU", + "REGIONALE_1_SOU" + ], + "paint": { + "line-color": "rgba(255, 255, 255, 0.5)", + "line-width": { + "stops": [ + [ + 6, + 1.4 + ], + [ + 9, + 1.5 + ], + [ + 14, + 3.2 + ], + [ + 15, + 5.8 + ], + [ + 16, + 8.3 + ], + [ + 17, + 16.2 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR_SOU" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FFFFFF" + ], + [ + 10, + "#FF994C" + ], + [ + 17, + "#FFAD6F" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.4 + ], + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier souterrain - filet interieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE_SOU", + "PRINCIPALE_4_SOU", + "PRINCIPALE_3_SOU", + "PRINCIPALE_2_SOU", + "PRINCIPALE_1_SOU" + ], + "paint": { + "line-color": "rgba(255, 255, 255, 0.5)", + "line-width": { + "stops": [ + [ + 4, + 0.5 + ], + [ + 6, + 1.8 + ], + [ + 9, + 2.1 + ], + [ + 14, + 4.4 + ], + [ + 15, + 7.3 + ], + [ + 16, + 10 + ], + [ + 17, + 18.5 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR_SOU" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FF0033" + ], + [ + 17, + "#FF476C" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.5 + ], + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier souterrain - filet interieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SOU", + "AUTOROU_LIBRE_SOU" + ], + "paint": { + "line-color": "rgba(255, 255, 255, 0.5)", + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.8 + ], + [ + 15, + 9 + ], + [ + 16, + 12 + ], + [ + 17, + 20.8 + ] + ] + } + } + }, + { + "id": "Routier souterrain - axe central - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SOU", + "AUTOROU_LIBRE_SOU" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "Routier souterrain - filet interieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SOU" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FF476C" + ], + [ + 17, + "#FF476C" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier souterrain - axe central - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sou", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SOU" + ], + "paint": { + "line-color": "#808080", + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "réseau hydro - cours d'eau temporaire", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "COURS_D_EAU_TEMP", + "COURS_D_EAU_TEMP_MOY" + ], + "paint": { + "line-color": "#B3D9FF", + "line-width": { + "stops": [ + [ + 12, + 1.5 + ], + [ + 17, + 4 + ] + ] + }, + "line-dasharray": [ + 6, + 2 + ] + } + }, + { + "id": "réseau hydro - cours d'eau", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau", + "minzoom": 3, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "COURS_D_EAU" + ], + "paint": { + "line-color": "#B3D9FF", + "line-width": { + "stops": [ + [ + 4, + 0.3 + ], + [ + 7, + 1.5 + ], + [ + 12, + 1.5 + ], + [ + 17, + 6.5 + ] + ] + } + } + }, + { + "id": "réseau hydro - canal", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CANAL" + ], + "paint": { + "line-color": "#B3D9FF", + "line-width": { + "stops": [ + [ + 12, + 1.4 + ], + [ + 17, + 5.9 + ] + ] + } + } + }, + { + "id": "réseau hydro - filet interieur - aqueduc", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AQUEDUC_AU_SOL" + ], + "paint": { + "line-color": "#B3D9FF", + "line-width": { + "stops": [ + [ + 12, + 1.4 + ], + [ + 16, + 3.5 + ], + [ + 17, + 5.9 + ] + ] + } + } + }, + { + "id": "réseau hydro - carre - aqueduc", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AQUEDUC_AU_SOL" + ], + "paint": { + "line-color": "#B3D9FF", + "line-width": { + "stops": [ + [ + 12, + 3.5 + ], + [ + 16, + 8.7 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 1, + 5 + ] + } + }, + { + "id": "réseau hydro - cours d'eau moyen ", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "COURS_D_EAU_MOY" + ], + "paint": { + "line-color": "#B3D9FF", + "line-width": { + "stops": [ + [ + 7, + 2 + ], + [ + 12, + 2.5 + ] + ] + } + } + }, + { + "id": "réseau hydro - cours d'eau large ", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "COURS_D_EAU_LAR" + ], + "paint": { + "line-color": "#B3D9FF", + "line-width": { + "stops": [ + [ + 7, + 3 + ], + [ + 11, + 5 + ] + ] + } + } + }, + { + "id": "parcellaire - parcelle surface", + "type": "fill", + "source": "plan_ign", + "source-layer": "parcellaire_parcelle", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "PARCELLE" + ], + "paint": { + "fill-color": "#FFFFD1", + "fill-opacity": 0.7 + } + }, + { + "id": "cimetiere surfacique 1", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "CIMETIERE_SURF", + "CIMETIERE_MILI_SURF", + "NECROPOLE_NATIONALE" + ], + "paint": { + "fill-color": "#F0F0F0", + "fill-opacity": 0.5, + "fill-outline-color": "#818181" + } + }, + { + "id": "cimetiere surfacique 2", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "CIMETIERE_SURF", + "CIMETIERE_MILI_SURF", + "NECROPOLE_NATIONALE" + ], + "paint": { + "fill-pattern": "Cimetiere" + } + }, + { + "id": "bati surfacique mairie - Zoom 14", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "maxzoom": 14, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "MAIRIE", + "MAIRIE_ANNEXE" + ], + "paint": { + "fill-color": "#FF0032" + } + }, + { + "id": "bati surfacique mairie - Zoom 15,16,17,18", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 14, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "MAIRIE", + "MAIRIE_ANNEXE" + ], + "paint": { + "fill-color": { + "stops": [ + [ + 14, + "#FF0032" + ], + [ + 15, + "#C80032" + ] + ] + }, + "fill-outline-color": "#000000" + } + }, + { + "id": "bati surfacique fonctionnel industriel ou commercial - Zoom 14,15", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "maxzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "BATI_COMMERCIAL", + "BATI_INDUSTRIEL", + "HANGAR", + "HANGAR_COMMERCIAL", + "HANGAR_INDUSTRIEL" + ], + "paint": { + "fill-color": "#757575" + } + }, + { + "id": "bati surfacique fonctionnel industriel ou commercial - Zoom 16,17,18", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "BATI_COMMERCIAL", + "BATI_INDUSTRIEL", + "HANGAR", + "HANGAR_COMMERCIAL", + "HANGAR_INDUSTRIEL" + ], + "paint": { + "fill-color": { + "stops": [ + [ + 15, + "#818181" + ], + [ + 16, + "#8E8E8E" + ] + ] + }, + "fill-outline-color": "#000000" + } + }, + { + "id": "bati surfacique fonctionnel public - Zoom 14,15", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "maxzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "BATI_PUBLIC", + "HANGAR_PUBLIC" + ], + "paint": { + "fill-color": "#6C6C8C" + } + }, + { + "id": "bati surfacique fonctionnel public - Zoom 16,17,18", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "BATI_PUBLIC", + "HANGAR_PUBLIC" + ], + "paint": { + "fill-color": { + "stops": [ + [ + 15, + "#66668C" + ], + [ + 16, + "#63638C" + ] + ] + }, + "fill-outline-color": "#000000" + } + }, + { + "id": "bati surfacique fonctionnel sportif - bordure", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 15, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "BATI_SPORTIF" + ], + "paint": { + "line-color": "#758275", + "line-width": 4 + } + }, + { + "id": "bati surfacique fonctionnel sportif", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "BATI_SPORTIF" + ], + "paint": { + "fill-color": { + "stops": [ + [ + 14, + "#92A292" + ], + [ + 15, + "#92A292" + ] + ] + } + } + }, + { + "id": "bati surfacique fonctionnel gare - Zoom 14,15", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "maxzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "BATI_GARE" + ], + "paint": { + "fill-color": "#9C9EC3" + } + }, + { + "id": "bati surfacique fonctionnel gare - Zoom 16,17,18", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "BATI_GARE" + ], + "paint": { + "fill-color": { + "stops": [ + [ + 15, + "#9C9EC3" + ], + [ + 16, + "#9C9EC3" + ] + ] + }, + "fill-outline-color": "#635D7A" + } + }, + { + "id": "bati surfacique quelconque - Zoom 15", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 14, + "maxzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "BATI_QQUE" + ], + "paint": { + "fill-color": "#323232" + } + }, + { + "id": "bati surfacique quelconque - Zoom 16,17,18", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "BATI_QQUE" + ], + "paint": { + "fill-color": { + "stops": [ + [ + 15, + "#404040" + ], + [ + 16, + "#4C4C4C" + ] + ] + }, + "fill-outline-color": "#000000" + } + }, + { + "id": "bati hydro surfacique - Autre", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "ECLUSE_SURF", + "RESERVOIR_EAU_SURF" + ], + "paint": { + "fill-color": "#ADCCD9", + "fill-outline-color": "#336699" + } + }, + { + "id": "bati hydro surfacique - Pecherie", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "PECHERIE_SURF" + ], + "paint": { + "fill-color": "#BFE2F0", + "fill-outline-color": "#509FEF" + } + }, + { + "id": "bati hydro surfacique - Barrage", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "BARRAGE_SURF" + ], + "paint": { + "fill-color": "#FFFFFF", + "fill-outline-color": "#464646" + } + }, + { + "id": "bati hydro surfacique - Chateau d'eau", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "CHATEAU_EAU_SURF" + ], + "paint": { + "fill-color": "#0081FF" + } + }, + { + "id": "bati infra surfacique - Silo", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "SILO_SURF" + ], + "paint": { + "fill-color": "#C7A9AA", + "fill-outline-color": "#696969" + } + }, + { + "id": "bati infra surfacique - Reservoir indus", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 14, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "RESERVOIR_INDUS_SURF" + ], + "paint": { + "fill-color": "#8D9DAA", + "fill-outline-color": "#464646" + } + }, + { + "id": "bati infra surfacique - Serre", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "SERRE_SURF" + ], + "paint": { + "fill-color": "#CAD6D9", + "fill-outline-color": "#8C8C8C" + } + }, + { + "id": "bati infra surfacique - poste electrique", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "POSTE_ELEC_SURF" + ], + "paint": { + "fill-color": "#7993B6", + "fill-opacity": 0.3 + } + }, + { + "id": "bati infra surfacique - poste electrique bord", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "POSTE_ELEC_SURF" + ], + "paint": { + "line-color": "#000000", + "line-width": { + "stops": [ + [ + 12, + 0.3 + ], + [ + 17, + 1.2 + ] + ] + } + } + }, + { + "id": "bati religieux surfacique - Zoom 14", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "maxzoom": 14, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "CHAPELLE_SURF", + "EGLISE_SURF", + "CHRETIEN_SURF", + "SYNAGOGUE_SURF", + "MOSQUEE_SURF", + "AUTRE_CULTE_SURF", + "RELIGIEUX_QQUE" + ], + "paint": { + "fill-color": "#967575" + } + }, + { + "id": "bati religieux surfacique - Zoom 15,16,17,18", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 14, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "CHAPELLE_SURF", + "EGLISE_SURF", + "CHRETIEN_SURF", + "SYNAGOGUE_SURF", + "MOSQUEE_SURF", + "AUTRE_CULTE_SURF", + "RELIGIEUX_QQUE" + ], + "paint": { + "fill-color": { + "stops": [ + [ + 14, + "#967575" + ], + [ + 15, + "#A27E7E" + ] + ] + }, + "fill-outline-color": { + "stops": [ + [ + 14, + "#000000" + ], + [ + 15, + "#000000" + ] + ] + } + } + }, + { + "id": "bati remarquable surfacique", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "FORTIF_SURF", + "CHATEAU_SURF", + "TOUR_MOULIN_SURF", + "ARENE_THEATRE", + "ARC_TRIOMPHE_SURF", + "MONUMENT_SURF" + ], + "paint": { + "fill-color": "#9B9B9B", + "fill-outline-color": "#6E6E6E" + } + }, + { + "id": "bati sportif surfacique fond", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "TENNIS_SURF", + "SPORT_INDIF_SURF", + "FOOT_SURF", + "MULTI_SPORT_SURF", + "PISTE_SPORT_SURF", + "NATATION_SURF" + ], + "paint": { + "fill-color": "#FFFFFF", + "fill-outline-color": "#FFFFFF" + } + }, + { + "id": "bati sportif surfacique", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "TENNIS_SURF", + "SPORT_INDIF_SURF", + "FOOT_SURF", + "MULTI_SPORT_SURF", + "PISTE_SPORT_SURF", + "NATATION_SURF" + ], + "paint": { + "line-color": "#758275", + "line-width": 2 + } + }, + { + "id": "bati transport surfacique - piste", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "PISTE_DUR", + "PISTE_HERBE" + ], + "paint": { + "fill-color": "#DBDBDB", + "fill-outline-color": "#808080" + } + }, + { + "id": "bati ZAI - Autres", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_zai", + "minzoom": 15, + "maxzoom": 18, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "nature", + "Lycée", + "Université", + "Capitainerie", + "Gendarmerie", + "Siège d'EPCI", + "Musée", + "Collège", + "Maison de retraite", + "Etablissement thermal", + "Autre service déconcentré de l'Etat", + "Etablissement pénitentiaire", + "Divers public ou administratif", + "Autre établissement d'enseignement", + "Maison du parc", + "Palais de justice", + "Enseignement primaire", + "Office de tourisme", + "Hôpital", + "Police", + "Piscine", + "Enseignement supérieur", + "Poste", + "Caserne", + "Etablissement hospitalier", + "Etablissement extraterritorial", + "Science", + "Structure d'accueil pour personnes handicapées", + "Administration centrale de l'Etat", + "Caserne de pompiers" + ], + "paint": { + "fill-color": "#E3BFE2", + "fill-opacity": 0.5, + "fill-outline-color": "#E39FE1" + } + }, + { + "id": "bati ZAI - Commandement", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_zai", + "minzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "nature", + "Hôtel de département", + "Hôtel de région", + "Hôtel de collectivité", + "Préfecture de région", + "Préfecture", + "Sous-préfecture" + ], + "paint": { + "fill-color": "#FF0000", + "fill-opacity": 0.3, + "fill-outline-color": "#B40000" + } + }, + { + "id": "construction linéaire - mur", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "MUR" + ], + "paint": { + "line-color": "#8C8C8C", + "line-width": 0.3 + } + }, + { + "id": "construction linéaire - autre", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "RUINE_LIN", + "MUR_SOUTENEMENT", + "FORTIF_LIN" + ], + "paint": { + "line-color": "#646464", + "line-width": 0.5 + } + }, + { + "id": "construction hydrographique linéaire - Barrage", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "BARRAGE_LIN" + ], + "paint": { + "line-color": "#646464", + "line-width": { + "stops": [ + [ + 13, + 1.5 + ], + [ + 17, + 5 + ] + ] + } + } + }, + { + "id": "construction hydrographique linéaire - Quai", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "QUAI", + "DIGUE" + ], + "paint": { + "line-color": "#828282", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 17, + 2.5 + ] + ] + } + } + }, + { + "id": "construction hydrographique linéaire - Pecherie", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PECHERIE_LIN" + ], + "paint": { + "line-color": "#0066CC", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 17, + 2.5 + ] + ] + } + } + }, + { + "id": "Chemin a niveau - piste cyclable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "PISTE_CYCLABLE", + "VOIE_VERTE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#9B5CCC" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.1 + ], + [ + 15, + 1.7 + ], + [ + 16, + 2 + ], + [ + 17, + 3.5 + ], + [ + 18, + 6 + ] + ] + }, + "line-dasharray": [ + 6, + 2 + ] + } + }, + { + "id": "Chemin a niveau - filet exterieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#555555" + ], + [ + 18, + "#C8C8C8" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.75 + ], + [ + 15, + 3 + ], + [ + 16, + 4.2 + ], + [ + 17, + 9.5 + ] + ] + } + } + }, + { + "id": "Chemin a niveau - filet interieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.9 + ], + [ + 16, + 2.7 + ], + [ + 17, + 5.8 + ] + ] + }, + "line-dasharray": [ + 1, + 0.2 + ] + } + }, + { + "id": "Chemin a niveau - Rue pietonne", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "RUE_PIETONNE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#555555" + ], + [ + 18, + "#F8E5D5" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 5 + ] + ] + }, + "line-dasharray": [ + 1, + 3 + ] + } + }, + { + "id": "Chemin a niveau - sentier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "SENTIER" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#555555" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 6 + ] + ] + }, + "line-dasharray": [ + 4, + 3 + ] + } + }, + { + "id": "Chemin a niveau - chemin", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CHEMIN" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#555555" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 7 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#646464" + ], + [ + 17, + "#8C8C8C" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier a niveau - filet interieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ], + [ + 18, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3", + "BRET_AUTO_PEAGE_2", + "BRET_AUTO_PEAGE_1", + "BRET_AUTO_LIBRE_3", + "BRET_AUTO_LIBRE_2", + "BRET_AUTO_LIBRE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#000000" + ], + [ + 17, + "#000000" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 2.5 + ], + [ + 14, + 3.7 + ], + [ + 15, + 6.8 + ], + [ + 16, + 8.4 + ], + [ + 17, + 14 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#969696" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4", + "NON_CLASSEE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#969696" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 7, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE", + "LOCALE_4", + "LOCALE_3", + "LOCALE_2", + "LOCALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#8C8C8C" + ], + [ + 13, + "#B4B4B4" + ], + [ + 17, + "#B4B4B4" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 11, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE", + "REGIONALE_4", + "REGIONALE_3", + "REGIONALE_2", + "REGIONALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#828282" + ], + [ + 10, + "#B4B4B4" + ], + [ + 17, + "#B4B4B4" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE", + "PRINCIPALE_4", + "PRINCIPALE_3", + "PRINCIPALE_2", + "PRINCIPALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#000000" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE", + "AUTOROU_LIBRE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#000000" + ], + [ + 17, + "#000000" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet extérieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 8, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 12, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3", + "BRET_AUTO_PEAGE_2", + "BRET_AUTO_PEAGE_1", + "BRET_AUTO_LIBRE_3", + "BRET_AUTO_LIBRE_2", + "BRET_AUTO_LIBRE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FF0033" + ], + [ + 17, + "#FF476C" + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 1.5 + ], + [ + 14, + 2.6 + ], + [ + 15, + 5.2 + ], + [ + 16, + 6.7 + ], + [ + 17, + 10.8 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4", + "NON_CLASSEE" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE", + "LOCALE_4", + "LOCALE_3", + "LOCALE_2", + "LOCALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#F2B361" + ], + [ + 7, + "#FFFFFF" + ], + [ + 12, + "#FFFFFF" + ], + [ + 13, + "#FFA35D" + ], + [ + 17, + "#FFAD6F" + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 1.3 + ], + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.1 + ], + [ + 17, + 13.1 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 11, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#FFFFFF" + ], + [ + 13, + "#FFA35D" + ], + [ + 17, + "#FFAD6F" + ], + [ + 18, + "#EDEDED" + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier a niveau - filet interieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE", + "REGIONALE_4", + "REGIONALE_3", + "REGIONALE_2", + "REGIONALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#F2A949" + ], + [ + 7, + "#FFFFFF" + ], + [ + 9, + "#FFFFFF" + ], + [ + 10, + "#FF994C" + ], + [ + 17, + "#FFAD6F" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 1.1 + ], + [ + 6, + 1.4 + ], + [ + 9, + 1.5 + ], + [ + 14, + 3.2 + ], + [ + 15, + 5.8 + ], + [ + 16, + 8.3 + ], + [ + 17, + 16.2 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FFFFFF" + ], + [ + 10, + "#FF994C" + ], + [ + 17, + "#FFAD6F" + ], + [ + 18, + "#EDEDED" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.4 + ], + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier a niveau - filet interieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE", + "PRINCIPALE_4", + "PRINCIPALE_3", + "PRINCIPALE_2", + "PRINCIPALE_1" + ], + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#F29924" + ], + [ + 7, + "#FF0033" + ], + [ + 9, + "#FF0033" + ], + [ + 17, + "#FF476C" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.6 + ], + [ + 6, + 1.8 + ], + [ + 9, + 2.1 + ], + [ + 14, + 4.4 + ], + [ + 15, + 7.3 + ], + [ + 16, + 10 + ], + [ + 17, + 18.5 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FF0033" + ], + [ + 17, + "#FF476C" + ], + [ + 18, + "#EDEDED" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.5 + ], + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier a niveau - filet interieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE", + "AUTOROU_LIBRE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FF0033" + ], + [ + 17, + "#FF476C" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.8 + ], + [ + 15, + 9 + ], + [ + 16, + 12 + ], + [ + 17, + 20.8 + ] + ] + } + } + }, + { + "id": "Routier a niveau - axe central - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE", + "AUTOROU_LIBRE" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "Routier a niveau - filet interieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FF0033" + ], + [ + 17, + "#FF476C" + ], + [ + 18, + "#EDEDED" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier a niveau - axe centrale - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR" + ], + "paint": { + "line-color": "#808080", + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "Ferre a niveau - voie normale", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_1", + "VF_2", + "VF_3", + "VF_4", + "VF_ELEC_1", + "VF_ELEC_2", + "VF_ELEC_3", + "VF_ELEC_4" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 0.8 + ], + [ + 17, + 2.5 + ] + ] + } + } + }, + { + "id": "Ferre a niveau - voie normale trait perpendic", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_1", + "VF_2", + "VF_3", + "VF_4", + "VF_ELEC_1", + "VF_ELEC_2", + "VF_ELEC_3", + "VF_ELEC_4" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 0.1, + 10 + ] + } + }, + { + "id": "Ferre a niveau - voie etroite", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_ETROITE_1", + "VF_ETROITE_2", + "VF_ETROITE" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + } + } + }, + { + "id": "Ferre a niveau - voie etroite trait perpendic", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_ETROITE_1", + "VF_ETROITE_2", + "VF_ETROITE" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 0.1, + 10 + ] + } + }, + { + "id": "Ferre a niveau - voie service", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_SERVICE", + "VF_NON_EXPLOITEE" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + }, + "line-dasharray": [ + 5, + 2, + 1, + 2 + ] + } + }, + { + "id": "Ferre a niveau - voie en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "VF_EN_CONSTR" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Ferre a niveau - voie en construction trait perpendic", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "VF_EN_CONSTR" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 0.1, + 10 + ] + } + }, + { + "id": "Ferre a niveau - funic/urbain", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "FUNI_CREMAILLERE", + "TRANSPORT_URBAIN" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + } + } + }, + { + "id": "Ferre a niveau - 2 trait perpendic - funic/urbain", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "FUNI_CREMAILLERE", + "TRANSPORT_URBAIN" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 17 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.2, + 0.1, + 10 + ] + } + }, + { + "id": "liaison routiere - Bac Liaison Maritime", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_liaison", + "minzoom": 8, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BAC_AUTO", + "LIAISON_MARITIME", + "BAC_LIAISON_MARITIME" + ], + "paint": { + "line-color": "#5792C2", + "line-width": { + "stops": [ + [ + 8, + 1 + ], + [ + 13, + 2.5 + ] + ] + } + } + }, + { + "id": "liaison routiere - Gue route", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_liaison", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "GUE_ROUTE" + ], + "paint": { + "line-color": { + "stops": [ + [ + 13, + "#BEBEBE" + ], + [ + 17, + "#646464" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "liaison routiere - Gue chemin", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_liaison", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "GUE_CHEMIN" + ], + "paint": { + "line-color": { + "stops": [ + [ + 13, + "#BEBEBE" + ], + [ + 17, + "#646464" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.6 + ], + [ + 15, + 2.9 + ], + [ + 16, + 4.4 + ], + [ + 17, + 6.5 + ] + ] + } + } + }, + { + "id": "liaison routiere - filet extérieur - Pont passerelle", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_liaison", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "PONT_PASSERELLE", + "PONT_LIN", + "PONT_MOBILE_LIN" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#C8C8C8" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 2.2 + ], + [ + 15, + 3.8 + ], + [ + 16, + 5.4 + ], + [ + 17, + 11.8 + ] + ] + } + } + }, + { + "id": "liaison routiere - filet intérieur - Pont passerelle", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_liaison", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "PONT_PASSERELLE", + "PONT_LIN", + "PONT_MOBILE_LIN" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 0.7 + ], + [ + 15, + 1.1 + ], + [ + 16, + 1.7 + ], + [ + 17, + 3.8 + ] + ] + } + } + }, + { + "id": "Routier surfacique", + "type": "fill", + "source": "plan_ign", + "source-layer": "routier_surf", + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "SURF_ROUT_PRINC", + "SURF_ROUT_REG", + "SURF_ROUT_LOC", + "SURF_ROUT_NON_CLA" + ], + "paint": { + "fill-color": "#FFFFFF", + "fill-outline-color": "#000000" + } + }, + { + "id": "Routier surfacique - Dalle de protection", + "type": "fill", + "source": "plan_ign", + "source-layer": "routier_surf", + "maxzoom": 18, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "DALLE_DE_PROTECTION" + ], + "paint": { + "fill-opacity": 0.5, + "fill-color": "#FFFFFF", + "fill-outline-color": "#000000" + } + }, + { + "id": "Routier surfacique - Escalier surfacique", + "type": "fill", + "source": "plan_ign", + "source-layer": "routier_surf", + "maxzoom": 18, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "ESCALIER_SURF" + ], + "paint": { + "fill-opacity": 0.8, + "fill-color": "#FFFFFF", + "fill-outline-color": "#918091" + } + }, + { + "id": "Routier surfacique - Péage surfacique", + "type": "fill", + "source": "plan_ign", + "source-layer": "routier_surf", + "maxzoom": 18, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "SURF_PEAGE" + ], + "paint": { + "fill-color": "#F2DAAA", + "fill-outline-color": "#000000" + } + }, + { + "id": "bati transport surfacique - bati peage", + "type": "fill", + "source": "plan_ign", + "source-layer": "bati_surf", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "BATI_PEAGE" + ], + "paint": { + "fill-color": "#DCDCDC", + "fill-outline-color": "#808080" + } + }, + { + "id": "réseau hydro - cours d'eau superieur", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau_sup", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "COURS_D_EAU_SUP", + "COURS_D_EAU_MOY_SUP" + ], + "paint": { + "line-color": "#B3D9FF", + "line-width": { + "stops": [ + [ + 12, + 1.5 + ], + [ + 17, + 6.5 + ] + ] + } + } + }, + { + "id": "réseau hydro - canal superieur", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau_sup", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CANAL_SUP" + ], + "paint": { + "line-color": "#B3D9FF", + "line-width": { + "stops": [ + [ + 12, + 1.4 + ], + [ + 17, + 5.9 + ] + ] + } + } + }, + { + "id": "réseau hydro - filet interieur - aqueduc superieur", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau_sup", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AQUEDUC_SUP" + ], + "paint": { + "line-color": "#B3D9FF", + "line-width": { + "stops": [ + [ + 12, + 1.4 + ], + [ + 16, + 3.5 + ], + [ + 17, + 5.9 + ] + ] + } + } + }, + { + "id": "réseau hydro - carre - aqueduc superieur", + "type": "line", + "source": "plan_ign", + "source-layer": "hydro_reseau_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AQUEDUC_SUP" + ], + "paint": { + "line-color": "#B3D9FF", + "line-width": { + "stops": [ + [ + 12, + 3.5 + ], + [ + 16, + 8.7 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 1, + 5 + ] + } + }, + { + "id": "Chemin superieur - piste cyclable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "PISTE_CYCLABLE_SUP", + "VOIE_VERTE_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#9B5CCC" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.1 + ], + [ + 15, + 1.7 + ], + [ + 16, + 2 + ], + [ + 17, + 3.5 + ], + [ + 18, + 6 + ] + ] + }, + "line-dasharray": [ + 6, + 2 + ] + } + }, + { + "id": "Chemin superieur - filet exterieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#555555" + ], + [ + 18, + "#C8C8C8" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1.75 + ], + [ + 15, + 3 + ], + [ + 16, + 4.2 + ], + [ + 17, + 9.5 + ] + ] + } + } + }, + { + "id": "Chemin superieur - filet interieur - escalier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "ESCALIER_SUP" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.9 + ], + [ + 16, + 2.7 + ], + [ + 17, + 5.8 + ] + ] + }, + "line-dasharray": [ + 1, + 0.2 + ] + } + }, + { + "id": "Chemin superieur - Rue pietonne", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "RUE_PIETONNE_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#555555" + ], + [ + 18, + "#EBEBEB" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 5 + ] + ] + }, + "line-dasharray": [ + 1, + 3 + ] + } + }, + { + "id": "Chemin superieur - sentier", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "SENTIER_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#555555" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 6 + ] + ] + }, + "line-dasharray": [ + 4, + 3 + ] + } + }, + { + "id": "Chemin superieur - chemin", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_chemin_sup", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CHEMIN_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#555555" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ], + [ + 18, + 7 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#646464" + ], + [ + 17, + "#8C8C8C" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier superieur - filet extérieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3_SUP", + "BRET_AUTO_PEAGE_2_SUP", + "BRET_AUTO_PEAGE_1_SUP", + "BRET_AUTO_LIBRE_3_SUP", + "BRET_AUTO_LIBRE_2_SUP", + "BRET_AUTO_LIBRE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#000000" + ], + [ + 17, + "#000000" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 2.5 + ], + [ + 14, + 3.7 + ], + [ + 15, + 6.8 + ], + [ + 16, + 8.4 + ], + [ + 17, + 14 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#969696" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4_SUP", + "NON_CLASSEE_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#969696" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3.2 + ], + [ + 15, + 5.4 + ], + [ + 16, + 7.7 + ], + [ + 17, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE_SUP", + "LOCALE_4_SUP", + "LOCALE_3_SUP", + "LOCALE_2_SUP", + "LOCALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#8C8C8C" + ], + [ + 13, + "#B4B4B4" + ], + [ + 17, + "#B4B4B4" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 11, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR_SUP" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE_SUP", + "REGIONALE_4_SUP", + "REGIONALE_3_SUP", + "REGIONALE_2_SUP", + "REGIONALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#828282" + ], + [ + 10, + "#B4B4B4" + ], + [ + 17, + "#B4B4B4" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR_SUP" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE_SUP", + "PRINCIPALE_4_SUP", + "PRINCIPALE_3_SUP", + "PRINCIPALE_2_SUP", + "PRINCIPALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 17, + "#000000" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR_SUP" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 8, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SUP", + "AUTOROU_LIBRE_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#000000" + ], + [ + 17, + "#000000" + ], + [ + 18, + "#FFFFFF" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet extérieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SUP" + ], + "paint": { + "line-color": "#C8C8C8", + "line-width": { + "stops": [ + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route non revetu carrosable", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_REVETUE_CARRO_SUP" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ], + [ + 18, + 16.8 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - bretelle autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 12, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_AUTO_PEAGE_3_SUP", + "BRET_AUTO_PEAGE_2_SUP", + "BRET_AUTO_PEAGE_1_SUP", + "BRET_AUTO_LIBRE_3_SUP", + "BRET_AUTO_LIBRE_2_SUP", + "BRET_AUTO_LIBRE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FF0033" + ], + [ + 17, + "#FF476C" + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 1.5 + ], + [ + 14, + 2.6 + ], + [ + 15, + 5.2 + ], + [ + 16, + 6.7 + ], + [ + 17, + 10.8 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route non classee restreint", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "NON_CLASSEE_RESTREINT_SUP" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route non classee", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "NON_CLASSEE_4_SUP", + "NON_CLASSEE_SUP" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.3 + ], + [ + 17, + 13.5 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route locale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_LOCALE_SUP", + "LOCALE_4_SUP", + "LOCALE_3_SUP", + "LOCALE_2_SUP", + "LOCALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#FFFFFF" + ], + [ + 13, + "#FFA35D" + ], + [ + 17, + "#FFAD6F" + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 1.3 + ], + [ + 14, + 2.3 + ], + [ + 15, + 4.1 + ], + [ + 16, + 6.1 + ], + [ + 17, + 13.1 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route locale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 11, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LOCALE_CONSTR_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#FFFFFF" + ], + [ + 13, + "#FFA35D" + ], + [ + 17, + "#FFAD6F" + ] + ] + }, + "line-width": { + "stops": [ + [ + 9, + 2 + ], + [ + 14, + 3.5 + ], + [ + 15, + 6 + ], + [ + 16, + 8.4 + ], + [ + 17, + 18.3 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier superieur - filet interieur - route regionale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_REGIONALE_SUP", + "REGIONALE_4_SUP", + "REGIONALE_3_SUP", + "REGIONALE_2_SUP", + "REGIONALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FFFFFF" + ], + [ + 10, + "#FF994C" + ], + [ + 17, + "#FFAD6F" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.4 + ], + [ + 9, + 1.5 + ], + [ + 14, + 3.2 + ], + [ + 15, + 5.8 + ], + [ + 16, + 8.3 + ], + [ + 17, + 16.2 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route regionale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REGIONALE_CONSTR_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FFFFFF" + ], + [ + 10, + "#FF994C" + ], + [ + 17, + "#FFAD6F" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.5 + ], + [ + 9, + 2.3 + ], + [ + 14, + 5 + ], + [ + 15, + 8.1 + ], + [ + 16, + 11.2 + ], + [ + 17, + 22 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier superieur - filet interieur - route principale", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "BRET_PRINCIPALE_SUP", + "PRINCIPALE_4_SUP", + "PRINCIPALE_3_SUP", + "PRINCIPALE_2_SUP", + "PRINCIPALE_1_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FF0033" + ], + [ + 17, + "#FF476C" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.5 + ], + [ + 6, + 1.8 + ], + [ + 9, + 2.1 + ], + [ + 14, + 4.4 + ], + [ + 15, + 7.3 + ], + [ + 16, + 10 + ], + [ + 17, + 18.5 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - route principale en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PRINCIPALE_CONSTR_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FF0033" + ], + [ + 17, + "#FF476C" + ] + ] + }, + "line-width": { + "stops": [ + [ + 6, + 1.8 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.9 + ], + [ + 15, + 9 + ], + [ + 16, + 12.2 + ], + [ + 17, + 22.5 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier superieur - filet interieur - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SUP", + "AUTOROU_LIBRE_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FF0033" + ], + [ + 17, + "#FF476C" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 2.7 + ], + [ + 14, + 5.8 + ], + [ + 15, + 9 + ], + [ + 16, + 12 + ], + [ + 17, + 20.8 + ] + ] + } + } + }, + { + "id": "Routier superieur - axe central - autoroute", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "AUTOROU_PEAGE_SUP", + "AUTOROU_LIBRE_SUP" + ], + "paint": { + "line-color": "#FFFFFF", + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "Routier superieur - filet interieur - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SUP" + ], + "paint": { + "line-color": { + "stops": [ + [ + 9, + "#FF0033" + ], + [ + 17, + "#FF476C" + ] + ] + }, + "line-width": { + "stops": [ + [ + 4, + 0.7 + ], + [ + 6, + 2.5 + ], + [ + 9, + 3.5 + ], + [ + 14, + 7.5 + ], + [ + 15, + 11 + ], + [ + 16, + 15 + ], + [ + 17, + 26 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Routier superieur - axe centrale - autoroute en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "routier_route_sup", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "AUTOROU_CONSTR_SUP" + ], + "paint": { + "line-color": "#808080", + "line-width": { + "stops": [ + [ + 9, + 0.6 + ], + [ + 14, + 0.7 + ], + [ + 15, + 1 + ], + [ + 16, + 1.2 + ], + [ + 17, + 2.1 + ] + ] + } + } + }, + { + "id": "Ferre superieur - voie normale", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_1_SUP", + "VF_2_SUP", + "VF_3_SUP", + "VF_4_SUP", + "VF_ELEC_1_SUP", + "VF_ELEC_2_SUP", + "VF_ELEC_3_SUP", + "VF_ELEC_4_SUP" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 0.8 + ], + [ + 17, + 2.5 + ] + ] + } + } + }, + { + "id": "Ferre superieur - voie normale trait perpendic", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_1_SUP", + "VF_2_SUP", + "VF_3_SUP", + "VF_4_SUP", + "VF_ELEC_1_SUP", + "VF_ELEC_2_SUP", + "VF_ELEC_3_SUP", + "VF_ELEC_4_SUP" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 0.1, + 10 + ] + } + }, + { + "id": "Ferre superieur - voie etroite", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_ETROITE_1_SUP", + "VF_ETROITE_2_SUP", + "VF_ETROITE_SUP" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + } + } + }, + { + "id": "Ferre superieur - voie etroite trait perpendic", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "minzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_ETROITE_1_SUP", + "VF_ETROITE_2_SUP", + "VF_ETROITE_SUP" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 0.1, + 10 + ] + } + }, + { + "id": "Ferre superieur - voie service", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "minzoom": 14, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "VF_SERVICE_SUP", + "VF_NON_EXPLOITEE_SUP" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + }, + "line-dasharray": [ + 5, + 2, + 1, + 2 + ] + } + }, + { + "id": "Ferre superieur - voie en construction", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "VF_EN_CONSTR_SUP" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "Ferre superieur - voie en construction trait perpendic", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "minzoom": 10, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "VF_EN_CONSTR_SUP" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 14.7 + ] + ] + }, + "line-dasharray": [ + 0.1, + 10 + ] + } + }, + { + "id": "Ferre superieur - funic/urbain", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "FUNI_CREMAILLERE_SUP", + "TRANSPORT_URBAIN_SUP" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 0.3 + ], + [ + 17, + 1.8 + ] + ] + } + } + }, + { + "id": "Ferre superieur - 2 trait perpendic - funic/urbain", + "type": "line", + "source": "plan_ign", + "source-layer": "ferre_sup", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "FUNI_CREMAILLERE_SUP", + "TRANSPORT_URBAIN_SUP" + ], + "paint": { + "line-color": "#505050", + "line-width": { + "stops": [ + [ + 10, + 3.5 + ], + [ + 17, + 17 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.2, + 0.1, + 10 + ] + } + }, + { + "id": "Limite - cloture", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CLOTURE" + ], + "paint": { + "line-color": "#000000", + "line-width": { + "stops": [ + [ + 13, + 0.6 + ], + [ + 17, + 1 + ] + ] + }, + "line-dasharray": [ + 1.5, + 4 + ] + } + }, + { + "id": "Limite - layon", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 14, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LAYON" + ], + "paint": { + "line-color": "#717171", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 1.2 + ], + [ + 16, + 1.4 + ], + [ + 17, + 2 + ] + ] + }, + "line-dasharray": [ + 4, + 7 + ] + } + }, + { + "id": "Zone Règlementee - Enceinte militaire", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_ZONE_REGLEMENTEE", + "LIM_ENCEINTE_MILITAIRE", + "LIM_ENCEINTE_MILI", + "LIM_CHAMP_TIR" + ], + "paint": { + "line-color": "rgba(226, 130, 92, 0.8)", + "line-width": { + "stops": [ + [ + 13, + 1.7 + ], + [ + 17, + 3.1 + ] + ] + }, + "line-dasharray": [ + 4, + 1, + 2, + 5 + ] + } + }, + { + "id": "limite zone naturelle", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_ZONE_NATURELLE", + "LIM_ZONE_NATURELLE_ILE", + "LIM_RESERVE_NATURELLE" + ], + "paint": { + "line-color": "#FFC2CB", + "line-width": { + "stops": [ + [ + 13, + 2 + ], + [ + 17, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 1 + ] + } + }, + { + "id": "limite zone naturelle - Parc naturel 10", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "maxzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_PARC_NATUREL", + "LIM_PARC_NATUREL_ILE" + ], + "paint": { + "line-color": "#42A266", + "line-width": { + "stops": [ + [ + 13, + 2 + ], + [ + 17, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 1 + ] + } + }, + { + "id": "limite zone naturelle - Parc naturel 11", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 10, + "maxzoom": 11, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_PARC_NATUREL", + "LIM_PARC_NATUREL_ILE" + ], + "paint": { + "line-color": "#42A266", + "line-width": { + "stops": [ + [ + 13, + 2 + ], + [ + 17, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "limite zone naturelle - Parc naturel 12", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 11, + "maxzoom": 12, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_PARC_NATUREL", + "LIM_PARC_NATUREL_ILE" + ], + "paint": { + "line-color": "#42A266", + "line-width": { + "stops": [ + [ + 13, + 2 + ], + [ + 17, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 3 + ] + } + }, + { + "id": "limite zone naturelle - Parc naturel 13", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 12, + "maxzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_PARC_NATUREL", + "LIM_PARC_NATUREL_ILE" + ], + "paint": { + "line-color": "#42A266", + "line-width": { + "stops": [ + [ + 13, + 2 + ], + [ + 17, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 4 + ] + } + }, + { + "id": "limite zone naturelle - Parc naturel 14", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_PARC_NATUREL", + "LIM_PARC_NATUREL_ILE" + ], + "paint": { + "line-color": "rgba(66, 162, 102, 0.7)", + "line-width": { + "stops": [ + [ + 13, + 2 + ], + [ + 17, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 5 + ] + } + }, + { + "id": "limite zone naturelle - Parc marin", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LIM_PARC_NATUREL_MARIN" + ], + "paint": { + "line-color": "#2A81A2", + "line-width": { + "stops": [ + [ + 13, + 2 + ], + [ + 17, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 1 + ] + } + }, + { + "id": "parcellaire - parcelle bordure", + "type": "line", + "source": "plan_ign", + "source-layer": "parcellaire_parcelle", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "PARCELLE" + ], + "paint": { + "line-color": "#9933FF", + "line-width": 1 + } + }, + { + "id": "parcellaire - section", + "type": "line", + "source": "plan_ign", + "source-layer": "parcellaire_section", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "SECTION" + ], + "paint": { + "line-color": "#287B00", + "line-width": 1.9, + "line-dasharray": [ + 2, + 4, + 2 + ] + } + }, + { + "id": "toponyme - parcellaire - section", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_parcellaire_section", + "filter": [ + "==", + "txt_typo", + "SECTION" + ], + "layout": { + "symbol-placement": "line", + "text-offset": [ + 0, + 0 + ], + "text-field": "{texte}", + "text-size": 15, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#287B00" + } + }, + { + "id": "toponyme - parcellaire - parcelle", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_parcellaire_parcelle", + "filter": [ + "==", + "txt_typo", + "PARCELLE" + ], + "layout": { + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#9933FF", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - parcellaire - adresse", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_parcellaire_adresse_ponc", + "filter": [ + "==", + "txt_typo", + "ADRESSE" + ], + "layout": { + "symbol-placement": "point", + "text-field": [ + "concat", + [ + "get", + "numero" + ], + [ + "get", + "indice_de_repetition" + ] + ], + "text-size": 11, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#695744", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "limite admin - limite de commune", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_COMMUNE", + "LIM_CANTON", + "LIM_ARRONDISSEMENT" + ], + "paint": { + "line-color": "rgba(126, 119, 184, 0.5)", + "line-width": { + "stops": [ + [ + 13, + 3 + ], + [ + 17, + 5.5 + ] + ] + }, + "line-dasharray": [ + 4, + 2, + 1, + 1, + 1, + 1, + 1, + 2 + ] + } + }, + { + "id": "limite admin - limite de département bandeau", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 8, + "maxzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LIM_DEPARTEMENT" + ], + "paint": { + "line-color": "rgba(178, 175, 219, 0.4)", + "line-width": { + "stops": [ + [ + 9, + 4.1 + ], + [ + 12, + 6 + ] + ] + } + } + }, + { + "id": "limite admin - limite de département tiret", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LIM_DEPARTEMENT" + ], + "paint": { + "line-color": "rgba(126, 119, 184, 0.5)", + "line-width": { + "stops": [ + [ + 13, + 3 + ], + [ + 17, + 5.5 + ] + ] + }, + "line-dasharray": [ + 4, + 2, + 1, + 1, + 1, + 2 + ] + } + }, + { + "id": "limite admin - limite de région bandeau", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 7, + "maxzoom": 13, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LIM_REGION" + ], + "paint": { + "line-color": "rgba(178, 175, 219, 0.5)", + "line-width": { + "stops": [ + [ + 9, + 4.5 + ], + [ + 12, + 6.7 + ] + ] + } + } + }, + { + "id": "limite admin - limite de région tiret", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 13, + "maxzoom": 18, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LIM_REGION" + ], + "paint": { + "line-color": "rgba(126, 119, 184, 0.5)", + "line-width": { + "stops": [ + [ + 13, + 3 + ], + [ + 17, + 5.5 + ] + ] + }, + "line-dasharray": [ + 4, + 2, + 1, + 2 + ] + } + }, + { + "id": "limite etat 1", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 2, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_ETAT", + "LIM_ETAT_ETRANGER" + ], + "paint": { + "line-color": "rgba(178, 175, 219, 0.6)", + "line-width": { + "stops": [ + [ + 2, + 2 + ], + [ + 3, + 3.5 + ], + [ + 9, + 5 + ], + [ + 14, + 13 + ], + [ + 15, + 20 + ], + [ + 16, + 24 + ], + [ + 17, + 42 + ] + ] + } + } + }, + { + "id": "limite etat 2", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 7, + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_ETAT", + "LIM_ETAT_ETRANGER" + ], + "paint": { + "line-color": "#9F9CB8", + "line-width": { + "stops": [ + [ + 9, + 1.5 + ], + [ + 14, + 3.5 + ], + [ + 15, + 5.5 + ], + [ + 16, + 6.5 + ], + [ + 17, + 11 + ] + ] + }, + "line-dasharray": [ + 4, + 2 + ] + } + }, + { + "id": "limite cote", + "type": "line", + "source": "plan_ign", + "source-layer": "limite_lin", + "minzoom": 7, + "maxzoom": 10, + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "LIM_COTE" + ], + "paint": { + "line-color": "#82A3B2", + "line-width": 1 + } + }, + { + "id": "ligne electrique", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "LIGNE_ELECTRIQUE" + ], + "paint": { + "line-color": "#808080", + "line-width": { + "stops": [ + [ + 13, + 1 + ], + [ + 17, + 2 + ] + ] + } + } + }, + { + "id": "autre construction linéaire", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "layout": { + "visibility": "visible", + "line-cap": "round", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "CABLE", + "REMONTEE_MEC", + "HYDROCARBURES", + "CONDUITE_MATIERES_P", + "SPORT_MONTAGNE_LIN", + "PISTE_BOBSLEIGH", + "PISTE_LUGE", + "PISTE_AERO_LIN" + ], + "paint": { + "line-color": "#808080", + "line-width": 1 + } + }, + { + "id": "autre construction linéaire - trait perpend cable", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "CABLE" + ], + "paint": { + "line-color": "#808080", + "line-width": 5, + "line-dasharray": [ + 0.5, + 10 + ] + } + }, + { + "id": "autre construction linéaire - trait perpend 1 remont", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REMONTEE_MEC" + ], + "paint": { + "line-color": "#808080", + "line-width": 6, + "line-dasharray": [ + 1, + 10 + ] + } + }, + { + "id": "autre construction linéaire - trait perpend 2 remont", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "==", + "symbo", + "REMONTEE_MEC" + ], + "paint": { + "line-color": "#BEBEBE", + "line-width": 6, + "line-dasharray": [ + 0.3, + 0.4, + 0.3, + 10 + ] + } + }, + { + "id": "autre construction linéaire - trait perpend carbur", + "type": "line", + "source": "plan_ign", + "source-layer": "bati_lin", + "layout": { + "visibility": "visible", + "line-cap": "butt", + "line-join": "round" + }, + "filter": [ + "in", + "symbo", + "HYDROCARBURES", + "CONDUITE_MATIERES_P" + ], + "paint": { + "line-color": "#808080", + "line-width": 5, + "line-dasharray": [ + 1, + 10 + ] + } + }, + { + "id": "routier ponctuel - peage ponctuel", + "type": "circle", + "source": "plan_ign", + "source-layer": "routier_ponc", + "minzoom": 8, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "PEAGE_PONC" + ], + "paint": { + "circle-radius": { + "stops": [ + [ + 9, + 3.5 + ], + [ + 12, + 6.5 + ] + ] + }, + "circle-color": "#FF6D8A", + "circle-stroke-width": 1, + "circle-stroke-color": "#808080" + } + }, + { + "id": "routier ponctuel - barriere", + "type": "symbol", + "source": "plan_ign", + "source-layer": "routier_ponc", + "minzoom": 12, + "layout": { + "visibility": "visible", + "icon-image": "Barriere", + "icon-size": { + "stops": [ + [ + 13, + 0.25 + ], + [ + 16, + 0.45 + ], + [ + 17, + 0.7 + ] + ] + }, + "icon-allow-overlap": true, + "icon-rotate": [ + "get", + "rotation" + ] + }, + "filter": [ + "==", + "symbo", + "BARRIERE" + ], + "paint": { + "icon-color": "#969696" + } + }, + { + "id": "hydro ponctuel", + "type": "circle", + "source": "plan_ign", + "source-layer": "hydro_ponc", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "FONTAINE", + "POINT_D_EAU", + "SOURCE", + "SOURCE_CAPTEE", + "PERTE", + "RESURGENCE", + "CASCADE", + "AUTRE_HYDRO_PONC" + ], + "paint": { + "circle-radius": { + "stops": [ + [ + 14, + 3 + ], + [ + 17, + 7 + ] + ] + }, + "circle-color": "#FFFFFF", + "circle-opacity": 1, + "circle-stroke-width": { + "stops": [ + [ + 14, + 2 + ], + [ + 17, + 5 + ] + ] + }, + "circle-stroke-color": "#0081FF" + } + }, + { + "id": "point coté", + "type": "symbol", + "source": "plan_ign", + "source-layer": "oro_ponc", + "minzoom": 11, + "maxzoom": 16, + "filter": [ + "in", + "symbo", + "POINT_COTE", + "POINT_COTE_TOPO", + "POINT_COTE_RESEAU", + "POINT_RBF" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.1, + "text-field": "{texte}", + "text-size": 10, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.2, + 0.4 + ], + "text-padding": 2, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#505050" + } + }, + { + "id": "bati ponctuel : Hopital", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "Hopital", + "icon-size": 0.33 + }, + "filter": [ + "==", + "symbo", + "HOPITAL_PONC" + ], + "paint": { + "icon-color": "#FE0034" + } + }, + { + "id": "bati ponctuel hydrographique", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 14, + "layout": { + "visibility": "visible", + "icon-image": "Pompage", + "icon-size": { + "stops": [ + [ + 13, + 0.2 + ], + [ + 17, + 0.6 + ] + ] + }, + "icon-allow-overlap": true + }, + "filter": [ + "in", + "symbo", + "CITERNE", + "LAVOIR", + "STATION_EPURATION", + "STATION_DE_POMPAGE", + "USINE_PRODUCTION_EAU", + "USINE_ELEVATRICE" + ], + "paint": { + "icon-color": "#0081FF" + } + }, + { + "id": "bati ponctuel hydrographique - Puits-Abreuvoir", + "type": "circle", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "filter": [ + "in", + "symbo", + "PUITS", + "ABREUVOIR" + ], + "paint": { + "circle-radius": { + "stops": [ + [ + 14, + 3 + ], + [ + 17, + 7 + ] + ] + }, + "circle-color": "#FFFFFF", + "circle-opacity": 1, + "circle-stroke-width": { + "stops": [ + [ + 14, + 2 + ], + [ + 17, + 5 + ] + ] + }, + "circle-stroke-color": "#0081FF" + } + }, + { + "id": "bati ponctuel hydrographique - Phare", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 13, + "layout": { + "visibility": "visible", + "icon-image": "Phare", + "icon-size": { + "stops": [ + [ + 13, + 0.7 + ], + [ + 17, + 1.3 + ] + ] + } + }, + "filter": [ + "==", + "symbo", + "PHARE" + ], + "paint": { + "icon-color": "#505050" + } + }, + { + "id": "bati ponctuel hydrographique - Amer-Feu", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 13, + "layout": { + "visibility": "visible", + "icon-image": "Feu", + "icon-size": { + "stops": [ + [ + 13, + 0.7 + ], + [ + 17, + 1.3 + ] + ] + } + }, + "filter": [ + "in", + "symbo", + "AMER", + "FEU", + "FEU_PONC", + "TOURELLE_LUMINEUSE" + ], + "paint": { + "icon-color": "#505050" + } + }, + { + "id": "bati ponctuel hydrographique - Balise", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 13, + "layout": { + "visibility": "visible", + "icon-image": "Balise", + "icon-size": { + "stops": [ + [ + 13, + 0.7 + ], + [ + 17, + 1.3 + ] + ] + } + }, + "filter": [ + "in", + "symbo", + "BALISE", + "TOURELLE" + ], + "paint": { + "icon-color": "#505050" + } + }, + { + "id": "bati ponctuel hydrographique - Ecluse", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 12, + "maxzoom": 15, + "layout": { + "visibility": "visible", + "icon-image": "Ecluse", + "icon-size": 0.2 + }, + "filter": [ + "==", + "symbo", + "ECLUSE_PONC" + ], + "paint": { + "icon-color": "#0081FF" + } + }, + { + "id": "bati ponctuel hydrographique - Barrage", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 12, + "maxzoom": 14, + "layout": { + "visibility": "visible", + "icon-image": "Barrage", + "icon-size": 0.25 + }, + "filter": [ + "==", + "symbo", + "BARRAGE_PONC" + ], + "paint": { + "icon-color": "#0081FF" + } + }, + { + "id": "bati ponctuel hydrographique - Chateau d'eau", + "type": "circle", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "CHATEAU_EAU_PONC" + ], + "paint": { + "circle-radius": { + "stops": [ + [ + 14, + 3 + ], + [ + 17, + 8 + ] + ] + }, + "circle-color": "#0081FF" + } + }, + { + "id": "bati ponctuel hydrographique - Réservoir d'eau", + "type": "circle", + "source": "plan_ign", + "source-layer": "bati_ponc", + "maxzoom": 15, + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "RESERVOIR_EAU_PONC" + ], + "paint": { + "circle-radius": { + "stops": [ + [ + 14, + 3 + ], + [ + 17, + 8 + ] + ] + }, + "circle-color": "#B3D9FF", + "circle-opacity": 1, + "circle-stroke-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 17, + 2.5 + ] + ] + }, + "circle-stroke-color": "#0081FF" + } + }, + { + "id": "bati ponctuel infrastructure - Constr spé", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "ConstrSpeciale", + "icon-size": { + "stops": [ + [ + 13, + 0.22 + ], + [ + 17, + 0.5 + ] + ] + } + }, + "filter": [ + "in", + "symbo", + "ANTENNE", + "TRANSFORMATEUR", + "CONSTR_INDIF_PONC", + "CHEMINEE", + "CHEVALEMENT", + "PUITS_GAZ", + "PUITS_PETROLE", + "PYLONE_METEO", + "TORCHERE", + "TOUR_GUET", + "TOUR_HERTZIENNE" + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel infrastructure - Silo", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "maxzoom": 15, + "layout": { + "visibility": "visible", + "icon-image": "Silo", + "icon-size": { + "stops": [ + [ + 13, + 0.22 + ], + [ + 17, + 0.5 + ] + ] + } + }, + "filter": [ + "==", + "symbo", + "SILO_PONC" + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel infrastructure - Eolienne", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "Eolienne", + "icon-size": { + "stops": [ + [ + 13, + 0.4 + ], + [ + 17, + 1 + ], + [ + 18, + 0.8 + ] + ] + } + }, + "filter": [ + "==", + "symbo", + "EOLIENNE" + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel infrastructure - Reservoir", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "maxzoom": 15, + "layout": { + "visibility": "visible", + "icon-image": "Reservoir", + "icon-size": { + "stops": [ + [ + 13, + 0.26 + ], + [ + 17, + 0.5 + ] + ] + } + }, + "filter": [ + "==", + "symbo", + "RESERVOIR_PONC" + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel infrastructure - pylone électrique", + "type": "circle", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible" + }, + "filter": [ + "==", + "symbo", + "PYLONE_ELEC" + ], + "paint": { + "circle-radius": { + "stops": [ + [ + 13, + 1 + ], + [ + 17, + 2 + ] + ] + }, + "circle-color": "#000000" + } + }, + { + "id": "bati ponctuel montagne - Abri", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "Abri", + "icon-size": { + "stops": [ + [ + 13, + 0.4 + ], + [ + 15, + 0.6 + ], + [ + 17, + 0.9 + ] + ] + } + }, + "filter": [ + "==", + "symbo", + "ABRI" + ], + "paint": { + "icon-color": "#246138" + } + }, + { + "id": "bati ponctuel montagne - Refuge Garde", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "Refugegard", + "icon-size": { + "stops": [ + [ + 13, + 0.4 + ], + [ + 15, + 0.6 + ], + [ + 17, + 0.9 + ] + ] + } + }, + "filter": [ + "==", + "symbo", + "REFUGE_GARDE" + ], + "paint": { + "icon-color": "#246138" + } + }, + { + "id": "bati ponctuel montagne - Refuge Non Garde", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "Refugenongard", + "icon-size": { + "stops": [ + [ + 13, + 0.4 + ], + [ + 15, + 0.6 + ], + [ + 17, + 0.9 + ] + ] + } + }, + "filter": [ + "==", + "symbo", + "REFUGE" + ], + "paint": { + "icon-color": "#246138" + } + }, + { + "id": "bati ponctuel transport aerien - Aeroport FXX", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "Aeroport", + "icon-size": 0.5 + }, + "filter": [ + "all", + [ + "==", + "symbo", + "AEROPORT_PONC" + ], + [ + "==", + "territoire", + "FXX" + ] + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel transport aerien - Aerodrome FXX", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "Aerodrome", + "icon-size": 0.4 + }, + "filter": [ + "all", + [ + "in", + "symbo", + "AERODROME_PONC", + "AERODROME_IMPORT_PONC" + ], + [ + "==", + "territoire", + "FXX" + ] + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel transport aerien - Aeroport DOM", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 8, + "layout": { + "visibility": "visible", + "icon-image": "Aeroport", + "icon-size": 0.5 + }, + "filter": [ + "all", + [ + "==", + "symbo", + "AEROPORT_PONC" + ], + [ + "!=", + "territoire", + "FXX" + ] + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel transport aerien - Aerodrome DOM", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "minzoom": 8, + "layout": { + "visibility": "visible", + "icon-image": "Aerodrome", + "icon-size": 0.4 + }, + "filter": [ + "all", + [ + "==", + "symbo", + "AERODROME_PONC" + ], + [ + "!=", + "territoire", + "FXX" + ] + ], + "paint": { + "icon-color": "#646464" + } + }, + { + "id": "bati ponctuel transport ferroviaire", + "type": "symbol", + "source": "plan_ign", + "source-layer": "bati_ponc", + "layout": { + "visibility": "visible", + "icon-image": "Gare", + "icon-size": 0.33 + }, + "filter": [ + "==", + "symbo", + "GARE_VOYAGEURS" + ], + "paint": { + "icon-color": "#505050" + } + }, + { + "id": "toponyme - bornes postales haute - chemins", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "CHEMIN", + "CHEMIN_SOU", + "CHEMIN_SUP", + "PISTE_CYCLABLE", + "PISTE_CYCLABLE_SOU", + "PISTE_CYCLABLE_SUP", + "VOIE_VERTE", + "VOIE_VERTE_SOU", + "VOIE_VERTE_SUP", + "RUE_PIETONNE", + "RUE_PIETONNE_SOU", + "RUE_PIETONNE_SUP", + "SENTIER", + "SENTIER_SOU", + "SENTIER_SUP", + "ESCALIER", + "ESCALIER_SUP" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sur}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + -1 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales haute - non revetue, non classee", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "NON_CLASSEE", + "NON_CLASSEE_4", + "NON_CLASSEE_4_SUP", + "NON_CLASSEE_RESTREINT", + "NON_CLASSEE_RESTREINT_SUP", + "NON_CLASSEE_SOU", + "NON_CLASSEE_SUP", + "NON_REVETUE_CARRO", + "NON_REVETUE_CARRO_SUP" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sur}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + -1.3 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales haute - locales", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "LOCALE_1", + "LOCALE_1_SOU", + "LOCALE_1_SUP", + "LOCALE_2", + "LOCALE_2_SOU", + "LOCALE_2_SUP", + "LOCALE_3", + "LOCALE_3_SOU", + "LOCALE_3_SUP", + "LOCALE_4", + "LOCALE_4_SOU", + "LOCALE_4_SUP", + "LOCALE_CONSTR", + "LOCALE_CONSTR_SUP" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sur}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + -1.4 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales haute - regionales", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "REGIONALE_1", + "REGIONALE_1_SOU", + "REGIONALE_1_SUP", + "REGIONALE_2", + "REGIONALE_2_SOU", + "REGIONALE_2_SUP", + "REGIONALE_3", + "REGIONALE_3_SOU", + "REGIONALE_3_SUP", + "REGIONALE_4", + "REGIONALE_4_SUP", + "REGIONALE_CONSTR" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sur}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + -1.5 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales haute - principales", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "PRINCIPALE_1", + "PRINCIPALE_1_SOU", + "PRINCIPALE_1_SUP", + "PRINCIPALE_2", + "PRINCIPALE_2_SOU", + "PRINCIPALE_2_SUP", + "PRINCIPALE_3", + "PRINCIPALE_3_SOU", + "PRINCIPALE_3_SUP", + "PRINCIPALE_4", + "PRINCIPALE_4_SOU", + "PRINCIPALE_4_SUP", + "PRINCIPALE_CONSTR" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sur}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + -1.6 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales bas - chemins", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "CHEMIN", + "CHEMIN_SOU", + "CHEMIN_SUP", + "PISTE_CYCLABLE", + "PISTE_CYCLABLE_SOU", + "PISTE_CYCLABLE_SUP", + "VOIE_VERTE", + "VOIE_VERTE_SOU", + "VOIE_VERTE_SUP", + "RUE_PIETONNE", + "RUE_PIETONNE_SOU", + "RUE_PIETONNE_SUP", + "SENTIER", + "SENTIER_SOU", + "SENTIER_SUP", + "ESCALIER", + "ESCALIER_SUP" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sous}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + 1 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales bas - non revetue, non classee", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "NON_CLASSEE", + "NON_CLASSEE_4", + "NON_CLASSEE_4_SUP", + "NON_CLASSEE_RESTREINT", + "NON_CLASSEE_RESTREINT_SUP", + "NON_CLASSEE_SOU", + "NON_CLASSEE_SUP", + "NON_REVETUE_CARRO", + "NON_REVETUE_CARRO_SUP" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sous}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + 1.3 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales bas - locales", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "LOCALE_1", + "LOCALE_1_SOU", + "LOCALE_1_SUP", + "LOCALE_2", + "LOCALE_2_SOU", + "LOCALE_2_SUP", + "LOCALE_3", + "LOCALE_3_SOU", + "LOCALE_3_SUP", + "LOCALE_4", + "LOCALE_4_SOU", + "LOCALE_4_SUP", + "LOCALE_CONSTR", + "LOCALE_CONSTR_SUP" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sous}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + 1.4 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales bas - regionales", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "REGIONALE_1", + "REGIONALE_1_SOU", + "REGIONALE_1_SUP", + "REGIONALE_2", + "REGIONALE_2_SOU", + "REGIONALE_2_SUP", + "REGIONALE_3", + "REGIONALE_3_SOU", + "REGIONALE_3_SUP", + "REGIONALE_4", + "REGIONALE_4_SUP", + "REGIONALE_CONSTR" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sous}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + 1.5 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - bornes postales bas - principales", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_borne", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "in", + "symbo", + "PRINCIPALE_1", + "PRINCIPALE_1_SOU", + "PRINCIPALE_1_SUP", + "PRINCIPALE_2", + "PRINCIPALE_2_SOU", + "PRINCIPALE_2_SUP", + "PRINCIPALE_3", + "PRINCIPALE_3_SOU", + "PRINCIPALE_3_SUP", + "PRINCIPALE_4", + "PRINCIPALE_4_SOU", + "PRINCIPALE_4_SUP", + "PRINCIPALE_CONSTR" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{borne_sous}", + "text-size": 11, + "text-anchor": "center", + "text-allow-overlap": true, + "text-offset": [ + 0, + 1.6 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#79654F", + "text-halo-width": 1, + "text-halo-color": "#FFFFFF" + } + }, + { + "id": "toponyme - courbe rocher maitresse", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "filter": [ + "==", + "txt_typo", + "ORO_COURBE_ROCHER" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 10, + "text-allow-overlap": false, + "text-padding": 30, + "text-rotate": { + "type": "identity", + "property": "rotation" + }, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#333333", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - courbe glacier maitresse", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "filter": [ + "==", + "txt_typo", + "ORO_COURBE_GLACIER" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 10, + "text-allow-overlap": false, + "text-padding": 30, + "text-rotate": { + "type": "identity", + "property": "rotation" + }, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#629FD9", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - courbe maitresse", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "filter": [ + "==", + "txt_typo", + "ORO_COURBE" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 10, + "text-allow-overlap": false, + "text-padding": 30, + "text-rotate": { + "type": "identity", + "property": "rotation" + }, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#604A2F", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - liaison maritime", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_liaison_lin", + "minzoom": 8, + "maxzoom": 18, + "filter": [ + "in", + "txt_typo", + "LIAISON_MARITIME", + "LIAISON_MAR" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 15, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#5792C2", + "text-halo-width": 5, + "text-halo-color": "#B3D9FF" + } + }, + { + "id": "toponyme bati station de métro + bati ponctuel metro", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + "txt_typo", + "TYPO_E_1" + ], + [ + "==", + "symbo", + "STATION_METRO" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-offset": [ + 0.30, + -0.25 + ], + "text-padding": 3, + "text-anchor": "bottom-left", + "text-font": [ + "Source Sans Pro" + ], + "icon-image": "Metro", + "icon-size": { + "stops": [ + [ + 15, + 0.33 + ], + [ + 17, + 0.6 + ] + ] + } + }, + "paint": { + "text-color": "#3C3C3C", + "icon-color": "#646464" + } + }, + { + "id": "toponyme ferre lineaire", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ferre_lin", + "minzoom": 12, + "filter": [ + "in", + "txt_typo", + "FER_NOM", + "FER_OUVRAGE" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 10, + "text-anchor": "center", + "text-offset": [ + 0, + -1 + ], + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-width": 1, + "text-halo-color": "rgba(255, 255, 255, 1)" + } + }, + { + "id": "toponyme religieux zoom 15 16", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "maxzoom": 16, + "filter": [ + "==", + "txt_typo", + "religieux" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme religieux zoom 17 à 19", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 16, + "filter": [ + "==", + "txt_typo", + "religieux" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme parc d'attractions zoom 14", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 13, + "maxzoom": 14, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "==", + "symbo", + "PARC_ATTRACTIONS" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme parc d'attractions zoom 15 à 19", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "==", + "symbo", + "PARC_ATTRACTIONS" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme bati divers zoom 15", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "maxzoom": 15, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "in", + "symbo", + "CENTRALE_ELECTRIQUE", + "HIPPODROME", + "STADE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme bati divers zoom 16 à 19", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "in", + "symbo", + "CENTRALE_ELECTRIQUE", + "HIPPODROME", + "STADE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme chateau zoom 16", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 15, + "maxzoom": 16, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "in", + "symbo", + "CHATEAU", + "CHATEAU_FORT" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme chateau zoom 17 à 19", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + "txt_typo", + "divers_bati" + ], + [ + "in", + "symbo", + "CHATEAU", + "CHATEAU_FORT" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme station epuration, de pompage, usine de production eau", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "filter": [ + "==", + "txt_typo", + "station" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-anchor": "left", + "text-offset": [ + 0.8, + 0 + ], + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#0080FF" + } + }, + { + "id": "toponyme bati ponc gare", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 15, + "filter": [ + "==", + "txt_typo", + "gore" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme bati ponc barrage", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 12, + "filter": [ + "==", + "txt_typo", + "BARRAGE_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "left", + "text-offset": [ + 0.8, + 0 + ], + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#0080FF" + } + }, + { + "id": "toponyme bati ponc phare - niveau 13", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "maxzoom": 13, + "filter": [ + "==", + "txt_typo", + "PHARE" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "right", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#532A2A" + } + }, + { + "id": "toponyme bati ponc phare - niveau 14à19", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "symbo", + "PHARE" + ], + [ + "in", + "txt_typo", + "TYPO_C_6", + "TYPO_C_7", + "TYPO_C_8", + "TYPO_E_GE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "right", + "text-size": { + "stops": [ + [ + 13, + 12 + ], + [ + 18, + 18 + ] + ] + }, + "text-allow-overlap": false, + "text-offset": [ + -2.00, + 0 + ], + "text-padding": 3, + "text-anchor": "right", + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#532A2A" + } + }, + { + "id": "toponyme bati ponc autre", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 12, + "filter": [ + "in", + "txt_typo", + "BAT_ACTIVITE", + "BAT_FORTIF", + "BAT_VILLAGE_DETRUIT" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "center", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#532A2A" + } + }, + { + "id": "toponyme bati ponc aerogare", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 14, + "maxzoom": 17, + "filter": [ + "all", + [ + "==", + "txt_typo", + "TYPO_E_GE" + ], + [ + "==", + "symbo", + "AEROGARE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 9 + ], + [ + 16, + 11 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme bati ponc aeroport 12", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 11, + "maxzoom": 12, + "filter": [ + "==", + "txt_typo", + "AEROPORT_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "bottom", + "text-offset": [ + 0, + -1.3 + ], + "text-size": 10.5, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc aeroport 13", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 12, + "maxzoom": 13, + "filter": [ + "==", + "txt_typo", + "AEROPORT_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "bottom", + "text-offset": [ + 0, + -2 + ], + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc aeroport", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 13, + "maxzoom": 17, + "filter": [ + "all", + [ + "==", + "txt_typo", + "TYPO_A_5" + ], + [ + "==", + "symbo", + "AEROPORT" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 11 + ], + [ + 16, + 13 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc aerodrome 12", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 11, + "maxzoom": 12, + "filter": [ + "==", + "txt_typo", + "AERODROME_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "bottom", + "text-offset": [ + 0, + -1.3 + ], + "text-size": 9.5, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc aerodrome 13", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 12, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "AERODROME_PONC", + "AERODROME_IMPORT_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "bottom", + "text-offset": [ + 0, + -2 + ], + "text-size": 10, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc aerodrome", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 13, + "maxzoom": 17, + "filter": [ + "all", + [ + "==", + "txt_typo", + "TYPO_A_7" + ], + [ + "==", + "symbo", + "AERODROME" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 10 + ], + [ + 16, + 12 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro" + ] + }, + "paint": { + "text-color": "#120049", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - hydro ponc 5", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "filter": [ + "in", + "txt_typo", + "TYPO_D_9", + "TYPO_D_10", + "TYPO_E_1_cyan" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 11 + ], + [ + 17, + 14 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 5, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0080FF", + "text-halo-color": "#FFFFFF", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - hydro ponc glacier", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "filter": [ + "==", + "txt_typo", + "ORO_GLACIER_2" + ], + "layout": { + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 14, + "text-anchor": "center", + "text-allow-overlap": true, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#0080FF", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - limite militaire ponc 3 et 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_limite_ponc", + "filter": [ + "in", + "txt_typo", + "LIM_MILI_3", + "LIM_MILI_4" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 12, + "text-allow-overlap": false, + "text-padding": 2, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0D2000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - limite parc ponc 3 et 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_limite_ponc", + "filter": [ + "in", + "txt_typo", + "LIM_PARC_3", + "LIM_PARC_4", + "RESERVE_NATURELLE_PONC" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 13, + "text-allow-overlap": false, + "text-padding": 2, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme numéro de route - départementale", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_numero_lin", + "minzoom": 11, + "maxzoom": 16, + "filter": [ + "==", + "txt_typo", + "Départementale" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 10.5, + "text-allow-overlap": false, + "text-padding": 2, + "text-anchor": "center", + "text-font": [ + "Source Sans Pro Semibold" + ], + "text-rotation-alignment": "viewport" + }, + "paint": { + "text-color": "#4D4D4D", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme numéro de route - nationale", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_numero_lin", + "minzoom": 7, + "maxzoom": 16, + "filter": [ + "==", + "txt_typo", + "Nationale" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 12, + "text-allow-overlap": false, + "text-padding": 0, + "text-anchor": "center", + "text-font": [ + "Source Sans Pro Regular" + ], + "icon-image": "Ecluse", + "icon-rotation-alignment": "viewport", + "text-rotation-alignment": "viewport", + "icon-text-fit": "both", + "icon-size": 0 + }, + "paint": { + "text-color": "#F0F0F0", + "icon-color": "#646464", + "text-halo-color": "rgba(80, 80, 80, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme numéro de route - autoroute", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_numero_lin", + "minzoom": 7, + "maxzoom": 16, + "filter": [ + "==", + "txt_typo", + "Autoroute" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": false, + "text-padding": 0, + "text-anchor": "center", + "text-font": [ + "Source Sans Pro Regular" + ], + "icon-image": "Ecluse", + "icon-rotation-alignment": "viewport", + "text-rotation-alignment": "viewport", + "icon-text-fit": "both", + "icon-size": 0 + }, + "paint": { + "text-color": "#F0F0F0", + "icon-color": "#646464", + "text-halo-color": "rgba(80, 80, 80, 0.5)", + "text-halo-width": 5 + } + }, + { + "id": "toponyme - odonyme abrégé", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_odonyme_lin", + "minzoom": 15, + "maxzoom": 17, + "layout": { + "symbol-placement": "line", + "text-field": "{nom_gauche}", + "text-size": 10, + "text-anchor": "center", + "text-max-angle": 30, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 1)" + } + }, + { + "id": "toponyme - odonyme desabrégé", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_routier_odonyme_lin", + "minzoom": 17, + "layout": { + "symbol-placement": "line", + "text-field": "{nom_desabrege}", + "text-size": 11, + "text-anchor": "center", + "text-max-angle": 30, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 1)" + } + }, + { + "id": "toponyme - lieu dit non habité 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "LIEU-DIT_NON_HABITE" + ], + [ + "in", + "txt_typo", + "TYPO_B_10", + "TYPO_B_11" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - bois", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "BOIS" + ], + [ + "in", + "txt_typo", + "TYPO_F_9", + "TYPO_F_10" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 13, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - oro lineaire 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_lin", + "filter": [ + "in", + "txt_typo", + "ORO_SOMMET_3", + "ORO_GORGE_2" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 11, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-width": 1.5, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - oro ponc 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "filter": [ + "in", + "txt_typo", + "ORO_SOMMET_3", + "ORO_GORGE_2", + "GROTTE", + "GORGE", + "TYPO_G_8", + "TYPO_G_9" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 13, + 11 + ], + [ + 16, + 16 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1.5 + } + }, + { + "id": "toponyme - hydro ponc 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "filter": [ + "in", + "txt_typo", + "HYD_SURF_4", + "HYD_SURF_4_T", + "HYD_SURF_5", + "HYD_SURF_5_T", + "TYPO_D_8", + "SOURCE" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 14, + 13 + ], + [ + 17, + 16 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 5, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0080FF", + "text-halo-color": "#FFFFFF", + "text-halo-width": 1 + } + }, + { + "id": "toponyme quartier ", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "filter": [ + "in", + "txt_typo", + "BAT_QUARTIER", + "BAT_QUARTIER_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typo_E_GE Quartier", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 17, + "maxzoom": 18, + "filter": [ + "all", + [ + "==", + "symbo", + "QUARTIER" + ], + [ + "==", + "txt_typo", + "TYPO_E_GE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 11 + ], + [ + 17, + 13.5 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typo_E_GE Lieu-dit", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 16, + "maxzoom": 18, + "filter": [ + "all", + [ + "==", + "symbo", + "LIEU-DIT-HABITE" + ], + [ + "==", + "txt_typo", + "TYPO_E_GE" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 11 + ], + [ + 17, + 13.5 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA10", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "maxzoom": 18, + "filter": [ + "==", + "txt_typo", + "TYPO_A_10" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 11 + ], + [ + 17, + 13.5 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - lieu dit non habité", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "LIEU-DIT_NON_HABITE" + ], + [ + "in", + "txt_typo", + "TYPO_B_7", + "TYPO_B_8", + "TYPO_B_9" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 12, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - bois 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "BOIS" + ], + [ + "in", + "txt_typo", + "TYPO_F_6", + "TYPO_F_7", + "TYPO_F_8" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 16, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite hameau ", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 11, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "BAT_HAMEAU", + "BAT_HAMEAU_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.17, + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.10 + ], + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite importance 6et7 - Special DOM", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 7, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "TYPO_A_6", + "TYPO_A_7" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.21, + "text-field": "{texte}", + "text-size": 12.5, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.10 + ], + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite importance 5", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 9, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "TYPO_A_5", + "BAT_COMMUNE_5", + "BAT_COMMUNE_5_T", + "BAT_CHEF_LIEU_COM", + "BAT_CHEF_LIEU_COM_T", + "BAT_CHEF_LIEU_COM-T", + "BAT_ANCIENNE_COM", + "BAT_ANCIENNE_COM_T", + "BAT_COMMUNE_ASSOCIEE", + "BAT_COMMUNE_ASSOCIEE_T", + "Commune très petite" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.21, + "text-field": "{texte}", + "text-size": 11.5, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.10 + ], + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - ocs lineaire 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_lin", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_3" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 12 + ], + [ + 12, + 15 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-width": 1, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - lieu dit non habité 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "LIEU-DIT_NON_HABITE" + ], + [ + "in", + "txt_typo", + "TYPO_B_5", + "TYPO_B_4" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - bois 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "BOIS" + ], + [ + "in", + "txt_typo", + "TYPO_F_5", + "TYPO_F_4" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 19, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - bois 0", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "all", + [ + "==", + "symbo", + "BOIS" + ], + [ + "in", + "txt_typo", + "TYPO_F_3", + "TYPO_F_2" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 22, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - ocs ponc 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_3" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 12 + ], + [ + 12, + 15 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-anchor": "center", + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 1 + } + }, + { + "id": "toponyme - oro lineaire 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_lin", + "filter": [ + "in", + "txt_typo", + "ORO_ILE_3", + "ORO_RELIEF_3", + "ORO_RELIEF_3_T", + "ORO_RELIEF_4", + "ORO_RELIEF_4_T", + "ORO_CAP_2", + "ORO_CAP_3", + "ORO_SOMMET_2", + "ORO_COL_2", + "ORO_GORGE_1", + "ORO_GORGE-1" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 12, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-width": 1.5, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - oro ponc 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "filter": [ + "in", + "txt_typo", + "ORO_ILE_3", + "ORO_RELIEF_3", + "ORO_RELIEF_3_T", + "ORO_RELIEF_4", + "ORO_RELIEF_4_T", + "ORO_CAP_2", + "ORO_CAP_3", + "ORO_SOMMET_2", + "ORO_COL_2", + "ORO_GORGE_1", + "ORO_GORGE-1", + "TYPO_G_6", + "TYPO_G_7" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 13, + 12 + ], + [ + 16, + 17 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "#FFFFFF", + "text-halo-width": 1.5 + } + }, + { + "id": "toponyme - hydro lineaire 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "filter": [ + "in", + "txt_typo", + "HYD_LIN_3", + "HYD_LIN_4", + "HYD_LIN_5", + "TYPO_D_LIN_3", + "TYPO_D_LIN_4", + "HYD_SURF_3", + "HYD_SURF_3_T", + "HYD_SURF_4", + "HYD_SURF_4_T", + "HYD_SURF_5", + "HYD_SURF_5_T", + "TYPO_D_5", + "TYPO_D_7" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 14, + 12 + ], + [ + 18, + 19 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0080FF", + "text-halo-width": 1.5, + "text-halo-color": "rgba(255, 255, 255, 0.7)" + } + }, + { + "id": "toponyme - hydro lineaire 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "minzoom": 14, + "filter": [ + "in", + "txt_typo", + "TYPO_D_6", + "TYPO_D_8", + "TYPO_D_9", + "TYPO_D_10" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 14, + 10 + ], + [ + 18, + 16 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0080FF", + "text-halo-width": 1.5, + "text-halo-color": "rgba(255, 255, 255, 0.7)" + } + }, + { + "id": "toponyme - hydro ponc 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "filter": [ + "in", + "txt_typo", + "HYD_SURF_3", + "TYPO_D_5", + "TYPO_D_6", + "TYPO_D_7" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 9, + 13 + ], + [ + 10, + 15 + ], + [ + 15, + 15 + ], + [ + 17, + 18 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0080FF", + "text-halo-color": "#FFFFFF", + "text-halo-width": 2 + } + }, + { + "id": "toponyme bati ponc zai zoom 16", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 15, + "maxzoom": 16, + "filter": [ + "==", + "txt_typo", + "zai" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{designation}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme bati ponc zai zoom 17 et 18", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_bati_ponc", + "minzoom": 16, + "filter": [ + "==", + "txt_typo", + "zai" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#000000" + } + }, + { + "id": "toponyme localite importance 4", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 7, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "TYPO_A_4", + "BAT_COMMUNE_4", + "BAT_COMMUNE_4_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.21, + "text-field": "{texte}", + "text-size": 13, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.10 + ], + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA9", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "maxzoom": 18, + "filter": [ + "==", + "txt_typo", + "TYPO_A_9" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 11.5 + ], + [ + 17, + 14 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA8 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_8" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 12 + ], + [ + 17, + 15 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - limite militaire ponc 1 et 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_limite_ponc", + "filter": [ + "in", + "txt_typo", + "LIM_MILI_1", + "LIM_MILI_2" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": false, + "text-padding": 5, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0D2000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - limite parc marin", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_limite_ponc", + "minzoom": 8, + "filter": [ + "in", + "txt_typo", + "PARC_MARIN_1", + "PARC_MARIN_2" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": false, + "text-padding": 10, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0080FF", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - limite parc ponc 1 et 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_limite_ponc", + "minzoom": 8, + "filter": [ + "in", + "txt_typo", + "LIM_PARC_1", + "LIM_PARC_2", + "PARC_1", + "PARC_2" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": false, + "text-padding": 10, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - ocs lineaire 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_lin", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_2" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 15 + ], + [ + 12, + 18 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - ocs ponc 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_2" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 15 + ], + [ + 12, + 18 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-anchor": "center", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - oro lineaire 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_lin", + "filter": [ + "in", + "txt_typo", + "ORO_ILE_2", + "ORO_RELIEF_2", + "ORO_RELIEF_2_T", + "ORO_CAP_1", + "ORO_SOMMET_1" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 15, + "text-anchor": "center", + "text-keep-upright": true, + "text-padding": 10, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - oro ponc 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "minzoom": 9, + "filter": [ + "in", + "txt_typo", + "ORO_ILE_2", + "ORO_RELIEF_2", + "ORO_RELIEF_2_T", + "ORO_CAP_1", + "ORO_COL_1", + "TYPO_G_5", + "ORO_SOMMET_1" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 9, + 13 + ], + [ + 10, + 15 + ], + [ + 13, + 15 + ], + [ + 16, + 19 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - oro ponc 2B", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "minzoom": 8, + "filter": [ + "==", + "txt_typo", + "TYPO_G_4" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 13, + 15 + ], + [ + 16, + 19 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - hydro lineaire 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "filter": [ + "in", + "txt_typo", + "HYD_LIN_2", + "TYPO_D_LIN_2", + "HYD_SURF_2", + "HYD_SURF_2_T", + "TYPO_D_4" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 14, + 15 + ], + [ + 18, + 21 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0080FF", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - hydro ponc 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "minzoom": 5, + "filter": [ + "in", + "txt_typo", + "moyen", + "HYD_SURF_2", + "TYPO_D_2" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 5, + 12 + ], + [ + 6, + 18 + ], + [ + 10, + 17 + ], + [ + 18, + 21 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0080FF", + "text-halo-color": "#FFFFFF", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - hydro ponc 2B", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "filter": [ + "in", + "txt_typo", + "TYPO_D_3", + "TYPO_D_4" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 9, + 15 + ], + [ + 10, + 17 + ], + [ + 18, + 21 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0080FF", + "text-halo-color": "#FFFFFF", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite importance 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 5, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "commune 3", + "TYPO_A_3", + "BAT_COMMUNE_3", + "BAT_COMMUNE_3_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.21, + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 5, + 10 + ], + [ + 6, + 15 + ] + ] + }, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.10 + ], + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA7 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_7" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 13 + ], + [ + 17, + 16 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA5etA6 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "in", + "txt_typo", + "TYPO_A_5", + "TYPO_A_6" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 15 + ], + [ + 17, + 18 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - oro lineaire 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_lin", + "filter": [ + "in", + "txt_typo", + "ORO_ILE_1", + "ORO_RELIEF_1", + "ORO_RELIEF_1_T" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 20, + "text-anchor": "center", + "text-keep-upright": true, + "text-padding": 5, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - oro ponc monde", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "minzoom": 5, + "filter": [ + "in", + "txt_typo", + "Basin", + "Depression", + "Desert", + "Geoarea", + "Gorge", + "Isthmus", + "Lake", + "Lowland", + "Pen/cape", + "Plain", + "Plateau", + "Range/mtn", + "Tundra", + "Valley", + "Island", + "Island group" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 11, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA4 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_4" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 17, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 3 + } + }, + { + "id": "toponyme - ocs lineaire 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_lin", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_1" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 18 + ], + [ + 12, + 22 + ] + ] + }, + "text-anchor": "center", + "text-keep-upright": true, + "text-padding": 1, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - ocs ponc 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_ocs_ponc", + "filter": [ + "==", + "txt_typo", + "OCS_FORET_1" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 10, + 18 + ], + [ + 12, + 22 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#287B00", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - oro ponc 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "minzoom": 8, + "filter": [ + "in", + "txt_typo", + "ORO_ILE_1", + "ORO_RELIEF_1", + "ORO_RELIEF_1_T", + "TYPO_G_1" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 21, + "text-allow-overlap": true, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - oro ponc 1B", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_oro_ponc", + "minzoom": 8, + "filter": [ + "in", + "txt_typo", + "TYPO_G_2", + "TYPO_G_3" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 12, + 15 + ], + [ + 13, + 21 + ] + ] + }, + "text-allow-overlap": false, + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#863831", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme - hydro lineaire glacier", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "filter": [ + "in", + "txt_typo", + "ORO_GLACIER_1", + "ORO_GLACIER_2" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 15, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-font": [ + "Source Sans Pro Italic" + ] + }, + "paint": { + "text-color": "#0080FF", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - hydro lineaire 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "filter": [ + "in", + "txt_typo", + "HYD_LIN_1", + "HYD-LIN-1", + "TYPO_D_LIN_1", + "HYD_SURF_1", + "HYD_SURF_1_T", + "TYPO_D_1", + "TYPO_D_2", + "TYPO_D_3_T", + "TYPO_D_4_T" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 18, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0080FF", + "text-halo-width": 2, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - hydro lineaire ocean", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_lin", + "filter": [ + "==", + "txt_typo", + "OCEAN_MER" + ], + "layout": { + "symbol-placement": "line", + "text-field": "{texte}", + "text-size": 30, + "text-anchor": "center", + "text-keep-upright": true, + "text-max-angle": 45, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0080FF", + "text-halo-width": 4, + "text-halo-color": "rgba(255, 255, 255, 0.5)" + } + }, + { + "id": "toponyme - hydro ponc 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "minzoom": 4, + "filter": [ + "in", + "txt_typo", + "mer", + "grand", + "HYD_SURF_1", + "TYPO_D_1" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 4, + 16 + ], + [ + 6, + 30 + ], + [ + 10, + 25 + ] + ] + }, + "text-allow-overlap": true, + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0080FF", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme localite importance 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 4, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "commune 2", + "TYPO_A_2", + "BAT_COMMUNE_2", + "BAT_COMMUNE-2", + "BAT_COMMUNE_2_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.25, + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 4, + 10 + ], + [ + 6, + 17 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "bottom-left", + "text-offset": [ + 0.30, + 0.2 + ], + "text-padding": 1, + "text-transform": "uppercase", + "text-font": { + "stops": [ + [ + 1, + [ + "Source Sans Pro Regular" + ] + ], + [ + 7, + [ + "Source Sans Pro Bold" + ] + ], + [ + 10, + [ + "Source Sans Pro Regular" + ] + ] + ] + } + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 3 + } + }, + { + "id": "toponyme localite n0 typoA3 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_3" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 19, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 3 + } + }, + { + "id": "toponyme localite n0 typoA2 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_2" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 21, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme localite n0 typoA8 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_8" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 12 + ], + [ + 17, + 15 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA7 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_7" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 13 + ], + [ + 17, + 16 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA5etA6 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 18, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "in", + "txt_typo", + "TYPO_A_5", + "TYPO_A_6" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 15, + 15 + ], + [ + 17, + 18 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 2 + } + }, + { + "id": "toponyme localite n0 typoA1 non commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "!=", + "symbo", + "COMMUNE_FUSIONNEE" + ], + [ + "!=", + "symbo", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_1" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 23, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme localite n0 typoA4 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_4" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 17, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 3 + } + }, + { + "id": "toponyme localite n0 typoA3 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_3" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 19, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 3 + } + }, + { + "id": "toponyme localite n0 typoA2 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_2" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 21, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme localite importance 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 3, + "maxzoom": 13, + "filter": [ + "in", + "txt_typo", + "commune 1", + "TYPO_A_1", + "BAT_COMMUNE_1", + "BAT_COMMUNE_1_T" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "icon-image": "Localite", + "icon-size": 0.3, + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 3, + 10 + ], + [ + 6, + 20 + ] + ] + }, + "text-allow-overlap": false, + "text-anchor": "bottom-left", + "text-offset": [ + 0.25, + -0.10 + ], + "text-padding": 1, + "text-transform": "uppercase", + "text-font": { + "stops": [ + [ + 1, + [ + "Source Sans Pro Regular" + ] + ], + [ + 7, + [ + "Source Sans Pro Bold" + ] + ], + [ + 10, + [ + "Source Sans Pro Regular" + ] + ] + ] + } + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme localite n0 typoA1 commune", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 13, + "maxzoom": 16, + "filter": [ + "all", + [ + "in", + "symbo", + "COMMUNE_FUSIONNEE", + "COMMUNE_CHEF_LIEU" + ], + [ + "==", + "txt_typo", + "TYPO_A_1" + ] + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": 23, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme - hydro ponc ocean", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_hydro_ponc", + "minzoom": 1, + "filter": [ + "==", + "txt_typo", + "ocean" + ], + "layout": { + "visibility": "visible", + "symbol-placement": "point", + "text-field": "{texte}", + "text-size": { + "stops": [ + [ + 1, + 16 + ], + [ + 6, + 30 + ] + ] + }, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 10, + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#0080FF", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme pays 3", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 4, + "maxzoom": 5, + "filter": [ + "==", + "txt_typo", + "pays 3" + ], + "layout": { + "visibility": "visible", + "text-field": "{texte}", + "text-size": 9, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#787878", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme pays 2", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 2, + "maxzoom": 5, + "filter": [ + "==", + "txt_typo", + "pays 2" + ], + "layout": { + "visibility": "visible", + "text-field": "{texte}", + "text-size": 13, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 2, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#787878", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme pays 1", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "minzoom": 2, + "maxzoom": 5, + "filter": [ + "==", + "txt_typo", + "pays 1" + ], + "layout": { + "visibility": "visible", + "text-field": "{texte}", + "text-size": 13, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 2, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Regular" + ] + }, + "paint": { + "text-color": "#787878", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + }, + { + "id": "toponyme continent", + "type": "symbol", + "source": "plan_ign", + "source-layer": "toponyme_localite_ponc", + "maxzoom": 3, + "filter": [ + "==", + "txt_typo", + "continent" + ], + "layout": { + "visibility": "visible", + "text-field": "{texte}", + "text-size": 15, + "text-allow-overlap": true, + "text-anchor": "center", + "text-padding": 1, + "text-transform": "uppercase", + "text-font": [ + "Source Sans Pro Bold" + ] + }, + "paint": { + "text-color": "#787878", + "text-halo-color": "rgba(255, 255, 255, 0.5)", + "text-halo-width": 4 + } + } + ] +} \ No newline at end of file diff --git a/website/src/lib/assets/example.ts b/website/src/lib/assets/example.ts new file mode 100755 index 0000000..eee8222 --- /dev/null +++ b/website/src/lib/assets/example.ts @@ -0,0 +1,2 @@ +import { parseGPX } from "gpx"; +export const exampleGPXFile = parseGPX(`Examplegpx.rnmkcy.euExamplecycling290.418292.818303.618331.81936622371.22237622376.621377.620376.820410.623390.423419.81943019430.218431.21843417435.617435.618434.618434.218434.219433.219432.819431.619426.819424.818422.218416.617409.817404.416422.416429.616448.617458.418476.21749517537.418553.818580.418604.619650.22267823692236882372822770.61987618920.820923.82091418910.418930.817942.619953.620986.4211029.6221038.8221025.2211002.6191043181030.4161018.61699616951.816906.41684815820.415821.215824.615817.415811.815806.215791.615788.61578715784.21576815769.215766.815757.415746.815735.415723.415726.215725.816727.416726.816720.216723.816732.615731.41570415684.41567515671.815676.416681.416677.21664818632.817612.817`); \ No newline at end of file diff --git a/website/src/lib/assets/img/docs/getting-started/interface.png b/website/src/lib/assets/img/docs/getting-started/interface.png new file mode 100755 index 0000000..93e3362 Binary files /dev/null and b/website/src/lib/assets/img/docs/getting-started/interface.png differ diff --git a/website/src/lib/assets/img/docs/tools/routing.png b/website/src/lib/assets/img/docs/tools/routing.png new file mode 100755 index 0000000..839fe02 Binary files /dev/null and b/website/src/lib/assets/img/docs/tools/routing.png differ diff --git a/website/src/lib/assets/img/docs/tools/split.png b/website/src/lib/assets/img/docs/tools/split.png new file mode 100755 index 0000000..1bd7606 Binary files /dev/null and b/website/src/lib/assets/img/docs/tools/split.png differ diff --git a/website/src/lib/assets/img/home/cyclosm.png b/website/src/lib/assets/img/home/cyclosm.png new file mode 100755 index 0000000..16456c6 Binary files /dev/null and b/website/src/lib/assets/img/home/cyclosm.png differ diff --git a/website/src/lib/assets/img/home/ign.png b/website/src/lib/assets/img/home/ign.png new file mode 100755 index 0000000..ed3b13e Binary files /dev/null and b/website/src/lib/assets/img/home/ign.png differ diff --git a/website/src/lib/assets/img/home/map.png b/website/src/lib/assets/img/home/map.png new file mode 100755 index 0000000..e426558 Binary files /dev/null and b/website/src/lib/assets/img/home/map.png differ diff --git a/website/src/lib/assets/img/home/mapbox-outdoors.png b/website/src/lib/assets/img/home/mapbox-outdoors.png new file mode 100755 index 0000000..841d16b Binary files /dev/null and b/website/src/lib/assets/img/home/mapbox-outdoors.png differ diff --git a/website/src/lib/assets/img/home/mapbox-satellite.png b/website/src/lib/assets/img/home/mapbox-satellite.png new file mode 100755 index 0000000..169bfe1 Binary files /dev/null and b/website/src/lib/assets/img/home/mapbox-satellite.png differ diff --git a/website/src/lib/assets/img/home/routing.png b/website/src/lib/assets/img/home/routing.png new file mode 100755 index 0000000..a18b3c4 Binary files /dev/null and b/website/src/lib/assets/img/home/routing.png differ diff --git a/website/src/lib/assets/img/home/waymarked.png b/website/src/lib/assets/img/home/waymarked.png new file mode 100755 index 0000000..43561e1 Binary files /dev/null and b/website/src/lib/assets/img/home/waymarked.png differ diff --git a/website/src/lib/assets/layers.ts b/website/src/lib/assets/layers.ts new file mode 100755 index 0000000..c492e1f --- /dev/null +++ b/website/src/lib/assets/layers.ts @@ -0,0 +1,1246 @@ +import { TramFront, Utensils, ShoppingBasket, Droplet, ShowerHead, Fuel, CircleParking, Fence, FerrisWheel, Bed, Mountain, Pickaxe, Store, TrainFront, Bus, Ship, Croissant, House, Tent, Wrench, Binoculars } from 'lucide-static'; +import { type Style } from 'mapbox-gl'; +import ignFrTopo from './custom/ign-fr-topo.json'; +import ignFrPlan from './custom/ign-fr-plan.json'; +import ignFrSatellite from './custom/ign-fr-satellite.json'; +import bikerouterGravel from './custom/bikerouter-gravel.json'; + +export const basemaps: { [key: string]: string | Style; } = { + mapboxOutdoors: 'mapbox://styles/mapbox/outdoors-v12', + mapboxSatellite: 'mapbox://styles/mapbox/satellite-streets-v12', + openStreetMap: { + version: 8, + sources: { + openStreetMap: { + type: 'raster', + tiles: ['https://a.tile.openstreetmap.org/{z}/{x}/{y}.png', 'https://b.tile.openstreetmap.org/{z}/{x}/{y}.png', 'https://c.tile.openstreetmap.org/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 19, + attribution: 'Map tiles by OpenStreetMap tile servers, under the tile usage policy. Data by OpenStreetMap' + } + }, + layers: [{ + id: 'openStreetMap', + type: 'raster', + source: 'openStreetMap', + }], + }, + openTopoMap: { + version: 8, + sources: { + openTopoMap: { + type: 'raster', + tiles: ['https://tile.opentopomap.org/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 17, + attribution: '© OpenTopoMap © OpenStreetMap' + } + }, + layers: [{ + id: 'openTopoMap', + type: 'raster', + source: 'openTopoMap', + }], + }, + openHikingMap: { + version: 8, + sources: { + openHikingMap: { + type: 'raster', + tiles: ['https://maps.refuges.info/hiking/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 18, + attribution: '© sly © OpenStreetMap' + } + }, + layers: [{ + id: 'openHikingMap', + type: 'raster', + source: 'openHikingMap', + }], + }, + cyclOSM: { + version: 8, + sources: { + cyclOSM: { + type: 'raster', + tiles: ['https://a.tile-cyclosm.openstreetmap.fr/cyclosm/{z}/{x}/{y}.png', 'https://b.tile-cyclosm.openstreetmap.fr/cyclosm/{z}/{x}/{y}.png', 'https://c.tile-cyclosm.openstreetmap.fr/cyclosm/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 18, + attribution: '© CyclOSM © OpenStreetMap' + } + }, + layers: [{ + id: 'cyclOSM', + type: 'raster', + source: 'cyclOSM', + }], + }, + swisstopoRaster: { + version: 8, + sources: { + swisstopoRaster: { + type: 'raster', + tiles: ['https://wmts.geo.admin.ch/1.0.0/ch.swisstopo.pixelkarte-farbe/default/current/3857/{z}/{x}/{y}.jpeg'], + tileSize: 128, + maxzoom: 19, + attribution: '© swisstopo' + } + }, + layers: [{ + id: 'swisstopoRaster', + type: 'raster', + source: 'swisstopoRaster', + }], + }, + swisstopoVector: 'https://vectortiles.geo.admin.ch/styles/ch.swisstopo.basemap.vt/style.json', + swisstopoSatellite: 'https://vectortiles.geo.admin.ch/styles/ch.swisstopo.imagerybasemap.vt/style.json', + linz: 'https://basemaps.linz.govt.nz/v1/tiles/topographic/EPSG:3857/style/topographic.json?api=d01fbtg0ar23gctac5m0jgyy2ds', + linzTopo: { + version: 8, + sources: { + linzTopo: { + type: 'raster', + tiles: ['https://tiles-cdn.koordinates.com/services;key=39a8b989633a4bef98bc0e065380454a/tiles/v4/layer=50767/EPSG:3857/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 18, + attribution: '© LINZ' + } + }, + layers: [{ + id: 'linzTopo', + type: 'raster', + source: 'linzTopo', + }], + }, + ignBe: { + version: 8, + sources: { + ignBe: { + type: 'raster', + tiles: ['https://cartoweb.wmts.ngi.be/1.0.0/topo/default/3857/{z}/{y}/{x}.png'], + tileSize: 256, + maxzoom: 17, + attribution: '© IGN/NGI' + } + }, + layers: [{ + id: 'ignBe', + type: 'raster', + source: 'ignBe', + }], + }, + ignFrPlan: ignFrPlan, + ignFrTopo: ignFrTopo, + ignFrScan25: { + version: 8, + sources: { + ignFrScan25: { + type: 'raster', + tiles: ['https://data.geopf.fr/private/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&TILEMATRIXSET=PM&TILEMATRIX={z}&TILECOL={x}&TILEROW={y}&LAYER=GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN25TOUR&FORMAT=image/jpeg&STYLE=normal&apikey=ign_scan_ws'], + tileSize: 256, + maxzoom: 16, + attribution: 'IGN-F/Géoportail' + } + }, + layers: [{ + id: 'ignFrScan25', + type: 'raster', + source: 'ignFrScan25', + }], + }, + ignFrSatellite: ignFrSatellite, + ignEs: { + version: 8, + sources: { + ignEs: { + type: 'raster', + tiles: ['https://www.ign.es/wmts/mapa-raster?layer=MTN&style=default&tilematrixset=GoogleMapsCompatible&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/jpeg&TileMatrix={z}&TileCol={x}&TileRow={y}'], + tileSize: 256, + maxzoom: 20, + attribution: 'IGN-F/Géoportail' + } + }, + layers: [{ + id: 'ignEs', + type: 'raster', + source: 'ignEs', + }], + }, + ordnanceSurvey: "https://api.os.uk/maps/vector/v1/vts/resources/styles?srs=3857&key=piCT8WysfuC3xLSUW7sGLfrAAJoYDvQz", + norwayTopo: { + version: 8, + sources: { + norwayTopo: { + type: 'raster', + tiles: ['https://cache.kartverket.no/v1/wmts/1.0.0/topo/default/webmercator/{z}/{y}/{x}.png'], + tileSize: 256, + maxzoom: 20, + attribution: '© Geonorge' + } + }, + layers: [{ + id: 'norwayTopo', + type: 'raster', + source: 'norwayTopo', + }], + }, + swedenTopo: { + version: 8, + sources: { + swedenTopoWMTS: { + type: 'raster', + tiles: ['https://api.lantmateriet.se/open/topowebb-ccby/v1/wmts/token/1d54dd14-a28c-38a9-b6f3-b4ebfcc3c204/1.0.0/topowebb/default/3857/{z}/{y}/{x}.png'], + tileSize: 256, + maxzoom: 14, + attribution: '© Lantmäteriet' + }, + swedenTopoWMS: { + type: 'raster', + tiles: ['https://minkarta.lantmateriet.se/map/topowebb?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&FORMAT=image%2Fpng&STYLES=&TRANSPARENT=false&LAYERS=topowebbkartan&TILED=true&MAP_RESOLUTION=180&WIDTH=512&HEIGHT=512&SRS=EPSG%3A3857&BBOX={bbox-epsg-3857}'], + tileSize: 512, + minzoom: 14, + maxzoom: 20, + attribution: '© Lantmäteriet' + } + }, + layers: [{ + id: 'swedenTopoWMTS', + type: 'raster', + source: 'swedenTopoWMTS', + maxzoom: 14 + }, { + id: 'swedenTopoWMS', + type: 'raster', + source: 'swedenTopoWMS', + minzoom: 14 + }], + }, + swedenSatellite: { + version: 8, + sources: { + swedenSatellite: { + type: 'raster', + tiles: ['https://minkarta.lantmateriet.se/map/ortofoto?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&FORMAT=image%2Fpng&STYLES=&TRANSPARENT=false&LAYERS=Ortofoto_0.5%2COrtofoto_0.4%2COrtofoto_0.25%2COrtofoto_0.16&TILED=true&MAP_RESOLUTION=180&WIDTH=512&HEIGHT=512&SRS=EPSG%3A3857&BBOX={bbox-epsg-3857}'], + tileSize: 512, + maxzoom: 22, + attribution: '© Lantmäteriet' + } + }, + layers: [{ + id: 'swedenSatellite', + type: 'raster', + source: 'swedenSatellite', + }], + }, + finlandTopo: { + version: 8, + sources: { + finlandTopo: { + type: 'raster', + tiles: ['https://avoin-karttakuva.maanmittauslaitos.fi/avoin/wmts?layer=maastokartta&style=default&tilematrixset=WGS84_Pseudo-Mercator&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/png&TileMatrix={z}&TileCol={x}&TileRow={y}&api-key=30cb768c-c968-493c-ae24-2b0b974ebd29'], + tileSize: 256, + maxzoom: 18, + attribution: '© Maanmittauslaitos' + } + }, + layers: [{ + id: 'finlandTopo', + type: 'raster', + source: 'finlandTopo', + }], + }, + bgMountains: { + version: 8, + sources: { + bgMountains: { + type: 'raster', + tiles: ['https://bgmtile.kade.si/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 19, + attribution: 'BGM Legend / CART Lab, BGM team, © CC BY-SA 4.0, Garmin version' + } + }, + layers: [{ + id: 'bgMountains', + type: 'raster', + source: 'bgMountains', + }], + }, + usgs: { + version: 8, + sources: { + usgs: { + type: 'raster', + tiles: ['https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/tile/{z}/{y}/{x}?blankTile=false'], + tileSize: 256, + maxzoom: 16, + attribution: '© USGS' + } + }, + layers: [{ + id: 'usgs', + type: 'raster', + source: 'usgs', + }], + }, +}; + +export const overlays: { [key: string]: string | Style; } = { + cyclOSMlite: { + version: 8, + sources: { + cyclOSMlite: { + type: 'raster', + tiles: ['https://a.tile-cyclosm.openstreetmap.fr/cyclosm-lite/{z}/{x}/{y}.png', 'https://b.tile-cyclosm.openstreetmap.fr/cyclosm-lite/{z}/{x}/{y}.png', 'https://c.tile-cyclosm.openstreetmap.fr/cyclosm-lite/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 17, + attribution: '© CyclOSM © OpenStreetMap' + } + }, + layers: [{ + id: 'cyclOSMlite', + type: 'raster', + source: 'cyclOSMlite', + }], + }, + bikerouterGravel: bikerouterGravel, + swisstopoSlope: { + version: 8, + sources: { + swisstopoSlope: { + type: 'raster', + tiles: ['https://wmts.geo.admin.ch/1.0.0/ch.swisstopo.hangneigung-ueber_30/default/current/3857/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 17, + attribution: '© swisstopo', + }, + }, + layers: [{ + id: 'swisstopoSlope', + type: 'raster', + source: 'swisstopoSlope', + }], + }, + swisstopoHiking: { + version: 8, + sources: { + swisstopoHiking: { + type: 'raster', + tiles: ['https://wmts.geo.admin.ch/1.0.0/ch.swisstopo.swisstlm3d-wanderwege/default/current/3857/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 18, + attribution: '© swisstopo' + }, + }, + layers: [{ + id: 'swisstopoHiking', + type: 'raster', + source: 'swisstopoHiking', + }], + }, + swisstopoHikingClosures: { + version: 8, + sources: { + swisstopoHikingClosures: { + type: 'raster', + tiles: ['https://wms.geo.admin.ch/?version=1.3.0&service=WMS&request=GetMap&sld_version=1.1.0&layers=ch.astra.wanderland-sperrungen_umleitungen&format=image/png&STYLE=default&bbox={bbox-epsg-3857}&width=256&height=256&crs=EPSG:3857&transparent=true'], + tileSize: 256, + attribution: '© swisstopo' + }, + }, + layers: [{ + id: 'swisstopoHikingClosures', + type: 'raster', + source: 'swisstopoHikingClosures', + }], + }, + swisstopoCycling: { + version: 8, + sources: { + swisstopoCycling: { + type: 'raster', + tiles: ['https://wmts.geo.admin.ch/1.0.0/ch.astra.veloland/default/current/3857/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 18, + attribution: '© swisstopo' + } + }, + layers: [{ + id: 'swisstopoCycling', + type: 'raster', + source: 'swisstopoCycling', + }], + }, + swisstopoCyclingClosures: { + version: 8, + sources: { + swisstopoCyclingClosures: { + type: 'raster', + tiles: ['https://wms.geo.admin.ch/?version=1.3.0&service=WMS&request=GetMap&sld_version=1.1.0&layers=ch.astra.veloland-sperrungen_umleitungen&format=image/png&STYLE=default&bbox={bbox-epsg-3857}&width=256&height=256&crs=EPSG:3857&transparent=true'], + tileSize: 256, + attribution: '© swisstopo' + } + }, + layers: [{ + id: 'swisstopoCyclingClosures', + type: 'raster', + source: 'swisstopoCyclingClosures', + }], + }, + swisstopoMountainBike: { + version: 8, + sources: { + swisstopoMountainBike: { + type: 'raster', + tiles: ['https://wmts.geo.admin.ch/1.0.0/ch.astra.mountainbikeland/default/current/3857/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 18, + attribution: '© swisstopo' + } + }, + layers: [{ + id: 'swisstopoMountainBike', + type: 'raster', + source: 'swisstopoMountainBike', + }], + }, + swisstopoMountainBikeClosures: { + version: 8, + sources: { + swisstopoMountainBikeClosures: { + type: 'raster', + tiles: ['https://wms.geo.admin.ch/?version=1.3.0&service=WMS&request=GetMap&sld_version=1.1.0&layers=ch.astra.mountainbikeland-sperrungen_umleitungen&format=image/png&STYLE=default&bbox={bbox-epsg-3857}&width=256&height=256&crs=EPSG:3857&transparent=true'], + tileSize: 256, + attribution: '© swisstopo' + } + }, + layers: [{ + id: 'swisstopoMountainBikeClosures', + type: 'raster', + source: 'swisstopoMountainBikeClosures', + }], + }, + swisstopoSkiTouring: { + version: 8, + sources: { + swisstopoSkiTouring: { + type: 'raster', + tiles: ['https://wmts.geo.admin.ch/1.0.0/ch.swisstopo-karto.skitouren/default/current/3857/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 17, + attribution: '© swisstopo' + } + }, + layers: [{ + id: 'swisstopoSkiTouring', + type: 'raster', + source: 'swisstopoSkiTouring', + }], + }, + ignFrCadastre: { + version: 8, + sources: { + ignFrCadastre: { + type: 'raster', + tiles: ['https://data.geopf.fr/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&TILEMATRIXSET=PM&TILEMATRIX={z}&TILECOL={x}&TILEROW={y}&LAYER=CADASTRALPARCELS.PARCELS&FORMAT=image/png&STYLE=normal'], + tileSize: 256, + maxzoom: 20, + attribution: 'IGN-F/Géoportail' + } + }, + layers: [{ + id: 'ignFrCadastre', + type: 'raster', + source: 'ignFrCadastre', + }], + }, + ignSlope: { + version: 8, + sources: { + ignSlope: { + type: 'raster', + tiles: ['https://data.geopf.fr/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&TileMatrixSet=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&Layer=GEOGRAPHICALGRIDSYSTEMS.SLOPES.MOUNTAIN&FORMAT=image/png&Style=normal'], + tileSize: 256, + attribution: 'IGN-F/Géoportail' + } + }, + layers: [{ + id: 'ignSlope', + type: 'raster', + source: 'ignSlope', + }], + }, + ignSkiTouring: { + version: 8, + sources: { + ignSkiTouring: { + type: 'raster', + tiles: ['https://data.geopf.fr/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&TileMatrixSet=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&Layer=TRACES.RANDO.HIVERNALE&FORMAT=image/png&Style=normal'], + tileSize: 256, + maxzoom: 16, + attribution: 'IGN-F/Géoportail' + }, + }, + layers: [{ + id: 'ignSkiTouring', + type: 'raster', + source: 'ignSkiTouring', + }], + }, + waymarkedTrailsHiking: { + version: 8, + sources: { + waymarkedTrailsHiking: { + type: 'raster', + tiles: ['https://tile.waymarkedtrails.org/hiking/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 18, + attribution: '© Waymarked Trails' + } + }, + layers: [{ + id: 'waymarkedTrailsHiking', + type: 'raster', + source: 'waymarkedTrailsHiking', + }], + }, + waymarkedTrailsCycling: { + version: 8, + sources: { + waymarkedTrailsCycling: { + type: 'raster', + tiles: ['https://tile.waymarkedtrails.org/cycling/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 18, + attribution: '© Waymarked Trails' + } + }, + layers: [{ + id: 'waymarkedTrailsCycling', + type: 'raster', + source: 'waymarkedTrailsCycling', + }], + }, + waymarkedTrailsMTB: { + version: 8, + sources: { + waymarkedTrailsMTB: { + type: 'raster', + tiles: ['https://tile.waymarkedtrails.org/mtb/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 18, + attribution: '© Waymarked Trails' + } + }, + layers: [{ + id: 'waymarkedTrailsMTB', + type: 'raster', + source: 'waymarkedTrailsMTB', + }], + }, + waymarkedTrailsSkating: { + version: 8, + sources: { + waymarkedTrailsSkating: { + type: 'raster', + tiles: ['https://tile.waymarkedtrails.org/skating/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 18, + attribution: '© Waymarked Trails' + } + }, + layers: [{ + id: 'waymarkedTrailsSkating', + type: 'raster', + source: 'waymarkedTrailsSkating', + }], + }, + waymarkedTrailsHorseRiding: { + version: 8, + sources: { + waymarkedTrailsHorseRiding: { + type: 'raster', + tiles: ['https://tile.waymarkedtrails.org/riding/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 18, + attribution: '© Waymarked Trails' + } + }, + layers: [{ + id: 'waymarkedTrailsHorseRiding', + type: 'raster', + source: 'waymarkedTrailsHorseRiding', + }], + }, + waymarkedTrailsWinter: { + version: 8, + sources: { + waymarkedTrailsWinter: { + type: 'raster', + tiles: ['https://tile.waymarkedtrails.org/slopes/{z}/{x}/{y}.png'], + tileSize: 256, + maxzoom: 18, + attribution: '© Waymarked Trails' + } + }, + layers: [{ + id: 'waymarkedTrailsWinter', + type: 'raster', + source: 'waymarkedTrailsWinter', + }], + }, +}; + +export const defaultOpacities: { [key: string]: number; } = { + ignFrCadastre: 0.5, + ignSlope: 0.4, + swisstopoSlope: 0.4, +}; + +export type LayerTreeType = { [key: string]: LayerTreeType | boolean; }; + +// Hierarchy containing all basemaps +export const basemapTree: LayerTreeType = { + basemaps: { + world: { + mapboxOutdoors: true, + mapboxSatellite: true, + openStreetMap: true, + openTopoMap: true, + openHikingMap: true, + cyclOSM: true + }, + countries: { + belgium: { + ignBe: true, + }, + bulgaria: { + bgMountains: true, + }, + finland: { + finlandTopo: true, + }, + france: { + ignFrPlan: true, + ignFrTopo: true, + ignFrScan25: true, + ignFrSatellite: true, + }, + new_zealand: { + linz: true, + linzTopo: true, + }, + norway: { + norwayTopo: true, + }, + spain: { + ignEs: true, + }, + sweden: { + swedenTopo: true, + swedenSatellite: true, + }, + switzerland: { + swisstopoRaster: true, + swisstopoVector: true, + swisstopoSatellite: true, + }, + united_kingdom: { + ordnanceSurvey: true, + }, + united_states: { + usgs: true, + } + }, + }, +} + +// Hierarchy containing all overlays +export const overlayTree: LayerTreeType = { + overlays: { + world: { + waymarked_trails: { + waymarkedTrailsHiking: true, + waymarkedTrailsCycling: true, + waymarkedTrailsMTB: true, + waymarkedTrailsSkating: true, + waymarkedTrailsHorseRiding: true, + waymarkedTrailsWinter: true, + }, + cyclOSMlite: true, + bikerouterGravel: true, + }, + countries: { + france: { + ignFrCadastre: true, + ignSlope: true, + ignSkiTouring: true, + }, + switzerland: { + swisstopoSlope: true, + swisstopoHiking: true, + swisstopoHikingClosures: true, + swisstopoCycling: true, + swisstopoCyclingClosures: true, + swisstopoMountainBike: true, + swisstopoMountainBikeClosures: true, + swisstopoSkiTouring: true, + } + }, + }, +} + +// Hierachy containing all Overpass layers +export const overpassTree: LayerTreeType = { + points_of_interest: { + food: { + bakery: true, + "food-store": true, + "eat-and-drink": true, + }, + amenities: { + toilets: true, + "water": true, + shower: true, + shelter: true, + barrier: true + }, + tourism: { + attraction: true, + viewpoint: true, + hotel: true, + campsite: true, + hut: true, + picnic: true, + summit: true, + pass: true, + climbing: true, + }, + bicycle: { + "bicycle-parking": true, + "bicycle-rental": true, + "bicycle-shop": true + }, + "public-transport": { + "railway-station": true, + "tram-stop": true, + "bus-stop": true, + ferry: true + }, + motorized: { + "fuel-station": true, + parking: true, + garage: true + }, + }, +}; + +// Default basemap used +export const defaultBasemap = 'mapboxOutdoors'; + +// Default overlays used (none) +export const defaultOverlays = { + overlays: { + world: { + waymarked_trails: { + waymarkedTrailsHiking: false, + waymarkedTrailsCycling: false, + waymarkedTrailsMTB: false, + waymarkedTrailsSkating: false, + waymarkedTrailsHorseRiding: false, + waymarkedTrailsWinter: false, + }, + cyclOSMlite: false, + bikerouterGravel: false, + }, + countries: { + france: { + ignFrCadastre: false, + ignSlope: false, + ignSkiTouring: false, + }, + switzerland: { + swisstopoSlope: false, + swisstopoHiking: false, + swisstopoHikingClosures: false, + swisstopoCycling: false, + swisstopoCyclingClosures: false, + swisstopoMountainBike: false, + swisstopoMountainBikeClosures: false, + swisstopoSkiTouring: false, + } + }, + }, +}; + +// Default Overpass queries used (none) +export const defaultOverpassQueries: LayerTreeType = { + points_of_interest: { + "food": { + bakery: false, + "food-store": false, + "eat-and-drink": false, + }, + amenities: { + toilets: false, + "water": false, + shower: false, + shelter: false, + barrier: false + }, + tourism: { + attraction: false, + viewpoint: false, + hotel: false, + campsite: false, + hut: false, + picnic: false, + summit: false, + pass: false, + climbing: false + }, + bicycle: { + "bicycle-parking": false, + "bicycle-rental": false, + "bicycle-shop": false + }, + "public-transport": { + "railway-station": false, + "tram-stop": false, + "bus-stop": false, + ferry: false + }, + motorized: { + "fuel-station": false, + parking: false, + garage: false + }, + }, +}; + +// Default basemaps shown in the layer menu +export const defaultBasemapTree: LayerTreeType = { + basemaps: { + world: { + mapboxOutdoors: true, + mapboxSatellite: true, + openStreetMap: true, + openTopoMap: true, + openHikingMap: true, + cyclOSM: true + }, + countries: { + belgium: { + ignBe: false, + }, + bulgaria: { + bgMountains: false, + }, + finland: { + finlandTopo: false, + }, + france: { + ignFrPlan: false, + ignFrTopo: false, + ignFrScan25: false, + ignFrSatellite: false, + }, + new_zealand: { + linz: false, + linzTopo: false, + }, + norway: { + norwayTopo: false, + }, + spain: { + ignEs: false, + }, + sweden: { + swedenTopo: false, + swedenSatellite: false, + }, + switzerland: { + swisstopoRaster: false, + swisstopoVector: false, + swisstopoSatellite: false, + }, + united_kingdom: { + ordnanceSurvey: false, + }, + united_states: { + usgs: false, + } + }, + } +}; + +// Default overlays shown in the layer menu +export const defaultOverlayTree: LayerTreeType = { + overlays: { + world: { + waymarked_trails: { + waymarkedTrailsHiking: true, + waymarkedTrailsCycling: true, + waymarkedTrailsMTB: true, + waymarkedTrailsSkating: false, + waymarkedTrailsHorseRiding: false, + waymarkedTrailsWinter: false, + }, + cyclOSMlite: false, + bikerouterGravel: false, + }, + countries: { + france: { + ignFrCadastre: false, + ignSlope: false, + ignSkiTouring: false, + }, + switzerland: { + swisstopoSlope: false, + swisstopoHiking: false, + swisstopoHikingClosures: false, + swisstopoCycling: false, + swisstopoCyclingClosures: false, + swisstopoMountainBike: false, + swisstopoMountainBikeClosures: false, + swisstopoSkiTouring: false, + } + }, + } +} + +// Default Overpass queries shown in the layer menu +export const defaultOverpassTree: LayerTreeType = { + points_of_interest: { + "food": { + bakery: true, + "food-store": true, + "eat-and-drink": true, + }, + amenities: { + toilets: true, + "water": true, + shower: false, + shelter: false, + barrier: false + }, + tourism: { + attraction: false, + viewpoint: false, + hotel: true, + campsite: true, + hut: true, + picnic: false, + summit: true, + pass: true, + climbing: false + }, + bicycle: { + "bicycle-parking": false, + "bicycle-rental": false, + "bicycle-shop": true + }, + "public-transport": { + "railway-station": true, + "tram-stop": true, + "bus-stop": true, + ferry: false + }, + motorized: { + "fuel-station": false, + parking: false, + garage: false + }, + }, +}; + +export type CustomLayer = { + id: string, + name: string, + tileUrls: string[], + maxZoom: number, + layerType: 'basemap' | 'overlay', + resourceType: 'raster' | 'vector', + value: string | {}, +}; + +type OverpassQueryData = { + icon: { + svg: string, + color: string, + }, + tags: Record | Record[], + symbol?: string, +}; + +export const overpassQueryData: Record = { + bakery: { + icon: { + svg: Croissant, + color: "Coral", + }, + tags: { + shop: "bakery" + }, + symbol: "Convenience Store" + }, + "food-store": { + icon: { + svg: ShoppingBasket, + color: "Coral", + }, + tags: { + shop: ["supermarket", "convenience"], + }, + symbol: "Convenience Store" + }, + "eat-and-drink": { + icon: { + svg: Utensils, + color: "Coral", + }, + tags: { + amenity: ["restaurant", "fast_food", "cafe", "pub", "bar"] + }, + symbol: "Restaurant" + }, + toilets: { + icon: { + svg: Droplet, + color: "DeepSkyBlue", + }, + tags: { + amenity: "toilets" + }, + symbol: "Restroom" + }, + water: { + icon: { + svg: Droplet, + color: "DeepSkyBlue", + }, + tags: [{ + amenity: ["drinking_water", "water_point"] + }, { + natural: "spring", + drinking_water: "yes" + }], + symbol: "Drinking Water" + }, + shower: { + icon: { + svg: ShowerHead, + color: "DeepSkyBlue", + }, + tags: { + amenity: "shower" + }, + symbol: "Shower" + }, + shelter: { + icon: { + svg: Tent, + color: "#000000", + }, + tags: { + amenity: "shelter" + }, + symbol: "Shelter" + }, + "fuel-station": { + icon: { + svg: Fuel, + color: "#000000", + }, + tags: { + amenity: "fuel" + }, + symbol: "Gas Station" + }, + parking: { + icon: { + svg: CircleParking, + color: "#000000", + }, + tags: { + amenity: "parking" + }, + symbol: "Parking Area" + }, + garage: { + icon: { + svg: Wrench, + color: "#000000", + }, + tags: { + shop: ["car_repair", "motorcycle_repair"] + }, + symbol: "Car Repair" + }, + barrier: { + icon: { + svg: Fence, + color: "#000000", + }, + tags: { + barrier: true + } + }, + attraction: { + icon: { + svg: FerrisWheel, + color: "Green", + }, + tags: { + tourism: "attraction" + } + }, + viewpoint: { + icon: { + svg: Binoculars, + color: "Green", + }, + tags: { + tourism: "viewpoint" + }, + symbol: "Scenic Area" + }, + hotel: { + icon: { + svg: Bed, + color: "#e6c100", + }, + tags: { + tourism: ["hotel", "hostel", "guest_house", "motel"] + }, + symbol: "Hotel" + }, + campsite: { + icon: { + svg: Tent, + color: "#e6c100", + }, + tags: { + tourism: "camp_site" + }, + symbol: "Campground" + }, + hut: { + icon: { + svg: House, + color: "#e6c100", + }, + tags: { + tourism: ["alpine_hut", "wilderness_hut"] + }, + symbol: "Lodge" + }, + picnic: { + icon: { + svg: Utensils, + color: "Green", + }, + tags: { + tourism: "picnic_site" + }, + symbol: "Picnic Area" + }, + summit: { + icon: { + svg: Mountain, + color: "Green", + }, + tags: { + natural: "peak" + }, + symbol: "Summit" + }, + pass: { + icon: { + svg: Mountain, + color: "Green", + }, + tags: { + mountain_pass: "yes" + } + }, + climbing: { + icon: { + svg: Pickaxe, + color: "Green", + }, + tags: { + sport: "climbing" + } + }, + "bicycle-parking": { + icon: { + svg: CircleParking, + color: "HotPink", + }, + tags: { + amenity: "bicycle_parking" + }, + symbol: "Parking Area" + }, + "bicycle-rental": { + icon: { + svg: Store, + color: "HotPink", + }, + tags: { + amenity: "bicycle_rental" + } + }, + "bicycle-shop": { + icon: { + svg: Store, + color: "HotPink", + }, + tags: { + shop: "bicycle" + } + }, + "railway-station": { + icon: { + svg: TrainFront, + color: "DarkBlue", + }, + tags: { + railway: "station" + }, + symbol: "Ground Transportation" + }, + "tram-stop": { + icon: { + svg: TramFront, + color: 'DarkBlue', + }, + tags: { + railway: "tram_stop" + }, + symbol: "Ground Transportation" + }, + "bus-stop": { + icon: { + svg: Bus, + color: "DarkBlue", + }, + tags: { + "public_transport": ["stop_position", "platform"], + bus: "yes" + }, + symbol: "Ground Transportation" + }, + ferry: { + icon: { + svg: Ship, + color: "DarkBlue", + }, + tags: { + amenity: "ferry_terminal" + }, + symbol: "Anchor" + } +}; \ No newline at end of file diff --git a/website/src/lib/assets/surfaces.ts b/website/src/lib/assets/surfaces.ts new file mode 100755 index 0000000..efbfc24 --- /dev/null +++ b/website/src/lib/assets/surfaces.ts @@ -0,0 +1,31 @@ +export const surfaceColors: { [key: string]: string } = { + 'missing': '#d1d1d1', + 'paved': '#8c8c8c', + 'unpaved': '#6b443a', + 'asphalt': '#8c8c8c', + 'concrete': '#8c8c8c', + 'chipseal': '#8c8c8c', + 'cobblestone': '#ffd991', + 'unhewn_cobblestone': '#ffd991', + 'paving_stones': '#8c8c8c', + 'stepping_stones': '#c7b2db', + 'sett': '#ffd991', + 'metal': '#8c8c8c', + 'wood': '#6b443a', + 'compacted': '#ffffa8', + 'fine_gravel': '#ffffa8', + 'gravel': '#ffffa8', + 'pebblestone': '#ffffa8', + 'rock': '#ffd991', + 'dirt': '#ffffa8', + 'ground': '#6b443a', + 'earth': '#6b443a', + 'snow': '#bdfffc', + 'ice': '#bdfffc', + 'salt': '#b6c0f2', + 'mud': '#6b443a', + 'sand': '#ffffc4', + 'woodchips': '#6b443a', + 'grass': '#61b55c', + 'grass_paver': '#61b55c' +} \ No newline at end of file diff --git a/website/src/lib/assets/symbols.ts b/website/src/lib/assets/symbols.ts new file mode 100755 index 0000000..0fe9e0d --- /dev/null +++ b/website/src/lib/assets/symbols.ts @@ -0,0 +1,60 @@ +import { Landmark, Icon, Shell, Bike, Building, Tent, Car, Wrench, ShoppingBasket, Droplet, DoorOpen, Trees, Fuel, Home, Info, TreeDeciduous, CircleParking, Cross, Utensils, Construction, BrickWall, ShowerHead, Mountain, Phone, TrainFront, Bed, Binoculars, TriangleAlert, Anchor } from "lucide-svelte"; +import { Landmark as LandmarkSvg, Shell as ShellSvg, Bike as BikeSvg, Building as BuildingSvg, Tent as TentSvg, Car as CarSvg, Wrench as WrenchSvg, ShoppingBasket as ShoppingBasketSvg, Droplet as DropletSvg, DoorOpen as DoorOpenSvg, Trees as TreesSvg, Fuel as FuelSvg, Home as HomeSvg, Info as InfoSvg, TreeDeciduous as TreeDeciduousSvg, CircleParking as CircleParkingSvg, Cross as CrossSvg, Utensils as UtensilsSvg, Construction as ConstructionSvg, BrickWall as BrickWallSvg, ShowerHead as ShowerHeadSvg, Mountain as MountainSvg, Phone as PhoneSvg, TrainFront as TrainFrontSvg, Bed as BedSvg, Binoculars as BinocularsSvg, TriangleAlert as TriangleAlertSvg, Anchor as AnchorSvg } from "lucide-static"; +import type { ComponentType } from "svelte"; + +export type Symbol = { + value: string; + icon?: ComponentType; + iconSvg?: string; +}; + +export const symbols: { [key: string]: Symbol } = { + alert: { value: 'Alert', icon: TriangleAlert, iconSvg: TriangleAlertSvg }, + anchor: { value: 'Anchor', icon: Anchor, iconSvg: AnchorSvg }, + bank: { value: 'Bank', icon: Landmark, iconSvg: LandmarkSvg }, + beach: { value: 'Beach', icon: Shell, iconSvg: ShellSvg }, + bike_trail: { value: 'Bike Trail', icon: Bike, iconSvg: BikeSvg }, + binoculars: { value: 'Binoculars', icon: Binoculars, iconSvg: BinocularsSvg }, + bridge: { value: 'Bridge' }, + building: { value: 'Building', icon: Building, iconSvg: BuildingSvg }, + campground: { value: 'Campground', icon: Tent, iconSvg: TentSvg }, + car: { value: 'Car', icon: Car, iconSvg: CarSvg }, + car_repair: { value: 'Car Repair', icon: Wrench, iconSvg: WrenchSvg }, + convenience_store: { value: 'Convenience Store', icon: ShoppingBasket, iconSvg: ShoppingBasketSvg }, + crossing: { value: 'Crossing' }, + department_store: { value: 'Department Store', icon: ShoppingBasket, iconSvg: ShoppingBasketSvg }, + drinking_water: { value: 'Drinking Water', icon: Droplet, iconSvg: DropletSvg }, + exit: { value: 'Exit', icon: DoorOpen, iconSvg: DoorOpenSvg }, + lodge: { value: 'Lodge', icon: Home, iconSvg: HomeSvg }, + lodging: { value: 'Lodging', icon: Bed, iconSvg: BedSvg }, + forest: { value: 'Forest', icon: Trees, iconSvg: TreesSvg }, + gas_station: { value: 'Gas Station', icon: Fuel, iconSvg: FuelSvg }, + ground_transportation: { value: 'Ground Transportation', icon: TrainFront, iconSvg: TrainFrontSvg }, + hotel: { value: 'Hotel', icon: Bed, iconSvg: BedSvg }, + house: { value: 'House', icon: Home, iconSvg: HomeSvg }, + information: { value: 'Information', icon: Info, iconSvg: InfoSvg }, + park: { value: 'Park', icon: TreeDeciduous, iconSvg: TreeDeciduousSvg }, + parking_area: { value: 'Parking Area', icon: CircleParking, iconSvg: CircleParkingSvg }, + pharmacy: { value: 'Pharmacy', icon: Cross, iconSvg: CrossSvg }, + picnic_area: { value: 'Picnic Area', icon: Utensils, iconSvg: UtensilsSvg }, + restaurant: { value: 'Restaurant', icon: Utensils, iconSvg: UtensilsSvg }, + restricted_area: { value: 'Restricted Area', icon: Construction, iconSvg: ConstructionSvg }, + restroom: { value: 'Restroom' }, + road: { value: 'Road', icon: BrickWall, iconSvg: BrickWallSvg }, + scenic_area: { value: 'Scenic Area', icon: Binoculars, iconSvg: BinocularsSvg }, + shelter: { value: 'Shelter', icon: Tent, iconSvg: TentSvg }, + shopping_center: { value: 'Shopping Center', icon: ShoppingBasket }, + shower: { value: 'Shower', icon: ShowerHead, iconSvg: ShowerHeadSvg }, + summit: { value: 'Summit', icon: Mountain, iconSvg: MountainSvg }, + telephone: { value: 'Telephone', icon: Phone, iconSvg: PhoneSvg }, + tunnel: { value: 'Tunnel' }, + water_source: { value: 'Water Source', icon: Droplet, iconSvg: DropletSvg }, +}; + +export function getSymbolKey(value: string | undefined): string | undefined { + if (value === undefined) { + return undefined; + } else { + return Object.keys(symbols).find(key => symbols[key].value === value); + } +} \ No newline at end of file diff --git a/website/src/lib/components/AlgoliaDocSearch.svelte b/website/src/lib/components/AlgoliaDocSearch.svelte new file mode 100755 index 0000000..2108a24 --- /dev/null +++ b/website/src/lib/components/AlgoliaDocSearch.svelte @@ -0,0 +1,60 @@ + + + + + + +
diff --git a/website/src/lib/components/ButtonWithTooltip.svelte b/website/src/lib/components/ButtonWithTooltip.svelte new file mode 100755 index 0000000..c5a7d2a --- /dev/null +++ b/website/src/lib/components/ButtonWithTooltip.svelte @@ -0,0 +1,26 @@ + + + + + + + + {label} + + diff --git a/website/src/lib/components/ElevationProfile.svelte b/website/src/lib/components/ElevationProfile.svelte new file mode 100755 index 0000000..523b262 --- /dev/null +++ b/website/src/lib/components/ElevationProfile.svelte @@ -0,0 +1,685 @@ + + +
+
+ + +
+ {#if showControls} +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ {/if} +
diff --git a/website/src/lib/components/Export.svelte b/website/src/lib/components/Export.svelte new file mode 100755 index 0000000..8c83da4 --- /dev/null +++ b/website/src/lib/components/Export.svelte @@ -0,0 +1,186 @@ + + + { + if (!isOpen) { + $exportState = ExportState.NONE; + } + }} +> + diff --git a/website/src/lib/components/Footer.svelte b/website/src/lib/components/Footer.svelte new file mode 100755 index 0000000..9d61ce7 --- /dev/null +++ b/website/src/lib/components/Footer.svelte @@ -0,0 +1,125 @@ + + +
+
+
+
+ + + +
+
+
+ {$_('homepage.website')} + + + +
+
+ {$_('homepage.contact')} + + + + +
+
+ {$_('homepage.contribute')} + + + +
+
+
+
+
diff --git a/website/src/lib/components/GPXStatistics.svelte b/website/src/lib/components/GPXStatistics.svelte new file mode 100755 index 0000000..8804fb2 --- /dev/null +++ b/website/src/lib/components/GPXStatistics.svelte @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + {#if panelSize > 120 || orientation === 'horizontal'} + + + + + / + + + + {/if} + {#if panelSize > 160 || orientation === 'horizontal'} + + + + + / + + + + {/if} + + diff --git a/website/src/lib/components/Help.svelte b/website/src/lib/components/Help.svelte new file mode 100755 index 0000000..82d2e17 --- /dev/null +++ b/website/src/lib/components/Help.svelte @@ -0,0 +1,20 @@ + + +
+ +
+ + {#if link} + + {$_('menu.more')} + + {/if} +
+
diff --git a/website/src/lib/components/LanguageSelect.svelte b/website/src/lib/components/LanguageSelect.svelte new file mode 100755 index 0000000..141550a --- /dev/null +++ b/website/src/lib/components/LanguageSelect.svelte @@ -0,0 +1,51 @@ + + + + + + + + + {#each Object.entries(languages) as [lang, label]} + {#if $page.url.pathname.includes('404')} + + {label} + + {:else} + + {label} + + {/if} + {/each} + + + + + diff --git a/website/src/lib/components/Logo.svelte b/website/src/lib/components/Logo.svelte new file mode 100755 index 0000000..861015a --- /dev/null +++ b/website/src/lib/components/Logo.svelte @@ -0,0 +1,73 @@ + + +{#if company === 'gpx.rnmkcy.eu'} + Logo of gpx.rnmkcy.eu. +{:else if company === 'mapbox'} + Logo of Mapbox. +{:else if company === 'github'} + GitHub +{:else if company === 'crowdin'} + Crowdin +{:else if company === 'facebook'} + Facebook +{:else if company === 'x'} + X +{:else if company === 'reddit'} + Reddit +{/if} diff --git a/website/src/lib/components/Map.svelte b/website/src/lib/components/Map.svelte new file mode 100755 index 0000000..d3613a1 --- /dev/null +++ b/website/src/lib/components/Map.svelte @@ -0,0 +1,380 @@ + + +
+
+
+

{$_('webgl2_required')}

+ +
+
+ + diff --git a/website/src/lib/components/Menu.svelte b/website/src/lib/components/Menu.svelte new file mode 100755 index 0000000..bf1cd2d --- /dev/null +++ b/website/src/lib/components/Menu.svelte @@ -0,0 +1,612 @@ + + +
+
+ + + + + + + + + + + + + {$_('menu.new')} + + + + + + {$_('menu.open')} + + + + + + {$_('menu.duplicate')} + + + + + + {$_('menu.close')} + + + + + {$_('menu.close_all')} + + + + ($exportState = ExportState.SELECTION)} + disabled={$selection.size == 0} + > + + {$_('menu.export')} + + + ($exportState = ExportState.ALL)} + disabled={$fileObservers.size == 0} + > + + {$_('menu.export_all')} + + + + + + + + + + + + + {$_('menu.undo')} + + + + + {$_('menu.redo')} + + + + item instanceof ListFileItem || item instanceof ListTrackItem)} + on:click={() => ($editMetadata = true)} + > + + {$_('menu.metadata.button')} + + + item instanceof ListFileItem || item instanceof ListTrackItem)} + on:click={() => ($editStyle = true)} + > + + {$_('menu.style.button')} + + { + if ($allHidden) { + dbUtils.setHiddenToSelection(false); + } else { + dbUtils.setHiddenToSelection(true); + } + }} + disabled={$selection.size == 0} + > + {#if $allHidden} + + {$_('menu.unhide')} + {:else} + + {$_('menu.hide')} + {/if} + + + {#if $verticalFileView} + {#if $selection.getSelected().some((item) => item instanceof ListFileItem)} + + dbUtils.addNewTrack($selection.getSelected()[0].getFileId())} + disabled={$selection.size !== 1} + > + + {$_('menu.new_track')} + + {:else if $selection.getSelected().some((item) => item instanceof ListTrackItem)} + + { + let item = $selection.getSelected()[0]; + dbUtils.addNewSegment(item.getFileId(), item.getTrackIndex()); + }} + disabled={$selection.size !== 1} + > + + {$_('menu.new_segment')} + + {/if} + {/if} + + + + {$_('menu.select_all')} + + + { + if ($selection.size > 0) { + centerMapOnSelection(); + } + }} + > + + {$_('menu.center')} + + + {#if $verticalFileView} + + + + {$_('menu.copy')} + + + + + {$_('menu.cut')} + + + 0 && + !allowedPastes[$copied[0].level].includes($selection.getSelected().pop()?.level))} + on:click={pasteSelection} + > + + {$_('menu.paste')} + + + {/if} + + + + {$_('menu.delete')} + + + + + + + + + + + + + {$_('menu.elevation_profile')} + + + + + {$_('menu.vertical_file_view')} + + + + + {$_('menu.switch_basemap')} + + + {$_('menu.toggle_overlays')} + + + + {$_('menu.distance_markers')} + + + {$_('menu.direction_markers')} + + + + + {$_('menu.toggle_3d')} + + + + + + + + + + + + + {$_('menu.distance_units')} + + + + {$_('menu.metric')} + {$_('menu.imperial')} + {$_('menu.nautical')} + + + + + + {$_('menu.velocity_units')} + + + + {$_('quantities.speed')} + {$_('quantities.pace')} + + + + + + {$_('menu.temperature_units')} + + + + {$_('menu.celsius')} + {$_('menu.fahrenheit')} + + + + + + + + {$_('menu.language')} + + + + {#each Object.entries(languages) as [lang, label]} + + {label} + + {/each} + + + + + + {#if selectedMode === 'light'} + + {:else} + + {/if} + {$_('menu.mode')} + + + { + setMode(value); + }} + > + {$_('menu.light')} + {$_('menu.dark')} + + + + + + + + {$_('menu.street_view_source')} + + + + {$_('menu.mapillary')} + {$_('menu.google')} + + + + (layerSettingsOpen = true)}> + + {$_('menu.layers')} + + + + +
+ +
+
+
+ + + + + { + let targetInput = + e.target.tagName === 'INPUT' || + e.target.tagName === 'TEXTAREA' || + e.target.tagName === 'SELECT' || + e.target.role === 'combobox' || + e.target.role === 'radio' || + e.target.role === 'menu' || + e.target.role === 'menuitem' || + e.target.role === 'menuitemradio' || + e.target.role === 'menuitemcheckbox'; + + if (e.key === '+' && (e.metaKey || e.ctrlKey)) { + createFile(); + e.preventDefault(); + } else if (e.key === 'o' && (e.metaKey || e.ctrlKey)) { + triggerFileInput(); + e.preventDefault(); + } else if (e.key === 'd' && (e.metaKey || e.ctrlKey)) { + dbUtils.duplicateSelection(); + e.preventDefault(); + } else if (e.key === 'c' && (e.metaKey || e.ctrlKey)) { + if (!targetInput) { + copySelection(); + e.preventDefault(); + } + } else if (e.key === 'x' && (e.metaKey || e.ctrlKey)) { + if (!targetInput) { + cutSelection(); + e.preventDefault(); + } + } else if (e.key === 'v' && (e.metaKey || e.ctrlKey)) { + if (!targetInput) { + pasteSelection(); + e.preventDefault(); + } + } else if ((e.key === 's' || e.key == 'S') && (e.metaKey || e.ctrlKey)) { + if (e.shiftKey) { + if ($fileObservers.size > 0) { + $exportState = ExportState.ALL; + } + } else if ($selection.size > 0) { + $exportState = ExportState.SELECTION; + } + e.preventDefault(); + } else if ((e.key === 'z' || e.key == 'Z') && (e.metaKey || e.ctrlKey)) { + if (e.shiftKey) { + dbUtils.redo(); + } else { + dbUtils.undo(); + } + e.preventDefault(); + } else if ((e.key === 'Backspace' || e.key === 'Delete') && (e.metaKey || e.ctrlKey)) { + if (!targetInput) { + if (e.shiftKey) { + dbUtils.deleteAllFiles(); + } else { + dbUtils.deleteSelection(); + } + e.preventDefault(); + } + } else if (e.key === 'a' && (e.metaKey || e.ctrlKey)) { + if (!targetInput) { + selectAll(); + e.preventDefault(); + } + } else if (e.key === 'i' && (e.metaKey || e.ctrlKey)) { + if ( + $selection.size === 1 && + $selection + .getSelected() + .every((item) => item instanceof ListFileItem || item instanceof ListTrackItem) + ) { + $editMetadata = true; + } + e.preventDefault(); + } else if (e.key === 'p' && (e.metaKey || e.ctrlKey)) { + $elevationProfile = !$elevationProfile; + e.preventDefault(); + } else if (e.key === 'l' && (e.metaKey || e.ctrlKey)) { + $verticalFileView = !$verticalFileView; + e.preventDefault(); + } else if (e.key === 'h' && (e.metaKey || e.ctrlKey)) { + if ($allHidden) { + dbUtils.setHiddenToSelection(false); + } else { + dbUtils.setHiddenToSelection(true); + } + e.preventDefault(); + } else if (e.key === 'Enter' && (e.metaKey || e.ctrlKey)) { + if ($selection.size > 0) { + centerMapOnSelection(); + } + } else if (e.key === 'F1') { + switchBasemaps(); + e.preventDefault(); + } else if (e.key === 'F2') { + toggleOverlays(); + e.preventDefault(); + } else if (e.key === 'F3') { + $distanceMarkers = !$distanceMarkers; + e.preventDefault(); + } else if (e.key === 'F4') { + $directionMarkers = !$directionMarkers; + e.preventDefault(); + } else if (e.key === 'F5') { + $routing = !$routing; + e.preventDefault(); + } else if ( + e.key === 'ArrowRight' || + e.key === 'ArrowDown' || + e.key === 'ArrowLeft' || + e.key === 'ArrowUp' + ) { + if (!targetInput) { + updateSelectionFromKey(e.key === 'ArrowRight' || e.key === 'ArrowDown', e.shiftKey); + e.preventDefault(); + } + } + }} + on:dragover={(e) => e.preventDefault()} + on:drop={(e) => { + e.preventDefault(); + if (e.dataTransfer.files.length > 0) { + loadFiles(e.dataTransfer.files); + } + }} +/> + + diff --git a/website/src/lib/components/ModeSwitch.svelte b/website/src/lib/components/ModeSwitch.svelte new file mode 100755 index 0000000..8151974 --- /dev/null +++ b/website/src/lib/components/ModeSwitch.svelte @@ -0,0 +1,25 @@ + + + diff --git a/website/src/lib/components/Nav.svelte b/website/src/lib/components/Nav.svelte new file mode 100755 index 0000000..03eda92 --- /dev/null +++ b/website/src/lib/components/Nav.svelte @@ -0,0 +1,32 @@ + + + diff --git a/website/src/lib/components/Resizer.svelte b/website/src/lib/components/Resizer.svelte new file mode 100755 index 0000000..f2e3355 --- /dev/null +++ b/website/src/lib/components/Resizer.svelte @@ -0,0 +1,41 @@ + + + +
diff --git a/website/src/lib/components/Shortcut.svelte b/website/src/lib/components/Shortcut.svelte new file mode 100755 index 0000000..7c78d26 --- /dev/null +++ b/website/src/lib/components/Shortcut.svelte @@ -0,0 +1,36 @@ + + +
+ {#if shift} + + {/if} + {#if ctrl} + {mac && !safari ? '⌘' : $_('menu.ctrl') + '+'} + {/if} + {#if key} + {key} + {/if} + {#if click} + {$_('menu.click')} + {/if} +
diff --git a/website/src/lib/components/Tooltip.svelte b/website/src/lib/components/Tooltip.svelte new file mode 100755 index 0000000..ee8fd41 --- /dev/null +++ b/website/src/lib/components/Tooltip.svelte @@ -0,0 +1,18 @@ + + + + + + + +
+ {label} + +
+
+
diff --git a/website/src/lib/components/WithUnits.svelte b/website/src/lib/components/WithUnits.svelte new file mode 100755 index 0000000..e6915ab --- /dev/null +++ b/website/src/lib/components/WithUnits.svelte @@ -0,0 +1,48 @@ + + + + {#if type === 'distance'} + {getConvertedDistance(value, $distanceUnits).toFixed(decimals ?? 2)} + {showUnits ? getDistanceUnits($distanceUnits) : ''} + {:else if type === 'elevation'} + {getConvertedElevation(value, $distanceUnits).toFixed(decimals ?? 0)} + {showUnits ? getElevationUnits($distanceUnits) : ''} + {:else if type === 'speed'} + {#if $velocityUnits === 'speed'} + {getConvertedVelocity(value, $velocityUnits, $distanceUnits).toFixed(decimals ?? 2)} + {showUnits ? getVelocityUnits($velocityUnits, $distanceUnits) : ''} + {:else} + {secondsToHHMMSS(getConvertedVelocity(value, $velocityUnits, $distanceUnits))} + {showUnits ? getVelocityUnits($velocityUnits, $distanceUnits) : ''} + {/if} + {:else if type === 'temperature'} + {#if $temperatureUnits === 'celsius'} + {value} {showUnits ? $_('units.celsius') : ''} + {:else} + {celsiusToFahrenheit(value)} {showUnits ? $_('units.fahrenheit') : ''} + {/if} + {:else if type === 'time'} + {secondsToHHMMSS(value)} + {/if} + diff --git a/website/src/lib/components/collapsible-tree/CollapsibleTree.svelte b/website/src/lib/components/collapsible-tree/CollapsibleTree.svelte new file mode 100755 index 0000000..6a4541e --- /dev/null +++ b/website/src/lib/components/collapsible-tree/CollapsibleTree.svelte @@ -0,0 +1,20 @@ + + + diff --git a/website/src/lib/components/collapsible-tree/CollapsibleTreeNode.svelte b/website/src/lib/components/collapsible-tree/CollapsibleTreeNode.svelte new file mode 100755 index 0000000..de0728c --- /dev/null +++ b/website/src/lib/components/collapsible-tree/CollapsibleTreeNode.svelte @@ -0,0 +1,97 @@ + + + + {#if slotInsideTrigger} + + + + {:else} + + {/if} + + + + + diff --git a/website/src/lib/components/collapsible-tree/index.ts b/website/src/lib/components/collapsible-tree/index.ts new file mode 100755 index 0000000..9b1298b --- /dev/null +++ b/website/src/lib/components/collapsible-tree/index.ts @@ -0,0 +1,2 @@ +export { default as CollapsibleTree } from './CollapsibleTree.svelte'; +export { default as CollapsibleTreeNode } from './CollapsibleTreeNode.svelte'; \ No newline at end of file diff --git a/website/src/lib/components/custom-control/CustomControl.svelte b/website/src/lib/components/custom-control/CustomControl.svelte new file mode 100755 index 0000000..f2ebdb2 --- /dev/null +++ b/website/src/lib/components/custom-control/CustomControl.svelte @@ -0,0 +1,27 @@ + + + diff --git a/website/src/lib/components/custom-control/CustomControl.ts b/website/src/lib/components/custom-control/CustomControl.ts new file mode 100755 index 0000000..481281e --- /dev/null +++ b/website/src/lib/components/custom-control/CustomControl.ts @@ -0,0 +1,20 @@ +import { type Map, type IControl } from 'mapbox-gl'; + +export default class CustomControl implements IControl { + _map: Map | undefined; + _container: HTMLElement; + + constructor(container: HTMLElement) { + this._container = container; + } + + onAdd(map: Map): HTMLElement { + this._map = map; + return this._container; + } + + onRemove() { + this._container?.parentNode?.removeChild(this._container); + this._map = undefined; + } +} \ No newline at end of file diff --git a/website/src/lib/components/docs/DocsContainer.svelte b/website/src/lib/components/docs/DocsContainer.svelte new file mode 100755 index 0000000..633c83f --- /dev/null +++ b/website/src/lib/components/docs/DocsContainer.svelte @@ -0,0 +1,82 @@ + + +
+ +
+ + diff --git a/website/src/lib/components/docs/DocsImage.svelte b/website/src/lib/components/docs/DocsImage.svelte new file mode 100755 index 0000000..712a48a --- /dev/null +++ b/website/src/lib/components/docs/DocsImage.svelte @@ -0,0 +1,25 @@ + + +
+
+ {#if src === 'getting-started/interface'} + + {:else if src === 'tools/routing'} + + {:else if src === 'tools/split'} + + {/if} +
+

{alt}

+
diff --git a/website/src/lib/components/docs/DocsLayers.svelte b/website/src/lib/components/docs/DocsLayers.svelte new file mode 100755 index 0000000..6458600 --- /dev/null +++ b/website/src/lib/components/docs/DocsLayers.svelte @@ -0,0 +1,13 @@ + + +
+ + +
diff --git a/website/src/lib/components/docs/DocsNote.svelte b/website/src/lib/components/docs/DocsNote.svelte new file mode 100755 index 0000000..8cfd9fe --- /dev/null +++ b/website/src/lib/components/docs/DocsNote.svelte @@ -0,0 +1,18 @@ + + +
+ +
+ + diff --git a/website/src/lib/components/docs/docs.ts b/website/src/lib/components/docs/docs.ts new file mode 100755 index 0000000..1e5e16f --- /dev/null +++ b/website/src/lib/components/docs/docs.ts @@ -0,0 +1,99 @@ +import { File, FilePen, View, type Icon, Settings, Pencil, MapPin, Scissors, CalendarClock, Group, Ungroup, Filter, SquareDashedMousePointer, MountainSnow } from "lucide-svelte"; +import type { ComponentType } from "svelte"; + +export const guides: Record = { + 'getting-started': [], + menu: ['file', 'edit', 'view', 'settings'], + 'files-and-stats': [], + toolbar: ['routing', 'poi', 'scissors', 'time', 'merge', 'extract', 'elevation', 'minify', 'clean'], + 'map-controls': [], + 'gpx': [], + 'integration': [], + 'faq': [], +}; + +export const guideIcons: Record> = { + "getting-started": "🚀", + "menu": "📂 ⚙️", + "file": File, + "edit": FilePen, + "view": View, + "settings": Settings, + "files-and-stats": "🗂 📈", + "toolbar": "🧰", + "routing": Pencil, + "poi": MapPin, + "scissors": Scissors, + "time": CalendarClock, + "merge": Group, + "extract": Ungroup, + "elevation": MountainSnow, + "minify": Filter, + "clean": SquareDashedMousePointer, + "map-controls": "🗺", + "gpx": "💾", + "integration": "{ 👩‍💻 }", + "faq": "🔮", +}; + +export function getPreviousGuide(currentGuide: string): string | undefined { + let subguides = currentGuide.split('/'); + + if (subguides.length === 1) { + let keys = Object.keys(guides); + let index = keys.indexOf(currentGuide); + if (index === 0) { + return undefined; + } + let previousGuide = keys[index - 1]; + if (previousGuide === undefined) { + return undefined; + } else if (guides[previousGuide].length === 0) { + return previousGuide; + } else { + return `${previousGuide}/${guides[previousGuide][guides[previousGuide].length - 1]}`; + } + } else { + if (guides.hasOwnProperty(subguides[0])) { + let subguideIndex = guides[subguides[0]].indexOf(subguides[1]); + if (subguideIndex > 0) { + return `${subguides[0]}/${guides[subguides[0]][subguideIndex - 1]}`; + } else { + return subguides[0]; + } + } else { + return undefined; + } + } +} + +export function getNextGuide(currentGuide: string): string | undefined { + let subguides = currentGuide.split('/'); + + if (subguides.length === 1) { + if (guides.hasOwnProperty(currentGuide)) { + if (guides[currentGuide].length === 0) { + let keys = Object.keys(guides); + let index = keys.indexOf(currentGuide); + return keys[index + 1]; + } else { + return `${currentGuide}/${guides[currentGuide][0]}`; + } + } else { + return undefined; + } + } else { + if (guides.hasOwnProperty(subguides[0])) { + let subguideIndex = guides[subguides[0]].indexOf(subguides[1]); + if (subguideIndex < guides[subguides[0]].length - 1) { + return `${subguides[0]}/${guides[subguides[0]][subguideIndex + 1]}`; + } else { + let keys = Object.keys(guides); + let index = keys.indexOf(subguides[0]); + return keys[index + 1]; + } + } else { + return undefined; + } + } +} \ No newline at end of file diff --git a/website/src/lib/components/embedding/Embedding.svelte b/website/src/lib/components/embedding/Embedding.svelte new file mode 100755 index 0000000..fe3ee59 --- /dev/null +++ b/website/src/lib/components/embedding/Embedding.svelte @@ -0,0 +1,269 @@ + + +
+
+ + + + + {#if $fileObservers.size > 1} +
+ +
+ {/if} +
+
+ + {#if options.elevation.show} + dataset !== null)} + elevationFill={options.elevation.fill} + panelSize={options.elevation.height} + showControls={options.elevation.controls} + class="py-2" + /> + {/if} +
+
diff --git a/website/src/lib/components/embedding/Embedding.ts b/website/src/lib/components/embedding/Embedding.ts new file mode 100755 index 0000000..d67f647 --- /dev/null +++ b/website/src/lib/components/embedding/Embedding.ts @@ -0,0 +1,148 @@ +import { PUBLIC_MAPBOX_TOKEN } from '$env/static/public'; +import { basemaps } from '$lib/assets/layers'; + +export type EmbeddingOptions = { + token: string; + files: string[]; + ids: string[]; + basemap: string; + elevation: { + show: boolean; + height: number; + controls: boolean; + fill: 'slope' | 'surface' | undefined; + speed: boolean; + hr: boolean; + cad: boolean; + temp: boolean; + power: boolean; + }; + distanceMarkers: boolean; + directionMarkers: boolean; + distanceUnits: 'metric' | 'imperial' | 'nautical'; + velocityUnits: 'speed' | 'pace'; + temperatureUnits: 'celsius' | 'fahrenheit'; + theme: 'system' | 'light' | 'dark'; +}; + +export const defaultEmbeddingOptions = { + token: '', + files: [], + ids: [], + basemap: 'mapboxOutdoors', + elevation: { + show: true, + height: 170, + controls: true, + fill: undefined, + speed: false, + hr: false, + cad: false, + temp: false, + power: false + }, + distanceMarkers: false, + directionMarkers: false, + distanceUnits: 'metric', + velocityUnits: 'speed', + temperatureUnits: 'celsius', + theme: 'system' +}; + +export function getDefaultEmbeddingOptions(): EmbeddingOptions { + return JSON.parse(JSON.stringify(defaultEmbeddingOptions)); +} + +export function getMergedEmbeddingOptions( + options: any, + defaultOptions: any = defaultEmbeddingOptions +): EmbeddingOptions { + const mergedOptions = JSON.parse(JSON.stringify(defaultOptions)); + for (const key in options) { + if (typeof options[key] === 'object' && options[key] !== null && !Array.isArray(options[key])) { + mergedOptions[key] = getMergedEmbeddingOptions(options[key], defaultOptions[key]); + } else { + mergedOptions[key] = options[key]; + } + } + return mergedOptions; +} + +export function getCleanedEmbeddingOptions( + options: any, + defaultOptions: any = defaultEmbeddingOptions +): any { + const cleanedOptions = JSON.parse(JSON.stringify(options)); + for (const key in cleanedOptions) { + if ( + typeof cleanedOptions[key] === 'object' && + cleanedOptions[key] !== null && + !Array.isArray(cleanedOptions[key]) + ) { + cleanedOptions[key] = getCleanedEmbeddingOptions(cleanedOptions[key], defaultOptions[key]); + if (Object.keys(cleanedOptions[key]).length === 0) { + delete cleanedOptions[key]; + } + } else if (JSON.stringify(cleanedOptions[key]) === JSON.stringify(defaultOptions[key])) { + delete cleanedOptions[key]; + } + } + return cleanedOptions; +} + +export const allowedEmbeddingBasemaps = Object.keys(basemaps).filter( + (basemap) => !['ordnanceSurvey'].includes(basemap) +); + +export function getFilesFromEmbeddingOptions(options: EmbeddingOptions): string[] { + return options.files.concat(options.ids.map((id) => getURLForGoogleDriveFile(id))); +} + +export function getURLForGoogleDriveFile(fileId: string): string { + return `https://www.googleapis.com/drive/v3/files/${fileId}?alt=media&key=AIzaSyA2ZadQob_hXiT2VaYIkAyafPvz_4ZMssk`; +} + +export function convertOldEmbeddingOptions(options: URLSearchParams): any { + let newOptions: any = { + token: PUBLIC_MAPBOX_TOKEN, + files: [], + ids: [], + }; + if (options.has('state')) { + let state = JSON.parse(options.get('state')!); + if (state.ids) { + newOptions.ids.push(...state.ids); + } + if (state.urls) { + newOptions.files.push(...state.urls); + } + } + if (options.has('source')) { + let basemap = options.get('source')!; + if (basemap === 'satellite') { + newOptions.basemap = 'mapboxSatellite'; + } else if (basemap === 'otm') { + newOptions.basemap = 'openTopoMap'; + } else if (basemap === 'ohm') { + newOptions.basemap = 'openHikingMap'; + } + } + if (options.has('imperial')) { + newOptions.distanceUnits = 'imperial'; + } + if (options.has('running')) { + newOptions.velocityUnits = 'pace'; + } + if (options.has('distance')) { + newOptions.distanceMarkers = true; + } + if (options.has('direction')) { + newOptions.directionMarkers = true; + } + if (options.has('slope')) { + newOptions.elevation = { + fill: 'slope' + }; + } + return newOptions; +} diff --git a/website/src/lib/components/embedding/EmbeddingPlayground.svelte b/website/src/lib/components/embedding/EmbeddingPlayground.svelte new file mode 100755 index 0000000..daf13a7 --- /dev/null +++ b/website/src/lib/components/embedding/EmbeddingPlayground.svelte @@ -0,0 +1,327 @@ + + + + + {$_('embedding.title')} + + +
+ + + + + + + + { + if (selected?.value) { + options.basemap = selected?.value; + } + }} + > + + + + + {#each allowedEmbeddingBasemaps as basemap} + {$_(`layers.label.${basemap}`)} + {/each} + + +
+ + +
+ {#if options.elevation.show} +
+ +
+ + {$_('embedding.fill_by')} + + { + let value = selected?.value; + if (value === 'none') { + options.elevation.fill = undefined; + } else if (value === 'slope' || value === 'surface') { + options.elevation.fill = value; + } + }} + > + + + + + {$_('quantities.slope')} + {$_('quantities.surface')} + {$_('embedding.none')} + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ {/if} +
+ + +
+
+ + +
+
+ + + +
+ +
+
+ + +
+

+ {$_('embedding.manual_camera_description')} +

+
+ + + + + +
+
+ +
+ +
+ +
+                
+                    {`