UNPKG

@ruijingrs/deckgl-breath-layer

Version:

A deck.gl layer for rendering breath point

2 lines (1 loc) 9.04 kB
import{ScatterplotLayer,TextLayer,IconLayer,CompositeLayer}from"deck.gl/typed";function ownKeys(t,e){var r,o=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,r)),o}function _objectSpread2(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(r),!0).forEach(function(e){_defineProperty(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,t,r){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _inherits(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}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _isNativeReflectConstruct(){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}}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _possibleConstructorReturn(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _createSuper(r){var o=_isNativeReflectConstruct();return function(){var e,t=_getPrototypeOf(r);return _possibleConstructorReturn(this,o?(e=_getPrototypeOf(this).constructor,Reflect.construct(t,arguments,e)):t.apply(this,arguments))}}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf(e)););return e}function _get(){return(_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var o=_superPropBase(e,t);if(o)return(o=Object.getOwnPropertyDescriptor(o,t)).get?o.get.call(arguments.length<3?e:r):o.value}).apply(this,arguments)}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _unsupportedIterableToArray(e,t){var r;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(r="Object"===(r=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r<t;r++)o[r]=e[r];return o}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _toPrimitive(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0===r)return("string"===t?String:Number)(e);r=r.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"==typeof e?e:String(e)}var OUTER_MAX_SCALE=16,INNER_SCALE=4,STEP=.1,defaultProps=_objectSpread2(_objectSpread2({},ScatterplotLayer.defaultProps),{},{innerScale:INNER_SCALE,outerMaxScale:OUTER_MAX_SCALE,step:STEP,getInnerFillColor:{type:"accessor",value:[255,0,0]},getOuterFillColor:{type:"accessor",value:[255,0,0,100]},getPosition:{type:"accessor",value:function(e){return e.position}},text:{getText:function(e){return e.text},getColor:function(){return[255,255,255]},getSize:function(){return 12},fontFamily:"Arial",fontWeight:400,isDefault:!0},icon:{getIcon:function(e){return e.icon},getSize:function(){return 16},getColor:function(){return[255,255,255]},isDefault:!0},zFactor:50}),BreathLayer=function(){_inherits(c,CompositeLayer);var e=_createSuper(c);function c(){return _classCallCheck(this,c),e.apply(this,arguments)}return _createClass(c,[{key:"init",value:function(){var e,t=this.props,r=t.icon,t=t.text,o=this.props,n=o.outerMaxScale,o=o.innerScale,n=n||OUTER_MAX_SCALE,o=o||INNER_SCALE;r&&!r.isDefault&&(e=((n="number"==typeof(r=r.getSize||16)?1.4*r:n)-(o="number"==typeof r?.7*r:o))/120),t&&!t.isDefault&&(e=((n="number"==typeof(r=t.getSize||12)?1.4*r:n)-(o="number"==typeof r?.8*r:o))/120),this.setState({outerMaxScale:n,step:e,innerScale:o,radiusScale:o})}},{key:"initializeState",value:function(){this.init()}},{key:"updateState",value:function(e){var a=this,e=(_get(_getPrototypeOf(c.prototype),"updateState",this).call(this,e),e.props),t=e.icon,r=e.text,o=e.outerMaxScale,n=e.innerScale,o=o||OUTER_MAX_SCALE,n=n||INNER_SCALE,i=STEP;t&&!t.isDefault&&(i=((o="number"==typeof(t=t.getSize||16)?1.4*t:o)-(n="number"==typeof t?.7*t:n))/120),r&&!r.isDefault&&(i=((o="number"==typeof(t=r.getSize||12)?1.4*t:o)-(n="number"==typeof t?.8*t:n))/120),this.setState({outerMaxScale:o,step:i,innerScale:n}),e.data?function e(){a.state.raf&&window.cancelAnimationFrame(a.state.raf);var t=a.state,r=t.increasing,o=t.innerScale,n=t.outerMaxScale,t=t.step,i=a.state.radiusScale;r&&(i+=t),r||(i-=t),n<=i&&r&&a.setState({increasing:!1}),i<=o&&!r&&a.setState({increasing:!0}),a.setState({radiusScale:i,raf:requestAnimationFrame(e)})}():this.state.raf&&window.cancelAnimationFrame(this.state.raf)}},{key:"shouldUpdateState",value:function(e){var e=e.changeFlags,t=e.propsChanged,r=e.stateChanged,e=e.dataChanged;return Boolean(t||r||e)}},{key:"renderLayers",value:function(){var r,o,e=this,t=this.props,n=t.id,i=t.data,a=t.getPosition,c=t.getInnerFillColor,l=t.getOuterFillColor,u=t.onHover,s=t.onClick,f=t.visible,p=t.text,y=t.icon,d=t.step,g=t.zFactor,t={data:i,radiusMinPixels:1,radiusMaxPixels:100,radiusUnits:"pixels",getPosition:function(e,t){var r,e=(null==(r=e="function"==typeof a?a(e,t):a)?void 0:r.slice(0,2))||[0,0];return e=Array.isArray(i)?[].concat(_toConsumableArray(e),[(i.length-t.index)*g]):e},filled:!0,fp64:!0,getRadius:function(){return e.state.radius},visible:f,getPolygonOffset:null},f=[new ScatterplotLayer(_objectSpread2(_objectSpread2({},t),{},{id:"".concat(n,"-scatterplot-hola"),radiusScale:this.state.radiusScale,getFillColor:l,pickable:!0,onClick:s,onHover:u,updateTriggers:{getFillColor:l,radiusScale:[this.state.radiusScale,d]},parameters:{depthTest:!1}})),new ScatterplotLayer(_objectSpread2(_objectSpread2({},t),{},{id:"".concat(n,"-scatterplot-inner"),data:i,pickable:!0,radiusScale:this.state.innerScale,getFillColor:c,getPolygonOffset:null,updateTriggers:{getFillColor:c},onHover:u,onClick:s}))];return p&&!p.isDefault&&(l=defaultProps.text,d=p.getColor,r=void 0===d?l.getColor:d,u=void 0===(c=p.getText)?l.getText:c,d=void 0===(s=p.getSize)?l.getSize:s,s=void 0===(c=p.fontFamily)?l.fontFamily:c,p=void 0===(c=p.fontWeight)?l.fontWeight:c,f.push(new TextLayer(_objectSpread2(_objectSpread2({},t),{},{id:"".concat(n,"-label-layer"),data:i,pickable:!1,fontFamily:s,getSize:d,getColor:function(e,t){return"function"==typeof r?r(e,t):r},getText:u,fontWeight:p,getPolygonOffset:null,updateTriggers:{getColor:r,getText:u,getSize:d,fontFamily:s,fontWeight:p}})))),y&&!y.isDefault&&(l=defaultProps.icon,u=void 0===(c=y.getIcon)?l.getIcon:c,s=void 0===(d=y.getSize)?l.getSize:d,p=y.getColor,o=void 0===p?l.getColor:p,f.push(new IconLayer(_objectSpread2(_objectSpread2({},t),{},{id:"".concat(n,"-icon-layer"),pickable:!1,getIcon:u,getSize:s,getColor:function(e,t){return"function"==typeof o?o(e,t):o},sizeMinPixels:4,updateTriggers:{getIcon:u,getSize:s,getColor:o}})))),f}}]),c}();_defineProperty(BreathLayer,"layerName","BreathLayer"),_defineProperty(BreathLayer,"defaultProps",defaultProps);export{BreathLayer};