d3.event é nulo no projeto modular d3
Not: Encontrei uma resposta para esta perguntaAqu. O problema está resolvido; não há necessidade de mais respostas!
Estou fazendo um projeto com a seguinte estrutura:
root
|
|____js
| |__index.js
|
|__node_modules
| |__d3-*
|
|
|__index.html
|__package.json
index.html:
<head>
<script src="https://unpkg.com/getlibs"></script>
</head>
<body>
<div id="detail"></div>
</div>
<!--script type="module" src="./js/index.js"></script> Also tried this method -->
<script>
System.import('./js/index.js');
</script>
</body>
index.js:
import {select} from "d3-selection";
import {event as currentEvent} from "d3-selection";
let svg = select('#detail')
.append('svg')
.attr('width', 500)
.attr('height', 500);
svg.on('click', function() {
console.log(window.event);
console.log(currentEvent);
});
E a saída é:
MouseEvent {isTrusted: true, screenX: 266, screenY: 247, clientX: 266, clientY: 175, …}
null
Se eu usar o d3 globalmente através de uma tag de script, referindo-me a ele dentro do módulo viawindow.d3
, entãod3.event
captura corretamente o evento do mouse. Quero criar um projeto modular e evitar ter um objeto d3 globa
Isso é possível e, em caso afirmativo, como?