in src/globemap.ts [1571:1653]
private createControlElements(): Element {
const protocol: string = "http";
let svgNS: string = `${protocol}://www.w3.org/2000/svg`;
const circle = (cx: number, cy: number, r: number, classNames?: string) => {
let c = document.createElementNS(svgNS, "circle");
c.setAttribute("cx", cx.toString());
c.setAttribute("cy", cy.toString());
c.setAttribute("r", r.toString());
if (classNames) {
(<{ className }>c).className.baseVal = classNames;
}
return c;
};
const path = (d: string, classNames?: string) => {
let p = document.createElementNS(svgNS, "path");
p.setAttribute("d", d);
if (classNames) {
(<{ className }>p).className.baseVal = classNames;
}
return p;
};
const rect = (x: number, y: number, width: number, height: number, classNames?: string) => {
let r = document.createElementNS(svgNS, "rect");
r.setAttribute("x", x.toString());
r.setAttribute("y", y.toString());
r.setAttribute("width", width.toString());
r.setAttribute("height", height.toString());
if (classNames) {
(<{ className }>r).className.baseVal = classNames;
}
return r;
};
const g = (classNames: string) => {
let g = document.createElementNS(svgNS, "g");
if (classNames) {
(<{ className }>g).className.baseVal = classNames;
}
return g;
};
let moveUpButton = g("control js-control--move-up");
moveUpButton.appendChild(circle(85, 20, 17));
moveUpButton.appendChild(path("M85 8 l12 20 a40,70 0 0,0 -24,0z"));
let moveRightButton = g("control js-control--move-right");
moveRightButton.appendChild(circle(119, 54, 17, "zoomControlCircle"));
moveRightButton.appendChild(path("M130.9 54 l-20 -12 a70,40 0 0,1 0,24z", "zoomControlPath"));
let moveDownButton = g("control js-control--move-down");
moveDownButton.appendChild(circle(85, 88, 17));
moveDownButton.appendChild(path("M 85 100 l12 -20 a40,70 0 0,1 -24,0z"));
let moveLeftButton = g("control js-control--move-left");
moveLeftButton.appendChild(circle(51, 54, 17));
moveLeftButton.appendChild(path("M39 54 l20 -12 a70,40 0 0,0 0,24z"));
let zoomDownButton = g("control js-control--zoom-down");
zoomDownButton.appendChild(circle(51, 122, 17));
zoomDownButton.appendChild(rect(42, 120, 17, 6, "zoomControlPath"));
let zoomUpButton = g("control js-control--zoom-up");
zoomUpButton.appendChild(circle(119, 122, 17));
zoomUpButton.appendChild(rect(110.5, 120, 17, 6));
zoomUpButton.appendChild(rect(116, 114, 6, 17));
let controlsContainerSVG = document.createElementNS(svgNS, "svg");
(<{ className }>controlsContainerSVG).className.baseVal = "controls";
controlsContainerSVG.setAttribute("width", "145");
controlsContainerSVG.setAttribute("height", "145");
controlsContainerSVG.appendChild(moveUpButton);
controlsContainerSVG.appendChild(moveRightButton);
controlsContainerSVG.appendChild(moveDownButton);
controlsContainerSVG.appendChild(moveLeftButton);
controlsContainerSVG.appendChild(zoomDownButton);
controlsContainerSVG.appendChild(zoomUpButton);
return controlsContainerSVG;
}