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 |
|
|
}
|