Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
//TODO make new legend
// select('.legend').selectAll('.rectLegend').remove()
//
// let legend = svglegend.legendColor()
// legend.scale(self.legendScale);
// legend.shapeWidth((that.svgWidth)/8);
// d3.select('.legend').call(legend);
self.dotDataColloection.forEach(dot =>{
[dot.x,dot.y] = self.projection([dot.longitude,dot.latitude])
})
let simulation = forceSimulation(self.dotDataColloection)
.force('collide',forceCollide().radius(5).iterations(10))
.stop();
timeout(function(){
for (var i = 0,
n = Math.ceil(Math.log(simulation.alphaMin()) / Math.log(1 - simulation.alphaDecay()));
i < n; ++i) {
simulation.tick();}
let circles = draw.selectAll('circle').data(self.dotDataColloection);
circles.exit().remove();
circles = circles.enter()
.append('circle')
.merge(circles);
circles.attr('cx',(d:any)=>d.x)
.attr('cy',(d:any)=>d.y)
.attr('r',4)
.attr('fill',(d:any)=>self.mapManager.scaleFunction(d.dataVal))
.attr('id',(d:any)=>'circle_' + d.ID)
.on("mouseover", function(d:any) {
}
// Cancel any pre-empted transitions.
else if (+i < id) {
o.state = ENDED;
o.timer.stop();
o.on.call("cancel", node, node.__data__, o.index, o.group);
delete schedules[i];
}
}
// Defer the first tick to end of the current frame; see d3/d3#1576.
// Note the transition may be canceled after start and before the first tick!
// Note this must be scheduled before the start event; see d3/d3-transition#16!
// Assuming this is successful, subsequent callbacks go straight to tick.
timeout(function() {
if (self.state === STARTED) {
self.state = RUNNING;
self.timer.restart(tick, self.delay, self.time);
tick(elapsed);
}
});
// Dispatch the start event.
// Note this must be done before the tween are initialized.
self.state = STARTING;
self.on.call("start", node, node.__data__, self.index, self.group);
if (self.state !== STARTING) return; // interrupted
self.state = STARTED;
// Initialize the tween, deleting null tween.
tween = new Array(n = self.tween.length);
value = lazy.get.call(model);
on(`.${key}`, () => {
var newValue = lazy.get.call(model);
if (newValue === value) return;
update(newValue);
});
} else
prop.set = function (newValue) {
if (newValue === value) return;
// Schedule change event at the next event loop tick
timeout(() => {
update(newValue);
});
};
timeout(() => {
properties.get('').call('change', model);
});
return prop;
}
function start(elapsed) {
var i, j, n, o;
// If the state is not SCHEDULED, then we previously errored on start.
if (self.state !== SCHEDULED) return stop();
for (i in schedules) {
o = schedules[i];
if (o.name !== self.name) continue;
// While this element already has a starting transition during this frame,
// defer starting an interrupting transition until that transition has a
// chance to tick (and possibly end); see d3/d3-transition#54!
if (o.state === STARTED) return timeout(start);
// Interrupt the active transition, if any.
if (o.state === RUNNING) {
o.state = ENDED;
o.timer.stop();
o.on.call("interrupt", node, node.__data__, o.index, o.group);
delete schedules[i];
}
// Cancel any pre-empted transitions.
else if (+i < id) {
o.state = ENDED;
o.timer.stop();
o.on.call("cancel", node, node.__data__, o.index, o.group);
delete schedules[i];
}
function start(elapsed) { // eslint-disable-line consistent-return
// If the state is not SCHEDULED, then we previously errored on start.
if (transition.state !== SCHEDULED) return stop();
for (const sid in schedules) { // eslint-disable-line
const s = schedules[sid];
if (s.stateKey !== transition.stateKey) {
continue; // eslint-disable-line no-continue
}
// While this element already has a starting transition during this frame,
// defer starting an interrupting transition until that transition has a
// chance to tick (and possibly end); see d3/d3-transition#54!
if (s.state === STARTED) return timeout(start);
// 1. Interrupt the active transition, if any. dispatch the interrupt event.
// 2. Cancel any pre-empted transitions. No interrupt event is dispatched
// because the cancelled transitions never started. Note that this also
// removes this transition from the pending list!
if (s.state === RUNNING) {
s.state = ENDED;
s.timer.stop();
if (s.events.interrupt && typeof s.events.interrupt === 'function') {
s.events.interrupt.call(this);
}
delete schedules[sid];
} else if (+sid < id) {
s.state = ENDED;
s.timer.stop();
clickHandler(clickCallback, dblClickCallback, delay = 250) {
if (this._clickTimeout) {
this._clickTimeout.stop();
this._clickTimeout = null;
if (typeof dblClickCallback === "function") dblClickCallback();
} else {
this._clickTimeout = timeout(() => {
this._clickTimeout = null;
clickCallback();
}, delay);
}
}
setAttribute (attr, value) {
if (attr === 'draw') {
if (!this.parentNode)
timeout(redraw(this, value));
} else {
if (attr === 'class') this.class = value;
else {
if (!this.attrs) this.attrs = map();
canvasTransform(this, attr, value);
}
}
}
function domReady() {
let callback;
while (providers.readyCallbacks.length) {
callback = providers.readyCallbacks.shift();
timeout(callback);
}
}