Repository: geospoc/v-mapbox Branch: main Commit: c3177730c100 Files: 101 Total size: 221.6 KB Directory structure: gitextract_p1oo094f/ ├── .browserslistrc ├── .editorconfig ├── .eslintignore ├── .eslintrc.cjs ├── .gitattributes ├── .github/ │ ├── dependabot.yml │ └── workflows/ │ ├── automerger.yml │ ├── ci.yml │ ├── codeql.yml │ ├── ct.yml │ ├── lint-pr.yml │ ├── pipeline.yml │ └── shipjs-trigger.yml ├── .gitignore ├── .husky/ │ ├── commit-msg │ └── pre-commit ├── .npmrc ├── .nvmrc ├── .vscode/ │ ├── extensions.json │ └── settings.json ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── bun.lockb ├── commitlint.config.cjs ├── docs/ │ ├── .vitepress/ │ │ └── config.ts │ ├── api/ │ │ ├── Layers/ │ │ │ ├── canvaslayer.md │ │ │ ├── geojsonlayer.md │ │ │ ├── imagelayer.md │ │ │ ├── index.md │ │ │ ├── rasterlayer.md │ │ │ ├── vectorlayer.md │ │ │ └── videolayer.md │ │ ├── controls.md │ │ ├── index.md │ │ ├── marker.md │ │ └── popup.md │ ├── guide/ │ │ ├── basemap.md │ │ ├── composition.md │ │ ├── controls.md │ │ ├── index.md │ │ ├── layers-and-sources.md │ │ └── markers-and-popups.md │ ├── index.md │ └── plugin-components/ │ ├── index.md │ └── plugin-components-development.md ├── jsr.json ├── lint-staged.config.cjs ├── netlify.toml ├── package.json ├── prettier.config.cjs ├── scripts/ │ ├── build.sh │ └── bump-jsr-version.cjs ├── ship.config.cjs ├── src/ │ ├── constants/ │ │ └── events/ │ │ ├── index.ts │ │ ├── layer.ts │ │ ├── map.ts │ │ ├── marker.ts │ │ └── popup.ts │ ├── controls/ │ │ ├── attribution/ │ │ │ ├── VControlAttribution.vue │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── fullscreen/ │ │ │ ├── VControlFullscreen.vue │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── geolocate/ │ │ │ ├── VControlGeolocate.vue │ │ │ ├── events.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── index.ts │ │ ├── navigation/ │ │ │ ├── VControlNavigation.vue │ │ │ ├── index.ts │ │ │ └── types.ts │ │ └── scale/ │ │ ├── VControlScale.vue │ │ ├── index.ts │ │ └── types.ts │ ├── index.ts │ ├── layers/ │ │ ├── deck.gl/ │ │ │ ├── VLayerDeckArc.vue │ │ │ └── VLayerDeckGeojson.vue │ │ └── mapbox/ │ │ ├── VLayerMapboxCanvas.vue │ │ ├── VLayerMapboxGeojson.vue │ │ ├── VLayerMapboxImage.vue │ │ ├── VLayerMapboxRaster.vue │ │ ├── VLayerMapboxVector.vue │ │ └── VLayerMapboxVideo.vue │ ├── map/ │ │ └── VMap.vue │ ├── markers/ │ │ └── VMarker.vue │ ├── popups/ │ │ └── VPopup.vue │ └── utils/ │ ├── index.ts │ ├── injects.ts │ └── symbols.ts ├── stylelint.config.cjs ├── test/ │ ├── map/ │ │ └── VMap.spec.ts │ ├── markers/ │ │ └── VMarker.spec.ts │ ├── popups/ │ │ └── VPopup.spec.ts │ └── setup/ │ └── index.ts ├── tsconfig.json ├── vite-env.d.ts ├── vite.config.ts └── vitest.config.ts ================================================ FILE CONTENTS ================================================ ================================================ FILE: .browserslistrc ================================================ defaults, not IE 11, maintained node versions ================================================ FILE: .editorconfig ================================================ # editorconfig.org root = true [*] indent_style = space indent_size = 2 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [*.md] trim_trailing_whitespace = false ================================================ FILE: .eslintignore ================================================ node_modules docs dist ================================================ FILE: .eslintrc.cjs ================================================ module.exports = { root: true, env: { browser: true, node: true, es2022: true, }, parserOptions: { parser: '@typescript-eslint/parser', ecmaVersion: 2022, sourceType: 'module', lib: ['es2022'], ecmaFeatures: { jsx: true, tsx: true, }, extraFileExtensions: ['.vue'], }, plugins: [ '@typescript-eslint', 'import', 'jsdoc', 'regexp', 'security', 'vue', 'prettier', ], extends: [ 'plugin:@typescript-eslint/recommended', 'plugin:import/recommended', 'plugin:import/typescript', 'plugin:jsdoc/recommended', 'plugin:regexp/recommended', 'plugin:security/recommended', 'plugin:vue/vue3-recommended', 'plugin:prettier/recommended', 'prettier', ], rules: { 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'vue/component-tags-order': [ 'error', { order: ['script[setup]', 'template', 'style[scoped]'], }, ], }, }; ================================================ FILE: .gitattributes ================================================ # Auto detect text files and perform LF normalization * text=auto ================================================ FILE: .github/dependabot.yml ================================================ version: 2 updates: - package-ecosystem: npm versioning-strategy: increase directory: '/' schedule: interval: daily time: '00:00' timezone: Asia/Calcutta groups: npm-development: dependency-type: development update-types: - minor - patch npm-production: dependency-type: production update-types: - patch reviewers: - vinayakkulkarni assignees: - vinayakkulkarni commit-message: prefix: fix prefix-development: chore include: scope - package-ecosystem: github-actions directory: '/' schedule: interval: daily time: '00:00' timezone: Asia/Calcutta groups: actions-minor: update-types: - minor - patch reviewers: - vinayakkulkarni assignees: - vinayakkulkarni commit-message: prefix: fix prefix-development: chore include: scope ================================================ FILE: .github/workflows/automerger.yml ================================================ name: 'Automerge Dependabot PRs' on: pull_request_target permissions: pull-requests: write contents: write jobs: dependabot: runs-on: ubuntu-latest if: ${{ github.actor == 'dependabot[bot]' }} steps: - name: Dependabot metadata 🤖 id: metadata uses: dependabot/fetch-metadata@v2.1.0 with: alert-lookup: true compat-lookup: true github-token: ${{ secrets.DEPENDABOT_TOKEN }} - name: Authenticate CLI with PAT 🔐 run: echo "${{ secrets.DEPENDABOT_TOKEN }}" | gh auth login --with-token - name: Approve Dependabot PRs 👍 run: gh pr review --approve "$PR_URL" env: PR_URL: ${{ github.event.pull_request.html_url }} GITHUB_TOKEN: ${{ secrets.DEPENDABOT_TOKEN }} - name: Auto-merge Dependabot PRs 🕺 if: steps.metadata.outputs.update-type == 'version-update:semver-minor' || steps.metadata.outputs.update-type == 'version-update:semver-patch' run: gh pr merge --auto --squash "$PR_URL" env: PR_URL: ${{ github.event.pull_request.html_url }} GITHUB_TOKEN: ${{ secrets.DEPENDABOT_TOKEN }} ================================================ FILE: .github/workflows/ci.yml ================================================ name: 'Continuous Integration' on: workflow_call: permissions: checks: write contents: read jobs: ci: name: 'CI' runs-on: ubuntu-latest steps: - name: Check out repository 🎉 uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - name: Setup bun env 🐰 uses: oven-sh/setup-bun@v1 with: bun-version: latest - name: Install dependencies 🚀 run: bun install - name: Run linter(s) 👀 uses: wearerequired/lint-action@v2 with: github_token: ${{ secrets.GITHUB_TOKEN }} continue_on_error: false git_name: github-actions[bot] git_email: github-actions[bot]@users.noreply.github.com auto_fix: false neutral_check_on_warning: true stylelint: false stylelint_extensions: css,scss,vue eslint: true eslint_extensions: js,ts,vue prettier: true prettier_extensions: js,ts,vue - name: Build the package 🎉 run: bun run build ================================================ FILE: .github/workflows/codeql.yml ================================================ name: CodeQL on: push: branches: - main pull_request: branches: - main schedule: - cron: '45 23 * * 2' jobs: analyze: name: Analyze runs-on: ubuntu-latest permissions: actions: read contents: read security-events: write strategy: fail-fast: false matrix: language: [javascript] steps: - name: Checkout repository uses: actions/checkout@v4 - name: Initialize CodeQL uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} queries: +security-and-quality - name: Autobuild uses: github/codeql-action/autobuild@v3 - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 with: category: /language:${{ matrix.language }} ================================================ FILE: .github/workflows/ct.yml ================================================ name: 'Continuous Testing' on: workflow_call: permissions: checks: write contents: read jobs: ct: name: 'CT' runs-on: ubuntu-latest steps: - name: Check out repository 🎉 uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - name: Setup bun env 🐰 uses: oven-sh/setup-bun@v1 with: bun-version: latest - name: Install dependencies 🚀 run: bun install - name: Run tests 🧪 run: bun run test - name: Run coverage 🧪 run: bun run test:coverage ================================================ FILE: .github/workflows/lint-pr.yml ================================================ name: 'Lint PR' on: pull_request_target: types: - opened - edited - synchronize jobs: validate-pr-title: name: Validate PR title runs-on: ubuntu-latest steps: - uses: amannn/action-semantic-pull-request@v5.5.2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} check-sign-off: if: startsWith(github.head_ref, 'releases/v') == false name: Write comment if unsigned commits found env: FORCE_COLOR: 1 runs-on: ubuntu-latest steps: - uses: live627/check-pr-signoff-action@v1 with: token: ${{ secrets.GITHUB_TOKEN }} ================================================ FILE: .github/workflows/pipeline.yml ================================================ name: 'The Pipeline' on: push: branches: - main pull_request: branches: - main concurrency: group: ci-${{ github.ref }}-1 cancel-in-progress: true jobs: extract-branch: name: 'Fetch branch' runs-on: ubuntu-latest outputs: current_branch: ${{ steps.get-branch.outputs.current_branch }} steps: - name: Extract branch name 🕊 id: get-branch run: echo "current_branch=${GITHUB_REF##*/}" >> $GITHUB_OUTPUT ci: name: 'CI' needs: - extract-branch uses: ./.github/workflows/ci.yml ct: name: 'CT' needs: - extract-branch uses: ./.github/workflows/ct.yml ================================================ FILE: .github/workflows/shipjs-trigger.yml ================================================ name: Ship js trigger on: pull_request: types: - closed jobs: publish-to-npm: name: 'Publishing to NPM ✨' runs-on: ubuntu-latest if: github.event.pull_request.merged == true && startsWith(github.head_ref, 'releases/v') steps: - name: Checkout code 🛎 uses: actions/checkout@v4 with: fetch-depth: 0 ref: main - name: Setup GitHub Actor run: | git config --global user.email "action@github.com" git config --global user.name "GitHub Action" - name: Setup bun env 🐰 uses: oven-sh/setup-bun@v1 with: bun-version: 1.0.25+a8ff7be64 - name: Install dependencies 🚀 run: bun install - name: Trigger a release (NPM) 🥳 run: bunx shipjs trigger env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} SLACK_INCOMING_HOOK: ${{ secrets.SLACK_INCOMING_HOOK }} publish-to-jsr: name: 'Publishing to JSR ✨' runs-on: ubuntu-latest needs: publish-to-npm permissions: contents: read id-token: write steps: - name: Checkout code 🛎 uses: actions/checkout@v4 with: fetch-depth: 0 ref: main - name: Setup bun env 🐰 uses: oven-sh/setup-bun@v1 with: bun-version: latest - name: Install dependencies 🚀 run: bun install - name: Build the package 🎉 run: bun run build - name: Trigger a release (JSR) 🥳 run: bunx jsr publish ================================================ FILE: .gitignore ================================================ # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* lerna-debug.log* # Diagnostic reports (https://nodejs.org/api/report.html) report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json # Runtime data pids *.pid *.seed *.pid.lock # Directory for instrumented libs generated by jscoverage/JSCover lib-cov # Coverage directory used by tools like istanbul coverage *.lcov # nyc test coverage .nyc_output # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) .grunt # Bower dependency directory (https://bower.io/) bower_components # node-waf configuration .lock-wscript # Compiled binary addons (https://nodejs.org/api/addons.html) build/Release # Dependency directories node_modules/ jspm_packages/ # TypeScript v1 declaration files typings/ # TypeScript cache *.tsbuildinfo # Optional npm cache directory .npm # Optional eslint cache .eslintcache # Microbundle cache .rpt2_cache/ .rts2_cache_cjs/ .rts2_cache_es/ .rts2_cache_umd/ # Optional REPL history .node_repl_history # Output of 'npm pack' *.tgz # Yarn Integrity file .yarn-integrity # dotenv environment variables file .env .env.test # parcel-bundler cache (https://parceljs.org/) .cache # Next.js build output .next # Nuxt.js build / generate output .nuxt dist # Gatsby files .cache/ # Comment in the public line in if your project uses Gatsby and *not* Next.js # https://nextjs.org/blog/next-9-1#public-directory-support # public # vuepress build output .vuepress/dist # Serverless directories .serverless/ # FuseBox cache .fusebox/ # DynamoDB Local files .dynamodb/ # TernJS port file .tern-port .DS_Store .temp cache/ ================================================ FILE: .husky/commit-msg ================================================ NAME=$(git config user.name) EMAIL=$(git config user.email) if [ -z "$NAME" ]; then echo "empty git config user.name" exit 1 fi if [ -z "$EMAIL" ]; then echo "empty git config user.email" exit 1 fi git interpret-trailers --if-exists doNothing --trailer \ "Signed-off-by: $NAME <$EMAIL>" \ --in-place "$1" bun commitlint --edit $1 ================================================ FILE: .husky/pre-commit ================================================ bun lint-staged --no-stash ================================================ FILE: .npmrc ================================================ registry=https://registry.npmjs.org @jsr:registry=https://npm.jsr.io ================================================ FILE: .nvmrc ================================================ 20 ================================================ FILE: .vscode/extensions.json ================================================ { "recommendations": [ "Vue.volar", "Vue.vscode-typescript-vue-plugin" ] } ================================================ FILE: .vscode/settings.json ================================================ { "files.eol": "\n", "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll": "explicit" }, } ================================================ FILE: CHANGELOG.md ================================================ # [5.1.0](https://github.com/geospoc/v-mapbox/compare/v5.0.0...v5.1.0) (2024-05-19) ## 5.0.0 (2024-02-05) * chore: update job name in CT workflow ([e97fedf](https://github.com/geospoc/v-mapbox/commit/e97fedf)) * chore: upgrade vite 5.x 🤷‍♂️ ([646ec36](https://github.com/geospoc/v-mapbox/commit/646ec36)) * chore(deps-dev): bump @babel/core from 7.21.0 to 7.21.3 ([f1a692e](https://github.com/geospoc/v-mapbox/commit/f1a692e)) * chore(deps-dev): Bump @babel/core from 7.21.3 to 7.21.4 ([ab57f85](https://github.com/geospoc/v-mapbox/commit/ab57f85)) * chore(deps-dev): bump @babel/core from 7.21.4 to 7.21.5 ([9ac94ac](https://github.com/geospoc/v-mapbox/commit/9ac94ac)) * chore(deps-dev): bump @babel/core from 7.21.5 to 7.21.8 ([96edaa5](https://github.com/geospoc/v-mapbox/commit/96edaa5)) * chore(deps-dev): bump @babel/core from 7.21.8 to 7.22.1 ([95881df](https://github.com/geospoc/v-mapbox/commit/95881df)) * chore(deps-dev): bump @babel/core from 7.22.1 to 7.22.5 ([2de4173](https://github.com/geospoc/v-mapbox/commit/2de4173)) * chore(deps-dev): bump @babel/core from 7.22.5 to 7.22.6 ([e403a13](https://github.com/geospoc/v-mapbox/commit/e403a13)) * chore(deps-dev): bump @babel/core from 7.22.6 to 7.22.9 ([300a209](https://github.com/geospoc/v-mapbox/commit/300a209)) * chore(deps-dev): bump @babel/core from 7.22.9 to 7.22.10 ([01cad36](https://github.com/geospoc/v-mapbox/commit/01cad36)) * chore(deps-dev): bump @babel/traverse from 7.22.10 to 7.23.2 ([015630b](https://github.com/geospoc/v-mapbox/commit/015630b)) * chore(deps-dev): Bump @commitlint/cli from 17.4.4 to 17.5.0 ([1e9dafc](https://github.com/geospoc/v-mapbox/commit/1e9dafc)) * chore(deps-dev): Bump @commitlint/cli from 17.5.0 to 17.5.1 ([2951d45](https://github.com/geospoc/v-mapbox/commit/2951d45)) * chore(deps-dev): bump @commitlint/cli from 17.5.1 to 17.6.1 ([a33a9f0](https://github.com/geospoc/v-mapbox/commit/a33a9f0)) * chore(deps-dev): bump @commitlint/cli from 17.6.1 to 17.6.3 ([a524e17](https://github.com/geospoc/v-mapbox/commit/a524e17)) * chore(deps-dev): bump @commitlint/cli from 17.6.3 to 17.6.5 ([f44630e](https://github.com/geospoc/v-mapbox/commit/f44630e)) * chore(deps-dev): bump @commitlint/cli from 17.6.5 to 17.6.6 ([6be3a51](https://github.com/geospoc/v-mapbox/commit/6be3a51)) * chore(deps-dev): bump @commitlint/cli from 17.6.6 to 17.6.7 ([2e3d55e](https://github.com/geospoc/v-mapbox/commit/2e3d55e)) * chore(deps-dev): bump @commitlint/cli from 17.6.7 to 17.7.1 ([d676131](https://github.com/geospoc/v-mapbox/commit/d676131)) * chore(deps-dev): bump @commitlint/config-conventional ([222c846](https://github.com/geospoc/v-mapbox/commit/222c846)) * chore(deps-dev): bump @commitlint/config-conventional ([0786904](https://github.com/geospoc/v-mapbox/commit/0786904)) * chore(deps-dev): bump @commitlint/config-conventional ([46ffc63](https://github.com/geospoc/v-mapbox/commit/46ffc63)) * chore(deps-dev): bump @commitlint/config-conventional ([447be7d](https://github.com/geospoc/v-mapbox/commit/447be7d)) * chore(deps-dev): bump @commitlint/config-conventional ([0900fe6](https://github.com/geospoc/v-mapbox/commit/0900fe6)) * chore(deps-dev): bump @commitlint/config-conventional ([6f46221](https://github.com/geospoc/v-mapbox/commit/6f46221)) * chore(deps-dev): bump @commitlint/config-conventional ([e93b71a](https://github.com/geospoc/v-mapbox/commit/e93b71a)) * chore(deps-dev): Bump @types/node from 18.15.10 to 18.15.11 ([7315cce](https://github.com/geospoc/v-mapbox/commit/7315cce)) * chore(deps-dev): bump @types/node from 18.15.11 to 18.16.0 ([96f5087](https://github.com/geospoc/v-mapbox/commit/96f5087)) * chore(deps-dev): Bump @types/node from 18.15.3 to 18.15.5 ([55601f2](https://github.com/geospoc/v-mapbox/commit/55601f2)) * chore(deps-dev): Bump @types/node from 18.15.5 to 18.15.10 ([d71cb63](https://github.com/geospoc/v-mapbox/commit/d71cb63)) * chore(deps-dev): bump @types/node from 18.16.0 to 18.16.1 ([c25e209](https://github.com/geospoc/v-mapbox/commit/c25e209)) * chore(deps-dev): bump @types/node from 18.16.1 to 18.16.3 ([31b398e](https://github.com/geospoc/v-mapbox/commit/31b398e)) * chore(deps-dev): bump @types/node from 18.16.3 to 20.1.0 ([dc5f660](https://github.com/geospoc/v-mapbox/commit/dc5f660)) * chore(deps-dev): bump @types/node from 20.1.0 to 20.1.1 ([92decf1](https://github.com/geospoc/v-mapbox/commit/92decf1)) * chore(deps-dev): bump @types/node from 20.1.1 to 20.1.3 ([fa026ac](https://github.com/geospoc/v-mapbox/commit/fa026ac)) * chore(deps-dev): bump @types/node from 20.1.3 to 20.1.4 ([f062043](https://github.com/geospoc/v-mapbox/commit/f062043)) * chore(deps-dev): bump @types/node from 20.1.4 to 20.1.6 ([bcc89b7](https://github.com/geospoc/v-mapbox/commit/bcc89b7)) * chore(deps-dev): bump @types/node from 20.1.6 to 20.1.7 ([2b4898c](https://github.com/geospoc/v-mapbox/commit/2b4898c)) * chore(deps-dev): bump @types/node from 20.1.7 to 20.2.1 ([9b4faf5](https://github.com/geospoc/v-mapbox/commit/9b4faf5)) * chore(deps-dev): bump @types/node from 20.2.1 to 20.2.3 ([3a1e684](https://github.com/geospoc/v-mapbox/commit/3a1e684)) * chore(deps-dev): bump @types/node from 20.2.3 to 20.2.5 ([5268ed0](https://github.com/geospoc/v-mapbox/commit/5268ed0)) * chore(deps-dev): bump @types/node from 20.2.5 to 20.3.0 ([03983e0](https://github.com/geospoc/v-mapbox/commit/03983e0)) * chore(deps-dev): bump @types/node from 20.3.0 to 20.3.1 ([fb6b166](https://github.com/geospoc/v-mapbox/commit/fb6b166)) * chore(deps-dev): bump @types/node from 20.3.1 to 20.3.2 ([d4cbbda](https://github.com/geospoc/v-mapbox/commit/d4cbbda)) * chore(deps-dev): bump @types/node from 20.3.2 to 20.3.3 ([995da01](https://github.com/geospoc/v-mapbox/commit/995da01)) * chore(deps-dev): bump @types/node from 20.3.3 to 20.4.1 ([8f48cee](https://github.com/geospoc/v-mapbox/commit/8f48cee)) * chore(deps-dev): bump @types/node from 20.4.1 to 20.4.6 ([ba901b2](https://github.com/geospoc/v-mapbox/commit/ba901b2)) * chore(deps-dev): bump @types/node from 20.4.6 to 20.4.9 ([b1091fc](https://github.com/geospoc/v-mapbox/commit/b1091fc)) * chore(deps-dev): bump @types/node from 20.4.9 to 20.5.0 ([19b6916](https://github.com/geospoc/v-mapbox/commit/19b6916)) * chore(deps-dev): bump @typescript-eslint/eslint-plugin ([177fd8f](https://github.com/geospoc/v-mapbox/commit/177fd8f)) * chore(deps-dev): bump @typescript-eslint/eslint-plugin ([d11c2bf](https://github.com/geospoc/v-mapbox/commit/d11c2bf)) * chore(deps-dev): bump @typescript-eslint/eslint-plugin ([d78ac8a](https://github.com/geospoc/v-mapbox/commit/d78ac8a)) * chore(deps-dev): bump @typescript-eslint/eslint-plugin ([4b5cc2f](https://github.com/geospoc/v-mapbox/commit/4b5cc2f)) * chore(deps-dev): bump @typescript-eslint/eslint-plugin ([d869762](https://github.com/geospoc/v-mapbox/commit/d869762)) * chore(deps-dev): bump @typescript-eslint/eslint-plugin ([9d8e4e8](https://github.com/geospoc/v-mapbox/commit/9d8e4e8)) * chore(deps-dev): bump @typescript-eslint/eslint-plugin ([770ef42](https://github.com/geospoc/v-mapbox/commit/770ef42)) * chore(deps-dev): bump @typescript-eslint/eslint-plugin ([dd17ab0](https://github.com/geospoc/v-mapbox/commit/dd17ab0)) * chore(deps-dev): bump @typescript-eslint/eslint-plugin ([b573cd3](https://github.com/geospoc/v-mapbox/commit/b573cd3)) * chore(deps-dev): bump @typescript-eslint/eslint-plugin ([ac66d13](https://github.com/geospoc/v-mapbox/commit/ac66d13)) * chore(deps-dev): bump @typescript-eslint/eslint-plugin ([d3ed528](https://github.com/geospoc/v-mapbox/commit/d3ed528)) * chore(deps-dev): bump @typescript-eslint/eslint-plugin ([e375df1](https://github.com/geospoc/v-mapbox/commit/e375df1)) * chore(deps-dev): bump @typescript-eslint/eslint-plugin ([5ac6d80](https://github.com/geospoc/v-mapbox/commit/5ac6d80)) * chore(deps-dev): bump @typescript-eslint/eslint-plugin ([01aa107](https://github.com/geospoc/v-mapbox/commit/01aa107)) * chore(deps-dev): Bump @typescript-eslint/eslint-plugin ([50c2412](https://github.com/geospoc/v-mapbox/commit/50c2412)) * chore(deps-dev): Bump @typescript-eslint/eslint-plugin ([9590776](https://github.com/geospoc/v-mapbox/commit/9590776)) * chore(deps-dev): bump @typescript-eslint/parser from 5.55.0 to 5.56.0 ([1cea8d2](https://github.com/geospoc/v-mapbox/commit/1cea8d2)) * chore(deps-dev): Bump @typescript-eslint/parser from 5.56.0 to 5.57.0 ([e0d95ae](https://github.com/geospoc/v-mapbox/commit/e0d95ae)) * chore(deps-dev): Bump @typescript-eslint/parser from 5.57.0 to 5.57.1 ([41fa1d0](https://github.com/geospoc/v-mapbox/commit/41fa1d0)) * chore(deps-dev): bump @typescript-eslint/parser from 5.57.1 to 5.58.0 ([58cfbb0](https://github.com/geospoc/v-mapbox/commit/58cfbb0)) * chore(deps-dev): bump @typescript-eslint/parser from 5.58.0 to 5.59.0 ([e8d09d4](https://github.com/geospoc/v-mapbox/commit/e8d09d4)) * chore(deps-dev): bump @typescript-eslint/parser from 5.59.0 to 5.59.1 ([f4cdcac](https://github.com/geospoc/v-mapbox/commit/f4cdcac)) * chore(deps-dev): bump @typescript-eslint/parser from 5.59.1 to 5.59.2 ([4cab3ac](https://github.com/geospoc/v-mapbox/commit/4cab3ac)) * chore(deps-dev): bump @typescript-eslint/parser from 5.59.11 to 5.60.0 ([6955225](https://github.com/geospoc/v-mapbox/commit/6955225)) * chore(deps-dev): bump @typescript-eslint/parser from 5.59.2 to 5.59.5 ([471b496](https://github.com/geospoc/v-mapbox/commit/471b496)) * chore(deps-dev): bump @typescript-eslint/parser from 5.59.5 to 5.59.6 ([1d65133](https://github.com/geospoc/v-mapbox/commit/1d65133)) * chore(deps-dev): bump @typescript-eslint/parser from 5.59.6 to 5.59.7 ([063ce93](https://github.com/geospoc/v-mapbox/commit/063ce93)) * chore(deps-dev): bump @typescript-eslint/parser from 5.59.7 to 5.59.8 ([3ff3784](https://github.com/geospoc/v-mapbox/commit/3ff3784)) * chore(deps-dev): bump @typescript-eslint/parser from 5.59.8 to 5.59.9 ([daeb00e](https://github.com/geospoc/v-mapbox/commit/daeb00e)) * chore(deps-dev): bump @typescript-eslint/parser from 5.59.9 to 5.59.11 ([8b6ba1b](https://github.com/geospoc/v-mapbox/commit/8b6ba1b)) * chore(deps-dev): bump @typescript-eslint/parser from 5.60.0 to 5.60.1 ([b17e441](https://github.com/geospoc/v-mapbox/commit/b17e441)) * chore(deps-dev): bump @typescript-eslint/parser from 5.60.1 to 5.61.0 ([52a4f0d](https://github.com/geospoc/v-mapbox/commit/52a4f0d)) * chore(deps-dev): bump @typescript-eslint/parser from 5.61.0 to 5.62.0 ([7efccd1](https://github.com/geospoc/v-mapbox/commit/7efccd1)) * chore(deps-dev): bump @vitejs/plugin-vue from 4.0.0 to 4.1.0 ([8742dc5](https://github.com/geospoc/v-mapbox/commit/8742dc5)) * chore(deps-dev): bump @vitejs/plugin-vue from 4.1.0 to 4.2.0 ([eb52d54](https://github.com/geospoc/v-mapbox/commit/eb52d54)) * chore(deps-dev): bump @vitejs/plugin-vue from 4.2.0 to 4.2.1 ([a1ebd35](https://github.com/geospoc/v-mapbox/commit/a1ebd35)) * chore(deps-dev): bump @vitejs/plugin-vue from 4.2.1 to 4.2.3 ([0d4eae2](https://github.com/geospoc/v-mapbox/commit/0d4eae2)) * chore(deps-dev): bump @vitest/coverage-c8 from 0.29.2 to 0.29.3 ([72ebf09](https://github.com/geospoc/v-mapbox/commit/72ebf09)) * chore(deps-dev): Bump @vitest/coverage-c8 from 0.29.3 to 0.29.7 ([3723ad0](https://github.com/geospoc/v-mapbox/commit/3723ad0)) * chore(deps-dev): Bump @vitest/coverage-c8 from 0.29.7 to 0.29.8 ([79cbbc2](https://github.com/geospoc/v-mapbox/commit/79cbbc2)) * chore(deps-dev): bump @vitest/coverage-c8 from 0.29.8 to 0.30.1 ([0f132af](https://github.com/geospoc/v-mapbox/commit/0f132af)) * chore(deps-dev): bump @vitest/coverage-c8 from 0.30.1 to 0.31.0 ([05e7aa5](https://github.com/geospoc/v-mapbox/commit/05e7aa5)) * chore(deps-dev): bump @vitest/coverage-c8 from 0.31.0 to 0.31.1 ([ca31b1a](https://github.com/geospoc/v-mapbox/commit/ca31b1a)) * chore(deps-dev): bump @vitest/coverage-c8 from 0.31.1 to 0.31.2 ([8e4808a](https://github.com/geospoc/v-mapbox/commit/8e4808a)) * chore(deps-dev): bump @vitest/coverage-c8 from 0.31.2 to 0.31.4 ([77b4647](https://github.com/geospoc/v-mapbox/commit/77b4647)) * chore(deps-dev): bump @vitest/coverage-c8 from 0.31.4 to 0.32.0 ([d20530a](https://github.com/geospoc/v-mapbox/commit/d20530a)) * chore(deps-dev): bump @vitest/coverage-c8 from 0.32.0 to 0.32.2 ([7737c46](https://github.com/geospoc/v-mapbox/commit/7737c46)) * chore(deps-dev): bump @vitest/coverage-c8 from 0.32.2 to 0.32.4 ([30aee4f](https://github.com/geospoc/v-mapbox/commit/30aee4f)) * chore(deps-dev): bump @vitest/coverage-c8 from 0.32.4 to 0.33.0 ([5d8b1ed](https://github.com/geospoc/v-mapbox/commit/5d8b1ed)) * chore(deps-dev): Bump eslint from 8.36.0 to 8.37.0 ([b92ee5c](https://github.com/geospoc/v-mapbox/commit/b92ee5c)) * chore(deps-dev): bump eslint from 8.37.0 to 8.38.0 ([b31bc69](https://github.com/geospoc/v-mapbox/commit/b31bc69)) * chore(deps-dev): bump eslint from 8.38.0 to 8.39.0 ([e733c7b](https://github.com/geospoc/v-mapbox/commit/e733c7b)) * chore(deps-dev): bump eslint from 8.39.0 to 8.40.0 ([ab3482e](https://github.com/geospoc/v-mapbox/commit/ab3482e)) * chore(deps-dev): bump eslint from 8.40.0 to 8.41.0 ([8ca0d5b](https://github.com/geospoc/v-mapbox/commit/8ca0d5b)) * chore(deps-dev): bump eslint from 8.41.0 to 8.42.0 ([19b7d5e](https://github.com/geospoc/v-mapbox/commit/19b7d5e)) * chore(deps-dev): bump eslint from 8.42.0 to 8.43.0 ([bd9a749](https://github.com/geospoc/v-mapbox/commit/bd9a749)) * chore(deps-dev): bump eslint from 8.43.0 to 8.44.0 ([305cb6a](https://github.com/geospoc/v-mapbox/commit/305cb6a)) * chore(deps-dev): bump eslint from 8.44.0 to 8.45.0 ([5e711b9](https://github.com/geospoc/v-mapbox/commit/5e711b9)) * chore(deps-dev): bump eslint from 8.45.0 to 8.46.0 ([64c1ac2](https://github.com/geospoc/v-mapbox/commit/64c1ac2)) * chore(deps-dev): bump eslint from 8.46.0 to 8.47.0 ([a61d493](https://github.com/geospoc/v-mapbox/commit/a61d493)) * chore(deps-dev): bump eslint-config-prettier from 8.7.0 to 8.8.0 ([096f12f](https://github.com/geospoc/v-mapbox/commit/096f12f)) * chore(deps-dev): bump eslint-plugin-jsdoc from 40.0.2 to 40.0.3 ([de47831](https://github.com/geospoc/v-mapbox/commit/de47831)) * chore(deps-dev): bump eslint-plugin-jsdoc from 40.0.3 to 40.1.0 ([9994a52](https://github.com/geospoc/v-mapbox/commit/9994a52)) * chore(deps-dev): Bump eslint-plugin-jsdoc from 40.1.0 to 40.1.1 ([e5a4d7e](https://github.com/geospoc/v-mapbox/commit/e5a4d7e)) * chore(deps-dev): bump eslint-plugin-jsdoc from 40.1.1 to 43.0.7 ([f4c8ef5](https://github.com/geospoc/v-mapbox/commit/f4c8ef5)) * chore(deps-dev): bump eslint-plugin-jsdoc from 43.0.7 to 43.1.1 ([4a9fb94](https://github.com/geospoc/v-mapbox/commit/4a9fb94)) * chore(deps-dev): bump eslint-plugin-jsdoc from 43.1.1 to 44.0.0 ([b53a569](https://github.com/geospoc/v-mapbox/commit/b53a569)) * chore(deps-dev): bump eslint-plugin-jsdoc from 44.0.0 to 44.0.2 ([4421023](https://github.com/geospoc/v-mapbox/commit/4421023)) * chore(deps-dev): bump eslint-plugin-jsdoc from 44.0.2 to 44.2.3 ([f8ce482](https://github.com/geospoc/v-mapbox/commit/f8ce482)) * chore(deps-dev): bump eslint-plugin-jsdoc from 44.2.3 to 44.2.4 ([2046db1](https://github.com/geospoc/v-mapbox/commit/2046db1)) * chore(deps-dev): bump eslint-plugin-jsdoc from 44.2.4 to 44.2.5 ([8a94259](https://github.com/geospoc/v-mapbox/commit/8a94259)) * chore(deps-dev): bump eslint-plugin-jsdoc from 44.2.5 to 46.1.0 ([d993437](https://github.com/geospoc/v-mapbox/commit/d993437)) * chore(deps-dev): bump eslint-plugin-jsdoc from 46.1.0 to 46.2.3 ([7f1bf4a](https://github.com/geospoc/v-mapbox/commit/7f1bf4a)) * chore(deps-dev): bump eslint-plugin-jsdoc from 46.2.3 to 46.2.4 ([29fc3cb](https://github.com/geospoc/v-mapbox/commit/29fc3cb)) * chore(deps-dev): bump eslint-plugin-jsdoc from 46.2.4 to 46.2.5 ([a28d3cf](https://github.com/geospoc/v-mapbox/commit/a28d3cf)) * chore(deps-dev): bump eslint-plugin-jsdoc from 46.2.5 to 46.2.6 ([97a56ce](https://github.com/geospoc/v-mapbox/commit/97a56ce)) * chore(deps-dev): bump eslint-plugin-jsdoc from 46.2.6 to 46.3.0 ([e482e29](https://github.com/geospoc/v-mapbox/commit/e482e29)) * chore(deps-dev): bump eslint-plugin-jsdoc from 46.3.0 to 46.4.0 ([9946350](https://github.com/geospoc/v-mapbox/commit/9946350)) * chore(deps-dev): bump eslint-plugin-jsdoc from 46.4.0 to 46.4.2 ([1269495](https://github.com/geospoc/v-mapbox/commit/1269495)) * chore(deps-dev): bump eslint-plugin-jsdoc from 46.4.2 to 46.4.3 ([5fc3b09](https://github.com/geospoc/v-mapbox/commit/5fc3b09)) * chore(deps-dev): bump eslint-plugin-jsdoc from 46.4.3 to 46.4.4 ([e3b655a](https://github.com/geospoc/v-mapbox/commit/e3b655a)) * chore(deps-dev): bump eslint-plugin-jsdoc from 46.4.4 to 46.4.6 ([de2dd46](https://github.com/geospoc/v-mapbox/commit/de2dd46)) * chore(deps-dev): bump eslint-plugin-vue from 9.10.0 to 9.11.0 ([fde5108](https://github.com/geospoc/v-mapbox/commit/fde5108)) * chore(deps-dev): bump eslint-plugin-vue from 9.11.0 to 9.11.1 ([1dd12be](https://github.com/geospoc/v-mapbox/commit/1dd12be)) * chore(deps-dev): bump eslint-plugin-vue from 9.11.1 to 9.12.0 ([5d2897d](https://github.com/geospoc/v-mapbox/commit/5d2897d)) * chore(deps-dev): bump eslint-plugin-vue from 9.12.0 to 9.13.0 ([7989181](https://github.com/geospoc/v-mapbox/commit/7989181)) * chore(deps-dev): bump eslint-plugin-vue from 9.13.0 to 9.14.0 ([e4bb5ce](https://github.com/geospoc/v-mapbox/commit/e4bb5ce)) * chore(deps-dev): bump eslint-plugin-vue from 9.14.0 to 9.14.1 ([7ec0eb3](https://github.com/geospoc/v-mapbox/commit/7ec0eb3)) * chore(deps-dev): bump eslint-plugin-vue from 9.14.1 to 9.15.0 ([0feb03c](https://github.com/geospoc/v-mapbox/commit/0feb03c)) * chore(deps-dev): bump eslint-plugin-vue from 9.15.0 to 9.15.1 ([6a916bd](https://github.com/geospoc/v-mapbox/commit/6a916bd)) * chore(deps-dev): bump eslint-plugin-vue from 9.15.1 to 9.17.0 ([66b51f4](https://github.com/geospoc/v-mapbox/commit/66b51f4)) * chore(deps-dev): Bump eslint-plugin-vue from 9.9.0 to 9.10.0 ([4ec88df](https://github.com/geospoc/v-mapbox/commit/4ec88df)) * chore(deps-dev): bump follow-redirects from 1.15.2 to 1.15.4 ([130efd5](https://github.com/geospoc/v-mapbox/commit/130efd5)) * chore(deps-dev): bump happy-dom from 8.9.0 to 9.3.0 ([07a4a7d](https://github.com/geospoc/v-mapbox/commit/07a4a7d)) * chore(deps-dev): bump happy-dom from 9.10.1 to 9.10.9 ([d3039f0](https://github.com/geospoc/v-mapbox/commit/d3039f0)) * chore(deps-dev): bump happy-dom from 9.10.9 to 9.18.3 ([406ad43](https://github.com/geospoc/v-mapbox/commit/406ad43)) * chore(deps-dev): bump happy-dom from 9.18.3 to 9.19.1 ([3808ed8](https://github.com/geospoc/v-mapbox/commit/3808ed8)) * chore(deps-dev): bump happy-dom from 9.19.1 to 9.19.2 ([4a48b9f](https://github.com/geospoc/v-mapbox/commit/4a48b9f)) * chore(deps-dev): bump happy-dom from 9.19.2 to 9.20.1 ([de1f368](https://github.com/geospoc/v-mapbox/commit/de1f368)) * chore(deps-dev): bump happy-dom from 9.20.1 to 9.20.3 ([07812e4](https://github.com/geospoc/v-mapbox/commit/07812e4)) * chore(deps-dev): bump happy-dom from 9.3.0 to 9.5.0 ([87e5ce2](https://github.com/geospoc/v-mapbox/commit/87e5ce2)) * chore(deps-dev): bump happy-dom from 9.5.0 to 9.7.1 ([eaec673](https://github.com/geospoc/v-mapbox/commit/eaec673)) * chore(deps-dev): bump happy-dom from 9.7.1 to 9.8.0 ([5029dfc](https://github.com/geospoc/v-mapbox/commit/5029dfc)) * chore(deps-dev): bump happy-dom from 9.8.0 to 9.8.1 ([c4a3bd4](https://github.com/geospoc/v-mapbox/commit/c4a3bd4)) * chore(deps-dev): bump happy-dom from 9.8.1 to 9.8.3 ([0a470b2](https://github.com/geospoc/v-mapbox/commit/0a470b2)) * chore(deps-dev): bump happy-dom from 9.8.3 to 9.8.4 ([93445f9](https://github.com/geospoc/v-mapbox/commit/93445f9)) * chore(deps-dev): bump happy-dom from 9.8.4 to 9.9.2 ([52254c9](https://github.com/geospoc/v-mapbox/commit/52254c9)) * chore(deps-dev): bump happy-dom from 9.9.2 to 9.10.1 ([3f74175](https://github.com/geospoc/v-mapbox/commit/3f74175)) * chore(deps-dev): bump lint-staged from 13.2.0 to 13.2.1 ([9b35a8e](https://github.com/geospoc/v-mapbox/commit/9b35a8e)) * chore(deps-dev): bump lint-staged from 13.2.1 to 13.2.2 ([579d12e](https://github.com/geospoc/v-mapbox/commit/579d12e)) * chore(deps-dev): bump lint-staged from 13.2.2 to 13.2.3 ([5e7e280](https://github.com/geospoc/v-mapbox/commit/5e7e280)) * chore(deps-dev): bump prettier from 2.8.4 to 2.8.5 ([1ca472e](https://github.com/geospoc/v-mapbox/commit/1ca472e)) * chore(deps-dev): bump prettier from 2.8.5 to 2.8.6 ([e4caa93](https://github.com/geospoc/v-mapbox/commit/e4caa93)) * chore(deps-dev): Bump prettier from 2.8.6 to 2.8.7 ([57ac7dd](https://github.com/geospoc/v-mapbox/commit/57ac7dd)) * chore(deps-dev): bump prettier from 2.8.7 to 2.8.8 ([7b3bacd](https://github.com/geospoc/v-mapbox/commit/7b3bacd)) * chore(deps-dev): Bump rimraf from 4.4.0 to 4.4.1 ([fff01a4](https://github.com/geospoc/v-mapbox/commit/fff01a4)) * chore(deps-dev): bump rimraf from 4.4.1 to 5.0.0 ([805b39b](https://github.com/geospoc/v-mapbox/commit/805b39b)) * chore(deps-dev): bump rimraf from 5.0.0 to 5.0.1 ([70cb06c](https://github.com/geospoc/v-mapbox/commit/70cb06c)) * chore(deps-dev): bump sass from 1.59.2 to 1.59.3 ([2723676](https://github.com/geospoc/v-mapbox/commit/2723676)) * chore(deps-dev): Bump sass from 1.59.3 to 1.60.0 ([e79e278](https://github.com/geospoc/v-mapbox/commit/e79e278)) * chore(deps-dev): bump sass from 1.60.0 to 1.61.0 ([3271857](https://github.com/geospoc/v-mapbox/commit/3271857)) * chore(deps-dev): bump sass from 1.61.0 to 1.62.0 ([2dcd565](https://github.com/geospoc/v-mapbox/commit/2dcd565)) * chore(deps-dev): bump sass from 1.62.0 to 1.62.1 ([7eb601d](https://github.com/geospoc/v-mapbox/commit/7eb601d)) * chore(deps-dev): bump sass from 1.62.1 to 1.63.2 ([f0d08e3](https://github.com/geospoc/v-mapbox/commit/f0d08e3)) * chore(deps-dev): bump sass from 1.63.2 to 1.63.3 ([d8b118f](https://github.com/geospoc/v-mapbox/commit/d8b118f)) * chore(deps-dev): bump sass from 1.63.3 to 1.63.4 ([90bd786](https://github.com/geospoc/v-mapbox/commit/90bd786)) * chore(deps-dev): bump sass from 1.63.4 to 1.63.5 ([db65359](https://github.com/geospoc/v-mapbox/commit/db65359)) * chore(deps-dev): bump sass from 1.63.5 to 1.63.6 ([da10a78](https://github.com/geospoc/v-mapbox/commit/da10a78)) * chore(deps-dev): bump sass from 1.63.6 to 1.64.1 ([50b1e44](https://github.com/geospoc/v-mapbox/commit/50b1e44)) * chore(deps-dev): bump shipjs from 0.25.1 to 0.26.0 ([6c61dd8](https://github.com/geospoc/v-mapbox/commit/6c61dd8)) * chore(deps-dev): bump shipjs from 0.26.0 to 0.26.1 ([f18e757](https://github.com/geospoc/v-mapbox/commit/f18e757)) * chore(deps-dev): Bump shipjs from 0.26.1 to 0.26.2 ([27a34cf](https://github.com/geospoc/v-mapbox/commit/27a34cf)) * chore(deps-dev): bump shipjs from 0.26.2 to 0.26.3 ([62fe546](https://github.com/geospoc/v-mapbox/commit/62fe546)) * chore(deps-dev): bump stylelint from 15.10.0 to 15.10.1 ([4feaadc](https://github.com/geospoc/v-mapbox/commit/4feaadc)) * chore(deps-dev): bump stylelint from 15.10.1 to 15.10.2 ([08afefd](https://github.com/geospoc/v-mapbox/commit/08afefd)) * chore(deps-dev): bump stylelint from 15.2.0 to 15.3.0 ([9d36b99](https://github.com/geospoc/v-mapbox/commit/9d36b99)) * chore(deps-dev): Bump stylelint from 15.3.0 to 15.4.0 ([e8d9f59](https://github.com/geospoc/v-mapbox/commit/e8d9f59)) * chore(deps-dev): bump stylelint from 15.4.0 to 15.5.0 ([3612d12](https://github.com/geospoc/v-mapbox/commit/3612d12)) * chore(deps-dev): bump stylelint from 15.5.0 to 15.6.0 ([48b4fdb](https://github.com/geospoc/v-mapbox/commit/48b4fdb)) * chore(deps-dev): bump stylelint from 15.6.0 to 15.6.1 ([cfe104e](https://github.com/geospoc/v-mapbox/commit/cfe104e)) * chore(deps-dev): bump stylelint from 15.6.1 to 15.6.2 ([aefb1f8](https://github.com/geospoc/v-mapbox/commit/aefb1f8)) * chore(deps-dev): bump stylelint from 15.6.2 to 15.6.3 ([317d11f](https://github.com/geospoc/v-mapbox/commit/317d11f)) * chore(deps-dev): bump stylelint from 15.6.3 to 15.7.0 ([8eeda99](https://github.com/geospoc/v-mapbox/commit/8eeda99)) * chore(deps-dev): bump stylelint from 15.7.0 to 15.8.0 ([db07462](https://github.com/geospoc/v-mapbox/commit/db07462)) * chore(deps-dev): bump stylelint from 15.8.0 to 15.9.0 ([ab1fbe1](https://github.com/geospoc/v-mapbox/commit/ab1fbe1)) * chore(deps-dev): bump stylelint from 15.9.0 to 15.10.0 ([39a8577](https://github.com/geospoc/v-mapbox/commit/39a8577)) * chore(deps-dev): bump stylelint-config-recommended-vue ([72321a9](https://github.com/geospoc/v-mapbox/commit/72321a9)) * chore(deps-dev): bump typescript from 4.9.5 to 5.0.4 ([6e81a0a](https://github.com/geospoc/v-mapbox/commit/6e81a0a)) * chore(deps-dev): bump typescript from 5.0.4 to 5.1.3 ([d30f879](https://github.com/geospoc/v-mapbox/commit/d30f879)) * chore(deps-dev): bump typescript from 5.1.3 to 5.1.5 ([3ddf370](https://github.com/geospoc/v-mapbox/commit/3ddf370)) * chore(deps-dev): bump typescript from 5.1.5 to 5.1.6 ([0821fe8](https://github.com/geospoc/v-mapbox/commit/0821fe8)) * chore(deps-dev): bump vite from 4.1.4 to 4.2.0 ([6a6d430](https://github.com/geospoc/v-mapbox/commit/6a6d430)) * chore(deps-dev): bump vite from 4.2.0 to 4.2.1 ([b0c08c1](https://github.com/geospoc/v-mapbox/commit/b0c08c1)) * chore(deps-dev): bump vite from 4.2.1 to 4.2.2 ([2e9a564](https://github.com/geospoc/v-mapbox/commit/2e9a564)) * chore(deps-dev): bump vite from 4.2.2 to 4.3.0 ([76be3c1](https://github.com/geospoc/v-mapbox/commit/76be3c1)) * chore(deps-dev): bump vite from 4.3.0 to 4.3.1 ([105b3d3](https://github.com/geospoc/v-mapbox/commit/105b3d3)) * chore(deps-dev): bump vite from 4.3.1 to 4.3.2 ([7ec1de9](https://github.com/geospoc/v-mapbox/commit/7ec1de9)) * chore(deps-dev): bump vite from 4.3.2 to 4.3.3 ([d1cbd86](https://github.com/geospoc/v-mapbox/commit/d1cbd86)) * chore(deps-dev): bump vite from 4.3.3 to 4.3.5 ([b3fdba7](https://github.com/geospoc/v-mapbox/commit/b3fdba7)) * chore(deps-dev): bump vite from 4.3.5 to 4.3.7 ([0fb561f](https://github.com/geospoc/v-mapbox/commit/0fb561f)) * chore(deps-dev): bump vite from 4.3.7 to 4.3.8 ([f34f052](https://github.com/geospoc/v-mapbox/commit/f34f052)) * chore(deps-dev): bump vite from 4.3.8 to 4.3.9 ([4a78aed](https://github.com/geospoc/v-mapbox/commit/4a78aed)) * chore(deps-dev): bump vite from 4.3.9 to 4.4.1 ([4991675](https://github.com/geospoc/v-mapbox/commit/4991675)) * chore(deps-dev): bump vite from 4.4.1 to 4.4.2 ([e324efe](https://github.com/geospoc/v-mapbox/commit/e324efe)) * chore(deps-dev): bump vite from 4.4.12 to 4.5.2 ([97a448b](https://github.com/geospoc/v-mapbox/commit/97a448b)) * chore(deps-dev): bump vite from 4.4.2 to 4.4.4 ([5adb1f4](https://github.com/geospoc/v-mapbox/commit/5adb1f4)) * chore(deps-dev): bump vite from 4.4.4 to 4.4.9 ([163cb1f](https://github.com/geospoc/v-mapbox/commit/163cb1f)) * chore(deps-dev): bump vite from 4.4.9 to 4.4.12 ([95e67d2](https://github.com/geospoc/v-mapbox/commit/95e67d2)) * chore(deps-dev): bump vitepress from 1.0.0-alpha.56 to 1.0.0-alpha.60 ([53cdb63](https://github.com/geospoc/v-mapbox/commit/53cdb63)) * chore(deps-dev): bump vitepress from 1.0.0-alpha.60 to 1.0.0-alpha.61 ([c8f5d84](https://github.com/geospoc/v-mapbox/commit/c8f5d84)) * chore(deps-dev): Bump vitepress from 1.0.0-alpha.61 to 1.0.0-alpha.63 ([83ac7cc](https://github.com/geospoc/v-mapbox/commit/83ac7cc)) * chore(deps-dev): Bump vitepress from 1.0.0-alpha.63 to 1.0.0-alpha.64 ([6d42b95](https://github.com/geospoc/v-mapbox/commit/6d42b95)) * chore(deps-dev): Bump vitepress from 1.0.0-alpha.64 to 1.0.0-alpha.65 ([404b5ac](https://github.com/geospoc/v-mapbox/commit/404b5ac)) * chore(deps-dev): bump vitepress from 1.0.0-alpha.65 to 1.0.0-alpha.71 ([041f981](https://github.com/geospoc/v-mapbox/commit/041f981)) * chore(deps-dev): bump vitepress from 1.0.0-alpha.71 to 1.0.0-alpha.72 ([3956295](https://github.com/geospoc/v-mapbox/commit/3956295)) * chore(deps-dev): bump vitepress from 1.0.0-alpha.72 to 1.0.0-alpha.73 ([52432e2](https://github.com/geospoc/v-mapbox/commit/52432e2)) * chore(deps-dev): bump vitepress from 1.0.0-alpha.73 to 1.0.0-alpha.74 ([58ba38a](https://github.com/geospoc/v-mapbox/commit/58ba38a)) * chore(deps-dev): bump vitepress from 1.0.0-alpha.74 to 1.0.0-alpha.75 ([6a33d33](https://github.com/geospoc/v-mapbox/commit/6a33d33)) * chore(deps-dev): bump vitepress from 1.0.0-alpha.75 to 1.0.0-alpha.76 ([d7b37bd](https://github.com/geospoc/v-mapbox/commit/d7b37bd)) * chore(deps-dev): bump vitepress from 1.0.0-alpha.76 to 1.0.0-beta.1 ([41c441c](https://github.com/geospoc/v-mapbox/commit/41c441c)) * chore(deps-dev): bump vitepress from 1.0.0-beta.1 to 1.0.0-beta.2 ([44b42ee](https://github.com/geospoc/v-mapbox/commit/44b42ee)) * chore(deps-dev): bump vitepress from 1.0.0-beta.2 to 1.0.0-beta.3 ([02af9e2](https://github.com/geospoc/v-mapbox/commit/02af9e2)) * chore(deps-dev): bump vitepress from 1.0.0-beta.3 to 1.0.0-beta.4 ([20e84e9](https://github.com/geospoc/v-mapbox/commit/20e84e9)) * chore(deps-dev): bump vitepress from 1.0.0-beta.4 to 1.0.0-beta.5 ([2556a0e](https://github.com/geospoc/v-mapbox/commit/2556a0e)) * chore(deps-dev): bump vitepress from 1.0.0-beta.5 to 1.0.0-beta.6 ([f276dc5](https://github.com/geospoc/v-mapbox/commit/f276dc5)) * chore(deps-dev): bump vitepress from 1.0.0-beta.6 to 1.0.0-rc.4 ([10129b6](https://github.com/geospoc/v-mapbox/commit/10129b6)) * chore(deps-dev): bump vitest from 0.29.2 to 0.29.3 ([0da7dfa](https://github.com/geospoc/v-mapbox/commit/0da7dfa)) * chore(deps-dev): bump vitest from 0.29.3 to 0.29.7 ([363f45a](https://github.com/geospoc/v-mapbox/commit/363f45a)) * chore(deps-dev): Bump vitest from 0.29.7 to 0.29.8 ([e877d21](https://github.com/geospoc/v-mapbox/commit/e877d21)) * chore(deps-dev): bump vitest from 0.29.8 to 0.30.1 ([4f0e6eb](https://github.com/geospoc/v-mapbox/commit/4f0e6eb)) * chore(deps-dev): bump vitest from 0.30.1 to 0.31.0 ([930e267](https://github.com/geospoc/v-mapbox/commit/930e267)) * chore(deps-dev): bump vitest from 0.31.0 to 0.31.1 ([f74924f](https://github.com/geospoc/v-mapbox/commit/f74924f)) * chore(deps-dev): bump vitest from 0.31.1 to 0.31.2 ([0622062](https://github.com/geospoc/v-mapbox/commit/0622062)) * chore(deps-dev): bump vitest from 0.31.2 to 0.31.3 ([a32a28c](https://github.com/geospoc/v-mapbox/commit/a32a28c)) * chore(deps-dev): bump vitest from 0.31.3 to 0.31.4 ([f188e66](https://github.com/geospoc/v-mapbox/commit/f188e66)) * chore(deps-dev): bump vitest from 0.31.4 to 0.32.0 ([5228ce1](https://github.com/geospoc/v-mapbox/commit/5228ce1)) * chore(deps-dev): bump vitest from 0.32.0 to 0.32.2 ([7e09f00](https://github.com/geospoc/v-mapbox/commit/7e09f00)) * chore(deps-dev): bump vitest from 0.32.2 to 0.32.4 ([f860b47](https://github.com/geospoc/v-mapbox/commit/f860b47)) * chore(deps-dev): bump vitest from 0.32.4 to 0.33.0 ([2a10d6d](https://github.com/geospoc/v-mapbox/commit/2a10d6d)) * chore(deps-dev): bump vitest from 0.33.0 to 0.34.1 ([a66de22](https://github.com/geospoc/v-mapbox/commit/a66de22)) * chore(deps-dev): bump vue from 3.2.47 to 3.3.2 ([11549aa](https://github.com/geospoc/v-mapbox/commit/11549aa)) * chore(deps-dev): bump vue from 3.3.2 to 3.3.4 ([fa4a87c](https://github.com/geospoc/v-mapbox/commit/fa4a87c)) * chore(deps-dev): bump vue-tsc from 1.2.0 to 1.4.0 ([5c2f774](https://github.com/geospoc/v-mapbox/commit/5c2f774)) * chore(deps-dev): bump vue-tsc from 1.4.0 to 1.4.4 ([81c347e](https://github.com/geospoc/v-mapbox/commit/81c347e)) * chore(deps-dev): bump vue-tsc from 1.4.4 to 1.6.1 ([07cbe45](https://github.com/geospoc/v-mapbox/commit/07cbe45)) * chore(deps-dev): bump vue-tsc from 1.6.1 to 1.6.2 ([f61ad7e](https://github.com/geospoc/v-mapbox/commit/f61ad7e)) * chore(deps-dev): bump vue-tsc from 1.6.2 to 1.6.4 ([4ff7b58](https://github.com/geospoc/v-mapbox/commit/4ff7b58)) * chore(deps-dev): bump vue-tsc from 1.6.4 to 1.6.5 ([e76e310](https://github.com/geospoc/v-mapbox/commit/e76e310)) * chore(deps-dev): bump vue-tsc from 1.6.5 to 1.8.0 ([7e31986](https://github.com/geospoc/v-mapbox/commit/7e31986)) * chore(deps-dev): bump vue-tsc from 1.8.0 to 1.8.1 ([d557cea](https://github.com/geospoc/v-mapbox/commit/d557cea)) * chore(deps-dev): bump vue-tsc from 1.8.1 to 1.8.2 ([ee2f49d](https://github.com/geospoc/v-mapbox/commit/ee2f49d)) * chore(deps-dev): bump vue-tsc from 1.8.2 to 1.8.3 ([932bbaf](https://github.com/geospoc/v-mapbox/commit/932bbaf)) * chore(deps-dev): bump vue-tsc from 1.8.3 to 1.8.4 ([96c4385](https://github.com/geospoc/v-mapbox/commit/96c4385)) * chore(deps-dev): bump vue-tsc from 1.8.4 to 1.8.5 ([eab8598](https://github.com/geospoc/v-mapbox/commit/eab8598)) * chore(deps-dev): bump vue-tsc from 1.8.5 to 1.8.6 ([5fe617b](https://github.com/geospoc/v-mapbox/commit/5fe617b)) * chore(deps-dev): bump vue-tsc from 1.8.6 to 1.8.7 ([440810d](https://github.com/geospoc/v-mapbox/commit/440810d)) * chore(deps-dev): bump vue-tsc from 1.8.7 to 1.8.8 ([29abe52](https://github.com/geospoc/v-mapbox/commit/29abe52)) * chore(deps-dev): bump word-wrap from 1.2.3 to 1.2.4 ([9626f76](https://github.com/geospoc/v-mapbox/commit/9626f76)) * chore(deps): add coverage vitest plugin 🤷‍♂️ ([a7b8f3b](https://github.com/geospoc/v-mapbox/commit/a7b8f3b)) * chore(deps): add vitest & required devDeps 🍍 ([75b55c6](https://github.com/geospoc/v-mapbox/commit/75b55c6)) * chore(deps): bump peerDeps ([86a2731](https://github.com/geospoc/v-mapbox/commit/86a2731)) * chore(deps): update github/codeql-action action to v3 ([766972d](https://github.com/geospoc/v-mapbox/commit/766972d)) * test: add global setupFiles file for Vitest 🧪 ([8df4bc5](https://github.com/geospoc/v-mapbox/commit/8df4bc5)) * test: initial tests for Map, Marker & Popup Components 🧪 ([163c7ee](https://github.com/geospoc/v-mapbox/commit/163c7ee)) * test: renovate settings ✨ ([1d0786f](https://github.com/geospoc/v-mapbox/commit/1d0786f)) * test: update tsconfig to include `vitest/globals` ([a367985](https://github.com/geospoc/v-mapbox/commit/a367985)) * build: install optional deps ([a7f0f9a](https://github.com/geospoc/v-mapbox/commit/a7f0f9a)) * build: update workflow(s) ([aee7279](https://github.com/geospoc/v-mapbox/commit/aee7279)) * docs: update README ([062d449](https://github.com/geospoc/v-mapbox/commit/062d449)) * docs: update vite-env declaration file 🎉 ([361fae1](https://github.com/geospoc/v-mapbox/commit/361fae1)) * Fix typos in controls.md ([6cb6477](https://github.com/geospoc/v-mapbox/commit/6cb6477)) * refactor!: housekeeping 🧹 ([f893b83](https://github.com/geospoc/v-mapbox/commit/f893b83)) * fix(deps): bump @deck.gl/core from 8.9.11 to 8.9.12 ([b08589c](https://github.com/geospoc/v-mapbox/commit/b08589c)) * fix(deps): bump @deck.gl/core from 8.9.12 to 8.9.13 ([590715e](https://github.com/geospoc/v-mapbox/commit/590715e)) * fix(deps): bump @deck.gl/core from 8.9.13 to 8.9.14 ([75c9bf4](https://github.com/geospoc/v-mapbox/commit/75c9bf4)) * fix(deps): bump @deck.gl/core from 8.9.14 to 8.9.15 ([5cab969](https://github.com/geospoc/v-mapbox/commit/5cab969)) * fix(deps): bump @deck.gl/core from 8.9.15 to 8.9.16 ([3a45858](https://github.com/geospoc/v-mapbox/commit/3a45858)) * fix(deps): bump @deck.gl/core from 8.9.16 to 8.9.17 ([69cab1d](https://github.com/geospoc/v-mapbox/commit/69cab1d)) * fix(deps): bump @deck.gl/core from 8.9.17 to 8.9.18 ([a68bb20](https://github.com/geospoc/v-mapbox/commit/a68bb20)) * fix(deps): bump @deck.gl/core from 8.9.18 to 8.9.19 ([8273c4b](https://github.com/geospoc/v-mapbox/commit/8273c4b)) * fix(deps): bump @deck.gl/core from 8.9.19 to 8.9.21 ([7d6b844](https://github.com/geospoc/v-mapbox/commit/7d6b844)) * fix(deps): bump @deck.gl/core from 8.9.2 to 8.9.3 ([b10d5e8](https://github.com/geospoc/v-mapbox/commit/b10d5e8)) * fix(deps): bump @deck.gl/core from 8.9.21 to 8.9.22 ([679027c](https://github.com/geospoc/v-mapbox/commit/679027c)) * fix(deps): bump @deck.gl/core from 8.9.22 to 8.9.23 ([64fe4e6](https://github.com/geospoc/v-mapbox/commit/64fe4e6)) * fix(deps): bump @deck.gl/core from 8.9.3 to 8.9.4 ([7a826b1](https://github.com/geospoc/v-mapbox/commit/7a826b1)) * fix(deps): Bump @deck.gl/core from 8.9.4 to 8.9.6 ([d4bfd8b](https://github.com/geospoc/v-mapbox/commit/d4bfd8b)) * fix(deps): Bump @deck.gl/core from 8.9.6 to 8.9.7 ([ebcd340](https://github.com/geospoc/v-mapbox/commit/ebcd340)) * fix(deps): bump @deck.gl/core from 8.9.7 to 8.9.8 ([f178f44](https://github.com/geospoc/v-mapbox/commit/f178f44)) * fix(deps): bump @deck.gl/core from 8.9.8 to 8.9.9 ([bcc32ac](https://github.com/geospoc/v-mapbox/commit/bcc32ac)) * fix(deps): bump @deck.gl/core from 8.9.9 to 8.9.11 ([dc85b20](https://github.com/geospoc/v-mapbox/commit/dc85b20)) * fix(deps): bump @deck.gl/layers from 8.9.12 to 8.9.13 ([cbce502](https://github.com/geospoc/v-mapbox/commit/cbce502)) * fix(deps): bump @deck.gl/layers from 8.9.13 to 8.9.14 ([3d94dcc](https://github.com/geospoc/v-mapbox/commit/3d94dcc)) * fix(deps): bump @deck.gl/layers from 8.9.14 to 8.9.15 ([3526435](https://github.com/geospoc/v-mapbox/commit/3526435)) * fix(deps): bump @deck.gl/layers from 8.9.15 to 8.9.16 ([e3310d6](https://github.com/geospoc/v-mapbox/commit/e3310d6)) * fix(deps): bump @deck.gl/layers from 8.9.16 to 8.9.17 ([b37bf4e](https://github.com/geospoc/v-mapbox/commit/b37bf4e)) * fix(deps): bump @deck.gl/layers from 8.9.17 to 8.9.18 ([cb9a941](https://github.com/geospoc/v-mapbox/commit/cb9a941)) * fix(deps): bump @deck.gl/layers from 8.9.18 to 8.9.19 ([0eb2e4c](https://github.com/geospoc/v-mapbox/commit/0eb2e4c)) * fix(deps): bump @deck.gl/layers from 8.9.19 to 8.9.20 ([b34c22f](https://github.com/geospoc/v-mapbox/commit/b34c22f)) * fix(deps): bump @deck.gl/layers from 8.9.2 to 8.9.3 ([c0b1b67](https://github.com/geospoc/v-mapbox/commit/c0b1b67)) * fix(deps): bump @deck.gl/layers from 8.9.20 to 8.9.21 ([7ad67b8](https://github.com/geospoc/v-mapbox/commit/7ad67b8)) * fix(deps): bump @deck.gl/layers from 8.9.21 to 8.9.22 ([3c53539](https://github.com/geospoc/v-mapbox/commit/3c53539)) * fix(deps): Bump @deck.gl/layers from 8.9.3 to 8.9.4 ([9037746](https://github.com/geospoc/v-mapbox/commit/9037746)) * fix(deps): Bump @deck.gl/layers from 8.9.4 to 8.9.6 ([1ddfb61](https://github.com/geospoc/v-mapbox/commit/1ddfb61)) * fix(deps): Bump @deck.gl/layers from 8.9.6 to 8.9.7 ([60cd31d](https://github.com/geospoc/v-mapbox/commit/60cd31d)) * fix(deps): bump @deck.gl/layers from 8.9.7 to 8.9.9 ([186478e](https://github.com/geospoc/v-mapbox/commit/186478e)) * fix(deps): bump @deck.gl/layers from 8.9.9 to 8.9.12 ([c00bfec](https://github.com/geospoc/v-mapbox/commit/c00bfec)) * fix(deps): bump @deck.gl/mapbox from 8.9.12 to 8.9.13 ([ea805ec](https://github.com/geospoc/v-mapbox/commit/ea805ec)) * fix(deps): bump @deck.gl/mapbox from 8.9.13 to 8.9.14 ([a2cad45](https://github.com/geospoc/v-mapbox/commit/a2cad45)) * fix(deps): bump @deck.gl/mapbox from 8.9.14 to 8.9.15 ([544f618](https://github.com/geospoc/v-mapbox/commit/544f618)) * fix(deps): bump @deck.gl/mapbox from 8.9.15 to 8.9.16 ([7c4d4ab](https://github.com/geospoc/v-mapbox/commit/7c4d4ab)) * fix(deps): bump @deck.gl/mapbox from 8.9.16 to 8.9.17 ([224c2f4](https://github.com/geospoc/v-mapbox/commit/224c2f4)) * fix(deps): bump @deck.gl/mapbox from 8.9.17 to 8.9.18 ([0290126](https://github.com/geospoc/v-mapbox/commit/0290126)) * fix(deps): bump @deck.gl/mapbox from 8.9.18 to 8.9.19 ([6a11c3e](https://github.com/geospoc/v-mapbox/commit/6a11c3e)) * fix(deps): bump @deck.gl/mapbox from 8.9.19 to 8.9.20 ([8ae5dba](https://github.com/geospoc/v-mapbox/commit/8ae5dba)) * fix(deps): bump @deck.gl/mapbox from 8.9.2 to 8.9.3 ([42a6043](https://github.com/geospoc/v-mapbox/commit/42a6043)) * fix(deps): bump @deck.gl/mapbox from 8.9.20 to 8.9.21 ([f7fa3b2](https://github.com/geospoc/v-mapbox/commit/f7fa3b2)) * fix(deps): bump @deck.gl/mapbox from 8.9.21 to 8.9.22 ([a73735b](https://github.com/geospoc/v-mapbox/commit/a73735b)) * fix(deps): bump @deck.gl/mapbox from 8.9.22 to 8.9.23 ([962e5de](https://github.com/geospoc/v-mapbox/commit/962e5de)) * fix(deps): bump @deck.gl/mapbox from 8.9.3 to 8.9.4 ([9180f7b](https://github.com/geospoc/v-mapbox/commit/9180f7b)) * fix(deps): Bump @deck.gl/mapbox from 8.9.4 to 8.9.6 ([9d6e355](https://github.com/geospoc/v-mapbox/commit/9d6e355)) * fix(deps): bump @deck.gl/mapbox from 8.9.6 to 8.9.7 ([e1c045c](https://github.com/geospoc/v-mapbox/commit/e1c045c)) * fix(deps): bump @deck.gl/mapbox from 8.9.7 to 8.9.8 ([5beb4c5](https://github.com/geospoc/v-mapbox/commit/5beb4c5)) * fix(deps): bump @deck.gl/mapbox from 8.9.8 to 8.9.9 ([8085a84](https://github.com/geospoc/v-mapbox/commit/8085a84)) * fix(deps): bump @deck.gl/mapbox from 8.9.9 to 8.9.12 ([a81a6f4](https://github.com/geospoc/v-mapbox/commit/a81a6f4)) * fix(deps): bump actions/checkout from 3 to 4 ([bd9b193](https://github.com/geospoc/v-mapbox/commit/bd9b193)) * fix(deps): bump amannn/action-semantic-pull-request from 5.1.0 to 5.2.0 ([1f8e1bd](https://github.com/geospoc/v-mapbox/commit/1f8e1bd)) * fix(deps): bump amannn/action-semantic-pull-request from 5.2.0 to 5.3.0 ([3dd9d5f](https://github.com/geospoc/v-mapbox/commit/3dd9d5f)) * fix(deps): bump amannn/action-semantic-pull-request from 5.3.0 to 5.4.0 ([636b369](https://github.com/geospoc/v-mapbox/commit/636b369)) * fix(deps): bump dependabot/fetch-metadata from 1.3.6 to 1.4.0 ([f0f6279](https://github.com/geospoc/v-mapbox/commit/f0f6279)) * fix(deps): bump dependabot/fetch-metadata from 1.4.0 to 1.5.0 ([1920d83](https://github.com/geospoc/v-mapbox/commit/1920d83)) * fix(deps): bump dependabot/fetch-metadata from 1.5.0 to 1.5.1 ([c87b751](https://github.com/geospoc/v-mapbox/commit/c87b751)) * fix(deps): bump dependabot/fetch-metadata from 1.5.1 to 1.6.0 ([25095af](https://github.com/geospoc/v-mapbox/commit/25095af)) * fix(deps): bump tough-cookie from 4.1.2 to 4.1.3 ([32e8eb9](https://github.com/geospoc/v-mapbox/commit/32e8eb9)) * fix(deps): bump yaml from 2.2.1 to 2.2.2 ([60e243a](https://github.com/geospoc/v-mapbox/commit/60e243a)) * feat(vitest): add config file for Vitest ✨ ([e292903](https://github.com/geospoc/v-mapbox/commit/e292903)) ## [4.0.2](https://github.com/geospoc/v-mapbox/compare/v4.0.1...v4.0.2) (2023-03-14) ### Bug Fixes * **dependabot:** add versioning-strategy 🕺 ([d68058d](https://github.com/geospoc/v-mapbox/commit/d68058ddc9a92f381fd3eb5c0497214a11c0f7c2)) * deprecated npm i cmd args 🧹 ([32be451](https://github.com/geospoc/v-mapbox/commit/32be451de37d23b20aa249083db1091b0abef922)) ## [4.0.1](https://github.com/geospoc/v-mapbox/compare/v4.0.0...v4.0.1) (2023-03-14) ### Bug Fixes * add onBeforeUnmount hook logic 🕺 ([8e71b2d](https://github.com/geospoc/v-mapbox/commit/8e71b2d57677f8f6dd1bdb5ef95cea96578338cb)) * **deps:** bump [@deck](https://github.com/deck).gl/core from 8.8.27 to 8.9.0 ([9261154](https://github.com/geospoc/v-mapbox/commit/9261154a5e4655128982504e65972c4b7a9f29a4)) * **deps:** bump [@deck](https://github.com/deck).gl/core from 8.9.0 to 8.9.1 ([e18003d](https://github.com/geospoc/v-mapbox/commit/e18003de1197d9ec39ca6c79271d21cf1df255c4)) * **deps:** bump [@deck](https://github.com/deck).gl/core from 8.9.1 to 8.9.2 ([c8258aa](https://github.com/geospoc/v-mapbox/commit/c8258aaf98b41246559a9d3d9f9e9026d1d5ba34)) * **deps:** bump [@deck](https://github.com/deck).gl/layers from 8.8.27 to 8.9.0 ([69d7947](https://github.com/geospoc/v-mapbox/commit/69d7947b32394070bb9edeb2735bc8dcc988a8ff)) * **deps:** bump [@deck](https://github.com/deck).gl/layers from 8.9.0 to 8.9.1 ([af2ed77](https://github.com/geospoc/v-mapbox/commit/af2ed778ab0a9eb8bb73706e032e5c5ada07ff9a)) * **deps:** bump [@deck](https://github.com/deck).gl/layers from 8.9.1 to 8.9.2 ([5d5d499](https://github.com/geospoc/v-mapbox/commit/5d5d4996ddc53c5d85562b6b3f7f605332b434c1)) * **deps:** bump [@deck](https://github.com/deck).gl/mapbox from 8.8.27 to 8.9.0 ([d0324a2](https://github.com/geospoc/v-mapbox/commit/d0324a2785aeb3ed772e0fb1ede0c12ddc3bd935)) * **deps:** bump [@deck](https://github.com/deck).gl/mapbox from 8.9.0 to 8.9.1 ([b5f2c2c](https://github.com/geospoc/v-mapbox/commit/b5f2c2c0ed291dfde228dd6d48df2ca440c0f74b)) * **deps:** bump [@deck](https://github.com/deck).gl/mapbox from 8.9.1 to 8.9.2 ([44c2aff](https://github.com/geospoc/v-mapbox/commit/44c2aff4ee17f79a5d0f336a8437a95d28f87686)) * popup set DOM Content instead of html str ✨ ([26f80c4](https://github.com/geospoc/v-mapbox/commit/26f80c4241a9eeccc8bad8d956496b9d65ceaafc)) * ref on slot not working 🚨 ([6228dde](https://github.com/geospoc/v-mapbox/commit/6228dde861470ac1d8eeb780a9acda4e50e6f55c)) # [4.0.0](https://github.com/geospoc/v-mapbox/compare/v3.3.1...v4.0.0) (2023-03-09) ### Bug Fixes * broken links for netlify 🤖 ([58a587a](https://github.com/geospoc/v-mapbox/commit/58a587a1a934d7967a61f842c8dd575af0273cbe)) * **deps:** bump [@deck](https://github.com/deck).gl/core from 8.8.3 to 8.8.4 ([903ab0e](https://github.com/geospoc/v-mapbox/commit/903ab0eb47dbc3572bb4aaed7b06df9cd44c466b)) * **deps:** bump [@deck](https://github.com/deck).gl/core from 8.8.4 to 8.8.6 ([f0362bf](https://github.com/geospoc/v-mapbox/commit/f0362bf53b2653c72f96448cee09b7bf49f742db)) * **deps:** bump [@deck](https://github.com/deck).gl/core from 8.8.6 to 8.8.8 ([174f5a4](https://github.com/geospoc/v-mapbox/commit/174f5a4d8d7a9e57ffaf46bf36d3b29942cbc793)) * **deps:** bump [@deck](https://github.com/deck).gl/core from 8.8.8 to 8.8.9 ([70301c6](https://github.com/geospoc/v-mapbox/commit/70301c6493998b78f20b47ac3e1f5124b8178839)) * **deps:** bump [@deck](https://github.com/deck).gl/core from 8.8.9 to 8.8.11 ([11382c0](https://github.com/geospoc/v-mapbox/commit/11382c00c1d3b4f24c4b175ad74bbe3b6cc4ebff)) * **deps:** bump [@deck](https://github.com/deck).gl/layers from 8.8.3 to 8.8.4 ([a0d4ee5](https://github.com/geospoc/v-mapbox/commit/a0d4ee589d8815168ab245e5d0a01b976607c08f)) * **deps:** bump [@deck](https://github.com/deck).gl/layers from 8.8.4 to 8.8.6 ([97d7e82](https://github.com/geospoc/v-mapbox/commit/97d7e82ed69e93255805b1a5629086060c17aebe)) * **deps:** bump [@deck](https://github.com/deck).gl/layers from 8.8.6 to 8.8.8 ([dc9be2f](https://github.com/geospoc/v-mapbox/commit/dc9be2fec6fe8052b928fce0e019ee83c153d505)) * **deps:** bump [@deck](https://github.com/deck).gl/layers from 8.8.8 to 8.8.9 ([c699a16](https://github.com/geospoc/v-mapbox/commit/c699a1685472e31627e184c537abdbc047c4b641)) * **deps:** bump [@deck](https://github.com/deck).gl/layers from 8.8.9 to 8.8.11 ([b6c5aaf](https://github.com/geospoc/v-mapbox/commit/b6c5aafb567ebaba9750389c165e12eb1617b9fd)) * **deps:** bump [@deck](https://github.com/deck).gl/mapbox from 8.8.3 to 8.8.4 ([e7b3c19](https://github.com/geospoc/v-mapbox/commit/e7b3c198f05150f264b63117e9a786248ccf9b38)) * **deps:** bump [@deck](https://github.com/deck).gl/mapbox from 8.8.4 to 8.8.6 ([ebdb358](https://github.com/geospoc/v-mapbox/commit/ebdb358dc64836b8579ec2360e6acbcf409345de)) * **deps:** bump [@deck](https://github.com/deck).gl/mapbox from 8.8.6 to 8.8.8 ([ba6fa5a](https://github.com/geospoc/v-mapbox/commit/ba6fa5a1c64a87ed365f638942e0227720b12277)) * **deps:** bump [@deck](https://github.com/deck).gl/mapbox from 8.8.8 to 8.8.9 ([198ff95](https://github.com/geospoc/v-mapbox/commit/198ff95924cdad0ea6a6abe5f82b208144dce695)) * **deps:** bump [@deck](https://github.com/deck).gl/mapbox from 8.8.9 to 8.8.11 ([519c146](https://github.com/geospoc/v-mapbox/commit/519c14657eb83d4af1739709332dbcebd4d24c75)) * **deps:** bump actions/setup-node from 3.3.0 to 3.4.1 ([ee67514](https://github.com/geospoc/v-mapbox/commit/ee675146dfdb7b8d67fbe3811c4a41b63d02fbe1)) * **deps:** bump actions/setup-node from 3.4.1 to 3.5.0 ([fc84366](https://github.com/geospoc/v-mapbox/commit/fc8436678d5e75027faeffc15aa82de879959683)) * **deps:** bump terser from 5.14.1 to 5.14.2 ([6eb12fe](https://github.com/geospoc/v-mapbox/commit/6eb12fe35d5530bc194128cbe03a7022a632d785)) * update outDir to `dist` 🚨 ([4053e69](https://github.com/geospoc/v-mapbox/commit/4053e6946c59d48f1e32e0e053bc224a7320ebdf)) ### Features * add emits as per Vue 3 docs 📖 ([5c873f1](https://github.com/geospoc/v-mapbox/commit/5c873f1d14eb5c4b62ca3937d94d8036c643218b)) * add engines to package files ([4f20b12](https://github.com/geospoc/v-mapbox/commit/4f20b12d6f7a1bb2058abed648f6cbf455151ed5)) ## [3.3.1](https://github.com/geospoc/v-mapbox/compare/v3.3.0...v3.3.1) (2022-07-07) ### Bug Fixes * **geojson:** clean up of props 📍 ([2cc57b1](https://github.com/geospoc/v-mapbox/commit/2cc57b1691a85bd42f10ca5279a50eeb2c46e78a)) * issue with `container` undefined 🐛 ([f9269b5](https://github.com/geospoc/v-mapbox/commit/f9269b517eea449a6bfca91169befcc84b413139)) # [3.3.0](https://github.com/geospoc/v-mapbox/compare/v3.2.4...v3.3.0) (2022-07-07) ### Bug Fixes * **deps:** bump [@deck](https://github.com/deck).gl/core from 8.8.2 to 8.8.3 ([00ecd85](https://github.com/geospoc/v-mapbox/commit/00ecd8587c9e2d2892fe9291a1c9898849a4bc4d)) * **deps:** bump [@deck](https://github.com/deck).gl/layers from 8.8.2 to 8.8.3 ([bdf1f3a](https://github.com/geospoc/v-mapbox/commit/bdf1f3a2291279735aa78cdab182069460185c0d)) * **deps:** bump [@deck](https://github.com/deck).gl/mapbox from 8.8.2 to 8.8.3 ([97f1eca](https://github.com/geospoc/v-mapbox/commit/97f1eca477bc71691d6acc2ef521c641d3728089)) * issue with container not found 🐛 ([6306f73](https://github.com/geospoc/v-mapbox/commit/6306f731b2375b6a550ca9d34462af998b212d03)) ### Features * **geojson-layer:** pass source as `GeoJSONSourceRaw` 🕺 ([0ded1f5](https://github.com/geospoc/v-mapbox/commit/0ded1f5b7f22aef426dcce1e45a513209fda4ca7)) ## [3.2.4](https://github.com/geospoc/v-mapbox/compare/v3.2.3...v3.2.4) (2022-07-05) ### Bug Fixes * ci and lint-pr workflows ([1967366](https://github.com/geospoc/v-mapbox/commit/196736681cf48238a7dfebf5be8b6dbec434f115)) * clean up workflows ([cd0796f](https://github.com/geospoc/v-mapbox/commit/cd0796fdcccd9b13f5fd65d87f9c4dfc0b3b799a)) * **deps:** bump [@deck](https://github.com/deck).gl/core from 8.7.10 to 8.7.11 ([95331d4](https://github.com/geospoc/v-mapbox/commit/95331d41b9aaefe375afaf633be1cfdaa5ce4f85)) * **deps:** bump [@deck](https://github.com/deck).gl/core from 8.7.11 to 8.8.2 ([fc9fd75](https://github.com/geospoc/v-mapbox/commit/fc9fd75a0062f77c42a6b8f70d82c8a71ebe81f8)) * **deps:** bump [@deck](https://github.com/deck).gl/layers from 8.7.10 to 8.7.11 ([b157338](https://github.com/geospoc/v-mapbox/commit/b1573381cd131c4e0ab19dede0e0d9e8a4551e90)) * **deps:** bump [@deck](https://github.com/deck).gl/layers from 8.7.11 to 8.8.2 ([4b4d87e](https://github.com/geospoc/v-mapbox/commit/4b4d87e6286931a9364006f170252b87972eefc2)) * **deps:** bump [@deck](https://github.com/deck).gl/mapbox from 8.7.10 to 8.7.11 ([08877e4](https://github.com/geospoc/v-mapbox/commit/08877e49cabc6fd231b1d3a3a04e50ec53f7dc6b)) * **deps:** bump [@deck](https://github.com/deck).gl/mapbox from 8.7.11 to 8.8.2 ([e9d4017](https://github.com/geospoc/v-mapbox/commit/e9d401763521c13152c563e21e6b5779267a4383)) * **deps:** bump actions/setup-node from 3.2.0 to 3.3.0 ([007c9b0](https://github.com/geospoc/v-mapbox/commit/007c9b0967a6b7938908de3c6bd6525da8806e4a)) ### Features * **husky:** add DAO settings in hook ([575dc51](https://github.com/geospoc/v-mapbox/commit/575dc5159087d4ab4e1073098bb0b2b0d60e6fff)) ## [3.2.3](https://github.com/geospoc/v-mapbox/compare/v3.2.2...v3.2.3) (2022-05-31) ### Bug Fixes * add `lint-staged` as devDep ([20f4f60](https://github.com/geospoc/v-mapbox/commit/20f4f60934c1afb030042f4fb14b0baf9d82dccd)) * **deps:** bump [@deck](https://github.com/deck).gl/core from 8.7.7 to 8.7.8 ([c711cf3](https://github.com/geospoc/v-mapbox/commit/c711cf3ef8915bea286f655b113e69398c04107f)) * **deps:** bump [@deck](https://github.com/deck).gl/core from 8.7.8 to 8.7.9 ([254fb9d](https://github.com/geospoc/v-mapbox/commit/254fb9d81c7f2c263335bb9bf5c8933512f919a0)) * **deps:** bump [@deck](https://github.com/deck).gl/core from 8.7.9 to 8.7.10 ([8b311aa](https://github.com/geospoc/v-mapbox/commit/8b311aa0e8da19cdf7ca3adec9074b4ed0c136f8)) * **deps:** bump [@deck](https://github.com/deck).gl/layers from 8.7.7 to 8.7.8 ([5083356](https://github.com/geospoc/v-mapbox/commit/5083356252931c3fdaab6247adb49fc61b3dcadf)) * **deps:** bump [@deck](https://github.com/deck).gl/layers from 8.7.8 to 8.7.9 ([62424d4](https://github.com/geospoc/v-mapbox/commit/62424d4f4176551bf148a12e3df2def7edbebde4)) * **deps:** bump [@deck](https://github.com/deck).gl/layers from 8.7.9 to 8.7.10 ([e0177a3](https://github.com/geospoc/v-mapbox/commit/e0177a3a639300df4f7f82dd7d08f427f44aa37f)) * **deps:** bump [@deck](https://github.com/deck).gl/mapbox from 8.7.7 to 8.7.8 ([fb7297c](https://github.com/geospoc/v-mapbox/commit/fb7297c59878feb7b0a0b942819f0d1864274ab4)) * **deps:** bump [@deck](https://github.com/deck).gl/mapbox from 8.7.8 to 8.7.9 ([09cdb2a](https://github.com/geospoc/v-mapbox/commit/09cdb2a2f38a04c48694ebd0c1fdb5e76ba9656f)) * **deps:** bump [@deck](https://github.com/deck).gl/mapbox from 8.7.9 to 8.7.10 ([23a01d7](https://github.com/geospoc/v-mapbox/commit/23a01d72690653d9a0f9a3e3c35eba47f51faade)) * **deps:** bump actions/setup-node from 3.1.1 to 3.2.0 ([d281b5c](https://github.com/geospoc/v-mapbox/commit/d281b5ce3141b7fb74c8156476bc23cc3aacaefb)) * **deps:** bump ejs from 3.1.6 to 3.1.7 ([7cb23ad](https://github.com/geospoc/v-mapbox/commit/7cb23ad858ee8ad51b4b1c465f23897ca146b9ce)) * **deps:** bump github/codeql-action from 1 to 2 ([c3ec927](https://github.com/geospoc/v-mapbox/commit/c3ec92715c076ae820549e5664d384aeed79be01)) * **deps:** bump wearerequired/lint-action from 1 to 2 ([57e0ec6](https://github.com/geospoc/v-mapbox/commit/57e0ec60a33cea16f496d5dc40c39d856ff1bdf5)) ## [3.2.2](https://github.com/geospoc/v-mapbox/compare/v3.2.1...v3.2.2) (2022-04-20) ### Bug Fixes * generate new typings using `vue-tsc` ([a2df6fd](https://github.com/geospoc/v-mapbox/commit/a2df6fdb8826520e9127ff5448d8fb3baf7e95b1)) ## [3.2.1](https://github.com/geospoc/v-mapbox/compare/v3.2.0...v3.2.1) (2022-04-20) ### Bug Fixes * build with `deck.gl/core` ([f684b4d](https://github.com/geospoc/v-mapbox/commit/f684b4dc865c651ca04d7d43b99205b069145343)) # [3.2.0](https://github.com/geospoc/v-mapbox/compare/v3.1.6...v3.2.0) (2022-04-20) ### Bug Fixes * **docs:** remove environment details in netlify deploy ([c845761](https://github.com/geospoc/v-mapbox/commit/c845761ffb9716d0416446e61c6c778fab938801)) ### Features * **deck.gl:** add `deck.gl` Arc layer ([60f728f](https://github.com/geospoc/v-mapbox/commit/60f728fc5e5da8fa35f9ef185f726eeb1cf1d975)) * **deck.gl:** add `deck.gl` GeoJSON layer ([bfe18f0](https://github.com/geospoc/v-mapbox/commit/bfe18f019f4373a3d1c34500d16bf4ab90fd79d2)) * enable `[@deck](https://github.com/deck).gl` devDeps ([4fa728f](https://github.com/geospoc/v-mapbox/commit/4fa728ff7b51cc2041104c70be78cbfa59f5e592)) * upgrade GitHub actions to Node 18 ([20d6fcc](https://github.com/geospoc/v-mapbox/commit/20d6fcc1028a804a7a8f807da24c4e2e60410df4)) ## [3.1.6](https://github.com/geospoc/v-mapbox/compare/v3.1.5...v3.1.6) (2022-04-13) ## [3.1.5](https://github.com/geospoc/v-mapbox/compare/v3.1.4...v3.1.5) (2022-04-13) ### Bug Fixes * tsconfig config for `vue-tsc` ([f0cd276](https://github.com/geospoc/v-mapbox/commit/f0cd276a765151ffe91d0d506b2b752befb1c24b)) ### Features * **deps:** add `vue-tsc` for auto-generating the typings ([535f3c8](https://github.com/geospoc/v-mapbox/commit/535f3c81aef37d0dcd99816d7393737dd23ffaa2)) ## [3.1.4](https://github.com/geospoc/v-mapbox/compare/v3.1.3...v3.1.4) (2022-04-13) ## [3.1.3](https://github.com/geospoc/v-mapbox/compare/v3.1.2...v3.1.3) (2022-04-13) ### Bug Fixes * vue bundler path in plugin alias ([ca09890](https://github.com/geospoc/v-mapbox/commit/ca09890f06afd4dd0d0c992f82a255a2cc495ada)) ## [3.1.2](https://github.com/geospoc/v-mapbox/compare/v3.1.1...v3.1.2) (2022-04-12) ## [3.1.1](https://github.com/geospoc/v-mapbox/compare/v3.1.0...v3.1.1) (2022-04-12) ### Bug Fixes * **deps:** bump actions/checkout from 2 to 3 ([207d8f0](https://github.com/geospoc/v-mapbox/commit/207d8f0de31507877be4ca1ec66975e18fe43aeb)) * **deps:** bump actions/setup-node from 2.5.1 to 3.1.0 ([34153f5](https://github.com/geospoc/v-mapbox/commit/34153f50f4d73d8fcebf3ca6f4ca25319a1b57c9)) * **deps:** bump actions/setup-node from 3.1.0 to 3.1.1 ([9897d5c](https://github.com/geospoc/v-mapbox/commit/9897d5c0d7f627ea67d63dcf90f155a1eca729d9)) * issue with passing options to `Map()` ([b09ef8a](https://github.com/geospoc/v-mapbox/commit/b09ef8a55adf934596016b313068dbe2d70e4b06)) # [3.1.0](https://github.com/geospoc/v-mapbox/compare/v3.0.0...v3.1.0) (2022-03-01) ### Bug Fixes * minor housekeeping ([b24bc9e](https://github.com/geospoc/v-mapbox/commit/b24bc9e29b530bc981a634684de446c30019ffc1)) ### Features * **ts:** add `.d.ts` using `vue-tsc` ([745afee](https://github.com/geospoc/v-mapbox/commit/745afeece5f0630000aa01f3ef84359f3160e6e5)) # [3.0.0](https://github.com/geospoc/v-mapbox/compare/v1.10.1...v3.0.0) (2022-02-24) ### Bug Fixes * **deps:** bump node-fetch from 2.6.1 to 2.6.7 ([d1286f4](https://github.com/geospoc/v-mapbox/commit/d1286f481eab69dc50da7c4f1389b543ea8375f5)) * unused variables ([1a967e3](https://github.com/geospoc/v-mapbox/commit/1a967e38c37182b6e78c7a612b2964a327d48420)) ### Features * add default controls 🎉 ([dd5ad1a](https://github.com/geospoc/v-mapbox/commit/dd5ad1a41707fb047a1c100cf05054d906cb1367)) * persist layers when style/basemap changes ([d81a70c](https://github.com/geospoc/v-mapbox/commit/d81a70c11b41117f806971bff6200bd322579d04)) * setup CodeQL ([6fb9fd3](https://github.com/geospoc/v-mapbox/commit/6fb9fd3b679f062c0bf0e279dc5d83e32c9f1dd5)) ## [1.10.1](https://github.com/geospoc/v-mapbox/compare/v1.10.0...v1.10.1) (2022-01-19) ### Bug Fixes * scope the `hidden` class to avoid conflict with tailwind ([559121b](https://github.com/geospoc/v-mapbox/commit/559121b292a1d5d4675e2f46740ad91a8aae2a46)) * **deps:** bump actions/setup-node from 2.5.0 to 2.5.1 ([8a5c510](https://github.com/geospoc/v-mapbox/commit/8a5c5105a82aebc684772ae067278aa0f9895e84)) # [1.10.0](https://github.com/geospoc/v-mapbox/compare/v1.9.0...v1.10.0) (2021-12-06) ### Bug Fixes * update pre-push hook ([baa2b6e](https://github.com/geospoc/v-mapbox/commit/baa2b6e9f16f44d7422cf77e1870c5ddbcb7c12c)) * update typings for Vue components ([ec183fd](https://github.com/geospoc/v-mapbox/commit/ec183fdf82f31c2a5380565bf72ab1f6cae272dc)) * **deps:** bump actions/setup-node from 2.4.1 to 2.5.0 ([c39d507](https://github.com/geospoc/v-mapbox/commit/c39d5076a254551cbf70ad596af2663b7e680331)) ### Features * add `.nvmrc` to use current node version ([3adf1de](https://github.com/geospoc/v-mapbox/commit/3adf1ded474fb06e611ed2ceab789dea84021389)) # [1.9.0](https://github.com/geospoc/v-mapbox/compare/v1.8.2...v1.9.0) (2021-11-10) ### Bug Fixes * **deps:** bump actions/setup-node from 2.4.0 to 2.4.1 ([36c3434](https://github.com/geospoc/v-mapbox/commit/36c343473e5ab683778bb9370925c4b4e4b04694)) ### Features * add iControl ([93fef74](https://github.com/geospoc/v-mapbox/commit/93fef7465b00283e8c366569bd5aa5cc93d2a76d)) ### Reverts * don't make `container` as required field prop ([7dc81ad](https://github.com/geospoc/v-mapbox/commit/7dc81ad1123d9486cef64818a3914368261258e4)) ## [1.8.2](https://github.com/geospoc/v-mapbox/compare/v1.8.1...v1.8.2) (2021-09-18) ### Bug Fixes * **deps:** use rollup-plugin-vue v5 to bundle the pkg ([7143c2f](https://github.com/geospoc/v-mapbox/commit/7143c2f41f40875010293bc30148089117faa9f6)) ## [1.8.1](https://github.com/geospoc/v-mapbox/compare/v1.8.0...v1.8.1) (2021-09-13) ### Bug Fixes * map container template ref not found ([145d978](https://github.com/geospoc/v-mapbox/commit/145d97882fb514c96a50e7eb9fd9d4e76bc2cb07)) # [1.8.0](https://github.com/geospoc/v-mapbox/compare/v1.7.3...v1.8.0) (2021-09-12) ### Bug Fixes * lint issue ([2e2b103](https://github.com/geospoc/v-mapbox/commit/2e2b10336b32454f3ded9729a9941edbee4699d2)) * update CI workflow ([b1fecd0](https://github.com/geospoc/v-mapbox/commit/b1fecd00bd4bc1636f2432ce4dabb5372e4a03cb)) * update deps ([f77392c](https://github.com/geospoc/v-mapbox/commit/f77392cddc3f5e3dd10464c8213a672e702b544a)) * use lint-staged ([34972fa](https://github.com/geospoc/v-mapbox/commit/34972fa6a228e21c0ee907098f9b622ef7950e6c)) * vuepress build issue ([dfc4658](https://github.com/geospoc/v-mapbox/commit/dfc4658bf3ff204312b4a09d1b1f8e6db7aa71b2)) * **deps:** bump actions/setup-node from 2.1.5 to 2.2.0 ([0e29024](https://github.com/geospoc/v-mapbox/commit/0e29024965dbb35c05fba4c13916833a397b949d)) * **deps:** bump actions/setup-node from 2.2.0 to 2.3.0 ([55ba848](https://github.com/geospoc/v-mapbox/commit/55ba84812f888c28bcf2605a896947cdab3c742c)) ## [1.7.3](https://github.com/geospoc/v-mapbox/compare/v1.7.2...v1.7.3) (2021-06-22) ### Bug Fixes * before prop reactive ([9a5a1b2](https://github.com/geospoc/v-mapbox/commit/9a5a1b25eb939ddbc12d045faa395b55d4fa3ddd)), closes [#204](https://github.com/geospoc/v-mapbox/issues/204) * control position reactivity & doc ([9f38751](https://github.com/geospoc/v-mapbox/commit/9f387516c45cd9f68a0497ff52f6ae9e808e0498)), closes [#362](https://github.com/geospoc/v-mapbox/issues/362) ## [1.7.2](https://github.com/geospoc/v-mapbox/compare/v1.7.1...v1.7.2) (2021-06-22) ### Bug Fixes * **deps:** bump actions/cache from 2.1.5 to 2.1.6 ([52401b5](https://github.com/geospoc/v-mapbox/commit/52401b5eb9f3fa822354f804e77811298824488c)) ## [1.7.1](https://github.com/geospoc/v-mapbox/compare/v1.7.0...v1.7.1) (2021-05-18) ### Bug Fixes * add props reflecting Mapbox API ([0a762b3](https://github.com/geospoc/v-mapbox/commit/0a762b32b7283ebcc04987fce747722369b376d6)) * build fsevents on linux ([b011a2f](https://github.com/geospoc/v-mapbox/commit/b011a2f41c6a5f5ac549d1bbddd36f97046038bb)) * set `--no-optional` flag to `npm ci` ([2dd7c4e](https://github.com/geospoc/v-mapbox/commit/2dd7c4e516b289e7ce0d5cfdc67f807d23efddcb)) * typo deafult to default ([f71b030](https://github.com/geospoc/v-mapbox/commit/f71b03059a42788efac0b4ee6f93cce355201426)) * update eslint config to support `eslint-config-prettier` ([07d7a4a](https://github.com/geospoc/v-mapbox/commit/07d7a4ab86d9c33445daa2fd4139fea3b242f86d)) * use npm install instead of npm ci ([c8043d1](https://github.com/geospoc/v-mapbox/commit/c8043d156be5c144bbf797fc14e6e6303fdcb7a1)) * **build:** use sass instead of node-sass ([558f11b](https://github.com/geospoc/v-mapbox/commit/558f11bc0b87299bf87cc44ef7c5d0f8ad1b6503)) * **deps:** bump actions/cache from v2 to v2.1.4 ([49a1bce](https://github.com/geospoc/v-mapbox/commit/49a1bce7353c1a1d4328c99a8337d5b375300644)) * **deps:** bump actions/cache from v2.1.4 to v2.1.5 ([bfde50f](https://github.com/geospoc/v-mapbox/commit/bfde50f85504c940f6bd060b510137d4c2071710)) * **deps:** bump actions/setup-node from v2.1.4 to v2.1.5 ([b087acf](https://github.com/geospoc/v-mapbox/commit/b087acf1b8495277537e99fb7fac41c6319345a7)) ### Reverts * use npm ci & restore cached `node_modules` ([d57f8f7](https://github.com/geospoc/v-mapbox/commit/d57f8f716d4f949d65b313efb455659bffe8c08e)) # [1.7.0](https://github.com/geospoc/v-mapbox/compare/v1.6.4...v1.7.0) (2021-01-29) ### Bug Fixes * prop "showed" in popup caused cyclic issue ([0854318](https://github.com/geospoc/v-mapbox/commit/0854318422339a6cd34c5a7c1d144f400c76beab)), closes [#203](https://github.com/geospoc/v-mapbox/issues/203) * **deps:** bump actions/setup-node from v2.1.2 to v2.1.3 ([659971d](https://github.com/geospoc/v-mapbox/commit/659971d1489724bc5e599d1118a3a09c165009ba)) * **deps:** bump actions/setup-node from v2.1.3 to v2.1.4 ([b4728c5](https://github.com/geospoc/v-mapbox/commit/b4728c555c38c3acd3588bcbc9750030ab8b08e2)) ### Features * add `closeOnMove` & `focusAfterOpen` props ([f77a4b5](https://github.com/geospoc/v-mapbox/commit/f77a4b5648f03c52c01a134bdf2adbf4010ac747)) ## [1.6.4](https://github.com/geospoc/v-mapbox/compare/v1.6.3...v1.6.4) (2020-10-30) ### Bug Fixes * set css as sideEffect ([9257843](https://github.com/geospoc/v-mapbox/commit/9257843a76b61bdb7da1ae29e1bb7ffa0af0b291)) * specify lang attribute to style ([ea10ed3](https://github.com/geospoc/v-mapbox/commit/ea10ed3d42b6fbb4d7585f44552286c342a664a5)) ## [1.6.3](https://github.com/geospoc/v-mapbox/compare/v1.6.2...v1.6.3) (2020-10-29) ### Bug Fixes * **deps:** bump actions/setup-node from v1 to v2.1.2 ([38a4cfa](https://github.com/geospoc/v-mapbox/commit/38a4cfa5735dabeaec34647cdeea6f880d1810b9)) * the `main` entry file was 404 ([e2450e7](https://github.com/geospoc/v-mapbox/commit/e2450e7c3bdc83d965e7a9eacceae07dded7c7fe)), closes [#174](https://github.com/geospoc/v-mapbox/issues/174) ## [1.6.2](https://github.com/geospoc/v-mapbox/compare/v1.6.1...v1.6.2) (2020-10-29) ### Bug Fixes * update `ship.js` workflow ([7379c54](https://github.com/geospoc/v-mapbox/commit/7379c54020ce0472a281af6f619992fc31021ab3)) * **deps:** bump dependencies ([23d8253](https://github.com/geospoc/v-mapbox/commit/23d825336fec178f9e9435f8f9f239f0851ffde6)) * update dependabot config to support github-actions ecosystem ([b2b999e](https://github.com/geospoc/v-mapbox/commit/b2b999e204392dbd9b6090d3369d62e77c71ffe2)) ## [1.6.1](https://github.com/geospoc/v-mapbox/compare/v1.5.0...v1.6.1) (2020-10-06) ### Bug Fixes * failing `npm run build` in shipjs trigger ([8caee76](https://github.com/geospoc/v-mapbox/commit/8caee76f7a8dfb5b681a4b0f098acb7cfca8e870)) * **ci:** update workflows ([7f3b4d5](https://github.com/geospoc/v-mapbox/commit/7f3b4d51e9352c833410cc7231f8582177d7dc35)) * add babelHelpers option in babel rollup plugin ([66d1519](https://github.com/geospoc/v-mapbox/commit/66d151995f32e6ae6db208f233055e4c12e907b3)) # [1.6.0](https://github.com/geospoc/v-mapbox/compare/v1.5.0...v1.6.0) (2020-10-05) ### Bug Fixes * **ci:** update workflows ([7f3b4d5](https://github.com/geospoc/v-mapbox/commit/7f3b4d51e9352c833410cc7231f8582177d7dc35)) * add babelHelpers option in babel rollup plugin ([66d1519](https://github.com/geospoc/v-mapbox/commit/66d151995f32e6ae6db208f233055e4c12e907b3)) * added type `object` for maxBounds validation ([4e2802d](https://github.com/geospoc/v-mapbox/commit/4e2802d0cb2b3cd2aa5269512eecafb7340467e2)) * lint:prettier ([9ab883f](https://github.com/geospoc/v-mapbox/commit/9ab883f3e5165ff99e6a078a538cacb6083351a2)) * rtl issue ([0eefb33](https://github.com/geospoc/v-mapbox/commit/0eefb33eb3b4c9c6955041282615e2216aa3d2d3)) ### Features * make 'bounds' synced prop ([5834608](https://github.com/geospoc/v-mapbox/commit/5834608a7b228fb074b6ef0a42f08aa598ad02b9)) # [1.5.0](https://github.com/geospoc/v-mapbox/compare/v1.4.0...v1.5.0) (2020-09-17) ### Bug Fixes * add classes for popup ([a7d486b](https://github.com/geospoc/v-mapbox/commit/a7d486be3317f87319124e65bee522b56b108b31)) * update dependencies ([cdebed1](https://github.com/geospoc/v-mapbox/commit/cdebed19115bfd149fbc0923b8441933d59c9a27)) * **docs:** update grammar of composition ([7b080c7](https://github.com/geospoc/v-mapbox/commit/7b080c7b2bdeb83cdf69af6c2e449151b15b5f05)) ### Features * add `/rebase` workflow ([b0a3140](https://github.com/geospoc/v-mapbox/commit/b0a314030cf5705365fdfe47ae7b88a7c4dc155f)) * add className option to popup ([bb9abf0](https://github.com/geospoc/v-mapbox/commit/bb9abf021f0e2f9e2fc418f19d1f5855d4b8be21)) # [1.4.0](https://github.com/geospoc/v-mapbox/compare/v1.3.3...v1.4.0) (2020-08-08) ### Bug Fixes * **docs:** update default mapbox-gl version in docs ([d1ddc11](https://github.com/geospoc/v-mapbox/commit/d1ddc111fba917e8cebbae3a298460d95a4f0def)) * **props:** update required values for synced props ([0a516c6](https://github.com/geospoc/v-mapbox/commit/0a516c6d255d961705950fb08fa5e7a594c63189)) * remove eslint overrides ([197717a](https://github.com/geospoc/v-mapbox/commit/197717a958eb7063aece80269f06b390f5f360f7)) ### Features * **docs:** update gl-map api docs ([29579a2](https://github.com/geospoc/v-mapbox/commit/29579a2a8aca875a0899e20b3b3233b9fc3a4ea7)) * add minPitch() & maxPitch() options ([97118e0](https://github.com/geospoc/v-mapbox/commit/97118e01035d668996d5951d850355af780be1d2)) * update map options as per mapbox-gl api ([2f9e6c6](https://github.com/geospoc/v-mapbox/commit/2f9e6c673dab9561160e8f0d8539e97636ec38e9)) ## [1.3.3](https://github.com/geospoc/v-mapbox/compare/v1.3.2...v1.3.3) (2020-07-26) ### Bug Fixes * update CI workflow ([3267f48](https://github.com/geospoc/v-mapbox/commit/3267f480d6a1f9a38919443f46388870052805a8)) * **docs:** update mapbox-gl version ([861690a](https://github.com/geospoc/v-mapbox/commit/861690a9de712aaad54dc3fe9dbe786bc5f9e9fb)) * update rollup plugin babel ([4c77dff](https://github.com/geospoc/v-mapbox/commit/4c77dff0e541aef21a604d199da1ca02cd5b31f9)) * **ci:** update ship.js trigger to trigger on `main` branch ([62e88f3](https://github.com/geospoc/v-mapbox/commit/62e88f328750e0ca9857c9fd9c61b9256b5637c0)) * correct `setLigh` event name typo. ([42bdcd1](https://github.com/geospoc/v-mapbox/commit/42bdcd1aa547e7b946b21549d6101ca7429ca7a8)) ### Features * enable jsconfig for better VSCode Intellisense ([54a055d](https://github.com/geospoc/v-mapbox/commit/54a055d621bcd7627798b6c38d3e33acdaf2cdbb)) ## [1.3.2](https://github.com/vinayakkulkarni/v-mapbox/compare/v1.3.1...v1.3.2) (2020-06-24) ### Features * add styleimagemissing event ([ade797b](https://github.com/vinayakkulkarni/v-mapbox/commit/ade797b27a5582cf6591c676ac97c731b04d3745)) ## [1.3.1](https://github.com/vinayakkulkarni/v-mapbox/compare/v1.2.0...v1.3.1) (2020-06-22) ### Bug Fixes * **deps:** clean lockfile ([85a7217](https://github.com/vinayakkulkarni/v-mapbox/commit/85a7217b6f93614c7e4642c41c3051f724bf9c22)) * add deepscan badge ([731ef73](https://github.com/vinayakkulkarni/v-mapbox/commit/731ef7302d3fa4b5e65219b119542e31acd695f7)) * update docs for Popup open & close events ([08e1502](https://github.com/vinayakkulkarni/v-mapbox/commit/08e15025c38f4222fef8fd8f893f9bdcabe81d72)) * update README for Layers ([0c4bb4d](https://github.com/vinayakkulkarni/v-mapbox/commit/0c4bb4d6691e3b0d8f97212d15e4442c055899e3)) ### Features * add Code Of Conduct ([ea9bfae](https://github.com/vinayakkulkarni/v-mapbox/commit/ea9bfaeb4d370e2f801f736469935c39505cdf67)) * allow the hash param to be a string or a boolean ([361e7f5](https://github.com/vinayakkulkarni/v-mapbox/commit/361e7f5b581bea2e15326180b40f8748b6b5dbac)) # [1.3.0](https://github.com/vinayakkulkarni/v-mapbox/compare/v1.2.0...v1.3.0) (2020-06-22) ### Bug Fixes * add deepscan badge ([731ef73](https://github.com/vinayakkulkarni/v-mapbox/commit/731ef7302d3fa4b5e65219b119542e31acd695f7)) * update docs for Popup open & close events ([08e1502](https://github.com/vinayakkulkarni/v-mapbox/commit/08e15025c38f4222fef8fd8f893f9bdcabe81d72)) * update README for Layers ([0c4bb4d](https://github.com/vinayakkulkarni/v-mapbox/commit/0c4bb4d6691e3b0d8f97212d15e4442c055899e3)) ### Features * add Code Of Conduct ([ea9bfae](https://github.com/vinayakkulkarni/v-mapbox/commit/ea9bfaeb4d370e2f801f736469935c39505cdf67)) * allow the hash param to be a string or a boolean ([361e7f5](https://github.com/vinayakkulkarni/v-mapbox/commit/361e7f5b581bea2e15326180b40f8748b6b5dbac)) # [1.2.0](https://github.com/vinayakkulkarni/v-mapbox/compare/v1.0.2...v1.2.0) (2020-06-17) ### Bug Fixes * typo in docs ([ebc03b1](https://github.com/vinayakkulkarni/v-mapbox/commit/ebc03b1)) * update docs ([edaeb42](https://github.com/vinayakkulkarni/v-mapbox/commit/edaeb42)) * update docs for props & import links ([463593a](https://github.com/vinayakkulkarni/v-mapbox/commit/463593a)) * update homepage ([92f7499](https://github.com/vinayakkulkarni/v-mapbox/commit/92f7499)) * update typo in docs ([b2f1a9f](https://github.com/vinayakkulkarni/v-mapbox/commit/b2f1a9f)) ### Features * add few badges ([a79eb48](https://github.com/vinayakkulkarni/v-mapbox/commit/a79eb48)) * add maxWidth prop for popup ([36d2dfa](https://github.com/vinayakkulkarni/v-mapbox/commit/36d2dfa)) # [1.1.0](https://github.com/vinayakkulkarni/v-mapbox/compare/v1.0.2...v1.1.0) (2020-06-17) ### Bug Fixes * typo in docs ([ebc03b1](https://github.com/vinayakkulkarni/v-mapbox/commit/ebc03b1)) * update docs ([edaeb42](https://github.com/vinayakkulkarni/v-mapbox/commit/edaeb42)) * update docs for props & import links ([463593a](https://github.com/vinayakkulkarni/v-mapbox/commit/463593a)) * update homepage ([92f7499](https://github.com/vinayakkulkarni/v-mapbox/commit/92f7499)) * update typo in docs ([b2f1a9f](https://github.com/vinayakkulkarni/v-mapbox/commit/b2f1a9f)) ### Features * add few badges ([a79eb48](https://github.com/vinayakkulkarni/v-mapbox/commit/a79eb48)) * add maxWidth prop for popup ([36d2dfa](https://github.com/vinayakkulkarni/v-mapbox/commit/36d2dfa)) ## [1.0.2](https://github.com/vinayakkulkarni/v-mapbox/compare/0.4.1...1.0.2) (2020-06-17) ### Bug Fixes * update pkg registry ([7273257](https://github.com/vinayakkulkarni/v-mapbox/commit/7273257)) ## [1.0.1](https://github.com/vinayakkulkarni/v-mapbox/compare/0.4.1...1.0.1) (2020-06-17) ### Bug Fixes * remove dist 🧹 ([5140930](https://github.com/vinayakkulkarni/v-mapbox/commit/5140930)) * remove test from ci workflow ([72cd2da](https://github.com/vinayakkulkarni/v-mapbox/commit/72cd2da)) * remove yarn 🙌 ([966b112](https://github.com/vinayakkulkarni/v-mapbox/commit/966b112)) * update eslint ignore rules 🏗 ([1dae683](https://github.com/vinayakkulkarni/v-mapbox/commit/1dae683)) * update License 👀 ([7483eef](https://github.com/vinayakkulkarni/v-mapbox/commit/7483eef)) * update lockfiles, prettier & husky configs 💅 ([297cd09](https://github.com/vinayakkulkarni/v-mapbox/commit/297cd09)) ### Features * **ci:** add dependabot & semantic pr configs 🤗 ([3d518b5](https://github.com/vinayakkulkarni/v-mapbox/commit/3d518b5)) ================================================ FILE: CODE_OF_CONDUCT.md ================================================ # Contributor Covenant Code of Conduct ## Our Pledge In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards Examples of behavior that contributes to creating a positive environment include: * Using welcoming and inclusive language * Being respectful of differing viewpoints and experiences * Gracefully accepting constructive criticism * Focusing on what is best for the community * Showing empathy towards other community members Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery and unwelcome sexual attention or advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or electronic address, without explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. ## Scope This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at inbox.vinayak@gmail.com. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html [homepage]: https://www.contributor-covenant.org For answers to common questions about this code of conduct, see https://www.contributor-covenant.org/faq ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2017 soal, 2020-current Vinayak Kulkarni Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================ # V-Mapbox 🗺 npm GitHub release (latest by date including pre-releases) Total alerts DeepScan grade npm GitHub last commit GitHub contributors Maintenance > Combine powers of [Vue](https://vuejs.org/) and [Mapbox GL JS](https://mapbox.com/mapbox-gl-js) (v3.x) & [MaplibreGL](https://maplibre.org/maplibre-gl-js/docs/) (v4.x) 🗺 V-Mapbox is wrapper around Mapbox GL JS for >v1.x to <=v3.x & Maplibre GL JS for > v4.x library that provides vueish-way to interact with the map. [Description and documentation](https://v-mapbox.netlify.app/) ## Installation ```sh # For Vue 2 $ npm i v-mapbox@legacy # For Vue 3 $ npm i v-mapbox ``` ## Demo [![Edit v-mapbox-vue-3](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/v-mapbox-uq9ri2?fontsize=14&hidenavigation=1&theme=dark) ## Deck.gl 🆕 [![Edit v-mapbox-with-deck-gl-geojson](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/v-mapbox-with-deck-gl-geojson-f8nn5q?fontsize=14&hidenavigation=1&theme=dark) ## Development ```sh git clone git@github.com:vinayakkulkarni/v-mapbox.git cd v-mapbox npm install ``` Running in dev mode: ```sh npm run serve ``` Build for production: ```sh npm run build ``` ### Documentation Start documentation site in development mode: ```sh npm run docs:dev ``` Build documentation: ```sh npm run docs:build ``` Inspired by KoRiGaN's [Vue2Leaflet](https://github.com/KoRiGaN/Vue2Leaflet). ## Contributing 1. Fork it ([https://github.com/vinayakkulkarni/v-mapbox/fork](https://github.com/vinayakkulkarni/v-mapbox/fork)) 2. Create your feature branch (`git checkout -b feat/new-feature`) 3. Commit your changes (`git commit -Sam 'feat: add feature'`) 4. Push to the branch (`git push origin feat/new-feature`) 5. Create a new [Pull Request](https://github.com/vinayakkulkarni/v-mapbox/compare) _Note_: 1. Please contribute using [GitHub Flow](https://web.archive.org/web/20191104103724/https://guides.github.com/introduction/flow/) 2. Commits & PRs will be allowed only if the commit messages & PR titles follow the [conventional commit standard](https://www.conventionalcommits.org/), _read more about it [here](https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional#type-enum)_ 3. PS. Ensure your commits are signed. _[Read why](https://withblue.ink/2020/05/17/how-and-why-to-sign-git-commits.html)_ ## Author **v-mapbox** © [Vinayak](https://github.com/vinayakkulkarni), Released under the [MIT](./LICENSE) License.
Authored and maintained by Vinayak Kulkarni with help from contributors ([list](https://github.com/vinayakkulkarni/v-mapbox/contributors)). > [vinayakkulkarni.dev](https://vinayakkulkarni.dev) · GitHub [@vinayakkulkarni](https://github.com/vinayakkulkarni) · Twitter [@\_vinayak_k](https://twitter.com/_vinayak_k) ## License MIT [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fvinayakkulkarni%2Fv-mapbox.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fvinayakkulkarni%2Fv-mapbox?ref=badge_large) ================================================ FILE: commitlint.config.cjs ================================================ module.exports = { extends: ['@commitlint/config-conventional'], }; ================================================ FILE: docs/.vitepress/config.ts ================================================ import { defineConfig } from 'vitepress'; import type { DefaultTheme } from 'vitepress/types/default-theme'; const nav: DefaultTheme.Config['nav'] = [ { text: 'Guide', link: '/guide/', }, { text: 'API', link: '/api/', }, { text: 'Plugin Components', link: '/plugin-components/', }, ]; const sidebar: DefaultTheme.Config['sidebar'] = { '/guide/': [ { text: 'Guide', items: [ { text: 'Index', link: '/guide/index.md' }, { text: 'Basemap', link: '/guide/basemap.md' }, { text: 'Composition', link: '/guide/composition.md' }, { text: 'Controls', link: '/guide/controls.md' }, { text: 'Markers & Popups', link: '/guide/markers-and-popups.md' }, { text: 'Layers & Sources', link: '/guide/layers-and-sources.md' }, ], }, ], '/api/': [ { text: 'API', items: [ { text: 'Index', link: '/api/index.md' }, { text: 'Controls', link: '/api/controls.md' }, { text: 'Markers', link: '/api/marker.md' }, { text: 'Popups', link: '/api/popup.md' }, { text: 'Layers', link: '/api/Layers/index.md' }, { text: 'GeoJSON Layer', link: '/api/Layers/geojsonlayer.md' }, { text: 'Vector Layer', link: '/api/Layers/vectorlayer.md' }, { text: 'Raster Layer', link: '/api/Layers/rasterlayer.md' }, { text: 'Image Layer', link: '/api/Layers/imagelayer.md' }, { text: 'Video Layer', link: '/api/Layers/videolayer.md' }, { text: 'Canvas Layer', link: '/api/Layers/canvaslayer.md' }, ], }, ], '/plugin-components/': [ { text: 'Plugin Components', items: [ { text: 'Index', link: '/plugin-components/index.md' }, { text: 'Development', link: '/plugin-components/plugin-components-development.md', }, ], }, ], }; export default defineConfig({ title: 'V-Mapbox', description: 'Combine powers of Mapbox GL JS and Vue.js', themeConfig: { nav, sidebar, footer: { message: 'Released under the MIT License.', copyright: 'Copyright © 2019-present Vinayak Kulkarni', }, }, }); ================================================ FILE: docs/api/Layers/canvaslayer.md ================================================ # CanvasLayer ::: tip Mapbox GL JS docs: [CanvasSource](https://docs.mapbox.com/mapbox-gl-js/api/#canvassource) ::: ## Props All common [layers props](/api/Layers/index.md#props) ## Events All common layer [events](/api/Layers/#events) ================================================ FILE: docs/api/Layers/geojsonlayer.md ================================================ # GeojsonLayer ## Props All common [layers props](/api/Layers/index.md#props) ### `source` - **Type:** `Object | String` - **Non-Synced** - **Description:** A source containing GeoJSON or URL to it. - **See:** `GeoJSONSource` in [Mapbox API Docs](https://docs.mapbox.com/mapbox-gl-js/api/#geojsonsource) ## Computed getters ### `getSourceFeatures(filter?)` - **Arguments:** - `filter` `Array` A filter to limit query results. - **Description** Returns an array of GeoJSON Feature objects from assosiated source filtered by `filter`. - **See** `.querySourceFeatures()` [map method](https://docs.mapbox.com/mapbox-gl-js/api/#map#querysourcefeatures) ### `getRenderedFeatures(geometry, filter)` - **Arguments:** - `filter` `Array` A filter to limit query results. - `geometry` `Array | Object` The geometry of the query region. - **Description** Returns an array of visible GeoJSON Feature objects from assosiated source filtered by `filter`. - **See** `.queryRenderedFeatures()` [map method](https://docs.mapbox.com/mapbox-gl-js/api/#map#queryrenderedfeatures) ### `getClusterExpansionZoom(clusterId)` - **Arguments:** - `clusterId` `Number` The value of the cluster's cluster_id property. - **Description** For clustered sources, fetches the zoom at which the given cluster expands and returns `Promise` with zoom level as payload. - **See** `.getClusterExpansionZoom()` [GeoJSONSource method](https://docs.mapbox.com/mapbox-gl-js/api/#geojsonsource#getclusterexpansionzoom) ### `getClusterChildren(clusterId)` - **Arguments:** - `clusterId` `Number` The value of the cluster's cluster_id property. - `limit` `Number` The maximum number of features to return. - `offset` `Number` The number of features to skip (e.g. for pagination). - **Description** For clustered sources, fetches the original points that belong to the cluster and returns `Promise` with an `Array` of GeoJSON features as payload. - **See** `.getClusterChildren()` [GeoJSONSource method](https://docs.mapbox.com/mapbox-gl-js/api/#geojsonsource#getclusterchildren) ### `getClusterLeaves(clusterId, limit, offset)` - **Arguments:** - `filter` `Array` A filter to limit query results. - `geometry` `Array | Object` The geometry of the query region. - **Description** Returns `Promise` with an array of visible GeoJSON Feature objects from assosiated source filtered by `filter` in the payload. - **See** `.getClusterLeaves()` [GeoJSONSource method](https://docs.mapbox.com/mapbox-gl-js/api/#geojsonsource#getclusterleaves) ## Methods ### `setFeatureState(featureId, state)` - **Arguments:** - `featureId` `String | Number` Feature identifier. - `state` `Object` A set of key-value pairs. The values should be valid JSON types. - **Description** Sets the state of a feature. The state object is merged in with the existing state of the feature. - **See** `.setFeatureState()` [map method](https://docs.mapbox.com/mapbox-gl-js/api/#map#setfeaturestate) ### `getFeatureState(featureId)` - **Arguments:** - `featureId` `String | Number` Feature identifier. - **Description** Gets the state of a feature. - **See** `.getFeatureState()` [map method](https://docs.mapbox.com/mapbox-gl-js/api/#map#getfeaturestate) ### `removeFeatureState(featureId?, sourceLayer?, key?)` - **Arguments:** - `featureId` `String | Number` Feature identifier. - `sourceLayer` `string` Source layer id. - `key` `string` The key in the feature state to reset. - **Description** Removes feature state, setting it back to the default behavior. If no featureId or key is specified, removes all states of that source. If featureId is also specified, removes all keys for that feature's state. If key is also specified, removes that key from that feature's state. - **See** `.removeFeatureState()` [map method](https://docs.mapbox.com/mapbox-gl-js/api/#map#removefeaturestate) ## Events All common layer [events](/api/Layers/#events) ================================================ FILE: docs/api/Layers/imagelayer.md ================================================ # ImageLayer ## Props All common [layers props](/api/Layers/index.md#props) ### `source` - **Type:** `Object | String` - **Non-Synced** - **Description:** A data source containing an image. - **See:** `ImageSource` in [Mapbox API Docs](https://docs.mapbox.com/mapbox-gl-js/api/#imagesource) ::: tip Reactivity `coordinates` and `url` fields of the `source` prop are reactive. If you change their value, changes automatically applied to the map. ::: ## Events All common layer [events](/api/Layers/#events) ================================================ FILE: docs/api/Layers/index.md ================================================ # Layers common ## Props #### Props for Mapbox GL source ### `sourceId` - **Type:** `String` - **Required** - **Non-Synced** - **Description:** ID of the source to add. Must not conflict with existing sources. - **See:** `.addSource()` [Map method](https://docs.mapbox.com/mapbox-gl-js/api/#map#addsource) ### `source` - **Type:** `Object | String` - **Required** - **Non-Synced** A source for layer or URL to it. - **Description:** - **See:** `sources` in [Mapbox Style Spec](https://docs.mapbox.com/mapbox-gl-js/style-spec/#sources) #### Props for Mapbox GL layer ### `layerId` - **Type** `String` - **Description:** ID of the layer to add. Must not conflict with existing layers. - **Required** - **Non-Synced** - **See:** `id` in [Mapbox Layer Style Spec](https://docs.mapbox.com/mapbox-gl-js/style-spec/#layer-id) ### `layer` - **Type** `String` - **Description:** Layer configuration object. - **Required** - **Non-Synced** - **See:** `layers` in [Mapbox Layer Style Spec](https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers) ::: tip Reactivity `minzoom`, `maxzoom`, `paint`, `layout` and `filter` fields of `layer` prop are reactive. If you change their value, changes automatically applied to the map. ::: ### `before` - **Type:** `String` - **Default:** `undefined` - **Non-Synced** - **Description:** The ID of an existing layer to insert the new layer before. - **See:** `metadata` in [Mapbox Layer Style Spec](https://docs.mapbox.com/mapbox-gl-js/style-spec/#layer-metadata) #### Props for V-Mapbox component ### `clearSource` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** If `true`, component will remove layer source from map on component destruction. ### `replaceSource` - **Type:** `Boolean` - **Default:** `false` - **Non-Synced** - **Description:** If source passed to `source` prop of layer component already added ot the map, it will be ignored and existed `source` will be used. If `replaceSource` is `true` source will be replaced with new instead. ### `replace` - **Type:** `Boolean` - **Default:** `false` - **Non-Synced** - **Description:** If `true`, replaces existing layer with same id. Otherwise, error returns. ## Computed properties ### `sourceLoaded` - **Type** `Boolean` - **Description** Flag that indicated if layer source already loaded. ### `mapLayer` - **Type** `Object` - **Description** Mapbox GL layer object. - **See** [`.getLayer()`](https://docs.mapbox.com/mapbox-gl-js/api/#map#getlayer) map method ### `mapSource` - **Type** `Object` - **Description** Source for this layer. - **See** [`Mapbox GL source`](https://docs.mapbox.com/mapbox-gl-js/api/#sources) ## Methods ### `.move(beforeId?)` - **Arguments:** - `beforeId` `String` The ID of an existing layer to insert the new layer before. If this argument is omitted, the layer will be appended to the end of the layers array. - **Description** Moves a layer to a different z-position. - **See** [`.moveLayer()`](https://docs.mapbox.com/mapbox-gl-js/api/#map#movelayer) map method ### `.remove()` - **Description** Removes the layer with and source assosiated with it. - **See** [`.removeLayer()`](https://docs.mapbox.com/mapbox-gl-js/api/#map#removelayer) map method ## Events Payload of events contains object with properties: - `mapboxEvent` Original Mapbox GL JS event - `layerId` ID of current layer - `map` Current map object - `component` Component that emits event ### `@mousedown` ### `@mouseup` ### `@click` ### `@dblclick` ### `@mousemove` ### `@mouseenter` ### `@mouseleave` ### `@mouseover` ### `@mouseout` ### `@contextmenu` ### `@touchstart` ### `@touchend` ### `@touchcancel` ================================================ FILE: docs/api/Layers/rasterlayer.md ================================================ # RasterLayer ## Props All common [layers props](/api/Layers/index.md#props) ### `source` - **Type:** `Object | String` - **Non-Synced** - **Description:** A raster tile source. - **See:** `Raster source` in [Mapbox Style Spec](https://docs.mapbox.com/mapbox-gl-js/style-spec/#sources-raster) ## Events All common layer [events](/api/Layers/#events) ================================================ FILE: docs/api/Layers/vectorlayer.md ================================================ # VectorLayer ## Props All common [layers props](/api/Layers/index.md#props) ### `source` - **Type:** `Object | String` - **Non-Synced** - **Description:** A vector tile source. - **See:** `Vector source` in [Mapbox Style Spec](https://docs.mapbox.com/mapbox-gl-js/style-spec/#sources-vector) ## Computed getters ### `getSourceFeatures(filter?)` - **Arguments:** - `filter` `Array` A filter to limit query results. - **Description** Returns an array of GeoJSON Feature objects from assosiated source filtered by `filter`. - **See** `.querySourceFeatures()` [map method](https://docs.mapbox.com/mapbox-gl-js/api/#map#querysourcefeatures) ### `getRenderedFeatures(geometry, filter)` - **Arguments:** - `filter` `Array` A filter to limit query results. - `geometry` `Array | Object` The geometry of the query region. - **Description** Returns an array of visible GeoJSON Feature objects from assosiated source filtered by `filter`. - **See** `.queryRenderedFeatures()` [map method](https://docs.mapbox.com/mapbox-gl-js/api/#map#queryrenderedfeatures) ## Methods ### `setFeatureState(featureId, state)` - **Arguments:** - `featureId` `String | Number` Feature identifier. - `state` `Object` A set of key-value pairs. The values should be valid JSON types. - **Description** Sets the state of a feature. The state object is merged in with the existing state of the feature. - **See** `.setFeatureState()` [map method](https://docs.mapbox.com/mapbox-gl-js/api/#map#setfeaturestate) ### `getFeatureState(featureId)` - **Arguments:** - `featureId` `String | Number` Feature identifier. - **Description** Gets the state of a feature. - **See** `.getFeatureState()` [map method](https://docs.mapbox.com/mapbox-gl-js/api/#map#getfeaturestate) ## Events All common layer [events](/api/Layers/#events) ================================================ FILE: docs/api/Layers/videolayer.md ================================================ # CanvasLayer ## Props All common [layers props](/api/Layers/index.md#props) ### `source` - **Type:** `Object | String` - **Non-Synced** - **Description:** A data source containing video. - **See:** `Video source` in [Mapbox API Docs](https://docs.mapbox.com/mapbox-gl-js/api/#videosource) ::: tip Reactivity `coordinates` field of the `source` prop is reactive. If you change it's value, changes automatically applied to the map. ::: ## Computed getters ### `video` - **Description** Returns the HTML video element. - **See** `.getVideo()` [method](https://docs.mapbox.com/mapbox-gl-js/api/#videosource#getvideo) ================================================ FILE: docs/api/controls.md ================================================ # Map control components ### Common Props ### `position` - **Type:** `String` - **Default:** `'top-right'` - **Description:** position on the map to which the control will be added. Valid values are 'top-left' , 'top-right' , 'bottom-left' , and 'bottom-right' - **See:** `position` in [addControl](https://docs.mapbox.com/mapbox-gl-js/api/map/#map#addcontrol) ### Common Props ### `position` - **Type:** `String` - **Default:** `'top-right'` - **Description:** position on the map to which the control will be added. Valid values are 'top-left' , 'top-right' , 'bottom-left' , and 'bottom-right' - **See:** `position` in [addControl](https://docs.mapbox.com/mapbox-gl-js/api/map/#map#addcontrol) ## IControl a versatile control box for your content ### Props none ### Slots ### `default` Your content as text, HTML or Template, will be wrapped in div with `mapboxgl-ctrl mapboxgl-ctrl-group` classes ***See:*** [IControl](https://docs.mapbox.com/mapbox-gl-js/api/markers/#icontrol) ## AttributionControl An AttributionControl control presents the map's attribution information. ### Props ### `compact` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** If true force a compact attribution - **See:** `options.compact` in [AttributionControl](https://docs.mapbox.com/mapbox-gl-js/api/#attributioncontrol) ### `customAttribution` - **Type:** `string, Array?` - **Default:** `true` - **Non-Synced** - **Description:** String or strings to show in addition to any other attributions. - **See:** `options.customAttribution` in [AttributionControl](https://docs.mapbox.com/mapbox-gl-js/api/#attributioncontrol) ## FullscreenControl Creates a button on the map to toggle fulscreen mode. ### Props ### `container` - **Type:** `HTMLElement` - **Non-Synced** - **Description:** DOM element which should be made full screen. By default, the map container element will be made full screen. - **See:** `options.container` in [FullscreenControl](https://docs.mapbox.com/mapbox-gl-js/api/#fullscreencontrol) ## GeolocateControl Provides a button that uses the browser's geolocation API to locate the user on the map. ### Props ### `positionOptions` - **Type:** `Object` - **Default:** `{ enableHighAccuracy: false, timeout: 6000}` - **Non-Synced** - **Description:** A Geolocation API PositionOptions object. - **See:** `options.positionOptions` in [GeolocateControl](https://docs.mapbox.com/mapbox-gl-js/api/#geolocatecontrol) ### `fitBoundsOptions` - **Type:** `Object` - **Default:** `{ maxZoom:15 }` - **Non-Synced** - **Description:** A fitBounds options object to use when the map is panned and zoomed to the user's location. - **See:** `options.fitBoundsOptions` in [GeolocateControl](https://docs.mapbox.com/mapbox-gl-js/api/#geolocatecontrol) ### `trackUserLocation` - **Type:** `Boolean` - **Default:** `false` - **Non-Synced** - **Description:** If true the Geolocate Control becomes a toggle button and when active the map will receive updates to the user's location as it changes.to the user's location. - **See:** `options.trackUserLocation` in [GeolocateControl](https://docs.mapbox.com/mapbox-gl-js/api/#geolocatecontrol) ### `showAccuracyCircle` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** By default, if showUserLocation is true , a transparent circle will be drawn around the user location indicating the accuracy (95% confidence level) of the user's location. Set to false to disable. Always disabled when showUserLocation is false . - **See:** `options.showUserLocation` in [GeolocateControl](https://docs.mapbox.com/mapbox-gl-js/api/#geolocatecontrol) ### `showUserLocation` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** By default a dot will be shown on the map at the user's location. Set to false to disable. - **See:** `options.showUserLocation` in [GeolocateControl](https://docs.mapbox.com/mapbox-gl-js/api/#geolocatecontrol) ### Methods ### `.trigger()` - **Description:** Trigger a geolocation - **Returns:** `boolean` - **See:** [trigger](https://docs.mapbox.com/mapbox-gl-js/api/#geolocatecontrol#trigger) GeolocateControl method ## NavigationControl ### Props ### `showCompass` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** If true the compass button is included. - **See:** `options.showCompass` in [NavigationControl](https://docs.mapbox.com/mapbox-gl-js/api/#navigationcontrol) ### `showZoom` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** If true the zoom-in and zoom-out buttons are included. - **See:** `options.showZoom` in [NavigationControl](https://docs.mapbox.com/mapbox-gl-js/api/#navigationcontrol) ### `visualizePitch` - **Type:** `Boolean` - **Default:** `false` - **Non-Synced** - **Description:** If true the pitch is visualized by rotating X-axis of compass. - **See:** `options.visualizePitch` in [NavigationControl](https://docs.mapbox.com/mapbox-gl-js/api/#navigationcontrol) ## ScaleControl ### Props ### `maxWidth` - **Type:** `Number` - **Default:** `100` - **Non-Synced** - **Description:** The maximum length of the scale control in pixels. - **See:** `options.maxWidth` in [ScaleControl](https://docs.mapbox.com/mapbox-gl-js/api/#scalecontrol) ### `unit` - **Type:** `String, "imperial" | "metric" | "nautical"` - **Default:** `metric` - **Non-Synced** - **Description:** Unit of the distance - **See:** `options.unit` in [ScaleControl](https://docs.mapbox.com/mapbox-gl-js/api/#scalecontrol) ================================================ FILE: docs/api/index.md ================================================ # GlMap ## Props ### `mapbox-gl` - **Type**: `Object` - **Default:** `null` - - **Description:** `mapbox-gl` implementation. Useful for lazy-loading. If omitted, VMapbox imports mapbox-gl js dynamically. ### `map-style` - **Type**: `String`, `Object` - **Default:** `undefined` - **Required** - **Synced** - **Description:** The map's Mapbox style. This must be an a JSON object conforming to the schema described in the Mapbox Style Specification , or a URL to such JSON. - **See:** `options.style` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `access-token` - **Type:** `String` - **Default:** `undefined` - **Non-Synced** - **Description:** Token required to access the tiles provided by Mapbox - **See:** [accessToken](https://docs.mapbox.com/mapbox-gl-js/api/#accesstoken) ### `container` - **Type:** `String`, `HTMLElement` - **Default:** `#map-{random number}` - **Non-Synced** - **Description:** The HTML element in which Mapbox GL JS will render the map - **See:** `options.container` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `min-zoom` - **Type:** `Number` - **Default:** `0` - **Synced** - **Description:** Minimum zoom level of the map (0-24) - **See:** `options.minZoom` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `max-zoom` - **Type:** `Number` - **Default:** `22` - **Synced** - **Description:** Maximum zoom level of the map (0-24) - **See:** `options.maxZoom` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `min-pitch` - **Type:** `Number` - **Default:** `0` - **Synced** - **Description:** The minimum pitch of the map (0-60) - **See:** `options.minPitch` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `max-pitch` - **Type:** `Number` - **Default:** `0` - **Synced** - **Description:** The maximum pitch of the map (0-60) - **See:** `options.maxPitch` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `hash` - **Type:** `Boolean`, `String` - **Default:** `false` - **Synced** - **Description:** If true, the map's position (zoom, center latitude, center longitude, bearing, and pitch) will be synced with the hash fragment of the page's URL. If it's a string, it will be the name of the param in a parameter-styled hash. - **See:** `options.hash` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `interactive` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** If false, no mouse, touch, or keyboard listeners will be attached to the map, so it will not respond to interaction - **See:** `options.interactive` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `bearing-snap` - **Type:** `Number` - **Default:** `7` - **Non-Synced** - **Description:** The threshold, measured in degrees, that determines when the map's bearing will snap to north - **See:** `options.bearingSnap` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `pitch-with-rotate` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** If false , the map's pitch (tilt) control with "drag to rotate" interaction will be disabled - **See:** `options.pitchWithRotate` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `click-tolerance` - **Type:** `Number` - **Default:** `3` - **Non-Synced** - **Description:** The max number of pixels a user can shift the mouse pointer during a click for it to be considered a valid click (as opposed to a mouse drag) - **See:** `options.clickTolerance` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `attribution-control` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** If true, an AttributionControl will be added to the map - **See:** `options.attributionControl` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `custom-attribution` - **Type:** `String`, `Array` - **Default:** `null` - **Non-Synced** - **Description:** String or strings to show in an AttributionControl. Only applicable if `options.attributionControl` is `true` - **See:** `options.customAttribution` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `logo-position` - **Type:** `String`, `top-left`, `top-right`, `bottom-right`, `bottom-left` - **Default:** `bottom-left` - **Non-Synced** - **Description:** A string representing the position of the Mapbox wordmark on the map - **See:** `options.logoPosition` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `fail-if-major-performance-caveat` - **Type:** `Boolean` - **Default:** `false` - **Non-Synced** - **Description:** If true, map creation will fail if the performance of Mapbox GL JS would be dramatically worse than expected (i.e. a software renderer would be used) - **See:** `options.failIfMajorPerformanceCaveat` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `preserve-drawing-buffer` - **Type:** `Boolean` - **Default:** `false` - **Non-Synced** - **Description:** If `true`, the map's canvas can be exported to a PNG using `map.getCanvas().toDataURL()`. This is `false` by default as a performance optimization - **See:** `options.preserveDrawingBuffer` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `antialias` - **Type:** `Boolean` - **Default:** `false` - **Non-Synced** - **Description:** If `true`, the gl context will be created with MSAA antialiasing, which can be useful for antialiasing custom layers. This is `false` by default as a performance optimization - **See:** `options.antialias` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `refresh-expired-tiles` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** If true, the map won't attempt to re-request tiles once they expire per their HTTP cacheControl / expires headers. - **See:** `options.refreshExpiredTiles` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `max-bounds` - **Type:** `Array`, `LngLatBoundsLike object` - **Default:** `undefined` - **Synced** - **Description:** If set, the map will be constrained to the given bounds - **See:** `options.maxBounds` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `scroll-zoom` - **Type:** `Boolean`, `Object` - **Default:** `true` - **Non-Synced** - **Description:** If true, the "scroll to zoom" interaction is enabled. An Object value is passed as options to ScrollZoomHandler#enable - **See:** `options.scrollZoom` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `box-zoom` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** If true, the "box zoom" interaction is enabled - **See:** `options.boxZoom` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `drag-rotate` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** If true, the "drag to rotate" interaction is enabled - **See:** `options.dragRotate` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `drag-pan` - **Type:** `Boolean`, `Object` - **Default:** `true` - **Non-Synced** - **Description:** If `true`, the "drag to pan" interaction is enabled. An Object value is passed as options to [DragPanHandler#enable](https://docs.mapbox.com/mapbox-gl-js/api/handlers/#dragpanhandler#enable). - **See:** `options.dragRotate` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `keyboard` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** If true, keyboard shortcuts are enabled - **See:** `options.keyboard` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `double-click-zoom` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** If true, the "double click to zoom" interaction is enabled - **See:** `options.doubleClickZoom` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `touch-zoom-rotate` - **Type:** `Boolean`, `Object` - **Default:** `true` - **Non-Synced** - **Description:** If true, the "pinch to rotate and zoom" interaction is enabled. An Object value is passed as options to [TouchZoomRotateHandler#enable](https://docs.mapbox.com/mapbox-gl-js/api/handlers/#touchzoomrotatehandler#enable) - **See:** `options.touchZoomRotate` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `touch-pitch` - **Type:** `Boolean`, `Object` - **Default:** `true` - **Non-Synced** - **Description:** If `true`, the "drag to pitch" interaction is enabled. An Object value is passed as options to [TouchPitchHandler#enable](https://docs.mapbox.com/mapbox-gl-js/api/handlers/#touchpitchhandler#enable) - **See:** `options.touchPitch` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `track-resize` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** If `true`, the map will automatically resize when the browser window resizes - **See:** `options.trackResize` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `center` - **Type:** `Array, LngLatLike Object` - **Default:** `undefined` - **Synced** - **Description:** Geographical centerpoint of the map. If center is not specified in the constructor options, Mapbox GL JS will look for it in the map's style object.If it is not specified in the style, either, it will default to `[0, 0]` - **See:** `options.center` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `zoom` - **Type:** `Number` - **Default:** `undefined` - **Synced** - **Description:** Zoom level of the map. If zoom is not specified in the constructor options, Mapbox GL JS will look for it in the map's style object. If it is not specified in the style, either, it will default to `0` - **See:** `options.zoom` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `bearing` - **Type:** `Number` - **Default:** `undefined` - **Synced** - **Description:** Bearing (rotation) of the map, measured in degrees counter-clockwise from north. If bearing is not specified in the constructor options, Mapbox GL JS will look for it in the map's style object. If it is not specified in the style, either, it will default to `0` - **See:** `options.bearing` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `pitch` - **Type:** `Number` - **Default:** `undefined` - **Synced** - **Description:** Pitch (tilt) of the map, measured in degrees away from the plane of the screen (0-60). If pitch is not specified in the constructor options, Mapbox GL JS will look for it in the map's style object. If it is not specified in the style, either, it will default to `0` - **See:** `options.pitch` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `bounds` - **Type:** `Array`, `LngLatBoundsLike object` - **Default:** `undefined` - **Description:** The initial bounds of the map. If set, it overrides `center` and `zoom` construction options - **See:** `options.bounds` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `fit-bounds-options` - **Type:** `fitBounds object` - **Default:** `undefined` - **Description:** A [`fitBounds`](https://docs.mapbox.com/mapbox-gl-js/api/map/#map#fitbounds) object to use only when fitting the initial `bounds` provided above - **See:** `options.fitBoundsOptions` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `render-world-copies` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** If `true`, multiple copies of the world will be rendered, when zoomed out - **See:** `options.renderWorldCopies` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `max-tile-cache-size` - **Type:** `Number` - **Default:** `null` - **Non-Synced** - **Description:** The maximum number of tiles stored in the tile cache for a given source. If omitted, the cache will be dynamically sized based on the current viewport. - **See:** `options.renderWorldCopies` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `local-ideograph-font-family` - **Type:** `String` - **Default:** `'sans-serif'` - **Non-Synced** - **Description:** If specified, defines a CSS font-family for locally overriding generation of glyphs in the 'CJK Unified Ideographs' and 'Hangul Syllables' ranges. In these ranges, font settings from the map's style will be ignored, except for font-weight keywords (light/regular/medium/bold). The purpose of this option is to avoid bandwidth-intensive glyph server requests. - **See:** `options.localIdeographFontFamily` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `transform-request` - **Type:** `Function` - **Default:** `null` - **Non-Synced** - **Description:** A callback run before the Map makes a request for an external URL. The callback can be used to modify the url, set headers, or set the credentials property for cross-origin requests. Expected to return an object with a `url` property and optionally `headers` and `credentials` properties. - **See:** `options.transformRequest` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `collect-resource-timing` - **Type:** `Boolean` - **Default:** `false` - **Non-Synced** - **Description:** If `true`, Resource Timing API information will be collected for requests made by GeoJSON and Vector Tile web workers (this information is normally inaccessible from the main Javascript thread). Information will be returned in a `resourceTiming` property of relevant data events - **See:** `options.collectResourceTiming` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `fade-duration` - **Type:** `Number` - **Default:** `300` - **Non-Synced** - **Description:** Controls the duration of the fade-in/fade-out animation for label collisions, in milliseconds. This setting affects all symbol layers. This setting does not affect the duration of runtime styling transitions or raster tile cross-fading. - **See:** `options.fadeDuration` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `cross-source-collisions` - **Type:** `Boolean` - **Default:** `true` - **Non-Synced** - **Description:** If true, symbols from multiple sources can collide with each other during collision detection. If false , collision detection is run separately for the symbols in each source. - **See:** `options.crossSourceCollisions` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `locale` - **Type:** `Object` - **Default:** `undefined` - **Non-Synced** - **Description:** A patch to apply to the default localization table for UI strings, e.g. control tooltips. The `locale` object maps namespaced UI string IDs to translated strings in the target language; see [`src/ui/default_locale.js`](https://github.com/mapbox/mapbox-gl-js/blob/main/src/ui/default_locale.js) for an example with all supported string IDs. The object may specify all UI strings (thereby adding support for a new translation) or only a subset of strings (thereby patching the default translation table). - **See:** `options.locale` in [Map](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters) ### `r-t-l-text-plugin-url` - **Type:** `String` - **Default:** `undefined` - **Synced** - **Description:** Sets the map's [RTL text plugin](https://docs.mapbox.com/mapbox-gl-js/plugins/#mapbox-gl-rtl-text). Necessary for supporting the Arabic and Hebrew languages, which are written right-to-left. Mapbox Studio loads this plugin by default. - **See:** See [setrtltextplugin](https://docs.mapbox.com/mapbox-gl-js/api/properties/#setrtltextplugin) Map method and [an example](https://docs.mapbox.com/mapbox-gl-js/example/mapbox-gl-rtl-text/) ### `light` - **Type:** `Object` - **Default:** `undefined` - **Synced** - **Description:** Light properties. Must conform to the Mapbox Style Specification - **See:** See [setLight](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters#setlight) Map method ### `tile-boundaries` - **Type:** `Boolean` - **Default:** `false` - **Synced** - **Description:** A Boolean indicating whether the map will render an outline around each tile. These tile boundaries are useful for debugging - **See:** See [showTileBoundaries](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters#showtileboundaries) Map property ### `collision-boxes` - **Type:** `Boolean` - **Default:** `false` - **Synced** - **Description:** A Boolean indicating whether the map will render boxes around all symbols in the data source, revealing which symbols were rendered or which were hidden due to collisions. This information is useful for debugging - **See:** See [showCollisionBoxes](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters#showcollisionboxes) Map property ### `repaint` - **Type:** `Boolean` - **Default:** `false` - **Synced** - **Description:** A Boolean indicating whether the map will continuously repaint. This information is useful for analyzing performance. - **See:** See [repaint](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters#repaint) Map property ## Actions Asynchronous actions exposed via `GlMap.actions` ::: tip [Map-promisified](https://github.com/soal/map-promisified) is used as wrapper around Mapbox GL JS methods. That library can be used independently from VueMapbox. ::: ### `.stop(eventData?)` - **Arguments:** - `eventData` `{Object}` Custom data passed to corresponfing event. - **Description:** Stops all animations on the map - **Returns:** `{Promise<{ pitch, zoom, bearing, center }>}` Promise that resolves object with map parameters on the moment of call `stop()` ### `.panBy(offset, options?, eventData?)` - **Arguments:** - `offset` `{Point | number[]}` x and y coordinates by which to pan the map - `options` `{AnimationOptions object}` animation options. See [AnimationOptions](https://docs.mapbox.com/mapbox-gl-js/api/#animationoptions) - `eventData` `{Object}` Custom data passed to corresponfing event. - **Description:** Pans the map by the specified offest - **Returns:** `{Promise<{ eventData, center }>}` Promise that resolves object with event data and new center of the map when animation ends - **See:** [panBy](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters#panby) Map method ### `.panTo(coordinates, options?, eventData?)` - **Arguments:** - `coordinates` `{LngLat | number[][]}` The location to pan the map to. See also: [LngLat](https://docs.mapbox.com/mapbox-gl-js/api/#lnglat) - `options` `{AnimationOptions object}` animation options. See [AnimationOptions](https://docs.mapbox.com/mapbox-gl-js/api/#animationoptions) - `eventData` `{Object}` Custom data passed to corresponfing event. - **Description:** Pans the map to the specified location, with an animated transition - **Returns:** `{Promise<{ eventData, center }>}` Promise that resolves object with event data and new center of the map when animation ends - **See:** [panTo](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters#panto) Map method ### `.zoomTo(zoom, options?, eventData?)` - **Arguments:** - `zoom` `{number}` The zoom level to transition to - `options` `{AnimationOptions object}` animation options. See [AnimationOptions](https://docs.mapbox.com/mapbox-gl-js/api/#animationoptions) - `eventData` `{Object}` Custom data passed to corresponfing event. - **Description:** Zooms the map to the specified zoom level, with an animated transition - **Returns:** `{Promise<{ eventData, zoom }>}` Promise that resolves object with event data and new zoom level of the map when animation ends - **See:** [zoomTo](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters#zoomto) Map method ### `.zoomIn(options?, eventData?)` - **Arguments:** - `options` `{AnimationOptions object}` animation options. See [AnimationOptions](https://docs.mapbox.com/mapbox-gl-js/api/#animationoptions) - `eventData` `{Object}` Custom data passed to corresponfing event. - **Description:** Increases the map's zoom level by 1 - **Returns:** `{Promise<{ eventData, zoom }>}` Promise that resolves object with event data and new zoom level of the map when animation ends - **See:** [zoomIn](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters#zoomin) Map method ### `.zoomOut(options?, eventData?)` - **Arguments:** - `options` `{AnimationOptions object}` animation options. See [AnimationOptions](https://docs.mapbox.com/mapbox-gl-js/api/#animationoptions) - `eventData` `{Object}` Custom data passed to corresponfing event. - **Description:** Decreases the map's zoom level by 1 - **Returns:** `{Promise<{ eventData, zoom }>}` Promise that resolves object with event data and new zoom level of the map when animation ends - **See:** [zoomOut](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters#zoomOut) Map method ### `.rotateTo(bearing, options?, eventData?)` - **Arguments:** - `bearing` `{number}` The desired bearing - `options` `{AnimationOptions object}` animation options. See [AnimationOptions](https://docs.mapbox.com/mapbox-gl-js/api/#animationoptions) - `eventData` `{Object}` Custom data passed to corresponfing event. - **Description:** Rotates the map to the specified bearing, with an animated transition. The bearing is the compass direction that is \"up\"; for example, a bearing of 90° orients the map so that east is up. - **Returns:** `{Promise<{ eventData, bearing }>}` Promise that resolves object with event data and new bearing of the map when animation ends - **See:** [rotateTo](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters#rotateto) Map method ### `.resetNorth(options?, eventData?)` - **Arguments:** - `options` `{AnimationOptions object}` animation options. See [AnimationOptions](https://docs.mapbox.com/mapbox-gl-js/api/#animationoptions) - **Description:** Rotates the map so that north is up (0° bearing), with an animated transition - **Returns:** `{Promise<{ eventData, bearing }>}` Promise that resolves object with event data and new bearing of the map when animation ends - **See:** [resetNorth](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters#resetnorth) Map method ### `.snapToNorth(options?, eventData?)` - **Arguments:** - `options` `{AnimationOptions object}` animation options. See [AnimationOptions](https://docs.mapbox.com/mapbox-gl-js/api/#animationoptions) - `eventData` `{Object}` Custom data passed to corresponfing event. - **Description:** Snaps the map so that north is up (0° bearing), if the current bearing is close enough to it (i.e. within the `bearingSnap` prop threshold). - **Returns:** `{Promise<{ eventData, bearing }>}` Promise that resolves object with event data and new bearing of the map when animation ends - **See:** [snapToNorth](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters#snaptonorth) Map method ### `.fitBounds(bounds, options?, eventData?)` - **Arguments:** - `bounds` `{ number[][] | LngLatBounds }` Center these bounds in the viewport and use the highest zoom level up to and including `maxZoom` that fits them in the viewport - `options` `{Object}` - `options.padding?` `{number}` The amount of padding in pixels to add to the given bounds - `options.linear` `{boolean}` _default_: `false` If true , the map transitions using `Map#easeTo`. If false , the map transitions using `Map#flyTo`. See those functions and AnimationOptions for information about options available. - `options.easing?` An easing function for the animated transition. See [AnimationOptions](https://docs.mapbox.com/mapbox-gl-js/api/#animationoptions) - `options.offset` `{ number[] | Point }` _default:_ `[0, 0]` The center of the given bounds relative to the map's center, measured in pixels - `options.maxZoom?` `{number}` The maximum zoom level to allow when the map view transitions to the specified bounds - `eventData` `{Object}` Custom data passed to corresponfing event. - **Description:** Pans and zooms the map to contain its visible area within the specified geographical bounds. This function will also reset the map's bearing to 0 if bearing is nonzero - **Returns:** `{Promise<{ eventData, bounds }>}` Promise that resolves object with event data and new bounds of the map when animation ends - **See:** [fitBounds](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters#fitbounds) Map method ### `.jumpTo(options, eventData?)` - **Arguments:** - `options` `{Object}` See [CameraOptions](https://docs.mapbox.com/mapbox-gl-js/api/#cameraoptions) - `options.pitch?` `{number}` The desired pitch, in degrees - `options.zoom?` `{number}` The desired zoom level - `options.center?` `{number[] | LngLat}` The desired center - `options.bearing?` `{number}` The desired bearing, in degrees - `options.around?` `{number[] | LngLat}` If `zoom` is specified, `around` determines the point around which the zoom is centered. - `eventData` `{Object}` Custom data passed to corresponfing event. - **Description:** Changes any combination of center, zoom, bearing, and pitch, without an animated transition. The map will retain its current values for any details not specified in options - **Returns:** `{Promise<{ eventData, pitch, zoom, center, bearing }>}` Promise that resolves object with event data and new pitch, zoom, center and bearing of the map - **See:** [jumpTo](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters#jumpto) Map method ### `.easeTo(options, eventData?)` - **Arguments:** - `options` `{Object}` Combination of [CameraOptions](https://docs.mapbox.com/mapbox-gl-js/api/#cameraoptions) and [AnimationOptions](https://docs.mapbox.com/mapbox-gl-js/api/#animationoptions) - `options.pitch?` `{number}` The desired pitch, in degrees - `options.zoom?` `{number}` The desired zoom level - `options.center?` `{number[] | LngLat}` The desired center - `options.bearing?` `{number}` The desired bearing, in degrees - `options.around?` `{number[] | LngLat}` If `zoom` is specified, `around` determines the point around which the zoom is centered. - `options.duration?` `{number}` The animation's duration, measured in milliseconds. - `options.easing?` `{Function}` A function taking a time in the range 0..1 and returning a number where 0 is the initial state and 1 is the final state. - `options.offset?` `{number[] | Point}` of the target center relative to real map container center at the end of animation. - `options.animate?` `{boolean}`: If `false`, no animation will occur - `eventData` `{Object}` Custom data passed to corresponfing event. - **Description:** Changes any combination of center, zoom, bearing, and pitch, with an animated transition between old and new values. The map will retain its current values for any details not specified in `options` - **Returns:** `{Promise<{ eventData, pitch, zoom, center, bearing }>}` Promise that resolves object with event data and new pitch, zoom, center and bearing of the map when animations ends - **See:** [easeTo](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters#easeto) Map method ### `.flyTo(options, eventData?)` - **Arguments:** - `options` `{Object}` - `options.curve?` `{number}` _default_ `1.42` The zooming "curve" that will occur along the flight path. A high value maximizes zooming for an exaggerated animation, while a low value minimizes zooming for an effect closer to Map#easeTo. 1.42 is the average value selected by participants in the user study discussed in van Wijk (2003). A value of Math.pow(6, 0.25) would be equivalent to the root mean squared average velocity. A value of 1 would produce a circular motion - `options.minZoom?` `{number}` The zero-based zoom level at the peak of the flight path. If `options.curve` is specified, this option is ignored - `options.speed?` `{number}` _default_ `1.2` The average speed of the animation defined in relation to `options.curve`. A speed of 1.2 means that the map appears to move along the flight path by 1.2 times `options.curve` screenfuls every second. A screenful is the map's visible span. It does not correspond to a fixed physical distance, but varies by zoom level - `options.screenSpeed?` `{number}` The average speed of the animation measured in screenfuls per second, assuming a linear timing curve. If `options.speed` is specified, this option is ignored - `options.maxDuration?` `{number}` The animation's maximum duration, measured in milliseconds. If duration exceeds maximum duration, it resets to 0 - `eventData` `{Object}` Custom data passed to corresponfing event. - **Description:** Changes any combination of center, zoom, bearing, and pitch, animating the transition along a curve that evokes flight. The animation seamlessly incorporates zooming and panning to help the user maintain her bearings even after traversing a great distance - **Returns:** `{Promise<{ eventData, pitch, zoom, center, bearing }>}` Promise that resolves object with event data and new pitch, zoom, center and bearing of the map when animations ends - **See:** [flyTo](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters#flyto) Map method ## Events Payload of events contains object with properties: - `mapboxEvent` Original Mapbox GL JS event - `map` Current map object - `component` Component that emits event ### `@load` - **Description:** Fires after map fully loaded - **Payload** `{ map, component }` `map` is Mapbox Gl JS Map object, `component` is instance of GlMap component GlMap passes all Mapbox GL JS Map events. Full list of map events see [here](https://docs.mapbox.com/mapbox-gl-js/api/map/#map-events) ================================================ FILE: docs/api/marker.md ================================================ # Marker ## Props ### `offset` - **Type**: `Array` - **Description:** The offset in pixels as a PointLike object to apply relative to the element's center. Negatives indicate left and up. - **See:** `offset` in [Marker](https://docs.mapbox.com/mapbox-gl-js/api/#marker) ### `coordinates` - **Type**: `Array` - **Required** - **Synced** - **Description:** Marker coordinates in format `[longitude, latitude]` ### `color` - **Type**: `string` - **Description:** The color to use for the default marker if custom marker is not provided. The default is light blue. ### `anchor` - **Type**: `string` - **Non-Synced** - **Default** `center` - **Description:** A string indicating the part of the Marker that should be positioned closest to the coordinate set via Marker#setLngLat . Options are 'center' , 'top' , 'bottom' , 'left' , 'right' , 'top-left' , 'top-right' , 'bottom-left' , and 'bottom-right' . The default is 'center'. - **See** `options.anchor` in [Marker](https://docs.mapbox.com/mapbox-gl-js/api/#marker) ### `draggable` - **Type**: `boolean` - **Non-Synced** - **Default** `false` - **Description:** A boolean indicating whether or not a marker is able to be dragged to a new position on the map. - **See** `options.draggable` in [Marker](https://docs.mapbox.com/mapbox-gl-js/api/#marker) ## Slots ### `marker` - **Description:** Slot for custom marker. Can be HTML element or Vue component. ### `default` - **Description:** Slot for popup component. When popup put inside marker, popup automaticaly mounted to marker, similiar as [setPopup](https://docs.mapbox.com/mapbox-gl-js/api/#marker#setpopup) ## Methods ### `.remove()` - **Description:** Removes marker from the map. - **Returns** `Marker` MapboxGL marker. - **See** [Marker.remove](https://docs.mapbox.com/mapbox-gl-js/api/#marker#remove) ### `.togglePopup()` - **Description:** Opens or closes the bound popup, depending on the current state. - **Returns** `Marker` MapboxGL marker. - **See** [Marker.togglePopup](https://docs.mapbox.com/mapbox-gl-js/api/#marker#togglepopup) ## Events ### `@added` - **Description:** Fires when marker added on the map. - **Payload** `{ component: MarkerComponent, map: Map, marker: Marker }` Object with `Marker` component, parent map and MapboxGl `Marker` object ### `@removed` - **Description:** Fires when marker removed the map. - **Payload** `{ component: MarkerComponent, map: Map, marker: Marker }` Object with `Marker` component, parent map and MapboxGl `Marker` object ### `@drag` - **Description:** Fires when marker dragged if marker `draggable` prop is `true` - **Payload** `{ component: MarkerComponent, map: Map, mapboxEvent: Event }` Object with `Marker` component, parent map and original MapboxGl event ### `@dragstart` - **Description:** Fires when marker dragging starts if marker `draggable` prop is `true` - **Payload** `{ component: MarkerComponent, map: Map, mapboxEvent: Event }` Object with `Marker` component, parent map and original MapboxGl event ### `@dragend` - **Description:** Fires when marker dragging ends if marker `draggable` prop is `true` - **Payload** `{ component: MarkerComponent, map: Map, mapboxEvent: Event }` Object with `Marker` component, parent map and original MapboxGl event ### `@click` - **Description:** Fires marker is clicked. - **Payload** ``` { component: MarkerComponent, map: Map, mapboxEvent: DOMEvent, marker: Marker } ``` Object with `Marker` component, parent map and original MapboxGl event ### `@mouseenter` - **Description:** Fires when mouse cursor enters marker area. - **Payload** ``` { component: MarkerComponent, map: Map, mapboxEvent: DOMEvent, marker: Marker } ``` Object with `Marker` component, parent map and original MapboxGl event ### `@mouseleave` - **Description:** Fires when mouse cursor leaves marker area. - **Payload** ``` { component: MarkerComponent, map: Map, mapboxEvent: DOMEvent, marker: Marker } ``` Object with `Marker` component, parent map and original MapboxGl event ================================================ FILE: docs/api/popup.md ================================================ # Popup ## Props ### `showed` - **Type**: `Boolean` - **non-synced** - **Description:** If `true`, the popup showes immediately after the component is mounted. ### `closeButton` - **Type**: `Boolean` - **Description:** If `true`, a close button will appear in the top right corner of the popup. - **See:** `closeButton` in [Popup](https://docs.mapbox.com/mapbox-gl-js/api/#popup) ### `closeOnClick` - **Type**: `Boolean` - **Description:** If `true`, the popup will closed when the map is clicked. - **See:** `closeOnClick` in [Popup](https://docs.mapbox.com/mapbox-gl-js/api/#popup) ### `closeOnMove` - **Type**: `Boolean` - **Description:** If `true`, the popup will closed when the map moves. - **See:** `closeOnMove` in [Popup](https://docs.mapbox.com/mapbox-gl-js/api/#popup) ### `focusAfterOpen` - **Type**: `Boolean` - **Description:** If `true`, the popup will try to focus the first focusable element inside the popup. - **See:** `closeOnClick` in [Popup](https://docs.mapbox.com/mapbox-gl-js/api/#popup) ### `anchor` - **Type**: `String` - **Description:** A string indicating the part of the Popup that should be positioned closest to the Popup location. Options are 'top' , 'bottom' , 'left' , 'right' , 'top-left' , 'top-right' , 'bottom-left' , and 'bottom-right' . If unset the anchor will be dynamically set to ensure the popup falls within the map container with a preference for 'bottom'. - **See:** `anchor` in [Popup](https://docs.mapbox.com/mapbox-gl-js/api/#popup) ### `offset` - **Type**: `Number | Object | Array` - **Description:** A pixel offset applied to the popup's location. - a single number specifying a distance from the popup's location - a PointLike specifying a constant offset - an object of Points specifing an offset for each anchor position Negative offsets indicate left and up. - **See:** `offset` in [Popup](https://docs.mapbox.com/mapbox-gl-js/api/#popup) ### `coordinates` - **Type**: `Array` - **Description:** Popup coordinates in format `[longitude, latitude]` - **See:** `setLngLat()` in [Popup](https://docs.mapbox.com/mapbox-gl-js/api/#popup#setlnglat) ### `onlyText` - **Type**: `Boolean` - **Description:** If `true` content of the Popup treated as plain text - **See:** `setText` in [Popup](https://docs.mapbox.com/mapbox-gl-js/api/#popup#settext) ### `maxWidth` - **Type**: `String` - **Description:** A string representing the value for the maximum width. (ex: '400px') - **See:** `maxWidth` in [Popup](https://docs.mapbox.com/mapbox-gl-js/api/#popup#setmaxwidth) ### `className` - **Type**: `String` - **Description:** Space-separated CSS class names to add to popup container - **See:** `className` in [Popup](https://docs.mapbox.com/mapbox-gl-js/api/markers/#popup#addclassname) ## Slots ### `default` - **Description:** Slot for Popup content. Can be plain text, HTML or Vue component. If `onlyText` set to `true` content in this slot treated as plaint text. ## Events ### `@added` - **Description:** Fires when popup added on the map. - **Payload** `{ popup: Popup }` Object with MapboxGL `Popup` object ### `@removed` - **Description:** Fires when popup removed from the map. - **Payload** `{ popup: Popup }` Object with MapboxGL `Popup` object ### `@open` - **Description:** Fires when popup is opened manually or programatically. - **Payload** `{ popup: Popup }` Object with MapboxGL `Popup` object ### `@close` - **Description:** Fires when popup is closed manually or programatically. - **Payload** `{ popup: Popup }` Object with MapboxGL `Popup` object ================================================ FILE: docs/guide/basemap.md ================================================ # Base map ## Adding map component For using maps with Mapbox GL JS you need a [map style](https://mapbox.com/mapbox-gl-js/style-spec). If you using Mapbox-hosted maps, you need to set `access_token`. Look for details in Mapbox [documentation](https://mapbox.com/help/define-access-token/). If you using self-hosting maps on your own server you can omit this parameter. ```vue ``` ::: tip If you need, you can pass Mapbox-gl-js implementation as `mapboxGl` prop. May be useful for lazy-loading. Example: ```vue ``` If none is passed, VueMapbox imports Mapbox-gl internally. ::: ### Interact with map properties as GlMap props You can control map parameters like zoom, bearing, pitch etc. by changing props. If you set `.sync` modifier ([Vue docs](https://vuejs.org/v2/guide/components.html#sync-Modifier)) to prop, it will updates when you use operations that takes time to proceed. For example, if you use `flyTo` method, props `zoom`, `center`, `bearing`, `pitch` will be updated when animation ends. Full list of props see in [API docs](/api/#props), note field 'Synced' in description ## Map loading When map loads, `VMap` component emits `load` event. Payload of the event contains Mapbox GL JS `Map` object. All components placed under `VMap` will be rendered only after map fully loaded. ::: warning Storing Map object Take note that it's generally bad idea to add to Vuex or component's `data` anything but primitive types and plain objects. Vue adds getters and setters to every property, so if you add `Map` object to Vuex store or component `data`, it may lead to weird bugs. If you want to store map object, store it as non-reactive property like in example below. ::: ```vue ``` ## Map actions Asynchronous map methods exposed at VMap component in `actions` property. They returns `Promise`, that resolves when action completed. Promise resolves with map properties that has been changed by used action. For example: ```vue ``` See full list of actions on [API](/api/#actions) page. ### Method `actions.stop()` Method `.stop()` just stops all animations on map, updates props with new positions and return Promise with map parameters at the moment when `.stop()` called. ### Events See list of events on [API](/api/#events) page. ================================================ FILE: docs/guide/composition.md ================================================ # Composition You can use Mapbox GL feature as Vue component and compose it as a child of GlMap. During creation all components waits until map properly initialized. For example, adding map controls: ```vue ``` Adding a popup: ```vue ``` v-mapbox components will work even if wrapped in another component as long as they are in the components sub-tree of the base map component. For example: **_Popup wrapper_**: ```vue ``` **_Main component_**: ```vue ``` ::: tip VueMapbox internally use dependency injection mechanism (`provide/inject` in Vue [docs](https://vuejs.org)). It means that any component in `VMap` sub-tree can access to `map`, `mapbox` and `actions` through `inject` property. ::: After successful mount all components emits `added` envent with Vue component object and additional data, such as corresponding Mapbox GL JS object or object containing layer id in payload. ================================================ FILE: docs/guide/controls.md ================================================ # Map controls ## Overview Controls are UI elements for controlling the view of the map, such as scale or bearing. You can check them out in Mapbox GL JS [documentation](https://docs.mapbox.com/mapbox-gl-js/api/#user%20interface) In v-mapbox they exposed as Vue components, so you can control their properties and behavior dynamically by changing props. _All controls_: ```vue ``` See list of controls and they properties in [API docs](/api/controls.md). ### Attribution control Due to Mapbox [policy](https://docs.mapbox.com/help/how-attribution-works/) attribution control is enabled by default. You can disable default attributions by setting `attributionControl` prop of VMap to `false` and set your own attribution using AttributionControl component. ================================================ FILE: docs/guide/index.md ================================================ # Quickstart ## Using as ES module ### Installation You can install v-mapbox via npm. Take note that you need to install mapbox-gl as peer dependency: ```bash npm install --save v-mapbox mapbox-gl ``` Add Mapbox JS and CSS files to the files where you need them: ```js import 'mapbox-gl/dist/mapbox-gl.css' import 'v-mapbox/dist/v-mapbox.css'; import Mapbox from "mapbox-gl" import { VMap } from "v-mapbox" ``` ## Using in browser ### Installation Add Vue, MapboxGL and v-mapbox scripts on your page: ```html ``` All components will be placed in global VueMapbox object (`VueMapbox.VMap` etc.) ================================================ FILE: docs/guide/layers-and-sources.md ================================================ # Layers and sources ## Adding layers Geographic features on the map draws as layers. Layer use `source` object that contains data for layer (for example, GeoJSON object). Source must be added to map and several layers can use common `source` and draw it's data differently. Also, layer has own configuration object that declares how layer draws on the map. You can read more about it in Mapbox GL JS docs for [sources](https://docs.mapbox.com/mapbox-gl-js/api/#sources) and [layers](https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers). v-mapbox exposes layers as Vue components. `source` and `layer` configuration object passed to layer component as props. There is several layers types for drawing different types of sources. For example adding a layer with GeoJSON data: ```vue ``` In this example `geoJsonSource` can be an `object`, representing GeoJSON feature or `string` with URL to GeoJSON. Sources are stored in Mapbox GL JS `Map` object by `sourceId`. If you sure that source already added to map, you can skip `source` prop and just pass `sourceId` and use same source for different layers. If you try to add same source with same `id` twice, VueMapbox would just use `source` that already existed on the map, but you can set `replaceSource` prop to `true` to just replace old source with new one passed in `source` prop. By default when Layer components destroying, it removes source from map. If you want to keep source on Map (for example, for future using or if other layers use this source), set `clearSource` prop to `false`. ## Reactivity Layer components watch for changes in object in their `layer` prop and translate changes to map accordingly. For example, if you change content of `filter` prop in GeojsonLayer, changes will be automatically applied to layer on the map. Not all layer settings can be set dynamically, currently reactive properties are `minzoom`, `maxzoom`, `paint`, `layout` and `filter`. ## Layer getters GeoJSON and Vector layers has getters for their features: `.getRenderedFeatures(filter?)`, `.getSourceFeatures(geometry?, filter?)` and `.getFeatureState(featureId)`. They works similar to [`.queryRenderedFeatures()`](https://docs.mapbox.com/mapbox-gl-js/api/#map#queryrenderedfeatures) and [`.querySourceFeatures()`](https://docs.mapbox.com/mapbox-gl-js/api/#map#querysourcefeatures) Map methods, but returns features only from source of current layer. ## Layer methods Layer components has methods `move()` and `remove()`. First moves a layer to a different z-position. Second destroys component and removes layer and source from map event if layer created with prop `clearSource: false`. ## Layer events Layers emits events when loading data or on user interaction like `click`. See full list of events in [API section](/api/Layers/index.md#events) ## Migration from 0.1 In versoin `0.1` layer and source options was exposed via separate props. Since `0.2` there are consolidated `source` object props for data source and `layer` for layer options. See [sources](https://docs.mapbox.com/mapbox-gl-js/api/#sources) and [layers](https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers) in Mapbox GL JS docs. ================================================ FILE: docs/guide/markers-and-popups.md ================================================ # Markers and Popups ## Marker The Marker component is a wrapper around the [Mapbox GL Marker API](https://docs.mapbox.com/mapbox-gl-js/api/#marker). ```vue ``` ### Props - `color {String}` Set the color of the default marker (not applicable when using the `marker` slot) - `coordinates {Array}` The GeoJSON coordinates for marker placement on the map - `offset {Object, Array}` Display the marker at an offset distance from the coordinates Full list of props you cab see on [API page](/api/marker.md#props) ### Slots The Marker component has two slots: the `marker` slot and default slot used for popup. #### The `marker` slot The `marker` slot allows you to customize the look of the marker. Here is an example of using the [Vuetify `v-icon` component](https://vuetifyjs.com/en/components/icons) instead of the default marker icon: ```vue ``` ### Default slot Default slot allows you to specify content to display in a Mapbox popup when the marker is clicked. See [below](#markers-popups-together) ## Popup The Popup component is wrapper around the [Mapbox GL Popup API](https://docs.mapbox.com/mapbox-gl-js/api/#popup). You can specify content inside popup in default slot. It can be HTML or Vue component. In this example [Vuetify card component](https://vuetifyjs.com/en/components/cards) used as a content for popup: ```vue ``` If you set `onlyText` prop to `true` content in Popup default slot will be treated as plain text. It can be useful if you loading popup content from external untrusted source. Popups added to the map is hidden by default. If you want to show the popup immediately you need to set the prop `showed` to `true` ### Props - `showed {Boolean}` If `true`, the popup shows immediately after component is created. - `closeButton {Boolean}` If `true`, a close button will appear in the top right corner of the popup. - `closeOnClick {Boolean}` If true, the popup will closed when the map is clicked. - `closeOnMove {Boolean}` If true, the popup will closed when the map moves. - `focusAfterOpen {Boolean}` If true, the popup will try to focus the first focusable element inside the popup. - `coordinates {Array}` The GeoJSON coordinates for popup placement on the map. If popup used inside marker this prop will be ignored. - `anchor {string}` prop specifies the part of the Popup that should be positioned closest to the coordinates point. Full list of props you can see on [API page](/api/popup.md#props) ## Markers & Popups together Popup often used inside of map markers. You can achive this by passing Popup inside Marker in default slot: ```vue ``` In this case, Popup will be automatically bound to Marker. You can use `togglePopup` Marker method to toggle visibility of bound Popup. Take note that Popup `coordinates` prop will be ignored. ================================================ FILE: docs/index.md ================================================ --- layout: home hero: name: V-Mapbox 🌏 image: src: /logo.svg alt: V-Mapbox Logo tagline: Combine powers of Mapbox GL JS and Vue.js actions: - theme: brand text: Get Started → link: /guide/ - theme: alt text: View on GitHub link: https://github.com/vinayakkulkarni/v-mapbox features: - title: Declarative style details: You can use map elements like layers, markers, popups as Vue components and control them via synchronized props - title: Vuefied details: Map elements declared as components respect Vue lifecycle, emit map events like Vue events and can be used in OOP-style footer: MIT Licensed | Copyright © 2020-present Vinayak Kulkarni --- ================================================ FILE: docs/plugin-components/index.md ================================================ # Plugin components VueMapbox implements wrapper for core Mapbox Gl JS library API. Any other functions, like [Mapbox Gl JS plugins](https://docs.mapbox.com/mapbox-gl-js/plugins/) is out of scope. However, they can be implemented as plugin components. ## Using plugin components Using plugin components is easy. Just put component inside `VMap` components tree and pass necessary props to it. Below is example for using [VueMapbox Geocoder](https://github.com/soal/vue-mapbox-geocoder). ```vue ``` If you didn't find plugin your need, it's easy to implement plugin component yourself. VueMapbox solves map loading task and give some useful helpers. Check out development [documentation](/plugin-components/plugin-components-development.md). ## Available plugin components - [VueMapbox Geocoder](https://github.com/soal/vue-mapbox-geocoder) ================================================ FILE: docs/plugin-components/plugin-components-development.md ================================================ # Create a plugin component ## Overview The purpose VueMapbox is to wrap up Mapbox Gl JS library. Any other functions are out of scope. However, there are some plugins for Mapbox Gl JS, that provides additional capabilities, and it where plugin components come into play. Plugin components are essentially just Vue components that utilize `mapbox` and `map` objects provided by basic `VMap`. VueMapbox internally use dependency injection mechanism of Vue ([provide/inject](https://vuejs.org/v2/api/#provide-inject) in Vue docs). When `VMap` created, it waits for map loads and initializes then renders it's child components, and provide them `mapbox` (Mapbox GL JS library), `map` (initialized instance of the [Map](https://docs.mapbox.com/mapbox-gl-js/api/#map)) and `actions` ([promisified](/api/#actions) Mapbox Map methods). Inject these objects in your component, and you can add to map features you need. The basic idea is to keep the declarative style of Vue, so it's good to add for example additional controls or layer types to map as a component. It's a right place to wrap Mapbox Gl JS plugins, but it can be used for various purpose. ## Basic example for plugin component **App template** ```vue ``` **Plugin comonent** ```vue ``` ## VueMapbox helpers ::: danger Experimental Helpers are experimenatal feature and will change in future, but we will try keep backward compatibility for a long time and provide deprecation warnings. For now they just mixins that used in VueMapbox internal implementation. ::: Beside providing base objects, VueMapbox give some useful helper mixins, that can be used in plugin components. You can access to them via `$helpers` named export: ```js import { $helpers } from "v-mapbox"; const { withEvents, withSelfEvents, asControl, asLayer } = $helpers; ``` ### `withEvents` [Source](https://github.com/vinayakkulkarni/v-mapbox/blob/master/src/lib/withEvents.js). Provides `$_emitEvent` and `$_emitMapEvent` methods to emit events in VueMapbox style. ### `withSelfEvents` [Source](https://github.com/vinayakkulkarni/v-mapbox/blob/master/src/components/UI/withSelfEvents.js) Provides `$_bindSelfEvents`, `$_unbindSelfEvents` and `$_emitSelfEvent`. They can be used to bind events to Mapbox GL JS objects that emit self events instead of `Map` object like controls, markers and popups. ### `asControl` [Source](https://github.com/vinayakkulkarni/v-mapbox/blob/master/src/components/UI/controls/controlMixin.js). Provides backbone for Map controls (like ) ### `asLayer` [Source](https://github.com/vinayakkulkarni/v-mapbox/blob/master/src/components/layer/layerMixin.js). Provides backbone for Map layer. See also [layers API doc](/api/Layers/index.md) ## Creating component for Mapbox GL JS plugin Example below can give you an idea how to create component for Mapbox GL JS plugin. **[VueMaboxGeocoder](https://github.com/vinayakkulkarni/v-mapbox-geocoder) — wrapper for [mapbox-gl-geocoder](https://github.com/mapbox/mapbox-gl-geocoder)**: ```js // First, there is no separate HTML to render, so we don't need template and SFC, so it's just JS file import MapboxGeocoder from "@mapbox/mapbox-gl-geocoder"; import { $helpers } from "v-mapbox"; // Get $helpers from VueMapbox // Define list of mapbox-gl-geocoder events const geocoderEvents = { clear: "clear", loading: "loading", results: "results", result: "result", error: "error" }; export default { name: "GeocoderControl", mixins: [$helpers.asControl], // MapboxGeocoder is a control, so we use mixin inject: ["mapbox", "map"], // Here we inject objects provided by VMap props: { // MapboxGeocoder requires access token accessToken: { type: String, required: true }, input: { type: String, default: null }, proximity: { type: Object, default: null } // ...here goes other props... }, data() { return { initial: true }; }, // Here we watch for props and and apply changes to MapboxGeocoder if needed watch: { input: { handler(next, prev) { if (this.control && next !== prev) { this.control.setInput(next); } }, immediate: true }, proximity(next, prev) { if (this.control && next !== prev) { this.control.setProximity(next); } } }, created() { this.control = null; // Here we will store MapboxGeocoder instance. We don't want Vue reactivity system mess with it, so we store it non-reactive if (this.accessToken && !this.mapbox.accessToken) { this.mapbox.accessToken = this.accessToken; } this.control = new MapboxGeocoder(this.$props); // Creating MapboxGeocoder instance and pass props as options to it this.control.on("results", this.$_updateInput); // We need to update synchronized prop "input" when user enters some query to search field // Now we can add control to the map this.$_deferredMount(); }, beforeDestroy() { this.control.off("results", this.$_updateInput); // Also, control will be removed from map in beforeDestroy() lifecycle hook in `asControl` mixin }, methods: { $_deferredMount() { // Because this component placed in VMap sub-tree, map already initialized and injected above this.map.addControl(this.control); if (this.input) { // Set input in MapboxGeocoder if there is default data this.control.setInput(this.input); } // Emit added event. `$_emitEvent` method is came from `asControl` mixin this.$_emitEvent("added", { geocoder: this.control }); this.$_bindSelfEvents(Object.keys(geocoderEvents)); // Bin events to emit them as Vue events this.initial = false; // Initialization done }, $_bindSelfEvents(events) { // $_bindSelfEvents is provided by `asControl` mixin. but we need to replace it because MapboxGeocoder do not follow Mapbox Gl JS events schema and we need custom processing for them const vm = this; // Here we use this.$listeners to subscribe only on events that user listens on component Object.keys(this.$listeners).forEach(eventName => { if (events.includes(eventName)) { this.control.on(eventName, vm.$_emitControlEvent.bind(vm, eventName)); } }); }, // Process event to line up with VueMapbox events format $_emitControlEvent(eventName, eventData) { return this.$_emitSelfEvent({ type: eventName }, eventData); }, $_updateInput(results) { if (!this.initial) { const input = results.query ? results.query.join("") : ""; this.$emit("update:input", input); // update synchormized prop "input" } } //...here goes other public methods } }; ``` ================================================ FILE: jsr.json ================================================ { "name": "@vinayakkulkarni/v-mapbox", "version": "5.1.0", "exports": "./dist/v-mapbox.js", "publish": { "exclude": [ "!dist" ] } } ================================================ FILE: lint-staged.config.cjs ================================================ module.exports = { '*.{js,ts,vue}': 'bun run lint:js', '*.{css,vue}': 'bun run lint:css', }; ================================================ FILE: netlify.toml ================================================ [dev] command = "bun run docs:dev" [build] command = "./scripts/build.sh" publish = "docs/.vitepress/dist" ================================================ FILE: package.json ================================================ { "name": "v-mapbox", "version": "5.1.0", "description": "Maplibre (and Mapbox) with Vue 💚", "main": "./dist/v-mapbox.js", "module": "./dist/v-mapbox.js", "umd": "./dist/v-mapbox.umd.cjs", "unpkg": "./dist/v-mapbox.cjs", "jsdelivr": "./dist/v-mapbox.cjs", "cdn": "./dist/v-mapbox.min.js", "exports": { ".": { "import": "./dist/v-mapbox.js", "require": "./dist/v-mapbox.umd.cjs" }, "./dist/v-mapbox.css": { "import": "./dist/v-mapbox.css", "require": "./dist/v-mapbox.css" } }, "files": [ "dist" ], "types": "./dist/index.d.ts", "type": "module", "scripts": { "build": "rimraf dist && vite build && vue-tsc --declaration --emitDeclarationOnly && prettier --write ./dist/*{cjs,js,ts}", "test": "vitest", "test:coverage": "vitest run --coverage", "docs:dev": "vitepress dev docs", "docs:build": "vitepress build docs", "docs:serve": "vitepress serve docs", "lint": "npm run lint:prettier && npm run lint:eslint && npm run lint:css", "lintfix": "npm run lint:prettier:fix && npm run lint:eslint:fix && npm run lint:css:fix", "lint:js": "npm run lint:eslint && npm run lint:prettier", "lint:eslint": "eslint \"{,!(node_modules|dist)/**/}*.{js,ts,vue}\" --ignore-path .gitignore", "lint:eslint:fix": "eslint --fix \"{,!(node_modules|dist)/**/}*.{js,ts,vue}\" --ignore-path .gitignore", "lint:prettier": "prettier --check \"{,!(node_modules|dist)/**/}*.{js,ts,vue}\" --ignore-path .gitignore", "lint:prettier:fix": "prettier --write \"{,!(node_modules|dist)/**/}*.{js,ts,vue}\" --ignore-path .gitignore", "lint:css": "stylelint \"{,!(node_modules|dist)/**/}*.{css,scss,vue}\" --ignore-path .gitignore", "lint:css:fix": "stylelint --fix \"{,!(node_modules|dist)/**/}*.{css,scss,vue}\" --ignore-path .gitignore", "prepare": "is-ci || husky", "release": "shipjs prepare", "release:auto": "shipjs prepare --yes", "release:dry": "shipjs prepare --dry-run" }, "peerDependencies": { "maplibre-gl": "^4.0.0", "vue": "^3.4.15" }, "optionalDependencies": { "@deck.gl/core": "^8.9.34", "@deck.gl/layers": "^8.9.34", "@deck.gl/mapbox": "^8.9.34" }, "devDependencies": { "@commitlint/cli": "^19.3.0", "@commitlint/config-conventional": "^19.2.2", "@deck.gl/core": "^8.9.34", "@deck.gl/layers": "^8.9.34", "@deck.gl/mapbox": "^8.9.34", "@types/node": "^20.12.12", "@typescript-eslint/eslint-plugin": "^7.9.0", "@typescript-eslint/parser": "^7.9.0", "@vinayakkulkarni/prettier-config-vue": "^1.0.0", "@vitejs/plugin-vue": "^5.0.4", "@vitest/coverage-v8": "^1.6.0", "@vue/component-compiler-utils": "^3.3.0", "@vue/runtime-dom": "^3.4.27", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsdoc": "^48.2.5", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-regexp": "^2.5.0", "eslint-plugin-security": "^1.7.1", "eslint-plugin-vue": "^9.26.0", "happy-dom": "^14.11.0", "husky": "^9.0.11", "is-ci": "^3.0.1", "lint-staged": "^15.2.2", "maplibre-gl": "^4.3.2", "postcss-html": "^1.7.0", "prettier": "^3.2.5", "rimraf": "^5.0.7", "sass": "^1.77.2", "shipjs": "^0.26.3", "stylelint": "16.5.0", "stylelint-config-recommended-vue": "1.5.0", "stylelint-prettier": "5.0.0", "typescript": "^5.4.5", "vite": "^5.2.11", "vitepress": "^1.2.0", "vitest": "^1.6.0", "vue": "^3.4.27", "vue-tsc": "^2.0.19" }, "keywords": [ "vue", "vuejs", "mapbox", "mapbox-gl-js", "mapbox-gl", "maplibre-gl-js", "maplibre-gl" ], "publishConfig": { "access": "public", "registry": "https://registry.npmjs.org" }, "author": { "name": "Vinayak Kulkarni", "email": "inbox.vinayak@gmail.com", "url": "https://vinayakkulkarni.dev" }, "contributors": [ { "email": "developers@geospoc.com", "name": "GeoSpoc Dev Team", "url": "https://geospoc.com" } ], "license": "MIT", "engines": { "node": ">=18", "npm": ">=9" }, "repository": { "type": "git", "url": "git@github.com:geospoc/v-mapbox.git" }, "private": false, "sideEffects": [ "*.css" ], "bugs": { "url": "https://github.com/geospoc/v-mapbox/issues" }, "homepage": "https://v-mapbox.geospoc.io/" } ================================================ FILE: prettier.config.cjs ================================================ module.exports = { ...require('@vinayakkulkarni/prettier-config-vue'), }; ================================================ FILE: scripts/build.sh ================================================ #!/bin/bash set -e curl -fsSL https://bun.sh/install | bash export PATH="/opt/buildhome/.bun/bin:$PATH" bun --version bun install bun --bun run docs:build ================================================ FILE: scripts/bump-jsr-version.cjs ================================================ #!/usr/bin/env node const fs = require('fs'); // Read package.json and parse the version const pkg = JSON.parse(fs.readFileSync('package.json').toString()); // Read jsr.json and parse it const jsr = JSON.parse(fs.readFileSync('jsr.json').toString()); // Update the version property in jsr object jsr.version = pkg.version; // Write the updated jsr.json file fs.writeFileSync('jsr.json', JSON.stringify(jsr, null, 2)); ================================================ FILE: ship.config.cjs ================================================ module.exports = { installCommand: () => 'bun i', beforeCommitChanges: ({ exec }) => { exec('./scripts/bump-jsr-version.cjs'); }, }; ================================================ FILE: src/constants/events/index.ts ================================================ export { mapLayerEvents } from './layer'; export { mapEvents } from './map'; export { markerDOMEvents, markerMapEvents } from './marker'; export { popupEvents } from './popup'; ================================================ FILE: src/constants/events/layer.ts ================================================ import { MapLayerEventType } from 'maplibre-gl'; export const mapLayerEvents: Array = [ 'click', 'dblclick', 'mousedown', 'mouseup', 'mousemove', 'mouseenter', 'mouseleave', 'mouseover', 'mouseout', 'contextmenu', 'touchstart', 'touchend', 'touchcancel', ]; ================================================ FILE: src/constants/events/map.ts ================================================ import { MapEventType } from 'maplibre-gl'; export const mapEvents: Array = [ 'error', 'load', 'idle', 'remove', 'render', 'resize', 'webglcontextlost', 'webglcontextrestored', 'dataloading', 'data', 'tiledataloading', 'sourcedataloading', 'styledataloading', 'sourcedata', 'styledata', 'boxzoomcancel', 'boxzoomstart', 'boxzoomend', 'touchcancel', 'touchmove', 'touchend', 'touchstart', 'click', 'contextmenu', 'dblclick', 'mousemove', 'mouseup', 'mousedown', 'mouseout', 'mouseover', 'movestart', 'move', 'moveend', 'zoomstart', 'zoom', 'zoomend', 'rotatestart', 'rotate', 'rotateend', 'dragstart', 'drag', 'dragend', 'pitchstart', 'pitch', 'pitchend', 'wheel', ]; ================================================ FILE: src/constants/events/marker.ts ================================================ export const markerMapEvents = ['dragstart', 'drag', 'dragend']; export const markerDOMEvents = ['click', 'mouseenter', 'mouseleave']; ================================================ FILE: src/constants/events/popup.ts ================================================ export const popupEvents = ['open', 'close']; ================================================ FILE: src/controls/attribution/VControlAttribution.vue ================================================ ================================================ FILE: src/controls/attribution/index.ts ================================================ export { default as AttributionControl } from './VControlAttribution.vue'; ================================================ FILE: src/controls/attribution/types.ts ================================================ export type { ControlPosition, AttributionControlOptions } from 'maplibre-gl'; ================================================ FILE: src/controls/fullscreen/VControlFullscreen.vue ================================================ ================================================ FILE: src/controls/fullscreen/index.ts ================================================ export { default as FullscreenControl } from './VControlFullscreen.vue'; ================================================ FILE: src/controls/fullscreen/types.ts ================================================ export type { ControlPosition, FullscreenControlOptions } from 'maplibre-gl'; ================================================ FILE: src/controls/geolocate/VControlGeolocate.vue ================================================ ================================================ FILE: src/controls/geolocate/events.ts ================================================ export const geolocateControlEvents: string[] = [ 'geolocate', 'error', 'outofmaxbounds', 'trackuserlocationstart', 'trackuserlocationend', ]; ================================================ FILE: src/controls/geolocate/index.ts ================================================ export { default as GeolocateControl } from './VControlGeolocate.vue'; ================================================ FILE: src/controls/geolocate/types.ts ================================================ export type { ControlPosition, GeolocateControlOptions } from 'maplibre-gl'; ================================================ FILE: src/controls/index.ts ================================================ export { AttributionControl as VControlAttribution } from './attribution'; export { FullscreenControl as VControlFullscreen } from './fullscreen'; export { GeolocateControl as VControlGeolocate } from './geolocate'; export { NavigationControl as VControlNavigation } from './navigation'; export { ScaleControl as VControlScale } from './scale'; ================================================ FILE: src/controls/navigation/VControlNavigation.vue ================================================ ================================================ FILE: src/controls/navigation/index.ts ================================================ export { default as NavigationControl } from './VControlNavigation.vue'; ================================================ FILE: src/controls/navigation/types.ts ================================================ export type { ControlPosition, NavigationControlOptions } from 'maplibre-gl'; ================================================ FILE: src/controls/scale/VControlScale.vue ================================================ ================================================ FILE: src/controls/scale/index.ts ================================================ export { default as ScaleControl } from './VControlScale.vue'; ================================================ FILE: src/controls/scale/types.ts ================================================ export type { ControlPosition, ScaleControlOptions } from 'maplibre-gl'; ================================================ FILE: src/index.ts ================================================ // Controls import { VControlAttribution, VControlFullscreen, VControlGeolocate, VControlNavigation, VControlScale, } from './controls'; // Layers – Deck.gl import VLayerDeckArc from './layers/deck.gl/VLayerDeckArc.vue'; import VLayerDeckGeojson from './layers/deck.gl/VLayerDeckGeojson.vue'; // Layers – Mapbox import VLayerMapboxCanvas from './layers/mapbox/VLayerMapboxCanvas.vue'; import VLayerMapboxGeojson from './layers/mapbox/VLayerMapboxGeojson.vue'; import VLayerMapboxImage from './layers/mapbox/VLayerMapboxImage.vue'; import VLayerMapboxRaster from './layers/mapbox/VLayerMapboxRaster.vue'; import VLayerMapboxVector from './layers/mapbox/VLayerMapboxVector.vue'; import VLayerMapboxVideo from './layers/mapbox/VLayerMapboxVideo.vue'; // Map import VMap from './map/VMap.vue'; // Marker import VMarker from './markers/VMarker.vue'; // Popup import VPopup from './popups/VPopup.vue'; export { VMap, // Marker VMarker, // Popup VPopup, // Layers VLayerDeckArc, VLayerDeckGeojson, VLayerMapboxCanvas, VLayerMapboxGeojson, VLayerMapboxImage, VLayerMapboxRaster, VLayerMapboxVector, VLayerMapboxVideo, // Controls VControlAttribution, VControlFullscreen, VControlGeolocate, VControlNavigation, VControlScale, }; export default VMap; ================================================ FILE: src/layers/deck.gl/VLayerDeckArc.vue ================================================ ================================================ FILE: src/layers/deck.gl/VLayerDeckGeojson.vue ================================================ ================================================ FILE: src/layers/mapbox/VLayerMapboxCanvas.vue ================================================ ================================================ FILE: src/layers/mapbox/VLayerMapboxGeojson.vue ================================================ ================================================ FILE: src/layers/mapbox/VLayerMapboxImage.vue ================================================ ================================================ FILE: src/layers/mapbox/VLayerMapboxRaster.vue ================================================ ================================================ FILE: src/layers/mapbox/VLayerMapboxVector.vue ================================================ ================================================ FILE: src/layers/mapbox/VLayerMapboxVideo.vue ================================================ ================================================ FILE: src/map/VMap.vue ================================================ ================================================ FILE: src/markers/VMarker.vue ================================================ ================================================ FILE: src/popups/VPopup.vue ================================================ ================================================ FILE: src/utils/index.ts ================================================ export { injectStrict } from './injects'; export { MapKey } from './symbols'; ================================================ FILE: src/utils/injects.ts ================================================ import type { InjectionKey } from 'vue'; import { inject } from 'vue'; /** * Dependency injection 🥳 * @param {InjectionKey} key - The key to inject * @param {string | undefined} fallback - The fallback value * @returns {undefined} - The value */ export function injectStrict(key: InjectionKey, fallback?: T): T { const resolved = inject(key, fallback); if (!resolved) { throw new Error(`Could not resolve ${key.description}`); } return resolved; } ================================================ FILE: src/utils/symbols.ts ================================================ import type { Map } from 'maplibre-gl'; import type { InjectionKey, Ref } from 'vue'; const MapKey: InjectionKey> = Symbol('Map'); export { MapKey }; ================================================ FILE: stylelint.config.cjs ================================================ module.exports = { plugins: ['stylelint-prettier'], extends: ['stylelint-config-recommended-vue'], ignoreFiles: ['node_modules/*', 'src/assets/**'], rules: { 'prettier/prettier': [ true, { singleQuote: true, tabWidth: 2, }, ], }, }; ================================================ FILE: test/map/VMap.spec.ts ================================================ import { test, expect } from 'vitest'; import VMap from '../../src/map/VMap.vue'; test('mount component', async () => { expect(VMap).toBeTruthy(); }); ================================================ FILE: test/markers/VMarker.spec.ts ================================================ import { test, expect } from 'vitest'; import VMarker from '../../src/markers/VMarker.vue'; test('mount component', async () => { expect(VMarker).toBeTruthy(); }); ================================================ FILE: test/popups/VPopup.spec.ts ================================================ import { test, expect } from 'vitest'; import VPopup from '../../src/popups/VPopup.vue'; test('mount component', async () => { expect(VPopup).toBeTruthy(); }); ================================================ FILE: test/setup/index.ts ================================================ import { URL } from 'node:url'; import { Blob } from 'buffer'; // @ts-ignore globalThis.URL = URL; // https://github.com/vitest-dev/vitest/issues/1377#issuecomment-1141411249 // @ts-ignore globalThis.Blob = Blob; ================================================ FILE: tsconfig.json ================================================ { "compilerOptions": { "target": "esnext", "module": "esnext", "moduleResolution": "bundler", "skipLibCheck": true, "lib": ["esnext", "esnext.asynciterable", "dom"], "jsx": "preserve", "outDir": "./dist", "rootDir": "./src", "esModuleInterop": true, "allowJs": true, "sourceMap": true, "strict": true, "noEmit": false, "resolveJsonModule": true, "experimentalDecorators": true, "baseUrl": ".", "paths": { "~/*": ["./*"], "@/*": ["./*"] }, "types": ["@types/node", "vitest/globals"] }, "include": ["src"], "exclude": ["node_modules", "dist", "docs"] } ================================================ FILE: vite-env.d.ts ================================================ /// declare module '*.vue' { import type { DefineComponent } from 'vue'; const component: DefineComponent<{}, {}, any>; export default component; } ================================================ FILE: vite.config.ts ================================================ import { resolve } from 'node:path'; import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; import pkg from './package.json'; import type { OutputOptions, PreRenderedAsset } from 'rollup'; const banner = `/*! * ${pkg.name} v${pkg.version} * (c) ${new Date().getFullYear()} ${pkg.author.name} * @license ${pkg.license} */`; const assetFileNames: OutputOptions['assetFileNames'] = ( chunkInfo: PreRenderedAsset, ): string => { if (chunkInfo.name === 'style.css') return 'v-mapbox.css'; return chunkInfo.name || 'v-mapbox.css'; }; export default defineConfig({ plugins: [vue()], build: { target: 'esnext', minify: 'esbuild', sourcemap: true, lib: { entry: resolve(__dirname, 'src/index.ts'), name: 'VMapbox', formats: ['es', 'cjs', 'umd'], fileName: pkg.name, }, commonjsOptions: { extensions: ['.js', '.ts', '.vue'], exclude: 'src/**', include: 'node_modules/**', }, rollupOptions: { external: [ 'vue', 'maplibre-gl', '@deck.gl/layers', '@deck.gl/mapbox', '@deck.gl/core', ], output: { exports: 'named', banner, strict: true, globals: { vue: 'vue', 'maplibre-gl': 'maplibreGl', '@deck.gl/mapbox': 'deckGlMapbox', '@deck.gl/layers': 'deckGlLayers', '@deck.gl/core': 'deckGlCore', }, assetFileNames, }, }, }, }); ================================================ FILE: vitest.config.ts ================================================ /// import { defineConfig } from 'vite'; import Vue from '@vitejs/plugin-vue'; export default defineConfig({ plugins: [Vue()], test: { setupFiles: ['./test/setup/index.ts'], globals: true, environment: 'happy-dom', }, });