Project

General

Profile

1 61381 k.triantaf
export class HelperFunctions {
2
3
  public static scroll() {
4
     HelperFunctions.scrollTo(0,0);
5
  }
6
  public static scrollTo(x,y) {
7
    if (typeof document !== 'undefined') {
8
      window.scrollTo(x,y);
9
    }
10
  }
11
12
  public static scrollToId(elementId:string) {
13
    if (typeof document !== 'undefined' && document.getElementById(elementId)) {
14
      document.getElementById(elementId).scrollIntoView();
15
    }
16
  }
17
  public static isTiny(url: string) {
18
    return (url.indexOf('tinyurl.com') !== -1);
19
  }
20
21
  public static copy(obj: any): any {
22
    let copy;
23
24
    // Handle the 3 simple types, and null or undefined
25
    if (null == obj || "object" != typeof obj) return obj;
26
27
    // Handle Date
28
    if (obj instanceof Date) {
29
      copy = new Date();
30
      copy.setTime(obj.getTime());
31
      return copy;
32
    }
33
34
    // Handle Array
35
    if (obj instanceof Array) {
36
      copy = [];
37
      for (let i = 0, len = obj.length; i < len; i++) {
38
        copy[i] = HelperFunctions.copy(obj[i]);
39
      }
40
      return copy;
41
    }
42
43
    // Handle Map
44
    if (obj instanceof Map) {
45
      return new Map(obj.entries());
46
    }
47
48
    // Handle Object
49
    if (obj instanceof Object) {
50
      copy = {};
51
      for (let attr in obj) {
52
        if (obj.hasOwnProperty(attr)) {
53
          copy[attr] = HelperFunctions.copy(obj[attr]);
54
        }
55
      }
56
      return copy;
57
    }
58
    throw new Error("Unable to copy obj! Its type isn't supported.");
59
  }
60
61
  public static equals(object1, object2) {
62
    return object1 === object2 || JSON.stringify(object1) === JSON.stringify(object2);
63
  }
64
65
  public static encodeArray(elements: string[]): string[] {
66
    let encoded: string[] = [];
67
    elements.forEach(element => {
68
      encoded.push(encodeURIComponent(element));
69
    });
70
    return encoded;
71
  }
72
73
  public static getValues(value: any): any[] {
74
    return Object.keys(value).map(key => value[key]);
75
  }
76
}