UNPKG

@devgateway/dvz-ui-react

Version:

A modular, embeddable React component library for data visualization and UI, built with TypeScript. Provides reusable components for charts, maps, dashboards, and more, with built-in support for internationalization and Redux integration.

2 lines (1 loc) 1.84 kB
"use strict";const l=require("react/jsx-runtime"),a=require("react"),p=require("react-dom/client"),c=require("d3"),h=require("./Tooltip.js");function d(o){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const t in o)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(o,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>o[t]})}}return e.default=o,Object.freeze(e)}const r=d(c);let u=class extends a.Component{constructor(){super(),this.loadJSON=this.loadJSON.bind(this),this.create=this.create.bind(this),this.createLayer=this.createLayer.bind(this),this.loadJSON=this.loadJSON.bind(this),this.showToolTip=this.showToolTip.bind(this),this.moveToolTip=this.moveToolTip.bind(this),this.gRef=a.createRef(),this.state={json:null}}loadJSON(e){return new Promise((t,s)=>{r.json(e).then((function(n,i){i&&console.log("Error loading JSON: "+i),t(n)}).bind(this))})}createLayer(e){alert("please implement createLayer")}create(){const{file:e}=this.props;this.state.json?this.createLayer(this.state.json):this.loadJSON(e).then(t=>{this.createLayer(t)})}showToolTip(e,t,s,n){if(t){debugger;const i=r.select("body").append("div").attr("class","d3MapTooltip").style("position","absolute").html("").style("left",window.event.pageX+15+"px").style("top",window.event.pageY-50+"px");p.createRoot(i._groups[0][0]).render(l.jsx(h.default,{intl:this.props.intl,tooltip:e,data:t,tooltipEnableMarkdown:!1}))}}moveToolTip(e){r.select(".d3MapTooltip").style("left",window.event.pageX+15+"px").style("top",window.event.pageY-50+"px")}hiddenToolTip(e){r.selectAll(".d3MapTooltip").remove()}componentDidMount(){this.create(),this.props.zoom&&this.props.current&&this.props.zoom.current.fullView()}render(){const{name:e,height:t,width:s}=this.props;return l.jsx("g",{className:"layer",ref:this.gRef})}};module.exports=u;