@deck.gl/aggregation-layers 8.8.0-alpha.4 → 8.8.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +766 -649
- package/dist/es5/aggregation-layer.js +19 -7
- package/dist/es5/aggregation-layer.js.map +1 -1
- package/dist/es5/contour-layer/contour-layer.js +5 -5
- package/dist/es5/contour-layer/contour-layer.js.map +1 -1
- package/dist/es5/contour-layer/contour-utils.js +1 -1
- package/dist/es5/contour-layer/contour-utils.js.map +1 -1
- package/dist/es5/contour-layer/marching-squares-codes.js.map +1 -1
- package/dist/es5/contour-layer/marching-squares.js.map +1 -1
- package/dist/es5/cpu-grid-layer/cpu-grid-layer.js +5 -3
- package/dist/es5/cpu-grid-layer/cpu-grid-layer.js.map +1 -1
- package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +1 -1
- package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer.js +8 -8
- package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer.js.map +1 -1
- package/dist/es5/gpu-grid-layer/gpu-grid-layer.js +12 -12
- package/dist/es5/gpu-grid-layer/gpu-grid-layer.js.map +1 -1
- package/dist/es5/grid-aggregation-layer.js +25 -12
- package/dist/es5/grid-aggregation-layer.js.map +1 -1
- package/dist/es5/grid-layer/grid-layer.js +18 -9
- package/dist/es5/grid-layer/grid-layer.js.map +1 -1
- package/dist/es5/heatmap-layer/heatmap-layer-utils.js +5 -2
- package/dist/es5/heatmap-layer/heatmap-layer-utils.js.map +1 -1
- package/dist/es5/heatmap-layer/heatmap-layer.js +19 -7
- package/dist/es5/heatmap-layer/heatmap-layer.js.map +1 -1
- package/dist/es5/heatmap-layer/max-vs.glsl.js +1 -1
- package/dist/es5/heatmap-layer/triangle-layer-fragment.glsl.js +1 -1
- package/dist/es5/heatmap-layer/triangle-layer-vertex.glsl.js +1 -1
- package/dist/es5/heatmap-layer/triangle-layer.js +7 -7
- package/dist/es5/heatmap-layer/triangle-layer.js.map +1 -1
- package/dist/es5/heatmap-layer/weights-fs.glsl.js +1 -1
- package/dist/es5/heatmap-layer/weights-vs.glsl.js +1 -1
- package/dist/es5/hexagon-layer/hexagon-layer.js +16 -5
- package/dist/es5/hexagon-layer/hexagon-layer.js.map +1 -1
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/screen-grid-layer/screen-grid-cell-layer.js +26 -19
- package/dist/es5/screen-grid-layer/screen-grid-cell-layer.js.map +1 -1
- package/dist/es5/screen-grid-layer/screen-grid-layer-vertex.glsl.js +1 -1
- package/dist/es5/screen-grid-layer/screen-grid-layer.js +18 -8
- package/dist/es5/screen-grid-layer/screen-grid-layer.js.map +1 -1
- package/dist/es5/types.js +2 -0
- package/dist/es5/types.js.map +1 -0
- package/dist/es5/utils/bin-sorter.js +9 -0
- package/dist/es5/utils/bin-sorter.js.map +1 -1
- package/dist/esm/aggregation-layer.js +12 -5
- package/dist/esm/aggregation-layer.js.map +1 -1
- package/dist/esm/contour-layer/contour-layer.js +6 -3
- package/dist/esm/contour-layer/contour-layer.js.map +1 -1
- package/dist/esm/contour-layer/contour-utils.js +1 -1
- package/dist/esm/contour-layer/contour-utils.js.map +1 -1
- package/dist/esm/contour-layer/marching-squares-codes.js.map +1 -1
- package/dist/esm/contour-layer/marching-squares.js.map +1 -1
- package/dist/esm/cpu-grid-layer/cpu-grid-layer.js +6 -3
- package/dist/esm/cpu-grid-layer/cpu-grid-layer.js.map +1 -1
- package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js.map +1 -1
- package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +1 -1
- package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js.map +1 -1
- package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer.js +8 -6
- package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer.js.map +1 -1
- package/dist/esm/gpu-grid-layer/gpu-grid-layer.js +11 -9
- package/dist/esm/gpu-grid-layer/gpu-grid-layer.js.map +1 -1
- package/dist/esm/grid-aggregation-layer.js +13 -5
- package/dist/esm/grid-aggregation-layer.js.map +1 -1
- package/dist/esm/grid-layer/grid-layer.js +15 -8
- package/dist/esm/grid-layer/grid-layer.js.map +1 -1
- package/dist/esm/heatmap-layer/heatmap-layer-utils.js +5 -2
- package/dist/esm/heatmap-layer/heatmap-layer-utils.js.map +1 -1
- package/dist/esm/heatmap-layer/heatmap-layer.js +24 -14
- package/dist/esm/heatmap-layer/heatmap-layer.js.map +1 -1
- package/dist/esm/heatmap-layer/max-fs.glsl.js.map +1 -1
- package/dist/esm/heatmap-layer/max-vs.glsl.js +1 -1
- package/dist/esm/heatmap-layer/max-vs.glsl.js.map +1 -1
- package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js +1 -1
- package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js.map +1 -1
- package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js +1 -1
- package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js.map +1 -1
- package/dist/esm/heatmap-layer/triangle-layer.js +6 -5
- package/dist/esm/heatmap-layer/triangle-layer.js.map +1 -1
- package/dist/esm/heatmap-layer/weights-fs.glsl.js +1 -1
- package/dist/esm/heatmap-layer/weights-fs.glsl.js.map +1 -1
- package/dist/esm/heatmap-layer/weights-vs.glsl.js +1 -1
- package/dist/esm/heatmap-layer/weights-vs.glsl.js.map +1 -1
- package/dist/esm/hexagon-layer/hexagon-layer.js +11 -2
- package/dist/esm/hexagon-layer/hexagon-layer.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/screen-grid-layer/screen-grid-cell-layer.js +16 -10
- package/dist/esm/screen-grid-layer/screen-grid-cell-layer.js.map +1 -1
- package/dist/esm/screen-grid-layer/screen-grid-layer-fragment.glsl.js.map +1 -1
- package/dist/esm/screen-grid-layer/screen-grid-layer-vertex.glsl.js +1 -1
- package/dist/esm/screen-grid-layer/screen-grid-layer-vertex.glsl.js.map +1 -1
- package/dist/esm/screen-grid-layer/screen-grid-layer.js +15 -7
- package/dist/esm/screen-grid-layer/screen-grid-layer.js.map +1 -1
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils/bin-sorter.js +16 -0
- package/dist/esm/utils/bin-sorter.js.map +1 -1
- package/dist.min.js +1 -1
- package/package.json +7 -4
- package/src/{aggregation-layer.js → aggregation-layer.ts} +32 -15
- package/src/contour-layer/{contour-layer.js → contour-layer.ts} +95 -15
- package/src/contour-layer/{contour-utils.js → contour-utils.ts} +11 -5
- package/src/contour-layer/{marching-squares-codes.js → marching-squares-codes.ts} +0 -0
- package/src/contour-layer/{marching-squares.js → marching-squares.ts} +6 -6
- package/src/cpu-grid-layer/cpu-grid-layer.ts +310 -0
- package/src/gpu-grid-layer/{gpu-grid-cell-layer-fragment.glsl.js → gpu-grid-cell-layer-fragment.glsl.ts} +0 -0
- package/src/gpu-grid-layer/{gpu-grid-cell-layer-vertex.glsl.js → gpu-grid-cell-layer-vertex.glsl.ts} +0 -0
- package/src/gpu-grid-layer/{gpu-grid-cell-layer.js → gpu-grid-cell-layer.ts} +22 -14
- package/src/gpu-grid-layer/{gpu-grid-layer.js → gpu-grid-layer.ts} +122 -17
- package/src/{grid-aggregation-layer.js → grid-aggregation-layer.ts} +25 -13
- package/src/grid-layer/{grid-layer.js → grid-layer.ts} +38 -13
- package/src/heatmap-layer/{heatmap-layer-utils.js → heatmap-layer-utils.ts} +15 -10
- package/src/heatmap-layer/{heatmap-layer.js → heatmap-layer.ts} +144 -31
- package/src/heatmap-layer/{max-fs.glsl.js → max-fs.glsl.ts} +0 -0
- package/src/heatmap-layer/{max-vs.glsl.js → max-vs.glsl.ts} +0 -0
- package/src/heatmap-layer/{triangle-layer-fragment.glsl.js → triangle-layer-fragment.glsl.ts} +0 -0
- package/src/heatmap-layer/{triangle-layer-vertex.glsl.js → triangle-layer-vertex.glsl.ts} +0 -0
- package/src/heatmap-layer/{triangle-layer.js → triangle-layer.ts} +20 -10
- package/src/heatmap-layer/{weights-fs.glsl.js → weights-fs.glsl.ts} +0 -0
- package/src/heatmap-layer/{weights-vs.glsl.js → weights-vs.glsl.ts} +0 -0
- package/src/hexagon-layer/{hexagon-layer.js → hexagon-layer.ts} +174 -9
- package/src/index.ts +9 -0
- package/src/screen-grid-layer/{screen-grid-cell-layer.js → screen-grid-cell-layer.ts} +31 -14
- package/src/screen-grid-layer/{screen-grid-layer-fragment.glsl.js → screen-grid-layer-fragment.glsl.ts} +0 -0
- package/src/screen-grid-layer/{screen-grid-layer-vertex.glsl.js → screen-grid-layer-vertex.glsl.ts} +0 -0
- package/src/screen-grid-layer/{screen-grid-layer.js → screen-grid-layer.ts} +117 -15
- package/src/types.ts +10 -0
- package/src/utils/{bin-sorter.js → bin-sorter.ts} +26 -11
- package/typed/aggregation-layer.d.ts +38 -0
- package/typed/aggregation-layer.d.ts.map +1 -0
- package/typed/aggregation-layer.js +151 -0
- package/typed/contour-layer/contour-layer.d.ts +95 -0
- package/typed/contour-layer/contour-layer.d.ts.map +1 -0
- package/typed/contour-layer/contour-layer.js +234 -0
- package/typed/contour-layer/contour-utils.d.ts +18 -0
- package/typed/contour-layer/contour-utils.d.ts.map +1 -0
- package/typed/contour-layer/contour-utils.js +64 -0
- package/typed/contour-layer/marching-squares-codes.d.ts +32 -0
- package/typed/contour-layer/marching-squares-codes.d.ts.map +1 -0
- package/typed/contour-layer/marching-squares-codes.js +337 -0
- package/typed/contour-layer/marching-squares.d.ts +10 -0
- package/typed/contour-layer/marching-squares.d.ts.map +1 -0
- package/typed/contour-layer/marching-squares.js +147 -0
- package/typed/cpu-grid-layer/cpu-grid-layer.d.ts +226 -0
- package/typed/cpu-grid-layer/cpu-grid-layer.d.ts.map +1 -0
- package/typed/cpu-grid-layer/cpu-grid-layer.js +129 -0
- package/typed/cpu-grid-layer/grid-aggregator.d.ts +23 -0
- package/typed/cpu-grid-layer/grid-aggregator.d.ts.map +1 -0
- package/typed/cpu-grid-layer/grid-aggregator.js +141 -0
- package/typed/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.d.ts +3 -0
- package/typed/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.d.ts.map +1 -0
- package/typed/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +34 -0
- package/typed/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.d.ts +3 -0
- package/typed/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.d.ts.map +1 -0
- package/typed/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +141 -0
- package/typed/gpu-grid-layer/gpu-grid-cell-layer.d.ts +71 -0
- package/typed/gpu-grid-layer/gpu-grid-cell-layer.d.ts.map +1 -0
- package/typed/gpu-grid-layer/gpu-grid-cell-layer.js +143 -0
- package/typed/gpu-grid-layer/gpu-grid-layer.d.ts +134 -0
- package/typed/gpu-grid-layer/gpu-grid-layer.d.ts.map +1 -0
- package/typed/gpu-grid-layer/gpu-grid-layer.js +289 -0
- package/typed/grid-aggregation-layer.d.ts +32 -0
- package/typed/grid-aggregation-layer.d.ts.map +1 -0
- package/typed/grid-aggregation-layer.js +172 -0
- package/typed/grid-layer/grid-layer.d.ts +112 -0
- package/typed/grid-layer/grid-layer.d.ts.map +1 -0
- package/typed/grid-layer/grid-layer.js +60 -0
- package/typed/heatmap-layer/heatmap-layer-utils.d.ts +13 -0
- package/typed/heatmap-layer/heatmap-layer-utils.d.ts.map +1 -0
- package/typed/heatmap-layer/heatmap-layer-utils.js +78 -0
- package/typed/heatmap-layer/heatmap-layer.d.ts +161 -0
- package/typed/heatmap-layer/heatmap-layer.d.ts.map +1 -0
- package/typed/heatmap-layer/heatmap-layer.js +478 -0
- package/typed/heatmap-layer/max-fs.glsl.d.ts +3 -0
- package/typed/heatmap-layer/max-fs.glsl.d.ts.map +1 -0
- package/typed/heatmap-layer/max-fs.glsl.js +7 -0
- package/typed/heatmap-layer/max-vs.glsl.d.ts +3 -0
- package/typed/heatmap-layer/max-vs.glsl.d.ts.map +1 -0
- package/typed/heatmap-layer/max-vs.glsl.js +12 -0
- package/typed/heatmap-layer/triangle-layer-fragment.glsl.d.ts +3 -0
- package/typed/heatmap-layer/triangle-layer-fragment.glsl.d.ts.map +1 -0
- package/typed/heatmap-layer/triangle-layer-fragment.glsl.js +58 -0
- package/typed/heatmap-layer/triangle-layer-vertex.glsl.d.ts +3 -0
- package/typed/heatmap-layer/triangle-layer-vertex.glsl.d.ts.map +1 -0
- package/typed/heatmap-layer/triangle-layer-vertex.glsl.js +51 -0
- package/typed/heatmap-layer/triangle-layer.d.ts +27 -0
- package/typed/heatmap-layer/triangle-layer.d.ts.map +1 -0
- package/typed/heatmap-layer/triangle-layer.js +67 -0
- package/typed/heatmap-layer/weights-fs.glsl.d.ts +3 -0
- package/typed/heatmap-layer/weights-fs.glsl.d.ts.map +1 -0
- package/typed/heatmap-layer/weights-fs.glsl.js +19 -0
- package/typed/heatmap-layer/weights-vs.glsl.d.ts +3 -0
- package/typed/heatmap-layer/weights-vs.glsl.d.ts.map +1 -0
- package/typed/heatmap-layer/weights-vs.glsl.js +23 -0
- package/typed/hexagon-layer/hexagon-aggregator.d.ts +24 -0
- package/typed/hexagon-layer/hexagon-aggregator.d.ts.map +1 -0
- package/typed/hexagon-layer/hexagon-aggregator.js +112 -0
- package/typed/hexagon-layer/hexagon-layer.d.ts +237 -0
- package/typed/hexagon-layer/hexagon-layer.d.ts.map +1 -0
- package/typed/hexagon-layer/hexagon-layer.js +171 -0
- package/typed/index.d.ts +20 -0
- package/typed/index.d.ts.map +1 -0
- package/typed/index.js +33 -0
- package/typed/package.json +6 -0
- package/typed/screen-grid-layer/screen-grid-cell-layer.d.ts +54 -0
- package/typed/screen-grid-layer/screen-grid-cell-layer.d.ts.map +1 -0
- package/typed/screen-grid-layer/screen-grid-cell-layer.js +159 -0
- package/typed/screen-grid-layer/screen-grid-layer-fragment.glsl.d.ts +3 -0
- package/typed/screen-grid-layer/screen-grid-layer-fragment.glsl.d.ts.map +1 -0
- package/typed/screen-grid-layer/screen-grid-layer-fragment.glsl.js +37 -0
- package/typed/screen-grid-layer/screen-grid-layer-vertex.glsl.d.ts +3 -0
- package/typed/screen-grid-layer/screen-grid-layer-vertex.glsl.d.ts.map +1 -0
- package/typed/screen-grid-layer/screen-grid-layer-vertex.glsl.js +83 -0
- package/typed/screen-grid-layer/screen-grid-layer.d.ts +117 -0
- package/typed/screen-grid-layer/screen-grid-layer.d.ts.map +1 -0
- package/typed/screen-grid-layer/screen-grid-layer.js +216 -0
- package/typed/types.d.ts +11 -0
- package/typed/types.d.ts.map +1 -0
- package/typed/types.js +1 -0
- package/typed/utils/aggregation-operation-utils.d.ts +13 -0
- package/typed/utils/aggregation-operation-utils.d.ts.map +1 -0
- package/typed/utils/aggregation-operation-utils.js +94 -0
- package/typed/utils/bin-sorter.d.ts +52 -0
- package/typed/utils/bin-sorter.d.ts.map +1 -0
- package/typed/utils/bin-sorter.js +167 -0
- package/typed/utils/color-utils.d.ts +3 -0
- package/typed/utils/color-utils.d.ts.map +1 -0
- package/typed/utils/color-utils.js +53 -0
- package/typed/utils/cpu-aggregator.d.ts +155 -0
- package/typed/utils/cpu-aggregator.d.ts.map +1 -0
- package/typed/utils/cpu-aggregator.js +417 -0
- package/typed/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.d.ts +3 -0
- package/typed/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.d.ts.map +1 -0
- package/typed/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +39 -0
- package/typed/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.d.ts +3 -0
- package/typed/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.d.ts.map +1 -0
- package/typed/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +53 -0
- package/typed/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.d.ts +3 -0
- package/typed/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.d.ts.map +1 -0
- package/typed/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +31 -0
- package/typed/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.d.ts +3 -0
- package/typed/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.d.ts.map +1 -0
- package/typed/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +77 -0
- package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.d.ts +36 -0
- package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.d.ts.map +1 -0
- package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +41 -0
- package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.d.ts +1 -0
- package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.d.ts.map +1 -0
- package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +1 -0
- package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator.d.ts +66 -0
- package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator.d.ts.map +1 -0
- package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +562 -0
- package/typed/utils/gpu-grid-aggregation/transform-mean-vs.glsl.d.ts +3 -0
- package/typed/utils/gpu-grid-aggregation/transform-mean-vs.glsl.d.ts.map +1 -0
- package/typed/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +36 -0
- package/typed/utils/grid-aggregation-utils.d.ts +24 -0
- package/typed/utils/grid-aggregation-utils.d.ts.map +1 -0
- package/typed/utils/grid-aggregation-utils.js +114 -0
- package/typed/utils/prop-utils.d.ts +2 -0
- package/typed/utils/prop-utils.d.ts.map +1 -0
- package/typed/utils/prop-utils.js +28 -0
- package/typed/utils/resource-utils.d.ts +4 -0
- package/typed/utils/resource-utils.d.ts.map +1 -0
- package/typed/utils/resource-utils.js +40 -0
- package/typed/utils/scale-utils.d.ts +15 -0
- package/typed/utils/scale-utils.d.ts.map +1 -0
- package/typed/utils/scale-utils.js +184 -0
- package/src/cpu-grid-layer/cpu-grid-layer.js +0 -153
package/dist.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("deck"),require("luma")):"function"==typeof define&&define.amd?define(["deck","luma"],t):"object"==typeof exports?exports.deck=t(require("deck"),require("luma")):e.deck=t(e.deck,e.luma)}(window,(function(e,t){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=11)}([function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(t,n){t.exports=e},function(e,n){e.exports=t},function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(t)}e.exports=n},function(e,t,n){var r=n(13);function i(t,n,o){return"undefined"!=typeof Reflect&&Reflect.get?e.exports=i=Reflect.get:e.exports=i=function(e,t,n){var i=r(e,t);if(i){var o=Object.getOwnPropertyDescriptor(i,t);return o.get?o.get.call(n):o.value}},i(t,n,o||t)}e.exports=i},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}},function(e,t,n){var r=n(14);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},function(e,t,n){var r=n(10),i=n(15);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?i(e):t}},function(e,t,n){var r=n(16),i=n(17),o=n(18);e.exports=function(e,t){return r(e)||i(e,t)||o()}},function(e,t){function n(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=n=function(e){return typeof e}:e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(t)}e.exports=n},function(e,t,n){var r=n(19),i=globalThis.deck||{};if(!i.LineLayer)throw new Error("@deck.gl/layers is not found");e.exports=Object.assign(i,r)},,function(e,t,n){var r=n(3);e.exports=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=r(e)););return e}},function(e,t){function n(t,r){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(t,r)}e.exports=n},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n}}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t,n){"use strict";n.r(t);var r=n(5),i=n.n(r),o=n(6),a=n.n(o),s=n(4),u=n.n(s),l=n(7),c=n.n(l),g=n(8),f=n.n(g),p=n(3),d=n.n(p),h=n(0),v=n.n(h),m=n(1),y=n(2);function x(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=Math.fround(e),i=e-r;return t[n]=r,t[n+1]=i,t}function b(e){return e-Math.fround(e)}function S(e){for(var t=new Float32Array(32),n=0;n<4;++n)for(var r=0;r<4;++r){var i=4*n+r;x(e[4*r+n],t,2*i)}return t}var O={ONE:1};var w,P,A={name:"fp64-arithmetic",vs:"uniform float ONE;\nvec2 split(float a) {\n const float SPLIT = 4097.0;\n float t = a * SPLIT;\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float a_hi = t * ONE - (t - a);\n float a_lo = a * ONE - a_hi;\n#else\n float a_hi = t - (t - a);\n float a_lo = a - a_hi;\n#endif\n return vec2(a_hi, a_lo);\n}\nvec2 split2(vec2 a) {\n vec2 b = split(a.x);\n b.y += a.y;\n return b;\n}\nvec2 quickTwoSum(float a, float b) {\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float sum = (a + b) * ONE;\n float err = b - (sum - a) * ONE;\n#else\n float sum = a + b;\n float err = b - (sum - a);\n#endif\n return vec2(sum, err);\n}\nvec2 twoSum(float a, float b) {\n float s = (a + b);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float v = (s * ONE - a) * ONE;\n float err = (a - (s - v) * ONE) * ONE * ONE * ONE + (b - v);\n#else\n float v = s - a;\n float err = (a - (s - v)) + (b - v);\n#endif\n return vec2(s, err);\n}\n\nvec2 twoSub(float a, float b) {\n float s = (a - b);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float v = (s * ONE - a) * ONE;\n float err = (a - (s - v) * ONE) * ONE * ONE * ONE - (b + v);\n#else\n float v = s - a;\n float err = (a - (s - v)) - (b + v);\n#endif\n return vec2(s, err);\n}\n\nvec2 twoSqr(float a) {\n float prod = a * a;\n vec2 a_fp64 = split(a);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float err = ((a_fp64.x * a_fp64.x - prod) * ONE + 2.0 * a_fp64.x *\n a_fp64.y * ONE * ONE) + a_fp64.y * a_fp64.y * ONE * ONE * ONE;\n#else\n float err = ((a_fp64.x * a_fp64.x - prod) + 2.0 * a_fp64.x * a_fp64.y) + a_fp64.y * a_fp64.y;\n#endif\n return vec2(prod, err);\n}\n\nvec2 twoProd(float a, float b) {\n float prod = a * b;\n vec2 a_fp64 = split(a);\n vec2 b_fp64 = split(b);\n float err = ((a_fp64.x * b_fp64.x - prod) + a_fp64.x * b_fp64.y +\n a_fp64.y * b_fp64.x) + a_fp64.y * b_fp64.y;\n return vec2(prod, err);\n}\n\nvec2 sum_fp64(vec2 a, vec2 b) {\n vec2 s, t;\n s = twoSum(a.x, b.x);\n t = twoSum(a.y, b.y);\n s.y += t.x;\n s = quickTwoSum(s.x, s.y);\n s.y += t.y;\n s = quickTwoSum(s.x, s.y);\n return s;\n}\n\nvec2 sub_fp64(vec2 a, vec2 b) {\n vec2 s, t;\n s = twoSub(a.x, b.x);\n t = twoSub(a.y, b.y);\n s.y += t.x;\n s = quickTwoSum(s.x, s.y);\n s.y += t.y;\n s = quickTwoSum(s.x, s.y);\n return s;\n}\n\nvec2 mul_fp64(vec2 a, vec2 b) {\n vec2 prod = twoProd(a.x, b.x);\n prod.y += a.x * b.y;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n prod = split2(prod);\n#endif\n prod = quickTwoSum(prod.x, prod.y);\n prod.y += a.y * b.x;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n prod = split2(prod);\n#endif\n prod = quickTwoSum(prod.x, prod.y);\n return prod;\n}\n\nvec2 div_fp64(vec2 a, vec2 b) {\n float xn = 1.0 / b.x;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n vec2 yn = mul_fp64(a, vec2(xn, 0));\n#else\n vec2 yn = a * xn;\n#endif\n float diff = (sub_fp64(a, mul_fp64(b, yn))).x;\n vec2 prod = twoProd(xn, diff);\n return sum_fp64(yn, prod);\n}\n\nvec2 sqrt_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) return vec2(0.0, 0.0);\n if (a.x < 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);\n\n float x = 1.0 / sqrt(a.x);\n float yn = a.x * x;\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n vec2 yn_sqr = twoSqr(yn) * ONE;\n#else\n vec2 yn_sqr = twoSqr(yn);\n#endif\n float diff = sub_fp64(a, yn_sqr).x;\n vec2 prod = twoProd(x * 0.5, diff);\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n return sum_fp64(split(yn), prod);\n#else\n return sum_fp64(vec2(yn, 0.0), prod);\n#endif\n}\n",fs:null,getUniforms:function(){return O},fp64ify:x,fp64LowPart:b,fp64ifyMatrix4:S},_={SUM:1,MEAN:2,MIN:3,MAX:4};function M(e,t){return e+t}function D(e,t){return t>e?t:e}function C(e,t){return t<e?t:e}function T(e,t,n){var r=_[e]||_.SUM;switch(t=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(Number.isFinite(e))return e;return function(n){return t.index=n.index,e(n.source,t)}}(t,n),r){case _.MIN:return function(e){return function(e,t){if(Number.isFinite(t))return e.length?t:null;var n=e.map(t).filter(Number.isFinite);return n.length?n.reduce(C,1/0):null}(e,t)};case _.SUM:return function(e){return function(e,t){if(Number.isFinite(t))return e.length?e.length*t:null;var n=e.map(t).filter(Number.isFinite);return n.length?n.reduce(M,0):null}(e,t)};case _.MEAN:return function(e){return function(e,t){if(Number.isFinite(t))return e.length?t:null;var n=e.map(t).filter(Number.isFinite);return n.length?n.reduce(M,0)/n.length:null}(e,t)};case _.MAX:return function(e){return function(e,t){if(Number.isFinite(t))return e.length?t:null;var n=e.map(t).filter(Number.isFinite);return n.length?n.reduce(D,-1/0):null}(e,t)};default:return null}}function E(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(n){return t.indices=n.map((function(e){return e.index})),e(n.map((function(e){return e.source})),t)}}var j,R={projectPoints:!1,viewport:null,createBufferObjects:!0,moduleSettings:{}},k=[32775,32774],N=[32776,32774],z=[32776,32775],I=(w={},v()(w,_.SUM,32774),v()(w,_.MEAN,32774),v()(w,_.MIN,k),v()(w,_.MAX,N),w),B={size:1,operation:_.SUM,needMin:!1,needMax:!1,combineMaxMin:!1},F=(P={},v()(P,10240,9728),v()(P,10241,9728),j={},v()(j,10240,9728),v()(j,10241,9728),j);function U(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.width,r=void 0===n?1:n,i=t.height,o=void 0===i?1:i,a=t.data,s=void 0===a?null:a,u=t.unpackFlipY,l=void 0===u||u,c=t.parameters,g=void 0===c?F:c,f=new y.Texture2D(e,{data:s,format:Object(y.isWebGL2)(e)?34836:6408,type:5126,border:0,mipmaps:!1,parameters:g,dataFormat:6408,width:r,height:o,unpackFlipY:l});return f}function L(e,t){var n=t.id,r=t.width,i=void 0===r?1:r,o=t.height,a=void 0===o?1:o,s=t.texture;return new y.Framebuffer(e,{id:n,width:i,height:a,attachments:v()({},36064,s)})}function W(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return G(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return G(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function G(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function V(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function H(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?V(Object(n),!0).forEach((function(t){v()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):V(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var q=["aggregationBuffer","maxMinBuffer","minBuffer","maxBuffer"],Y={maxData:"maxBuffer",minData:"minBuffer",maxMinData:"maxMinBuffer"},X=[y.FEATURES.WEBGL2,y.FEATURES.COLOR_ATTACHMENT_RGBA32F,y.FEATURES.BLEND_EQUATION_MINMAX,y.FEATURES.FLOAT_BLEND,y.FEATURES.TEXTURE_FLOAT],K=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};i()(this,e),this.id=n.id||"gpu-grid-aggregator",this.gl=t,this.state={weightAttributes:{},textures:{},meanTextures:{},buffers:{},framebuffers:{},maxMinFramebuffers:{},minFramebuffers:{},maxFramebuffers:{},equations:{},resources:{},results:{}},this._hasGPUSupport=Object(y.isWebGL2)(t)&&Object(y.hasFeatures)(this.gl,y.FEATURES.BLEND_EQUATION_MINMAX,y.FEATURES.COLOR_ATTACHMENT_RGBA32F,y.FEATURES.TEXTURE_FLOAT),this._hasGPUSupport&&this._setupModels()}return a()(e,[{key:"delete",value:function(){var e=this.gridAggregationModel,t=this.allAggregationModel,n=this.meanTransform,r=this.state,i=r.textures,o=r.framebuffers,a=r.maxMinFramebuffers,s=r.minFramebuffers,u=r.maxFramebuffers,l=r.meanTextures,c=r.resources;null==e||e.delete(),null==t||t.delete(),null==n||n.delete(),function(e){(e=Array.isArray(e)?e:[e]).forEach((function(e){for(var t in e)e[t].delete()}))}([o,i,a,s,u,l,c])}},{key:"run",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.setState({results:{}});var t=this._normalizeAggregationParams(e);return this._hasGPUSupport||m.log.log(1,"GPUGridAggregator: not supported")(),this._runAggregation(t)}},{key:"getData",value:function(e){var t={},n=this.state.results;for(var r in n[e].aggregationData||(n[e].aggregationData=n[e].aggregationBuffer.getData()),t.aggregationData=n[e].aggregationData,Y){var i=Y[r];(n[e][r]||n[e][i])&&(n[e][r]=n[e][r]||n[e][i].getData(),t[r]=n[e][r])}return t}},{key:"updateShaders",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.setState({shaderOptions:e,modelDirty:!0})}},{key:"_normalizeAggregationParams",value:function(e){var t=H(H({},R),e),n=t.weights;return n&&(t.weights=function(e){var t={};for(var n in e)t[n]=H(H({},B),e[n]);return t}(n)),t}},{key:"setState",value:function(e){Object.assign(this.state,e)}},{key:"_getAggregateData",value:function(e){var t={},n=this.state,r=n.textures,i=n.framebuffers,o=n.maxMinFramebuffers,a=n.minFramebuffers,s=n.maxFramebuffers,u=n.resources,l=e.weights;for(var c in l){t[c]={};var g=l[c],f=g.needMin,p=g.needMax,d=g.combineMaxMin;t[c].aggregationTexture=r[c],t[c].aggregationBuffer=Object(y.readPixelsToBuffer)(i[c],{target:l[c].aggregationBuffer,sourceType:5126}),f&&p&&d?(t[c].maxMinBuffer=Object(y.readPixelsToBuffer)(o[c],{target:l[c].maxMinBuffer,sourceType:5126}),t[c].maxMinTexture=u["".concat(c,"-maxMinTexture")]):(f&&(t[c].minBuffer=Object(y.readPixelsToBuffer)(a[c],{target:l[c].minBuffer,sourceType:5126}),t[c].minTexture=u["".concat(c,"-minTexture")]),p&&(t[c].maxBuffer=Object(y.readPixelsToBuffer)(s[c],{target:l[c].maxBuffer,sourceType:5126}),t[c].maxTexture=u["".concat(c,"-maxTexture")]))}return this._trackGPUResultBuffers(t,l),t}},{key:"_renderAggregateData",value:function(e){var t=e.cellSize,n=e.projectPoints,r=e.attributes,i=e.moduleSettings,o=e.numCol,a=e.numRow,s=e.weights,u=e.translation,l=e.scaling,c=this.state,g=c.maxMinFramebuffers,f=c.minFramebuffers,p=c.maxFramebuffers,d=[o,a],h={blend:!0,depthTest:!1,blendFunc:[1,1]},v={cellSize:t,gridSize:d,projectPoints:n,translation:u,scaling:l};for(var m in s){var y=s[m],x=y.needMin,b=y.needMax,S=x&&b&&s[m].combineMaxMin;this._renderToWeightsTexture({id:m,parameters:h,moduleSettings:i,uniforms:v,gridSize:d,attributes:r,weights:s}),S?this._renderToMaxMinTexture({id:m,parameters:H(H({},h),{},{blendEquation:z}),gridSize:d,minOrMaxFb:g[m],clearParams:{clearColor:[0,0,0,3402823466e29]},combineMaxMin:S}):(x&&this._renderToMaxMinTexture({id:m,parameters:H(H({},h),{},{blendEquation:k}),gridSize:d,minOrMaxFb:f[m],clearParams:{clearColor:[3402823466e29,3402823466e29,3402823466e29,0]},combineMaxMin:S}),b&&this._renderToMaxMinTexture({id:m,parameters:H(H({},h),{},{blendEquation:N}),gridSize:d,minOrMaxFb:p[m],clearParams:{clearColor:[0,0,0,0]},combineMaxMin:S}))}}},{key:"_renderToMaxMinTexture",value:function(e){var t=e.id,n=e.parameters,r=e.gridSize,i=e.minOrMaxFb,o=e.combineMaxMin,a=e.clearParams,s=void 0===a?{}:a,u=this.state.framebuffers,l=this.gl,c=this.allAggregationModel;Object(y.withParameters)(l,H(H({},s),{},{framebuffer:i,viewport:[0,0,r[0],r[1]]}),(function(){l.clear(16384),c.draw({parameters:n,uniforms:{uSampler:u[t].texture,gridSize:r,combineMaxMin:o}})}))}},{key:"_renderToWeightsTexture",value:function(e){var t=e.id,n=e.parameters,r=e.moduleSettings,i=e.uniforms,o=e.gridSize,a=e.weights,s=this.state,u=s.framebuffers,l=s.equations,c=s.weightAttributes,g=this.gl,f=this.gridAggregationModel,p=a[t].operation,d=p===_.MIN?[3402823466e29,3402823466e29,3402823466e29,0]:[0,0,0,0];if(Object(y.withParameters)(g,{framebuffer:u[t],viewport:[0,0,o[0],o[1]],clearColor:d},(function(){g.clear(16384);var e={weights:c[t]};f.draw({parameters:H(H({},n),{},{blendEquation:l[t]}),moduleSettings:r,uniforms:i,attributes:e})})),p===_.MEAN){var h=this.state,m=h.meanTextures,x=h.textures,b={_sourceTextures:{aggregationValues:m[t]},_targetTexture:x[t],elementCount:x[t].width*x[t].height};this.meanTransform?this.meanTransform.update(b):this.meanTransform=function(e,t){return new y.Transform(e,H({vs:"#define SHADER_NAME gpu-aggregation-transform-mean-vs\nattribute vec4 aggregationValues;\nvarying vec4 meanValues;\n\nvoid main()\n{\n bool isCellValid = bool(aggregationValues.w > 0.);\n meanValues.xyz = isCellValid ? aggregationValues.xyz/aggregationValues.w : vec3(0, 0, 0);\n meanValues.w = aggregationValues.w;\n gl_PointSize = 1.0;\n}\n",_targetTextureVarying:"meanValues"},t))}(g,b),this.meanTransform.run({parameters:{blend:!1,depthTest:!1}}),u[t].attach(v()({},36064,x[t]))}}},{key:"_runAggregation",value:function(e){this._updateModels(e),this._setupFramebuffers(e),this._renderAggregateData(e);var t=this._getAggregateData(e);return this.setState({results:t}),t}},{key:"_setupFramebuffers",value:function(e){var t=this.state,n=t.textures,r=t.framebuffers,i=t.maxMinFramebuffers,o=t.minFramebuffers,a=t.maxFramebuffers,s=t.meanTextures,u=t.equations,l=e.weights,c=e.numCol,g=e.numRow,f={width:c,height:g};for(var p in l){var d=l[p],h=d.needMin,m=d.needMax,y=d.combineMaxMin,x=d.operation;n[p]=l[p].aggregationTexture||n[p]||U(this.gl,{id:"".concat(p,"-texture"),width:c,height:g}),n[p].resize(f);var b=n[p];x===_.MEAN&&(s[p]=s[p]||U(this.gl,{id:"".concat(p,"-mean-texture"),width:c,height:g}),s[p].resize(f),b=s[p]),r[p]?r[p].attach(v()({},36064,b)):r[p]=L(this.gl,{id:"".concat(p,"-fb"),width:c,height:g,texture:b}),r[p].resize(f),u[p]=I[x]||I.SUM,(h||m)&&(h&&m&&y?i[p]||(b=l[p].maxMinTexture||this._getMinMaxTexture("".concat(p,"-maxMinTexture")),i[p]=L(this.gl,{id:"".concat(p,"-maxMinFb"),texture:b})):(h&&(o[p]||(b=l[p].minTexture||this._getMinMaxTexture("".concat(p,"-minTexture")),o[p]=L(this.gl,{id:"".concat(p,"-minFb"),texture:b}))),m&&(a[p]||(b=l[p].maxTexture||this._getMinMaxTexture("".concat(p,"-maxTexture")),a[p]=L(this.gl,{id:"".concat(p,"-maxFb"),texture:b})))))}}},{key:"_getMinMaxTexture",value:function(e){var t=this.state.resources;return t[e]||(t[e]=U(this.gl,{id:"resourceName"})),t[e]}},{key:"_setupModels",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.numCol,r=void 0===n?0:n,i=t.numRow,o=void 0===i?0:i,a=this.gl,s=this.state.shaderOptions;if(null===(e=this.gridAggregationModel)||void 0===e||e.delete(),this.gridAggregationModel=$(a,s),!this.allAggregationModel){var u=r*o;this.allAggregationModel=Q(a,u)}}},{key:"_setupWeightAttributes",value:function(e){var t=this.state.weightAttributes,n=e.weights;for(var r in n)t[r]=e.attributes[r]}},{key:"_trackGPUResultBuffers",value:function(e,t){var n=this.state.resources;for(var r in e)if(e[r]){var i,o=W(q);try{for(o.s();!(i=o.n()).done;){var a=i.value;if(e[r][a]&&t[r][a]!==e[r][a]){var s="gpu-result-".concat(r,"-").concat(a);n[s]&&n[s].delete(),n[s]=e[r][a]}}}catch(e){o.e(e)}finally{o.f()}}}},{key:"_updateModels",value:function(e){var t=e.vertexCount,n=e.attributes,r=e.numCol,i=e.numRow;this.state.modelDirty&&(this._setupModels(e),this.setState({modelDirty:!1})),this._setupWeightAttributes(e),this.gridAggregationModel.setVertexCount(t),this.gridAggregationModel.setAttributes(n),this.allAggregationModel.setInstanceCount(r*i)}}],[{key:"getAggregationData",value:function(e){var t=e.aggregationData,n=e.maxData,r=e.minData,i=e.maxMinData,o=4*e.pixelIndex,a={};return t&&(a.cellCount=t[o+3],a.cellWeight=t[o]),i?(a.maxCellWieght=i[0],a.minCellWeight=i[3]):(n&&(a.maxCellWieght=n[0],a.totalCount=n[3]),r&&(a.minCellWeight=r[0],a.totalCount=n[3])),a}},{key:"getCellData",value:function(e){for(var t=e.countsData,n=e.size,r=void 0===n?1:n,i=t.length/4,o=new Float32Array(i*r),a=new Uint32Array(i),s=0;s<i;s++){for(var u=0;u<r;u++)o[s*r+u]=t[4*s+u];a[s]=t[4*s+3]}return{cellCounts:a,cellWeights:o}}},{key:"isSupported",value:function(e){return Object(y.hasFeatures)(e,X)}}]),e}();function $(e,t){var n=Object(m._mergeShaders)({vs:"#define SHADER_NAME gpu-aggregation-to-grid-vs\n\nattribute vec3 positions;\nattribute vec3 positions64Low;\nattribute vec3 weights;\nuniform vec2 cellSize;\nuniform vec2 gridSize;\nuniform bool projectPoints;\nuniform vec2 translation;\nuniform vec3 scaling;\n\nvarying vec3 vWeights;\n\nvec2 project_to_pixel(vec4 pos) {\n vec4 result;\n pos.xy = pos.xy/pos.w;\n result = pos + vec4(translation, 0., 0.);\n result.xy = scaling.z > 0. ? result.xy * scaling.xy : result.xy;\n return result.xy;\n}\n\nvoid main(void) {\n\n vWeights = weights;\n\n vec4 windowPos = vec4(positions, 1.);\n if (projectPoints) {\n windowPos = project_position_to_clipspace(positions, positions64Low, vec3(0));\n }\n\n vec2 pos = project_to_pixel(windowPos);\n\n vec2 pixelXY64[2];\n pixelXY64[0] = vec2(pos.x, 0.);\n pixelXY64[1] = vec2(pos.y, 0.);\n vec2 gridXY64[2];\n gridXY64[0] = div_fp64(pixelXY64[0], vec2(cellSize.x, 0));\n gridXY64[1] = div_fp64(pixelXY64[1], vec2(cellSize.y, 0));\n float x = floor(gridXY64[0].x);\n float y = floor(gridXY64[1].x);\n pos = vec2(x, y);\n pos = (pos * (2., 2.) / (gridSize)) - (1., 1.);\n vec2 offset = 1.0 / gridSize;\n pos = pos + offset;\n\n gl_Position = vec4(pos, 0.0, 1.0);\n gl_PointSize = 1.0;\n}\n",fs:"#define SHADER_NAME gpu-aggregation-to-grid-fs\n\nprecision highp float;\n\nvarying vec3 vWeights;\n\nvoid main(void) {\n gl_FragColor = vec4(vWeights, 1.0);\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n",modules:[A,m.project32]},t);return new y.Model(e,H({id:"Gird-Aggregation-Model",vertexCount:1,drawMode:0},n))}function Q(e,t){return new y.Model(e,{id:"All-Aggregation-Model",vs:"#version 300 es\n#define SHADER_NAME gpu-aggregation-all-vs-64\n\nin vec2 position;\nuniform ivec2 gridSize;\nout vec2 vTextureCoord;\n\nvoid main(void) {\n vec2 pos = vec2(-1.0, -1.0);\n vec2 offset = 1.0 / vec2(gridSize);\n pos = pos + offset;\n\n gl_Position = vec4(pos, 0.0, 1.0);\n\n int yIndex = gl_InstanceID / gridSize[0];\n int xIndex = gl_InstanceID - (yIndex * gridSize[0]);\n\n vec2 yIndexFP64 = vec2(float(yIndex), 0.);\n vec2 xIndexFP64 = vec2(float(xIndex), 0.);\n vec2 gridSizeYFP64 = vec2(gridSize[1], 0.);\n vec2 gridSizeXFP64 = vec2(gridSize[0], 0.);\n\n vec2 texCoordXFP64 = div_fp64(yIndexFP64, gridSizeYFP64);\n vec2 texCoordYFP64 = div_fp64(xIndexFP64, gridSizeXFP64);\n\n vTextureCoord = vec2(texCoordYFP64.x, texCoordXFP64.x);\n gl_PointSize = 1.0;\n}\n",fs:"#version 300 es\n#define SHADER_NAME gpu-aggregation-all-fs\n\nprecision highp float;\n\nin vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform bool combineMaxMin;\nout vec4 fragColor;\nvoid main(void) {\n vec4 textureColor = texture(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));\n if (textureColor.a == 0.) {\n discard;\n }\n fragColor.rgb = textureColor.rgb;\n fragColor.a = combineMaxMin ? textureColor.r : textureColor.a;\n}\n",modules:[A],vertexCount:1,drawMode:0,isInstanced:!0,instanceCount:t,attributes:{position:[0,0]}})}var Z=[[255,255,178],[254,217,118],[254,178,76],[253,141,60],[240,59,32],[189,0,38]];function J(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Float32Array;if(Number.isFinite(e[0]))t=new r(e);else{t=new r(4*e.length);for(var i=0,o=0;o<e.length;o++){var a=e[o];t[i++]=a[0],t[i++]=a[1],t[i++]=a[2],t[i++]=Number.isFinite(a[3])?a[3]:255}}if(n)for(var s=0;s<t.length;s++)t[s]/=255;return t}function ee(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function te(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ee(Object(n),!0).forEach((function(t){v()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ee(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ne(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=d()(e);if(t){var i=d()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return f()(this,n)}}var re=[0,0,0,0],ie=[0,255,0,255],oe=["minColor","maxColor","colorRange","colorDomain"],ae={cellSizePixels:{value:100,min:1},cellMarginPixels:{value:2,min:0,max:5},colorDomain:null,colorRange:Z},se=function(e){c()(n,e);var t=ne(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"getShaders",value:function(){return{vs:"#define SHADER_NAME screen-grid-layer-vertex-shader\n#define RANGE_COUNT 6\n\nattribute vec3 positions;\nattribute vec3 instancePositions;\nattribute vec4 instanceCounts;\nattribute vec3 instancePickingColors;\n\nuniform float opacity;\nuniform vec3 cellScale;\nuniform vec4 minColor;\nuniform vec4 maxColor;\nuniform vec4 colorRange[RANGE_COUNT];\nuniform vec2 colorDomain;\nuniform bool shouldUseMinMax;\nuniform sampler2D maxTexture;\n\nvarying vec4 vColor;\nvarying float vSampleCount;\n\nvec4 quantizeScale(vec2 domain, vec4 range[RANGE_COUNT], float value) {\n vec4 outColor = vec4(0., 0., 0., 0.);\n if (value >= domain.x && value <= domain.y) {\n float domainRange = domain.y - domain.x;\n if (domainRange <= 0.) {\n outColor = colorRange[0];\n } else {\n float rangeCount = float(RANGE_COUNT);\n float rangeStep = domainRange / rangeCount;\n float idx = floor((value - domain.x) / rangeStep);\n idx = clamp(idx, 0., rangeCount - 1.);\n int intIdx = int(idx);\n outColor = colorRange[intIdx];\n }\n }\n outColor = outColor / 255.;\n return outColor;\n}\n\nvoid main(void) {\n vSampleCount = instanceCounts.a;\n\n float weight = instanceCounts.r;\n float maxWeight = texture2D(maxTexture, vec2(0.5)).r;\n\n float step = weight / maxWeight;\n vec4 minMaxColor = mix(minColor, maxColor, step) / 255.;\n\n vec2 domain = colorDomain;\n float domainMaxValid = float(colorDomain.y != 0.);\n domain.y = mix(maxWeight, colorDomain.y, domainMaxValid);\n vec4 rangeColor = quantizeScale(domain, colorRange, weight);\n\n float rangeMinMax = float(shouldUseMinMax);\n vec4 color = mix(rangeColor, minMaxColor, rangeMinMax);\n vColor = vec4(color.rgb, color.a * opacity);\n picking_setPickingColor(instancePickingColors);\n\n gl_Position = vec4(instancePositions + positions * cellScale, 1.);\n}\n",fs:"#define SHADER_NAME screen-grid-layer-fragment-shader\n\nprecision highp float;\n\nvarying vec4 vColor;\nvarying float vSampleCount;\n\nvoid main(void) {\n if (vSampleCount <= 0.0) {\n discard;\n }\n gl_FragColor = vColor;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n",modules:[m.picking]}}},{key:"initializeState",value:function(){var e=this.context.gl;this.getAttributeManager().addInstanced({instancePositions:{size:3,update:this.calculateInstancePositions},instanceCounts:{size:4,noAlloc:!0}}),this.setState({model:this._getModel(e)})}},{key:"shouldUpdateState",value:function(e){return e.changeFlags.somethingChanged}},{key:"updateState",value:function(e){var t=e.oldProps,r=e.props,i=e.changeFlags;u()(d()(n.prototype),"updateState",this).call(this,{oldProps:t,props:r,changeFlags:i});var o=this.getAttributeManager();r.numInstances!==t.numInstances?o.invalidateAll():t.cellSizePixels!==r.cellSizePixels&&o.invalidate("instancePositions"),this._updateUniforms(t,r,i)}},{key:"draw",value:function(e){var t=e.uniforms,n=this.props,r=n.parameters,i=n.maxTexture,o=this.props.minColor||re,a=this.props.maxColor||ie,s=this.props.colorDomain||[1,0];this.state.model.setUniforms(t).setUniforms({minColor:o,maxColor:a,maxTexture:i,colorDomain:s}).draw({parameters:te({depthTest:!1,depthMask:!1},r)})}},{key:"calculateInstancePositions",value:function(e,t){for(var n=t.numInstances,r=this.context.viewport,i=r.width,o=r.height,a=this.props.cellSizePixels,s=Math.ceil(i/a),u=e.value,l=e.size,c=0;c<n;c++){var g=c%s,f=Math.floor(c/s);u[c*l+0]=g*a/i*2-1,u[c*l+1]=1-f*a/o*2,u[c*l+2]=0}}},{key:"_getModel",value:function(e){return new y.Model(e,te(te({},this.getShaders()),{},{id:this.props.id,geometry:new y.Geometry({drawMode:6,attributes:{positions:new Float32Array([0,0,0,1,0,0,1,1,0,0,1,0])}}),isInstanced:!0}))}},{key:"_shouldUseMinMax",value:function(){var e=this.props,t=e.minColor,n=e.maxColor,r=e.colorDomain,i=e.colorRange;return t||n?(m.log.deprecated("ScreenGridLayer props: minColor and maxColor","colorRange, colorDomain")(),!0):!r&&!i}},{key:"_updateUniforms",value:function(e,t,n){var r=this.state.model;if(oe.some((function(n){return e[n]!==t[n]}))&&r.setUniforms({shouldUseMinMax:this._shouldUseMinMax()}),e.colorRange!==t.colorRange&&r.setUniforms({colorRange:J(t.colorRange)}),e.cellMarginPixels!==t.cellMarginPixels||e.cellSizePixels!==t.cellSizePixels||n.viewportChanged){var i=this.context.viewport,o=i.width,a=i.height,s=this.props,u=s.cellSizePixels,l=s.cellMarginPixels,c=u>l?l:0,g=new Float32Array([(u-c)/o*2,-(u-c)/a*2,1]);r.setUniforms({cellScale:g})}}}],[{key:"isSupported",value:function(e){return Object(y.hasFeatures)(e,[y.FEATURES.TEXTURE_FLOAT])}}]),n}(m.Layer);function ue(e,t){var n={};for(var r in e)t.includes(r)||(n[r]=e[r]);return n}function le(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return ce(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ce(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function ce(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ge(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=d()(e);if(t){var i=d()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return f()(this,n)}}se.layerName="ScreenGridCellLayer",se.defaultProps=ae;var fe=function(e){c()(n,e);var t=ge(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"initializeState",value:function(e){u()(d()(n.prototype),"initializeState",this).call(this),this.setState({ignoreProps:ue(this.constructor._propTypes,e.data.props),dimensions:e})}},{key:"updateState",value:function(e){if(u()(d()(n.prototype),"updateState",this).call(this,e),e.changeFlags.extensionsChanged){var t=this.getShaders({});t&&t.defines&&(t.defines.NON_INSTANCED_MODEL=1),this.updateShaders(t)}this._updateAttributes(e.props)}},{key:"updateAttributes",value:function(e){this.setState({changedAttributes:e})}},{key:"getAttributes",value:function(){return this.getAttributeManager().getShaderAttributes()}},{key:"getModuleSettings",value:function(){var e=this.context,t=e.viewport,n=e.mousePosition,r=e.gl;return Object.assign(Object.create(this.props),{viewport:t,mousePosition:n,pickingActive:0,devicePixelRatio:Object(y.cssToDeviceRatio)(r)})}},{key:"updateShaders",value:function(e){}},{key:"isAggregationDirty",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.props,r=e.oldProps,i=e.changeFlags,o=t.compareAll,a=void 0!==o&&o,s=t.dimension,u=this.state.ignoreProps,l=s.props,c=s.accessors,g=void 0===c?[]:c,f=i.updateTriggersChanged;if(i.dataChanged)return!0;if(f){if(f.all)return!0;var p,d=le(g);try{for(d.s();!(p=d.n()).done;){var h=p.value;if(f[h])return!0}}catch(e){d.e(e)}finally{d.f()}}if(a)return!!i.extensionsChanged||Object(m._compareProps)({oldProps:r,newProps:n,ignoreProps:u,propTypes:this.constructor._propTypes});var v,y=le(l);try{for(y.s();!(v=y.n()).done;){var x=v.value;if(n[x]!==r[x])return!0}}catch(e){y.e(e)}finally{y.f()}return!1}},{key:"isAttributeChanged",value:function(e){var t=this.state.changedAttributes;return e?t&&void 0!==t[e]:!function(e){var t=!0;for(var n in e){t=!1;break}return t}(t)}},{key:"_getAttributeManager",value:function(){return new m.AttributeManager(this.context.gl,{id:this.props.id,stats:this.context.stats})}}]),n}(m.CompositeLayer);fe.layerName="AggregationLayer";var pe=n(9),de=n.n(pe);function he(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return ve(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ve(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function ve(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function me(e,t,n){var r=n;return r.domain=function(){return e},r.range=function(){return t},r}function ye(e,t){return me(e,t,(function(n){return function(e,t,n){var r=e[1]-e[0];if(r<=0)return m.log.warn("quantizeScale: invalid domain, returning range[0]")(),t[0];var i=r/t.length,o=Math.floor((n-e[0])/i),a=Math.max(Math.min(o,t.length-1),0);return t[a]}(e,t,n)}))}function xe(e,t){return me(e,t,(function(n){return function(e,t,n){return(n-e[0])/(e[1]-e[0])*(t[1]-t[0])+t[0]}(e,t,n)}))}function be(e,t){for(var n=e.sort(Se),r=0,i=Math.max(1,t.length),o=new Array(i-1);++r<i;)o[r-1]=Oe(n,r/i);var a=function(e){return function(e,t,n){return t[function(e,t){var n=0,r=e.length;for(;n<r;){var i=n+r>>>1;Se(e[i],t)>0?r=i:n=i+1}return n}(e,n)]}(o,t,e)};return a.thresholds=function(){return o},me(e,t,a)}function Se(e,t){return e-t}function Oe(e,t){var n=e.length;if(t<=0||n<2)return e[0];if(t>=1)return e[n-1];var r=(n-1)*t,i=Math.floor(r),o=e[i];return o+(e[i+1]-o)*(r-i)}function we(e,t){var n,r=new Map,i=[],o=he(e);try{for(o.s();!(n=o.n()).done;){var a=n.value,s="".concat(a);r.has(s)||r.set(s,i.push(a))}}catch(e){o.e(e)}finally{o.f()}return me(e,t,(function(e){return function(e,t,n,r){var i="".concat(r),o=t.get(i);return void 0===o&&(o=e.push(r),t.set(i,o)),n[(o-1)%n.length]}(i,r,t,e)}))}function Pe(e){return null!=e}function Ae(e,t){return("function"==typeof t?e.map(t):e).filter(Pe)}function _e(e,t){return Ae(e,t)}function Me(e,t){return n=Ae(e,t),r=[],n.forEach((function(e){!r.includes(e)&&Pe(e)&&r.push(e)})),r;var n,r}function De(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Ce(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ce(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function Ce(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Te=function(e){return e.length},Ee=function(e){return e.points},je=function(e){return e.index},Re=function(e,t){return e<t?-1:e>t?1:e>=t?0:NaN},ke={getValue:Te,getPoints:Ee,getIndex:je,filterData:null},Ne=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ke;i()(this,e),this.aggregatedBins=this.getAggregatedBins(t,n),this._updateMinMaxValues(),this.binMap=this.getBinMap()}return a()(e,[{key:"getAggregatedBins",value:function(e,t){for(var n=t.getValue,r=void 0===n?Te:n,i=t.getPoints,o=void 0===i?Ee:i,a=t.getIndex,s=void 0===a?je:a,u=t.filterData,l="function"==typeof u,c=e.length,g=[],f=0,p=0;p<c;p++){var d=e[p],h=o(d),v=s(d),m=l?h.filter(u):h;d.filteredPoints=l?m:null;var y=m.length?r(m):null;null!=y&&(g[f]={i:Number.isFinite(v)?v:p,value:y,counts:m.length},f++)}return g}},{key:"_percentileToIndex",value:function(e){var t=this.sortedBins.length;if(t<2)return[0,0];var n=e.map((function(e){return t=e,n=0,r=100,Math.max(n,Math.min(r,t));var t,n,r})),r=de()(n,2),i=r[0],o=r[1];return[Math.ceil(i/100*(t-1)),Math.floor(o/100*(t-1))]}},{key:"getBinMap",value:function(){var e,t={},n=De(this.aggregatedBins);try{for(n.s();!(e=n.n()).done;){var r=e.value;t[r.i]=r}}catch(e){n.e(e)}finally{n.f()}return t}},{key:"_updateMinMaxValues",value:function(){var e,t=0,n=0,r=3402823466e29,i=0,o=De(this.aggregatedBins);try{for(o.s();!(e=o.n()).done;){var a=e.value;t=t>a.counts?t:a.counts,n=n>a.value?n:a.value,r=r<a.value?r:a.value,i+=a.counts}}catch(e){o.e(e)}finally{o.f()}this.maxCount=t,this.maxValue=n,this.minValue=r,this.totalCount=i}},{key:"getValueRange",value:function(e){if(this.sortedBins||(this.sortedBins=this.aggregatedBins.sort((function(e,t){return Re(e.value,t.value)}))),!this.sortedBins.length)return[];var t=0,n=this.sortedBins.length-1;if(Array.isArray(e)){var r=this._percentileToIndex(e);t=r[0],n=r[1]}return[this.sortedBins[t].value,this.sortedBins[n].value]}},{key:"getValueDomainByScale",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=de()(t,2),r=n[0],i=void 0===r?0:r,o=n[1],a=void 0===o?100:o;if(this.sortedBins||(this.sortedBins=this.aggregatedBins.sort((function(e,t){return Re(e.value,t.value)}))),!this.sortedBins.length)return[];var s=this._percentileToIndex([i,a]);return this._getScaleDomain(e,s)}},{key:"_getScaleDomain",value:function(e,t){var n=de()(t,2),r=n[0],i=n[1],o=this.sortedBins;switch(e){case"quantize":case"linear":return[o[r].value,o[i].value];case"quantile":return _e(o.slice(r,i+1),(function(e){return e.value}));case"ordinal":return Me(o,(function(e){return e.value}));default:return[o[r].value,o[i].value]}}}]),e}();function ze(e){return Number.isFinite(e)?e:0}function Ie(e,t){for(var n,r,i=e.positions.value,o=1/0,a=-1/0,s=1/0,u=-1/0,l=0;l<t;l++)r=i[3*l],o=(n=i[3*l+1])<o?n:o,a=n>a?n:a,s=r<s?r:s,u=r>u?r:u;return{xMin:ze(s),xMax:ze(u),yMin:ze(o),yMax:ze(a)}}function Be(e,t){var n=e<0?-1:1,r=n<0?Math.abs(e)+t:Math.abs(e);return(r=Math.floor(r/t)*t)*n}function Fe(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!n)return{xOffset:t,yOffset:t};var r=e.yMin,i=e.yMax,o=(r+i)/2;return Le(t,o)}function Ue(e,t,n,r){var i=Fe(e,t,r!==m.COORDINATE_SYSTEM.CARTESIAN),o=function(e,t,n,r){var i=r.width,o=r.height,a=n===m.COORDINATE_SYSTEM.CARTESIAN?[-i/2,-o/2]:[-180,-90];m.log.assert(n===m.COORDINATE_SYSTEM.CARTESIAN||n===m.COORDINATE_SYSTEM.LNGLAT||n===m.COORDINATE_SYSTEM.DEFAULT);var s=e.xMin,u=e.yMin;return[-1*(Be(s-a[0],t.xOffset)+a[0]),-1*(Be(u-a[1],t.yOffset)+a[1])]}(e,i,r,n),a=e.xMin,s=e.yMin,u=e.xMax,l=e.yMax,c=u-a+i.xOffset,g=l-s+i.yOffset;return{gridOffset:i,translation:o,width:c,height:g,numCol:Math.ceil(c/i.xOffset),numRow:Math.ceil(g/i.yOffset)}}function Le(e,t){var n;return{yOffset:e/6378e3*(180/Math.PI),xOffset:(n=t,e/6378e3*(180/Math.PI)/Math.cos(n*Math.PI/180))}}function We(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ge(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?We(Object(n),!0).forEach((function(t){v()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):We(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ve(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return He(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return He(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function He(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function qe(e,t){var n=function(e,t){var n=e.data,r=void 0===n?[]:n,i=e.cellSize,o=t.attributes,a=t.viewport,s=t.projectPoints,u=t.numInstances,l=o.positions.value,c=o.positions.getAccessor().size,g=t.boundingBox||function(e,t){for(var n,r,i=e.value,o=e.getAccessor().size,a=1/0,s=-1/0,u=1/0,l=-1/0,c=0;c<t;c++)r=i[c*o],n=i[c*o+1],Number.isFinite(r)&&Number.isFinite(n)&&(a=n<a?n:a,s=n>s?n:s,u=r<u?r:u,l=r>l?r:l);return{xMin:u,xMax:l,yMin:a,yMax:s}}(o.positions,u),f=t.posOffset||[180,90],p=t.gridOffset||Fe(g,i);if(p.xOffset<=0||p.yOffset<=0)return{gridHash:{},gridOffset:p};var d,h=a.width,v=a.height,y=Math.ceil(h/p.xOffset),x=Math.ceil(v/p.yOffset),b={},S=Object(m.createIterable)(r),O=S.iterable,w=S.objectInfo,P=new Array(3),A=Ve(O);try{for(A.s();!(d=A.n()).done;){var _=d.value;w.index++,P[0]=l[w.index*c],P[1]=l[w.index*c+1],P[2]=c>=3?l[w.index*c+2]:0;var M=s?a.project(P):P,D=de()(M,2),C=D[0],T=D[1];if(Number.isFinite(C)&&Number.isFinite(T)){var E=Math.floor((T+f[1])/p.yOffset),j=Math.floor((C+f[0])/p.xOffset);if(!s||j>=0&&j<y&&E>=0&&E<x){var R="".concat(E,"-").concat(j);b[R]=b[R]||{count:0,points:[],lonIdx:j,latIdx:E},b[R].count+=1,b[R].points.push({source:_,index:w.index})}}}}catch(e){A.e(e)}finally{A.f()}return{gridHash:b,gridOffset:p,offsets:[-1*f[0],-1*f[1]]}}(e,t),r=function(e){var t=e.gridHash,n=e.gridOffset,r=e.offsets,i=new Array(Object.keys(t).length),o=0;for(var a in t){var s=a.split("-"),u=parseInt(s[0],10),l=parseInt(s[1],10),c=o++;i[c]=Ge({index:c,position:[r[0]+n.xOffset*l,r[1]+n.yOffset*u]},t[a])}return i}(n);return{gridHash:n.gridHash,gridOffset:n.gridOffset,data:r}}function Ye(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Xe(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Xe(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function Xe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ke(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=d()(e);if(t){var i=d()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return f()(this,n)}}var $e=function(e){c()(n,e);var t=Ke(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"initializeState",value:function(e){var t=e.dimensions,r=this.context.gl;u()(d()(n.prototype),"initializeState",this).call(this,t),this.setState({layerData:{},gpuGridAggregator:new K(r,{id:"".concat(this.id,"-gpu-aggregator")}),cpuGridAggregator:qe})}},{key:"updateState",value:function(e){u()(d()(n.prototype),"updateState",this).call(this,e),this.updateAggregationState(e);var t=this.state,r=t.aggregationDataDirty,i=t.aggregationWeightsDirty,o=t.gpuAggregation;if(!(this.getNumInstances()<=0)){var a=!1;(r||o&&i)&&(this._updateAggregation(e),a=!0),o||!r&&!i||(this._updateWeightBins(),this._uploadAggregationResults(),a=!0),this.setState({aggregationDirty:a})}}},{key:"finalizeState",value:function(){var e,t=this.state.weights.count;t&&t.aggregationBuffer&&t.aggregationBuffer.delete(),null===(e=this.state.gpuGridAggregator)||void 0===e||e.delete(),u()(d()(n.prototype),"finalizeState",this).call(this)}},{key:"updateShaders",value:function(e){this.state.gpuAggregation&&this.state.gpuGridAggregator.updateShaders(e)}},{key:"updateAggregationState",value:function(e){m.log.assert(!1)}},{key:"allocateResources",value:function(e,t){if(this.state.numRow!==e||this.state.numCol!==t){var n=t*e*4*4,r=this.context.gl,i=this.state.weights;for(var o in i){var a=i[o];a.aggregationBuffer&&a.aggregationBuffer.delete(),a.aggregationBuffer=new y.Buffer(r,{byteLength:n,accessor:{size:4,type:5126,divisor:1}})}}}},{key:"updateResults",value:function(e){var t=e.aggregationData,n=e.maxMinData,r=e.maxData,i=e.minData,o=this.state.weights.count;o&&(o.aggregationData=t,o.maxMinData=n,o.maxData=r,o.minData=i)}},{key:"_updateAggregation",value:function(e){var t=this.state,n=t.cpuGridAggregator,r=t.gpuGridAggregator,i=t.gridOffset,o=t.posOffset,a=t.translation,s=void 0===a?[0,0]:a,u=t.scaling,l=void 0===u?[0,0,0]:u,c=t.boundingBox,g=t.projectPoints,f=t.gpuAggregation,p=t.numCol,d=t.numRow,h=e.props,v=this.context.viewport,m=this.getAttributes(),y=this.getNumInstances();if(f){var x=this.state.weights;r.run({weights:x,cellSize:[i.xOffset,i.yOffset],numCol:p,numRow:d,translation:s,scaling:l,vertexCount:y,projectPoints:g,attributes:m,moduleSettings:this.getModuleSettings()})}else{var b=n(h,{gridOffset:i,projectPoints:g,attributes:m,viewport:v,posOffset:o,boundingBox:c});this.setState({layerData:b})}}},{key:"_updateWeightBins",value:function(){var e=this.state.getValue,t=new Ne(this.state.layerData.data||[],{getValue:e});this.setState({sortedBins:t})}},{key:"_uploadAggregationResults",value:function(){var e,t=this.state,n=t.numCol,r=t.numRow,i=this.state.layerData.data,o=this.state.sortedBins,a=o.aggregatedBins,s=o.minValue,u=o.maxValue,l=o.totalCount,c=new Float32Array(n*r*4).fill(0),g=Ye(a);try{for(g.s();!(e=g.n()).done;){var f=e.value,p=i[f.i],d=p.lonIdx,h=p.latIdx,v=f.value,m=f.counts,y=4*(d+h*n);c[y]=v,c[y+4-1]=m}}catch(e){g.e(e)}finally{g.f()}var x=new Float32Array([u,0,0,s]),b=new Float32Array([u,0,0,l]),S=new Float32Array([s,0,0,l]);this.updateResults({aggregationData:c,maxMinData:x,maxData:b,minData:S})}}]),n}(fe);function Qe(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=d()(e);if(t){var i=d()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return f()(this,n)}}function Ze(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Je(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ze(Object(n),!0).forEach((function(t){v()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ze(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}$e.layerName="GridAggregationLayer";var et=Je(Je({},se.defaultProps),{},{getPosition:{type:"accessor",value:function(e){return e.position}},getWeight:{type:"accessor",value:1},gpuAggregation:!0,aggregation:"SUM"}),tt={data:{props:["cellSizePixels"]},weights:{props:["aggregation"],accessors:["getWeight"]}},nt=function(e){c()(n,e);var t=Qe(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"initializeState",value:function(){var e,t=this.context.gl;if(!se.isSupported(t))return this.setState({supported:!1}),void m.log.error("ScreenGridLayer: ".concat(this.id," is not supported on this browser"))();u()(d()(n.prototype),"initializeState",this).call(this,{dimensions:tt,getCellSize:function(e){return e.cellSizePixels}});var r={count:{size:1,operation:_.SUM,needMax:!0,maxTexture:U(t,{id:"".concat(this.id,"-max-texture")})}};this.setState({supported:!0,projectPoints:!0,weights:r,subLayerData:{attributes:{}},maxTexture:r.count.maxTexture,positionAttributeName:"positions",posOffset:[0,0],translation:[1,-1]}),this.getAttributeManager().add((e={},v()(e,"positions",{size:3,accessor:"getPosition",type:5130,fp64:this.use64bitPositions()}),v()(e,"count",{size:3,accessor:"getWeight"}),e))}},{key:"shouldUpdateState",value:function(e){var t=e.changeFlags;return this.state.supported&&t.somethingChanged}},{key:"updateState",value:function(e){u()(d()(n.prototype),"updateState",this).call(this,e)}},{key:"renderLayers",value:function(){if(!this.state.supported)return[];var e=this.state,t=e.maxTexture,n=e.numRow,r=e.numCol,i=e.weights,o=this.props.updateTriggers,a=i.count.aggregationBuffer;return new(this.getSubLayerClass("cells",se))(this.props,this.getSubLayerProps({id:"cell-layer",updateTriggers:o}),{data:{attributes:{instanceCounts:a}},maxTexture:t,numInstances:n*r})}},{key:"finalizeState",value:function(){u()(d()(n.prototype),"finalizeState",this).call(this);var e=this.state,t=e.aggregationBuffer,r=e.maxBuffer,i=e.maxTexture;null==t||t.delete(),null==r||r.delete(),null==i||i.delete()}},{key:"getPickingInfo",value:function(e){var t=e.info,n=(e.mode,t.index);if(n>=0){var r=this.state,i=r.gpuGridAggregator,o=r.gpuAggregation,a=r.weights,s=o?i.getData("count"):a.count;t.object=K.getAggregationData(Je({pixelIndex:n},s))}return t}},{key:"updateResults",value:function(e){var t=e.aggregationData,n=e.maxData,r=this.state.weights.count;r.aggregationData=t,r.aggregationBuffer.setData({data:t}),r.maxData=n,r.maxTexture.setImageData({data:n})}},{key:"updateAggregationState",value:function(e){var t=e.props.cellSizePixels,n=e.oldProps.cellSizePixels!==t,r=e.changeFlags.viewportChanged,i=e.props.gpuAggregation;this.state.gpuAggregation!==e.props.gpuAggregation&&i&&!K.isSupported(this.context.gl)&&(m.log.warn("GPU Grid Aggregation not supported, falling back to CPU")(),i=!1);var o=i!==this.state.gpuAggregation;this.setState({gpuAggregation:i});var a=this.isAttributeChanged("positions"),s=this.state.dimensions,u=s.data,l=s.weights,c=a||o||r||this.isAggregationDirty(e,{compareAll:i,dimension:u}),g=this.isAggregationDirty(e,{dimension:l});this.setState({aggregationDataDirty:c,aggregationWeightsDirty:g});var f=this.context.viewport;if(r||n){var p=f.width,d=f.height,h=Math.ceil(p/t),v=Math.ceil(d/t);this.allocateResources(v,h),this.setState({scaling:[p/2,-d/2,1],gridOffset:{xOffset:t,yOffset:t},width:p,height:d,numCol:h,numRow:v})}g&&this._updateAccessors(e),(c||g)&&this._resetResults()}},{key:"_updateAccessors",value:function(e){var t=e.props,n=t.getWeight,r=t.aggregation,i=t.data,o=this.state.weights.count;o&&(o.getWeight=n,o.operation=_[r]),this.setState({getValue:T(r,n,{data:i})})}},{key:"_resetResults",value:function(){var e=this.state.weights.count;e&&(e.aggregationData=null)}}]),n}($e);nt.layerName="ScreenGridLayer",nt.defaultProps=et;var rt=n(10),it=n.n(rt);function ot(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function at(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ot(Object(n),!0).forEach((function(t){v()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ot(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function st(){}var ut=["getBins","getDomain","getScaleFunc"],lt=[{key:"fillColor",accessor:"getFillColor",pickingInfo:"colorValue",getBins:{triggers:{value:{prop:"getColorValue",updateTrigger:"getColorValue"},weight:{prop:"getColorWeight",updateTrigger:"getColorWeight"},aggregation:{prop:"colorAggregation"},filterData:{prop:"_filterData",updateTrigger:"_filterData"}}},getDomain:{triggers:{lowerPercentile:{prop:"lowerPercentile"},upperPercentile:{prop:"upperPercentile"},scaleType:{prop:"colorScaleType"}}},getScaleFunc:{triggers:{domain:{prop:"colorDomain"},range:{prop:"colorRange"}},onSet:{props:"onSetColorDomain"}},nullValue:[0,0,0,0]},{key:"elevation",accessor:"getElevation",pickingInfo:"elevationValue",getBins:{triggers:{value:{prop:"getElevationValue",updateTrigger:"getElevationValue"},weight:{prop:"getElevationWeight",updateTrigger:"getElevationWeight"},aggregation:{prop:"elevationAggregation"},filterData:{prop:"_filterData",updateTrigger:"_filterData"}}},getDomain:{triggers:{lowerPercentile:{prop:"elevationLowerPercentile"},upperPercentile:{prop:"elevationUpperPercentile"},scaleType:{prop:"elevationScaleType"}}},getScaleFunc:{triggers:{domain:{prop:"elevationDomain"},range:{prop:"elevationRange"}},onSet:{props:"onSetElevationDomain"}},nullValue:-1}],ct=function(e){return e.cellSize},gt=function(){function e(t){i()(this,e),this.state={layerData:{},dimensions:{}},this.changeFlags={},this.dimensionUpdaters={},this._getCellSize=t.getCellSize||ct,this._getAggregator=t.getAggregator,this._addDimension(t.dimensions||lt)}return a()(e,[{key:"updateState",value:function(e,t){var n=e.oldProps,r=e.props,i=e.changeFlags;this.updateGetValueFuncs(n,r,i);var o=this.needsReProjectPoints(n,r,i),a=!1;i.dataChanged||o?(this.getAggregatedData(r,t),a=!0):((this.getDimensionChanges(n,r,i)||[]).forEach((function(e){return"function"==typeof e&&e()})),a=!0);return this.setState({aggregationDirty:a}),this.state}},{key:"setState",value:function(e){this.state=at(at({},this.state),e)}},{key:"setDimensionState",value:function(e,t){this.setState({dimensions:at(at({},this.state.dimensions),{},v()({},e,at(at({},this.state.dimensions[e]),t)))})}},{key:"normalizeResult",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.hexagons?at({data:e.hexagons},e):e.layerData?at({data:e.layerData},e):e}},{key:"getAggregatedData",value:function(e,t){var n=this._getAggregator(e)(e,t);this.setState({layerData:this.normalizeResult(n)}),this.changeFlags={layerData:!0},this.getSortedBins(e)}},{key:"updateGetValueFuncs",value:function(e,t,n){for(var r in this.dimensionUpdaters){var i=this.dimensionUpdaters[r].getBins.triggers,o=i.value,a=i.weight,s=i.aggregation,u=t[o.prop];this.needUpdateDimensionStep(this.dimensionUpdaters[r].getBins,e,t,n)&&(u=u?E(u,{data:t.data}):T(t[s.prop],t[a.prop],{data:t.data})),u&&this.setDimensionState(r,{getValue:u})}}},{key:"needsReProjectPoints",value:function(e,t,n){return this._getCellSize(e)!==this._getCellSize(t)||this._getAggregator(e)!==this._getAggregator(t)||n.updateTriggersChanged&&(n.updateTriggersChanged.all||n.updateTriggersChanged.getPosition)}},{key:"addDimension",value:function(e){this._addDimension(e)}},{key:"_addDimension",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];t.forEach((function(t){var n=t.key;e.dimensionUpdaters[n]=e.getDimensionUpdaters(t),e.state.dimensions[n]={getValue:null,domain:null,sortedBins:null,scaleFunc:st}}))}},{key:"getDimensionUpdaters",value:function(e){var t=e.key,n=e.accessor,r=e.pickingInfo,i=e.getBins,o=e.getDomain,a=e.getScaleFunc,s=e.nullValue;return{key:t,accessor:n,pickingInfo:r,getBins:at({updater:this.getDimensionSortedBins},i),getDomain:at({updater:this.getDimensionValueDomain},o),getScaleFunc:at({updater:this.getDimensionScale},a),attributeAccessor:this.getSubLayerDimensionAttribute(t,s)}}},{key:"needUpdateDimensionStep",value:function(e,t,n,r){return Object.values(e.triggers).some((function(e){return e.updateTrigger?r.dataChanged||r.updateTriggersChanged&&(r.updateTriggersChanged.all||r.updateTriggersChanged[e.updateTrigger]):t[e.prop]!==n[e.prop]}))}},{key:"getDimensionChanges",value:function(e,t,n){var r=this,i=[],o=function(o){var a=ut.find((function(i){return r.needUpdateDimensionStep(r.dimensionUpdaters[o][i],e,t,n)}));a&&i.push(r.dimensionUpdaters[o][a].updater.bind(r,t,r.dimensionUpdaters[o]))};for(var a in this.dimensionUpdaters)o(a);return i.length?i:null}},{key:"getUpdateTriggers",value:function(e){var t=this,n=e.updateTriggers||{},r={},i=function(i){var o=t.dimensionUpdaters[i].accessor;r[o]={},ut.forEach((function(a){Object.values(t.dimensionUpdaters[i][a].triggers).forEach((function(t){var i=t.prop,a=t.updateTrigger;if(a){var s=n[a];"object"!==it()(s)||Array.isArray(s)?void 0!==s&&(r[o][i]=s):Object.assign(r[o],s)}else r[o][i]=e[i]}))}))};for(var o in this.dimensionUpdaters)i(o);return r}},{key:"getSortedBins",value:function(e){for(var t in this.dimensionUpdaters)this.getDimensionSortedBins(e,this.dimensionUpdaters[t])}},{key:"getDimensionSortedBins",value:function(e,t){var n=t.key,r=this.state.dimensions[n].getValue,i=new Ne(this.state.layerData.data||[],{getValue:r,filterData:e._filterData});this.setDimensionState(n,{sortedBins:i}),this.getDimensionValueDomain(e,t)}},{key:"getDimensionValueDomain",value:function(e,t){var n=t.getDomain,r=t.key,i=n.triggers,o=i.lowerPercentile,a=i.upperPercentile,s=i.scaleType,u=this.state.dimensions[r].sortedBins.getValueDomainByScale(e[s.prop],[e[o.prop],e[a.prop]]);this.setDimensionState(r,{valueDomain:u}),this.getDimensionScale(e,t)}},{key:"getDimensionScale",value:function(e,t){var n=t.key,r=t.getScaleFunc,i=t.getDomain,o=r.triggers,a=o.domain,s=o.range,u=i.triggers.scaleType,l=r.onSet,c=e[s.prop],g=e[a.prop]||this.state.dimensions[n].valueDomain,f=function(e){switch(e){case"quantize":return ye;case"linear":return xe;case"quantile":return be;case"ordinal":return we;default:return ye}}(u&&e[u.prop])(g,c);"object"===it()(l)&&"function"==typeof e[l.props]&&e[l.props](f.domain()),this.setDimensionState(n,{scaleFunc:f})}},{key:"getSubLayerDimensionAttribute",value:function(e,t){var n=this;return function(r){var i=n.state.dimensions[e],o=i.sortedBins,a=i.scaleFunc,s=o.binMap[r.index];if(s&&0===s.counts)return t;var u=s&&s.value,l=a.domain();return u>=l[0]&&u<=l[l.length-1]?a(u):t}}},{key:"getSubLayerAccessors",value:function(e){var t={};for(var n in this.dimensionUpdaters){t[this.dimensionUpdaters[n].accessor]=this.getSubLayerDimensionAttribute(e,n)}return t}},{key:"getPickingInfo",value:function(e){var t=e.info,n=null;if(t.picked&&t.index>-1){var r=this.state.layerData.data[t.index],i={};for(var o in this.dimensionUpdaters){var a=this.dimensionUpdaters[o].pickingInfo,s=this.state.dimensions[o].sortedBins,u=s.binMap[r.index]&&s.binMap[r.index].value;i[a]=u}n=Object.assign(i,r,{points:r.filteredPoints||r.points})}return t.picked=Boolean(n),t.object=n,t}},{key:"getAccessor",value:function(e){return this.dimensionUpdaters.hasOwnProperty(e)?this.dimensionUpdaters[e].attributeAccessor:st}}],[{key:"defaultDimensions",value:function(){return lt}}]),e}();function ft(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=d()(e);if(t){var i=d()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return f()(this,n)}}function pt(){}var dt={colorDomain:null,colorRange:Z,getColorValue:{type:"accessor",value:null},getColorWeight:{type:"accessor",value:1},colorAggregation:"SUM",lowerPercentile:{type:"number",min:0,max:100,value:0},upperPercentile:{type:"number",min:0,max:100,value:100},colorScaleType:"quantize",onSetColorDomain:pt,elevationDomain:null,elevationRange:[0,1e3],getElevationValue:{type:"accessor",value:null},getElevationWeight:{type:"accessor",value:1},elevationAggregation:"SUM",elevationLowerPercentile:{type:"number",min:0,max:100,value:0},elevationUpperPercentile:{type:"number",min:0,max:100,value:100},elevationScale:{type:"number",min:0,value:1},elevationScaleType:"linear",onSetElevationDomain:pt,gridAggregator:qe,cellSize:{type:"number",min:0,max:1e3,value:1e3},coverage:{type:"number",min:0,max:1,value:1},getPosition:{type:"accessor",value:function(e){return e.position}},extruded:!1,material:!0,_filterData:{type:"function",value:null,optional:!0}},ht=function(e){c()(n,e);var t=ft(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"initializeState",value:function(){var e=new gt({getAggregator:function(e){return e.gridAggregator},getCellSize:function(e){return e.cellSize}});this.state={cpuAggregator:e,aggregatorState:e.state},this.getAttributeManager().add({positions:{size:3,type:5130,accessor:"getPosition"}})}},{key:"updateState",value:function(e){u()(d()(n.prototype),"updateState",this).call(this,e),this.setState({aggregatorState:this.state.cpuAggregator.updateState(e,{viewport:this.context.viewport,attributes:this.getAttributes(),numInstances:this.getNumInstances(e.props)})})}},{key:"getPickingInfo",value:function(e){var t=e.info;return this.state.cpuAggregator.getPickingInfo({info:t})}},{key:"_onGetSublayerColor",value:function(e){return this.state.cpuAggregator.getAccessor("fillColor")(e)}},{key:"_onGetSublayerElevation",value:function(e){return this.state.cpuAggregator.getAccessor("elevation")(e)}},{key:"_getSublayerUpdateTriggers",value:function(){return this.state.cpuAggregator.getUpdateTriggers(this.props)}},{key:"renderLayers",value:function(){var e=this.props,t=e.elevationScale,n=e.extruded,r=e.cellSize,i=e.coverage,o=e.material,a=e.transitions,s=this.state.cpuAggregator,u=this.getSubLayerClass("grid-cell",m.GridCellLayer),l=this._getSublayerUpdateTriggers();return new u({cellSize:r,coverage:i,material:o,elevationScale:t,extruded:n,getFillColor:this._onGetSublayerColor.bind(this),getElevation:this._onGetSublayerElevation.bind(this),transitions:a&&{getFillColor:a.getColorValue||a.getColorWeight,getElevation:a.getElevationValue||a.getElevationWeight}},this.getSubLayerProps({id:"grid-cell",updateTriggers:l}),{data:s.state.layerData.data})}}]),n}(fe);ht.layerName="CPUGridLayer",ht.defaultProps=dt;var vt=Math.PI/3,mt=[0,vt,2*vt,3*vt,4*vt,5*vt];function yt(e){return e[0]}function xt(e){return e[1]}function bt(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return St(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return St(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function St(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ot(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function wt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ot(Object(n),!0).forEach((function(t){v()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ot(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Pt(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=d()(e);if(t){var i=d()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return f()(this,n)}}function At(){}var _t,Mt={colorDomain:null,colorRange:Z,getColorValue:{type:"accessor",value:null},getColorWeight:{type:"accessor",value:1},colorAggregation:"SUM",lowerPercentile:{type:"number",value:0,min:0,max:100},upperPercentile:{type:"number",value:100,min:0,max:100},colorScaleType:"quantize",onSetColorDomain:At,elevationDomain:null,elevationRange:[0,1e3],getElevationValue:{type:"accessor",value:null},getElevationWeight:{type:"accessor",value:1},elevationAggregation:"SUM",elevationLowerPercentile:{type:"number",value:0,min:0,max:100},elevationUpperPercentile:{type:"number",value:100,min:0,max:100},elevationScale:{type:"number",min:0,value:1},elevationScaleType:"linear",onSetElevationDomain:At,radius:{type:"number",value:1e3,min:1},coverage:{type:"number",min:0,max:1,value:1},extruded:!1,hexagonAggregator:function(e,t){var n,r=e.data,i=e.radius,o=t.viewport,a=t.attributes,s=r.length?function(e,t){var n,r=t.attributes,i=r.positions.value,o=r.positions.getAccessor().size,a=1/0,s=1/0,u=-1/0,l=-1/0;for(n=0;n<o*e.length;n+=o){var c=i[n],g=i[n+1];Number.isFinite(c)&&Number.isFinite(g)&&(a=Math.min(c,a),u=Math.max(c,u),s=Math.min(g,s),l=Math.max(g,l))}return[a,s,u,l].every(Number.isFinite)?[(a+u)/2,(s+l)/2]:null}(r,t):null,u=function(e,t,n){var r=t.getDistanceScales(n).unitsPerMeter;return e*r[0]}(i,o,s),l=[],c=Object(m.createIterable)(r),g=c.iterable,f=c.objectInfo,p=a.positions.value,d=a.positions.getAccessor().size,h=bt(g);try{for(h.s();!(n=h.n()).done;){var v=n.value;f.index++;var y=f.index*d,x=[p[y],p[y+1]];Number.isFinite(x[0])&&Number.isFinite(x[1])?l.push({screenCoord:o.projectFlat(x),source:v,index:f.index}):m.log.warn("HexagonLayer: invalid position")()}}catch(e){h.e(e)}finally{h.f()}return{hexagons:function(){var e,t,n,r=0,i=0,o=1,a=1,s=yt,u=xt;function l(e){var r,i={},o=[],a=e.length;for(r=0;r<a;++r)if(!isNaN(c=+s.call(null,l=e[r],r,e))&&!isNaN(g=+u.call(null,l,r,e))){var l,c,g,f=Math.round(g/=n),p=Math.round(c=c/t-(1&f)/2),d=g-f;if(3*Math.abs(d)>1){var h=c-p,v=p+(c<p?-1:1)/2,m=f+(g<f?-1:1),y=c-v,x=g-m;h*h+d*d>y*y+x*x&&(p=v+(1&f?1:-1)/2,f=m)}var b=p+"-"+f,S=i[b];S?S.push(l):(o.push(S=i[b]=[l]),S.x=(p+(1&f)/2)*t,S.y=f*n)}return o}function c(e){var t=0,n=0;return mt.map((function(r){var i=Math.sin(r)*e,o=-Math.cos(r)*e,a=i-t,s=o-n;return t=i,n=o,[a,s]}))}return l.hexagon=function(t){return"m"+c(null==t?e:+t).join("l")+"z"},l.centers=function(){for(var s=[],u=Math.round(i/n),l=Math.round(r/t),c=u*n;c<a+e;c+=n,++u)for(var g=l*t+(1&u)*t/2;g<o+t/2;g+=t)s.push([g,c]);return s},l.mesh=function(){var t=c(e).slice(0,4).join("l");return l.centers().map((function(e){return"M"+e+"m"+t})).join("")},l.x=function(e){return arguments.length?(s=e,l):s},l.y=function(e){return arguments.length?(u=e,l):u},l.radius=function(r){return arguments.length?(t=2*(e=+r)*Math.sin(vt),n=1.5*e,l):e},l.size=function(e){return arguments.length?(r=i=0,o=+e[0],a=+e[1],l):[o-r,a-i]},l.extent=function(e){return arguments.length?(r=+e[0][0],i=+e[0][1],o=+e[1][0],a=+e[1][1],l):[[r,i],[o,a]]},l.radius(1)}().radius(u).x((function(e){return e.screenCoord[0]})).y((function(e){return e.screenCoord[1]}))(l).map((function(e,t){return{position:o.unprojectFlat([e.x,e.y]),points:e,index:t}})),radiusCommon:u}},getPosition:{type:"accessor",value:function(e){return e.position}},material:!0,_filterData:{type:"function",value:null,optional:!0}},Dt=function(e){c()(n,e);var t=Pt(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"initializeState",value:function(){var e=new gt({getAggregator:function(e){return e.hexagonAggregator},getCellSize:function(e){return e.radius}});this.state={cpuAggregator:e,aggregatorState:e.state,vertices:null},this.getAttributeManager().add({positions:{size:3,type:5130,accessor:"getPosition"}})}},{key:"updateState",value:function(e){if(u()(d()(n.prototype),"updateState",this).call(this,e),e.changeFlags.propsOrDataChanged){var t=this.state.cpuAggregator.updateState(e,{viewport:this.context.viewport,attributes:this.getAttributes()});if(this.state.aggregatorState.layerData!==t.layerData){var r=(t.layerData||{}).hexagonVertices;this.setState({vertices:r&&this.convertLatLngToMeterOffset(r)})}this.setState({aggregatorState:t})}}},{key:"convertLatLngToMeterOffset",value:function(e){var t=this.context.viewport;if(Array.isArray(e)&&6===e.length){var n=e[0],r=e[3],i=[(n[0]+r[0])/2,(n[1]+r[1])/2],o=t.projectFlat(i),a=t.getDistanceScales(i).metersPerUnit;return e.map((function(e){var n=t.projectFlat(e);return[(n[0]-o[0])*a[0],(n[1]-o[1])*a[1]]}))}return m.log.error("HexagonLayer: hexagonVertices needs to be an array of 6 points")(),null}},{key:"getPickingInfo",value:function(e){var t=e.info;return this.state.cpuAggregator.getPickingInfo({info:t})}},{key:"_onGetSublayerColor",value:function(e){return this.state.cpuAggregator.getAccessor("fillColor")(e)}},{key:"_onGetSublayerElevation",value:function(e){return this.state.cpuAggregator.getAccessor("elevation")(e)}},{key:"_getSublayerUpdateTriggers",value:function(){return this.state.cpuAggregator.getUpdateTriggers(this.props)}},{key:"renderLayers",value:function(){var e=this.props,t=e.elevationScale,n=e.extruded,r=e.coverage,i=e.material,o=e.transitions,a=this.state,s=a.aggregatorState,u=a.vertices,l=this.getSubLayerClass("hexagon-cell",m.ColumnLayer),c=this._getSublayerUpdateTriggers();return new l(wt(wt({},u?{vertices:u,radius:1}:{radius:s.layerData.radiusCommon||1,radiusUnits:"common",angle:90}),{},{diskResolution:6,elevationScale:t,extruded:n,coverage:r,material:i,getFillColor:this._onGetSublayerColor.bind(this),getElevation:this._onGetSublayerElevation.bind(this),transitions:o&&{getFillColor:o.getColorValue||o.getColorWeight,getElevation:o.getElevationValue||o.getElevationWeight}}),this.getSubLayerProps({id:"hexagon-cell",updateTriggers:c}),{data:s.layerData.data})}}]),n}(fe);Dt.layerName="HexagonLayer",Dt.defaultProps=Mt;var Ct={N:[0,.5],E:[.5,0],S:[0,-.5],W:[-.5,0],NE:[.5,.5],NW:[-.5,.5],SE:[.5,-.5],SW:[-.5,-.5]},Tt=[Ct.W,Ct.SW,Ct.S],Et=[Ct.S,Ct.SE,Ct.E],jt=[Ct.E,Ct.NE,Ct.N],Rt=[Ct.NW,Ct.W,Ct.N],kt=[[-.5,1/6],[-.5,-1/6],[-1/6,-.5],[1/6,-.5]],Nt=[[-1/6,-.5],[1/6,-.5],[.5,-1/6],[.5,1/6]],zt=[[.5,-1/6],[.5,1/6],[1/6,.5],[-1/6,.5]],It=[[-.5,1/6],[-.5,-1/6],[1/6,.5],[-1/6,.5]],Bt=[Ct.W,Ct.SW,Ct.SE,Ct.E],Ft=[Ct.S,Ct.SE,Ct.NE,Ct.N],Ut=[Ct.NW,Ct.W,Ct.E,Ct.NE],Lt=[Ct.NW,Ct.SW,Ct.S,Ct.N],Wt=[[-.5,1/6],[-.5,-1/6],[.5,-1/6],[.5,1/6]],Gt=[[-1/6,-.5],[1/6,-.5],[1/6,.5],[-1/6,.5]],Vt=[Ct.NW,Ct.SW,Ct.SE,Ct.NE],Ht=[Ct.NW,Ct.SW,Ct.SE,Ct.E,Ct.N],qt=[Ct.W,Ct.SW,Ct.SE,Ct.NE,Ct.N],Yt=[Ct.NW,Ct.W,Ct.S,Ct.SE,Ct.NE],Xt=[Ct.NW,Ct.SW,Ct.S,Ct.E,Ct.NE],Kt=[Ct.NW,Ct.W,[.5,-1/6],[.5,1/6],Ct.N],$t=[[-1/6,-.5],[1/6,-.5],Ct.E,Ct.NE,Ct.N],Qt=[[-.5,1/6],[-.5,-1/6],Ct.S,Ct.SE,Ct.E],Zt=[Ct.W,Ct.SW,Ct.S,[1/6,.5],[-1/6,.5]],Jt=[Ct.NW,Ct.W,[-1/6,-.5],[1/6,-.5],Ct.N],en=[[-.5,1/6],[-.5,-1/6],Ct.E,Ct.NE,Ct.N],tn=[Ct.S,Ct.SE,Ct.E,[1/6,.5],[-1/6,.5]],nn=[Ct.W,Ct.SW,Ct.S,[.5,-1/6],[.5,1/6]],rn=[Ct.W,Ct.SW,Ct.SE,Ct.E,[1/6,.5],[-1/6,.5]],on=[[-.5,1/6],[-.5,-1/6],Ct.S,Ct.SE,Ct.NE,Ct.N],an=[Ct.NW,Ct.W,[-1/6,-.5],[1/6,-.5],Ct.E,Ct.NE],sn=[Ct.NW,Ct.SW,Ct.S,[.5,-1/6],[.5,1/6],Ct.N],un=[Ct.W,Ct.SW,Ct.S,Ct.E,Ct.NE,Ct.N],ln=[Ct.NW,Ct.W,Ct.S,Ct.SE,Ct.E,Ct.N],cn=[[-.5,1/6],[-.5,-1/6],[-1/6,-.5],[1/6,-.5],Ct.E,Ct.NE,Ct.N],gn=[Ct.W,Ct.SW,Ct.S,[.5,-1/6],[.5,1/6],[1/6,.5],[-1/6,.5]],fn=[Ct.NW,Ct.W,[-1/6,-.5],[1/6,-.5],[.5,-1/6],[.5,1/6],Ct.N],pn=[[-.5,1/6],[-.5,-1/6],Ct.S,Ct.SE,Ct.E,[1/6,.5],[-1/6,.5]],dn=[[-.5,1/6],[-.5,-1/6],[-1/6,-.5],[1/6,-.5],[.5,-1/6],[.5,1/6],[1/6,.5],[-1/6,.5]],hn={0:[],1:[[Ct.W,Ct.S]],2:[[Ct.S,Ct.E]],3:[[Ct.W,Ct.E]],4:[[Ct.N,Ct.E]],5:{0:[[Ct.W,Ct.S],[Ct.N,Ct.E]],1:[[Ct.W,Ct.N],[Ct.S,Ct.E]]},6:[[Ct.N,Ct.S]],7:[[Ct.W,Ct.N]],8:[[Ct.W,Ct.N]],9:[[Ct.N,Ct.S]],10:{0:[[Ct.W,Ct.N],[Ct.S,Ct.E]],1:[[Ct.W,Ct.S],[Ct.N,Ct.E]]},11:[[Ct.N,Ct.E]],12:[[Ct.W,Ct.E]],13:[[Ct.S,Ct.E]],14:[[Ct.W,Ct.S]],15:[]};function vn(e){return parseInt(e,4)}var mn=(_t={},v()(_t,vn("0000"),[]),v()(_t,vn("2222"),[]),v()(_t,vn("2221"),[Tt]),v()(_t,vn("2212"),[Et]),v()(_t,vn("2122"),[jt]),v()(_t,vn("1222"),[Rt]),v()(_t,vn("0001"),[Tt]),v()(_t,vn("0010"),[Et]),v()(_t,vn("0100"),[jt]),v()(_t,vn("1000"),[Rt]),v()(_t,vn("2220"),[kt]),v()(_t,vn("2202"),[Nt]),v()(_t,vn("2022"),[zt]),v()(_t,vn("0222"),[It]),v()(_t,vn("0002"),[kt]),v()(_t,vn("0020"),[Nt]),v()(_t,vn("0200"),[zt]),v()(_t,vn("2000"),[It]),v()(_t,vn("0011"),[Bt]),v()(_t,vn("0110"),[Ft]),v()(_t,vn("1100"),[Ut]),v()(_t,vn("1001"),[Lt]),v()(_t,vn("2211"),[Bt]),v()(_t,vn("2112"),[Ft]),v()(_t,vn("1122"),[Ut]),v()(_t,vn("1221"),[Lt]),v()(_t,vn("2200"),[Wt]),v()(_t,vn("2002"),[Gt]),v()(_t,vn("0022"),[Wt]),v()(_t,vn("0220"),[Gt]),v()(_t,vn("1111"),[Vt]),v()(_t,vn("1211"),[Ht]),v()(_t,vn("2111"),[qt]),v()(_t,vn("1112"),[Yt]),v()(_t,vn("1121"),[Xt]),v()(_t,vn("1011"),[Ht]),v()(_t,vn("0111"),[qt]),v()(_t,vn("1110"),[Yt]),v()(_t,vn("1101"),[Xt]),v()(_t,vn("1200"),[Kt]),v()(_t,vn("0120"),[$t]),v()(_t,vn("0012"),[Qt]),v()(_t,vn("2001"),[Zt]),v()(_t,vn("1022"),[Kt]),v()(_t,vn("2102"),[$t]),v()(_t,vn("2210"),[Qt]),v()(_t,vn("0221"),[Zt]),v()(_t,vn("1002"),[Jt]),v()(_t,vn("2100"),[en]),v()(_t,vn("0210"),[tn]),v()(_t,vn("0021"),[nn]),v()(_t,vn("1220"),[Jt]),v()(_t,vn("0122"),[en]),v()(_t,vn("2012"),[tn]),v()(_t,vn("2201"),[nn]),v()(_t,vn("0211"),[rn]),v()(_t,vn("2110"),[on]),v()(_t,vn("1102"),[an]),v()(_t,vn("1021"),[sn]),v()(_t,vn("2011"),[rn]),v()(_t,vn("0112"),[on]),v()(_t,vn("1120"),[an]),v()(_t,vn("1201"),[sn]),v()(_t,vn("2101"),[un]),v()(_t,vn("0121"),[un]),v()(_t,vn("1012"),[ln]),v()(_t,vn("1210"),[ln]),v()(_t,vn("0101"),{0:[Tt,jt],1:[un],2:[un]}),v()(_t,vn("1010"),{0:[Rt,Et],1:[ln],2:[ln]}),v()(_t,vn("2121"),{0:[un],1:[un],2:[Tt,jt]}),v()(_t,vn("1212"),{0:[ln],1:[ln],2:[Rt,Et]}),v()(_t,vn("2120"),{0:[cn],1:[cn],2:[kt,jt]}),v()(_t,vn("2021"),{0:[gn],1:[gn],2:[Tt,zt]}),v()(_t,vn("1202"),{0:[fn],1:[fn],2:[Rt,Nt]}),v()(_t,vn("0212"),{0:[pn],1:[pn],2:[Et,It]}),v()(_t,vn("0102"),{0:[kt,jt],1:[cn],2:[cn]}),v()(_t,vn("0201"),{0:[Tt,zt],1:[gn],2:[gn]}),v()(_t,vn("1020"),{0:[Rt,Nt],1:[fn],2:[fn]}),v()(_t,vn("2010"),{0:[Et,It],1:[pn],2:[pn]}),v()(_t,vn("2020"),{0:[It,Nt],1:[dn],2:[kt,zt]}),v()(_t,vn("0202"),{0:[zt,kt],1:[dn],2:[It,Nt]}),_t);function yn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?yn(Object(n),!0).forEach((function(t){v()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var bn=1,Sn=2,On={zIndex:0,zOffset:.005};function wn(e,t){return Array.isArray(t)?e<t[0]?0:e<t[1]?1:2:e>=t?1:0}function Pn(e){var t=e.cellWeights,n=e.x,r=e.y,i=e.width,o=e.height,a=e.threshold;e.thresholdValue&&(m.log.deprecated("thresholdValue","threshold")(),a=e.thresholdValue);var s=n<0,u=n>=i-1,l=r<0,c=r>=o-1,g=s||u||l||c,f={},p={};s||c?p.top=0:(f.top=t[(r+1)*i+n],p.top=wn(f.top,a)),u||c?p.topRight=0:(f.topRight=t[(r+1)*i+n+1],p.topRight=wn(f.topRight,a)),u||l?p.right=0:(f.right=t[r*i+n+1],p.right=wn(f.right,a)),s||l?p.current=0:(f.current=t[r*i+n],p.current=wn(f.current,a));var d=p.top,h=p.topRight,v=p.right,y=p.current,x=-1;Number.isFinite(a)&&(x=d<<3|h<<2|v<<1|y),Array.isArray(a)&&(x=d<<6|h<<4|v<<2|y);var b=0;return g||(b=wn((f.top+f.topRight+f.right+f.current)/4,a)),{code:x,meanCode:b}}function An(e){var t=e.gridOrigin,n=e.cellSize,r=e.x,i=e.y,o=e.code,a=e.meanCode,s=e.type,u=void 0===s?bn:s,l=xn(xn({},On),e.thresholdData),c=u===Sn?mn[o]:hn[o];Array.isArray(c)||(c=c[a]);var g=l.zIndex*l.zOffset,f=(r+1)*n[0],p=(i+1)*n[1],d=t[0]+f,h=t[1]+p;if(u===Sn){var v=[];return c.forEach((function(e){var t=[];e.forEach((function(e){var r=d+e[0]*n[0],i=h+e[1]*n[1];t.push([r,i,g])})),v.push(t)})),v}var m=[];return c.forEach((function(e){e.forEach((function(e){var t=d+e[0]*n[0],r=h+e[1]*n[1];m.push([t,r,g])}))})),m}function _n(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Mn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Mn(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function Mn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Dn(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=d()(e);if(t){var i=d()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return f()(this,n)}}var Cn=[255,255,255,255],Tn={cellSize:{type:"number",min:1,max:1e3,value:1e3},getPosition:{type:"accessor",value:function(e){return e.position}},getWeight:{type:"accessor",value:1},gpuAggregation:!0,aggregation:"SUM",contours:[{threshold:1}],zOffset:.005},En={data:{props:["cellSize"]},weights:{props:["aggregation"],accessors:["getWeight"]}},jn=function(e){c()(n,e);var t=Dn(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"initializeState",value:function(){var e;u()(d()(n.prototype),"initializeState",this).call(this,{dimensions:En}),this.setState({contourData:{},projectPoints:!1,weights:{count:{size:1,operation:_.SUM}}}),this.getAttributeManager().add((e={},v()(e,"positions",{size:3,accessor:"getPosition",type:5130,fp64:this.use64bitPositions()}),v()(e,"count",{size:3,accessor:"getWeight"}),e))}},{key:"updateState",value:function(e){u()(d()(n.prototype),"updateState",this).call(this,e);var t=!1,r=e.oldProps,i=e.props,o=this.state.aggregationDirty;r.contours===i.contours&&r.zOffset===i.zOffset||(t=!0,this._updateThresholdData(e.props)),this.getNumInstances()>0&&(o||t)&&this._generateContours()}},{key:"renderLayers",value:function(){var e=this.state.contourData,t=e.contourSegments,n=e.contourPolygons,r=this.getSubLayerClass("lines",m.LineLayer),i=this.getSubLayerClass("bands",m.SolidPolygonLayer);return[t&&t.length>0&&new r(this.getSubLayerProps({id:"lines"}),{data:this.state.contourData.contourSegments,getSourcePosition:function(e){return e.start},getTargetPosition:function(e){return e.end},getColor:function(e){return e.contour.color||Cn},getWidth:function(e){return e.contour.strokeWidth||1}}),n&&n.length>0&&new i(this.getSubLayerProps({id:"bands"}),{data:this.state.contourData.contourPolygons,getPolygon:function(e){return e.vertices},getFillColor:function(e){return e.contour.color||Cn}})]}},{key:"updateAggregationState",value:function(e){var t=e.props,n=e.oldProps,r=t.cellSize,i=t.coordinateSystem,o=this.context.viewport,a=n.cellSize!==r,s=t.gpuAggregation;this.state.gpuAggregation!==t.gpuAggregation&&s&&!K.isSupported(this.context.gl)&&(m.log.warn("GPU Grid Aggregation not supported, falling back to CPU")(),s=!1);var u=s!==this.state.gpuAggregation;this.setState({gpuAggregation:s});var l=this.state.dimensions,c=this.isAttributeChanged("positions"),g=l.data,f=l.weights,p=this.state.boundingBox;if(c&&(p=Ie(this.getAttributes(),this.getNumInstances()),this.setState({boundingBox:p})),c||a){var d=Ue(p,r,o,i),h=d.gridOffset,v=d.translation,y=d.width,x=d.height,b=d.numCol,S=d.numRow;this.allocateResources(S,b),this.setState({gridOffset:h,boundingBox:p,translation:v,posOffset:v.slice(),gridOrigin:[-1*v[0],-1*v[1]],width:y,height:x,numCol:b,numRow:S})}var O=c||u||this.isAggregationDirty(e,{dimension:g,compareAll:s}),w=this.isAggregationDirty(e,{dimension:f});w&&this._updateAccessors(e),(O||w)&&this._resetResults(),this.setState({aggregationDataDirty:O,aggregationWeightsDirty:w})}},{key:"_updateAccessors",value:function(e){var t=e.props,n=t.getWeight,r=t.aggregation,i=t.data,o=this.state.weights.count;o&&(o.getWeight=n,o.operation=_[r]),this.setState({getValue:T(r,n,{data:i})})}},{key:"_resetResults",value:function(){var e=this.state.weights.count;e&&(e.aggregationData=null)}},{key:"_generateContours",value:function(){var e=this.state,t=e.numCol,n=e.numRow,r=e.gridOrigin,i=e.gridOffset,o=e.thresholdData,a=this.state.weights.count,s=a.aggregationData;s||(s=a.aggregationBuffer.getData(),a.aggregationData=s);var u=function(e){var t,n=e.thresholdData,r=(e.colors,e.cellWeights),i=e.gridSize,o=e.gridOrigin,a=e.cellSize,s=[],u=[],l=i[0],c=i[1],g=0,f=0,p=_n(n);try{for(p.s();!(t=p.n()).done;)for(var d=t.value,h=d.contour,v=h.threshold,m=-1;m<l;m++)for(var y=-1;y<c;y++){var x=Pn({cellWeights:r,threshold:v,x:m,y:y,width:l,height:c}),b={gridOrigin:o,cellSize:a,x:m,y:y,width:l,height:c,code:x.code,meanCode:x.meanCode,thresholdData:d};if(Array.isArray(v)){b.type=Sn;var S,O=_n(An(b));try{for(O.s();!(S=O.n()).done;){var w=S.value;u[f++]={vertices:w,contour:h}}}catch(e){O.e(e)}finally{O.f()}}else{b.type=bn;for(var P=An(b),A=0;A<P.length;A+=2)s[g++]={start:P[A],end:P[A+1],contour:h}}}}catch(e){p.e(e)}finally{p.f()}return{contourSegments:s,contourPolygons:u}}({thresholdData:o,cellWeights:K.getCellData({countsData:s}).cellWeights,gridSize:[t,n],gridOrigin:r,cellSize:[i.xOffset,i.yOffset]});this.setState({contourData:u})}},{key:"_updateThresholdData",value:function(e){for(var t=e.contours,n=e.zOffset,r=t.length,i=new Array(r),o=0;o<r;o++){var a=t[o];i[o]={contour:a,zIndex:a.zIndex||o,zOffset:n}}this.setState({thresholdData:i})}}]),n}($e);jn.layerName="ContourLayer",jn.defaultProps=Tn;function Rn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function kn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Rn(Object(n),!0).forEach((function(t){v()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Rn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Nn(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=d()(e);if(t){var i=d()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return f()(this,n)}}var zn={colorDomain:null,colorRange:Z,elevationDomain:null,elevationRange:[0,1e3],elevationScale:{type:"number",min:0,value:1},gridSize:{type:"array",min:0,value:[1,1]},gridOrigin:{type:"array",min:0,value:[0,0]},gridOffset:{type:"array",min:0,value:[0,0]},cellSize:{type:"number",min:0,max:1e3,value:1e3},offset:{type:"array",min:0,value:[1,1]},coverage:{type:"number",min:0,max:1,value:1},extruded:!0,material:!0},In=function(e){c()(n,e);var t=Nn(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"getShaders",value:function(){return u()(d()(n.prototype),"getShaders",this).call(this,{vs:"#version 300 es\n#define SHADER_NAME gpu-grid-cell-layer-vertex-shader\n#define RANGE_COUNT 6\n\nin vec3 positions;\nin vec3 normals;\n\nin vec4 colors;\nin vec4 elevations;\nin vec3 instancePickingColors;\nuniform vec2 offset;\nuniform bool extruded;\nuniform float cellSize;\nuniform float coverage;\nuniform float opacity;\nuniform float elevationScale;\n\nuniform ivec2 gridSize;\nuniform vec2 gridOrigin;\nuniform vec2 gridOriginLow;\nuniform vec2 gridOffset;\nuniform vec2 gridOffsetLow;\nuniform vec4 colorRange[RANGE_COUNT];\nuniform vec2 elevationRange;\nuniform vec2 colorDomain;\nuniform bool colorDomainValid;\nuniform vec2 elevationDomain;\nuniform bool elevationDomainValid;\n\nlayout(std140) uniform;\nuniform ColorData\n{\n vec4 maxMinCount;\n} colorData;\nuniform ElevationData\n{\n vec4 maxMinCount;\n} elevationData;\n\n#define EPSILON 0.00001\nout vec4 vColor;\n\nvec4 quantizeScale(vec2 domain, vec4 range[RANGE_COUNT], float value) {\n vec4 outColor = vec4(0., 0., 0., 0.);\n if (value >= (domain.x - EPSILON) && value <= (domain.y + EPSILON)) {\n float domainRange = domain.y - domain.x;\n if (domainRange <= 0.) {\n outColor = colorRange[0];\n } else {\n float rangeCount = float(RANGE_COUNT);\n float rangeStep = domainRange / rangeCount;\n float idx = floor((value - domain.x) / rangeStep);\n idx = clamp(idx, 0., rangeCount - 1.);\n int intIdx = int(idx);\n outColor = colorRange[intIdx];\n }\n }\n return outColor;\n}\n\nfloat linearScale(vec2 domain, vec2 range, float value) {\n if (value >= (domain.x - EPSILON) && value <= (domain.y + EPSILON)) {\n return ((value - domain.x) / (domain.y - domain.x)) * (range.y - range.x) + range.x;\n }\n return -1.;\n}\n\nvoid main(void) {\n vec2 clrDomain = colorDomainValid ? colorDomain : vec2(colorData.maxMinCount.a, colorData.maxMinCount.r);\n vec4 color = quantizeScale(clrDomain, colorRange, colors.r);\n\n float elevation = 0.0;\n\n if (extruded) {\n vec2 elvDomain = elevationDomainValid ? elevationDomain : vec2(elevationData.maxMinCount.a, elevationData.maxMinCount.r);\n elevation = linearScale(elvDomain, elevationRange, elevations.r);\n elevation = elevation * (positions.z + 1.0) / 2.0 * elevationScale;\n }\n float shouldRender = float(color.r > 0.0 && elevations.r >= 0.0);\n float dotRadius = cellSize / 2. * coverage * shouldRender;\n\n int yIndex = (gl_InstanceID / gridSize[0]);\n int xIndex = gl_InstanceID - (yIndex * gridSize[0]);\n\n vec2 instancePositionXFP64 = mul_fp64(vec2(gridOffset[0], gridOffsetLow[0]), vec2(float(xIndex), 0.));\n instancePositionXFP64 = sum_fp64(instancePositionXFP64, vec2(gridOrigin[0], gridOriginLow[0]));\n vec2 instancePositionYFP64 = mul_fp64(vec2(gridOffset[1], gridOffsetLow[1]), vec2(float(yIndex), 0.));\n instancePositionYFP64 = sum_fp64(instancePositionYFP64, vec2(gridOrigin[1], gridOriginLow[1]));\n\n vec3 centroidPosition = vec3(instancePositionXFP64[0], instancePositionYFP64[0], elevation);\n vec3 centroidPosition64Low = vec3(instancePositionXFP64[1], instancePositionYFP64[1], 0.0);\n geometry.worldPosition = centroidPosition;\n vec3 pos = vec3(project_size(positions.xy + offset) * dotRadius, 0.);\n picking_setPickingColor(instancePickingColors);\n\n gl_Position = project_position_to_clipspace(centroidPosition, centroidPosition64Low, pos, geometry.position);\n\n vec3 normals_commonspace = project_normal(normals);\n\n if (extruded) {\n vec3 lightColor = lighting_getLightColor(color.rgb, project_uCameraPosition, geometry.position.xyz, normals_commonspace);\n vColor = vec4(lightColor, color.a * opacity) / 255.;\n } else {\n vColor = vec4(color.rgb, color.a * opacity) / 255.;\n }\n}\n",fs:"#version 300 es\n#define SHADER_NAME gpu-grid-cell-layer-fragment-shader\n\nprecision highp float;\n\nin vec4 vColor;\n\nout vec4 fragColor;\n\nvoid main(void) {\n fragColor = vColor;\n fragColor = picking_filterColor(fragColor);\n}\n",modules:[m.project32,m.gouraudLighting,m.picking,A]})}},{key:"initializeState",value:function(){var e=this.context.gl;this.getAttributeManager().addInstanced({colors:{size:4,noAlloc:!0},elevations:{size:4,noAlloc:!0}});var t=this._getModel(e);this._setupUniformBuffer(t),this.setState({model:t})}},{key:"_getModel",value:function(e){return new y.Model(e,kn(kn({},this.getShaders()),{},{id:this.props.id,geometry:new y.CubeGeometry,isInstanced:!0}))}},{key:"draw",value:function(e){var t=e.uniforms,n=this.props,r=n.cellSize,i=n.offset,o=n.extruded,a=n.elevationScale,s=n.coverage,u=n.gridSize,l=n.gridOrigin,c=n.gridOffset,g=n.elevationRange,f=n.colorMaxMinBuffer,p=n.elevationMaxMinBuffer,d=[Object(m.fp64LowPart)(l[0]),Object(m.fp64LowPart)(l[1])],h=[Object(m.fp64LowPart)(c[0]),Object(m.fp64LowPart)(c[1])],v=this.getDomainUniforms(),y=J(this.props.colorRange);this.bindUniformBuffers(f,p),this.state.model.setUniforms(t).setUniforms(v).setUniforms({cellSize:r,offset:i,extruded:o,elevationScale:a,coverage:s,gridSize:u,gridOrigin:l,gridOriginLow:d,gridOffset:c,gridOffsetLow:h,colorRange:y,elevationRange:g}).draw(),this.unbindUniformBuffers(f,p)}},{key:"bindUniformBuffers",value:function(e,t){e.bind({target:35345,index:0}),t.bind({target:35345,index:1})}},{key:"unbindUniformBuffers",value:function(e,t){e.unbind({target:35345,index:0}),t.unbind({target:35345,index:1})}},{key:"getDomainUniforms",value:function(){var e=this.props,t=e.colorDomain,n=e.elevationDomain,r={};return null!==t?(r.colorDomainValid=!0,r.colorDomain=t):r.colorDomainValid=!1,null!==n?(r.elevationDomainValid=!0,r.elevationDomain=n):r.elevationDomainValid=!1,r}},{key:"_setupUniformBuffer",value:function(e){var t=this.context.gl,n=e.program.handle,r=t.getUniformBlockIndex(n,"ColorData"),i=t.getUniformBlockIndex(n,"ElevationData");t.uniformBlockBinding(n,r,0),t.uniformBlockBinding(n,i,1)}}]),n}(m.Layer);function Bn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Fn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Bn(Object(n),!0).forEach((function(t){v()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Bn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Un(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=d()(e);if(t){var i=d()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return f()(this,n)}}In.layerName="GPUGridCellLayer",In.defaultProps=zn;var Ln={colorDomain:null,colorRange:Z,getColorWeight:{type:"accessor",value:1},colorAggregation:"SUM",elevationDomain:null,elevationRange:[0,1e3],getElevationWeight:{type:"accessor",value:1},elevationAggregation:"SUM",elevationScale:{type:"number",min:0,value:1},cellSize:{type:"number",min:1,max:1e3,value:1e3},coverage:{type:"number",min:0,max:1,value:1},getPosition:{type:"accessor",value:function(e){return e.position}},extruded:!1,material:!0},Wn={data:{props:["cellSize","colorAggregation","elevationAggregation"]}},Gn=function(e){c()(n,e);var t=Un(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"initializeState",value:function(){var e,t=this.context.gl,r=K.isSupported(t);r||m.log.error("GPUGridLayer is not supported on this browser, use GridLayer instead")(),u()(d()(n.prototype),"initializeState",this).call(this,{dimensions:Wn}),this.setState({gpuAggregation:!0,projectPoints:!1,isSupported:r,weights:{color:{needMin:!0,needMax:!0,combineMaxMin:!0,maxMinBuffer:new y.Buffer(t,{byteLength:16,accessor:{size:4,type:5126,divisor:1}})},elevation:{needMin:!0,needMax:!0,combineMaxMin:!0,maxMinBuffer:new y.Buffer(t,{byteLength:16,accessor:{size:4,type:5126,divisor:1}})}},positionAttributeName:"positions"}),this.getAttributeManager().add((e={},v()(e,"positions",{size:3,accessor:"getPosition",type:5130,fp64:this.use64bitPositions()}),v()(e,"color",{size:3,accessor:"getColorWeight"}),v()(e,"elevation",{size:3,accessor:"getElevationWeight"}),e))}},{key:"updateState",value:function(e){!1!==this.state.isSupported&&(u()(d()(n.prototype),"updateState",this).call(this,e),this.state.aggregationDirty&&this.setState({gridHash:null}))}},{key:"getHashKeyForIndex",value:function(e){var t=this.state,n=t.numRow,r=t.numCol,i=t.boundingBox,o=t.gridOffset,a=[r,n],s=[i.xMin,i.yMin],u=[o.xOffset,o.yOffset],l=Math.floor(e/a[0]),c=e-l*a[0],g=Math.floor((l*u[1]+s[1]+90+u[1]/2)/u[1]),f=Math.floor((c*u[0]+s[0]+180+u[0]/2)/u[0]);return"".concat(g,"-").concat(f)}},{key:"getPositionForIndex",value:function(e){var t=this.state,n=t.numRow,r=t.numCol,i=t.boundingBox,o=t.gridOffset,a=[r,n],s=[i.xMin,i.yMin],u=[o.xOffset,o.yOffset],l=Math.floor(e/a[0]);return[(e-l*a[0])*u[0]+s[0],l*u[1]+s[1]]}},{key:"getPickingInfo",value:function(e){var t=e.info,n=e.mode,r=t.index,i=null;if(r>=0){var o=this.state.gpuGridAggregator,a=this.getPositionForIndex(r),s=K.getAggregationData(Fn({pixelIndex:r},o.getData("color"))),u=K.getAggregationData(Fn({pixelIndex:r},o.getData("elevation")));if(i={colorValue:s.cellWeight,elevationValue:u.cellWeight,count:s.cellCount||u.cellCount,position:a,totalCount:s.totalCount||u.totalCount},"hover"!==n){var l=this.props,c=this.state.gridHash;if(!c){var g=this.state,f=g.gridOffset,p=g.translation,d=g.boundingBox,h=this.context.viewport;c=qe(l,{gridOffset:f,attributes:this.getAttributes(),viewport:h,translation:p,boundingBox:d}).gridHash,this.setState({gridHash:c})}var v=c[this.getHashKeyForIndex(r)];Object.assign(i,v)}}return t.picked=Boolean(i),t.object=i,t}},{key:"renderLayers",value:function(){if(!this.state.isSupported)return null;var e=this.props,t=e.elevationScale,n=e.extruded,r=e.cellSize,i=e.coverage,o=e.material,a=e.elevationRange,s=e.colorDomain,u=e.elevationDomain,l=this.state,c=l.weights,g=l.numRow,f=l.numCol,p=l.gridOrigin,d=l.gridOffset,h=c.color,v=c.elevation,m=J(this.props.colorRange);return new(this.getSubLayerClass("gpu-grid-cell",In))({gridSize:[f,g],gridOrigin:p,gridOffset:[d.xOffset,d.yOffset],colorRange:m,elevationRange:a,colorDomain:s,elevationDomain:u,cellSize:r,coverage:i,material:o,elevationScale:t,extruded:n},this.getSubLayerProps({id:"gpu-grid-cell"}),{data:{attributes:{colors:h.aggregationBuffer,elevations:v.aggregationBuffer}},colorMaxMinBuffer:h.maxMinBuffer,elevationMaxMinBuffer:v.maxMinBuffer,numInstances:f*g})}},{key:"finalizeState",value:function(){var e=this.state.weights;[e.color,e.elevation].forEach((function(e){var t=e.aggregationBuffer;e.maxMinBuffer.delete(),null==t||t.delete()})),u()(d()(n.prototype),"finalizeState",this).call(this)}},{key:"updateAggregationState",value:function(e){var t=e.props,n=e.oldProps,r=t.cellSize,i=t.coordinateSystem,o=this.context.viewport,a=n.cellSize!==r,s=this.state.dimensions,u=this.isAttributeChanged("positions"),l=u||this.isAttributeChanged(),c=this.state.boundingBox;if(u&&(c=Ie(this.getAttributes(),this.getNumInstances()),this.setState({boundingBox:c})),u||a){var g=Ue(c,r,o,i),f=g.gridOffset,p=g.translation,d=g.width,h=g.height,v=g.numCol,m=g.numRow;this.allocateResources(m,v),this.setState({gridOffset:f,translation:p,gridOrigin:[-1*p[0],-1*p[1]],width:d,height:h,numCol:v,numRow:m})}var y=l||this.isAggregationDirty(e,{dimension:s.data,compareAll:!0});y&&this._updateAccessors(e),this.setState({aggregationDataDirty:y})}},{key:"_updateAccessors",value:function(e){var t=e.props,n=t.colorAggregation,r=t.elevationAggregation,i=this.state.weights,o=i.color,a=i.elevation;o.operation=_[n],a.operation=_[r]}}]),n}($e);function Vn(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=d()(e);if(t){var i=d()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return f()(this,n)}}function Hn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function qn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Hn(Object(n),!0).forEach((function(t){v()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Hn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Gn.layerName="GPUGridLayer",Gn.defaultProps=Ln;var Yn=qn(qn(qn({},Gn.defaultProps),ht.defaultProps),{},{gpuAggregation:!1}),Xn=function(e){c()(n,e);var t=Vn(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"initializeState",value:function(){this.state={useGPUAggregation:!0}}},{key:"updateState",value:function(e){e.oldProps;var t=e.props,n=(e.changeFlags,{});n.useGPUAggregation=this.canUseGPUAggregation(t),this.setState(n)}},{key:"renderLayers",value:function(){var e=this.props,t=e.data,n=e.updateTriggers,r=this.state.useGPUAggregation?"GPU":"CPU";return new(this.state.useGPUAggregation?this.getSubLayerClass("GPU",Gn):this.getSubLayerClass("CPU",ht))(this.props,this.getSubLayerProps({id:r,updateTriggers:n}),{data:t})}},{key:"canUseGPUAggregation",value:function(e){var t=e.gpuAggregation,n=e.lowerPercentile,r=e.upperPercentile,i=e.getColorValue,o=e.getElevationValue,a=e.colorScaleType;return!!t&&(!!K.isSupported(this.context.gl)&&(0===n&&100===r&&(null===i&&null===o&&("quantile"!==a&&"ordinal"!==a))))}}]),n}(m.CompositeLayer);function Kn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return $n(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return $n(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function $n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Qn(e){var t=e.map((function(e){return e[0]})),n=e.map((function(e){return e[1]})),r=Math.min.apply(null,t),i=Math.max.apply(null,t);return[r,Math.min.apply(null,n),i,Math.max.apply(null,n)]}function Zn(e,t){return t[0]>=e[0]&&t[2]<=e[2]&&t[1]>=e[1]&&t[3]<=e[3]}Xn.layerName="GridLayer",Xn.defaultProps=Yn;var Jn=new Float32Array(12);function er(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,r=0,i=Kn(e);try{for(i.s();!(t=i.n()).done;)for(var o=t.value,a=0;a<n;a++)Jn[r++]=o[a]||0}catch(e){i.e(e)}finally{i.f()}return Jn}function tr(e,t,n){var r=de()(e,4),i=r[0],o=r[1],a=r[2],s=r[3],u=a-i,l=s-o,c=u,g=l;u/l<t/n?c=t/n*l:g=n/t*u,c<t&&(c=t,g=n);var f=(a+i)/2,p=(s+o)/2;return[f-c/2,p-g/2,f+c/2,p+g/2]}function nr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function rr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nr(Object(n),!0).forEach((function(t){v()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ir(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=d()(e);if(t){var i=d()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return f()(this,n)}}var or=function(e){c()(n,e);var t=ir(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"getShaders",value:function(){return{vs:"#define SHADER_NAME heatp-map-layer-vertex-shader\n\nuniform sampler2D maxTexture;\nuniform float intensity;\nuniform vec2 colorDomain;\nuniform float threshold;\nuniform float aggregationMode;\n\nattribute vec3 positions;\nattribute vec2 texCoords;\n\nvarying vec2 vTexCoords;\nvarying float vIntensityMin;\nvarying float vIntensityMax;\n\nvoid main(void) {\n gl_Position = project_position_to_clipspace(positions, vec3(0.0), vec3(0.0));\n vTexCoords = texCoords;\n vec4 maxTexture = texture2D(maxTexture, vec2(0.5));\n float maxValue = aggregationMode < 0.5 ? maxTexture.r : maxTexture.g;\n float minValue = maxValue * threshold;\n if (colorDomain[1] > 0.) {\n maxValue = colorDomain[1];\n minValue = colorDomain[0];\n }\n vIntensityMax = intensity / maxValue;\n vIntensityMin = intensity / minValue;\n}\n",fs:"#define SHADER_NAME triangle-layer-fragment-shader\n\nprecision highp float;\n\nuniform float opacity;\nuniform sampler2D texture;\nuniform sampler2D colorTexture;\nuniform float aggregationMode;\n\nvarying vec2 vTexCoords;\nvarying float vIntensityMin;\nvarying float vIntensityMax;\n\nvec4 getLinearColor(float value) {\n float factor = clamp(value * vIntensityMax, 0., 1.);\n vec4 color = texture2D(colorTexture, vec2(factor, 0.5));\n color.a *= min(value * vIntensityMin, 1.0);\n return color;\n}\n\nvoid main(void) {\n vec4 weights = texture2D(texture, vTexCoords);\n float weight = weights.r;\n\n if (aggregationMode > 0.5) {\n weight /= max(1.0, weights.a);\n }\n if (weight <= 0.) {\n discard;\n }\n\n vec4 linearColor = getLinearColor(weight);\n linearColor.a *= opacity;\n gl_FragColor =linearColor;\n}\n",modules:[m.project32]}}},{key:"initializeState",value:function(){var e=this.context.gl;this.getAttributeManager().add({positions:{size:3,noAlloc:!0},texCoords:{size:2,noAlloc:!0}}),this.setState({model:this._getModel(e)})}},{key:"_getModel",value:function(e){var t=this.props.vertexCount;return new y.Model(e,rr(rr({},this.getShaders()),{},{id:this.props.id,geometry:new y.Geometry({drawMode:6,vertexCount:t})}))}},{key:"draw",value:function(e){var t=e.uniforms,n=this.state.model,r=this.props,i=r.texture,o=r.maxTexture,a=r.colorTexture,s=r.intensity,u=r.threshold,l=r.aggregationMode,c=r.colorDomain;n.setUniforms(rr(rr({},t),{},{texture:i,maxTexture:o,colorTexture:a,intensity:s,threshold:u,aggregationMode:l,colorDomain:c})).draw()}}]),n}(m.Layer);or.layerName="TriangleLayer";var ar;function sr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ur(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?sr(Object(n),!0).forEach((function(t){v()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function lr(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=d()(e);if(t){var i=d()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return f()(this,n)}}var cr={mipmaps:!1,parameters:(ar={},v()(ar,10240,9729),v()(ar,10241,9729),v()(ar,10242,33071),v()(ar,10243,33071),ar),dataFormat:6408},gr=[0,0],fr={SUM:0,MEAN:1},pr={getPosition:{type:"accessor",value:function(e){return e.position}},getWeight:{type:"accessor",value:1},intensity:{type:"number",min:0,value:1},radiusPixels:{type:"number",min:1,max:100,value:50},colorRange:Z,threshold:{type:"number",min:0,max:1,value:.05},colorDomain:{type:"array",value:null,optional:!0},aggregation:"SUM",weightsTextureSize:{type:"number",min:128,max:2048,value:2048},debounceTimeout:{type:"number",min:0,max:1e3,value:500}},dr=[y.FEATURES.BLEND_EQUATION_MINMAX,y.FEATURES.TEXTURE_FLOAT],hr={data:{props:["radiusPixels"]}},vr=function(e){c()(n,e);var t=lr(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"initializeState",value:function(){var e=this.context.gl;if(!Object(y.hasFeatures)(e,dr))return this.setState({supported:!1}),void m.log.error("HeatmapLayer: ".concat(this.id," is not supported on this browser"))();u()(d()(n.prototype),"initializeState",this).call(this,hr),this.setState({supported:!0,colorDomain:gr}),this._setupTextureParams(),this._setupAttributes(),this._setupResources()}},{key:"shouldUpdateState",value:function(e){return e.changeFlags.somethingChanged}},{key:"updateState",value:function(e){this.state.supported&&(u()(d()(n.prototype),"updateState",this).call(this,e),this._updateHeatmapState(e))}},{key:"_updateHeatmapState",value:function(e){var t=e.props,n=e.oldProps,r=this._getChangeFlags(e);(r.dataChanged||r.viewportChanged)&&(r.boundsChanged=this._updateBounds(r.dataChanged),this._updateTextureRenderingBounds()),r.dataChanged||r.boundsChanged?(clearTimeout(this.state.updateTimer),this.setState({isWeightMapDirty:!0})):r.viewportZoomChanged&&this._debouncedUpdateWeightmap(),t.colorRange!==n.colorRange&&this._updateColorTexture(e),this.state.isWeightMapDirty&&this._updateWeightmap(),this.setState({zoom:e.context.viewport.zoom})}},{key:"renderLayers",value:function(){if(!this.state.supported)return[];var e=this.state,t=e.weightsTexture,n=e.triPositionBuffer,r=e.triTexCoordBuffer,i=e.maxWeightsTexture,o=e.colorTexture,a=e.colorDomain,s=this.props,u=s.updateTriggers,l=s.intensity,c=s.threshold,g=s.aggregation;return new(this.getSubLayerClass("triangle",or))(this.getSubLayerProps({id:"triangle-layer",updateTriggers:u}),{coordinateSystem:m.COORDINATE_SYSTEM.DEFAULT,data:{attributes:{positions:n,texCoords:r}},vertexCount:4,maxTexture:i,colorTexture:o,aggregationMode:fr[g]||0,texture:t,intensity:l,threshold:c,colorDomain:a})}},{key:"finalizeState",value:function(){u()(d()(n.prototype),"finalizeState",this).call(this);var e=this.state,t=e.weightsTransform,r=e.weightsTexture,i=e.maxWeightTransform,o=e.maxWeightsTexture,a=e.triPositionBuffer,s=e.triTexCoordBuffer,l=e.colorTexture,c=e.updateTimer;null==t||t.delete(),null==r||r.delete(),null==i||i.delete(),null==o||o.delete(),null==a||a.delete(),null==s||s.delete(),null==l||l.delete(),c&&clearTimeout(c)}},{key:"_getAttributeManager",value:function(){return new m.AttributeManager(this.context.gl,{id:this.props.id,stats:this.context.stats})}},{key:"_getChangeFlags",value:function(e){var t={},n=this.state.dimensions;t.dataChanged=this.isAttributeChanged()||this.isAggregationDirty(e,{compareAll:!0,dimension:n.data}),t.viewportChanged=e.changeFlags.viewportChanged;var r=this.state.zoom;return e.context.viewport&&e.context.viewport.zoom===r||(t.viewportZoomChanged=!0),t}},{key:"_createTextures",value:function(){var e=this.context.gl,t=this.state,n=t.textureSize,r=t.format,i=t.type;this.setState({weightsTexture:new y.Texture2D(e,ur({width:n,height:n,format:r,type:i},cr)),maxWeightsTexture:new y.Texture2D(e,ur({format:r,type:i},cr))})}},{key:"_setupAttributes",value:function(){this.getAttributeManager().add({positions:{size:3,type:5130,accessor:"getPosition"},weights:{size:1,accessor:"getWeight"}}),this.setState({positionAttributeName:"positions"})}},{key:"_setupTextureParams",value:function(){var e=this.context.gl,t=this.props.weightsTextureSize,n=Math.min(t,Object(y.getParameters)(e,3379)),r=Object(y.hasFeatures)(e,y.FEATURES.COLOR_ATTACHMENT_RGBA32F),i=function(e){var t=e.gl,n=e.floatTargetSupport;return{format:Object(y.isWebGL2)(t)?34836:6408,type:n?5126:5121}}({gl:e,floatTargetSupport:r}),o=i.format,a=i.type,s=r?1:1/255;this.setState({textureSize:n,format:o,type:a,weightsScale:s}),r||m.log.warn("HeatmapLayer: ".concat(this.id," rendering to float texture not supported, fallingback to low precession format"))()}},{key:"getShaders",value:function(e){return u()(d()(n.prototype),"getShaders",this).call(this,"max-weights-transform"===e?{vs:"attribute vec4 inTexture;\nvarying vec4 outTexture;\n\nvoid main()\n{\noutTexture = inTexture;\ngl_Position = vec4(0, 0, 0, 1.);\ngl_PointSize = 1.0;\n}\n",_fs:"varying vec4 outTexture;\nvoid main() {\n gl_FragColor = outTexture;\n gl_FragColor.g = outTexture.r / max(1.0, outTexture.a);\n}\n"}:{vs:"attribute vec3 positions;\nattribute vec3 positions64Low;\nattribute float weights;\nvarying vec4 weightsTexture;\nuniform float radiusPixels;\nuniform float textureWidth;\nuniform vec4 commonBounds;\nuniform float weightsScale;\nvoid main()\n{\n weightsTexture = vec4(weights * weightsScale, 0., 0., 1.);\n\n float radiusTexels = project_pixel_size(radiusPixels) * textureWidth / (commonBounds.z - commonBounds.x);\n gl_PointSize = radiusTexels * 2.;\n\n vec3 commonPosition = project_position(positions, positions64Low);\n gl_Position.xy = (commonPosition.xy - commonBounds.xy) / (commonBounds.zw - commonBounds.xy) ;\n gl_Position.xy = (gl_Position.xy * 2.) - (1.);\n}\n",_fs:"varying vec4 weightsTexture;\nfloat gaussianKDE(float u){\n return pow(2.71828, -u*u/0.05555)/(1.77245385*0.166666);\n}\nvoid main()\n{\n float dist = length(gl_PointCoord - vec2(0.5, 0.5));\n if (dist > 0.5) {\n discard;\n }\n gl_FragColor = weightsTexture * gaussianKDE(2. * dist);\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n"})}},{key:"_createWeightsTransform",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.context.gl,r=this.state.weightsTransform,i=this.state.weightsTexture;null===(e=r)||void 0===e||e.delete(),r=new y.Transform(n,ur({id:"".concat(this.id,"-weights-transform"),elementCount:1,_targetTexture:i,_targetTextureVarying:"weightsTexture"},t)),this.setState({weightsTransform:r})}},{key:"_setupResources",value:function(){var e=this.context.gl;this._createTextures();var t=this.state,n=t.textureSize,r=t.weightsTexture,i=t.maxWeightsTexture,o=this.getShaders("weights-transform");this._createWeightsTransform(o);var a=this.getShaders("max-weights-transform"),s=new y.Transform(e,ur(ur({id:"".concat(this.id,"-max-weights-transform"),_sourceTextures:{inTexture:r},_targetTexture:i,_targetTextureVarying:"outTexture"},a),{},{elementCount:n*n}));this.setState({weightsTexture:r,maxWeightsTexture:i,maxWeightTransform:s,zoom:null,triPositionBuffer:new y.Buffer(e,{byteLength:48,accessor:{size:3}}),triTexCoordBuffer:new y.Buffer(e,{byteLength:48,accessor:{size:2}})})}},{key:"updateShaders",value:function(e){this._createWeightsTransform(e)}},{key:"_updateMaxWeightValue",value:function(){this.state.maxWeightTransform.run({parameters:{blend:!0,depthTest:!1,blendFunc:[1,1],blendEquation:32776}})}},{key:"_updateBounds",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.context.viewport,n=[t.unproject([0,0]),t.unproject([t.width,0]),t.unproject([t.width,t.height]),t.unproject([0,t.height])].map((function(e){return e.map(Math.fround)})),r=Qn(n),i={visibleWorldBounds:r,viewportCorners:n},o=!1;if(e||!this.state.worldBounds||!Zn(this.state.worldBounds,r)){var a=this._worldToCommonBounds(r),s=this._commonToWorldBounds(a);this.props.coordinateSystem===m.COORDINATE_SYSTEM.LNGLAT&&(s[1]=Math.max(s[1],-85.051129),s[3]=Math.min(s[3],85.051129),s[0]=Math.max(s[0],-360),s[2]=Math.min(s[2],360));var u=this._worldToCommonBounds(s);i.worldBounds=s,i.normalizedCommonBounds=u,o=!0}return this.setState(i),o}},{key:"_updateTextureRenderingBounds",value:function(){var e=this.state,t=e.triPositionBuffer,n=e.triTexCoordBuffer,r=e.normalizedCommonBounds,i=e.viewportCorners,o=this.context.viewport;t.subData(er(i,3));var a=i.map((function(e){return t=o.projectPosition(e),n=r,i=de()(n,4),a=i[0],s=i[1],u=i[2],l=i[3],[(t[0]-a)/(u-a),(t[1]-s)/(l-s)];var t,n,i,a,s,u,l}));n.subData(er(a,2))}},{key:"_updateColorTexture",value:function(e){var t=e.props.colorRange,n=this.state.colorTexture,r=J(t,!1,Uint8Array);n?n.setImageData({data:r,width:t.length}):n=new y.Texture2D(this.context.gl,ur({data:r,width:t.length,height:1},cr)),this.setState({colorTexture:n})}},{key:"_updateWeightmap",value:function(){var e,t=this.props,n=t.radiusPixels,r=t.colorDomain,i=t.aggregation,o=this.state,a=o.weightsTransform,s=o.worldBounds,u=o.textureSize,l=o.weightsTexture,c=o.weightsScale;this.state.isWeightMapDirty=!1;var g=this._worldToCommonBounds(s,{useLayerCoordinateSystem:!0});if(r&&"SUM"===i){var f=this.context.viewport.distanceScales.metersPerUnit[2]*(g[2]-g[0])/u;this.state.colorDomain=r.map((function(e){return e*f*c}))}else this.state.colorDomain=r||gr;var p={radiusPixels:n,commonBounds:g,textureWidth:u,weightsScale:c};a.update({elementCount:this.getNumInstances()}),a.run({uniforms:p,parameters:{blend:!0,depthTest:!1,blendFunc:[1,1],blendEquation:32774},clearRenderTarget:!0,attributes:this.getAttributes(),moduleSettings:this.getModuleSettings()}),this._updateMaxWeightValue(),l.setParameters((e={},v()(e,10240,9729),v()(e,10241,9729),e))}},{key:"_debouncedUpdateWeightmap",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.state.updateTimer,n=this.props.debounceTimeout;e?(t=null,this._updateBounds(!0),this._updateTextureRenderingBounds(),this.setState({isWeightMapDirty:!0})):(this.setState({isWeightMapDirty:!1}),clearTimeout(t),t=setTimeout(this._debouncedUpdateWeightmap.bind(this,!0),n)),this.setState({updateTimer:t})}},{key:"_worldToCommonBounds",value:function(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r.useLayerCoordinateSystem,o=void 0!==i&&i,a=de()(e,4),s=a[0],u=a[1],l=a[2],c=a[3],g=this.context.viewport,f=this.state.textureSize,p=this.props.coordinateSystem,d=o&&(p===m.COORDINATE_SYSTEM.LNGLAT_OFFSETS||p===m.COORDINATE_SYSTEM.METER_OFFSETS),h=d?g.projectPosition(this.props.coordinateOrigin):[0,0],v=2*f/g.scale;return o&&!d?(t=this.projectPosition([s,u,0]),n=this.projectPosition([l,c,0])):(t=g.projectPosition([s,u,0]),n=g.projectPosition([l,c,0])),tr([t[0]-h[0],t[1]-h[1],n[0]-h[0],n[1]-h[1]],v,v)}},{key:"_commonToWorldBounds",value:function(e){var t=de()(e,4),n=t[0],r=t[1],i=t[2],o=t[3],a=this.context.viewport,s=a.unprojectPosition([n,r]),u=a.unprojectPosition([i,o]);return s.slice(0,2).concat(u.slice(0,2))}}]),n}(fe);vr.layerName="HeatmapLayer",vr.defaultProps=pr,n.d(t,"ScreenGridLayer",(function(){return nt})),n.d(t,"CPUGridLayer",(function(){return ht})),n.d(t,"HexagonLayer",(function(){return Dt})),n.d(t,"ContourLayer",(function(){return jn})),n.d(t,"GridLayer",(function(){return Xn})),n.d(t,"GPUGridLayer",(function(){return Gn})),n.d(t,"AGGREGATION_OPERATION",(function(){return _})),n.d(t,"HeatmapLayer",(function(){return vr})),n.d(t,"_GPUGridAggregator",(function(){return K})),n.d(t,"_CPUAggregator",(function(){return gt})),n.d(t,"_AggregationLayer",(function(){return fe})),n.d(t,"_BinSorter",(function(){return Ne}))}])}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("deck"),require("luma")):"function"==typeof define&&define.amd?define(["deck","luma"],t):"object"==typeof exports?exports.deck=t(require("deck"),require("luma")):e.deck=t(e.deck,e.luma)}(window,(function(e,t){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=12)}([function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(t,n){t.exports=e},function(e,n){e.exports=t},function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(t)}e.exports=n},function(e,t,n){var r=n(14);function i(t,n,o){return"undefined"!=typeof Reflect&&Reflect.get?e.exports=i=Reflect.get:e.exports=i=function(e,t,n){var i=r(e,t);if(i){var o=Object.getOwnPropertyDescriptor(i,t);return o.get?o.get.call(n):o.value}},i(t,n,o||t)}e.exports=i},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}},function(e,t,n){var r=n(15);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},function(e,t,n){var r=n(11),i=n(9);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?i(e):t}},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t,n){var r=n(16),i=n(17),o=n(18);e.exports=function(e,t){return r(e)||i(e,t)||o()}},function(e,t){function n(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=n=function(e){return typeof e}:e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(t)}e.exports=n},function(e,t,n){var r=n(19),i=globalThis.deck||{};if(!i.LineLayer)throw new Error("@deck.gl/layers is not found");e.exports=Object.assign(i,r)},,function(e,t,n){var r=n(3);e.exports=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=r(e)););return e}},function(e,t){function n(t,r){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(t,r)}e.exports=n},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n}}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t,n){"use strict";n.r(t);var r=n(5),i=n.n(r),o=n(6),a=n.n(o),s=n(9),u=n.n(s),l=n(4),c=n.n(l),g=n(7),f=n.n(g),d=n(8),p=n.n(d),h=n(3),v=n.n(h),m=n(0),y=n.n(m),x=n(1),b=n(2);function S(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=Math.fround(e),i=e-r;return t[n]=r,t[n+1]=i,t}function O(e){return e-Math.fround(e)}function w(e){for(var t=new Float32Array(32),n=0;n<4;++n)for(var r=0;r<4;++r){var i=4*n+r;S(e[4*r+n],t,2*i)}return t}var A={ONE:1};var P,_,M={name:"fp64-arithmetic",vs:"uniform float ONE;\nvec2 split(float a) {\n const float SPLIT = 4097.0;\n float t = a * SPLIT;\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float a_hi = t * ONE - (t - a);\n float a_lo = a * ONE - a_hi;\n#else\n float a_hi = t - (t - a);\n float a_lo = a - a_hi;\n#endif\n return vec2(a_hi, a_lo);\n}\nvec2 split2(vec2 a) {\n vec2 b = split(a.x);\n b.y += a.y;\n return b;\n}\nvec2 quickTwoSum(float a, float b) {\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float sum = (a + b) * ONE;\n float err = b - (sum - a) * ONE;\n#else\n float sum = a + b;\n float err = b - (sum - a);\n#endif\n return vec2(sum, err);\n}\nvec2 twoSum(float a, float b) {\n float s = (a + b);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float v = (s * ONE - a) * ONE;\n float err = (a - (s - v) * ONE) * ONE * ONE * ONE + (b - v);\n#else\n float v = s - a;\n float err = (a - (s - v)) + (b - v);\n#endif\n return vec2(s, err);\n}\n\nvec2 twoSub(float a, float b) {\n float s = (a - b);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float v = (s * ONE - a) * ONE;\n float err = (a - (s - v) * ONE) * ONE * ONE * ONE - (b + v);\n#else\n float v = s - a;\n float err = (a - (s - v)) - (b + v);\n#endif\n return vec2(s, err);\n}\n\nvec2 twoSqr(float a) {\n float prod = a * a;\n vec2 a_fp64 = split(a);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float err = ((a_fp64.x * a_fp64.x - prod) * ONE + 2.0 * a_fp64.x *\n a_fp64.y * ONE * ONE) + a_fp64.y * a_fp64.y * ONE * ONE * ONE;\n#else\n float err = ((a_fp64.x * a_fp64.x - prod) + 2.0 * a_fp64.x * a_fp64.y) + a_fp64.y * a_fp64.y;\n#endif\n return vec2(prod, err);\n}\n\nvec2 twoProd(float a, float b) {\n float prod = a * b;\n vec2 a_fp64 = split(a);\n vec2 b_fp64 = split(b);\n float err = ((a_fp64.x * b_fp64.x - prod) + a_fp64.x * b_fp64.y +\n a_fp64.y * b_fp64.x) + a_fp64.y * b_fp64.y;\n return vec2(prod, err);\n}\n\nvec2 sum_fp64(vec2 a, vec2 b) {\n vec2 s, t;\n s = twoSum(a.x, b.x);\n t = twoSum(a.y, b.y);\n s.y += t.x;\n s = quickTwoSum(s.x, s.y);\n s.y += t.y;\n s = quickTwoSum(s.x, s.y);\n return s;\n}\n\nvec2 sub_fp64(vec2 a, vec2 b) {\n vec2 s, t;\n s = twoSub(a.x, b.x);\n t = twoSub(a.y, b.y);\n s.y += t.x;\n s = quickTwoSum(s.x, s.y);\n s.y += t.y;\n s = quickTwoSum(s.x, s.y);\n return s;\n}\n\nvec2 mul_fp64(vec2 a, vec2 b) {\n vec2 prod = twoProd(a.x, b.x);\n prod.y += a.x * b.y;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n prod = split2(prod);\n#endif\n prod = quickTwoSum(prod.x, prod.y);\n prod.y += a.y * b.x;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n prod = split2(prod);\n#endif\n prod = quickTwoSum(prod.x, prod.y);\n return prod;\n}\n\nvec2 div_fp64(vec2 a, vec2 b) {\n float xn = 1.0 / b.x;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n vec2 yn = mul_fp64(a, vec2(xn, 0));\n#else\n vec2 yn = a * xn;\n#endif\n float diff = (sub_fp64(a, mul_fp64(b, yn))).x;\n vec2 prod = twoProd(xn, diff);\n return sum_fp64(yn, prod);\n}\n\nvec2 sqrt_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) return vec2(0.0, 0.0);\n if (a.x < 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);\n\n float x = 1.0 / sqrt(a.x);\n float yn = a.x * x;\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n vec2 yn_sqr = twoSqr(yn) * ONE;\n#else\n vec2 yn_sqr = twoSqr(yn);\n#endif\n float diff = sub_fp64(a, yn_sqr).x;\n vec2 prod = twoProd(x * 0.5, diff);\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n return sum_fp64(split(yn), prod);\n#else\n return sum_fp64(vec2(yn, 0.0), prod);\n#endif\n}\n",fs:null,getUniforms:function(){return A},fp64ify:S,fp64LowPart:O,fp64ifyMatrix4:w},D={SUM:1,MEAN:2,MIN:3,MAX:4};function C(e,t){return e+t}function T(e,t){return t>e?t:e}function E(e,t){return t<e?t:e}function j(e,t,n){var r=D[e]||D.SUM;switch(t=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(Number.isFinite(e))return e;return function(n){return t.index=n.index,e(n.source,t)}}(t,n),r){case D.MIN:return function(e){return function(e,t){if(Number.isFinite(t))return e.length?t:null;var n=e.map(t).filter(Number.isFinite);return n.length?n.reduce(E,1/0):null}(e,t)};case D.SUM:return function(e){return function(e,t){if(Number.isFinite(t))return e.length?e.length*t:null;var n=e.map(t).filter(Number.isFinite);return n.length?n.reduce(C,0):null}(e,t)};case D.MEAN:return function(e){return function(e,t){if(Number.isFinite(t))return e.length?t:null;var n=e.map(t).filter(Number.isFinite);return n.length?n.reduce(C,0)/n.length:null}(e,t)};case D.MAX:return function(e){return function(e,t){if(Number.isFinite(t))return e.length?t:null;var n=e.map(t).filter(Number.isFinite);return n.length?n.reduce(T,-1/0):null}(e,t)};default:return null}}function R(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(n){return t.indices=n.map((function(e){return e.index})),e(n.map((function(e){return e.source})),t)}}var k,N={projectPoints:!1,viewport:null,createBufferObjects:!0,moduleSettings:{}},B=[32775,32774],z=[32776,32774],I=[32776,32775],F=(P={},y()(P,D.SUM,32774),y()(P,D.MEAN,32774),y()(P,D.MIN,B),y()(P,D.MAX,z),P),U={size:1,operation:D.SUM,needMin:!1,needMax:!1,combineMaxMin:!1},L=(_={},y()(_,10240,9728),y()(_,10241,9728),k={},y()(k,10240,9728),y()(k,10241,9728),k);function W(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.width,r=void 0===n?1:n,i=t.height,o=void 0===i?1:i,a=t.data,s=void 0===a?null:a,u=t.unpackFlipY,l=void 0===u||u,c=t.parameters,g=void 0===c?L:c,f=new b.Texture2D(e,{data:s,format:Object(b.isWebGL2)(e)?34836:6408,type:5126,border:0,mipmaps:!1,parameters:g,dataFormat:6408,width:r,height:o,unpackFlipY:l});return f}function G(e,t){var n=t.id,r=t.width,i=void 0===r?1:r,o=t.height,a=void 0===o?1:o,s=t.texture;return new b.Framebuffer(e,{id:n,width:i,height:a,attachments:y()({},36064,s)})}function V(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return H(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return H(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function H(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?q(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):q(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var X=["aggregationBuffer","maxMinBuffer","minBuffer","maxBuffer"],K={maxData:"maxBuffer",minData:"minBuffer",maxMinData:"maxMinBuffer"},$=[b.FEATURES.WEBGL2,b.FEATURES.COLOR_ATTACHMENT_RGBA32F,b.FEATURES.BLEND_EQUATION_MINMAX,b.FEATURES.FLOAT_BLEND,b.FEATURES.TEXTURE_FLOAT],Q=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};i()(this,e),this.id=n.id||"gpu-grid-aggregator",this.gl=t,this.state={weightAttributes:{},textures:{},meanTextures:{},buffers:{},framebuffers:{},maxMinFramebuffers:{},minFramebuffers:{},maxFramebuffers:{},equations:{},resources:{},results:{}},this._hasGPUSupport=Object(b.isWebGL2)(t)&&Object(b.hasFeatures)(this.gl,b.FEATURES.BLEND_EQUATION_MINMAX,b.FEATURES.COLOR_ATTACHMENT_RGBA32F,b.FEATURES.TEXTURE_FLOAT),this._hasGPUSupport&&this._setupModels()}return a()(e,[{key:"delete",value:function(){var e=this.gridAggregationModel,t=this.allAggregationModel,n=this.meanTransform,r=this.state,i=r.textures,o=r.framebuffers,a=r.maxMinFramebuffers,s=r.minFramebuffers,u=r.maxFramebuffers,l=r.meanTextures,c=r.resources;null==e||e.delete(),null==t||t.delete(),null==n||n.delete(),function(e){(e=Array.isArray(e)?e:[e]).forEach((function(e){for(var t in e)e[t].delete()}))}([o,i,a,s,u,l,c])}},{key:"run",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.setState({results:{}});var t=this._normalizeAggregationParams(e);return this._hasGPUSupport||x.log.log(1,"GPUGridAggregator: not supported")(),this._runAggregation(t)}},{key:"getData",value:function(e){var t={},n=this.state.results;for(var r in n[e].aggregationData||(n[e].aggregationData=n[e].aggregationBuffer.getData()),t.aggregationData=n[e].aggregationData,K){var i=K[r];(n[e][r]||n[e][i])&&(n[e][r]=n[e][r]||n[e][i].getData(),t[r]=n[e][r])}return t}},{key:"updateShaders",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.setState({shaderOptions:e,modelDirty:!0})}},{key:"_normalizeAggregationParams",value:function(e){var t=Y(Y({},N),e),n=t.weights;return n&&(t.weights=function(e){var t={};for(var n in e)t[n]=Y(Y({},U),e[n]);return t}(n)),t}},{key:"setState",value:function(e){Object.assign(this.state,e)}},{key:"_getAggregateData",value:function(e){var t={},n=this.state,r=n.textures,i=n.framebuffers,o=n.maxMinFramebuffers,a=n.minFramebuffers,s=n.maxFramebuffers,u=n.resources,l=e.weights;for(var c in l){t[c]={};var g=l[c],f=g.needMin,d=g.needMax,p=g.combineMaxMin;t[c].aggregationTexture=r[c],t[c].aggregationBuffer=Object(b.readPixelsToBuffer)(i[c],{target:l[c].aggregationBuffer,sourceType:5126}),f&&d&&p?(t[c].maxMinBuffer=Object(b.readPixelsToBuffer)(o[c],{target:l[c].maxMinBuffer,sourceType:5126}),t[c].maxMinTexture=u["".concat(c,"-maxMinTexture")]):(f&&(t[c].minBuffer=Object(b.readPixelsToBuffer)(a[c],{target:l[c].minBuffer,sourceType:5126}),t[c].minTexture=u["".concat(c,"-minTexture")]),d&&(t[c].maxBuffer=Object(b.readPixelsToBuffer)(s[c],{target:l[c].maxBuffer,sourceType:5126}),t[c].maxTexture=u["".concat(c,"-maxTexture")]))}return this._trackGPUResultBuffers(t,l),t}},{key:"_renderAggregateData",value:function(e){var t=e.cellSize,n=e.projectPoints,r=e.attributes,i=e.moduleSettings,o=e.numCol,a=e.numRow,s=e.weights,u=e.translation,l=e.scaling,c=this.state,g=c.maxMinFramebuffers,f=c.minFramebuffers,d=c.maxFramebuffers,p=[o,a],h={blend:!0,depthTest:!1,blendFunc:[1,1]},v={cellSize:t,gridSize:p,projectPoints:n,translation:u,scaling:l};for(var m in s){var y=s[m],x=y.needMin,b=y.needMax,S=x&&b&&s[m].combineMaxMin;this._renderToWeightsTexture({id:m,parameters:h,moduleSettings:i,uniforms:v,gridSize:p,attributes:r,weights:s}),S?this._renderToMaxMinTexture({id:m,parameters:Y(Y({},h),{},{blendEquation:I}),gridSize:p,minOrMaxFb:g[m],clearParams:{clearColor:[0,0,0,3402823466e29]},combineMaxMin:S}):(x&&this._renderToMaxMinTexture({id:m,parameters:Y(Y({},h),{},{blendEquation:B}),gridSize:p,minOrMaxFb:f[m],clearParams:{clearColor:[3402823466e29,3402823466e29,3402823466e29,0]},combineMaxMin:S}),b&&this._renderToMaxMinTexture({id:m,parameters:Y(Y({},h),{},{blendEquation:z}),gridSize:p,minOrMaxFb:d[m],clearParams:{clearColor:[0,0,0,0]},combineMaxMin:S}))}}},{key:"_renderToMaxMinTexture",value:function(e){var t=e.id,n=e.parameters,r=e.gridSize,i=e.minOrMaxFb,o=e.combineMaxMin,a=e.clearParams,s=void 0===a?{}:a,u=this.state.framebuffers,l=this.gl,c=this.allAggregationModel;Object(b.withParameters)(l,Y(Y({},s),{},{framebuffer:i,viewport:[0,0,r[0],r[1]]}),(function(){l.clear(16384),c.draw({parameters:n,uniforms:{uSampler:u[t].texture,gridSize:r,combineMaxMin:o}})}))}},{key:"_renderToWeightsTexture",value:function(e){var t=e.id,n=e.parameters,r=e.moduleSettings,i=e.uniforms,o=e.gridSize,a=e.weights,s=this.state,u=s.framebuffers,l=s.equations,c=s.weightAttributes,g=this.gl,f=this.gridAggregationModel,d=a[t].operation,p=d===D.MIN?[3402823466e29,3402823466e29,3402823466e29,0]:[0,0,0,0];if(Object(b.withParameters)(g,{framebuffer:u[t],viewport:[0,0,o[0],o[1]],clearColor:p},(function(){g.clear(16384);var e={weights:c[t]};f.draw({parameters:Y(Y({},n),{},{blendEquation:l[t]}),moduleSettings:r,uniforms:i,attributes:e})})),d===D.MEAN){var h=this.state,v=h.meanTextures,m=h.textures,x={_sourceTextures:{aggregationValues:v[t]},_targetTexture:m[t],elementCount:m[t].width*m[t].height};this.meanTransform?this.meanTransform.update(x):this.meanTransform=function(e,t){return new b.Transform(e,Y({vs:"#define SHADER_NAME gpu-aggregation-transform-mean-vs\nattribute vec4 aggregationValues;\nvarying vec4 meanValues;\n\nvoid main()\n{\n bool isCellValid = bool(aggregationValues.w > 0.);\n meanValues.xyz = isCellValid ? aggregationValues.xyz/aggregationValues.w : vec3(0, 0, 0);\n meanValues.w = aggregationValues.w;\n gl_PointSize = 1.0;\n}\n",_targetTextureVarying:"meanValues"},t))}(g,x),this.meanTransform.run({parameters:{blend:!1,depthTest:!1}}),u[t].attach(y()({},36064,m[t]))}}},{key:"_runAggregation",value:function(e){this._updateModels(e),this._setupFramebuffers(e),this._renderAggregateData(e);var t=this._getAggregateData(e);return this.setState({results:t}),t}},{key:"_setupFramebuffers",value:function(e){var t=this.state,n=t.textures,r=t.framebuffers,i=t.maxMinFramebuffers,o=t.minFramebuffers,a=t.maxFramebuffers,s=t.meanTextures,u=t.equations,l=e.weights,c=e.numCol,g=e.numRow,f={width:c,height:g};for(var d in l){var p=l[d],h=p.needMin,v=p.needMax,m=p.combineMaxMin,x=p.operation;n[d]=l[d].aggregationTexture||n[d]||W(this.gl,{id:"".concat(d,"-texture"),width:c,height:g}),n[d].resize(f);var b=n[d];x===D.MEAN&&(s[d]=s[d]||W(this.gl,{id:"".concat(d,"-mean-texture"),width:c,height:g}),s[d].resize(f),b=s[d]),r[d]?r[d].attach(y()({},36064,b)):r[d]=G(this.gl,{id:"".concat(d,"-fb"),width:c,height:g,texture:b}),r[d].resize(f),u[d]=F[x]||F.SUM,(h||v)&&(h&&v&&m?i[d]||(b=l[d].maxMinTexture||this._getMinMaxTexture("".concat(d,"-maxMinTexture")),i[d]=G(this.gl,{id:"".concat(d,"-maxMinFb"),texture:b})):(h&&(o[d]||(b=l[d].minTexture||this._getMinMaxTexture("".concat(d,"-minTexture")),o[d]=G(this.gl,{id:"".concat(d,"-minFb"),texture:b}))),v&&(a[d]||(b=l[d].maxTexture||this._getMinMaxTexture("".concat(d,"-maxTexture")),a[d]=G(this.gl,{id:"".concat(d,"-maxFb"),texture:b})))))}}},{key:"_getMinMaxTexture",value:function(e){var t=this.state.resources;return t[e]||(t[e]=W(this.gl,{id:"resourceName"})),t[e]}},{key:"_setupModels",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.numCol,r=void 0===n?0:n,i=t.numRow,o=void 0===i?0:i,a=this.gl,s=this.state.shaderOptions;if(null===(e=this.gridAggregationModel)||void 0===e||e.delete(),this.gridAggregationModel=Z(a,s),!this.allAggregationModel){var u=r*o;this.allAggregationModel=J(a,u)}}},{key:"_setupWeightAttributes",value:function(e){var t=this.state.weightAttributes,n=e.weights;for(var r in n)t[r]=e.attributes[r]}},{key:"_trackGPUResultBuffers",value:function(e,t){var n=this.state.resources;for(var r in e)if(e[r]){var i,o=V(X);try{for(o.s();!(i=o.n()).done;){var a=i.value;if(e[r][a]&&t[r][a]!==e[r][a]){var s="gpu-result-".concat(r,"-").concat(a);n[s]&&n[s].delete(),n[s]=e[r][a]}}}catch(e){o.e(e)}finally{o.f()}}}},{key:"_updateModels",value:function(e){var t=e.vertexCount,n=e.attributes,r=e.numCol,i=e.numRow;this.state.modelDirty&&(this._setupModels(e),this.setState({modelDirty:!1})),this._setupWeightAttributes(e),this.gridAggregationModel.setVertexCount(t),this.gridAggregationModel.setAttributes(n),this.allAggregationModel.setInstanceCount(r*i)}}],[{key:"getAggregationData",value:function(e){var t=e.aggregationData,n=e.maxData,r=e.minData,i=e.maxMinData,o=4*e.pixelIndex,a={};return t&&(a.cellCount=t[o+3],a.cellWeight=t[o]),i?(a.maxCellWieght=i[0],a.minCellWeight=i[3]):(n&&(a.maxCellWieght=n[0],a.totalCount=n[3]),r&&(a.minCellWeight=r[0],a.totalCount=n[3])),a}},{key:"getCellData",value:function(e){for(var t=e.countsData,n=e.size,r=void 0===n?1:n,i=t.length/4,o=new Float32Array(i*r),a=new Uint32Array(i),s=0;s<i;s++){for(var u=0;u<r;u++)o[s*r+u]=t[4*s+u];a[s]=t[4*s+3]}return{cellCounts:a,cellWeights:o}}},{key:"isSupported",value:function(e){return Object(b.hasFeatures)(e,$)}}]),e}();function Z(e,t){var n=Object(x._mergeShaders)({vs:"#define SHADER_NAME gpu-aggregation-to-grid-vs\n\nattribute vec3 positions;\nattribute vec3 positions64Low;\nattribute vec3 weights;\nuniform vec2 cellSize;\nuniform vec2 gridSize;\nuniform bool projectPoints;\nuniform vec2 translation;\nuniform vec3 scaling;\n\nvarying vec3 vWeights;\n\nvec2 project_to_pixel(vec4 pos) {\n vec4 result;\n pos.xy = pos.xy/pos.w;\n result = pos + vec4(translation, 0., 0.);\n result.xy = scaling.z > 0. ? result.xy * scaling.xy : result.xy;\n return result.xy;\n}\n\nvoid main(void) {\n\n vWeights = weights;\n\n vec4 windowPos = vec4(positions, 1.);\n if (projectPoints) {\n windowPos = project_position_to_clipspace(positions, positions64Low, vec3(0));\n }\n\n vec2 pos = project_to_pixel(windowPos);\n\n vec2 pixelXY64[2];\n pixelXY64[0] = vec2(pos.x, 0.);\n pixelXY64[1] = vec2(pos.y, 0.);\n vec2 gridXY64[2];\n gridXY64[0] = div_fp64(pixelXY64[0], vec2(cellSize.x, 0));\n gridXY64[1] = div_fp64(pixelXY64[1], vec2(cellSize.y, 0));\n float x = floor(gridXY64[0].x);\n float y = floor(gridXY64[1].x);\n pos = vec2(x, y);\n pos = (pos * (2., 2.) / (gridSize)) - (1., 1.);\n vec2 offset = 1.0 / gridSize;\n pos = pos + offset;\n\n gl_Position = vec4(pos, 0.0, 1.0);\n gl_PointSize = 1.0;\n}\n",fs:"#define SHADER_NAME gpu-aggregation-to-grid-fs\n\nprecision highp float;\n\nvarying vec3 vWeights;\n\nvoid main(void) {\n gl_FragColor = vec4(vWeights, 1.0);\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n",modules:[M,x.project32]},t);return new b.Model(e,Y({id:"Gird-Aggregation-Model",vertexCount:1,drawMode:0},n))}function J(e,t){return new b.Model(e,{id:"All-Aggregation-Model",vs:"#version 300 es\n#define SHADER_NAME gpu-aggregation-all-vs-64\n\nin vec2 position;\nuniform ivec2 gridSize;\nout vec2 vTextureCoord;\n\nvoid main(void) {\n vec2 pos = vec2(-1.0, -1.0);\n vec2 offset = 1.0 / vec2(gridSize);\n pos = pos + offset;\n\n gl_Position = vec4(pos, 0.0, 1.0);\n\n int yIndex = gl_InstanceID / gridSize[0];\n int xIndex = gl_InstanceID - (yIndex * gridSize[0]);\n\n vec2 yIndexFP64 = vec2(float(yIndex), 0.);\n vec2 xIndexFP64 = vec2(float(xIndex), 0.);\n vec2 gridSizeYFP64 = vec2(gridSize[1], 0.);\n vec2 gridSizeXFP64 = vec2(gridSize[0], 0.);\n\n vec2 texCoordXFP64 = div_fp64(yIndexFP64, gridSizeYFP64);\n vec2 texCoordYFP64 = div_fp64(xIndexFP64, gridSizeXFP64);\n\n vTextureCoord = vec2(texCoordYFP64.x, texCoordXFP64.x);\n gl_PointSize = 1.0;\n}\n",fs:"#version 300 es\n#define SHADER_NAME gpu-aggregation-all-fs\n\nprecision highp float;\n\nin vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform bool combineMaxMin;\nout vec4 fragColor;\nvoid main(void) {\n vec4 textureColor = texture(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));\n if (textureColor.a == 0.) {\n discard;\n }\n fragColor.rgb = textureColor.rgb;\n fragColor.a = combineMaxMin ? textureColor.r : textureColor.a;\n}\n",modules:[M],vertexCount:1,drawMode:0,isInstanced:!0,instanceCount:t,attributes:{position:[0,0]}})}var ee=[[255,255,178],[254,217,118],[254,178,76],[253,141,60],[240,59,32],[189,0,38]];function te(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Float32Array;if(Number.isFinite(e[0]))t=new r(e);else{t=new r(4*e.length);for(var i=0,o=0;o<e.length;o++){var a=e[o];t[i++]=a[0],t[i++]=a[1],t[i++]=a[2],t[i++]=Number.isFinite(a[3])?a[3]:255}}if(n)for(var s=0;s<t.length;s++)t[s]/=255;return t}function ne(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function re(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ne(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ne(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ie(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v()(e);if(t){var i=v()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return p()(this,n)}}var oe=[0,0,0,0],ae=[0,255,0,255],se=["minColor","maxColor","colorRange","colorDomain"],ue={cellSizePixels:{value:100,min:1},cellMarginPixels:{value:2,min:0,max:5},colorDomain:null,colorRange:ee},le=function(e){f()(n,e);var t=ie(n);function n(){var e;i()(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return e=t.call.apply(t,[this].concat(o)),y()(u()(e),"state",void 0),e}return a()(n,[{key:"getShaders",value:function(){return{vs:"#define SHADER_NAME screen-grid-layer-vertex-shader\n#define RANGE_COUNT 6\n\nattribute vec3 positions;\nattribute vec3 instancePositions;\nattribute vec4 instanceCounts;\nattribute vec3 instancePickingColors;\n\nuniform float opacity;\nuniform vec3 cellScale;\nuniform vec4 minColor;\nuniform vec4 maxColor;\nuniform vec4 colorRange[RANGE_COUNT];\nuniform vec2 colorDomain;\nuniform bool shouldUseMinMax;\nuniform sampler2D maxTexture;\n\nvarying vec4 vColor;\nvarying float vSampleCount;\n\nvec4 quantizeScale(vec2 domain, vec4 range[RANGE_COUNT], float value) {\n vec4 outColor = vec4(0., 0., 0., 0.);\n if (value >= domain.x && value <= domain.y) {\n float domainRange = domain.y - domain.x;\n if (domainRange <= 0.) {\n outColor = colorRange[0];\n } else {\n float rangeCount = float(RANGE_COUNT);\n float rangeStep = domainRange / rangeCount;\n float idx = floor((value - domain.x) / rangeStep);\n idx = clamp(idx, 0., rangeCount - 1.);\n int intIdx = int(idx);\n outColor = colorRange[intIdx];\n }\n }\n outColor = outColor / 255.;\n return outColor;\n}\n\nvoid main(void) {\n vSampleCount = instanceCounts.a;\n\n float weight = instanceCounts.r;\n float maxWeight = texture2D(maxTexture, vec2(0.5)).r;\n\n float step = weight / maxWeight;\n vec4 minMaxColor = mix(minColor, maxColor, step) / 255.;\n\n vec2 domain = colorDomain;\n float domainMaxValid = float(colorDomain.y != 0.);\n domain.y = mix(maxWeight, colorDomain.y, domainMaxValid);\n vec4 rangeColor = quantizeScale(domain, colorRange, weight);\n\n float rangeMinMax = float(shouldUseMinMax);\n vec4 color = mix(rangeColor, minMaxColor, rangeMinMax);\n vColor = vec4(color.rgb, color.a * opacity);\n\n // Set color to be rendered to picking fbo (also used to check for selection highlight).\n picking_setPickingColor(instancePickingColors);\n\n gl_Position = vec4(instancePositions + positions * cellScale, 1.);\n}\n",fs:"#define SHADER_NAME screen-grid-layer-fragment-shader\n\nprecision highp float;\n\nvarying vec4 vColor;\nvarying float vSampleCount;\n\nvoid main(void) {\n if (vSampleCount <= 0.0) {\n discard;\n }\n gl_FragColor = vColor;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n",modules:[x.picking]}}},{key:"initializeState",value:function(){var e=this.context.gl;this.getAttributeManager().addInstanced({instancePositions:{size:3,update:this.calculateInstancePositions},instanceCounts:{size:4,noAlloc:!0}}),this.setState({model:this._getModel(e)})}},{key:"shouldUpdateState",value:function(e){return e.changeFlags.somethingChanged}},{key:"updateState",value:function(e){c()(v()(n.prototype),"updateState",this).call(this,e);var t=e.oldProps,r=e.props,i=e.changeFlags,o=this.getAttributeManager();r.numInstances!==t.numInstances?o.invalidateAll():t.cellSizePixels!==r.cellSizePixels&&o.invalidate("instancePositions"),this._updateUniforms(t,r,i)}},{key:"draw",value:function(e){var t=e.uniforms,n=this.props,r=n.parameters,i=n.maxTexture,o=this.props.minColor||oe,a=this.props.maxColor||ae,s=this.props.colorDomain||[1,0];this.state.model.setUniforms(t).setUniforms({minColor:o,maxColor:a,maxTexture:i,colorDomain:s}).draw({parameters:re({depthTest:!1,depthMask:!1},r)})}},{key:"calculateInstancePositions",value:function(e,t){for(var n=t.numInstances,r=this.context.viewport,i=r.width,o=r.height,a=this.props.cellSizePixels,s=Math.ceil(i/a),u=e.value,l=e.size,c=0;c<n;c++){var g=c%s,f=Math.floor(c/s);u[c*l+0]=g*a/i*2-1,u[c*l+1]=1-f*a/o*2,u[c*l+2]=0}}},{key:"_getModel",value:function(e){return new b.Model(e,re(re({},this.getShaders()),{},{id:this.props.id,geometry:new b.Geometry({drawMode:6,attributes:{positions:new Float32Array([0,0,0,1,0,0,1,1,0,0,1,0])}}),isInstanced:!0}))}},{key:"_shouldUseMinMax",value:function(){var e=this.props,t=e.minColor,n=e.maxColor,r=e.colorDomain,i=e.colorRange;return t||n?(x.log.deprecated("ScreenGridLayer props: minColor and maxColor","colorRange, colorDomain")(),!0):!r&&!i}},{key:"_updateUniforms",value:function(e,t,n){var r=this.state.model;if(se.some((function(n){return e[n]!==t[n]}))&&r.setUniforms({shouldUseMinMax:this._shouldUseMinMax()}),e.colorRange!==t.colorRange&&r.setUniforms({colorRange:te(t.colorRange)}),e.cellMarginPixels!==t.cellMarginPixels||e.cellSizePixels!==t.cellSizePixels||n.viewportChanged){var i=this.context.viewport,o=i.width,a=i.height,s=this.props,u=s.cellSizePixels,l=s.cellMarginPixels,c=u>l?l:0,g=new Float32Array([(u-c)/o*2,-(u-c)/a*2,1]);r.setUniforms({cellScale:g})}}}],[{key:"isSupported",value:function(e){return Object(b.hasFeatures)(e,[b.FEATURES.TEXTURE_FLOAT])}}]),n}(x.Layer);function ce(e,t){var n={};for(var r in e)t.includes(r)||(n[r]=e[r]);return n}function ge(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return fe(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return fe(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function fe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function de(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v()(e);if(t){var i=v()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return p()(this,n)}}y()(le,"layerName","ScreenGridCellLayer"),y()(le,"defaultProps",ue);var pe=function(e){f()(n,e);var t=de(n);function n(){var e;i()(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return e=t.call.apply(t,[this].concat(o)),y()(u()(e),"state",void 0),e}return a()(n,[{key:"initializeAggregationLayer",value:function(e){c()(v()(n.prototype),"initializeState",this).call(this,this.context),this.setState({ignoreProps:ce(this.constructor._propTypes,e.data.props),dimensions:e})}},{key:"updateState",value:function(e){if(c()(v()(n.prototype),"updateState",this).call(this,e),e.changeFlags.extensionsChanged){var t=this.getShaders({});t&&t.defines&&(t.defines.NON_INSTANCED_MODEL=1),this.updateShaders(t)}this._updateAttributes()}},{key:"updateAttributes",value:function(e){this.setState({changedAttributes:e})}},{key:"getAttributes",value:function(){return this.getAttributeManager().getShaderAttributes()}},{key:"getModuleSettings",value:function(){var e=this.context,t=e.viewport,n=e.mousePosition,r=e.gl;return Object.assign(Object.create(this.props),{viewport:t,mousePosition:n,pickingActive:0,devicePixelRatio:Object(b.cssToDeviceRatio)(r)})}},{key:"updateShaders",value:function(e){}},{key:"isAggregationDirty",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.props,r=e.oldProps,i=e.changeFlags,o=t.compareAll,a=void 0!==o&&o,s=t.dimension,u=this.state.ignoreProps,l=s.props,c=s.accessors,g=void 0===c?[]:c,f=i.updateTriggersChanged;if(i.dataChanged)return!0;if(f){if(f.all)return!0;var d,p=ge(g);try{for(p.s();!(d=p.n()).done;){var h=d.value;if(f[h])return!0}}catch(e){p.e(e)}finally{p.f()}}if(a)return!!i.extensionsChanged||Object(x._compareProps)({oldProps:r,newProps:n,ignoreProps:u,propTypes:this.constructor._propTypes});var v,m=ge(l);try{for(m.s();!(v=m.n()).done;){var y=v.value;if(n[y]!==r[y])return!0}}catch(e){m.e(e)}finally{m.f()}return!1}},{key:"isAttributeChanged",value:function(e){var t=this.state.changedAttributes;return e?t&&void 0!==t[e]:!function(e){var t=!0;for(var n in e){t=!1;break}return t}(t)}},{key:"_getAttributeManager",value:function(){return new x.AttributeManager(this.context.gl,{id:this.props.id,stats:this.context.stats})}}]),n}(x.CompositeLayer);y()(pe,"layerName","AggregationLayer");var he=n(10),ve=n.n(he);function me(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return ye(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ye(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function ye(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function xe(e,t,n){var r=n;return r.domain=function(){return e},r.range=function(){return t},r}function be(e,t){return xe(e,t,(function(n){return function(e,t,n){var r=e[1]-e[0];if(r<=0)return x.log.warn("quantizeScale: invalid domain, returning range[0]")(),t[0];var i=r/t.length,o=Math.floor((n-e[0])/i),a=Math.max(Math.min(o,t.length-1),0);return t[a]}(e,t,n)}))}function Se(e,t){return xe(e,t,(function(n){return function(e,t,n){return(n-e[0])/(e[1]-e[0])*(t[1]-t[0])+t[0]}(e,t,n)}))}function Oe(e,t){for(var n=e.sort(we),r=0,i=Math.max(1,t.length),o=new Array(i-1);++r<i;)o[r-1]=Ae(n,r/i);var a=function(e){return function(e,t,n){return t[function(e,t){var n=0,r=e.length;for(;n<r;){var i=n+r>>>1;we(e[i],t)>0?r=i:n=i+1}return n}(e,n)]}(o,t,e)};return a.thresholds=function(){return o},xe(e,t,a)}function we(e,t){return e-t}function Ae(e,t){var n=e.length;if(t<=0||n<2)return e[0];if(t>=1)return e[n-1];var r=(n-1)*t,i=Math.floor(r),o=e[i];return o+(e[i+1]-o)*(r-i)}function Pe(e,t){var n,r=new Map,i=[],o=me(e);try{for(o.s();!(n=o.n()).done;){var a=n.value,s="".concat(a);r.has(s)||r.set(s,i.push(a))}}catch(e){o.e(e)}finally{o.f()}return xe(e,t,(function(e){return function(e,t,n,r){var i="".concat(r),o=t.get(i);return void 0===o&&(o=e.push(r),t.set(i,o)),n[(o-1)%n.length]}(i,r,t,e)}))}function _e(e){return null!=e}function Me(e,t){return("function"==typeof t?e.map(t):e).filter(_e)}function De(e,t){return Me(e,t)}function Ce(e,t){return n=Me(e,t),r=[],n.forEach((function(e){!r.includes(e)&&_e(e)&&r.push(e)})),r;var n,r}function Te(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Ee(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ee(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function Ee(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var je=function(e){return e.length},Re=function(e){return e.points},ke=function(e){return e.index},Ne=function(e,t){return e<t?-1:e>t?1:e>=t?0:NaN},Be={getValue:je,getPoints:Re,getIndex:ke,filterData:null},ze=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Be;i()(this,e),y()(this,"maxCount",void 0),y()(this,"maxValue",void 0),y()(this,"minValue",void 0),y()(this,"totalCount",void 0),y()(this,"aggregatedBins",void 0),y()(this,"sortedBins",void 0),y()(this,"binMap",void 0),this.aggregatedBins=this.getAggregatedBins(t,n),this._updateMinMaxValues(),this.binMap=this.getBinMap()}return a()(e,[{key:"getAggregatedBins",value:function(e,t){for(var n=t.getValue,r=void 0===n?je:n,i=t.getPoints,o=void 0===i?Re:i,a=t.getIndex,s=void 0===a?ke:a,u=t.filterData,l="function"==typeof u,c=e.length,g=[],f=0,d=0;d<c;d++){var p=e[d],h=o(p),v=s(p),m=l?h.filter(u):h;p.filteredPoints=l?m:null;var y=m.length?r(m):null;null!=y&&(g[f]={i:Number.isFinite(v)?v:d,value:y,counts:m.length},f++)}return g}},{key:"_percentileToIndex",value:function(e){var t=this.sortedBins.length;if(t<2)return[0,0];var n=e.map((function(e){return t=e,n=0,r=100,Math.max(n,Math.min(r,t));var t,n,r})),r=ve()(n,2),i=r[0],o=r[1];return[Math.ceil(i/100*(t-1)),Math.floor(o/100*(t-1))]}},{key:"getBinMap",value:function(){var e,t={},n=Te(this.aggregatedBins);try{for(n.s();!(e=n.n()).done;){var r=e.value;t[r.i]=r}}catch(e){n.e(e)}finally{n.f()}return t}},{key:"_updateMinMaxValues",value:function(){var e,t=0,n=0,r=3402823466e29,i=0,o=Te(this.aggregatedBins);try{for(o.s();!(e=o.n()).done;){var a=e.value;t=t>a.counts?t:a.counts,n=n>a.value?n:a.value,r=r<a.value?r:a.value,i+=a.counts}}catch(e){o.e(e)}finally{o.f()}this.maxCount=t,this.maxValue=n,this.minValue=r,this.totalCount=i}},{key:"getValueRange",value:function(e){if(this.sortedBins||(this.sortedBins=this.aggregatedBins.sort((function(e,t){return Ne(e.value,t.value)}))),!this.sortedBins.length)return[];var t=0,n=this.sortedBins.length-1;if(Array.isArray(e)){var r=this._percentileToIndex(e);t=r[0],n=r[1]}return[this.sortedBins[t].value,this.sortedBins[n].value]}},{key:"getValueDomainByScale",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=ve()(t,2),r=n[0],i=void 0===r?0:r,o=n[1],a=void 0===o?100:o;if(this.sortedBins||(this.sortedBins=this.aggregatedBins.sort((function(e,t){return Ne(e.value,t.value)}))),!this.sortedBins.length)return[];var s=this._percentileToIndex([i,a]);return this._getScaleDomain(e,s)}},{key:"_getScaleDomain",value:function(e,t){var n=ve()(t,2),r=n[0],i=n[1],o=this.sortedBins;switch(e){case"quantize":case"linear":return[o[r].value,o[i].value];case"quantile":return De(o.slice(r,i+1),(function(e){return e.value}));case"ordinal":return Ce(o,(function(e){return e.value}));default:return[o[r].value,o[i].value]}}}]),e}();function Ie(e){return Number.isFinite(e)?e:0}function Fe(e,t){for(var n,r,i=e.positions.value,o=1/0,a=-1/0,s=1/0,u=-1/0,l=0;l<t;l++)r=i[3*l],o=(n=i[3*l+1])<o?n:o,a=n>a?n:a,s=r<s?r:s,u=r>u?r:u;return{xMin:Ie(s),xMax:Ie(u),yMin:Ie(o),yMax:Ie(a)}}function Ue(e,t){var n=e<0?-1:1,r=n<0?Math.abs(e)+t:Math.abs(e);return(r=Math.floor(r/t)*t)*n}function Le(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!n)return{xOffset:t,yOffset:t};var r=e.yMin,i=e.yMax,o=(r+i)/2;return Ge(t,o)}function We(e,t,n,r){var i=Le(e,t,r!==x.COORDINATE_SYSTEM.CARTESIAN),o=function(e,t,n,r){var i=r.width,o=r.height,a=n===x.COORDINATE_SYSTEM.CARTESIAN?[-i/2,-o/2]:[-180,-90];x.log.assert(n===x.COORDINATE_SYSTEM.CARTESIAN||n===x.COORDINATE_SYSTEM.LNGLAT||n===x.COORDINATE_SYSTEM.DEFAULT);var s=e.xMin,u=e.yMin;return[-1*(Ue(s-a[0],t.xOffset)+a[0]),-1*(Ue(u-a[1],t.yOffset)+a[1])]}(e,i,r,n),a=e.xMin,s=e.yMin,u=e.xMax,l=e.yMax,c=u-a+i.xOffset,g=l-s+i.yOffset;return{gridOffset:i,translation:o,width:c,height:g,numCol:Math.ceil(c/i.xOffset),numRow:Math.ceil(g/i.yOffset)}}function Ge(e,t){var n;return{yOffset:e/6378e3*(180/Math.PI),xOffset:(n=t,e/6378e3*(180/Math.PI)/Math.cos(n*Math.PI/180))}}function Ve(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function He(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ve(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ve(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function qe(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Ye(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ye(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function Ye(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Xe(e,t){var n=function(e,t){var n=e.data,r=void 0===n?[]:n,i=e.cellSize,o=t.attributes,a=t.viewport,s=t.projectPoints,u=t.numInstances,l=o.positions.value,c=o.positions.getAccessor().size,g=t.boundingBox||function(e,t){for(var n,r,i=e.value,o=e.getAccessor().size,a=1/0,s=-1/0,u=1/0,l=-1/0,c=0;c<t;c++)r=i[c*o],n=i[c*o+1],Number.isFinite(r)&&Number.isFinite(n)&&(a=n<a?n:a,s=n>s?n:s,u=r<u?r:u,l=r>l?r:l);return{xMin:u,xMax:l,yMin:a,yMax:s}}(o.positions,u),f=t.posOffset||[180,90],d=t.gridOffset||Le(g,i);if(d.xOffset<=0||d.yOffset<=0)return{gridHash:{},gridOffset:d};var p,h=a.width,v=a.height,m=Math.ceil(h/d.xOffset),y=Math.ceil(v/d.yOffset),b={},S=Object(x.createIterable)(r),O=S.iterable,w=S.objectInfo,A=new Array(3),P=qe(O);try{for(P.s();!(p=P.n()).done;){var _=p.value;w.index++,A[0]=l[w.index*c],A[1]=l[w.index*c+1],A[2]=c>=3?l[w.index*c+2]:0;var M=s?a.project(A):A,D=ve()(M,2),C=D[0],T=D[1];if(Number.isFinite(C)&&Number.isFinite(T)){var E=Math.floor((T+f[1])/d.yOffset),j=Math.floor((C+f[0])/d.xOffset);if(!s||j>=0&&j<m&&E>=0&&E<y){var R="".concat(E,"-").concat(j);b[R]=b[R]||{count:0,points:[],lonIdx:j,latIdx:E},b[R].count+=1,b[R].points.push({source:_,index:w.index})}}}}catch(e){P.e(e)}finally{P.f()}return{gridHash:b,gridOffset:d,offsets:[-1*f[0],-1*f[1]]}}(e,t),r=function(e){var t=e.gridHash,n=e.gridOffset,r=e.offsets,i=new Array(Object.keys(t).length),o=0;for(var a in t){var s=a.split("-"),u=parseInt(s[0],10),l=parseInt(s[1],10),c=o++;i[c]=He({index:c,position:[r[0]+n.xOffset*l,r[1]+n.yOffset*u]},t[a])}return i}(n);return{gridHash:n.gridHash,gridOffset:n.gridOffset,data:r}}function Ke(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return $e(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return $e(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function $e(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Qe(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v()(e);if(t){var i=v()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return p()(this,n)}}var Ze=function(e){f()(n,e);var t=Qe(n);function n(){var e;i()(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return e=t.call.apply(t,[this].concat(o)),y()(u()(e),"state",void 0),e}return a()(n,[{key:"initializeAggregationLayer",value:function(e){var t=e.dimensions,r=this.context.gl;c()(v()(n.prototype),"initializeAggregationLayer",this).call(this,t),this.setState({layerData:{},gpuGridAggregator:new Q(r,{id:"".concat(this.id,"-gpu-aggregator")}),cpuGridAggregator:Xe})}},{key:"updateState",value:function(e){c()(v()(n.prototype),"updateState",this).call(this,e),this.updateAggregationState(e);var t=this.state,r=t.aggregationDataDirty,i=t.aggregationWeightsDirty,o=t.gpuAggregation;if(!(this.getNumInstances()<=0)){var a=!1;(r||o&&i)&&(this._updateAggregation(e),a=!0),o||!r&&!i||(this._updateWeightBins(),this._uploadAggregationResults(),a=!0),this.setState({aggregationDirty:a})}}},{key:"finalizeState",value:function(e){var t,r=this.state.weights.count;r&&r.aggregationBuffer&&r.aggregationBuffer.delete(),null===(t=this.state.gpuGridAggregator)||void 0===t||t.delete(),c()(v()(n.prototype),"finalizeState",this).call(this,e)}},{key:"updateShaders",value:function(e){this.state.gpuAggregation&&this.state.gpuGridAggregator.updateShaders(e)}},{key:"updateAggregationState",value:function(e){x.log.assert(!1)}},{key:"allocateResources",value:function(e,t){if(this.state.numRow!==e||this.state.numCol!==t){var n=t*e*4*4,r=this.context.gl,i=this.state.weights;for(var o in i){var a=i[o];a.aggregationBuffer&&a.aggregationBuffer.delete(),a.aggregationBuffer=new b.Buffer(r,{byteLength:n,accessor:{size:4,type:5126,divisor:1}})}}}},{key:"updateResults",value:function(e){var t=e.aggregationData,n=e.maxMinData,r=e.maxData,i=e.minData,o=this.state.weights.count;o&&(o.aggregationData=t,o.maxMinData=n,o.maxData=r,o.minData=i)}},{key:"_updateAggregation",value:function(e){var t=this.state,n=t.cpuGridAggregator,r=t.gpuGridAggregator,i=t.gridOffset,o=t.posOffset,a=t.translation,s=void 0===a?[0,0]:a,u=t.scaling,l=void 0===u?[0,0,0]:u,c=t.boundingBox,g=t.projectPoints,f=t.gpuAggregation,d=t.numCol,p=t.numRow,h=e.props,v=this.context.viewport,m=this.getAttributes(),y=this.getNumInstances();if(f){var x=this.state.weights;r.run({weights:x,cellSize:[i.xOffset,i.yOffset],numCol:d,numRow:p,translation:s,scaling:l,vertexCount:y,projectPoints:g,attributes:m,moduleSettings:this.getModuleSettings()})}else{var b=n(h,{gridOffset:i,projectPoints:g,attributes:m,viewport:v,posOffset:o,boundingBox:c});this.setState({layerData:b})}}},{key:"_updateWeightBins",value:function(){var e=this.state.getValue,t=new ze(this.state.layerData.data||[],{getValue:e});this.setState({sortedBins:t})}},{key:"_uploadAggregationResults",value:function(){var e,t=this.state,n=t.numCol,r=t.numRow,i=this.state.layerData.data,o=this.state.sortedBins,a=o.aggregatedBins,s=o.minValue,u=o.maxValue,l=o.totalCount,c=new Float32Array(n*r*4).fill(0),g=Ke(a);try{for(g.s();!(e=g.n()).done;){var f=e.value,d=i[f.i],p=d.lonIdx,h=d.latIdx,v=f.value,m=f.counts,y=4*(p+h*n);c[y]=v,c[y+4-1]=m}}catch(e){g.e(e)}finally{g.f()}var x=new Float32Array([u,0,0,s]),b=new Float32Array([u,0,0,l]),S=new Float32Array([s,0,0,l]);this.updateResults({aggregationData:c,maxMinData:x,maxData:b,minData:S})}}]),n}(pe);function Je(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v()(e);if(t){var i=v()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return p()(this,n)}}function et(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function tt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?et(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):et(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}y()(Ze,"layerName","GridAggregationLayer");var nt=tt(tt({},le.defaultProps),{},{getPosition:{type:"accessor",value:function(e){return e.position}},getWeight:{type:"accessor",value:1},gpuAggregation:!0,aggregation:"SUM"}),rt={data:{props:["cellSizePixels"]},weights:{props:["aggregation"],accessors:["getWeight"]}},it=function(e){f()(n,e);var t=Je(n);function n(){var e;i()(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return e=t.call.apply(t,[this].concat(o)),y()(u()(e),"state",void 0),e}return a()(n,[{key:"initializeState",value:function(){var e,t=this.context.gl;if(!le.isSupported(t))return this.setState({supported:!1}),void x.log.error("ScreenGridLayer: ".concat(this.id," is not supported on this browser"))();c()(v()(n.prototype),"initializeAggregationLayer",this).call(this,{dimensions:rt,getCellSize:function(e){return e.cellSizePixels}});var r={count:{size:1,operation:D.SUM,needMax:!0,maxTexture:W(t,{id:"".concat(this.id,"-max-texture")})}};this.setState({supported:!0,projectPoints:!0,weights:r,subLayerData:{attributes:{}},maxTexture:r.count.maxTexture,positionAttributeName:"positions",posOffset:[0,0],translation:[1,-1]}),this.getAttributeManager().add((e={},y()(e,"positions",{size:3,accessor:"getPosition",type:5130,fp64:this.use64bitPositions()}),y()(e,"count",{size:3,accessor:"getWeight"}),e))}},{key:"shouldUpdateState",value:function(e){var t=e.changeFlags;return this.state.supported&&t.somethingChanged}},{key:"updateState",value:function(e){c()(v()(n.prototype),"updateState",this).call(this,e)}},{key:"renderLayers",value:function(){if(!this.state.supported)return[];var e=this.state,t=e.maxTexture,n=e.numRow,r=e.numCol,i=e.weights,o=this.props.updateTriggers,a=i.count.aggregationBuffer;return new(this.getSubLayerClass("cells",le))(this.props,this.getSubLayerProps({id:"cell-layer",updateTriggers:o}),{data:{attributes:{instanceCounts:a}},maxTexture:t,numInstances:n*r})}},{key:"finalizeState",value:function(e){c()(v()(n.prototype),"finalizeState",this).call(this,e);var t=this.state,r=t.aggregationBuffer,i=t.maxBuffer,o=t.maxTexture;null==r||r.delete(),null==i||i.delete(),null==o||o.delete()}},{key:"getPickingInfo",value:function(e){var t=e.info,n=t.index;if(n>=0){var r=this.state,i=r.gpuGridAggregator,o=r.gpuAggregation,a=r.weights,s=o?i.getData("count"):a.count;t.object=Q.getAggregationData(tt({pixelIndex:n},s))}return t}},{key:"updateResults",value:function(e){var t=e.aggregationData,n=e.maxData,r=this.state.weights.count;r.aggregationData=t,r.aggregationBuffer.setData({data:t}),r.maxData=n,r.maxTexture.setImageData({data:n})}},{key:"updateAggregationState",value:function(e){var t=e.props.cellSizePixels,n=e.oldProps.cellSizePixels!==t,r=e.changeFlags.viewportChanged,i=e.props.gpuAggregation;this.state.gpuAggregation!==e.props.gpuAggregation&&i&&!Q.isSupported(this.context.gl)&&(x.log.warn("GPU Grid Aggregation not supported, falling back to CPU")(),i=!1);var o=i!==this.state.gpuAggregation;this.setState({gpuAggregation:i});var a=this.isAttributeChanged("positions"),s=this.state.dimensions,u=s.data,l=s.weights,c=a||o||r||this.isAggregationDirty(e,{compareAll:i,dimension:u}),g=this.isAggregationDirty(e,{dimension:l});this.setState({aggregationDataDirty:c,aggregationWeightsDirty:g});var f=this.context.viewport;if(r||n){var d=f.width,p=f.height,h=Math.ceil(d/t),v=Math.ceil(p/t);this.allocateResources(v,h),this.setState({scaling:[d/2,-p/2,1],gridOffset:{xOffset:t,yOffset:t},width:d,height:p,numCol:h,numRow:v})}g&&this._updateAccessors(e),(c||g)&&this._resetResults()}},{key:"_updateAccessors",value:function(e){var t=e.props,n=t.getWeight,r=t.aggregation,i=t.data,o=this.state.weights.count;o&&(o.getWeight=n,o.operation=D[r]),this.setState({getValue:j(r,n,{data:i})})}},{key:"_resetResults",value:function(){var e=this.state.weights.count;e&&(e.aggregationData=null)}}]),n}(Ze);y()(it,"layerName","ScreenGridLayer"),y()(it,"defaultProps",nt);var ot=n(11),at=n.n(ot);function st(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ut(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?st(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):st(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function lt(){}var ct=["getBins","getDomain","getScaleFunc"],gt=[{key:"fillColor",accessor:"getFillColor",pickingInfo:"colorValue",getBins:{triggers:{value:{prop:"getColorValue",updateTrigger:"getColorValue"},weight:{prop:"getColorWeight",updateTrigger:"getColorWeight"},aggregation:{prop:"colorAggregation"},filterData:{prop:"_filterData",updateTrigger:"_filterData"}}},getDomain:{triggers:{lowerPercentile:{prop:"lowerPercentile"},upperPercentile:{prop:"upperPercentile"},scaleType:{prop:"colorScaleType"}}},getScaleFunc:{triggers:{domain:{prop:"colorDomain"},range:{prop:"colorRange"}},onSet:{props:"onSetColorDomain"}},nullValue:[0,0,0,0]},{key:"elevation",accessor:"getElevation",pickingInfo:"elevationValue",getBins:{triggers:{value:{prop:"getElevationValue",updateTrigger:"getElevationValue"},weight:{prop:"getElevationWeight",updateTrigger:"getElevationWeight"},aggregation:{prop:"elevationAggregation"},filterData:{prop:"_filterData",updateTrigger:"_filterData"}}},getDomain:{triggers:{lowerPercentile:{prop:"elevationLowerPercentile"},upperPercentile:{prop:"elevationUpperPercentile"},scaleType:{prop:"elevationScaleType"}}},getScaleFunc:{triggers:{domain:{prop:"elevationDomain"},range:{prop:"elevationRange"}},onSet:{props:"onSetElevationDomain"}},nullValue:-1}],ft=function(e){return e.cellSize},dt=function(){function e(t){i()(this,e),this.state={layerData:{},dimensions:{}},this.changeFlags={},this.dimensionUpdaters={},this._getCellSize=t.getCellSize||ft,this._getAggregator=t.getAggregator,this._addDimension(t.dimensions||gt)}return a()(e,[{key:"updateState",value:function(e,t){var n=e.oldProps,r=e.props,i=e.changeFlags;this.updateGetValueFuncs(n,r,i);var o=this.needsReProjectPoints(n,r,i),a=!1;i.dataChanged||o?(this.getAggregatedData(r,t),a=!0):((this.getDimensionChanges(n,r,i)||[]).forEach((function(e){return"function"==typeof e&&e()})),a=!0);return this.setState({aggregationDirty:a}),this.state}},{key:"setState",value:function(e){this.state=ut(ut({},this.state),e)}},{key:"setDimensionState",value:function(e,t){this.setState({dimensions:ut(ut({},this.state.dimensions),{},y()({},e,ut(ut({},this.state.dimensions[e]),t)))})}},{key:"normalizeResult",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.hexagons?ut({data:e.hexagons},e):e.layerData?ut({data:e.layerData},e):e}},{key:"getAggregatedData",value:function(e,t){var n=this._getAggregator(e)(e,t);this.setState({layerData:this.normalizeResult(n)}),this.changeFlags={layerData:!0},this.getSortedBins(e)}},{key:"updateGetValueFuncs",value:function(e,t,n){for(var r in this.dimensionUpdaters){var i=this.dimensionUpdaters[r].getBins.triggers,o=i.value,a=i.weight,s=i.aggregation,u=t[o.prop];this.needUpdateDimensionStep(this.dimensionUpdaters[r].getBins,e,t,n)&&(u=u?R(u,{data:t.data}):j(t[s.prop],t[a.prop],{data:t.data})),u&&this.setDimensionState(r,{getValue:u})}}},{key:"needsReProjectPoints",value:function(e,t,n){return this._getCellSize(e)!==this._getCellSize(t)||this._getAggregator(e)!==this._getAggregator(t)||n.updateTriggersChanged&&(n.updateTriggersChanged.all||n.updateTriggersChanged.getPosition)}},{key:"addDimension",value:function(e){this._addDimension(e)}},{key:"_addDimension",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];t.forEach((function(t){var n=t.key;e.dimensionUpdaters[n]=e.getDimensionUpdaters(t),e.state.dimensions[n]={getValue:null,domain:null,sortedBins:null,scaleFunc:lt}}))}},{key:"getDimensionUpdaters",value:function(e){var t=e.key,n=e.accessor,r=e.pickingInfo,i=e.getBins,o=e.getDomain,a=e.getScaleFunc,s=e.nullValue;return{key:t,accessor:n,pickingInfo:r,getBins:ut({updater:this.getDimensionSortedBins},i),getDomain:ut({updater:this.getDimensionValueDomain},o),getScaleFunc:ut({updater:this.getDimensionScale},a),attributeAccessor:this.getSubLayerDimensionAttribute(t,s)}}},{key:"needUpdateDimensionStep",value:function(e,t,n,r){return Object.values(e.triggers).some((function(e){return e.updateTrigger?r.dataChanged||r.updateTriggersChanged&&(r.updateTriggersChanged.all||r.updateTriggersChanged[e.updateTrigger]):t[e.prop]!==n[e.prop]}))}},{key:"getDimensionChanges",value:function(e,t,n){var r=this,i=[],o=function(o){var a=ct.find((function(i){return r.needUpdateDimensionStep(r.dimensionUpdaters[o][i],e,t,n)}));a&&i.push(r.dimensionUpdaters[o][a].updater.bind(r,t,r.dimensionUpdaters[o]))};for(var a in this.dimensionUpdaters)o(a);return i.length?i:null}},{key:"getUpdateTriggers",value:function(e){var t=this,n=e.updateTriggers||{},r={},i=function(i){var o=t.dimensionUpdaters[i].accessor;r[o]={},ct.forEach((function(a){Object.values(t.dimensionUpdaters[i][a].triggers).forEach((function(t){var i=t.prop,a=t.updateTrigger;if(a){var s=n[a];"object"!==at()(s)||Array.isArray(s)?void 0!==s&&(r[o][i]=s):Object.assign(r[o],s)}else r[o][i]=e[i]}))}))};for(var o in this.dimensionUpdaters)i(o);return r}},{key:"getSortedBins",value:function(e){for(var t in this.dimensionUpdaters)this.getDimensionSortedBins(e,this.dimensionUpdaters[t])}},{key:"getDimensionSortedBins",value:function(e,t){var n=t.key,r=this.state.dimensions[n].getValue,i=new ze(this.state.layerData.data||[],{getValue:r,filterData:e._filterData});this.setDimensionState(n,{sortedBins:i}),this.getDimensionValueDomain(e,t)}},{key:"getDimensionValueDomain",value:function(e,t){var n=t.getDomain,r=t.key,i=n.triggers,o=i.lowerPercentile,a=i.upperPercentile,s=i.scaleType,u=this.state.dimensions[r].sortedBins.getValueDomainByScale(e[s.prop],[e[o.prop],e[a.prop]]);this.setDimensionState(r,{valueDomain:u}),this.getDimensionScale(e,t)}},{key:"getDimensionScale",value:function(e,t){var n=t.key,r=t.getScaleFunc,i=t.getDomain,o=r.triggers,a=o.domain,s=o.range,u=i.triggers.scaleType,l=r.onSet,c=e[s.prop],g=e[a.prop]||this.state.dimensions[n].valueDomain,f=function(e){switch(e){case"quantize":return be;case"linear":return Se;case"quantile":return Oe;case"ordinal":return Pe;default:return be}}(u&&e[u.prop])(g,c);"object"===at()(l)&&"function"==typeof e[l.props]&&e[l.props](f.domain()),this.setDimensionState(n,{scaleFunc:f})}},{key:"getSubLayerDimensionAttribute",value:function(e,t){var n=this;return function(r){var i=n.state.dimensions[e],o=i.sortedBins,a=i.scaleFunc,s=o.binMap[r.index];if(s&&0===s.counts)return t;var u=s&&s.value,l=a.domain();return u>=l[0]&&u<=l[l.length-1]?a(u):t}}},{key:"getSubLayerAccessors",value:function(e){var t={};for(var n in this.dimensionUpdaters){t[this.dimensionUpdaters[n].accessor]=this.getSubLayerDimensionAttribute(e,n)}return t}},{key:"getPickingInfo",value:function(e){var t=e.info,n=null;if(t.picked&&t.index>-1){var r=this.state.layerData.data[t.index],i={};for(var o in this.dimensionUpdaters){var a=this.dimensionUpdaters[o].pickingInfo,s=this.state.dimensions[o].sortedBins,u=s.binMap[r.index]&&s.binMap[r.index].value;i[a]=u}n=Object.assign(i,r,{points:r.filteredPoints||r.points})}return t.picked=Boolean(n),t.object=n,t}},{key:"getAccessor",value:function(e){return this.dimensionUpdaters.hasOwnProperty(e)?this.dimensionUpdaters[e].attributeAccessor:lt}}],[{key:"defaultDimensions",value:function(){return gt}}]),e}();function pt(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v()(e);if(t){var i=v()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return p()(this,n)}}function ht(){}var vt={colorDomain:null,colorRange:ee,getColorValue:{type:"accessor",value:null},getColorWeight:{type:"accessor",value:1},colorAggregation:"SUM",lowerPercentile:{type:"number",min:0,max:100,value:0},upperPercentile:{type:"number",min:0,max:100,value:100},colorScaleType:"quantize",onSetColorDomain:ht,elevationDomain:null,elevationRange:[0,1e3],getElevationValue:{type:"accessor",value:null},getElevationWeight:{type:"accessor",value:1},elevationAggregation:"SUM",elevationLowerPercentile:{type:"number",min:0,max:100,value:0},elevationUpperPercentile:{type:"number",min:0,max:100,value:100},elevationScale:{type:"number",min:0,value:1},elevationScaleType:"linear",onSetElevationDomain:ht,gridAggregator:Xe,cellSize:{type:"number",min:0,max:1e3,value:1e3},coverage:{type:"number",min:0,max:1,value:1},getPosition:{type:"accessor",value:function(e){return e.position}},extruded:!1,material:!0,_filterData:{type:"function",value:null,optional:!0}},mt=function(e){f()(n,e);var t=pt(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"initializeState",value:function(){var e=new dt({getAggregator:function(e){return e.gridAggregator},getCellSize:function(e){return e.cellSize}});this.state={cpuAggregator:e,aggregatorState:e.state},this.getAttributeManager().add({positions:{size:3,type:5130,accessor:"getPosition"}})}},{key:"updateState",value:function(e){c()(v()(n.prototype),"updateState",this).call(this,e),this.setState({aggregatorState:this.state.cpuAggregator.updateState(e,{viewport:this.context.viewport,attributes:this.getAttributes(),numInstances:this.getNumInstances()})})}},{key:"getPickingInfo",value:function(e){var t=e.info;return this.state.cpuAggregator.getPickingInfo({info:t})}},{key:"_onGetSublayerColor",value:function(e){return this.state.cpuAggregator.getAccessor("fillColor")(e)}},{key:"_onGetSublayerElevation",value:function(e){return this.state.cpuAggregator.getAccessor("elevation")(e)}},{key:"_getSublayerUpdateTriggers",value:function(){return this.state.cpuAggregator.getUpdateTriggers(this.props)}},{key:"renderLayers",value:function(){var e=this.props,t=e.elevationScale,n=e.extruded,r=e.cellSize,i=e.coverage,o=e.material,a=e.transitions,s=this.state.cpuAggregator,u=this.getSubLayerClass("grid-cell",x.GridCellLayer),l=this._getSublayerUpdateTriggers();return new u({cellSize:r,coverage:i,material:o,elevationScale:t,extruded:n,getFillColor:this._onGetSublayerColor.bind(this),getElevation:this._onGetSublayerElevation.bind(this),transitions:a&&{getFillColor:a.getColorValue||a.getColorWeight,getElevation:a.getElevationValue||a.getElevationWeight}},this.getSubLayerProps({id:"grid-cell",updateTriggers:l}),{data:s.state.layerData.data})}}]),n}(pe);y()(mt,"layerName","CPUGridLayer"),y()(mt,"defaultProps",vt);var yt=Math.PI/3,xt=[0,yt,2*yt,3*yt,4*yt,5*yt];function bt(e){return e[0]}function St(e){return e[1]}function Ot(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return wt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return wt(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function wt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function At(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?At(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):At(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _t(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v()(e);if(t){var i=v()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return p()(this,n)}}function Mt(){}var Dt,Ct={colorDomain:null,colorRange:ee,getColorValue:{type:"accessor",value:null},getColorWeight:{type:"accessor",value:1},colorAggregation:"SUM",lowerPercentile:{type:"number",value:0,min:0,max:100},upperPercentile:{type:"number",value:100,min:0,max:100},colorScaleType:"quantize",onSetColorDomain:Mt,elevationDomain:null,elevationRange:[0,1e3],getElevationValue:{type:"accessor",value:null},getElevationWeight:{type:"accessor",value:1},elevationAggregation:"SUM",elevationLowerPercentile:{type:"number",value:0,min:0,max:100},elevationUpperPercentile:{type:"number",value:100,min:0,max:100},elevationScale:{type:"number",min:0,value:1},elevationScaleType:"linear",onSetElevationDomain:Mt,radius:{type:"number",value:1e3,min:1},coverage:{type:"number",min:0,max:1,value:1},extruded:!1,hexagonAggregator:function(e,t){var n,r=e.data,i=e.radius,o=t.viewport,a=t.attributes,s=r.length?function(e,t){var n,r=t.attributes,i=r.positions.value,o=r.positions.getAccessor().size,a=1/0,s=1/0,u=-1/0,l=-1/0;for(n=0;n<o*e.length;n+=o){var c=i[n],g=i[n+1];Number.isFinite(c)&&Number.isFinite(g)&&(a=Math.min(c,a),u=Math.max(c,u),s=Math.min(g,s),l=Math.max(g,l))}return[a,s,u,l].every(Number.isFinite)?[(a+u)/2,(s+l)/2]:null}(r,t):null,u=function(e,t,n){var r=t.getDistanceScales(n).unitsPerMeter;return e*r[0]}(i,o,s),l=[],c=Object(x.createIterable)(r),g=c.iterable,f=c.objectInfo,d=a.positions.value,p=a.positions.getAccessor().size,h=Ot(g);try{for(h.s();!(n=h.n()).done;){var v=n.value;f.index++;var m=f.index*p,y=[d[m],d[m+1]];Number.isFinite(y[0])&&Number.isFinite(y[1])?l.push({screenCoord:o.projectFlat(y),source:v,index:f.index}):x.log.warn("HexagonLayer: invalid position")()}}catch(e){h.e(e)}finally{h.f()}return{hexagons:function(){var e,t,n,r=0,i=0,o=1,a=1,s=bt,u=St;function l(e){var r,i={},o=[],a=e.length;for(r=0;r<a;++r)if(!isNaN(c=+s.call(null,l=e[r],r,e))&&!isNaN(g=+u.call(null,l,r,e))){var l,c,g,f=Math.round(g/=n),d=Math.round(c=c/t-(1&f)/2),p=g-f;if(3*Math.abs(p)>1){var h=c-d,v=d+(c<d?-1:1)/2,m=f+(g<f?-1:1),y=c-v,x=g-m;h*h+p*p>y*y+x*x&&(d=v+(1&f?1:-1)/2,f=m)}var b=d+"-"+f,S=i[b];S?S.push(l):(o.push(S=i[b]=[l]),S.x=(d+(1&f)/2)*t,S.y=f*n)}return o}function c(e){var t=0,n=0;return xt.map((function(r){var i=Math.sin(r)*e,o=-Math.cos(r)*e,a=i-t,s=o-n;return t=i,n=o,[a,s]}))}return l.hexagon=function(t){return"m"+c(null==t?e:+t).join("l")+"z"},l.centers=function(){for(var s=[],u=Math.round(i/n),l=Math.round(r/t),c=u*n;c<a+e;c+=n,++u)for(var g=l*t+(1&u)*t/2;g<o+t/2;g+=t)s.push([g,c]);return s},l.mesh=function(){var t=c(e).slice(0,4).join("l");return l.centers().map((function(e){return"M"+e+"m"+t})).join("")},l.x=function(e){return arguments.length?(s=e,l):s},l.y=function(e){return arguments.length?(u=e,l):u},l.radius=function(r){return arguments.length?(t=2*(e=+r)*Math.sin(yt),n=1.5*e,l):e},l.size=function(e){return arguments.length?(r=i=0,o=+e[0],a=+e[1],l):[o-r,a-i]},l.extent=function(e){return arguments.length?(r=+e[0][0],i=+e[0][1],o=+e[1][0],a=+e[1][1],l):[[r,i],[o,a]]},l.radius(1)}().radius(u).x((function(e){return e.screenCoord[0]})).y((function(e){return e.screenCoord[1]}))(l).map((function(e,t){return{position:o.unprojectFlat([e.x,e.y]),points:e,index:t}})),radiusCommon:u}},getPosition:{type:"accessor",value:function(e){return e.position}},material:!0,_filterData:{type:"function",value:null,optional:!0}},Tt=function(e){f()(n,e);var t=_t(n);function n(){var e;i()(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return e=t.call.apply(t,[this].concat(o)),y()(u()(e),"state",void 0),e}return a()(n,[{key:"initializeState",value:function(){var e=new dt({getAggregator:function(e){return e.hexagonAggregator},getCellSize:function(e){return e.radius}});this.state={cpuAggregator:e,aggregatorState:e.state,vertices:null},this.getAttributeManager().add({positions:{size:3,type:5130,accessor:"getPosition"}})}},{key:"updateState",value:function(e){if(c()(v()(n.prototype),"updateState",this).call(this,e),e.changeFlags.propsOrDataChanged){var t=this.state.cpuAggregator.updateState(e,{viewport:this.context.viewport,attributes:this.getAttributes()});if(this.state.aggregatorState.layerData!==t.layerData){var r=(t.layerData||{}).hexagonVertices;this.setState({vertices:r&&this.convertLatLngToMeterOffset(r)})}this.setState({aggregatorState:t})}}},{key:"convertLatLngToMeterOffset",value:function(e){var t=this.context.viewport;if(Array.isArray(e)&&6===e.length){var n=e[0],r=e[3],i=[(n[0]+r[0])/2,(n[1]+r[1])/2],o=t.projectFlat(i),a=t.getDistanceScales(i).metersPerUnit;return e.map((function(e){var n=t.projectFlat(e);return[(n[0]-o[0])*a[0],(n[1]-o[1])*a[1]]}))}return x.log.error("HexagonLayer: hexagonVertices needs to be an array of 6 points")(),null}},{key:"getPickingInfo",value:function(e){var t=e.info;return this.state.cpuAggregator.getPickingInfo({info:t})}},{key:"_onGetSublayerColor",value:function(e){return this.state.cpuAggregator.getAccessor("fillColor")(e)}},{key:"_onGetSublayerElevation",value:function(e){return this.state.cpuAggregator.getAccessor("elevation")(e)}},{key:"_getSublayerUpdateTriggers",value:function(){return this.state.cpuAggregator.getUpdateTriggers(this.props)}},{key:"renderLayers",value:function(){var e=this.props,t=e.elevationScale,n=e.extruded,r=e.coverage,i=e.material,o=e.transitions,a=this.state,s=a.aggregatorState,u=a.vertices,l=this.getSubLayerClass("hexagon-cell",x.ColumnLayer),c=this._getSublayerUpdateTriggers();return new l(Pt(Pt({},u?{vertices:u,radius:1}:{radius:s.layerData.radiusCommon||1,radiusUnits:"common",angle:90}),{},{diskResolution:6,elevationScale:t,extruded:n,coverage:r,material:i,getFillColor:this._onGetSublayerColor.bind(this),getElevation:this._onGetSublayerElevation.bind(this),transitions:o&&{getFillColor:o.getColorValue||o.getColorWeight,getElevation:o.getElevationValue||o.getElevationWeight}}),this.getSubLayerProps({id:"hexagon-cell",updateTriggers:c}),{data:s.layerData.data})}}]),n}(pe);y()(Tt,"layerName","HexagonLayer"),y()(Tt,"defaultProps",Ct);var Et={N:[0,.5],E:[.5,0],S:[0,-.5],W:[-.5,0],NE:[.5,.5],NW:[-.5,.5],SE:[.5,-.5],SW:[-.5,-.5]},jt=[Et.W,Et.SW,Et.S],Rt=[Et.S,Et.SE,Et.E],kt=[Et.E,Et.NE,Et.N],Nt=[Et.NW,Et.W,Et.N],Bt=[[-.5,1/6],[-.5,-1/6],[-1/6,-.5],[1/6,-.5]],zt=[[-1/6,-.5],[1/6,-.5],[.5,-1/6],[.5,1/6]],It=[[.5,-1/6],[.5,1/6],[1/6,.5],[-1/6,.5]],Ft=[[-.5,1/6],[-.5,-1/6],[1/6,.5],[-1/6,.5]],Ut=[Et.W,Et.SW,Et.SE,Et.E],Lt=[Et.S,Et.SE,Et.NE,Et.N],Wt=[Et.NW,Et.W,Et.E,Et.NE],Gt=[Et.NW,Et.SW,Et.S,Et.N],Vt=[[-.5,1/6],[-.5,-1/6],[.5,-1/6],[.5,1/6]],Ht=[[-1/6,-.5],[1/6,-.5],[1/6,.5],[-1/6,.5]],qt=[Et.NW,Et.SW,Et.SE,Et.NE],Yt=[Et.NW,Et.SW,Et.SE,Et.E,Et.N],Xt=[Et.W,Et.SW,Et.SE,Et.NE,Et.N],Kt=[Et.NW,Et.W,Et.S,Et.SE,Et.NE],$t=[Et.NW,Et.SW,Et.S,Et.E,Et.NE],Qt=[Et.NW,Et.W,[.5,-1/6],[.5,1/6],Et.N],Zt=[[-1/6,-.5],[1/6,-.5],Et.E,Et.NE,Et.N],Jt=[[-.5,1/6],[-.5,-1/6],Et.S,Et.SE,Et.E],en=[Et.W,Et.SW,Et.S,[1/6,.5],[-1/6,.5]],tn=[Et.NW,Et.W,[-1/6,-.5],[1/6,-.5],Et.N],nn=[[-.5,1/6],[-.5,-1/6],Et.E,Et.NE,Et.N],rn=[Et.S,Et.SE,Et.E,[1/6,.5],[-1/6,.5]],on=[Et.W,Et.SW,Et.S,[.5,-1/6],[.5,1/6]],an=[Et.W,Et.SW,Et.SE,Et.E,[1/6,.5],[-1/6,.5]],sn=[[-.5,1/6],[-.5,-1/6],Et.S,Et.SE,Et.NE,Et.N],un=[Et.NW,Et.W,[-1/6,-.5],[1/6,-.5],Et.E,Et.NE],ln=[Et.NW,Et.SW,Et.S,[.5,-1/6],[.5,1/6],Et.N],cn=[Et.W,Et.SW,Et.S,Et.E,Et.NE,Et.N],gn=[Et.NW,Et.W,Et.S,Et.SE,Et.E,Et.N],fn=[[-.5,1/6],[-.5,-1/6],[-1/6,-.5],[1/6,-.5],Et.E,Et.NE,Et.N],dn=[Et.W,Et.SW,Et.S,[.5,-1/6],[.5,1/6],[1/6,.5],[-1/6,.5]],pn=[Et.NW,Et.W,[-1/6,-.5],[1/6,-.5],[.5,-1/6],[.5,1/6],Et.N],hn=[[-.5,1/6],[-.5,-1/6],Et.S,Et.SE,Et.E,[1/6,.5],[-1/6,.5]],vn=[[-.5,1/6],[-.5,-1/6],[-1/6,-.5],[1/6,-.5],[.5,-1/6],[.5,1/6],[1/6,.5],[-1/6,.5]],mn={0:[],1:[[Et.W,Et.S]],2:[[Et.S,Et.E]],3:[[Et.W,Et.E]],4:[[Et.N,Et.E]],5:{0:[[Et.W,Et.S],[Et.N,Et.E]],1:[[Et.W,Et.N],[Et.S,Et.E]]},6:[[Et.N,Et.S]],7:[[Et.W,Et.N]],8:[[Et.W,Et.N]],9:[[Et.N,Et.S]],10:{0:[[Et.W,Et.N],[Et.S,Et.E]],1:[[Et.W,Et.S],[Et.N,Et.E]]},11:[[Et.N,Et.E]],12:[[Et.W,Et.E]],13:[[Et.S,Et.E]],14:[[Et.W,Et.S]],15:[]};function yn(e){return parseInt(e,4)}var xn=(Dt={},y()(Dt,yn("0000"),[]),y()(Dt,yn("2222"),[]),y()(Dt,yn("2221"),[jt]),y()(Dt,yn("2212"),[Rt]),y()(Dt,yn("2122"),[kt]),y()(Dt,yn("1222"),[Nt]),y()(Dt,yn("0001"),[jt]),y()(Dt,yn("0010"),[Rt]),y()(Dt,yn("0100"),[kt]),y()(Dt,yn("1000"),[Nt]),y()(Dt,yn("2220"),[Bt]),y()(Dt,yn("2202"),[zt]),y()(Dt,yn("2022"),[It]),y()(Dt,yn("0222"),[Ft]),y()(Dt,yn("0002"),[Bt]),y()(Dt,yn("0020"),[zt]),y()(Dt,yn("0200"),[It]),y()(Dt,yn("2000"),[Ft]),y()(Dt,yn("0011"),[Ut]),y()(Dt,yn("0110"),[Lt]),y()(Dt,yn("1100"),[Wt]),y()(Dt,yn("1001"),[Gt]),y()(Dt,yn("2211"),[Ut]),y()(Dt,yn("2112"),[Lt]),y()(Dt,yn("1122"),[Wt]),y()(Dt,yn("1221"),[Gt]),y()(Dt,yn("2200"),[Vt]),y()(Dt,yn("2002"),[Ht]),y()(Dt,yn("0022"),[Vt]),y()(Dt,yn("0220"),[Ht]),y()(Dt,yn("1111"),[qt]),y()(Dt,yn("1211"),[Yt]),y()(Dt,yn("2111"),[Xt]),y()(Dt,yn("1112"),[Kt]),y()(Dt,yn("1121"),[$t]),y()(Dt,yn("1011"),[Yt]),y()(Dt,yn("0111"),[Xt]),y()(Dt,yn("1110"),[Kt]),y()(Dt,yn("1101"),[$t]),y()(Dt,yn("1200"),[Qt]),y()(Dt,yn("0120"),[Zt]),y()(Dt,yn("0012"),[Jt]),y()(Dt,yn("2001"),[en]),y()(Dt,yn("1022"),[Qt]),y()(Dt,yn("2102"),[Zt]),y()(Dt,yn("2210"),[Jt]),y()(Dt,yn("0221"),[en]),y()(Dt,yn("1002"),[tn]),y()(Dt,yn("2100"),[nn]),y()(Dt,yn("0210"),[rn]),y()(Dt,yn("0021"),[on]),y()(Dt,yn("1220"),[tn]),y()(Dt,yn("0122"),[nn]),y()(Dt,yn("2012"),[rn]),y()(Dt,yn("2201"),[on]),y()(Dt,yn("0211"),[an]),y()(Dt,yn("2110"),[sn]),y()(Dt,yn("1102"),[un]),y()(Dt,yn("1021"),[ln]),y()(Dt,yn("2011"),[an]),y()(Dt,yn("0112"),[sn]),y()(Dt,yn("1120"),[un]),y()(Dt,yn("1201"),[ln]),y()(Dt,yn("2101"),[cn]),y()(Dt,yn("0121"),[cn]),y()(Dt,yn("1012"),[gn]),y()(Dt,yn("1210"),[gn]),y()(Dt,yn("0101"),{0:[jt,kt],1:[cn],2:[cn]}),y()(Dt,yn("1010"),{0:[Nt,Rt],1:[gn],2:[gn]}),y()(Dt,yn("2121"),{0:[cn],1:[cn],2:[jt,kt]}),y()(Dt,yn("1212"),{0:[gn],1:[gn],2:[Nt,Rt]}),y()(Dt,yn("2120"),{0:[fn],1:[fn],2:[Bt,kt]}),y()(Dt,yn("2021"),{0:[dn],1:[dn],2:[jt,It]}),y()(Dt,yn("1202"),{0:[pn],1:[pn],2:[Nt,zt]}),y()(Dt,yn("0212"),{0:[hn],1:[hn],2:[Rt,Ft]}),y()(Dt,yn("0102"),{0:[Bt,kt],1:[fn],2:[fn]}),y()(Dt,yn("0201"),{0:[jt,It],1:[dn],2:[dn]}),y()(Dt,yn("1020"),{0:[Nt,zt],1:[pn],2:[pn]}),y()(Dt,yn("2010"),{0:[Rt,Ft],1:[hn],2:[hn]}),y()(Dt,yn("2020"),{0:[Ft,zt],1:[vn],2:[Bt,It]}),y()(Dt,yn("0202"),{0:[It,Bt],1:[vn],2:[Ft,zt]}),Dt);function bn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Sn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bn(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var On=1,wn=2,An={zIndex:0,zOffset:.005};function Pn(e,t){return Array.isArray(t)?e<t[0]?0:e<t[1]?1:2:e>=t?1:0}function _n(e){var t=e.cellWeights,n=e.x,r=e.y,i=e.width,o=e.height,a=e.threshold;e.thresholdValue&&(x.log.deprecated("thresholdValue","threshold")(),a=e.thresholdValue);var s=n<0,u=n>=i-1,l=r<0,c=r>=o-1,g=s||u||l||c,f={},d={};s||c?d.top=0:(f.top=t[(r+1)*i+n],d.top=Pn(f.top,a)),u||c?d.topRight=0:(f.topRight=t[(r+1)*i+n+1],d.topRight=Pn(f.topRight,a)),u||l?d.right=0:(f.right=t[r*i+n+1],d.right=Pn(f.right,a)),s||l?d.current=0:(f.current=t[r*i+n],d.current=Pn(f.current,a));var p=d.top,h=d.topRight,v=d.right,m=d.current,y=-1;Number.isFinite(a)&&(y=p<<3|h<<2|v<<1|m),Array.isArray(a)&&(y=p<<6|h<<4|v<<2|m);var b=0;return g||(b=Pn((f.top+f.topRight+f.right+f.current)/4,a)),{code:y,meanCode:b}}function Mn(e){var t=e.gridOrigin,n=e.cellSize,r=e.x,i=e.y,o=e.code,a=e.meanCode,s=e.type,u=void 0===s?On:s,l=Sn(Sn({},An),e.thresholdData),c=u===wn?xn[o]:mn[o];Array.isArray(c)||(c=c[a]);var g=l.zIndex*l.zOffset,f=(r+1)*n[0],d=(i+1)*n[1],p=t[0]+f,h=t[1]+d;if(u===wn){var v=[];return c.forEach((function(e){var t=[];e.forEach((function(e){var r=p+e[0]*n[0],i=h+e[1]*n[1];t.push([r,i,g])})),v.push(t)})),v}var m=[];return c.forEach((function(e){e.forEach((function(e){var t=p+e[0]*n[0],r=h+e[1]*n[1];m.push([t,r,g])}))})),m}function Dn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Cn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Cn(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function Cn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Tn(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v()(e);if(t){var i=v()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return p()(this,n)}}var En=[255,255,255,255],jn={cellSize:{type:"number",min:1,max:1e3,value:1e3},getPosition:{type:"accessor",value:function(e){return e.position}},getWeight:{type:"accessor",value:1},gpuAggregation:!0,aggregation:"SUM",contours:[{threshold:1}],zOffset:.005},Rn={data:{props:["cellSize"]},weights:{props:["aggregation"],accessors:["getWeight"]}},kn=function(e){f()(n,e);var t=Tn(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"initializeState",value:function(){var e;c()(v()(n.prototype),"initializeAggregationLayer",this).call(this,{dimensions:Rn}),this.setState({contourData:{},projectPoints:!1,weights:{count:{size:1,operation:D.SUM}}}),this.getAttributeManager().add((e={},y()(e,"positions",{size:3,accessor:"getPosition",type:5130,fp64:this.use64bitPositions()}),y()(e,"count",{size:3,accessor:"getWeight"}),e))}},{key:"updateState",value:function(e){c()(v()(n.prototype),"updateState",this).call(this,e);var t=!1,r=e.oldProps,i=e.props,o=this.state.aggregationDirty;r.contours===i.contours&&r.zOffset===i.zOffset||(t=!0,this._updateThresholdData(e.props)),this.getNumInstances()>0&&(o||t)&&this._generateContours()}},{key:"renderLayers",value:function(){var e=this.state.contourData,t=e.contourSegments,n=e.contourPolygons,r=this.getSubLayerClass("lines",x.LineLayer),i=this.getSubLayerClass("bands",x.SolidPolygonLayer);return[t&&t.length>0&&new r(this.getSubLayerProps({id:"lines"}),{data:this.state.contourData.contourSegments,getSourcePosition:function(e){return e.start},getTargetPosition:function(e){return e.end},getColor:function(e){return e.contour.color||En},getWidth:function(e){return e.contour.strokeWidth||1}}),n&&n.length>0&&new i(this.getSubLayerProps({id:"bands"}),{data:this.state.contourData.contourPolygons,getPolygon:function(e){return e.vertices},getFillColor:function(e){return e.contour.color||En}})]}},{key:"updateAggregationState",value:function(e){var t=e.props,n=e.oldProps,r=t.cellSize,i=t.coordinateSystem,o=this.context.viewport,a=n.cellSize!==r,s=t.gpuAggregation;this.state.gpuAggregation!==t.gpuAggregation&&s&&!Q.isSupported(this.context.gl)&&(x.log.warn("GPU Grid Aggregation not supported, falling back to CPU")(),s=!1);var u=s!==this.state.gpuAggregation;this.setState({gpuAggregation:s});var l=this.state.dimensions,c=this.isAttributeChanged("positions"),g=l.data,f=l.weights,d=this.state.boundingBox;if(c&&(d=Fe(this.getAttributes(),this.getNumInstances()),this.setState({boundingBox:d})),c||a){var p=We(d,r,o,i),h=p.gridOffset,v=p.translation,m=p.width,y=p.height,b=p.numCol,S=p.numRow;this.allocateResources(S,b),this.setState({gridOffset:h,boundingBox:d,translation:v,posOffset:v.slice(),gridOrigin:[-1*v[0],-1*v[1]],width:m,height:y,numCol:b,numRow:S})}var O=c||u||this.isAggregationDirty(e,{dimension:g,compareAll:s}),w=this.isAggregationDirty(e,{dimension:f});w&&this._updateAccessors(e),(O||w)&&this._resetResults(),this.setState({aggregationDataDirty:O,aggregationWeightsDirty:w})}},{key:"_updateAccessors",value:function(e){var t=e.props,n=t.getWeight,r=t.aggregation,i=t.data,o=this.state.weights.count;o&&(o.getWeight=n,o.operation=D[r]),this.setState({getValue:j(r,n,{data:i})})}},{key:"_resetResults",value:function(){var e=this.state.weights.count;e&&(e.aggregationData=null)}},{key:"_generateContours",value:function(){var e=this.state,t=e.numCol,n=e.numRow,r=e.gridOrigin,i=e.gridOffset,o=e.thresholdData,a=this.state.weights.count,s=a.aggregationData;s||(s=a.aggregationBuffer.getData(),a.aggregationData=s);var u=function(e){var t,n=e.thresholdData,r=e.cellWeights,i=e.gridSize,o=e.gridOrigin,a=e.cellSize,s=[],u=[],l=i[0],c=i[1],g=0,f=0,d=Dn(n);try{for(d.s();!(t=d.n()).done;)for(var p=t.value,h=p.contour,v=h.threshold,m=-1;m<l;m++)for(var y=-1;y<c;y++){var x=_n({cellWeights:r,threshold:v,x:m,y:y,width:l,height:c}),b=x.code,S=x.meanCode,O={type:wn,gridOrigin:o,cellSize:a,x:m,y:y,width:l,height:c,code:b,meanCode:S,thresholdData:p};if(Array.isArray(v)){O.type=wn;var w,A=Dn(Mn(O));try{for(A.s();!(w=A.n()).done;){var P=w.value;u[f++]={vertices:P,contour:h}}}catch(e){A.e(e)}finally{A.f()}}else{O.type=On;for(var _=Mn(O),M=0;M<_.length;M+=2)s[g++]={start:_[M],end:_[M+1],contour:h}}}}catch(e){d.e(e)}finally{d.f()}return{contourSegments:s,contourPolygons:u}}({thresholdData:o,cellWeights:Q.getCellData({countsData:s}).cellWeights,gridSize:[t,n],gridOrigin:r,cellSize:[i.xOffset,i.yOffset]});this.setState({contourData:u})}},{key:"_updateThresholdData",value:function(e){for(var t=e.contours,n=e.zOffset,r=t.length,i=new Array(r),o=0;o<r;o++){var a=t[o];i[o]={contour:a,zIndex:a.zIndex||o,zOffset:n}}this.setState({thresholdData:i})}}]),n}(Ze);y()(kn,"layerName","ContourLayer"),y()(kn,"defaultProps",jn);function Nn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Bn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Nn(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Nn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function zn(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v()(e);if(t){var i=v()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return p()(this,n)}}var In={colorDomain:null,colorRange:ee,elevationDomain:null,elevationRange:[0,1e3],elevationScale:{type:"number",min:0,value:1},gridSize:{type:"array",min:0,value:[1,1]},gridOrigin:{type:"array",min:0,value:[0,0]},gridOffset:{type:"array",min:0,value:[0,0]},cellSize:{type:"number",min:0,max:1e3,value:1e3},offset:{type:"array",min:0,value:[1,1]},coverage:{type:"number",min:0,max:1,value:1},extruded:!0,material:!0},Fn=function(e){f()(n,e);var t=zn(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"getShaders",value:function(){return c()(v()(n.prototype),"getShaders",this).call(this,{vs:"#version 300 es\n#define SHADER_NAME gpu-grid-cell-layer-vertex-shader\n#define RANGE_COUNT 6\n\nin vec3 positions;\nin vec3 normals;\n\nin vec4 colors;\nin vec4 elevations;\nin vec3 instancePickingColors;\n\n// Custom uniforms\nuniform vec2 offset;\nuniform bool extruded;\nuniform float cellSize;\nuniform float coverage;\nuniform float opacity;\nuniform float elevationScale;\n\nuniform ivec2 gridSize;\nuniform vec2 gridOrigin;\nuniform vec2 gridOriginLow;\nuniform vec2 gridOffset;\nuniform vec2 gridOffsetLow;\nuniform vec4 colorRange[RANGE_COUNT];\nuniform vec2 elevationRange;\n\n// Domain uniforms\nuniform vec2 colorDomain;\nuniform bool colorDomainValid;\nuniform vec2 elevationDomain;\nuniform bool elevationDomainValid;\n\nlayout(std140) uniform;\nuniform ColorData\n{\n vec4 maxMinCount;\n} colorData;\nuniform ElevationData\n{\n vec4 maxMinCount;\n} elevationData;\n\n#define EPSILON 0.00001\n\n// Result\nout vec4 vColor;\n\nvec4 quantizeScale(vec2 domain, vec4 range[RANGE_COUNT], float value) {\n vec4 outColor = vec4(0., 0., 0., 0.);\n if (value >= (domain.x - EPSILON) && value <= (domain.y + EPSILON)) {\n float domainRange = domain.y - domain.x;\n if (domainRange <= 0.) {\n outColor = colorRange[0];\n } else {\n float rangeCount = float(RANGE_COUNT);\n float rangeStep = domainRange / rangeCount;\n float idx = floor((value - domain.x) / rangeStep);\n idx = clamp(idx, 0., rangeCount - 1.);\n int intIdx = int(idx);\n outColor = colorRange[intIdx];\n }\n }\n return outColor;\n}\n\nfloat linearScale(vec2 domain, vec2 range, float value) {\n if (value >= (domain.x - EPSILON) && value <= (domain.y + EPSILON)) {\n return ((value - domain.x) / (domain.y - domain.x)) * (range.y - range.x) + range.x;\n }\n return -1.;\n}\n\nvoid main(void) {\n vec2 clrDomain = colorDomainValid ? colorDomain : vec2(colorData.maxMinCount.a, colorData.maxMinCount.r);\n vec4 color = quantizeScale(clrDomain, colorRange, colors.r);\n\n float elevation = 0.0;\n\n if (extruded) {\n vec2 elvDomain = elevationDomainValid ? elevationDomain : vec2(elevationData.maxMinCount.a, elevationData.maxMinCount.r);\n elevation = linearScale(elvDomain, elevationRange, elevations.r);\n elevation = elevation * (positions.z + 1.0) / 2.0 * elevationScale;\n }\n\n // if aggregated color or elevation is 0 do not render\n float shouldRender = float(color.r > 0.0 && elevations.r >= 0.0);\n float dotRadius = cellSize / 2. * coverage * shouldRender;\n\n int yIndex = (gl_InstanceID / gridSize[0]);\n int xIndex = gl_InstanceID - (yIndex * gridSize[0]);\n\n vec2 instancePositionXFP64 = mul_fp64(vec2(gridOffset[0], gridOffsetLow[0]), vec2(float(xIndex), 0.));\n instancePositionXFP64 = sum_fp64(instancePositionXFP64, vec2(gridOrigin[0], gridOriginLow[0]));\n vec2 instancePositionYFP64 = mul_fp64(vec2(gridOffset[1], gridOffsetLow[1]), vec2(float(yIndex), 0.));\n instancePositionYFP64 = sum_fp64(instancePositionYFP64, vec2(gridOrigin[1], gridOriginLow[1]));\n\n vec3 centroidPosition = vec3(instancePositionXFP64[0], instancePositionYFP64[0], elevation);\n vec3 centroidPosition64Low = vec3(instancePositionXFP64[1], instancePositionYFP64[1], 0.0);\n geometry.worldPosition = centroidPosition;\n vec3 pos = vec3(project_size(positions.xy + offset) * dotRadius, 0.);\n\n // Set color to be rendered to picking fbo (also used to check for selection highlight).\n picking_setPickingColor(instancePickingColors);\n\n gl_Position = project_position_to_clipspace(centroidPosition, centroidPosition64Low, pos, geometry.position);\n\n // Light calculations\n // Worldspace is the linear space after Mercator projection\n\n vec3 normals_commonspace = project_normal(normals);\n\n if (extruded) {\n vec3 lightColor = lighting_getLightColor(color.rgb, project_uCameraPosition, geometry.position.xyz, normals_commonspace);\n vColor = vec4(lightColor, color.a * opacity) / 255.;\n } else {\n vColor = vec4(color.rgb, color.a * opacity) / 255.;\n }\n}\n",fs:"#version 300 es\n#define SHADER_NAME gpu-grid-cell-layer-fragment-shader\n\nprecision highp float;\n\nin vec4 vColor;\n\nout vec4 fragColor;\n\nvoid main(void) {\n fragColor = vColor;\n fragColor = picking_filterColor(fragColor);\n}\n",modules:[x.project32,x.gouraudLighting,x.picking,M]})}},{key:"initializeState",value:function(e){var t=e.gl;this.getAttributeManager().addInstanced({colors:{size:4,noAlloc:!0},elevations:{size:4,noAlloc:!0}});var n=this._getModel(t);this._setupUniformBuffer(n),this.setState({model:n})}},{key:"_getModel",value:function(e){return new b.Model(e,Bn(Bn({},this.getShaders()),{},{id:this.props.id,geometry:new b.CubeGeometry,isInstanced:!0}))}},{key:"draw",value:function(e){var t=e.uniforms,n=this.props,r=n.cellSize,i=n.offset,o=n.extruded,a=n.elevationScale,s=n.coverage,u=n.gridSize,l=n.gridOrigin,c=n.gridOffset,g=n.elevationRange,f=n.colorMaxMinBuffer,d=n.elevationMaxMinBuffer,p=[Object(x.fp64LowPart)(l[0]),Object(x.fp64LowPart)(l[1])],h=[Object(x.fp64LowPart)(c[0]),Object(x.fp64LowPart)(c[1])],v=this.getDomainUniforms(),m=te(this.props.colorRange);this.bindUniformBuffers(f,d),this.state.model.setUniforms(t).setUniforms(v).setUniforms({cellSize:r,offset:i,extruded:o,elevationScale:a,coverage:s,gridSize:u,gridOrigin:l,gridOriginLow:p,gridOffset:c,gridOffsetLow:h,colorRange:m,elevationRange:g}).draw(),this.unbindUniformBuffers(f,d)}},{key:"bindUniformBuffers",value:function(e,t){e.bind({target:35345,index:0}),t.bind({target:35345,index:1})}},{key:"unbindUniformBuffers",value:function(e,t){e.unbind({target:35345,index:0}),t.unbind({target:35345,index:1})}},{key:"getDomainUniforms",value:function(){var e=this.props,t=e.colorDomain,n=e.elevationDomain,r={};return null!==t?(r.colorDomainValid=!0,r.colorDomain=t):r.colorDomainValid=!1,null!==n?(r.elevationDomainValid=!0,r.elevationDomain=n):r.elevationDomainValid=!1,r}},{key:"_setupUniformBuffer",value:function(e){var t=this.context.gl,n=e.program.handle,r=t.getUniformBlockIndex(n,"ColorData"),i=t.getUniformBlockIndex(n,"ElevationData");t.uniformBlockBinding(n,r,0),t.uniformBlockBinding(n,i,1)}}]),n}(x.Layer);function Un(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ln(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Un(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Un(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Wn(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v()(e);if(t){var i=v()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return p()(this,n)}}y()(Fn,"layerName","GPUGridCellLayer"),y()(Fn,"defaultProps",In);var Gn={colorDomain:null,colorRange:ee,getColorWeight:{type:"accessor",value:1},colorAggregation:"SUM",elevationDomain:null,elevationRange:[0,1e3],getElevationWeight:{type:"accessor",value:1},elevationAggregation:"SUM",elevationScale:{type:"number",min:0,value:1},cellSize:{type:"number",min:1,max:1e3,value:1e3},coverage:{type:"number",min:0,max:1,value:1},getPosition:{type:"accessor",value:function(e){return e.position}},extruded:!1,material:!0},Vn={data:{props:["cellSize","colorAggregation","elevationAggregation"]}},Hn=function(e){f()(n,e);var t=Wn(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"initializeState",value:function(e){var t,r=e.gl,i=Q.isSupported(r);i||x.log.error("GPUGridLayer is not supported on this browser, use GridLayer instead")(),c()(v()(n.prototype),"initializeAggregationLayer",this).call(this,{dimensions:Vn}),this.setState({gpuAggregation:!0,projectPoints:!1,isSupported:i,weights:{color:{needMin:!0,needMax:!0,combineMaxMin:!0,maxMinBuffer:new b.Buffer(r,{byteLength:16,accessor:{size:4,type:5126,divisor:1}})},elevation:{needMin:!0,needMax:!0,combineMaxMin:!0,maxMinBuffer:new b.Buffer(r,{byteLength:16,accessor:{size:4,type:5126,divisor:1}})}},positionAttributeName:"positions"}),this.getAttributeManager().add((t={},y()(t,"positions",{size:3,accessor:"getPosition",type:5130,fp64:this.use64bitPositions()}),y()(t,"color",{size:3,accessor:"getColorWeight"}),y()(t,"elevation",{size:3,accessor:"getElevationWeight"}),t))}},{key:"updateState",value:function(e){!1!==this.state.isSupported&&(c()(v()(n.prototype),"updateState",this).call(this,e),this.state.aggregationDirty&&this.setState({gridHash:null}))}},{key:"getHashKeyForIndex",value:function(e){var t=this.state,n=t.numRow,r=t.numCol,i=t.boundingBox,o=t.gridOffset,a=[r,n],s=[i.xMin,i.yMin],u=[o.xOffset,o.yOffset],l=Math.floor(e/a[0]),c=e-l*a[0],g=Math.floor((l*u[1]+s[1]+90+u[1]/2)/u[1]),f=Math.floor((c*u[0]+s[0]+180+u[0]/2)/u[0]);return"".concat(g,"-").concat(f)}},{key:"getPositionForIndex",value:function(e){var t=this.state,n=t.numRow,r=t.numCol,i=t.boundingBox,o=t.gridOffset,a=[r,n],s=[i.xMin,i.yMin],u=[o.xOffset,o.yOffset],l=Math.floor(e/a[0]);return[(e-l*a[0])*u[0]+s[0],l*u[1]+s[1]]}},{key:"getPickingInfo",value:function(e){var t=e.info,n=e.mode,r=t.index,i=null;if(r>=0){var o=this.state.gpuGridAggregator,a=this.getPositionForIndex(r),s=Q.getAggregationData(Ln({pixelIndex:r},o.getData("color"))),u=Q.getAggregationData(Ln({pixelIndex:r},o.getData("elevation")));if(i={colorValue:s.cellWeight,elevationValue:u.cellWeight,count:s.cellCount||u.cellCount,position:a,totalCount:s.totalCount||u.totalCount},"hover"!==n){var l=this.props,c=this.state.gridHash;if(!c){var g=this.state,f=g.gridOffset,d=g.translation,p=g.boundingBox,h=this.context.viewport;c=Xe(l,{gridOffset:f,attributes:this.getAttributes(),viewport:h,translation:d,boundingBox:p}).gridHash,this.setState({gridHash:c})}var v=c[this.getHashKeyForIndex(r)];Object.assign(i,v)}}return t.picked=Boolean(i),t.object=i,t}},{key:"renderLayers",value:function(){if(!this.state.isSupported)return null;var e=this.props,t=e.elevationScale,n=e.extruded,r=e.cellSize,i=e.coverage,o=e.material,a=e.elevationRange,s=e.colorDomain,u=e.elevationDomain,l=this.state,c=l.weights,g=l.numRow,f=l.numCol,d=l.gridOrigin,p=l.gridOffset,h=c.color,v=c.elevation,m=te(this.props.colorRange);return new(this.getSubLayerClass("gpu-grid-cell",Fn))({gridSize:[f,g],gridOrigin:d,gridOffset:[p.xOffset,p.yOffset],colorRange:m,elevationRange:a,colorDomain:s,elevationDomain:u,cellSize:r,coverage:i,material:o,elevationScale:t,extruded:n},this.getSubLayerProps({id:"gpu-grid-cell"}),{data:{attributes:{colors:h.aggregationBuffer,elevations:v.aggregationBuffer}},colorMaxMinBuffer:h.maxMinBuffer,elevationMaxMinBuffer:v.maxMinBuffer,numInstances:f*g})}},{key:"finalizeState",value:function(e){var t=this.state.weights;[t.color,t.elevation].forEach((function(e){var t=e.aggregationBuffer;e.maxMinBuffer.delete(),null==t||t.delete()})),c()(v()(n.prototype),"finalizeState",this).call(this,e)}},{key:"updateAggregationState",value:function(e){var t=e.props,n=e.oldProps,r=t.cellSize,i=t.coordinateSystem,o=this.context.viewport,a=n.cellSize!==r,s=this.state.dimensions,u=this.isAttributeChanged("positions"),l=u||this.isAttributeChanged(),c=this.state.boundingBox;if(u&&(c=Fe(this.getAttributes(),this.getNumInstances()),this.setState({boundingBox:c})),u||a){var g=We(c,r,o,i),f=g.gridOffset,d=g.translation,p=g.width,h=g.height,v=g.numCol,m=g.numRow;this.allocateResources(m,v),this.setState({gridOffset:f,translation:d,gridOrigin:[-1*d[0],-1*d[1]],width:p,height:h,numCol:v,numRow:m})}var y=l||this.isAggregationDirty(e,{dimension:s.data,compareAll:!0});y&&this._updateAccessors(e),this.setState({aggregationDataDirty:y})}},{key:"_updateAccessors",value:function(e){var t=e.props,n=t.colorAggregation,r=t.elevationAggregation,i=this.state.weights,o=i.color,a=i.elevation;o.operation=D[n],a.operation=D[r]}}]),n}(Ze);function qn(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v()(e);if(t){var i=v()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return p()(this,n)}}function Yn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Xn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Yn(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Yn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}y()(Hn,"layerName","GPUGridLayer"),y()(Hn,"defaultProps",Gn);var Kn=Xn(Xn(Xn({},Hn.defaultProps),mt.defaultProps),{},{gpuAggregation:!1}),$n=function(e){f()(n,e);var t=qn(n);function n(){var e;i()(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return e=t.call.apply(t,[this].concat(o)),y()(u()(e),"state",void 0),e}return a()(n,[{key:"initializeState",value:function(){this.state={useGPUAggregation:!0}}},{key:"updateState",value:function(e){var t=e.props;this.setState({useGPUAggregation:this.canUseGPUAggregation(t)})}},{key:"renderLayers",value:function(){var e=this.props,t=e.data,n=e.updateTriggers,r=this.state.useGPUAggregation?"GPU":"CPU";return new(this.state.useGPUAggregation?this.getSubLayerClass("GPU",Hn):this.getSubLayerClass("CPU",mt))(this.props,this.getSubLayerProps({id:r,updateTriggers:n}),{data:t})}},{key:"canUseGPUAggregation",value:function(e){var t=e.gpuAggregation,n=e.lowerPercentile,r=e.upperPercentile,i=e.getColorValue,o=e.getElevationValue,a=e.colorScaleType;return!!t&&(!!Q.isSupported(this.context.gl)&&(0===n&&100===r&&(null===i&&null===o&&("quantile"!==a&&"ordinal"!==a))))}}]),n}(x.CompositeLayer);function Qn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Zn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Zn(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function Zn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Jn(e){var t=e.map((function(e){return e[0]})),n=e.map((function(e){return e[1]})),r=Math.min.apply(null,t),i=Math.max.apply(null,t);return[r,Math.min.apply(null,n),i,Math.max.apply(null,n)]}function er(e,t){return t[0]>=e[0]&&t[2]<=e[2]&&t[1]>=e[1]&&t[3]<=e[3]}y()($n,"layerName","GridLayer"),y()($n,"defaultProps",Kn);var tr=new Float32Array(12);function nr(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,r=0,i=Qn(e);try{for(i.s();!(t=i.n()).done;)for(var o=t.value,a=0;a<n;a++)tr[r++]=o[a]||0}catch(e){i.e(e)}finally{i.f()}return tr}function rr(e,t,n){var r=ve()(e,4),i=r[0],o=r[1],a=r[2],s=r[3],u=a-i,l=s-o,c=u,g=l;u/l<t/n?c=t/n*l:g=n/t*u,c<t&&(c=t,g=n);var f=(a+i)/2,d=(s+o)/2;return[f-c/2,d-g/2,f+c/2,d+g/2]}function ir(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function or(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ir(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ir(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ar(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v()(e);if(t){var i=v()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return p()(this,n)}}var sr=function(e){f()(n,e);var t=ar(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"getShaders",value:function(){return{vs:"#define SHADER_NAME heatp-map-layer-vertex-shader\n\nuniform sampler2D maxTexture;\nuniform float intensity;\nuniform vec2 colorDomain;\nuniform float threshold;\nuniform float aggregationMode;\n\nattribute vec3 positions;\nattribute vec2 texCoords;\n\nvarying vec2 vTexCoords;\nvarying float vIntensityMin;\nvarying float vIntensityMax;\n\nvoid main(void) {\n gl_Position = project_position_to_clipspace(positions, vec3(0.0), vec3(0.0));\n vTexCoords = texCoords;\n vec4 maxTexture = texture2D(maxTexture, vec2(0.5));\n float maxValue = aggregationMode < 0.5 ? maxTexture.r : maxTexture.g;\n float minValue = maxValue * threshold;\n if (colorDomain[1] > 0.) {\n // if user specified custom domain use it.\n maxValue = colorDomain[1];\n minValue = colorDomain[0];\n }\n vIntensityMax = intensity / maxValue;\n vIntensityMin = intensity / minValue;\n}\n",fs:"#define SHADER_NAME triangle-layer-fragment-shader\n\nprecision highp float;\n\nuniform float opacity;\nuniform sampler2D texture;\nuniform sampler2D colorTexture;\nuniform float aggregationMode;\n\nvarying vec2 vTexCoords;\nvarying float vIntensityMin;\nvarying float vIntensityMax;\n\nvec4 getLinearColor(float value) {\n float factor = clamp(value * vIntensityMax, 0., 1.);\n vec4 color = texture2D(colorTexture, vec2(factor, 0.5));\n color.a *= min(value * vIntensityMin, 1.0);\n return color;\n}\n\nvoid main(void) {\n vec4 weights = texture2D(texture, vTexCoords);\n float weight = weights.r;\n\n if (aggregationMode > 0.5) {\n weight /= max(1.0, weights.a);\n }\n\n // discard pixels with 0 weight.\n if (weight <= 0.) {\n discard;\n }\n\n vec4 linearColor = getLinearColor(weight);\n linearColor.a *= opacity;\n gl_FragColor =linearColor;\n}\n",modules:[x.project32]}}},{key:"initializeState",value:function(e){var t=e.gl;this.getAttributeManager().add({positions:{size:3,noAlloc:!0},texCoords:{size:2,noAlloc:!0}}),this.setState({model:this._getModel(t)})}},{key:"_getModel",value:function(e){var t=this.props.vertexCount;return new b.Model(e,or(or({},this.getShaders()),{},{id:this.props.id,geometry:new b.Geometry({drawMode:6,vertexCount:t})}))}},{key:"draw",value:function(e){var t=e.uniforms,n=this.state.model,r=this.props,i=r.texture,o=r.maxTexture,a=r.colorTexture,s=r.intensity,u=r.threshold,l=r.aggregationMode,c=r.colorDomain;n.setUniforms(or(or({},t),{},{texture:i,maxTexture:o,colorTexture:a,intensity:s,threshold:u,aggregationMode:l,colorDomain:c})).draw()}}]),n}(x.Layer);y()(sr,"layerName","TriangleLayer");var ur;function lr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function cr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?lr(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function gr(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v()(e);if(t){var i=v()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return p()(this,n)}}var fr={mipmaps:!1,parameters:(ur={},y()(ur,10240,9729),y()(ur,10241,9729),y()(ur,10242,33071),y()(ur,10243,33071),ur),dataFormat:6408},dr=[0,0],pr={SUM:0,MEAN:1},hr={getPosition:{type:"accessor",value:function(e){return e.position}},getWeight:{type:"accessor",value:1},intensity:{type:"number",min:0,value:1},radiusPixels:{type:"number",min:1,max:100,value:50},colorRange:ee,threshold:{type:"number",min:0,max:1,value:.05},colorDomain:{type:"array",value:null,optional:!0},aggregation:"SUM",weightsTextureSize:{type:"number",min:128,max:2048,value:2048},debounceTimeout:{type:"number",min:0,max:1e3,value:500}},vr=[b.FEATURES.BLEND_EQUATION_MINMAX,b.FEATURES.TEXTURE_FLOAT],mr=[b.FEATURES.COLOR_ATTACHMENT_RGBA32F,b.FEATURES.FLOAT_BLEND],yr={data:{props:["radiusPixels"]}},xr=function(e){f()(n,e);var t=gr(n);function n(){var e;i()(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return e=t.call.apply(t,[this].concat(o)),y()(u()(e),"state",void 0),e}return a()(n,[{key:"initializeState",value:function(){var e=this.context.gl;if(!Object(b.hasFeatures)(e,vr))return this.setState({supported:!1}),void x.log.error("HeatmapLayer: ".concat(this.id," is not supported on this browser"))();c()(v()(n.prototype),"initializeAggregationLayer",this).call(this,yr),this.setState({supported:!0,colorDomain:dr}),this._setupTextureParams(),this._setupAttributes(),this._setupResources()}},{key:"shouldUpdateState",value:function(e){return e.changeFlags.somethingChanged}},{key:"updateState",value:function(e){this.state.supported&&(c()(v()(n.prototype),"updateState",this).call(this,e),this._updateHeatmapState(e))}},{key:"_updateHeatmapState",value:function(e){var t=e.props,n=e.oldProps,r=this._getChangeFlags(e);(r.dataChanged||r.viewportChanged)&&(r.boundsChanged=this._updateBounds(r.dataChanged),this._updateTextureRenderingBounds()),r.dataChanged||r.boundsChanged?(clearTimeout(this.state.updateTimer),this.setState({isWeightMapDirty:!0})):r.viewportZoomChanged&&this._debouncedUpdateWeightmap(),t.colorRange!==n.colorRange&&this._updateColorTexture(e),this.state.isWeightMapDirty&&this._updateWeightmap(),this.setState({zoom:e.context.viewport.zoom})}},{key:"renderLayers",value:function(){if(!this.state.supported)return[];var e=this.state,t=e.weightsTexture,n=e.triPositionBuffer,r=e.triTexCoordBuffer,i=e.maxWeightsTexture,o=e.colorTexture,a=e.colorDomain,s=this.props,u=s.updateTriggers,l=s.intensity,c=s.threshold,g=s.aggregation;return new(this.getSubLayerClass("triangle",sr))(this.getSubLayerProps({id:"triangle-layer",updateTriggers:u}),{coordinateSystem:x.COORDINATE_SYSTEM.DEFAULT,data:{attributes:{positions:n,texCoords:r}},vertexCount:4,maxTexture:i,colorTexture:o,aggregationMode:pr[g]||0,texture:t,intensity:l,threshold:c,colorDomain:a})}},{key:"finalizeState",value:function(e){c()(v()(n.prototype),"finalizeState",this).call(this,e);var t=this.state,r=t.weightsTransform,i=t.weightsTexture,o=t.maxWeightTransform,a=t.maxWeightsTexture,s=t.triPositionBuffer,u=t.triTexCoordBuffer,l=t.colorTexture,g=t.updateTimer;null==r||r.delete(),null==i||i.delete(),null==o||o.delete(),null==a||a.delete(),null==s||s.delete(),null==u||u.delete(),null==l||l.delete(),g&&clearTimeout(g)}},{key:"_getAttributeManager",value:function(){return new x.AttributeManager(this.context.gl,{id:this.props.id,stats:this.context.stats})}},{key:"_getChangeFlags",value:function(e){var t={},n=this.state.dimensions;t.dataChanged=this.isAttributeChanged()||this.isAggregationDirty(e,{compareAll:!0,dimension:n.data}),t.viewportChanged=e.changeFlags.viewportChanged;var r=this.state.zoom;return e.context.viewport&&e.context.viewport.zoom===r||(t.viewportZoomChanged=!0),t}},{key:"_createTextures",value:function(){var e=this.context.gl,t=this.state,n=t.textureSize,r=t.format,i=t.type;this.setState({weightsTexture:new b.Texture2D(e,cr({width:n,height:n,format:r,type:i},fr)),maxWeightsTexture:new b.Texture2D(e,cr({format:r,type:i},fr))})}},{key:"_setupAttributes",value:function(){this.getAttributeManager().add({positions:{size:3,type:5130,accessor:"getPosition"},weights:{size:1,accessor:"getWeight"}}),this.setState({positionAttributeName:"positions"})}},{key:"_setupTextureParams",value:function(){var e=this.context.gl,t=this.props.weightsTextureSize,n=Math.min(t,Object(b.getParameters)(e,3379)),r=Object(b.hasFeatures)(e,mr),i=function(e){var t=e.gl;return e.floatTargetSupport?{format:Object(b.isWebGL2)(t)?34836:6408,type:5126}:{format:6408,type:5121}}({gl:e,floatTargetSupport:r}),o=i.format,a=i.type,s=r?1:1/255;this.setState({textureSize:n,format:o,type:a,weightsScale:s}),r||x.log.warn("HeatmapLayer: ".concat(this.id," rendering to float texture not supported, fallingback to low precession format"))()}},{key:"getShaders",value:function(e){return c()(v()(n.prototype),"getShaders",this).call(this,"max-weights-transform"===e?{vs:"attribute vec4 inTexture;\nvarying vec4 outTexture;\n\nvoid main()\n{\noutTexture = inTexture;\ngl_Position = vec4(0, 0, 0, 1.);\n// Enforce default value for ANGLE issue (https://bugs.chromium.org/p/angleproject/issues/detail?id=3941)\ngl_PointSize = 1.0;\n}\n",_fs:"varying vec4 outTexture;\nvoid main() {\n gl_FragColor = outTexture;\n gl_FragColor.g = outTexture.r / max(1.0, outTexture.a);\n}\n"}:{vs:"attribute vec3 positions;\nattribute vec3 positions64Low;\nattribute float weights;\nvarying vec4 weightsTexture;\nuniform float radiusPixels;\nuniform float textureWidth;\nuniform vec4 commonBounds;\nuniform float weightsScale;\nvoid main()\n{\n weightsTexture = vec4(weights * weightsScale, 0., 0., 1.);\n\n float radiusTexels = project_pixel_size(radiusPixels) * textureWidth / (commonBounds.z - commonBounds.x);\n gl_PointSize = radiusTexels * 2.;\n\n vec3 commonPosition = project_position(positions, positions64Low);\n\n // map xy from commonBounds to [-1, 1]\n gl_Position.xy = (commonPosition.xy - commonBounds.xy) / (commonBounds.zw - commonBounds.xy) ;\n gl_Position.xy = (gl_Position.xy * 2.) - (1.);\n}\n",_fs:"varying vec4 weightsTexture;\n// Epanechnikov function, keeping for reference\n// float epanechnikovKDE(float u) {\n// return 0.75 * (1.0 - u * u);\n// }\nfloat gaussianKDE(float u){\n return pow(2.71828, -u*u/0.05555)/(1.77245385*0.166666);\n}\nvoid main()\n{\n float dist = length(gl_PointCoord - vec2(0.5, 0.5));\n if (dist > 0.5) {\n discard;\n }\n gl_FragColor = weightsTexture * gaussianKDE(2. * dist);\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n"})}},{key:"_createWeightsTransform",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.context.gl,r=this.state.weightsTransform,i=this.state.weightsTexture;null===(e=r)||void 0===e||e.delete(),r=new b.Transform(n,cr({id:"".concat(this.id,"-weights-transform"),elementCount:1,_targetTexture:i,_targetTextureVarying:"weightsTexture"},t)),this.setState({weightsTransform:r})}},{key:"_setupResources",value:function(){var e=this.context.gl;this._createTextures();var t=this.state,n=t.textureSize,r=t.weightsTexture,i=t.maxWeightsTexture,o=this.getShaders("weights-transform");this._createWeightsTransform(o);var a=this.getShaders("max-weights-transform"),s=new b.Transform(e,cr(cr({id:"".concat(this.id,"-max-weights-transform"),_sourceTextures:{inTexture:r},_targetTexture:i,_targetTextureVarying:"outTexture"},a),{},{elementCount:n*n}));this.setState({weightsTexture:r,maxWeightsTexture:i,maxWeightTransform:s,zoom:null,triPositionBuffer:new b.Buffer(e,{byteLength:48,accessor:{size:3}}),triTexCoordBuffer:new b.Buffer(e,{byteLength:48,accessor:{size:2}})})}},{key:"updateShaders",value:function(e){this._createWeightsTransform(e)}},{key:"_updateMaxWeightValue",value:function(){this.state.maxWeightTransform.run({parameters:{blend:!0,depthTest:!1,blendFunc:[1,1],blendEquation:32776}})}},{key:"_updateBounds",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.context.viewport,n=[t.unproject([0,0]),t.unproject([t.width,0]),t.unproject([t.width,t.height]),t.unproject([0,t.height])].map((function(e){return e.map(Math.fround)})),r=Jn(n),i={visibleWorldBounds:r,viewportCorners:n},o=!1;if(e||!this.state.worldBounds||!er(this.state.worldBounds,r)){var a=this._worldToCommonBounds(r),s=this._commonToWorldBounds(a);this.props.coordinateSystem===x.COORDINATE_SYSTEM.LNGLAT&&(s[1]=Math.max(s[1],-85.051129),s[3]=Math.min(s[3],85.051129),s[0]=Math.max(s[0],-360),s[2]=Math.min(s[2],360));var u=this._worldToCommonBounds(s);i.worldBounds=s,i.normalizedCommonBounds=u,o=!0}return this.setState(i),o}},{key:"_updateTextureRenderingBounds",value:function(){var e=this.state,t=e.triPositionBuffer,n=e.triTexCoordBuffer,r=e.normalizedCommonBounds,i=e.viewportCorners,o=this.context.viewport;t.subData(nr(i,3));var a=i.map((function(e){return t=o.projectPosition(e),n=r,i=ve()(n,4),a=i[0],s=i[1],u=i[2],l=i[3],[(t[0]-a)/(u-a),(t[1]-s)/(l-s)];var t,n,i,a,s,u,l}));n.subData(nr(a,2))}},{key:"_updateColorTexture",value:function(e){var t=e.props.colorRange,n=this.state.colorTexture,r=te(t,!1,Uint8Array);n?n.setImageData({data:r,width:t.length}):n=new b.Texture2D(this.context.gl,cr({data:r,width:t.length,height:1},fr)),this.setState({colorTexture:n})}},{key:"_updateWeightmap",value:function(){var e,t=this.props,n=t.radiusPixels,r=t.colorDomain,i=t.aggregation,o=this.state,a=o.weightsTransform,s=o.worldBounds,u=o.textureSize,l=o.weightsTexture,c=o.weightsScale;this.state.isWeightMapDirty=!1;var g=this._worldToCommonBounds(s,{useLayerCoordinateSystem:!0});if(r&&"SUM"===i){var f=this.context.viewport.distanceScales.metersPerUnit[2]*(g[2]-g[0])/u;this.state.colorDomain=r.map((function(e){return e*f*c}))}else this.state.colorDomain=r||dr;var d={radiusPixels:n,commonBounds:g,textureWidth:u,weightsScale:c};a.update({elementCount:this.getNumInstances()}),a.run({uniforms:d,parameters:{blend:!0,depthTest:!1,blendFunc:[1,1],blendEquation:32774},clearRenderTarget:!0,attributes:this.getAttributes(),moduleSettings:this.getModuleSettings()}),this._updateMaxWeightValue(),l.setParameters((e={},y()(e,10240,9729),y()(e,10241,9729),e))}},{key:"_debouncedUpdateWeightmap",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.state.updateTimer,n=this.props.debounceTimeout;e?(t=null,this._updateBounds(!0),this._updateTextureRenderingBounds(),this.setState({isWeightMapDirty:!0})):(this.setState({isWeightMapDirty:!1}),clearTimeout(t),t=setTimeout(this._debouncedUpdateWeightmap.bind(this,!0),n)),this.setState({updateTimer:t})}},{key:"_worldToCommonBounds",value:function(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r.useLayerCoordinateSystem,o=void 0!==i&&i,a=ve()(e,4),s=a[0],u=a[1],l=a[2],c=a[3],g=this.context.viewport,f=this.state.textureSize,d=this.props.coordinateSystem,p=o&&(d===x.COORDINATE_SYSTEM.LNGLAT_OFFSETS||d===x.COORDINATE_SYSTEM.METER_OFFSETS),h=p?g.projectPosition(this.props.coordinateOrigin):[0,0],v=2*f/g.scale;return o&&!p?(t=this.projectPosition([s,u,0]),n=this.projectPosition([l,c,0])):(t=g.projectPosition([s,u,0]),n=g.projectPosition([l,c,0])),rr([t[0]-h[0],t[1]-h[1],n[0]-h[0],n[1]-h[1]],v,v)}},{key:"_commonToWorldBounds",value:function(e){var t=ve()(e,4),n=t[0],r=t[1],i=t[2],o=t[3],a=this.context.viewport,s=a.unprojectPosition([n,r]),u=a.unprojectPosition([i,o]);return s.slice(0,2).concat(u.slice(0,2))}}]),n}(pe);y()(xr,"layerName","HeatmapLayer"),y()(xr,"defaultProps",hr),n.d(t,"ScreenGridLayer",(function(){return it})),n.d(t,"CPUGridLayer",(function(){return mt})),n.d(t,"HexagonLayer",(function(){return Tt})),n.d(t,"ContourLayer",(function(){return kn})),n.d(t,"GridLayer",(function(){return $n})),n.d(t,"GPUGridLayer",(function(){return Hn})),n.d(t,"AGGREGATION_OPERATION",(function(){return D})),n.d(t,"HeatmapLayer",(function(){return xr})),n.d(t,"_GPUGridAggregator",(function(){return Q})),n.d(t,"_CPUAggregator",(function(){return dt})),n.d(t,"_AggregationLayer",(function(){return pe})),n.d(t,"_BinSorter",(function(){return ze}))}])}));
|