Add .gitignore and untrack node_modules / IDE state

Comprehensive .gitignore covering:
  * node_modules/ (re-installable from package-lock.json) — also untracks
    the 5 679 files that were carried over from the initial commit
  * Vite dependency cache (.vite/) — pure build churn
  * IDE state: BBEdit (*.bbprojectd/), VS Code, JetBrains, Zed, Sublime,
    Vim swap files
  * OS metadata: macOS .DS_Store / ._*, Windows Thumbs.db, etc.
  * Interim Word-document backups (*-v[0-9].docx pattern), env files,
    test coverage, common cache directories

dist/ deliberately NOT ignored — the repo currently serves the built
output directly. If you switch to a CI deploy later, uncomment the
dist/ lines in .gitignore.

After this commit, `git status` will be empty until real source changes
are made (no more node_modules / .vite cache noise).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
ekke 2026-05-26 10:58:25 +02:00
parent ef12e4477b
commit 9b57ff9e22
5686 changed files with 104 additions and 877174 deletions

104
.gitignore vendored Normal file
View File

@ -0,0 +1,104 @@
# ============================================================================
# LUPMIS2 PWA — .gitignore
# ============================================================================
# ----- Node / npm dependencies -----
# Re-installable from package-lock.json; never tracked.
node_modules/
# Vite's dependency optimisation cache (lives inside node_modules but listed
# explicitly for clarity).
node_modules/.vite/
.vite/
# npm / yarn / pnpm logs and debug files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
# ----- Build artefacts -----
# Vite produces these but we do NOT ignore `dist/` because the repo serves
# the built output directly. If you switch to a CI-based deploy pipeline
# later, uncomment the next two lines.
# dist/
# dist-ssr/
# Pre-compressed / source-map sidecar files outside dist/
*.tsbuildinfo
# ----- Local environment & secrets -----
.env
.env.local
.env.*.local
*.local
# ----- IDE / editor configuration -----
# BBEdit project / scratchpad state
*.bbprojectd/
# Visual Studio Code (keep recommended-extensions and tasks.json if added)
.vscode/*
!.vscode/extensions.json
!.vscode/tasks.json
!.vscode/launch.json
# JetBrains IDEs (WebStorm, IntelliJ, etc.)
.idea/
*.iml
# Zed
.zed/
# Sublime Text
*.sublime-workspace
*.sublime-project
# Vim / Emacs swap files
*.swp
*.swo
*~
.#*
# ----- OS metadata -----
# macOS
.DS_Store
.AppleDouble
.LSOverride
Icon
Icon?
._*
# Windows
Thumbs.db
ehthumbs.db
ehthumbs_vista.db
Desktop.ini
$RECYCLE.BIN/
# Linux
.directory
.Trash-*
# ----- Project-specific -----
# Interim Word-document backups produced when iterating on reports
# (the *current* report file stays tracked; only versioned snapshots are
# excluded).
LUPMIS2_Development_Status_Report-v*.docx
*-v[0-9].docx
*-v[0-9][0-9].docx
# SQLite databases dropped in the project root for ad-hoc inspection
/*.sqlite3
/*.sqlite3-journal
/*.db
# Coverage / test output
coverage/
.nyc_output/
# Misc caches
.eslintcache
.parcel-cache/
.cache/

1
node_modules/.bin/esbuild generated vendored
View File

@ -1 +0,0 @@
../esbuild/bin/esbuild

1
node_modules/.bin/nanoid generated vendored
View File

@ -1 +0,0 @@
../nanoid/bin/nanoid.cjs

1
node_modules/.bin/pbf generated vendored
View File

@ -1 +0,0 @@
../pbf/bin/pbf

1
node_modules/.bin/rollup generated vendored
View File

@ -1 +0,0 @@
../rollup/dist/bin/rollup

1
node_modules/.bin/sqlite-wasm generated vendored
View File

@ -1 +0,0 @@
../@sqlite.org/sqlite-wasm/bin/index.js

1
node_modules/.bin/vite generated vendored
View File

@ -1 +0,0 @@
../vite/bin/vite.js

643
node_modules/.package-lock.json generated vendored
View File

@ -1,643 +0,0 @@
{
"name": "lupmis-pwa",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"node_modules/@esbuild/darwin-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
"integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@petamoriken/float16": {
"version": "3.9.3",
"resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.3.tgz",
"integrity": "sha512-8awtpHXCx/bNpFt4mt2xdkgtgVvKqty8VbjHI/WWWQuEw+KLzFot3f4+LkQY9YmOtq7A5GdOnqoIC8Pdygjk2g==",
"license": "MIT"
},
"node_modules/@popperjs/core": {
"version": "2.11.8",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
"integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
"license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/popperjs"
}
},
"node_modules/@rollup/rollup-darwin-arm64": {
"version": "4.55.3",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.3.tgz",
"integrity": "sha512-1ht2SpGIjEl2igJ9AbNpPIKzb1B5goXOcmtD0RFxnwNuMxqkR6AUaaErZz+4o+FKmzxcSNBOLrzsICZVNYa1Rw==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@sqlite.org/sqlite-wasm": {
"version": "3.50.4-build1",
"resolved": "https://registry.npmjs.org/@sqlite.org/sqlite-wasm/-/sqlite-wasm-3.50.4-build1.tgz",
"integrity": "sha512-Qig2Wso7gPkU1PtXwFzndh+CTRzrIFxVGqv6eCetjU7YqxlHItj+GvQYwYTppCRgAPawtRN/4AJcEgB9xDHGug==",
"license": "Apache-2.0",
"bin": {
"sqlite-wasm": "bin/index.js"
}
},
"node_modules/@types/estree": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
"devOptional": true,
"license": "MIT"
},
"node_modules/@types/rbush": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@types/rbush/-/rbush-4.0.0.tgz",
"integrity": "sha512-+N+2H39P8X+Hy1I5mC6awlTX54k3FhiUmvt7HWzGJZvF+syUAAxP/stwppS8JE84YHqFgRMv6fCy31202CMFxQ==",
"license": "MIT"
},
"node_modules/@ungap/structured-clone": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
"integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
"license": "ISC"
},
"node_modules/@ungap/with-resolvers": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/@ungap/with-resolvers/-/with-resolvers-0.1.0.tgz",
"integrity": "sha512-g7f0IkJdPW2xhY7H4iE72DAsIyfuwEFc6JWc2tYFwKDMWWAF699vGjrM348cwQuOXgHpe1gWFe+Eiyjx/ewvvw==",
"license": "ISC"
},
"node_modules/bootstrap": {
"version": "5.3.8",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz",
"integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/twbs"
},
{
"type": "opencollective",
"url": "https://opencollective.com/bootstrap"
}
],
"license": "MIT",
"peerDependencies": {
"@popperjs/core": "^2.11.8"
}
},
"node_modules/bootstrap-icons": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.13.1.tgz",
"integrity": "sha512-ijombt4v6bv5CLeXvRWKy7CuM3TRTuPEuGaGKvTV5cz65rQSY8RQ2JcHt6b90cBBAC7s8fsf2EkQDldzCoXUjw==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/twbs"
},
{
"type": "opencollective",
"url": "https://opencollective.com/bootstrap"
}
],
"license": "MIT"
},
"node_modules/coincident": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/coincident/-/coincident-1.2.3.tgz",
"integrity": "sha512-Uxz3BMTWIslzeWjuQnizGWVg0j6khbvHUQ8+5BdM7WuJEm4ALXwq3wluYoB+uF68uPBz/oUOeJnYURKyfjexlA==",
"license": "ISC",
"dependencies": {
"@ungap/structured-clone": "^1.2.0",
"@ungap/with-resolvers": "^0.1.0",
"gc-hook": "^0.3.1",
"proxy-target": "^3.0.2"
},
"optionalDependencies": {
"ws": "^8.16.0"
}
},
"node_modules/earcut": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz",
"integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==",
"license": "ISC"
},
"node_modules/esbuild": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
"integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
"devOptional": true,
"hasInstallScript": true,
"license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
"engines": {
"node": ">=18"
},
"optionalDependencies": {
"@esbuild/aix-ppc64": "0.25.12",
"@esbuild/android-arm": "0.25.12",
"@esbuild/android-arm64": "0.25.12",
"@esbuild/android-x64": "0.25.12",
"@esbuild/darwin-arm64": "0.25.12",
"@esbuild/darwin-x64": "0.25.12",
"@esbuild/freebsd-arm64": "0.25.12",
"@esbuild/freebsd-x64": "0.25.12",
"@esbuild/linux-arm": "0.25.12",
"@esbuild/linux-arm64": "0.25.12",
"@esbuild/linux-ia32": "0.25.12",
"@esbuild/linux-loong64": "0.25.12",
"@esbuild/linux-mips64el": "0.25.12",
"@esbuild/linux-ppc64": "0.25.12",
"@esbuild/linux-riscv64": "0.25.12",
"@esbuild/linux-s390x": "0.25.12",
"@esbuild/linux-x64": "0.25.12",
"@esbuild/netbsd-arm64": "0.25.12",
"@esbuild/netbsd-x64": "0.25.12",
"@esbuild/openbsd-arm64": "0.25.12",
"@esbuild/openbsd-x64": "0.25.12",
"@esbuild/openharmony-arm64": "0.25.12",
"@esbuild/sunos-x64": "0.25.12",
"@esbuild/win32-arm64": "0.25.12",
"@esbuild/win32-ia32": "0.25.12",
"@esbuild/win32-x64": "0.25.12"
}
},
"node_modules/fdir": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
"integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
"devOptional": true,
"license": "MIT",
"engines": {
"node": ">=12.0.0"
},
"peerDependencies": {
"picomatch": "^3 || ^4"
},
"peerDependenciesMeta": {
"picomatch": {
"optional": 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,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/gc-hook": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/gc-hook/-/gc-hook-0.3.1.tgz",
"integrity": "sha512-E5M+O/h2o7eZzGhzRZGex6hbB3k4NWqO0eA+OzLRLXxhdbYPajZnynPwAtphnh+cRHPwsj5Z80dqZlfI4eK55A==",
"license": "ISC"
},
"node_modules/geotiff": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/geotiff/-/geotiff-2.1.3.tgz",
"integrity": "sha512-PT6uoF5a1+kbC3tHmZSUsLHBp2QJlHasxxxxPW47QIY1VBKpFB+FcDvX+MxER6UzgLQZ0xDzJ9s48B9JbOCTqA==",
"license": "MIT",
"dependencies": {
"@petamoriken/float16": "^3.4.7",
"lerc": "^3.0.0",
"pako": "^2.0.4",
"parse-headers": "^2.0.2",
"quick-lru": "^6.1.1",
"web-worker": "^1.2.0",
"xml-utils": "^1.0.2",
"zstddec": "^0.1.0"
},
"engines": {
"node": ">=10.19"
}
},
"node_modules/lerc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/lerc/-/lerc-3.0.0.tgz",
"integrity": "sha512-Rm4J/WaHhRa93nCN2mwWDZFoRVF18G1f47C+kvQWyHGEZxFpTUi73p7lMVSAndyxGt6lJ2/CFbOcf9ra5p8aww==",
"license": "Apache-2.0"
},
"node_modules/nanoid": {
"version": "3.3.11",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"devOptional": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
"engines": {
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/ol": {
"version": "10.7.0",
"resolved": "https://registry.npmjs.org/ol/-/ol-10.7.0.tgz",
"integrity": "sha512-122U5gamPqNgLpLOkogFJhgpywvd/5en2kETIDW+Ubfi9lPnZ0G9HWRdG+CX0oP8od2d6u6ky3eewIYYlrVczw==",
"license": "BSD-2-Clause",
"dependencies": {
"@types/rbush": "4.0.0",
"earcut": "^3.0.0",
"geotiff": "^2.1.3",
"pbf": "4.0.1",
"rbush": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/openlayers"
}
},
"node_modules/ol-ext": {
"version": "4.0.37",
"resolved": "https://registry.npmjs.org/ol-ext/-/ol-ext-4.0.37.tgz",
"integrity": "sha512-RxzdgMWnNBDP9VZCza3oS3rl1+OCl+1SJLMjt7ATyDDLZl/zzrsQELfJ25WAL6HIWgjkQ2vYDh3nnHFupxOH4w==",
"license": "BSD-3-Clause",
"peerDependencies": {
"ol": ">= 5.3.0"
}
},
"node_modules/pako": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz",
"integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==",
"license": "(MIT AND Zlib)"
},
"node_modules/parse-headers": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.6.tgz",
"integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==",
"license": "MIT"
},
"node_modules/pbf": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/pbf/-/pbf-4.0.1.tgz",
"integrity": "sha512-SuLdBvS42z33m8ejRbInMapQe8n0D3vN/Xd5fmWM3tufNgRQFBpaW2YVJxQZV4iPNqb0vEFvssMEo5w9c6BTIA==",
"license": "BSD-3-Clause",
"dependencies": {
"resolve-protobuf-schema": "^2.1.0"
},
"bin": {
"pbf": "bin/pbf"
}
},
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"devOptional": true,
"license": "ISC"
},
"node_modules/picomatch": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"devOptional": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/postcss": {
"version": "8.5.6",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"devOptional": true,
"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"
}
],
"license": "MIT",
"dependencies": {
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"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==",
"license": "MIT"
},
"node_modules/proxy-target": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/proxy-target/-/proxy-target-3.0.2.tgz",
"integrity": "sha512-FFE1XNwXX/FNC3/P8HiKaJSy/Qk68RitG/QEcLy/bVnTAPlgTAWPZKh0pARLAnpfXQPKyalBhk009NRTgsk8vQ==",
"license": "MIT"
},
"node_modules/quick-lru": {
"version": "6.1.2",
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.2.tgz",
"integrity": "sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==",
"license": "MIT",
"engines": {
"node": ">=12"
},
"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==",
"license": "ISC"
},
"node_modules/rbush": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/rbush/-/rbush-4.0.1.tgz",
"integrity": "sha512-IP0UpfeWQujYC8Jg162rMNc01Rf0gWMMAb2Uxus/Q0qOFw4lCcq6ZnQEZwUoJqWyUGJ9th7JjwI4yIWo+uvoAQ==",
"license": "MIT",
"dependencies": {
"quickselect": "^3.0.0"
}
},
"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==",
"license": "MIT",
"dependencies": {
"protocol-buffers-schema": "^3.3.1"
}
},
"node_modules/rollup": {
"version": "4.55.3",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.3.tgz",
"integrity": "sha512-y9yUpfQvetAjiDLtNMf1hL9NXchIJgWt6zIKeoB+tCd3npX08Eqfzg60V9DhIGVMtQ0AlMkFw5xa+AQ37zxnAA==",
"devOptional": true,
"license": "MIT",
"dependencies": {
"@types/estree": "1.0.8"
},
"bin": {
"rollup": "dist/bin/rollup"
},
"engines": {
"node": ">=18.0.0",
"npm": ">=8.0.0"
},
"optionalDependencies": {
"@rollup/rollup-android-arm-eabi": "4.55.3",
"@rollup/rollup-android-arm64": "4.55.3",
"@rollup/rollup-darwin-arm64": "4.55.3",
"@rollup/rollup-darwin-x64": "4.55.3",
"@rollup/rollup-freebsd-arm64": "4.55.3",
"@rollup/rollup-freebsd-x64": "4.55.3",
"@rollup/rollup-linux-arm-gnueabihf": "4.55.3",
"@rollup/rollup-linux-arm-musleabihf": "4.55.3",
"@rollup/rollup-linux-arm64-gnu": "4.55.3",
"@rollup/rollup-linux-arm64-musl": "4.55.3",
"@rollup/rollup-linux-loong64-gnu": "4.55.3",
"@rollup/rollup-linux-loong64-musl": "4.55.3",
"@rollup/rollup-linux-ppc64-gnu": "4.55.3",
"@rollup/rollup-linux-ppc64-musl": "4.55.3",
"@rollup/rollup-linux-riscv64-gnu": "4.55.3",
"@rollup/rollup-linux-riscv64-musl": "4.55.3",
"@rollup/rollup-linux-s390x-gnu": "4.55.3",
"@rollup/rollup-linux-x64-gnu": "4.55.3",
"@rollup/rollup-linux-x64-musl": "4.55.3",
"@rollup/rollup-openbsd-x64": "4.55.3",
"@rollup/rollup-openharmony-arm64": "4.55.3",
"@rollup/rollup-win32-arm64-msvc": "4.55.3",
"@rollup/rollup-win32-ia32-msvc": "4.55.3",
"@rollup/rollup-win32-x64-gnu": "4.55.3",
"@rollup/rollup-win32-x64-msvc": "4.55.3",
"fsevents": "~2.3.2"
}
},
"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==",
"devOptional": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/sqlocal": {
"version": "0.16.0",
"resolved": "https://registry.npmjs.org/sqlocal/-/sqlocal-0.16.0.tgz",
"integrity": "sha512-iK9IAnPGW+98Pw0dWvhPZlapEZ9NaAKMEhRsbY1XlXPpAnRXblF6hP3NGtfLcW2dErWRJ79xzX3tAVZ2jNwqCg==",
"license": "MIT",
"dependencies": {
"@sqlite.org/sqlite-wasm": "^3.50.4-build1",
"coincident": "^1.2.3"
},
"funding": {
"type": "paypal",
"url": "https://www.paypal.com/biz/fund?id=U3ZNM2Q26WJY8"
},
"peerDependencies": {
"@angular/core": ">=17.0.0",
"drizzle-orm": "*",
"kysely": "*",
"react": ">=18.0.0",
"vite": ">=4.0.0",
"vue": ">=3.0.0"
},
"peerDependenciesMeta": {
"@angular/core": {
"optional": true
},
"drizzle-orm": {
"optional": true
},
"kysely": {
"optional": true
},
"react": {
"optional": true
},
"vite": {
"optional": true
},
"vue": {
"optional": true
}
}
},
"node_modules/tinyglobby": {
"version": "0.2.15",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
"integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
"devOptional": true,
"license": "MIT",
"dependencies": {
"fdir": "^6.5.0",
"picomatch": "^4.0.3"
},
"engines": {
"node": ">=12.0.0"
},
"funding": {
"url": "https://github.com/sponsors/SuperchupuDev"
}
},
"node_modules/vite": {
"version": "6.4.1",
"resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz",
"integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==",
"devOptional": true,
"license": "MIT",
"dependencies": {
"esbuild": "^0.25.0",
"fdir": "^6.4.4",
"picomatch": "^4.0.2",
"postcss": "^8.5.3",
"rollup": "^4.34.9",
"tinyglobby": "^0.2.13"
},
"bin": {
"vite": "bin/vite.js"
},
"engines": {
"node": "^18.0.0 || ^20.0.0 || >=22.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 || >=22.0.0",
"jiti": ">=1.21.0",
"less": "*",
"lightningcss": "^1.21.0",
"sass": "*",
"sass-embedded": "*",
"stylus": "*",
"sugarss": "*",
"terser": "^5.16.0",
"tsx": "^4.8.1",
"yaml": "^2.4.2"
},
"peerDependenciesMeta": {
"@types/node": {
"optional": true
},
"jiti": {
"optional": true
},
"less": {
"optional": true
},
"lightningcss": {
"optional": true
},
"sass": {
"optional": true
},
"sass-embedded": {
"optional": true
},
"stylus": {
"optional": true
},
"sugarss": {
"optional": true
},
"terser": {
"optional": true
},
"tsx": {
"optional": true
},
"yaml": {
"optional": true
}
}
},
"node_modules/web-worker": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz",
"integrity": "sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==",
"license": "Apache-2.0"
},
"node_modules/ws": {
"version": "8.19.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",
"integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
"license": "MIT",
"optional": true,
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/xml-utils": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.2.tgz",
"integrity": "sha512-RqM+2o1RYs6T8+3DzDSoTRAUfrvaejbVHcp3+thnAtDKo8LskR+HomLajEy5UjTz24rpka7AxVBRR3g2wTUkJA==",
"license": "CC0-1.0"
},
"node_modules/zstddec": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz",
"integrity": "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==",
"license": "MIT AND BSD-3-Clause"
}
}
}

View File

@ -1,439 +0,0 @@
{
"hash": "5fa9d27f",
"configHash": "cab165a2",
"lockfileHash": "c2087766",
"browserHash": "c156faea",
"optimized": {
"bootstrap": {
"src": "../../bootstrap/dist/js/bootstrap.esm.js",
"file": "bootstrap.js",
"fileHash": "fd6ceaaa",
"needsInterop": false
},
"ol/Map": {
"src": "../../ol/Map.js",
"file": "ol_Map.js",
"fileHash": "b0e367b7",
"needsInterop": false
},
"ol/View": {
"src": "../../ol/View.js",
"file": "ol_View.js",
"fileHash": "355ac42e",
"needsInterop": false
},
"ol/Overlay": {
"src": "../../ol/Overlay.js",
"file": "ol_Overlay.js",
"fileHash": "fe4fef22",
"needsInterop": false
},
"ol/layer/Tile": {
"src": "../../ol/layer/Tile.js",
"file": "ol_layer_Tile.js",
"fileHash": "e6defa38",
"needsInterop": false
},
"ol/layer/Group": {
"src": "../../ol/layer/Group.js",
"file": "ol_layer_Group.js",
"fileHash": "b538c107",
"needsInterop": false
},
"ol/layer/Vector": {
"src": "../../ol/layer/Vector.js",
"file": "ol_layer_Vector.js",
"fileHash": "88b2fe3b",
"needsInterop": false
},
"ol/source/Vector": {
"src": "../../ol/source/Vector.js",
"file": "ol_source_Vector.js",
"fileHash": "f625949b",
"needsInterop": false
},
"ol/source/OSM": {
"src": "../../ol/source/OSM.js",
"file": "ol_source_OSM.js",
"fileHash": "3b97b715",
"needsInterop": false
},
"ol/source/XYZ": {
"src": "../../ol/source/XYZ.js",
"file": "ol_source_XYZ.js",
"fileHash": "7d8f852b",
"needsInterop": false
},
"ol/proj": {
"src": "../../ol/proj.js",
"file": "ol_proj.js",
"fileHash": "bde13aba",
"needsInterop": false
},
"ol/geom": {
"src": "../../ol/geom.js",
"file": "ol_geom.js",
"fileHash": "e4ded8a3",
"needsInterop": false
},
"ol/Feature": {
"src": "../../ol/Feature.js",
"file": "ol_Feature.js",
"fileHash": "8ad86d7d",
"needsInterop": false
},
"ol/style": {
"src": "../../ol/style.js",
"file": "ol_style.js",
"fileHash": "6029528e",
"needsInterop": false
},
"ol-ext/control/LayerSwitcher": {
"src": "../../ol-ext/control/LayerSwitcher.js",
"file": "ol-ext_control_LayerSwitcher.js",
"fileHash": "ba3fcba4",
"needsInterop": false
},
"ol-ext/control/GeolocationButton": {
"src": "../../ol-ext/control/GeolocationButton.js",
"file": "ol-ext_control_GeolocationButton.js",
"fileHash": "6e1e8c81",
"needsInterop": false
},
"ol-ext/control/SearchNominatim": {
"src": "../../ol-ext/control/SearchNominatim.js",
"file": "ol-ext_control_SearchNominatim.js",
"fileHash": "49a8e3f6",
"needsInterop": false
},
"ol/interaction": {
"src": "../../ol/interaction.js",
"file": "ol_interaction.js",
"fileHash": "3b0cba52",
"needsInterop": false
},
"ol/layer": {
"src": "../../ol/layer.js",
"file": "ol_layer.js",
"fileHash": "2f7ece85",
"needsInterop": false
},
"ol/source": {
"src": "../../ol/source.js",
"file": "ol_source.js",
"fileHash": "55b243b7",
"needsInterop": false
},
"ol/sphere": {
"src": "../../ol/sphere.js",
"file": "ol_sphere.js",
"fileHash": "17c5b65f",
"needsInterop": false
},
"ol/Observable": {
"src": "../../ol/Observable.js",
"file": "ol_Observable.js",
"fileHash": "a1d95e20",
"needsInterop": false
},
"ol-ext/control/Bar": {
"src": "../../ol-ext/control/Bar.js",
"file": "ol-ext_control_Bar.js",
"fileHash": "9961a97b",
"needsInterop": false
},
"ol-ext/control/Toggle": {
"src": "../../ol-ext/control/Toggle.js",
"file": "ol-ext_control_Toggle.js",
"fileHash": "3716a205",
"needsInterop": false
},
"ol-ext/control/Button": {
"src": "../../ol-ext/control/Button.js",
"file": "ol-ext_control_Button.js",
"fileHash": "94db9999",
"needsInterop": false
},
"ol/format/GeoJSON": {
"src": "../../ol/format/GeoJSON.js",
"file": "ol_format_GeoJSON.js",
"fileHash": "6ca0d734",
"needsInterop": false
},
"ol-ext/control/EditBar": {
"src": "../../ol-ext/control/EditBar.js",
"file": "ol-ext_control_EditBar.js",
"fileHash": "eaa0bfea",
"needsInterop": false
},
"ol-ext/interaction/TouchCursor": {
"src": "../../ol-ext/interaction/TouchCursor.js",
"file": "ol-ext_interaction_TouchCursor.js",
"fileHash": "a53deca0",
"needsInterop": false
},
"ol-ext/interaction/ModifyFeature": {
"src": "../../ol-ext/interaction/ModifyFeature.js",
"file": "ol-ext_interaction_ModifyFeature.js",
"fileHash": "50e7de35",
"needsInterop": false
},
"ol/interaction/Select": {
"src": "../../ol/interaction/Select.js",
"file": "ol_interaction_Select.js",
"fileHash": "e3c3f813",
"needsInterop": false
},
"ol/events/condition": {
"src": "../../ol/events/condition.js",
"file": "ol_events_condition.js",
"fileHash": "bdeed76d",
"needsInterop": false
},
"ol-ext/interaction/UndoRedo": {
"src": "../../ol-ext/interaction/UndoRedo.js",
"file": "ol-ext_interaction_UndoRedo.js",
"fileHash": "906faad5",
"needsInterop": false
},
"ol/geom/Polygon": {
"src": "../../ol/geom/Polygon.js",
"file": "ol_geom_Polygon.js",
"fileHash": "c61e8553",
"needsInterop": false
},
"ol/control/ScaleLine": {
"src": "../../ol/control/ScaleLine.js",
"file": "ol_control_ScaleLine.js",
"fileHash": "8cff3002",
"needsInterop": false
},
"ol/format/WKT": {
"src": "../../ol/format/WKT.js",
"file": "ol_format_WKT.js",
"fileHash": "c6bcdd8f",
"needsInterop": false
}
},
"chunks": {
"lerc-YJMC4I3X": {
"file": "lerc-YJMC4I3X.js"
},
"webimage-T4PTOJUP": {
"file": "webimage-T4PTOJUP.js"
},
"decoder-FUDNTCPN": {
"file": "decoder-FUDNTCPN.js"
},
"raw-UKC26CDE": {
"file": "raw-UKC26CDE.js"
},
"lzw-7DRJSDK5": {
"file": "lzw-7DRJSDK5.js"
},
"jpeg-HGEGG7HT": {
"file": "jpeg-HGEGG7HT.js"
},
"deflate-IME5YE3D": {
"file": "deflate-IME5YE3D.js"
},
"chunk-OVHVPML2": {
"file": "chunk-OVHVPML2.js"
},
"packbits-F6QMWCFA": {
"file": "packbits-F6QMWCFA.js"
},
"chunk-YNX27GDF": {
"file": "chunk-YNX27GDF.js"
},
"chunk-3UNEODO2": {
"file": "chunk-3UNEODO2.js"
},
"chunk-MEQVYVYE": {
"file": "chunk-MEQVYVYE.js"
},
"chunk-6DXBPPKF": {
"file": "chunk-6DXBPPKF.js"
},
"chunk-NNBJMTCH": {
"file": "chunk-NNBJMTCH.js"
},
"chunk-QTABLK4X": {
"file": "chunk-QTABLK4X.js"
},
"chunk-C5KGH6RQ": {
"file": "chunk-C5KGH6RQ.js"
},
"chunk-3TN6D4MD": {
"file": "chunk-3TN6D4MD.js"
},
"chunk-VCBXDRBT": {
"file": "chunk-VCBXDRBT.js"
},
"chunk-NMUIRNIP": {
"file": "chunk-NMUIRNIP.js"
},
"chunk-43GYE2V5": {
"file": "chunk-43GYE2V5.js"
},
"chunk-PD2E5XZ4": {
"file": "chunk-PD2E5XZ4.js"
},
"chunk-YUMATXXX": {
"file": "chunk-YUMATXXX.js"
},
"chunk-E7S7Q7VV": {
"file": "chunk-E7S7Q7VV.js"
},
"chunk-S3QBQTEW": {
"file": "chunk-S3QBQTEW.js"
},
"chunk-V7WRBSQ6": {
"file": "chunk-V7WRBSQ6.js"
},
"chunk-56VFHHUN": {
"file": "chunk-56VFHHUN.js"
},
"chunk-W7BDJOQY": {
"file": "chunk-W7BDJOQY.js"
},
"chunk-7JXPN73Q": {
"file": "chunk-7JXPN73Q.js"
},
"chunk-E53S5GN6": {
"file": "chunk-E53S5GN6.js"
},
"chunk-UNDFRJ2M": {
"file": "chunk-UNDFRJ2M.js"
},
"chunk-T3TT2KJN": {
"file": "chunk-T3TT2KJN.js"
},
"chunk-HM3IY3H4": {
"file": "chunk-HM3IY3H4.js"
},
"chunk-JFXZSSOM": {
"file": "chunk-JFXZSSOM.js"
},
"chunk-ZUI5NXIU": {
"file": "chunk-ZUI5NXIU.js"
},
"chunk-I4Q72WOW": {
"file": "chunk-I4Q72WOW.js"
},
"chunk-RTVPCGIJ": {
"file": "chunk-RTVPCGIJ.js"
},
"chunk-MSWSBYBR": {
"file": "chunk-MSWSBYBR.js"
},
"chunk-QCJTGAWF": {
"file": "chunk-QCJTGAWF.js"
},
"chunk-CAVOO5JW": {
"file": "chunk-CAVOO5JW.js"
},
"chunk-VRTURNK3": {
"file": "chunk-VRTURNK3.js"
},
"chunk-2C73OZ6M": {
"file": "chunk-2C73OZ6M.js"
},
"chunk-M5TTSD4C": {
"file": "chunk-M5TTSD4C.js"
},
"chunk-ZCRXKB7J": {
"file": "chunk-ZCRXKB7J.js"
},
"chunk-RW3V7S4F": {
"file": "chunk-RW3V7S4F.js"
},
"chunk-PAB2HIXK": {
"file": "chunk-PAB2HIXK.js"
},
"chunk-I6K7MRGV": {
"file": "chunk-I6K7MRGV.js"
},
"chunk-PGWX4545": {
"file": "chunk-PGWX4545.js"
},
"chunk-AYBYZSAV": {
"file": "chunk-AYBYZSAV.js"
},
"chunk-YLJGUH5Z": {
"file": "chunk-YLJGUH5Z.js"
},
"chunk-AZGMK675": {
"file": "chunk-AZGMK675.js"
},
"chunk-C6SRSVJF": {
"file": "chunk-C6SRSVJF.js"
},
"chunk-BHVDQB66": {
"file": "chunk-BHVDQB66.js"
},
"chunk-6EWLK2BW": {
"file": "chunk-6EWLK2BW.js"
},
"chunk-3ZDRPUXW": {
"file": "chunk-3ZDRPUXW.js"
},
"chunk-6Y7C6NBJ": {
"file": "chunk-6Y7C6NBJ.js"
},
"chunk-7XMWB3J4": {
"file": "chunk-7XMWB3J4.js"
},
"chunk-5D2XPBR2": {
"file": "chunk-5D2XPBR2.js"
},
"chunk-SHUBVYN4": {
"file": "chunk-SHUBVYN4.js"
},
"chunk-FM44FOIC": {
"file": "chunk-FM44FOIC.js"
},
"chunk-LMC3RO5P": {
"file": "chunk-LMC3RO5P.js"
},
"chunk-X52LGBOS": {
"file": "chunk-X52LGBOS.js"
},
"chunk-QFCIXVZ3": {
"file": "chunk-QFCIXVZ3.js"
},
"chunk-A3RXLHYB": {
"file": "chunk-A3RXLHYB.js"
},
"chunk-ZLPTRF2L": {
"file": "chunk-ZLPTRF2L.js"
},
"chunk-54BTDBAD": {
"file": "chunk-54BTDBAD.js"
},
"chunk-UPTVWZ45": {
"file": "chunk-UPTVWZ45.js"
},
"chunk-5XHD7RSF": {
"file": "chunk-5XHD7RSF.js"
},
"chunk-Q5ZULJHM": {
"file": "chunk-Q5ZULJHM.js"
},
"chunk-NGFXCWUF": {
"file": "chunk-NGFXCWUF.js"
},
"chunk-K25ZO44T": {
"file": "chunk-K25ZO44T.js"
},
"chunk-SRXHWJOY": {
"file": "chunk-SRXHWJOY.js"
},
"chunk-5RHQVMYD": {
"file": "chunk-5RHQVMYD.js"
},
"chunk-DC5AMYBS": {
"file": "chunk-DC5AMYBS.js"
}
}
}

5186
node_modules/.vite/deps/bootstrap.js generated vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,297 +0,0 @@
import {
CollectionEventType_default,
Collection_default
} from "./chunk-M5TTSD4C.js";
import {
Base_default
} from "./chunk-AYBYZSAV.js";
import {
assert
} from "./chunk-QFCIXVZ3.js";
import {
ObjectEventType_default,
getUid
} from "./chunk-Q5ZULJHM.js";
import {
Event_default,
listen,
unlistenByKey
} from "./chunk-NGFXCWUF.js";
import {
EventType_default
} from "./chunk-K25ZO44T.js";
import {
getIntersection
} from "./chunk-SRXHWJOY.js";
import {
clear
} from "./chunk-5RHQVMYD.js";
// node_modules/ol/layer/Group.js
var GroupEventType = {
/**
* Triggered when a layer is added
* @event GroupEvent#addlayer
* @api
*/
ADDLAYER: "addlayer",
/**
* Triggered when a layer is removed
* @event GroupEvent#removelayer
* @api
*/
REMOVELAYER: "removelayer"
};
var GroupEvent = class extends Event_default {
/**
* @param {GroupEventType} type The event type.
* @param {BaseLayer} layer The layer.
*/
constructor(type, layer) {
super(type);
this.layer = layer;
}
};
var Property = {
LAYERS: "layers"
};
var LayerGroup = class _LayerGroup extends Base_default {
/**
* @param {Options} [options] Layer options.
*/
constructor(options) {
options = options || {};
const baseOptions = (
/** @type {Options} */
Object.assign({}, options)
);
delete baseOptions.layers;
let layers = options.layers;
super(baseOptions);
this.on;
this.once;
this.un;
this.layersListenerKeys_ = [];
this.listenerKeys_ = {};
this.addChangeListener(Property.LAYERS, this.handleLayersChanged_);
if (layers) {
if (Array.isArray(layers)) {
layers = new Collection_default(layers.slice(), { unique: true });
} else {
assert(
typeof /** @type {?} */
layers.getArray === "function",
"Expected `layers` to be an array or a `Collection`"
);
}
} else {
layers = new Collection_default(void 0, { unique: true });
}
this.setLayers(layers);
}
/**
* @private
*/
handleLayerChange_() {
this.changed();
}
/**
* @private
*/
handleLayersChanged_() {
this.layersListenerKeys_.forEach(unlistenByKey);
this.layersListenerKeys_.length = 0;
const layers = this.getLayers();
this.layersListenerKeys_.push(
listen(layers, CollectionEventType_default.ADD, this.handleLayersAdd_, this),
listen(
layers,
CollectionEventType_default.REMOVE,
this.handleLayersRemove_,
this
)
);
for (const id in this.listenerKeys_) {
this.listenerKeys_[id].forEach(unlistenByKey);
}
clear(this.listenerKeys_);
const layersArray = layers.getArray();
for (let i = 0, ii = layersArray.length; i < ii; i++) {
const layer = layersArray[i];
this.registerLayerListeners_(layer);
this.dispatchEvent(new GroupEvent(GroupEventType.ADDLAYER, layer));
}
this.changed();
}
/**
* @param {BaseLayer} layer The layer.
*/
registerLayerListeners_(layer) {
const listenerKeys = [
listen(
layer,
ObjectEventType_default.PROPERTYCHANGE,
this.handleLayerChange_,
this
),
listen(layer, EventType_default.CHANGE, this.handleLayerChange_, this)
];
if (layer instanceof _LayerGroup) {
listenerKeys.push(
listen(layer, GroupEventType.ADDLAYER, this.handleLayerGroupAdd_, this),
listen(
layer,
GroupEventType.REMOVELAYER,
this.handleLayerGroupRemove_,
this
)
);
}
this.listenerKeys_[getUid(layer)] = listenerKeys;
}
/**
* @param {GroupEvent} event The layer group event.
*/
handleLayerGroupAdd_(event) {
this.dispatchEvent(new GroupEvent(GroupEventType.ADDLAYER, event.layer));
}
/**
* @param {GroupEvent} event The layer group event.
*/
handleLayerGroupRemove_(event) {
this.dispatchEvent(new GroupEvent(GroupEventType.REMOVELAYER, event.layer));
}
/**
* @param {import("../Collection.js").CollectionEvent<import("./Base.js").default>} collectionEvent CollectionEvent.
* @private
*/
handleLayersAdd_(collectionEvent) {
const layer = collectionEvent.element;
this.registerLayerListeners_(layer);
this.dispatchEvent(new GroupEvent(GroupEventType.ADDLAYER, layer));
this.changed();
}
/**
* @param {import("../Collection.js").CollectionEvent<import("./Base.js").default>} collectionEvent CollectionEvent.
* @private
*/
handleLayersRemove_(collectionEvent) {
const layer = collectionEvent.element;
const key = getUid(layer);
this.listenerKeys_[key].forEach(unlistenByKey);
delete this.listenerKeys_[key];
this.dispatchEvent(new GroupEvent(GroupEventType.REMOVELAYER, layer));
this.changed();
}
/**
* Returns the {@link module:ol/Collection~Collection collection} of {@link module:ol/layer/Layer~Layer layers}
* in this group.
* @return {!Collection<import("./Base.js").default>} Collection of
* {@link module:ol/layer/Base~BaseLayer layers} that are part of this group.
* @observable
* @api
*/
getLayers() {
return (
/** @type {!Collection<import("./Base.js").default>} */
this.get(Property.LAYERS)
);
}
/**
* Set the {@link module:ol/Collection~Collection collection} of {@link module:ol/layer/Layer~Layer layers}
* in this group.
* @param {!Collection<import("./Base.js").default>} layers Collection of
* {@link module:ol/layer/Base~BaseLayer layers} that are part of this group.
* @observable
* @api
*/
setLayers(layers) {
const collection = this.getLayers();
if (collection) {
const currentLayers = collection.getArray();
for (let i = 0, ii = currentLayers.length; i < ii; ++i) {
this.dispatchEvent(
new GroupEvent(GroupEventType.REMOVELAYER, currentLayers[i])
);
}
}
this.set(Property.LAYERS, layers);
}
/**
* @param {Array<import("./Layer.js").default>} [array] Array of layers (to be modified in place).
* @return {Array<import("./Layer.js").default>} Array of layers.
* @override
*/
getLayersArray(array) {
array = array !== void 0 ? array : [];
this.getLayers().forEach(function(layer) {
layer.getLayersArray(array);
});
return array;
}
/**
* Get the layer states list and use this groups z-index as the default
* for all layers in this and nested groups, if it is unset at this point.
* If dest is not provided and this group's z-index is undefined
* 0 is used a the default z-index.
* @param {Array<import("./Layer.js").State>} [dest] Optional list
* of layer states (to be modified in place).
* @return {Array<import("./Layer.js").State>} List of layer states.
* @override
*/
getLayerStatesArray(dest) {
const states = dest !== void 0 ? dest : [];
const pos = states.length;
this.getLayers().forEach(function(layer) {
layer.getLayerStatesArray(states);
});
const ownLayerState = this.getLayerState();
let defaultZIndex = ownLayerState.zIndex;
if (!dest && ownLayerState.zIndex === void 0) {
defaultZIndex = 0;
}
for (let i = pos, ii = states.length; i < ii; i++) {
const layerState = states[i];
layerState.opacity *= ownLayerState.opacity;
layerState.visible = layerState.visible && ownLayerState.visible;
layerState.maxResolution = Math.min(
layerState.maxResolution,
ownLayerState.maxResolution
);
layerState.minResolution = Math.max(
layerState.minResolution,
ownLayerState.minResolution
);
layerState.minZoom = Math.max(layerState.minZoom, ownLayerState.minZoom);
layerState.maxZoom = Math.min(layerState.maxZoom, ownLayerState.maxZoom);
if (ownLayerState.extent !== void 0) {
if (layerState.extent !== void 0) {
layerState.extent = getIntersection(
layerState.extent,
ownLayerState.extent
);
} else {
layerState.extent = ownLayerState.extent;
}
}
if (layerState.zIndex === void 0) {
layerState.zIndex = defaultZIndex;
}
}
return states;
}
/**
* @return {import("../source/Source.js").State} Source state.
* @override
*/
getSourceState() {
return "ready";
}
};
var Group_default = LayerGroup;
export {
GroupEvent,
Group_default
};
//# sourceMappingURL=chunk-2C73OZ6M.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,77 +0,0 @@
import {
ImageState_default,
Image_default
} from "./chunk-SHUBVYN4.js";
// node_modules/ol/ImageCanvas.js
var ImageCanvas = class extends Image_default {
/**
* @param {import("./extent.js").Extent} extent Extent.
* @param {number} resolution Resolution.
* @param {number} pixelRatio Pixel ratio.
* @param {HTMLCanvasElement|OffscreenCanvas} canvas Canvas.
* @param {Loader} [loader] Optional loader function to
* support asynchronous canvas drawing.
*/
constructor(extent, resolution, pixelRatio, canvas, loader) {
const state = loader !== void 0 ? ImageState_default.IDLE : ImageState_default.LOADED;
super(extent, resolution, pixelRatio, state);
this.loader_ = loader !== void 0 ? loader : null;
this.canvas_ = canvas;
this.error_ = null;
}
/**
* Get any error associated with asynchronous rendering.
* @return {?Error} Any error that occurred during rendering.
*/
getError() {
return this.error_;
}
/**
* Handle async drawing complete.
* @param {Error} [err] Any error during drawing.
* @private
*/
handleLoad_(err) {
if (err) {
this.error_ = err;
this.state = ImageState_default.ERROR;
} else {
this.state = ImageState_default.LOADED;
}
this.changed();
}
/**
* Load not yet loaded URI.
* @override
*/
load() {
if (this.state == ImageState_default.IDLE) {
this.state = ImageState_default.LOADING;
this.changed();
this.loader_(this.handleLoad_.bind(this));
}
}
/**
* @return {HTMLCanvasElement|OffscreenCanvas} Canvas element.
* @override
*/
getImage() {
return this.canvas_;
}
};
var ImageCanvas_default = ImageCanvas;
// node_modules/ol/resolution.js
function fromResolutionLike(resolution) {
if (Array.isArray(resolution)) {
return Math.min(...resolution);
}
return resolution;
}
export {
ImageCanvas_default,
fromResolutionLike
};
//# sourceMappingURL=chunk-3TN6D4MD.js.map

View File

@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../../ol/ImageCanvas.js", "../../ol/resolution.js"],
"sourcesContent": ["/**\n * @module ol/ImageCanvas\n */\nimport ImageWrapper from './Image.js';\nimport ImageState from './ImageState.js';\n\n/**\n * A function that is called to trigger asynchronous canvas drawing. It is\n * called with a \"done\" callback that should be called when drawing is done.\n * If any error occurs during drawing, the \"done\" callback should be called with\n * that error.\n *\n * @typedef {function(function(Error=): void): void} Loader\n */\n\nclass ImageCanvas extends ImageWrapper {\n /**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @param {number} pixelRatio Pixel ratio.\n * @param {HTMLCanvasElement|OffscreenCanvas} canvas Canvas.\n * @param {Loader} [loader] Optional loader function to\n * support asynchronous canvas drawing.\n */\n constructor(extent, resolution, pixelRatio, canvas, loader) {\n const state = loader !== undefined ? ImageState.IDLE : ImageState.LOADED;\n\n super(extent, resolution, pixelRatio, state);\n\n /**\n * Optional canvas loader function.\n * @type {?Loader}\n * @private\n */\n this.loader_ = loader !== undefined ? loader : null;\n\n /**\n * @private\n * @type {HTMLCanvasElement|OffscreenCanvas}\n */\n this.canvas_ = canvas;\n\n /**\n * @private\n * @type {?Error}\n */\n this.error_ = null;\n }\n\n /**\n * Get any error associated with asynchronous rendering.\n * @return {?Error} Any error that occurred during rendering.\n */\n getError() {\n return this.error_;\n }\n\n /**\n * Handle async drawing complete.\n * @param {Error} [err] Any error during drawing.\n * @private\n */\n handleLoad_(err) {\n if (err) {\n this.error_ = err;\n this.state = ImageState.ERROR;\n } else {\n this.state = ImageState.LOADED;\n }\n this.changed();\n }\n\n /**\n * Load not yet loaded URI.\n * @override\n */\n load() {\n if (this.state == ImageState.IDLE) {\n this.state = ImageState.LOADING;\n this.changed();\n this.loader_(this.handleLoad_.bind(this));\n }\n }\n\n /**\n * @return {HTMLCanvasElement|OffscreenCanvas} Canvas element.\n * @override\n */\n getImage() {\n return this.canvas_;\n }\n}\n\nexport default ImageCanvas;\n", "/**\n * @module ol/resolution\n */\n\n/**\n * @typedef {number|Array<number>} ResolutionLike\n */\n\n/**\n * @param {ResolutionLike} resolution Resolution.\n * @return {number} Resolution.\n */\nexport function fromResolutionLike(resolution) {\n if (Array.isArray(resolution)) {\n return Math.min(...resolution);\n }\n return resolution;\n}\n"],
"mappings": ";;;;;;AAeA,IAAM,cAAN,cAA0B,cAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASrC,YAAY,QAAQ,YAAY,YAAY,QAAQ,QAAQ;AAC1D,UAAM,QAAQ,WAAW,SAAY,mBAAW,OAAO,mBAAW;AAElE,UAAM,QAAQ,YAAY,YAAY,KAAK;AAO3C,SAAK,UAAU,WAAW,SAAY,SAAS;AAM/C,SAAK,UAAU;AAMf,SAAK,SAAS;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAW;AACT,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,YAAY,KAAK;AACf,QAAI,KAAK;AACP,WAAK,SAAS;AACd,WAAK,QAAQ,mBAAW;AAAA,IAC1B,OAAO;AACL,WAAK,QAAQ,mBAAW;AAAA,IAC1B;AACA,SAAK,QAAQ;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO;AACL,QAAI,KAAK,SAAS,mBAAW,MAAM;AACjC,WAAK,QAAQ,mBAAW;AACxB,WAAK,QAAQ;AACb,WAAK,QAAQ,KAAK,YAAY,KAAK,IAAI,CAAC;AAAA,IAC1C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAW;AACT,WAAO,KAAK;AAAA,EACd;AACF;AAEA,IAAO,sBAAQ;;;ACjFR,SAAS,mBAAmB,YAAY;AAC7C,MAAI,MAAM,QAAQ,UAAU,GAAG;AAC7B,WAAO,KAAK,IAAI,GAAG,UAAU;AAAA,EAC/B;AACA,SAAO;AACT;",
"names": []
}

View File

@ -1,270 +0,0 @@
import {
Circle_default,
LineString_default,
MultiLineString_default,
MultiPolygon_default
} from "./chunk-7JXPN73Q.js";
import {
Polygon_default
} from "./chunk-AZGMK675.js";
import {
buffer
} from "./chunk-SRXHWJOY.js";
// node_modules/ol-ext/geom/GeomUtils.js
var ol_coordinate_dist2d = function(p1, p2) {
var dx = p1[0] - p2[0];
var dy = p1[1] - p2[1];
return Math.sqrt(dx * dx + dy * dy);
};
var ol_coordinate_equal = function(p1, p2) {
return p1[0] == p2[0] && p1[1] == p2[1];
};
var ol_coordinate_offsetCoords = function(coords, offset) {
var path = [];
var N = coords.length - 1;
var max = N;
var mi, mi1, li, li1, ri, ri1, si, si1, Xi1, Yi1;
var p0, p1, p2;
var isClosed = ol_coordinate_equal(coords[0], coords[N]);
if (!isClosed) {
p0 = coords[0];
p1 = coords[1];
p2 = [
p0[0] + (p1[1] - p0[1]) / ol_coordinate_dist2d(p0, p1) * offset,
p0[1] - (p1[0] - p0[0]) / ol_coordinate_dist2d(p0, p1) * offset
];
path.push(p2);
coords.push(coords[N]);
N++;
max--;
}
for (var i = 0; i < max; i++) {
p0 = coords[i];
p1 = coords[(i + 1) % N];
p2 = coords[(i + 2) % N];
mi = (p1[1] - p0[1]) / (p1[0] - p0[0]);
mi1 = (p2[1] - p1[1]) / (p2[0] - p1[0]);
if (Math.abs(mi - mi1) > 1e-10) {
li = Math.sqrt((p1[0] - p0[0]) * (p1[0] - p0[0]) + (p1[1] - p0[1]) * (p1[1] - p0[1]));
li1 = Math.sqrt((p2[0] - p1[0]) * (p2[0] - p1[0]) + (p2[1] - p1[1]) * (p2[1] - p1[1]));
ri = p0[0] + offset * (p1[1] - p0[1]) / li;
ri1 = p1[0] + offset * (p2[1] - p1[1]) / li1;
si = p0[1] - offset * (p1[0] - p0[0]) / li;
si1 = p1[1] - offset * (p2[0] - p1[0]) / li1;
Xi1 = (mi1 * ri1 - mi * ri + si - si1) / (mi1 - mi);
Yi1 = (mi * mi1 * (ri1 - ri) + mi1 * si - mi * si1) / (mi1 - mi);
if (p1[0] - p0[0] == 0) {
Xi1 = p1[0] + offset * (p1[1] - p0[1]) / Math.abs(p1[1] - p0[1]);
Yi1 = mi1 * Xi1 - mi1 * ri1 + si1;
}
if (p2[0] - p1[0] == 0) {
Xi1 = p2[0] + offset * (p2[1] - p1[1]) / Math.abs(p2[1] - p1[1]);
Yi1 = mi * Xi1 - mi * ri + si;
}
path.push([Xi1, Yi1]);
}
}
if (isClosed) {
path.push(path[0]);
} else {
coords.pop();
p0 = coords[coords.length - 1];
p1 = coords[coords.length - 2];
p2 = [
p0[0] - (p1[1] - p0[1]) / ol_coordinate_dist2d(p0, p1) * offset,
p0[1] + (p1[0] - p0[0]) / ol_coordinate_dist2d(p0, p1) * offset
];
path.push(p2);
}
return path;
};
var ol_coordinate_findSegment = function(pt, coords) {
for (var i = 0; i < coords.length - 1; i++) {
var p0 = coords[i];
var p1 = coords[i + 1];
if (ol_coordinate_equal(pt, p0) || ol_coordinate_equal(pt, p1)) {
return { index: 1, segment: [p0, p1] };
} else {
var d0 = ol_coordinate_dist2d(p0, p1);
var v0 = [(p1[0] - p0[0]) / d0, (p1[1] - p0[1]) / d0];
var d1 = ol_coordinate_dist2d(p0, pt);
var v1 = [(pt[0] - p0[0]) / d1, (pt[1] - p0[1]) / d1];
if (Math.abs(v0[0] * v1[1] - v0[1] * v1[0]) < 1e-10) {
return { index: 1, segment: [p0, p1] };
}
}
}
return { index: -1 };
};
var ol_extent_intersection;
(function() {
function splitX(pts, x) {
var pt;
for (let i = pts.length - 1; i > 0; i--) {
if (pts[i][0] > x && pts[i - 1][0] < x || pts[i][0] < x && pts[i - 1][0] > x) {
pt = [x, (x - pts[i][0]) / (pts[i - 1][0] - pts[i][0]) * (pts[i - 1][1] - pts[i][1]) + pts[i][1]];
pts.splice(i, 0, pt);
}
}
}
function splitY(pts, y) {
var pt;
for (let i = pts.length - 1; i > 0; i--) {
if (pts[i][1] > y && pts[i - 1][1] < y || pts[i][1] < y && pts[i - 1][1] > y) {
pt = [(y - pts[i][1]) / (pts[i - 1][1] - pts[i][1]) * (pts[i - 1][0] - pts[i][0]) + pts[i][0], y];
pts.splice(i, 0, pt);
}
}
}
ol_extent_intersection = function(extent, polygon) {
var poly = polygon.getType() === "Polygon";
if (!poly && polygon.getType() !== "MultiPolygon") return null;
var geom = polygon.getCoordinates();
if (poly) geom = [geom];
geom.forEach(function(g) {
g.forEach(function(c) {
splitX(c, extent[0]);
splitX(c, extent[2]);
splitY(c, extent[1]);
splitY(c, extent[3]);
});
});
geom.forEach(function(g) {
g.forEach(function(c) {
c.forEach(function(p) {
if (p[0] < extent[0]) p[0] = extent[0];
else if (p[0] > extent[2]) p[0] = extent[2];
if (p[1] < extent[1]) p[1] = extent[1];
else if (p[1] > extent[3]) p[1] = extent[3];
});
});
});
if (poly) {
return new Polygon_default(geom[0]);
} else {
return new MultiPolygon_default(geom);
}
};
})();
var ol_coordinate_sampleAt = function(p1, p2, d, start) {
var pts = [];
if (start !== false) pts.push(p1);
var dl = ol_coordinate_dist2d(p1, p2);
if (dl) {
var nb = Math.round(dl / d);
if (nb > 1) {
var dx = (p2[0] - p1[0]) / nb;
var dy = (p2[1] - p1[1]) / nb;
for (var i = 1; i < nb; i++) {
pts.push([p1[0] + dx * i, p1[1] + dy * i]);
}
}
}
pts.push(p2);
return pts;
};
LineString_default.prototype.sampleAt = function(d) {
var line = this.getCoordinates();
var result = [];
for (var i = 1; i < line.length; i++) {
result = result.concat(ol_coordinate_sampleAt(line[i - 1], line[i], d, i === 1));
}
return new LineString_default(result);
};
MultiLineString_default.prototype.sampleAt = function(d) {
var lines = this.getCoordinates();
var result = [];
lines.forEach(function(p) {
var l = [];
for (var i = 1; i < p.length; i++) {
l = l.concat(ol_coordinate_sampleAt(p[i - 1], p[i], d, i === 1));
}
result.push(l);
});
return new MultiLineString_default(result);
};
Polygon_default.prototype.sampleAt = function(res) {
var poly = this.getCoordinates();
var result = [];
poly.forEach(function(p) {
var l = [];
for (var i = 1; i < p.length; i++) {
l = l.concat(ol_coordinate_sampleAt(p[i - 1], p[i], res, i === 1));
}
result.push(l);
});
return new Polygon_default(result);
};
MultiPolygon_default.prototype.sampleAt = function(res) {
var mpoly = this.getCoordinates();
var result = [];
mpoly.forEach(function(poly) {
var a = [];
result.push(a);
poly.forEach(function(p) {
var l = [];
for (var i = 1; i < p.length; i++) {
l = l.concat(ol_coordinate_sampleAt(p[i - 1], p[i], res, i === 1));
}
a.push(l);
});
});
return new MultiPolygon_default(result);
};
Circle_default.prototype.intersection = function(geom, resolution) {
if (geom.sampleAt) {
var ext = buffer(this.getCenter().concat(this.getCenter()), this.getRadius());
geom = ol_extent_intersection(ext, geom);
geom = geom.simplify(resolution);
var c = this.getCenter();
var r = this.getRadius();
var g = geom.sampleAt(resolution).getCoordinates();
switch (geom.getType()) {
case "Polygon":
g = [g];
// fallthrough
case "MultiPolygon": {
var hasout = false;
var result = [];
g.forEach(function(poly) {
var a = [];
result.push(a);
poly.forEach(function(ring) {
var l = [];
a.push(l);
ring.forEach(function(p) {
var d = ol_coordinate_dist2d(c, p);
if (d > r) {
hasout = true;
l.push([
c[0] + r / d * (p[0] - c[0]),
c[1] + r / d * (p[1] - c[1])
]);
} else {
l.push(p);
}
});
});
});
if (!hasout) return geom;
if (geom.getType() === "Polygon") {
return new Polygon_default(result[0]);
} else {
return new MultiPolygon_default(result);
}
}
}
} else {
console.warn("[ol/geom/Circle~intersection] Unsupported geometry type: " + geom.getType());
}
return geom;
};
export {
ol_coordinate_dist2d,
ol_coordinate_equal,
ol_coordinate_offsetCoords,
ol_coordinate_findSegment
};
//# sourceMappingURL=chunk-3UNEODO2.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,59 +0,0 @@
import {
XYZ_default,
defaultTileLoadFunction
} from "./chunk-3ZDRPUXW.js";
import {
WORKER_OFFSCREEN_CANVAS
} from "./chunk-5XHD7RSF.js";
// node_modules/ol/source/OSM.js
var ATTRIBUTION = '&#169; <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a> contributors.';
var OSM = class extends XYZ_default {
/**
* @param {Options} [options] Open Street Map options.
*/
constructor(options) {
options = options || {};
let attributions;
if (options.attributions !== void 0) {
attributions = options.attributions;
} else {
attributions = [ATTRIBUTION];
}
const crossOrigin = options.crossOrigin !== void 0 ? options.crossOrigin : "anonymous";
const url = options.url !== void 0 ? options.url : "https://tile.openstreetmap.org/{z}/{x}/{y}.png";
super({
attributions,
attributionsCollapsible: false,
cacheSize: options.cacheSize,
crossOrigin,
interpolate: options.interpolate,
maxZoom: options.maxZoom !== void 0 ? options.maxZoom : 19,
reprojectionErrorThreshold: options.reprojectionErrorThreshold,
tileLoadFunction: (
/**
* @param {import("../ImageTile.js").default} tile Image tile
* @param {string} src Image src
*/
(tile, src) => {
const image = tile.getImage();
if (!WORKER_OFFSCREEN_CANVAS && image instanceof HTMLImageElement) {
image.referrerPolicy = "origin-when-cross-origin";
}
(options.tileLoadFunction || defaultTileLoadFunction)(tile, src);
}
),
transition: options.transition,
url,
wrapX: options.wrapX,
zDirection: options.zDirection
});
}
};
var OSM_default = OSM;
export {
ATTRIBUTION,
OSM_default
};
//# sourceMappingURL=chunk-43GYE2V5.js.map

View File

@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../../ol/source/OSM.js"],
"sourcesContent": ["/**\n * @module ol/source/OSM\n */\n\nimport {WORKER_OFFSCREEN_CANVAS} from '../has.js';\nimport {defaultTileLoadFunction} from './TileImage.js';\nimport XYZ from './XYZ.js';\n\n/**\n * The attribution containing a link to the OpenStreetMap Copyright and License\n * page.\n * @const\n * @type {string}\n * @api\n */\nexport const ATTRIBUTION =\n '&#169; ' +\n '<a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> ' +\n 'contributors.';\n\n/**\n * @typedef {Object} Options\n * @property {import(\"./Source.js\").AttributionLike} [attributions] Attributions.\n * @property {number} [cacheSize] Deprecated. Use the cacheSize option on the layer instead.\n * @property {null|string} [crossOrigin='anonymous'] The `crossOrigin` attribute for loaded images. Note that\n * you must provide a `crossOrigin` value if you want to access pixel data with the Canvas renderer.\n * See https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image for more detail.\n * @property {boolean} [interpolate=true] Use interpolated values when resampling. By default,\n * linear interpolation is used when resampling. Set to false to use the nearest neighbor instead.\n * @property {number} [maxZoom=19] Max zoom.\n * @property {number} [reprojectionErrorThreshold=0.5] Maximum allowed reprojection error (in pixels).\n * Higher values can increase reprojection performance, but decrease precision.\n * @property {import(\"../Tile.js\").LoadFunction} [tileLoadFunction] Optional function to load a tile given a URL. The default is\n * ```js\n * function(imageTile, src) {\n * imageTile.getImage().src = src;\n * };\n * ```\n * @property {number} [transition=250] Duration of the opacity transition for rendering.\n * To disable the opacity transition, pass `transition: 0`.\n * @property {string} [url='https://tile.openstreetmap.org/{z}/{x}/{y}.png'] URL template.\n * Must include `{x}`, `{y}` or `{-y}`, and `{z}` placeholders.\n * @property {boolean} [wrapX=true] Whether to wrap the world horizontally.\n * @property {number|import(\"../array.js\").NearestDirectionFunction} [zDirection=0]\n * Choose whether to use tiles with a higher or lower zoom level when between integer\n * zoom levels. See {@link module:ol/tilegrid/TileGrid~TileGrid#getZForResolution}.\n */\n\n/**\n * @classdesc\n * Layer source for the OpenStreetMap tile server.\n * @api\n */\nclass OSM extends XYZ {\n /**\n * @param {Options} [options] Open Street Map options.\n */\n constructor(options) {\n options = options || {};\n\n let attributions;\n if (options.attributions !== undefined) {\n attributions = options.attributions;\n } else {\n attributions = [ATTRIBUTION];\n }\n\n const crossOrigin =\n options.crossOrigin !== undefined ? options.crossOrigin : 'anonymous';\n\n const url =\n options.url !== undefined\n ? options.url\n : 'https://tile.openstreetmap.org/{z}/{x}/{y}.png';\n\n super({\n attributions: attributions,\n attributionsCollapsible: false,\n cacheSize: options.cacheSize,\n crossOrigin: crossOrigin,\n interpolate: options.interpolate,\n maxZoom: options.maxZoom !== undefined ? options.maxZoom : 19,\n reprojectionErrorThreshold: options.reprojectionErrorThreshold,\n tileLoadFunction:\n /**\n * @param {import(\"../ImageTile.js\").default} tile Image tile\n * @param {string} src Image src\n */\n (tile, src) => {\n const image = tile.getImage();\n // FIXME referrer policy for worker fetch requests\n if (!WORKER_OFFSCREEN_CANVAS && image instanceof HTMLImageElement) {\n image.referrerPolicy = 'origin-when-cross-origin';\n }\n (options.tileLoadFunction || defaultTileLoadFunction)(tile, src);\n },\n transition: options.transition,\n url: url,\n wrapX: options.wrapX,\n zDirection: options.zDirection,\n });\n }\n}\n\nexport default OSM;\n"],
"mappings": ";;;;;;;;;AAeO,IAAM,cACX;AAqCF,IAAM,MAAN,cAAkB,YAAI;AAAA;AAAA;AAAA;AAAA,EAIpB,YAAY,SAAS;AACnB,cAAU,WAAW,CAAC;AAEtB,QAAI;AACJ,QAAI,QAAQ,iBAAiB,QAAW;AACtC,qBAAe,QAAQ;AAAA,IACzB,OAAO;AACL,qBAAe,CAAC,WAAW;AAAA,IAC7B;AAEA,UAAM,cACJ,QAAQ,gBAAgB,SAAY,QAAQ,cAAc;AAE5D,UAAM,MACJ,QAAQ,QAAQ,SACZ,QAAQ,MACR;AAEN,UAAM;AAAA,MACJ;AAAA,MACA,yBAAyB;AAAA,MACzB,WAAW,QAAQ;AAAA,MACnB;AAAA,MACA,aAAa,QAAQ;AAAA,MACrB,SAAS,QAAQ,YAAY,SAAY,QAAQ,UAAU;AAAA,MAC3D,4BAA4B,QAAQ;AAAA,MACpC;AAAA;AAAA;AAAA;AAAA;AAAA,QAKE,CAAC,MAAM,QAAQ;AACb,gBAAM,QAAQ,KAAK,SAAS;AAE5B,cAAI,CAAC,2BAA2B,iBAAiB,kBAAkB;AACjE,kBAAM,iBAAiB;AAAA,UACzB;AACA,WAAC,QAAQ,oBAAoB,yBAAyB,MAAM,GAAG;AAAA,QACjE;AAAA;AAAA,MACF,YAAY,QAAQ;AAAA,MACpB;AAAA,MACA,OAAO,QAAQ;AAAA,MACf,YAAY,QAAQ;AAAA,IACtB,CAAC;AAAA,EACH;AACF;AAEA,IAAO,cAAQ;",
"names": []
}

View File

@ -1,112 +0,0 @@
// node_modules/ol/math.js
function clamp(value, min, max) {
return Math.min(Math.max(value, min), max);
}
function squaredSegmentDistance(x, y, x1, y1, x2, y2) {
const dx = x2 - x1;
const dy = y2 - y1;
if (dx !== 0 || dy !== 0) {
const t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);
if (t > 1) {
x1 = x2;
y1 = y2;
} else if (t > 0) {
x1 += dx * t;
y1 += dy * t;
}
}
return squaredDistance(x, y, x1, y1);
}
function squaredDistance(x1, y1, x2, y2) {
const dx = x2 - x1;
const dy = y2 - y1;
return dx * dx + dy * dy;
}
function solveLinearSystem(mat) {
const n = mat.length;
for (let i = 0; i < n; i++) {
let maxRow = i;
let maxEl = Math.abs(mat[i][i]);
for (let r = i + 1; r < n; r++) {
const absValue = Math.abs(mat[r][i]);
if (absValue > maxEl) {
maxEl = absValue;
maxRow = r;
}
}
if (maxEl === 0) {
return null;
}
const tmp = mat[maxRow];
mat[maxRow] = mat[i];
mat[i] = tmp;
for (let j = i + 1; j < n; j++) {
const coef = -mat[j][i] / mat[i][i];
for (let k = i; k < n + 1; k++) {
if (i == k) {
mat[j][k] = 0;
} else {
mat[j][k] += coef * mat[i][k];
}
}
}
}
const x = new Array(n);
for (let l = n - 1; l >= 0; l--) {
x[l] = mat[l][n] / mat[l][l];
for (let m = l - 1; m >= 0; m--) {
mat[m][n] -= mat[m][l] * x[l];
}
}
return x;
}
function toDegrees(angleInRadians) {
return angleInRadians * 180 / Math.PI;
}
function toRadians(angleInDegrees) {
return angleInDegrees * Math.PI / 180;
}
function modulo(a, b) {
const r = a % b;
return r * b < 0 ? r + b : r;
}
function lerp(a, b, x) {
return a + x * (b - a);
}
function toFixed(n, decimals) {
const factor = Math.pow(10, decimals);
return Math.round(n * factor) / factor;
}
function round(n, decimals) {
return Math.round(toFixed(n, decimals));
}
function floor(n, decimals) {
return Math.floor(toFixed(n, decimals));
}
function ceil(n, decimals) {
return Math.ceil(toFixed(n, decimals));
}
function wrap(n, min, max) {
if (n >= min && n < max) {
return n;
}
const range = max - min;
return ((n - min) % range + range) % range + min;
}
export {
clamp,
squaredSegmentDistance,
squaredDistance,
solveLinearSystem,
toDegrees,
toRadians,
modulo,
lerp,
toFixed,
round,
floor,
ceil,
wrap
};
//# sourceMappingURL=chunk-54BTDBAD.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,276 +0,0 @@
import {
Feature_default as Feature_default2
} from "./chunk-W7BDJOQY.js";
import {
GeometryCollection_default,
LineString_default,
MultiLineString_default,
MultiPoint_default,
MultiPolygon_default
} from "./chunk-7JXPN73Q.js";
import {
Feature_default
} from "./chunk-E53S5GN6.js";
import {
Point_default,
Polygon_default,
linearRingsAreOriented,
linearRingssAreOriented,
orientLinearRings,
orientLinearRingsArray
} from "./chunk-AZGMK675.js";
import {
equivalent,
get,
getTransform
} from "./chunk-A3RXLHYB.js";
import {
abstract
} from "./chunk-Q5ZULJHM.js";
// node_modules/ol/format/Feature.js
var FeatureFormat = class {
constructor() {
this.dataProjection = void 0;
this.defaultFeatureProjection = void 0;
this.featureClass = /** @type {FeatureToFeatureClass<FeatureType>} */
Feature_default;
this.supportedMediaTypes = null;
}
/**
* Adds the data projection to the read options.
* @param {Document|Element|Object|string} source Source.
* @param {ReadOptions} [options] Options.
* @return {ReadOptions|undefined} Options.
* @protected
*/
getReadOptions(source, options) {
if (options) {
let dataProjection = options.dataProjection ? get(options.dataProjection) : this.readProjection(source);
if (options.extent && dataProjection && dataProjection.getUnits() === "tile-pixels") {
dataProjection = get(dataProjection);
dataProjection.setWorldExtent(options.extent);
}
options = {
dataProjection,
featureProjection: options.featureProjection
};
}
return this.adaptOptions(options);
}
/**
* Sets the `dataProjection` on the options, if no `dataProjection`
* is set.
* @param {WriteOptions|ReadOptions|undefined} options
* Options.
* @protected
* @return {WriteOptions|ReadOptions|undefined}
* Updated options.
*/
adaptOptions(options) {
return Object.assign(
{
dataProjection: this.dataProjection,
featureProjection: this.defaultFeatureProjection,
featureClass: this.featureClass
},
options
);
}
/**
* @abstract
* @return {Type} The format type.
*/
getType() {
return abstract();
}
/**
* Read a single feature from a source.
*
* @abstract
* @param {Document|Element|Object|string} source Source.
* @param {ReadOptions} [options] Read options.
* @return {FeatureType|Array<FeatureType>} Feature.
*/
readFeature(source, options) {
return abstract();
}
/**
* Read all features from a source.
*
* @abstract
* @param {Document|Element|ArrayBuffer|Object|string} source Source.
* @param {ReadOptions} [options] Read options.
* @return {Array<FeatureType>} Features.
*/
readFeatures(source, options) {
return abstract();
}
/**
* Read a single geometry from a source.
*
* @abstract
* @param {Document|Element|Object|string} source Source.
* @param {ReadOptions} [options] Read options.
* @return {import("../geom/Geometry.js").default} Geometry.
*/
readGeometry(source, options) {
return abstract();
}
/**
* Read the projection from a source.
*
* @abstract
* @param {Document|Element|Object|string} source Source.
* @return {import("../proj/Projection.js").default|undefined} Projection.
*/
readProjection(source) {
return abstract();
}
/**
* Encode a feature in this format.
*
* @abstract
* @param {Feature} feature Feature.
* @param {WriteOptions} [options] Write options.
* @return {string|ArrayBuffer} Result.
*/
writeFeature(feature, options) {
return abstract();
}
/**
* Encode an array of features in this format.
*
* @abstract
* @param {Array<Feature>} features Features.
* @param {WriteOptions} [options] Write options.
* @return {string|ArrayBuffer} Result.
*/
writeFeatures(features, options) {
return abstract();
}
/**
* Write a single geometry in this format.
*
* @abstract
* @param {import("../geom/Geometry.js").default} geometry Geometry.
* @param {WriteOptions} [options] Write options.
* @return {string|ArrayBuffer} Result.
*/
writeGeometry(geometry, options) {
return abstract();
}
};
var Feature_default3 = FeatureFormat;
function transformGeometryWithOptions(geometry, write, options) {
const featureProjection = options ? get(options.featureProjection) : null;
const dataProjection = options ? get(options.dataProjection) : null;
let transformed = geometry;
if (featureProjection && dataProjection && !equivalent(featureProjection, dataProjection)) {
if (write) {
transformed = /** @type {T} */
geometry.clone();
}
const fromProjection = write ? featureProjection : dataProjection;
const toProjection = write ? dataProjection : featureProjection;
if (fromProjection.getUnits() === "tile-pixels") {
transformed.transform(fromProjection, toProjection);
} else {
transformed.applyTransform(getTransform(fromProjection, toProjection));
}
}
if (write && options && /** @type {WriteOptions} */
options.decimals !== void 0) {
const power = Math.pow(
10,
/** @type {WriteOptions} */
options.decimals
);
const transform = function(coordinates) {
for (let i = 0, ii = coordinates.length; i < ii; ++i) {
coordinates[i] = Math.round(coordinates[i] * power) / power;
}
return coordinates;
};
if (transformed === geometry) {
transformed = /** @type {T} */
geometry.clone();
}
transformed.applyTransform(transform);
}
return transformed;
}
var GeometryConstructor = {
Point: Point_default,
LineString: LineString_default,
Polygon: Polygon_default,
MultiPoint: MultiPoint_default,
MultiLineString: MultiLineString_default,
MultiPolygon: MultiPolygon_default
};
function orientFlatCoordinates(flatCoordinates, ends, stride) {
if (Array.isArray(ends[0])) {
if (!linearRingssAreOriented(flatCoordinates, 0, ends, stride)) {
flatCoordinates = flatCoordinates.slice();
orientLinearRingsArray(flatCoordinates, 0, ends, stride);
}
return flatCoordinates;
}
if (!linearRingsAreOriented(flatCoordinates, 0, ends, stride)) {
flatCoordinates = flatCoordinates.slice();
orientLinearRings(flatCoordinates, 0, ends, stride);
}
return flatCoordinates;
}
function createRenderFeature(object, options) {
var _a;
const geometry = object.geometry;
if (!geometry) {
return [];
}
if (Array.isArray(geometry)) {
return geometry.map((geometry2) => createRenderFeature({ ...object, geometry: geometry2 })).flat();
}
const geometryType = geometry.type === "MultiPolygon" ? "Polygon" : geometry.type;
if (geometryType === "GeometryCollection" || geometryType === "Circle") {
throw new Error("Unsupported geometry type: " + geometryType);
}
const stride = geometry.layout.length;
return transformGeometryWithOptions(
new Feature_default2(
geometryType,
geometryType === "Polygon" ? orientFlatCoordinates(geometry.flatCoordinates, geometry.ends, stride) : geometry.flatCoordinates,
(_a = geometry.ends) == null ? void 0 : _a.flat(),
stride,
object.properties || {},
object.id
).enableSimplifyTransformed(),
false,
options
);
}
function createGeometry(object, options) {
if (!object) {
return null;
}
if (Array.isArray(object)) {
const geometries = object.map(
(geometry) => createGeometry(geometry, options)
);
return new GeometryCollection_default(geometries);
}
const Geometry = GeometryConstructor[object.type];
return transformGeometryWithOptions(
new Geometry(object.flatCoordinates, object.layout || "XY", object.ends),
false,
options
);
}
export {
Feature_default3 as Feature_default,
transformGeometryWithOptions,
createRenderFeature,
createGeometry
};
//# sourceMappingURL=chunk-56VFHHUN.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,17 +0,0 @@
// node_modules/ol/TileState.js
var TileState_default = {
IDLE: 0,
LOADING: 1,
LOADED: 2,
/**
* Indicates that tile loading failed
* @type {number}
*/
ERROR: 3,
EMPTY: 4
};
export {
TileState_default
};
//# sourceMappingURL=chunk-5D2XPBR2.js.map

View File

@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../../ol/TileState.js"],
"sourcesContent": ["/**\n * @module ol/TileState\n */\n\n/**\n * @enum {number}\n */\nexport default {\n IDLE: 0,\n LOADING: 1,\n LOADED: 2,\n /**\n * Indicates that tile loading failed\n * @type {number}\n */\n ERROR: 3,\n EMPTY: 4,\n};\n"],
"mappings": ";AAOA,IAAO,oBAAQ;AAAA,EACb,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,EAKR,OAAO;AAAA,EACP,OAAO;AACT;",
"names": []
}

View File

@ -1,19 +0,0 @@
// node_modules/ol/obj.js
function clear(object) {
for (const property in object) {
delete object[property];
}
}
function isEmpty(object) {
let property;
for (property in object) {
return false;
}
return !property;
}
export {
clear,
isEmpty
};
//# sourceMappingURL=chunk-5RHQVMYD.js.map

View File

@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../../ol/obj.js"],
"sourcesContent": ["/**\n * @module ol/obj\n */\n\n/**\n * Removes all properties from an object.\n * @param {Object<string, unknown>} object The object to clear.\n */\nexport function clear(object) {\n for (const property in object) {\n delete object[property];\n }\n}\n\n/**\n * Determine if an object has any properties.\n * @param {Object} object The object to check.\n * @return {boolean} The object is empty.\n */\nexport function isEmpty(object) {\n let property;\n for (property in object) {\n return false;\n }\n return !property;\n}\n"],
"mappings": ";AAQO,SAAS,MAAM,QAAQ;AAC5B,aAAW,YAAY,QAAQ;AAC7B,WAAO,OAAO,QAAQ;AAAA,EACxB;AACF;AAOO,SAAS,QAAQ,QAAQ;AAC9B,MAAI;AACJ,OAAK,YAAY,QAAQ;AACvB,WAAO;AAAA,EACT;AACA,SAAO,CAAC;AACV;",
"names": []
}

View File

@ -1,36 +0,0 @@
// node_modules/ol/has.js
var ua = typeof navigator !== "undefined" && typeof navigator.userAgent !== "undefined" ? navigator.userAgent.toLowerCase() : "";
var SAFARI = ua.includes("safari") && !ua.includes("chrom");
var SAFARI_BUG_237906 = SAFARI && (ua.includes("version/15.4") || /cpu (os|iphone os) 15_4 like mac os x/.test(ua));
var WEBKIT = ua.includes("webkit") && !ua.includes("edge");
var MAC = ua.includes("macintosh");
var DEVICE_PIXEL_RATIO = typeof devicePixelRatio !== "undefined" ? devicePixelRatio : 1;
var WORKER_OFFSCREEN_CANVAS = typeof WorkerGlobalScope !== "undefined" && typeof OffscreenCanvas !== "undefined" && self instanceof WorkerGlobalScope;
var IMAGE_DECODE = typeof Image !== "undefined" && Image.prototype.decode;
var CREATE_IMAGE_BITMAP = typeof createImageBitmap === "function";
var PASSIVE_EVENT_LISTENERS = (function() {
let passive = false;
try {
const options = Object.defineProperty({}, "passive", {
get: function() {
passive = true;
}
});
window.addEventListener("_", null, options);
window.removeEventListener("_", null, options);
} catch {
}
return passive;
})();
export {
SAFARI_BUG_237906,
WEBKIT,
MAC,
DEVICE_PIXEL_RATIO,
WORKER_OFFSCREEN_CANVAS,
IMAGE_DECODE,
CREATE_IMAGE_BITMAP,
PASSIVE_EVENT_LISTENERS
};
//# sourceMappingURL=chunk-5XHD7RSF.js.map

View File

@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../../ol/has.js"],
"sourcesContent": ["/**\n * @module ol/has\n */\n\nconst ua =\n typeof navigator !== 'undefined' && typeof navigator.userAgent !== 'undefined'\n ? navigator.userAgent.toLowerCase()\n : '';\n\n/**\n * User agent string says we are dealing with Safari as browser.\n * @type {boolean}\n */\nexport const SAFARI = ua.includes('safari') && !ua.includes('chrom');\n\n/**\n * https://bugs.webkit.org/show_bug.cgi?id=237906\n * @type {boolean}\n */\nexport const SAFARI_BUG_237906 =\n SAFARI &&\n (ua.includes('version/15.4') ||\n /cpu (os|iphone os) 15_4 like mac os x/.test(ua));\n\n/**\n * User agent string says we are dealing with a WebKit engine.\n * @type {boolean}\n */\nexport const WEBKIT = ua.includes('webkit') && !ua.includes('edge');\n\n/**\n * User agent string says we are dealing with a Mac as platform.\n * @type {boolean}\n */\nexport const MAC = ua.includes('macintosh');\n\n/**\n * The ratio between physical pixels and device-independent pixels\n * (dips) on the device (`window.devicePixelRatio`).\n * @const\n * @type {number}\n * @api\n */\nexport const DEVICE_PIXEL_RATIO =\n typeof devicePixelRatio !== 'undefined' ? devicePixelRatio : 1;\n\n/**\n * The execution context is a worker with OffscreenCanvas available.\n * @const\n * @type {boolean}\n */\nexport const WORKER_OFFSCREEN_CANVAS =\n typeof WorkerGlobalScope !== 'undefined' &&\n typeof OffscreenCanvas !== 'undefined' &&\n self instanceof WorkerGlobalScope; //eslint-disable-line\n\n/**\n * Image.prototype.decode() is supported.\n * @type {boolean}\n */\nexport const IMAGE_DECODE =\n typeof Image !== 'undefined' && Image.prototype.decode;\n\n/**\n * createImageBitmap() is supported.\n * @type {boolean}\n */\nexport const CREATE_IMAGE_BITMAP = typeof createImageBitmap === 'function';\n\n/**\n * @type {boolean}\n */\nexport const PASSIVE_EVENT_LISTENERS = (function () {\n let passive = false;\n try {\n const options = Object.defineProperty({}, 'passive', {\n get: function () {\n passive = true;\n },\n });\n\n // @ts-ignore Ignore invalid event type '_'\n window.addEventListener('_', null, options);\n // @ts-ignore Ignore invalid event type '_'\n window.removeEventListener('_', null, options);\n } catch {\n // passive not supported\n }\n return passive;\n})();\n"],
"mappings": ";AAIA,IAAM,KACJ,OAAO,cAAc,eAAe,OAAO,UAAU,cAAc,cAC/D,UAAU,UAAU,YAAY,IAChC;AAMC,IAAM,SAAS,GAAG,SAAS,QAAQ,KAAK,CAAC,GAAG,SAAS,OAAO;AAM5D,IAAM,oBACX,WACC,GAAG,SAAS,cAAc,KACzB,wCAAwC,KAAK,EAAE;AAM5C,IAAM,SAAS,GAAG,SAAS,QAAQ,KAAK,CAAC,GAAG,SAAS,MAAM;AAM3D,IAAM,MAAM,GAAG,SAAS,WAAW;AASnC,IAAM,qBACX,OAAO,qBAAqB,cAAc,mBAAmB;AAOxD,IAAM,0BACX,OAAO,sBAAsB,eAC7B,OAAO,oBAAoB,eAC3B,gBAAgB;AAMX,IAAM,eACX,OAAO,UAAU,eAAe,MAAM,UAAU;AAM3C,IAAM,sBAAsB,OAAO,sBAAsB;AAKzD,IAAM,2BAA2B,WAAY;AAClD,MAAI,UAAU;AACd,MAAI;AACF,UAAM,UAAU,OAAO,eAAe,CAAC,GAAG,WAAW;AAAA,MACnD,KAAK,WAAY;AACf,kBAAU;AAAA,MACZ;AAAA,IACF,CAAC;AAGD,WAAO,iBAAiB,KAAK,MAAM,OAAO;AAE1C,WAAO,oBAAoB,KAAK,MAAM,OAAO;AAAA,EAC/C,QAAQ;AAAA,EAER;AACA,SAAO;AACT,GAAG;",
"names": []
}

View File

@ -1,465 +0,0 @@
import {
Feature_default
} from "./chunk-E53S5GN6.js";
import {
Vector_default
} from "./chunk-T3TT2KJN.js";
import {
Interaction_default
} from "./chunk-MSWSBYBR.js";
import {
never,
shiftKeyOnly,
singleClick
} from "./chunk-QCJTGAWF.js";
import {
CollectionEventType_default,
Collection_default
} from "./chunk-M5TTSD4C.js";
import {
createEditingStyle
} from "./chunk-PAB2HIXK.js";
import {
getUid
} from "./chunk-Q5ZULJHM.js";
import {
Event_default
} from "./chunk-NGFXCWUF.js";
import {
TRUE,
extend
} from "./chunk-K25ZO44T.js";
import {
clear
} from "./chunk-5RHQVMYD.js";
// node_modules/ol/interaction/Select.js
var SelectEventType = {
/**
* Triggered when feature(s) has been (de)selected.
* @event SelectEvent#select
* @api
*/
SELECT: "select"
};
var SelectEvent = class extends Event_default {
/**
* @param {SelectEventType} type The event type.
* @param {Array<import("../Feature.js").default>} selected Selected features.
* @param {Array<import("../Feature.js").default>} deselected Deselected features.
* @param {import("../MapBrowserEvent.js").default} mapBrowserEvent Associated
* {@link module:ol/MapBrowserEvent~MapBrowserEvent}.
*/
constructor(type, selected, deselected, mapBrowserEvent) {
super(type);
this.selected = selected;
this.deselected = deselected;
this.mapBrowserEvent = mapBrowserEvent;
}
};
var originalFeatureStyles = {};
var Select = class _Select extends Interaction_default {
/**
* @param {Options} [options] Options.
*/
constructor(options) {
super();
this.on;
this.once;
this.un;
options = options ? options : {};
this.boundAddFeature_ = this.addFeature_.bind(this);
this.boundRemoveFeature_ = this.removeFeature_.bind(this);
this.condition_ = options.condition ? options.condition : singleClick;
this.addCondition_ = options.addCondition ? options.addCondition : never;
this.removeCondition_ = options.removeCondition ? options.removeCondition : never;
this.toggleCondition_ = options.toggleCondition ? options.toggleCondition : shiftKeyOnly;
this.multi_ = options.multi ? options.multi : false;
this.filter_ = options.filter ? options.filter : TRUE;
this.hitTolerance_ = options.hitTolerance ? options.hitTolerance : 0;
this.style_ = options.style !== void 0 ? options.style : getDefaultStyleFunction();
this.features_ = options.features || new Collection_default();
let layerFilter;
if (options.layers) {
if (typeof options.layers === "function") {
layerFilter = options.layers;
} else {
const layers = options.layers;
layerFilter = function(layer) {
return layers.includes(layer);
};
}
} else {
layerFilter = TRUE;
}
this.layerFilter_ = layerFilter;
this.featureLayerAssociation_ = {};
}
/**
* @param {import("../Feature.js").default} feature Feature.
* @param {import("../layer/Layer.js").default} layer Layer.
* @private
*/
addFeatureLayerAssociation_(feature, layer) {
this.featureLayerAssociation_[getUid(feature)] = layer;
}
/**
* Get the selected features.
* @return {Collection<Feature>} Features collection.
* @api
*/
getFeatures() {
return this.features_;
}
/**
* Returns the Hit-detection tolerance.
* @return {number} Hit tolerance in pixels.
* @api
*/
getHitTolerance() {
return this.hitTolerance_;
}
/**
* Returns the associated {@link module:ol/layer/Vector~VectorLayer vector layer} of
* a selected feature.
* @param {import("../Feature.js").default} feature Feature
* @return {import('../layer/Vector.js').default} Layer.
* @api
*/
getLayer(feature) {
return (
/** @type {import('../layer/Vector.js').default} */
this.featureLayerAssociation_[getUid(feature)]
);
}
/**
* Hit-detection tolerance. Pixels inside the radius around the given position
* will be checked for features.
* @param {number} hitTolerance Hit tolerance in pixels.
* @api
*/
setHitTolerance(hitTolerance) {
this.hitTolerance_ = hitTolerance;
}
/**
* Remove the interaction from its current map, if any, and attach it to a new
* map, if any. Pass `null` to just remove the interaction from the current map.
* @param {import("../Map.js").default|null} map Map.
* @api
* @override
*/
setMap(map) {
const currentMap = this.getMap();
if (currentMap && this.style_) {
this.features_.forEach(this.restorePreviousStyle_.bind(this));
}
super.setMap(map);
if (map) {
this.features_.addEventListener(
CollectionEventType_default.ADD,
this.boundAddFeature_
);
this.features_.addEventListener(
CollectionEventType_default.REMOVE,
this.boundRemoveFeature_
);
if (this.style_) {
this.features_.forEach(this.applySelectedStyle_.bind(this));
}
} else {
this.features_.removeEventListener(
CollectionEventType_default.ADD,
this.boundAddFeature_
);
this.features_.removeEventListener(
CollectionEventType_default.REMOVE,
this.boundRemoveFeature_
);
}
}
/**
* @param {import("../Collection.js").CollectionEvent<Feature>} evt Event.
* @private
*/
addFeature_(evt) {
const feature = evt.element;
if (this.style_) {
this.applySelectedStyle_(feature);
}
if (!this.getLayer(feature)) {
const layer = this.findLayerOfFeature_(feature);
if (layer) {
this.addFeatureLayerAssociation_(feature, layer);
}
}
}
/**
* @param {import("../Collection.js").CollectionEvent<Feature>} evt Event.
* @private
*/
removeFeature_(evt) {
if (this.style_) {
this.restorePreviousStyle_(evt.element);
}
}
/**
* @param {Feature} feature Feature of which to get the layer
* @return {VectorLayer} layer, if one was found.
* @private
*/
findLayerOfFeature_(feature) {
const layer = (
/** @type {VectorLayer} */
this.getMap().getAllLayers().find(function(layer2) {
if (layer2 instanceof Vector_default && layer2.getSource() && layer2.getSource().hasFeature(feature)) {
return layer2;
}
})
);
return layer;
}
/**
* @return {import("../style/Style.js").StyleLike|null} Select style.
*/
getStyle() {
return this.style_;
}
/**
* @param {Feature} feature Feature
* @private
*/
applySelectedStyle_(feature) {
const key = getUid(feature);
if (!(key in originalFeatureStyles)) {
originalFeatureStyles[key] = feature.getStyle();
}
feature.setStyle(this.style_);
}
/**
* @param {Feature} feature Feature
* @private
*/
restorePreviousStyle_(feature) {
const interactions = this.getMap().getInteractions().getArray();
for (let i = interactions.length - 1; i >= 0; --i) {
const interaction = interactions[i];
if (interaction !== this && interaction instanceof _Select && interaction.getStyle() && interaction.getFeatures().getArray().lastIndexOf(feature) !== -1) {
feature.setStyle(interaction.getStyle());
return;
}
}
const key = getUid(feature);
feature.setStyle(originalFeatureStyles[key]);
delete originalFeatureStyles[key];
}
/**
* @param {Feature} feature Feature.
* @private
*/
removeFeatureLayerAssociation_(feature) {
delete this.featureLayerAssociation_[getUid(feature)];
}
/**
* @param {import("../Feature.js").FeatureLike} feature The feature to select
* @param {import("../layer/Layer.js").default} layer Optional layer containing this feature
* @param {Array<Feature>} [selected] optional array to which selected features will be added
* @return {Feature|undefined} The feature, if it got selected.
* @private
*/
selectFeatureInternal_(feature, layer, selected) {
if (!(feature instanceof Feature_default)) {
return;
}
if (!this.filter_(feature, layer)) {
return;
}
const features = this.getFeatures();
if (!features.getArray().includes(feature)) {
this.addFeatureLayerAssociation_(feature, layer);
features.push(feature);
selected == null ? void 0 : selected.push(feature);
}
return feature;
}
/**
* Try to select a feature as if it was clicked and `addCondition` evaluated to True.
* Unlike modifying `select.getFeatures()` directly, this respects the `filter` and `layers` options (except `multi`, which is ignored).
* The {@link module:ol/interaction/Select~SelectEvent} fired by this won't have a mapBrowserEvent property
* @param {Feature} feature The feature to select
* @return {boolean} True if the feature was selected
*/
selectFeature(feature) {
const layer = this.findLayerOfFeature_(feature);
if (!this.layerFilter_(layer)) {
return false;
}
const selected = this.selectFeatureInternal_(feature, layer);
if (selected) {
this.dispatchEvent(
new SelectEvent(SelectEventType.SELECT, [selected], [], void 0)
);
}
return !!selected;
}
/**
* Deselects a feature if it was previously selected. Also removes layer association.
* @param {import("../Feature.js").FeatureLike} feature The feature to deselect
* @param {Array<Feature>} [deselected] optional array to which deselected features will be added
* @return {Feature|undefined} The feature, if it was previously selected.
* @private
*/
removeFeatureInternal_(feature, deselected) {
const features = this.getFeatures();
if (!(feature instanceof Feature_default) || !features.getArray().includes(feature)) {
return;
}
features.remove(feature);
this.removeFeatureLayerAssociation_(feature);
deselected == null ? void 0 : deselected.push(feature);
return feature;
}
/**
* Try to deselect a feature as if it was clicked.
* Compared to `select.getFeatures().remove(feature)` this causes a SelectEvent.
* The {@link module:ol/interaction/Select~SelectEvent} fired by this won't have a mapBrowserEvent property
* @param {Feature} feature The feature to deselect
* @return {boolean} True if the feature was deselected
*/
deselectFeature(feature) {
const deselected = this.removeFeatureInternal_(feature);
if (deselected) {
this.dispatchEvent(
new SelectEvent(SelectEventType.SELECT, [], [deselected], void 0)
);
}
return !!deselected;
}
/**
* Try to toggle a feature as if it was clicked and `toggleCondition` was True.
* Unlike modifying `select.getFeatures()` directly, this respects the `filter` and `layers` options (except `multi`, which is ignored).
* The {@link module:ol/interaction/Select~SelectEvent} fired by this won't have a mapBrowserEvent property
* @param {Feature} feature The feature to deselect
*/
toggleFeature(feature) {
if (!this.deselectFeature(feature)) {
this.selectFeature(feature);
}
}
/**
* Deselect all features as if a user deselected them.
* Compared to `select.getFeatures().clear()` this causes a SelectEvent.
* The {@link module:ol/interaction/Select~SelectEvent} fired by this won't have a mapBrowserEvent property
*/
clearSelection() {
clear(this.featureLayerAssociation_);
const features = this.getFeatures();
const deselected = features.getArray().slice();
features.clear();
if (deselected.length !== 0) {
this.dispatchEvent(
new SelectEvent(SelectEventType.SELECT, [], deselected, void 0)
);
}
}
/**
* Handles the {@link module:ol/MapBrowserEvent~MapBrowserEvent map browser event} and may change the
* selected state of features.
* @param {import("../MapBrowserEvent.js").default} mapBrowserEvent Map browser event.
* @return {boolean} `false` to stop event propagation.
* @override
*/
handleEvent(mapBrowserEvent) {
if (!this.condition_(mapBrowserEvent)) {
return true;
}
const add = this.addCondition_(mapBrowserEvent);
const remove = this.removeCondition_(mapBrowserEvent);
const toggle = this.toggleCondition_(mapBrowserEvent);
const set = !add && !remove && !toggle;
const map = mapBrowserEvent.map;
const features = this.getFeatures();
const deselected = [];
const selected = [];
if (set) {
let foundAtCursor = false;
map.forEachFeatureAtPixel(
mapBrowserEvent.pixel,
(feature, layer) => {
foundAtCursor = true;
if (!this.selectFeatureInternal_(feature, layer, selected)) {
return;
}
return !this.multi_;
},
{
layerFilter: this.layerFilter_,
hitTolerance: this.hitTolerance_
}
);
for (let i = features.getLength() - 1; i >= 0; --i) {
const feature = features.item(i);
if (
// remove all but selected, if there were any selected
selected.length > 0 && !selected.includes(feature) || // remove all, if click outside of layer
!foundAtCursor
) {
this.removeFeatureInternal_(feature, deselected);
}
}
} else {
map.forEachFeatureAtPixel(
mapBrowserEvent.pixel,
(feature, layer) => {
let modifiedFeature;
if (remove || toggle) {
modifiedFeature = this.removeFeatureInternal_(feature, deselected);
}
if ((add || toggle) && !modifiedFeature) {
modifiedFeature = this.selectFeatureInternal_(
feature,
layer,
selected
);
}
if (!modifiedFeature) {
return;
}
return !this.multi_;
},
{
layerFilter: this.layerFilter_,
hitTolerance: this.hitTolerance_
}
);
}
if (selected.length > 0 || deselected.length > 0) {
this.dispatchEvent(
new SelectEvent(
SelectEventType.SELECT,
selected,
deselected,
mapBrowserEvent
)
);
}
return true;
}
};
function getDefaultStyleFunction() {
const styles = createEditingStyle();
extend(styles["Polygon"], styles["LineString"]);
extend(styles["GeometryCollection"], styles["LineString"]);
return function(feature) {
if (!feature.getGeometry()) {
return null;
}
return styles[feature.getGeometry().getType()];
};
}
var Select_default = Select;
export {
SelectEvent,
Select_default
};
//# sourceMappingURL=chunk-6DXBPPKF.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,68 +0,0 @@
// node_modules/ol/css.js
var CLASS_HIDDEN = "ol-hidden";
var CLASS_SELECTABLE = "ol-selectable";
var CLASS_UNSELECTABLE = "ol-unselectable";
var CLASS_CONTROL = "ol-control";
var CLASS_COLLAPSED = "ol-collapsed";
var fontRegEx = new RegExp(
[
"^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)",
"(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)",
"(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)",
"(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?",
"(?:small|large)|medium|smaller|larger|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))",
"(?:\\s*\\/\\s*(normal|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])?))",
`?\\s*([-,\\"\\'\\sa-z0-9]+?)\\s*$`
].join(""),
"i"
);
var fontRegExMatchIndex = [
"style",
"variant",
"weight",
"size",
"lineHeight",
"family"
];
var fontWeights = {
normal: 400,
bold: 700
};
var getFontParameters = function(fontSpec) {
const match = fontSpec.match(fontRegEx);
if (!match) {
return null;
}
const style = (
/** @type {FontParameters} */
{
lineHeight: "normal",
size: "1.2em",
style: "normal",
weight: "400",
variant: "normal"
}
);
for (let i = 0, ii = fontRegExMatchIndex.length; i < ii; ++i) {
const value = match[i + 1];
if (value !== void 0) {
style[fontRegExMatchIndex[i]] = typeof value === "string" ? value.trim() : value;
}
}
if (isNaN(Number(style.weight)) && style.weight in fontWeights) {
style.weight = fontWeights[style.weight];
}
style.families = style.family.split(/,\s?/).map((f) => f.trim().replace(/^['"]|['"]$/g, ""));
return style;
};
export {
CLASS_HIDDEN,
CLASS_SELECTABLE,
CLASS_UNSELECTABLE,
CLASS_CONTROL,
CLASS_COLLAPSED,
fontWeights,
getFontParameters
};
//# sourceMappingURL=chunk-6EWLK2BW.js.map

View File

@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../../ol/css.js"],
"sourcesContent": ["/**\n * @module ol/css\n */\n\n/**\n * @typedef {Object} FontParameters\n * @property {string} style Style.\n * @property {string} variant Variant.\n * @property {string} weight Weight.\n * @property {string} size Size.\n * @property {string} lineHeight LineHeight.\n * @property {string} family Family.\n * @property {Array<string>} families Families.\n */\n\n/**\n * The CSS class for hidden feature.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_HIDDEN = 'ol-hidden';\n\n/**\n * The CSS class that we'll give the DOM elements to have them selectable.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_SELECTABLE = 'ol-selectable';\n\n/**\n * The CSS class that we'll give the DOM elements to have them unselectable.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_UNSELECTABLE = 'ol-unselectable';\n\n/**\n * The CSS class for unsupported feature.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_UNSUPPORTED = 'ol-unsupported';\n\n/**\n * The CSS class for controls.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_CONTROL = 'ol-control';\n\n/**\n * The CSS class that we'll give the DOM elements that are collapsed, i.e.\n * to those elements which usually can be expanded.\n *\n * @const\n * @type {string}\n */\nexport const CLASS_COLLAPSED = 'ol-collapsed';\n\n/**\n * From https://stackoverflow.com/questions/10135697/regex-to-parse-any-css-font\n * @type {RegExp}\n */\nconst fontRegEx = new RegExp(\n [\n '^\\\\s*(?=(?:(?:[-a-z]+\\\\s*){0,2}(italic|oblique))?)',\n '(?=(?:(?:[-a-z]+\\\\s*){0,2}(small-caps))?)',\n '(?=(?:(?:[-a-z]+\\\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)',\n '(?:(?:normal|\\\\1|\\\\2|\\\\3)\\\\s*){0,3}((?:xx?-)?',\n '(?:small|large)|medium|smaller|larger|[\\\\.\\\\d]+(?:\\\\%|in|[cem]m|ex|p[ctx]))',\n '(?:\\\\s*\\\\/\\\\s*(normal|[\\\\.\\\\d]+(?:\\\\%|in|[cem]m|ex|p[ctx])?))',\n '?\\\\s*([-,\\\\\"\\\\\\'\\\\sa-z0-9]+?)\\\\s*$',\n ].join(''),\n 'i',\n);\n/** @type {Array<'style'|'variant'|'weight'|'size'|'lineHeight'|'family'>} */\nconst fontRegExMatchIndex = [\n 'style',\n 'variant',\n 'weight',\n 'size',\n 'lineHeight',\n 'family',\n];\n\n/** @type {Object<string|number, number>} */\nexport const fontWeights = {\n normal: 400,\n bold: 700,\n};\n\n/**\n * Get the list of font families from a font spec. Note that this doesn't work\n * for font families that have commas in them.\n * @param {string} fontSpec The CSS font property.\n * @return {FontParameters|null} The font parameters (or null if the input spec is invalid).\n */\nexport const getFontParameters = function (fontSpec) {\n const match = fontSpec.match(fontRegEx);\n if (!match) {\n return null;\n }\n const style = /** @type {FontParameters} */ ({\n lineHeight: 'normal',\n size: '1.2em',\n style: 'normal',\n weight: '400',\n variant: 'normal',\n });\n for (let i = 0, ii = fontRegExMatchIndex.length; i < ii; ++i) {\n const value = match[i + 1];\n if (value !== undefined) {\n style[fontRegExMatchIndex[i]] =\n typeof value === 'string' ? value.trim() : value;\n }\n }\n if (isNaN(Number(style.weight)) && style.weight in fontWeights) {\n style.weight = fontWeights[style.weight];\n }\n style.families = style.family\n .split(/,\\s?/)\n .map((f) => f.trim().replace(/^['\"]|['\"]$/g, ''));\n return style;\n};\n"],
"mappings": ";AAqBO,IAAM,eAAe;AAQrB,IAAM,mBAAmB;AAQzB,IAAM,qBAAqB;AAgB3B,IAAM,gBAAgB;AAStB,IAAM,kBAAkB;AAM/B,IAAM,YAAY,IAAI;AAAA,EACpB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,KAAK,EAAE;AAAA,EACT;AACF;AAEA,IAAM,sBAAsB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,IAAM,cAAc;AAAA,EACzB,QAAQ;AAAA,EACR,MAAM;AACR;AAQO,IAAM,oBAAoB,SAAU,UAAU;AACnD,QAAM,QAAQ,SAAS,MAAM,SAAS;AACtC,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AACA,QAAM;AAAA;AAAA,IAAuC;AAAA,MAC3C,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX;AAAA;AACA,WAAS,IAAI,GAAG,KAAK,oBAAoB,QAAQ,IAAI,IAAI,EAAE,GAAG;AAC5D,UAAM,QAAQ,MAAM,IAAI,CAAC;AACzB,QAAI,UAAU,QAAW;AACvB,YAAM,oBAAoB,CAAC,CAAC,IAC1B,OAAO,UAAU,WAAW,MAAM,KAAK,IAAI;AAAA,IAC/C;AAAA,EACF;AACA,MAAI,MAAM,OAAO,MAAM,MAAM,CAAC,KAAK,MAAM,UAAU,aAAa;AAC9D,UAAM,SAAS,YAAY,MAAM,MAAM;AAAA,EACzC;AACA,QAAM,WAAW,MAAM,OACpB,MAAM,MAAM,EACZ,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,gBAAgB,EAAE,CAAC;AAClD,SAAO;AACT;",
"names": []
}

View File

@ -1,130 +0,0 @@
import {
get
} from "./chunk-A3RXLHYB.js";
import {
Object_default
} from "./chunk-Q5ZULJHM.js";
// node_modules/ol/source/Source.js
var Source = class extends Object_default {
/**
* @param {Options} options Source options.
*/
constructor(options) {
super();
this.projection = get(options.projection);
this.attributions_ = adaptAttributions(options.attributions);
this.attributionsCollapsible_ = options.attributionsCollapsible ?? true;
this.loading = false;
this.state_ = options.state !== void 0 ? options.state : "ready";
this.wrapX_ = options.wrapX !== void 0 ? options.wrapX : false;
this.interpolate_ = !!options.interpolate;
this.viewResolver = null;
this.viewRejector = null;
const self = this;
this.viewPromise_ = new Promise(function(resolve, reject) {
self.viewResolver = resolve;
self.viewRejector = reject;
});
}
/**
* Get the attribution function for the source.
* @return {?Attribution} Attribution function.
* @api
*/
getAttributions() {
return this.attributions_;
}
/**
* @return {boolean} Attributions are collapsible.
* @api
*/
getAttributionsCollapsible() {
return this.attributionsCollapsible_;
}
/**
* Get the projection of the source.
* @return {import("../proj/Projection.js").default|null} Projection.
* @api
*/
getProjection() {
return this.projection;
}
/**
* @param {import("../proj/Projection").default} [projection] Projection.
* @return {Array<number>|null} Resolutions.
*/
getResolutions(projection) {
return null;
}
/**
* @return {Promise<import("../View.js").ViewOptions>} A promise for view-related properties.
*/
getView() {
return this.viewPromise_;
}
/**
* Get the state of the source, see {@link import("./Source.js").State} for possible states.
* @return {import("./Source.js").State} State.
* @api
*/
getState() {
return this.state_;
}
/**
* @return {boolean|undefined} Wrap X.
*/
getWrapX() {
return this.wrapX_;
}
/**
* @return {boolean} Use linear interpolation when resampling.
*/
getInterpolate() {
return this.interpolate_;
}
/**
* Refreshes the source. The source will be cleared, and data from the server will be reloaded.
* @api
*/
refresh() {
this.changed();
}
/**
* Set the attributions of the source.
* @param {AttributionLike|undefined} attributions Attributions.
* Can be passed as `string`, `Array<string>`, {@link module:ol/source/Source~Attribution},
* or `undefined`.
* @api
*/
setAttributions(attributions) {
this.attributions_ = adaptAttributions(attributions);
this.changed();
}
/**
* Set the state of the source.
* @param {import("./Source.js").State} state State.
*/
setState(state) {
this.state_ = state;
this.changed();
}
};
function adaptAttributions(attributionLike) {
if (!attributionLike) {
return null;
}
if (typeof attributionLike === "function") {
return attributionLike;
}
if (!Array.isArray(attributionLike)) {
attributionLike = [attributionLike];
}
return (frameState) => attributionLike;
}
var Source_default = Source;
export {
Source_default
};
//# sourceMappingURL=chunk-6Y7C6NBJ.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,329 +0,0 @@
import {
assert
} from "./chunk-QFCIXVZ3.js";
import {
clamp
} from "./chunk-54BTDBAD.js";
import {
Object_default,
abstract
} from "./chunk-Q5ZULJHM.js";
// node_modules/ol/layer/Property.js
var Property_default = {
OPACITY: "opacity",
VISIBLE: "visible",
EXTENT: "extent",
Z_INDEX: "zIndex",
MAX_RESOLUTION: "maxResolution",
MIN_RESOLUTION: "minResolution",
MAX_ZOOM: "maxZoom",
MIN_ZOOM: "minZoom",
SOURCE: "source",
MAP: "map"
};
// node_modules/ol/layer/Base.js
var BaseLayer = class extends Object_default {
/**
* @param {Options} options Layer options.
*/
constructor(options) {
super();
this.on;
this.once;
this.un;
this.background_ = options.background;
const properties = Object.assign({}, options);
if (typeof options.properties === "object") {
delete properties.properties;
Object.assign(properties, options.properties);
}
properties[Property_default.OPACITY] = options.opacity !== void 0 ? options.opacity : 1;
assert(
typeof properties[Property_default.OPACITY] === "number",
"Layer opacity must be a number"
);
properties[Property_default.VISIBLE] = options.visible !== void 0 ? options.visible : true;
properties[Property_default.Z_INDEX] = options.zIndex;
properties[Property_default.MAX_RESOLUTION] = options.maxResolution !== void 0 ? options.maxResolution : Infinity;
properties[Property_default.MIN_RESOLUTION] = options.minResolution !== void 0 ? options.minResolution : 0;
properties[Property_default.MIN_ZOOM] = options.minZoom !== void 0 ? options.minZoom : -Infinity;
properties[Property_default.MAX_ZOOM] = options.maxZoom !== void 0 ? options.maxZoom : Infinity;
this.className_ = properties.className !== void 0 ? properties.className : "ol-layer";
delete properties.className;
this.setProperties(properties);
this.state_ = null;
}
/**
* Get the background for this layer.
* @return {BackgroundColor|false} Layer background.
*/
getBackground() {
return this.background_;
}
/**
* @return {string} CSS class name.
*/
getClassName() {
return this.className_;
}
/**
* This method is not meant to be called by layers or layer renderers because the state
* is incorrect if the layer is included in a layer group.
*
* @param {boolean} [managed] Layer is managed.
* @return {import("./Layer.js").State} Layer state.
*/
getLayerState(managed) {
const state = this.state_ || /** @type {?} */
{
layer: this,
managed: managed === void 0 ? true : managed
};
const zIndex = this.getZIndex();
state.opacity = clamp(Math.round(this.getOpacity() * 100) / 100, 0, 1);
state.visible = this.getVisible();
state.extent = this.getExtent();
state.zIndex = zIndex === void 0 && !state.managed ? Infinity : zIndex;
state.maxResolution = this.getMaxResolution();
state.minResolution = Math.max(this.getMinResolution(), 0);
state.minZoom = this.getMinZoom();
state.maxZoom = this.getMaxZoom();
this.state_ = state;
return state;
}
/**
* @abstract
* @param {Array<import("./Layer.js").default>} [array] Array of layers (to be
* modified in place).
* @return {Array<import("./Layer.js").default>} Array of layers.
*/
getLayersArray(array) {
return abstract();
}
/**
* @abstract
* @param {Array<import("./Layer.js").State>} [states] Optional list of layer
* states (to be modified in place).
* @return {Array<import("./Layer.js").State>} List of layer states.
*/
getLayerStatesArray(states) {
return abstract();
}
/**
* Return the {@link module:ol/extent~Extent extent} of the layer or `undefined` if it
* will be visible regardless of extent.
* @return {import("../extent.js").Extent|undefined} The layer extent.
* @observable
* @api
*/
getExtent() {
return (
/** @type {import("../extent.js").Extent|undefined} */
this.get(Property_default.EXTENT)
);
}
/**
* Return the maximum resolution of the layer. Returns Infinity if
* the layer has no maximum resolution set.
* @return {number} The maximum resolution of the layer.
* @observable
* @api
*/
getMaxResolution() {
return (
/** @type {number} */
this.get(Property_default.MAX_RESOLUTION)
);
}
/**
* Return the minimum resolution of the layer. Returns 0 if
* the layer has no minimum resolution set.
* @return {number} The minimum resolution of the layer.
* @observable
* @api
*/
getMinResolution() {
return (
/** @type {number} */
this.get(Property_default.MIN_RESOLUTION)
);
}
/**
* Return the minimum zoom level of the layer. Returns -Infinity if
* the layer has no minimum zoom set.
* @return {number} The minimum zoom level of the layer.
* @observable
* @api
*/
getMinZoom() {
return (
/** @type {number} */
this.get(Property_default.MIN_ZOOM)
);
}
/**
* Return the maximum zoom level of the layer. Returns Infinity if
* the layer has no maximum zoom set.
* @return {number} The maximum zoom level of the layer.
* @observable
* @api
*/
getMaxZoom() {
return (
/** @type {number} */
this.get(Property_default.MAX_ZOOM)
);
}
/**
* Return the opacity of the layer (between 0 and 1).
* @return {number} The opacity of the layer.
* @observable
* @api
*/
getOpacity() {
return (
/** @type {number} */
this.get(Property_default.OPACITY)
);
}
/**
* @abstract
* @return {import("../source/Source.js").State} Source state.
*/
getSourceState() {
return abstract();
}
/**
* Return the value of this layer's `visible` property. To find out whether the layer
* is visible on a map, use `isVisible()` instead.
* @return {boolean} The value of the `visible` property of the layer.
* @observable
* @api
*/
getVisible() {
return (
/** @type {boolean} */
this.get(Property_default.VISIBLE)
);
}
/**
* Return the Z-index of the layer, which is used to order layers before
* rendering. Returns undefined if the layer is unmanaged.
* @return {number|undefined} The Z-index of the layer.
* @observable
* @api
*/
getZIndex() {
return (
/** @type {number|undefined} */
this.get(Property_default.Z_INDEX)
);
}
/**
* Sets the background color.
* @param {BackgroundColor} [background] Background color.
*/
setBackground(background) {
this.background_ = background;
this.changed();
}
/**
* Set the extent at which the layer is visible. If `undefined`, the layer
* will be visible at all extents.
* @param {import("../extent.js").Extent|undefined} extent The extent of the layer.
* @observable
* @api
*/
setExtent(extent) {
this.set(Property_default.EXTENT, extent);
}
/**
* Set the maximum resolution at which the layer is visible.
* @param {number} maxResolution The maximum resolution of the layer.
* @observable
* @api
*/
setMaxResolution(maxResolution) {
this.set(Property_default.MAX_RESOLUTION, maxResolution);
}
/**
* Set the minimum resolution at which the layer is visible.
* @param {number} minResolution The minimum resolution of the layer.
* @observable
* @api
*/
setMinResolution(minResolution) {
this.set(Property_default.MIN_RESOLUTION, minResolution);
}
/**
* Set the maximum zoom (exclusive) at which the layer is visible.
* Note that the zoom levels for layer visibility are based on the
* view zoom level, which may be different from a tile source zoom level.
* @param {number} maxZoom The maximum zoom of the layer.
* @observable
* @api
*/
setMaxZoom(maxZoom) {
this.set(Property_default.MAX_ZOOM, maxZoom);
}
/**
* Set the minimum zoom (inclusive) at which the layer is visible.
* Note that the zoom levels for layer visibility are based on the
* view zoom level, which may be different from a tile source zoom level.
* @param {number} minZoom The minimum zoom of the layer.
* @observable
* @api
*/
setMinZoom(minZoom) {
this.set(Property_default.MIN_ZOOM, minZoom);
}
/**
* Set the opacity of the layer, allowed values range from 0 to 1.
* @param {number} opacity The opacity of the layer.
* @observable
* @api
*/
setOpacity(opacity) {
assert(typeof opacity === "number", "Layer opacity must be a number");
this.set(Property_default.OPACITY, opacity);
}
/**
* Set the visibility of the layer (`true` or `false`).
* @param {boolean} visible The visibility of the layer.
* @observable
* @api
*/
setVisible(visible) {
this.set(Property_default.VISIBLE, visible);
}
/**
* Set Z-index of the layer, which is used to order layers before rendering.
* The default Z-index is 0.
* @param {number} zindex The z-index of the layer.
* @observable
* @api
*/
setZIndex(zindex) {
this.set(Property_default.Z_INDEX, zindex);
}
/**
* Clean up.
* @override
*/
disposeInternal() {
if (this.state_) {
this.state_.layer = null;
this.state_ = null;
}
super.disposeInternal();
}
};
var Base_default = BaseLayer;
export {
Property_default,
Base_default
};
//# sourceMappingURL=chunk-AYBYZSAV.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,38 +0,0 @@
// node_modules/ol/MapEventType.js
var MapEventType_default = {
/**
* Triggered after a map frame is rendered.
* @event module:ol/MapEvent~MapEvent#postrender
* @api
*/
POSTRENDER: "postrender",
/**
* Triggered when the map starts moving.
* @event module:ol/MapEvent~MapEvent#movestart
* @api
*/
MOVESTART: "movestart",
/**
* Triggered after the map is moved.
* @event module:ol/MapEvent~MapEvent#moveend
* @api
*/
MOVEEND: "moveend",
/**
* Triggered when loading of additional map data (tiles, images, features) starts.
* @event module:ol/MapEvent~MapEvent#loadstart
* @api
*/
LOADSTART: "loadstart",
/**
* Triggered when loading of additional map data has completed.
* @event module:ol/MapEvent~MapEvent#loadend
* @api
*/
LOADEND: "loadend"
};
export {
MapEventType_default
};
//# sourceMappingURL=chunk-BHVDQB66.js.map

View File

@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../../ol/MapEventType.js"],
"sourcesContent": ["/**\n * @module ol/MapEventType\n */\n\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered after a map frame is rendered.\n * @event module:ol/MapEvent~MapEvent#postrender\n * @api\n */\n POSTRENDER: 'postrender',\n\n /**\n * Triggered when the map starts moving.\n * @event module:ol/MapEvent~MapEvent#movestart\n * @api\n */\n MOVESTART: 'movestart',\n\n /**\n * Triggered after the map is moved.\n * @event module:ol/MapEvent~MapEvent#moveend\n * @api\n */\n MOVEEND: 'moveend',\n\n /**\n * Triggered when loading of additional map data (tiles, images, features) starts.\n * @event module:ol/MapEvent~MapEvent#loadstart\n * @api\n */\n LOADSTART: 'loadstart',\n\n /**\n * Triggered when loading of additional map data has completed.\n * @event module:ol/MapEvent~MapEvent#loadend\n * @api\n */\n LOADEND: 'loadend',\n};\n\n/***\n * @typedef {'postrender'|'movestart'|'moveend'|'loadstart'|'loadend'} Types\n */\n"],
"mappings": ";AAOA,IAAO,uBAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMb,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOZ,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOX,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOX,SAAS;AACX;",
"names": []
}

View File

@ -1,114 +0,0 @@
// node_modules/geotiff/dist-module/predictor.js
function decodeRowAcc(row, stride) {
let length = row.length - stride;
let offset = 0;
do {
for (let i = stride; i > 0; i--) {
row[offset + stride] += row[offset];
offset++;
}
length -= stride;
} while (length > 0);
}
function decodeRowFloatingPoint(row, stride, bytesPerSample) {
let index = 0;
let count = row.length;
const wc = count / bytesPerSample;
while (count > stride) {
for (let i = stride; i > 0; --i) {
row[index + stride] += row[index];
++index;
}
count -= stride;
}
const copy = row.slice();
for (let i = 0; i < wc; ++i) {
for (let b = 0; b < bytesPerSample; ++b) {
row[bytesPerSample * i + b] = copy[(bytesPerSample - b - 1) * wc + i];
}
}
}
function applyPredictor(block, predictor, width, height, bitsPerSample, planarConfiguration) {
if (!predictor || predictor === 1) {
return block;
}
for (let i = 0; i < bitsPerSample.length; ++i) {
if (bitsPerSample[i] % 8 !== 0) {
throw new Error("When decoding with predictor, only multiple of 8 bits are supported.");
}
if (bitsPerSample[i] !== bitsPerSample[0]) {
throw new Error("When decoding with predictor, all samples must have the same size.");
}
}
const bytesPerSample = bitsPerSample[0] / 8;
const stride = planarConfiguration === 2 ? 1 : bitsPerSample.length;
for (let i = 0; i < height; ++i) {
if (i * stride * width * bytesPerSample >= block.byteLength) {
break;
}
let row;
if (predictor === 2) {
switch (bitsPerSample[0]) {
case 8:
row = new Uint8Array(
block,
i * stride * width * bytesPerSample,
stride * width * bytesPerSample
);
break;
case 16:
row = new Uint16Array(
block,
i * stride * width * bytesPerSample,
stride * width * bytesPerSample / 2
);
break;
case 32:
row = new Uint32Array(
block,
i * stride * width * bytesPerSample,
stride * width * bytesPerSample / 4
);
break;
default:
throw new Error(`Predictor 2 not allowed with ${bitsPerSample[0]} bits per sample.`);
}
decodeRowAcc(row, stride, bytesPerSample);
} else if (predictor === 3) {
row = new Uint8Array(
block,
i * stride * width * bytesPerSample,
stride * width * bytesPerSample
);
decodeRowFloatingPoint(row, stride, bytesPerSample);
}
}
return block;
}
// node_modules/geotiff/dist-module/compression/basedecoder.js
var BaseDecoder = class {
async decode(fileDirectory, buffer) {
const decoded = await this.decodeBlock(buffer);
const predictor = fileDirectory.Predictor || 1;
if (predictor !== 1) {
const isTiled = !fileDirectory.StripOffsets;
const tileWidth = isTiled ? fileDirectory.TileWidth : fileDirectory.ImageWidth;
const tileHeight = isTiled ? fileDirectory.TileLength : fileDirectory.RowsPerStrip || fileDirectory.ImageLength;
return applyPredictor(
decoded,
predictor,
tileWidth,
tileHeight,
fileDirectory.BitsPerSample,
fileDirectory.PlanarConfiguration
);
}
return decoded;
}
};
export {
BaseDecoder
};
//# sourceMappingURL=chunk-C5KGH6RQ.js.map

View File

@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../../geotiff/dist-module/predictor.js", "../../geotiff/dist-module/compression/basedecoder.js"],
"sourcesContent": ["function decodeRowAcc(row, stride) {\n let length = row.length - stride;\n let offset = 0;\n do {\n for (let i = stride; i > 0; i--) {\n row[offset + stride] += row[offset];\n offset++;\n }\n\n length -= stride;\n } while (length > 0);\n}\n\nfunction decodeRowFloatingPoint(row, stride, bytesPerSample) {\n let index = 0;\n let count = row.length;\n const wc = count / bytesPerSample;\n\n while (count > stride) {\n for (let i = stride; i > 0; --i) {\n row[index + stride] += row[index];\n ++index;\n }\n count -= stride;\n }\n\n const copy = row.slice();\n for (let i = 0; i < wc; ++i) {\n for (let b = 0; b < bytesPerSample; ++b) {\n row[(bytesPerSample * i) + b] = copy[((bytesPerSample - b - 1) * wc) + i];\n }\n }\n}\n\nexport function applyPredictor(block, predictor, width, height, bitsPerSample,\n planarConfiguration) {\n if (!predictor || predictor === 1) {\n return block;\n }\n\n for (let i = 0; i < bitsPerSample.length; ++i) {\n if (bitsPerSample[i] % 8 !== 0) {\n throw new Error('When decoding with predictor, only multiple of 8 bits are supported.');\n }\n if (bitsPerSample[i] !== bitsPerSample[0]) {\n throw new Error('When decoding with predictor, all samples must have the same size.');\n }\n }\n\n const bytesPerSample = bitsPerSample[0] / 8;\n const stride = planarConfiguration === 2 ? 1 : bitsPerSample.length;\n\n for (let i = 0; i < height; ++i) {\n // Last strip will be truncated if height % stripHeight != 0\n if (i * stride * width * bytesPerSample >= block.byteLength) {\n break;\n }\n let row;\n if (predictor === 2) { // horizontal prediction\n switch (bitsPerSample[0]) {\n case 8:\n row = new Uint8Array(\n block, i * stride * width * bytesPerSample, stride * width * bytesPerSample,\n );\n break;\n case 16:\n row = new Uint16Array(\n block, i * stride * width * bytesPerSample, stride * width * bytesPerSample / 2,\n );\n break;\n case 32:\n row = new Uint32Array(\n block, i * stride * width * bytesPerSample, stride * width * bytesPerSample / 4,\n );\n break;\n default:\n throw new Error(`Predictor 2 not allowed with ${bitsPerSample[0]} bits per sample.`);\n }\n decodeRowAcc(row, stride, bytesPerSample);\n } else if (predictor === 3) { // horizontal floating point\n row = new Uint8Array(\n block, i * stride * width * bytesPerSample, stride * width * bytesPerSample,\n );\n decodeRowFloatingPoint(row, stride, bytesPerSample);\n }\n }\n return block;\n}\n", "import { applyPredictor } from '../predictor.js';\n\nexport default class BaseDecoder {\n async decode(fileDirectory, buffer) {\n const decoded = await this.decodeBlock(buffer);\n const predictor = fileDirectory.Predictor || 1;\n if (predictor !== 1) {\n const isTiled = !fileDirectory.StripOffsets;\n const tileWidth = isTiled ? fileDirectory.TileWidth : fileDirectory.ImageWidth;\n const tileHeight = isTiled ? fileDirectory.TileLength : (\n fileDirectory.RowsPerStrip || fileDirectory.ImageLength\n );\n return applyPredictor(\n decoded, predictor, tileWidth, tileHeight, fileDirectory.BitsPerSample,\n fileDirectory.PlanarConfiguration,\n );\n }\n return decoded;\n }\n}\n"],
"mappings": ";AAAA,SAAS,aAAa,KAAK,QAAQ;AACjC,MAAI,SAAS,IAAI,SAAS;AAC1B,MAAI,SAAS;AACb,KAAG;AACD,aAAS,IAAI,QAAQ,IAAI,GAAG,KAAK;AAC/B,UAAI,SAAS,MAAM,KAAK,IAAI,MAAM;AAClC;AAAA,IACF;AAEA,cAAU;AAAA,EACZ,SAAS,SAAS;AACpB;AAEA,SAAS,uBAAuB,KAAK,QAAQ,gBAAgB;AAC3D,MAAI,QAAQ;AACZ,MAAI,QAAQ,IAAI;AAChB,QAAM,KAAK,QAAQ;AAEnB,SAAO,QAAQ,QAAQ;AACrB,aAAS,IAAI,QAAQ,IAAI,GAAG,EAAE,GAAG;AAC/B,UAAI,QAAQ,MAAM,KAAK,IAAI,KAAK;AAChC,QAAE;AAAA,IACJ;AACA,aAAS;AAAA,EACX;AAEA,QAAM,OAAO,IAAI,MAAM;AACvB,WAAS,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG;AAC3B,aAAS,IAAI,GAAG,IAAI,gBAAgB,EAAE,GAAG;AACvC,UAAK,iBAAiB,IAAK,CAAC,IAAI,MAAO,iBAAiB,IAAI,KAAK,KAAM,CAAC;AAAA,IAC1E;AAAA,EACF;AACF;AAEO,SAAS,eAAe,OAAO,WAAW,OAAO,QAAQ,eAC9D,qBAAqB;AACrB,MAAI,CAAC,aAAa,cAAc,GAAG;AACjC,WAAO;AAAA,EACT;AAEA,WAAS,IAAI,GAAG,IAAI,cAAc,QAAQ,EAAE,GAAG;AAC7C,QAAI,cAAc,CAAC,IAAI,MAAM,GAAG;AAC9B,YAAM,IAAI,MAAM,sEAAsE;AAAA,IACxF;AACA,QAAI,cAAc,CAAC,MAAM,cAAc,CAAC,GAAG;AACzC,YAAM,IAAI,MAAM,oEAAoE;AAAA,IACtF;AAAA,EACF;AAEA,QAAM,iBAAiB,cAAc,CAAC,IAAI;AAC1C,QAAM,SAAS,wBAAwB,IAAI,IAAI,cAAc;AAE7D,WAAS,IAAI,GAAG,IAAI,QAAQ,EAAE,GAAG;AAE/B,QAAI,IAAI,SAAS,QAAQ,kBAAkB,MAAM,YAAY;AAC3D;AAAA,IACF;AACA,QAAI;AACJ,QAAI,cAAc,GAAG;AACnB,cAAQ,cAAc,CAAC,GAAG;AAAA,QACxB,KAAK;AACH,gBAAM,IAAI;AAAA,YACR;AAAA,YAAO,IAAI,SAAS,QAAQ;AAAA,YAAgB,SAAS,QAAQ;AAAA,UAC/D;AACA;AAAA,QACF,KAAK;AACH,gBAAM,IAAI;AAAA,YACR;AAAA,YAAO,IAAI,SAAS,QAAQ;AAAA,YAAgB,SAAS,QAAQ,iBAAiB;AAAA,UAChF;AACA;AAAA,QACF,KAAK;AACH,gBAAM,IAAI;AAAA,YACR;AAAA,YAAO,IAAI,SAAS,QAAQ;AAAA,YAAgB,SAAS,QAAQ,iBAAiB;AAAA,UAChF;AACA;AAAA,QACF;AACE,gBAAM,IAAI,MAAM,gCAAgC,cAAc,CAAC,CAAC,mBAAmB;AAAA,MACvF;AACA,mBAAa,KAAK,QAAQ,cAAc;AAAA,IAC1C,WAAW,cAAc,GAAG;AAC1B,YAAM,IAAI;AAAA,QACR;AAAA,QAAO,IAAI,SAAS,QAAQ;AAAA,QAAgB,SAAS,QAAQ;AAAA,MAC/D;AACA,6BAAuB,KAAK,QAAQ,cAAc;AAAA,IACpD;AAAA,EACF;AACA,SAAO;AACT;;;ACrFA,IAAqB,cAArB,MAAiC;AAAA,EAC/B,MAAM,OAAO,eAAe,QAAQ;AAClC,UAAM,UAAU,MAAM,KAAK,YAAY,MAAM;AAC7C,UAAM,YAAY,cAAc,aAAa;AAC7C,QAAI,cAAc,GAAG;AACnB,YAAM,UAAU,CAAC,cAAc;AAC/B,YAAM,YAAY,UAAU,cAAc,YAAY,cAAc;AACpE,YAAM,aAAa,UAAU,cAAc,aACzC,cAAc,gBAAgB,cAAc;AAE9C,aAAO;AAAA,QACL;AAAA,QAAS;AAAA,QAAW;AAAA,QAAW;AAAA,QAAY,cAAc;AAAA,QACzD,cAAc;AAAA,MAChB;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;",
"names": []
}

View File

@ -1,397 +0,0 @@
import {
MapEventType_default
} from "./chunk-BHVDQB66.js";
import {
CLASS_SELECTABLE
} from "./chunk-6EWLK2BW.js";
import {
outerHeight,
outerWidth,
removeChildren
} from "./chunk-UPTVWZ45.js";
import {
Object_default
} from "./chunk-Q5ZULJHM.js";
import {
listen,
unlistenByKey
} from "./chunk-NGFXCWUF.js";
import {
containsExtent
} from "./chunk-SRXHWJOY.js";
// node_modules/ol/Overlay.js
var Property = {
ELEMENT: "element",
MAP: "map",
OFFSET: "offset",
POSITION: "position",
POSITIONING: "positioning"
};
var Overlay = class extends Object_default {
/**
* @param {Options} options Overlay options.
*/
constructor(options) {
super();
this.on;
this.once;
this.un;
this.options = options;
this.id = options.id;
this.insertFirst = options.insertFirst !== void 0 ? options.insertFirst : true;
this.stopEvent = options.stopEvent !== void 0 ? options.stopEvent : true;
this.element = document.createElement("div");
this.element.className = options.className !== void 0 ? options.className : "ol-overlay-container " + CLASS_SELECTABLE;
this.element.style.position = "absolute";
this.element.style.pointerEvents = "auto";
this.autoPan = options.autoPan === true ? {} : options.autoPan || void 0;
this.rendered = {
transform_: "",
visible: true
};
this.mapPostrenderListenerKey = null;
this.addChangeListener(Property.ELEMENT, this.handleElementChanged);
this.addChangeListener(Property.MAP, this.handleMapChanged);
this.addChangeListener(Property.OFFSET, this.handleOffsetChanged);
this.addChangeListener(Property.POSITION, this.handlePositionChanged);
this.addChangeListener(Property.POSITIONING, this.handlePositioningChanged);
if (options.element !== void 0) {
this.setElement(options.element);
}
this.setOffset(options.offset !== void 0 ? options.offset : [0, 0]);
this.setPositioning(options.positioning || "top-left");
if (options.position !== void 0) {
this.setPosition(options.position);
}
}
/**
* Get the DOM element of this overlay.
* @return {HTMLElement|undefined} The Element containing the overlay.
* @observable
* @api
*/
getElement() {
return (
/** @type {HTMLElement|undefined} */
this.get(Property.ELEMENT)
);
}
/**
* Get the overlay identifier which is set on constructor.
* @return {number|string|undefined} Id.
* @api
*/
getId() {
return this.id;
}
/**
* Get the map associated with this overlay.
* @return {import("./Map.js").default|null} The map that the
* overlay is part of.
* @observable
* @api
*/
getMap() {
return (
/** @type {import("./Map.js").default|null} */
this.get(Property.MAP) || null
);
}
/**
* Get the offset of this overlay.
* @return {Array<number>} The offset.
* @observable
* @api
*/
getOffset() {
return (
/** @type {Array<number>} */
this.get(Property.OFFSET)
);
}
/**
* Get the current position of this overlay.
* @return {import("./coordinate.js").Coordinate|undefined} The spatial point that the overlay is
* anchored at.
* @observable
* @api
*/
getPosition() {
return (
/** @type {import("./coordinate.js").Coordinate|undefined} */
this.get(Property.POSITION)
);
}
/**
* Get the current positioning of this overlay.
* @return {Positioning} How the overlay is positioned
* relative to its point on the map.
* @observable
* @api
*/
getPositioning() {
return (
/** @type {Positioning} */
this.get(Property.POSITIONING)
);
}
/**
* @protected
*/
handleElementChanged() {
removeChildren(this.element);
const element = this.getElement();
if (element) {
this.element.appendChild(element);
}
}
/**
* @protected
*/
handleMapChanged() {
var _a;
if (this.mapPostrenderListenerKey) {
(_a = this.element) == null ? void 0 : _a.remove();
unlistenByKey(this.mapPostrenderListenerKey);
this.mapPostrenderListenerKey = null;
}
const map = this.getMap();
if (map) {
this.mapPostrenderListenerKey = listen(
map,
MapEventType_default.POSTRENDER,
this.render,
this
);
this.updatePixelPosition();
const container = this.stopEvent ? map.getOverlayContainerStopEvent() : map.getOverlayContainer();
if (this.insertFirst) {
container.insertBefore(this.element, container.childNodes[0] || null);
} else {
container.appendChild(this.element);
}
this.performAutoPan();
}
}
/**
* @protected
*/
render() {
this.updatePixelPosition();
}
/**
* @protected
*/
handleOffsetChanged() {
this.updatePixelPosition();
}
/**
* @protected
*/
handlePositionChanged() {
this.updatePixelPosition();
this.performAutoPan();
}
/**
* @protected
*/
handlePositioningChanged() {
this.updatePixelPosition();
}
/**
* Set the DOM element to be associated with this overlay.
* @param {HTMLElement|undefined} element The Element containing the overlay.
* @observable
* @api
*/
setElement(element) {
this.set(Property.ELEMENT, element);
}
/**
* Set the map to be associated with this overlay.
* @param {import("./Map.js").default|null} map The map that the
* overlay is part of. Pass `null` to just remove the overlay from the current map.
* @observable
* @api
*/
setMap(map) {
this.set(Property.MAP, map);
}
/**
* Set the offset for this overlay.
* @param {Array<number>} offset Offset.
* @observable
* @api
*/
setOffset(offset) {
this.set(Property.OFFSET, offset);
}
/**
* Set the position for this overlay. If the position is `undefined` the
* overlay is hidden.
* @param {import("./coordinate.js").Coordinate|undefined} position The spatial point that the overlay
* is anchored at.
* @observable
* @api
*/
setPosition(position) {
this.set(Property.POSITION, position);
}
/**
* Pan the map so that the overlay is entirely visible in the current viewport
* (if necessary) using the configured autoPan parameters
* @protected
*/
performAutoPan() {
if (this.autoPan) {
this.panIntoView(this.autoPan);
}
}
/**
* Pan the map so that the overlay is entirely visible in the current viewport
* (if necessary).
* @param {PanIntoViewOptions} [panIntoViewOptions] Options for the pan action
* @api
*/
panIntoView(panIntoViewOptions) {
const map = this.getMap();
if (!map || !map.getTargetElement() || !this.get(Property.POSITION)) {
return;
}
const mapRect = this.getRect(map.getTargetElement(), map.getSize());
const element = this.getElement();
const overlayRect = this.getRect(element, [
outerWidth(element),
outerHeight(element)
]);
panIntoViewOptions = panIntoViewOptions || {};
const myMargin = panIntoViewOptions.margin === void 0 ? 20 : panIntoViewOptions.margin;
if (!containsExtent(mapRect, overlayRect)) {
const offsetLeft = overlayRect[0] - mapRect[0];
const offsetRight = mapRect[2] - overlayRect[2];
const offsetTop = overlayRect[1] - mapRect[1];
const offsetBottom = mapRect[3] - overlayRect[3];
const delta = [0, 0];
if (offsetLeft < 0) {
delta[0] = offsetLeft - myMargin;
} else if (offsetRight < 0) {
delta[0] = Math.abs(offsetRight) + myMargin;
}
if (offsetTop < 0) {
delta[1] = offsetTop - myMargin;
} else if (offsetBottom < 0) {
delta[1] = Math.abs(offsetBottom) + myMargin;
}
if (delta[0] !== 0 || delta[1] !== 0) {
const center = (
/** @type {import("./coordinate.js").Coordinate} */
map.getView().getCenterInternal()
);
const centerPx = map.getPixelFromCoordinateInternal(center);
if (!centerPx) {
return;
}
const newCenterPx = [centerPx[0] + delta[0], centerPx[1] + delta[1]];
const panOptions = panIntoViewOptions.animation || {};
map.getView().animateInternal({
center: map.getCoordinateFromPixelInternal(newCenterPx),
duration: panOptions.duration,
easing: panOptions.easing
});
}
}
}
/**
* Get the extent of an element relative to the document
* @param {HTMLElement} element The element.
* @param {import("./size.js").Size} size The size of the element.
* @return {import("./extent.js").Extent} The extent.
* @protected
*/
getRect(element, size) {
const box = element.getBoundingClientRect();
const offsetX = box.left + window.pageXOffset;
const offsetY = box.top + window.pageYOffset;
return [offsetX, offsetY, offsetX + size[0], offsetY + size[1]];
}
/**
* Set the positioning for this overlay.
* @param {Positioning} positioning how the overlay is
* positioned relative to its point on the map.
* @observable
* @api
*/
setPositioning(positioning) {
this.set(Property.POSITIONING, positioning);
}
/**
* Modify the visibility of the element.
* @param {boolean} visible Element visibility.
* @protected
*/
setVisible(visible) {
if (this.rendered.visible !== visible) {
this.element.style.display = visible ? "" : "none";
this.rendered.visible = visible;
}
}
/**
* Update pixel position.
* @protected
*/
updatePixelPosition() {
const map = this.getMap();
const position = this.getPosition();
if (!map || !map.isRendered() || !position) {
this.setVisible(false);
return;
}
const pixel = map.getPixelFromCoordinate(position);
const mapSize = map.getSize();
this.updateRenderedPosition(pixel, mapSize);
}
/**
* @param {import("./pixel.js").Pixel} pixel The pixel location.
* @param {import("./size.js").Size|undefined} mapSize The map size.
* @protected
*/
updateRenderedPosition(pixel, mapSize) {
const style = this.element.style;
const offset = this.getOffset();
const positioning = this.getPositioning();
this.setVisible(true);
const x = `${pixel[0] + offset[0]}px`;
const y = `${pixel[1] + offset[1]}px`;
let posX = "0%";
let posY = "0%";
if (positioning == "bottom-right" || positioning == "center-right" || positioning == "top-right") {
posX = "-100%";
} else if (positioning == "bottom-center" || positioning == "center-center" || positioning == "top-center") {
posX = "-50%";
}
if (positioning == "bottom-left" || positioning == "bottom-center" || positioning == "bottom-right") {
posY = "-100%";
} else if (positioning == "center-left" || positioning == "center-center" || positioning == "center-right") {
posY = "-50%";
}
const transform = `translate(${posX}, ${posY}) translate(${x}, ${y})`;
if (this.rendered.transform_ != transform) {
this.rendered.transform_ = transform;
style.transform = transform;
}
}
/**
* returns the options this Overlay has been created with
* @return {Options} overlay options
*/
getOptions() {
return this.options;
}
};
var Overlay_default = Overlay;
export {
Overlay_default
};
//# sourceMappingURL=chunk-C6SRSVJF.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,308 +0,0 @@
import {
TileState_default
} from "./chunk-5D2XPBR2.js";
import {
assert
} from "./chunk-QFCIXVZ3.js";
import {
EventType_default
} from "./chunk-K25ZO44T.js";
import {
clear
} from "./chunk-5RHQVMYD.js";
// node_modules/ol/structs/PriorityQueue.js
var DROP = Infinity;
var PriorityQueue = class {
/**
* @param {function(T): number} priorityFunction Priority function.
* @param {function(T): string} keyFunction Key function.
*/
constructor(priorityFunction, keyFunction) {
this.priorityFunction_ = priorityFunction;
this.keyFunction_ = keyFunction;
this.elements_ = [];
this.priorities_ = [];
this.queuedElements_ = {};
}
/**
* FIXME empty description for jsdoc
*/
clear() {
this.elements_.length = 0;
this.priorities_.length = 0;
clear(this.queuedElements_);
}
/**
* Remove and return the highest-priority element. O(log N).
* @return {T} Element.
*/
dequeue() {
const elements = this.elements_;
const priorities = this.priorities_;
const element = elements[0];
if (elements.length == 1) {
elements.length = 0;
priorities.length = 0;
} else {
elements[0] = /** @type {T} */
elements.pop();
priorities[0] = /** @type {number} */
priorities.pop();
this.siftUp_(0);
}
const elementKey = this.keyFunction_(element);
delete this.queuedElements_[elementKey];
return element;
}
/**
* Enqueue an element. O(log N).
* @param {T} element Element.
* @return {boolean} The element was added to the queue.
*/
enqueue(element) {
assert(
!(this.keyFunction_(element) in this.queuedElements_),
"Tried to enqueue an `element` that was already added to the queue"
);
const priority = this.priorityFunction_(element);
if (priority != DROP) {
this.elements_.push(element);
this.priorities_.push(priority);
this.queuedElements_[this.keyFunction_(element)] = true;
this.siftDown_(0, this.elements_.length - 1);
return true;
}
return false;
}
/**
* @return {number} Count.
*/
getCount() {
return this.elements_.length;
}
/**
* Gets the index of the left child of the node at the given index.
* @param {number} index The index of the node to get the left child for.
* @return {number} The index of the left child.
* @private
*/
getLeftChildIndex_(index) {
return index * 2 + 1;
}
/**
* Gets the index of the right child of the node at the given index.
* @param {number} index The index of the node to get the right child for.
* @return {number} The index of the right child.
* @private
*/
getRightChildIndex_(index) {
return index * 2 + 2;
}
/**
* Gets the index of the parent of the node at the given index.
* @param {number} index The index of the node to get the parent for.
* @return {number} The index of the parent.
* @private
*/
getParentIndex_(index) {
return index - 1 >> 1;
}
/**
* Make this a heap. O(N).
* @private
*/
heapify_() {
let i;
for (i = (this.elements_.length >> 1) - 1; i >= 0; i--) {
this.siftUp_(i);
}
}
/**
* @return {boolean} Is empty.
*/
isEmpty() {
return this.elements_.length === 0;
}
/**
* @param {string} key Key.
* @return {boolean} Is key queued.
*/
isKeyQueued(key) {
return key in this.queuedElements_;
}
/**
* @param {T} element Element.
* @return {boolean} Is queued.
*/
isQueued(element) {
return this.isKeyQueued(this.keyFunction_(element));
}
/**
* @param {number} index The index of the node to move down.
* @private
*/
siftUp_(index) {
const elements = this.elements_;
const priorities = this.priorities_;
const count = elements.length;
const element = elements[index];
const priority = priorities[index];
const startIndex = index;
while (index < count >> 1) {
const lIndex = this.getLeftChildIndex_(index);
const rIndex = this.getRightChildIndex_(index);
const smallerChildIndex = rIndex < count && priorities[rIndex] < priorities[lIndex] ? rIndex : lIndex;
elements[index] = elements[smallerChildIndex];
priorities[index] = priorities[smallerChildIndex];
index = smallerChildIndex;
}
elements[index] = element;
priorities[index] = priority;
this.siftDown_(startIndex, index);
}
/**
* @param {number} startIndex The index of the root.
* @param {number} index The index of the node to move up.
* @private
*/
siftDown_(startIndex, index) {
const elements = this.elements_;
const priorities = this.priorities_;
const element = elements[index];
const priority = priorities[index];
while (index > startIndex) {
const parentIndex = this.getParentIndex_(index);
if (priorities[parentIndex] > priority) {
elements[index] = elements[parentIndex];
priorities[index] = priorities[parentIndex];
index = parentIndex;
} else {
break;
}
}
elements[index] = element;
priorities[index] = priority;
}
/**
* FIXME empty description for jsdoc
*/
reprioritize() {
const priorityFunction = this.priorityFunction_;
const elements = this.elements_;
const priorities = this.priorities_;
let index = 0;
const n = elements.length;
let element, i, priority;
for (i = 0; i < n; ++i) {
element = elements[i];
priority = priorityFunction(element);
if (priority == DROP) {
delete this.queuedElements_[this.keyFunction_(element)];
} else {
priorities[index] = priority;
elements[index++] = element;
}
}
elements.length = index;
priorities.length = index;
this.heapify_();
}
};
var PriorityQueue_default = PriorityQueue;
// node_modules/ol/TileQueue.js
var TileQueue = class extends PriorityQueue_default {
/**
* @param {PriorityFunction} tilePriorityFunction Tile priority function.
* @param {function(): ?} tileChangeCallback Function called on each tile change event.
*/
constructor(tilePriorityFunction, tileChangeCallback) {
super(
(element) => tilePriorityFunction.apply(null, element),
(element) => element[0].getKey()
);
this.boundHandleTileChange_ = this.handleTileChange.bind(this);
this.tileChangeCallback_ = tileChangeCallback;
this.tilesLoading_ = 0;
this.tilesLoadingKeys_ = {};
}
/**
* @param {TileQueueElement} element Element.
* @return {boolean} The element was added to the queue.
* @override
*/
enqueue(element) {
const added = super.enqueue(element);
if (added) {
const tile = element[0];
tile.addEventListener(EventType_default.CHANGE, this.boundHandleTileChange_);
}
return added;
}
/**
* @return {number} Number of tiles loading.
*/
getTilesLoading() {
return this.tilesLoading_;
}
/**
* @param {import("./events/Event.js").default} event Event.
* @protected
*/
handleTileChange(event) {
const tile = (
/** @type {import("./Tile.js").default} */
event.target
);
const state = tile.getState();
if (state === TileState_default.LOADED || state === TileState_default.ERROR || state === TileState_default.EMPTY) {
if (state !== TileState_default.ERROR) {
tile.removeEventListener(EventType_default.CHANGE, this.boundHandleTileChange_);
}
const tileKey = tile.getKey();
if (tileKey in this.tilesLoadingKeys_) {
delete this.tilesLoadingKeys_[tileKey];
--this.tilesLoading_;
}
this.tileChangeCallback_();
}
}
/**
* @param {number} maxTotalLoading Maximum number tiles to load simultaneously.
* @param {number} maxNewLoads Maximum number of new tiles to load.
*/
loadMoreTiles(maxTotalLoading, maxNewLoads) {
let newLoads = 0;
while (this.tilesLoading_ < maxTotalLoading && newLoads < maxNewLoads && this.getCount() > 0) {
const tile = this.dequeue()[0];
const tileKey = tile.getKey();
const state = tile.getState();
if (state === TileState_default.IDLE && !(tileKey in this.tilesLoadingKeys_)) {
this.tilesLoadingKeys_[tileKey] = true;
++this.tilesLoading_;
++newLoads;
tile.load();
}
}
}
};
var TileQueue_default = TileQueue;
function getTilePriority(frameState, tile, tileSourceKey, tileCenter, tileResolution) {
if (!frameState || !(tileSourceKey in frameState.wantedTiles)) {
return DROP;
}
if (!frameState.wantedTiles[tileSourceKey][tile.getKey()]) {
return DROP;
}
const center = frameState.viewState.center;
const deltaX = tileCenter[0] - center[0];
const deltaY = tileCenter[1] - center[1];
return 65536 * Math.log(tileResolution) + Math.sqrt(deltaX * deltaX + deltaY * deltaY) / tileResolution;
}
export {
TileQueue_default,
getTilePriority
};
//# sourceMappingURL=chunk-CAVOO5JW.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,38 +0,0 @@
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
export {
__commonJS,
__export,
__toESM,
__publicField
};

View File

@ -1,7 +0,0 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

View File

@ -1,230 +0,0 @@
import {
assert
} from "./chunk-QFCIXVZ3.js";
import {
Object_default
} from "./chunk-Q5ZULJHM.js";
import {
listen,
unlistenByKey
} from "./chunk-NGFXCWUF.js";
import {
EventType_default
} from "./chunk-K25ZO44T.js";
// node_modules/ol/Feature.js
var Feature = class _Feature extends Object_default {
/**
* @param {Geometry|ObjectWithGeometry<Geometry>} [geometryOrProperties]
* You may pass a Geometry object directly, or an object literal containing
* properties. If you pass an object literal, you may include a Geometry
* associated with a `geometry` key.
*/
constructor(geometryOrProperties) {
super();
this.on;
this.once;
this.un;
this.id_ = void 0;
this.geometryName_ = "geometry";
this.style_ = null;
this.styleFunction_ = void 0;
this.geometryChangeKey_ = null;
this.addChangeListener(this.geometryName_, this.handleGeometryChanged_);
if (geometryOrProperties) {
if (typeof /** @type {?} */
geometryOrProperties.getSimplifiedGeometry === "function") {
const geometry = (
/** @type {Geometry} */
geometryOrProperties
);
this.setGeometry(geometry);
} else {
const properties = geometryOrProperties;
this.setProperties(properties);
}
}
}
/**
* Clone this feature. If the original feature has a geometry it
* is also cloned. The feature id is not set in the clone.
* @return {Feature<Geometry>} The clone.
* @api
*/
clone() {
const clone = (
/** @type {Feature<Geometry>} */
new _Feature(this.hasProperties() ? this.getProperties() : null)
);
clone.setGeometryName(this.getGeometryName());
const geometry = this.getGeometry();
if (geometry) {
clone.setGeometry(
/** @type {Geometry} */
geometry.clone()
);
}
const style = this.getStyle();
if (style) {
clone.setStyle(style);
}
return clone;
}
/**
* Get the feature's default geometry. A feature may have any number of named
* geometries. The "default" geometry (the one that is rendered by default) is
* set when calling {@link module:ol/Feature~Feature#setGeometry}.
* @return {Geometry|undefined} The default geometry for the feature.
* @api
* @observable
*/
getGeometry() {
return (
/** @type {Geometry|undefined} */
this.get(this.geometryName_)
);
}
/**
* Get the feature identifier. This is a stable identifier for the feature and
* is either set when reading data from a remote source or set explicitly by
* calling {@link module:ol/Feature~Feature#setId}.
* @return {number|string|undefined} Id.
* @api
*/
getId() {
return this.id_;
}
/**
* Get the name of the feature's default geometry. By default, the default
* geometry is named `geometry`.
* @return {string} Get the property name associated with the default geometry
* for this feature.
* @api
*/
getGeometryName() {
return this.geometryName_;
}
/**
* Get the feature's style. Will return what was provided to the
* {@link module:ol/Feature~Feature#setStyle} method.
* @return {import("./style/Style.js").StyleLike|undefined} The feature style.
* @api
*/
getStyle() {
return this.style_;
}
/**
* Get the feature's style function.
* @return {import("./style/Style.js").StyleFunction|undefined} Return a function
* representing the current style of this feature.
* @api
*/
getStyleFunction() {
return this.styleFunction_;
}
/**
* @private
*/
handleGeometryChange_() {
this.changed();
}
/**
* @private
*/
handleGeometryChanged_() {
if (this.geometryChangeKey_) {
unlistenByKey(this.geometryChangeKey_);
this.geometryChangeKey_ = null;
}
const geometry = this.getGeometry();
if (geometry) {
this.geometryChangeKey_ = listen(
geometry,
EventType_default.CHANGE,
this.handleGeometryChange_,
this
);
}
this.changed();
}
/**
* Set the default geometry for the feature. This will update the property
* with the name returned by {@link module:ol/Feature~Feature#getGeometryName}.
* @param {Geometry|undefined} geometry The new geometry.
* @api
* @observable
*/
setGeometry(geometry) {
this.set(this.geometryName_, geometry);
}
/**
* Set the style for the feature to override the layer style. This can be a
* single style object, an array of styles, or a function that takes a
* resolution and returns an array of styles. To unset the feature style, call
* `setStyle()` without arguments or a falsey value.
* @param {import("./style/Style.js").StyleLike} [style] Style for this feature.
* @api
* @fires module:ol/events/Event~BaseEvent#event:change
*/
setStyle(style) {
this.style_ = style;
this.styleFunction_ = !style ? void 0 : createStyleFunction(style);
this.changed();
}
/**
* Set the feature id. The feature id is considered stable and may be used when
* requesting features or comparing identifiers returned from a remote source.
* The feature id can be used with the
* {@link module:ol/source/Vector~VectorSource#getFeatureById} method.
* @param {number|string|undefined} id The feature id.
* @api
* @fires module:ol/events/Event~BaseEvent#event:change
*/
setId(id) {
this.id_ = id;
this.changed();
}
/**
* Set the property name to be used when getting the feature's default geometry.
* When calling {@link module:ol/Feature~Feature#getGeometry}, the value of the property with
* this name will be returned.
* @param {string} name The property name of the default geometry.
* @api
*/
setGeometryName(name) {
this.removeChangeListener(this.geometryName_, this.handleGeometryChanged_);
this.geometryName_ = name;
this.addChangeListener(this.geometryName_, this.handleGeometryChanged_);
this.handleGeometryChanged_();
}
};
function createStyleFunction(obj) {
if (typeof obj === "function") {
return obj;
}
let styles;
if (Array.isArray(obj)) {
styles = obj;
} else {
assert(
typeof /** @type {?} */
obj.getZIndex === "function",
"Expected an `ol/style/Style` or an array of `ol/style/Style.js`"
);
const style = (
/** @type {import("./style/Style.js").default} */
obj
);
styles = [style];
}
return function() {
return styles;
};
}
var Feature_default = Feature;
export {
createStyleFunction,
Feature_default
};
//# sourceMappingURL=chunk-E53S5GN6.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,377 +0,0 @@
import {
Layer_default2 as Layer_default
} from "./chunk-ZUI5NXIU.js";
import {
Layer_default as Layer_default2
} from "./chunk-I6K7MRGV.js";
import {
ViewHint_default
} from "./chunk-YLJGUH5Z.js";
import {
ImageState_default
} from "./chunk-SHUBVYN4.js";
import {
apply,
compose
} from "./chunk-X52LGBOS.js";
import {
fromUserExtent
} from "./chunk-A3RXLHYB.js";
import {
containsCoordinate,
containsExtent,
getHeight,
getIntersection,
getWidth,
intersects,
isEmpty
} from "./chunk-SRXHWJOY.js";
// node_modules/ol/renderer/canvas/ImageLayer.js
var CanvasImageLayerRenderer = class extends Layer_default {
/**
* @param {import("../../layer/Image.js").default} imageLayer Image layer.
*/
constructor(imageLayer) {
super(imageLayer);
this.image = null;
}
/**
* @return {import('../../DataTile.js').ImageLike} Image.
*/
getImage() {
return !this.image ? null : this.image.getImage();
}
/**
* Determine whether render should be called.
* @param {import("../../Map.js").FrameState} frameState Frame state.
* @return {boolean} Layer is ready to be rendered.
* @override
*/
prepareFrame(frameState) {
const layerState = frameState.layerStatesArray[frameState.layerIndex];
const pixelRatio = frameState.pixelRatio;
const viewState = frameState.viewState;
const viewResolution = viewState.resolution;
const imageSource = this.getLayer().getSource();
const hints = frameState.viewHints;
let renderedExtent = frameState.extent;
if (layerState.extent !== void 0) {
renderedExtent = getIntersection(
renderedExtent,
fromUserExtent(layerState.extent, viewState.projection)
);
}
if (!hints[ViewHint_default.ANIMATING] && !hints[ViewHint_default.INTERACTING] && !isEmpty(renderedExtent)) {
if (imageSource) {
const projection = viewState.projection;
const image = imageSource.getImage(
renderedExtent,
viewResolution,
pixelRatio,
projection
);
if (image) {
if (this.loadImage(image)) {
this.image = image;
} else if (image.getState() === ImageState_default.EMPTY) {
this.image = null;
}
}
} else {
this.image = null;
}
}
return !!this.image;
}
/**
* @param {import("../../pixel.js").Pixel} pixel Pixel.
* @return {Uint8ClampedArray} Data at the pixel location.
* @override
*/
getData(pixel) {
const frameState = this.frameState;
if (!frameState) {
return null;
}
const layer = this.getLayer();
const coordinate = apply(
frameState.pixelToCoordinateTransform,
pixel.slice()
);
const layerExtent = layer.getExtent();
if (layerExtent) {
if (!containsCoordinate(layerExtent, coordinate)) {
return null;
}
}
const imageExtent = this.image.getExtent();
const img = this.image.getImage();
const imageMapWidth = getWidth(imageExtent);
const col = Math.floor(
img.width * ((coordinate[0] - imageExtent[0]) / imageMapWidth)
);
if (col < 0 || col >= img.width) {
return null;
}
const imageMapHeight = getHeight(imageExtent);
const row = Math.floor(
img.height * ((imageExtent[3] - coordinate[1]) / imageMapHeight)
);
if (row < 0 || row >= img.height) {
return null;
}
return this.getImageData(img, col, row);
}
/**
* Render the layer.
* @param {import("../../Map.js").FrameState} frameState Frame state.
* @param {HTMLElement} target Target that may be used to render content to.
* @return {HTMLElement} The rendered element.
* @override
*/
renderFrame(frameState, target) {
const image = this.image;
const imageExtent = image.getExtent();
const imageResolution = image.getResolution();
const [imageResolutionX, imageResolutionY] = Array.isArray(imageResolution) ? imageResolution : [imageResolution, imageResolution];
const imagePixelRatio = image.getPixelRatio();
const layerState = frameState.layerStatesArray[frameState.layerIndex];
const pixelRatio = frameState.pixelRatio;
const viewState = frameState.viewState;
const viewCenter = viewState.center;
const viewResolution = viewState.resolution;
const scaleX = pixelRatio * imageResolutionX / (viewResolution * imagePixelRatio);
const scaleY = pixelRatio * imageResolutionY / (viewResolution * imagePixelRatio);
this.prepareContainer(frameState, target);
const width = this.context.canvas.width;
const height = this.context.canvas.height;
const context = this.getRenderContext(frameState);
let clipped = false;
let render = true;
if (layerState.extent) {
const layerExtent = fromUserExtent(
layerState.extent,
viewState.projection
);
render = intersects(layerExtent, frameState.extent);
clipped = render && !containsExtent(layerExtent, frameState.extent);
if (clipped) {
this.clipUnrotated(context, frameState, layerExtent);
}
}
const img = image.getImage();
const transform = compose(
this.tempTransform,
width / 2,
height / 2,
scaleX,
scaleY,
0,
imagePixelRatio * (imageExtent[0] - viewCenter[0]) / imageResolutionX,
imagePixelRatio * (viewCenter[1] - imageExtent[3]) / imageResolutionY
);
this.renderedResolution = imageResolutionY * pixelRatio / imagePixelRatio;
const dw = img.width * transform[0];
const dh = img.height * transform[3];
if (!this.getLayer().getSource().getInterpolate()) {
context.imageSmoothingEnabled = false;
}
this.preRender(context, frameState);
if (render && dw >= 0.5 && dh >= 0.5) {
const dx = transform[4];
const dy = transform[5];
const opacity = layerState.opacity;
if (opacity !== 1) {
context.save();
context.globalAlpha = opacity;
}
context.drawImage(img, 0, 0, +img.width, +img.height, dx, dy, dw, dh);
if (opacity !== 1) {
context.restore();
}
}
this.postRender(this.context, frameState);
if (clipped) {
context.restore();
}
context.imageSmoothingEnabled = true;
return this.container;
}
};
var ImageLayer_default = CanvasImageLayerRenderer;
// node_modules/ol/layer/BaseImage.js
var BaseImageLayer = class extends Layer_default2 {
/**
* @param {Options<ImageSourceType>} [options] Layer options.
*/
constructor(options) {
options = options ? options : {};
super(options);
}
};
var BaseImage_default = BaseImageLayer;
// node_modules/ol/layer/Image.js
var ImageLayer = class extends BaseImage_default {
/**
* @param {import("./BaseImage.js").Options<ImageSourceType>} [options] Layer options.
*/
constructor(options) {
super(options);
}
/**
* @override
*/
createRenderer() {
return new ImageLayer_default(this);
}
/**
* Get data for a pixel location. A four element RGBA array will be returned. For requests outside the
* layer extent, `null` will be returned. Data for an image can only be retrieved if the
* source's `crossOrigin` property is set.
*
* ```js
* // display layer data on every pointer move
* map.on('pointermove', (event) => {
* console.log(layer.getData(event.pixel));
* });
* ```
* @param {import("../pixel").Pixel} pixel Pixel.
* @return {Uint8ClampedArray|Uint8Array|Float32Array|DataView|null} Pixel data.
* @api
* @override
*/
getData(pixel) {
return super.getData(pixel);
}
};
var Image_default = ImageLayer;
// node_modules/ol/vec/mat4.js
function create() {
return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
}
function fromTransform(mat4, transform) {
mat4[0] = transform[0];
mat4[1] = transform[1];
mat4[4] = transform[2];
mat4[5] = transform[3];
mat4[12] = transform[4];
mat4[13] = transform[5];
return mat4;
}
function orthographic(left, right, bottom, top, near, far, out) {
out = out ?? create();
const lr = 1 / (left - right), bt = 1 / (bottom - top), nf = 1 / (near - far);
out[0] = -2 * lr;
out[1] = 0;
out[2] = 0;
out[3] = 0;
out[4] = 0;
out[5] = -2 * bt;
out[6] = 0;
out[7] = 0;
out[8] = 0;
out[9] = 0;
out[10] = 2 * nf;
out[11] = 0;
out[12] = (left + right) * lr;
out[13] = (top + bottom) * bt;
out[14] = (far + near) * nf;
out[15] = 1;
return out;
}
function scale(m, x, y, z, out) {
out = out ?? create();
out[0] = m[0] * x;
out[1] = m[1] * x;
out[2] = m[2] * x;
out[3] = m[3] * x;
out[4] = m[4] * y;
out[5] = m[5] * y;
out[6] = m[6] * y;
out[7] = m[7] * y;
out[8] = m[8] * z;
out[9] = m[9] * z;
out[10] = m[10] * z;
out[11] = m[11] * z;
out[12] = m[12];
out[13] = m[13];
out[14] = m[14];
out[15] = m[15];
return out;
}
function translate(m, x, y, z, out) {
out = out ?? create();
let a00, a01, a02, a03, a10, a11, a12, a13, a20, a21, a22, a23;
if (m === out) {
out[12] = m[0] * x + m[4] * y + m[8] * z + m[12];
out[13] = m[1] * x + m[5] * y + m[9] * z + m[13];
out[14] = m[2] * x + m[6] * y + m[10] * z + m[14];
out[15] = m[3] * x + m[7] * y + m[11] * z + m[15];
} else {
a00 = m[0];
a01 = m[1];
a02 = m[2];
a03 = m[3];
a10 = m[4];
a11 = m[5];
a12 = m[6];
a13 = m[7];
a20 = m[8];
a21 = m[9];
a22 = m[10];
a23 = m[11];
out[0] = a00;
out[1] = a01;
out[2] = a02;
out[3] = a03;
out[4] = a10;
out[5] = a11;
out[6] = a12;
out[7] = a13;
out[8] = a20;
out[9] = a21;
out[10] = a22;
out[11] = a23;
out[12] = a00 * x + a10 * y + a20 * z + m[12];
out[13] = a01 * x + a11 * y + a21 * z + m[13];
out[14] = a02 * x + a12 * y + a22 * z + m[14];
out[15] = a03 * x + a13 * y + a23 * z + m[15];
}
return out;
}
function translation(x, y, z, out) {
out = out ?? create();
out[0] = 1;
out[1] = 0;
out[2] = 0;
out[3] = 0;
out[4] = 0;
out[5] = 1;
out[6] = 0;
out[7] = 0;
out[8] = 0;
out[9] = 0;
out[10] = 1;
out[11] = 0;
out[12] = x;
out[13] = y;
out[14] = z;
out[15] = 1;
return out;
}
export {
ImageLayer_default,
Image_default,
create,
fromTransform,
orthographic,
scale,
translate,
translation
};
//# sourceMappingURL=chunk-E7S7Q7VV.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,9 +0,0 @@
// node_modules/ol/tilegrid/common.js
var DEFAULT_MAX_ZOOM = 42;
var DEFAULT_TILE_SIZE = 256;
export {
DEFAULT_MAX_ZOOM,
DEFAULT_TILE_SIZE
};
//# sourceMappingURL=chunk-FM44FOIC.js.map

View File

@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../../ol/tilegrid/common.js"],
"sourcesContent": ["/**\n * @module ol/tilegrid/common\n */\n\n/**\n * Default maximum zoom for default tile grids.\n * @type {number}\n */\nexport const DEFAULT_MAX_ZOOM = 42;\n\n/**\n * Default tile size.\n * @type {number}\n */\nexport const DEFAULT_TILE_SIZE = 256;\n"],
"mappings": ";AAQO,IAAM,mBAAmB;AAMzB,IAAM,oBAAoB;",
"names": []
}

View File

View File

@ -1,7 +0,0 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,465 +0,0 @@
import {
Base_default,
Property_default
} from "./chunk-AYBYZSAV.js";
import {
View_default
} from "./chunk-YLJGUH5Z.js";
import {
assert
} from "./chunk-QFCIXVZ3.js";
import {
Event_default,
listen,
unlistenByKey
} from "./chunk-NGFXCWUF.js";
import {
EventType_default
} from "./chunk-K25ZO44T.js";
import {
intersects
} from "./chunk-SRXHWJOY.js";
// node_modules/ol/render/EventType.js
var EventType_default2 = {
/**
* Triggered before a layer is rendered.
* @event module:ol/render/Event~RenderEvent#prerender
* @api
*/
PRERENDER: "prerender",
/**
* Triggered after a layer is rendered.
* @event module:ol/render/Event~RenderEvent#postrender
* @api
*/
POSTRENDER: "postrender",
/**
* Triggered before layers are composed. When dispatched by the map, the event object will not have
* a `context` set. When dispatched by a layer, the event object will have a `context` set. Only
* WebGL layers currently dispatch this event.
* @event module:ol/render/Event~RenderEvent#precompose
* @api
*/
PRECOMPOSE: "precompose",
/**
* Triggered after layers are composed. When dispatched by the map, the event object will not have
* a `context` set. When dispatched by a layer, the event object will have a `context` set. Only
* WebGL layers currently dispatch this event.
* @event module:ol/render/Event~RenderEvent#postcompose
* @api
*/
POSTCOMPOSE: "postcompose",
/**
* Triggered when rendering is complete, i.e. all sources and tiles have
* finished loading for the current viewport, and all tiles are faded in.
* The event object will not have a `context` set.
* @event module:ol/render/Event~RenderEvent#rendercomplete
* @api
*/
RENDERCOMPLETE: "rendercomplete"
};
// node_modules/ol/layer/Layer.js
var Layer = class extends Base_default {
/**
* @param {Options<SourceType>} options Layer options.
*/
constructor(options) {
const baseOptions = Object.assign({}, options);
delete baseOptions.source;
super(baseOptions);
this.on;
this.once;
this.un;
this.mapPrecomposeKey_ = null;
this.mapRenderKey_ = null;
this.sourceChangeKey_ = null;
this.renderer_ = null;
this.sourceReady_ = false;
this.rendered = false;
if (options.render) {
this.render = options.render;
}
if (options.map) {
this.setMap(options.map);
}
this.addChangeListener(
Property_default.SOURCE,
this.handleSourcePropertyChange_
);
const source = options.source ? (
/** @type {SourceType} */
options.source
) : null;
this.setSource(source);
}
/**
* @param {Array<import("./Layer.js").default>} [array] Array of layers (to be modified in place).
* @return {Array<import("./Layer.js").default>} Array of layers.
* @override
*/
getLayersArray(array) {
array = array ? array : [];
array.push(this);
return array;
}
/**
* @param {Array<import("./Layer.js").State>} [states] Optional list of layer states (to be modified in place).
* @return {Array<import("./Layer.js").State>} List of layer states.
* @override
*/
getLayerStatesArray(states) {
states = states ? states : [];
states.push(this.getLayerState());
return states;
}
/**
* Get the layer source.
* @return {SourceType|null} The layer source (or `null` if not yet set).
* @observable
* @api
*/
getSource() {
return (
/** @type {SourceType} */
this.get(Property_default.SOURCE) || null
);
}
/**
* @return {SourceType|null} The source being rendered.
*/
getRenderSource() {
return this.getSource();
}
/**
* @return {import("../source/Source.js").State} Source state.
* @override
*/
getSourceState() {
const source = this.getSource();
return !source ? "undefined" : source.getState();
}
/**
* @private
*/
handleSourceChange_() {
this.changed();
if (this.sourceReady_ || this.getSource().getState() !== "ready") {
return;
}
this.sourceReady_ = true;
this.dispatchEvent("sourceready");
}
/**
* @private
*/
handleSourcePropertyChange_() {
if (this.sourceChangeKey_) {
unlistenByKey(this.sourceChangeKey_);
this.sourceChangeKey_ = null;
}
this.sourceReady_ = false;
const source = this.getSource();
if (source) {
this.sourceChangeKey_ = listen(
source,
EventType_default.CHANGE,
this.handleSourceChange_,
this
);
if (source.getState() === "ready") {
this.sourceReady_ = true;
setTimeout(() => {
this.dispatchEvent("sourceready");
}, 0);
}
}
this.changed();
}
/**
* @param {import("../pixel").Pixel} pixel Pixel.
* @return {Promise<Array<import("../Feature").FeatureLike>>} Promise that resolves with
* an array of features.
*/
getFeatures(pixel) {
if (!this.renderer_) {
return Promise.resolve([]);
}
return this.renderer_.getFeatures(pixel);
}
/**
* @param {import("../pixel").Pixel} pixel Pixel.
* @return {Uint8ClampedArray|Uint8Array|Float32Array|DataView|null} Pixel data.
*/
getData(pixel) {
if (!this.renderer_ || !this.rendered) {
return null;
}
return this.renderer_.getData(pixel);
}
/**
* The layer is visible on the map view, i.e. within its min/max resolution or zoom and
* extent, not set to `visible: false`, and not inside a layer group that is set
* to `visible: false`.
* @param {View|import("../View.js").ViewStateLayerStateExtent} [view] View or {@link import("../Map.js").FrameState}.
* Only required when the layer is not added to a map.
* @return {boolean} The layer is visible in the map view.
* @api
*/
isVisible(view) {
let frameState;
const map = this.getMapInternal();
if (!view && map) {
view = map.getView();
}
if (view instanceof View_default) {
frameState = {
viewState: view.getState(),
extent: view.calculateExtent()
};
} else {
frameState = view;
}
if (!frameState.layerStatesArray && map) {
frameState.layerStatesArray = map.getLayerGroup().getLayerStatesArray();
}
let layerState;
if (frameState.layerStatesArray) {
layerState = frameState.layerStatesArray.find(
(layerState2) => layerState2.layer === this
);
if (!layerState) {
return false;
}
} else {
layerState = this.getLayerState();
}
const layerExtent = this.getExtent();
return inView(layerState, frameState.viewState) && (!layerExtent || intersects(layerExtent, frameState.extent));
}
/**
* Get the attributions of the source of this layer for the given view.
* @param {View|import("../View.js").ViewStateLayerStateExtent} [view] View or {@link import("../Map.js").FrameState}.
* Only required when the layer is not added to a map.
* @return {Array<string>} Attributions for this layer at the given view.
* @api
*/
getAttributions(view) {
var _a;
if (!this.isVisible(view)) {
return [];
}
const getAttributions = (_a = this.getSource()) == null ? void 0 : _a.getAttributions();
if (!getAttributions) {
return [];
}
const frameState = view instanceof View_default ? view.getViewStateAndExtent() : view;
let attributions = getAttributions(frameState);
if (!Array.isArray(attributions)) {
attributions = [attributions];
}
return attributions;
}
/**
* In charge to manage the rendering of the layer. One layer type is
* bounded with one layer renderer.
* @param {?import("../Map.js").FrameState} frameState Frame state.
* @param {HTMLElement} target Target which the renderer may (but need not) use
* for rendering its content.
* @return {HTMLElement|null} The rendered element.
*/
render(frameState, target) {
const layerRenderer = this.getRenderer();
if (layerRenderer.prepareFrame(frameState)) {
this.rendered = true;
return layerRenderer.renderFrame(frameState, target);
}
return null;
}
/**
* Called when a layer is not visible during a map render.
*/
unrender() {
this.rendered = false;
}
/** @return {string} Declutter */
getDeclutter() {
return void 0;
}
/**
* @param {import("../Map.js").FrameState} frameState Frame state.
* @param {import("../layer/Layer.js").State} layerState Layer state.
*/
renderDeclutter(frameState, layerState) {
}
/**
* When the renderer follows a layout -> render approach, do the final rendering here.
* @param {import('../Map.js').FrameState} frameState Frame state
*/
renderDeferred(frameState) {
const layerRenderer = this.getRenderer();
if (!layerRenderer) {
return;
}
layerRenderer.renderDeferred(frameState);
}
/**
* For use inside the library only.
* @param {import("../Map.js").default|null} map Map.
*/
setMapInternal(map) {
if (!map) {
this.unrender();
}
this.set(Property_default.MAP, map);
}
/**
* For use inside the library only.
* @return {import("../Map.js").default|null} Map.
*/
getMapInternal() {
return this.get(Property_default.MAP);
}
/**
* Sets the layer to be rendered on top of other layers on a map. The map will
* not manage this layer in its layers collection. This
* is useful for temporary layers. To remove an unmanaged layer from the map,
* use `#setMap(null)`.
*
* To add the layer to a map and have it managed by the map, use
* {@link module:ol/Map~Map#addLayer} instead.
* @param {import("../Map.js").default|null} map Map.
* @api
*/
setMap(map) {
if (this.mapPrecomposeKey_) {
unlistenByKey(this.mapPrecomposeKey_);
this.mapPrecomposeKey_ = null;
}
if (!map) {
this.changed();
}
if (this.mapRenderKey_) {
unlistenByKey(this.mapRenderKey_);
this.mapRenderKey_ = null;
}
if (map) {
this.mapPrecomposeKey_ = listen(
map,
EventType_default2.PRECOMPOSE,
this.handlePrecompose_,
this
);
this.mapRenderKey_ = listen(this, EventType_default.CHANGE, map.render, map);
this.changed();
}
}
/**
* @param {import("../events/Event.js").default} renderEvent Render event
* @private
*/
handlePrecompose_(renderEvent) {
const layerStatesArray = (
/** @type {import("../render/Event.js").default} */
renderEvent.frameState.layerStatesArray
);
const layerState = this.getLayerState(false);
assert(
!layerStatesArray.some(
(arrayLayerState) => arrayLayerState.layer === layerState.layer
),
"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both."
);
layerStatesArray.push(layerState);
}
/**
* Set the layer source.
* @param {SourceType|null} source The layer source.
* @observable
* @api
*/
setSource(source) {
this.set(Property_default.SOURCE, source);
}
/**
* Get the renderer for this layer.
* @return {RendererType|null} The layer renderer.
*/
getRenderer() {
if (!this.renderer_) {
this.renderer_ = this.createRenderer();
}
return this.renderer_;
}
/**
* @return {boolean} The layer has a renderer.
*/
hasRenderer() {
return !!this.renderer_;
}
/**
* Create a renderer for this layer.
* @return {RendererType} A layer renderer.
* @protected
*/
createRenderer() {
return null;
}
/**
* This will clear the renderer so that a new one can be created next time it is needed
*/
clearRenderer() {
if (this.renderer_) {
this.renderer_.dispose();
delete this.renderer_;
}
}
/**
* Clean up.
* @override
*/
disposeInternal() {
this.clearRenderer();
this.setSource(null);
super.disposeInternal();
}
};
function inView(layerState, viewState) {
if (!layerState.visible) {
return false;
}
const resolution = viewState.resolution;
if (resolution < layerState.minResolution || resolution >= layerState.maxResolution) {
return false;
}
const zoom = viewState.zoom;
return zoom > layerState.minZoom && zoom <= layerState.maxZoom;
}
var Layer_default = Layer;
// node_modules/ol/render/Event.js
var RenderEvent = class extends Event_default {
/**
* @param {import("./EventType.js").default} type Type.
* @param {import("../transform.js").Transform} [inversePixelTransform] Transform for
* CSS pixels to rendered pixels.
* @param {import("../Map.js").FrameState} [frameState] Frame state.
* @param {?(CanvasRenderingContext2D|OffscreenCanvasRenderingContext2D|WebGLRenderingContext)} [context] Context.
*/
constructor(type, inversePixelTransform, frameState, context) {
super(type);
this.inversePixelTransform = inversePixelTransform;
this.frameState = frameState;
this.context = context;
}
};
var Event_default2 = RenderEvent;
export {
Event_default2 as Event_default,
EventType_default2 as EventType_default,
inView,
Layer_default
};
//# sourceMappingURL=chunk-I6K7MRGV.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,19 +0,0 @@
// node_modules/ol/geom/flat/length.js
function lineStringLength(flatCoordinates, offset, end, stride) {
let x1 = flatCoordinates[offset];
let y1 = flatCoordinates[offset + 1];
let length = 0;
for (let i = offset + stride; i < end; i += stride) {
const x2 = flatCoordinates[i];
const y2 = flatCoordinates[i + 1];
length += Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
x1 = x2;
y1 = y2;
}
return length;
}
export {
lineStringLength
};
//# sourceMappingURL=chunk-JFXZSSOM.js.map

View File

@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../../ol/geom/flat/length.js"],
"sourcesContent": ["/**\n * @module ol/geom/flat/length\n */\n\n/**\n * @param {Array<number>} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {number} Length.\n */\nexport function lineStringLength(flatCoordinates, offset, end, stride) {\n let x1 = flatCoordinates[offset];\n let y1 = flatCoordinates[offset + 1];\n let length = 0;\n for (let i = offset + stride; i < end; i += stride) {\n const x2 = flatCoordinates[i];\n const y2 = flatCoordinates[i + 1];\n length += Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n x1 = x2;\n y1 = y2;\n }\n return length;\n}\n\n/**\n * @param {Array<number>} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {number} Perimeter.\n */\nexport function linearRingLength(flatCoordinates, offset, end, stride) {\n let perimeter = lineStringLength(flatCoordinates, offset, end, stride);\n const dx = flatCoordinates[end - stride] - flatCoordinates[offset];\n const dy = flatCoordinates[end - stride + 1] - flatCoordinates[offset + 1];\n perimeter += Math.sqrt(dx * dx + dy * dy);\n return perimeter;\n}\n"],
"mappings": ";AAWO,SAAS,iBAAiB,iBAAiB,QAAQ,KAAK,QAAQ;AACrE,MAAI,KAAK,gBAAgB,MAAM;AAC/B,MAAI,KAAK,gBAAgB,SAAS,CAAC;AACnC,MAAI,SAAS;AACb,WAAS,IAAI,SAAS,QAAQ,IAAI,KAAK,KAAK,QAAQ;AAClD,UAAM,KAAK,gBAAgB,CAAC;AAC5B,UAAM,KAAK,gBAAgB,IAAI,CAAC;AAChC,cAAU,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,GAAG;AACjE,SAAK;AACL,SAAK;AAAA,EACP;AACA,SAAO;AACT;",
"names": []
}

View File

@ -1,203 +0,0 @@
// node_modules/ol/events/EventType.js
var EventType_default = {
/**
* Generic change event. Triggered when the revision counter is increased.
* @event module:ol/events/Event~BaseEvent#change
* @api
*/
CHANGE: "change",
/**
* Generic error event. Triggered when an error occurs.
* @event module:ol/events/Event~BaseEvent#error
* @api
*/
ERROR: "error",
BLUR: "blur",
CLEAR: "clear",
CONTEXTMENU: "contextmenu",
CLICK: "click",
DBLCLICK: "dblclick",
DRAGENTER: "dragenter",
DRAGOVER: "dragover",
DROP: "drop",
FOCUS: "focus",
KEYDOWN: "keydown",
KEYPRESS: "keypress",
LOAD: "load",
RESIZE: "resize",
TOUCHMOVE: "touchmove",
WHEEL: "wheel"
};
// node_modules/ol/array.js
function binarySearch(haystack, needle, comparator) {
let mid, cmp;
comparator = comparator || ascending;
let low = 0;
let high = haystack.length;
let found = false;
while (low < high) {
mid = low + (high - low >> 1);
cmp = +comparator(haystack[mid], needle);
if (cmp < 0) {
low = mid + 1;
} else {
high = mid;
found = !cmp;
}
}
return found ? low : ~low;
}
function ascending(a, b) {
return a > b ? 1 : a < b ? -1 : 0;
}
function descending(a, b) {
return a < b ? 1 : a > b ? -1 : 0;
}
function linearFindNearest(arr, target, direction) {
if (arr[0] <= target) {
return 0;
}
const n = arr.length;
if (target <= arr[n - 1]) {
return n - 1;
}
if (typeof direction === "function") {
for (let i = 1; i < n; ++i) {
const candidate = arr[i];
if (candidate === target) {
return i;
}
if (candidate < target) {
if (direction(target, arr[i - 1], candidate) > 0) {
return i - 1;
}
return i;
}
}
return n - 1;
}
if (direction > 0) {
for (let i = 1; i < n; ++i) {
if (arr[i] < target) {
return i - 1;
}
}
return n - 1;
}
if (direction < 0) {
for (let i = 1; i < n; ++i) {
if (arr[i] <= target) {
return i;
}
}
return n - 1;
}
for (let i = 1; i < n; ++i) {
if (arr[i] == target) {
return i;
}
if (arr[i] < target) {
if (arr[i - 1] - target < target - arr[i]) {
return i - 1;
}
return i;
}
}
return n - 1;
}
function reverseSubArray(arr, begin, end) {
while (begin < end) {
const tmp = arr[begin];
arr[begin] = arr[end];
arr[end] = tmp;
++begin;
--end;
}
}
function extend(arr, data) {
const extension = Array.isArray(data) ? data : [data];
const length = extension.length;
for (let i = 0; i < length; i++) {
arr[arr.length] = extension[i];
}
}
function equals(arr1, arr2) {
const len1 = arr1.length;
if (len1 !== arr2.length) {
return false;
}
for (let i = 0; i < len1; i++) {
if (arr1[i] !== arr2[i]) {
return false;
}
}
return true;
}
function isSorted(arr, func, strict) {
const compare = func || ascending;
return arr.every(function(currentVal, index) {
if (index === 0) {
return true;
}
const res = compare(arr[index - 1], currentVal);
return !(res > 0 || strict && res === 0);
});
}
// node_modules/ol/functions.js
function TRUE() {
return true;
}
function FALSE() {
return false;
}
function VOID() {
}
function memoizeOne(fn) {
let lastResult;
let lastArgs;
let lastThis;
return function() {
const nextArgs = Array.prototype.slice.call(arguments);
if (!lastArgs || this !== lastThis || !equals(nextArgs, lastArgs)) {
lastThis = this;
lastArgs = nextArgs;
lastResult = fn.apply(this, arguments);
}
return lastResult;
};
}
function toPromise(getter) {
function promiseGetter() {
let value;
try {
value = getter();
} catch (err) {
return Promise.reject(err);
}
if (value instanceof Promise) {
return value;
}
return Promise.resolve(value);
}
return promiseGetter();
}
export {
EventType_default,
binarySearch,
ascending,
descending,
linearFindNearest,
reverseSubArray,
extend,
equals,
isSorted,
TRUE,
FALSE,
VOID,
memoizeOne,
toPromise
};
//# sourceMappingURL=chunk-K25ZO44T.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,21 +0,0 @@
// node_modules/ol/easing.js
function easeIn(t) {
return Math.pow(t, 3);
}
function easeOut(t) {
return 1 - easeIn(1 - t);
}
function inAndOut(t) {
return 3 * t * t - 2 * t * t * t;
}
function linear(t) {
return t;
}
export {
easeIn,
easeOut,
inAndOut,
linear
};
//# sourceMappingURL=chunk-LMC3RO5P.js.map

View File

@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../../ol/easing.js"],
"sourcesContent": ["/**\n * @module ol/easing\n */\n\n/**\n * Start slow and speed up.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function easeIn(t) {\n return Math.pow(t, 3);\n}\n\n/**\n * Start fast and slow down.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function easeOut(t) {\n return 1 - easeIn(1 - t);\n}\n\n/**\n * Start slow, speed up, and then slow down again.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function inAndOut(t) {\n return 3 * t * t - 2 * t * t * t;\n}\n\n/**\n * Maintain a constant speed over time.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function linear(t) {\n return t;\n}\n\n/**\n * Start slow, speed up, and at the very end slow down again. This has the\n * same general behavior as {@link module:ol/easing.inAndOut}, but the final\n * slowdown is delayed.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function upAndDown(t) {\n if (t < 0.5) {\n return inAndOut(2 * t);\n }\n return 1 - inAndOut(2 * (t - 0.5));\n}\n"],
"mappings": ";AAUO,SAAS,OAAO,GAAG;AACxB,SAAO,KAAK,IAAI,GAAG,CAAC;AACtB;AAQO,SAAS,QAAQ,GAAG;AACzB,SAAO,IAAI,OAAO,IAAI,CAAC;AACzB;AAQO,SAAS,SAAS,GAAG;AAC1B,SAAO,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AACjC;AAQO,SAAS,OAAO,GAAG;AACxB,SAAO;AACT;",
"names": []
}

View File

@ -1,253 +0,0 @@
import {
Object_default
} from "./chunk-Q5ZULJHM.js";
import {
Event_default
} from "./chunk-NGFXCWUF.js";
// node_modules/ol/CollectionEventType.js
var CollectionEventType_default = {
/**
* Triggered when an item is added to the collection.
* @event module:ol/Collection.CollectionEvent#add
* @api
*/
ADD: "add",
/**
* Triggered when an item is removed from the collection.
* @event module:ol/Collection.CollectionEvent#remove
* @api
*/
REMOVE: "remove"
};
// node_modules/ol/Collection.js
var Property = {
LENGTH: "length"
};
var CollectionEvent = class extends Event_default {
/**
* @param {import("./CollectionEventType.js").default} type Type.
* @param {T} element Element.
* @param {number} index The index of the added or removed element.
*/
constructor(type, element, index) {
super(type);
this.element = element;
this.index = index;
}
};
var Collection = class extends Object_default {
/**
* @param {Array<T>} [array] Array.
* @param {Options} [options] Collection options.
*/
constructor(array, options) {
super();
this.on;
this.once;
this.un;
options = options || {};
this.unique_ = !!options.unique;
this.array_ = array ?? [];
if (this.unique_) {
for (let i = 1, ii = this.array_.length; i < ii; ++i) {
this.assertUnique_(this.array_[i], i);
}
}
this.updateLength_();
}
/**
* Remove all elements from the collection.
* @api
*/
clear() {
while (this.getLength() > 0) {
this.pop();
}
}
/**
* Add elements to the collection. This pushes each item in the provided array
* to the end of the collection.
* @param {!Array<T>} arr Array.
* @return {Collection<T>} This collection.
* @api
*/
extend(arr) {
for (let i = 0, ii = arr.length; i < ii; ++i) {
this.push(arr[i]);
}
return this;
}
/**
* Iterate over each element, calling the provided callback.
* @param {function(T, number, Array<T>): *} f The function to call
* for every element. This function takes 3 arguments (the element, the
* index and the array). The return value is ignored.
* @api
*/
forEach(f) {
const array = this.array_;
for (let i = 0, ii = array.length; i < ii; ++i) {
f(array[i], i, array);
}
}
/**
* Get a reference to the underlying Array object. Warning: if the array
* is mutated, no events will be dispatched by the collection, and the
* collection's "length" property won't be in sync with the actual length
* of the array.
* @return {!Array<T>} Array.
* @api
*/
getArray() {
return this.array_;
}
/**
* Get the element at the provided index.
* @param {number} index Index.
* @return {T} Element.
* @api
*/
item(index) {
return this.array_[index];
}
/**
* Get the length of this collection.
* @return {number} The length of the array.
* @observable
* @api
*/
getLength() {
return this.get(Property.LENGTH);
}
/**
* Insert an element at the provided index.
* @param {number} index Index.
* @param {T} elem Element.
* @api
*/
insertAt(index, elem) {
if (index < 0 || index > this.getLength()) {
throw new Error("Index out of bounds: " + index);
}
if (this.unique_) {
this.assertUnique_(elem);
}
this.array_.splice(index, 0, elem);
this.updateLength_();
this.dispatchEvent(
new CollectionEvent(CollectionEventType_default.ADD, elem, index)
);
}
/**
* Remove the last element of the collection and return it.
* Return `undefined` if the collection is empty.
* @return {T|undefined} Element.
* @api
*/
pop() {
return this.removeAt(this.getLength() - 1);
}
/**
* Insert the provided element at the end of the collection.
* @param {T} elem Element.
* @return {number} New length of the collection.
* @api
*/
push(elem) {
const n = this.getLength();
this.insertAt(n, elem);
return this.getLength();
}
/**
* Remove the first occurrence of an element from the collection.
* @param {T} elem Element.
* @return {T|undefined} The removed element or undefined if none found.
* @api
*/
remove(elem) {
const arr = this.array_;
for (let i = 0, ii = arr.length; i < ii; ++i) {
if (arr[i] === elem) {
return this.removeAt(i);
}
}
return void 0;
}
/**
* Remove the element at the provided index and return it.
* Return `undefined` if the collection does not contain this index.
* @param {number} index Index.
* @return {T|undefined} Value.
* @api
*/
removeAt(index) {
if (index < 0 || index >= this.getLength()) {
return void 0;
}
const prev = this.array_[index];
this.array_.splice(index, 1);
this.updateLength_();
this.dispatchEvent(
/** @type {CollectionEvent<T>} */
new CollectionEvent(CollectionEventType_default.REMOVE, prev, index)
);
return prev;
}
/**
* Set the element at the provided index.
* @param {number} index Index.
* @param {T} elem Element.
* @api
*/
setAt(index, elem) {
const n = this.getLength();
if (index >= n) {
this.insertAt(index, elem);
return;
}
if (index < 0) {
throw new Error("Index out of bounds: " + index);
}
if (this.unique_) {
this.assertUnique_(elem, index);
}
const prev = this.array_[index];
this.array_[index] = elem;
this.dispatchEvent(
/** @type {CollectionEvent<T>} */
new CollectionEvent(CollectionEventType_default.REMOVE, prev, index)
);
this.dispatchEvent(
/** @type {CollectionEvent<T>} */
new CollectionEvent(CollectionEventType_default.ADD, elem, index)
);
}
/**
* @private
*/
updateLength_() {
this.set(Property.LENGTH, this.array_.length);
}
/**
* @private
* @param {T} elem Element.
* @param {number} [except] Optional index to ignore.
*/
assertUnique_(elem, except) {
const array = this.array_;
for (let i = 0, ii = array.length; i < ii; ++i) {
if (array[i] === elem && i !== except) {
throw new Error("Duplicate item added to a unique collection");
}
}
}
};
var Collection_default = Collection;
export {
CollectionEventType_default,
Collection_default
};
//# sourceMappingURL=chunk-M5TTSD4C.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,114 +0,0 @@
import {
easeOut,
linear
} from "./chunk-LMC3RO5P.js";
import {
Object_default
} from "./chunk-Q5ZULJHM.js";
// node_modules/ol/interaction/Property.js
var Property_default = {
ACTIVE: "active"
};
// node_modules/ol/interaction/Interaction.js
var Interaction = class extends Object_default {
/**
* @param {InteractionOptions} [options] Options.
*/
constructor(options) {
super();
this.on;
this.once;
this.un;
if (options && options.handleEvent) {
this.handleEvent = options.handleEvent;
}
this.map_ = null;
this.setActive(true);
}
/**
* Return whether the interaction is currently active.
* @return {boolean} `true` if the interaction is active, `false` otherwise.
* @observable
* @api
*/
getActive() {
return (
/** @type {boolean} */
this.get(Property_default.ACTIVE)
);
}
/**
* Get the map associated with this interaction.
* @return {import("../Map.js").default|null} Map.
* @api
*/
getMap() {
return this.map_;
}
/**
* Handles the {@link module:ol/MapBrowserEvent~MapBrowserEvent map browser event}.
* @param {import("../MapBrowserEvent.js").default} mapBrowserEvent Map browser event.
* @return {boolean} `false` to stop event propagation.
* @api
*/
handleEvent(mapBrowserEvent) {
return true;
}
/**
* Activate or deactivate the interaction.
* @param {boolean} active Active.
* @observable
* @api
*/
setActive(active) {
this.set(Property_default.ACTIVE, active);
}
/**
* Remove the interaction from its current map and attach it to the new map.
* Subclasses may set up event handlers to get notified about changes to
* the map here.
* @param {import("../Map.js").default|null} map Map.
*/
setMap(map) {
this.map_ = map;
}
};
function pan(view, delta, duration) {
const currentCenter = view.getCenterInternal();
if (currentCenter) {
const center = [currentCenter[0] + delta[0], currentCenter[1] + delta[1]];
view.animateInternal({
duration: duration !== void 0 ? duration : 250,
easing: linear,
center: view.getConstrainedCenter(center)
});
}
}
function zoomByDelta(view, delta, anchor, duration) {
const currentZoom = view.getZoom();
if (currentZoom === void 0) {
return;
}
const newZoom = view.getConstrainedZoom(currentZoom + delta);
const newResolution = view.getResolutionForZoom(newZoom);
if (view.getAnimating()) {
view.cancelAnimations();
}
view.animate({
resolution: newResolution,
anchor,
duration: duration !== void 0 ? duration : 250,
easing: easeOut
});
}
var Interaction_default = Interaction;
export {
Property_default,
pan,
zoomByDelta,
Interaction_default
};
//# sourceMappingURL=chunk-MSWSBYBR.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,352 +0,0 @@
import {
EventType_default,
VOID
} from "./chunk-K25ZO44T.js";
import {
clear
} from "./chunk-5RHQVMYD.js";
// node_modules/ol/Disposable.js
var Disposable = class {
constructor() {
this.disposed = false;
}
/**
* Clean up.
*/
dispose() {
if (!this.disposed) {
this.disposed = true;
this.disposeInternal();
}
}
/**
* Extension point for disposable objects.
* @protected
*/
disposeInternal() {
}
};
var Disposable_default = Disposable;
// node_modules/ol/events/Event.js
var BaseEvent = class {
/**
* @param {string} type Type.
*/
constructor(type) {
this.propagationStopped;
this.defaultPrevented;
this.type = type;
this.target = null;
}
/**
* Prevent default. This means that no emulated `click`, `singleclick` or `doubleclick` events
* will be fired.
* @api
*/
preventDefault() {
this.defaultPrevented = true;
}
/**
* Stop event propagation.
* @api
*/
stopPropagation() {
this.propagationStopped = true;
}
};
var Event_default = BaseEvent;
// node_modules/ol/events/Target.js
var Target = class extends Disposable_default {
/**
* @param {*} [target] Default event target for dispatched events.
*/
constructor(target) {
super();
this.eventTarget_ = target;
this.pendingRemovals_ = null;
this.dispatching_ = null;
this.listeners_ = null;
}
/**
* @param {string} type Type.
* @param {import("../events.js").Listener} listener Listener.
*/
addEventListener(type, listener) {
if (!type || !listener) {
return;
}
const listeners = this.listeners_ || (this.listeners_ = {});
const listenersForType = listeners[type] || (listeners[type] = []);
if (!listenersForType.includes(listener)) {
listenersForType.push(listener);
}
}
/**
* Dispatches an event and calls all listeners listening for events
* of this type. The event parameter can either be a string or an
* Object with a `type` property.
*
* @param {import("./Event.js").default|string} event Event object.
* @return {boolean|undefined} `false` if anyone called preventDefault on the
* event object or if any of the listeners returned false.
* @api
*/
dispatchEvent(event) {
const isString = typeof event === "string";
const type = isString ? event : event.type;
const listeners = this.listeners_ && this.listeners_[type];
if (!listeners) {
return;
}
const evt = isString ? new Event_default(event) : (
/** @type {Event} */
event
);
if (!evt.target) {
evt.target = this.eventTarget_ || this;
}
const dispatching = this.dispatching_ || (this.dispatching_ = {});
const pendingRemovals = this.pendingRemovals_ || (this.pendingRemovals_ = {});
if (!(type in dispatching)) {
dispatching[type] = 0;
pendingRemovals[type] = 0;
}
++dispatching[type];
let propagate;
for (let i = 0, ii = listeners.length; i < ii; ++i) {
if ("handleEvent" in listeners[i]) {
propagate = /** @type {import("../events.js").ListenerObject} */
listeners[i].handleEvent(evt);
} else {
propagate = /** @type {import("../events.js").ListenerFunction} */
listeners[i].call(this, evt);
}
if (propagate === false || evt.propagationStopped) {
propagate = false;
break;
}
}
if (--dispatching[type] === 0) {
let pr = pendingRemovals[type];
delete pendingRemovals[type];
while (pr--) {
this.removeEventListener(type, VOID);
}
delete dispatching[type];
}
return propagate;
}
/**
* Clean up.
* @override
*/
disposeInternal() {
this.listeners_ && clear(this.listeners_);
}
/**
* Get the listeners for a specified event type. Listeners are returned in the
* order that they will be called in.
*
* @param {string} type Type.
* @return {Array<import("../events.js").Listener>|undefined} Listeners.
*/
getListeners(type) {
return this.listeners_ && this.listeners_[type] || void 0;
}
/**
* @param {string} [type] Type. If not provided,
* `true` will be returned if this event target has any listeners.
* @return {boolean} Has listeners.
*/
hasListener(type) {
if (!this.listeners_) {
return false;
}
return type ? type in this.listeners_ : Object.keys(this.listeners_).length > 0;
}
/**
* @param {string} type Type.
* @param {import("../events.js").Listener} listener Listener.
*/
removeEventListener(type, listener) {
if (!this.listeners_) {
return;
}
const listeners = this.listeners_[type];
if (!listeners) {
return;
}
const index = listeners.indexOf(listener);
if (index !== -1) {
if (this.pendingRemovals_ && type in this.pendingRemovals_) {
listeners[index] = VOID;
++this.pendingRemovals_[type];
} else {
listeners.splice(index, 1);
if (listeners.length === 0) {
delete this.listeners_[type];
}
}
}
}
};
var Target_default = Target;
// node_modules/ol/events.js
function listen(target, type, listener, thisArg, once) {
if (once) {
const originalListener = listener;
listener = function(event) {
target.removeEventListener(type, listener);
return originalListener.call(thisArg ?? this, event);
};
} else if (thisArg && thisArg !== target) {
listener = listener.bind(thisArg);
}
const eventsKey = {
target,
type,
listener
};
target.addEventListener(type, listener);
return eventsKey;
}
function listenOnce(target, type, listener, thisArg) {
return listen(target, type, listener, thisArg, true);
}
function unlistenByKey(key) {
if (key && key.target) {
key.target.removeEventListener(key.type, key.listener);
clear(key);
}
}
// node_modules/ol/Observable.js
var Observable = class extends Target_default {
constructor() {
super();
this.on = /** @type {ObservableOnSignature<import("./events").EventsKey>} */
this.onInternal;
this.once = /** @type {ObservableOnSignature<import("./events").EventsKey>} */
this.onceInternal;
this.un = /** @type {ObservableOnSignature<void>} */
this.unInternal;
this.revision_ = 0;
}
/**
* Increases the revision counter and dispatches a 'change' event.
* @api
*/
changed() {
++this.revision_;
this.dispatchEvent(EventType_default.CHANGE);
}
/**
* Get the version number for this object. Each time the object is modified,
* its version number will be incremented.
* @return {number} Revision.
* @api
*/
getRevision() {
return this.revision_;
}
/**
* @param {string|Array<string>} type Type.
* @param {function((Event|import("./events/Event").default)): ?} listener Listener.
* @return {import("./events.js").EventsKey|Array<import("./events.js").EventsKey>} Event key.
* @protected
*/
onInternal(type, listener) {
if (Array.isArray(type)) {
const len = type.length;
const keys = new Array(len);
for (let i = 0; i < len; ++i) {
keys[i] = listen(this, type[i], listener);
}
return keys;
}
return listen(
this,
/** @type {string} */
type,
listener
);
}
/**
* @param {string|Array<string>} type Type.
* @param {function((Event|import("./events/Event").default)): ?} listener Listener.
* @return {import("./events.js").EventsKey|Array<import("./events.js").EventsKey>} Event key.
* @protected
*/
onceInternal(type, listener) {
let key;
if (Array.isArray(type)) {
const len = type.length;
key = new Array(len);
for (let i = 0; i < len; ++i) {
key[i] = listenOnce(this, type[i], listener);
}
} else {
key = listenOnce(
this,
/** @type {string} */
type,
listener
);
}
listener.ol_key = key;
return key;
}
/**
* Unlisten for a certain type of event.
* @param {string|Array<string>} type Type.
* @param {function((Event|import("./events/Event").default)): ?} listener Listener.
* @protected
*/
unInternal(type, listener) {
const key = (
/** @type {Object} */
listener.ol_key
);
if (key) {
unByKey(key);
} else if (Array.isArray(type)) {
for (let i = 0, ii = type.length; i < ii; ++i) {
this.removeEventListener(type[i], listener);
}
} else {
this.removeEventListener(type, listener);
}
}
};
Observable.prototype.on;
Observable.prototype.once;
Observable.prototype.un;
function unByKey(key) {
if (Array.isArray(key)) {
for (let i = 0, ii = key.length; i < ii; ++i) {
unlistenByKey(key[i]);
}
} else {
unlistenByKey(
/** @type {import("./events.js").EventsKey} */
key
);
}
}
var Observable_default = Observable;
export {
Disposable_default,
Event_default,
Target_default,
listen,
listenOnce,
unlistenByKey,
unByKey,
Observable_default
};
//# sourceMappingURL=chunk-NGFXCWUF.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,213 +0,0 @@
import {
Control_default
} from "./chunk-VRTURNK3.js";
import {
getUid
} from "./chunk-Q5ZULJHM.js";
// node_modules/ol-ext/control/Bar.js
var ol_control_Bar = class olcontrolBar extends Control_default {
constructor(options) {
options = options || {};
var element = document.createElement("div");
element.classList.add("ol-unselectable", "ol-control", "ol-bar");
if (options.className) {
var classes = options.className.split(" ").filter(function(className) {
return className.length > 0;
});
element.classList.add.apply(element.classList, classes);
}
if (options.group) element.classList.add("ol-group");
super({
element,
target: options.target
});
if (options.id) {
this.element.setAttribute("id", options.id);
} else {
this.element.setAttribute("id", "ol-bar-" + getUid(this));
}
this.set("toggleOne", options.toggleOne);
this.set("autoDeactivate", options.autoDeactivate);
this.controls_ = [];
if (options.controls instanceof Array) {
for (var i = 0; i < options.controls.length; i++) {
this.addControl(options.controls[i]);
}
}
for (var k in options.attributes || {}) {
this.element.setAttribute(k, options.attributes[k]);
}
}
/** Set the control visibility
* @param {boolean} val
*/
setVisible(val) {
if (val) {
this.element.style.display = "";
} else {
this.element.style.display = "none";
}
}
/** Get the control visibility
* @return {boolean} b
*/
getVisible() {
return this.element.style.display != "none";
}
/**
* Set the map instance the control is associated with
* and add its controls associated to this map.
* @param {ol_Map} map The map instance.
*/
setMap(map) {
super.setMap(map);
for (var i = 0; i < this.controls_.length; i++) {
var c = this.controls_[i];
c.setMap(map);
}
}
/** Get controls in the panel
* @param {Array<ol_control_Control>}
*/
getControls() {
return this.controls_;
}
/** Set tool bar position
* @param {string} pos a combinaison of top|left|bottom|right separated with -
*/
setPosition(pos) {
this.element.classList.remove("ol-left", "ol-top", "ol-bottom", "ol-right");
pos = pos.split("-");
for (var i = 0; i < pos.length; i++) {
switch (pos[i]) {
case "top":
case "left":
case "bottom":
case "right":
this.element.classList.add("ol-" + pos[i]);
break;
default:
break;
}
}
}
/** Add a control to the bar
* @param {ol_control_Control} c control to add
*/
addControl(c) {
this.controls_.push(c);
c.setTarget(this.element);
if (this.getMap()) {
this.getMap().addControl(c);
}
if (c._activateBar) c.un("change:active", c._activateBar);
c._activateBar = (function(e) {
this.onActivateControl_(e, c);
}).bind(this);
c.on("change:active", c._activateBar);
if (c.getActive) {
this.onActivateControl_({ target: c, active: c.getActive() }, c);
}
}
/** Remove a control from the bar
* @param {ol_control_Control} c control to remove
*/
removeControl(c) {
const index = this.controls_.indexOf(c);
if (index > -1) {
this.controls_.splice(index, 1);
if (this.getMap()) {
this.getMap().removeControl(c);
}
if (c._activateBar) c.un("change:active", c._activateBar);
delete c._activateBar;
}
}
/** Deativate all controls in a bar
* @param {ol_control_Control} [except] a control
*/
deactivateControls(except) {
for (var i = 0; i < this.controls_.length; i++) {
if (this.controls_[i] !== except && this.controls_[i].setActive) {
this.controls_[i].setActive(false);
}
}
}
/** Get active control in the bar
* @returns {Array<ol_control_Control>}
*/
getActiveControls() {
var active = [];
for (var i = 0, c; c = this.controls_[i]; i++) {
if (c.getActive && c.getActive())
active.push(c);
}
return active;
}
/** Auto activate/deactivate controls in the bar
* @param {boolean} b activate/deactivate
*/
setActive(b) {
if (!b && this.get("autoDeactivate")) {
this.deactivateControls();
}
if (b) {
var ctrls = this.getControls();
for (var i = 0, sb; sb = ctrls[i]; i++) {
if (sb.get("autoActivate"))
sb.setActive(true);
}
}
}
/** Post-process an activated/deactivated control
* @param {ol.event} e :an object with a target {_ol_control_} and active flag {bool}
* @private
*/
onActivateControl_(e, ctrl) {
if (this.get("toggleOne")) {
if (e.active) {
var n;
for (n = 0; n < this.controls_.length; n++) {
if (this.controls_[n] === ctrl)
break;
}
if (n == this.controls_.length)
return;
this.deactivateControls(this.controls_[n]);
} else {
if (!this.getActiveControls().length) {
for (var i = 0, c; c = this.controls_[i]; i++) {
if (c.get("autoActivate")) {
c.setActive(true);
break;
}
}
}
}
}
if (e.type) {
this.dispatchEvent({ type: "control:active", control: ctrl, active: e.active });
} else {
this.dispatchEvent({ type: "control:add", control: ctrl, active: e.active });
}
}
/**
* @param {string} name of the control to search
* @return {ol.control.Control}
*/
getControlsByName(name) {
var controls = this.getControls();
return controls.filter(
function(control) {
return control.get("name") === name;
}
);
}
};
var Bar_default = ol_control_Bar;
export {
Bar_default
};
//# sourceMappingURL=chunk-NMUIRNIP.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,160 +0,0 @@
import {
Button_default
} from "./chunk-VCBXDRBT.js";
// node_modules/ol-ext/control/Toggle.js
var ol_control_Toggle = class olcontrolToggle extends Button_default {
constructor(options) {
options = options || {};
if (options.toggleFn) {
options.onToggle = options.toggleFn;
}
options.handleClick = function() {
self.toggle();
if (options.onToggle) {
options.onToggle.call(self, self.getActive());
}
};
options.className = (options.className || "") + " ol-toggle";
super(options);
var self = this;
this.interaction_ = options.interaction;
if (this.interaction_) {
this.interaction_.setActive(options.active);
this.interaction_.on("change:active", function() {
self.setActive(self.interaction_.getActive());
});
}
this.set("title", options.title);
this.set("autoActivate", options.autoActivate);
if (options.bar) {
this.setSubBar(options.bar);
}
this.setActive(options.active);
this.setDisable(options.disable);
}
/**
* Set the map instance the control is associated with
* and add interaction attached to it to this map.
* @param {_ol_Map_} map The map instance.
*/
setMap(map) {
if (!map && this.getMap()) {
if (this.interaction_) {
this.getMap().removeInteraction(this.interaction_);
}
if (this.subbar_)
this.getMap().removeControl(this.subbar_);
}
super.setMap(map);
if (map) {
if (this.interaction_)
map.addInteraction(this.interaction_);
if (this.subbar_)
map.addControl(this.subbar_);
}
}
/** Get the subbar associated with a control
* @return {ol_control_Bar}
*/
getSubBar() {
return this.subbar_;
}
/** Set the subbar associated with a control
* @param {ol_control_Bar} [bar] a subbar if none remove the current subbar
*/
setSubBar(bar) {
var map = this.getMap();
if (map && this.subbar_) {
map.removeControl(this.subbar_);
}
this.subbar_ = bar;
if (bar) {
this.subbar_.setTarget(this.element);
this.subbar_.element.classList.add("ol-option-bar");
if (map) {
map.addControl(this.subbar_);
}
if (bar.element.id) {
this.getButtonElement().setAttribute("aria-controls", bar.element.id);
bar.element.setAttribute("aria-labelledby", this.getButtonElement().id);
this.on("change:active", (function(e) {
this.getButtonElement().setAttribute("aria-expanded", !!e.active);
}).bind(this));
}
}
}
/**
* Test if the control is disabled.
* @return {bool}
* @api stable
*/
getDisable() {
var button = this.element.querySelector("button");
return button && button.disabled;
}
/** Disable the control. If disable, the control will be deactivated too.
* @param {bool} b disable (or enable) the control, default false (enable)
*/
setDisable(b) {
if (this.getDisable() == b) return;
this.element.querySelector("button").disabled = b;
if (b && this.getActive()) this.setActive(false);
this.dispatchEvent({ type: "change:disable", key: "disable", oldValue: !b, disable: b });
}
/**
* Test if the control is active.
* @return {bool}.
* @api stable
*/
getActive() {
return this.element.classList.contains("ol-active");
}
/** Toggle control state active/deactive
*/
toggle() {
if (this.getActive())
this.setActive(false);
else
this.setActive(true);
}
/** Change control state
* @param {bool} b activate or deactivate the control, default false
*/
setActive(b) {
if (this.interaction_) {
this.interaction_.setActive(b);
}
if (this.subbar_) {
this.subbar_.setActive(b);
}
if (this.getActive() === b) {
return;
}
if (b) {
this.element.classList.add("ol-active");
} else {
this.element.classList.remove("ol-active");
}
this.button_.setAttribute("aria-pressed", b);
this.dispatchEvent({ type: "change:active", key: "active", oldValue: !b, active: b });
}
/** Set the control interaction
* @param {_ol_interaction_} i interaction to associate with the control
*/
setInteraction(i) {
this.interaction_ = i;
}
/** Get the control interaction
* @return {_ol_interaction_} interaction associated with the control
*/
getInteraction() {
return this.interaction_;
}
};
var Toggle_default = ol_control_Toggle;
export {
Toggle_default
};
//# sourceMappingURL=chunk-NNBJMTCH.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,208 +0,0 @@
import {
clamp,
toFixed
} from "./chunk-54BTDBAD.js";
import {
createCanvasContext2D
} from "./chunk-UPTVWZ45.js";
// node_modules/ol/color.js
var NO_COLOR = [NaN, NaN, NaN, 0];
var colorParseContext;
function getColorParseContext() {
if (!colorParseContext) {
colorParseContext = createCanvasContext2D(1, 1, void 0, {
willReadFrequently: true,
desynchronized: true
});
}
return colorParseContext;
}
var rgbModernRegEx = /^rgba?\(\s*(\d+%?)\s+(\d+%?)\s+(\d+%?)(?:\s*\/\s*(\d+%|\d*\.\d+|[01]))?\s*\)$/i;
var rgbLegacyAbsoluteRegEx = /^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*(\d+%|\d*\.\d+|[01]))?\s*\)$/i;
var rgbLegacyPercentageRegEx = /^rgba?\(\s*(\d+%)\s*,\s*(\d+%)\s*,\s*(\d+%)(?:\s*,\s*(\d+%|\d*\.\d+|[01]))?\s*\)$/i;
var hexRegEx = /^#([\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$/i;
function toColorComponent(s, divider) {
return s.endsWith("%") ? Number(s.substring(0, s.length - 1)) / divider : Number(s);
}
function throwInvalidColor(color) {
throw new Error('failed to parse "' + color + '" as color');
}
function parseRgba(color) {
if (color.toLowerCase().startsWith("rgb")) {
const rgb = color.match(rgbLegacyAbsoluteRegEx) || color.match(rgbModernRegEx) || color.match(rgbLegacyPercentageRegEx);
if (rgb) {
const alpha = rgb[4];
const rgbDivider = 100 / 255;
return [
clamp(toColorComponent(rgb[1], rgbDivider) + 0.5 | 0, 0, 255),
clamp(toColorComponent(rgb[2], rgbDivider) + 0.5 | 0, 0, 255),
clamp(toColorComponent(rgb[3], rgbDivider) + 0.5 | 0, 0, 255),
alpha !== void 0 ? clamp(toColorComponent(alpha, 100), 0, 1) : 1
];
}
throwInvalidColor(color);
}
if (color.startsWith("#")) {
if (hexRegEx.test(color)) {
const hex = color.substring(1);
const step = hex.length <= 4 ? 1 : 2;
const colorFromHex = [0, 0, 0, 255];
for (let i = 0, ii = hex.length; i < ii; i += step) {
let colorComponent = parseInt(hex.substring(i, i + step), 16);
if (step === 1) {
colorComponent += colorComponent << 4;
}
colorFromHex[i / step] = colorComponent;
}
colorFromHex[3] = colorFromHex[3] / 255;
return colorFromHex;
}
throwInvalidColor(color);
}
const context = getColorParseContext();
context.fillStyle = "#abcdef";
let invalidCheckFillStyle = context.fillStyle;
context.fillStyle = color;
if (context.fillStyle === invalidCheckFillStyle) {
context.fillStyle = "#fedcba";
invalidCheckFillStyle = context.fillStyle;
context.fillStyle = color;
if (context.fillStyle === invalidCheckFillStyle) {
throwInvalidColor(color);
}
}
const colorString = context.fillStyle;
if (colorString.startsWith("#") || colorString.startsWith("rgba")) {
return parseRgba(colorString);
}
context.clearRect(0, 0, 1, 1);
context.fillRect(0, 0, 1, 1);
const colorFromImage = Array.from(context.getImageData(0, 0, 1, 1).data);
colorFromImage[3] = toFixed(colorFromImage[3] / 255, 3);
return colorFromImage;
}
function asString(color) {
if (typeof color === "string") {
return color;
}
return toString(color);
}
var MAX_CACHE_SIZE = 1024;
var cache = {};
var cacheSize = 0;
function withAlpha(color) {
if (color.length === 4) {
return color;
}
const output = color.slice();
output[3] = 1;
return output;
}
function b1(v) {
return v > 31308e-7 ? Math.pow(v, 1 / 2.4) * 269.025 - 14.025 : v * 3294.6;
}
function b2(v) {
return v > 0.2068965 ? Math.pow(v, 3) : (v - 4 / 29) * (108 / 841);
}
function a1(v) {
return v > 10.314724 ? Math.pow((v + 14.025) / 269.025, 2.4) : v / 3294.6;
}
function a2(v) {
return v > 88564e-7 ? Math.pow(v, 1 / 3) : v / (108 / 841) + 4 / 29;
}
function rgbaToLcha(color) {
const r = a1(color[0]);
const g = a1(color[1]);
const b = a1(color[2]);
const y = a2(r * 0.222488403 + g * 0.716873169 + b * 0.06060791);
const l = 500 * (a2(r * 0.452247074 + g * 0.399439023 + b * 0.148375274) - y);
const q = 200 * (y - a2(r * 0.016863605 + g * 0.117638439 + b * 0.865350722));
const h = Math.atan2(q, l) * (180 / Math.PI);
return [
116 * y - 16,
Math.sqrt(l * l + q * q),
h < 0 ? h + 360 : h,
color[3]
];
}
function lchaToRgba(color) {
const l = (color[0] + 16) / 116;
const c = color[1];
const h = color[2] * Math.PI / 180;
const y = b2(l);
const x = b2(l + c / 500 * Math.cos(h));
const z = b2(l - c / 200 * Math.sin(h));
const r = b1(x * 3.021973625 - y * 1.617392459 - z * 0.404875592);
const g = b1(x * -0.943766287 + y * 1.916279586 + z * 0.027607165);
const b = b1(x * 0.069407491 - y * 0.22898585 + z * 1.159737864);
return [
clamp(r + 0.5 | 0, 0, 255),
clamp(g + 0.5 | 0, 0, 255),
clamp(b + 0.5 | 0, 0, 255),
color[3]
];
}
function fromString(s) {
if (s === "none") {
return NO_COLOR;
}
if (cache.hasOwnProperty(s)) {
return cache[s];
}
if (cacheSize >= MAX_CACHE_SIZE) {
let i = 0;
for (const key in cache) {
if ((i++ & 3) === 0) {
delete cache[key];
--cacheSize;
}
}
}
const color = parseRgba(s);
if (color.length !== 4) {
throwInvalidColor(s);
}
for (const c of color) {
if (isNaN(c)) {
throwInvalidColor(s);
}
}
cache[s] = color;
++cacheSize;
return color;
}
function asArray(color) {
if (Array.isArray(color)) {
return color;
}
return fromString(color);
}
function toString(color) {
let r = color[0];
if (r != (r | 0)) {
r = r + 0.5 | 0;
}
let g = color[1];
if (g != (g | 0)) {
g = g + 0.5 | 0;
}
let b = color[2];
if (b != (b | 0)) {
b = b + 0.5 | 0;
}
const a = color[3] === void 0 ? 1 : Math.round(color[3] * 1e3) / 1e3;
return "rgba(" + r + "," + g + "," + b + "," + a + ")";
}
export {
NO_COLOR,
asString,
withAlpha,
rgbaToLcha,
lchaToRgba,
fromString,
asArray,
toString
};
//# sourceMappingURL=chunk-PGWX4545.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,196 +0,0 @@
import {
Event_default,
Observable_default
} from "./chunk-NGFXCWUF.js";
import {
isEmpty
} from "./chunk-5RHQVMYD.js";
// node_modules/ol/ObjectEventType.js
var ObjectEventType_default = {
/**
* Triggered when a property is changed.
* @event module:ol/Object.ObjectEvent#propertychange
* @api
*/
PROPERTYCHANGE: "propertychange"
};
// node_modules/ol/util.js
function abstract() {
throw new Error("Unimplemented abstract method.");
}
var uidCounter_ = 0;
function getUid(obj) {
return obj.ol_uid || (obj.ol_uid = String(++uidCounter_));
}
// node_modules/ol/Object.js
var ObjectEvent = class extends Event_default {
/**
* @param {string} type The event type.
* @param {string} key The property name.
* @param {*} oldValue The old value for `key`.
*/
constructor(type, key, oldValue) {
super(type);
this.key = key;
this.oldValue = oldValue;
}
};
var BaseObject = class extends Observable_default {
/**
* @param {Object<string, *>} [values] An object with key-value pairs.
*/
constructor(values) {
super();
this.on;
this.once;
this.un;
getUid(this);
this.values_ = null;
if (values !== void 0) {
this.setProperties(values);
}
}
/**
* Gets a value.
* @param {string} key Key name.
* @return {*} Value.
* @api
*/
get(key) {
let value;
if (this.values_ && this.values_.hasOwnProperty(key)) {
value = this.values_[key];
}
return value;
}
/**
* Get a list of object property names.
* @return {Array<string>} List of property names.
* @api
*/
getKeys() {
return this.values_ && Object.keys(this.values_) || [];
}
/**
* Get an object of all property names and values.
* @return {Object<string, *>} Object.
* @api
*/
getProperties() {
return this.values_ && Object.assign({}, this.values_) || {};
}
/**
* Get an object of all property names and values.
* @return {Object<string, *>?} Object.
*/
getPropertiesInternal() {
return this.values_;
}
/**
* @return {boolean} The object has properties.
*/
hasProperties() {
return !!this.values_;
}
/**
* @param {string} key Key name.
* @param {*} oldValue Old value.
*/
notify(key, oldValue) {
let eventType;
eventType = `change:${key}`;
if (this.hasListener(eventType)) {
this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));
}
eventType = ObjectEventType_default.PROPERTYCHANGE;
if (this.hasListener(eventType)) {
this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));
}
}
/**
* @param {string} key Key name.
* @param {import("./events.js").Listener} listener Listener.
*/
addChangeListener(key, listener) {
this.addEventListener(`change:${key}`, listener);
}
/**
* @param {string} key Key name.
* @param {import("./events.js").Listener} listener Listener.
*/
removeChangeListener(key, listener) {
this.removeEventListener(`change:${key}`, listener);
}
/**
* Sets a value.
* @param {string} key Key name.
* @param {*} value Value.
* @param {boolean} [silent] Update without triggering an event.
* @api
*/
set(key, value, silent) {
const values = this.values_ || (this.values_ = {});
if (silent) {
values[key] = value;
} else {
const oldValue = values[key];
values[key] = value;
if (oldValue !== value) {
this.notify(key, oldValue);
}
}
}
/**
* Sets a collection of key-value pairs. Note that this changes any existing
* properties and adds new ones (it does not remove any existing properties).
* @param {Object<string, *>} values Values.
* @param {boolean} [silent] Update without triggering an event.
* @api
*/
setProperties(values, silent) {
for (const key in values) {
this.set(key, values[key], silent);
}
}
/**
* Apply any properties from another object without triggering events.
* @param {BaseObject} source The source object.
* @protected
*/
applyProperties(source) {
if (!source.values_) {
return;
}
Object.assign(this.values_ || (this.values_ = {}), source.values_);
}
/**
* Unsets a property.
* @param {string} key Key name.
* @param {boolean} [silent] Unset without triggering an event.
* @api
*/
unset(key, silent) {
if (this.values_ && key in this.values_) {
const oldValue = this.values_[key];
delete this.values_[key];
if (isEmpty(this.values_)) {
this.values_ = null;
}
if (!silent) {
this.notify(key, oldValue);
}
}
}
};
var Object_default = BaseObject;
export {
ObjectEventType_default,
abstract,
getUid,
Object_default
};
//# sourceMappingURL=chunk-Q5ZULJHM.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,177 +0,0 @@
import {
MAC,
WEBKIT
} from "./chunk-5XHD7RSF.js";
import {
EventType_default,
FALSE,
TRUE
} from "./chunk-K25ZO44T.js";
// node_modules/ol/MapBrowserEventType.js
var MapBrowserEventType_default = {
/**
* A true single click with no dragging and no double click. Note that this
* event is delayed by 250 ms to ensure that it is not a double click.
* @event module:ol/MapBrowserEvent~MapBrowserEvent#singleclick
* @api
*/
SINGLECLICK: "singleclick",
/**
* A click with no dragging. A double click will fire two of this.
* @event module:ol/MapBrowserEvent~MapBrowserEvent#click
* @api
*/
CLICK: EventType_default.CLICK,
/**
* A true double click, with no dragging.
* @event module:ol/MapBrowserEvent~MapBrowserEvent#dblclick
* @api
*/
DBLCLICK: EventType_default.DBLCLICK,
/**
* Triggered when a pointer is dragged.
* @event module:ol/MapBrowserEvent~MapBrowserEvent#pointerdrag
* @api
*/
POINTERDRAG: "pointerdrag",
/**
* Triggered when a pointer is moved. Note that on touch devices this is
* triggered when the map is panned, so is not the same as mousemove.
* @event module:ol/MapBrowserEvent~MapBrowserEvent#pointermove
* @api
*/
POINTERMOVE: "pointermove",
POINTERDOWN: "pointerdown",
POINTERUP: "pointerup",
POINTEROVER: "pointerover",
POINTEROUT: "pointerout",
POINTERENTER: "pointerenter",
POINTERLEAVE: "pointerleave",
POINTERCANCEL: "pointercancel"
};
// node_modules/ol/events/condition.js
function all(var_args) {
const conditions = arguments;
return function(event) {
let pass = true;
for (let i = 0, ii = conditions.length; i < ii; ++i) {
pass = pass && conditions[i](event);
if (!pass) {
break;
}
}
return pass;
};
}
var altKeyOnly = function(mapBrowserEvent) {
const originalEvent = mapBrowserEvent.originalEvent;
return originalEvent.altKey && !(originalEvent.metaKey || originalEvent.ctrlKey) && !originalEvent.shiftKey;
};
var altShiftKeysOnly = function(mapBrowserEvent) {
const originalEvent = mapBrowserEvent.originalEvent;
return originalEvent.altKey && !(originalEvent.metaKey || originalEvent.ctrlKey) && originalEvent.shiftKey;
};
var focus = function(event) {
const targetElement = event.map.getTargetElement();
const rootNode = targetElement.getRootNode();
const activeElement = event.map.getOwnerDocument().activeElement;
return rootNode instanceof ShadowRoot ? rootNode.host.contains(activeElement) : targetElement.contains(activeElement);
};
var focusWithTabindex = function(event) {
const targetElement = event.map.getTargetElement();
const rootNode = targetElement.getRootNode();
const tabIndexCandidate = rootNode instanceof ShadowRoot ? rootNode.host : targetElement;
return tabIndexCandidate.hasAttribute("tabindex") ? focus(event) : true;
};
var always = TRUE;
var click = function(mapBrowserEvent) {
return mapBrowserEvent.type == MapBrowserEventType_default.CLICK;
};
var mouseActionButton = function(mapBrowserEvent) {
const originalEvent = mapBrowserEvent.originalEvent;
return "pointerId" in originalEvent && originalEvent.button == 0 && !(WEBKIT && MAC && originalEvent.ctrlKey);
};
var never = FALSE;
var pointerMove = function(mapBrowserEvent) {
return mapBrowserEvent.type == "pointermove";
};
var singleClick = function(mapBrowserEvent) {
return mapBrowserEvent.type == MapBrowserEventType_default.SINGLECLICK;
};
var doubleClick = function(mapBrowserEvent) {
return mapBrowserEvent.type == MapBrowserEventType_default.DBLCLICK;
};
var noModifierKeys = function(mapBrowserEvent) {
const originalEvent = (
/** @type {KeyboardEvent|MouseEvent|TouchEvent} */
mapBrowserEvent.originalEvent
);
return !originalEvent.altKey && !(originalEvent.metaKey || originalEvent.ctrlKey) && !originalEvent.shiftKey;
};
var platformModifierKeyOnly = function(mapBrowserEvent) {
const originalEvent = mapBrowserEvent.originalEvent;
return !originalEvent.altKey && (MAC ? originalEvent.metaKey : originalEvent.ctrlKey) && !originalEvent.shiftKey;
};
var platformModifierKey = function(mapBrowserEvent) {
const originalEvent = mapBrowserEvent.originalEvent;
return MAC ? originalEvent.metaKey : originalEvent.ctrlKey;
};
var shiftKeyOnly = function(mapBrowserEvent) {
const originalEvent = mapBrowserEvent.originalEvent;
return !originalEvent.altKey && !(originalEvent.metaKey || originalEvent.ctrlKey) && originalEvent.shiftKey;
};
var targetNotEditable = function(mapBrowserEvent) {
const originalEvent = mapBrowserEvent.originalEvent;
const tagName = (
/** @type {Element} */
originalEvent.target.tagName
);
return tagName !== "INPUT" && tagName !== "SELECT" && tagName !== "TEXTAREA" && // `isContentEditable` is only available on `HTMLElement`, but it may also be a
// different type like `SVGElement`.
// @ts-ignore
!originalEvent.target.isContentEditable;
};
var mouseOnly = function(mapBrowserEvent) {
const pointerEvent = mapBrowserEvent.originalEvent;
return "pointerId" in pointerEvent && pointerEvent.pointerType == "mouse";
};
var touchOnly = function(mapBrowserEvent) {
const pointerEvt = mapBrowserEvent.originalEvent;
return "pointerId" in pointerEvt && pointerEvt.pointerType === "touch";
};
var penOnly = function(mapBrowserEvent) {
const pointerEvt = mapBrowserEvent.originalEvent;
return "pointerId" in pointerEvt && pointerEvt.pointerType === "pen";
};
var primaryAction = function(mapBrowserEvent) {
const pointerEvent = mapBrowserEvent.originalEvent;
return "pointerId" in pointerEvent && pointerEvent.isPrimary && pointerEvent.button === 0;
};
export {
MapBrowserEventType_default,
all,
altKeyOnly,
altShiftKeysOnly,
focus,
focusWithTabindex,
always,
click,
mouseActionButton,
never,
pointerMove,
singleClick,
doubleClick,
noModifierKeys,
platformModifierKeyOnly,
platformModifierKey,
shiftKeyOnly,
targetNotEditable,
mouseOnly,
touchOnly,
penOnly,
primaryAction
};
//# sourceMappingURL=chunk-QCJTGAWF.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,11 +0,0 @@
// node_modules/ol/asserts.js
function assert(assertion, errorMessage) {
if (!assertion) {
throw new Error(errorMessage);
}
}
export {
assert
};
//# sourceMappingURL=chunk-QFCIXVZ3.js.map

Some files were not shown because too many files have changed in this diff Show More