| 
					
				 | 
			
			
				@@ -8,10 +8,10 @@ import { Header } from '/web/header.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    constructor() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    constructor(entry) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         console.log("index app constructor"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.entry = entry; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.worlds = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.instances = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //this.language = _LangManager.language; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -20,6 +20,10 @@ class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.initReflectorConnection(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.initHTML(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.initUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        document.querySelector("#userLobby")._refresh(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -102,7 +106,7 @@ class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             _comps: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             _wcards: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $components: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $refresh: function (comps) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _refresh: function (comps) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //do update; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //this._userAlias = user; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this._comps = comps; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -124,50 +128,15 @@ class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $cell: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $type: "div", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $components: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $update: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _refresh: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this.$components = self.initUserGUI() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $update: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    async generateFrontPage() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let infoEl = document.createElement("div"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        infoEl.setAttribute("id", "indexPage"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let lang = _LangManager.locale; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let infoElHTML = await _app.helpers.getHtmlText('/web/locale/' + lang + '/index.html'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        infoEl.innerHTML = infoElHTML; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        document.body.appendChild(infoEl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        document.querySelector('#ruLang').addEventListener('click', function (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            _LangManager.locale = 'ru'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            window.location.reload(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        document.querySelector('#enLang').addEventListener('click', function (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            _LangManager.locale = 'en'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            window.location.reload(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    initApp() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // let appElHTML = await _app.helpers.getHtmlText('/web/app.html'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // appEl.innerHTML = appElHTML; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // document.body.appendChild(appEl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.initUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        document.querySelector("#userLobby").$update(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //this.initWorldsListGUI(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //this.getAppDetailsFromDB(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     async initWorldsProtosListForUser(userAlias) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let doc = document.querySelector("#worldsGUI"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //doc.$components = []; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -192,7 +161,7 @@ class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         $type: "h1", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         class: "mdc-typography--headline4", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        $text: 'Worlds for ' + userAlias 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        $text: 'Worlds for user: ' + userAlias 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             }, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -208,7 +177,7 @@ class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        doc.$refresh(components); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        doc._refresh(components); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //initiate update world cards 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         doc._wcards = worlds; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -257,7 +226,7 @@ class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        doc.$refresh(components); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        doc._refresh(components); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //initiate update world cards 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         doc._wcards = worlds; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -267,119 +236,193 @@ class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    authGUI(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    initUser() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let alias = _LCSDB.user().is.alias; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let userEl = document.querySelector('#userGUI'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        userEl._status = 'Welcome ' + alias + '!'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //userEl.style.backgroundColor = '#e6e6e6';    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        userEl._refresh(); //$update(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        _LCSDB.on('auth', function (ack) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //_LCSDB.user().get('profile').once(function (data) { console.log(data) }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (ack.sea.pub) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let el = document.getElementById("loginGUI"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (el) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            el.remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let alias = _LCSDB.user().is.alias; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let userEl = document.querySelector('#userGUI'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                userEl._status = 'Welcome ' + alias + '!'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //userEl.style.backgroundColor = '#e6e6e6';    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                userEl.$update(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // document.querySelector('#worldGUI').$update(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // document.querySelector('#main').$update(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // _LCSDB.get('users').get(alias).not(function (res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //     let userObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //         alias: alias, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //         pub: ack.sea.pub 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //     _LCSDB.get('users').get(alias).put(userObj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _LCSDB.user().get('profile').once(function (data) { console.log(data) }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let el = document.getElementById("loginGUI"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (el) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    el.remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        _LCSDB.user().get('profile').not(function (key) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let profile = { 'alias': alias }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _LCSDB.user().get('profile').put(profile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // not load proxy by default 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // _LCSDB.user().get('proxy').not(res=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     console.log('user has no proxy'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     window._app.loadProxyDefaults(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let actionsGUI = document.querySelector('#worldActionsGUI'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (actionsGUI) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            actionsGUI._refresh(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        new Noty({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            text: alias + ' is succesfully authenticated!', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            timeout: 2000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            theme: 'mint', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            layout: 'bottomRight', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            type: 'success' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(this.entry == 'index'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //change for LiveCoding.space to 'app' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.initWorldsProtosListForUser(alias); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initUser() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(_LCSDB.user().is) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.authGUI() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _LCSDB.on('auth', function (ack) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (ack.sea.pub) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    self.authGUI(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log(_LCSDB.user().is); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _LCSDB.user().get('profile').not(function (key) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    let profile = { 'alias': alias }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    _LCSDB.user().get('profile').put(profile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // not load proxy by default 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // _LCSDB.user().get('proxy').not(res=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //     console.log('user has no proxy'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //     window._app.loadProxyDefaults(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let actionsGUI = document.querySelector('#worldActionsGUI'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (actionsGUI) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    actionsGUI._refresh(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                new Noty({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    text: alias + ' is succesfully authenticated!', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    timeout: 2000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    theme: 'mint', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    layout: 'bottomRight', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    type: 'success' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //this.getAppDetailsFromUserDB(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            console.log(_LCSDB.user().is); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     initUserGUI() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let worldGUI = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let lookWorlds =  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $type: "div", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            id: "worldGUI", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            id: "lookWorlds", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             class: "mdc-layout-grid mdc-layout-grid--align-left", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             _status: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $init: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this._status = "init"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $update: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //change for LiveCoding.space site 'app' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let defaultName = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let guiForAll = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    window._app.widgets.buttonStroked( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $type: "div", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        style: "margin-top: 20px;", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        _userName: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        _userNameField: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $components: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                _app.widgets.inputTextFieldOutlined({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    "id": 'worldsUserName', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    "label": 'Enter user name', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    "value": defaultName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    "type": "text", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    "init": function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        this._userNameField = new mdc.textField.MDCTextField(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                _app.widgets.p, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                // { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //     $type: "a", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //     class: "mdc-button mdc-button--raised mdc-card__action actionButton", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //     $text: 'World Protos', //self.language.t('set proxy'),//"clone", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //     onclick: function (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //         //console.log('clone'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //         let searchName = this._userNameField.value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //         self.initWorldsProtosListForUser(searchName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                // }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                // { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //     $type: "a", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //     class: "mdc-button mdc-button--raised mdc-card__action actionButton", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //     $text: 'World States', //self.language.t('set proxy'),//"clone", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //     onclick: function (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //         //console.log('clone'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //         let searchName = this._userNameField.value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //         self.initWorldsStatesListForUser(searchName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    _app.widgets.buttonRaised( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            "label": 'Default World Protos', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            "label": 'World Protos', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             "onclick": function (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 e.preventDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 //page("/app/worlds/protos") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                window.location.pathname = "/app/worlds/protos" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                let searchName = this._userNameField.value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if(searchName !== "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    window.location.pathname = "/"+searchName+"/worlds/protos" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 //_app.indexApp.getAppDetailsFromDefaultDB('protos'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    window._app.widgets.buttonStroked( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }),  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        _app.widgets.space, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    _app.widgets.buttonRaised( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            "label": 'Default World States', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            "label": 'World States', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             "onclick": function (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 e.preventDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 //page("/app/worlds/states") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                window.location.pathname = "/app/worlds/states" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                let searchName = this._userNameField.value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if(searchName !== "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    window.location.pathname = "/"+searchName+"/worlds/states" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 //_app.indexApp.getAppDetailsFromDefaultDB('states'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // window._app.widgets.buttonStroked( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //         "label": 'Default World Protos', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //         "onclick": function (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //             e.preventDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //             //page("/app/worlds/protos") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //             window.location.pathname = "/app/worlds/protos" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //             //_app.indexApp.getAppDetailsFromDefaultDB('protos'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                var guiUser = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (_LCSDB.user().is) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    guiUser = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //     }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // window._app.widgets.buttonStroked( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //         "label": 'Default World States', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //         "onclick": function (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //             e.preventDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //             //page("/app/worlds/states") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //             window.location.pathname = "/app/worlds/states" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //             //_app.indexApp.getAppDetailsFromDefaultDB('states'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this.$components = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         $type: "h1", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         class: "mdc-typography--headline4", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        $text: "Worlds list" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $text: "Looking for Worlds made by other Users!" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ].concat(guiForAll).concat(guiUser) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ].concat(guiForAll, _app.widgets.p, _app.widgets.divider) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let luminaryFeature = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $cell: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $type: 'div', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            class: "mdc-layout-grid mdc-layout-grid--align-left", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             _luminarySwitch: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $components: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -423,7 +466,7 @@ class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $type: 'label', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     for: 'input-forceLuminary', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $text: 'On / Off' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $text: 'Off / On' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ] 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -437,11 +480,15 @@ class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             id: "userGUI", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // style:"background-color: #ffeb3b", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             class: "mdc-layout-grid mdc-layout-grid--align-left", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            _status: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _status: "Welcome!", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $init: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                this._status = "Welcome!" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //this._status = "Welcome!" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this._status = 'Welcome !'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //userEl.style.backgroundColor = '#e6e6e6';    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this._refresh(); //$update(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $update: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $update: function () {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _refresh: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 var gui = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (_LCSDB.user().is) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -499,7 +546,7 @@ class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                this.$components = [luminaryFeature, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.$components = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     _app.widgets.emptyDiv, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     window._app.widgets.buttonRaised( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -633,10 +680,7 @@ class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        $type: "span", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        $text: " " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    _app.widgets.space, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     window._app.widgets.buttonRaised( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             "label": 'Sign IN', 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -675,17 +719,7 @@ class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // document.querySelector("#userLobby").$cell({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     id: "userLobby", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     $cell: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     $type: "div", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //     $components: [  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //         userGUI, loginGUI, _app.widgets.divider, worldGUI] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return [userGUI, loginGUI, _app.widgets.divider, worldGUI] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return [luminaryFeature, userGUI, loginGUI, _app.widgets.divider, lookWorlds] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -840,16 +874,6 @@ class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             _refresh: function (data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this._worldInfo = data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // _getWorldInfo: async function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //     //get space for user 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //     let info = await _app.getWorldInfo(user, space); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //     this._refresh(info); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // _getStateInfo: async function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //     //get space for user 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //     let info = await _app.getStateInfo(user, space, saveName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //     this._refresh(info); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $init: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //get space for user 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // if (!saveName) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -859,10 +883,13 @@ class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $update: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //console.log(this._worldInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //this.$components = [this._updateCard()] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _updateComps: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //console.log(this._worldInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this.$components = [this._updateCard()] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $components: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             _updateCard: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let desc = this._worldInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -952,7 +979,6 @@ class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $cell: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $type: "div", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     class: "mdc-card world-card", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $components: [ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1054,8 +1080,9 @@ class IndexApp { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             _makeWorldCard: function (data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let cardID = data[1].userAlias + '_' + data[1].worldName + '_' + data[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let card = self.createWorldCard(cardID, 'min'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                card._worldInfo = data[1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                card.$update(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                card._refresh(data[1]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //card._worldInfo = data[1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                card._updateComps(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $cell: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $type: "div", 
			 |