| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
-
-
- function jclone(obj){
- return Array.isArray(obj) ? $.extend(true,[],obj) : $.extend(true,{},obj)
- }
- function jx(obj){
- return JSON.parse(JSON.stringify(obj))
- }
-
- function jx_r(name,val){
- if(typeof(val) == "function"){
- // clog("FN!",name,val)
- return val.name + "()"
- }
- return val
-
-
- }
- function jx_fn(obj){
- return JSON.parse(JSON.stringify(obj,jx_r))
- }
- function flat_proto(arr,d=1){
- var k,v,o,o2
- var cnt = 0
- o = []
- o2 = []
- o2 = arr
- while (d>0){
- // clog(d)
- o = o2
- o2 = []
- for (v of o){
- o2 = o2.concat(v)
- }
- d -= 1
- }
- return o2
- }
-
- function alog(arr,d=1){
- clog(...flat_proto(arr,d))
-
- }
- function spread(itr) {
- return [...itr]
- }
- function nop(){}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function jx_cr(name,val){
- if(typeof(val) == "function"){
- // clog("FN!",name,val)
- return val.name + "()"
- }
- clog("JX-CR",this,arguments)
- return val
-
-
- }
-
-
- function dec_walker(argument) {
- var dw = {N:"dw",cnt:0,omap:new Map(),path:[]}
- // _obj
- var uobj
- return function (name,val){
- dw.path.push(name)
- var ret = val
- dw.cnt += 1
- if(typeof(val) == "function"){
- // clog("FN!",name,val)
- ret = val.name + "()"
- // return val.name + "()"
- }
- if (typeof(ret) != "object" || !ret){
- dw.path.pop()
- }
- if (typeof(ret) == "object" && ret){
- uobj = dw.omap.get(ret)
- dw.omap.setD(ret,dw.path + "")
-
- if (uobj){
- return uobj + "~"
- dw.path.pop()
- }
- }
-
- // clog("JX-DW",name,typeof(val),"\n",this,dw,arguments)
- return ret
-
-
- }
-
- }
-
- function jx_rec_fn(obj){
- // return JSON.parse(JSON.stringify(obj,jx_cr))
- // return JSON.stringify(obj,jx_cr)
- return JSON.stringify(obj,dec_walker())
- }
-
-
-
- function jx_rec_fn_clone(obj){
- return JSON.parse(jx_rec_fn(obj,jx_cr))
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- window.jx_rec_fn = jx_rec_fn
- window.jx_rec_fn_clone = jx_rec_fn_clone
- window.nop = nop
- window.fn_utils = {single_fns:{},}
-
- window.zlog = nop
-
-
- window.spread = spread
- window.keys = Object.keys
- window.entries = Object.entries
- window.items = Object.entries
- window.alog = alog
- window.flat_proto = flat_proto
-
- window.dev_glob = {}
-
- window.jc_u = "UTILS"
- window.jc = jclone
- window.jx = jx
- window.jx_fn = jx_rec_fn_clone
- window.jx_fn_orig = jx_fn
- window.jclone = jclone
-
-
|