]> git.lizzy.rs Git - dragonblocks.git/blob - lib/dblib.js
df2189b2e9cb365cbf6eb110cd1e3f5fad976e53
[dragonblocks.git] / lib / dblib.js
1 // Library for Dragonblocks
2 class dblib{
3         static center(elem){
4                 elem.style.left = elem.parentNode.clientWidth / 2 - parseInt(elem.clientWidth) / 2 + "px";
5         }
6         static centerVertical(elem){
7                 let parent = elem.parentNode;
8                 if (parent == document.body)
9                         parent = document.documentElement;
10                 elem.style.top = parent.clientHeight / 2 - parseInt(elem.clientHeight) / 2 + "px";
11         }
12         static remove(elem){
13                 if(elem)
14                         elem.parentNode.removeChild(elem);
15         }
16         static random(min, max){
17                 return Math.floor(min + Math.random() * (max - min + 1));
18         }
19         static humanFormat(str){
20                 var str = str.replace("_", " ");
21                 str = str[0].toUpperCase() + str.slice(1, str.length);
22                 return str;
23         }
24         static copy(dest, src){
25                 for(let prop in src){
26                         if(src[prop] instanceof Array){
27                                 dest[prop] = [];
28                                 this.copy(dest[prop], src[prop]);
29                         }
30                         else if(src[prop] instanceof Function){
31                                 dest[prop] = src[prop];
32                         }
33                         else if(src[prop] instanceof Object){
34                                 dest[prop] = {};
35                                 this.copy(dest[prop], src[prop]);
36                         }
37                         else{
38                                 dest[prop] = src[prop];
39                         }
40                 }
41         }
42         static copySimple(dest, src){
43                 for(let prop in src){
44                         dest[prop] = src[prop];
45                 }
46         }
47         static htmlEntities(str){
48                 return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/\n/g, "<br>").replace(/\t/g, "&emsp;&emsp;").replace(/ /g, "&ensp;");
49         }
50         static removeTmp(src){
51                 let obj = {};
52                 if(src instanceof Array)
53                         obj = [];
54                 dblib.copy(obj, src);
55                 for(let prop in obj){
56                         if(obj[prop].tmp)
57                                 delete obj[prop].tmp
58                 }
59                 return obj;
60         }
61         static replaceRecursive(src, search, replace){
62                 let obj = {};
63                 if(src instanceof Array)
64                         obj = [];
65                 dblib.copySimple(obj, src);
66                 for(let prop in obj){
67                         if(obj[prop] === search)
68                                 obj[prop] = replace;
69                         else if(obj[prop] instanceof Object)
70                                 obj[prop] = this.replaceRecursive(obj[prop], search, replace);
71                 }
72                 return obj;
73         }
74 }