wacom 14.2.2 → 14.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +197 -197
- package/esm2020/lib/components/alert/alert.component.mjs +3 -3
- package/esm2020/lib/components/alert/wrapper/wrapper.component.mjs +3 -3
- package/esm2020/lib/components/files/files.component.mjs +3 -3
- package/esm2020/lib/components/loader/loader.component.mjs +3 -3
- package/esm2020/lib/components/modal/modal.component.mjs +3 -3
- package/esm2020/lib/directives/click-outside.directive.mjs +1 -1
- package/esm2020/lib/guard/meta.guard.mjs +1 -1
- package/esm2020/lib/interfaces/alert.interface.mjs +1 -1
- package/esm2020/lib/interfaces/config.mjs +4 -2
- package/esm2020/lib/interfaces/modal.interface.mjs +1 -1
- package/esm2020/lib/pipes/arr.pipe.mjs +1 -1
- package/esm2020/lib/pipes/mongodate.pipe.mjs +1 -1
- package/esm2020/lib/pipes/pagination.pipe.mjs +1 -1
- package/esm2020/lib/pipes/safe.pipe.mjs +1 -1
- package/esm2020/lib/pipes/search.pipe.mjs +1 -1
- package/esm2020/lib/pipes/splice.pipe.mjs +1 -1
- package/esm2020/lib/services/alert.service.mjs +1 -1
- package/esm2020/lib/services/base.service.mjs +1 -1
- package/esm2020/lib/services/core.service.mjs +1 -1
- package/esm2020/lib/services/crud.service.mjs +1 -1
- package/esm2020/lib/services/dom.service.mjs +1 -1
- package/esm2020/lib/services/file.service.mjs +1 -1
- package/esm2020/lib/services/hash.service.mjs +1 -1
- package/esm2020/lib/services/http.service.mjs +21 -6
- package/esm2020/lib/services/loader.service.mjs +1 -1
- package/esm2020/lib/services/meta.service.mjs +4 -4
- package/esm2020/lib/services/modal.service.mjs +1 -1
- package/esm2020/lib/services/mongo.service.mjs +1 -1
- package/esm2020/lib/services/render.service.mjs +1 -1
- package/esm2020/lib/services/socket.service.mjs +1 -1
- package/esm2020/lib/services/store.service.mjs +10 -2
- package/esm2020/lib/services/time.service.mjs +1 -1
- package/esm2020/lib/services/ui.service.mjs +1 -1
- package/esm2020/lib/wacom.module.mjs +1 -1
- package/esm2020/public-api.mjs +1 -1
- package/fesm2015/wacom.mjs +48 -20
- package/fesm2015/wacom.mjs.map +1 -1
- package/fesm2020/wacom.mjs +45 -20
- package/fesm2020/wacom.mjs.map +1 -1
- package/lib/interfaces/config.d.ts +1 -0
- package/package.json +1 -2
- package/src/lib/components/alert/README.md +34 -34
- package/src/lib/components/loader/README.md +34 -34
package/fesm2020/wacom.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wacom.mjs","sources":["../../../projects/wacom/src/lib/interfaces/config.ts","../../../projects/wacom/src/lib/interfaces/alert.interface.ts","../../../projects/wacom/src/lib/services/core.service.ts","../../../projects/wacom/src/lib/services/meta.service.ts","../../../projects/wacom/src/lib/guard/meta.guard.ts","../../../projects/wacom/src/lib/components/alert/alert.component.ts","../../../projects/wacom/src/lib/components/alert/alert.component.html","../../../projects/wacom/src/lib/components/modal/modal.component.ts","../../../projects/wacom/src/lib/components/modal/modal.component.html","../../../projects/wacom/src/lib/components/loader/loader.component.ts","../../../projects/wacom/src/lib/components/loader/loader.component.html","../../../projects/wacom/src/lib/directives/click-outside.directive.ts","../../../projects/wacom/src/lib/pipes/arr.pipe.ts","../../../projects/wacom/src/lib/pipes/mongodate.pipe.ts","../../../projects/wacom/src/lib/pipes/pagination.pipe.ts","../../../projects/wacom/src/lib/pipes/safe.pipe.ts","../../../projects/wacom/src/lib/pipes/search.pipe.ts","../../../projects/wacom/src/lib/pipes/splice.pipe.ts","../../../projects/wacom/src/lib/services/base.service.ts","../../../projects/wacom/src/lib/services/store.service.ts","../../../projects/wacom/src/lib/services/http.service.ts","../../../projects/wacom/src/lib/services/crud.service.ts","../../../projects/wacom/src/lib/services/mongo.service.ts","../../../projects/wacom/src/lib/services/render.service.ts","../../../projects/wacom/src/lib/services/hash.service.ts","../../../projects/wacom/src/lib/services/dom.service.ts","../../../projects/wacom/src/lib/components/alert/wrapper/wrapper.component.ts","../../../projects/wacom/src/lib/components/alert/wrapper/wrapper.component.html","../../../projects/wacom/src/lib/services/alert.service.ts","../../../projects/wacom/src/lib/services/loader.service.ts","../../../projects/wacom/src/lib/services/socket.service.ts","../../../projects/wacom/src/lib/services/modal.service.ts","../../../projects/wacom/src/lib/components/files/files.component.ts","../../../projects/wacom/src/lib/components/files/files.component.html","../../../projects/wacom/src/lib/services/file.service.ts","../../../projects/wacom/src/lib/services/ui.service.ts","../../../projects/wacom/src/lib/services/time.service.ts","../../../projects/wacom/src/lib/wacom.module.ts","../../../projects/wacom/src/public-api.ts","../../../projects/wacom/src/wacom.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nexport interface Any {\r\n\t[key: string]: string;\r\n}\r\nexport interface Config {\r\n\tmeta?: {\r\n\t\tuseTitleSuffix?: boolean;\r\n\t\twarnMissingGuard?: boolean;\r\n\t\tdefaults?: {\r\n\t\t\ttitle?: string;\r\n\t\t\ttitleSuffix?: string;\r\n\t\t} & { [key: string]: string | undefined; };\r\n\t};\r\n\talert?: {\r\n\t\talerts?:object;\r\n\t\ttext?:string;\r\n\t\ttype?: string;\r\n\t\ticon?: string;\r\n\t\tclass?: string;\r\n\t\tunique?: string;\r\n\t\tprogress?: boolean;\r\n\t\tposition?: string;\r\n\t\ttimeout?: number;\r\n\t\tclose?: any;\r\n\t\tbuttons?: any;\r\n\t};\r\n\tmodal?: {\r\n\t\tsize?: any;\r\n\t\ttimeout?: any;\r\n\t\ttimestart?: any;\r\n\t\tclass?:string;\r\n\t\tmodals?:object;\r\n\t\tposition?: string;\r\n\t\tclosable?: boolean;\r\n\t\tunique?: string;\r\n\t};\r\n\tpopup?: {\r\n\t\tpopups?: object;\r\n\t};\r\n\tloader?: {\r\n\t\tloaders?: object;\r\n\t};\r\n\tsocket?: any;\r\n\thttp?: {\r\n\t\theaders?: any;\r\n\t\treplace?: any;\r\n\t\terr?: any;\r\n\t\turl?: string;\r\n\t},\r\n\tstore?: {\r\n\t\tset?: (\r\n\t\t\thold: any,\r\n\t\t\tvalue: any,\r\n\t\t\tcb: ()=>void,\r\n\t\t\terrCb: () => void\r\n\t\t) => void,\r\n\t\tget?: (\r\n\t\t\thold: any,\r\n\t\t\tcb: (value: string)=>void,\r\n\t\t\terrCb: () => void\r\n\t\t) => void,\r\n\t\tremove?: (\r\n\t\t\thold: any,\r\n\t\t\tcb: ()=>void,\r\n\t\t\terrCb: () => void\r\n\t\t) => void,\r\n\t\tclear?: (\r\n\t\t\tcb: ()=>void,\r\n\t\t\terrCb: () => void\r\n\t\t) => void\r\n\t}\r\n}\r\nexport const CONFIG_TOKEN = new InjectionToken<Config>('config');\r\nexport const DEFAULT_CONFIG: Config = {\r\n\tmeta: {\r\n\t\tuseTitleSuffix: false,\r\n\t\twarnMissingGuard: true,\r\n\t\tdefaults: {}\r\n\t},\r\n\tsocket: false,\r\n\thttp: {\r\n\t\turl: '',\r\n\t\theaders: {}\r\n\t},\r\n\tstore: {}\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface Alert {\r\n\tonClose?: any;\r\n\talerts?:object;\r\n\tcomponent?: any;\r\n\ttext?:string;\r\n\ticon?:string;\r\n\ttype?: string;\r\n\tclass?: string;\r\n\tunique?: string;\r\n\tprogress?: boolean;\r\n\tposition?: string;\r\n\ttimeout?: any;\r\n\tclosable?: boolean;\r\n\tclose?: any;\r\n\tbuttons?: any;\r\n\t[x: string]: any;\r\n}\r\nexport const DEFAULT_Alert: Alert = {\r\n\talerts: {},\r\n\ttext: '',\r\n\ttype: 'info',\r\n\tclass: '',\r\n\tprogress: true,\r\n\tposition: 'bottomRight',\r\n\ttimeout: 5000,\r\n\tclosable: true,\r\n\tbuttons: []\r\n}\r\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\r\n\r\nimport { isPlatformServer } from '@angular/common';\r\n\r\ndeclare var cordova:any;\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class CoreService {\r\n\tssr = isPlatformServer(this.platformId);\r\n\r\n\tlocalStorage:any; // = localStorage;\r\n\r\n\tdocument:any; // = document;\r\n\r\n\twindow:any; // = window;\r\n\r\n\tnavigator:any; // = navigator;\r\n\r\n\tconstructor(@Inject(PLATFORM_ID) private platformId:boolean) {\r\n\t\tif(isPlatformServer(this.platformId)){\r\n\t\t\tthis.localStorage = {\r\n\t\t\t\tgetItem:()=>{},\r\n\t\t\t\tsetItem:()=>{},\r\n\t\t\t\tremoveItem:()=>{},\r\n\t\t\t\tclear:()=>{}\r\n\t\t\t};\r\n\r\n\t\t\tthis.document = {\r\n\t\t\t\tquerySelectorAll: ()=>{},\r\n\t\t\t\taddEventListener: ()=>{},\r\n\t\t\t\tremoveEventListener: ()=>{},\r\n\t\t\t\tdocumentElement: {},\r\n\t\t\t\tbody: {},\r\n\t\t\t};\r\n\r\n\t\t\tthis.window = {\r\n\t\t\t\tlocation: {\r\n\t\t\t\t\thost: ''\r\n\t\t\t\t},\r\n\t\t\t\taddEventListener: ()=>{},\r\n\t\t\t\tremoveEventListener: ()=>{},\r\n\t\t\t\tsetTimeout: ()=>{}\r\n\t\t\t};;\r\n\r\n\t\t\tthis.navigator = {\r\n\t\t\t\tuserAgent: '',\r\n\t\t\t\tplatform: ''\r\n\t\t\t};\r\n\t\t}else{\r\n\t\t\tthis.localStorage = localStorage;\r\n\r\n\t\t\tthis.document = document;\r\n\r\n\t\t\tthis.window = window;\r\n\r\n\t\t\tthis.navigator = navigator;\r\n\t\t}\r\n\r\n\t\tthis.host = this.window.location.host.toLowerCase();\r\n\r\n\t\tconst userAgent = this.navigator.userAgent || this.navigator.vendor || this.window.opera;\r\n\r\n\t\tif (/windows phone/i.test(userAgent)) {\r\n\t\t\tthis.device = \"windows\";\r\n\t\t} else if (/android/i.test(userAgent)) {\r\n\t\t\tthis.device = \"android\";\r\n\t\t} else if (this.ios()) {\r\n\t\t\tthis.device = \"ios\";\r\n\t\t} else {\r\n\t\t\tthis.device = \"web\";\r\n\t\t}\r\n\r\n\t\tthis.set_version();\r\n\t}\r\n\r\n\thost:any;\r\n\r\n\tdevice:any;\r\n\r\n\tversion:any;\r\n\r\n\tset_version(version='1.0.0') {\r\n\t\tthis.version = version;\r\n\r\n\t\tthis.document.addEventListener('deviceready', () => {\r\n\t\t\tthis.done('mobile');\r\n\r\n\t\t\tif (cordova.getAppVersion) {\r\n\t\t\t\tcordova.getAppVersion.getVersionNumber((version:string)=>{\r\n\t\t\t\t\tthis.version = version;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tios() {\r\n\t\treturn [\r\n\t\t\t'iPad Simulator',\r\n\t\t\t'iPhone Simulator',\r\n\t\t\t'iPod Simulator',\r\n\t\t\t'iPad',\r\n\t\t\t'iPhone',\r\n\t\t\t'iPod'\r\n\t\t].includes(this.navigator.platform)\r\n\t\t// iPad on iOS 13 detection\r\n\t\t|| (this.navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n\t}\r\n\t/*\r\n\t*\tPipes\r\n\t*/\r\n\t\tota(obj: any, holder?:boolean): any {\r\n\t\t\tif (Array.isArray(obj)) return obj;\r\n\r\n\t\t\tif (typeof obj != 'object') return [];\r\n\r\n\t\t\tlet arr = [];\r\n\r\n\t\t\tfor (const each in obj) {\r\n\t\t\t\tif (obj[each]){\r\n\t\t\t\t\tif (holder) {\r\n\t\t\t\t\t\tarr.push(each);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tarr.push(obj[each]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn arr;\r\n\t\t}\r\n\t/*\r\n\t*\tSupportive\r\n\t*/\r\n\t\tids2id(...args:any[]) {\r\n\t\t\targs.sort( (a, b) => {\r\n\t\t\t\tif (Number(a.toString().substring(0, 8)) > Number(b.toString().substring(0, 8))){\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\r\n\t\t\t\treturn -1;\r\n\t\t\t});\r\n\r\n\t\t\treturn args.join();\r\n\t\t}\r\n\r\n\t\tparallel(arr: any[], callback:()=>void){\r\n\t\t\tlet counter = arr.length;\r\n\r\n\t\t\tif(counter===0) return callback();\r\n\r\n\t\t\tfor (let i = 0; i < arr.length; i++) {\r\n\t\t\t\tarr[i](function(){\r\n\t\t\t\t\tif(--counter===0) callback();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate serial_process(i:number, arr:any[], callback:()=>void){\r\n\t\t\tif(i>=arr.length) return callback();\r\n\r\n\t\t\tarr[i](()=>{\r\n\t\t\t\tthis.serial_process(++i, arr, callback);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tserial(arr:any[], callback:()=>void){\r\n\t\t\tthis.serial_process(0, arr, callback);\r\n\t\t}\r\n\r\n\t\teach(arrOrObj:any, func:any, callback:()=>void, isSerial=false){\r\n\t\t\tif(typeof callback == 'boolean'){\r\n\t\t\t\tisSerial = callback;\r\n\r\n\t\t\t\tcallback = ()=>{};\r\n\t\t\t}\r\n\r\n\t\t\tif (Array.isArray(arrOrObj)) {\r\n\t\t\t\tlet counter = arrOrObj.length;\r\n\t\t\t\tif(counter===0) return callback();\r\n\t\t\t\tif(isSerial){\r\n\t\t\t\t\tlet serialArr = [];\r\n\t\t\t\t\tfor (let i = 0; i < arrOrObj.length; i++) {\r\n\t\t\t\t\t\tserialArr.push(function(next:()=>void){\r\n\t\t\t\t\t\t\tfunc(arrOrObj[i], function(){\r\n\t\t\t\t\t\t\t\tif(--counter===0) callback();\r\n\t\t\t\t\t\t\t\telse next();\r\n\t\t\t\t\t\t\t}, i);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.serial_process(0, serialArr, callback);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tfor (let i = 0; i < arrOrObj.length; i++) {\r\n\t\t\t\t\t\tfunc(arrOrObj[i], function(){\r\n\t\t\t\t\t\t\tif(--counter===0) callback();\r\n\t\t\t\t\t\t}, i);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if(typeof arrOrObj == 'object') {\r\n\t\t\t\tif (isSerial) {\r\n\t\t\t\t\tlet serialArr = [];\r\n\t\t\t\t\tlet arr:any = [];\r\n\t\t\t\t\tfor(let each in arrOrObj){\r\n\t\t\t\t\t\tarr.push({\r\n\t\t\t\t\t\t\tvalue: arrOrObj[each],\r\n\t\t\t\t\t\t\teach: each\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet counter = arr.length;\r\n\t\t\t\t\tfor (let i = 0; i < arr.length; i++) {\r\n\t\t\t\t\t\tserialArr.push(function(next:()=>void){\r\n\t\t\t\t\t\t\tfunc(arr[i].each, arr[i].value, function(){\r\n\t\t\t\t\t\t\t\tif(--counter===0) callback();\r\n\t\t\t\t\t\t\t\telse next();\r\n\t\t\t\t\t\t\t}, i);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.serial_process(0, serialArr, callback);\r\n\t\t\t\t} else{\r\n\t\t\t\t\tlet counter = 1;\r\n\t\t\t\t\tfor(let each in arrOrObj){\r\n\t\t\t\t\t\tcounter++;\r\n\t\t\t\t\t\tfunc(each, arrOrObj[each], function(){\r\n\t\t\t\t\t\t\tif(--counter===0) callback();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(--counter===0) callback();\r\n\t\t\t\t}\r\n\t\t\t} else callback();\r\n\t\t}\r\n\r\n\t\tprivate _afterWhile:any = {};\r\n\r\n\t\tafterWhile(doc:any, cb:()=>void, time=1000){\r\n\t\t\tif(typeof doc == 'function'){\r\n\t\t\t\tcb = doc;\r\n\r\n\t\t\t\tdoc = 'common';\r\n\t\t\t}\r\n\r\n\t\t\tif(typeof doc == 'string'){\r\n\t\t\t\tif(!this._afterWhile[doc]) this._afterWhile[doc]={};\r\n\r\n\t\t\t\tdoc = this._afterWhile[doc];\r\n\t\t\t}\r\n\r\n\t\t\tif(typeof cb == 'function' && typeof time == 'number'){\r\n\t\t\t\tclearTimeout(doc.__updateTimeout);\r\n\r\n\t\t\t\tdoc.__updateTimeout = setTimeout(cb, time);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Signal\r\n\t\tprivate cb:any = {};\r\n\r\n\t\temit(signal:string, doc:any={}){\r\n\t\t\tif (!this.cb[signal]) {\r\n\t\t\t\tthis.cb[signal] = {};\r\n\t\t\t}\r\n\r\n\t\t\tfor (let each in this.cb[signal]){\r\n\t\t\t\tif(typeof this.cb[signal][each] == 'function'){\r\n\t\t\t\t\tthis.cb[signal][each](doc);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate _ids:any = {};\r\n\r\n\t\ton(signal:string, cb:any):any {\r\n\t\t\tif (typeof cb !== 'function') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet id = Math.floor(Math.random() * Date.now()) + 1;\r\n\r\n\t\t\tif (this._ids[id]) {\r\n\t\t\t\treturn this.on(signal, cb);\r\n\t\t\t}\r\n\r\n\t\t\tthis._ids[id]=true;\r\n\r\n\t\t\tif (!this.cb[signal]) {\r\n\t\t\t\tthis.cb[signal] = {};\r\n\t\t\t}\r\n\r\n\t\t\tthis.cb[signal][id] = cb;\r\n\r\n\t\t\treturn ()=>{\r\n\t\t\t\tthis.cb[signal][id] = null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// On Done\r\n\t\tprivate done_next:any = {};\r\n\r\n\t\tdone(signal:string, doc:any = true) {\r\n\t\t\tthis.done_next[signal] = doc;\r\n\t\t};\r\n\r\n\t\tready(signal:string){\r\n\t\t\treturn this.done_next[signal];\r\n\t\t};\r\n\r\n\t\tnext(signal:string, cb:(message:any)=>void) {\r\n\t\t\tif (this.done_next[signal]) cb(this.done_next[signal]);\r\n\t\t\telse {\r\n\t\t\t\tsetTimeout(()=>{\r\n\t\t\t\t\tthis.next(signal, cb);\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tprivate locked:any = {};\r\n\r\n\t\tlock(which:any, func:any){\r\n\t\t\tif (typeof which === 'object' && which.__locked) {\r\n\t\t\t\treturn;\r\n\t\t\t} else if(this.locked[which]) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof which === 'object') {\r\n\t\t\t\twhich.__locked = true;\r\n\t\t\t} else {\r\n\t\t\t\tthis.locked[which] = true;\r\n\t\t\t}\r\n\r\n\t\t\tfunc(()=>{\r\n\t\t\t\tif (typeof which === 'object') {\r\n\t\t\t\t\twhich.__locked = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.locked[which] = false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tcopy(from:any, to:any) {\r\n\t\t\tfor(const each in from) {\r\n\t\t\t\tif (\r\n\t\t\t\t\tArray.isArray(from[each]) ||\r\n\t\t\t\t\ttypeof from[each] !== 'object'\r\n\t\t\t\t) {\r\n\t\t\t\t\tto[each] = from[each];\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.copy(from[each], to[each]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t/* End of Core*/\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { Title, Meta } from '@angular/platform-browser';\r\nimport { Router, ActivatedRoute, Route } from '@angular/router';\r\nimport { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from '../interfaces/config';\r\nimport { CoreService } from './core.service';\r\nconst isDefined = (val: any) => typeof val !== 'undefined';\r\n\r\n@Injectable()\r\nexport class MetaService {\r\n\tprivate _meta: any;\r\n\tpublic constructor(private router: Router, private meta: Meta, private core: CoreService,\r\n\t\tprivate titleService: Title, private activatedRoute: ActivatedRoute,\r\n\t\t@Inject(CONFIG_TOKEN) @Optional() private config: Config) {\r\n\t\tthis._meta = config.meta\r\n\t\tif(!this.config) this.config = DEFAULT_CONFIG;\r\n\t\tthis._warnMissingGuard();\r\n\t}\r\n\tpublic setTitle(title?: string, titleSuffix?: string): MetaService {\r\n\t\tlet titleContent = isDefined(title) ? title : (this._meta.defaults['title'] || '');\r\n\t\tif (this._meta.useTitleSuffix) {\r\n\t\t\ttitleContent += isDefined(titleSuffix) ? titleSuffix : (this._meta.defaults['titleSuffix'] || '');\r\n\t\t}\r\n\t\tthis._updateMetaTag('title', titleContent);\r\n\t\tthis._updateMetaTag('og:title', titleContent);\r\n\t\tthis.titleService.setTitle(titleContent);\r\n\t\treturn this;\r\n\t}\r\n\tpublic setLink(obj:any): MetaService {\r\n\t\tfor (let key in obj){\r\n\t\t let link: HTMLLinkElement = this.core.document.createElement('link');\r\n\t\t\tlink.setAttribute('rel', key);\r\n\t\t\tthis.core.document.head.appendChild(link);\r\n\t\t\tlink.setAttribute('href', obj[key]);\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\tpublic setTag(tag: string, value:string, prop?: string): MetaService {\r\n\t\tif (tag === 'title' || tag === 'titleSuffix') {\r\n\t\t\tthrow new Error(`Attempt to set ${tag} through 'setTag': 'title' and 'titleSuffix' are reserved tag names.\r\n\t\t\t\tPlease use 'MetaService.setTitle' instead`);\r\n\t\t}\r\n\t\tlet content = isDefined(value) ? value : (this._meta.defaults[tag] || '');\r\n\t\tthis._updateMetaTag(tag, content, prop);\r\n\t\tif (tag === 'description') {\r\n\t\t\tthis._updateMetaTag('og:description', content, prop);\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\tprivate _updateMetaTag(tag: string, value: string, prop?: string) {\r\n\t\tif(!prop) prop='name';\r\n\t\tif (tag.startsWith(`og:`)) {\r\n\t\t\tprop = 'property';\r\n\t\t}\r\n\r\n\t\tthis.meta.updateTag({\r\n\t\t\t[prop]: tag,\r\n\t\t\tcontent: value\r\n\t\t});\r\n\t}\r\n\tprivate _warnMissingGuard() {\r\n\t\tif (isDefined(this._meta.warnMissingGuard) && !this._meta.warnMissingGuard) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst hasDefaultMeta = !!Object.keys(this._meta.defaults).length;\r\n\t\tconst hasMetaGuardInArr = (it: any) => (it && it.IDENTIFIER === 'MetaGuard');\r\n\t\tlet hasShownWarnings = false;\r\n\t\tthis.router.config.forEach((route: Route) => {\r\n\t\t\tconst hasRouteMeta = route.data && route.data['meta'];\r\n\t\t\tconst showWarning = !isDefined(route.redirectTo)\r\n\t\t\t&& (hasDefaultMeta || hasRouteMeta)\r\n\t\t\t&& !(route.canActivate || []).some(hasMetaGuardInArr);\r\n\r\n\t\t\tif (showWarning) {\r\n\t\t\t\tconsole.warn(`Route with path \"${route.path}\" has ${hasRouteMeta ? '' : 'default '}meta tags, but does not use MetaGuard. \\\r\n\t\t\t\t\tPlease add MetaGuard to the canActivate array in your route configuration`);\r\n\t\t\t\thasShownWarnings = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (hasShownWarnings) {\r\n\t\t\tconsole.warn(`To disable these warnings, set metaConfig.warnMissingGuard: false \\\r\n\t\t\t\tin your ng2-meta MetaConfig passed to MetaModule.forRoot()`);\r\n\t\t}\r\n\t}\r\n}","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot } from '@angular/router';\r\nimport { MetaService } from '../services/meta.service';\r\nimport { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from '../interfaces/config';\r\n\r\n@Injectable()\r\nexport class MetaGuard implements CanActivate {\r\n\tpublic static IDENTIFIER = 'MetaGuard';\r\n\tprivate _meta: any ;\r\n\tpublic constructor(private metaService: MetaService,\r\n\t\t@Inject(CONFIG_TOKEN) @Optional() private config: Config) {\r\n\t\tthis._meta = config.meta;\r\n\t\tif(!this.config) this.config = DEFAULT_CONFIG;\r\n\t}\r\n\tpublic canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n\t\tthis._processRouteMetaTags(route.data && route.data['meta']);\r\n\t\treturn true;\r\n\t}\r\n\tprivate _processRouteMetaTags(meta: any = {}) {\r\n\t\tif (meta.disableUpdate) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.metaService.setTitle(meta.title, meta.titleSuffix);\r\n\t\tthis.metaService.setLink(meta.link);\r\n\t\tObject.keys(meta).forEach(prop => {\r\n\t\t\tif (prop === 'title' || prop === 'titleSuffix'|| prop === 'link') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tObject.keys(meta[prop]).forEach(key => {\r\n\t\t\t\tthis.metaService.setTag(key, meta[prop][key], prop);\r\n\t\t\t});\r\n\t\t});\r\n\t\tObject.keys(this._meta.defaults).forEach(key => {\r\n\t\t\tif (key in meta || key === 'title' || key === 'titleSuffix' || key === 'link') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.metaService.setTag(key, this._meta.defaults[key]);\r\n\t\t});\r\n\t}\r\n}\r\n","import { Component, ElementRef, ViewChild} from '@angular/core';\r\nimport { CoreService } from '../../services/core.service';\r\n\r\n@Component({\r\n\tselector: 'alert',\r\n\ttemplateUrl: './alert.component.html',\r\n\tstyleUrls: ['./alert.component.scss']\r\n})\r\n\r\nexport class AlertComponent {\r\n\t@ViewChild('alert', {static:false}) alert:any;\r\n\tpublic component: any;\r\n\tpublic text: string = \"\";\r\n\tpublic class: string = \"\";\r\n\tpublic type: string = \"info\";\r\n\tpublic progress: boolean = true;\r\n\tpublic position: string = 'bottomRight'; // [bottomRight, bottomLeft, topRight, topLeft, topCenter, bottomCenter or center]\r\n\tpublic icon: string = '';\r\n\tpublic timeout: any = 5000;\r\n\tpublic close: any;\r\n\tpublic closable: any = true;\r\n\tpublic buttons: any = []; /*[{text, callback}]*/\r\n\r\n\tconstructor(private elementRef: ElementRef, public core: CoreService) {\r\n\t\tsetTimeout(()=>{\r\n\t\t\tif(this.timeout){\r\n\t\t\t\tlet remaining=JSON.parse(JSON.stringify(this.timeout));\r\n\t\t\t\tlet timer=setTimeout(()=>{this.remove()}, remaining);\r\n\t\t\t\tlet start = new Date();\r\n\t\t\t\tthis.alert.nativeElement.addEventListener(\"mouseenter\", ()=>{\r\n\t\t\t\t\tclearTimeout(timer);\r\n\t\t\t\t\tremaining -= new Date().getTime() - start.getTime();\r\n\t\t\t\t}, false);\r\n\t\t\t\tthis.alert.nativeElement.addEventListener(\"mouseleave\", ()=>{\r\n\t\t\t\t\tstart = new Date();\r\n\t\t\t\t\tclearTimeout(timer);\r\n\t\t\t\t\ttimer = core.window.setTimeout(()=>{this.remove()}, remaining);\r\n\t\t\t\t}, false);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tpublic delete_animation=false;\r\n\tremove(){\r\n\t\tthis.delete_animation=true;\r\n\t\tsetTimeout(()=>{\r\n\t\t\tthis.close();\r\n\t\t\tthis.delete_animation=false;\r\n\t\t},350);\r\n\r\n\t}\r\n}\r\n","<div [ngClass]=\"class\" class=\"waw-alert-container height\" [class._close]=\"delete_animation\">\r\n\t<div [class.waw-alert-color-blue]=\"type=='info'\" [class.waw-alert-color-red]=\"type=='error'\" [class.waw-alert-color-green]=\"type=='success'\" [class.waw-alert-color-orange]=\"type=='warning'\" [class.waw-alert-color-yellow]=\"type=='question'\" class=\"waw-alert bounceInUp waw-alert-theme-light waw-alert-animateInside waw-alert-opened\" #alert>\r\n\t\t<div class=\"waw-alert__progress\" *ngIf=\"progress\"><span [ngStyle]=\"{'animation-duration': (timeout+350)/1000+'s'}\"></span></div>\r\n\t\t<div class=\"waw-alert-body\">\r\n\t\t\t<div *ngIf=\"!component\" class=\"waw-alert-texts\">\r\n\t\t\t\t<div *ngIf=\"icon\" class=\"{{icon}}\"></div>\r\n\t\t\t\t<div class=\"waw-alert-message slideIn\">{{text}}</div>\r\n\t\t\t</div>\r\n\t\t\t<div *ngIf=\"!component&&type=='question'\">\r\n\t\t\t\t<button class=\"alert-btn\" *ngFor=\"let b of buttons\" (click)=\"remove(); b.callback&&b.callback();\">{{b.text}}</button>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"waw-alert__close\" *ngIf=\"closable\" (click)=\"remove()\"></div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n\tselector: 'lib-modal',\r\n\ttemplateUrl: './modal.component.html',\r\n\tstyleUrls: ['./modal.component.scss']\r\n})\r\nexport class ModalComponent implements OnInit{\r\n\tpublic class: string = \"\";\r\n\tpublic size: string = \"flex\";\r\n\tpublic closable:boolean = true;\r\n\tpublic close:any;\r\n\tpublic onOpen:any;\r\n\tpublic onClickOutside:any;\r\n\tpublic timestart:any;\r\n\tpublic timeout:any;\r\n\r\n\tpublic showModal=false;\r\n\tconstructor(){\r\n\r\n\t}\r\n\tngOnInit(){\r\n\t\tif(typeof this.onClickOutside != 'function'){\r\n\t\t\tthis.onClickOutside = this.close;\r\n\t\t}\r\n\t\tif(typeof this.onOpen == 'function') this.onOpen();\r\n\t}\r\n\tngAfterViewInit(){\r\n\t\tsetTimeout(()=>{\r\n\t\t\tthis.showModal=true;\r\n\t\t}, this.timestart||0);\r\n\t}\r\n}\r\n","<div [hidden]=\"!showModal\" class=\"modal\" [ngClass]=\"class+' '+size\" (click)=\"onClickOutside();\">\r\n\t<div class=\"modal-content\" (click)=\"$event.stopPropagation();\">\r\n\t\t<div><!-- Content Will Drop Here --></div>\r\n\t\t<span class=\"close\" (click)=\"close()\" *ngIf=\"closable\">×</span>\r\n\t</div>\r\n</div>","import { Component, ViewChild} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.scss']\r\n})\r\n\r\nexport class LoaderComponent {\r\n @ViewChild('loader', { static: false }) loader: any;\r\n public text: string = \"Loading\";\r\n public class: string = \"\";\r\n public progress: boolean = true;\r\n public timeout: number = 5000;\r\n public close: any;\r\n public closable: any = true;\r\n constructor() { }\r\n ngOnInit(){\r\n if(this.timeout){\r\n setTimeout(()=>{\r\n this.close();\r\n }, this.timeout)\r\n }\r\n }\r\n}\r\n","<div style=\"position: fixed; width: 100%; height: 100%; left: 0; top: 0; background-color: #334d6e; display: flex; justify-content: center; align-items: center; z-index: 999999;\" #loader>\r\n\t<span class=\"close\" (click)=\"close()\" *ngIf=\"closable\">×</span>\r\n\t<span style=\"font-size: 30px; color: white;\">\r\n\t\t{{text}}\r\n\t</span>\r\n</div>","import {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Injectable,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n PLATFORM_ID,\r\n SimpleChanges,\r\n NgZone,\r\n} from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { CoreService } from '../services/core.service';\r\n\r\n@Injectable()\r\n@Directive({ selector: '[clickOutside]' })\r\nexport class ClickOutsideDirective implements OnInit, OnChanges, OnDestroy {\r\n\r\n @Input() clickOutsideEnabled: boolean = true;\r\n\r\n @Input() attachOutsideOnClick: boolean = false;\r\n @Input() delayClickOutsideInit: boolean = false;\r\n @Input() emitOnBlur: boolean = false;\r\n\r\n @Input() exclude: string = '';\r\n @Input() excludeBeforeClick: boolean = false;\r\n\r\n @Input() clickOutsideEvents: string = '';\r\n\r\n @Output() clickOutside: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n private _nodesExcluded: Array<HTMLElement> = [];\r\n private _events: Array<string> = ['click'];\r\n\r\n constructor(\r\n private _el: ElementRef,\r\n private _ngZone: NgZone,\r\n public core: CoreService,\r\n @Inject(PLATFORM_ID) private platformId: Object) {\r\n this._initOnClickBody = this._initOnClickBody.bind(this);\r\n this._onClickBody = this._onClickBody.bind(this);\r\n this._onWindowBlur = this._onWindowBlur.bind(this);\r\n }\r\n\r\n ngOnInit() {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n this._init();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n this._removeClickOutsideListener();\r\n this._removeAttachOutsideOnClickListener();\r\n this._removeWindowBlurListener();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {\r\n this._init();\r\n }\r\n }\r\n\r\n private _init() {\r\n if (this.clickOutsideEvents !== '') {\r\n this._events = this.clickOutsideEvents.split(',').map(e => e.trim());\r\n }\r\n\r\n this._excludeCheck();\r\n\r\n if (this.attachOutsideOnClick) {\r\n this._initAttachOutsideOnClickListener();\r\n } else {\r\n this._initOnClickBody();\r\n }\r\n\r\n if (this.emitOnBlur) {\r\n this._initWindowBlurListener();\r\n }\r\n }\r\n\r\n private _initOnClickBody() {\r\n if (this.delayClickOutsideInit) {\r\n setTimeout(this._initClickOutsideListener.bind(this));\r\n } else {\r\n this._initClickOutsideListener();\r\n }\r\n }\r\n\r\n private _excludeCheck() {\r\n if (this.exclude) {\r\n try {\r\n const nodes = Array.from(this.core.document.querySelectorAll(this.exclude)) as Array<HTMLElement>;\r\n if (nodes) {\r\n this._nodesExcluded = nodes;\r\n }\r\n } catch (err) {\r\n console.error('[ng-click-outside] Check your exclude selector syntax.', err);\r\n }\r\n }\r\n }\r\n\r\n private _onClickBody(ev: Event) {\r\n if (!this.clickOutsideEnabled) { return; }\r\n\r\n if (this.excludeBeforeClick) {\r\n this._excludeCheck();\r\n }\r\n\r\n if (!this._el.nativeElement.contains(ev.target) && !this._shouldExclude(ev.target)) {\r\n this._emit(ev);\r\n\r\n if (this.attachOutsideOnClick) {\r\n this._removeClickOutsideListener();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Resolves problem with outside click on iframe\r\n * @see https://github.com/arkon/ng-click-outside/issues/32\r\n */\r\n private _onWindowBlur(ev: Event) {\r\n setTimeout(() => {\r\n if (!this.core.document.hidden) {\r\n this._emit(ev);\r\n }\r\n });\r\n }\r\n\r\n private _emit(ev: Event) {\r\n if (!this.clickOutsideEnabled) { return; }\r\n\r\n this._ngZone.run(() => this.clickOutside.emit(ev));\r\n }\r\n\r\n private _shouldExclude(target: any): boolean {\r\n for (let excludedNode of this._nodesExcluded) {\r\n if (excludedNode.contains(target)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _initClickOutsideListener() {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => this.core.document.addEventListener(e, this._onClickBody));\r\n });\r\n }\r\n\r\n private _removeClickOutsideListener() {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => this.core.document.removeEventListener(e, this._onClickBody));\r\n });\r\n }\r\n\r\n private _initAttachOutsideOnClickListener() {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => this._el.nativeElement.addEventListener(e, this._initOnClickBody));\r\n });\r\n }\r\n\r\n private _removeAttachOutsideOnClickListener() {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => this._el.nativeElement.removeEventListener(e, this._initOnClickBody));\r\n });\r\n }\r\n\r\n private _initWindowBlurListener() {\r\n this._ngZone.runOutsideAngular(() => {\r\n this.core.window.addEventListener('blur', this._onWindowBlur);\r\n });\r\n }\r\n\r\n private _removeWindowBlurListener() {\r\n this._ngZone.runOutsideAngular(() => {\r\n this.core.window.removeEventListener('blur', this._onWindowBlur);\r\n });\r\n }\r\n\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'arr'\r\n})\r\nexport class ArrPipe implements PipeTransform {\r\n\ttransform(data: any, type?: any, refresh?:any): any {\r\n\t\tif(!data) { return []; }\r\n\t\tif(typeof data == 'string') return data.split(type||' ');\r\n\t\tif(Array.isArray(data)) { return data; }\r\n\t\tif(typeof data != 'object') { return []; }\r\n\t\tlet arr = [];\r\n\t\tfor (let each in data) {\r\n\t\t\tif(!data[each]) continue;\r\n\t\t\tif(type == 'prop'){\r\n\t\t\t\tarr.push(each);\r\n\t\t\t}else if(type == 'value'){\r\n\t\t\t\tarr.push(data[each]);\r\n\t\t\t}else{\r\n\t\t\t\tarr.push({\r\n\t\t\t\t\tprop: each,\r\n\t\t\t\t\tvalue: data[each]\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn arr;\r\n\t}\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'mongodate'\r\n})\r\nexport class MongodatePipe implements PipeTransform {\r\n\ttransform(_id: any){\r\n\t\tif(!_id) return new Date();\r\n\t\tlet timestamp = _id.toString().substring(0,8);\r\n\t\treturn new Date(parseInt(timestamp,16)*1000);\r\n\t}\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'page',\r\n\tpure: false\r\n})\r\nexport class PaginationPipe implements PipeTransform {\r\n\ttransform(arr: any, config:any, sort:any, search=''): any {\r\n if(!Array.isArray(arr)) return [];\r\n\t\tarr = arr.slice();\r\n\t\tfor (let i = 0; i < arr.length; i++){\r\n\t\t arr[i].num = i+1;\r\n\t\t}\r\n\t\tif(sort.direction) {\r\n arr.sort((a:any, b:any)=> {\r\n if (a[sort.title] < b[sort.title]) {\r\n return (sort.direction=='desc') ? 1 : -1;\r\n }\r\n if (a[sort.title] > b[sort.title]) {\r\n return (sort.direction=='desc') ? -1 : 1;\r\n }\r\n return 0;\r\n })\r\n }\r\n\t\treturn arr.slice((config.page-1)*config.perPage, config.page*config.perPage);;\r\n\t}\r\n}","import { Pipe } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n@Pipe({name: 'safe'})\r\nexport class SafePipe {\r\n\tconstructor(private sanitizer: DomSanitizer){}\r\n\ttransform(html: any) {\r\n\t\treturn this.sanitizer.bypassSecurityTrustResourceUrl(html);\r\n\t}\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n/*\r\n*\tAuthor: Honchar Denys\r\n*\tSearch for any content in any type of given documents\r\n*\tAlways returning an array, even if nothing is provided\r\n*/\r\n@Pipe({\r\n\tname: 'search'\r\n})\r\nexport class SearchPipe implements PipeTransform {\r\n\tprivate c = 0;\r\n\t// transform(given: any, search?: any, fields?: any, l?: any, i?: any, reload?: any): any {\r\n\ttransform(given: any, s?: any, f?: any, l?: any, i?: any, reload?: any): any {\r\n\t\t// given stands for the provided array with docs\r\n\t\t// s stands for search\r\n\t\t// f stands for fields\r\n\t\t// l stands for limit\r\n\t\t// i stands for ignore filter\r\n\t\t// start stands for start the limit\r\n\t\tif (!s) {\r\n\t\t\treturn given;\r\n\t\t}\r\n\t\tif (typeof f == 'number') {\r\n\t\t\tl = f;\r\n\t\t\tf = null;\r\n\t\t}\r\n\t\tif (i || !s) {\r\n\t\t\tif (l && Array.isArray(given)) return given.slice(0, l);\r\n\t\t\telse return given || [];\r\n\t\t}\r\n\t\tlet _arr: any = [], _check: any = {};\r\n\t\tif (!Array.isArray(s) && typeof s == 'object') {\r\n\t\t\tlet _s = [];\r\n\t\t\tfor (let key in s) {\r\n\t\t\t\tif (s[key]) _s.push(key);\r\n\t\t\t}\r\n\t\t\ts = _s;\r\n\t\t}\r\n\t\tif (typeof s == 'string') {\r\n\t\t\ts = [s];\r\n\t\t}\r\n\t\tif (!f) f = ['name'];\r\n\t\tif (typeof f == 'string') f = f.split(' ');\r\n\t\tlet sub_test = function (obj: any, _f: any, initObj: any, check: any): any {\r\n\t\t\tif (!obj) return;\r\n\t\t\tif (_f.indexOf('.') > -1) {\r\n\t\t\t\tlet sub = _f.split('.');\r\n\t\t\t\tlet nsub = sub.shift();\r\n\t\t\t\tif (Array.isArray(obj[nsub])) {\r\n\t\t\t\t\tfor (let s = 0; s < obj[nsub].length; s++) {\r\n\t\t\t\t\t\tsub_test(obj[nsub][s], sub.join('.'), initObj, check);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn sub_test(obj[nsub], sub.join('.'), initObj, check);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfor (let j = 0; j < s.length; j++) {\r\n\t\t\t\tlet b = false;\r\n\t\t\t\tif (obj[_f] && (typeof obj[_f] == 'string' || typeof obj[_f] == 'number') &&\r\n\t\t\t\t\ttypeof s[j] == 'string' &&\r\n\t\t\t\t\t(obj[_f].toString().toLowerCase().indexOf(s[j].toLowerCase()) > -1 ||\r\n\t\t\t\t\t\ts[j].toLowerCase().indexOf(obj[_f].toString().toLowerCase()) > -1)) {\r\n\t\t\t\t\tif (!_check[check]) _arr.push(initObj);\r\n\t\t\t\t\t_check[check] = true;\r\n\t\t\t\t\tb = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tif (b) break;\r\n\t\t\t}\r\n\t\t}\r\n\t\tlet test = function (obj: any, check: any) {\r\n\t\t\tfor (let i = 0; i < f.length; i++) {\r\n\t\t\t\tsub_test(obj, f[i], obj, check);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (Array.isArray(given)) {\r\n\t\t\tfor (let i = 0; i < given.length; i++) {\r\n\t\t\t\ttest(given[i], i);\r\n\t\t\t}\r\n\t\t} else if (typeof given == 'object') {\r\n\t\t\tfor (let key in given) {\r\n\t\t\t\ttest(given[key], key);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (l) return _arr.splice(0, l);\r\n\t\treturn _arr;\r\n\t}\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'splice'\r\n})\r\nexport class SplicePipe implements PipeTransform {\r\n\ttransform(from: any, which: any, refresh?:number): any {\r\n\t\tif(Array.isArray(from)) from = { arr: from, prop: '_id' };\r\n\t\tlet arr = which.keep && [] || from.arr.slice();\r\n\t\tif(Array.isArray(which)) which = { arr: which, prop: '_id' };\r\n\t\tfor (let i = from.arr.length-1; i >= 0; i--){\r\n\t\t\tfor (let j = 0; j < which.arr.length; j++){\r\n\t\t\t\tif(from.prop && which.prop){\r\n\t\t\t\t\tif(from.arr[i][from.prop] == which.arr[j][which.prop]){\r\n\t\t\t\t\t\tif(which.keep){\r\n\t\t\t\t\t\t\tarr.push(from.arr[i]);\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tarr.splice(i, 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}else if(from.prop){\r\n\t\t\t\t\tif(from.arr[i][from.prop] == which.arr[j]){\r\n\t\t\t\t\t\tif(which.keep){\r\n\t\t\t\t\t\t\tarr.push(from.arr[i]);\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tarr.splice(i, 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}else if(which.prop){\r\n\t\t\t\t\tif(from.arr[i] == which.arr[j][which.prop]){\r\n\t\t\t\t\t\tif(which.keep){\r\n\t\t\t\t\t\t\tarr.push(from.arr[i]);\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tarr.splice(i, 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}else if(from.arr[i] == which.arr[j]){\r\n\t\t\t\t\tif(which.keep){\r\n\t\t\t\t\t\tarr.push(from.arr[i]);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tarr.splice(i, 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn arr;\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class BaseService {\r\n\tpublic now = new Date().getTime();\r\n\tpublic _now = ()=>{\r\n\t\tthis.now = new Date().getTime();\r\n\t}\r\n\tconstructor() {}\r\n}\r\n","import { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from '../interfaces/config';\r\nimport { Injectable, Inject, Optional } from '@angular/core';\r\nimport { CoreService } from './core.service';\r\nconst window:any = {};\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class StoreService {\r\n\tconstructor(\r\n\t\t@Inject(CONFIG_TOKEN) @Optional() private config: Config,\r\n\t\tprivate core: CoreService\r\n\t) {\r\n\t\tif (!this.config) this.config = DEFAULT_CONFIG;\r\n\t}\r\n\tset(\r\n\t\thold: string,\r\n\t\tvalue: string,\r\n\t\tcallback: () => void = () => { },\r\n\t\terrCallback: () => void = () => { }\r\n\t): void {\r\n\t\tif (\r\n\t\t\tthis.config.store &&\r\n\t\t\tthis.config.store.set\r\n\t\t) {\r\n\t\t\tthis.config.store.set(hold, value, callback, errCallback);\r\n\t\t} else {\r\n\t\t\ttry { this.core.localStorage.setItem('temp_storage_'+hold, value); }\r\n\t\t\tcatch(e){ errCallback(); }\r\n\t\t\tcallback();\r\n\t\t}\r\n\t}\r\n\tget(\r\n\t\thold: string,\r\n\t\tcallback: (value: string) => void = () => { },\r\n\t\terrCallback: () => void = () => { }\r\n\t): any {\r\n\t\tif (\r\n\t\t\tthis.config.store &&\r\n\t\t\tthis.config.store.get\r\n\t\t) {\r\n\t\t\tthis.config.store.get(hold, callback, errCallback);\r\n\t\t} else {\r\n\t\t\tcallback(this.core.localStorage.getItem('temp_storage_'+hold)||'');\r\n\t\t}\r\n\t}\r\n\tsetJson(\r\n\t\thold: string,\r\n\t\tvalue: any,\r\n\t\tcallback: () => void = () => { },\r\n\t\terrCallback: () => void = () => { }\r\n\t) {\r\n\t\tvalue = JSON.stringify(value);\r\n\t\tthis.set(hold, value, callback, errCallback);\r\n\t}\r\n\tgetJson(\r\n\t\thold: string,\r\n\t\tcallback: (value: any) => void = () => { },\r\n\t\terrCallback: () => void = () => { }\r\n\t){\r\n\t\tthis.get(hold, (value:string) => {\r\n\t\t\tif (value) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tvalue = JSON.parse(value);\r\n\t\t\t\t} catch(e) {}\r\n\t\t\t\tcallback(typeof value === 'object' && value || null);\r\n\t\t\t} else {\r\n\t\t\t\tcallback(null);\r\n\t\t\t}\r\n\t\t}, errCallback);\r\n\t}\r\n\tremove(\r\n\t\thold: string,\r\n\t\tcallback: () => void = () => { },\r\n\t\terrCallback: () => void = () => { }\r\n\t): void {\r\n\t\tif (\r\n\t\t\tthis.config.store &&\r\n\t\t\tthis.config.store.remove\r\n\t\t) {\r\n\t\t\tthis.config.store.remove(hold, callback, errCallback);\r\n\t\t} else {\r\n\t\t\tthis.core.localStorage.removeItem('temp_storage_'+hold);\r\n\t\t\tcallback();\r\n\t\t}\r\n\t}\r\n\tclear(\r\n\t\tcallback: () => void = () => { },\r\n\t\terrCallback: () => void = () => { }\r\n\t): any {\r\n\t\tif (\r\n\t\t\tthis.config.store &&\r\n\t\t\tthis.config.store.clear\r\n\t\t) {\r\n\t\t\tthis.config.store.clear(callback, errCallback);\r\n\t\t} else {\r\n\t\t\tthis.core.localStorage.clear();\r\n\t\t\tcallback();\r\n\t\t}\r\n\t}\r\n}\r\n","import { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from '../interfaces/config';\r\nimport { Injectable, Inject, Optional } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { Subject, throwError } from 'rxjs';\r\nimport { catchError, first } from 'rxjs/operators';\r\nimport { StoreService } from './store.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class HttpService {\r\n\tpublic url = '';\r\n\r\n\tprivate _http: any;\r\n\r\n\tprivate headers:any = {};\r\n\r\n\tprivate http_headers = new HttpHeaders(this.headers);\r\n\r\n\tconstructor(\r\n\t\tprivate store: StoreService,\r\n\t\tprivate http: HttpClient,\r\n\t\t@Inject(CONFIG_TOKEN) @Optional() private config: Config\r\n\t) {\r\n\t\tthis._http = config.http;\r\n\r\n\t\tif (!this.config) this.config = DEFAULT_CONFIG;\r\n\r\n\t\tif (!this._http) this._http = {};\r\n\r\n\t\tif (typeof this._http.headers === 'object') {\r\n\t\t\tfor (const header in this._http.headers) {\r\n\t\t\t\tthis.headers[header] = this._http.headers[header];\r\n\t\t\t}\r\n\r\n\t\t\tthis.http_headers = new HttpHeaders(this.headers);\r\n\t\t}\r\n\r\n\t\tthis.store.get('http_url', (url:any)=>{\r\n\t\t\tthis.url = url || this._http.url || '';\r\n\t\t});\r\n\r\n\t\tthis.store.getJson('http_headers', (headers:any)=>{\r\n\t\t\tif (headers) {\r\n\t\t\t\tfor (const header in headers){\r\n\t\t\t\t\tthis.headers[header] = headers[header];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.http_headers = new HttpHeaders(this.headers);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tsetUrl(url: string) {\r\n\t\tthis.url = url;\r\n\t\tthis.store.set('http_url', url);\r\n\t}\r\n\r\n\tremoveUrl() {\r\n\t\tthis.url = this._http.url || '';\r\n\t\tthis.store.remove('http_url');\r\n\t}\r\n\r\n\tset(key: any, value: any) {\r\n\t\tthis.headers[key] = value;\r\n\r\n\t\tthis.store.setJson('http_headers', this.headers);\r\n\r\n\t\tthis.http_headers = new HttpHeaders(this.headers);\r\n\t}\r\n\r\n\theader(key: any) {\r\n\t\treturn this.headers[key];\r\n\t}\r\n\r\n\tremove(key: any) {\r\n\t\tdelete this.headers[key];\r\n\r\n\t\tthis.http_headers = new HttpHeaders(this.headers);\r\n\r\n\t\tthis.store.setJson('http_headers', this.headers);\r\n\t}\r\n\r\n\tpost(url:any, doc:any, callback=(resp:any) => {}, opts:any={}):any{\r\n\t\tif (typeof opts === 'function'){\r\n\t\t\topts = {\r\n\t\t\t\terr: opts\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!opts.err && this._http.err) {\r\n\t\t\topts.err = this._http.err;\r\n\t\t} else if (!opts.err) {\r\n\t\t\topts.err = (err: HttpErrorResponse) => { };\r\n\t\t}\r\n\r\n\t\tif (this._locked){\r\n\t\t\treturn setTimeout(()=>{\r\n\t\t\t\tthis.post(url, doc, callback, opts);\r\n\t\t\t}, 100);\r\n\t\t}\r\n\r\n\t\tconst subject = new Subject();\r\n\r\n\t\tconst observable = this.http.post<any>((opts.url||this.url)+url, doc, {\r\n\t\t\theaders: this.http_headers\r\n\t\t});\r\n\r\n\t\tobservable.pipe(\r\n\t\t\tfirst(),\r\n\t\t\tcatchError(this.handleError(opts.err))\r\n\t\t).subscribe(resp=>{\r\n\t\t\tif (typeof this._http.replace === 'function') {\r\n\t\t\t\tthis._http.replace(resp, ()=>{\r\n\t\t\t\t\tcallback(resp);\r\n\t\t\t\t\tsubject.next(resp);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tcallback(resp);\r\n\t\t\t\tsubject.next(resp);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn subject;\r\n\t}\r\n\r\n\tput(url:any, doc:any, callback=(resp:any) => {}, opts:any={}):any{\r\n\t\tif (typeof opts === 'function'){\r\n\t\t\topts = {\r\n\t\t\t\terr: opts\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!opts.err && this._http.err) {\r\n\t\t\topts.err = this._http.err;\r\n\t\t} else if (!opts.err) {\r\n\t\t\topts.err = (err: HttpErrorResponse) => { };\r\n\t\t}\r\n\r\n\t\tif (this._locked){\r\n\t\t\treturn setTimeout(()=>{\r\n\t\t\t\tthis.put(url, doc, callback, opts);\r\n\t\t\t}, 100);\r\n\t\t}\r\n\r\n\t\tconst subject = new Subject();\r\n\r\n\t\tconst observable = this.http.put<any>((opts.url||this.url)+url, doc, {\r\n\t\t\theaders: this.http_headers\r\n\t\t});\r\n\r\n\t\tobservable.pipe(\r\n\t\t\tfirst(),\r\n\t\t\tcatchError(this.handleError(opts.err))\r\n\t\t).subscribe(resp=>{\r\n\t\t\tif (typeof this._http.replace === 'function'){\r\n\t\t\t\tthis._http.replace(resp, ()=>{\r\n\t\t\t\t\tcallback(resp);\r\n\t\t\t\t\tsubject.next(resp);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tcallback(resp);\r\n\t\t\t\tsubject.next(resp);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn subject;\r\n\t}\r\n\r\n\tpatch(url:any, doc:any, callback=(resp:any) => {}, opts:any={}):any{\r\n\t\tif (typeof opts === 'function'){\r\n\t\t\topts = {\r\n\t\t\t\terr: opts\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!opts.err && this._http.err) {\r\n\t\t\topts.err = this._http.err;\r\n\t\t} else if (!opts.err) {\r\n\t\t\topts.err = (err: HttpErrorResponse) => { };\r\n\t\t}\r\n\r\n\t\tif (this._locked){\r\n\t\t\treturn setTimeout(()=>{\r\n\t\t\t\tthis.patch(url, doc, callback, opts);\r\n\t\t\t}, 100);\r\n\t\t}\r\n\r\n\t\tconst subject = new Subject();\r\n\r\n\t\tconst observable = this.http.patch<any>((opts.url||this.url)+url, doc, {\r\n\t\t\theaders: this.http_headers\r\n\t\t});\r\n\r\n\t\tobservable.pipe(\r\n\t\t\tfirst(),\r\n\t\t\tcatchError(this.handleError(opts.err))\r\n\t\t).subscribe(resp=>{\r\n\t\t\tif (typeof this._http.replace === 'function'){\r\n\t\t\t\tthis._http.replace(resp, ()=>{\r\n\t\t\t\t\tcallback(resp);\r\n\t\t\t\t\tsubject.next(resp);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tcallback(resp);\r\n\t\t\t\tsubject.next(resp);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn subject;\r\n\t}\r\n\r\n\tdelete(url:any, doc:any, callback=(resp:any) => {}, opts:any={}):any{\r\n\t\tif (typeof opts === 'function'){\r\n\t\t\topts = {\r\n\t\t\t\terr: opts\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!opts.err && this._http.err) {\r\n\t\t\topts.err = this._http.err;\r\n\t\t} else if (!opts.err) {\r\n\t\t\topts.err = (err: HttpErrorResponse) => { };\r\n\t\t}\r\n\r\n\t\tif (this._locked){\r\n\t\t\treturn setTimeout(()=>{\r\n\t\t\t\tthis.delete(url, doc, callback, opts);\r\n\t\t\t}, 100);\r\n\t\t}\r\n\r\n\t\tconst subject = new Subject();\r\n\r\n\t\tconst observable = this.http.request<any>('delete', (opts.url||this.url)+url, {\r\n\t\t\theaders: this.http_headers,\r\n\t\t\tbody: doc || {}\r\n\t\t});\r\n\r\n\t\tobservable.pipe(\r\n\t\t\tfirst(),\r\n\t\t\tcatchError(this.handleError(opts.err))\r\n\t\t).subscribe(resp=>{\r\n\t\t\tif (typeof this._http.replace === 'function'){\r\n\t\t\t\tthis._http.replace(resp, ()=>{\r\n\t\t\t\t\tcallback(resp);\r\n\t\t\t\t\tsubject.next(resp);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tcallback(resp);\r\n\t\t\t\tsubject.next(resp);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn subject;\r\n\t}\r\n\r\n\tget(url:any, callback=(resp:any) => {}, opts:any={}):any{\r\n\t\tif (typeof opts === 'function'){\r\n\t\t\topts = {\r\n\t\t\t\terr: opts\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!opts.err && this._http.err) {\r\n\t\t\topts.err = this._http.err;\r\n\t\t} else if (!opts.err) {\r\n\t\t\topts.err = (err: HttpErrorResponse) => { };\r\n\t\t}\r\n\r\n\t\tif (this._locked){\r\n\t\t\treturn setTimeout(()=>{\r\n\t\t\t\tthis.get(url, callback, opts);\r\n\t\t\t}, 100);\r\n\t\t}\r\n\r\n\t\tlet params:any = {\r\n\t\t\theaders: this.http_headers\r\n\t\t};\r\n\r\n\t\tif (opts.params){\r\n\t\t\tparams.params = opts.params;\r\n\t\t}\r\n\r\n\t\tconst subject = new Subject();\r\n\r\n\t\tconst observable = this.http.get<any>((opts.url || this.url) + url, params);\r\n\r\n\t\tobservable.pipe(\r\n\t\t\tfirst(),\r\n\t\t\tcatchError(this.handleError(opts.err))\r\n\t\t).subscribe(resp=>{\r\n\t\t\tif (typeof this._http.replace === 'function'){\r\n\t\t\t\tthis._http.replace(resp, ()=>{\r\n\t\t\t\t\tcallback(resp);\r\n\t\t\t\t\tsubject.next(resp);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tcallback(resp);\r\n\t\t\t\tsubject.next(resp);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn subject;\r\n\t}\r\n\r\n\tprivate _locked = false;\r\n\r\n\tlock(){\r\n\t\tthis._locked = true;\r\n\t}\r\n\r\n\tunlock(){\r\n\t\tthis._locked = false;\r\n\t}\r\n\r\n\terr(callback:any){\r\n\t\tif (typeof callback === 'function'){\r\n\t\t\tthis._http.err = callback;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate handleError(cb:any = this._http.err) {\r\n\t\treturn function(error: HttpErrorResponse){\r\n\t\t\tcb && cb(error);\r\n\r\n\t\t\treturn throwError(\"We can't connect to the server\");\r\n\t\t}\r\n\t};\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpService } from './http.service';\r\nimport { StoreService } from './store.service';\r\n\r\ninterface CrudOptions {\r\n\treplace: string;\r\n\tquery: string;\r\n\tgroup: string;\r\n}\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport default abstract class CrudService<Document> {\r\n\tprivate _url = '/api/';\r\n\r\n\tconstructor(\r\n\t\tprivate _module: string,\r\n\t\tprivate _http: HttpService,\r\n\t\tprivate _store: StoreService\r\n\t) {\r\n\t\tthis._url += this._module;\r\n\t}\r\n\t/*\r\n\t\tdoc should be able to:\r\n\t\t1) stored locally\r\n\t\t2) send into back-end into different ways [http,socket]\r\n\t\t3) have temporary id {MODULE_Date.now()}\r\n\t\t4) work as MongoService via read function\r\n\t*/\r\n\r\n\tcreate(doc: Document): Observable<Document> {\r\n\t\tconst obs = this._http.post(this._url + '/create', doc);\r\n\t\treturn obs;\r\n\t}\r\n\r\n\tread(opts: CrudOptions): Observable<Document> {\r\n\t\tconst obs = this._http.get(this._url + '/get');\r\n\t\treturn obs;\r\n\t}\r\n\r\n\tupdate(doc: Document): Observable<Document> {\r\n\t\tconst obs = this._http.put(this._url + '/update', doc);\r\n\t\treturn obs;\r\n\t}\r\n\r\n\tdelete(doc: Document): Observable<Document> {\r\n\t\tconst obs = this._http.delete(this._url + '/delete', doc);\r\n\t\treturn obs;\r\n\t}\r\n\r\n\tset(doc: Document): void { }\r\n\r\n\t// get(module: string, id: string): Document {}\r\n\t// getAll(module: string): Document[] {}\r\n}\r\n\r\n\r\n/*\r\nCreate -> Post\r\nRead -> Get\r\nUpdate -> Put\r\nDelete -> Delete\r\n\r\n\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpService, StoreService } from \"wacom\";\r\nimport CrudService from \"./crud.service\";\r\n\r\ninterface Bird {\r\n\tname: string;\r\n\tdescription: string;\r\n}\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class BirdService extends CrudService<Bird> {\r\n\tconstructor(\r\n\t\t_http: HttpService,\r\n\t\t_store: StoreService\r\n\t) {\r\n\t\tsuper('bird', _http, _store);\r\n\t\tconsole.log(this.create);\r\n\t}\r\n}\r\n\r\n*/\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpService } from './http.service';\r\nimport { CoreService } from './core.service';\r\nimport { Subject } from 'rxjs';\r\nimport { StoreService } from './store.service';\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class MongoService {\r\n\t/*\r\n\t*\tData will be storage for all information we are pulling from waw crud.\r\n\t*\tdata['arr' + part] will host all docs from collection part in array form\r\n\t*\tdata['obj' + part] will host all docs from collection part in object form\r\n\t*\t\tand all groups collecitons provided\r\n\t*\tdata['opts' + part] will host options for docs from collection part\r\n\t*\t\tWill be initialized only inside get\r\n\t*\t\tWill be used inside push\r\n\t*/\r\n\t\tprivate data:any = {};\r\n\t\tprivate socket: any = {\r\n\t\t\temit: (which:any, doc:any) => {\r\n\t\t\t\tconsole.log(which, doc, 'is not used on sockets');\r\n\t\t\t}\r\n\t\t};\r\n\t/*\r\n\t*\twaw crud connect functions\r\n\t*/\r\n\t\tpublic config(part:any, opts:any){\r\n\t\t\tif(this.data['opts' + part]) return;\r\n\t\t\tif(!this.data['arr' + part]) this.data['arr' + part] = [];\r\n\t\t\tif(!this.data['obj' + part]) this.data['obj' + part] = {};\r\n\t\t\tif(this.data['opts' + part]){\r\n\t\t\t\tfor (let each in opts){\r\n\t\t\t\t this.data['opts' + part][each] = opts[each];\r\n\t\t\t\t}\r\n\t\t\t}else this.data['opts' + part] = opts = opts||{};\r\n\t\t\tif(typeof opts.use === 'string'){\r\n\t\t\t\topts.use = opts.use.split(' ');\r\n\t\t\t}\r\n\t\t\tif(opts.query){\r\n\t\t\t\tfor(let key in opts.query){\r\n\t\t\t\t\tif(typeof opts.query[key] == 'function'){\r\n\t\t\t\t\t\topts.query[key] = {\r\n\t\t\t\t\t\t\tallow: opts.query[key]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.data['obj' + part][key] = [];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(opts.groups){\r\n\t\t\t\tif(typeof opts.groups === 'string'){\r\n\t\t\t\t\topts.groups = opts.groups.split(' ');\r\n\t\t\t\t}\r\n\t\t\t\tif(Array.isArray(opts.groups)){\r\n\t\t\t\t\tlet arr = opts.groups;\r\n\t\t\t\t\topts.groups = {};\r\n\t\t\t\t\tfor(let i = 0; i < arr.length; i++){\r\n\t\t\t\t\t\tif(typeof arr[i] === 'string'){\r\n\t\t\t\t\t\t\topts.groups[arr[i]] = true;\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\tfor(let key in arr[i]){\r\n\t\t\t\t\t\t\t\tif(typeof arr[i][key] == 'function'){\r\n\t\t\t\t\t\t\t\t\tarr[i][key] = {\r\n\t\t\t\t\t\t\t\t\t\tfield: arr[i][key]\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\topts.groups[key] = arr[i][key];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tfor(let key in opts.groups){\r\n\t\t\t\t\tif(typeof opts.groups[key] == 'boolean'){\r\n\t\t\t\t\t\tif(opts.groups[key]){\r\n\t\t\t\t\t\t\topts.groups[key] = {\r\n\t\t\t\t\t\t\t\tfield: function(doc:any){\r\n\t\t\t\t\t\t\t\t\treturn doc[key];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tdelete opts.groups[key];\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof opts.groups[key] != 'object'){\r\n\t\t\t\t\t\tdelete opts.groups[key];\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof opts.groups[key].field != 'function'){\r\n\t\t\t\t\t\tdelete opts.groups[key];\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(Array.isArray(this.data['obj' + part][key])){\r\n\t\t\t\t\t\tconsole.warn('You can have same field groups with query. Field '+key+' is not used in groups.');\r\n\t\t\t\t\t\tdelete opts.groups[key];\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.data['obj' + part][key] = {};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(opts.fields) {\r\n\t\t\t\tif (typeof opts.fields === 'string') {\r\n\t\t\t\t\topts.fields = opts.fields.split(' ');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (!Array.isArray(opts.fields)) {\r\n\t\t\t\topts.fields = [];\r\n\t\t\t}\r\n\t\t\tthis.store.getJson('mongo' + part, data => {\r\n\t\t\t\tif (data && Array.isArray(data)) {\r\n\t\t\t\t\tfor (let i = 0; i < data.length; i++) {\r\n\t\t\t\t\t\tthis.push(part, data[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn {\r\n\t\t\t\tarr: this.data['arr' + part],\r\n\t\t\t\tobj: this.data['obj' + part]\r\n\t\t\t};\r\n\t\t};\r\n\t\tpublic create(part:any, doc:any=undefined, cb:any=undefined, opts:any={}) {\r\n\t\t\tif (typeof doc == 'function') {\r\n\t\t\t\tif(cb) opts = cb;\r\n\t\t\t\tcb = doc;\r\n\t\t\t\tdoc = {};\r\n\t\t\t}\r\n\t\t\tif(typeof opts == 'function'){\r\n\t\t\t\topts = {\r\n\t\t\t\t\terr: opts\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tif(typeof doc != 'object') doc={};\r\n\t\t\tif(doc.___created && !opts.allow_multiple) return;\r\n\t\t\tdoc.___created = true;\r\n\t\t\tthis.http.post(opts.url || '/api/' + part + '/create', doc || {}, resp => {\r\n\t\t\t\tif (resp) {\r\n\t\t\t\t\tthis.socket.emit('create', {\r\n\t\t\t\t\t\t_id: resp._id,\r\n\t\t\t\t\t\tpart: part\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.push(part, resp);\r\n\t\t\t\t\tif (typeof cb == 'function') cb(resp);\r\n\t\t\t\t}else if (typeof cb == 'function') {\r\n\t\t\t\t\tcb(false);\r\n\t\t\t\t}\r\n\t\t\t}, {\r\n\t\t\t\turl: opts.base_url || this.http.url\r\n\t\t\t});\r\n\t\t};\r\n\t\tpublic fetch(part:any, opts:any=undefined, cb:any=undefined) {\r\n\t\t\tif(opts.query && opts.query._id && !opts.force &&\r\n\t\t\t\tthis.data['obj' + part][opts.query._id]){\r\n\t\t\t\treturn this.data['obj' + part][opts.query._id];\r\n\t\t\t}\r\n\t\t\tif (typeof opts == 'function') {\r\n\t\t\t\tcb = opts;\r\n\t\t\t\topts = {};\r\n\t\t\t}\r\n\t\t\tif(!opts) opts = {};\r\n\t\t\tthis.config(part, opts); // remove this in future\r\n\t\t\tlet url = '/api/' + part + '/fetch'+(opts.name||''), doc:any;\r\n\t\t\tif(opts.query && opts.query._id && this.data['obj' + part][opts.query._id]){\r\n\t\t\t\tdoc = this.data['obj' + part][opts.query._id];\r\n\t\t\t}else{\r\n\t\t\t\tdoc = {};\r\n\t\t\t\tfor(let key in this.data['opts'+part].replace){\r\n\t\t\t\t\tthis.replace(doc, key, this.data['opts'+part].replace[key]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.http.post(opts.url || url, (opts.query||{}), resp => {\r\n\t\t\t\tif(!resp) return cb&&cb(false);\r\n\t\t\t\tfor (let each in resp){\r\n\t\t\t\t doc[each] = resp[each];\r\n\t\t\t\t}\r\n\t\t\t\tfor (let each in doc){\r\n\t\t\t\t doc[each] = resp[each];\r\n\t\t\t\t}\r\n\t\t\t\tthis.push(part, doc);\r\n\t\t\t\tif (resp && typeof cb == 'function') {\r\n\t\t\t\t\tcb(doc);\r\n\t\t\t\t}\r\n\t\t\t}, {\r\n\t\t\t\turl: opts.base_url || this.http.url\r\n\t\t\t});\r\n\t\t\treturn doc;\r\n\t\t};\r\n\t\tpublic get(part:any, opts:any=undefined, cb:any=undefined) {\r\n\t\t\tif (typeof opts == 'function') {\r\n\t\t\t\tcb = opts;\r\n\t\t\t\topts = {};\r\n\t\t\t}\r\n\t\t\tif(!opts) opts = {};\r\n\t\t\tthis.config(part, opts); // remove this in future\r\n\t\t\tlet url = '/api/' + part + '/get'+(opts.name||'')+(opts.param||'');\r\n\t\t\tthis.http.get(opts.url || url, resp => {\r\n\t\t\t\tif (Array.isArray(resp)) {\r\n\t\t\t\t\tfor (let i = 0; i < resp.length; i++) {\r\n\t\t\t\t\t\tthis.push(part,resp[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!opts.paginate) {\r\n\t\t\t\t\t\tfor (let i = 0; i < this.data['arr' + part].length; i++) {\r\n\t\t\t\t\t\t\tlet remove = true;\r\n\t\t\t\t\t\t\tfor (let j = 0; j < resp.length; j++) {\r\n\t\t\t\t\t\t\t\tif (resp[j]._id === this.data['arr' + part][i]._id) {\r\n\t\t\t\t\t\t\t\t\tremove = false;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (remove) {\r\n\t\t\t\t\t\t\t\tthis.remove(part, this.data['arr' + part][i]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (typeof cb == 'function') cb(this.data['arr' + part], this.data['obj' + part], opts.name||'', resp);\r\n\t\t\t\t} else if (typeof cb == 'function') {\r\n\t\t\t\t\tcb(this.data['arr' + part], this.data['obj' + part], opts.name||'', resp);\r\n\t\t\t\t}\r\n\t\t\t\tthis.data['loaded'+part]=true;\r\n\t\t\t}, {\r\n\t\t\t\turl: opts.base_url || this.http.url\r\n\t\t\t});\r\n\t\t\treturn this.data['arr' + part];\r\n\t\t};\r\n\t\tpublic set(part:any, opts:any=undefined, resp:any=undefined) {\r\n\t\t\tif (Array.isArray(opts)) {\r\n\t\t\t\tresp = opts;\r\n\t\t\t\topts = undefined;\r\n\t\t\t}\r\n\t\t\tif(opts) this.config(part, opts);\r\n\t\t\tif (Array.isArray(resp)) {\r\n\t\t\t\tfor (let i = 0; i < resp.length; i++) {\r\n\t\t\t\t\tthis.push(part, resp[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tarr: this.data['arr' + part],\r\n\t\t\t\tobj: this.data['obj' + part]\r\n\t\t\t}\r\n\t\t};\r\n\t\tprivate prepare_update(part:any, doc:any, opts:any){\r\n\t\t\tif(opts.fields){\r\n\t\t\t\tif(typeof opts.fields === 'string') opts.fields = opts.fields.split(' ');\r\n\t\t\t\tlet _doc:any = {};\r\n\t\t\t\tfor(let i = 0; i < opts.fields.length; i++){\r\n\t\t\t\t\t_doc[opts.fields[i]] = doc[opts.fields[i]];\r\n\t\t\t\t}\r\n\t\t\t\tdoc = _doc;\r\n\t\t\t}else this.renew(part, doc);\r\n\t\t\tif(typeof opts.rewrite == 'object' && Object.values(opts.rewrite).length){\r\n\t\t\t\tdoc = JSON.parse(JSON.stringify(doc));\r\n\t\t\t\tfor(let key in opts.rewrite){\r\n\t\t\t\t\tthis.replace(doc, key, opts.rewrite[key]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn doc;\r\n\t\t};\r\n\t\tpublic update(part:any, doc:any, opts:any=undefined, cb:any=undefined) {\r\n\t\t\tif (typeof opts == 'function'){\r\n\t\t\t\tcb = opts;\r\n\t\t\t\topts = {};\r\n\t\t\t}\r\n\t\t\tif(typeof opts != 'object') opts = {};\r\n\t\t\tdoc = this.prepare_update(part, doc, opts);\r\n\t\t\tlet url = '/api/' + part + '/update' + (opts.name||'');\r\n\t\t\tthis.http.post(opts.url || url, doc, resp => {\r\n\t\t\t\tif(resp){\r\n\t\t\t\t\tthis.socket.emit('update', {\r\n\t\t\t\t\t\t_id: doc._id,\r\n\t\t\t\t\t\tpart: part\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tif (resp && typeof cb == 'function') {\r\n\t\t\t\t\tcb(resp);\r\n\t\t\t\t} else if (typeof cb == 'function') {\r\n\t\t\t\t\tcb(false);\r\n\t\t\t\t}\r\n\t\t\t}, {\r\n\t\t\t\turl: opts.base_url || this.http.url\r\n\t\t\t});\r\n\t\t};\r\n\t\tpublic unique(part:any, doc:any, opts:any=undefined, cb:any=undefined) {\r\n\t\t\tif (typeof opts == 'function'){\r\n\t\t\t\tcb = opts;\r\n\t\t\t\topts = {};\r\n\t\t\t}\r\n\t\t\tif(typeof opts != 'object') opts = {};\r\n\t\t\tdoc = this.prepare_update(part, doc, opts);\r\n\t\t\tlet url = '/api/' + part + '/unique' + (opts.name||'');\r\n\t\t\tthis.http.post(opts.url || url, doc, resp => {\r\n\t\t\t\tif(resp){\r\n\t\t\t\t\tthis.socket.emit('update', {\r\n\t\t\t\t\t\t_id: doc._id,\r\n\t\t\t\t\t\tpart: part\r\n\t\t\t\t\t});\r\n\t\t\t\t\tlet current_doc = this.data['obj' + part][doc._id];\r\n\t\t\t\t\tfor (let each in doc){\r\n\t\t\t\t\t current_doc[each] = doc[each];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.renew(part, current_doc);\r\n\t\t\t\t}\r\n\t\t\t\tif (resp && typeof cb == 'function') {\r\n\t\t\t\t\tcb(resp);\r\n\t\t\t\t} else if (typeof cb == 'function') {\r\n\t\t\t\t\tcb(false);\r\n\t\t\t\t}\r\n\t\t\t}, {\r\n\t\t\t\turl: opts.base_url || this.http.url\r\n\t\t\t});\r\n\t\t};\r\n\t\tpublic delete(part:any, doc:any, opts:any=undefined, cb:any=undefined) {\r\n\t\t\tif (typeof opts == 'function') {\r\n\t\t\t\tcb = opts;\r\n\t\t\t\topts = {};\r\n\t\t\t}\r\n\t\t\tif (typeof opts !== 'object') opts = {};\r\n\t\t\tif (opts.fields) {\r\n\t\t\t\tif(typeof opts.fields === 'string') opts.fields = opts.fields.split(' ');\r\n\t\t\t\tlet _doc:any = {};\r\n\t\t\t\tfor(let i = 0; i < opts.fields.length; i++){\r\n\t\t\t\t\t_doc[opts.fields[i]] = doc[opts.fields[i]];\r\n\t\t\t\t}\r\n\t\t\t\tdoc = _doc;\r\n\t\t\t} else {\r\n\t\t\t\tdoc={\r\n\t\t\t\t\t_id:doc._id\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlet url = '/api/' + part + '/delete' + (opts.name||'');\r\n\t\t\tthis.http.post(opts.url || url, doc, resp => {\r\n\t\t\t\tif (resp) {\r\n\t\t\t\t\tthis.socket.emit('delete', {\r\n\t\t\t\t\t\t_id: doc._id,\r\n\t\t\t\t\t\tpart: part\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.remove(part, doc);\r\n\t\t\t\t}\r\n\t\t\t\tif (resp && typeof cb == 'function') {\r\n\t\t\t\t\tcb(resp);\r\n\t\t\t\t} else if (typeof cb == 'function') {\r\n\t\t\t\t\tcb(false);\r\n\t\t\t\t}\r\n\t\t\t}, {\r\n\t\t\t\turl: opts.base_url || this.http.url\r\n\t\t\t});\r\n\t\t};\r\n\t\tpublic _id(cb:any){\r\n\t\t\tif(typeof cb == 'function'){\r\n\t\t\t\tthis.http.get('/waw/newId', cb);\r\n\t\t\t}\r\n\t\t};\r\n\t\tpublic to_id(docs:any){\r\n\t\t\tif(!docs) return [];\r\n\t\t\tif(Array.isArray(docs)){\r\n\t\t\t\tdocs = docs.slice();\r\n\t\t\t}else if(typeof docs == 'object'){\r\n\t\t\t\tif(docs._id) return [docs._id];\r\n\t\t\t\tlet _docs = [];\r\n\t\t\t\tfor(let key in docs){\r\n\t\t\t\t\tif(docs[key]) _docs.push(docs[key]._id||docs[key]);\r\n\t\t\t\t}\r\n\t\t\t\tdocs = _docs;\r\n\t\t\t}\r\n\t\t\tfor (let i = 0; i < docs.length; ++i) {\r\n\t\t\t\tif(docs[i]) docs[i] = docs[i]._id || docs[i];\r\n\t\t\t}\r\n\t\t\treturn docs;\r\n\t\t};\r\n\t\tpublic afterWhile(doc:any, cb:any, time=1000){\r\n\t\t\tif(typeof cb == 'function' && typeof time == 'number'){\r\n\t\t\t\tclearTimeout(doc.__updateTimeout);\r\n\t\t\t\tdoc.__updateTimeout = setTimeout(cb, time);\r\n\t\t\t}\r\n\t\t};\r\n\t\tpublic populate(doc:any, field:any, part:any):any{\r\n\t\t\tif(!doc||!field||!part) return;\r\n\t\t\tif(Array.isArray(doc)){\r\n\t\t\t\tfor(let i = 0; i < doc.length; i++){\r\n\t\t\t\t\tthis.populate(doc[i], field, part);\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif(this.data['loaded'+part]){\r\n\t\t\t\tif(Array.isArray(field)){\r\n\t\t\t\t\tfor(let i = 0; i < field.length; i++){\r\n\t\t\t\t\t\tthis.populate(doc, field[i], part);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}else if(field.indexOf('.')>-1){\r\n\t\t\t\t\tfield = field.split('.');\r\n\t\t\t\t\tlet sub = field.shift();\r\n\t\t\t\t\tif(typeof doc[sub] != 'object') return;\r\n\t\t\t\t\treturn this.populate(doc[sub], field.join('.'), part);\r\n\t\t\t\t}\r\n\t\t\t\tif(Array.isArray(doc[field])){\r\n\t\t\t\t\tfor(let i = doc[field].length-1; i >= 0; i--){\r\n\t\t\t\t\t\tif(this.data['obj'+part][doc[field][i]]){\r\n\t\t\t\t\t\t\tdoc[field][i] = this.data['obj'+part][doc[field][i]];\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tdoc[field].splice(i, 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}else if(typeof doc[field] === 'string'){\r\n\t\t\t\t\tdoc[field] = this.data['obj'+part][doc[field]] || null;\r\n\t\t\t\t}else return;\r\n\t\t\t}else{\r\n\t\t\t\tsetTimeout(() =>{\r\n\t\t\t\t\tthis.populate(doc, field, part);\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\t\t};\r\n\t\tpublic on(parts:any, cb:any):any {\r\n \t\t if (typeof parts === 'string') {\r\n \t\t parts = parts.split(\" \");\r\n \t\t }\r\n \t\t for (var i = 0; i < parts.length; i++) {\r\n \t\t if (!this.data['loaded'+parts[i]]) {\r\n \t\t return setTimeout( () => {\r\n \t\t this.on(parts, cb);\r\n \t\t }, 100);\r\n \t\t }\r\n \t\t }\r\n \t\t cb(this.data);\r\n \t\t};\r\n \t\tpublic track(index:any, doc:any){ return doc && doc._id && doc._id || index; }\r\n \t/*\r\n\t*\tmongo sort filters\r\n\t*/\r\n \t\tpublic sortAscId(){\r\n \t\t\treturn function(a:any,b:any){\r\n \t\t\t\tif(a._id>b._id) return 1;\r\n \t\t\t\telse return -1;\r\n \t\t\t}\r\n \t\t};\r\n \t\tpublic sortDescId(){\r\n \t\t\treturn function(a:any,b:any){\r\n \t\t\t\tif(a._id<b._id) return 1;\r\n \t\t\t\telse return -1;\r\n \t\t\t}\r\n \t\t};\r\n \t\tpublic sortAscString(opts:any){\r\n \t\t\tif(typeof opts === 'string'){\r\n \t\t\t\topts = {\r\n \t\t\t\t\tfield: opts\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\treturn function(a:any,b:any){\r\n \t\t\t\tif(a[opts.field].toLowerCase()>b[opts.field].toLowerCase()) return 1;\r\n \t\t\t\telse if(a[opts.field].toLowerCase()<b[opts.field].toLowerCase() || !opts.next) return -1;\r\n \t\t\t\telse return opts.next(a,b);\r\n \t\t\t}\r\n \t\t}\r\n \t\tpublic sortDescString(opts:any){\r\n \t\t\tif(typeof opts === 'string'){\r\n \t\t\t\topts = {\r\n \t\t\t\t\tfield: opts\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\treturn function(a:any,b:any){\r\n \t\t\t\tif(a[opts.field].toLowerCase()<b[opts.field].toLowerCase()) return 1;\r\n \t\t\t\telse if(a[opts.field].toLowerCase()>b[opts.field].toLowerCase() || !opts.next) return -1;\r\n \t\t\t\telse return opts.next(a,b);\r\n \t\t\t}\r\n \t\t}\r\n \t\tpublic sortAscDate(opts:any){\r\n \t\t\tif(typeof opts === 'string'){\r\n \t\t\t\topts = {\r\n \t\t\t\t\tfield: opts\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\treturn function(a:any,b:any){\r\n \t\t\t\tif(a[opts.field].getTime()>b[opts.field].getTime()) return 1;\r\n \t\t\t\telse if(a[opts.field].getTime()<b[opts.field].getTime() || !opts.next) return -1;\r\n \t\t\t\telse return opts.next(a,b);\r\n \t\t\t}\r\n \t\t}\r\n \t\tpublic sortDescDate(opts:any){\r\n \t\t\tif(typeof opts === 'string'){\r\n \t\t\t\topts = {\r\n \t\t\t\t\tfield: opts\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\treturn function(a:any,b:any){\r\n \t\t\t\tif(a[opts.field].getTime()<b[opts.field].getTime()) return 1;\r\n \t\t\t\telse if(a[opts.field].getTime()>b[opts.field].getTime() || !opts.next) return -1;\r\n \t\t\t\telse return opts.next(a,b);\r\n \t\t\t}\r\n \t\t}\r\n \t\tpublic sortAscNumber(opts:any){\r\n \t\t\tif(typeof opts === 'string'){\r\n \t\t\t\topts = {\r\n \t\t\t\t\tfield: opts\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\treturn function(a:any,b:any){\r\n \t\t\t\tif(a[opts.field]>b[opts.field]) return 1;\r\n \t\t\t\telse if(a[opts.field]<b[opts.field] || !opts.next) return -1;\r\n \t\t\t\telse return opts.next(a,b);\r\n \t\t\t}\r\n \t\t}\r\n \t\tpublic sortDescNumber(opts:any){\r\n \t\t\tif(typeof opts === 'string'){\r\n \t\t\t\topts = {\r\n \t\t\t\t\tfield: opts\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\treturn function(a:any,b:any){\r\n \t\t\t\tif(a[opts.field]<b[opts.field]) return 1;\r\n \t\t\t\telse if(a[opts.field]>b[opts.field] || !opts.next) return -1;\r\n \t\t\t\telse return opts.next(a,b);\r\n \t\t\t}\r\n \t\t}\r\n \t\tpublic sortAscBoolean(opts:any){\r\n \t\t\tif(typeof opts === 'string'){\r\n \t\t\t\topts = {\r\n \t\t\t\t\tfield: opts\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\treturn function(a:any,b:any){\r\n \t\t\t\tif(!a[opts.field]&&b[opts.field]) return 1;\r\n \t\t\t\telse if(a[opts.field]&&!b[opts.field] || !opts.next) return -1;\r\n \t\t\t\telse return opts.next(a,b);\r\n \t\t\t}\r\n \t\t}\r\n \t\tpublic sortDescBoolean(opts:any){\r\n \t\t\tif(typeof opts === 'string'){\r\n \t\t\t\topts = {\r\n \t\t\t\t\tfield: opts\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\treturn function(a:any,b:any){\r\n \t\t\t\tif(a[opts.field]&&!b[opts.field]) return 1;\r\n \t\t\t\telse if(!a[opts.field]&&b[opts.field] || !opts.next) return -1;\r\n \t\t\t\telse return opts.next(a,b);\r\n \t\t\t}\r\n \t\t}\r\n\t/*\r\n\t*\tmongo replace filters\r\n\t*/\r\n\t\tpublic beArr(val:any, cb:any){\r\n\t\t\tif(!Array.isArray(val)) cb([]);\r\n\t\t\telse cb(val);\r\n\t\t};\r\n\t\tpublic beObj(val:any, cb:any){\r\n\t\t\tif(typeof val != 'object' || Array.isArray(val) || !val){\r\n\t\t\t\tval = {};\r\n\t\t\t}\r\n\t\t\tcb(val);\r\n\t\t};\r\n\t\tpublic beDate(val:any, cb:any) { cb( new Date(val) ); };\r\n\t\tpublic beString(val:any, cb:any){\r\n\t\t\tif(typeof val != 'string'){\r\n\t\t\t\tval = '';\r\n\t\t\t}\r\n\t\t\tcb(val);\r\n\t\t};\r\n\t\tpublic beDoc = (val:any, cb:any)=>{\r\n\t\t\tthis.beObj(val, (val:any)=>{\r\n\t\t\t\tif(!val._id){\r\n\t\t\t\t\tthis._id((_id:any)=>{\r\n\t\t\t\t\t\tval._id = _id;\r\n\t\t\t\t\t\tcb(val);\r\n\t\t\t\t\t});\r\n\t\t\t\t}else cb(val);\r\n\t\t\t});\r\n\t\t};\r\n\t\tpublic forceArr(val:any, cb:any){ cb([]); };\r\n\t\tpublic forceObj(val:any, cb:any){ cb({}); };\r\n\t\tpublic forceString(val:any, cb:any){ cb(''); };\r\n\t\tpublic forceDoc = (val:any, cb:any) => {\r\n\t\t\tthis._id((_id:any)=>{\r\n\t\t\t\tcb({\r\n\t\t\t\t\t_id: _id\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\t\tpublic getCreated(val:any, cb:any, doc:any){\r\n\t\t\tcb(new Date(parseInt(doc._id.substring(0,8), 16)*1000));\r\n\t\t};\r\n\t/*\r\n\t*\tmongo local support functions\r\n\t*/\r\n\t\tprivate replace(doc:any, value:any, rpl:any):any{\r\n\t\t\tif(value.indexOf('.')>-1){\r\n\t\t\t\tvalue = value.split('.');\r\n\t\t\t\tlet sub = value.shift();\r\n\t\t\t\tif(doc[sub] && (typeof doc[sub] != 'object' || Array.isArray(doc[sub])))\r\n\t\t\t\t\treturn;\r\n\t\t\t\tif(!doc[sub]) doc[sub] = {};\r\n\t\t\t\treturn this.replace(doc[sub], value.join('.'), rpl);\r\n\t\t\t}\r\n\t\t\tif(typeof rpl == 'function'){\r\n\t\t\t\trpl(doc[value], function(newValue:any){\r\n\t\t\t\t\tdoc[value] = newValue;\r\n\t\t\t\t}, doc);\r\n\t\t\t}\r\n\t\t};\r\n\t\tpublic renew(part:any, doc:any){\r\n\t\t\tif(!this.data['obj' + part][doc._id]) return this.push(part, doc);\r\n\t\t\tif(this.data['opts'+part].replace){\r\n\t\t\t\tfor(let key in this.data['opts'+part].replace){\r\n\t\t\t\t\tthis.replace(doc, key, this.data['opts'+part].replace[key]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfor (let each in this.data['obj' + part][doc._id]){\r\n\t\t\t\tthis.data['obj' + part][doc._id][each] = doc[each];\r\n\t\t\t}\r\n\t\t\tfor (let each in doc){\r\n\t\t\t\tthis.data['obj' + part][doc._id][each] = doc[each];\r\n\t\t\t}\r\n\t\t\tfor (let i = 0; i < this.data['opts' + part].fields.length; i++) {\r\n\t\t\t\tconst field = this.data['opts' + part].fields[i];\r\n\t\t\t\tif (!this.data['obj' + part][doc[field]]) {\r\n\t\t\t\t\tthis.data['obj' + part][doc[field]] = doc;\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tfor (let each in doc) {\r\n\t\t\t\t\tthis.data['obj' + part][doc[field]][each] = doc[each];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(this.data['opts'+part].groups){\r\n\t\t\t\tfor(let key in this.data['opts'+part].groups){\r\n\t\t\t\t\tlet to_have = true;\r\n\t\t\t\t\tlet g = this.data['opts'+part].groups[key];\r\n\t\t\t\t\tif(typeof g.ignore == 'function' && g.ignore(doc)) to_have = false;\r\n\t\t\t\t\tif(typeof g.allow == 'function' && !g.allow(doc)) to_have = false;\r\n\t\t\t\t\tif(!this.data['obj' + part][key]){\r\n\t\t\t\t\t\tthis.data['obj' + part][key] = {};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet fields:any = {};\r\n\t\t\t\t\tlet set = (field:any) => {\r\n\t\t\t\t\t\tfields[field] = true;\r\n\t\t\t\t\t\tif(!field) return;\r\n\t\t\t\t\t\tif(!Array.isArray(this.data['obj' + part][key][field])){\r\n\t\t\t\t\t\t\tthis.data['obj' + part][key][field] = [];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(to_have){\r\n\t\t\t\t\t\t\tfor (let i = this.data['obj' + part][key][field].length-1; i >= 0; i--){\r\n\t\t\t\t\t\t\t if(this.data['obj' + part][key][field][i]._id == doc._id) return;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tthis.data['obj' + part][key][field].push(doc);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tfor (let i = this.data['obj' + part][key][field].length-1; i >= 0; i--){\r\n\t\t\t\t\t\t\t if(this.data['obj' + part][key][field][i]._id == doc._id){\r\n\t\t\t\t\t\t\t \tthis.data['obj' + part][key][field].splice(i, 1);\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(typeof g.sort == 'function'){\r\n\t\t\t\t\t\t\tthis.data['obj' + part][key][field].sort(g.sort);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tset(g.field(doc, set.bind(this)));\r\n\t\t\t\t\tfor (let field in this.data['obj' + part][key]){\r\n\t\t\t\t\t\tif(fields[field]) continue;\r\n\t\t\t\t\t\tfor (let i = this.data['obj' + part][key][field].length-1; i >= 0; i--){\r\n\t\t\t\t\t\t\tif(this.data['obj' + part][key][field][i]._id == doc._id){\r\n\t\t\t\t\t\t\t\tthis.data['obj' + part][key][field].splice(i, 1);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(this.data['opts'+part].query){\r\n\t\t\t\tfor(let key in this.data['opts'+part].query){\r\n\t\t\t\t\tlet to_have = true;\r\n\t\t\t\t\tlet query = this.data['opts'+part].query[key];\r\n\t\t\t\t\tif(typeof query.ignore == 'function' && query.ignore(doc)) to_have = false;\r\n\t\t\t\t\tif(typeof query.allow == 'function' && !query.allow(doc)) to_have = false;\r\n\t\t\t\t\tif(!this.data['obj' + part][key]){\r\n\t\t\t\t\t\tthis.data['obj' + part][key] = [];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(to_have){\r\n\t\t\t\t\t\tfor (let i = this.data['obj' + part][key].length-1; i >= 0; i--){\r\n\t\t\t\t\t\t if(this.data['obj' + part][key][i]._id == doc._id) return;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.data['obj' + part][key].push(doc);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfor (let i = this.data['obj' + part][key].length-1; i >= 0; i--){\r\n\t\t\t\t\t\t if(this.data['obj' + part][key][i]._id == doc._id){\r\n\t\t\t\t\t\t \tthis.data['obj' + part][key].splice(i, 1);\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof query.sort == 'function'){\r\n\t\t\t\t\t\tthis.data['obj' + part][key].sort(query.sort);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\tpublic push(part:any, doc:any):any{\r\n\t\t\tif(!this.data['arr' + part]) this.data['arr' + part] = [];\r\n\t\t\tif(!this.data['obj' + part]) this.data['obj' + part] = {};\r\n\t\t\tif(!this.data['opts' + part]) this.data['opts' + part] = {};\r\n\t\t\tif(this.data['obj' + part][doc._id]) return this.renew(part, doc);\r\n\t\t\tif(this.data['opts' + part].replace){\r\n\t\t\t\tfor(let key in this.data['opts'+part].replace){\r\n\t\t\t\t\tthis.replace(doc, key, this.data['opts'+part].replace[key]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(this.data['opts'+part].populate){\r\n\t\t\t\tlet p = this.data['opts'+part].populate;\r\n\t\t\t\tif(Array.isArray(p)){\r\n\t\t\t\t\tfor(let i = 0; i < p.length; i++){\r\n\t\t\t\t\t\tif(typeof p == 'object' && p[i].field && p[i].part){\r\n\t\t\t\t\t\t\tthis.populate(doc, p[i].field, p[i].part);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}else if(typeof p == 'object' && p.field && p.part){\r\n\t\t\t\t\tthis.populate(doc, p.field, p.part);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.data['arr' + part].push(doc);\r\n\t\t\tif(this.data['opts'+part].sort){\r\n\t\t\t\tthis.data['arr' + part].sort(this.data['opts'+part].sort);\r\n\t\t\t}\r\n\t\t\tthis.data['obj' + part][doc._id] = doc;\r\n\t\t\tif(Array.isArray(this.data['opts'+part].use)){\r\n\t\t\t\tfor (let i = 0; i < this.data['opts'+part].use.length; i++){\r\n\t\t\t\t this.data['obj' + part][doc[this.data['opts'+part].use[i]]] = doc;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(this.data['opts'+part].groups){\r\n\t\t\t\tfor(let key in this.data['opts'+part].groups){\r\n\t\t\t\t\tlet g = this.data['opts'+part].groups[key];\r\n\t\t\t\t\tif(typeof g.ignore == 'function' && g.ignore(doc)) continue;\r\n\t\t\t\t\tif(typeof g.allow == 'function' && !g.allow(doc)) continue;\r\n\t\t\t\t\tif(!this.data['obj' + part][key]){\r\n\t\t\t\t\t\tthis.data['obj' + part][key] = {};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet set = (field:any) => {\r\n\t\t\t\t\t\tif(!field) return;\r\n\t\t\t\t\t\tif(!Array.isArray(this.data['obj' + part][key][field])){\r\n\t\t\t\t\t\t\tthis.data['obj' + part][key][field] = [];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.data['obj' + part][key][field].push(doc);\r\n\t\t\t\t\t\tif(typeof g.sort == 'function'){\r\n\t\t\t\t\t\t\tthis.data['obj' + part][key][field].sort(g.sort);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tset(g.field(doc, (field:any)=>{\r\n\t\t\t\t\t\tset(field);\r\n\t\t\t\t\t}));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (this.data['opts' + part].query) {\r\n\t\t\t\tfor (let key in this.data['opts' + part].query) {\r\n\t\t\t\t\tlet query = this.data['opts' + part].query[key];\r\n\t\t\t\t\tif (typeof query.ignore == 'function' && query.ignore(doc)) continue;\r\n\t\t\t\t\tif (typeof query.allow == 'function' && !query.allow(doc)) continue;\r\n\t\t\t\t\tif (!this.data['obj' + part][key]) {\r\n\t\t\t\t\t\tthis.data['obj' + part][key] = [];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.data['obj' + part][key].push(doc);\r\n\t\t\t\t\tif (typeof query.sort == 'function') {\r\n\t\t\t\t\t\tthis.data['obj' + part][key].sort(query.sort);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfor (let i = 0; i < this.data['opts' + part].fields.length; i++) {\r\n\t\t\t\tconst field = this.data['opts' + part].fields[i];\r\n\t\t\t\tif (!this.data['obj' + part][doc[field]]) {\r\n\t\t\t\t\tthis.data['obj' + part][doc[field]] = doc;\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tfor (let each in doc) {\r\n\t\t\t\t\tthis.data['obj' + part][doc[field]][each] = doc[each];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.store.setJson('mongo' + part, this.data['arr' + part]);\r\n\t\t};\r\n\t\tpublic remove(part:any, doc:any){\r\n\t\t\tif(!Array.isArray(this.data['arr' + part])) return;\r\n\t\t\tfor (let i = 0; i < this.data['arr' + part].length; i++) {\r\n\t\t\t\tif (this.data['arr' + part][i]._id == doc._id) {\r\n\t\t\t\t\tthis.data['arr' + part].splice(i, 1);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tdelete this.data['obj' + part][doc._id];\r\n\t\t\tfor (let i = 0; i < this.data['opts' + part].fields.length; i++) {\r\n\t\t\t\tconst field = this.data['opts' + part].fields[i];\r\n\t\t\t\tdelete this.data['obj' + part][doc[field]];\r\n\t\t\t}\r\n\t\t\tif(this.data['opts'+part].groups){\r\n\t\t\t\tfor(let key in this.data['opts'+part].groups){\r\n\t\t\t\t\tfor(let field in this.data['obj' + part][key]){\r\n\t\t\t\t\t\tfor (let i = this.data['obj' + part][key][field].length-1; i >= 0 ; i--) {\r\n\t\t\t\t\t\t\tif (this.data['obj' + part][key][field][i]._id == doc._id) {\r\n\t\t\t\t\t\t\t\tthis.data['obj' + part][key][field].splice(i, 1);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(this.data['opts'+part].query){\r\n\t\t\t\tfor(let key in this.data['opts'+part].query){\r\n\t\t\t\t\tfor (let i = this.data['obj' + part][key].length-1; i >= 0 ; i--) {\r\n\t\t\t\t\t\tif (this.data['obj' + part][key][i]._id == doc._id) {\r\n\t\t\t\t\t\t\tthis.data['obj' + part][key].splice(i, 1);\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t/*\r\n\t*\tEndof Mongo Service\r\n\t*/\r\n\tconstructor(\r\n\t\tprivate store: StoreService,\r\n\t\tprivate http: HttpService,\r\n\t\tprivate core: CoreService\r\n\t) {\r\n\t\tthis.core.next('socket', (socket:any)=>{\r\n\t\t\tthis.socket = socket;\r\n\t\t\tsocket.on('create', (created:any) => {\r\n\t\t\t\tthis.fetch(created.part, {\r\n\t\t\t\t\tforce: true,\r\n\t\t\t\t\tquery: {\r\n\t\t\t\t\t\t_id: created._id\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\tsocket.on('update', (updated:any) => {\r\n\t\t\t\tthis.fetch(updated.part, {\r\n\t\t\t\t\tforce: true,\r\n\t\t\t\t\tquery: {\r\n\t\t\t\t\t\t_id: updated._id\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\tsocket.on('delete', (deleted:any) => {\r\n\t\t\t\tthis.remove(deleted.part, deleted);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class RenderService {\r\n\tconstructor() {}\r\n\tprivate pipes:any = {};\r\n\ton(event: string, cb: any){\r\n\t\tif(!this.pipes[event]) this.pipes[event] = [];\r\n\t\tthis.pipes[event].push(cb);\r\n\t\tconst index = this.pipes[event].length-1;\r\n\t\treturn ()=>{\r\n\t\t\tthis.pipes[event][index] = false;\r\n\t\t};\r\n\t}\r\n\trender(event = '', param = null){\r\n\t\tif(!this.pipes[event]) return;\r\n\t\tfor(let i = 0; i < this.pipes[event].length; i++){\r\n\t\t\tif(typeof this.pipes[event][i] === 'function'){\r\n\t\t\t\tthis.pipes[event][i](param);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","// find . -name \"*.spec.ts\" -type f -delete\r\nimport { Injectable } from '@angular/core';\r\nimport { CoreService } from './core.service';\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class HashService {\r\n\tprivate replaces = [{\r\n\t\tfrom: '%20',\r\n\t\tto: ' '\r\n\t}];\r\n\tpublic hash:any = {};\r\n\tprivate done: boolean = false;\r\n\tconstructor(public core: CoreService) {\r\n\t\tif(!this.core.window.location.hash){\r\n\t\t\tthis.done = true;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.load();\r\n\t\tthis.done = true;\r\n\t}\r\n\tload(){\r\n\t\tthis.hash = {};\r\n\t\tlet hash:any = this.core.window.location.hash.replace('#!#', '').replace('#', '').split('&');\r\n\t\tfor(let i = 0; i < hash.length; i++){\r\n\t\t\tlet holder = hash[i].split('=')[0];\r\n\t\t\tlet value = hash[i].split('=')[1];\r\n\t\t\tfor(let j = 0; j < this.replaces.length; j++){\r\n\t\t\t\tholder = holder.split(this.replaces[j].from).join(this.replaces[j].to);\r\n\t\t\t\tvalue = value.split(this.replaces[j].from).join(this.replaces[j].to);\r\n\t\t\t}\r\n\t\t\tthis.hash[holder] = value;\r\n\t\t}\r\n\t}\r\n\ton(field:any, cb = (resp:any)=>{}):any{\r\n\t\tif(!this.done) return setTimeout(()=>{\r\n\t\t\tthis.on(field, cb);\r\n\t\t}, 100);\r\n\t\tcb(this.hash[field]);\r\n\t}\r\n\tsave(){\r\n\t\tlet hash = '';\r\n\t\tfor(let each in this.hash){\r\n\t\t\tif(hash) hash += '&';\r\n\t\t\thash += each + '=' + this.hash[each];\r\n\t\t}\r\n\t\tthis.core.window.location.hash = hash;\r\n\t}\r\n\tset(field:any, value:any){\r\n\t\tthis.hash[field] = value;\r\n\t\tthis.save();\r\n\t}\r\n\tget(field:any){\r\n\t\treturn this.hash[field];\r\n\t}\r\n\tclear(field?:any){\r\n\t\tif(field) delete this.hash[field];\r\n\t\telse this.hash = {};\r\n\t\tthis.save();\r\n\t}\r\n}\r\n","import {\r\n\tInjectable,\r\n\tInjector,\r\n\tComponentFactoryResolver,\r\n\tComponentRef,\r\n\tEmbeddedViewRef,\r\n\tApplicationRef\r\n} from '@angular/core';\r\nimport { CoreService } from './core.service';\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class DomService {\r\n\tconstructor(private componentFactoryResolver: ComponentFactoryResolver,\r\n\t\tprivate appRef: ApplicationRef,\r\n\t\tprivate injector: Injector,\r\n\t\tprivate core: CoreService) { }\r\n\t/**\r\n\t* Appends a component to body currently\r\n\t*/\r\n\t\tappendById(component: any, options: any = {}, id:any) {\r\n\t\t\tconst componentRef = this.componentFactoryResolver.resolveComponentFactory(component).create(this.injector);\r\n\t\t\tthis.projectComponentInputs(componentRef, options);\r\n\t\t\tthis.appRef.attachView(componentRef.hostView);\r\n\t\t\tconst domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n\t\t\tlet element = this.core.document.getElementById(id);\r\n\t\t\tif(element && typeof element.appendChild == 'function'){\r\n\t\t\t\telement.appendChild(domElem);\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tnativeElement: domElem,\r\n\t\t\t\tcomponentRef: componentRef\r\n\t\t\t};\r\n\t\t}\r\n\t/**\r\n\t* Appends a component to body currently\r\n\t*/\r\n\t\tprivate providedIn:any = {};\r\n\t\tappendComponent(component: any, options: any = {}, element = this.core.document.body) {\r\n\t\t\tif(options.providedIn){\r\n\t\t\t\tif(this.providedIn[options.providedIn]) return;\r\n\t\t\t\tthis.providedIn[options.providedIn] = true;\r\n\t\t\t}\r\n\t\t\tconst componentRef = this.componentFactoryResolver.resolveComponentFactory(component).create(this.injector);\r\n\t\t\tthis.projectComponentInputs(componentRef, options);\r\n\t\t\tthis.appRef.attachView(componentRef.hostView);\r\n\t\t\tconst domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n\t\t\tif(element && typeof element.appendChild == 'function'){\r\n\t\t\t\telement.appendChild(domElem);\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tnativeElement: domElem,\r\n\t\t\t\tcomponentRef: componentRef\r\n\t\t\t};\r\n\t\t}\r\n\t/**\r\n\t* Projects the inputs onto the component\r\n\t*/\r\n\t\tprojectComponentInputs(component: ComponentRef<any>, options: any): ComponentRef<any> {\r\n\t\t\tif(options) {\r\n\t\t\t\tconst props = Object.getOwnPropertyNames(options);\r\n\t\t\t\tfor(const prop of props) {\r\n\t\t\t\t\tcomponent.instance[prop] = options[prop];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn component;\r\n\t\t}\r\n\t/*\r\n\t*\tEnd of Dom Service\r\n\t*/\r\n}\r\n\r\n/*\r\nhttps://stackoverflow.com/questions/39857222/angular2-dynamic-component-injection-in-root/40687392#40687392\r\nhttps://gist.github.com/reed-lawrence/1f6b7c328ad3886e60dc2b0adcf75a97\r\n*/","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n\tselector: 'lib-wrapper',\r\n\ttemplateUrl: './wrapper.component.html',\r\n\tstyleUrls: ['./wrapper.component.scss']\r\n})\r\nexport class WrapperComponent{\r\n\tconstructor() {}\r\n}\r\n","<div>\r\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-bottomRight\" id=\"bottomRight\"></div>\r\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-bottomLeft\" id=\"bottomLeft\"></div>\r\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-topRight\" id=\"topRight\"></div>\r\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-topLeft\" id=\"topLeft\"></div>\r\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-topCenter\" id=\"topCenter\"></div>\r\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-bottomCenter\" id=\"bottomCenter\"></div>\r\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-center\" id=\"center\"></div>\r\n\t<!-- [bottomRight, bottomLeft, topRight, topLeft, topCenter, bottomCenter or center] -->\r\n</div>\r\n","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from '../interfaces/config';\r\nimport { AlertComponent } from '../components/alert/alert.component';\r\nimport { WrapperComponent } from '../components/alert/wrapper/wrapper.component';\r\nimport { DomService } from './dom.service';\r\nimport { CoreService } from './core.service';\r\nimport { Alert, DEFAULT_Alert } from '../interfaces/alert.interface';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class AlertService {\r\n\tprivate alert:any;\r\n\tconstructor(private dom: DomService, private core: CoreService,\r\n\t\t@Inject(CONFIG_TOKEN) @Optional() private config: Config) {\r\n\t\tif(!this.config) this.config = DEFAULT_CONFIG;\r\n\t\tthis.alert = this.config.alert;\r\n\t\tif(!this.alert) {\r\n\t\t\tthis.alert = DEFAULT_Alert;\r\n\t\t} else {\r\n\t\t\tfor (let each in DEFAULT_Alert){\r\n\t\t\t\tif(this.alert[each]) continue;\r\n\t\t\t this.alert[each] = DEFAULT_Alert[each];\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.dom.appendComponent(WrapperComponent);\r\n\t}\r\n\tprivate uniques:any = {};\r\n\tprivate shortcuts:any = {\r\n\t\ttl: \"topLeft\",\r\n\t\ttc: \"topCenter\",\r\n\t\ttr: \"topRight\",\r\n\t\tr: \"right\",\r\n\t\tbr: \"bottomRight\",\r\n\t\tbc: \"bottomCenter\",\r\n\t\tbl: \"bottomLeft\",\r\n\t\tl: \"left\",\r\n\t\tc: \"center\"\r\n\t};\r\n\tshow(opts: any | Alert){\r\n\t\tif (typeof opts === 'string') {\r\n\t\t\topts = {\r\n\t\t\t\ttext: opts\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!opts) opts = {};\r\n\t\tif (!opts['type']) opts['type'] = 'info';\r\n\t\tfor (let each in this.alert){\r\n\t\t\tif(each==\"class\") opts[each] = opts[each]+\" \"+this.alert[each];\r\n\t\t\telse if(typeof opts[each] == \"undefined\") opts[each] = this.alert[each];\r\n\t\t}\r\n\t\tif(this.shortcuts[opts.position]) opts.position = this.shortcuts[opts.position];\r\n\t\tif(!opts.position) opts.position='bottomRight';\r\n\t\tvar content:any;\r\n\t\topts.close = ()=>{\r\n\t\t\tif(content) content.componentRef.destroy();\r\n\t\t\tcomponent.nativeElement.remove();\r\n\t\t\tif (typeof (opts as Alert).onClose == 'function') (opts as Alert).onClose();\r\n\t\t};\r\n\t\tlet component = this.dom.appendById(AlertComponent, opts, opts.position);\r\n\t\tif(typeof opts.component == 'string' && this.alert.alerts[opts.component]){\r\n\t\t\topts.component = this.alert.alerts[opts.component];\r\n\t\t}\r\n\t\tif(typeof opts.component == 'function'){\r\n\t\t\tcontent = this.dom.appendComponent(opts.component, opts, component.nativeElement.children[0].children[0].children[0] as HTMLElement);\r\n\t\t}\r\n\t\tif(opts.unique){\r\n\t\t\tif(this.uniques[opts.unique]) this.uniques[opts.unique].remove();\r\n\t\t\tthis.uniques[opts.unique] = component.nativeElement;\r\n\t\t}\r\n\t\treturn component.nativeElement;\r\n\t}\r\n\topen(opts: Alert){ this.show(opts); }\r\n\tinfo(opts: Alert){\r\n\t\topts['type']='info';\r\n\t\tthis.show(opts);\r\n\t}\r\n\tsuccess(opts: Alert){\r\n\t\topts['type']='success';\r\n\t\tthis.show(opts);\r\n\t}\r\n\twarning(opts: Alert){\r\n\t\topts['type']='warning';\r\n\t\tthis.show(opts);\r\n\t}\r\n\terror(opts: Alert){\r\n\t\topts['type']='error';\r\n\t\tthis.show(opts);\r\n\t}\r\n\tquestion(opts: Alert){\r\n\t\topts['type']='question';\r\n\t\tthis.show(opts);\r\n\t}\r\n\tdestroy(){\r\n\t\tthis.core.document.getElementById(\"bottomRight\").innerHTML = \"\";\r\n\t\tthis.core.document.getElementById(\"bottomLeft\").innerHTML = \"\";\r\n\t\tthis.core.document.getElementById(\"bottomCenter\").innerHTML = \"\";\r\n\t\tthis.core.document.getElementById(\"topRight\").innerHTML = \"\";\r\n\t\tthis.core.document.getElementById(\"topLeft\").innerHTML = \"\";\r\n\t\tthis.core.document.getElementById(\"topCenter\").innerHTML = \"\";\r\n\t\tthis.core.document.getElementById(\"center\").innerHTML = \"\";\r\n\t}\r\n}\r\n","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from '../interfaces/config';\r\nimport { LoaderComponent } from '../components/loader/loader.component';\r\nimport { DomService } from './dom.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class LoaderService {\r\n\tpublic loaders:any = [];\r\n\tconstructor(private dom: DomService,\r\n\t\t@Inject(CONFIG_TOKEN) @Optional() private config: Config) {\r\n\t}\r\n\tshow(opts?:any){\r\n\t\tlet component:any;\r\n\t\topts.close = ()=>{\r\n\t\t\tif(component) component.componentRef.destroy();\r\n\t\t\tcomponent.nativeElement.remove();\r\n\t\t\tif(typeof opts.onClose == 'function') opts.onClose();\r\n\t\t};\r\n\t\tif(opts.append){\r\n\t\t\tcomponent = this.dom.appendComponent(LoaderComponent, opts, opts.append);\r\n\t\t}\r\n\t\telse{\r\n\t\t\tcomponent = this.dom.appendComponent(LoaderComponent, opts);\r\n\t\t}\r\n\t\tthis.loaders.push(component);\r\n\t\treturn component.nativeElement;\r\n\t}\r\n\tdestroy(){\r\n\t\tfor (let i = this.loaders.length-1; i >= 0; i--){\r\n\t\t this.loaders[i].componentRef.destroy();\r\n\t\t\tthis.loaders.splice(i,1);\r\n\t\t}\r\n\t}\r\n}\r\n","import { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from '../interfaces/config';\r\nimport { Injectable, Inject, Optional } from '@angular/core';\r\nimport { CoreService } from './core.service';\r\nimport * as io from \"socket.io-client\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class SocketService {\r\n\tprivate _url = '';\r\n\r\n\tsetUrl(url: string): void {\r\n\t\tthis._url = url;\r\n\r\n\t\tif (!this._config.socket) {\r\n\t\t\tthis._config.socket = true;\r\n\t\t}\r\n\r\n\t\tthis.load();\r\n\t}\r\n\r\n\tprivate _io:any;\r\n\r\n\tprivate _connected = false;\r\n\r\n\tprivate _opts: any = {};\r\n\r\n\tload(){\r\n\t\tif (io) {\r\n\t\t\tconst ioFunc = (io as any).default ? (io as any).default : io;\r\n\r\n\t\t\tthis._io = ioFunc(this._url, this._opts);\r\n\r\n\t\t\tthis._io.on('connect', (socket:any) => {\r\n\t\t\t\tthis._connected = true;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tconstructor(\r\n\t\t@Inject(CONFIG_TOKEN) @Optional() private _config: Config,\r\n\t\tprivate _core: CoreService\r\n\t){\r\n\t\tthis._core.done('socket', this);\r\n\r\n\t\tthis._url = this._core.window.location.origin.replace('4200', '8080');\r\n\r\n\t\tif(!this._config) this._config = DEFAULT_CONFIG;\r\n\r\n\t\tif (typeof this._config.socket === 'object') {\r\n\t\t\tif (this._config.socket.url) {\r\n\t\t\t\tthis._url = this._config.socket.url;\r\n\t\t\t}\r\n\r\n\t\t\tif (this._config.socket.opts) {\r\n\t\t\t\tthis._opts = this._config.socket.opts;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(this._config.socket){\r\n\t\t\tthis.load();\r\n\t\t}\r\n\t}\r\n\r\n\ton(to:any, cb = (message:any)=>{}):any{\r\n\t\tif(!this._config.socket) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif(!this._connected){\r\n\t\t\treturn setTimeout(()=>{\r\n\t\t\t\tthis.on(to, cb);\r\n\t\t\t}, 100);\r\n\t\t}\r\n\r\n\t\tthis._io.on(to, cb);\r\n\t}\r\n\r\n\temit(to:any, message:any, room:any = false):any{\r\n\t\tif(!this._config.socket) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif(!this._connected){\r\n\t\t\treturn setTimeout(()=>{\r\n\t\t\t\tthis.emit(to, message, room);\r\n\t\t\t}, 100);\r\n\t\t}\r\n\r\n\t\tthis._io.emit(to, message, room);\r\n\t}\r\n}\r\n","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { DomService } from './dom.service';\r\nimport { CoreService } from './core.service';\r\nimport { ModalComponent } from '../components/modal/modal.component';\r\nimport { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from '../interfaces/config';\r\nimport { Modal, DEFAULT_Modal } from '../interfaces/modal.interface';\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ModalService {\r\n\tprivate _modal: any;\r\n\tconstructor(private dom: DomService, private core: CoreService,\r\n\t\t@Inject(CONFIG_TOKEN) @Optional() private config: Config) {\r\n\t\tif(!this.config) this.config={};\r\n\t\tif(!this.config.modal) this.config.modal={};\r\n\t\tif(!this.config.modal.modals) this.config.modal.modals={};\r\n\t\tthis._modal = config.modal;\r\n\t}\r\n\r\n\tshow(opts: Modal | any){\r\n\t\tif(typeof opts == 'string' || typeof opts == 'function'){\r\n\t\t\topts = {\r\n\t\t\t\tcomponent: opts\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(!opts || typeof opts != 'object') opts = {};\r\n\t\tif(typeof opts.component == 'string' && this._modal.modals[opts.component]){\r\n\t\t\topts.component = this._modal.modals[opts.component];\r\n\t\t}\r\n\t\tif(typeof opts.component != 'function'){\r\n\t\t\tconsole.log(\"This component does not exists.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif(!opts.class) opts.class='';\r\n\t\tfor (let each in this.config.modal){\r\n\t\t\tif(each==\"class\") opts.class += (opts.class&&' '||'') + this.config.modal.class;\r\n\t\t\telse if(!opts[each]) opts[each] = this._modal[each];\r\n\t\t}\r\n\t\topts.id = Math.floor(Math.random() * Date.now()) + Date.now();\r\n\t\tthis.opened[opts.id] = opts;\r\n\t\tthis.core.document.body.classList.add(\"modalOpened\");\r\n\t\tlet component:any;\r\n\t\tlet content:any;\r\n\t\topts.close = ()=>{\r\n\t\t\tcontent.componentRef.destroy();\r\n\t\t\tcomponent.nativeElement.remove();\r\n\t\t\tif(typeof opts.onClose == 'function') opts.onClose();\r\n\t\t\tdelete this.opened[opts.id];\r\n\t\t\tif(!Object.keys(this.opened).length){\r\n\t\t\t\tthis.core.document.body.classList.remove(\"modalOpened\");\r\n\t\t\t}\r\n\t\t};\r\n\t\tif(typeof opts.timeout == 'number' && opts.timeout>0){\r\n\t\t\tsetTimeout(opts.close, opts.timeout);\r\n\t\t}\r\n\t\tcomponent = this.dom.appendComponent(ModalComponent, opts);\r\n\t\tcontent = this.dom.appendComponent(opts.component, opts, component.nativeElement.children[0].children[0].children[0] as HTMLElement);\r\n\t\treturn component.nativeElement;\r\n\t}\r\n\topen(opts: Modal){ this.show(opts); }\r\n\tsmall(opts: Modal){\r\n\t\tif(typeof opts == 'string' || typeof opts == 'function'){\r\n\t\t\topts = {\r\n\t\t\t\tcomponent: opts\r\n\t\t\t}\r\n\t\t}\r\n\t\topts.size = 'small';\r\n\t\tthis.show(opts);\r\n\t}\r\n\tmid(opts: Modal){\r\n\t\tif(typeof opts == 'string' || typeof opts == 'function'){\r\n\t\t\topts = {\r\n\t\t\t\tcomponent: opts\r\n\t\t\t}\r\n\t\t}\r\n\t\topts.size = 'mid';\r\n\t\tthis.show(opts);\r\n\t}\r\n\tbig(opts: Modal){\r\n\t\tif(typeof opts == 'string' || typeof opts == 'function'){\r\n\t\t\topts = {\r\n\t\t\t\tcomponent: opts\r\n\t\t\t}\r\n\t\t}\r\n\t\topts.size = 'big';\r\n\t\tthis.show(opts);\r\n\t}\r\n\tfull(opts: Modal){\r\n\t\tif(typeof opts == 'string' || typeof opts == 'function'){\r\n\t\t\topts = {\r\n\t\t\t\tcomponent: opts\r\n\t\t\t}\r\n\t\t}\r\n\t\topts.size = 'full';\r\n\t\tthis.show(opts);\r\n\t}\r\n\tprivate opened:any = {};\r\n\tdestroy(){\r\n\t\tfor (let each in this.opened){\r\n\t\t this.opened[each].close();\r\n\t\t}\r\n\t\tthis.core.document.body.classList.remove(\"modalOpened\");\r\n\t}\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n\tselector: 'lib-files',\r\n\ttemplateUrl: './files.component.html',\r\n\tstyleUrls: ['./files.component.scss']\r\n})\r\nexport class FilesComponent{\r\n\tpublic fs:any;\r\n\tconstructor() {}\r\n}\r\n","<ng-container *ngFor=\"let file of fs.files\">\r\n\t<input [id]=\"file.id\" type=\"file\" name=\"file\" (change)=\"fs.change($event, file); input.value='';\" #input [hidden]=\"true\" [accept]=\"(file.accept) || (file.part && 'image/*') || ''\" [multiple]=\"file.multiple && true || ''\">\r\n</ng-container>","import { FilesComponent } from '../components/files/files.component';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { HttpService } from './http.service';\r\nimport { DomService } from './dom.service';\r\nimport { CoreService } from './core.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { throwError } from 'rxjs'; \r\nimport { catchError } from 'rxjs/operators'; \r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class FileService {\r\n\tprivate added:any = {};\r\n\tprivate files:any = [];\r\n\tconstructor(private dom: DomService, private core: CoreService, private http: HttpService) {\r\n\t\tthis.dom.appendComponent(FilesComponent, {\r\n\t\t\tfs: this\r\n\t\t});\r\n\t}\r\n\t/*\r\n\t*\tInput Management\r\n\t*/\r\n\t\tpublic add(opts:any){\r\n\t\t\tif(typeof opts == 'string'){\r\n\t\t\t\topts = {\r\n\t\t\t\t\tid: opts\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tif(!opts.id) return console.log('You have to pass ID into file object');\r\n\t\t\tif(!opts.type) opts.type='image';\r\n\t\t\tif(typeof opts.resize == 'number'){\r\n\t\t\t\topts.resize = {\r\n\t\t\t\t\twidth: opts.resize,\r\n\t\t\t\t\theight: opts.resize\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tif(this.added[opts.id]){\r\n\t\t\t\tfor (let i = this.files.length-1; i >= 0; i--){\r\n\t\t\t\t if(this.files[i].id == opts.id){\r\n\t\t\t\t \tthis.files.splice(i, 1);\r\n\t\t\t\t }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.files.push(opts);\r\n\t\t\tthis.added[opts.id] = opts;\r\n\t\t\tif(opts.save){\r\n\t\t\t\treturn ()=>{ opts.complete(); };\r\n\t\t\t}\r\n\t\t};\r\n\t\tpublic change(event:any, info:any){\r\n\t\t\tif(info.type == 'image'){\r\n\t\t\t\tif(info.multiple){\r\n\t\t\t\t\tif(typeof info.multiple_cb == 'function'){\r\n\t\t\t\t\t\tinfo.multiple_files = [];\r\n\t\t\t\t\t\tinfo.multiple_counter = event.target.files.length;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (let i = 0; i < event.target.files.length; i++){\r\n\t\t\t\t\t\tthis.process(event.target.files[i], info);\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.process(event.target.files[0], info);\r\n\t\t\t\t}\r\n\t\t\t}else if(info.type == 'file'){\r\n\t\t\t\tif(info.multiple){\r\n\t\t\t\t\tif(typeof info.multiple_cb == 'function'){\r\n\t\t\t\t\t\tinfo.multiple_cb(event.target.files);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (let i = 0; i < event.target.files.length; i++){\r\n\t\t\t\t\t\tif(typeof info.cb == 'function'){\r\n\t\t\t\t\t\t\tinfo.cb(event.target.files[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(typeof info.cb == 'function'){\r\n\t\t\t\t\t\tinfo.cb(event.target.files[0]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(info.part || info.url){\r\n\t\t\t\t\tthis.file(info, event.target.files);\r\n\t\t\t\t}\r\n\t\t\t}else console.log('Provide type `image` or `file` ');\r\n\t\t};\r\n\t\tpublic remove(part:any, url:any, opts:any={}, cb:any=(resp:any)=>{}):any{\r\n\t\t\topts.url = url;\r\n\t\t\tif(opts.save){\r\n\t\t\t\treturn ()=>{\r\n\t\t\t\t\tthis.http.post(opts.api || '/api/'+part+'/file/delete', opts, cb);\r\n\t\t\t\t};\r\n\t\t\t}else{\r\n\t\t\t\tthis.http.post(opts.api || '/api/'+part+'/file/delete', opts, cb);\r\n\t\t\t}\r\n\t\t};\r\n\t\tpublic file(info:any, files:any, cb:any=()=>{}){\r\n\t\t\tlet formData: FormData = new FormData();\r\n\t\t\tif(typeof info.append == 'function'){\r\n\t\t\t\tinfo.append(formData, files);\r\n\t\t\t}else{\r\n\t\t\t\tfor (let i = 0; i < files.length; i++){\r\n\t\t\t\t\tformData.append('file['+i+']', files[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlet body = typeof info.body == 'function' && info.body() || (typeof info.body == 'object' && info.body || {});\r\n\t\t\tfor (let each in body){\r\n\t\t\t formData.append(each, body[each]);\r\n\t\t\t}\r\n\t\t\tif(info.save){\r\n\t\t\t\tinfo.complete = ()=>{\r\n\t\t\t\t\tthis.http.post(info.api || '/api/' + info.part + '/file'+(info.name&&('/'+info.name)||''), formData, resp => {\r\n\t\t\t\t\t\tif(resp && typeof info.resp == 'function') info.resp(resp);\r\n\t\t\t\t\t\tif(resp && typeof cb == 'function') cb(resp);\r\n\t\t\t\t\t});\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tthis.http.post(info.api || '/api/' + info.part + '/file'+(info.name&&('/'+info.name)||''), formData, resp => {\r\n\t\t\t\t\tif(resp && typeof info.resp == 'function') info.resp(resp);\r\n\t\t\t\t\tif(resp && typeof cb == 'function') cb(resp);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t\tpublic image(info:any, resp:any=()=>{}):any{\r\n\t\t\tif(info.save){\r\n\t\t\t\treturn ()=>{\r\n\t\t\t\t\tthis.http.post(info.api||'/api/'+info.part+'/file'+(info.name&&('/'+info.name)||''), info, resp);\r\n\t\t\t\t};\r\n\t\t\t}else{\r\n\t\t\t\tthis.http.post(info.api||'/api/'+info.part+'/file'+(info.name&&('/'+info.name)||''), info, resp);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t};\r\n\t/*\r\n\t*\tCommon Management\r\n\t*/\r\n\t\tprivate update(dataUrl:any, info:any, file:any){\r\n\t\t\tif(typeof info.cb == 'function'){\r\n\t\t\t\tinfo.cb(dataUrl, file);\r\n\t\t\t}\r\n\t\t\tif(typeof info.multiple_cb == 'function'){\r\n\t\t\t\tinfo.multiple_files.push({dataUrl: dataUrl, file: file});\r\n\t\t\t\tif(--info.multiple_counter == 0) info.multiple_cb(info.multiple_files);\r\n\t\t\t}\r\n\t\t\tif(!info.part) return;\r\n\t\t\tlet obj = typeof info.body == 'function' && info.body() || {};\r\n\t\t\tobj.dataUrl = dataUrl;\r\n\t\t\tif(info.save){\r\n\t\t\t\tinfo.complete = ()=>{\r\n\t\t\t\t\tthis.http.post(info.api||'/api/'+info.part+'/file'+(info.name&&('/'+info.name)||''), obj, resp => {\r\n\t\t\t\t\t\tif(resp && typeof info.cb == 'function') info.cb(resp);\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\t\t\t}else{\r\n\t\t\t\tthis.http.post(info.api||'/api/'+info.part+'/file'+(info.name&&('/'+info.name)||''), obj, resp => {\r\n\t\t\t\t\tif(resp && typeof info.cb == 'function') info.cb(resp);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t\tprivate process(file:any, info:any){\r\n\t\t\tif(file.type.indexOf(\"image/\")!=0){\r\n\t\t\t\tif(typeof info.cb == 'function'){\r\n\t\t\t\t\tinfo.cb(false, file);\r\n\t\t\t\t}\r\n\t\t\t\tif(typeof info.multiple_cb == 'function'){\r\n\t\t\t\t\tinfo.multiple_files.push({file: file});\r\n\t\t\t\t\tif(--info.multiple_counter == 0) info.multiple_cb(info.multiple_files);\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif(info.resize){\r\n\t\t\t\tinfo.resize.width = info.resize.width || 1920;\r\n\t\t\t\tinfo.resize.height = info.resize.height || 1080;\r\n\t\t\t}\r\n\t\t\tlet reader = new FileReader();\r\n\t\t\treader.onload = (loadEvent:any)=>{\r\n\t\t\t\tif(!info.resize){\r\n\t\t\t\t\treturn this.update(loadEvent.target.result, info, file);\r\n\t\t\t\t}\r\n\t\t\t\tlet canvasElement = this.core.document.createElement('canvas');\r\n\t\t\t\tlet imageElement = this.core.document.createElement('img');\r\n\t\t\t\timageElement.onload = ()=>{\r\n\t\t\t\t\tlet infoRatio = info.resize.width / info.resize.height;\r\n\t\t\t\t\tlet imgRatio = imageElement.width / imageElement.height;\r\n\t\t\t\t\tlet width, height;\r\n\t\t\t\t\tif (imgRatio > infoRatio) {\r\n\t\t\t\t\t\twidth = info.resize.width;\r\n\t\t\t\t\t\theight = width / imgRatio;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\theight = info.resize.height;\r\n\t\t\t\t\t\twidth = height * imgRatio;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcanvasElement.width = width;\r\n\t\t\t\t\tcanvasElement.height = height;\r\n\t\t\t\t\tlet context = canvasElement.getContext('2d');\r\n\t\t\t\t\tcontext.drawImage(imageElement, 0, 0 , width, height);\r\n\t\t\t\t\tlet dataUrl = canvasElement.toDataURL('image/jpeg', 1);\r\n\t\t\t\t\treturn this.update(dataUrl, info, file);\r\n\t\t\t\t};\r\n\t\t\t\timageElement.src = loadEvent.target.result;\r\n\t\t\t};\r\n\t\t\treader.readAsDataURL(file);\r\n\t\t};\r\n\t/*\r\n\t*\tEnd Of\r\n\t*/\r\n}","import { Injectable } from '@angular/core';\r\nimport { CoreService } from './core.service';\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class UiService {\r\n\tpublic var:any = {};\r\n\tconstructor(public core: CoreService) {\r\n\t\tthis.variables = this.core.localStorage.getItem('css_variables') && JSON.parse(this.core.localStorage.getItem('css_variables')) || {}\r\n\t\tfor (let key in this.variables) {\r\n\t\t\tthis.setProperty(key, this.variables[key]);\r\n\t\t}\r\n\t}\r\n\t/* Forms Management */\r\n\t\tprivate _forms:any = {};\r\n\t\tpublic form(id:any){\r\n\t\t\tif(typeof id != 'string') return {};\r\n\t\t\tif(!this._forms[id]) this._forms[id]={};\r\n\t\t\t// add more cool things or submiting, etc\r\n\t\t\treturn this._forms[id];\r\n\t\t}\r\n\t\tpublic valid(value:any, kind = 'email', extra = 0) {\r\n\t\t\tif(kind === 'email') {\r\n\t\t\t\treturn /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,10})+$/.test(value||'');\r\n\t\t\t} else if(kind === 'text') {\r\n\t\t\t\treturn typeof value == 'string';\r\n\t\t\t} else if(kind === 'array') {\r\n\t\t\t\treturn Array.isArray(value);\r\n\t\t\t} else if(kind === 'object') {\r\n\t\t\t\tif (typeof value === 'object' && !Array.isArray(value) && value !== null) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t} else if(kind === 'number') {\r\n\t\t\t\treturn typeof value == 'number';\r\n\t\t\t} else if (kind === 'password' && extra) {\r\n\t\t\t\tif(!value) return false;\r\n\t\t\t\tif(extra === 1) {\r\n\t\t\t\t\treturn /^((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9]))/.test(value||'');\r\n\t\t\t\t} else if(extra === 2) {\r\n\t\t\t\t\treturn /^(((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{8,})/.test(value||'');\r\n\t\t\t\t} else if(extra === 3) {\r\n\t\t\t\t\treturn /^((?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]))(?=.{8,})/.test(value||'');\r\n\t\t\t\t} else if(extra === 4) {\r\n\t\t\t\t\treturn /^((?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[@#$%&!-_]))(?=.{8,})/.test(value||'');\r\n\t\t\t\t} else return !!value;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tpublic level(value = ''){\r\n\t\t\tif ( !value ) return 0;\r\n\t\t\tlet level = 0;\r\n\t\t\tif (value.length > 8) {\r\n\t\t\t\tlevel++;\r\n\t\t\t}\r\n\t\t\tif (/[a-z]/.test(value)) {\r\n\t\t\t\tlevel++;\r\n\t\t\t}\r\n\t\t\tif (/[A-Z]/.test(value)) {\r\n\t\t\t\tlevel++;\r\n\t\t\t}\r\n\t\t\tif (/[1-9]/.test(value)) {\r\n\t\t\t\tlevel++;\r\n\t\t\t}\r\n\t\t\tif (/[`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/.test(value)) {\r\n\t\t\t\tlevel++;\r\n\t\t\t}\r\n\t\t\treturn level;\r\n\t\t}\r\n\t/* Css Management*/\r\n\t\tprivate variables:any = {};\r\n\t\tprivate save() {\r\n\t\t\tthis.core.localStorage.setItem('css_variables', JSON.stringify(this.variables));\r\n\t\t}\r\n\t\tprivate setProperty(key:any, value:any) {\r\n\t\t\tthis.core.document.documentElement.style.setProperty(key, value);\r\n\t\t}\r\n\t\tpublic set(variables:any, opts:any={}) {\r\n\t\t\tif(typeof opts == 'string') {\r\n\t\t\t\tif(opts == 'local') opts = {local: true};\r\n\t\t\t\telse{\r\n\t\t\t\t\topts = { host: opts };\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(opts.host && this.core.window.location.host != opts.host) return;\r\n\t\t\tif(Array.isArray(variables)) {\r\n\t\t\t\tfor (let i = 0; i < variables.length; i++) {\r\n\t\t\t\t\tif( opts.local ) {\r\n\t\t\t\t\t\tthis.variables[variables[i].key] = variables[variables[i].value];\r\n\t\t\t\t\t} else if( this.variables[variables[i].key] ) continue;\r\n\t\t\t\t\tthis.setProperty(variables[i].key, variables[i].value);\r\n\t\t\t\t}\r\n\t\t\t} else if(typeof variables == 'object') {\r\n\t\t\t\tfor (let key in variables) {\r\n\t\t\t\t\tif(opts.local) {\r\n\t\t\t\t\t\tthis.variables[key] = variables[key];\r\n\t\t\t\t\t} else if( this.variables[key] ) continue;\r\n\t\t\t\t\tthis.setProperty(key, variables[key]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(opts.local) this.save();\r\n\t\t}\r\n\t\tpublic get() { return this.variables };\r\n\t\tpublic remove(key:any) {\r\n\t\t\tif(typeof key == 'string') key = key.split(' ');\r\n\t\t\tfor (let i = 0; i < key.length; i++) {\r\n\t\t\t\tdelete this.variables[key[i]];\r\n\t\t\t}\r\n\t\t\tthis.save();\r\n\t\t}\r\n\t\tpublic arr(arrLen=10, type:any='number') {\r\n\t\t\tlet arr = [];\r\n\t\t\tfor (let i = 0; i < arrLen; i++) {\r\n\t\t\t\tif(type == 'number') {\r\n\t\t\t\t\tarr.push(i+1);\r\n\t\t\t\t} else if (type == 'text') {\r\n\t\t\t\t\tarr.push(this.text());\r\n\t\t\t\t} else if(type == 'date') {\r\n\t\t\t\t\tarr.push(new Date(new Date().getTime()+(i*86400000)));\r\n\t\t\t\t} else{\r\n\t\t\t\t\tarr.push(type);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn arr;\r\n\t\t}\r\n\t\tpublic text(arrLen=10) {\r\n\t\t\tlet result = '';\r\n\t\t\tlet characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n\t\t\tlet charactersLength = characters.length;\r\n\t\t\tfor ( let i = 0; i < arrLen; i++ ) {\r\n\t\t\t\tresult += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n\t\t\t}\r\n\t\t\treturn result;\r\n\t\t}\r\n\t/* End Of Management*/\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class TimeService {\r\n\tconstructor() {}\r\n\tday(which:any, format='WeekDay'){\r\n\t\treturn this.WeekDay[which];\r\n\t}\r\n\tprivate WeekDay:any = {\r\n\t\t\"0\": \"Monday\",\r\n\t\t\"1\": \"Tuesday\",\r\n\t\t\"2\": \"Wednesday\",\r\n\t\t\"3\": \"Thursday\",\r\n\t\t\"4\": \"Friday\",\r\n\t\t\"5\": \"Saturday\",\r\n\t\t\"6\": \"Sunday\"\r\n\t};\r\n}\r\n","/* initialize */\r\nimport { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from './interfaces/config';\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { MetaService } from './services/meta.service';\r\nimport { MetaGuard } from './guard/meta.guard';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n/* directives */\r\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\r\nconst DIRECTIVES = [ClickOutsideDirective];\r\n\r\n/* pipes */\r\nimport { ArrPipe } from './pipes/arr.pipe';\r\nimport { SafePipe } from './pipes/safe.pipe';\r\nimport { SplicePipe } from './pipes/splice.pipe';\r\nimport { SearchPipe } from './pipes/search.pipe';\r\nimport { MongodatePipe } from './pipes/mongodate.pipe';\r\nimport { PaginationPipe } from './pipes/pagination.pipe';\r\nconst PIPES = [\r\n\tArrPipe,\r\n\tSafePipe,\r\n\tSplicePipe,\r\n\tSearchPipe,\r\n\tMongodatePipe,\r\n\tPaginationPipe,\r\n];\r\n\r\n/* components */\r\nimport { WrapperComponent } from './components/alert/wrapper/wrapper.component';\r\nimport { LoaderComponent } from './components/loader/loader.component';\r\nimport { FilesComponent } from './components/files/files.component';\r\nimport { ModalComponent } from './components/modal/modal.component';\r\nimport { AlertComponent } from './components/alert/alert.component';\r\nconst LOCAL_COMPONENTS = [\r\n\tWrapperComponent,\r\n\tFilesComponent\r\n];\r\nconst COMPONENTS = [\r\n\tLoaderComponent,\r\n\tModalComponent,\r\n\tAlertComponent\r\n];\r\n\r\n@NgModule({\r\n\timports: [CommonModule, FormsModule, HttpClientModule],\r\n\tdeclarations: [...LOCAL_COMPONENTS, ...PIPES, ...COMPONENTS, ...DIRECTIVES],\r\n\texports: [...PIPES, ...COMPONENTS, ...DIRECTIVES],\r\n\tproviders: [\r\n\t\t{ provide: CONFIG_TOKEN, useValue: DEFAULT_CONFIG },\r\n\t\tMetaGuard,\r\n\t\tMetaService\r\n\t]\r\n})\r\nexport class WacomModule {\r\n\tstatic forRoot(config: Config = DEFAULT_CONFIG): ModuleWithProviders<WacomModule> {\r\n\t\treturn {\r\n\t\t\tngModule: WacomModule,\r\n\t\t\tproviders: [{\r\n\t\t\t\tprovide: CONFIG_TOKEN,\r\n\t\t\t\tuseValue: config\r\n\t\t\t}]\r\n\t\t}\r\n\t}\r\n}\r\n","/*\r\n*\tInterfaces\r\n*/\r\n\texport * from './lib/interfaces/config';\r\n\texport * from './lib/interfaces/alert.interface';\r\n/*\r\n*\tGuard\r\n*/\r\n\texport * from './lib/guard/meta.guard';\r\n/*\r\n*\tComponents\r\n*/\r\n\texport * from './lib/components/alert/alert.component';\r\n\texport * from './lib/components/modal/modal.component';\r\n\texport * from './lib/components/loader/loader.component';\r\n/*\r\n*\tDirectives\r\n*/\r\n\texport * from './lib/directives/click-outside.directive';\r\n/*\r\n*\tPipes\r\n*/\r\n\texport * from './lib/pipes/arr.pipe';\r\n\texport * from './lib/pipes/mongodate.pipe';\r\n\texport * from './lib/pipes/pagination.pipe';\r\n\texport * from './lib/pipes/safe.pipe';\r\n\texport * from './lib/pipes/search.pipe';\r\n\texport * from './lib/pipes/splice.pipe';\r\n/*\r\n*\tServices\r\n*/\r\n\texport * from './lib/services/base.service';\r\n\texport * from './lib/services/crud.service';\r\n\texport * from './lib/services/meta.service';\r\n\texport * from './lib/services/store.service';\r\n\texport * from './lib/services/http.service';\r\n\texport * from './lib/services/mongo.service';\r\n\texport * from './lib/services/render.service';\r\n\texport * from './lib/services/hash.service';\r\n\texport * from './lib/services/dom.service';\r\n\texport * from './lib/services/alert.service';\r\n\texport * from './lib/services/loader.service';\r\n\texport * from './lib/services/socket.service';\r\n\texport * from './lib/services/modal.service';\r\n\texport * from './lib/services/file.service';\r\n\texport * from './lib/services/ui.service';\r\n\texport * from './lib/services/core.service';\r\n\texport * from './lib/services/time.service';\r\n/*\r\n*\tInitial\r\n*\r\n*\tmake different kind of modules, one which import all, other for piece by piece\r\n*/\r\n\texport * from './lib/wacom.module';\r\n/*\r\n*\tEnd of Support\r\n*/\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CoreService","i2","i1","window","i1.StoreService","i2.HttpService","i3.CoreService","i1.DomService","i2.CoreService","i3.HttpService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wacom.mjs","sources":["../../../projects/wacom/src/lib/interfaces/config.ts","../../../projects/wacom/src/lib/interfaces/alert.interface.ts","../../../projects/wacom/src/lib/services/core.service.ts","../../../projects/wacom/src/lib/services/meta.service.ts","../../../projects/wacom/src/lib/guard/meta.guard.ts","../../../projects/wacom/src/lib/components/alert/alert.component.ts","../../../projects/wacom/src/lib/components/alert/alert.component.html","../../../projects/wacom/src/lib/components/modal/modal.component.ts","../../../projects/wacom/src/lib/components/modal/modal.component.html","../../../projects/wacom/src/lib/components/loader/loader.component.ts","../../../projects/wacom/src/lib/components/loader/loader.component.html","../../../projects/wacom/src/lib/directives/click-outside.directive.ts","../../../projects/wacom/src/lib/pipes/arr.pipe.ts","../../../projects/wacom/src/lib/pipes/mongodate.pipe.ts","../../../projects/wacom/src/lib/pipes/pagination.pipe.ts","../../../projects/wacom/src/lib/pipes/safe.pipe.ts","../../../projects/wacom/src/lib/pipes/search.pipe.ts","../../../projects/wacom/src/lib/pipes/splice.pipe.ts","../../../projects/wacom/src/lib/services/base.service.ts","../../../projects/wacom/src/lib/services/store.service.ts","../../../projects/wacom/src/lib/services/http.service.ts","../../../projects/wacom/src/lib/services/crud.service.ts","../../../projects/wacom/src/lib/services/mongo.service.ts","../../../projects/wacom/src/lib/services/render.service.ts","../../../projects/wacom/src/lib/services/hash.service.ts","../../../projects/wacom/src/lib/services/dom.service.ts","../../../projects/wacom/src/lib/components/alert/wrapper/wrapper.component.ts","../../../projects/wacom/src/lib/components/alert/wrapper/wrapper.component.html","../../../projects/wacom/src/lib/services/alert.service.ts","../../../projects/wacom/src/lib/services/loader.service.ts","../../../projects/wacom/src/lib/services/socket.service.ts","../../../projects/wacom/src/lib/services/modal.service.ts","../../../projects/wacom/src/lib/components/files/files.component.ts","../../../projects/wacom/src/lib/components/files/files.component.html","../../../projects/wacom/src/lib/services/file.service.ts","../../../projects/wacom/src/lib/services/ui.service.ts","../../../projects/wacom/src/lib/services/time.service.ts","../../../projects/wacom/src/lib/wacom.module.ts","../../../projects/wacom/src/public-api.ts","../../../projects/wacom/src/wacom.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nexport interface Any {\n\t[key: string]: string;\n}\nexport interface Config {\n\tmeta?: {\n\t\tuseTitleSuffix?: boolean;\n\t\twarnMissingGuard?: boolean;\n\t\tdefaults?: {\n\t\t\ttitle?: string;\n\t\t\ttitleSuffix?: string;\n\t\t} & { [key: string]: string | undefined; };\n\t};\n\talert?: {\n\t\talerts?:object;\n\t\ttext?:string;\n\t\ttype?: string;\n\t\ticon?: string;\n\t\tclass?: string;\n\t\tunique?: string;\n\t\tprogress?: boolean;\n\t\tposition?: string;\n\t\ttimeout?: number;\n\t\tclose?: any;\n\t\tbuttons?: any;\n\t};\n\tmodal?: {\n\t\tsize?: any;\n\t\ttimeout?: any;\n\t\ttimestart?: any;\n\t\tclass?:string;\n\t\tmodals?:object;\n\t\tposition?: string;\n\t\tclosable?: boolean;\n\t\tunique?: string;\n\t};\n\tpopup?: {\n\t\tpopups?: object;\n\t};\n\tloader?: {\n\t\tloaders?: object;\n\t};\n\tsocket?: any;\n\thttp?: {\n\t\theaders?: any;\n\t\treplace?: any;\n\t\terr?: any;\n\t\turl?: string;\n\t},\n\tstore?: {\n\t\tprefix?: string;\n\t\tset?: (\n\t\t\thold: any,\n\t\t\tvalue: any,\n\t\t\tcb: ()=>void,\n\t\t\terrCb: () => void\n\t\t) => void,\n\t\tget?: (\n\t\t\thold: any,\n\t\t\tcb: (value: string)=>void,\n\t\t\terrCb: () => void\n\t\t) => void,\n\t\tremove?: (\n\t\t\thold: any,\n\t\t\tcb: ()=>void,\n\t\t\terrCb: () => void\n\t\t) => void,\n\t\tclear?: (\n\t\t\tcb: ()=>void,\n\t\t\terrCb: () => void\n\t\t) => void\n\t}\n}\nexport const CONFIG_TOKEN = new InjectionToken<Config>('config');\nexport const DEFAULT_CONFIG: Config = {\n\tmeta: {\n\t\tuseTitleSuffix: false,\n\t\twarnMissingGuard: true,\n\t\tdefaults: {}\n\t},\n\tsocket: false,\n\thttp: {\n\t\turl: '',\n\t\theaders: {}\n\t},\n\tstore: {\n\t\tprefix: ''\n\t}\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface Alert {\n\tonClose?: any;\n\talerts?:object;\n\tcomponent?: any;\n\ttext?:string;\n\ticon?:string;\n\ttype?: string;\n\tclass?: string;\n\tunique?: string;\n\tprogress?: boolean;\n\tposition?: string;\n\ttimeout?: any;\n\tclosable?: boolean;\n\tclose?: any;\n\tbuttons?: any;\n\t[x: string]: any;\n}\nexport const DEFAULT_Alert: Alert = {\n\talerts: {},\n\ttext: '',\n\ttype: 'info',\n\tclass: '',\n\tprogress: true,\n\tposition: 'bottomRight',\n\ttimeout: 5000,\n\tclosable: true,\n\tbuttons: []\n}\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\n\nimport { isPlatformServer } from '@angular/common';\n\ndeclare var cordova:any;\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class CoreService {\n\tssr = isPlatformServer(this.platformId);\n\n\tlocalStorage:any; // = localStorage;\n\n\tdocument:any; // = document;\n\n\twindow:any; // = window;\n\n\tnavigator:any; // = navigator;\n\n\tconstructor(@Inject(PLATFORM_ID) private platformId:boolean) {\n\t\tif(isPlatformServer(this.platformId)){\n\t\t\tthis.localStorage = {\n\t\t\t\tgetItem:()=>{},\n\t\t\t\tsetItem:()=>{},\n\t\t\t\tremoveItem:()=>{},\n\t\t\t\tclear:()=>{}\n\t\t\t};\n\n\t\t\tthis.document = {\n\t\t\t\tquerySelectorAll: ()=>{},\n\t\t\t\taddEventListener: ()=>{},\n\t\t\t\tremoveEventListener: ()=>{},\n\t\t\t\tdocumentElement: {},\n\t\t\t\tbody: {},\n\t\t\t};\n\n\t\t\tthis.window = {\n\t\t\t\tlocation: {\n\t\t\t\t\thost: ''\n\t\t\t\t},\n\t\t\t\taddEventListener: ()=>{},\n\t\t\t\tremoveEventListener: ()=>{},\n\t\t\t\tsetTimeout: ()=>{}\n\t\t\t};;\n\n\t\t\tthis.navigator = {\n\t\t\t\tuserAgent: '',\n\t\t\t\tplatform: ''\n\t\t\t};\n\t\t}else{\n\t\t\tthis.localStorage = localStorage;\n\n\t\t\tthis.document = document;\n\n\t\t\tthis.window = window;\n\n\t\t\tthis.navigator = navigator;\n\t\t}\n\n\t\tthis.host = this.window.location.host.toLowerCase();\n\n\t\tconst userAgent = this.navigator.userAgent || this.navigator.vendor || this.window.opera;\n\n\t\tif (/windows phone/i.test(userAgent)) {\n\t\t\tthis.device = \"windows\";\n\t\t} else if (/android/i.test(userAgent)) {\n\t\t\tthis.device = \"android\";\n\t\t} else if (this.ios()) {\n\t\t\tthis.device = \"ios\";\n\t\t} else {\n\t\t\tthis.device = \"web\";\n\t\t}\n\n\t\tthis.set_version();\n\t}\n\n\thost:any;\n\n\tdevice:any;\n\n\tversion:any;\n\n\tset_version(version='1.0.0') {\n\t\tthis.version = version;\n\n\t\tthis.document.addEventListener('deviceready', () => {\n\t\t\tthis.done('mobile');\n\n\t\t\tif (cordova.getAppVersion) {\n\t\t\t\tcordova.getAppVersion.getVersionNumber((version:string)=>{\n\t\t\t\t\tthis.version = version;\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tios() {\n\t\treturn [\n\t\t\t'iPad Simulator',\n\t\t\t'iPhone Simulator',\n\t\t\t'iPod Simulator',\n\t\t\t'iPad',\n\t\t\t'iPhone',\n\t\t\t'iPod'\n\t\t].includes(this.navigator.platform)\n\t\t// iPad on iOS 13 detection\n\t\t|| (this.navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\n\t}\n\t/*\n\t*\tPipes\n\t*/\n\t\tota(obj: any, holder?:boolean): any {\n\t\t\tif (Array.isArray(obj)) return obj;\n\n\t\t\tif (typeof obj != 'object') return [];\n\n\t\t\tlet arr = [];\n\n\t\t\tfor (const each in obj) {\n\t\t\t\tif (obj[each]){\n\t\t\t\t\tif (holder) {\n\t\t\t\t\t\tarr.push(each);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr.push(obj[each]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn arr;\n\t\t}\n\t/*\n\t*\tSupportive\n\t*/\n\t\tids2id(...args:any[]) {\n\t\t\targs.sort( (a, b) => {\n\t\t\t\tif (Number(a.toString().substring(0, 8)) > Number(b.toString().substring(0, 8))){\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\treturn -1;\n\t\t\t});\n\n\t\t\treturn args.join();\n\t\t}\n\n\t\tparallel(arr: any[], callback:()=>void){\n\t\t\tlet counter = arr.length;\n\n\t\t\tif(counter===0) return callback();\n\n\t\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\t\tarr[i](function(){\n\t\t\t\t\tif(--counter===0) callback();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tprivate serial_process(i:number, arr:any[], callback:()=>void){\n\t\t\tif(i>=arr.length) return callback();\n\n\t\t\tarr[i](()=>{\n\t\t\t\tthis.serial_process(++i, arr, callback);\n\t\t\t});\n\t\t}\n\n\t\tserial(arr:any[], callback:()=>void){\n\t\t\tthis.serial_process(0, arr, callback);\n\t\t}\n\n\t\teach(arrOrObj:any, func:any, callback:()=>void, isSerial=false){\n\t\t\tif(typeof callback == 'boolean'){\n\t\t\t\tisSerial = callback;\n\n\t\t\t\tcallback = ()=>{};\n\t\t\t}\n\n\t\t\tif (Array.isArray(arrOrObj)) {\n\t\t\t\tlet counter = arrOrObj.length;\n\t\t\t\tif(counter===0) return callback();\n\t\t\t\tif(isSerial){\n\t\t\t\t\tlet serialArr = [];\n\t\t\t\t\tfor (let i = 0; i < arrOrObj.length; i++) {\n\t\t\t\t\t\tserialArr.push(function(next:()=>void){\n\t\t\t\t\t\t\tfunc(arrOrObj[i], function(){\n\t\t\t\t\t\t\t\tif(--counter===0) callback();\n\t\t\t\t\t\t\t\telse next();\n\t\t\t\t\t\t\t}, i);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tthis.serial_process(0, serialArr, callback);\n\t\t\t\t}else{\n\t\t\t\t\tfor (let i = 0; i < arrOrObj.length; i++) {\n\t\t\t\t\t\tfunc(arrOrObj[i], function(){\n\t\t\t\t\t\t\tif(--counter===0) callback();\n\t\t\t\t\t\t}, i);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if(typeof arrOrObj == 'object') {\n\t\t\t\tif (isSerial) {\n\t\t\t\t\tlet serialArr = [];\n\t\t\t\t\tlet arr:any = [];\n\t\t\t\t\tfor(let each in arrOrObj){\n\t\t\t\t\t\tarr.push({\n\t\t\t\t\t\t\tvalue: arrOrObj[each],\n\t\t\t\t\t\t\teach: each\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tlet counter = arr.length;\n\t\t\t\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\t\t\t\tserialArr.push(function(next:()=>void){\n\t\t\t\t\t\t\tfunc(arr[i].each, arr[i].value, function(){\n\t\t\t\t\t\t\t\tif(--counter===0) callback();\n\t\t\t\t\t\t\t\telse next();\n\t\t\t\t\t\t\t}, i);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tthis.serial_process(0, serialArr, callback);\n\t\t\t\t} else{\n\t\t\t\t\tlet counter = 1;\n\t\t\t\t\tfor(let each in arrOrObj){\n\t\t\t\t\t\tcounter++;\n\t\t\t\t\t\tfunc(each, arrOrObj[each], function(){\n\t\t\t\t\t\t\tif(--counter===0) callback();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif(--counter===0) callback();\n\t\t\t\t}\n\t\t\t} else callback();\n\t\t}\n\n\t\tprivate _afterWhile:any = {};\n\n\t\tafterWhile(doc:any, cb:()=>void, time=1000){\n\t\t\tif(typeof doc == 'function'){\n\t\t\t\tcb = doc;\n\n\t\t\t\tdoc = 'common';\n\t\t\t}\n\n\t\t\tif(typeof doc == 'string'){\n\t\t\t\tif(!this._afterWhile[doc]) this._afterWhile[doc]={};\n\n\t\t\t\tdoc = this._afterWhile[doc];\n\t\t\t}\n\n\t\t\tif(typeof cb == 'function' && typeof time == 'number'){\n\t\t\t\tclearTimeout(doc.__updateTimeout);\n\n\t\t\t\tdoc.__updateTimeout = setTimeout(cb, time);\n\t\t\t}\n\t\t};\n\n\t\t// Signal\n\t\tprivate cb:any = {};\n\n\t\temit(signal:string, doc:any={}){\n\t\t\tif (!this.cb[signal]) {\n\t\t\t\tthis.cb[signal] = {};\n\t\t\t}\n\n\t\t\tfor (let each in this.cb[signal]){\n\t\t\t\tif(typeof this.cb[signal][each] == 'function'){\n\t\t\t\t\tthis.cb[signal][each](doc);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tprivate _ids:any = {};\n\n\t\ton(signal:string, cb:any):any {\n\t\t\tif (typeof cb !== 'function') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet id = Math.floor(Math.random() * Date.now()) + 1;\n\n\t\t\tif (this._ids[id]) {\n\t\t\t\treturn this.on(signal, cb);\n\t\t\t}\n\n\t\t\tthis._ids[id]=true;\n\n\t\t\tif (!this.cb[signal]) {\n\t\t\t\tthis.cb[signal] = {};\n\t\t\t}\n\n\t\t\tthis.cb[signal][id] = cb;\n\n\t\t\treturn ()=>{\n\t\t\t\tthis.cb[signal][id] = null;\n\t\t\t}\n\t\t}\n\n\t\t// On Done\n\t\tprivate done_next:any = {};\n\n\t\tdone(signal:string, doc:any = true) {\n\t\t\tthis.done_next[signal] = doc;\n\t\t};\n\n\t\tready(signal:string){\n\t\t\treturn this.done_next[signal];\n\t\t};\n\n\t\tnext(signal:string, cb:(message:any)=>void) {\n\t\t\tif (this.done_next[signal]) cb(this.done_next[signal]);\n\t\t\telse {\n\t\t\t\tsetTimeout(()=>{\n\t\t\t\t\tthis.next(signal, cb);\n\t\t\t\t}, 100);\n\t\t\t}\n\t\t};\n\n\t\tprivate locked:any = {};\n\n\t\tlock(which:any, func:any){\n\t\t\tif (typeof which === 'object' && which.__locked) {\n\t\t\t\treturn;\n\t\t\t} else if(this.locked[which]) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof which === 'object') {\n\t\t\t\twhich.__locked = true;\n\t\t\t} else {\n\t\t\t\tthis.locked[which] = true;\n\t\t\t}\n\n\t\t\tfunc(()=>{\n\t\t\t\tif (typeof which === 'object') {\n\t\t\t\t\twhich.__locked = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.locked[which] = false;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tcopy(from:any, to:any) {\n\t\t\tfor(const each in from) {\n\t\t\t\tif (\n\t\t\t\t\tArray.isArray(from[each]) ||\n\t\t\t\t\ttypeof from[each] !== 'object'\n\t\t\t\t) {\n\t\t\t\t\tto[each] = from[each];\n\t\t\t\t} else {\n\t\t\t\t\tthis.copy(from[each], to[each]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t/* End of Core*/\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { Title, Meta } from '@angular/platform-browser';\nimport { Router, ActivatedRoute, Route } from '@angular/router';\nimport { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from '../interfaces/config';\nimport { CoreService } from './core.service';\nconst isDefined = (val: any) => typeof val !== 'undefined';\n\n@Injectable()\nexport class MetaService {\n\tprivate _meta: any;\n\tpublic constructor(private router: Router, private meta: Meta, private core: CoreService,\n\t\tprivate titleService: Title, private activatedRoute: ActivatedRoute,\n\t\t@Inject(CONFIG_TOKEN) @Optional() private config: Config) {\n\t\tthis._meta = config.meta\n\t\tif(!this.config) this.config = DEFAULT_CONFIG;\n\t\tthis._warnMissingGuard();\n\t}\n\tpublic setTitle(title?: string, titleSuffix?: string): MetaService {\n\t\tlet titleContent = isDefined(title) ? title : (this._meta.defaults['title'] || '');\n\t\tif (this._meta.useTitleSuffix) {\n\t\t\ttitleContent += isDefined(titleSuffix) ? titleSuffix : (this._meta.defaults['titleSuffix'] || '');\n\t\t}\n\t\tthis._updateMetaTag('title', titleContent);\n\t\tthis._updateMetaTag('og:title', titleContent);\n\t\tthis.titleService.setTitle(titleContent);\n\t\treturn this;\n\t}\n\tpublic setLink(obj:any): MetaService {\n\t\tfor (let key in obj){\n\t\t let link: HTMLLinkElement = this.core.document.createElement('link');\n\t\t\tlink.setAttribute('rel', key);\n\t\t\tthis.core.document.head.appendChild(link);\n\t\t\tlink.setAttribute('href', obj[key]);\n\t\t}\n\t\treturn this;\n\t}\n\tpublic setTag(tag: string, value:string, prop?: string): MetaService {\n\t\tif (tag === 'title' || tag === 'titleSuffix') {\n\t\t\tthrow new Error(`Attempt to set ${tag} through 'setTag': 'title' and 'titleSuffix' are reserved tag names.\n\t\t\t\tPlease use 'MetaService.setTitle' instead`);\n\t\t}\n\t\tlet content = isDefined(value) ? value : (this._meta.defaults[tag] || '');\n\t\tthis._updateMetaTag(tag, content, prop);\n\t\tif (tag === 'description') {\n\t\t\tthis._updateMetaTag('og:description', content, prop);\n\t\t}\n\t\treturn this;\n\t}\n\tprivate _updateMetaTag(tag: string, value: string, prop?: string) {\n\t\tif(!prop) prop='name';\n\t\tif (tag.startsWith(`og:`)) {\n\t\t\tprop = 'property';\n\t\t}\n\n\t\tthis.meta.updateTag({\n\t\t\t[prop]: tag,\n\t\t\tcontent: value\n\t\t});\n\t}\n\tprivate _warnMissingGuard() {\n\t\tif (isDefined(this._meta.warnMissingGuard) && !this._meta.warnMissingGuard) {\n\t\t\treturn;\n\t\t}\n\t\tconst hasDefaultMeta = !!Object.keys(this._meta.defaults).length;\n\t\tconst hasMetaGuardInArr = (it: any) => (it && it.IDENTIFIER === 'MetaGuard');\n\t\tlet hasShownWarnings = false;\n\t\tthis.router.config.forEach((route: Route) => {\n\t\t\tconst hasRouteMeta = route.data && route.data['meta'];\n\t\t\tconst showWarning = !isDefined(route.redirectTo)\n\t\t\t&& (hasDefaultMeta || hasRouteMeta)\n\t\t\t&& !(route.canActivate || []).some(hasMetaGuardInArr);\n\n\t\t\tif (showWarning) {\n\t\t\t\tconsole.warn(`Route with path \"${route.path}\" has ${hasRouteMeta ? '' : 'default '}meta tags, but does not use MetaGuard. \\\n\t\t\t\t\tPlease add MetaGuard to the canActivate array in your route configuration`);\n\t\t\t\thasShownWarnings = true;\n\t\t\t}\n\t\t});\n\t\tif (hasShownWarnings) {\n\t\t\tconsole.warn(`To disable these warnings, set metaConfig.warnMissingGuard: false \\\n\t\t\t\tin your ng2-meta MetaConfig passed to MetaModule.forRoot()`);\n\t\t}\n\t}\n}","import { Injectable, Inject, Optional } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot } from '@angular/router';\nimport { MetaService } from '../services/meta.service';\nimport { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from '../interfaces/config';\n\n@Injectable()\nexport class MetaGuard implements CanActivate {\n\tpublic static IDENTIFIER = 'MetaGuard';\n\tprivate _meta: any ;\n\tpublic constructor(private metaService: MetaService,\n\t\t@Inject(CONFIG_TOKEN) @Optional() private config: Config) {\n\t\tthis._meta = config.meta;\n\t\tif(!this.config) this.config = DEFAULT_CONFIG;\n\t}\n\tpublic canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n\t\tthis._processRouteMetaTags(route.data && route.data['meta']);\n\t\treturn true;\n\t}\n\tprivate _processRouteMetaTags(meta: any = {}) {\n\t\tif (meta.disableUpdate) {\n\t\t\treturn;\n\t\t}\n\t\tthis.metaService.setTitle(meta.title, meta.titleSuffix);\n\t\tthis.metaService.setLink(meta.link);\n\t\tObject.keys(meta).forEach(prop => {\n\t\t\tif (prop === 'title' || prop === 'titleSuffix'|| prop === 'link') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tObject.keys(meta[prop]).forEach(key => {\n\t\t\t\tthis.metaService.setTag(key, meta[prop][key], prop);\n\t\t\t});\n\t\t});\n\t\tObject.keys(this._meta.defaults).forEach(key => {\n\t\t\tif (key in meta || key === 'title' || key === 'titleSuffix' || key === 'link') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.metaService.setTag(key, this._meta.defaults[key]);\n\t\t});\n\t}\n}\n","import { Component, ElementRef, ViewChild} from '@angular/core';\nimport { CoreService } from '../../services/core.service';\n\n@Component({\n\tselector: 'alert',\n\ttemplateUrl: './alert.component.html',\n\tstyleUrls: ['./alert.component.scss']\n})\n\nexport class AlertComponent {\n\t@ViewChild('alert', {static:false}) alert:any;\n\tpublic component: any;\n\tpublic text: string = \"\";\n\tpublic class: string = \"\";\n\tpublic type: string = \"info\";\n\tpublic progress: boolean = true;\n\tpublic position: string = 'bottomRight'; // [bottomRight, bottomLeft, topRight, topLeft, topCenter, bottomCenter or center]\n\tpublic icon: string = '';\n\tpublic timeout: any = 5000;\n\tpublic close: any;\n\tpublic closable: any = true;\n\tpublic buttons: any = []; /*[{text, callback}]*/\n\n\tconstructor(private elementRef: ElementRef, public core: CoreService) {\n\t\tsetTimeout(()=>{\n\t\t\tif(this.timeout){\n\t\t\t\tlet remaining=JSON.parse(JSON.stringify(this.timeout));\n\t\t\t\tlet timer=setTimeout(()=>{this.remove()}, remaining);\n\t\t\t\tlet start = new Date();\n\t\t\t\tthis.alert.nativeElement.addEventListener(\"mouseenter\", ()=>{\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\tremaining -= new Date().getTime() - start.getTime();\n\t\t\t\t}, false);\n\t\t\t\tthis.alert.nativeElement.addEventListener(\"mouseleave\", ()=>{\n\t\t\t\t\tstart = new Date();\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\ttimer = core.window.setTimeout(()=>{this.remove()}, remaining);\n\t\t\t\t}, false);\n\t\t\t}\n\t\t});\n\t}\n\tpublic delete_animation=false;\n\tremove(){\n\t\tthis.delete_animation=true;\n\t\tsetTimeout(()=>{\n\t\t\tthis.close();\n\t\t\tthis.delete_animation=false;\n\t\t},350);\n\n\t}\n}\n","<div [ngClass]=\"class\" class=\"waw-alert-container height\" [class._close]=\"delete_animation\">\n\t<div [class.waw-alert-color-blue]=\"type=='info'\" [class.waw-alert-color-red]=\"type=='error'\" [class.waw-alert-color-green]=\"type=='success'\" [class.waw-alert-color-orange]=\"type=='warning'\" [class.waw-alert-color-yellow]=\"type=='question'\" class=\"waw-alert bounceInUp waw-alert-theme-light waw-alert-animateInside waw-alert-opened\" #alert>\n\t\t<div class=\"waw-alert__progress\" *ngIf=\"progress\"><span [ngStyle]=\"{'animation-duration': (timeout+350)/1000+'s'}\"></span></div>\n\t\t<div class=\"waw-alert-body\">\n\t\t\t<div *ngIf=\"!component\" class=\"waw-alert-texts\">\n\t\t\t\t<div *ngIf=\"icon\" class=\"{{icon}}\"></div>\n\t\t\t\t<div class=\"waw-alert-message slideIn\">{{text}}</div>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"!component&&type=='question'\">\n\t\t\t\t<button class=\"alert-btn\" *ngFor=\"let b of buttons\" (click)=\"remove(); b.callback&&b.callback();\">{{b.text}}</button>\n\t\t\t</div>\n\t\t\t<div class=\"waw-alert__close\" *ngIf=\"closable\" (click)=\"remove()\"></div>\n\t\t</div>\n\t</div>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n\tselector: 'lib-modal',\n\ttemplateUrl: './modal.component.html',\n\tstyleUrls: ['./modal.component.scss']\n})\nexport class ModalComponent implements OnInit{\n\tpublic class: string = \"\";\n\tpublic size: string = \"flex\";\n\tpublic closable:boolean = true;\n\tpublic close:any;\n\tpublic onOpen:any;\n\tpublic onClickOutside:any;\n\tpublic timestart:any;\n\tpublic timeout:any;\n\n\tpublic showModal=false;\n\tconstructor(){\n\n\t}\n\tngOnInit(){\n\t\tif(typeof this.onClickOutside != 'function'){\n\t\t\tthis.onClickOutside = this.close;\n\t\t}\n\t\tif(typeof this.onOpen == 'function') this.onOpen();\n\t}\n\tngAfterViewInit(){\n\t\tsetTimeout(()=>{\n\t\t\tthis.showModal=true;\n\t\t}, this.timestart||0);\n\t}\n}\n","<div [hidden]=\"!showModal\" class=\"modal\" [ngClass]=\"class+' '+size\" (click)=\"onClickOutside();\">\n\t<div class=\"modal-content\" (click)=\"$event.stopPropagation();\">\n\t\t<div><!-- Content Will Drop Here --></div>\n\t\t<span class=\"close\" (click)=\"close()\" *ngIf=\"closable\">×</span>\n\t</div>\n</div>","import { Component, ViewChild} from '@angular/core';\n\n@Component({\n selector: 'lib-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss']\n})\n\nexport class LoaderComponent {\n @ViewChild('loader', { static: false }) loader: any;\n public text: string = \"Loading\";\n public class: string = \"\";\n public progress: boolean = true;\n public timeout: number = 5000;\n public close: any;\n public closable: any = true;\n constructor() { }\n ngOnInit(){\n if(this.timeout){\n setTimeout(()=>{\n this.close();\n }, this.timeout)\n }\n }\n}\n","<div style=\"position: fixed; width: 100%; height: 100%; left: 0; top: 0; background-color: #334d6e; display: flex; justify-content: center; align-items: center; z-index: 999999;\" #loader>\n\t<span class=\"close\" (click)=\"close()\" *ngIf=\"closable\">×</span>\n\t<span style=\"font-size: 30px; color: white;\">\n\t\t{{text}}\n\t</span>\n</div>","import {\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n Injectable,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n SimpleChanges,\n NgZone,\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { CoreService } from '../services/core.service';\n\n@Injectable()\n@Directive({ selector: '[clickOutside]' })\nexport class ClickOutsideDirective implements OnInit, OnChanges, OnDestroy {\n\n @Input() clickOutsideEnabled: boolean = true;\n\n @Input() attachOutsideOnClick: boolean = false;\n @Input() delayClickOutsideInit: boolean = false;\n @Input() emitOnBlur: boolean = false;\n\n @Input() exclude: string = '';\n @Input() excludeBeforeClick: boolean = false;\n\n @Input() clickOutsideEvents: string = '';\n\n @Output() clickOutside: EventEmitter<Event> = new EventEmitter<Event>();\n\n private _nodesExcluded: Array<HTMLElement> = [];\n private _events: Array<string> = ['click'];\n\n constructor(\n private _el: ElementRef,\n private _ngZone: NgZone,\n public core: CoreService,\n @Inject(PLATFORM_ID) private platformId: Object) {\n this._initOnClickBody = this._initOnClickBody.bind(this);\n this._onClickBody = this._onClickBody.bind(this);\n this._onWindowBlur = this._onWindowBlur.bind(this);\n }\n\n ngOnInit() {\n if (!isPlatformBrowser(this.platformId)) { return; }\n\n this._init();\n }\n\n ngOnDestroy() {\n if (!isPlatformBrowser(this.platformId)) { return; }\n\n this._removeClickOutsideListener();\n this._removeAttachOutsideOnClickListener();\n this._removeWindowBlurListener();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (!isPlatformBrowser(this.platformId)) { return; }\n\n if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {\n this._init();\n }\n }\n\n private _init() {\n if (this.clickOutsideEvents !== '') {\n this._events = this.clickOutsideEvents.split(',').map(e => e.trim());\n }\n\n this._excludeCheck();\n\n if (this.attachOutsideOnClick) {\n this._initAttachOutsideOnClickListener();\n } else {\n this._initOnClickBody();\n }\n\n if (this.emitOnBlur) {\n this._initWindowBlurListener();\n }\n }\n\n private _initOnClickBody() {\n if (this.delayClickOutsideInit) {\n setTimeout(this._initClickOutsideListener.bind(this));\n } else {\n this._initClickOutsideListener();\n }\n }\n\n private _excludeCheck() {\n if (this.exclude) {\n try {\n const nodes = Array.from(this.core.document.querySelectorAll(this.exclude)) as Array<HTMLElement>;\n if (nodes) {\n this._nodesExcluded = nodes;\n }\n } catch (err) {\n console.error('[ng-click-outside] Check your exclude selector syntax.', err);\n }\n }\n }\n\n private _onClickBody(ev: Event) {\n if (!this.clickOutsideEnabled) { return; }\n\n if (this.excludeBeforeClick) {\n this._excludeCheck();\n }\n\n if (!this._el.nativeElement.contains(ev.target) && !this._shouldExclude(ev.target)) {\n this._emit(ev);\n\n if (this.attachOutsideOnClick) {\n this._removeClickOutsideListener();\n }\n }\n }\n\n /**\n * Resolves problem with outside click on iframe\n * @see https://github.com/arkon/ng-click-outside/issues/32\n */\n private _onWindowBlur(ev: Event) {\n setTimeout(() => {\n if (!this.core.document.hidden) {\n this._emit(ev);\n }\n });\n }\n\n private _emit(ev: Event) {\n if (!this.clickOutsideEnabled) { return; }\n\n this._ngZone.run(() => this.clickOutside.emit(ev));\n }\n\n private _shouldExclude(target: any): boolean {\n for (let excludedNode of this._nodesExcluded) {\n if (excludedNode.contains(target)) {\n return true;\n }\n }\n\n return false;\n }\n\n private _initClickOutsideListener() {\n this._ngZone.runOutsideAngular(() => {\n this._events.forEach(e => this.core.document.addEventListener(e, this._onClickBody));\n });\n }\n\n private _removeClickOutsideListener() {\n this._ngZone.runOutsideAngular(() => {\n this._events.forEach(e => this.core.document.removeEventListener(e, this._onClickBody));\n });\n }\n\n private _initAttachOutsideOnClickListener() {\n this._ngZone.runOutsideAngular(() => {\n this._events.forEach(e => this._el.nativeElement.addEventListener(e, this._initOnClickBody));\n });\n }\n\n private _removeAttachOutsideOnClickListener() {\n this._ngZone.runOutsideAngular(() => {\n this._events.forEach(e => this._el.nativeElement.removeEventListener(e, this._initOnClickBody));\n });\n }\n\n private _initWindowBlurListener() {\n this._ngZone.runOutsideAngular(() => {\n this.core.window.addEventListener('blur', this._onWindowBlur);\n });\n }\n\n private _removeWindowBlurListener() {\n this._ngZone.runOutsideAngular(() => {\n this.core.window.removeEventListener('blur', this._onWindowBlur);\n });\n }\n\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'arr'\n})\nexport class ArrPipe implements PipeTransform {\n\ttransform(data: any, type?: any, refresh?:any): any {\n\t\tif(!data) { return []; }\n\t\tif(typeof data == 'string') return data.split(type||' ');\n\t\tif(Array.isArray(data)) { return data; }\n\t\tif(typeof data != 'object') { return []; }\n\t\tlet arr = [];\n\t\tfor (let each in data) {\n\t\t\tif(!data[each]) continue;\n\t\t\tif(type == 'prop'){\n\t\t\t\tarr.push(each);\n\t\t\t}else if(type == 'value'){\n\t\t\t\tarr.push(data[each]);\n\t\t\t}else{\n\t\t\t\tarr.push({\n\t\t\t\t\tprop: each,\n\t\t\t\t\tvalue: data[each]\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn arr;\n\t}\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'mongodate'\n})\nexport class MongodatePipe implements PipeTransform {\n\ttransform(_id: any){\n\t\tif(!_id) return new Date();\n\t\tlet timestamp = _id.toString().substring(0,8);\n\t\treturn new Date(parseInt(timestamp,16)*1000);\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'page',\n\tpure: false\n})\nexport class PaginationPipe implements PipeTransform {\n\ttransform(arr: any, config:any, sort:any, search=''): any {\n if(!Array.isArray(arr)) return [];\n\t\tarr = arr.slice();\n\t\tfor (let i = 0; i < arr.length; i++){\n\t\t arr[i].num = i+1;\n\t\t}\n\t\tif(sort.direction) {\n arr.sort((a:any, b:any)=> {\n if (a[sort.title] < b[sort.title]) {\n return (sort.direction=='desc') ? 1 : -1;\n }\n if (a[sort.title] > b[sort.title]) {\n return (sort.direction=='desc') ? -1 : 1;\n }\n return 0;\n })\n }\n\t\treturn arr.slice((config.page-1)*config.perPage, config.page*config.perPage);;\n\t}\n}","import { Pipe } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n@Pipe({name: 'safe'})\nexport class SafePipe {\n\tconstructor(private sanitizer: DomSanitizer){}\n\ttransform(html: any) {\n\t\treturn this.sanitizer.bypassSecurityTrustResourceUrl(html);\n\t}\n}","import { Pipe, PipeTransform } from '@angular/core';\n/*\n*\tAuthor: Honchar Denys\n*\tSearch for any content in any type of given documents\n*\tAlways returning an array, even if nothing is provided\n*/\n@Pipe({\n\tname: 'search'\n})\nexport class SearchPipe implements PipeTransform {\n\tprivate c = 0;\n\t// transform(given: any, search?: any, fields?: any, l?: any, i?: any, reload?: any): any {\n\ttransform(given: any, s?: any, f?: any, l?: any, i?: any, reload?: any): any {\n\t\t// given stands for the provided array with docs\n\t\t// s stands for search\n\t\t// f stands for fields\n\t\t// l stands for limit\n\t\t// i stands for ignore filter\n\t\t// start stands for start the limit\n\t\tif (!s) {\n\t\t\treturn given;\n\t\t}\n\t\tif (typeof f == 'number') {\n\t\t\tl = f;\n\t\t\tf = null;\n\t\t}\n\t\tif (i || !s) {\n\t\t\tif (l && Array.isArray(given)) return given.slice(0, l);\n\t\t\telse return given || [];\n\t\t}\n\t\tlet _arr: any = [], _check: any = {};\n\t\tif (!Array.isArray(s) && typeof s == 'object') {\n\t\t\tlet _s = [];\n\t\t\tfor (let key in s) {\n\t\t\t\tif (s[key]) _s.push(key);\n\t\t\t}\n\t\t\ts = _s;\n\t\t}\n\t\tif (typeof s == 'string') {\n\t\t\ts = [s];\n\t\t}\n\t\tif (!f) f = ['name'];\n\t\tif (typeof f == 'string') f = f.split(' ');\n\t\tlet sub_test = function (obj: any, _f: any, initObj: any, check: any): any {\n\t\t\tif (!obj) return;\n\t\t\tif (_f.indexOf('.') > -1) {\n\t\t\t\tlet sub = _f.split('.');\n\t\t\t\tlet nsub = sub.shift();\n\t\t\t\tif (Array.isArray(obj[nsub])) {\n\t\t\t\t\tfor (let s = 0; s < obj[nsub].length; s++) {\n\t\t\t\t\t\tsub_test(obj[nsub][s], sub.join('.'), initObj, check);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t} else {\n\t\t\t\t\treturn sub_test(obj[nsub], sub.join('.'), initObj, check);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let j = 0; j < s.length; j++) {\n\t\t\t\tlet b = false;\n\t\t\t\tif (obj[_f] && (typeof obj[_f] == 'string' || typeof obj[_f] == 'number') &&\n\t\t\t\t\ttypeof s[j] == 'string' &&\n\t\t\t\t\t(obj[_f].toString().toLowerCase().indexOf(s[j].toLowerCase()) > -1 ||\n\t\t\t\t\t\ts[j].toLowerCase().indexOf(obj[_f].toString().toLowerCase()) > -1)) {\n\t\t\t\t\tif (!_check[check]) _arr.push(initObj);\n\t\t\t\t\t_check[check] = true;\n\t\t\t\t\tb = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (b) break;\n\t\t\t}\n\t\t}\n\t\tlet test = function (obj: any, check: any) {\n\t\t\tfor (let i = 0; i < f.length; i++) {\n\t\t\t\tsub_test(obj, f[i], obj, check);\n\t\t\t}\n\t\t}\n\t\tif (Array.isArray(given)) {\n\t\t\tfor (let i = 0; i < given.length; i++) {\n\t\t\t\ttest(given[i], i);\n\t\t\t}\n\t\t} else if (typeof given == 'object') {\n\t\t\tfor (let key in given) {\n\t\t\t\ttest(given[key], key);\n\t\t\t}\n\t\t}\n\t\tif (l) return _arr.splice(0, l);\n\t\treturn _arr;\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'splice'\n})\nexport class SplicePipe implements PipeTransform {\n\ttransform(from: any, which: any, refresh?:number): any {\n\t\tif(Array.isArray(from)) from = { arr: from, prop: '_id' };\n\t\tlet arr = which.keep && [] || from.arr.slice();\n\t\tif(Array.isArray(which)) which = { arr: which, prop: '_id' };\n\t\tfor (let i = from.arr.length-1; i >= 0; i--){\n\t\t\tfor (let j = 0; j < which.arr.length; j++){\n\t\t\t\tif(from.prop && which.prop){\n\t\t\t\t\tif(from.arr[i][from.prop] == which.arr[j][which.prop]){\n\t\t\t\t\t\tif(which.keep){\n\t\t\t\t\t\t\tarr.push(from.arr[i]);\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tarr.splice(i, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}else if(from.prop){\n\t\t\t\t\tif(from.arr[i][from.prop] == which.arr[j]){\n\t\t\t\t\t\tif(which.keep){\n\t\t\t\t\t\t\tarr.push(from.arr[i]);\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tarr.splice(i, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}else if(which.prop){\n\t\t\t\t\tif(from.arr[i] == which.arr[j][which.prop]){\n\t\t\t\t\t\tif(which.keep){\n\t\t\t\t\t\t\tarr.push(from.arr[i]);\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tarr.splice(i, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}else if(from.arr[i] == which.arr[j]){\n\t\t\t\t\tif(which.keep){\n\t\t\t\t\t\tarr.push(from.arr[i]);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tarr.splice(i, 1);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn arr;\n\t}\n}\n","import { Injectable } from '@angular/core';\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class BaseService {\n\tpublic now = new Date().getTime();\n\tpublic _now = ()=>{\n\t\tthis.now = new Date().getTime();\n\t}\n\tconstructor() {}\n}\n","import { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from '../interfaces/config';\nimport { Injectable, Inject, Optional } from '@angular/core';\nimport { CoreService } from './core.service';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class StoreService {\n\tconstructor(\n\t\t@Inject(CONFIG_TOKEN) @Optional() private config: Config,\n\t\tprivate core: CoreService\n\t) {\n\t\tif (!this.config) this.config = DEFAULT_CONFIG;\n\t}\n\n\tset(\n\t\thold: string,\n\t\tvalue: string,\n\t\tcallback: () => void = () => { },\n\t\terrCallback: () => void = () => { }\n\t): void {\n\t\tif (this.config.store?.prefix) {\n\t\t\thold = this.config.store?.prefix + hold\n\t\t}\n\n\t\tif (\n\t\t\tthis.config.store &&\n\t\t\tthis.config.store.set\n\t\t) {\n\t\t\tthis.config.store.set(hold, value, callback, errCallback);\n\t\t} else {\n\t\t\ttry { this.core.localStorage.setItem('temp_storage_'+hold, value); }\n\t\t\tcatch(e){ errCallback(); }\n\t\t\tcallback();\n\t\t}\n\t}\n\n\tget(\n\t\thold: string,\n\t\tcallback: (value: string) => void = () => { },\n\t\terrCallback: () => void = () => { }\n\t): any {\n\t\tif (this.config.store?.prefix) {\n\t\t\thold = this.config.store?.prefix + hold\n\t\t}\n\n\t\tif (\n\t\t\tthis.config.store &&\n\t\t\tthis.config.store.get\n\t\t) {\n\t\t\tthis.config.store.get(hold, callback, errCallback);\n\t\t} else {\n\t\t\tcallback(this.core.localStorage.getItem('temp_storage_'+hold)||'');\n\t\t}\n\t}\n\n\tsetJson(\n\t\thold: string,\n\t\tvalue: any,\n\t\tcallback: () => void = () => { },\n\t\terrCallback: () => void = () => { }\n\t) {\n\t\tvalue = JSON.stringify(value);\n\n\t\tthis.set(hold, value, callback, errCallback);\n\t}\n\n\tgetJson(\n\t\thold: string,\n\t\tcallback: (value: any) => void = () => { },\n\t\terrCallback: () => void = () => { }\n\t){\n\t\tthis.get(hold, (value:string) => {\n\t\t\tif (value) {\n\t\t\t\ttry {\n\t\t\t\t\tvalue = JSON.parse(value);\n\t\t\t\t} catch(e) {}\n\n\t\t\t\tcallback(typeof value === 'object' && value || null);\n\t\t\t} else {\n\t\t\t\tcallback(null);\n\t\t\t}\n\t\t}, errCallback);\n\t}\n\n\tremove(\n\t\thold: string,\n\t\tcallback: () => void = () => { },\n\t\terrCallback: () => void = () => { }\n\t): void {\n\t\tif (this.config.store?.prefix) {\n\t\t\thold = this.config.store?.prefix + hold\n\t\t}\n\n\t\tif (\n\t\t\tthis.config.store &&\n\t\t\tthis.config.store.remove\n\t\t) {\n\t\t\tthis.config.store.remove(hold, callback, errCallback);\n\t\t} else {\n\t\t\tthis.core.localStorage.removeItem('temp_storage_'+hold);\n\t\t\tcallback();\n\t\t}\n\t}\n\n\tclear(\n\t\tcallback: () => void = () => { },\n\t\terrCallback: () => void = () => { }\n\t): any {\n\t\tif (\n\t\t\tthis.config.store &&\n\t\t\tthis.config.store.clear\n\t\t) {\n\t\t\tthis.config.store.clear(callback, errCallback);\n\t\t} else {\n\t\t\tthis.core.localStorage.clear();\n\n\t\t\tcallback();\n\t\t}\n\t}\n}\n","import { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from '../interfaces/config';\nimport { Injectable, Inject, Optional } from '@angular/core';\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { Subject, throwError } from 'rxjs';\nimport { catchError, first } from 'rxjs/operators';\nimport { StoreService } from './store.service';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class HttpService {\n\tpublic url = '';\n\n\tprivate _http: any;\n\n\tprivate headers:any = {};\n\n\tprivate http_headers = new HttpHeaders(this.headers);\n\n\tconstructor(\n\t\tprivate store: StoreService,\n\t\tprivate http: HttpClient,\n\t\t@Inject(CONFIG_TOKEN) @Optional() private config: Config\n\t) {\n\t\tthis._http = config.http;\n\n\t\tif (!this.config) this.config = DEFAULT_CONFIG;\n\n\t\tif (!this._http) this._http = {};\n\n\t\tif (typeof this._http.headers === 'object') {\n\t\t\tfor (const header in this._http.headers) {\n\t\t\t\tthis.headers[header] = this._http.headers[header];\n\t\t\t}\n\n\t\t\tthis.http_headers = new HttpHeaders(this.headers);\n\t\t}\n\n\t\tthis.store.get('http_url', (url:any)=>{\n\t\t\tthis.url = url || this._http.url || '';\n\t\t});\n\n\t\tthis.store.getJson('http_headers', (headers:any)=>{\n\t\t\tif (headers) {\n\t\t\t\tfor (const header in headers){\n\t\t\t\t\tthis.headers[header] = headers[header];\n\t\t\t\t}\n\n\t\t\t\tthis.http_headers = new HttpHeaders(this.headers);\n\t\t\t}\n\t\t});\n\t}\n\n\tsetUrl(url: string) {\n\t\tthis.url = url;\n\t\tthis.store.set('http_url', url);\n\t}\n\n\tremoveUrl() {\n\t\tthis.url = this._http.url || '';\n\t\tthis.store.remove('http_url');\n\t}\n\n\tset(key: any, value: any) {\n\t\tthis.headers[key] = value;\n\n\t\tthis.store.setJson('http_headers', this.headers);\n\n\t\tthis.http_headers = new HttpHeaders(this.headers);\n\t}\n\n\theader(key: any) {\n\t\treturn this.headers[key];\n\t}\n\n\tremove(key: any) {\n\t\tdelete this.headers[key];\n\n\t\tthis.http_headers = new HttpHeaders(this.headers);\n\n\t\tthis.store.setJson('http_headers', this.headers);\n\t}\n\n\tpost(url:any, doc:any, callback=(resp:any) => {}, opts:any={}):any{\n\t\tif (typeof opts === 'function'){\n\t\t\topts = {\n\t\t\t\terr: opts\n\t\t\t}\n\t\t}\n\n\t\tif (!opts.err && this._http.err) {\n\t\t\topts.err = this._http.err;\n\t\t} else if (!opts.err) {\n\t\t\topts.err = (err: HttpErrorResponse) => { };\n\t\t}\n\n\t\tif (this._locked){\n\t\t\treturn setTimeout(()=>{\n\t\t\t\tthis.post(url, doc, callback, opts);\n\t\t\t}, 100);\n\t\t}\n\n\t\tconst subject = new Subject();\n\n\t\tconst observable = this.http.post<any>((opts.url||this.url)+url, doc, {\n\t\t\theaders: this.http_headers\n\t\t});\n\n\t\tobservable.pipe(\n\t\t\tfirst(),\n\t\t\tcatchError(this.handleError(opts.err))\n\t\t).subscribe(resp=>{\n\t\t\tif (resp === undefined || resp === null) {\n\t\t\t\topts.err();\n\t\t\t} else if (typeof this._http.replace === 'function') {\n\t\t\t\tthis._http.replace(resp, ()=>{\n\t\t\t\t\tcallback(resp);\n\t\t\t\t\tsubject.next(resp);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tcallback(resp);\n\t\t\t\tsubject.next(resp);\n\t\t\t}\n\t\t});\n\n\t\treturn subject;\n\t}\n\n\tput(url:any, doc:any, callback=(resp:any) => {}, opts:any={}):any{\n\t\tif (typeof opts === 'function'){\n\t\t\topts = {\n\t\t\t\terr: opts\n\t\t\t}\n\t\t}\n\n\t\tif (!opts.err && this._http.err) {\n\t\t\topts.err = this._http.err;\n\t\t} else if (!opts.err) {\n\t\t\topts.err = (err: HttpErrorResponse) => { };\n\t\t}\n\n\t\tif (this._locked){\n\t\t\treturn setTimeout(()=>{\n\t\t\t\tthis.put(url, doc, callback, opts);\n\t\t\t}, 100);\n\t\t}\n\n\t\tconst subject = new Subject();\n\n\t\tconst observable = this.http.put<any>((opts.url||this.url)+url, doc, {\n\t\t\theaders: this.http_headers\n\t\t});\n\n\t\tobservable.pipe(\n\t\t\tfirst(),\n\t\t\tcatchError(this.handleError(opts.err))\n\t\t).subscribe(resp=>{\n\t\t\tif (resp === undefined || resp === null) {\n\t\t\t\topts.err();\n\t\t\t} else if (typeof this._http.replace === 'function'){\n\t\t\t\tthis._http.replace(resp, ()=>{\n\t\t\t\t\tcallback(resp);\n\t\t\t\t\tsubject.next(resp);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tcallback(resp);\n\t\t\t\tsubject.next(resp);\n\t\t\t}\n\t\t});\n\n\t\treturn subject;\n\t}\n\n\tpatch(url:any, doc:any, callback=(resp:any) => {}, opts:any={}):any{\n\t\tif (typeof opts === 'function'){\n\t\t\topts = {\n\t\t\t\terr: opts\n\t\t\t}\n\t\t}\n\n\t\tif (!opts.err && this._http.err) {\n\t\t\topts.err = this._http.err;\n\t\t} else if (!opts.err) {\n\t\t\topts.err = (err: HttpErrorResponse) => { };\n\t\t}\n\n\t\tif (this._locked){\n\t\t\treturn setTimeout(()=>{\n\t\t\t\tthis.patch(url, doc, callback, opts);\n\t\t\t}, 100);\n\t\t}\n\n\t\tconst subject = new Subject();\n\n\t\tconst observable = this.http.patch<any>((opts.url||this.url)+url, doc, {\n\t\t\theaders: this.http_headers\n\t\t});\n\n\t\tobservable.pipe(\n\t\t\tfirst(),\n\t\t\tcatchError(this.handleError(opts.err))\n\t\t).subscribe(resp=>{\n\t\t\tif (resp === undefined || resp === null) {\n\t\t\t\topts.err();\n\t\t\t} else if (typeof this._http.replace === 'function'){\n\t\t\t\tthis._http.replace(resp, ()=>{\n\t\t\t\t\tcallback(resp);\n\t\t\t\t\tsubject.next(resp);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tcallback(resp);\n\t\t\t\tsubject.next(resp);\n\t\t\t}\n\t\t});\n\n\t\treturn subject;\n\t}\n\n\tdelete(url:any, doc:any, callback=(resp:any) => {}, opts:any={}):any{\n\t\tif (typeof opts === 'function'){\n\t\t\topts = {\n\t\t\t\terr: opts\n\t\t\t}\n\t\t}\n\n\t\tif (!opts.err && this._http.err) {\n\t\t\topts.err = this._http.err;\n\t\t} else if (!opts.err) {\n\t\t\topts.err = (err: HttpErrorResponse) => { };\n\t\t}\n\n\t\tif (this._locked){\n\t\t\treturn setTimeout(()=>{\n\t\t\t\tthis.delete(url, doc, callback, opts);\n\t\t\t}, 100);\n\t\t}\n\n\t\tconst subject = new Subject();\n\n\t\tconst observable = this.http.request<any>('delete', (opts.url||this.url)+url, {\n\t\t\theaders: this.http_headers,\n\t\t\tbody: doc || {}\n\t\t});\n\n\t\tobservable.pipe(\n\t\t\tfirst(),\n\t\t\tcatchError(this.handleError(opts.err))\n\t\t).subscribe(resp=>{\n\t\t\tif (resp === undefined || resp === null) {\n\t\t\t\topts.err();\n\t\t\t} else if (typeof this._http.replace === 'function'){\n\t\t\t\tthis._http.replace(resp, ()=>{\n\t\t\t\t\tcallback(resp);\n\t\t\t\t\tsubject.next(resp);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tcallback(resp);\n\t\t\t\tsubject.next(resp);\n\t\t\t}\n\t\t});\n\n\t\treturn subject;\n\t}\n\n\tget(url:any, callback=(resp:any) => {}, opts:any={}):any{\n\t\tif (typeof opts === 'function'){\n\t\t\topts = {\n\t\t\t\terr: opts\n\t\t\t}\n\t\t}\n\n\t\tif (!opts.err && this._http.err) {\n\t\t\topts.err = this._http.err;\n\t\t} else if (!opts.err) {\n\t\t\topts.err = (err: HttpErrorResponse) => { };\n\t\t}\n\n\t\tif (this._locked){\n\t\t\treturn setTimeout(()=>{\n\t\t\t\tthis.get(url, callback, opts);\n\t\t\t}, 100);\n\t\t}\n\n\t\tlet params:any = {\n\t\t\theaders: this.http_headers\n\t\t};\n\n\t\tif (opts.params){\n\t\t\tparams.params = opts.params;\n\t\t}\n\n\t\tconst subject = new Subject();\n\n\t\tconst observable = this.http.get<any>((opts.url || this.url) + url, params);\n\n\t\tobservable.pipe(\n\t\t\tfirst(),\n\t\t\tcatchError(this.handleError(opts.err))\n\t\t).subscribe(resp=>{\n\t\t\tif (resp === undefined || resp === null) {\n\t\t\t\topts.err();\n\t\t\t} else if (typeof this._http.replace === 'function'){\n\t\t\t\tthis._http.replace(resp, ()=>{\n\t\t\t\t\tcallback(resp);\n\t\t\t\t\tsubject.next(resp);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tcallback(resp);\n\t\t\t\tsubject.next(resp);\n\t\t\t}\n\t\t});\n\n\t\treturn subject;\n\t}\n\n\tprivate _locked = false;\n\n\tlock(){\n\t\tthis._locked = true;\n\t}\n\n\tunlock(){\n\t\tthis._locked = false;\n\t}\n\n\terr(callback:any){\n\t\tif (typeof callback === 'function'){\n\t\t\tthis._http.err = callback;\n\t\t}\n\t}\n\n\tprivate handleError(cb:any = this._http.err) {\n\t\treturn function(error: HttpErrorResponse){\n\t\t\tcb && cb(error);\n\n\t\t\treturn throwError(\"We can't connect to the server\");\n\t\t}\n\t};\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpService } from './http.service';\nimport { StoreService } from './store.service';\n\ninterface CrudOptions {\n\treplace: string;\n\tquery: string;\n\tgroup: string;\n}\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport default abstract class CrudService<Document> {\n\tprivate _url = '/api/';\n\n\tconstructor(\n\t\tprivate _module: string,\n\t\tprivate _http: HttpService,\n\t\tprivate _store: StoreService\n\t) {\n\t\tthis._url += this._module;\n\t}\n\t/*\n\t\tdoc should be able to:\n\t\t1) stored locally\n\t\t2) send into back-end into different ways [http,socket]\n\t\t3) have temporary id {MODULE_Date.now()}\n\t\t4) work as MongoService via read function\n\t*/\n\n\tcreate(doc: Document): Observable<Document> {\n\t\tconst obs = this._http.post(this._url + '/create', doc);\n\t\treturn obs;\n\t}\n\n\tread(opts: CrudOptions): Observable<Document> {\n\t\tconst obs = this._http.get(this._url + '/get');\n\t\treturn obs;\n\t}\n\n\tupdate(doc: Document): Observable<Document> {\n\t\tconst obs = this._http.put(this._url + '/update', doc);\n\t\treturn obs;\n\t}\n\n\tdelete(doc: Document): Observable<Document> {\n\t\tconst obs = this._http.delete(this._url + '/delete', doc);\n\t\treturn obs;\n\t}\n\n\tset(doc: Document): void { }\n\n\t// get(module: string, id: string): Document {}\n\t// getAll(module: string): Document[] {}\n}\n\n\n/*\nCreate -> Post\nRead -> Get\nUpdate -> Put\nDelete -> Delete\n\n\nimport { Injectable } from \"@angular/core\";\nimport { HttpService, StoreService } from \"wacom\";\nimport CrudService from \"./crud.service\";\n\ninterface Bird {\n\tname: string;\n\tdescription: string;\n}\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class BirdService extends CrudService<Bird> {\n\tconstructor(\n\t\t_http: HttpService,\n\t\t_store: StoreService\n\t) {\n\t\tsuper('bird', _http, _store);\n\t\tconsole.log(this.create);\n\t}\n}\n\n*/\n","import { Injectable } from '@angular/core';\nimport { HttpService } from './http.service';\nimport { CoreService } from './core.service';\nimport { Subject } from 'rxjs';\nimport { StoreService } from './store.service';\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class MongoService {\n\t/*\n\t*\tData will be storage for all information we are pulling from waw crud.\n\t*\tdata['arr' + part] will host all docs from collection part in array form\n\t*\tdata['obj' + part] will host all docs from collection part in object form\n\t*\t\tand all groups collecitons provided\n\t*\tdata['opts' + part] will host options for docs from collection part\n\t*\t\tWill be initialized only inside get\n\t*\t\tWill be used inside push\n\t*/\n\t\tprivate data:any = {};\n\t\tprivate socket: any = {\n\t\t\temit: (which:any, doc:any) => {\n\t\t\t\tconsole.log(which, doc, 'is not used on sockets');\n\t\t\t}\n\t\t};\n\t/*\n\t*\twaw crud connect functions\n\t*/\n\t\tpublic config(part:any, opts:any){\n\t\t\tif(this.data['opts' + part]) return;\n\t\t\tif(!this.data['arr' + part]) this.data['arr' + part] = [];\n\t\t\tif(!this.data['obj' + part]) this.data['obj' + part] = {};\n\t\t\tif(this.data['opts' + part]){\n\t\t\t\tfor (let each in opts){\n\t\t\t\t this.data['opts' + part][each] = opts[each];\n\t\t\t\t}\n\t\t\t}else this.data['opts' + part] = opts = opts||{};\n\t\t\tif(typeof opts.use === 'string'){\n\t\t\t\topts.use = opts.use.split(' ');\n\t\t\t}\n\t\t\tif(opts.query){\n\t\t\t\tfor(let key in opts.query){\n\t\t\t\t\tif(typeof opts.query[key] == 'function'){\n\t\t\t\t\t\topts.query[key] = {\n\t\t\t\t\t\t\tallow: opts.query[key]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.data['obj' + part][key] = [];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(opts.groups){\n\t\t\t\tif(typeof opts.groups === 'string'){\n\t\t\t\t\topts.groups = opts.groups.split(' ');\n\t\t\t\t}\n\t\t\t\tif(Array.isArray(opts.groups)){\n\t\t\t\t\tlet arr = opts.groups;\n\t\t\t\t\topts.groups = {};\n\t\t\t\t\tfor(let i = 0; i < arr.length; i++){\n\t\t\t\t\t\tif(typeof arr[i] === 'string'){\n\t\t\t\t\t\t\topts.groups[arr[i]] = true;\n\t\t\t\t\t\t}else {\n\t\t\t\t\t\t\tfor(let key in arr[i]){\n\t\t\t\t\t\t\t\tif(typeof arr[i][key] == 'function'){\n\t\t\t\t\t\t\t\t\tarr[i][key] = {\n\t\t\t\t\t\t\t\t\t\tfield: arr[i][key]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\topts.groups[key] = arr[i][key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor(let key in opts.groups){\n\t\t\t\t\tif(typeof opts.groups[key] == 'boolean'){\n\t\t\t\t\t\tif(opts.groups[key]){\n\t\t\t\t\t\t\topts.groups[key] = {\n\t\t\t\t\t\t\t\tfield: function(doc:any){\n\t\t\t\t\t\t\t\t\treturn doc[key];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tdelete opts.groups[key];\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof opts.groups[key] != 'object'){\n\t\t\t\t\t\tdelete opts.groups[key];\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof opts.groups[key].field != 'function'){\n\t\t\t\t\t\tdelete opts.groups[key];\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif(Array.isArray(this.data['obj' + part][key])){\n\t\t\t\t\t\tconsole.warn('You can have same field groups with query. Field '+key+' is not used in groups.');\n\t\t\t\t\t\tdelete opts.groups[key];\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthis.data['obj' + part][key] = {};\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(opts.fields) {\n\t\t\t\tif (typeof opts.fields === 'string') {\n\t\t\t\t\topts.fields = opts.fields.split(' ');\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!Array.isArray(opts.fields)) {\n\t\t\t\topts.fields = [];\n\t\t\t}\n\t\t\tthis.store.getJson('mongo' + part, data => {\n\t\t\t\tif (data && Array.isArray(data)) {\n\t\t\t\t\tfor (let i = 0; i < data.length; i++) {\n\t\t\t\t\t\tthis.push(part, data[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tarr: this.data['arr' + part],\n\t\t\t\tobj: this.data['obj' + part]\n\t\t\t};\n\t\t};\n\t\tpublic create(part:any, doc:any=undefined, cb:any=undefined, opts:any={}) {\n\t\t\tif (typeof doc == 'function') {\n\t\t\t\tif(cb) opts = cb;\n\t\t\t\tcb = doc;\n\t\t\t\tdoc = {};\n\t\t\t}\n\t\t\tif(typeof opts == 'function'){\n\t\t\t\topts = {\n\t\t\t\t\terr: opts\n\t\t\t\t};\n\t\t\t}\n\t\t\tif(typeof doc != 'object') doc={};\n\t\t\tif(doc.___created && !opts.allow_multiple) return;\n\t\t\tdoc.___created = true;\n\t\t\tthis.http.post(opts.url || '/api/' + part + '/create', doc || {}, resp => {\n\t\t\t\tif (resp) {\n\t\t\t\t\tthis.socket.emit('create', {\n\t\t\t\t\t\t_id: resp._id,\n\t\t\t\t\t\tpart: part\n\t\t\t\t\t});\n\t\t\t\t\tthis.push(part, resp);\n\t\t\t\t\tif (typeof cb == 'function') cb(resp);\n\t\t\t\t}else if (typeof cb == 'function') {\n\t\t\t\t\tcb(false);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\turl: opts.base_url || this.http.url\n\t\t\t});\n\t\t};\n\t\tpublic fetch(part:any, opts:any=undefined, cb:any=undefined) {\n\t\t\tif(opts.query && opts.query._id && !opts.force &&\n\t\t\t\tthis.data['obj' + part][opts.query._id]){\n\t\t\t\treturn this.data['obj' + part][opts.query._id];\n\t\t\t}\n\t\t\tif (typeof opts == 'function') {\n\t\t\t\tcb = opts;\n\t\t\t\topts = {};\n\t\t\t}\n\t\t\tif(!opts) opts = {};\n\t\t\tthis.config(part, opts); // remove this in future\n\t\t\tlet url = '/api/' + part + '/fetch'+(opts.name||''), doc:any;\n\t\t\tif(opts.query && opts.query._id && this.data['obj' + part][opts.query._id]){\n\t\t\t\tdoc = this.data['obj' + part][opts.query._id];\n\t\t\t}else{\n\t\t\t\tdoc = {};\n\t\t\t\tfor(let key in this.data['opts'+part].replace){\n\t\t\t\t\tthis.replace(doc, key, this.data['opts'+part].replace[key]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.http.post(opts.url || url, (opts.query||{}), resp => {\n\t\t\t\tif(!resp) return cb&&cb(false);\n\t\t\t\tfor (let each in resp){\n\t\t\t\t doc[each] = resp[each];\n\t\t\t\t}\n\t\t\t\tfor (let each in doc){\n\t\t\t\t doc[each] = resp[each];\n\t\t\t\t}\n\t\t\t\tthis.push(part, doc);\n\t\t\t\tif (resp && typeof cb == 'function') {\n\t\t\t\t\tcb(doc);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\turl: opts.base_url || this.http.url\n\t\t\t});\n\t\t\treturn doc;\n\t\t};\n\t\tpublic get(part:any, opts:any=undefined, cb:any=undefined) {\n\t\t\tif (typeof opts == 'function') {\n\t\t\t\tcb = opts;\n\t\t\t\topts = {};\n\t\t\t}\n\t\t\tif(!opts) opts = {};\n\t\t\tthis.config(part, opts); // remove this in future\n\t\t\tlet url = '/api/' + part + '/get'+(opts.name||'')+(opts.param||'');\n\t\t\tthis.http.get(opts.url || url, resp => {\n\t\t\t\tif (Array.isArray(resp)) {\n\t\t\t\t\tfor (let i = 0; i < resp.length; i++) {\n\t\t\t\t\t\tthis.push(part,resp[i]);\n\t\t\t\t\t}\n\t\t\t\t\tif (!opts.paginate) {\n\t\t\t\t\t\tfor (let i = 0; i < this.data['arr' + part].length; i++) {\n\t\t\t\t\t\t\tlet remove = true;\n\t\t\t\t\t\t\tfor (let j = 0; j < resp.length; j++) {\n\t\t\t\t\t\t\t\tif (resp[j]._id === this.data['arr' + part][i]._id) {\n\t\t\t\t\t\t\t\t\tremove = false;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (remove) {\n\t\t\t\t\t\t\t\tthis.remove(part, this.data['arr' + part][i]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof cb == 'function') cb(this.data['arr' + part], this.data['obj' + part], opts.name||'', resp);\n\t\t\t\t} else if (typeof cb == 'function') {\n\t\t\t\t\tcb(this.data['arr' + part], this.data['obj' + part], opts.name||'', resp);\n\t\t\t\t}\n\t\t\t\tthis.data['loaded'+part]=true;\n\t\t\t}, {\n\t\t\t\turl: opts.base_url || this.http.url\n\t\t\t});\n\t\t\treturn this.data['arr' + part];\n\t\t};\n\t\tpublic set(part:any, opts:any=undefined, resp:any=undefined) {\n\t\t\tif (Array.isArray(opts)) {\n\t\t\t\tresp = opts;\n\t\t\t\topts = undefined;\n\t\t\t}\n\t\t\tif(opts) this.config(part, opts);\n\t\t\tif (Array.isArray(resp)) {\n\t\t\t\tfor (let i = 0; i < resp.length; i++) {\n\t\t\t\t\tthis.push(part, resp[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tarr: this.data['arr' + part],\n\t\t\t\tobj: this.data['obj' + part]\n\t\t\t}\n\t\t};\n\t\tprivate prepare_update(part:any, doc:any, opts:any){\n\t\t\tif(opts.fields){\n\t\t\t\tif(typeof opts.fields === 'string') opts.fields = opts.fields.split(' ');\n\t\t\t\tlet _doc:any = {};\n\t\t\t\tfor(let i = 0; i < opts.fields.length; i++){\n\t\t\t\t\t_doc[opts.fields[i]] = doc[opts.fields[i]];\n\t\t\t\t}\n\t\t\t\tdoc = _doc;\n\t\t\t}else this.renew(part, doc);\n\t\t\tif(typeof opts.rewrite == 'object' && Object.values(opts.rewrite).length){\n\t\t\t\tdoc = JSON.parse(JSON.stringify(doc));\n\t\t\t\tfor(let key in opts.rewrite){\n\t\t\t\t\tthis.replace(doc, key, opts.rewrite[key]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn doc;\n\t\t};\n\t\tpublic update(part:any, doc:any, opts:any=undefined, cb:any=undefined) {\n\t\t\tif (typeof opts == 'function'){\n\t\t\t\tcb = opts;\n\t\t\t\topts = {};\n\t\t\t}\n\t\t\tif(typeof opts != 'object') opts = {};\n\t\t\tdoc = this.prepare_update(part, doc, opts);\n\t\t\tlet url = '/api/' + part + '/update' + (opts.name||'');\n\t\t\tthis.http.post(opts.url || url, doc, resp => {\n\t\t\t\tif(resp){\n\t\t\t\t\tthis.socket.emit('update', {\n\t\t\t\t\t\t_id: doc._id,\n\t\t\t\t\t\tpart: part\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (resp && typeof cb == 'function') {\n\t\t\t\t\tcb(resp);\n\t\t\t\t} else if (typeof cb == 'function') {\n\t\t\t\t\tcb(false);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\turl: opts.base_url || this.http.url\n\t\t\t});\n\t\t};\n\t\tpublic unique(part:any, doc:any, opts:any=undefined, cb:any=undefined) {\n\t\t\tif (typeof opts == 'function'){\n\t\t\t\tcb = opts;\n\t\t\t\topts = {};\n\t\t\t}\n\t\t\tif(typeof opts != 'object') opts = {};\n\t\t\tdoc = this.prepare_update(part, doc, opts);\n\t\t\tlet url = '/api/' + part + '/unique' + (opts.name||'');\n\t\t\tthis.http.post(opts.url || url, doc, resp => {\n\t\t\t\tif(resp){\n\t\t\t\t\tthis.socket.emit('update', {\n\t\t\t\t\t\t_id: doc._id,\n\t\t\t\t\t\tpart: part\n\t\t\t\t\t});\n\t\t\t\t\tlet current_doc = this.data['obj' + part][doc._id];\n\t\t\t\t\tfor (let each in doc){\n\t\t\t\t\t current_doc[each] = doc[each];\n\t\t\t\t\t}\n\t\t\t\t\tthis.renew(part, current_doc);\n\t\t\t\t}\n\t\t\t\tif (resp && typeof cb == 'function') {\n\t\t\t\t\tcb(resp);\n\t\t\t\t} else if (typeof cb == 'function') {\n\t\t\t\t\tcb(false);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\turl: opts.base_url || this.http.url\n\t\t\t});\n\t\t};\n\t\tpublic delete(part:any, doc:any, opts:any=undefined, cb:any=undefined) {\n\t\t\tif (typeof opts == 'function') {\n\t\t\t\tcb = opts;\n\t\t\t\topts = {};\n\t\t\t}\n\t\t\tif (typeof opts !== 'object') opts = {};\n\t\t\tif (opts.fields) {\n\t\t\t\tif(typeof opts.fields === 'string') opts.fields = opts.fields.split(' ');\n\t\t\t\tlet _doc:any = {};\n\t\t\t\tfor(let i = 0; i < opts.fields.length; i++){\n\t\t\t\t\t_doc[opts.fields[i]] = doc[opts.fields[i]];\n\t\t\t\t}\n\t\t\t\tdoc = _doc;\n\t\t\t} else {\n\t\t\t\tdoc={\n\t\t\t\t\t_id:doc._id\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet url = '/api/' + part + '/delete' + (opts.name||'');\n\t\t\tthis.http.post(opts.url || url, doc, resp => {\n\t\t\t\tif (resp) {\n\t\t\t\t\tthis.socket.emit('delete', {\n\t\t\t\t\t\t_id: doc._id,\n\t\t\t\t\t\tpart: part\n\t\t\t\t\t});\n\t\t\t\t\tthis.remove(part, doc);\n\t\t\t\t}\n\t\t\t\tif (resp && typeof cb == 'function') {\n\t\t\t\t\tcb(resp);\n\t\t\t\t} else if (typeof cb == 'function') {\n\t\t\t\t\tcb(false);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\turl: opts.base_url || this.http.url\n\t\t\t});\n\t\t};\n\t\tpublic _id(cb:any){\n\t\t\tif(typeof cb == 'function'){\n\t\t\t\tthis.http.get('/waw/newId', cb);\n\t\t\t}\n\t\t};\n\t\tpublic to_id(docs:any){\n\t\t\tif(!docs) return [];\n\t\t\tif(Array.isArray(docs)){\n\t\t\t\tdocs = docs.slice();\n\t\t\t}else if(typeof docs == 'object'){\n\t\t\t\tif(docs._id) return [docs._id];\n\t\t\t\tlet _docs = [];\n\t\t\t\tfor(let key in docs){\n\t\t\t\t\tif(docs[key]) _docs.push(docs[key]._id||docs[key]);\n\t\t\t\t}\n\t\t\t\tdocs = _docs;\n\t\t\t}\n\t\t\tfor (let i = 0; i < docs.length; ++i) {\n\t\t\t\tif(docs[i]) docs[i] = docs[i]._id || docs[i];\n\t\t\t}\n\t\t\treturn docs;\n\t\t};\n\t\tpublic afterWhile(doc:any, cb:any, time=1000){\n\t\t\tif(typeof cb == 'function' && typeof time == 'number'){\n\t\t\t\tclearTimeout(doc.__updateTimeout);\n\t\t\t\tdoc.__updateTimeout = setTimeout(cb, time);\n\t\t\t}\n\t\t};\n\t\tpublic populate(doc:any, field:any, part:any):any{\n\t\t\tif(!doc||!field||!part) return;\n\t\t\tif(Array.isArray(doc)){\n\t\t\t\tfor(let i = 0; i < doc.length; i++){\n\t\t\t\t\tthis.populate(doc[i], field, part);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(this.data['loaded'+part]){\n\t\t\t\tif(Array.isArray(field)){\n\t\t\t\t\tfor(let i = 0; i < field.length; i++){\n\t\t\t\t\t\tthis.populate(doc, field[i], part);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}else if(field.indexOf('.')>-1){\n\t\t\t\t\tfield = field.split('.');\n\t\t\t\t\tlet sub = field.shift();\n\t\t\t\t\tif(typeof doc[sub] != 'object') return;\n\t\t\t\t\treturn this.populate(doc[sub], field.join('.'), part);\n\t\t\t\t}\n\t\t\t\tif(Array.isArray(doc[field])){\n\t\t\t\t\tfor(let i = doc[field].length-1; i >= 0; i--){\n\t\t\t\t\t\tif(this.data['obj'+part][doc[field][i]]){\n\t\t\t\t\t\t\tdoc[field][i] = this.data['obj'+part][doc[field][i]];\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tdoc[field].splice(i, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}else if(typeof doc[field] === 'string'){\n\t\t\t\t\tdoc[field] = this.data['obj'+part][doc[field]] || null;\n\t\t\t\t}else return;\n\t\t\t}else{\n\t\t\t\tsetTimeout(() =>{\n\t\t\t\t\tthis.populate(doc, field, part);\n\t\t\t\t}, 100);\n\t\t\t}\n\t\t};\n\t\tpublic on(parts:any, cb:any):any {\n \t\t if (typeof parts === 'string') {\n \t\t parts = parts.split(\" \");\n \t\t }\n \t\t for (var i = 0; i < parts.length; i++) {\n \t\t if (!this.data['loaded'+parts[i]]) {\n \t\t return setTimeout( () => {\n \t\t this.on(parts, cb);\n \t\t }, 100);\n \t\t }\n \t\t }\n \t\t cb(this.data);\n \t\t};\n \t\tpublic track(index:any, doc:any){ return doc && doc._id && doc._id || index; }\n \t/*\n\t*\tmongo sort filters\n\t*/\n \t\tpublic sortAscId(){\n \t\t\treturn function(a:any,b:any){\n \t\t\t\tif(a._id>b._id) return 1;\n \t\t\t\telse return -1;\n \t\t\t}\n \t\t};\n \t\tpublic sortDescId(){\n \t\t\treturn function(a:any,b:any){\n \t\t\t\tif(a._id<b._id) return 1;\n \t\t\t\telse return -1;\n \t\t\t}\n \t\t};\n \t\tpublic sortAscString(opts:any){\n \t\t\tif(typeof opts === 'string'){\n \t\t\t\topts = {\n \t\t\t\t\tfield: opts\n \t\t\t\t}\n \t\t\t}\n \t\t\treturn function(a:any,b:any){\n \t\t\t\tif(a[opts.field].toLowerCase()>b[opts.field].toLowerCase()) return 1;\n \t\t\t\telse if(a[opts.field].toLowerCase()<b[opts.field].toLowerCase() || !opts.next) return -1;\n \t\t\t\telse return opts.next(a,b);\n \t\t\t}\n \t\t}\n \t\tpublic sortDescString(opts:any){\n \t\t\tif(typeof opts === 'string'){\n \t\t\t\topts = {\n \t\t\t\t\tfield: opts\n \t\t\t\t}\n \t\t\t}\n \t\t\treturn function(a:any,b:any){\n \t\t\t\tif(a[opts.field].toLowerCase()<b[opts.field].toLowerCase()) return 1;\n \t\t\t\telse if(a[opts.field].toLowerCase()>b[opts.field].toLowerCase() || !opts.next) return -1;\n \t\t\t\telse return opts.next(a,b);\n \t\t\t}\n \t\t}\n \t\tpublic sortAscDate(opts:any){\n \t\t\tif(typeof opts === 'string'){\n \t\t\t\topts = {\n \t\t\t\t\tfield: opts\n \t\t\t\t}\n \t\t\t}\n \t\t\treturn function(a:any,b:any){\n \t\t\t\tif(a[opts.field].getTime()>b[opts.field].getTime()) return 1;\n \t\t\t\telse if(a[opts.field].getTime()<b[opts.field].getTime() || !opts.next) return -1;\n \t\t\t\telse return opts.next(a,b);\n \t\t\t}\n \t\t}\n \t\tpublic sortDescDate(opts:any){\n \t\t\tif(typeof opts === 'string'){\n \t\t\t\topts = {\n \t\t\t\t\tfield: opts\n \t\t\t\t}\n \t\t\t}\n \t\t\treturn function(a:any,b:any){\n \t\t\t\tif(a[opts.field].getTime()<b[opts.field].getTime()) return 1;\n \t\t\t\telse if(a[opts.field].getTime()>b[opts.field].getTime() || !opts.next) return -1;\n \t\t\t\telse return opts.next(a,b);\n \t\t\t}\n \t\t}\n \t\tpublic sortAscNumber(opts:any){\n \t\t\tif(typeof opts === 'string'){\n \t\t\t\topts = {\n \t\t\t\t\tfield: opts\n \t\t\t\t}\n \t\t\t}\n \t\t\treturn function(a:any,b:any){\n \t\t\t\tif(a[opts.field]>b[opts.field]) return 1;\n \t\t\t\telse if(a[opts.field]<b[opts.field] || !opts.next) return -1;\n \t\t\t\telse return opts.next(a,b);\n \t\t\t}\n \t\t}\n \t\tpublic sortDescNumber(opts:any){\n \t\t\tif(typeof opts === 'string'){\n \t\t\t\topts = {\n \t\t\t\t\tfield: opts\n \t\t\t\t}\n \t\t\t}\n \t\t\treturn function(a:any,b:any){\n \t\t\t\tif(a[opts.field]<b[opts.field]) return 1;\n \t\t\t\telse if(a[opts.field]>b[opts.field] || !opts.next) return -1;\n \t\t\t\telse return opts.next(a,b);\n \t\t\t}\n \t\t}\n \t\tpublic sortAscBoolean(opts:any){\n \t\t\tif(typeof opts === 'string'){\n \t\t\t\topts = {\n \t\t\t\t\tfield: opts\n \t\t\t\t}\n \t\t\t}\n \t\t\treturn function(a:any,b:any){\n \t\t\t\tif(!a[opts.field]&&b[opts.field]) return 1;\n \t\t\t\telse if(a[opts.field]&&!b[opts.field] || !opts.next) return -1;\n \t\t\t\telse return opts.next(a,b);\n \t\t\t}\n \t\t}\n \t\tpublic sortDescBoolean(opts:any){\n \t\t\tif(typeof opts === 'string'){\n \t\t\t\topts = {\n \t\t\t\t\tfield: opts\n \t\t\t\t}\n \t\t\t}\n \t\t\treturn function(a:any,b:any){\n \t\t\t\tif(a[opts.field]&&!b[opts.field]) return 1;\n \t\t\t\telse if(!a[opts.field]&&b[opts.field] || !opts.next) return -1;\n \t\t\t\telse return opts.next(a,b);\n \t\t\t}\n \t\t}\n\t/*\n\t*\tmongo replace filters\n\t*/\n\t\tpublic beArr(val:any, cb:any){\n\t\t\tif(!Array.isArray(val)) cb([]);\n\t\t\telse cb(val);\n\t\t};\n\t\tpublic beObj(val:any, cb:any){\n\t\t\tif(typeof val != 'object' || Array.isArray(val) || !val){\n\t\t\t\tval = {};\n\t\t\t}\n\t\t\tcb(val);\n\t\t};\n\t\tpublic beDate(val:any, cb:any) { cb( new Date(val) ); };\n\t\tpublic beString(val:any, cb:any){\n\t\t\tif(typeof val != 'string'){\n\t\t\t\tval = '';\n\t\t\t}\n\t\t\tcb(val);\n\t\t};\n\t\tpublic beDoc = (val:any, cb:any)=>{\n\t\t\tthis.beObj(val, (val:any)=>{\n\t\t\t\tif(!val._id){\n\t\t\t\t\tthis._id((_id:any)=>{\n\t\t\t\t\t\tval._id = _id;\n\t\t\t\t\t\tcb(val);\n\t\t\t\t\t});\n\t\t\t\t}else cb(val);\n\t\t\t});\n\t\t};\n\t\tpublic forceArr(val:any, cb:any){ cb([]); };\n\t\tpublic forceObj(val:any, cb:any){ cb({}); };\n\t\tpublic forceString(val:any, cb:any){ cb(''); };\n\t\tpublic forceDoc = (val:any, cb:any) => {\n\t\t\tthis._id((_id:any)=>{\n\t\t\t\tcb({\n\t\t\t\t\t_id: _id\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\t\tpublic getCreated(val:any, cb:any, doc:any){\n\t\t\tcb(new Date(parseInt(doc._id.substring(0,8), 16)*1000));\n\t\t};\n\t/*\n\t*\tmongo local support functions\n\t*/\n\t\tprivate replace(doc:any, value:any, rpl:any):any{\n\t\t\tif(value.indexOf('.')>-1){\n\t\t\t\tvalue = value.split('.');\n\t\t\t\tlet sub = value.shift();\n\t\t\t\tif(doc[sub] && (typeof doc[sub] != 'object' || Array.isArray(doc[sub])))\n\t\t\t\t\treturn;\n\t\t\t\tif(!doc[sub]) doc[sub] = {};\n\t\t\t\treturn this.replace(doc[sub], value.join('.'), rpl);\n\t\t\t}\n\t\t\tif(typeof rpl == 'function'){\n\t\t\t\trpl(doc[value], function(newValue:any){\n\t\t\t\t\tdoc[value] = newValue;\n\t\t\t\t}, doc);\n\t\t\t}\n\t\t};\n\t\tpublic renew(part:any, doc:any){\n\t\t\tif(!this.data['obj' + part][doc._id]) return this.push(part, doc);\n\t\t\tif(this.data['opts'+part].replace){\n\t\t\t\tfor(let key in this.data['opts'+part].replace){\n\t\t\t\t\tthis.replace(doc, key, this.data['opts'+part].replace[key]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let each in this.data['obj' + part][doc._id]){\n\t\t\t\tthis.data['obj' + part][doc._id][each] = doc[each];\n\t\t\t}\n\t\t\tfor (let each in doc){\n\t\t\t\tthis.data['obj' + part][doc._id][each] = doc[each];\n\t\t\t}\n\t\t\tfor (let i = 0; i < this.data['opts' + part].fields.length; i++) {\n\t\t\t\tconst field = this.data['opts' + part].fields[i];\n\t\t\t\tif (!this.data['obj' + part][doc[field]]) {\n\t\t\t\t\tthis.data['obj' + part][doc[field]] = doc;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tfor (let each in doc) {\n\t\t\t\t\tthis.data['obj' + part][doc[field]][each] = doc[each];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(this.data['opts'+part].groups){\n\t\t\t\tfor(let key in this.data['opts'+part].groups){\n\t\t\t\t\tlet to_have = true;\n\t\t\t\t\tlet g = this.data['opts'+part].groups[key];\n\t\t\t\t\tif(typeof g.ignore == 'function' && g.ignore(doc)) to_have = false;\n\t\t\t\t\tif(typeof g.allow == 'function' && !g.allow(doc)) to_have = false;\n\t\t\t\t\tif(!this.data['obj' + part][key]){\n\t\t\t\t\t\tthis.data['obj' + part][key] = {};\n\t\t\t\t\t}\n\t\t\t\t\tlet fields:any = {};\n\t\t\t\t\tlet set = (field:any) => {\n\t\t\t\t\t\tfields[field] = true;\n\t\t\t\t\t\tif(!field) return;\n\t\t\t\t\t\tif(!Array.isArray(this.data['obj' + part][key][field])){\n\t\t\t\t\t\t\tthis.data['obj' + part][key][field] = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(to_have){\n\t\t\t\t\t\t\tfor (let i = this.data['obj' + part][key][field].length-1; i >= 0; i--){\n\t\t\t\t\t\t\t if(this.data['obj' + part][key][field][i]._id == doc._id) return;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.data['obj' + part][key][field].push(doc);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfor (let i = this.data['obj' + part][key][field].length-1; i >= 0; i--){\n\t\t\t\t\t\t\t if(this.data['obj' + part][key][field][i]._id == doc._id){\n\t\t\t\t\t\t\t \tthis.data['obj' + part][key][field].splice(i, 1);\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(typeof g.sort == 'function'){\n\t\t\t\t\t\t\tthis.data['obj' + part][key][field].sort(g.sort);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tset(g.field(doc, set.bind(this)));\n\t\t\t\t\tfor (let field in this.data['obj' + part][key]){\n\t\t\t\t\t\tif(fields[field]) continue;\n\t\t\t\t\t\tfor (let i = this.data['obj' + part][key][field].length-1; i >= 0; i--){\n\t\t\t\t\t\t\tif(this.data['obj' + part][key][field][i]._id == doc._id){\n\t\t\t\t\t\t\t\tthis.data['obj' + part][key][field].splice(i, 1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(this.data['opts'+part].query){\n\t\t\t\tfor(let key in this.data['opts'+part].query){\n\t\t\t\t\tlet to_have = true;\n\t\t\t\t\tlet query = this.data['opts'+part].query[key];\n\t\t\t\t\tif(typeof query.ignore == 'function' && query.ignore(doc)) to_have = false;\n\t\t\t\t\tif(typeof query.allow == 'function' && !query.allow(doc)) to_have = false;\n\t\t\t\t\tif(!this.data['obj' + part][key]){\n\t\t\t\t\t\tthis.data['obj' + part][key] = [];\n\t\t\t\t\t}\n\t\t\t\t\tif(to_have){\n\t\t\t\t\t\tfor (let i = this.data['obj' + part][key].length-1; i >= 0; i--){\n\t\t\t\t\t\t if(this.data['obj' + part][key][i]._id == doc._id) return;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.data['obj' + part][key].push(doc);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let i = this.data['obj' + part][key].length-1; i >= 0; i--){\n\t\t\t\t\t\t if(this.data['obj' + part][key][i]._id == doc._id){\n\t\t\t\t\t\t \tthis.data['obj' + part][key].splice(i, 1);\n\t\t\t\t\t\t }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof query.sort == 'function'){\n\t\t\t\t\t\tthis.data['obj' + part][key].sort(query.sort);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tpublic push(part:any, doc:any):any{\n\t\t\tif(!this.data['arr' + part]) this.data['arr' + part] = [];\n\t\t\tif(!this.data['obj' + part]) this.data['obj' + part] = {};\n\t\t\tif(!this.data['opts' + part]) this.data['opts' + part] = {};\n\t\t\tif(this.data['obj' + part][doc._id]) return this.renew(part, doc);\n\t\t\tif(this.data['opts' + part].replace){\n\t\t\t\tfor(let key in this.data['opts'+part].replace){\n\t\t\t\t\tthis.replace(doc, key, this.data['opts'+part].replace[key]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(this.data['opts'+part].populate){\n\t\t\t\tlet p = this.data['opts'+part].populate;\n\t\t\t\tif(Array.isArray(p)){\n\t\t\t\t\tfor(let i = 0; i < p.length; i++){\n\t\t\t\t\t\tif(typeof p == 'object' && p[i].field && p[i].part){\n\t\t\t\t\t\t\tthis.populate(doc, p[i].field, p[i].part);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}else if(typeof p == 'object' && p.field && p.part){\n\t\t\t\t\tthis.populate(doc, p.field, p.part);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.data['arr' + part].push(doc);\n\t\t\tif(this.data['opts'+part].sort){\n\t\t\t\tthis.data['arr' + part].sort(this.data['opts'+part].sort);\n\t\t\t}\n\t\t\tthis.data['obj' + part][doc._id] = doc;\n\t\t\tif(Array.isArray(this.data['opts'+part].use)){\n\t\t\t\tfor (let i = 0; i < this.data['opts'+part].use.length; i++){\n\t\t\t\t this.data['obj' + part][doc[this.data['opts'+part].use[i]]] = doc;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(this.data['opts'+part].groups){\n\t\t\t\tfor(let key in this.data['opts'+part].groups){\n\t\t\t\t\tlet g = this.data['opts'+part].groups[key];\n\t\t\t\t\tif(typeof g.ignore == 'function' && g.ignore(doc)) continue;\n\t\t\t\t\tif(typeof g.allow == 'function' && !g.allow(doc)) continue;\n\t\t\t\t\tif(!this.data['obj' + part][key]){\n\t\t\t\t\t\tthis.data['obj' + part][key] = {};\n\t\t\t\t\t}\n\t\t\t\t\tlet set = (field:any) => {\n\t\t\t\t\t\tif(!field) return;\n\t\t\t\t\t\tif(!Array.isArray(this.data['obj' + part][key][field])){\n\t\t\t\t\t\t\tthis.data['obj' + part][key][field] = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.data['obj' + part][key][field].push(doc);\n\t\t\t\t\t\tif(typeof g.sort == 'function'){\n\t\t\t\t\t\t\tthis.data['obj' + part][key][field].sort(g.sort);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tset(g.field(doc, (field:any)=>{\n\t\t\t\t\t\tset(field);\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.data['opts' + part].query) {\n\t\t\t\tfor (let key in this.data['opts' + part].query) {\n\t\t\t\t\tlet query = this.data['opts' + part].query[key];\n\t\t\t\t\tif (typeof query.ignore == 'function' && query.ignore(doc)) continue;\n\t\t\t\t\tif (typeof query.allow == 'function' && !query.allow(doc)) continue;\n\t\t\t\t\tif (!this.data['obj' + part][key]) {\n\t\t\t\t\t\tthis.data['obj' + part][key] = [];\n\t\t\t\t\t}\n\t\t\t\t\tthis.data['obj' + part][key].push(doc);\n\t\t\t\t\tif (typeof query.sort == 'function') {\n\t\t\t\t\t\tthis.data['obj' + part][key].sort(query.sort);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i = 0; i < this.data['opts' + part].fields.length; i++) {\n\t\t\t\tconst field = this.data['opts' + part].fields[i];\n\t\t\t\tif (!this.data['obj' + part][doc[field]]) {\n\t\t\t\t\tthis.data['obj' + part][doc[field]] = doc;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tfor (let each in doc) {\n\t\t\t\t\tthis.data['obj' + part][doc[field]][each] = doc[each];\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.store.setJson('mongo' + part, this.data['arr' + part]);\n\t\t};\n\t\tpublic remove(part:any, doc:any){\n\t\t\tif(!Array.isArray(this.data['arr' + part])) return;\n\t\t\tfor (let i = 0; i < this.data['arr' + part].length; i++) {\n\t\t\t\tif (this.data['arr' + part][i]._id == doc._id) {\n\t\t\t\t\tthis.data['arr' + part].splice(i, 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tdelete this.data['obj' + part][doc._id];\n\t\t\tfor (let i = 0; i < this.data['opts' + part].fields.length; i++) {\n\t\t\t\tconst field = this.data['opts' + part].fields[i];\n\t\t\t\tdelete this.data['obj' + part][doc[field]];\n\t\t\t}\n\t\t\tif(this.data['opts'+part].groups){\n\t\t\t\tfor(let key in this.data['opts'+part].groups){\n\t\t\t\t\tfor(let field in this.data['obj' + part][key]){\n\t\t\t\t\t\tfor (let i = this.data['obj' + part][key][field].length-1; i >= 0 ; i--) {\n\t\t\t\t\t\t\tif (this.data['obj' + part][key][field][i]._id == doc._id) {\n\t\t\t\t\t\t\t\tthis.data['obj' + part][key][field].splice(i, 1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(this.data['opts'+part].query){\n\t\t\t\tfor(let key in this.data['opts'+part].query){\n\t\t\t\t\tfor (let i = this.data['obj' + part][key].length-1; i >= 0 ; i--) {\n\t\t\t\t\t\tif (this.data['obj' + part][key][i]._id == doc._id) {\n\t\t\t\t\t\t\tthis.data['obj' + part][key].splice(i, 1);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t/*\n\t*\tEndof Mongo Service\n\t*/\n\tconstructor(\n\t\tprivate store: StoreService,\n\t\tprivate http: HttpService,\n\t\tprivate core: CoreService\n\t) {\n\t\tthis.core.next('socket', (socket:any)=>{\n\t\t\tthis.socket = socket;\n\t\t\tsocket.on('create', (created:any) => {\n\t\t\t\tthis.fetch(created.part, {\n\t\t\t\t\tforce: true,\n\t\t\t\t\tquery: {\n\t\t\t\t\t\t_id: created._id\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t\tsocket.on('update', (updated:any) => {\n\t\t\t\tthis.fetch(updated.part, {\n\t\t\t\t\tforce: true,\n\t\t\t\t\tquery: {\n\t\t\t\t\t\t_id: updated._id\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t\tsocket.on('delete', (deleted:any) => {\n\t\t\t\tthis.remove(deleted.part, deleted);\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class RenderService {\n\tconstructor() {}\n\tprivate pipes:any = {};\n\ton(event: string, cb: any){\n\t\tif(!this.pipes[event]) this.pipes[event] = [];\n\t\tthis.pipes[event].push(cb);\n\t\tconst index = this.pipes[event].length-1;\n\t\treturn ()=>{\n\t\t\tthis.pipes[event][index] = false;\n\t\t};\n\t}\n\trender(event = '', param = null){\n\t\tif(!this.pipes[event]) return;\n\t\tfor(let i = 0; i < this.pipes[event].length; i++){\n\t\t\tif(typeof this.pipes[event][i] === 'function'){\n\t\t\t\tthis.pipes[event][i](param);\n\t\t\t}\n\t\t}\n\t}\n}\n","// find . -name \"*.spec.ts\" -type f -delete\nimport { Injectable } from '@angular/core';\nimport { CoreService } from './core.service';\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class HashService {\n\tprivate replaces = [{\n\t\tfrom: '%20',\n\t\tto: ' '\n\t}];\n\tpublic hash:any = {};\n\tprivate done: boolean = false;\n\tconstructor(public core: CoreService) {\n\t\tif(!this.core.window.location.hash){\n\t\t\tthis.done = true;\n\t\t\treturn;\n\t\t}\n\t\tthis.load();\n\t\tthis.done = true;\n\t}\n\tload(){\n\t\tthis.hash = {};\n\t\tlet hash:any = this.core.window.location.hash.replace('#!#', '').replace('#', '').split('&');\n\t\tfor(let i = 0; i < hash.length; i++){\n\t\t\tlet holder = hash[i].split('=')[0];\n\t\t\tlet value = hash[i].split('=')[1];\n\t\t\tfor(let j = 0; j < this.replaces.length; j++){\n\t\t\t\tholder = holder.split(this.replaces[j].from).join(this.replaces[j].to);\n\t\t\t\tvalue = value.split(this.replaces[j].from).join(this.replaces[j].to);\n\t\t\t}\n\t\t\tthis.hash[holder] = value;\n\t\t}\n\t}\n\ton(field:any, cb = (resp:any)=>{}):any{\n\t\tif(!this.done) return setTimeout(()=>{\n\t\t\tthis.on(field, cb);\n\t\t}, 100);\n\t\tcb(this.hash[field]);\n\t}\n\tsave(){\n\t\tlet hash = '';\n\t\tfor(let each in this.hash){\n\t\t\tif(hash) hash += '&';\n\t\t\thash += each + '=' + this.hash[each];\n\t\t}\n\t\tthis.core.window.location.hash = hash;\n\t}\n\tset(field:any, value:any){\n\t\tthis.hash[field] = value;\n\t\tthis.save();\n\t}\n\tget(field:any){\n\t\treturn this.hash[field];\n\t}\n\tclear(field?:any){\n\t\tif(field) delete this.hash[field];\n\t\telse this.hash = {};\n\t\tthis.save();\n\t}\n}\n","import {\n\tInjectable,\n\tInjector,\n\tComponentFactoryResolver,\n\tComponentRef,\n\tEmbeddedViewRef,\n\tApplicationRef\n} from '@angular/core';\nimport { CoreService } from './core.service';\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class DomService {\n\tconstructor(private componentFactoryResolver: ComponentFactoryResolver,\n\t\tprivate appRef: ApplicationRef,\n\t\tprivate injector: Injector,\n\t\tprivate core: CoreService) { }\n\t/**\n\t* Appends a component to body currently\n\t*/\n\t\tappendById(component: any, options: any = {}, id:any) {\n\t\t\tconst componentRef = this.componentFactoryResolver.resolveComponentFactory(component).create(this.injector);\n\t\t\tthis.projectComponentInputs(componentRef, options);\n\t\t\tthis.appRef.attachView(componentRef.hostView);\n\t\t\tconst domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n\t\t\tlet element = this.core.document.getElementById(id);\n\t\t\tif(element && typeof element.appendChild == 'function'){\n\t\t\t\telement.appendChild(domElem);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tnativeElement: domElem,\n\t\t\t\tcomponentRef: componentRef\n\t\t\t};\n\t\t}\n\t/**\n\t* Appends a component to body currently\n\t*/\n\t\tprivate providedIn:any = {};\n\t\tappendComponent(component: any, options: any = {}, element = this.core.document.body) {\n\t\t\tif(options.providedIn){\n\t\t\t\tif(this.providedIn[options.providedIn]) return;\n\t\t\t\tthis.providedIn[options.providedIn] = true;\n\t\t\t}\n\t\t\tconst componentRef = this.componentFactoryResolver.resolveComponentFactory(component).create(this.injector);\n\t\t\tthis.projectComponentInputs(componentRef, options);\n\t\t\tthis.appRef.attachView(componentRef.hostView);\n\t\t\tconst domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n\t\t\tif(element && typeof element.appendChild == 'function'){\n\t\t\t\telement.appendChild(domElem);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tnativeElement: domElem,\n\t\t\t\tcomponentRef: componentRef\n\t\t\t};\n\t\t}\n\t/**\n\t* Projects the inputs onto the component\n\t*/\n\t\tprojectComponentInputs(component: ComponentRef<any>, options: any): ComponentRef<any> {\n\t\t\tif(options) {\n\t\t\t\tconst props = Object.getOwnPropertyNames(options);\n\t\t\t\tfor(const prop of props) {\n\t\t\t\t\tcomponent.instance[prop] = options[prop];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn component;\n\t\t}\n\t/*\n\t*\tEnd of Dom Service\n\t*/\n}\n\n/*\nhttps://stackoverflow.com/questions/39857222/angular2-dynamic-component-injection-in-root/40687392#40687392\nhttps://gist.github.com/reed-lawrence/1f6b7c328ad3886e60dc2b0adcf75a97\n*/","import { Component } from '@angular/core';\n\n@Component({\n\tselector: 'lib-wrapper',\n\ttemplateUrl: './wrapper.component.html',\n\tstyleUrls: ['./wrapper.component.scss']\n})\nexport class WrapperComponent{\n\tconstructor() {}\n}\n","<div>\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-bottomRight\" id=\"bottomRight\"></div>\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-bottomLeft\" id=\"bottomLeft\"></div>\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-topRight\" id=\"topRight\"></div>\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-topLeft\" id=\"topLeft\"></div>\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-topCenter\" id=\"topCenter\"></div>\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-bottomCenter\" id=\"bottomCenter\"></div>\n\t<div class=\"waw-alert-wrapper waw-alert-wrapper-center\" id=\"center\"></div>\n\t<!-- [bottomRight, bottomLeft, topRight, topLeft, topCenter, bottomCenter or center] -->\n</div>\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from '../interfaces/config';\nimport { AlertComponent } from '../components/alert/alert.component';\nimport { WrapperComponent } from '../components/alert/wrapper/wrapper.component';\nimport { DomService } from './dom.service';\nimport { CoreService } from './core.service';\nimport { Alert, DEFAULT_Alert } from '../interfaces/alert.interface';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class AlertService {\n\tprivate alert:any;\n\tconstructor(private dom: DomService, private core: CoreService,\n\t\t@Inject(CONFIG_TOKEN) @Optional() private config: Config) {\n\t\tif(!this.config) this.config = DEFAULT_CONFIG;\n\t\tthis.alert = this.config.alert;\n\t\tif(!this.alert) {\n\t\t\tthis.alert = DEFAULT_Alert;\n\t\t} else {\n\t\t\tfor (let each in DEFAULT_Alert){\n\t\t\t\tif(this.alert[each]) continue;\n\t\t\t this.alert[each] = DEFAULT_Alert[each];\n\t\t\t}\n\t\t}\n\t\tthis.dom.appendComponent(WrapperComponent);\n\t}\n\tprivate uniques:any = {};\n\tprivate shortcuts:any = {\n\t\ttl: \"topLeft\",\n\t\ttc: \"topCenter\",\n\t\ttr: \"topRight\",\n\t\tr: \"right\",\n\t\tbr: \"bottomRight\",\n\t\tbc: \"bottomCenter\",\n\t\tbl: \"bottomLeft\",\n\t\tl: \"left\",\n\t\tc: \"center\"\n\t};\n\tshow(opts: any | Alert){\n\t\tif (typeof opts === 'string') {\n\t\t\topts = {\n\t\t\t\ttext: opts\n\t\t\t}\n\t\t}\n\t\tif (!opts) opts = {};\n\t\tif (!opts['type']) opts['type'] = 'info';\n\t\tfor (let each in this.alert){\n\t\t\tif(each==\"class\") opts[each] = opts[each]+\" \"+this.alert[each];\n\t\t\telse if(typeof opts[each] == \"undefined\") opts[each] = this.alert[each];\n\t\t}\n\t\tif(this.shortcuts[opts.position]) opts.position = this.shortcuts[opts.position];\n\t\tif(!opts.position) opts.position='bottomRight';\n\t\tvar content:any;\n\t\topts.close = ()=>{\n\t\t\tif(content) content.componentRef.destroy();\n\t\t\tcomponent.nativeElement.remove();\n\t\t\tif (typeof (opts as Alert).onClose == 'function') (opts as Alert).onClose();\n\t\t};\n\t\tlet component = this.dom.appendById(AlertComponent, opts, opts.position);\n\t\tif(typeof opts.component == 'string' && this.alert.alerts[opts.component]){\n\t\t\topts.component = this.alert.alerts[opts.component];\n\t\t}\n\t\tif(typeof opts.component == 'function'){\n\t\t\tcontent = this.dom.appendComponent(opts.component, opts, component.nativeElement.children[0].children[0].children[0] as HTMLElement);\n\t\t}\n\t\tif(opts.unique){\n\t\t\tif(this.uniques[opts.unique]) this.uniques[opts.unique].remove();\n\t\t\tthis.uniques[opts.unique] = component.nativeElement;\n\t\t}\n\t\treturn component.nativeElement;\n\t}\n\topen(opts: Alert){ this.show(opts); }\n\tinfo(opts: Alert){\n\t\topts['type']='info';\n\t\tthis.show(opts);\n\t}\n\tsuccess(opts: Alert){\n\t\topts['type']='success';\n\t\tthis.show(opts);\n\t}\n\twarning(opts: Alert){\n\t\topts['type']='warning';\n\t\tthis.show(opts);\n\t}\n\terror(opts: Alert){\n\t\topts['type']='error';\n\t\tthis.show(opts);\n\t}\n\tquestion(opts: Alert){\n\t\topts['type']='question';\n\t\tthis.show(opts);\n\t}\n\tdestroy(){\n\t\tthis.core.document.getElementById(\"bottomRight\").innerHTML = \"\";\n\t\tthis.core.document.getElementById(\"bottomLeft\").innerHTML = \"\";\n\t\tthis.core.document.getElementById(\"bottomCenter\").innerHTML = \"\";\n\t\tthis.core.document.getElementById(\"topRight\").innerHTML = \"\";\n\t\tthis.core.document.getElementById(\"topLeft\").innerHTML = \"\";\n\t\tthis.core.document.getElementById(\"topCenter\").innerHTML = \"\";\n\t\tthis.core.document.getElementById(\"center\").innerHTML = \"\";\n\t}\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from '../interfaces/config';\nimport { LoaderComponent } from '../components/loader/loader.component';\nimport { DomService } from './dom.service';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class LoaderService {\n\tpublic loaders:any = [];\n\tconstructor(private dom: DomService,\n\t\t@Inject(CONFIG_TOKEN) @Optional() private config: Config) {\n\t}\n\tshow(opts?:any){\n\t\tlet component:any;\n\t\topts.close = ()=>{\n\t\t\tif(component) component.componentRef.destroy();\n\t\t\tcomponent.nativeElement.remove();\n\t\t\tif(typeof opts.onClose == 'function') opts.onClose();\n\t\t};\n\t\tif(opts.append){\n\t\t\tcomponent = this.dom.appendComponent(LoaderComponent, opts, opts.append);\n\t\t}\n\t\telse{\n\t\t\tcomponent = this.dom.appendComponent(LoaderComponent, opts);\n\t\t}\n\t\tthis.loaders.push(component);\n\t\treturn component.nativeElement;\n\t}\n\tdestroy(){\n\t\tfor (let i = this.loaders.length-1; i >= 0; i--){\n\t\t this.loaders[i].componentRef.destroy();\n\t\t\tthis.loaders.splice(i,1);\n\t\t}\n\t}\n}\n","import { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from '../interfaces/config';\nimport { Injectable, Inject, Optional } from '@angular/core';\nimport { CoreService } from './core.service';\nimport * as io from \"socket.io-client\";\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class SocketService {\n\tprivate _url = '';\n\n\tsetUrl(url: string): void {\n\t\tthis._url = url;\n\n\t\tif (!this._config.socket) {\n\t\t\tthis._config.socket = true;\n\t\t}\n\n\t\tthis.load();\n\t}\n\n\tprivate _io:any;\n\n\tprivate _connected = false;\n\n\tprivate _opts: any = {};\n\n\tload(){\n\t\tif (io) {\n\t\t\tconst ioFunc = (io as any).default ? (io as any).default : io;\n\n\t\t\tthis._io = ioFunc(this._url, this._opts);\n\n\t\t\tthis._io.on('connect', (socket:any) => {\n\t\t\t\tthis._connected = true;\n\t\t\t});\n\t\t}\n\t}\n\n\tconstructor(\n\t\t@Inject(CONFIG_TOKEN) @Optional() private _config: Config,\n\t\tprivate _core: CoreService\n\t){\n\t\tthis._core.done('socket', this);\n\n\t\tthis._url = this._core.window.location.origin.replace('4200', '8080');\n\n\t\tif(!this._config) this._config = DEFAULT_CONFIG;\n\n\t\tif (typeof this._config.socket === 'object') {\n\t\t\tif (this._config.socket.url) {\n\t\t\t\tthis._url = this._config.socket.url;\n\t\t\t}\n\n\t\t\tif (this._config.socket.opts) {\n\t\t\t\tthis._opts = this._config.socket.opts;\n\t\t\t}\n\t\t}\n\n\t\tif(this._config.socket){\n\t\t\tthis.load();\n\t\t}\n\t}\n\n\ton(to:any, cb = (message:any)=>{}):any{\n\t\tif(!this._config.socket) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(!this._connected){\n\t\t\treturn setTimeout(()=>{\n\t\t\t\tthis.on(to, cb);\n\t\t\t}, 100);\n\t\t}\n\n\t\tthis._io.on(to, cb);\n\t}\n\n\temit(to:any, message:any, room:any = false):any{\n\t\tif(!this._config.socket) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(!this._connected){\n\t\t\treturn setTimeout(()=>{\n\t\t\t\tthis.emit(to, message, room);\n\t\t\t}, 100);\n\t\t}\n\n\t\tthis._io.emit(to, message, room);\n\t}\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { DomService } from './dom.service';\nimport { CoreService } from './core.service';\nimport { ModalComponent } from '../components/modal/modal.component';\nimport { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from '../interfaces/config';\nimport { Modal, DEFAULT_Modal } from '../interfaces/modal.interface';\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class ModalService {\n\tprivate _modal: any;\n\tconstructor(private dom: DomService, private core: CoreService,\n\t\t@Inject(CONFIG_TOKEN) @Optional() private config: Config) {\n\t\tif(!this.config) this.config={};\n\t\tif(!this.config.modal) this.config.modal={};\n\t\tif(!this.config.modal.modals) this.config.modal.modals={};\n\t\tthis._modal = config.modal;\n\t}\n\n\tshow(opts: Modal | any){\n\t\tif(typeof opts == 'string' || typeof opts == 'function'){\n\t\t\topts = {\n\t\t\t\tcomponent: opts\n\t\t\t}\n\t\t}\n\t\tif(!opts || typeof opts != 'object') opts = {};\n\t\tif(typeof opts.component == 'string' && this._modal.modals[opts.component]){\n\t\t\topts.component = this._modal.modals[opts.component];\n\t\t}\n\t\tif(typeof opts.component != 'function'){\n\t\t\tconsole.log(\"This component does not exists.\");\n\t\t\treturn;\n\t\t}\n\t\tif(!opts.class) opts.class='';\n\t\tfor (let each in this.config.modal){\n\t\t\tif(each==\"class\") opts.class += (opts.class&&' '||'') + this.config.modal.class;\n\t\t\telse if(!opts[each]) opts[each] = this._modal[each];\n\t\t}\n\t\topts.id = Math.floor(Math.random() * Date.now()) + Date.now();\n\t\tthis.opened[opts.id] = opts;\n\t\tthis.core.document.body.classList.add(\"modalOpened\");\n\t\tlet component:any;\n\t\tlet content:any;\n\t\topts.close = ()=>{\n\t\t\tcontent.componentRef.destroy();\n\t\t\tcomponent.nativeElement.remove();\n\t\t\tif(typeof opts.onClose == 'function') opts.onClose();\n\t\t\tdelete this.opened[opts.id];\n\t\t\tif(!Object.keys(this.opened).length){\n\t\t\t\tthis.core.document.body.classList.remove(\"modalOpened\");\n\t\t\t}\n\t\t};\n\t\tif(typeof opts.timeout == 'number' && opts.timeout>0){\n\t\t\tsetTimeout(opts.close, opts.timeout);\n\t\t}\n\t\tcomponent = this.dom.appendComponent(ModalComponent, opts);\n\t\tcontent = this.dom.appendComponent(opts.component, opts, component.nativeElement.children[0].children[0].children[0] as HTMLElement);\n\t\treturn component.nativeElement;\n\t}\n\topen(opts: Modal){ this.show(opts); }\n\tsmall(opts: Modal){\n\t\tif(typeof opts == 'string' || typeof opts == 'function'){\n\t\t\topts = {\n\t\t\t\tcomponent: opts\n\t\t\t}\n\t\t}\n\t\topts.size = 'small';\n\t\tthis.show(opts);\n\t}\n\tmid(opts: Modal){\n\t\tif(typeof opts == 'string' || typeof opts == 'function'){\n\t\t\topts = {\n\t\t\t\tcomponent: opts\n\t\t\t}\n\t\t}\n\t\topts.size = 'mid';\n\t\tthis.show(opts);\n\t}\n\tbig(opts: Modal){\n\t\tif(typeof opts == 'string' || typeof opts == 'function'){\n\t\t\topts = {\n\t\t\t\tcomponent: opts\n\t\t\t}\n\t\t}\n\t\topts.size = 'big';\n\t\tthis.show(opts);\n\t}\n\tfull(opts: Modal){\n\t\tif(typeof opts == 'string' || typeof opts == 'function'){\n\t\t\topts = {\n\t\t\t\tcomponent: opts\n\t\t\t}\n\t\t}\n\t\topts.size = 'full';\n\t\tthis.show(opts);\n\t}\n\tprivate opened:any = {};\n\tdestroy(){\n\t\tfor (let each in this.opened){\n\t\t this.opened[each].close();\n\t\t}\n\t\tthis.core.document.body.classList.remove(\"modalOpened\");\n\t}\n}\n","import { Component } from '@angular/core';\n\n@Component({\n\tselector: 'lib-files',\n\ttemplateUrl: './files.component.html',\n\tstyleUrls: ['./files.component.scss']\n})\nexport class FilesComponent{\n\tpublic fs:any;\n\tconstructor() {}\n}\n","<ng-container *ngFor=\"let file of fs.files\">\n\t<input [id]=\"file.id\" type=\"file\" name=\"file\" (change)=\"fs.change($event, file); input.value='';\" #input [hidden]=\"true\" [accept]=\"(file.accept) || (file.part && 'image/*') || ''\" [multiple]=\"file.multiple && true || ''\">\n</ng-container>","import { FilesComponent } from '../components/files/files.component';\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { HttpService } from './http.service';\nimport { DomService } from './dom.service';\nimport { CoreService } from './core.service';\nimport { Injectable } from '@angular/core';\nimport { throwError } from 'rxjs'; \nimport { catchError } from 'rxjs/operators'; \n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class FileService {\n\tprivate added:any = {};\n\tprivate files:any = [];\n\tconstructor(private dom: DomService, private core: CoreService, private http: HttpService) {\n\t\tthis.dom.appendComponent(FilesComponent, {\n\t\t\tfs: this\n\t\t});\n\t}\n\t/*\n\t*\tInput Management\n\t*/\n\t\tpublic add(opts:any){\n\t\t\tif(typeof opts == 'string'){\n\t\t\t\topts = {\n\t\t\t\t\tid: opts\n\t\t\t\t};\n\t\t\t}\n\t\t\tif(!opts.id) return console.log('You have to pass ID into file object');\n\t\t\tif(!opts.type) opts.type='image';\n\t\t\tif(typeof opts.resize == 'number'){\n\t\t\t\topts.resize = {\n\t\t\t\t\twidth: opts.resize,\n\t\t\t\t\theight: opts.resize\n\t\t\t\t};\n\t\t\t}\n\t\t\tif(this.added[opts.id]){\n\t\t\t\tfor (let i = this.files.length-1; i >= 0; i--){\n\t\t\t\t if(this.files[i].id == opts.id){\n\t\t\t\t \tthis.files.splice(i, 1);\n\t\t\t\t }\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.files.push(opts);\n\t\t\tthis.added[opts.id] = opts;\n\t\t\tif(opts.save){\n\t\t\t\treturn ()=>{ opts.complete(); };\n\t\t\t}\n\t\t};\n\t\tpublic change(event:any, info:any){\n\t\t\tif(info.type == 'image'){\n\t\t\t\tif(info.multiple){\n\t\t\t\t\tif(typeof info.multiple_cb == 'function'){\n\t\t\t\t\t\tinfo.multiple_files = [];\n\t\t\t\t\t\tinfo.multiple_counter = event.target.files.length;\n\t\t\t\t\t}\n\t\t\t\t\tfor (let i = 0; i < event.target.files.length; i++){\n\t\t\t\t\t\tthis.process(event.target.files[i], info);\n\t\t\t\t\t}\n\t\t\t\t}else{\n\t\t\t\t\tthis.process(event.target.files[0], info);\n\t\t\t\t}\n\t\t\t}else if(info.type == 'file'){\n\t\t\t\tif(info.multiple){\n\t\t\t\t\tif(typeof info.multiple_cb == 'function'){\n\t\t\t\t\t\tinfo.multiple_cb(event.target.files);\n\t\t\t\t\t}\n\t\t\t\t\tfor (let i = 0; i < event.target.files.length; i++){\n\t\t\t\t\t\tif(typeof info.cb == 'function'){\n\t\t\t\t\t\t\tinfo.cb(event.target.files[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}else{\n\t\t\t\t\tif(typeof info.cb == 'function'){\n\t\t\t\t\t\tinfo.cb(event.target.files[0]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(info.part || info.url){\n\t\t\t\t\tthis.file(info, event.target.files);\n\t\t\t\t}\n\t\t\t}else console.log('Provide type `image` or `file` ');\n\t\t};\n\t\tpublic remove(part:any, url:any, opts:any={}, cb:any=(resp:any)=>{}):any{\n\t\t\topts.url = url;\n\t\t\tif(opts.save){\n\t\t\t\treturn ()=>{\n\t\t\t\t\tthis.http.post(opts.api || '/api/'+part+'/file/delete', opts, cb);\n\t\t\t\t};\n\t\t\t}else{\n\t\t\t\tthis.http.post(opts.api || '/api/'+part+'/file/delete', opts, cb);\n\t\t\t}\n\t\t};\n\t\tpublic file(info:any, files:any, cb:any=()=>{}){\n\t\t\tlet formData: FormData = new FormData();\n\t\t\tif(typeof info.append == 'function'){\n\t\t\t\tinfo.append(formData, files);\n\t\t\t}else{\n\t\t\t\tfor (let i = 0; i < files.length; i++){\n\t\t\t\t\tformData.append('file['+i+']', files[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet body = typeof info.body == 'function' && info.body() || (typeof info.body == 'object' && info.body || {});\n\t\t\tfor (let each in body){\n\t\t\t formData.append(each, body[each]);\n\t\t\t}\n\t\t\tif(info.save){\n\t\t\t\tinfo.complete = ()=>{\n\t\t\t\t\tthis.http.post(info.api || '/api/' + info.part + '/file'+(info.name&&('/'+info.name)||''), formData, resp => {\n\t\t\t\t\t\tif(resp && typeof info.resp == 'function') info.resp(resp);\n\t\t\t\t\t\tif(resp && typeof cb == 'function') cb(resp);\n\t\t\t\t\t});\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}else{\n\t\t\t\tthis.http.post(info.api || '/api/' + info.part + '/file'+(info.name&&('/'+info.name)||''), formData, resp => {\n\t\t\t\t\tif(resp && typeof info.resp == 'function') info.resp(resp);\n\t\t\t\t\tif(resp && typeof cb == 'function') cb(resp);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t\tpublic image(info:any, resp:any=()=>{}):any{\n\t\t\tif(info.save){\n\t\t\t\treturn ()=>{\n\t\t\t\t\tthis.http.post(info.api||'/api/'+info.part+'/file'+(info.name&&('/'+info.name)||''), info, resp);\n\t\t\t\t};\n\t\t\t}else{\n\t\t\t\tthis.http.post(info.api||'/api/'+info.part+'/file'+(info.name&&('/'+info.name)||''), info, resp);\n\t\t\t}\n\t\t\t\n\t\t};\n\t/*\n\t*\tCommon Management\n\t*/\n\t\tprivate update(dataUrl:any, info:any, file:any){\n\t\t\tif(typeof info.cb == 'function'){\n\t\t\t\tinfo.cb(dataUrl, file);\n\t\t\t}\n\t\t\tif(typeof info.multiple_cb == 'function'){\n\t\t\t\tinfo.multiple_files.push({dataUrl: dataUrl, file: file});\n\t\t\t\tif(--info.multiple_counter == 0) info.multiple_cb(info.multiple_files);\n\t\t\t}\n\t\t\tif(!info.part) return;\n\t\t\tlet obj = typeof info.body == 'function' && info.body() || {};\n\t\t\tobj.dataUrl = dataUrl;\n\t\t\tif(info.save){\n\t\t\t\tinfo.complete = ()=>{\n\t\t\t\t\tthis.http.post(info.api||'/api/'+info.part+'/file'+(info.name&&('/'+info.name)||''), obj, resp => {\n\t\t\t\t\t\tif(resp && typeof info.cb == 'function') info.cb(resp);\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t}else{\n\t\t\t\tthis.http.post(info.api||'/api/'+info.part+'/file'+(info.name&&('/'+info.name)||''), obj, resp => {\n\t\t\t\t\tif(resp && typeof info.cb == 'function') info.cb(resp);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t\tprivate process(file:any, info:any){\n\t\t\tif(file.type.indexOf(\"image/\")!=0){\n\t\t\t\tif(typeof info.cb == 'function'){\n\t\t\t\t\tinfo.cb(false, file);\n\t\t\t\t}\n\t\t\t\tif(typeof info.multiple_cb == 'function'){\n\t\t\t\t\tinfo.multiple_files.push({file: file});\n\t\t\t\t\tif(--info.multiple_counter == 0) info.multiple_cb(info.multiple_files);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(info.resize){\n\t\t\t\tinfo.resize.width = info.resize.width || 1920;\n\t\t\t\tinfo.resize.height = info.resize.height || 1080;\n\t\t\t}\n\t\t\tlet reader = new FileReader();\n\t\t\treader.onload = (loadEvent:any)=>{\n\t\t\t\tif(!info.resize){\n\t\t\t\t\treturn this.update(loadEvent.target.result, info, file);\n\t\t\t\t}\n\t\t\t\tlet canvasElement = this.core.document.createElement('canvas');\n\t\t\t\tlet imageElement = this.core.document.createElement('img');\n\t\t\t\timageElement.onload = ()=>{\n\t\t\t\t\tlet infoRatio = info.resize.width / info.resize.height;\n\t\t\t\t\tlet imgRatio = imageElement.width / imageElement.height;\n\t\t\t\t\tlet width, height;\n\t\t\t\t\tif (imgRatio > infoRatio) {\n\t\t\t\t\t\twidth = info.resize.width;\n\t\t\t\t\t\theight = width / imgRatio;\n\t\t\t\t\t} else {\n\t\t\t\t\t\theight = info.resize.height;\n\t\t\t\t\t\twidth = height * imgRatio;\n\t\t\t\t\t}\n\t\t\t\t\tcanvasElement.width = width;\n\t\t\t\t\tcanvasElement.height = height;\n\t\t\t\t\tlet context = canvasElement.getContext('2d');\n\t\t\t\t\tcontext.drawImage(imageElement, 0, 0 , width, height);\n\t\t\t\t\tlet dataUrl = canvasElement.toDataURL('image/jpeg', 1);\n\t\t\t\t\treturn this.update(dataUrl, info, file);\n\t\t\t\t};\n\t\t\t\timageElement.src = loadEvent.target.result;\n\t\t\t};\n\t\t\treader.readAsDataURL(file);\n\t\t};\n\t/*\n\t*\tEnd Of\n\t*/\n}","import { Injectable } from '@angular/core';\nimport { CoreService } from './core.service';\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class UiService {\n\tpublic var:any = {};\n\tconstructor(public core: CoreService) {\n\t\tthis.variables = this.core.localStorage.getItem('css_variables') && JSON.parse(this.core.localStorage.getItem('css_variables')) || {}\n\t\tfor (let key in this.variables) {\n\t\t\tthis.setProperty(key, this.variables[key]);\n\t\t}\n\t}\n\t/* Forms Management */\n\t\tprivate _forms:any = {};\n\t\tpublic form(id:any){\n\t\t\tif(typeof id != 'string') return {};\n\t\t\tif(!this._forms[id]) this._forms[id]={};\n\t\t\t// add more cool things or submiting, etc\n\t\t\treturn this._forms[id];\n\t\t}\n\t\tpublic valid(value:any, kind = 'email', extra = 0) {\n\t\t\tif(kind === 'email') {\n\t\t\t\treturn /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,10})+$/.test(value||'');\n\t\t\t} else if(kind === 'text') {\n\t\t\t\treturn typeof value == 'string';\n\t\t\t} else if(kind === 'array') {\n\t\t\t\treturn Array.isArray(value);\n\t\t\t} else if(kind === 'object') {\n\t\t\t\tif (typeof value === 'object' && !Array.isArray(value) && value !== null) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else if(kind === 'number') {\n\t\t\t\treturn typeof value == 'number';\n\t\t\t} else if (kind === 'password' && extra) {\n\t\t\t\tif(!value) return false;\n\t\t\t\tif(extra === 1) {\n\t\t\t\t\treturn /^((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9]))/.test(value||'');\n\t\t\t\t} else if(extra === 2) {\n\t\t\t\t\treturn /^(((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{8,})/.test(value||'');\n\t\t\t\t} else if(extra === 3) {\n\t\t\t\t\treturn /^((?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]))(?=.{8,})/.test(value||'');\n\t\t\t\t} else if(extra === 4) {\n\t\t\t\t\treturn /^((?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[@#$%&!-_]))(?=.{8,})/.test(value||'');\n\t\t\t\t} else return !!value;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t\tpublic level(value = ''){\n\t\t\tif ( !value ) return 0;\n\t\t\tlet level = 0;\n\t\t\tif (value.length > 8) {\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\tif (/[a-z]/.test(value)) {\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\tif (/[A-Z]/.test(value)) {\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\tif (/[1-9]/.test(value)) {\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\tif (/[`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/.test(value)) {\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\treturn level;\n\t\t}\n\t/* Css Management*/\n\t\tprivate variables:any = {};\n\t\tprivate save() {\n\t\t\tthis.core.localStorage.setItem('css_variables', JSON.stringify(this.variables));\n\t\t}\n\t\tprivate setProperty(key:any, value:any) {\n\t\t\tthis.core.document.documentElement.style.setProperty(key, value);\n\t\t}\n\t\tpublic set(variables:any, opts:any={}) {\n\t\t\tif(typeof opts == 'string') {\n\t\t\t\tif(opts == 'local') opts = {local: true};\n\t\t\t\telse{\n\t\t\t\t\topts = { host: opts };\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(opts.host && this.core.window.location.host != opts.host) return;\n\t\t\tif(Array.isArray(variables)) {\n\t\t\t\tfor (let i = 0; i < variables.length; i++) {\n\t\t\t\t\tif( opts.local ) {\n\t\t\t\t\t\tthis.variables[variables[i].key] = variables[variables[i].value];\n\t\t\t\t\t} else if( this.variables[variables[i].key] ) continue;\n\t\t\t\t\tthis.setProperty(variables[i].key, variables[i].value);\n\t\t\t\t}\n\t\t\t} else if(typeof variables == 'object') {\n\t\t\t\tfor (let key in variables) {\n\t\t\t\t\tif(opts.local) {\n\t\t\t\t\t\tthis.variables[key] = variables[key];\n\t\t\t\t\t} else if( this.variables[key] ) continue;\n\t\t\t\t\tthis.setProperty(key, variables[key]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(opts.local) this.save();\n\t\t}\n\t\tpublic get() { return this.variables };\n\t\tpublic remove(key:any) {\n\t\t\tif(typeof key == 'string') key = key.split(' ');\n\t\t\tfor (let i = 0; i < key.length; i++) {\n\t\t\t\tdelete this.variables[key[i]];\n\t\t\t}\n\t\t\tthis.save();\n\t\t}\n\t\tpublic arr(arrLen=10, type:any='number') {\n\t\t\tlet arr = [];\n\t\t\tfor (let i = 0; i < arrLen; i++) {\n\t\t\t\tif(type == 'number') {\n\t\t\t\t\tarr.push(i+1);\n\t\t\t\t} else if (type == 'text') {\n\t\t\t\t\tarr.push(this.text());\n\t\t\t\t} else if(type == 'date') {\n\t\t\t\t\tarr.push(new Date(new Date().getTime()+(i*86400000)));\n\t\t\t\t} else{\n\t\t\t\t\tarr.push(type);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn arr;\n\t\t}\n\t\tpublic text(arrLen=10) {\n\t\t\tlet result = '';\n\t\t\tlet characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\t\t\tlet charactersLength = characters.length;\n\t\t\tfor ( let i = 0; i < arrLen; i++ ) {\n\t\t\t\tresult += characters.charAt(Math.floor(Math.random() * charactersLength));\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t/* End Of Management*/\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class TimeService {\n\tconstructor() {}\n\tday(which:any, format='WeekDay'){\n\t\treturn this.WeekDay[which];\n\t}\n\tprivate WeekDay:any = {\n\t\t\"0\": \"Monday\",\n\t\t\"1\": \"Tuesday\",\n\t\t\"2\": \"Wednesday\",\n\t\t\"3\": \"Thursday\",\n\t\t\"4\": \"Friday\",\n\t\t\"5\": \"Saturday\",\n\t\t\"6\": \"Sunday\"\n\t};\n}\n","/* initialize */\nimport { CONFIG_TOKEN, Config, DEFAULT_CONFIG } from './interfaces/config';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\nimport { MetaService } from './services/meta.service';\nimport { MetaGuard } from './guard/meta.guard';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n/* directives */\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\nconst DIRECTIVES = [ClickOutsideDirective];\n\n/* pipes */\nimport { ArrPipe } from './pipes/arr.pipe';\nimport { SafePipe } from './pipes/safe.pipe';\nimport { SplicePipe } from './pipes/splice.pipe';\nimport { SearchPipe } from './pipes/search.pipe';\nimport { MongodatePipe } from './pipes/mongodate.pipe';\nimport { PaginationPipe } from './pipes/pagination.pipe';\nconst PIPES = [\n\tArrPipe,\n\tSafePipe,\n\tSplicePipe,\n\tSearchPipe,\n\tMongodatePipe,\n\tPaginationPipe,\n];\n\n/* components */\nimport { WrapperComponent } from './components/alert/wrapper/wrapper.component';\nimport { LoaderComponent } from './components/loader/loader.component';\nimport { FilesComponent } from './components/files/files.component';\nimport { ModalComponent } from './components/modal/modal.component';\nimport { AlertComponent } from './components/alert/alert.component';\nconst LOCAL_COMPONENTS = [\n\tWrapperComponent,\n\tFilesComponent\n];\nconst COMPONENTS = [\n\tLoaderComponent,\n\tModalComponent,\n\tAlertComponent\n];\n\n@NgModule({\n\timports: [CommonModule, FormsModule, HttpClientModule],\n\tdeclarations: [...LOCAL_COMPONENTS, ...PIPES, ...COMPONENTS, ...DIRECTIVES],\n\texports: [...PIPES, ...COMPONENTS, ...DIRECTIVES],\n\tproviders: [\n\t\t{ provide: CONFIG_TOKEN, useValue: DEFAULT_CONFIG },\n\t\tMetaGuard,\n\t\tMetaService\n\t]\n})\nexport class WacomModule {\n\tstatic forRoot(config: Config = DEFAULT_CONFIG): ModuleWithProviders<WacomModule> {\n\t\treturn {\n\t\t\tngModule: WacomModule,\n\t\t\tproviders: [{\n\t\t\t\tprovide: CONFIG_TOKEN,\n\t\t\t\tuseValue: config\n\t\t\t}]\n\t\t}\n\t}\n}\n","/*\n*\tInterfaces\n*/\n\texport * from './lib/interfaces/config';\n\texport * from './lib/interfaces/alert.interface';\n/*\n*\tGuard\n*/\n\texport * from './lib/guard/meta.guard';\n/*\n*\tComponents\n*/\n\texport * from './lib/components/alert/alert.component';\n\texport * from './lib/components/modal/modal.component';\n\texport * from './lib/components/loader/loader.component';\n/*\n*\tDirectives\n*/\n\texport * from './lib/directives/click-outside.directive';\n/*\n*\tPipes\n*/\n\texport * from './lib/pipes/arr.pipe';\n\texport * from './lib/pipes/mongodate.pipe';\n\texport * from './lib/pipes/pagination.pipe';\n\texport * from './lib/pipes/safe.pipe';\n\texport * from './lib/pipes/search.pipe';\n\texport * from './lib/pipes/splice.pipe';\n/*\n*\tServices\n*/\n\texport * from './lib/services/base.service';\n\texport * from './lib/services/crud.service';\n\texport * from './lib/services/meta.service';\n\texport * from './lib/services/store.service';\n\texport * from './lib/services/http.service';\n\texport * from './lib/services/mongo.service';\n\texport * from './lib/services/render.service';\n\texport * from './lib/services/hash.service';\n\texport * from './lib/services/dom.service';\n\texport * from './lib/services/alert.service';\n\texport * from './lib/services/loader.service';\n\texport * from './lib/services/socket.service';\n\texport * from './lib/services/modal.service';\n\texport * from './lib/services/file.service';\n\texport * from './lib/services/ui.service';\n\texport * from './lib/services/core.service';\n\texport * from './lib/services/time.service';\n/*\n*\tInitial\n*\n*\tmake different kind of modules, one which import all, other for piece by piece\n*/\n\texport * from './lib/wacom.module';\n/*\n*\tEnd of Support\n*/\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CoreService","i2","i1","i1.StoreService","i2.HttpService","i3.CoreService","i1.DomService","i2.CoreService","i3.HttpService"],"mappings":"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"}
|