Skip to content

Commit

Permalink
fix(typescript): add missing types
Browse files Browse the repository at this point in the history
  • Loading branch information
Matt Lewis committed May 26, 2016
1 parent bf497d2 commit e722a86
Showing 1 changed file with 29 additions and 11 deletions.
40 changes: 29 additions & 11 deletions src/resizable.directive.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,29 @@ import {
OnInit
} from '@angular/core';
import {Subject} from 'rxjs';
import {Observable} from 'rxjs/Observable';

const isNumberCloseTo: Function = (value1: number, value2: number, precision: number = 3): boolean => {
const diff: number = Math.abs(value1 - value2);
return diff < precision;
};

interface Edges {
top?: boolean;
bottom?: boolean;
left?: boolean;
right?: boolean;
}

interface BoundingRectangle {
top: number;
bottom: number;
left: number;
right: number;
height?: number;
width?: number;
}

@Directive({
selector: '[mwl-resizeable]'
})
Expand All @@ -25,11 +42,11 @@ export class Resizable implements OnInit {

ngOnInit(): void {

let currentResize;
let currentResize: any;

this.mousemove.subscribe(({mouseX, mouseY}) => {

const resizeEdges = this.getResizeEdges({mouseX, mouseY});
const resizeEdges: Edges = this.getResizeEdges({mouseX, mouseY});
if (resizeEdges.left || resizeEdges.right) {
this.renderer.setElementStyle(this.elm.nativeElement, 'cursor', 'ew-resize');
} else if (resizeEdges.top || resizeEdges.bottom) {
Expand All @@ -40,7 +57,7 @@ export class Resizable implements OnInit {

});

const mousedrag = this.mousedown.flatMap(startCoords => {
const mousedrag: Observable<any> = this.mousedown.flatMap(startCoords => {
return this.mousemove.map(moveCoords => {
return {
mouseX: moveCoords.mouseX - startCoords.mouseX,
Expand All @@ -52,7 +69,7 @@ export class Resizable implements OnInit {
mousedrag.subscribe(({mouseX, mouseY}) => {
if (currentResize) {

const newBoundingRect = {
const newBoundingRect: BoundingRectangle = {
top: currentResize.startingRect.top,
bottom: currentResize.startingRect.bottom,
left: currentResize.startingRect.left,
Expand All @@ -74,8 +91,8 @@ export class Resizable implements OnInit {
newBoundingRect.height = newBoundingRect.bottom - newBoundingRect.top;
newBoundingRect.width = newBoundingRect.right - newBoundingRect.left;

let translateY = (newBoundingRect.top - currentResize.startingRect.top);
let translateX = (newBoundingRect.left - currentResize.startingRect.left);
let translateY: number = (newBoundingRect.top - currentResize.startingRect.top);
let translateX: number = (newBoundingRect.left - currentResize.startingRect.left);

if (currentResize.previousTranslate) {
translateX += +currentResize.previousTranslate.translateX;
Expand All @@ -98,11 +115,12 @@ export class Resizable implements OnInit {
});

this.mousedown.subscribe(({mouseX, mouseY}) => {
const resizeEdges = this.getResizeEdges({mouseX, mouseY});
const resizeEdges: Edges = this.getResizeEdges({mouseX, mouseY});
if (Object.keys(resizeEdges).length > 0) {
let previousTranslate;
if (this.elm.nativeElement.style.transform) {
const [, translateX, translateY] = this.elm.nativeElement.style.transform.match(/translate\((.+)px, (.+)px\)/);
let previousTranslate: any;
const transform: string = this.elm.nativeElement.style.transform;
if (transform) {
const [, translateX, translateY]: any = transform.match(/translate\((.+)px, (.+)px\)/);
previousTranslate = {
translateX,
translateY
Expand Down Expand Up @@ -141,7 +159,7 @@ export class Resizable implements OnInit {
this.mousemove.next({mouseX, mouseY});
}

private getResizeEdges({mouseX, mouseY}) {
private getResizeEdges({mouseX, mouseY}: any): Edges {

const elmPosition: ClientRect = this.elm.nativeElement.getBoundingClientRect();
if (isNumberCloseTo(mouseX, elmPosition.left)) {
Expand Down

0 comments on commit e722a86

Please sign in to comment.