(IDW) Interpolated Heatmap Layer for mapbox-gl

Overview

Mapbox :: Interpolated Heatmap(s)

GitHub Workflow Status GitHub Workflow Status GitHub release (latest SemVer) npm npm npm bundle size (version) npm type definitions DeepScan grade Snyk Vulnerabilities for GitHub Repo LGTM Alerts LGTM Grade GitHub contributors FOSSA Status

eslint prettier rollup typescript


InterpolateHeatmapLayer is a minimalist JavaScript library for rendering temperature maps (or interpolate heatmaps) with Mapbox GL JS. This library was greatly inspired by the temperature-map-gl library, and depends on Earcut.

Currently, Mapbox provides a heatmap layer that represent the density of points in an area, like on this picture:

Density heatmap

This library aims at providing a heatmap that can define a color to any location by making an average of the values of the surroundings points, like on this picture:

Average heatmap

Except a JavaScript pre-processing step, all computation is made with WebGL shaders.

Examples

A live demo showing the global temperature is available here, described here.

Install

  • Browser:

    • Import the library before the script using it:

      <body>
        <div id="map"></div>
        <script src="mapbox-gl-interpolate-heatmap.cjs.js"></script>
        <script src="map.js"></script>
      </body>
    • Create the Mapbox map and add the layer created by interpolateHeatmapLayer.create():

    // map.js
    
    const map = new mapboxgl.Map({
      container: 'map',
      style: 'mapbox://styles/mapbox/light-v10',
    });
    
    map.on('load', () => {
      const layer = new MapboxInterpolateHeatmapLayer({
        // parameters here
      });
      map.addLayer(layer);
    });
  • NPM:

    npm install mapbox-gl-interpolate-heatmap
    import { MapboxInterpolateHeatmapLayer } from 'mapbox-gl-interpolate-heatmap';
    
    const map = new mapboxgl.Map({
      container: 'map',
      style: 'mapbox://styles/mapbox/light-v10',
    });
    
    map.on('load', () => {
      const layer = new MapboxInterpolateHeatmapLayer({
        // parameters here
      });
      map.addLayer(layer);
    });

Usage

The new MapboxInterpolateHeatmapLayer() function has the following parameters:

  • data: An array of points, each point being an object containing a latitude lat, a longitude lon, and a value val. Example:

    data = [
      {
        lat: 62.470663,
        lon: 6.176846,
        val: 16,
      },
      {
        lat: 48.094903,
        lon: -1.371596,
        val: 20,
      },
    ];

    Since Mapbox uses the Web Mercator projection that projects the poles at infinity, remember to define the latitude within -85° and 85°. Default value: [].

  • id: unique Mapbox layer name. Default value: ''.

  • opacity: a number between 0 and 1 describing the transparency of the color. Default value: 0.5.

  • minValue: define the value corresponding to the blue color. When it's not defined, the lowest value of points is represented by the blue color. If some value of points is lower than minValue, minValue takes this value. Default value: Infinity.

  • maxValue same, but for the red color. Default value: -Infinity.

  • framebufferFactor: number between 0 and 1. In short, if the framebuffer factor is around 0, the computation will be faster but less accurate. Take a look at the technical explanation part if you want to know what exactly this parameter is. Default value: 0.3.

  • p: a factor affecting the computation of the color. A high value makes the color uniform around each point. Once again, take a look at the technical explanation part if you want to know more. Default value: 3.

  • aoi: area of interest, the layer will only be displayed inside that area. It's a list of coordinates with the same format as points (without the val attribute). If the list is empty, the entire map is the region of interest. Default value: [].

  • valueToColor: GLSL function (passed as a string) that map a value to the heatmap color. By default, a low value is colored blue, a medium green and a high red. This parameter allows you to change this behavior. The function must be named valueToColor with a float parameter (which will take values between 0 and 1), and must return a vec3 (with each component between 0 and 1). Default value:

    vec3 valueToColor(float value) {
      return vec3(max((value-0.5)*2.0, 0.0), 1.0 - 2.0*abs(value - 0.5), max((0.5-value)*2.0, 0.0));
    }

Technical explanation

The color is computed using the Inverse Distance Weighting (IDW) algorithm:

Let:

equation

be N known data points. We want to find a continuous and once differentiable function:

equation

such as:

equation

The basic form of the IDW is:

equation

where

equation

In WebGL:

  • First, we render N textures. Each fragment of each texture contains wi*ui in its red channel, and wi in its green channel.
  • Then, we use blending with accumulator configuration on these N textures. It creates one texture, containing the sum of the N textures. Therefore, we can get u(x) for each fragment by dividing the red channel by the green channel.
  • We pass this texture to the shader rendering the heatmap, convert u(x) to a color, and finally display this color.

The size of the computation textures is the size of the rendering texture multiplied by the framebufferFactor. This factor can be below 0.5 without any real visual consequences. If the user has defined a region of interest and uses a framebufferFactor < 1, visual artifacts appear at the edge of the heatmap. To prevent this, the rendering texture takes the whole screen size if framebufferFactor < 1.

Contributing

  1. Create your feature branch from dev (git checkout -b feat/new-feature)
  2. Commit your changes (git commit -Sam 'feat: add feature')
  3. Push to the branch (git push origin feat/new-feature)
  4. Create a new Pull Request

Note:

  1. Please contribute using Github Flow
  2. Commits & PRs will be allowed only if the commit messages & PR titles follow the conventional commit standard, read more about it here
  3. PS. Ensure your commits are signed. Read why

Please contribute using Github Flow. Create a new branch from the default branch, add commits, and open a pull request

License

MIT © GeoSpoc Dev Team & Vinayak Kulkarni

FOSSA Status

Comments
  • Expose `valueToColor4` as constructor option

    Expose `valueToColor4` as constructor option

    👋 this package has been very handy! Was looking to write a custom valueToColor4 function as mentioned in the README, though it looks like this isn't customizable via the constructor options (though valueToColor is). Is there any reason this can't / shouldn't be updated?

    If not, I'm happy to open a PR and update this. Thanks!

    opened by chrissantamaria 3
  • fix(deps): bump peaceiris/actions-gh-pages from 3.8.0 to 3.9.0

    fix(deps): bump peaceiris/actions-gh-pages from 3.8.0 to 3.9.0

    Bumps peaceiris/actions-gh-pages from 3.8.0 to 3.9.0.

    Release notes

    Sourced from peaceiris/actions-gh-pages's releases.

    actions-github-pages v3.9.0

    • deps: bump node12 to node16
    • deps: bump @​actions/core from 1.6.0 to 1.10.0

    See CHANGELOG.md for more details.

    Changelog

    Sourced from peaceiris/actions-gh-pages's changelog.

    3.9.0 (2022-10-23)

    chore

    ci

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 2
  • chore(deps-dev): bump @types/node from 18.8.1 to 18.8.2

    chore(deps-dev): bump @types/node from 18.8.1 to 18.8.2

    Bumps @types/node from 18.8.1 to 18.8.2.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 2
  • chore(deps-dev): bump mapbox-gl from 1.13.2 to 2.6.1

    chore(deps-dev): bump mapbox-gl from 1.13.2 to 2.6.1

    Bumps mapbox-gl from 1.13.2 to 2.6.1.

    Release notes

    Sourced from mapbox-gl's releases.

    v2.6.1

    2.6.1

    🐞 Bug fixes

    • Remove Object spread syntax to ensure older build systems continue to work as expected. (#11295)

    v2.6.0

    ✨ Features and improvements

    • Add support for a variety of new map projections beyond the standard Web Mercator. Alternate projections can be used together with all existing styles and sources. The projections eliminate distortion as you zoom to make them useful at every scale. Supported projections include albers, equalEarth, equirectangular, lambertConformalConic, naturalEarth and winkelTripel. Change the projection by setting it in the map constructor: new Map({ projection: 'winkelTripel', ... }). (#11124)
      • Limitations: Non-mercator projections do not yet support terrain, fog, free camera or CustomLayerInterface.
    • Add a new "cooperativeGestures": true map option that prevents the map from capturing page scrolling and panning. When enabled, scroll zooming requires ctrl or to be pressed and touch panning requires two fingers (#11029, #11116)
    • Add support for dynamic filtering of symbols based on pitch and distance to map center. ["pitch"] and ["distance-from-camera"] expressions can now be used within the filter of a symbol layer. (#10795)
    • Improve user accessibility: conveying only aria-label in controls, replace aria-pressedwith aria-expanded in the attribution control, interactive markers with popups express an aria-expanded state, and interactive markers have the role "button". (#11064)
    • Add support for conditionally styling most paint properties according to the presence or absence of specific images. (#11049)
    • Add support for attaching events to multiple layers with map.on(), allowing users to get retrieve features under the mouse or touch event based on the order in which they are rendered. (#11114)(h/t @​omerbn)

    🐞 Bug fixes

    • Fix map.setFeatureState(...) not updating rendering when terrain is enabled. (#11209)
    • Fix marker positioning before initial map load (#11025)
    • Fix slow tile loading performance on maps with CJK glyphs on certain Chrome/GPU combinations. (#11047)
    • Update NavigationControl when min and max zoom are changed (#11018)
    • Prevent video sources from entering fullscreen on iOS Safari (#11067)
    • Fix a rare triangulation issue that could cause an infinite loop (#11110)
    • Fix null feature values returned as "null" by queryRenderedFeatures(...) (#11110)
    • Fix rendering issue with power of two square images and 'raster-resampling': 'nearest' (#11162)

    v2.6.0-beta.2

    No release notes provided.

    v2.6.0-beta.1

    No release notes provided.

    v2.5.1

    🐞 Bug fixes

    • Fix an iOS 15 issue where the iOS Safari tab bar interrupts touch interactions. (#11084)

    v2.5.0

    Features ✨ and improvements 🏁

    • Added queryRenderedFeatures support to heatmap layers. (#10996)
    • Added support for using line-gradient and line-dasharray paint properties together on line layers. (#10894)
    • Added preclick event allowing popups to close and open in a new location on one click. (#10926)
    • Improved collision detection for labels along lines, slightly improving label density. (#10918)
    • Improved Popup addClassName, removeClassName and toggleClassName methods to work on popup instances that are not added to the map. (#10889)
      • ⚠️ Note: Direct modifications to the popup container CSS class no longer persist. These methods should be used instead.

    ... (truncated)

    Changelog

    Sourced from mapbox-gl's changelog.

    2.6.1

    🐞 Bug fixes

    • Remove Object spread syntax to ensure older build systems continue to work as expected. (#11295)

    2.6.0

    ✨ Features and improvements

    • Add support for a variety of new map projections beyond the standard Web Mercator. Alternate projections can be used together with all existing styles and sources. The projections eliminate distortion as you zoom to make them useful at every scale. Supported projections include albers, equalEarth, equirectangular, lambertConformalConic, naturalEarth and winkelTripel. Change the projection by setting it in the map constructor: new Map({ projection: 'winkelTripel', ... }). (#11124)
      • Limitations: Non-mercator projections do not yet support terrain, fog, free camera or CustomLayerInterface.
    • Add a new "cooperativeGestures": true map option that prevents the map from capturing page scrolling and panning. When enabled, scroll zooming requires ctrl or to be pressed and touch panning requires two fingers (#11029, #11116)
    • Add support for dynamic filtering of symbols based on pitch and distance to map center. ["pitch"] and ["distance-from-camera"] expressions can now be used within the filter of a symbol layer. (#10795)
    • Improve user accessibility: conveying only aria-label in controls, replace aria-pressedwith aria-expanded in the attribution control, interactive markers with popups express an aria-expanded state, and interactive markers have the role "button". (#11064)
    • Add support for conditionally styling most paint properties according to the presence or absence of specific images. (#11049)
    • Add support for attaching events to multiple layers with map.on(), allowing users to retrieve features under the mouse or touch event based on the order in which they are rendered. (#11114)(h/t @​omerbn)

    🐞 Bug fixes

    • Fix map.setFeatureState(...) not updating rendering when terrain is enabled. (#11209)
    • Fix marker positioning before initial map load (#11025)
    • Fix slow tile loading performance on maps with CJK glyphs on certain Chrome/GPU combinations. (#11047)
    • Update NavigationControl when min and max zoom are changed (#11018)
    • Prevent video sources from entering fullscreen on iOS Safari (#11067)
    • Fix a rare triangulation issue that could cause an infinite loop (#11110)
    • Fix null feature values returned as "null" by queryRenderedFeatures(...) (#11110)
    • Fix rendering issue with power of two square images and 'raster-resampling': 'nearest' (#11162)

    2.5.1

    🐞 Bug fixes

    • Fix an iOS 15 issue where the iOS Safari tab bar interrupts touch interactions. (#11084)

    2.5.0

    Features ✨ and improvements 🏁

    • Added queryRenderedFeatures support to heatmap layers. (#10996)
    • Added support for using line-gradient and line-dasharray paint properties together on line layers. (#10894)
    • Added preclick event allowing popups to close and open in a new location on one click. (#10926)
    • Improved collision detection for labels along lines, slightly improving label density. (#10918)
    • Improved Popup addClassName, removeClassName and toggleClassName methods to work on popup instances that are not added to the map. (#10889)
      • ⚠️ Note: Direct modifications to the popup container CSS class no longer persist. These methods should be used instead.

    🐞 Bug fixes

    • Fixed maxBounds property not working across the 180th meridian. (#10903)
    • Fixed map.getBounds() returning too-large bounds under some conditions. (#10909)
    • Fixed markers not updating position when toggling terrain. (#10985)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 2
  • chore(deps-dev): bump @types/mapbox-gl from 1.13.2 to 2.6.0

    chore(deps-dev): bump @types/mapbox-gl from 1.13.2 to 2.6.0

    Bumps @types/mapbox-gl from 1.13.2 to 2.6.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 2
  • chore(deps-dev): bump vite from 3.2.5 to 4.0.0

    chore(deps-dev): bump vite from 3.2.5 to 4.0.0

    Bumps vite from 3.2.5 to 4.0.0.

    Release notes

    Sourced from vite's releases.

    [email protected]

    Please refer to CHANGELOG.md for details.

    [email protected]

    Please refer to CHANGELOG.md for details.

    Changelog

    Sourced from vite's changelog.

    4.0.0 (2022-12-09)

    Vite 4 Announcement Cover Image

    Read the announcement blog post: Announcing Vite 4

    Quick links:

    Docs in other languages:

    Main Changes

    This major is smaller in scope compared to Vite 3, with the main objective of upgrading to Rollup 3. We've worked with the ecosystem to ensure a smooth upgrade path for this new major.

    Rollup 3

    Vite is now using Rollup 3, which allowed us to simplify Vite's internal asset handling and has many improvements. See the Rollup 3 release notes here.

    Framework Plugins out of the Vite core monorepo

    @vitejs/plugin-vue and @vitejs/plugin-react have been part of Vite core monorepo since the first versions of Vite. This helped us to get a close feedback loop when making changes as we were getting both Core and the plugins tested and released together. With vite-ecosystem-ci we can get this feedback with these plugins developed on independent repositories, so from Vite 4, they have been moved out of the Vite core monorepo. This is meaningful for Vite's framework-agnostic story, and will allow us to build independent teams to maintain each of the plugins. If you have bugs to report or features to request, please create issues on the new repositories moving forward: vitejs/vite-plugin-vue and vitejs/vite-plugin-react.

    New React plugin using SWC during development

    SWC is now a mature replacement for Babel, especially in the context of React projects. SWC's React Fast Refresh implementation is a lot faster than Babel, and for some projects, it is now a better alternative. From Vite 4, two plugins are available for React projects with different tradeoffs. We believe that both approaches are worth supporting at this point, and we'll continue to explore improvements to both plugins in the future.

    @​vitejs/plugin-react

    @​vitejs/plugin-react is a plugin that uses esbuild and Babel, achieving fast HMR with a small package footprint and the flexibility of being able to use the babel transform pipeline.

    @​vitejs/plugin-react-swc (new)

    @​vitejs/plugin-react-swc is a new plugin that uses esbuild during build, but replaces Babel with SWC during development. For big projects that don't require non-standard React extensions, cold start and Hot Module Replacement (HMR) can be significantly faster.

    Compatibility

    The modern browser build now targets safari14 by default for wider ES2020 compatibility (vitejs/vite#9063). This means that modern builds can now use BigInt and that the nullish coallessing operator isn't transpiled anymore. If you need to support older browsers, you can add @vitejs/plugin-legacy as usual.

    Importing CSS as a string

    In Vite 3, importing the default export of a .css file could introduce a double loading of CSS.

    </tr></table> 
    

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 1
  • chore(deps-dev): bump @types/node from 18.11.12 to 18.11.13

    chore(deps-dev): bump @types/node from 18.11.12 to 18.11.13

    Bumps @types/node from 18.11.12 to 18.11.13.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 1
  • chore(deps-dev): bump eslint-plugin-jsdoc from 39.5.0 to 39.6.2

    chore(deps-dev): bump eslint-plugin-jsdoc from 39.5.0 to 39.6.2

    Bumps eslint-plugin-jsdoc from 39.5.0 to 39.6.2.

    Release notes

    Sourced from eslint-plugin-jsdoc's releases.

    v39.6.2

    39.6.2 (2022-11-02)

    Bug Fixes

    v39.6.1

    39.6.1 (2022-11-02)

    Bug Fixes

    • no-restricted-syntax: update jsdoccomment to be able to use new descriptionStartLine, descriptionEndLine, and hasPreterminalDescription properties; fixes #830 (d68d742)

    v39.6.0

    39.6.0 (2022-11-02)

    Features

    • check-types: add skipRootChecking option to preferredTypes setting; fixes #863 (e5da5bb)

    v39.5.1

    39.5.1 (2022-11-02)

    Bug Fixes

    • require-returns-check: ensure breaks in final switch do not fulfill check for all branches returning (691a414)
    Commits
    • 26141cb fix: update jsdoccomment
    • d68d742 fix(no-restricted-syntax): update jsdoccomment to be able to use new `descr...
    • e5da5bb feat(check-types): add skipRootChecking option to preferredTypes settin...
    • 691a414 fix(require-returns-check): ensure breaks in final switch do not fulfill ch...
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 1
  • Reduce `node` engine version requirement

    Reduce `node` engine version requirement

    It looks like #396 bumped the node engine version requirement to >=19.0.0, up from the already fairly high >=17.0.0. Though I'm generally an advocate for staying on top of newer Node versions, this feels a bit extreme given that the current LTS is only at v18 and that package consumers won't even be using this package via Node. This can cause issues in some build contexts - for example, Vercel which currently allows Node 14 or 16.

    Is there a reason (i.e. particular tooling used) for this requirement? If not, could this be lowered to something like >=16.0.0?

    opened by chrissantamaria 1
  • chore(deps-dev): bump eslint-plugin-jsdoc from 39.3.6 to 39.3.25

    chore(deps-dev): bump eslint-plugin-jsdoc from 39.3.6 to 39.3.25

    Bumps eslint-plugin-jsdoc from 39.3.6 to 39.3.25.

    Release notes

    Sourced from eslint-plugin-jsdoc's releases.

    v39.3.25

    39.3.25 (2022-10-25)

    Bug Fixes

    • update jsdoccomment and devDep. (94f784f)

    v39.3.24

    39.3.24 (2022-10-24)

    Bug Fixes

    • require-returns-check, require-yields-check: check for undefined/void within union; fixes #925 (cfbdf8b)

    v39.3.23

    39.3.23 (2022-10-23)

    Bug Fixes

    • require-returns-check: allow implicit-return finally if other try-catch branches returning; fixes #926 (12da503)

    v39.3.22

    39.3.22 (2022-10-23)

    Bug Fixes

    • valid-types: report problems with name parsing (e247d67)

    v39.3.21

    39.3.21 (2022-10-23)

    Bug Fixes

    • require-param: do not cache by comment node; fixes #901 (867edc3)

    v39.3.20

    39.3.20 (2022-10-23)

    Bug Fixes

    • require-returns-check: allow for missing catch or finalizer and missing case contents; fixes #924 (4fabdd6)

    v39.3.19

    39.3.19 (2022-10-22)

    ... (truncated)

    Commits
    • 94f784f fix: update jsdoccomment and devDep.
    • cfbdf8b fix(require-returns-check, require-yields-check): check for undefined/voi...
    • 12da503 fix(require-returns-check): allow implicit-return finally if other try-catc...
    • e247d67 fix(valid-types): report problems with name parsing
    • 87841e8 test(valid-types): example demonstrating array object properties; closes #596
    • 867edc3 fix(require-param): do not cache by comment node; fixes #901
    • 4fabdd6 fix(require-returns-check): allow for missing catch or finalizer and missin...
    • c1f21f8 fix(require-param): be tolerant if this is not included as @param; fixe...
    • dc1f875 fix(require-returns-check): check child nodes of consequents; fixes #923
    • 64b1ead test(require-param): add test limiting function to those with @param
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 1
  • chore(deps-dev): bump eslint-plugin-jsdoc from 39.3.6 to 39.3.24

    chore(deps-dev): bump eslint-plugin-jsdoc from 39.3.6 to 39.3.24

    Bumps eslint-plugin-jsdoc from 39.3.6 to 39.3.24.

    Release notes

    Sourced from eslint-plugin-jsdoc's releases.

    v39.3.24

    39.3.24 (2022-10-24)

    Bug Fixes

    • require-returns-check, require-yields-check: check for undefined/void within union; fixes #925 (cfbdf8b)

    v39.3.23

    39.3.23 (2022-10-23)

    Bug Fixes

    • require-returns-check: allow implicit-return finally if other try-catch branches returning; fixes #926 (12da503)

    v39.3.22

    39.3.22 (2022-10-23)

    Bug Fixes

    • valid-types: report problems with name parsing (e247d67)

    v39.3.21

    39.3.21 (2022-10-23)

    Bug Fixes

    • require-param: do not cache by comment node; fixes #901 (867edc3)

    v39.3.20

    39.3.20 (2022-10-23)

    Bug Fixes

    • require-returns-check: allow for missing catch or finalizer and missing case contents; fixes #924 (4fabdd6)

    v39.3.19

    39.3.19 (2022-10-22)

    Bug Fixes

    • require-param: be tolerant if this is not included as [@param](https://github.com/param); fixes #919 (c1f21f8)

    v39.3.18

    39.3.18 (2022-10-22)

    ... (truncated)

    Commits
    • cfbdf8b fix(require-returns-check, require-yields-check): check for undefined/voi...
    • 12da503 fix(require-returns-check): allow implicit-return finally if other try-catc...
    • e247d67 fix(valid-types): report problems with name parsing
    • 87841e8 test(valid-types): example demonstrating array object properties; closes #596
    • 867edc3 fix(require-param): do not cache by comment node; fixes #901
    • 4fabdd6 fix(require-returns-check): allow for missing catch or finalizer and missin...
    • c1f21f8 fix(require-param): be tolerant if this is not included as @param; fixe...
    • dc1f875 fix(require-returns-check): check child nodes of consequents; fixes #923
    • 64b1ead test(require-param): add test limiting function to those with @param
    • 87c1c2a fix(require-returns-check): throw statements to be exempted from final chec...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 1
  • chore(deps-dev): bump vite from 4.0.3 to 4.0.4 in /example

    chore(deps-dev): bump vite from 4.0.3 to 4.0.4 in /example

    Bumps vite from 4.0.3 to 4.0.4.

    Changelog

    Sourced from vite's changelog.

    4.0.4 (2023-01-03)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • chore(deps-dev): bump husky from 8.0.2 to 8.0.3

    chore(deps-dev): bump husky from 8.0.2 to 8.0.3

    Bumps husky from 8.0.2 to 8.0.3.

    Release notes

    Sourced from husky's releases.

    v8.0.3

    • fix: add git not installed message #1208
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • chore(deps-dev): bump vite from 4.0.3 to 4.0.4

    chore(deps-dev): bump vite from 4.0.3 to 4.0.4

    Bumps vite from 4.0.3 to 4.0.4.

    Changelog

    Sourced from vite's changelog.

    4.0.4 (2023-01-03)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • chore(deps-dev): bump @typescript-eslint/eslint-plugin from 5.47.1 to 5.48.0

    chore(deps-dev): bump @typescript-eslint/eslint-plugin from 5.47.1 to 5.48.0

    Bumps @typescript-eslint/eslint-plugin from 5.47.1 to 5.48.0.

    Release notes

    Sourced from @​typescript-eslint/eslint-plugin's releases.

    v5.48.0

    5.48.0 (2023-01-02)

    Bug Fixes

    Features

    • eslint-plugin: specify which method is unbound and added test case (#6281) (cf3ffdd)
    Changelog

    Sourced from @​typescript-eslint/eslint-plugin's changelog.

    5.48.0 (2023-01-02)

    Features

    • eslint-plugin: specify which method is unbound and added test case (#6281) (cf3ffdd)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • chore(deps-dev): bump @typescript-eslint/parser from 5.47.1 to 5.48.0

    chore(deps-dev): bump @typescript-eslint/parser from 5.47.1 to 5.48.0

    Bumps @typescript-eslint/parser from 5.47.1 to 5.48.0.

    Release notes

    Sourced from @​typescript-eslint/parser's releases.

    v5.48.0

    5.48.0 (2023-01-02)

    Bug Fixes

    Features

    • eslint-plugin: specify which method is unbound and added test case (#6281) (cf3ffdd)
    Changelog

    Sourced from @​typescript-eslint/parser's changelog.

    5.48.0 (2023-01-02)

    Note: Version bump only for package @​typescript-eslint/parser

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • chore(deps-dev): bump eslint-config-prettier from 8.5.0 to 8.6.0

    chore(deps-dev): bump eslint-config-prettier from 8.5.0 to 8.6.0

    Bumps eslint-config-prettier from 8.5.0 to 8.6.0.

    Changelog

    Sourced from eslint-config-prettier's changelog.

    Version 8.6.0 (2023-01-02)

    • Added: [vue/multiline-ternary]. Thanks to @​xcatliu!
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
Releases(v0.6.1)
Owner
Vinayak Kulkarni
Never stop learning, cause life never stops teaching. ❤️ FOSS
Vinayak Kulkarni
Mapbox JavaScript API, a Leaflet Plugin

mapbox.js A Mapbox plugin for Leaflet, a lightweight JavaScript library for traditional raster maps. For the state-of-the-art Mapbox vector maps libra

Mapbox 1.9k Dec 23, 2022
Draw tools for mapbox-gl-js

@mapbox/mapbox-gl-draw Adds support for drawing and editing features on mapbox-gl.js maps. See a live example here Requires mapbox-gl-js. Compatible v

Mapbox 750 Jan 2, 2023
Mapbox Visual for Power BI - High performance, custom map visuals for Power BI dashboards

Mapbox Visual for Microsoft Power BI Make sense of your big & dynamic location data with the Mapbox Visual for Power BI. Quickly design high-performan

Mapbox 121 Nov 22, 2022
Vuejs 2 components for interacting with mapbox-gl-js

VueMapbox Combine powers of Vue.js and Mapbox Gl JS Vue-mapbox is wrapper around Mapbox GL JS library that provides vueish-way to interact with the ma

Alex 425 Dec 26, 2022
Demo of Singapore buildings 3D tiles from OneMap on Mapbox GL JS.

Singapore buildings 3D Tiles from OneMap 3D on Mapbox GL JS This is a demo of Singapore buildings 3D tiles from OneMap 3D on Mapbox GL JS. Development

Chee Aun 5 Nov 6, 2021
MERN stack travel app using mapbox API, Travel and drop pin , share reviews and rate the location

MERN-Travel-Map Travel Map Pin A single page application built with MERN Stack from scratch (MongoDB + Mongoose, Express, React & NodeJs) Table of Con

Bùi Quốc Trọng 11 Dec 29, 2022
Usage Heatmap for Shiny with heatmap.js

shinyHeatmap The goal of {shinyHeatmap} is to provide a free and local alternative to more advanced user tracking platform such as Hotjar. {shinyHeatm

RinteRface 15 Dec 21, 2022
ZxCDDoS for education with LAYER 7, LAYER 4, AMP METHODS

?? ZxCDDoS: Release v1.0 - Free DDoS Panel ?? Terminal only accepts ANSI color. Username: admin Password: admin Language Logs Fixed L7 methods (crash,

zxcr9999 151 Jan 3, 2023
Vanilla JS spring-interpolated values

Vanilla JS spring-interpolated values

Martin Wecke 4 Feb 28, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
Pixel based heatmap with html5 canvas.

heatcanvas Note that this project is no longer active maintained. Please let me know(file an issue or send me email) if you are interested in taking o

Ning Sun 388 Dec 12, 2022
A simple Calendar Heatmap for jQuery

Calendar Heat Map This jQuery plugin allows to conveniently display data like contributions on a day by day basis, indicating the count by colors. Ins

Sebastian 38 Jul 5, 2022
Statistics plugin for RemNote that will give you some helpful numbers, charts and heatmap for your knowledge base.

RemNote statistics plugin Features This plugin will give you the following statistics: Retention rate Number of cards due in future Type of buttons yo

Henrik 3 Sep 9, 2022
Mapbox JavaScript API, a Leaflet Plugin

mapbox.js A Mapbox plugin for Leaflet, a lightweight JavaScript library for traditional raster maps. For the state-of-the-art Mapbox vector maps libra

Mapbox 1.9k Dec 23, 2022
Draw tools for mapbox-gl-js

@mapbox/mapbox-gl-draw Adds support for drawing and editing features on mapbox-gl.js maps. See a live example here Requires mapbox-gl-js. Compatible v

Mapbox 750 Jan 2, 2023
Mapbox Visual for Power BI - High performance, custom map visuals for Power BI dashboards

Mapbox Visual for Microsoft Power BI Make sense of your big & dynamic location data with the Mapbox Visual for Power BI. Quickly design high-performan

Mapbox 121 Nov 22, 2022
Vuejs 2 components for interacting with mapbox-gl-js

VueMapbox Combine powers of Vue.js and Mapbox Gl JS Vue-mapbox is wrapper around Mapbox GL JS library that provides vueish-way to interact with the ma

Alex 425 Dec 26, 2022
Demo of Singapore buildings 3D tiles from OneMap on Mapbox GL JS.

Singapore buildings 3D Tiles from OneMap 3D on Mapbox GL JS This is a demo of Singapore buildings 3D tiles from OneMap 3D on Mapbox GL JS. Development

Chee Aun 5 Nov 6, 2021