react-vtk-js
Version:
React based declarative vtk.js visualization pipeline
2 lines (1 loc) • 2.98 kB
JavaScript
import e from"../node_modules/@babel/runtime/helpers/esm/classCallCheck.js";import t from"../node_modules/@babel/runtime/helpers/esm/createClass.js";import r from"../node_modules/@babel/runtime/helpers/esm/inherits.js";import n from"../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js";import i from"../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js";import o,{Component as a}from"react";import s from"prop-types";import u from"../node_modules/@kitware/vtk.js/macros.js";import{RepresentationContext as l,DownstreamContext as c}from"./View.js";function p(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 r,o=i(e);if(t){var a=i(this).constructor;r=Reflect.construct(o,arguments,a)}else r=o.apply(this,arguments);return n(this,r)}}function d(e,t){t.classHierarchy.push("vtkTrivialProducer"),e.requestData=function(e,t){t.length=e.length;for(var r=0;r<e.length;r++)t[r]=e[r]}}var m=u.newInstance((function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,r),u.obj(e,t),u.algo(e,t,1,1),u.event(e,t,"DataAvailable"),d(e,t)}),"vtkTrivialProducer"),h={},f=function(n){r(s,a);var i=p(s);function s(){return e(this,s),i.apply(this,arguments)}return t(s,[{key:"getTrivialProducer",value:function(){var e=h[this.props.name];return e||(e=m(),h[this.props.name]=e),e}},{key:"componentDidMount",value:function(){var e=this.getTrivialProducer().getOutputData();e&&!e.isDeleted()&&this.dataAvailable()}},{key:"componentWillUnmount",value:function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=null)}},{key:"render",value:function(){var e=this;return this.update(),o.createElement(l.Consumer,null,(function(t){return o.createElement(c.Consumer,null,(function(r){return e.representation=t,e.downstream||(e.downstream=r),o.createElement(l.Provider,{value:e},o.createElement(c.Provider,{value:e.getTrivialProducer()},o.createElement("div",{key:e.props.id,id:e.props.id},e.props.children)))}))}))}},{key:"update",value:function(){var e=this;this.subscription&&(this.subscription.unsubscribe(),this.subscription=null),this.subscription=this.getTrivialProducer().onDataAvailable((function(){e.dataAvailable()}))}},{key:"dataAvailable",value:function(){this.downstream&&this.downstream.setInputConnection(this.getTrivialProducer().getOutputPort(),this.props.port),this.validData||(this.validData=!0,this.getTrivialProducer().invokeDataAvailable()),this.representation&&this.representation.dataAvailable()}},{key:"dataChanged",value:function(){this.representation&&this.representation.dataChanged()}}]),s}();f.defaultProps={port:0,name:"shared"},f.propTypes={id:s.string,port:s.number,name:s.string,children:s.oneOfType([s.arrayOf(s.node),s.node])};export{f as default};