Skip to content

Instantly share code, notes, and snippets.

@xoor-io
xoor-io / config.js
Created June 11, 2018 19:44
graphql-config
const commonConfig = {
env: process.env.NODE_ENV || 'development',
port: parseInt(process.env.PORT, 10) || 5000,
corsDomain: process.env.CORS_DOMAIN || '*'
};
export default commonConfig;
@xoor-io
xoor-io / server.js
Created June 11, 2018 19:31
graphql-server
// HTTP SERVER
import express from 'express';
import cors from 'cors';
const app = express();
function setPort(port = 5000) {
app.set('port', parseInt(port, 10));
}
@xoor-io
xoor-io / app.js
Last active June 11, 2018 19:31
graphql-app
import server from './server';
server.listen();
export default server;
@xoor-io
xoor-io / d3-canvas-brush-zoom-10.js
Last active May 11, 2018 19:07
d3-canvas-brush-zoom-10
function brush_endEvent() {
const s = d3.event.selection;
if (!s && lastSelection !== null) {
// Re-scale axis for the last transformation
let zx = lastTransform.rescaleX(x);
let zy = lastTransform.rescaleY(y);
// Calc distance on Axis-X to use in scale
let totalX = Math.abs(lastSelection.x2 - lastSelection.x1);
@xoor-io
xoor-io / d3-canvas-brush-zoom-09.js
Created May 11, 2018 15:19
d3-canvas-brush-zoom-09
const selection = svgChart.select(".selection");
const posValue = Math.abs(distance);
selection.attr('width', posValue * scale).attr('height', posValue);
if (xPosition < brushStartPoint.x) {
selection.attr('x', xPosition);
}
if (yPosition < brushStartPoint.y) {
selection.attr('y', yPosition);
@xoor-io
xoor-io / d3-canvas-brush-zoom-08.js
Created May 11, 2018 15:06
d3-canvas-brush-zoom-08
let xPosition = brushStartPoint.x + distance * scale * xCorMulti;
const oldDistance = distance;
if (xPosition > width) {
distance = (width - brushStartPoint.x) / scale;
xPosition = width;
} else if (xPosition < 0) {
distance = brushStartPoint.x / scale;
xPosition = 0;
}
@xoor-io
xoor-io / d3-canvas-brush-zoom-07.js
Created May 11, 2018 14:59
d3-canvas-brush-zoom-07
if (yPosition > height) {
distance = height - brushStartPoint.y;
yPosition = height;
} else if (yPosition < 0) {
distance = -brushStartPoint.y;
yPosition = 0;
}
@xoor-io
xoor-io / d3-canvas-brush-zoom-06.js
Created April 26, 2018 19:24
d3-canvas-brush-zoom-06
function brush_brushEvent() {
if (brushStartPoint !== null) {
const scale = width / height;
const sourceEvent = d3.event.sourceEvent;
const mouse = {
x: sourceEvent.screenX,
y: sourceEvent.screenY
};
if (mouse.x < 0) { mouse.x = 0; }
if (mouse.y < 0) { mouse.y = 0; }
@xoor-io
xoor-io / d3-canvas-brush-zoom-05.js
Created April 26, 2018 19:18
d3-canvas-brush-zoom-05
let brushStartPoint = null;
function brush_startEvent() {
const sourceEvent = d3.event.sourceEvent;
const selection = d3.event.selection;
if (sourceEvent.type === 'mousedown') {
brushStartPoint = {
mouse: {
x: sourceEvent.screenX,
y: sourceEvent.screenY
@xoor-io
xoor-io / d3-canvas-brush-zoom-04.js
Created April 26, 2018 19:03
d3-canvas-brush-zoom-04
const brush = d3.brush().extent([[0, 0], [width, height]])
.on("start", () => { brush_startEvent(); })
.on("brush", () => { brush_brushEvent(); })
.on("end", () => { brush_endEvent(); })
.on("start.nokey", function() {
d3.select(window).on("keydown.brush keyup.brush", null);
});
const brushSvg = svgChart
.append("g")