@xuda.io/runtime-bundle
Version:
The Xuda Runtime Bundle refers to a collection of scripts and libraries packaged together to provide the necessary runtime environment for executing plugins or components in the Xuda platform.
1 lines • 7.54 kB
JavaScript
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("/");_.forEach(mask_Arr,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";$(elemP).data({mask:maskP});$(elemP).off("keypress.mask");$(elemP).on("keypress.mask",function(e){var _this=this;setTimeout(function(){var prev_val=$(_this).data("prev_val");var mask=$(_this).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).val();if(typeP==="string"&&val){var res=run_mask(run_value(val,mask),true,prev_val,mask);$(_this).val(res).data({prev_val:res})}},50)});$(elemP).off("blur.mask");$(elemP).on("blur.mask",function(e){var prev_val=$(this).data("prev_val");var mask=$(this).data("mask");var val=$(this).val();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).val(res).data({prev_val:res});setTimeout(function(){if(grid_objP)grid_objP.cells(grid_row_idP,grid_col_idP).setValue(res)},50)}})}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}};