@deck.gl/aggregation-layers 8.9.0-alpha.4 → 8.9.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.
Files changed (74) hide show
  1. package/dist/dist.dev.js +5994 -20632
  2. package/dist/es5/contour-layer/contour-layer.js +9 -3
  3. package/dist/es5/contour-layer/contour-layer.js.map +1 -1
  4. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +1 -1
  5. package/dist/es5/heatmap-layer/max-vs.glsl.js +1 -1
  6. package/dist/es5/heatmap-layer/triangle-layer-fragment.glsl.js +1 -1
  7. package/dist/es5/heatmap-layer/triangle-layer-vertex.glsl.js +1 -1
  8. package/dist/es5/heatmap-layer/weights-fs.glsl.js +1 -1
  9. package/dist/es5/heatmap-layer/weights-vs.glsl.js +1 -1
  10. package/dist/es5/screen-grid-layer/screen-grid-layer-vertex.glsl.js +1 -1
  11. package/dist/esm/contour-layer/contour-layer.js +9 -3
  12. package/dist/esm/contour-layer/contour-layer.js.map +1 -1
  13. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +1 -1
  14. package/dist/esm/heatmap-layer/max-vs.glsl.js +1 -1
  15. package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js +1 -1
  16. package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js +1 -1
  17. package/dist/esm/heatmap-layer/weights-fs.glsl.js +1 -1
  18. package/dist/esm/heatmap-layer/weights-vs.glsl.js +1 -1
  19. package/dist/esm/screen-grid-layer/screen-grid-layer-vertex.glsl.js +1 -1
  20. package/dist.min.js +568 -1
  21. package/package.json +4 -4
  22. package/src/contour-layer/contour-layer.ts +7 -1
  23. package/typed/aggregation-layer.js +151 -0
  24. package/typed/contour-layer/contour-layer.d.ts.map +1 -1
  25. package/typed/contour-layer/contour-layer.js +234 -0
  26. package/typed/contour-layer/contour-utils.js +64 -0
  27. package/typed/contour-layer/marching-squares-codes.js +337 -0
  28. package/typed/contour-layer/marching-squares.js +147 -0
  29. package/typed/cpu-grid-layer/cpu-grid-layer.js +129 -0
  30. package/typed/cpu-grid-layer/grid-aggregator.js +141 -0
  31. package/typed/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +34 -0
  32. package/typed/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +141 -0
  33. package/typed/gpu-grid-layer/gpu-grid-cell-layer.d.ts +2 -2
  34. package/typed/gpu-grid-layer/gpu-grid-cell-layer.js +143 -0
  35. package/typed/gpu-grid-layer/gpu-grid-layer.js +289 -0
  36. package/typed/grid-aggregation-layer.js +172 -0
  37. package/typed/grid-layer/grid-layer.js +60 -0
  38. package/typed/heatmap-layer/heatmap-layer-utils.js +78 -0
  39. package/typed/heatmap-layer/heatmap-layer.js +478 -0
  40. package/typed/heatmap-layer/max-fs.glsl.js +7 -0
  41. package/typed/heatmap-layer/max-vs.glsl.js +12 -0
  42. package/typed/heatmap-layer/triangle-layer-fragment.glsl.js +58 -0
  43. package/typed/heatmap-layer/triangle-layer-vertex.glsl.js +51 -0
  44. package/typed/heatmap-layer/triangle-layer.js +67 -0
  45. package/typed/heatmap-layer/weights-fs.glsl.js +19 -0
  46. package/typed/heatmap-layer/weights-vs.glsl.js +23 -0
  47. package/typed/hexagon-layer/hexagon-aggregator.js +112 -0
  48. package/typed/hexagon-layer/hexagon-layer.js +171 -0
  49. package/typed/index.js +33 -0
  50. package/typed/screen-grid-layer/screen-grid-cell-layer.d.ts +1 -1
  51. package/typed/screen-grid-layer/screen-grid-cell-layer.d.ts.map +1 -1
  52. package/typed/screen-grid-layer/screen-grid-cell-layer.js +159 -0
  53. package/typed/screen-grid-layer/screen-grid-layer-fragment.glsl.js +37 -0
  54. package/typed/screen-grid-layer/screen-grid-layer-vertex.glsl.js +83 -0
  55. package/typed/screen-grid-layer/screen-grid-layer.js +216 -0
  56. package/typed/types.js +1 -0
  57. package/typed/utils/aggregation-operation-utils.js +94 -0
  58. package/typed/utils/bin-sorter.js +167 -0
  59. package/typed/utils/color-utils.js +53 -0
  60. package/typed/utils/cpu-aggregator.js +417 -0
  61. package/typed/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +39 -0
  62. package/typed/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +53 -0
  63. package/typed/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +31 -0
  64. package/typed/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +77 -0
  65. package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +41 -0
  66. package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +1 -0
  67. package/typed/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +562 -0
  68. package/typed/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +36 -0
  69. package/typed/utils/grid-aggregation-utils.d.ts +2 -2
  70. package/typed/utils/grid-aggregation-utils.d.ts.map +1 -1
  71. package/typed/utils/grid-aggregation-utils.js +114 -0
  72. package/typed/utils/prop-utils.js +28 -0
  73. package/typed/utils/resource-utils.js +40 -0
  74. package/typed/utils/scale-utils.js +184 -0
package/dist.min.js CHANGED
@@ -1 +1,568 @@
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=3402823466e29,z=[32775,32774],I=[32776,32774],F=[32776,32775],U=(P={},y()(P,D.SUM,32774),y()(P,D.MEAN,32774),y()(P,D.MIN,z),y()(P,D.MAX,I),P),L={size:1,operation:D.SUM,needMin:!1,needMax:!1,combineMaxMin:!1},W=(_={},y()(_,10240,9728),y()(_,10241,9728),k={},y()(k,10240,9728),y()(k,10241,9728),k);function G(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?W: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 V(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 H(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 q(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 q(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 q(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 Y(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 X(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Y(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var K=["aggregationBuffer","maxMinBuffer","minBuffer","maxBuffer"],$={maxData:"maxBuffer",minData:"minBuffer",maxMinData:"maxMinBuffer"},Q=[b.FEATURES.WEBGL2,b.FEATURES.COLOR_ATTACHMENT_RGBA32F,b.FEATURES.BLEND_EQUATION_MINMAX,b.FEATURES.FLOAT_BLEND,b.FEATURES.TEXTURE_FLOAT],Z=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,$){var i=$[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=X(X({},N),e),n=t.weights;return n&&(t.weights=function(e){var t={};for(var n in e)t[n]=X(X({},L),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:X(X({},h),{},{blendEquation:F}),gridSize:p,minOrMaxFb:g[m],clearParams:{clearColor:[0,0,0,B]},combineMaxMin:S}):(x&&this._renderToMaxMinTexture({id:m,parameters:X(X({},h),{},{blendEquation:z}),gridSize:p,minOrMaxFb:f[m],clearParams:{clearColor:[B,B,B,0]},combineMaxMin:S}),b&&this._renderToMaxMinTexture({id:m,parameters:X(X({},h),{},{blendEquation:I}),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,X(X({},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?[B,B,B,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:X(X({},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,X({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]||G(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]||G(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]=V(this.gl,{id:"".concat(d,"-fb"),width:c,height:g,texture:b}),r[d].resize(f),u[d]=U[x]||U.SUM,(h||v)&&(h&&v&&m?i[d]||(b=l[d].maxMinTexture||this._getMinMaxTexture("".concat(d,"-maxMinTexture")),i[d]=V(this.gl,{id:"".concat(d,"-maxMinFb"),texture:b})):(h&&(o[d]||(b=l[d].minTexture||this._getMinMaxTexture("".concat(d,"-minTexture")),o[d]=V(this.gl,{id:"".concat(d,"-minFb"),texture:b}))),v&&(a[d]||(b=l[d].maxTexture||this._getMinMaxTexture("".concat(d,"-maxTexture")),a[d]=V(this.gl,{id:"".concat(d,"-maxFb"),texture:b})))))}}},{key:"_getMinMaxTexture",value:function(e){var t=this.state.resources;return t[e]||(t[e]=G(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=J(a,s),!this.allAggregationModel){var u=r*o;this.allAggregationModel=ee(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=H(K);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,Q)}}]),e}();function J(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,X({id:"Gird-Aggregation-Model",vertexCount:1,drawMode:0},n))}function ee(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 te=[[255,255,178],[254,217,118],[254,178,76],[253,141,60],[240,59,32],[189,0,38]];function ne(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 re(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 ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?re(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):re(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function oe(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 ae=[0,0,0,0],se=[0,255,0,255],ue=["minColor","maxColor","colorRange","colorDomain"],le={cellSizePixels:{value:100,min:1},cellMarginPixels:{value:2,min:0,max:5},colorDomain:null,colorRange:te},ce=function(e){f()(n,e);var t=oe(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||ae,a=this.props.maxColor||se,s=this.props.colorDomain||[1,0];this.state.model.setUniforms(t).setUniforms({minColor:o,maxColor:a,maxTexture:i,colorDomain:s}).draw({parameters:ie({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,ie(ie({},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(ue.some((function(n){return e[n]!==t[n]}))&&r.setUniforms({shouldUseMinMax:this._shouldUseMinMax()}),e.colorRange!==t.colorRange&&r.setUniforms({colorRange:ne(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 ge(e,t){var n={};for(var r in e)t.includes(r)||(n[r]=e[r]);return n}function fe(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 de(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 de(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 de(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 pe(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()(ce,"layerName","ScreenGridCellLayer"),y()(ce,"defaultProps",le);var he=function(e){f()(n,e);var t=pe(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:ge(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=fe(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=fe(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()(he,"layerName","AggregationLayer");var ve=n(10),me=n.n(ve);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 be(e,t,n){var r=n;return r.domain=function(){return e},r.range=function(){return t},r}function Se(e,t){return be(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 Oe(e,t){return be(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 we(e,t){for(var n=e.sort(Ae),r=0,i=Math.max(1,t.length),o=new Array(i-1);++r<i;)o[r-1]=Pe(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;Ae(e[i],t)>0?r=i:n=i+1}return n}(e,n)]}(o,t,e)};return a.thresholds=function(){return o},be(e,t,a)}function Ae(e,t){return e-t}function Pe(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 _e(e,t){var n,r=new Map,i=[],o=ye(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 be(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 Me(e){return null!=e}function De(e,t){return("function"==typeof t?e.map(t):e).filter(Me)}function Ce(e,t){return De(e,t)}function Te(e,t){return n=De(e,t),r=[],n.forEach((function(e){!r.includes(e)&&Me(e)&&r.push(e)})),r;var n,r}function Ee(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 je(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 je(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 je(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 Re=function(e){return e.length},ke=function(e){return e.points},Ne=function(e){return e.index},Be=function(e,t){return e<t?-1:e>t?1:e>=t?0:NaN},ze={getValue:Re,getPoints:ke,getIndex:Ne,filterData:null},Ie=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ze;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?Re:n,i=t.getPoints,o=void 0===i?ke:i,a=t.getIndex,s=void 0===a?Ne: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=me()(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=Ee(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=Ee(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 Be(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=me()(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 Be(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=me()(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 Ce(o.slice(r,i+1),(function(e){return e.value}));case"ordinal":return Te(o,(function(e){return e.value}));default:return[o[r].value,o[i].value]}}}]),e}();function Fe(e){return Number.isFinite(e)?e:0}function Ue(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:Fe(s),xMax:Fe(u),yMin:Fe(o),yMax:Fe(a)}}function Le(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 We(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 Ve(t,o)}function Ge(e,t,n,r){var i=We(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*(Le(s-a[0],t.xOffset)+a[0]),-1*(Le(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 Ve(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 He(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 qe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?He(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):He(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}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,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||We(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=Ye(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=me()(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]=qe({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 $e(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 Qe(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 Qe(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 Qe(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 Ze(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 Je=function(e){f()(n,e);var t=Ze(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 Z(r,{id:"".concat(this.id,"-gpu-aggregator")}),cpuGridAggregator:Ke})}},{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 Ie(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=$e(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}(he);function et(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 tt(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 nt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?tt(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):tt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}y()(Je,"layerName","GridAggregationLayer");var rt=nt(nt({},ce.defaultProps),{},{getPosition:{type:"accessor",value:function(e){return e.position}},getWeight:{type:"accessor",value:1},gpuAggregation:!0,aggregation:"SUM"}),it={data:{props:["cellSizePixels"]},weights:{props:["aggregation"],accessors:["getWeight"]}},ot=function(e){f()(n,e);var t=et(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(!ce.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:it,getCellSize:function(e){return e.cellSizePixels}});var r={count:{size:1,operation:D.SUM,needMax:!0,maxTexture:G(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",ce))(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=Z.getAggregationData(nt({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&&!Z.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}(Je);y()(ot,"layerName","ScreenGridLayer"),y()(ot,"defaultProps",rt);var at=n(11),st=n.n(at);function ut(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 lt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ut(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ut(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ct(){}var gt=["getBins","getDomain","getScaleFunc"],ft=[{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}],dt=function(e){return e.cellSize},pt=function(){function e(t){i()(this,e),this.state={layerData:{},dimensions:{}},this.changeFlags={},this.dimensionUpdaters={},this._getCellSize=t.getCellSize||dt,this._getAggregator=t.getAggregator,this._addDimension(t.dimensions||ft)}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=lt(lt({},this.state),e)}},{key:"setDimensionState",value:function(e,t){this.setState({dimensions:lt(lt({},this.state.dimensions),{},y()({},e,lt(lt({},this.state.dimensions[e]),t)))})}},{key:"normalizeResult",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.hexagons?lt({data:e.hexagons},e):e.layerData?lt({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:ct}}))}},{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:lt({updater:this.getDimensionSortedBins},i),getDomain:lt({updater:this.getDimensionValueDomain},o),getScaleFunc:lt({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=gt.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]={},gt.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"!==st()(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 Ie(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 Se;case"linear":return Oe;case"quantile":return we;case"ordinal":return _e;default:return Se}}(u&&e[u.prop])(g,c);"object"===st()(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:ct}}],[{key:"defaultDimensions",value:function(){return ft}}]),e}();function ht(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 vt(){}var mt={colorDomain:null,colorRange:te,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:vt,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:vt,gridAggregator:Ke,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}},yt=function(e){f()(n,e);var t=ht(n);function n(){return i()(this,n),t.apply(this,arguments)}return a()(n,[{key:"initializeState",value:function(){var e=new pt({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}(he);y()(yt,"layerName","CPUGridLayer"),y()(yt,"defaultProps",mt);var xt=Math.PI/3,bt=[0,xt,2*xt,3*xt,4*xt,5*xt];function St(e){return e[0]}function Ot(e){return e[1]}function wt(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 At(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 At(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 At(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 Pt(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 _t(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pt(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Mt(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 Dt(){}var Ct,Tt={colorDomain:null,colorRange:te,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:Dt,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:Dt,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=wt(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=St,u=Ot;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 bt.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(xt),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}},Et=function(e){f()(n,e);var t=Mt(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 pt({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(_t(_t({},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}(he);y()(Et,"layerName","HexagonLayer"),y()(Et,"defaultProps",Tt);var jt={N:[0,.5],E:[.5,0],S:[0,-.5],W:[-.5,0],NE:[.5,.5],NW:[-.5,.5],SE:[.5,-.5],SW:[-.5,-.5]},Rt=[jt.W,jt.SW,jt.S],kt=[jt.S,jt.SE,jt.E],Nt=[jt.E,jt.NE,jt.N],Bt=[jt.NW,jt.W,jt.N],zt=[[-.5,1/6],[-.5,-1/6],[-1/6,-.5],[1/6,-.5]],It=[[-1/6,-.5],[1/6,-.5],[.5,-1/6],[.5,1/6]],Ft=[[.5,-1/6],[.5,1/6],[1/6,.5],[-1/6,.5]],Ut=[[-.5,1/6],[-.5,-1/6],[1/6,.5],[-1/6,.5]],Lt=[jt.W,jt.SW,jt.SE,jt.E],Wt=[jt.S,jt.SE,jt.NE,jt.N],Gt=[jt.NW,jt.W,jt.E,jt.NE],Vt=[jt.NW,jt.SW,jt.S,jt.N],Ht=[[-.5,1/6],[-.5,-1/6],[.5,-1/6],[.5,1/6]],qt=[[-1/6,-.5],[1/6,-.5],[1/6,.5],[-1/6,.5]],Yt=[jt.NW,jt.SW,jt.SE,jt.NE],Xt=[jt.NW,jt.SW,jt.SE,jt.E,jt.N],Kt=[jt.W,jt.SW,jt.SE,jt.NE,jt.N],$t=[jt.NW,jt.W,jt.S,jt.SE,jt.NE],Qt=[jt.NW,jt.SW,jt.S,jt.E,jt.NE],Zt=[jt.NW,jt.W,[.5,-1/6],[.5,1/6],jt.N],Jt=[[-1/6,-.5],[1/6,-.5],jt.E,jt.NE,jt.N],en=[[-.5,1/6],[-.5,-1/6],jt.S,jt.SE,jt.E],tn=[jt.W,jt.SW,jt.S,[1/6,.5],[-1/6,.5]],nn=[jt.NW,jt.W,[-1/6,-.5],[1/6,-.5],jt.N],rn=[[-.5,1/6],[-.5,-1/6],jt.E,jt.NE,jt.N],on=[jt.S,jt.SE,jt.E,[1/6,.5],[-1/6,.5]],an=[jt.W,jt.SW,jt.S,[.5,-1/6],[.5,1/6]],sn=[jt.W,jt.SW,jt.SE,jt.E,[1/6,.5],[-1/6,.5]],un=[[-.5,1/6],[-.5,-1/6],jt.S,jt.SE,jt.NE,jt.N],ln=[jt.NW,jt.W,[-1/6,-.5],[1/6,-.5],jt.E,jt.NE],cn=[jt.NW,jt.SW,jt.S,[.5,-1/6],[.5,1/6],jt.N],gn=[jt.W,jt.SW,jt.S,jt.E,jt.NE,jt.N],fn=[jt.NW,jt.W,jt.S,jt.SE,jt.E,jt.N],dn=[[-.5,1/6],[-.5,-1/6],[-1/6,-.5],[1/6,-.5],jt.E,jt.NE,jt.N],pn=[jt.W,jt.SW,jt.S,[.5,-1/6],[.5,1/6],[1/6,.5],[-1/6,.5]],hn=[jt.NW,jt.W,[-1/6,-.5],[1/6,-.5],[.5,-1/6],[.5,1/6],jt.N],vn=[[-.5,1/6],[-.5,-1/6],jt.S,jt.SE,jt.E,[1/6,.5],[-1/6,.5]],mn=[[-.5,1/6],[-.5,-1/6],[-1/6,-.5],[1/6,-.5],[.5,-1/6],[.5,1/6],[1/6,.5],[-1/6,.5]],yn={0:[],1:[[jt.W,jt.S]],2:[[jt.S,jt.E]],3:[[jt.W,jt.E]],4:[[jt.N,jt.E]],5:{0:[[jt.W,jt.S],[jt.N,jt.E]],1:[[jt.W,jt.N],[jt.S,jt.E]]},6:[[jt.N,jt.S]],7:[[jt.W,jt.N]],8:[[jt.W,jt.N]],9:[[jt.N,jt.S]],10:{0:[[jt.W,jt.N],[jt.S,jt.E]],1:[[jt.W,jt.S],[jt.N,jt.E]]},11:[[jt.N,jt.E]],12:[[jt.W,jt.E]],13:[[jt.S,jt.E]],14:[[jt.W,jt.S]],15:[]};function xn(e){return parseInt(e,4)}var bn=(Ct={},y()(Ct,xn("0000"),[]),y()(Ct,xn("2222"),[]),y()(Ct,xn("2221"),[Rt]),y()(Ct,xn("2212"),[kt]),y()(Ct,xn("2122"),[Nt]),y()(Ct,xn("1222"),[Bt]),y()(Ct,xn("0001"),[Rt]),y()(Ct,xn("0010"),[kt]),y()(Ct,xn("0100"),[Nt]),y()(Ct,xn("1000"),[Bt]),y()(Ct,xn("2220"),[zt]),y()(Ct,xn("2202"),[It]),y()(Ct,xn("2022"),[Ft]),y()(Ct,xn("0222"),[Ut]),y()(Ct,xn("0002"),[zt]),y()(Ct,xn("0020"),[It]),y()(Ct,xn("0200"),[Ft]),y()(Ct,xn("2000"),[Ut]),y()(Ct,xn("0011"),[Lt]),y()(Ct,xn("0110"),[Wt]),y()(Ct,xn("1100"),[Gt]),y()(Ct,xn("1001"),[Vt]),y()(Ct,xn("2211"),[Lt]),y()(Ct,xn("2112"),[Wt]),y()(Ct,xn("1122"),[Gt]),y()(Ct,xn("1221"),[Vt]),y()(Ct,xn("2200"),[Ht]),y()(Ct,xn("2002"),[qt]),y()(Ct,xn("0022"),[Ht]),y()(Ct,xn("0220"),[qt]),y()(Ct,xn("1111"),[Yt]),y()(Ct,xn("1211"),[Xt]),y()(Ct,xn("2111"),[Kt]),y()(Ct,xn("1112"),[$t]),y()(Ct,xn("1121"),[Qt]),y()(Ct,xn("1011"),[Xt]),y()(Ct,xn("0111"),[Kt]),y()(Ct,xn("1110"),[$t]),y()(Ct,xn("1101"),[Qt]),y()(Ct,xn("1200"),[Zt]),y()(Ct,xn("0120"),[Jt]),y()(Ct,xn("0012"),[en]),y()(Ct,xn("2001"),[tn]),y()(Ct,xn("1022"),[Zt]),y()(Ct,xn("2102"),[Jt]),y()(Ct,xn("2210"),[en]),y()(Ct,xn("0221"),[tn]),y()(Ct,xn("1002"),[nn]),y()(Ct,xn("2100"),[rn]),y()(Ct,xn("0210"),[on]),y()(Ct,xn("0021"),[an]),y()(Ct,xn("1220"),[nn]),y()(Ct,xn("0122"),[rn]),y()(Ct,xn("2012"),[on]),y()(Ct,xn("2201"),[an]),y()(Ct,xn("0211"),[sn]),y()(Ct,xn("2110"),[un]),y()(Ct,xn("1102"),[ln]),y()(Ct,xn("1021"),[cn]),y()(Ct,xn("2011"),[sn]),y()(Ct,xn("0112"),[un]),y()(Ct,xn("1120"),[ln]),y()(Ct,xn("1201"),[cn]),y()(Ct,xn("2101"),[gn]),y()(Ct,xn("0121"),[gn]),y()(Ct,xn("1012"),[fn]),y()(Ct,xn("1210"),[fn]),y()(Ct,xn("0101"),{0:[Rt,Nt],1:[gn],2:[gn]}),y()(Ct,xn("1010"),{0:[Bt,kt],1:[fn],2:[fn]}),y()(Ct,xn("2121"),{0:[gn],1:[gn],2:[Rt,Nt]}),y()(Ct,xn("1212"),{0:[fn],1:[fn],2:[Bt,kt]}),y()(Ct,xn("2120"),{0:[dn],1:[dn],2:[zt,Nt]}),y()(Ct,xn("2021"),{0:[pn],1:[pn],2:[Rt,Ft]}),y()(Ct,xn("1202"),{0:[hn],1:[hn],2:[Bt,It]}),y()(Ct,xn("0212"),{0:[vn],1:[vn],2:[kt,Ut]}),y()(Ct,xn("0102"),{0:[zt,Nt],1:[dn],2:[dn]}),y()(Ct,xn("0201"),{0:[Rt,Ft],1:[pn],2:[pn]}),y()(Ct,xn("1020"),{0:[Bt,It],1:[hn],2:[hn]}),y()(Ct,xn("2010"),{0:[kt,Ut],1:[vn],2:[vn]}),y()(Ct,xn("2020"),{0:[Ut,It],1:[mn],2:[zt,Ft]}),y()(Ct,xn("0202"),{0:[Ft,zt],1:[mn],2:[Ut,It]}),Ct);function Sn(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 On(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Sn(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Sn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var wn=1,An=2,Pn={zIndex:0,zOffset:.005};function _n(e,t){return Array.isArray(t)?e<t[0]?0:e<t[1]?1:2:e>=t?1:0}function Mn(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=_n(f.top,a)),u||c?d.topRight=0:(f.topRight=t[(r+1)*i+n+1],d.topRight=_n(f.topRight,a)),u||l?d.right=0:(f.right=t[r*i+n+1],d.right=_n(f.right,a)),s||l?d.current=0:(f.current=t[r*i+n],d.current=_n(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=_n((f.top+f.topRight+f.right+f.current)/4,a)),{code:y,meanCode:b}}function Dn(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?wn:s,l=On(On({},Pn),e.thresholdData),c=u===An?bn[o]:yn[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===An){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 Cn(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 Tn(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 Tn(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 Tn(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 En(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 jn=[255,255,255,255],Rn={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},kn={data:{props:["cellSize"]},weights:{props:["aggregation"],accessors:["getWeight"]}},Nn=function(e){f()(n,e);var t=En(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:kn}),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||jn},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||jn}})]}},{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&&!Z.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=Ue(this.getAttributes(),this.getNumInstances()),this.setState({boundingBox:d})),c||a){var p=Ge(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=Cn(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=Mn({cellWeights:r,threshold:v,x:m,y:y,width:l,height:c}),b=x.code,S=x.meanCode,O={type:An,gridOrigin:o,cellSize:a,x:m,y:y,width:l,height:c,code:b,meanCode:S,thresholdData:p};if(Array.isArray(v)){O.type=An;var w,A=Cn(Dn(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=wn;for(var _=Dn(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:Z.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}(Je);y()(Nn,"layerName","ContourLayer"),y()(Nn,"defaultProps",Rn);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 zn(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}function In(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 Fn={colorDomain:null,colorRange:te,elevationDomain:null,elevationRange:[0,1e3],elevationScale:{type:"number",min:0,value:1},gridSize:{type:"array",value:[1,1]},gridOrigin:{type:"array",value:[0,0]},gridOffset:{type:"array",value:[0,0]},cellSize:{type:"number",min:0,max:1e3,value:1e3},offset:{type:"array",value:[1,1]},coverage:{type:"number",min:0,max:1,value:1},extruded:!0,material:!0},Un=function(e){f()(n,e);var t=In(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,zn(zn({},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=ne(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 Ln(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 Wn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ln(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ln(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Gn(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()(Un,"layerName","GPUGridCellLayer"),y()(Un,"defaultProps",Fn);var Vn={colorDomain:null,colorRange:te,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},Hn={data:{props:["cellSize","colorAggregation","elevationAggregation"]}},qn=function(e){f()(n,e);var t=Gn(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=Z.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:Hn}),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=Z.getAggregationData(Wn({pixelIndex:r},o.getData("color"))),u=Z.getAggregationData(Wn({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=Ke(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=ne(this.props.colorRange);return new(this.getSubLayerClass("gpu-grid-cell",Un))({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=Ue(this.getAttributes(),this.getNumInstances()),this.setState({boundingBox:c})),u||a){var g=Ge(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}(Je);function Yn(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 Xn(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?Xn(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}y()(qn,"layerName","GPUGridLayer"),y()(qn,"defaultProps",Vn);var $n=Kn(Kn(Kn({},qn.defaultProps),yt.defaultProps),{},{gpuAggregation:!1}),Qn=function(e){f()(n,e);var t=Yn(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",qn):this.getSubLayerClass("CPU",yt))(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&&(!!Z.isSupported(this.context.gl)&&(0===n&&100===r&&(null===i&&null===o&&("quantile"!==a&&"ordinal"!==a))))}}]),n}(x.CompositeLayer);function Zn(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 Jn(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 Jn(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 Jn(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 er(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 tr(e,t){return t[0]>=e[0]&&t[2]<=e[2]&&t[1]>=e[1]&&t[3]<=e[3]}y()(Qn,"layerName","GridLayer"),y()(Qn,"defaultProps",$n);var nr=new Float32Array(12);function rr(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,r=0,i=Zn(e);try{for(i.s();!(t=i.n()).done;)for(var o=t.value,a=0;a<n;a++)nr[r++]=o[a]||0}catch(e){i.e(e)}finally{i.f()}return nr}function ir(e,t,n){var r=me()(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 or(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 ar(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?or(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):or(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function sr(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 ur=function(e){f()(n,e);var t=sr(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,ar(ar({},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(ar(ar({},t),{},{texture:i,maxTexture:o,colorTexture:a,intensity:s,threshold:u,aggregationMode:l,colorDomain:c})).draw()}}]),n}(x.Layer);y()(ur,"layerName","TriangleLayer");var lr;function cr(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 gr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?cr(Object(n),!0).forEach((function(t){y()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):cr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function fr(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 dr={mipmaps:!1,parameters:(lr={},y()(lr,10240,9729),y()(lr,10241,9729),y()(lr,10242,33071),y()(lr,10243,33071),lr),dataFormat:6408},pr=[0,0],hr={SUM:0,MEAN:1},vr={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:te,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}},mr=[b.FEATURES.BLEND_EQUATION_MINMAX,b.FEATURES.TEXTURE_FLOAT],yr=[b.FEATURES.COLOR_ATTACHMENT_RGBA32F,b.FEATURES.FLOAT_BLEND],xr={data:{props:["radiusPixels"]}},br=function(e){f()(n,e);var t=fr(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,mr))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,xr),this.setState({supported:!0,colorDomain:pr}),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",ur))(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:hr[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,gr({width:n,height:n,format:r,type:i},dr)),maxWeightsTexture:new b.Texture2D(e,gr({format:r,type:i},dr))})}},{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,yr),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,gr({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,gr(gr({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=er(n),i={visibleWorldBounds:r,viewportCorners:n},o=!1;if(e||!this.state.worldBounds||!tr(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(rr(i,3));var a=i.map((function(e){return t=o.projectPosition(e),n=r,i=me()(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(rr(a,2))}},{key:"_updateColorTexture",value:function(e){var t=e.props.colorRange,n=this.state.colorTexture,r=ne(t,!1,Uint8Array);n?n.setImageData({data:r,width:t.length}):n=new b.Texture2D(this.context.gl,gr({data:r,width:t.length,height:1},dr)),this.setState({colorTexture:n})}},{key:"_updateWeightmap",value:function(){var e,t=this,n=this.props,r=n.radiusPixels,i=n.colorDomain,o=n.aggregation,a=this.state,s=a.weightsTransform,u=a.worldBounds,l=a.textureSize,c=a.weightsTexture,g=a.weightsScale;this.state.isWeightMapDirty=!1;var f=this._worldToCommonBounds(u,{useLayerCoordinateSystem:!0});if(i&&"SUM"===o){var d=this.context.viewport.distanceScales.metersPerUnit[2]*(f[2]-f[0])/l;this.state.colorDomain=i.map((function(e){return e*d*g}))}else this.state.colorDomain=i||pr;var p={radiusPixels:r,commonBounds:f,textureWidth:l,weightsScale:g};s.update({elementCount:this.getNumInstances()}),Object(b.withParameters)(this.context.gl,{clearColor:[0,0,0,0]},(function(){s.run({uniforms:p,parameters:{blend:!0,depthTest:!1,blendFunc:[1,1],blendEquation:32774},clearRenderTarget:!0,attributes:t.getAttributes(),moduleSettings:t.getModuleSettings()})})),this._updateMaxWeightValue(),c.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=me()(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])),ir([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=me()(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}(he);y()(br,"layerName","HeatmapLayer"),y()(br,"defaultProps",vr),n.d(t,"ScreenGridLayer",(function(){return ot})),n.d(t,"CPUGridLayer",(function(){return yt})),n.d(t,"HexagonLayer",(function(){return Et})),n.d(t,"ContourLayer",(function(){return Nn})),n.d(t,"GridLayer",(function(){return Qn})),n.d(t,"GPUGridLayer",(function(){return qn})),n.d(t,"AGGREGATION_OPERATION",(function(){return D})),n.d(t,"HeatmapLayer",(function(){return br})),n.d(t,"_GPUGridAggregator",(function(){return Z})),n.d(t,"_CPUAggregator",(function(){return pt})),n.d(t,"_AggregationLayer",(function(){return he})),n.d(t,"_BinSorter",(function(){return Ie}))}])}));
1
+ "use strict";var deck=(()=>{var Mo=Object.create;var ft=Object.defineProperty;var Eo=Object.getOwnPropertyDescriptor;var Ro=Object.getOwnPropertyNames;var No=Object.getPrototypeOf,Io=Object.prototype.hasOwnProperty;var F=(t,a)=>()=>(a||t((a={exports:{}}).exports,a),a.exports),Lo=(t,a)=>{for(var e in a)ft(t,e,{get:a[e],enumerable:!0})},lt=(t,a,e,n)=>{if(a&&typeof a=="object"||typeof a=="function")for(let r of Ro(a))!Io.call(t,r)&&r!==e&&ft(t,r,{get:()=>a[r],enumerable:!(n=Eo(a,r))||n.enumerable});return t},ie=(t,a,e)=>(lt(t,a,"default"),e&&lt(e,a,"default")),v=(t,a,e)=>(e=t!=null?Mo(No(t)):{},lt(a||!t||!t.__esModule?ft(e,"default",{value:t,enumerable:!0}):e,t)),Fo=t=>lt(ft({},"__esModule",{value:!0}),t);var Se=F((rl,Dr)=>{Dr.exports=globalThis.deck});var z=F((al,Er)=>{function Bo(t,a){if(!(t instanceof a))throw new TypeError("Cannot call a class as a function")}Er.exports=Bo});var U=F((il,Nr)=>{function Rr(t,a){for(var e=0;e<a.length;e++){var n=a[e];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function zo(t,a,e){return a&&Rr(t.prototype,a),e&&Rr(t,e),t}Nr.exports=zo});var ae=F((ol,Ir)=>{function Uo(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}Ir.exports=Uo});var j=F((sl,Yt)=>{function qt(t){return Yt.exports=qt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},qt(t)}Yt.exports=qt});var Fr=F((ul,Lr)=>{var ko=j();function Go(t,a){for(;!Object.prototype.hasOwnProperty.call(t,a)&&(t=ko(t),t!==null););return t}Lr.exports=Go});var K=F((ll,ct)=>{var Wo=Fr();function gt(t,a,e){return typeof Reflect<"u"&&Reflect.get?ct.exports=gt=Reflect.get:ct.exports=gt=function(r,i,o){var s=Wo(r,i);if(s){var u=Object.getOwnPropertyDescriptor(s,i);return u.get?u.get.call(o):u.value}},gt(t,a,e||t)}ct.exports=gt});var Br=F((fl,Qt)=>{function Kt(t,a){return Qt.exports=Kt=Object.setPrototypeOf||function(n,r){return n.__proto__=r,n},Kt(t,a)}Qt.exports=Kt});var H=F((gl,zr)=>{var jo=Br();function Vo(t,a){if(typeof a!="function"&&a!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(a&&a.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),a&&jo(t,a)}zr.exports=Vo});var Zt=F((cl,vt)=>{function pt(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?vt.exports=pt=function(e){return typeof e}:vt.exports=pt=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pt(t)}vt.exports=pt});var $=F((pl,Ur)=>{var Ho=Zt(),$o=ae();function Xo(t,a){return a&&(Ho(a)==="object"||typeof a=="function")?a:$o(t)}Ur.exports=Xo});var L=F((vl,kr)=>{function qo(t,a,e){return a in t?Object.defineProperty(t,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[a]=e,t}kr.exports=qo});var B=F((ml,Gr)=>{Gr.exports=globalThis.deck});var Q=F((dl,Wr)=>{Wr.exports=globalThis.luma});var Vr=F((hl,jr)=>{function Yo(t){if(Array.isArray(t))return t}jr.exports=Yo});var $r=F((yl,Hr)=>{function Ko(t,a){if(Symbol.iterator in Object(t)||Object.prototype.toString.call(t)==="[object Arguments]"){var e=[],n=!0,r=!1,i=void 0;try{for(var o=t[Symbol.iterator](),s;!(n=(s=o.next()).done)&&(e.push(s.value),!(a&&e.length===a));n=!0);}catch(u){r=!0,i=u}finally{try{!n&&o.return!=null&&o.return()}finally{if(r)throw i}}return e}}Hr.exports=Ko});var qr=F((xl,Xr)=>{function Qo(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}Xr.exports=Qo});var Ye=F((Sl,Yr)=>{var Zo=Vr(),Jo=$r(),es=qr();function ts(t,a){return Zo(t)||Jo(t,a)||es()}Yr.exports=ts});var it={};Lo(it,{AGGREGATION_OPERATION:()=>E,CPUGridLayer:()=>ve,ContourLayer:()=>Bt,GPUGridLayer:()=>he,GridLayer:()=>jt,HeatmapLayer:()=>Xt,HexagonLayer:()=>Et,ScreenGridLayer:()=>Pt,_AggregationLayer:()=>Z,_BinSorter:()=>Me,_CPUAggregator:()=>Ie,_GPUGridAggregator:()=>G});var re={},Mr=v(Se());ie(re,v(Se()));if(!Mr.GeoJsonLayer)throw new Error("@deck.gl/layers is not found");ie(it,re);var ma=v(z()),da=v(U()),ha=v(ae()),Ct=v(K()),ya=v(H()),xa=v($()),Ne=v(j()),pe=v(L()),lr=v(B());var yt=v(L()),vn=v(z()),mn=v(U()),R=v(Q());function Jt(t){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=Math.fround(t),r=t-n;return a[e]=n,a[e+1]=r,a}function Kr(t){return t-Math.fround(t)}function Qr(t){for(var a=new Float32Array(32),e=0;e<4;++e)for(var n=0;n<4;++n){var r=e*4+n;Jt(t[n*4+e],a,r*2)}return a}var Zr=`uniform float ONE;
2
+ vec2 split(float a) {
3
+ const float SPLIT = 4097.0;
4
+ float t = a * SPLIT;
5
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
6
+ float a_hi = t * ONE - (t - a);
7
+ float a_lo = a * ONE - a_hi;
8
+ #else
9
+ float a_hi = t - (t - a);
10
+ float a_lo = a - a_hi;
11
+ #endif
12
+ return vec2(a_hi, a_lo);
13
+ }
14
+ vec2 split2(vec2 a) {
15
+ vec2 b = split(a.x);
16
+ b.y += a.y;
17
+ return b;
18
+ }
19
+ vec2 quickTwoSum(float a, float b) {
20
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
21
+ float sum = (a + b) * ONE;
22
+ float err = b - (sum - a) * ONE;
23
+ #else
24
+ float sum = a + b;
25
+ float err = b - (sum - a);
26
+ #endif
27
+ return vec2(sum, err);
28
+ }
29
+ vec2 twoSum(float a, float b) {
30
+ float s = (a + b);
31
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
32
+ float v = (s * ONE - a) * ONE;
33
+ float err = (a - (s - v) * ONE) * ONE * ONE * ONE + (b - v);
34
+ #else
35
+ float v = s - a;
36
+ float err = (a - (s - v)) + (b - v);
37
+ #endif
38
+ return vec2(s, err);
39
+ }
40
+
41
+ vec2 twoSub(float a, float b) {
42
+ float s = (a - b);
43
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
44
+ float v = (s * ONE - a) * ONE;
45
+ float err = (a - (s - v) * ONE) * ONE * ONE * ONE - (b + v);
46
+ #else
47
+ float v = s - a;
48
+ float err = (a - (s - v)) - (b + v);
49
+ #endif
50
+ return vec2(s, err);
51
+ }
52
+
53
+ vec2 twoSqr(float a) {
54
+ float prod = a * a;
55
+ vec2 a_fp64 = split(a);
56
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
57
+ float err = ((a_fp64.x * a_fp64.x - prod) * ONE + 2.0 * a_fp64.x *
58
+ a_fp64.y * ONE * ONE) + a_fp64.y * a_fp64.y * ONE * ONE * ONE;
59
+ #else
60
+ float err = ((a_fp64.x * a_fp64.x - prod) + 2.0 * a_fp64.x * a_fp64.y) + a_fp64.y * a_fp64.y;
61
+ #endif
62
+ return vec2(prod, err);
63
+ }
64
+
65
+ vec2 twoProd(float a, float b) {
66
+ float prod = a * b;
67
+ vec2 a_fp64 = split(a);
68
+ vec2 b_fp64 = split(b);
69
+ float err = ((a_fp64.x * b_fp64.x - prod) + a_fp64.x * b_fp64.y +
70
+ a_fp64.y * b_fp64.x) + a_fp64.y * b_fp64.y;
71
+ return vec2(prod, err);
72
+ }
73
+
74
+ vec2 sum_fp64(vec2 a, vec2 b) {
75
+ vec2 s, t;
76
+ s = twoSum(a.x, b.x);
77
+ t = twoSum(a.y, b.y);
78
+ s.y += t.x;
79
+ s = quickTwoSum(s.x, s.y);
80
+ s.y += t.y;
81
+ s = quickTwoSum(s.x, s.y);
82
+ return s;
83
+ }
84
+
85
+ vec2 sub_fp64(vec2 a, vec2 b) {
86
+ vec2 s, t;
87
+ s = twoSub(a.x, b.x);
88
+ t = twoSub(a.y, b.y);
89
+ s.y += t.x;
90
+ s = quickTwoSum(s.x, s.y);
91
+ s.y += t.y;
92
+ s = quickTwoSum(s.x, s.y);
93
+ return s;
94
+ }
95
+
96
+ vec2 mul_fp64(vec2 a, vec2 b) {
97
+ vec2 prod = twoProd(a.x, b.x);
98
+ prod.y += a.x * b.y;
99
+ #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
100
+ prod = split2(prod);
101
+ #endif
102
+ prod = quickTwoSum(prod.x, prod.y);
103
+ prod.y += a.y * b.x;
104
+ #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
105
+ prod = split2(prod);
106
+ #endif
107
+ prod = quickTwoSum(prod.x, prod.y);
108
+ return prod;
109
+ }
110
+
111
+ vec2 div_fp64(vec2 a, vec2 b) {
112
+ float xn = 1.0 / b.x;
113
+ #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
114
+ vec2 yn = mul_fp64(a, vec2(xn, 0));
115
+ #else
116
+ vec2 yn = a * xn;
117
+ #endif
118
+ float diff = (sub_fp64(a, mul_fp64(b, yn))).x;
119
+ vec2 prod = twoProd(xn, diff);
120
+ return sum_fp64(yn, prod);
121
+ }
122
+
123
+ vec2 sqrt_fp64(vec2 a) {
124
+ if (a.x == 0.0 && a.y == 0.0) return vec2(0.0, 0.0);
125
+ if (a.x < 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);
126
+
127
+ float x = 1.0 / sqrt(a.x);
128
+ float yn = a.x * x;
129
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
130
+ vec2 yn_sqr = twoSqr(yn) * ONE;
131
+ #else
132
+ vec2 yn_sqr = twoSqr(yn);
133
+ #endif
134
+ float diff = sub_fp64(a, yn_sqr).x;
135
+ vec2 prod = twoProd(x * 0.5, diff);
136
+ #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
137
+ return sum_fp64(split(yn), prod);
138
+ #else
139
+ return sum_fp64(vec2(yn, 0.0), prod);
140
+ #endif
141
+ }
142
+ `;var rs={ONE:1};function ns(){return rs}var _e={name:"fp64-arithmetic",vs:Zr,fs:null,getUniforms:ns,fp64ify:Jt,fp64LowPart:Kr,fp64ifyMatrix4:Qr};var Ce=v(B());var ge=v(L());var E={SUM:1,MEAN:2,MIN:3,MAX:4};function Jr(t,a){return t+a}function as(t,a){return a>t?a:t}function is(t,a){return a<t?a:t}function os(t,a){if(Number.isFinite(a))return t.length?a:null;var e=t.map(a).filter(Number.isFinite);return e.length?e.reduce(Jr,0)/e.length:null}function ss(t,a){if(Number.isFinite(a))return t.length?t.length*a:null;var e=t.map(a).filter(Number.isFinite);return e.length?e.reduce(Jr,0):null}function us(t,a){if(Number.isFinite(a))return t.length?a:null;var e=t.map(a).filter(Number.isFinite);return e.length?e.reduce(as,-1/0):null}function ls(t,a){if(Number.isFinite(a))return t.length?a:null;var e=t.map(a).filter(Number.isFinite);return e.length?e.reduce(is,1/0):null}function be(t,a,e){var n=E[t]||E.SUM;switch(a=fs(a,e),n){case E.MIN:return function(r){return ls(r,a)};case E.SUM:return function(r){return ss(r,a)};case E.MEAN:return function(r){return os(r,a)};case E.MAX:return function(r){return us(r,a)};default:return null}}function fs(t){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Number.isFinite(t)?t:function(e){return a.index=e.index,t(e.source,a)}}function en(t){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return function(e){return a.indices=e.map(function(n){return n.index}),t(e.map(function(n){return n.source}),a)}}var Ae,mt,tn={projectPoints:!1,viewport:null,createBufferObjects:!0,moduleSettings:{}},oe=3402823466e29,er=[32775,32774],tr=[32776,32774],rn=[32776,32775],rr=(Ae={},(0,ge.default)(Ae,E.SUM,32774),(0,ge.default)(Ae,E.MEAN,32774),(0,ge.default)(Ae,E.MIN,er),(0,ge.default)(Ae,E.MAX,tr),Ae);var nn={size:1,operation:E.SUM,needMin:!1,needMax:!1,combineMaxMin:!1},an=4;var El={format:34836,type:5126,border:0,mipmaps:!1,parameters:(mt={},(0,ge.default)(mt,10240,9728),(0,ge.default)(mt,10241,9728),mt),dataFormat:6408,width:1,height:1};var on=`#define SHADER_NAME gpu-aggregation-to-grid-vs
143
+
144
+ attribute vec3 positions;
145
+ attribute vec3 positions64Low;
146
+ attribute vec3 weights;
147
+ uniform vec2 cellSize;
148
+ uniform vec2 gridSize;
149
+ uniform bool projectPoints;
150
+ uniform vec2 translation;
151
+ uniform vec3 scaling;
152
+
153
+ varying vec3 vWeights;
154
+
155
+ vec2 project_to_pixel(vec4 pos) {
156
+ vec4 result;
157
+ pos.xy = pos.xy/pos.w;
158
+ result = pos + vec4(translation, 0., 0.);
159
+ result.xy = scaling.z > 0. ? result.xy * scaling.xy : result.xy;
160
+ return result.xy;
161
+ }
162
+
163
+ void main(void) {
164
+
165
+ vWeights = weights;
166
+
167
+ vec4 windowPos = vec4(positions, 1.);
168
+ if (projectPoints) {
169
+ windowPos = project_position_to_clipspace(positions, positions64Low, vec3(0));
170
+ }
171
+
172
+ vec2 pos = project_to_pixel(windowPos);
173
+
174
+ vec2 pixelXY64[2];
175
+ pixelXY64[0] = vec2(pos.x, 0.);
176
+ pixelXY64[1] = vec2(pos.y, 0.);
177
+ vec2 gridXY64[2];
178
+ gridXY64[0] = div_fp64(pixelXY64[0], vec2(cellSize.x, 0));
179
+ gridXY64[1] = div_fp64(pixelXY64[1], vec2(cellSize.y, 0));
180
+ float x = floor(gridXY64[0].x);
181
+ float y = floor(gridXY64[1].x);
182
+ pos = vec2(x, y);
183
+ pos = (pos * (2., 2.) / (gridSize)) - (1., 1.);
184
+ vec2 offset = 1.0 / gridSize;
185
+ pos = pos + offset;
186
+
187
+ gl_Position = vec4(pos, 0.0, 1.0);
188
+ gl_PointSize = 1.0;
189
+ }
190
+ `;var sn=`#define SHADER_NAME gpu-aggregation-to-grid-fs
191
+
192
+ precision highp float;
193
+
194
+ varying vec3 vWeights;
195
+
196
+ void main(void) {
197
+ gl_FragColor = vec4(vWeights, 1.0);
198
+ DECKGL_FILTER_COLOR(gl_FragColor, geometry);
199
+ }
200
+ `;var un=`#version 300 es
201
+ #define SHADER_NAME gpu-aggregation-all-vs-64
202
+
203
+ in vec2 position;
204
+ uniform ivec2 gridSize;
205
+ out vec2 vTextureCoord;
206
+
207
+ void main(void) {
208
+ vec2 pos = vec2(-1.0, -1.0);
209
+ vec2 offset = 1.0 / vec2(gridSize);
210
+ pos = pos + offset;
211
+
212
+ gl_Position = vec4(pos, 0.0, 1.0);
213
+
214
+ int yIndex = gl_InstanceID / gridSize[0];
215
+ int xIndex = gl_InstanceID - (yIndex * gridSize[0]);
216
+
217
+ vec2 yIndexFP64 = vec2(float(yIndex), 0.);
218
+ vec2 xIndexFP64 = vec2(float(xIndex), 0.);
219
+ vec2 gridSizeYFP64 = vec2(gridSize[1], 0.);
220
+ vec2 gridSizeXFP64 = vec2(gridSize[0], 0.);
221
+
222
+ vec2 texCoordXFP64 = div_fp64(yIndexFP64, gridSizeYFP64);
223
+ vec2 texCoordYFP64 = div_fp64(xIndexFP64, gridSizeXFP64);
224
+
225
+ vTextureCoord = vec2(texCoordYFP64.x, texCoordXFP64.x);
226
+ gl_PointSize = 1.0;
227
+ }
228
+ `;var ln=`#version 300 es
229
+ #define SHADER_NAME gpu-aggregation-all-fs
230
+
231
+ precision highp float;
232
+
233
+ in vec2 vTextureCoord;
234
+ uniform sampler2D uSampler;
235
+ uniform bool combineMaxMin;
236
+ out vec4 fragColor;
237
+ void main(void) {
238
+ vec4 textureColor = texture(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));
239
+ if (textureColor.a == 0.) {
240
+ discard;
241
+ }
242
+ fragColor.rgb = textureColor.rgb;
243
+ fragColor.a = combineMaxMin ? textureColor.r : textureColor.a;
244
+ }
245
+ `;var fn=`#define SHADER_NAME gpu-aggregation-transform-mean-vs
246
+ attribute vec4 aggregationValues;
247
+ varying vec4 meanValues;
248
+
249
+ void main()
250
+ {
251
+ bool isCellValid = bool(aggregationValues.w > 0.);
252
+ meanValues.xyz = isCellValid ? aggregationValues.xyz/aggregationValues.w : vec3(0, 0, 0);
253
+ meanValues.w = aggregationValues.w;
254
+ gl_PointSize = 1.0;
255
+ }
256
+ `;var ht=v(L()),Oe=v(Q()),dt,gs=(dt={},(0,ht.default)(dt,10240,9728),(0,ht.default)(dt,10241,9728),dt);function Te(t){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},e=a.width,n=e===void 0?1:e,r=a.height,i=r===void 0?1:r,o=a.data,s=o===void 0?null:o,u=a.unpackFlipY,l=u===void 0?!0:u,g=a.parameters,f=g===void 0?gs:g,c=new Oe.Texture2D(t,{data:s,format:(0,Oe.isWebGL2)(t)?34836:6408,type:5126,border:0,mipmaps:!1,parameters:f,dataFormat:6408,width:n,height:i,unpackFlipY:l});return c}function Ke(t,a){var e=a.id,n=a.width,r=n===void 0?1:n,i=a.height,o=i===void 0?1:i,s=a.texture,u=new Oe.Framebuffer(t,{id:e,width:r,height:o,attachments:(0,ht.default)({},36064,s)});return u}function cs(t,a){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=ps(t))||a&&t&&typeof t.length=="number"){e&&(t=e);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(l){throw l},f:r}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
257
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,o=!1,s;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return i=l.done,l},e:function(l){o=!0,s=l},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(o)throw s}}}}function ps(t,a){if(t){if(typeof t=="string")return gn(t,a);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return gn(t,a)}}function gn(t,a){(a==null||a>t.length)&&(a=t.length);for(var e=0,n=new Array(a);e<a;e++)n[e]=t[e];return n}function cn(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function k(t){for(var a=1;a<arguments.length;a++){var e=arguments[a]!=null?arguments[a]:{};a%2?cn(Object(e),!0).forEach(function(n){(0,yt.default)(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):cn(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}var vs=["aggregationBuffer","maxMinBuffer","minBuffer","maxBuffer"],pn={maxData:"maxBuffer",minData:"minBuffer",maxMinData:"maxMinBuffer"},ms=[R.FEATURES.WEBGL2,R.FEATURES.COLOR_ATTACHMENT_RGBA32F,R.FEATURES.BLEND_EQUATION_MINMAX,R.FEATURES.FLOAT_BLEND,R.FEATURES.TEXTURE_FLOAT],G=function(){function t(a){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};(0,vn.default)(this,t),this.id=e.id||"gpu-grid-aggregator",this.gl=a,this.state={weightAttributes:{},textures:{},meanTextures:{},buffers:{},framebuffers:{},maxMinFramebuffers:{},minFramebuffers:{},maxFramebuffers:{},equations:{},resources:{},results:{}},this._hasGPUSupport=(0,R.isWebGL2)(a)&&(0,R.hasFeatures)(this.gl,R.FEATURES.BLEND_EQUATION_MINMAX,R.FEATURES.COLOR_ATTACHMENT_RGBA32F,R.FEATURES.TEXTURE_FLOAT),this._hasGPUSupport&&this._setupModels()}return(0,mn.default)(t,[{key:"delete",value:function(){var e=this.gridAggregationModel,n=this.allAggregationModel,r=this.meanTransform,i=this.state,o=i.textures,s=i.framebuffers,u=i.maxMinFramebuffers,l=i.minFramebuffers,g=i.maxFramebuffers,f=i.meanTextures,c=i.resources;e?.delete(),n?.delete(),r?.delete(),hs([s,o,u,l,g,f,c])}},{key:"run",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.setState({results:{}});var n=this._normalizeAggregationParams(e);return this._hasGPUSupport||Ce.log.log(1,"GPUGridAggregator: not supported")(),this._runAggregation(n)}},{key:"getData",value:function(e){var n={},r=this.state.results;r[e].aggregationData||(r[e].aggregationData=r[e].aggregationBuffer.getData()),n.aggregationData=r[e].aggregationData;for(var i in pn){var o=pn[i];(r[e][i]||r[e][o])&&(r[e][i]=r[e][i]||r[e][o].getData(),n[i]=r[e][i])}return n}},{key:"updateShaders",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.setState({shaderOptions:e,modelDirty:!0})}},{key:"_normalizeAggregationParams",value:function(e){var n=k(k({},tn),e),r=n.weights;return r&&(n.weights=ds(r)),n}},{key:"setState",value:function(e){Object.assign(this.state,e)}},{key:"_getAggregateData",value:function(e){var n={},r=this.state,i=r.textures,o=r.framebuffers,s=r.maxMinFramebuffers,u=r.minFramebuffers,l=r.maxFramebuffers,g=r.resources,f=e.weights;for(var c in f){n[c]={};var d=f[c],h=d.needMin,m=d.needMax,y=d.combineMaxMin;n[c].aggregationTexture=i[c],n[c].aggregationBuffer=(0,R.readPixelsToBuffer)(o[c],{target:f[c].aggregationBuffer,sourceType:5126}),h&&m&&y?(n[c].maxMinBuffer=(0,R.readPixelsToBuffer)(s[c],{target:f[c].maxMinBuffer,sourceType:5126}),n[c].maxMinTexture=g["".concat(c,"-maxMinTexture")]):(h&&(n[c].minBuffer=(0,R.readPixelsToBuffer)(u[c],{target:f[c].minBuffer,sourceType:5126}),n[c].minTexture=g["".concat(c,"-minTexture")]),m&&(n[c].maxBuffer=(0,R.readPixelsToBuffer)(l[c],{target:f[c].maxBuffer,sourceType:5126}),n[c].maxTexture=g["".concat(c,"-maxTexture")]))}return this._trackGPUResultBuffers(n,f),n}},{key:"_renderAggregateData",value:function(e){var n=e.cellSize,r=e.projectPoints,i=e.attributes,o=e.moduleSettings,s=e.numCol,u=e.numRow,l=e.weights,g=e.translation,f=e.scaling,c=this.state,d=c.maxMinFramebuffers,h=c.minFramebuffers,m=c.maxFramebuffers,y=[s,u],O={blend:!0,depthTest:!1,blendFunc:[1,1]},C={cellSize:n,gridSize:y,projectPoints:r,translation:g,scaling:f};for(var b in l){var P=l[b],w=P.needMin,M=P.needMax,D=w&&M&&l[b].combineMaxMin;this._renderToWeightsTexture({id:b,parameters:O,moduleSettings:o,uniforms:C,gridSize:y,attributes:i,weights:l}),D?this._renderToMaxMinTexture({id:b,parameters:k(k({},O),{},{blendEquation:rn}),gridSize:y,minOrMaxFb:d[b],clearParams:{clearColor:[0,0,0,oe]},combineMaxMin:D}):(w&&this._renderToMaxMinTexture({id:b,parameters:k(k({},O),{},{blendEquation:er}),gridSize:y,minOrMaxFb:h[b],clearParams:{clearColor:[oe,oe,oe,0]},combineMaxMin:D}),M&&this._renderToMaxMinTexture({id:b,parameters:k(k({},O),{},{blendEquation:tr}),gridSize:y,minOrMaxFb:m[b],clearParams:{clearColor:[0,0,0,0]},combineMaxMin:D}))}}},{key:"_renderToMaxMinTexture",value:function(e){var n=e.id,r=e.parameters,i=e.gridSize,o=e.minOrMaxFb,s=e.combineMaxMin,u=e.clearParams,l=u===void 0?{}:u,g=this.state.framebuffers,f=this.gl,c=this.allAggregationModel;(0,R.withParameters)(f,k(k({},l),{},{framebuffer:o,viewport:[0,0,i[0],i[1]]}),function(){f.clear(16384),c.draw({parameters:r,uniforms:{uSampler:g[n].texture,gridSize:i,combineMaxMin:s}})})}},{key:"_renderToWeightsTexture",value:function(e){var n=e.id,r=e.parameters,i=e.moduleSettings,o=e.uniforms,s=e.gridSize,u=e.weights,l=this.state,g=l.framebuffers,f=l.equations,c=l.weightAttributes,d=this.gl,h=this.gridAggregationModel,m=u[n].operation,y=m===E.MIN?[oe,oe,oe,0]:[0,0,0,0];if((0,R.withParameters)(d,{framebuffer:g[n],viewport:[0,0,s[0],s[1]],clearColor:y},function(){d.clear(16384);var w={weights:c[n]};h.draw({parameters:k(k({},r),{},{blendEquation:f[n]}),moduleSettings:i,uniforms:o,attributes:w})}),m===E.MEAN){var O=this.state,C=O.meanTextures,b=O.textures,P={_sourceTextures:{aggregationValues:C[n]},_targetTexture:b[n],elementCount:b[n].width*b[n].height};this.meanTransform?this.meanTransform.update(P):this.meanTransform=Ss(d,P),this.meanTransform.run({parameters:{blend:!1,depthTest:!1}}),g[n].attach((0,yt.default)({},36064,b[n]))}}},{key:"_runAggregation",value:function(e){this._updateModels(e),this._setupFramebuffers(e),this._renderAggregateData(e);var n=this._getAggregateData(e);return this.setState({results:n}),n}},{key:"_setupFramebuffers",value:function(e){var n=this.state,r=n.textures,i=n.framebuffers,o=n.maxMinFramebuffers,s=n.minFramebuffers,u=n.maxFramebuffers,l=n.meanTextures,g=n.equations,f=e.weights,c=e.numCol,d=e.numRow,h={width:c,height:d};for(var m in f){var y=f[m],O=y.needMin,C=y.needMax,b=y.combineMaxMin,P=y.operation;r[m]=f[m].aggregationTexture||r[m]||Te(this.gl,{id:"".concat(m,"-texture"),width:c,height:d}),r[m].resize(h);var w=r[m];P===E.MEAN&&(l[m]=l[m]||Te(this.gl,{id:"".concat(m,"-mean-texture"),width:c,height:d}),l[m].resize(h),w=l[m]),i[m]?i[m].attach((0,yt.default)({},36064,w)):i[m]=Ke(this.gl,{id:"".concat(m,"-fb"),width:c,height:d,texture:w}),i[m].resize(h),g[m]=rr[P]||rr.SUM,(O||C)&&(O&&C&&b?o[m]||(w=f[m].maxMinTexture||this._getMinMaxTexture("".concat(m,"-maxMinTexture")),o[m]=Ke(this.gl,{id:"".concat(m,"-maxMinFb"),texture:w})):(O&&(s[m]||(w=f[m].minTexture||this._getMinMaxTexture("".concat(m,"-minTexture")),s[m]=Ke(this.gl,{id:"".concat(m,"-minFb"),texture:w}))),C&&(u[m]||(w=f[m].maxTexture||this._getMinMaxTexture("".concat(m,"-maxTexture")),u[m]=Ke(this.gl,{id:"".concat(m,"-maxFb"),texture:w})))))}}},{key:"_getMinMaxTexture",value:function(e){var n=this.state.resources;return n[e]||(n[e]=Te(this.gl,{id:"resourceName"})),n[e]}},{key:"_setupModels",value:function(){var e,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=n.numCol,i=r===void 0?0:r,o=n.numRow,s=o===void 0?0:o,u=this.gl,l=this.state.shaderOptions;if((e=this.gridAggregationModel)===null||e===void 0||e.delete(),this.gridAggregationModel=ys(u,l),!this.allAggregationModel){var g=i*s;this.allAggregationModel=xs(u,g)}}},{key:"_setupWeightAttributes",value:function(e){var n=this.state.weightAttributes,r=e.weights;for(var i in r)n[i]=e.attributes[i]}},{key:"_trackGPUResultBuffers",value:function(e,n){var r=this.state.resources;for(var i in e)if(e[i]){var o=cs(vs),s;try{for(o.s();!(s=o.n()).done;){var u=s.value;if(e[i][u]&&n[i][u]!==e[i][u]){var l="gpu-result-".concat(i,"-").concat(u);r[l]&&r[l].delete(),r[l]=e[i][u]}}}catch(g){o.e(g)}finally{o.f()}}}},{key:"_updateModels",value:function(e){var n=e.vertexCount,r=e.attributes,i=e.numCol,o=e.numRow,s=this.state.modelDirty;s&&(this._setupModels(e),this.setState({modelDirty:!1})),this._setupWeightAttributes(e),this.gridAggregationModel.setVertexCount(n),this.gridAggregationModel.setAttributes(r),this.allAggregationModel.setInstanceCount(i*o)}}],[{key:"getAggregationData",value:function(e){var n=e.aggregationData,r=e.maxData,i=e.minData,o=e.maxMinData,s=e.pixelIndex,u=s*an,l={};return n&&(l.cellCount=n[u+3],l.cellWeight=n[u]),o?(l.maxCellWieght=o[0],l.minCellWeight=o[3]):(r&&(l.maxCellWieght=r[0],l.totalCount=r[3]),i&&(l.minCellWeight=i[0],l.totalCount=r[3])),l}},{key:"getCellData",value:function(e){for(var n=e.countsData,r=e.size,i=r===void 0?1:r,o=n.length/4,s=new Float32Array(o*i),u=new Uint32Array(o),l=0;l<o;l++){for(var g=0;g<i;g++)s[l*i+g]=n[l*4+g];u[l]=n[l*4+3]}return{cellCounts:u,cellWeights:s}}},{key:"isSupported",value:function(e){return(0,R.hasFeatures)(e,ms)}}]),t}();function ds(t){var a={};for(var e in t)a[e]=k(k({},nn),t[e]);return a}function hs(t){t=Array.isArray(t)?t:[t],t.forEach(function(a){for(var e in a)a[e].delete()})}function ys(t,a){var e=(0,Ce._mergeShaders)({vs:on,fs:sn,modules:[_e,Ce.project32]},a);return new R.Model(t,k({id:"Gird-Aggregation-Model",vertexCount:1,drawMode:0},e))}function xs(t,a){return new R.Model(t,{id:"All-Aggregation-Model",vs:un,fs:ln,modules:[_e],vertexCount:1,drawMode:0,isInstanced:!0,instanceCount:a,attributes:{position:[0,0]}})}function Ss(t,a){return new R.Transform(t,k({vs:fn,_targetTextureVarying:"meanValues"},a))}var xn=v(z()),Sn=v(U()),_n=v(ae()),bn=v(K()),An=v(H()),On=v($()),xt=v(j()),Qe=v(L()),ue=v(Q()),Pe=v(B());var Y=[[255,255,178],[254,217,118],[254,178,76],[253,141,60],[240,59,32],[189,0,38]];function se(t){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Float32Array,n;if(Number.isFinite(t[0]))n=new e(t);else{n=new e(t.length*4);for(var r=0,i=0;i<t.length;i++){var o=t[i];n[r++]=o[0],n[r++]=o[1],n[r++]=o[2],n[r++]=Number.isFinite(o[3])?o[3]:255}}if(a)for(var s=0;s<n.length;s++)n[s]/=255;return n}var dn=`#define SHADER_NAME screen-grid-layer-vertex-shader
258
+ #define RANGE_COUNT 6
259
+
260
+ attribute vec3 positions;
261
+ attribute vec3 instancePositions;
262
+ attribute vec4 instanceCounts;
263
+ attribute vec3 instancePickingColors;
264
+
265
+ uniform float opacity;
266
+ uniform vec3 cellScale;
267
+ uniform vec4 minColor;
268
+ uniform vec4 maxColor;
269
+ uniform vec4 colorRange[RANGE_COUNT];
270
+ uniform vec2 colorDomain;
271
+ uniform bool shouldUseMinMax;
272
+ uniform sampler2D maxTexture;
273
+
274
+ varying vec4 vColor;
275
+ varying float vSampleCount;
276
+
277
+ vec4 quantizeScale(vec2 domain, vec4 range[RANGE_COUNT], float value) {
278
+ vec4 outColor = vec4(0., 0., 0., 0.);
279
+ if (value >= domain.x && value <= domain.y) {
280
+ float domainRange = domain.y - domain.x;
281
+ if (domainRange <= 0.) {
282
+ outColor = colorRange[0];
283
+ } else {
284
+ float rangeCount = float(RANGE_COUNT);
285
+ float rangeStep = domainRange / rangeCount;
286
+ float idx = floor((value - domain.x) / rangeStep);
287
+ idx = clamp(idx, 0., rangeCount - 1.);
288
+ int intIdx = int(idx);
289
+ outColor = colorRange[intIdx];
290
+ }
291
+ }
292
+ outColor = outColor / 255.;
293
+ return outColor;
294
+ }
295
+
296
+ void main(void) {
297
+ vSampleCount = instanceCounts.a;
298
+
299
+ float weight = instanceCounts.r;
300
+ float maxWeight = texture2D(maxTexture, vec2(0.5)).r;
301
+
302
+ float step = weight / maxWeight;
303
+ vec4 minMaxColor = mix(minColor, maxColor, step) / 255.;
304
+
305
+ vec2 domain = colorDomain;
306
+ float domainMaxValid = float(colorDomain.y != 0.);
307
+ domain.y = mix(maxWeight, colorDomain.y, domainMaxValid);
308
+ vec4 rangeColor = quantizeScale(domain, colorRange, weight);
309
+
310
+ float rangeMinMax = float(shouldUseMinMax);
311
+ vec4 color = mix(rangeColor, minMaxColor, rangeMinMax);
312
+ vColor = vec4(color.rgb, color.a * opacity);
313
+ picking_setPickingColor(instancePickingColors);
314
+
315
+ gl_Position = vec4(instancePositions + positions * cellScale, 1.);
316
+ }
317
+ `;var hn=`#define SHADER_NAME screen-grid-layer-fragment-shader
318
+
319
+ precision highp float;
320
+
321
+ varying vec4 vColor;
322
+ varying float vSampleCount;
323
+
324
+ void main(void) {
325
+ if (vSampleCount <= 0.0) {
326
+ discard;
327
+ }
328
+ gl_FragColor = vColor;
329
+
330
+ DECKGL_FILTER_COLOR(gl_FragColor, geometry);
331
+ }
332
+ `;function yn(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function nr(t){for(var a=1;a<arguments.length;a++){var e=arguments[a]!=null?arguments[a]:{};a%2?yn(Object(e),!0).forEach(function(n){(0,Qe.default)(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):yn(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function _s(t){var a=bs();return function(){var n=(0,xt.default)(t),r;if(a){var i=(0,xt.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,On.default)(this,r)}}function bs(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var As=[0,0,0,0],Os=[0,255,0,255],Ts=["minColor","maxColor","colorRange","colorDomain"],Cs={cellSizePixels:{value:100,min:1},cellMarginPixels:{value:2,min:0,max:5},colorDomain:null,colorRange:Y},we=function(t){(0,An.default)(e,t);var a=_s(e);function e(){var n;(0,xn.default)(this,e);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=a.call.apply(a,[this].concat(i)),(0,Qe.default)((0,_n.default)(n),"state",void 0),n}return(0,Sn.default)(e,[{key:"getShaders",value:function(){return{vs:dn,fs:hn,modules:[Pe.picking]}}},{key:"initializeState",value:function(){var r=this.context.gl,i=this.getAttributeManager();i.addInstanced({instancePositions:{size:3,update:this.calculateInstancePositions},instanceCounts:{size:4,noAlloc:!0}}),this.setState({model:this._getModel(r)})}},{key:"shouldUpdateState",value:function(r){var i=r.changeFlags;return i.somethingChanged}},{key:"updateState",value:function(r){(0,bn.default)((0,xt.default)(e.prototype),"updateState",this).call(this,r);var i=r.oldProps,o=r.props,s=r.changeFlags,u=this.getAttributeManager();o.numInstances!==i.numInstances?u.invalidateAll():i.cellSizePixels!==o.cellSizePixels&&u.invalidate("instancePositions"),this._updateUniforms(i,o,s)}},{key:"draw",value:function(r){var i=r.uniforms,o=this.props,s=o.parameters,u=o.maxTexture,l=this.props.minColor||As,g=this.props.maxColor||Os,f=this.props.colorDomain||[1,0],c=this.state.model;c.setUniforms(i).setUniforms({minColor:l,maxColor:g,maxTexture:u,colorDomain:f}).draw({parameters:nr({depthTest:!1,depthMask:!1},s)})}},{key:"calculateInstancePositions",value:function(r,i){for(var o=i.numInstances,s=this.context.viewport,u=s.width,l=s.height,g=this.props.cellSizePixels,f=Math.ceil(u/g),c=r.value,d=r.size,h=0;h<o;h++){var m=h%f,y=Math.floor(h/f);c[h*d+0]=m*g/u*2-1,c[h*d+1]=1-y*g/l*2,c[h*d+2]=0}}},{key:"_getModel",value:function(r){return new ue.Model(r,nr(nr({},this.getShaders()),{},{id:this.props.id,geometry:new ue.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 r=this.props,i=r.minColor,o=r.maxColor,s=r.colorDomain,u=r.colorRange;return i||o?(Pe.log.deprecated("ScreenGridLayer props: minColor and maxColor","colorRange, colorDomain")(),!0):!(s||u)}},{key:"_updateUniforms",value:function(r,i,o){var s=this.state.model;if(Ts.some(function(y){return r[y]!==i[y]})&&s.setUniforms({shouldUseMinMax:this._shouldUseMinMax()}),r.colorRange!==i.colorRange&&s.setUniforms({colorRange:se(i.colorRange)}),r.cellMarginPixels!==i.cellMarginPixels||r.cellSizePixels!==i.cellSizePixels||o.viewportChanged){var u=this.context.viewport,l=u.width,g=u.height,f=this.props,c=f.cellSizePixels,d=f.cellMarginPixels,h=c>d?d:0,m=new Float32Array([(c-h)/l*2,-(c-h)/g*2,1]);s.setUniforms({cellScale:m})}}}],[{key:"isSupported",value:function(r){return(0,ue.hasFeatures)(r,[ue.FEATURES.TEXTURE_FLOAT])}}]),e}(Pe.Layer);(0,Qe.default)(we,"layerName","ScreenGridCellLayer");(0,Qe.default)(we,"defaultProps",Cs);var oa=v(z()),sa=v(U()),ua=v(ae()),Tt=v(K()),la=v(H()),fa=v($()),Re=v(j()),sr=v(L());var wn=v(z()),Dn=v(U()),Mn=v(ae()),ar=v(K()),En=v(H()),Rn=v($()),Ze=v(j()),ir=v(L()),De=v(B()),Nn=v(Q());function Tn(t,a){var e={};for(var n in t)a.includes(n)||(e[n]=t[n]);return e}function Cn(t,a){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=Ps(t))||a&&t&&typeof t.length=="number"){e&&(t=e);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(l){throw l},f:r}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
333
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,o=!1,s;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return i=l.done,l},e:function(l){o=!0,s=l},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(o)throw s}}}}function Ps(t,a){if(t){if(typeof t=="string")return Pn(t,a);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Pn(t,a)}}function Pn(t,a){(a==null||a>t.length)&&(a=t.length);for(var e=0,n=new Array(a);e<a;e++)n[e]=t[e];return n}function ws(t){var a=Ds();return function(){var n=(0,Ze.default)(t),r;if(a){var i=(0,Ze.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,Rn.default)(this,r)}}function Ds(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Z=function(t){(0,En.default)(e,t);var a=ws(e);function e(){var n;(0,wn.default)(this,e);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=a.call.apply(a,[this].concat(i)),(0,ir.default)((0,Mn.default)(n),"state",void 0),n}return(0,Dn.default)(e,[{key:"initializeAggregationLayer",value:function(r){(0,ar.default)((0,Ze.default)(e.prototype),"initializeState",this).call(this,this.context),this.setState({ignoreProps:Tn(this.constructor._propTypes,r.data.props),dimensions:r})}},{key:"updateState",value:function(r){(0,ar.default)((0,Ze.default)(e.prototype),"updateState",this).call(this,r);var i=r.changeFlags;if(i.extensionsChanged){var o=this.getShaders({});o&&o.defines&&(o.defines.NON_INSTANCED_MODEL=1),this.updateShaders(o)}this._updateAttributes()}},{key:"updateAttributes",value:function(r){this.setState({changedAttributes:r})}},{key:"getAttributes",value:function(){return this.getAttributeManager().getShaderAttributes()}},{key:"getModuleSettings",value:function(){var r=this.context,i=r.viewport,o=r.mousePosition,s=r.gl,u=Object.assign(Object.create(this.props),{viewport:i,mousePosition:o,pickingActive:0,devicePixelRatio:(0,Nn.cssToDeviceRatio)(s)});return u}},{key:"updateShaders",value:function(r){}},{key:"isAggregationDirty",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=r.props,s=r.oldProps,u=r.changeFlags,l=i.compareAll,g=l===void 0?!1:l,f=i.dimension,c=this.state.ignoreProps,d=f.props,h=f.accessors,m=h===void 0?[]:h,y=u.updateTriggersChanged;if(u.dataChanged)return!0;if(y){if(y.all)return!0;var O=Cn(m),C;try{for(O.s();!(C=O.n()).done;){var b=C.value;if(y[b])return!0}}catch(D){O.e(D)}finally{O.f()}}if(g)return u.extensionsChanged?!0:(0,De._compareProps)({oldProps:s,newProps:o,ignoreProps:c,propTypes:this.constructor._propTypes});var P=Cn(d),w;try{for(P.s();!(w=P.n()).done;){var M=w.value;if(o[M]!==s[M])return!0}}catch(D){P.e(D)}finally{P.f()}return!1}},{key:"isAttributeChanged",value:function(r){var i=this.state.changedAttributes;return r?i&&i[r]!==void 0:!Ms(i)}},{key:"_getAttributeManager",value:function(){return new De.AttributeManager(this.context.gl,{id:this.props.id,stats:this.context.stats})}}]),e}(De.CompositeLayer);(0,ir.default)(Z,"layerName","AggregationLayer");function Ms(t){var a=!0;for(var e in t){a=!1;break}return a}var ga=v(Q()),ca=v(B());var _t=v(Ye()),Xn=v(z()),qn=v(U()),le=v(L());var Fn=v(B());function Es(t,a){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=Rs(t))||a&&t&&typeof t.length=="number"){e&&(t=e);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(l){throw l},f:r}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
334
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,o=!1,s;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return i=l.done,l},e:function(l){o=!0,s=l},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(o)throw s}}}}function Rs(t,a){if(t){if(typeof t=="string")return In(t,a);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return In(t,a)}}function In(t,a){(a==null||a>t.length)&&(a=t.length);for(var e=0,n=new Array(a);e<a;e++)n[e]=t[e];return n}function St(t,a,e){var n=e;return n.domain=function(){return t},n.range=function(){return a},n}function Ln(t,a){var e=function(r){return ks(t,a,r)};return St(t,a,e)}function Ns(t,a){var e=function(r){return Gs(t,a,r)};return St(t,a,e)}function Is(t,a){for(var e=t.sort(Bn),n=0,r=Math.max(1,a.length),i=new Array(r-1);++n<r;)i[n-1]=Ls(e,n/r);var o=function(u){return Bs(i,a,u)};return o.thresholds=function(){return i},St(t,a,o)}function Bn(t,a){return t-a}function Ls(t,a){var e=t.length;if(a<=0||e<2)return t[0];if(a>=1)return t[e-1];var n=(e-1)*a,r=Math.floor(n),i=t[r],o=t[r+1];return i+(o-i)*(n-r)}function Fs(t,a){for(var e=0,n=t.length;e<n;){var r=e+n>>>1;Bn(t[r],a)>0?n=r:e=r+1}return e}function Bs(t,a,e){return a[Fs(t,e)]}function zs(t,a,e,n){var r="".concat(n),i=a.get(r);return i===void 0&&(i=t.push(n),a.set(r,i)),e[(i-1)%e.length]}function Us(t,a){var e=new Map,n=[],r=Es(t),i;try{for(r.s();!(i=r.n()).done;){var o=i.value,s="".concat(o);e.has(s)||e.set(s,n.push(o))}}catch(l){r.e(l)}finally{r.f()}var u=function(g){return zs(n,e,a,g)};return St(t,a,u)}function ks(t,a,e){var n=t[1]-t[0];if(n<=0)return Fn.log.warn("quantizeScale: invalid domain, returning range[0]")(),a[0];var r=n/a.length,i=Math.floor((e-t[0])/r),o=Math.max(Math.min(i,a.length-1),0);return a[o]}function Gs(t,a,e){return(e-t[0])/(t[1]-t[0])*(a[1]-a[0])+a[0]}function zn(t){return t!=null}function Ws(t){var a=[];return t.forEach(function(e){!a.includes(e)&&zn(e)&&a.push(e)}),a}function Un(t,a){var e=typeof a=="function"?t.map(a):t;return e.filter(zn)}function kn(t,a){return Un(t,a)}function Gn(t,a){return Ws(Un(t,a))}function Wn(t,a,e){return Math.max(a,Math.min(e,t))}function jn(t){switch(t){case"quantize":return Ln;case"linear":return Ns;case"quantile":return Is;case"ordinal":return Us;default:return Ln}}function Vn(t,a){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=js(t))||a&&t&&typeof t.length=="number"){e&&(t=e);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(l){throw l},f:r}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
335
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,o=!1,s;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return i=l.done,l},e:function(l){o=!0,s=l},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(o)throw s}}}}function js(t,a){if(t){if(typeof t=="string")return Hn(t,a);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Hn(t,a)}}function Hn(t,a){(a==null||a>t.length)&&(a=t.length);for(var e=0,n=new Array(a);e<a;e++)n[e]=t[e];return n}var Yn=function(a){return a.length},Vs=3402823466e29,Kn=function(a){return a.points},Qn=function(a){return a.index},$n=function(a,e){return a<e?-1:a>e?1:a>=e?0:NaN},Hs={getValue:Yn,getPoints:Kn,getIndex:Qn,filterData:null},Me=function(){function t(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Hs;(0,Xn.default)(this,t),(0,le.default)(this,"maxCount",void 0),(0,le.default)(this,"maxValue",void 0),(0,le.default)(this,"minValue",void 0),(0,le.default)(this,"totalCount",void 0),(0,le.default)(this,"aggregatedBins",void 0),(0,le.default)(this,"sortedBins",void 0),(0,le.default)(this,"binMap",void 0),this.aggregatedBins=this.getAggregatedBins(a,e),this._updateMinMaxValues(),this.binMap=this.getBinMap()}return(0,qn.default)(t,[{key:"getAggregatedBins",value:function(e,n){for(var r=n.getValue,i=r===void 0?Yn:r,o=n.getPoints,s=o===void 0?Kn:o,u=n.getIndex,l=u===void 0?Qn:u,g=n.filterData,f=typeof g=="function",c=e.length,d=[],h=0,m=0;m<c;m++){var y=e[m],O=s(y),C=l(y),b=f?O.filter(g):O;y.filteredPoints=f?b:null;var P=b.length?i(b):null;P!=null&&(d[h]={i:Number.isFinite(C)?C:m,value:P,counts:b.length},h++)}return d}},{key:"_percentileToIndex",value:function(e){var n=this.sortedBins.length;if(n<2)return[0,0];var r=e.map(function(g){return Wn(g,0,100)}),i=(0,_t.default)(r,2),o=i[0],s=i[1],u=Math.ceil(o/100*(n-1)),l=Math.floor(s/100*(n-1));return[u,l]}},{key:"getBinMap",value:function(){var e={},n=Vn(this.aggregatedBins),r;try{for(n.s();!(r=n.n()).done;){var i=r.value;e[i.i]=i}}catch(o){n.e(o)}finally{n.f()}return e}},{key:"_updateMinMaxValues",value:function(){var e=0,n=0,r=Vs,i=0,o=Vn(this.aggregatedBins),s;try{for(o.s();!(s=o.n()).done;){var u=s.value;e=e>u.counts?e:u.counts,n=n>u.value?n:u.value,r=r<u.value?r:u.value,i+=u.counts}}catch(l){o.e(l)}finally{o.f()}this.maxCount=e,this.maxValue=n,this.minValue=r,this.totalCount=i}},{key:"getValueRange",value:function(e){if(this.sortedBins||(this.sortedBins=this.aggregatedBins.sort(function(o,s){return $n(o.value,s.value)})),!this.sortedBins.length)return[];var n=0,r=this.sortedBins.length-1;if(Array.isArray(e)){var i=this._percentileToIndex(e);n=i[0],r=i[1]}return[this.sortedBins[n].value,this.sortedBins[r].value]}},{key:"getValueDomainByScale",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=(0,_t.default)(n,2),i=r[0],o=i===void 0?0:i,s=r[1],u=s===void 0?100:s;if(this.sortedBins||(this.sortedBins=this.aggregatedBins.sort(function(g,f){return $n(g.value,f.value)})),!this.sortedBins.length)return[];var l=this._percentileToIndex([o,u]);return this._getScaleDomain(e,l)}},{key:"_getScaleDomain",value:function(e,n){var r=(0,_t.default)(n,2),i=r[0],o=r[1],s=this.sortedBins;switch(e){case"quantize":case"linear":return[s[i].value,s[o].value];case"quantile":return kn(s.slice(i,o+1),function(u){return u.value});case"ordinal":return Gn(s,function(u){return u.value});default:return[s[i].value,s[o].value]}}}]),t}();var ra=v(L()),na=v(Ye()),aa=v(B());var fe=v(B()),Jn=6378e3;function bt(t){return Number.isFinite(t)?t:0}function At(t,a){for(var e=t.positions.value,n=1/0,r=-1/0,i=1/0,o=-1/0,s,u,l=0;l<a;l++)u=e[l*3],s=e[l*3+1],n=s<n?s:n,r=s>r?s:r,i=u<i?u:i,o=u>o?u:o;var g={xMin:bt(i),xMax:bt(o),yMin:bt(n),yMax:bt(r)};return g}function $s(t,a,e,n){var r=n.width,i=n.height,o=e===fe.COORDINATE_SYSTEM.CARTESIAN?[-r/2,-i/2]:[-180,-90];fe.log.assert(e===fe.COORDINATE_SYSTEM.CARTESIAN||e===fe.COORDINATE_SYSTEM.LNGLAT||e===fe.COORDINATE_SYSTEM.DEFAULT);var s=t.xMin,u=t.yMin;return[-1*(Zn(s-o[0],a.xOffset)+o[0]),-1*(Zn(u-o[1],a.yOffset)+o[1])]}function Zn(t,a){var e=t<0?-1:1,n=e<0?Math.abs(t)+a:Math.abs(t);return n=Math.floor(n/a)*a,n*e}function or(t,a){var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e)return{xOffset:a,yOffset:a};var n=t.yMin,r=t.yMax,i=(n+r)/2;return Xs(a,i)}function Ot(t,a,e,n){var r=or(t,a,n!==fe.COORDINATE_SYSTEM.CARTESIAN),i=$s(t,r,n,e),o=t.xMin,s=t.yMin,u=t.xMax,l=t.yMax,g=u-o+r.xOffset,f=l-s+r.yOffset,c=Math.ceil(g/r.xOffset),d=Math.ceil(f/r.yOffset);return{gridOffset:r,translation:i,width:g,height:f,numCol:c,numRow:d}}function Xs(t,a){var e=qs(t),n=Ys(a,t);return{yOffset:e,xOffset:n}}function qs(t){return t/Jn*(180/Math.PI)}function Ys(t,a){return a/Jn*(180/Math.PI)/Math.cos(t*Math.PI/180)}function ea(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function Ks(t){for(var a=1;a<arguments.length;a++){var e=arguments[a]!=null?arguments[a]:{};a%2?ea(Object(e),!0).forEach(function(n){(0,ra.default)(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):ea(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function Qs(t,a){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=Zs(t))||a&&t&&typeof t.length=="number"){e&&(t=e);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(l){throw l},f:r}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
336
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,o=!1,s;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return i=l.done,l},e:function(l){o=!0,s=l},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(o)throw s}}}}function Zs(t,a){if(t){if(typeof t=="string")return ta(t,a);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return ta(t,a)}}function ta(t,a){(a==null||a>t.length)&&(a=t.length);for(var e=0,n=new Array(a);e<a;e++)n[e]=t[e];return n}function Ee(t,a){var e=Js(t,a),n=eu(e);return{gridHash:e.gridHash,gridOffset:e.gridOffset,data:n}}function Js(t,a){var e=t.data,n=e===void 0?[]:e,r=t.cellSize,i=a.attributes,o=a.viewport,s=a.projectPoints,u=a.numInstances,l=i.positions.value,g=i.positions.getAccessor(),f=g.size,c=a.boundingBox||tu(i.positions,u),d=a.posOffset||[180,90],h=a.gridOffset||or(c,r);if(h.xOffset<=0||h.yOffset<=0)return{gridHash:{},gridOffset:h};var m=o.width,y=o.height,O=Math.ceil(m/h.xOffset),C=Math.ceil(y/h.yOffset),b={},P=(0,aa.createIterable)(n),w=P.iterable,M=P.objectInfo,D=new Array(3),N=Qs(w),V;try{for(N.s();!(V=N.n()).done;){var q=V.value;M.index++,D[0]=l[M.index*f],D[1]=l[M.index*f+1],D[2]=f>=3?l[M.index*f+2]:0;var te=s?o.project(D):D,W=(0,na.default)(te,2),xe=W[0],wr=W[1];if(Number.isFinite(xe)&&Number.isFinite(wr)){var ot=Math.floor((wr+d[1])/h.yOffset),st=Math.floor((xe+d[0])/h.xOffset);if(!s||st>=0&&st<O&&ot>=0&&ot<C){var ut="".concat(ot,"-").concat(st);b[ut]=b[ut]||{count:0,points:[],lonIdx:st,latIdx:ot},b[ut].count+=1,b[ut].points.push({source:q,index:M.index})}}}}catch(Do){N.e(Do)}finally{N.f()}return{gridHash:b,gridOffset:h,offsets:[d[0]*-1,d[1]*-1]}}function eu(t){var a=t.gridHash,e=t.gridOffset,n=t.offsets,r=new Array(Object.keys(a).length),i=0;for(var o in a){var s=o.split("-"),u=parseInt(s[0],10),l=parseInt(s[1],10),g=i++;r[g]=Ks({index:g,position:[n[0]+e.xOffset*l,n[1]+e.yOffset*u]},a[o])}return r}function tu(t,a){for(var e=t.value,n=t.getAccessor(),r=n.size,i=1/0,o=-1/0,s=1/0,u=-1/0,l,g,f=0;f<a;f++)g=e[f*r],l=e[f*r+1],Number.isFinite(g)&&Number.isFinite(l)&&(i=l<i?l:i,o=l>o?l:o,s=g<s?g:s,u=g>u?g:u);return{xMin:s,xMax:u,yMin:i,yMax:o}}function ru(t,a){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=nu(t))||a&&t&&typeof t.length=="number"){e&&(t=e);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(l){throw l},f:r}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
337
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,o=!1,s;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return i=l.done,l},e:function(l){o=!0,s=l},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(o)throw s}}}}function nu(t,a){if(t){if(typeof t=="string")return ia(t,a);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return ia(t,a)}}function ia(t,a){(a==null||a>t.length)&&(a=t.length);for(var e=0,n=new Array(a);e<a;e++)n[e]=t[e];return n}function au(t){var a=iu();return function(){var n=(0,Re.default)(t),r;if(a){var i=(0,Re.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,fa.default)(this,r)}}function iu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var ce=function(t){(0,la.default)(e,t);var a=au(e);function e(){var n;(0,oa.default)(this,e);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=a.call.apply(a,[this].concat(i)),(0,sr.default)((0,ua.default)(n),"state",void 0),n}return(0,sa.default)(e,[{key:"initializeAggregationLayer",value:function(r){var i=r.dimensions,o=this.context.gl;(0,Tt.default)((0,Re.default)(e.prototype),"initializeAggregationLayer",this).call(this,i),this.setState({layerData:{},gpuGridAggregator:new G(o,{id:"".concat(this.id,"-gpu-aggregator")}),cpuGridAggregator:Ee})}},{key:"updateState",value:function(r){(0,Tt.default)((0,Re.default)(e.prototype),"updateState",this).call(this,r),this.updateAggregationState(r);var i=this.state,o=i.aggregationDataDirty,s=i.aggregationWeightsDirty,u=i.gpuAggregation;if(!(this.getNumInstances()<=0)){var l=!1;(o||u&&s)&&(this._updateAggregation(r),l=!0),!u&&(o||s)&&(this._updateWeightBins(),this._uploadAggregationResults(),l=!0),this.setState({aggregationDirty:l})}}},{key:"finalizeState",value:function(r){var i,o=this.state.weights.count;o&&o.aggregationBuffer&&o.aggregationBuffer.delete(),(i=this.state.gpuGridAggregator)===null||i===void 0||i.delete(),(0,Tt.default)((0,Re.default)(e.prototype),"finalizeState",this).call(this,r)}},{key:"updateShaders",value:function(r){this.state.gpuAggregation&&this.state.gpuGridAggregator.updateShaders(r)}},{key:"updateAggregationState",value:function(r){ca.log.assert(!1)}},{key:"allocateResources",value:function(r,i){if(this.state.numRow!==r||this.state.numCol!==i){var o=i*r*4*4,s=this.context.gl,u=this.state.weights;for(var l in u){var g=u[l];g.aggregationBuffer&&g.aggregationBuffer.delete(),g.aggregationBuffer=new ga.Buffer(s,{byteLength:o,accessor:{size:4,type:5126,divisor:1}})}}}},{key:"updateResults",value:function(r){var i=r.aggregationData,o=r.maxMinData,s=r.maxData,u=r.minData,l=this.state.weights.count;l&&(l.aggregationData=i,l.maxMinData=o,l.maxData=s,l.minData=u)}},{key:"_updateAggregation",value:function(r){var i=this.state,o=i.cpuGridAggregator,s=i.gpuGridAggregator,u=i.gridOffset,l=i.posOffset,g=i.translation,f=g===void 0?[0,0]:g,c=i.scaling,d=c===void 0?[0,0,0]:c,h=i.boundingBox,m=i.projectPoints,y=i.gpuAggregation,O=i.numCol,C=i.numRow,b=r.props,P=this.context.viewport,w=this.getAttributes(),M=this.getNumInstances();if(y){var N=this.state.weights;s.run({weights:N,cellSize:[u.xOffset,u.yOffset],numCol:O,numRow:C,translation:f,scaling:d,vertexCount:M,projectPoints:m,attributes:w,moduleSettings:this.getModuleSettings()})}else{var D=o(b,{gridOffset:u,projectPoints:m,attributes:w,viewport:P,posOffset:l,boundingBox:h});this.setState({layerData:D})}}},{key:"_updateWeightBins",value:function(){var r=this.state.getValue,i=new Me(this.state.layerData.data||[],{getValue:r});this.setState({sortedBins:i})}},{key:"_uploadAggregationResults",value:function(){var r=this.state,i=r.numCol,o=r.numRow,s=this.state.layerData.data,u=this.state.sortedBins,l=u.aggregatedBins,g=u.minValue,f=u.maxValue,c=u.totalCount,d=4,h=i*o*d,m=new Float32Array(h).fill(0),y=ru(l),O;try{for(y.s();!(O=y.n()).done;){var C=O.value,b=s[C.i],P=b.lonIdx,w=b.latIdx,M=C.value,D=C.counts,N=(P+w*i)*d;m[N]=M,m[N+d-1]=D}}catch(W){y.e(W)}finally{y.f()}var V=new Float32Array([f,0,0,g]),q=new Float32Array([f,0,0,c]),te=new Float32Array([g,0,0,c]);this.updateResults({aggregationData:m,maxMinData:V,maxData:q,minData:te})}}]),e}(Z);(0,sr.default)(ce,"layerName","GridAggregationLayer");function ou(t){var a=su();return function(){var n=(0,Ne.default)(t),r;if(a){var i=(0,Ne.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,xa.default)(this,r)}}function su(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function pa(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function ur(t){for(var a=1;a<arguments.length;a++){var e=arguments[a]!=null?arguments[a]:{};a%2?pa(Object(e),!0).forEach(function(n){(0,pe.default)(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):pa(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}var uu=ur(ur({},we.defaultProps),{},{getPosition:{type:"accessor",value:function(a){return a.position}},getWeight:{type:"accessor",value:1},gpuAggregation:!0,aggregation:"SUM"}),va="positions",lu={data:{props:["cellSizePixels"]},weights:{props:["aggregation"],accessors:["getWeight"]}},Pt=function(t){(0,ya.default)(e,t);var a=ou(e);function e(){var n;(0,ma.default)(this,e);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=a.call.apply(a,[this].concat(i)),(0,pe.default)((0,ha.default)(n),"state",void 0),n}return(0,da.default)(e,[{key:"initializeState",value:function(){var r,i=this.context.gl;if(!we.isSupported(i)){this.setState({supported:!1}),lr.log.error("ScreenGridLayer: ".concat(this.id," is not supported on this browser"))();return}(0,Ct.default)((0,Ne.default)(e.prototype),"initializeAggregationLayer",this).call(this,{dimensions:lu,getCellSize:function(l){return l.cellSizePixels}});var o={count:{size:1,operation:E.SUM,needMax:!0,maxTexture:Te(i,{id:"".concat(this.id,"-max-texture")})}};this.setState({supported:!0,projectPoints:!0,weights:o,subLayerData:{attributes:{}},maxTexture:o.count.maxTexture,positionAttributeName:"positions",posOffset:[0,0],translation:[1,-1]});var s=this.getAttributeManager();s.add((r={},(0,pe.default)(r,va,{size:3,accessor:"getPosition",type:5130,fp64:this.use64bitPositions()}),(0,pe.default)(r,"count",{size:3,accessor:"getWeight"}),r))}},{key:"shouldUpdateState",value:function(r){var i=r.changeFlags;return this.state.supported&&i.somethingChanged}},{key:"updateState",value:function(r){(0,Ct.default)((0,Ne.default)(e.prototype),"updateState",this).call(this,r)}},{key:"renderLayers",value:function(){if(!this.state.supported)return[];var r=this.state,i=r.maxTexture,o=r.numRow,s=r.numCol,u=r.weights,l=this.props.updateTriggers,g=u.count.aggregationBuffer,f=this.getSubLayerClass("cells",we);return new f(this.props,this.getSubLayerProps({id:"cell-layer",updateTriggers:l}),{data:{attributes:{instanceCounts:g}},maxTexture:i,numInstances:o*s})}},{key:"finalizeState",value:function(r){(0,Ct.default)((0,Ne.default)(e.prototype),"finalizeState",this).call(this,r);var i=this.state,o=i.aggregationBuffer,s=i.maxBuffer,u=i.maxTexture;o?.delete(),s?.delete(),u?.delete()}},{key:"getPickingInfo",value:function(r){var i=r.info,o=i.index;if(o>=0){var s=this.state,u=s.gpuGridAggregator,l=s.gpuAggregation,g=s.weights,f=l?u.getData("count"):g.count;i.object=G.getAggregationData(ur({pixelIndex:o},f))}return i}},{key:"updateResults",value:function(r){var i=r.aggregationData,o=r.maxData,s=this.state.weights.count;s.aggregationData=i,s.aggregationBuffer.setData({data:i}),s.maxData=o,s.maxTexture.setImageData({data:o})}},{key:"updateAggregationState",value:function(r){var i=r.props.cellSizePixels,o=r.oldProps.cellSizePixels!==i,s=r.changeFlags.viewportChanged,u=r.props.gpuAggregation;this.state.gpuAggregation!==r.props.gpuAggregation&&u&&!G.isSupported(this.context.gl)&&(lr.log.warn("GPU Grid Aggregation not supported, falling back to CPU")(),u=!1);var l=u!==this.state.gpuAggregation;this.setState({gpuAggregation:u});var g=this.isAttributeChanged(va),f=this.state.dimensions,c=f.data,d=f.weights,h=g||l||s||this.isAggregationDirty(r,{compareAll:u,dimension:c}),m=this.isAggregationDirty(r,{dimension:d});this.setState({aggregationDataDirty:h,aggregationWeightsDirty:m});var y=this.context.viewport;if(s||o){var O=y.width,C=y.height,b=Math.ceil(O/i),P=Math.ceil(C/i);this.allocateResources(P,b),this.setState({scaling:[O/2,-C/2,1],gridOffset:{xOffset:i,yOffset:i},width:O,height:C,numCol:b,numRow:P})}m&&this._updateAccessors(r),(h||m)&&this._resetResults()}},{key:"_updateAccessors",value:function(r){var i=r.props,o=i.getWeight,s=i.aggregation,u=i.data,l=this.state.weights.count;l&&(l.getWeight=o,l.operation=E[s]),this.setState({getValue:be(s,o,{data:u})})}},{key:"_resetResults",value:function(){var r=this.state.weights.count;r&&(r.aggregationData=null)}}]),e}(ce);(0,pe.default)(Pt,"layerName","ScreenGridLayer");(0,pe.default)(Pt,"defaultProps",uu);var Pa=v(z()),wa=v(U()),Da=v(K()),Ma=v(H()),Ea=v($()),wt=v(j()),cr=v(L()),Ra=v(Se());var fr=v(Zt()),gr=v(L()),Oa=v(z()),Ta=v(U());function Sa(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function J(t){for(var a=1;a<arguments.length;a++){var e=arguments[a]!=null?arguments[a]:{};a%2?Sa(Object(e),!0).forEach(function(n){(0,gr.default)(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Sa(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function _a(){}var ba=["getBins","getDomain","getScaleFunc"],Aa=[{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}],fu=function(a){return a.cellSize},Ie=function(){function t(a){(0,Oa.default)(this,t),this.state={layerData:{},dimensions:{}},this.changeFlags={},this.dimensionUpdaters={},this._getCellSize=a.getCellSize||fu,this._getAggregator=a.getAggregator,this._addDimension(a.dimensions||Aa)}return(0,Ta.default)(t,[{key:"updateState",value:function(e,n){var r=e.oldProps,i=e.props,o=e.changeFlags;this.updateGetValueFuncs(r,i,o);var s=this.needsReProjectPoints(r,i,o),u=!1;if(o.dataChanged||s)this.getAggregatedData(i,n),u=!0;else{var l=this.getDimensionChanges(r,i,o)||[];l.forEach(function(g){return typeof g=="function"&&g()}),u=!0}return this.setState({aggregationDirty:u}),this.state}},{key:"setState",value:function(e){this.state=J(J({},this.state),e)}},{key:"setDimensionState",value:function(e,n){this.setState({dimensions:J(J({},this.state.dimensions),{},(0,gr.default)({},e,J(J({},this.state.dimensions[e]),n)))})}},{key:"normalizeResult",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e.hexagons?J({data:e.hexagons},e):e.layerData?J({data:e.layerData},e):e}},{key:"getAggregatedData",value:function(e,n){var r=this._getAggregator(e),i=r(e,n);this.setState({layerData:this.normalizeResult(i)}),this.changeFlags={layerData:!0},this.getSortedBins(e)}},{key:"updateGetValueFuncs",value:function(e,n,r){for(var i in this.dimensionUpdaters){var o=this.dimensionUpdaters[i].getBins.triggers,s=o.value,u=o.weight,l=o.aggregation,g=n[s.prop],f=this.needUpdateDimensionStep(this.dimensionUpdaters[i].getBins,e,n,r);f&&(g?g=en(g,{data:n.data}):g=be(n[l.prop],n[u.prop],{data:n.data})),g&&this.setDimensionState(i,{getValue:g})}}},{key:"needsReProjectPoints",value:function(e,n,r){return this._getCellSize(e)!==this._getCellSize(n)||this._getAggregator(e)!==this._getAggregator(n)||r.updateTriggersChanged&&(r.updateTriggersChanged.all||r.updateTriggersChanged.getPosition)}},{key:"addDimension",value:function(e){this._addDimension(e)}},{key:"_addDimension",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];n.forEach(function(r){var i=r.key;e.dimensionUpdaters[i]=e.getDimensionUpdaters(r),e.state.dimensions[i]={getValue:null,domain:null,sortedBins:null,scaleFunc:_a}})}},{key:"getDimensionUpdaters",value:function(e){var n=e.key,r=e.accessor,i=e.pickingInfo,o=e.getBins,s=e.getDomain,u=e.getScaleFunc,l=e.nullValue;return{key:n,accessor:r,pickingInfo:i,getBins:J({updater:this.getDimensionSortedBins},o),getDomain:J({updater:this.getDimensionValueDomain},s),getScaleFunc:J({updater:this.getDimensionScale},u),attributeAccessor:this.getSubLayerDimensionAttribute(n,l)}}},{key:"needUpdateDimensionStep",value:function(e,n,r,i){return Object.values(e.triggers).some(function(o){return o.updateTrigger?i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged[o.updateTrigger]):n[o.prop]!==r[o.prop]})}},{key:"getDimensionChanges",value:function(e,n,r){var i=this,o=[],s=function(g){var f=ba.find(function(c){return i.needUpdateDimensionStep(i.dimensionUpdaters[g][c],e,n,r)});f&&o.push(i.dimensionUpdaters[g][f].updater.bind(i,n,i.dimensionUpdaters[g]))};for(var u in this.dimensionUpdaters)s(u);return o.length?o:null}},{key:"getUpdateTriggers",value:function(e){var n=this,r=e.updateTriggers||{},i={},o=function(l){var g=n.dimensionUpdaters[l].accessor;i[g]={},ba.forEach(function(f){Object.values(n.dimensionUpdaters[l][f].triggers).forEach(function(c){var d=c.prop,h=c.updateTrigger;if(h){var m=r[h];(0,fr.default)(m)==="object"&&!Array.isArray(m)?Object.assign(i[g],m):m!==void 0&&(i[g][d]=m)}else i[g][d]=e[d]})})};for(var s in this.dimensionUpdaters)o(s);return i}},{key:"getSortedBins",value:function(e){for(var n in this.dimensionUpdaters)this.getDimensionSortedBins(e,this.dimensionUpdaters[n])}},{key:"getDimensionSortedBins",value:function(e,n){var r=n.key,i=this.state.dimensions[r].getValue,o=new Me(this.state.layerData.data||[],{getValue:i,filterData:e._filterData});this.setDimensionState(r,{sortedBins:o}),this.getDimensionValueDomain(e,n)}},{key:"getDimensionValueDomain",value:function(e,n){var r=n.getDomain,i=n.key,o=r.triggers,s=o.lowerPercentile,u=o.upperPercentile,l=o.scaleType,g=this.state.dimensions[i].sortedBins.getValueDomainByScale(e[l.prop],[e[s.prop],e[u.prop]]);this.setDimensionState(i,{valueDomain:g}),this.getDimensionScale(e,n)}},{key:"getDimensionScale",value:function(e,n){var r=n.key,i=n.getScaleFunc,o=n.getDomain,s=i.triggers,u=s.domain,l=s.range,g=o.triggers.scaleType,f=i.onSet,c=e[l.prop],d=e[u.prop]||this.state.dimensions[r].valueDomain,h=jn(g&&e[g.prop]),m=h(d,c);(0,fr.default)(f)==="object"&&typeof e[f.props]=="function"&&e[f.props](m.domain()),this.setDimensionState(r,{scaleFunc:m})}},{key:"getSubLayerDimensionAttribute",value:function(e,n){var r=this;return function(i){var o=r.state.dimensions[e],s=o.sortedBins,u=o.scaleFunc,l=s.binMap[i.index];if(l&&l.counts===0)return n;var g=l&&l.value,f=u.domain(),c=g>=f[0]&&g<=f[f.length-1];return c?u(g):n}}},{key:"getSubLayerAccessors",value:function(e){var n={};for(var r in this.dimensionUpdaters){var i=this.dimensionUpdaters[r].accessor;n[i]=this.getSubLayerDimensionAttribute(e,r)}return n}},{key:"getPickingInfo",value:function(e){var n=e.info,r=n.picked&&n.index>-1,i=null;if(r){var o=this.state.layerData.data[n.index],s={};for(var u in this.dimensionUpdaters){var l=this.dimensionUpdaters[u].pickingInfo,g=this.state.dimensions[u].sortedBins,f=g.binMap[o.index]&&g.binMap[o.index].value;s[l]=f}i=Object.assign(s,o,{points:o.filteredPoints||o.points})}return n.picked=Boolean(i),n.object=i,n}},{key:"getAccessor",value:function(e){return this.dimensionUpdaters.hasOwnProperty(e)?this.dimensionUpdaters[e].attributeAccessor:_a}}],[{key:"defaultDimensions",value:function(){return Aa}}]),t}();function gu(t){var a=cu();return function(){var n=(0,wt.default)(t),r;if(a){var i=(0,wt.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,Ea.default)(this,r)}}function cu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ca(){}var pu={colorDomain:null,colorRange:Y,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:Ca,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:Ca,gridAggregator:Ee,cellSize:{type:"number",min:0,max:1e3,value:1e3},coverage:{type:"number",min:0,max:1,value:1},getPosition:{type:"accessor",value:function(a){return a.position}},extruded:!1,material:!0,_filterData:{type:"function",value:null,optional:!0}},ve=function(t){(0,Ma.default)(e,t);var a=gu(e);function e(){return(0,Pa.default)(this,e),a.apply(this,arguments)}return(0,wa.default)(e,[{key:"initializeState",value:function(){var r=new Ie({getAggregator:function(s){return s.gridAggregator},getCellSize:function(s){return s.cellSize}});this.state={cpuAggregator:r,aggregatorState:r.state};var i=this.getAttributeManager();i.add({positions:{size:3,type:5130,accessor:"getPosition"}})}},{key:"updateState",value:function(r){(0,Da.default)((0,wt.default)(e.prototype),"updateState",this).call(this,r),this.setState({aggregatorState:this.state.cpuAggregator.updateState(r,{viewport:this.context.viewport,attributes:this.getAttributes(),numInstances:this.getNumInstances()})})}},{key:"getPickingInfo",value:function(r){var i=r.info;return this.state.cpuAggregator.getPickingInfo({info:i})}},{key:"_onGetSublayerColor",value:function(r){return this.state.cpuAggregator.getAccessor("fillColor")(r)}},{key:"_onGetSublayerElevation",value:function(r){return this.state.cpuAggregator.getAccessor("elevation")(r)}},{key:"_getSublayerUpdateTriggers",value:function(){return this.state.cpuAggregator.getUpdateTriggers(this.props)}},{key:"renderLayers",value:function(){var r=this.props,i=r.elevationScale,o=r.extruded,s=r.cellSize,u=r.coverage,l=r.material,g=r.transitions,f=this.state.cpuAggregator,c=this.getSubLayerClass("grid-cell",Ra.GridCellLayer),d=this._getSublayerUpdateTriggers();return new c({cellSize:s,coverage:u,material:l,elevationScale:i,extruded:o,getFillColor:this._onGetSublayerColor.bind(this),getElevation:this._onGetSublayerElevation.bind(this),transitions:g&&{getFillColor:g.getColorValue||g.getColorWeight,getElevation:g.getElevationValue||g.getElevationWeight}},this.getSubLayerProps({id:"grid-cell",updateTriggers:d}),{data:f.state.layerData.data})}}]),e}(Z);(0,cr.default)(ve,"layerName","CPUGridLayer");(0,cr.default)(ve,"defaultProps",pu);var za=v(z()),Ua=v(U()),ka=v(ae()),Ga=v(K()),Wa=v(H()),ja=v($()),Mt=v(j()),Je=v(L()),Va=v(B()),Ha=v(Se());var Le=Math.PI/3,vu=[0,Le,2*Le,3*Le,4*Le,5*Le];function mu(t){return t[0]}function du(t){return t[1]}function pr(){var t=0,a=0,e=1,n=1,r=mu,i=du,o,s,u;function l(f){var c={},d=[],h,m=f.length;for(h=0;h<m;++h)if(!(isNaN(O=+r.call(null,y=f[h],h,f))||isNaN(C=+i.call(null,y,h,f)))){var y,O,C,b=Math.round(C=C/u),P=Math.round(O=O/s-(b&1)/2),w=C-b;if(Math.abs(w)*3>1){var M=O-P,D=P+(O<P?-1:1)/2,N=b+(C<b?-1:1),V=O-D,q=C-N;M*M+w*w>V*V+q*q&&(P=D+(b&1?1:-1)/2,b=N)}var te=P+"-"+b,W=c[te];W?W.push(y):(d.push(W=c[te]=[y]),W.x=(P+(b&1)/2)*s,W.y=b*u)}return d}function g(f){var c=0,d=0;return vu.map(function(h){var m=Math.sin(h)*f,y=-Math.cos(h)*f,O=m-c,C=y-d;return c=m,d=y,[O,C]})}return l.hexagon=function(f){return"m"+g(f==null?o:+f).join("l")+"z"},l.centers=function(){for(var f=[],c=Math.round(a/u),d=Math.round(t/s),h=c*u;h<n+o;h+=u,++c)for(var m=d*s+(c&1)*s/2;m<e+s/2;m+=s)f.push([m,h]);return f},l.mesh=function(){var f=g(o).slice(0,4).join("l");return l.centers().map(function(c){return"M"+c+"m"+f}).join("")},l.x=function(f){return arguments.length?(r=f,l):r},l.y=function(f){return arguments.length?(i=f,l):i},l.radius=function(f){return arguments.length?(o=+f,s=o*2*Math.sin(Le),u=o*1.5,l):o},l.size=function(f){return arguments.length?(t=a=0,e=+f[0],n=+f[1],l):[e-t,n-a]},l.extent=function(f){return arguments.length?(t=+f[0][0],a=+f[0][1],e=+f[1][0],n=+f[1][1],l):[[t,a],[e,n]]},l.radius(1)}var Dt=v(B());function hu(t,a){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=yu(t))||a&&t&&typeof t.length=="number"){e&&(t=e);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(l){throw l},f:r}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
338
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,o=!1,s;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return i=l.done,l},e:function(l){o=!0,s=l},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(o)throw s}}}}function yu(t,a){if(t){if(typeof t=="string")return Na(t,a);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Na(t,a)}}function Na(t,a){(a==null||a>t.length)&&(a=t.length);for(var e=0,n=new Array(a);e<a;e++)n[e]=t[e];return n}function Ia(t,a){var e=t.data,n=t.radius,r=a.viewport,i=a.attributes,o=e.length?xu(e,a):null,s=Su(n,r,o),u=[],l=(0,Dt.createIterable)(e),g=l.iterable,f=l.objectInfo,c=i.positions.value,d=i.positions.getAccessor(),h=d.size,m=hu(g),y;try{for(m.s();!(y=m.n()).done;){var O=y.value;f.index++;var C=f.index*h,b=[c[C],c[C+1]],P=Number.isFinite(b[0])&&Number.isFinite(b[1]);P?u.push({screenCoord:r.projectFlat(b),source:O,index:f.index}):Dt.log.warn("HexagonLayer: invalid position")()}}catch(D){m.e(D)}finally{m.f()}var w=pr().radius(s).x(function(D){return D.screenCoord[0]}).y(function(D){return D.screenCoord[1]}),M=w(u);return{hexagons:M.map(function(D,N){return{position:r.unprojectFlat([D.x,D.y]),points:D,index:N}}),radiusCommon:s}}function xu(t,a){var e=a.attributes,n=e.positions.value,r=e.positions.getAccessor(),i=r.size,o=1/0,s=1/0,u=-1/0,l=-1/0,g;for(g=0;g<i*t.length;g+=i){var f=n[g],c=n[g+1],d=Number.isFinite(f)&&Number.isFinite(c);d&&(o=Math.min(f,o),u=Math.max(f,u),s=Math.min(c,s),l=Math.max(c,l))}return[o,s,u,l].every(Number.isFinite)?[(o+u)/2,(s+l)/2]:null}function Su(t,a,e){var n=a.getDistanceScales(e),r=n.unitsPerMeter;return t*r[0]}function La(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function Fa(t){for(var a=1;a<arguments.length;a++){var e=arguments[a]!=null?arguments[a]:{};a%2?La(Object(e),!0).forEach(function(n){(0,Je.default)(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):La(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function _u(t){var a=bu();return function(){var n=(0,Mt.default)(t),r;if(a){var i=(0,Mt.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,ja.default)(this,r)}}function bu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ba(){}var Au={colorDomain:null,colorRange:Y,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:Ba,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:Ba,radius:{type:"number",value:1e3,min:1},coverage:{type:"number",min:0,max:1,value:1},extruded:!1,hexagonAggregator:Ia,getPosition:{type:"accessor",value:function(a){return a.position}},material:!0,_filterData:{type:"function",value:null,optional:!0}},Et=function(t){(0,Wa.default)(e,t);var a=_u(e);function e(){var n;(0,za.default)(this,e);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=a.call.apply(a,[this].concat(i)),(0,Je.default)((0,ka.default)(n),"state",void 0),n}return(0,Ua.default)(e,[{key:"initializeState",value:function(){var r=new Ie({getAggregator:function(s){return s.hexagonAggregator},getCellSize:function(s){return s.radius}});this.state={cpuAggregator:r,aggregatorState:r.state,vertices:null};var i=this.getAttributeManager();i.add({positions:{size:3,type:5130,accessor:"getPosition"}})}},{key:"updateState",value:function(r){if((0,Ga.default)((0,Mt.default)(e.prototype),"updateState",this).call(this,r),r.changeFlags.propsOrDataChanged){var i=this.state.cpuAggregator.updateState(r,{viewport:this.context.viewport,attributes:this.getAttributes()});if(this.state.aggregatorState.layerData!==i.layerData){var o=i.layerData||{},s=o.hexagonVertices;this.setState({vertices:s&&this.convertLatLngToMeterOffset(s)})}this.setState({aggregatorState:i})}}},{key:"convertLatLngToMeterOffset",value:function(r){var i=this.context.viewport;if(Array.isArray(r)&&r.length===6){var o=r[0],s=r[3],u=[(o[0]+s[0])/2,(o[1]+s[1])/2],l=i.projectFlat(u),g=i.getDistanceScales(u),f=g.metersPerUnit,c=r.map(function(d){var h=i.projectFlat(d);return[(h[0]-l[0])*f[0],(h[1]-l[1])*f[1]]});return c}return Va.log.error("HexagonLayer: hexagonVertices needs to be an array of 6 points")(),null}},{key:"getPickingInfo",value:function(r){var i=r.info;return this.state.cpuAggregator.getPickingInfo({info:i})}},{key:"_onGetSublayerColor",value:function(r){return this.state.cpuAggregator.getAccessor("fillColor")(r)}},{key:"_onGetSublayerElevation",value:function(r){return this.state.cpuAggregator.getAccessor("elevation")(r)}},{key:"_getSublayerUpdateTriggers",value:function(){return this.state.cpuAggregator.getUpdateTriggers(this.props)}},{key:"renderLayers",value:function(){var r=this.props,i=r.elevationScale,o=r.extruded,s=r.coverage,u=r.material,l=r.transitions,g=this.state,f=g.aggregatorState,c=g.vertices,d=this.getSubLayerClass("hexagon-cell",Ha.ColumnLayer),h=this._getSublayerUpdateTriggers(),m=c?{vertices:c,radius:1}:{radius:f.layerData.radiusCommon||1,radiusUnits:"common",angle:90};return new d(Fa(Fa({},m),{},{diskResolution:6,elevationScale:i,extruded:o,coverage:s,material:u,getFillColor:this._onGetSublayerColor.bind(this),getElevation:this._onGetSublayerElevation.bind(this),transitions:l&&{getFillColor:l.getColorValue||l.getColorWeight,getElevation:l.getElevationValue||l.getElevationWeight}}),this.getSubLayerProps({id:"hexagon-cell",updateTriggers:h}),{data:f.layerData.data})}}]),e}(Z);(0,Je.default)(Et,"layerName","HexagonLayer");(0,Je.default)(Et,"defaultProps",Au);var Pi=v(z()),wi=v(U()),mr=v(K()),Di=v(H()),Mi=v($()),tt=v(j()),rt=v(L()),Ft=v(Se());var xi=v(L()),Si=v(B());var _=v(L()),S,x=.5,T=1/6,p={N:[0,x],E:[x,0],S:[0,-x],W:[-x,0],NE:[x,x],NW:[-x,x],SE:[x,-x],SW:[-x,-x]},Fe=[p.W,p.SW,p.S],Be=[p.S,p.SE,p.E],ze=[p.E,p.NE,p.N],Ue=[p.NW,p.W,p.N],ke=[[-x,T],[-x,-T],[-T,-x],[T,-x]],Ge=[[-T,-x],[T,-x],[x,-T],[x,T]],We=[[x,-T],[x,T],[T,x],[-T,x]],je=[[-x,T],[-x,-T],[T,x],[-T,x]],$a=[p.W,p.SW,p.SE,p.E],Xa=[p.S,p.SE,p.NE,p.N],qa=[p.NW,p.W,p.E,p.NE],Ya=[p.NW,p.SW,p.S,p.N],Ka=[[-x,T],[-x,-T],[x,-T],[x,T]],Qa=[[-T,-x],[T,-x],[T,x],[-T,x]],Ou=[p.NW,p.SW,p.SE,p.NE],Za=[p.NW,p.SW,p.SE,p.E,p.N],Ja=[p.W,p.SW,p.SE,p.NE,p.N],ei=[p.NW,p.W,p.S,p.SE,p.NE],ti=[p.NW,p.SW,p.S,p.E,p.NE],ri=[p.NW,p.W,[x,-T],[x,T],p.N],ni=[[-T,-x],[T,-x],p.E,p.NE,p.N],ai=[[-x,T],[-x,-T],p.S,p.SE,p.E],ii=[p.W,p.SW,p.S,[T,x],[-T,x]],oi=[p.NW,p.W,[-T,-x],[T,-x],p.N],si=[[-x,T],[-x,-T],p.E,p.NE,p.N],ui=[p.S,p.SE,p.E,[T,x],[-T,x]],li=[p.W,p.SW,p.S,[x,-T],[x,T]],fi=[p.W,p.SW,p.SE,p.E,[T,x],[-T,x]],gi=[[-x,T],[-x,-T],p.S,p.SE,p.NE,p.N],ci=[p.NW,p.W,[-T,-x],[T,-x],p.E,p.NE],pi=[p.NW,p.SW,p.S,[x,-T],[x,T],p.N],Ve=[p.W,p.SW,p.S,p.E,p.NE,p.N],He=[p.NW,p.W,p.S,p.SE,p.E,p.N],Rt=[[-x,T],[-x,-T],[-T,-x],[T,-x],p.E,p.NE,p.N],Nt=[p.W,p.SW,p.S,[x,-T],[x,T],[T,x],[-T,x]],It=[p.NW,p.W,[-T,-x],[T,-x],[x,-T],[x,T],p.N],Lt=[[-x,T],[-x,-T],p.S,p.SE,p.E,[T,x],[-T,x]],vi=[[-x,T],[-x,-T],[-T,-x],[T,-x],[x,-T],[x,T],[T,x],[-T,x]],mi={0:[],1:[[p.W,p.S]],2:[[p.S,p.E]],3:[[p.W,p.E]],4:[[p.N,p.E]],5:{0:[[p.W,p.S],[p.N,p.E]],1:[[p.W,p.N],[p.S,p.E]]},6:[[p.N,p.S]],7:[[p.W,p.N]],8:[[p.W,p.N]],9:[[p.N,p.S]],10:{0:[[p.W,p.N],[p.S,p.E]],1:[[p.W,p.S],[p.N,p.E]]},11:[[p.N,p.E]],12:[[p.W,p.E]],13:[[p.S,p.E]],14:[[p.W,p.S]],15:[]};function A(t){return parseInt(t,4)}var di=(S={},(0,_.default)(S,A("0000"),[]),(0,_.default)(S,A("2222"),[]),(0,_.default)(S,A("2221"),[Fe]),(0,_.default)(S,A("2212"),[Be]),(0,_.default)(S,A("2122"),[ze]),(0,_.default)(S,A("1222"),[Ue]),(0,_.default)(S,A("0001"),[Fe]),(0,_.default)(S,A("0010"),[Be]),(0,_.default)(S,A("0100"),[ze]),(0,_.default)(S,A("1000"),[Ue]),(0,_.default)(S,A("2220"),[ke]),(0,_.default)(S,A("2202"),[Ge]),(0,_.default)(S,A("2022"),[We]),(0,_.default)(S,A("0222"),[je]),(0,_.default)(S,A("0002"),[ke]),(0,_.default)(S,A("0020"),[Ge]),(0,_.default)(S,A("0200"),[We]),(0,_.default)(S,A("2000"),[je]),(0,_.default)(S,A("0011"),[$a]),(0,_.default)(S,A("0110"),[Xa]),(0,_.default)(S,A("1100"),[qa]),(0,_.default)(S,A("1001"),[Ya]),(0,_.default)(S,A("2211"),[$a]),(0,_.default)(S,A("2112"),[Xa]),(0,_.default)(S,A("1122"),[qa]),(0,_.default)(S,A("1221"),[Ya]),(0,_.default)(S,A("2200"),[Ka]),(0,_.default)(S,A("2002"),[Qa]),(0,_.default)(S,A("0022"),[Ka]),(0,_.default)(S,A("0220"),[Qa]),(0,_.default)(S,A("1111"),[Ou]),(0,_.default)(S,A("1211"),[Za]),(0,_.default)(S,A("2111"),[Ja]),(0,_.default)(S,A("1112"),[ei]),(0,_.default)(S,A("1121"),[ti]),(0,_.default)(S,A("1011"),[Za]),(0,_.default)(S,A("0111"),[Ja]),(0,_.default)(S,A("1110"),[ei]),(0,_.default)(S,A("1101"),[ti]),(0,_.default)(S,A("1200"),[ri]),(0,_.default)(S,A("0120"),[ni]),(0,_.default)(S,A("0012"),[ai]),(0,_.default)(S,A("2001"),[ii]),(0,_.default)(S,A("1022"),[ri]),(0,_.default)(S,A("2102"),[ni]),(0,_.default)(S,A("2210"),[ai]),(0,_.default)(S,A("0221"),[ii]),(0,_.default)(S,A("1002"),[oi]),(0,_.default)(S,A("2100"),[si]),(0,_.default)(S,A("0210"),[ui]),(0,_.default)(S,A("0021"),[li]),(0,_.default)(S,A("1220"),[oi]),(0,_.default)(S,A("0122"),[si]),(0,_.default)(S,A("2012"),[ui]),(0,_.default)(S,A("2201"),[li]),(0,_.default)(S,A("0211"),[fi]),(0,_.default)(S,A("2110"),[gi]),(0,_.default)(S,A("1102"),[ci]),(0,_.default)(S,A("1021"),[pi]),(0,_.default)(S,A("2011"),[fi]),(0,_.default)(S,A("0112"),[gi]),(0,_.default)(S,A("1120"),[ci]),(0,_.default)(S,A("1201"),[pi]),(0,_.default)(S,A("2101"),[Ve]),(0,_.default)(S,A("0121"),[Ve]),(0,_.default)(S,A("1012"),[He]),(0,_.default)(S,A("1210"),[He]),(0,_.default)(S,A("0101"),{0:[Fe,ze],1:[Ve],2:[Ve]}),(0,_.default)(S,A("1010"),{0:[Ue,Be],1:[He],2:[He]}),(0,_.default)(S,A("2121"),{0:[Ve],1:[Ve],2:[Fe,ze]}),(0,_.default)(S,A("1212"),{0:[He],1:[He],2:[Ue,Be]}),(0,_.default)(S,A("2120"),{0:[Rt],1:[Rt],2:[ke,ze]}),(0,_.default)(S,A("2021"),{0:[Nt],1:[Nt],2:[Fe,We]}),(0,_.default)(S,A("1202"),{0:[It],1:[It],2:[Ue,Ge]}),(0,_.default)(S,A("0212"),{0:[Lt],1:[Lt],2:[Be,je]}),(0,_.default)(S,A("0102"),{0:[ke,ze],1:[Rt],2:[Rt]}),(0,_.default)(S,A("0201"),{0:[Fe,We],1:[Nt],2:[Nt]}),(0,_.default)(S,A("1020"),{0:[Ue,Ge],1:[It],2:[It]}),(0,_.default)(S,A("2010"),{0:[Be,je],1:[Lt],2:[Lt]}),(0,_.default)(S,A("2020"),{0:[je,Ge],1:[vi],2:[ke,We]}),(0,_.default)(S,A("0202"),{0:[We,ke],1:[vi],2:[je,Ge]}),S);function hi(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function yi(t){for(var a=1;a<arguments.length;a++){var e=arguments[a]!=null?arguments[a]:{};a%2?hi(Object(e),!0).forEach(function(n){(0,xi.default)(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):hi(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}var me={ISO_LINES:1,ISO_BANDS:2},Tu={zIndex:0,zOffset:.005};function et(t,a){return Array.isArray(a)?t<a[0]?0:t<a[1]?1:2:t>=a?1:0}function _i(t){var a=t.cellWeights,e=t.x,n=t.y,r=t.width,i=t.height,o=t.threshold;t.thresholdValue&&(Si.log.deprecated("thresholdValue","threshold")(),o=t.thresholdValue);var s=e<0,u=e>=r-1,l=n<0,g=n>=i-1,f=s||u||l||g,c={},d={};s||g?d.top=0:(c.top=a[(n+1)*r+e],d.top=et(c.top,o)),u||g?d.topRight=0:(c.topRight=a[(n+1)*r+e+1],d.topRight=et(c.topRight,o)),u||l?d.right=0:(c.right=a[n*r+e+1],d.right=et(c.right,o)),s||l?d.current=0:(c.current=a[n*r+e],d.current=et(c.current,o));var h=d.top,m=d.topRight,y=d.right,O=d.current,C=-1;Number.isFinite(o)&&(C=h<<3|m<<2|y<<1|O),Array.isArray(o)&&(C=h<<6|m<<4|y<<2|O);var b=0;return f||(b=et((c.top+c.topRight+c.right+c.current)/4,o)),{code:C,meanCode:b}}function vr(t){var a=t.gridOrigin,e=t.cellSize,n=t.x,r=t.y,i=t.code,o=t.meanCode,s=t.type,u=s===void 0?me.ISO_LINES:s,l=yi(yi({},Tu),t.thresholdData),g=u===me.ISO_BANDS?di[i]:mi[i];Array.isArray(g)||(g=g[o]);var f=l.zIndex*l.zOffset,c=(n+1)*e[0],d=(r+1)*e[1],h=a[0]+c,m=a[1]+d;if(u===me.ISO_BANDS){var y=[];return g.forEach(function(C){var b=[];C.forEach(function(P){var w=h+P[0]*e[0],M=m+P[1]*e[1];b.push([w,M,f])}),y.push(b)}),y}var O=[];return g.forEach(function(C){C.forEach(function(b){var P=h+b[0]*e[0],w=m+b[1]*e[1];O.push([P,w,f])})}),O}function bi(t,a){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=Cu(t))||a&&t&&typeof t.length=="number"){e&&(t=e);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(l){throw l},f:r}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
339
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,o=!1,s;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return i=l.done,l},e:function(l){o=!0,s=l},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(o)throw s}}}}function Cu(t,a){if(t){if(typeof t=="string")return Ai(t,a);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Ai(t,a)}}function Ai(t,a){(a==null||a>t.length)&&(a=t.length);for(var e=0,n=new Array(a);e<a;e++)n[e]=t[e];return n}function Oi(t){var a=t.thresholdData,e=t.cellWeights,n=t.gridSize,r=t.gridOrigin,i=t.cellSize,o=[],s=[],u=n[0],l=n[1],g=0,f=0,c=bi(a),d;try{for(c.s();!(d=c.n()).done;)for(var h=d.value,m=h.contour,y=m.threshold,O=-1;O<u;O++)for(var C=-1;C<l;C++){var b=_i({cellWeights:e,threshold:y,x:O,y:C,width:u,height:l}),P=b.code,w=b.meanCode,M={type:me.ISO_BANDS,gridOrigin:r,cellSize:i,x:O,y:C,width:u,height:l,code:P,meanCode:w,thresholdData:h};if(Array.isArray(y)){M.type=me.ISO_BANDS;var D=vr(M),N=bi(D),V;try{for(N.s();!(V=N.n()).done;){var q=V.value;s[f++]={vertices:q,contour:m}}}catch(xe){N.e(xe)}finally{N.f()}}else{M.type=me.ISO_LINES;for(var te=vr(M),W=0;W<te.length;W+=2)o[g++]={start:te[W],end:te[W+1],contour:m}}}}catch(xe){c.e(xe)}finally{c.f()}return{contourSegments:o,contourPolygons:s}}var Ei=v(B());function Pu(t){var a=wu();return function(){var n=(0,tt.default)(t),r;if(a){var i=(0,tt.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,Mi.default)(this,r)}}function wu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Ti=[255,255,255,255],Du=1,Mu=1,Eu={cellSize:{type:"number",min:1,max:1e3,value:1e3},getPosition:{type:"accessor",value:function(a){return a.position}},getWeight:{type:"accessor",value:1},gpuAggregation:!0,aggregation:"SUM",contours:{type:"object",value:[{threshold:Mu}],optional:!0,compare:!0,depth:2},zOffset:.005},Ci="positions",Ru={data:{props:["cellSize"]},weights:{props:["aggregation"],accessors:["getWeight"]}},Bt=function(t){(0,Di.default)(e,t);var a=Pu(e);function e(){return(0,Pi.default)(this,e),a.apply(this,arguments)}return(0,wi.default)(e,[{key:"initializeState",value:function(){var r;(0,mr.default)((0,tt.default)(e.prototype),"initializeAggregationLayer",this).call(this,{dimensions:Ru}),this.setState({contourData:{},projectPoints:!1,weights:{count:{size:1,operation:E.SUM}}});var i=this.getAttributeManager();i.add((r={},(0,rt.default)(r,Ci,{size:3,accessor:"getPosition",type:5130,fp64:this.use64bitPositions()}),(0,rt.default)(r,"count",{size:3,accessor:"getWeight"}),r))}},{key:"updateState",value:function(r){(0,mr.default)((0,tt.default)(e.prototype),"updateState",this).call(this,r);var i=!1,o=r.oldProps,s=r.props,u=this.state.aggregationDirty;(o.contours!==s.contours||o.zOffset!==s.zOffset)&&(i=!0,this._updateThresholdData(r.props)),this.getNumInstances()>0&&(u||i)&&this._generateContours()}},{key:"renderLayers",value:function(){var r=this.state.contourData,i=r.contourSegments,o=r.contourPolygons,s=this.getSubLayerClass("lines",Ft.LineLayer),u=this.getSubLayerClass("bands",Ft.SolidPolygonLayer),l=i&&i.length>0&&new s(this.getSubLayerProps({id:"lines"}),{data:this.state.contourData.contourSegments,getSourcePosition:function(c){return c.start},getTargetPosition:function(c){return c.end},getColor:function(c){return c.contour.color||Ti},getWidth:function(c){return c.contour.strokeWidth||Du}}),g=o&&o.length>0&&new u(this.getSubLayerProps({id:"bands"}),{data:this.state.contourData.contourPolygons,getPolygon:function(c){return c.vertices},getFillColor:function(c){return c.contour.color||Ti}});return[l,g]}},{key:"updateAggregationState",value:function(r){var i=r.props,o=r.oldProps,s=i.cellSize,u=i.coordinateSystem,l=this.context.viewport,g=o.cellSize!==s,f=i.gpuAggregation;this.state.gpuAggregation!==i.gpuAggregation&&f&&!G.isSupported(this.context.gl)&&(Ei.log.warn("GPU Grid Aggregation not supported, falling back to CPU")(),f=!1);var c=f!==this.state.gpuAggregation;this.setState({gpuAggregation:f});var d=this.state.dimensions,h=this.isAttributeChanged(Ci),m=d.data,y=d.weights,O=this.state.boundingBox;if(h&&(O=At(this.getAttributes(),this.getNumInstances()),this.setState({boundingBox:O})),h||g){var C=Ot(O,s,l,u),b=C.gridOffset,P=C.translation,w=C.width,M=C.height,D=C.numCol,N=C.numRow;this.allocateResources(N,D),this.setState({gridOffset:b,boundingBox:O,translation:P,posOffset:P.slice(),gridOrigin:[-1*P[0],-1*P[1]],width:w,height:M,numCol:D,numRow:N})}var V=h||c||this.isAggregationDirty(r,{dimension:m,compareAll:f}),q=this.isAggregationDirty(r,{dimension:y});q&&this._updateAccessors(r),(V||q)&&this._resetResults(),this.setState({aggregationDataDirty:V,aggregationWeightsDirty:q})}},{key:"_updateAccessors",value:function(r){var i=r.props,o=i.getWeight,s=i.aggregation,u=i.data,l=this.state.weights.count;l&&(l.getWeight=o,l.operation=E[s]),this.setState({getValue:be(s,o,{data:u})})}},{key:"_resetResults",value:function(){var r=this.state.weights.count;r&&(r.aggregationData=null)}},{key:"_generateContours",value:function(){var r=this.state,i=r.numCol,o=r.numRow,s=r.gridOrigin,u=r.gridOffset,l=r.thresholdData,g=this.state.weights.count,f=g.aggregationData;f||(f=g.aggregationBuffer.getData(),g.aggregationData=f);var c=G.getCellData({countsData:f}),d=c.cellWeights,h=Oi({thresholdData:l,cellWeights:d,gridSize:[i,o],gridOrigin:s,cellSize:[u.xOffset,u.yOffset]});this.setState({contourData:h})}},{key:"_updateThresholdData",value:function(r){for(var i=r.contours,o=r.zOffset,s=i.length,u=new Array(s),l=0;l<s;l++){var g=i[l];u[l]={contour:g,zIndex:g.zIndex||l,zOffset:o}}this.setState({thresholdData:u})}}]),e}(ce);(0,rt.default)(Bt,"layerName","ContourLayer");(0,rt.default)(Bt,"defaultProps",Eu);var Ki=v(z()),Qi=v(U()),Zi=v(ae()),Ji=v(H()),eo=v($()),Sr=v(j()),nt=v(L()),to=v(B());var Vi=v(z()),Hi=v(U()),Wt=v(K()),$i=v(H()),Xi=v($()),$e=v(j()),de=v(L()),yr=v(Q()),qi=v(B());var Fi=v(z()),Bi=v(U()),zi=v(K()),Ui=v(H()),ki=v($()),zt=v(j()),Ut=v(L()),X=v(B()),kt=v(Q());var Ri=`#version 300 es
340
+ #define SHADER_NAME gpu-grid-cell-layer-vertex-shader
341
+ #define RANGE_COUNT 6
342
+
343
+ in vec3 positions;
344
+ in vec3 normals;
345
+
346
+ in vec4 colors;
347
+ in vec4 elevations;
348
+ in vec3 instancePickingColors;
349
+ uniform vec2 offset;
350
+ uniform bool extruded;
351
+ uniform float cellSize;
352
+ uniform float coverage;
353
+ uniform float opacity;
354
+ uniform float elevationScale;
355
+
356
+ uniform ivec2 gridSize;
357
+ uniform vec2 gridOrigin;
358
+ uniform vec2 gridOriginLow;
359
+ uniform vec2 gridOffset;
360
+ uniform vec2 gridOffsetLow;
361
+ uniform vec4 colorRange[RANGE_COUNT];
362
+ uniform vec2 elevationRange;
363
+ uniform vec2 colorDomain;
364
+ uniform bool colorDomainValid;
365
+ uniform vec2 elevationDomain;
366
+ uniform bool elevationDomainValid;
367
+
368
+ layout(std140) uniform;
369
+ uniform ColorData
370
+ {
371
+ vec4 maxMinCount;
372
+ } colorData;
373
+ uniform ElevationData
374
+ {
375
+ vec4 maxMinCount;
376
+ } elevationData;
377
+
378
+ #define EPSILON 0.00001
379
+ out vec4 vColor;
380
+
381
+ vec4 quantizeScale(vec2 domain, vec4 range[RANGE_COUNT], float value) {
382
+ vec4 outColor = vec4(0., 0., 0., 0.);
383
+ if (value >= (domain.x - EPSILON) && value <= (domain.y + EPSILON)) {
384
+ float domainRange = domain.y - domain.x;
385
+ if (domainRange <= 0.) {
386
+ outColor = colorRange[0];
387
+ } else {
388
+ float rangeCount = float(RANGE_COUNT);
389
+ float rangeStep = domainRange / rangeCount;
390
+ float idx = floor((value - domain.x) / rangeStep);
391
+ idx = clamp(idx, 0., rangeCount - 1.);
392
+ int intIdx = int(idx);
393
+ outColor = colorRange[intIdx];
394
+ }
395
+ }
396
+ return outColor;
397
+ }
398
+
399
+ float linearScale(vec2 domain, vec2 range, float value) {
400
+ if (value >= (domain.x - EPSILON) && value <= (domain.y + EPSILON)) {
401
+ return ((value - domain.x) / (domain.y - domain.x)) * (range.y - range.x) + range.x;
402
+ }
403
+ return -1.;
404
+ }
405
+
406
+ void main(void) {
407
+ vec2 clrDomain = colorDomainValid ? colorDomain : vec2(colorData.maxMinCount.a, colorData.maxMinCount.r);
408
+ vec4 color = quantizeScale(clrDomain, colorRange, colors.r);
409
+
410
+ float elevation = 0.0;
411
+
412
+ if (extruded) {
413
+ vec2 elvDomain = elevationDomainValid ? elevationDomain : vec2(elevationData.maxMinCount.a, elevationData.maxMinCount.r);
414
+ elevation = linearScale(elvDomain, elevationRange, elevations.r);
415
+ elevation = elevation * (positions.z + 1.0) / 2.0 * elevationScale;
416
+ }
417
+ float shouldRender = float(color.r > 0.0 && elevations.r >= 0.0);
418
+ float dotRadius = cellSize / 2. * coverage * shouldRender;
419
+
420
+ int yIndex = (gl_InstanceID / gridSize[0]);
421
+ int xIndex = gl_InstanceID - (yIndex * gridSize[0]);
422
+
423
+ vec2 instancePositionXFP64 = mul_fp64(vec2(gridOffset[0], gridOffsetLow[0]), vec2(float(xIndex), 0.));
424
+ instancePositionXFP64 = sum_fp64(instancePositionXFP64, vec2(gridOrigin[0], gridOriginLow[0]));
425
+ vec2 instancePositionYFP64 = mul_fp64(vec2(gridOffset[1], gridOffsetLow[1]), vec2(float(yIndex), 0.));
426
+ instancePositionYFP64 = sum_fp64(instancePositionYFP64, vec2(gridOrigin[1], gridOriginLow[1]));
427
+
428
+ vec3 centroidPosition = vec3(instancePositionXFP64[0], instancePositionYFP64[0], elevation);
429
+ vec3 centroidPosition64Low = vec3(instancePositionXFP64[1], instancePositionYFP64[1], 0.0);
430
+ geometry.worldPosition = centroidPosition;
431
+ vec3 pos = vec3(project_size(positions.xy + offset) * dotRadius, 0.);
432
+ picking_setPickingColor(instancePickingColors);
433
+
434
+ gl_Position = project_position_to_clipspace(centroidPosition, centroidPosition64Low, pos, geometry.position);
435
+
436
+ vec3 normals_commonspace = project_normal(normals);
437
+
438
+ if (extruded) {
439
+ vec3 lightColor = lighting_getLightColor(color.rgb, project_uCameraPosition, geometry.position.xyz, normals_commonspace);
440
+ vColor = vec4(lightColor, color.a * opacity) / 255.;
441
+ } else {
442
+ vColor = vec4(color.rgb, color.a * opacity) / 255.;
443
+ }
444
+ }
445
+ `;var Ni=`#version 300 es
446
+ #define SHADER_NAME gpu-grid-cell-layer-fragment-shader
447
+
448
+ precision highp float;
449
+
450
+ in vec4 vColor;
451
+
452
+ out vec4 fragColor;
453
+
454
+ void main(void) {
455
+ fragColor = vColor;
456
+ fragColor = picking_filterColor(fragColor);
457
+ }
458
+ `;function Ii(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function Li(t){for(var a=1;a<arguments.length;a++){var e=arguments[a]!=null?arguments[a]:{};a%2?Ii(Object(e),!0).forEach(function(n){(0,Ut.default)(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Ii(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function Nu(t){var a=Iu();return function(){var n=(0,zt.default)(t),r;if(a){var i=(0,zt.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,ki.default)(this,r)}}function Iu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var dr=0,hr=1,Lu={colorDomain:null,colorRange:Y,elevationDomain:null,elevationRange:[0,1e3],elevationScale:{type:"number",min:0,value:1},gridSize:{type:"array",value:[1,1]},gridOrigin:{type:"array",value:[0,0]},gridOffset:{type:"array",value:[0,0]},cellSize:{type:"number",min:0,max:1e3,value:1e3},offset:{type:"array",value:[1,1]},coverage:{type:"number",min:0,max:1,value:1},extruded:!0,material:!0},Gt=function(t){(0,Ui.default)(e,t);var a=Nu(e);function e(){return(0,Fi.default)(this,e),a.apply(this,arguments)}return(0,Bi.default)(e,[{key:"getShaders",value:function(){return(0,zi.default)((0,zt.default)(e.prototype),"getShaders",this).call(this,{vs:Ri,fs:Ni,modules:[X.project32,X.gouraudLighting,X.picking,_e]})}},{key:"initializeState",value:function(r){var i=r.gl,o=this.getAttributeManager();o.addInstanced({colors:{size:4,noAlloc:!0},elevations:{size:4,noAlloc:!0}});var s=this._getModel(i);this._setupUniformBuffer(s),this.setState({model:s})}},{key:"_getModel",value:function(r){return new kt.Model(r,Li(Li({},this.getShaders()),{},{id:this.props.id,geometry:new kt.CubeGeometry,isInstanced:!0}))}},{key:"draw",value:function(r){var i=r.uniforms,o=this.props,s=o.cellSize,u=o.offset,l=o.extruded,g=o.elevationScale,f=o.coverage,c=o.gridSize,d=o.gridOrigin,h=o.gridOffset,m=o.elevationRange,y=o.colorMaxMinBuffer,O=o.elevationMaxMinBuffer,C=[(0,X.fp64LowPart)(d[0]),(0,X.fp64LowPart)(d[1])],b=[(0,X.fp64LowPart)(h[0]),(0,X.fp64LowPart)(h[1])],P=this.getDomainUniforms(),w=se(this.props.colorRange);this.bindUniformBuffers(y,O),this.state.model.setUniforms(i).setUniforms(P).setUniforms({cellSize:s,offset:u,extruded:l,elevationScale:g,coverage:f,gridSize:c,gridOrigin:d,gridOriginLow:C,gridOffset:h,gridOffsetLow:b,colorRange:w,elevationRange:m}).draw(),this.unbindUniformBuffers(y,O)}},{key:"bindUniformBuffers",value:function(r,i){r.bind({target:35345,index:dr}),i.bind({target:35345,index:hr})}},{key:"unbindUniformBuffers",value:function(r,i){r.unbind({target:35345,index:dr}),i.unbind({target:35345,index:hr})}},{key:"getDomainUniforms",value:function(){var r=this.props,i=r.colorDomain,o=r.elevationDomain,s={};return i!==null?(s.colorDomainValid=!0,s.colorDomain=i):s.colorDomainValid=!1,o!==null?(s.elevationDomainValid=!0,s.elevationDomain=o):s.elevationDomainValid=!1,s}},{key:"_setupUniformBuffer",value:function(r){var i=this.context.gl,o=r.program.handle,s=i.getUniformBlockIndex(o,"ColorData"),u=i.getUniformBlockIndex(o,"ElevationData");i.uniformBlockBinding(o,s,dr),i.uniformBlockBinding(o,u,hr)}}]),e}(X.Layer);(0,Ut.default)(Gt,"layerName","GPUGridCellLayer");(0,Ut.default)(Gt,"defaultProps",Lu);function Gi(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function Wi(t){for(var a=1;a<arguments.length;a++){var e=arguments[a]!=null?arguments[a]:{};a%2?Gi(Object(e),!0).forEach(function(n){(0,de.default)(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Gi(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function Fu(t){var a=Bu();return function(){var n=(0,$e.default)(t),r;if(a){var i=(0,$e.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,Xi.default)(this,r)}}function Bu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var zu={colorDomain:null,colorRange:Y,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(a){return a.position}},extruded:!1,material:!0},Uu={data:{props:["cellSize","colorAggregation","elevationAggregation"]}},ji="positions",he=function(t){(0,$i.default)(e,t);var a=Fu(e);function e(){return(0,Vi.default)(this,e),a.apply(this,arguments)}return(0,Hi.default)(e,[{key:"initializeState",value:function(r){var i,o=r.gl,s=G.isSupported(o);s||qi.log.error("GPUGridLayer is not supported on this browser, use GridLayer instead")(),(0,Wt.default)((0,$e.default)(e.prototype),"initializeAggregationLayer",this).call(this,{dimensions:Uu}),this.setState({gpuAggregation:!0,projectPoints:!1,isSupported:s,weights:{color:{needMin:!0,needMax:!0,combineMaxMin:!0,maxMinBuffer:new yr.Buffer(o,{byteLength:4*4,accessor:{size:4,type:5126,divisor:1}})},elevation:{needMin:!0,needMax:!0,combineMaxMin:!0,maxMinBuffer:new yr.Buffer(o,{byteLength:4*4,accessor:{size:4,type:5126,divisor:1}})}},positionAttributeName:"positions"});var u=this.getAttributeManager();u.add((i={},(0,de.default)(i,ji,{size:3,accessor:"getPosition",type:5130,fp64:this.use64bitPositions()}),(0,de.default)(i,"color",{size:3,accessor:"getColorWeight"}),(0,de.default)(i,"elevation",{size:3,accessor:"getElevationWeight"}),i))}},{key:"updateState",value:function(r){if(this.state.isSupported!==!1){(0,Wt.default)((0,$e.default)(e.prototype),"updateState",this).call(this,r);var i=this.state.aggregationDirty;i&&this.setState({gridHash:null})}}},{key:"getHashKeyForIndex",value:function(r){var i=this.state,o=i.numRow,s=i.numCol,u=i.boundingBox,l=i.gridOffset,g=[s,o],f=[u.xMin,u.yMin],c=[l.xOffset,l.yOffset],d=Math.floor(r/g[0]),h=r-d*g[0],m=Math.floor((d*c[1]+f[1]+90+c[1]/2)/c[1]),y=Math.floor((h*c[0]+f[0]+180+c[0]/2)/c[0]);return"".concat(m,"-").concat(y)}},{key:"getPositionForIndex",value:function(r){var i=this.state,o=i.numRow,s=i.numCol,u=i.boundingBox,l=i.gridOffset,g=[s,o],f=[u.xMin,u.yMin],c=[l.xOffset,l.yOffset],d=Math.floor(r/g[0]),h=r-d*g[0],m=d*c[1]+f[1],y=h*c[0]+f[0];return[y,m]}},{key:"getPickingInfo",value:function(r){var i=r.info,o=r.mode,s=i.index,u=null;if(s>=0){var l=this.state.gpuGridAggregator,g=this.getPositionForIndex(s),f=G.getAggregationData(Wi({pixelIndex:s},l.getData("color"))),c=G.getAggregationData(Wi({pixelIndex:s},l.getData("elevation")));if(u={colorValue:f.cellWeight,elevationValue:c.cellWeight,count:f.cellCount||c.cellCount,position:g,totalCount:f.totalCount||c.totalCount},o!=="hover"){var d=this.props,h=this.state.gridHash;if(!h){var m=this.state,y=m.gridOffset,O=m.translation,C=m.boundingBox,b=this.context.viewport,P=this.getAttributes(),w=Ee(d,{gridOffset:y,attributes:P,viewport:b,translation:O,boundingBox:C});h=w.gridHash,this.setState({gridHash:h})}var M=this.getHashKeyForIndex(s),D=h[M];Object.assign(u,D)}}return i.picked=Boolean(u),i.object=u,i}},{key:"renderLayers",value:function(){if(!this.state.isSupported)return null;var r=this.props,i=r.elevationScale,o=r.extruded,s=r.cellSize,u=r.coverage,l=r.material,g=r.elevationRange,f=r.colorDomain,c=r.elevationDomain,d=this.state,h=d.weights,m=d.numRow,y=d.numCol,O=d.gridOrigin,C=d.gridOffset,b=h.color,P=h.elevation,w=se(this.props.colorRange),M=this.getSubLayerClass("gpu-grid-cell",Gt);return new M({gridSize:[y,m],gridOrigin:O,gridOffset:[C.xOffset,C.yOffset],colorRange:w,elevationRange:g,colorDomain:f,elevationDomain:c,cellSize:s,coverage:u,material:l,elevationScale:i,extruded:o},this.getSubLayerProps({id:"gpu-grid-cell"}),{data:{attributes:{colors:b.aggregationBuffer,elevations:P.aggregationBuffer}},colorMaxMinBuffer:b.maxMinBuffer,elevationMaxMinBuffer:P.maxMinBuffer,numInstances:y*m})}},{key:"finalizeState",value:function(r){var i=this.state.weights,o=i.color,s=i.elevation;[o,s].forEach(function(u){var l=u.aggregationBuffer,g=u.maxMinBuffer;g.delete(),l?.delete()}),(0,Wt.default)((0,$e.default)(e.prototype),"finalizeState",this).call(this,r)}},{key:"updateAggregationState",value:function(r){var i=r.props,o=r.oldProps,s=i.cellSize,u=i.coordinateSystem,l=this.context.viewport,g=o.cellSize!==s,f=this.state.dimensions,c=this.isAttributeChanged(ji),d=c||this.isAttributeChanged(),h=this.state.boundingBox;if(c&&(h=At(this.getAttributes(),this.getNumInstances()),this.setState({boundingBox:h})),c||g){var m=Ot(h,s,l,u),y=m.gridOffset,O=m.translation,C=m.width,b=m.height,P=m.numCol,w=m.numRow;this.allocateResources(w,P),this.setState({gridOffset:y,translation:O,gridOrigin:[-1*O[0],-1*O[1]],width:C,height:b,numCol:P,numRow:w})}var M=d||this.isAggregationDirty(r,{dimension:f.data,compareAll:!0});M&&this._updateAccessors(r),this.setState({aggregationDataDirty:M})}},{key:"_updateAccessors",value:function(r){var i=r.props,o=i.colorAggregation,s=i.elevationAggregation,u=this.state.weights,l=u.color,g=u.elevation;l.operation=E[o],g.operation=E[s]}}]),e}(ce);(0,de.default)(he,"layerName","GPUGridLayer");(0,de.default)(he,"defaultProps",zu);function ku(t){var a=Gu();return function(){var n=(0,Sr.default)(t),r;if(a){var i=(0,Sr.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,eo.default)(this,r)}}function Gu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Yi(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function xr(t){for(var a=1;a<arguments.length;a++){var e=arguments[a]!=null?arguments[a]:{};a%2?Yi(Object(e),!0).forEach(function(n){(0,nt.default)(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Yi(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}var Wu=xr(xr(xr({},he.defaultProps),ve.defaultProps),{},{gpuAggregation:!1}),jt=function(t){(0,Ji.default)(e,t);var a=ku(e);function e(){var n;(0,Ki.default)(this,e);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=a.call.apply(a,[this].concat(i)),(0,nt.default)((0,Zi.default)(n),"state",void 0),n}return(0,Qi.default)(e,[{key:"initializeState",value:function(){this.state={useGPUAggregation:!0}}},{key:"updateState",value:function(r){var i=r.props;this.setState({useGPUAggregation:this.canUseGPUAggregation(i)})}},{key:"renderLayers",value:function(){var r=this.props,i=r.data,o=r.updateTriggers,s=this.state.useGPUAggregation?"GPU":"CPU",u=this.state.useGPUAggregation?this.getSubLayerClass("GPU",he):this.getSubLayerClass("CPU",ve);return new u(this.props,this.getSubLayerProps({id:s,updateTriggers:o}),{data:i})}},{key:"canUseGPUAggregation",value:function(r){var i=r.gpuAggregation,o=r.lowerPercentile,s=r.upperPercentile,u=r.getColorValue,l=r.getElevationValue,g=r.colorScaleType;return!(!i||!G.isSupported(this.context.gl)||o!==0||s!==100||u!==null||l!==null||g==="quantile"||g==="ordinal")}}]),e}(to.CompositeLayer);(0,nt.default)(jt,"layerName","GridLayer");(0,nt.default)(jt,"defaultProps",Wu);var Pr=v(Ye()),Oo=v(z()),To=v(U()),Co=v(ae()),at=v(K()),Po=v(H()),wo=v($()),ye=v(j()),ee=v(L());var _r=v(Ye()),ao=v(Q());function ju(t,a){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=Vu(t))||a&&t&&typeof t.length=="number"){e&&(t=e);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(l){throw l},f:r}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
459
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,o=!1,s;return{s:function(){e=e.call(t)},n:function(){var l=e.next();return i=l.done,l},e:function(l){o=!0,s=l},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(o)throw s}}}}function Vu(t,a){if(t){if(typeof t=="string")return ro(t,a);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return ro(t,a)}}function ro(t,a){(a==null||a>t.length)&&(a=t.length);for(var e=0,n=new Array(a);e<a;e++)n[e]=t[e];return n}function io(t){var a=t.map(function(s){return s[0]}),e=t.map(function(s){return s[1]}),n=Math.min.apply(null,a),r=Math.max.apply(null,a),i=Math.min.apply(null,e),o=Math.max.apply(null,e);return[n,i,r,o]}function oo(t,a){return a[0]>=t[0]&&a[2]<=t[2]&&a[1]>=t[1]&&a[3]<=t[3]}var no=new Float32Array(12);function br(t){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2,e=0,n=ju(t),r;try{for(n.s();!(r=n.n()).done;)for(var i=r.value,o=0;o<a;o++)no[e++]=i[o]||0}catch(s){n.e(s)}finally{n.f()}return no}function so(t,a,e){var n=(0,_r.default)(t,4),r=n[0],i=n[1],o=n[2],s=n[3],u=o-r,l=s-i,g=u,f=l;u/l<a/e?g=a/e*l:f=e/a*u,g<a&&(g=a,f=e);var c=(o+r)/2,d=(s+i)/2;return[c-g/2,d-f/2,c+g/2,d+f/2]}function uo(t,a){var e=(0,_r.default)(a,4),n=e[0],r=e[1],i=e[2],o=e[3];return[(t[0]-n)/(i-n),(t[1]-r)/(o-r)]}function lo(t){var a=t.gl,e=t.floatTargetSupport;return e?{format:(0,ao.isWebGL2)(a)?34836:6408,type:5126}:{format:6408,type:5121}}var I=v(Q()),ne=v(B());var po=v(z()),vo=v(U()),mo=v(H()),ho=v($()),Ar=v(j()),Or=v(L()),Ht=v(Q()),$t=v(B());var fo=`#define SHADER_NAME heatp-map-layer-vertex-shader
460
+
461
+ uniform sampler2D maxTexture;
462
+ uniform float intensity;
463
+ uniform vec2 colorDomain;
464
+ uniform float threshold;
465
+ uniform float aggregationMode;
466
+
467
+ attribute vec3 positions;
468
+ attribute vec2 texCoords;
469
+
470
+ varying vec2 vTexCoords;
471
+ varying float vIntensityMin;
472
+ varying float vIntensityMax;
473
+
474
+ void main(void) {
475
+ gl_Position = project_position_to_clipspace(positions, vec3(0.0), vec3(0.0));
476
+ vTexCoords = texCoords;
477
+ vec4 maxTexture = texture2D(maxTexture, vec2(0.5));
478
+ float maxValue = aggregationMode < 0.5 ? maxTexture.r : maxTexture.g;
479
+ float minValue = maxValue * threshold;
480
+ if (colorDomain[1] > 0.) {
481
+ maxValue = colorDomain[1];
482
+ minValue = colorDomain[0];
483
+ }
484
+ vIntensityMax = intensity / maxValue;
485
+ vIntensityMin = intensity / minValue;
486
+ }
487
+ `;var go=`#define SHADER_NAME triangle-layer-fragment-shader
488
+
489
+ precision highp float;
490
+
491
+ uniform float opacity;
492
+ uniform sampler2D texture;
493
+ uniform sampler2D colorTexture;
494
+ uniform float aggregationMode;
495
+
496
+ varying vec2 vTexCoords;
497
+ varying float vIntensityMin;
498
+ varying float vIntensityMax;
499
+
500
+ vec4 getLinearColor(float value) {
501
+ float factor = clamp(value * vIntensityMax, 0., 1.);
502
+ vec4 color = texture2D(colorTexture, vec2(factor, 0.5));
503
+ color.a *= min(value * vIntensityMin, 1.0);
504
+ return color;
505
+ }
506
+
507
+ void main(void) {
508
+ vec4 weights = texture2D(texture, vTexCoords);
509
+ float weight = weights.r;
510
+
511
+ if (aggregationMode > 0.5) {
512
+ weight /= max(1.0, weights.a);
513
+ }
514
+ if (weight <= 0.) {
515
+ discard;
516
+ }
517
+
518
+ vec4 linearColor = getLinearColor(weight);
519
+ linearColor.a *= opacity;
520
+ gl_FragColor =linearColor;
521
+ }
522
+ `;function co(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function Vt(t){for(var a=1;a<arguments.length;a++){var e=arguments[a]!=null?arguments[a]:{};a%2?co(Object(e),!0).forEach(function(n){(0,Or.default)(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):co(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function Hu(t){var a=$u();return function(){var n=(0,Ar.default)(t),r;if(a){var i=(0,Ar.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,ho.default)(this,r)}}function $u(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Tr=function(t){(0,mo.default)(e,t);var a=Hu(e);function e(){return(0,po.default)(this,e),a.apply(this,arguments)}return(0,vo.default)(e,[{key:"getShaders",value:function(){return{vs:fo,fs:go,modules:[$t.project32]}}},{key:"initializeState",value:function(r){var i=r.gl,o=this.getAttributeManager();o.add({positions:{size:3,noAlloc:!0},texCoords:{size:2,noAlloc:!0}}),this.setState({model:this._getModel(i)})}},{key:"_getModel",value:function(r){var i=this.props.vertexCount;return new Ht.Model(r,Vt(Vt({},this.getShaders()),{},{id:this.props.id,geometry:new Ht.Geometry({drawMode:6,vertexCount:i})}))}},{key:"draw",value:function(r){var i=r.uniforms,o=this.state.model,s=this.props,u=s.texture,l=s.maxTexture,g=s.colorTexture,f=s.intensity,c=s.threshold,d=s.aggregationMode,h=s.colorDomain;o.setUniforms(Vt(Vt({},i),{},{texture:u,maxTexture:l,colorTexture:g,intensity:f,threshold:c,aggregationMode:d,colorDomain:h})).draw()}}]),e}($t.Layer);(0,Or.default)(Tr,"layerName","TriangleLayer");var yo=`attribute vec3 positions;
523
+ attribute vec3 positions64Low;
524
+ attribute float weights;
525
+ varying vec4 weightsTexture;
526
+ uniform float radiusPixels;
527
+ uniform float textureWidth;
528
+ uniform vec4 commonBounds;
529
+ uniform float weightsScale;
530
+ void main()
531
+ {
532
+ weightsTexture = vec4(weights * weightsScale, 0., 0., 1.);
533
+
534
+ float radiusTexels = project_pixel_size(radiusPixels) * textureWidth / (commonBounds.z - commonBounds.x);
535
+ gl_PointSize = radiusTexels * 2.;
536
+
537
+ vec3 commonPosition = project_position(positions, positions64Low);
538
+ gl_Position.xy = (commonPosition.xy - commonBounds.xy) / (commonBounds.zw - commonBounds.xy) ;
539
+ gl_Position.xy = (gl_Position.xy * 2.) - (1.);
540
+ }
541
+ `;var xo=`varying vec4 weightsTexture;
542
+ float gaussianKDE(float u){
543
+ return pow(2.71828, -u*u/0.05555)/(1.77245385*0.166666);
544
+ }
545
+ void main()
546
+ {
547
+ float dist = length(gl_PointCoord - vec2(0.5, 0.5));
548
+ if (dist > 0.5) {
549
+ discard;
550
+ }
551
+ gl_FragColor = weightsTexture * gaussianKDE(2. * dist);
552
+ DECKGL_FILTER_COLOR(gl_FragColor, geometry);
553
+ }
554
+ `;var So=`attribute vec4 inTexture;
555
+ varying vec4 outTexture;
556
+
557
+ void main()
558
+ {
559
+ outTexture = inTexture;
560
+ gl_Position = vec4(0, 0, 0, 1.);
561
+ gl_PointSize = 1.0;
562
+ }
563
+ `;var _o=`varying vec4 outTexture;
564
+ void main() {
565
+ gl_FragColor = outTexture;
566
+ gl_FragColor.g = outTexture.r / max(1.0, outTexture.a);
567
+ }
568
+ `;var Xe;function bo(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function qe(t){for(var a=1;a<arguments.length;a++){var e=arguments[a]!=null?arguments[a]:{};a%2?bo(Object(e),!0).forEach(function(n){(0,ee.default)(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):bo(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function Xu(t){var a=qu();return function(){var n=(0,ye.default)(t),r;if(a){var i=(0,ye.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,wo.default)(this,r)}}function qu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Yu=2,Cr={mipmaps:!1,parameters:(Xe={},(0,ee.default)(Xe,10240,9729),(0,ee.default)(Xe,10241,9729),(0,ee.default)(Xe,10242,33071),(0,ee.default)(Xe,10243,33071),Xe),dataFormat:6408},Ao=[0,0],Ku={SUM:0,MEAN:1},Qu={getPosition:{type:"accessor",value:function(a){return a.position}},getWeight:{type:"accessor",value:1},intensity:{type:"number",min:0,value:1},radiusPixels:{type:"number",min:1,max:100,value:50},colorRange:Y,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}},Zu=[I.FEATURES.BLEND_EQUATION_MINMAX,I.FEATURES.TEXTURE_FLOAT],Ju=[I.FEATURES.COLOR_ATTACHMENT_RGBA32F,I.FEATURES.FLOAT_BLEND],el={data:{props:["radiusPixels"]}},Xt=function(t){(0,Po.default)(e,t);var a=Xu(e);function e(){var n;(0,Oo.default)(this,e);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=a.call.apply(a,[this].concat(i)),(0,ee.default)((0,Co.default)(n),"state",void 0),n}return(0,To.default)(e,[{key:"initializeState",value:function(){var r=this.context.gl;if(!(0,I.hasFeatures)(r,Zu)){this.setState({supported:!1}),ne.log.error("HeatmapLayer: ".concat(this.id," is not supported on this browser"))();return}(0,at.default)((0,ye.default)(e.prototype),"initializeAggregationLayer",this).call(this,el),this.setState({supported:!0,colorDomain:Ao}),this._setupTextureParams(),this._setupAttributes(),this._setupResources()}},{key:"shouldUpdateState",value:function(r){var i=r.changeFlags;return i.somethingChanged}},{key:"updateState",value:function(r){this.state.supported&&((0,at.default)((0,ye.default)(e.prototype),"updateState",this).call(this,r),this._updateHeatmapState(r))}},{key:"_updateHeatmapState",value:function(r){var i=r.props,o=r.oldProps,s=this._getChangeFlags(r);(s.dataChanged||s.viewportChanged)&&(s.boundsChanged=this._updateBounds(s.dataChanged),this._updateTextureRenderingBounds()),s.dataChanged||s.boundsChanged?(clearTimeout(this.state.updateTimer),this.setState({isWeightMapDirty:!0})):s.viewportZoomChanged&&this._debouncedUpdateWeightmap(),i.colorRange!==o.colorRange&&this._updateColorTexture(r),this.state.isWeightMapDirty&&this._updateWeightmap(),this.setState({zoom:r.context.viewport.zoom})}},{key:"renderLayers",value:function(){if(!this.state.supported)return[];var r=this.state,i=r.weightsTexture,o=r.triPositionBuffer,s=r.triTexCoordBuffer,u=r.maxWeightsTexture,l=r.colorTexture,g=r.colorDomain,f=this.props,c=f.updateTriggers,d=f.intensity,h=f.threshold,m=f.aggregation,y=this.getSubLayerClass("triangle",Tr);return new y(this.getSubLayerProps({id:"triangle-layer",updateTriggers:c}),{coordinateSystem:ne.COORDINATE_SYSTEM.DEFAULT,data:{attributes:{positions:o,texCoords:s}},vertexCount:4,maxTexture:u,colorTexture:l,aggregationMode:Ku[m]||0,texture:i,intensity:d,threshold:h,colorDomain:g})}},{key:"finalizeState",value:function(r){(0,at.default)((0,ye.default)(e.prototype),"finalizeState",this).call(this,r);var i=this.state,o=i.weightsTransform,s=i.weightsTexture,u=i.maxWeightTransform,l=i.maxWeightsTexture,g=i.triPositionBuffer,f=i.triTexCoordBuffer,c=i.colorTexture,d=i.updateTimer;o?.delete(),s?.delete(),u?.delete(),l?.delete(),g?.delete(),f?.delete(),c?.delete(),d&&clearTimeout(d)}},{key:"_getAttributeManager",value:function(){return new ne.AttributeManager(this.context.gl,{id:this.props.id,stats:this.context.stats})}},{key:"_getChangeFlags",value:function(r){var i={},o=this.state.dimensions;i.dataChanged=this.isAttributeChanged()||this.isAggregationDirty(r,{compareAll:!0,dimension:o.data}),i.viewportChanged=r.changeFlags.viewportChanged;var s=this.state.zoom;return(!r.context.viewport||r.context.viewport.zoom!==s)&&(i.viewportZoomChanged=!0),i}},{key:"_createTextures",value:function(){var r=this.context.gl,i=this.state,o=i.textureSize,s=i.format,u=i.type;this.setState({weightsTexture:new I.Texture2D(r,qe({width:o,height:o,format:s,type:u},Cr)),maxWeightsTexture:new I.Texture2D(r,qe({format:s,type:u},Cr))})}},{key:"_setupAttributes",value:function(){var r=this.getAttributeManager();r.add({positions:{size:3,type:5130,accessor:"getPosition"},weights:{size:1,accessor:"getWeight"}}),this.setState({positionAttributeName:"positions"})}},{key:"_setupTextureParams",value:function(){var r=this.context.gl,i=this.props.weightsTextureSize,o=Math.min(i,(0,I.getParameters)(r,3379)),s=(0,I.hasFeatures)(r,Ju),u=lo({gl:r,floatTargetSupport:s}),l=u.format,g=u.type,f=s?1:1/255;this.setState({textureSize:o,format:l,type:g,weightsScale:f}),s||ne.log.warn("HeatmapLayer: ".concat(this.id," rendering to float texture not supported, fallingback to low precession format"))()}},{key:"getShaders",value:function(r){return(0,at.default)((0,ye.default)(e.prototype),"getShaders",this).call(this,r==="max-weights-transform"?{vs:So,_fs:_o}:{vs:yo,_fs:xo})}},{key:"_createWeightsTransform",value:function(){var r,i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=this.context.gl,s=this.state.weightsTransform,u=this.state.weightsTexture;(r=s)===null||r===void 0||r.delete(),s=new I.Transform(o,qe({id:"".concat(this.id,"-weights-transform"),elementCount:1,_targetTexture:u,_targetTextureVarying:"weightsTexture"},i)),this.setState({weightsTransform:s})}},{key:"_setupResources",value:function(){var r=this.context.gl;this._createTextures();var i=this.state,o=i.textureSize,s=i.weightsTexture,u=i.maxWeightsTexture,l=this.getShaders("weights-transform");this._createWeightsTransform(l);var g=this.getShaders("max-weights-transform"),f=new I.Transform(r,qe(qe({id:"".concat(this.id,"-max-weights-transform"),_sourceTextures:{inTexture:s},_targetTexture:u,_targetTextureVarying:"outTexture"},g),{},{elementCount:o*o}));this.setState({weightsTexture:s,maxWeightsTexture:u,maxWeightTransform:f,zoom:null,triPositionBuffer:new I.Buffer(r,{byteLength:48,accessor:{size:3}}),triTexCoordBuffer:new I.Buffer(r,{byteLength:48,accessor:{size:2}})})}},{key:"updateShaders",value:function(r){this._createWeightsTransform(r)}},{key:"_updateMaxWeightValue",value:function(){var r=this.state.maxWeightTransform;r.run({parameters:{blend:!0,depthTest:!1,blendFunc:[1,1],blendEquation:32776}})}},{key:"_updateBounds",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,i=this.context.viewport,o=[i.unproject([0,0]),i.unproject([i.width,0]),i.unproject([i.width,i.height]),i.unproject([0,i.height])].map(function(d){return d.map(Math.fround)}),s=io(o),u={visibleWorldBounds:s,viewportCorners:o},l=!1;if(r||!this.state.worldBounds||!oo(this.state.worldBounds,s)){var g=this._worldToCommonBounds(s),f=this._commonToWorldBounds(g);this.props.coordinateSystem===ne.COORDINATE_SYSTEM.LNGLAT&&(f[1]=Math.max(f[1],-85.051129),f[3]=Math.min(f[3],85.051129),f[0]=Math.max(f[0],-360),f[2]=Math.min(f[2],360));var c=this._worldToCommonBounds(f);u.worldBounds=f,u.normalizedCommonBounds=c,l=!0}return this.setState(u),l}},{key:"_updateTextureRenderingBounds",value:function(){var r=this.state,i=r.triPositionBuffer,o=r.triTexCoordBuffer,s=r.normalizedCommonBounds,u=r.viewportCorners,l=this.context.viewport;i.subData(br(u,3));var g=u.map(function(f){return uo(l.projectPosition(f),s)});o.subData(br(g,2))}},{key:"_updateColorTexture",value:function(r){var i=r.props.colorRange,o=this.state.colorTexture,s=se(i,!1,Uint8Array);o?o.setImageData({data:s,width:i.length}):o=new I.Texture2D(this.context.gl,qe({data:s,width:i.length,height:1},Cr)),this.setState({colorTexture:o})}},{key:"_updateWeightmap",value:function(){var r=this,i,o=this.props,s=o.radiusPixels,u=o.colorDomain,l=o.aggregation,g=this.state,f=g.weightsTransform,c=g.worldBounds,d=g.textureSize,h=g.weightsTexture,m=g.weightsScale;this.state.isWeightMapDirty=!1;var y=this._worldToCommonBounds(c,{useLayerCoordinateSystem:!0});if(u&&l==="SUM"){var O=this.context.viewport,C=O.distanceScales.metersPerUnit[2]*(y[2]-y[0])/d;this.state.colorDomain=u.map(function(P){return P*C*m})}else this.state.colorDomain=u||Ao;var b={radiusPixels:s,commonBounds:y,textureWidth:d,weightsScale:m};f.update({elementCount:this.getNumInstances()}),(0,I.withParameters)(this.context.gl,{clearColor:[0,0,0,0]},function(){f.run({uniforms:b,parameters:{blend:!0,depthTest:!1,blendFunc:[1,1],blendEquation:32774},clearRenderTarget:!0,attributes:r.getAttributes(),moduleSettings:r.getModuleSettings()})}),this._updateMaxWeightValue(),h.setParameters((i={},(0,ee.default)(i,10240,9729),(0,ee.default)(i,10241,9729),i))}},{key:"_debouncedUpdateWeightmap",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,i=this.state.updateTimer,o=this.props.debounceTimeout;r?(i=null,this._updateBounds(!0),this._updateTextureRenderingBounds(),this.setState({isWeightMapDirty:!0})):(this.setState({isWeightMapDirty:!1}),clearTimeout(i),i=setTimeout(this._debouncedUpdateWeightmap.bind(this,!0),o)),this.setState({updateTimer:i})}},{key:"_worldToCommonBounds",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=i.useLayerCoordinateSystem,s=o===void 0?!1:o,u=(0,Pr.default)(r,4),l=u[0],g=u[1],f=u[2],c=u[3],d=this.context.viewport,h=this.state.textureSize,m=this.props.coordinateSystem,y=s&&(m===ne.COORDINATE_SYSTEM.LNGLAT_OFFSETS||m===ne.COORDINATE_SYSTEM.METER_OFFSETS),O=y?d.projectPosition(this.props.coordinateOrigin):[0,0],C=h*Yu/d.scale,b,P;return s&&!y?(b=this.projectPosition([l,g,0]),P=this.projectPosition([f,c,0])):(b=d.projectPosition([l,g,0]),P=d.projectPosition([f,c,0])),so([b[0]-O[0],b[1]-O[1],P[0]-O[0],P[1]-O[1]],C,C)}},{key:"_commonToWorldBounds",value:function(r){var i=(0,Pr.default)(r,4),o=i[0],s=i[1],u=i[2],l=i[3],g=this.context.viewport,f=g.unprojectPosition([o,s]),c=g.unprojectPosition([u,l]);return f.slice(0,2).concat(c.slice(0,2))}}]),e}(Z);(0,ee.default)(Xt,"layerName","HeatmapLayer");(0,ee.default)(Xt,"defaultProps",Qu);return Fo(it);})();