@xuda.io/runtime-bundle 1.0.1414 → 1.0.1415
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/js/modules/xuda-actions-module.esm.js +10 -10
- package/js/modules/xuda-actions-module.esm.min.js +1 -1
- package/js/modules/xuda-api-library.min.mjs +1 -1
- package/js/modules/xuda-api-library.mjs +1 -1
- package/js/modules/xuda-datasource-db-adapter-module.min.mjs +1 -1
- package/js/modules/xuda-datasource-db-adapter-module.mjs +4 -4
- package/js/modules/xuda-db-adapter-module.min.mjs +1 -1
- package/js/modules/xuda-db-adapter-module.mjs +9 -9
- package/js/modules/xuda-debug-utils-module.min.mjs +1 -1
- package/js/modules/xuda-debug-utils-module.mjs +6 -6
- package/js/modules/xuda-event-ui-elements-module.esm.js +6 -6
- package/js/modules/xuda-event-ui-elements-module.esm.min.js +1 -1
- package/js/modules/xuda-get-cast-util-module.min.mjs +1 -1
- package/js/modules/xuda-get-cast-util-module.mjs +5 -10
- package/js/modules/xuda-get-support-module.esm.js +15 -12
- package/js/modules/xuda-get-support-module.esm.min.js +1 -1
- package/js/modules/xuda-input-musk-utils-module.min.mjs +1 -1
- package/js/modules/xuda-input-musk-utils-module.mjs +22 -35
- package/js/modules/xuda-live-preview-module.esm.js +36 -31
- package/js/modules/xuda-live-preview-module.esm.min.js +1 -1
- package/js/modules/xuda-peer-actions-module.esm.js +5 -5
- package/js/modules/xuda-peer-actions-module.esm.min.js +1 -1
- package/js/modules/xuda-progs-loader-module.min.mjs +1 -1
- package/js/modules/xuda-progs-loader-module.mjs +8 -7
- package/js/modules/xuda-project-loader-module.esm.js +17 -12
- package/js/modules/xuda-project-loader-module.esm.min.js +1 -1
- package/js/modules/xuda-studio-checker.min.mjs +1 -1
- package/js/modules/xuda-studio-checker.mjs +79 -80
- package/js/xuda-runtime-bundle.js +1562 -1170
- package/js/xuda-runtime-bundle.min.js +5 -5
- package/js/xuda-runtime-mini-bundle.js +22 -52
- package/js/xuda-runtime-mini-bundle.min.js +1 -1
- package/js/xuda-runtime-slim.js +1562 -1095
- package/js/xuda-runtime-slim.min.es.js +1563 -1171
- package/js/xuda-runtime-slim.min.js +4 -4
- package/js/xuda-runtime-vendor.js +1 -212
- package/js/xuda-runtime-vendor.min.js +2 -2
- package/js/xuda-server-bundle.min.mjs +2 -2
- package/js/xuda-server-bundle.mjs +730 -155
- package/js/xuda-worker-bundle.js +730 -155
- package/js/xuda-worker-bundle.min.js +2 -2
- package/js/xuda_common-bundle.js +221 -26
- package/js/xuda_common-bundle.min.js +1 -1
- package/js/xuda_worker.js +0 -6
- package/js/xuda_worker.min.js +1 -1
- package/package.json +1 -1
|
@@ -54,12 +54,13 @@ export const init_peer = async function (SESSION_ID, peer_regional_server) {
|
|
|
54
54
|
peer_id,
|
|
55
55
|
});
|
|
56
56
|
setTimeout(() => {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
57
|
+
document.body.classList.add("get_support_request");
|
|
58
|
+
const existingTitle = document.querySelector(".get_support_request_title");
|
|
59
|
+
if (existingTitle) existingTitle.remove();
|
|
60
|
+
const titleDiv = document.createElement("div");
|
|
61
|
+
titleDiv.className = "get_support_request_title";
|
|
62
|
+
titleDiv.textContent = "Support processing";
|
|
63
|
+
document.body.appendChild(titleDiv);
|
|
63
64
|
}, 2000);
|
|
64
65
|
});
|
|
65
66
|
|
|
@@ -79,7 +80,7 @@ export const init_peer = async function (SESSION_ID, peer_regional_server) {
|
|
|
79
80
|
// SUPPORT_PEER_CONN = conn;
|
|
80
81
|
SUPPORT_PEER_CONN = conn.send.bind(conn);
|
|
81
82
|
|
|
82
|
-
|
|
83
|
+
document.body.classList.add("get_support_online");
|
|
83
84
|
// if (SESSION_OBJ[SESSION_ID].system_ready) {
|
|
84
85
|
// conn.send({
|
|
85
86
|
// service: "system_ready",
|
|
@@ -105,7 +106,7 @@ export const init_peer = async function (SESSION_ID, peer_regional_server) {
|
|
|
105
106
|
});
|
|
106
107
|
|
|
107
108
|
conn.on("close", function (conn) {
|
|
108
|
-
|
|
109
|
+
document.body.classList.remove("get_support_online");
|
|
109
110
|
});
|
|
110
111
|
});
|
|
111
112
|
|
|
@@ -148,10 +149,12 @@ export const terminate_peer = async function (SESSION_ID) {
|
|
|
148
149
|
// var app_id = _session.app_id;
|
|
149
150
|
|
|
150
151
|
SUPPORT_PEER.disconnect();
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
152
|
+
document.body.classList.remove("get_support_request");
|
|
153
|
+
const reqTitle = document.querySelector(".get_support_request_title");
|
|
154
|
+
if (reqTitle) reqTitle.remove();
|
|
155
|
+
document.body.classList.remove("get_support_online");
|
|
156
|
+
const onlineTitle = document.querySelector(".get_support_online_title");
|
|
157
|
+
if (onlineTitle) onlineTitle.remove();
|
|
155
158
|
|
|
156
159
|
func.common.db(SESSION_ID, "cancel_support", {});
|
|
157
160
|
// func.common.db(Object.keys(SESSION_OBJ)[0], "cancel_support", {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _this={};export const init_module=e=>{_this.func=e.func;_this.glb=e.glb;_this.SESSION_OBJ=e.SESSION_OBJ;_this.APP_OBJ=e.APP_OBJ;_this.IS_DOCKER=e.IS_DOCKER;_this.IS_API_SERVER=e.IS_API_SERVER;_this.IS_PROCESS_SERVER=e.IS_PROCESS_SERVER};export const init_peer=async function(SESSION_ID,peer_regional_server){var _session=_this.SESSION_OBJ[SESSION_ID];const peer=new Peer(_session.SYS_GLOBAL_OBJ_CLIENT_INFO.fingerprint,{host:`https://${peer_regional_server}`,path:"/peer",secure:true,config:{iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun.l.google.com:5349"},{urls:"stun:stun1.l.google.com:3478"},{urls:"stun:stun1.l.google.com:5349"},{urls:"stun:stun2.l.google.com:19302"},{urls:"stun:stun2.l.google.com:5349"},{urls:"stun:stun3.l.google.com:3478"},{urls:"stun:stun3.l.google.com:5349"},{urls:"stun:stun4.l.google.com:19302"},{urls:"stun:stun4.l.google.com:5349"}]}});SUPPORT_PEER=peer;peer.on("open",function(peer_id){func.common.db(SESSION_ID,"get_support",{peer_id:peer_id});setTimeout(()=>{
|
|
1
|
+
const _this={};export const init_module=e=>{_this.func=e.func;_this.glb=e.glb;_this.SESSION_OBJ=e.SESSION_OBJ;_this.APP_OBJ=e.APP_OBJ;_this.IS_DOCKER=e.IS_DOCKER;_this.IS_API_SERVER=e.IS_API_SERVER;_this.IS_PROCESS_SERVER=e.IS_PROCESS_SERVER};export const init_peer=async function(SESSION_ID,peer_regional_server){var _session=_this.SESSION_OBJ[SESSION_ID];const peer=new Peer(_session.SYS_GLOBAL_OBJ_CLIENT_INFO.fingerprint,{host:`https://${peer_regional_server}`,path:"/peer",secure:true,config:{iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun.l.google.com:5349"},{urls:"stun:stun1.l.google.com:3478"},{urls:"stun:stun1.l.google.com:5349"},{urls:"stun:stun2.l.google.com:19302"},{urls:"stun:stun2.l.google.com:5349"},{urls:"stun:stun3.l.google.com:3478"},{urls:"stun:stun3.l.google.com:5349"},{urls:"stun:stun4.l.google.com:19302"},{urls:"stun:stun4.l.google.com:5349"}]}});SUPPORT_PEER=peer;peer.on("open",function(peer_id){func.common.db(SESSION_ID,"get_support",{peer_id:peer_id});setTimeout(()=>{document.body.classList.add("get_support_request");const existingTitle=document.querySelector(".get_support_request_title");if(existingTitle)existingTitle.remove();const titleDiv=document.createElement("div");titleDiv.className="get_support_request_title";titleDiv.textContent="Support processing";document.body.appendChild(titleDiv)},2e3)});peer.on("connection",async function(conn){conn.on("open",()=>{SUPPORT_PEER_CONN=conn.send.bind(conn);document.body.classList.add("get_support_online")});const peer_actions_module=await func.common.get_module(SESSION_ID,"xuda-peer-actions-module.esm.js");conn.on("data",data=>{console.log(data);peer_actions_module.peer_actions(SESSION_ID,SUPPORT_PEER_CONN,data)});conn.on("close",function(conn){document.body.classList.remove("get_support_online")})});peer.on("call",function(call){const displayMediaStreamConstraints={video:{cursor:"always"},audio:true,preferCurrentTab:true};const success=function(stream){call.answer(stream)};const error=function(error){call.answer(error)};if(navigator.mediaDevices.getDisplayMedia){navigator.mediaDevices.getDisplayMedia(displayMediaStreamConstraints).then(success).catch(error)}else{navigator.getDisplayMedia(displayMediaStreamConstraints).then(success).catch(error)}});peer.on("error",function(err){console.error(err)})};export const terminate_peer=async function(SESSION_ID){SUPPORT_PEER.disconnect();document.body.classList.remove("get_support_request");const reqTitle=document.querySelector(".get_support_request_title");if(reqTitle)reqTitle.remove();document.body.classList.remove("get_support_online");const onlineTitle=document.querySelector(".get_support_online_title");if(onlineTitle)onlineTitle.remove();func.common.db(SESSION_ID,"cancel_support",{});SUPPORT_PEER=null;SUPPORT_PEER_CONN=null};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const input_mask=function(actionP,valP,typeP,maskP,elemP,grid_objP,grid_row_idP,grid_col_idP,dsSessionP){var nonCharPatt=/\W/;var wordPatt=/[A-Z,a-z]/;var digitPatt=/\d/;const get_properties=function(typeP,maskP){var ret={custom_pfx:false,customChar_pfx:"",positive_pfx:false,positiveChar_pfx:"+",negative_pfx:false,negativeChar_pfx:"-",size:0,whole:0,decimal:0,zeros:false,zerosChar:"0",do_null:false,nullChar:"",autoTab:false,autoFill:false,negative_sfx:false,negativeChar_sfx:"",positive_sfx:false,positiveChar_sfx:"",custom_sfx:false,customChar_sfx:"",type:typeP,mask:"",maskPos:null,error:""};var get_char=function(valP,defaultP){var ret=defaultP;if(valP.length>1)ret=valP.substr(1,valP.length);return ret};var fill_mask=function(lenP,charP){var s="";for(var i=0;i<lenP;i++){s+=charP}return s};var mask_Arr=maskP.split("/");
|
|
1
|
+
export const input_mask=function(actionP,valP,typeP,maskP,elemP,grid_objP,grid_row_idP,grid_col_idP,dsSessionP){var nonCharPatt=/\W/;var wordPatt=/[A-Z,a-z]/;var digitPatt=/\d/;const get_properties=function(typeP,maskP){var ret={custom_pfx:false,customChar_pfx:"",positive_pfx:false,positiveChar_pfx:"+",negative_pfx:false,negativeChar_pfx:"-",size:0,whole:0,decimal:0,zeros:false,zerosChar:"0",do_null:false,nullChar:"",autoTab:false,autoFill:false,negative_sfx:false,negativeChar_sfx:"",positive_sfx:false,positiveChar_sfx:"",custom_sfx:false,customChar_sfx:"",type:typeP,mask:"",maskPos:null,error:""};var get_char=function(valP,defaultP){var ret=defaultP;if(valP.length>1)ret=valP.substr(1,valP.length);return ret};var fill_mask=function(lenP,charP){var s="";for(var i=0;i<lenP;i++){s+=charP}return s};var mask_Arr=maskP.split("/");mask_Arr.forEach(function(val,key){if(typeP==="number"){if(/[0-9.#]/.test(val)&&!/[TNCZ+-]/.test(val.substr(0,1)))ret.maskPos=key}if(typeP==="string"){if(/[0-9XAaUL#]/.test(val)&&!/[T]/.test(val.substr(0,1)))ret.maskPos=key}});if(ret.maskPos===null){ret.error="SYS_MSG_0612 - missing mask definition";return ret}var mask=mask_Arr[ret.maskPos];if(typeP==="number"){var whole=mask.split(".")[0];var decimal=mask.split(".")[1];if(whole&&whole>15){ret.error="SYS_MSG_0632 - Too big";return ret}if(decimal&&decimal>5){ret.error="SYS_MSG_0632 - Too big";return ret}if(/\D/.test(whole))ret.mask=whole;else ret.mask=fill_mask(whole,"#");if(decimal&&ret.mask){if(/\D/.test(decimal))ret.mask+="."+decimal;else ret.mask+="."+fill_mask(decimal,"#")}}if(typeP==="string"){if(/\D/.test(mask)){if(/\d/.test(mask)){var patt=/[ULXAa#]/g;var str="";var Arr=[];for(var i=0;i<=mask.length;i++){var val=mask.substr(i,1);if(patt.test(val))str+="@"+val;else str+=val}var s=str.split("@");for(var i=1;i<=s.length-1;i++){Arr[i-1]=fill_mask(s[i].substr(1),s[i].substr(0,1))}ret.mask=Arr.join("")}else ret.mask=mask}else ret.mask=fill_mask(mask,"X")}if(!ret.mask){ret.error="SYS_MSG_0614 - wrong mask definition";return ret}var patt=/[#]/g;if(typeP==="number"){if(ret.mask.match(patt)){ret.size=ret.mask.match(patt).join("").length;ret.whole=ret.mask.split(".")[0].match(patt).join("").length;if(ret.mask.split(".")[1])ret.decimal=ret.mask.split(".")[1].match(patt).join("").length}}patt=/[X#AaUL]/g;if(typeP==="string"){if(ret.mask.match(patt))ret.size=ret.mask.match(patt).join("").length}if(!ret.size){ret.error="SYS_MSG_0616 - size parser";return ret}for(let[key,val]of Object.entries(mask_Arr)){if(!val)continue;if(val.trim()==="Z"||val.substr(0,1)==="Z"){ret.zeros=true;ret.zerosChar=get_char(val,"0");if(typeP==="string")ret.error="SYS_MSG_0618 - Illegal 'Z' in string mask";continue}else{if(val.trim()==="N"||val.substr(0,1)==="N"){ret.do_null=true;ret.nullChar=get_char(val,"");if(typeP==="string")ret.error="SYS_MSG_0620 - Illegal 'N' in string mask";continue}else{if(val.trim()==="+"||val.substr(0,1)==="+"){if(key<ret.maskPos){ret.positive_pfx=true;ret.positiveChar_pfx=get_char(val,"+")}if(key>ret.maskPos){ret.positive_sfx=true;ret.positiveChar_sfx=get_char(val,"+")}if(typeP==="string"&&val.trim()==="+")ret.error="SYS_MSG_0622 - Illegal '+' in string mask";continue}else{if(val.trim()==="-"||val.substr(0,1)==="-"){if(key<ret.maskPos){ret.negative_pfx=true;ret.negativeChar_pfx=get_char(val,"-")}if(key>ret.maskPos){ret.negative_sfx=true;ret.negativeChar_sfx=get_char(val,"-")}if(typeP==="string"&&val.trim()==="-")ret.error="SYS_MSG_0624 - Illegal '-' in string mask";continue}else{if(val.trim()==="C"||val.substr(0,1)==="C"){if(key<ret.maskPos){ret.custom_pfx=true;ret.customChar_pfx=get_char(val,"C")}if(key>ret.maskPos){ret.custom_sfx=true;ret.customChar_sfx=get_char(val,"C")}if(typeP==="string"&&val.trim()==="C")ret.error="SYS_MSG_0626 - Illegal 'C' in string mask";continue}else{if(val.trim()==="T"||val.substr(0,1)==="T"){ret.autoTab=true;continue}else{if(key!==ret.maskPos)ret.error="SYS_MSG_0628 - invalid /"+val+" switch"}}}}}}}return ret};const run_mask=function(dataP,validateP,prev_val,mask){var str="";var i=-1;var prop=get_properties(typeP,mask);if(prop.error)return prop.error;if(typeP==="number"){var fill_zeros=function(maskLenP,valLenP,charP){var s="";for(var i=0;i<maskLenP-valLenP;i++){if(charP)s+=charP;else s+="0"}return s};var str_pfx=prop.customChar_pfx;if(prop.positive_pfx&&dataP>0)str_pfx+=prop.positiveChar_pfx;if(prop.negative_pfx&&dataP<0)str_pfx+=prop.negativeChar_pfx;var str_sfx="";if(prop.negative_sfx&&dataP<0)str_sfx+=prop.negativeChar_sfx;if(prop.positive_sfx&&dataP>0)str_sfx+=prop.positiveChar_sfx;str_sfx+=prop.customChar_sfx;if(dataP&&dataP!=="0"){var val_whole=Math.abs(dataP.toString().split(".")[0]).toString();var val_decimal=dataP.toString().split(".")[1];var whole_truncated=val_whole;if(val_whole.length>prop.whole)whole_truncated=val_whole.substr(val_whole.length-prop.whole,val_whole.length);if(prop.zeros)str+=fill_zeros(prop.whole,whole_truncated.length,prop.zerosChar)+whole_truncated;else str+=whole_truncated;if(prop.decimal){if(val_decimal)str+="."+val_decimal+fill_zeros(prop.decimal,val_decimal.length,prop.zerosChar);else str+="."+fill_zeros(prop.decimal,0,prop.zerosChar)}}else{if(prop.zeros)str=fill_zeros(prop.whole,0);else str="0";if(prop.decimal)str+="."+fill_zeros(prop.decimal,0,prop.zerosChar)}if(prop.do_null&&(!dataP||dataP==="0"))str=prop.nullChar;else str=str_pfx+str+str_sfx;return str}if(typeP==="string"){var err;for(var x=0;x<=prop.mask.length;x++){var val=prop.mask.substr(x,1);if(!dataP)return;if(dataP.length>i){if(nonCharPatt.test(val)&&val!=="#"){str+=val}else{i++;var s="";s=dataP.substr(i,1);if(val==="X"){str+=s}if(val==="U"){if(wordPatt.test(s)||s===" ")str+=s.toUpperCase()}if(val==="A"){str+=s.toUpperCase()}if(val==="a"){str+=s.toLowerCase()}if(val==="L"){if(wordPatt.test(s)||s===" ")str+=s.toLowerCase()}if(val==="#"){if(digitPatt.test(s))str+=s}}}}if(validateP&&err)return prev_val;else return str}};var run_value=function(dataP,mask){if(!dataP)return;var str="";if(typeP==="string"){if(mask)for(var i=0;i<=dataP.length;i++){var val=dataP.substr(i,1);var s=mask.substr(i,1);if(s===val&&nonCharPatt.test(s)&&s!=="#")str+="";else str+=val}}if(typeP==="number"){var patt=/[0-9-.]/g;var arr=dataP.toString().match(patt);if(arr&&arr.length>0)str=parseFloat(arr.join(""))}return str};if(actionP==="init"){if(!elemP)return"SYS_MSG_0630 - Missing DOM Element";const _el=elemP?.nodeType?elemP:elemP?.[0];if(!_el)return;_el.__mask_data={mask:maskP};if(_el.__mask_keypress)_el.removeEventListener("keypress",_el.__mask_keypress);_el.__mask_keypress=function(e){var _this=this;setTimeout(function(){var prev_val=_this.__mask_data?.prev_val;var mask=_this.__mask_data?.mask;var prop=get_properties(typeP,mask);if(typeP==="number"&&!/[0-9-.+]/.test(String.fromCharCode(e.keyCode))){e.preventDefault();return false}var val=_this.value;if(typeP==="string"&&val){var res=run_mask(run_value(val,mask),true,prev_val,mask);_this.value=res;_this.__mask_data.prev_val=res}},50)};_el.addEventListener("keypress",_el.__mask_keypress);if(_el.__mask_blur)_el.removeEventListener("blur",_el.__mask_blur);_el.__mask_blur=function(e){var prev_val=this.__mask_data?.prev_val;var mask=this.__mask_data?.mask;var val=this.value;if(typeP==="number"&&!/[0-9-.+]/.test(val))return;if(typeP==="number"&&val){var res=run_mask(run_value(val,mask),true,prev_val,mask);this.value=res;this.__mask_data.prev_val=res;setTimeout(function(){if(grid_objP)grid_objP.cells(grid_row_idP,grid_col_idP).setValue(res)},50)}};_el.addEventListener("blur",_el.__mask_blur)}if(actionP==="get")return run_mask(valP,null,null,maskP);if(actionP==="val")return run_value(valP,maskP);if(actionP==="properties"){var prop={};prop=get_properties(typeP,maskP);if(valP)prop.val_size=run_value(valP,maskP).toString().length;return prop}};
|
|
@@ -79,7 +79,7 @@ export const input_mask = function (
|
|
|
79
79
|
var mask_Arr = maskP.split("/");
|
|
80
80
|
// find mask pos
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
mask_Arr.forEach(function (val, key) {
|
|
83
83
|
if (typeP === "number") {
|
|
84
84
|
if (/[0-9.#]/.test(val) && !/[TNCZ+-]/.test(val.substr(0, 1)))
|
|
85
85
|
ret.maskPos = key;
|
|
@@ -363,18 +363,16 @@ export const input_mask = function (
|
|
|
363
363
|
|
|
364
364
|
if (actionP === "init") {
|
|
365
365
|
if (!elemP) return "SYS_MSG_0630 - Missing DOM Element";
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
|
|
366
|
+
const _el = elemP?.nodeType ? elemP : elemP?.[0];
|
|
367
|
+
if (!_el) return;
|
|
368
|
+
_el.__mask_data = { mask: maskP };
|
|
369
|
+
if (_el.__mask_keypress) _el.removeEventListener("keypress", _el.__mask_keypress);
|
|
370
|
+
_el.__mask_keypress = function (e) {
|
|
371
371
|
var _this = this;
|
|
372
372
|
setTimeout(function () {
|
|
373
|
-
var prev_val =
|
|
374
|
-
var mask =
|
|
373
|
+
var prev_val = _this.__mask_data?.prev_val;
|
|
374
|
+
var mask = _this.__mask_data?.mask;
|
|
375
375
|
var prop = get_properties(typeP, mask);
|
|
376
|
-
// var is_autoTab = prop.autoTab;
|
|
377
|
-
// return on non character key
|
|
378
376
|
if (
|
|
379
377
|
typeP === "number" &&
|
|
380
378
|
!/[0-9-.+]/.test(String.fromCharCode(e.keyCode))
|
|
@@ -382,43 +380,32 @@ export const input_mask = function (
|
|
|
382
380
|
e.preventDefault();
|
|
383
381
|
return false;
|
|
384
382
|
}
|
|
385
|
-
var val =
|
|
383
|
+
var val = _this.value;
|
|
386
384
|
if (typeP === "string" && val) {
|
|
387
385
|
var res = run_mask(run_value(val, mask), true, prev_val, mask);
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
});
|
|
386
|
+
_this.value = res;
|
|
387
|
+
_this.__mask_data.prev_val = res;
|
|
391
388
|
}
|
|
392
|
-
// if (grid_objP) {
|
|
393
|
-
// // auto skip for grid
|
|
394
|
-
// if (run_value(val, mask).toString().length >= prop.size)
|
|
395
|
-
// func.UI.grid.next_field(
|
|
396
|
-
// grid_objP,
|
|
397
|
-
// grid_row_idP,
|
|
398
|
-
// grid_col_idP,
|
|
399
|
-
// dsSessionP
|
|
400
|
-
// );
|
|
401
|
-
// }
|
|
402
389
|
}, 50);
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
var
|
|
408
|
-
var
|
|
409
|
-
|
|
390
|
+
};
|
|
391
|
+
_el.addEventListener("keypress", _el.__mask_keypress);
|
|
392
|
+
if (_el.__mask_blur) _el.removeEventListener("blur", _el.__mask_blur);
|
|
393
|
+
_el.__mask_blur = function (e) {
|
|
394
|
+
var prev_val = this.__mask_data?.prev_val;
|
|
395
|
+
var mask = this.__mask_data?.mask;
|
|
396
|
+
var val = this.value;
|
|
410
397
|
if (typeP === "number" && !/[0-9-.+]/.test(val)) return;
|
|
411
398
|
if (typeP === "number" && val) {
|
|
412
399
|
var res = run_mask(run_value(val, mask), true, prev_val, mask);
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
});
|
|
400
|
+
this.value = res;
|
|
401
|
+
this.__mask_data.prev_val = res;
|
|
416
402
|
setTimeout(function () {
|
|
417
403
|
if (grid_objP)
|
|
418
404
|
grid_objP.cells(grid_row_idP, grid_col_idP).setValue(res);
|
|
419
405
|
}, 50);
|
|
420
406
|
}
|
|
421
|
-
}
|
|
407
|
+
};
|
|
408
|
+
_el.addEventListener("blur", _el.__mask_blur);
|
|
422
409
|
}
|
|
423
410
|
if (actionP === "get") return run_mask(valP, null, null, maskP);
|
|
424
411
|
if (actionP === "val") return run_value(valP, maskP);
|
|
@@ -19,7 +19,7 @@ export const live_preview_loader = async function (SESSION_ID) {
|
|
|
19
19
|
|
|
20
20
|
const ret = await init_studio_websocket(SESSION_ID);
|
|
21
21
|
if (ret.error) {
|
|
22
|
-
|
|
22
|
+
_session.root_element.style.display = '';
|
|
23
23
|
_this.func.UI.utils.progressScreen.show(SESSION_ID, 'Connection closed :(', null, true);
|
|
24
24
|
throw 'Connection closed :(';
|
|
25
25
|
}
|
|
@@ -98,8 +98,10 @@ const init_studio_websocket = async function (SESSION_ID) {
|
|
|
98
98
|
peer.on('open', function (peer_id) {
|
|
99
99
|
var peer_token = _session.gtp_token;
|
|
100
100
|
const connect_peer = function () {
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
const loaderEl = document.querySelector('.loader');
|
|
102
|
+
if (loaderEl) {
|
|
103
|
+
const loaderMsgEl = document.querySelector('.loader_msg');
|
|
104
|
+
if (loaderMsgEl) loaderMsgEl.innerHTML = 'Awaiting connection to Xuda Studio';
|
|
103
105
|
}
|
|
104
106
|
|
|
105
107
|
const conn = peer.connect(peer_token, {
|
|
@@ -147,7 +149,7 @@ const init_studio_websocket = async function (SESSION_ID) {
|
|
|
147
149
|
|
|
148
150
|
conn.on('close', function (conn) {
|
|
149
151
|
set_connected(0);
|
|
150
|
-
|
|
152
|
+
document.body.classList.remove('live_preview_online');
|
|
151
153
|
if (_session.opt.live_token_stat === 2) {
|
|
152
154
|
func.UI.utils.progressScreen.show(SESSION_ID, 'Connection lost. Attempting to reconnect...', false, true);
|
|
153
155
|
|
|
@@ -201,8 +203,10 @@ const init_studio_websocket = async function (SESSION_ID) {
|
|
|
201
203
|
connect_peer();
|
|
202
204
|
});
|
|
203
205
|
peer.on('error', function (e) {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
+
const loaderEl2 = document.querySelector('.loader');
|
|
207
|
+
if (loaderEl2) {
|
|
208
|
+
const loaderMsgEl2 = document.querySelector('.loader_msg');
|
|
209
|
+
if (loaderMsgEl2) loaderMsgEl2.innerHTML = 'Session has expired. Please renew the token session in Studio and reload.';
|
|
206
210
|
}
|
|
207
211
|
});
|
|
208
212
|
|
|
@@ -348,12 +352,12 @@ const init_studio_websocket = async function (SESSION_ID) {
|
|
|
348
352
|
reconnected: true,
|
|
349
353
|
});
|
|
350
354
|
}
|
|
351
|
-
|
|
355
|
+
_session.root_element.classList.add('live_preview_connected');
|
|
352
356
|
// $("body").addClass("live_preview_connected");
|
|
353
357
|
});
|
|
354
358
|
STUDIO_WEBSOCKET.on('user-disconnected', (data) => {
|
|
355
|
-
|
|
356
|
-
|
|
359
|
+
_session.root_element.classList.remove('live_preview_connected');
|
|
360
|
+
_session.root_element.classList.remove('live_preview_online');
|
|
357
361
|
});
|
|
358
362
|
|
|
359
363
|
STUDIO_WEBSOCKET.on('disconnect', () => {
|
|
@@ -405,7 +409,7 @@ func.runtime.ui.live_preview_hot_module_reload = async function (SESSION_ID, doc
|
|
|
405
409
|
// );
|
|
406
410
|
|
|
407
411
|
// console.log($elm);
|
|
408
|
-
const $elm = func.UI.utils.find_in_element_data('xuPanelData',
|
|
412
|
+
const $elm = func.UI.utils.find_in_element_data('xuPanelData', func.runtime.ui.as_jquery(SESSION_OBJ[SESSION_ID].root_element), 'parent_element_ui_id');
|
|
409
413
|
var panels_obj = {};
|
|
410
414
|
|
|
411
415
|
if (!$elm.length) {
|
|
@@ -421,10 +425,10 @@ func.runtime.ui.live_preview_hot_module_reload = async function (SESSION_ID, doc
|
|
|
421
425
|
// refresh panels
|
|
422
426
|
for await (const [elem_key, elem_val] of Object.entries($elm)) {
|
|
423
427
|
if (elem_key === 'length') break;
|
|
424
|
-
var
|
|
425
|
-
let xuData =
|
|
428
|
+
var div = elem_val;
|
|
429
|
+
let xuData = func.runtime.ui.get_data(div, 'xuData');
|
|
426
430
|
|
|
427
|
-
if (
|
|
431
|
+
if (!func.runtime.ui.get_data(div, 'xuPanelData')) continue;
|
|
428
432
|
|
|
429
433
|
let dsSession = xuData.paramsP.dsSessionP;
|
|
430
434
|
var _session = SESSION_OBJ[SESSION_ID];
|
|
@@ -435,45 +439,46 @@ func.runtime.ui.live_preview_hot_module_reload = async function (SESSION_ID, doc
|
|
|
435
439
|
continue;
|
|
436
440
|
}
|
|
437
441
|
|
|
438
|
-
const parent_element_ui_id =
|
|
442
|
+
const parent_element_ui_id = func.runtime.ui.get_data(div, 'xuPanelData').parent_element_ui_id;
|
|
439
443
|
if (!panels_obj[parent_element_ui_id]) {
|
|
440
444
|
panels_obj[parent_element_ui_id] = {
|
|
441
445
|
_ds,
|
|
442
|
-
|
|
446
|
+
div,
|
|
443
447
|
ids: [],
|
|
444
448
|
};
|
|
445
449
|
}
|
|
446
|
-
panels_obj[parent_element_ui_id].ids.push(
|
|
450
|
+
panels_obj[parent_element_ui_id].ids.push(div.getAttribute('xu-ui-id'));
|
|
447
451
|
}
|
|
448
452
|
|
|
449
453
|
for await (const [parent_element_ui_id, panel_val] of Object.entries(panels_obj)) {
|
|
450
|
-
var
|
|
451
|
-
.
|
|
452
|
-
.
|
|
453
|
-
.
|
|
454
|
+
var div_elm = panel_val.div
|
|
455
|
+
.parentElement
|
|
456
|
+
.parentElement
|
|
457
|
+
.querySelector("[xu-ui-id='" + parent_element_ui_id + "']");
|
|
454
458
|
|
|
455
459
|
// restore original panel
|
|
456
460
|
try {
|
|
457
|
-
const
|
|
461
|
+
const org_panel = func.runtime.ui.get_data(panel_val.div, 'xuPanelData').$panel_div; //panel_val.div.cloneNode(true);
|
|
458
462
|
|
|
459
|
-
const
|
|
463
|
+
const new_div = await func.runtime.render.render_ui_tree(
|
|
460
464
|
SESSION_ID,
|
|
461
|
-
|
|
462
|
-
|
|
465
|
+
div_elm,
|
|
466
|
+
klona.klona(func.runtime.ui.get_data(panel_val.div, 'xuPanelData').node),
|
|
463
467
|
{},
|
|
464
|
-
|
|
468
|
+
func.runtime.ui.get_data(org_panel, 'xuData').paramsP,
|
|
465
469
|
null,
|
|
466
470
|
null,
|
|
467
|
-
|
|
471
|
+
func.runtime.ui.get_data(org_panel, 'xuData').key,
|
|
468
472
|
null,
|
|
469
|
-
|
|
473
|
+
func.runtime.ui.get_data(org_panel, 'xuData').parent_node,
|
|
470
474
|
null,
|
|
471
|
-
|
|
475
|
+
func.runtime.ui.get_data(org_panel, 'xuData').$root_container,
|
|
472
476
|
);
|
|
473
477
|
// remove old panel content
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
478
|
+
for (const val of panel_val.ids) {
|
|
479
|
+
const oldEl = document.querySelector("[xu-ui-id='" + val + "']");
|
|
480
|
+
if (oldEl) oldEl.remove();
|
|
481
|
+
}
|
|
477
482
|
} catch (error) {
|
|
478
483
|
debugger;
|
|
479
484
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _this={};export const init_module=e=>{_this.func=e.func;_this.glb=e.glb;_this.SESSION_OBJ=e.SESSION_OBJ;_this.APP_OBJ=e.APP_OBJ;_this.IS_DOCKER=e.IS_DOCKER;_this.IS_API_SERVER=e.IS_API_SERVER;_this.IS_PROCESS_SERVER=e.IS_PROCESS_SERVER};export const live_preview_loader=async function(SESSION_ID){_this.glb.DEBUG_MODE=true;const ret=await init_studio_websocket(SESSION_ID);if(ret.error){
|
|
1
|
+
const _this={};export const init_module=e=>{_this.func=e.func;_this.glb=e.glb;_this.SESSION_OBJ=e.SESSION_OBJ;_this.APP_OBJ=e.APP_OBJ;_this.IS_DOCKER=e.IS_DOCKER;_this.IS_API_SERVER=e.IS_API_SERVER;_this.IS_PROCESS_SERVER=e.IS_PROCESS_SERVER};export const live_preview_loader=async function(SESSION_ID){_this.glb.DEBUG_MODE=true;const ret=await init_studio_websocket(SESSION_ID);if(ret.error){_session.root_element.style.display="";_this.func.UI.utils.progressScreen.show(SESSION_ID,"Connection closed :(",null,true);throw"Connection closed :("}var data=ret.e;if(data.service==="init_runtime_websocket"){await _this.func.UI.main.embed_loader(SESSION_ID)}else{var data=e;const call_embed=function(){_session.prog_id=data.data.id;console.log("call_embed",data.data.id);_this.func.runtime.ui.call_embed(SESSION_ID,data.data.id)};if(data.service==="run_program_command"){if(_this.func.UI.utils.get_url_attribute(SESSION_ID,"prog")||typeof live_preview_getCookie!=="undefined"&&live_preview_getCookie("prog_id")&&data.data.id!==live_preview_getCookie("prog_id")&&live_preview_getCookie("gtp_prog_dynamic")==="0"&&_this.func.utils.get_device())return;try{throw"run new program, terminate prev execution"}catch(ex){call_embed()}}if(data.service==="debug_command"){_this.func.utils.debug.read_command(data.data);return}}};const init_studio_websocket=async function(SESSION_ID){return new Promise(async function(resolve,reject){var _session=_this.SESSION_OBJ[SESSION_ID];var app_id=_session.app_id;const set_connected=async function(stat){var datasource_changes={[0]:{["data_system"]:{SYS_GLOBAL_BOL_CONNECTED:stat}}};await func.datasource.update(SESSION_ID,datasource_changes)};const peer_actions_module=await func.common.get_module(SESSION_ID,"xuda-peer-actions-module.esm.js");var preview_name=_session.url_params.preview_name||_session.opt.preview_name;const connect_peer=function(){const peer=new Peer(SESSION_ID,{host:`${_session.domain}`,path:"/peer",secure:true,config:{iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun.l.google.com:5349"},{urls:"stun:stun1.l.google.com:3478"},{urls:"stun:stun1.l.google.com:5349"},{urls:"stun:stun2.l.google.com:19302"},{urls:"stun:stun2.l.google.com:5349"},{urls:"stun:stun3.l.google.com:3478"},{urls:"stun:stun3.l.google.com:5349"},{urls:"stun:stun4.l.google.com:19302"},{urls:"stun:stun4.l.google.com:5349"}]}});STUDIO_PEER=peer;peer.on("open",function(peer_id){var peer_token=_session.gtp_token;const connect_peer=function(){const loaderEl=document.querySelector(".loader");if(loaderEl){const loaderMsgEl=document.querySelector(".loader_msg");if(loaderMsgEl)loaderMsgEl.innerHTML="Awaiting connection to Xuda Studio"}const conn=peer.connect(peer_token,{metadata:{url_params:_session.url_params,client_info:_session.SYS_GLOBAL_OBJ_CLIENT_INFO,preview_name:preview_name,user_info:_session.login_info,live_token_id:_session.opt.live_token_id,live_token_stat:_session.opt.live_token_stat}});conn.on("open",e=>{STUDIO_PEER_CONN_SEND_METHOD=conn.send.bind(conn);STUDIO_PEER_CONN_ID=conn.connectionId;set_connected(1);conn.on("data",data=>{if(data.service==="auth"&&data.data.live_token_stat===2){if(SESSION_OBJ[SESSION_ID].system_ready){conn.send({service:"system_ready"});if(STUDIO_PEER_CONN_MSG_QUEUE.length){for(let val of STUDIO_PEER_CONN_MSG_QUEUE){val.id=conn.connectionId;conn.send(val)}STUDIO_PEER_CONN_MSG_QUEUE=[]}}return connect_to_ws(peer_id)}peer_actions_module.peer_actions(SESSION_ID,STUDIO_PEER_CONN_SEND_METHOD,data)});conn.on("error",e=>{console.error("peer conn",e)});conn.on("close",function(conn){set_connected(0);document.body.classList.remove("live_preview_online");if(_session.opt.live_token_stat===2){func.UI.utils.progressScreen.show(SESSION_ID,"Connection lost. Attempting to reconnect...",false,true);console.log("Connection lost. Attempting to reconnect...");setTimeout(function(){location.reload()},5e3)}})});conn.on("error",e=>{console.error("peer conn",e)});peer.on("call",function(call){const displayMediaStreamConstraints={video:{cursor:"always"},audio:true,preferCurrentTab:true};const success=function(stream){call.answer(stream)};const error=function(error){call.answer(error)};if(navigator.mediaDevices.getDisplayMedia){navigator.mediaDevices.getDisplayMedia(displayMediaStreamConstraints).then(success).catch(error)}else{navigator.getDisplayMedia(displayMediaStreamConstraints).then(success).catch(error)}})};connect_peer()});peer.on("error",function(e){const loaderEl2=document.querySelector(".loader");if(loaderEl2){const loaderMsgEl2=document.querySelector(".loader_msg");if(loaderMsgEl2)loaderMsgEl2.innerHTML="Session has expired. Please renew the token session in Studio and reload."}})};const broadcast_channel=function(){const channel=new BroadcastChannel(_session.gtp_token);STUDIO_PEER=channel;channel.onmessage=event=>{if(event.data.session_id!==SESSION_ID)return;peer_actions_module.peer_actions(SESSION_ID,STUDIO_PEER_CONN_SEND_METHOD,event.data)};channel.postMessage({service:"connection",metadata:{url_params:_session.url_params,client_info:_session.SYS_GLOBAL_OBJ_CLIENT_INFO,preview_name:preview_name,user_info:_session.login_info,session_id:SESSION_ID}});STUDIO_PEER_CONN_SEND_METHOD=channel.postMessage.bind(channel);set_connected(1);window.addEventListener("onCloseWindow",event=>{console.log("onCloseWindow");channel.postMessage({service:"disconnected",session_id:SESSION_ID,type:"onCloseWindow"})});window.addEventListener("beforeunload",event=>{console.log("beforeunload");channel.postMessage({service:"disconnected",session_id:SESSION_ID,type:"beforeunload"})});window.addEventListener("unload",event=>{console.log("beforeunload");channel.postMessage({service:"disconnected",session_id:SESSION_ID,type:"unload"})});resolve({e:{service:"init_runtime_websocket"}})};const connect_to_ws=function(peer_id){try{const url="https://"+_session.domain;STUDIO_WEBSOCKET=io(url,{secure:true,reconnection:_this.glb.debug_js?false:true,rejectUnauthorized:false,path:"/ws/socket.io"});const ws_data={service:"init",id:peer_id,uid:_session.USR_OBJ._id,source:"runtime",app_id:app_id,preview_name:preview_name,client_info:_session.SYS_GLOBAL_OBJ_CLIENT_INFO,session_id:SESSION_ID,gtp_token:_session.gtp_token,app_token:_session.app_token};STUDIO_WEBSOCKET.on("connect",()=>{STUDIO_WEBSOCKET_CONNECTION_ID=STUDIO_WEBSOCKET.id;STUDIO_WEBSOCKET.emit("join-room",ws_data);resolve({e:{service:"init_runtime_websocket"}})});STUDIO_WEBSOCKET.on("studio-connected",data=>{if(!data.reconnected){STUDIO_WEBSOCKET.emit("init-studio",{...ws_data,reconnected:true})}_session.root_element.classList.add("live_preview_connected")});STUDIO_WEBSOCKET.on("user-disconnected",data=>{_session.root_element.classList.remove("live_preview_connected");_session.root_element.classList.remove("live_preview_online")});STUDIO_WEBSOCKET.on("disconnect",()=>{console.log("disconnect",STUDIO_WEBSOCKET.id)});STUDIO_WEBSOCKET.io.on("reconnect",attempt=>{console.log("reconnect",attempt)})}catch(e){resolve(true)}};if(_session.local_live_preview==="true"){return broadcast_channel()}connect_peer()})};export const send_STUDIO_WEBSOCKET=function(SESSION_ID,service){var _session=_this.SESSION_OBJ[SESSION_ID];const data={service:service,data:_session.USR_OBJ,id:STUDIO_PEER_CONN_ID,uid:_session.USR_OBJ._id,source:"runtime",app_id:_session.app_id,gtp_token:_session.gtp_token,app_token:_session.app_token};if(!STUDIO_PEER_CONN_SEND_METHOD){STUDIO_PEER_CONN_MSG_QUEUE.push(data);return}STUDIO_PEER_CONN_SEND_METHOD(data)};func.runtime.ui.live_preview_hot_module_reload=async function(SESSION_ID,doc){const $elm=func.UI.utils.find_in_element_data("xuPanelData",func.runtime.ui.as_jquery(SESSION_OBJ[SESSION_ID].root_element),"parent_element_ui_id");var panels_obj={};if(!$elm.length){for await(const[key,val]of Object.entries(SESSION_OBJ[SESSION_ID].DS_GLB)){if(val.prog_id===doc._id){await func.action.execute(SESSION_ID,"act_reload",val);break}}return}for await(const[elem_key,elem_val]of Object.entries($elm)){if(elem_key==="length")break;var div=elem_val;let xuData=func.runtime.ui.get_data(div,"xuData");if(!func.runtime.ui.get_data(div,"xuPanelData"))continue;let dsSession=xuData.paramsP.dsSessionP;var _session=SESSION_OBJ[SESSION_ID];let _ds=_session?.DS_GLB[dsSession];if(!_ds)continue;if(_ds.prog_id!==doc._id){continue}const parent_element_ui_id=func.runtime.ui.get_data(div,"xuPanelData").parent_element_ui_id;if(!panels_obj[parent_element_ui_id]){panels_obj[parent_element_ui_id]={_ds:_ds,div:div,ids:[]}}panels_obj[parent_element_ui_id].ids.push(div.getAttribute("xu-ui-id"))}for await(const[parent_element_ui_id,panel_val]of Object.entries(panels_obj)){var div_elm=panel_val.div.parentElement.parentElement.querySelector("[xu-ui-id='"+parent_element_ui_id+"']");try{const org_panel=func.runtime.ui.get_data(panel_val.div,"xuPanelData").$panel_div;const new_div=await func.runtime.render.render_ui_tree(SESSION_ID,div_elm,klona.klona(func.runtime.ui.get_data(panel_val.div,"xuPanelData").node),{},func.runtime.ui.get_data(org_panel,"xuData").paramsP,null,null,func.runtime.ui.get_data(org_panel,"xuData").key,null,func.runtime.ui.get_data(org_panel,"xuData").parent_node,null,func.runtime.ui.get_data(org_panel,"xuData").$root_container);for(const val of panel_val.ids){const oldEl=document.querySelector("[xu-ui-id='"+val+"']");if(oldEl)oldEl.remove()}}catch(error){debugger}}return panels_obj};
|
|
@@ -103,7 +103,7 @@ export const peer_actions = async function (SESSION_ID, conn_send, data) {
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
case "live_preview_get_session": {
|
|
106
|
-
let _session =
|
|
106
|
+
let _session = klona.klona(_this.SESSION_OBJ[SESSION_ID]);
|
|
107
107
|
for (const [key, val] of Object.entries(_session.DS_GLB)) {
|
|
108
108
|
_session.DS_GLB[key] = await func.utils.clean_returned_datasource(
|
|
109
109
|
SESSION_ID,
|
|
@@ -142,12 +142,12 @@ export const peer_actions = async function (SESSION_ID, conn_send, data) {
|
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
case "live_preview_connected": {
|
|
145
|
-
|
|
145
|
+
_session.root_element.classList.add("live_preview_online");
|
|
146
146
|
break;
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
case "live_preview_disconnected": {
|
|
150
|
-
|
|
150
|
+
_session.root_element.classList.remove("live_preview_online");
|
|
151
151
|
break;
|
|
152
152
|
}
|
|
153
153
|
case "live_preview_kickoff": {
|
|
@@ -191,13 +191,13 @@ export const peer_actions = async function (SESSION_ID, conn_send, data) {
|
|
|
191
191
|
|
|
192
192
|
case "live_preview_get_obj_response": {
|
|
193
193
|
if (!data?.data?._id) return;
|
|
194
|
-
|
|
194
|
+
func.runtime.platform.emit("live_preview_get_obj_response_" + data.data._id, {
|
|
195
195
|
data: data.data,
|
|
196
196
|
});
|
|
197
197
|
break;
|
|
198
198
|
}
|
|
199
199
|
case "rpi_request_response": {
|
|
200
|
-
|
|
200
|
+
func.runtime.platform.emit("rpi_request_response_" + data.req_id, {
|
|
201
201
|
data: data.data,
|
|
202
202
|
});
|
|
203
203
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _this={};export const init_module=e=>{_this.func=e.func;_this.glb=e.glb;_this.SESSION_OBJ=e.SESSION_OBJ;_this.APP_OBJ=e.APP_OBJ;_this.IS_DOCKER=e.IS_DOCKER;_this.IS_API_SERVER=e.IS_API_SERVER;_this.IS_PROCESS_SERVER=e.IS_PROCESS_SERVER};export const peer_actions=async function(SESSION_ID,conn_send,data){var _session=_this.SESSION_OBJ[SESSION_ID];const take_screenshot=async function(service){await _this.func.utils.load_js_on_demand("https://html2canvas.hertzen.com/dist/html2canvas.js");html2canvas(document.body).then(canvas=>{conn_send({service:service,data:canvas.toDataURL("image/png"),id:data.id,uid:_session.USR_OBJ._id,source:"runtime",app_id:_session.app_id,gtp_token:_session.gtp_token,app_token:_session.app_token,session_id:SESSION_ID,ts:Date.now(),session:{SYS_GLOBAL_OBJ_CLIENT_INFO:_this.SESSION_OBJ[SESSION_ID].SYS_GLOBAL_OBJ_CLIENT_INFO}})})};switch(data.service){case"send_object_to_runtime":{if(STUDIO_WEBSOCKET_CONNECTION_ID===data.data.connection_id){if(RESPONSE_FROM_STUDIO_QUEUE[data.data.req_id]){RESPONSE_FROM_STUDIO_QUEUE[data.data.req_id].data=data.data}}break}case"live_preview_element_reference":case"live_preview_element_info":case"live_preview_element_dnd":{if(data.data.action==="on"){_this.func.UI.utils.live_preview_element_inspect_off();_this.func.UI.utils.live_preview_element_inspect_on(SESSION_ID,data.service)}else{_this.func.UI.utils.live_preview_element_inspect_off()}break}case"live_preview_show_selected_element":{_this.func.UI.utils.live_preview_show_selected_element(data.data.nodeid);break}case"live_preview_cmd_execute":{let res;try{res={data:eval(data.data.execute)}}catch(e){res={data:e.message,error:true}}conn_send({service:"debug_log",data:res,id:data.id,uid:_session.USR_OBJ._id,source:"runtime",app_id:_session.app_id,session_id:SESSION_ID,gtp_token:_session.gtp_token,app_token:_session.app_token,ts:Date.now()});break}case"live_preview_hard_reload":{await func.index.delete_pouch(SESSION_ID);location.reload();break}case"live_preview_screenshot":{await take_screenshot("live_preview_screenshot_captured");break}case"live_preview_get_session":{let _session=
|
|
1
|
+
const _this={};export const init_module=e=>{_this.func=e.func;_this.glb=e.glb;_this.SESSION_OBJ=e.SESSION_OBJ;_this.APP_OBJ=e.APP_OBJ;_this.IS_DOCKER=e.IS_DOCKER;_this.IS_API_SERVER=e.IS_API_SERVER;_this.IS_PROCESS_SERVER=e.IS_PROCESS_SERVER};export const peer_actions=async function(SESSION_ID,conn_send,data){var _session=_this.SESSION_OBJ[SESSION_ID];const take_screenshot=async function(service){await _this.func.utils.load_js_on_demand("https://html2canvas.hertzen.com/dist/html2canvas.js");html2canvas(document.body).then(canvas=>{conn_send({service:service,data:canvas.toDataURL("image/png"),id:data.id,uid:_session.USR_OBJ._id,source:"runtime",app_id:_session.app_id,gtp_token:_session.gtp_token,app_token:_session.app_token,session_id:SESSION_ID,ts:Date.now(),session:{SYS_GLOBAL_OBJ_CLIENT_INFO:_this.SESSION_OBJ[SESSION_ID].SYS_GLOBAL_OBJ_CLIENT_INFO}})})};switch(data.service){case"send_object_to_runtime":{if(STUDIO_WEBSOCKET_CONNECTION_ID===data.data.connection_id){if(RESPONSE_FROM_STUDIO_QUEUE[data.data.req_id]){RESPONSE_FROM_STUDIO_QUEUE[data.data.req_id].data=data.data}}break}case"live_preview_element_reference":case"live_preview_element_info":case"live_preview_element_dnd":{if(data.data.action==="on"){_this.func.UI.utils.live_preview_element_inspect_off();_this.func.UI.utils.live_preview_element_inspect_on(SESSION_ID,data.service)}else{_this.func.UI.utils.live_preview_element_inspect_off()}break}case"live_preview_show_selected_element":{_this.func.UI.utils.live_preview_show_selected_element(data.data.nodeid);break}case"live_preview_cmd_execute":{let res;try{res={data:eval(data.data.execute)}}catch(e){res={data:e.message,error:true}}conn_send({service:"debug_log",data:res,id:data.id,uid:_session.USR_OBJ._id,source:"runtime",app_id:_session.app_id,session_id:SESSION_ID,gtp_token:_session.gtp_token,app_token:_session.app_token,ts:Date.now()});break}case"live_preview_hard_reload":{await func.index.delete_pouch(SESSION_ID);location.reload();break}case"live_preview_screenshot":{await take_screenshot("live_preview_screenshot_captured");break}case"live_preview_get_session":{let _session=klona.klona(_this.SESSION_OBJ[SESSION_ID]);for(const[key,val]of Object.entries(_session.DS_GLB)){_session.DS_GLB[key]=await func.utils.clean_returned_datasource(SESSION_ID,key)}delete _session.root_element;delete _session.WORKER_OBJ;conn_send({service:"live_preview_session_result",data:_session,id:data.id,uid:_session.USR_OBJ._id,source:"runtime",app_id:_session.app_id,session_id:SESSION_ID,gtp_token:_session.gtp_token,app_token:_session.app_token,ts:Date.now()});break}case"live_preview_screen_share_start":{_this.live_preview_screen_share_interval=setInterval(async()=>{await take_screenshot("live_preview_screen_share")},500);break}case"live_preview_screen_share_end":{clearInterval(_this.live_preview_screen_share_interval);break}case"live_preview_connected":{_session.root_element.classList.add("live_preview_online");break}case"live_preview_disconnected":{_session.root_element.classList.remove("live_preview_online");break}case"live_preview_kickoff":{_session.opt.live_token_stat=2;func.UI.utils.progressScreen.show(SESSION_ID,"Session closed by the host",false,true);break}case"document_changed":{console.log("document_changed",data);func.runtime.ui.refresh_document_changes_for_realtime_update(SESSION_ID,data.data);break}case"live_preview_get_obj_response":{if(!data?.data?._id)return;func.runtime.platform.emit("live_preview_get_obj_response_"+data.data._id,{data:data.data});break}case"rpi_request_response":{func.runtime.platform.emit("rpi_request_response_"+data.req_id,{data:data.data});break}case"ping":{conn_send({service:"pong",data:{},id:data.id,uid:_session.USR_OBJ._id,source:"runtime",app_id:_session.app_id,session_id:SESSION_ID,gtp_token:_session.gtp_token,app_token:_session.app_token,ts:Date.now()});break}case"studio_doc_saved":{var _session=SESSION_OBJ[SESSION_ID];DOCS_OBJ[_session.app_id][data.data._id]=data.data;func.runtime.ui.live_preview_hot_module_reload(SESSION_ID,data.data);break}default:break}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _this={};export const init_module=e=>{_this.func=e.func;_this.glb=e.glb;_this.SESSION_OBJ=e.SESSION_OBJ;_this.APP_OBJ=e.APP_OBJ;_this.IS_DOCKER=e.IS_DOCKER;_this.IS_API_SERVER=e.IS_API_SERVER;_this.IS_PROCESS_SERVER=e.IS_PROCESS_SERVER};export const get_doc_from_studio=async function(SESSION_ID,app_id,idP){return new Promise(function(resolve,reject){var _session=_this.SESSION_OBJ[SESSION_ID];if(glb.IS_WORKER){func.utils.post_back_to_client(SESSION_ID,"get_doc_from_studio",_session.worker_id,{doc_id:idP});self.addEventListener("live_preview_get_obj_response_worker_"+idP,event=>{resolve(event.detail.data)})}else{STUDIO_PEER_CONN_SEND_METHOD({service:"get_doc_obj",data:{doc_id:idP},session_id:SESSION_ID,id:STUDIO_PEER.id,source:"runtime",app_id:app_id})
|
|
1
|
+
const _this={};export const init_module=e=>{_this.func=e.func;_this.glb=e.glb;_this.SESSION_OBJ=e.SESSION_OBJ;_this.APP_OBJ=e.APP_OBJ;_this.IS_DOCKER=e.IS_DOCKER;_this.IS_API_SERVER=e.IS_API_SERVER;_this.IS_PROCESS_SERVER=e.IS_PROCESS_SERVER};export const get_doc_from_studio=async function(SESSION_ID,app_id,idP){return new Promise(function(resolve,reject){var _session=_this.SESSION_OBJ[SESSION_ID];if(glb.IS_WORKER){func.utils.post_back_to_client(SESSION_ID,"get_doc_from_studio",_session.worker_id,{doc_id:idP});self.addEventListener("live_preview_get_obj_response_worker_"+idP,event=>{resolve(event.detail.data)})}else{STUDIO_PEER_CONN_SEND_METHOD({service:"get_doc_obj",data:{doc_id:idP},session_id:SESSION_ID,id:STUDIO_PEER.id,source:"runtime",app_id:app_id});const _lp_handler=function(data){resolve(data.data);func.runtime.platform.off("live_preview_get_obj_response_"+idP,_lp_handler)};func.runtime.platform.on("live_preview_get_obj_response_"+idP,_lp_handler)}})};export const get_doc_from_websocket=async function(SESSION_ID,app_id,idP){var _session=_this.SESSION_OBJ[SESSION_ID];return new Promise(function(resolve,reject){if(glb.IS_WORKER){func.utils.post_back_to_client(SESSION_ID,"get_doc_from_websocket",_session.worker_id,{doc_id:idP});self.addEventListener("get_doc_obj_from_build_worker_"+idP,event=>{resolve(event.detail.data)})}else{if(RUNTIME_SERVER_WEBSOCKET&&RUNTIME_SERVER_WEBSOCKET_CONNECTED){RUNTIME_SERVER_WEBSOCKET.emit("message",{service:"get_doc_obj_from_build",data:{doc_id:idP}});const _doc_handler=function(data){resolve(data.data);func.runtime.platform.off("get_doc_obj_from_build_response_"+idP,_doc_handler)};func.runtime.platform.on("get_doc_obj_from_build_response_"+idP,_doc_handler)}else{throw new Error("fail to fetch from ws websocket inactive")}}})};export const DOCS_OBJ_get=async function(SESSION_ID,idP){if(!idP)return;if(idP==="_empty_panel_program"){return{_id:"_empty_panel_program",properties:{menuName:"_empty_panel_program",menuTitle:"_empty_panel_program",menuType:"component",renderType:"form"},progUi:[{id:"node-empty_panel_program",tagName:"xu-single-view",children:[{id:"node-empty_panel_program-span",tagName:"span",children:[],content:"",type:"element",attributes:{}}],content:"",type:"element",attributes:{}}],progDataSource:{},progFields:[],progEvents:[]}}var _session=_this.SESSION_OBJ[SESSION_ID];const app_id=_session.app_id;var views_ret;if(_session.engine_mode==="live_preview"){return await get_doc_from_studio(SESSION_ID,app_id,idP)}if(glb.register_startup_programs){func.common.db(SESSION_ID,"register_startup_programs",{prog_id:idP,build_id:_session?.build_info?.build||0})}views_ret=await read_objects_cache(SESSION_ID,idP,"DOCS_OBJ");if(!views_ret){if(typeof _this.IS_DOCKER==="undefined"&&typeof _this.IS_PROCESS_SERVER==="undefined"){let url=_this.func.common.get_url(SESSION_ID,"rpi","");if(["master"].includes(_this.APP_OBJ[app_id].app_type)){url+="get_doc_obj_raw"}else{url+="get_doc_obj_from_build"}let app_id_reference=_this.APP_OBJ[app_id].app_id_reference;const http=async function(){const response=await fetch(url,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json","xu-gtp-token":_session.gtp_token,"xu-app-token":_session.app_token},body:JSON.stringify({app_id:app_id,doc_id:idP,build:_session.build_info.instance_build||_session.build_info.build||_session.opt.app_build_id,app_id_reference:app_id_reference,engine_mode:_session.engine_mode})});const json=await response.json();if(response){if(response&&response.status===400){return _this.func.utils.request_error(SESSION_ID,"ajax",response.statusText)}views_ret=json.data}};if(_session.engine_mode==="miniapp"){await http()}else{views_ret=await get_doc_from_websocket(SESSION_ID,app_id,idP)}}if(typeof _this.IS_DOCKER!=="undefined"||typeof _this.IS_PROCESS_SERVER!=="undefined"){var ret=await __.rpi.get_prog(app_id,idP);if(ret.data){views_ret=ret.data}}if(views_ret){if(views_ret.error){console.error(views_ret);views_ret="";return}await save_objects_cache(SESSION_ID,idP,"DOCS_OBJ",views_ret)}}return views_ret};export const save_objects_cache=async function(SESSION_ID,id,obj_type,data){var _session=_this.SESSION_OBJ[SESSION_ID];if(typeof _this.IS_DOCKER!=="undefined"||typeof _this.IS_PROCESS_SERVER!=="undefined"||_session.worker_type==="Dev"){return}var build_id=_session?.build_info?.build||0;const db=await _this.func.utils.connect_pouchdb(SESSION_ID);var doc={_id:`cache_${build_id}_${obj_type}_${id}`,id:id,docType:"cache_objects",build_id:build_id.toString(),obj_type:obj_type,data:data};setTimeout(async function(){try{await db.get(doc_id);return}catch(e){if(await read_objects_cache(SESSION_ID,id,obj_type)){return}if(!doc.data||doc.data&&typeof doc.data==="string"&&doc.data.indexOf("error")>-1){return}try{return await db.put(doc)}catch(err){return}}},1e3)};export const read_objects_cache=async function(SESSION_ID,id,obj_type){if(typeof _this.IS_DOCKER!=="undefined"||typeof _this.IS_PROCESS_SERVER!=="undefined"){try{const data=fs.readFileSync("/var/xuda/progs/"+id+".json","utf8");return JSON.parse(data)}catch(err){console.error("read_objects_cache",err);return}}var _session=_this.SESSION_OBJ[SESSION_ID];var build_id=_session?.build_info?.build||0;const db=await _this.func.utils.connect_pouchdb(SESSION_ID);var ret;try{ret=await db.get(`cache_${build_id}_${obj_type}_${id}`);if(ret.data&&typeof ret.data==="string"&&ret.data.indexOf("error")>-1){return""}return ret.data}catch(err){return ret}};export const delete_objects_cache=async function(SESSION_ID,id,obj_type){const app_id=_this.SESSION_OBJ[SESSION_ID].app_id;var build_id=_session?.build_info?.build||0;const db=await _this.func.utils.connect_pouchdb(SESSION_ID);try{var doc=await db.get(`cache_${build_id}_${obj_type}_${id}`);if(!doc)return;var ret=await db.remove(doc)}catch(err){return}return ret};export const load_objects_cache=async function(SESSION_ID){var _session=_this.SESSION_OBJ[SESSION_ID];if(typeof _this.IS_DOCKER!=="undefined"||typeof _this.IS_PROCESS_SERVER!=="undefined"){return}const app_id=_session.app_id;const db=await _this.func.utils.connect_pouchdb(SESSION_ID);const build_id=_this.APP_OBJ[app_id].app_build_id;let ret=await db.find({selector:{docType:"cache_objects",build_id:build_id}});for(let val of ret.docs){eval(val.obj_type)[_session.app_id][val.id]=val.data}};
|
|
@@ -30,10 +30,11 @@ export const get_doc_from_studio = async function (SESSION_ID, app_id, idP) {
|
|
|
30
30
|
app_id,
|
|
31
31
|
});
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
const _lp_handler = function (data) {
|
|
34
34
|
resolve(data.data);
|
|
35
|
-
|
|
36
|
-
}
|
|
35
|
+
func.runtime.platform.off('live_preview_get_obj_response_' + idP, _lp_handler);
|
|
36
|
+
};
|
|
37
|
+
func.runtime.platform.on('live_preview_get_obj_response_' + idP, _lp_handler);
|
|
37
38
|
}
|
|
38
39
|
});
|
|
39
40
|
};
|
|
@@ -54,11 +55,11 @@ export const get_doc_from_websocket = async function (SESSION_ID, app_id, idP) {
|
|
|
54
55
|
service: 'get_doc_obj_from_build',
|
|
55
56
|
data: { doc_id: idP },
|
|
56
57
|
});
|
|
57
|
-
|
|
58
|
-
// views_ret = data.data;
|
|
58
|
+
const _doc_handler = function (data) {
|
|
59
59
|
resolve(data.data);
|
|
60
|
-
|
|
61
|
-
}
|
|
60
|
+
func.runtime.platform.off('get_doc_obj_from_build_response_' + idP, _doc_handler);
|
|
61
|
+
};
|
|
62
|
+
func.runtime.platform.on('get_doc_obj_from_build_response_' + idP, _doc_handler);
|
|
62
63
|
} else {
|
|
63
64
|
throw new Error('fail to fetch from ws websocket inactive');
|
|
64
65
|
}
|