]> git.lizzy.rs Git - dragonblocks.git/blob - lib/dblib.js
f167d5125b1a3d0e7650af16db54721fdf77fb20
[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                 elem.style.top = elem.parentNode.clientHeight / 2 - parseInt(elem.clientHeight) / 2 + "px";
8         }
9         static remove(elem){
10                 if(elem)
11                         elem.parentNode.removeChild(elem);
12         }
13         static random(min, max){
14                 return Math.floor(min + Math.random() * (max - min + 1));
15         }
16         static humanFormat(str){
17                 var str = str.replace("_", " ");
18                 str = str[0].toUpperCase() + str.slice(1, str.length);
19                 return str;     
20         }
21         static copy(dest, src){
22                 for(let prop in src){
23                         if(src[prop] instanceof Array){
24                                 dest[prop] = [];
25                                 this.copy(dest[prop], src[prop]);
26                         }
27                         else if(src[prop] instanceof Function){
28                                 dest[prop] = src[prop];
29                         }
30                         else if(src[prop] instanceof Object){
31                                 dest[prop] = {};
32                                 this.copy(dest[prop], src[prop]);
33                         }
34                         else{
35                                 dest[prop] = src[prop];
36                         }
37                 }
38         }
39         static copySimple(dest, src){
40                 for(let prop in src){
41                         dest[prop] = src[prop];
42                 }
43         }
44         static htmlEntities(str){
45                 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;");
46         }
47         static removeTmp(src){
48                 let obj = {};
49                 if(src instanceof Array)
50                         obj = [];
51                 dblib.copy(obj, src);
52                 for(let prop in obj){
53                         if(obj[prop].tmp)
54                                 delete obj[prop].tmp
55                 }
56                 return obj;
57         }
58         static replaceRecursive(src, search, replace){
59                 let obj = {};
60                 if(src instanceof Array)
61                         obj = [];
62                 dblib.copySimple(obj, src);
63                 for(let prop in obj){
64                         if(obj[prop] === search)
65                                 obj[prop] = replace;
66                         else if(obj[prop] instanceof Object)
67                                 obj[prop] = this.replaceRecursive(obj[prop], search, replace); 
68                 }
69                 return obj;
70         }
71 }