UNPKG

ng-fancy-gui

Version:

This package contains components, for creating userinterfaces in a Angular app.

52 lines 8.22 kB
export class Mouse { constructor(rotationSlider) { this.rotationSlider = rotationSlider; this.pinching = false; this.lastX = 0; this.lastY = 0; this.isDown = false; this.rotationSlider.canvas.style.cursor = 'grab'; this.rotationSlider.canvas.onmousedown = (evt) => { this.rotationSlider.canvas.style.cursor = 'grabbing'; this.syncPosition(evt); this.lastY = this.y; this.lastX = this.x; this.isDown = true; }; this.rotationSlider.canvas.onmouseup = () => { this.rotationSlider.canvas.style.cursor = 'grab'; this.isDown = false; }; this.rotationSlider.canvas.ontouchstart = (evt) => { this.rotationSlider.canvas.style.cursor = 'grabbing'; this.syncTouchPosition(evt); this.lastY = this.y; this.lastX = this.x; this.isDown = true; }; this.rotationSlider.canvas.ontouchend = () => { this.rotationSlider.canvas.style.cursor = 'grab'; this.isDown = false; }; } syncPosition(evt) { const rect = this.rotationSlider.canvas.getBoundingClientRect(); this.lastX = this.x; this.lastY = this.y; const currentTransform = this.rotationSlider.ctx.getTransform(); const internalX = evt.clientX - rect.left; const internalY = ((evt.clientY - rect.top)); let screen_X = internalX * currentTransform.a + internalY * currentTransform.c + currentTransform.e; let screen_Y = internalY * currentTransform.b + internalY * currentTransform.d + currentTransform.f; this.x = internalX; this.y = internalY; } syncTouchPosition(evt) { const rect = this.rotationSlider.canvas.getBoundingClientRect(); this.lastX = this.x; this.lastY = this.y; this.x = evt.touches[0].clientX - rect.left; this.y = ((evt.touches[0].clientY - rect.top)); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW91c2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1mYW5jeS1ndWkvIiwic291cmNlcyI6WyJsaWIvcm90YXRpb24tc2xpZGVyL2NsYXNzZXMvbW91c2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLEtBQUs7SUFRaEIsWUFBb0IsY0FBdUM7UUFBdkMsbUJBQWMsR0FBZCxjQUFjLENBQXlCO1FBUHBELGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBR2xCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFHN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFakQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUM7WUFDckQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUU7WUFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDakQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUM7WUFDckQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDckIsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRTtZQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNqRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN0QixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQUc7UUFFZCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFHcEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoRSxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDMUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0MsSUFBSSxRQUFRLEdBQUcsU0FBUyxHQUFHLGdCQUFnQixDQUFDLENBQUMsR0FBRyxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUNwRyxJQUFJLFFBQVEsR0FBRyxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBRXBHLElBQUksQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQ25CLElBQUksQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxHQUFHO1FBQ25CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDaEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUVwQixJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSb3RhdGlvblNsaWRlckNvbXBvbmVudH0gZnJvbSAnLi4vcm90YXRpb24tc2xpZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge0ltYWdlQ3JvcGVyfSBmcm9tICcuLi8uLi9pbWFnZS1jcm9wcGVyL2ltYWdlLWNyb3BwZXIvY2xhc3Nlcy9pbWFnZS1jcm9wZXInO1xuXG5cbmV4cG9ydCBjbGFzcyBNb3VzZSB7XG4gIHB1YmxpYyBwaW5jaGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgbGFzdFg6IG51bWJlciA9IDA7XG4gIHB1YmxpYyBsYXN0WTogbnVtYmVyID0gMDtcbiAgcHVibGljIHg6IG51bWJlcjtcbiAgcHVibGljIHk6IG51bWJlcjtcbiAgcHVibGljIGlzRG93bjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm90YXRpb25TbGlkZXI6IFJvdGF0aW9uU2xpZGVyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5yb3RhdGlvblNsaWRlci5jYW52YXMuc3R5bGUuY3Vyc29yID0gJ2dyYWInO1xuXG4gICAgdGhpcy5yb3RhdGlvblNsaWRlci5jYW52YXMub25tb3VzZWRvd24gPSAoZXZ0KSA9PiB7XG4gICAgICB0aGlzLnJvdGF0aW9uU2xpZGVyLmNhbnZhcy5zdHlsZS5jdXJzb3IgPSAnZ3JhYmJpbmcnO1xuICAgICAgdGhpcy5zeW5jUG9zaXRpb24oZXZ0KTtcbiAgICAgIHRoaXMubGFzdFkgPSB0aGlzLnk7XG4gICAgICB0aGlzLmxhc3RYID0gdGhpcy54O1xuICAgICAgdGhpcy5pc0Rvd24gPSB0cnVlO1xuICAgIH07XG5cbiAgICB0aGlzLnJvdGF0aW9uU2xpZGVyLmNhbnZhcy5vbm1vdXNldXAgPSAoKSA9PiB7XG4gICAgICB0aGlzLnJvdGF0aW9uU2xpZGVyLmNhbnZhcy5zdHlsZS5jdXJzb3IgPSAnZ3JhYic7XG4gICAgICB0aGlzLmlzRG93biA9IGZhbHNlO1xuICAgIH07XG5cbiAgICB0aGlzLnJvdGF0aW9uU2xpZGVyLmNhbnZhcy5vbnRvdWNoc3RhcnQgPSAoZXZ0KSA9PiB7XG4gICAgICB0aGlzLnJvdGF0aW9uU2xpZGVyLmNhbnZhcy5zdHlsZS5jdXJzb3IgPSAnZ3JhYmJpbmcnO1xuICAgICAgdGhpcy5zeW5jVG91Y2hQb3NpdGlvbihldnQpO1xuICAgICAgdGhpcy5sYXN0WSA9IHRoaXMueTtcbiAgICAgIHRoaXMubGFzdFggPSB0aGlzLng7XG4gICAgICB0aGlzLmlzRG93biA9IHRydWU7XG4gICAgfTtcblxuICAgIHRoaXMucm90YXRpb25TbGlkZXIuY2FudmFzLm9udG91Y2hlbmQgPSAoKSA9PiB7XG4gICAgICB0aGlzLnJvdGF0aW9uU2xpZGVyLmNhbnZhcy5zdHlsZS5jdXJzb3IgPSAnZ3JhYic7XG4gICAgICB0aGlzLmlzRG93biA9IGZhbHNlO1xuICAgIH07XG4gIH1cblxuICBzeW5jUG9zaXRpb24oZXZ0KSB7XG5cbiAgICBjb25zdCByZWN0ID0gdGhpcy5yb3RhdGlvblNsaWRlci5jYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5sYXN0WCA9IHRoaXMueDtcbiAgICB0aGlzLmxhc3RZID0gdGhpcy55O1xuXG5cbiAgICBjb25zdCBjdXJyZW50VHJhbnNmb3JtID0gdGhpcy5yb3RhdGlvblNsaWRlci5jdHguZ2V0VHJhbnNmb3JtKCk7XG4gICAgY29uc3QgaW50ZXJuYWxYID0gZXZ0LmNsaWVudFggLSByZWN0LmxlZnQ7XG4gICAgY29uc3QgaW50ZXJuYWxZID0gKChldnQuY2xpZW50WSAtIHJlY3QudG9wKSk7XG4gICAgbGV0IHNjcmVlbl9YID0gaW50ZXJuYWxYICogY3VycmVudFRyYW5zZm9ybS5hICsgaW50ZXJuYWxZICogY3VycmVudFRyYW5zZm9ybS5jICsgY3VycmVudFRyYW5zZm9ybS5lO1xuICAgIGxldCBzY3JlZW5fWSA9IGludGVybmFsWSAqIGN1cnJlbnRUcmFuc2Zvcm0uYiArIGludGVybmFsWSAqIGN1cnJlbnRUcmFuc2Zvcm0uZCArIGN1cnJlbnRUcmFuc2Zvcm0uZjtcblxuICAgIHRoaXMueCA9IGludGVybmFsWDtcbiAgICB0aGlzLnkgPSBpbnRlcm5hbFk7XG4gIH1cblxuICBzeW5jVG91Y2hQb3NpdGlvbihldnQpIHtcbiAgICBjb25zdCByZWN0ID0gdGhpcy5yb3RhdGlvblNsaWRlci5jYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5sYXN0WCA9IHRoaXMueDtcbiAgICB0aGlzLmxhc3RZID0gdGhpcy55O1xuXG4gICAgdGhpcy54ID0gZXZ0LnRvdWNoZXNbMF0uY2xpZW50WCAtIHJlY3QubGVmdDtcbiAgICB0aGlzLnkgPSAoKGV2dC50b3VjaGVzWzBdLmNsaWVudFkgLSByZWN0LnRvcCkpO1xuICB9XG59XG4iXX0=