1 | import * as $ from "jquery";
|
2 | import "simpleutils";
|
3 |
|
4 | export 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 |
|
36 |
|
37 |
|
38 | return Util.dataJSON[path];
|
39 |
|
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 |
|
54 | let stack = error.stack+"END";
|
55 |
|
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 |
|
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 |
|
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 |
|
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 |