UNPKG

3.03 kBPlain TextView Raw
1import * as $ from "jquery";
2import "simpleutils";
3
4export class Util {
5 static browserLanguage;
6 static currentLanguage;
7 static dataJSON;
8
9 static elementHTML(name: string, id?: string, body?: string) {
10 console.log("Name: " + name);
11 let hTML = "<" + name;
12 if (id) {
13 hTML += " id=\"" + id;
14 }
15 if (body) {
16 hTML += "\">" + body + "</" + name;
17 }
18 return hTML + ">";
19 }
20
21 static normalizePort(val: number|string): number|string|boolean {
22 let port: number = (typeof val === 'string') ? parseInt(val, 10) : val;
23 if (isNaN(port)) return val;
24 else if (port >= 0) return port;
25 else return false;
26 }
27
28 static getJsonPromise(path: string): JQueryPromise<any> {
29 if (Util.dataJSON == null){
30 Util.dataJSON = new Array<any>();
31 }
32 if (Util.dataJSON[path] == null){
33 Util.dataJSON[path] = $.getJSON(path);
34 }
35 // else{
36 // console.log("CACHE");
37 // }
38 return Util.dataJSON[path];
39 // return $.getJSON(path);
40 }
41
42 static getTag(name: string) {
43 let names: string[] = name.split("Component");
44 return names[names.length - 1].toLowerCase();
45 }
46
47 static getFileName(name: string) {
48 return name.charAt(0).toLowerCase() + name.slice(1);
49 }
50
51 static getCurrentComponentPath() {
52 let error = new Error();
53 // console.log("test:"+(stack+"")+"end");
54 let stack = error.stack+"END";
55 // console.log("path:"+stack);
56 let link = stack.split('(')[3];
57 if(link==null||link==undefined||link==""){
58 link = stack.split('@')[3];
59 }
60 link = link.split('.js')[0].split(location.href)[1];
61 // console.log("path:"+link);
62 return link;
63 }
64
65 static removeElements(elements: NodeListOf<Element>) {
66 while (elements[0]) elements[0].parentNode.removeChild(elements[0]);
67 }
68
69 static getBrowserLanguage() {
70 if (Util.browserLanguage != undefined) {
71 return Util.browserLanguage;
72 }
73
74 let navigator = <any>window.navigator,
75 browserLanguagePropertyKeys = ['language', 'browserLanguage', 'systemLanguage', 'userLanguage'],
76 i,
77 language;
78
79 // support for HTML 5.1 "navigator.languages"
80 if (Array.isArray(navigator.languages)) {
81 for (i = 0; i < navigator.languages.length; i++) {
82 language = navigator.languages[i];
83 if (language && language.length) {
84 Util.browserLanguage = language;
85 return language;
86 }
87 }
88 }
89
90 // support for other well known properties in browsers
91 for (i = 0; i < browserLanguagePropertyKeys.length; i++) {
92 language = navigator[browserLanguagePropertyKeys[i]];
93 if (language && language.length) {
94 Util.browserLanguage = language;
95 return language;
96 }
97 }
98
99 Util.browserLanguage = "en-US";
100 return Util.browserLanguage;
101 }
102
103 static getCurrentLanguage() {
104 if (Util.currentLanguage != undefined) {
105 return Util.currentLanguage;
106 } else {
107 Util.currentLanguage = Util.getBrowserLanguage();
108 }
109 return Util.currentLanguage;
110 }
111
112}
\No newline at end of file