@guihz/trading-vue-editor-tes 0.0.33 → 0.0.34

Sign up to get free protection for your applications and to get access to all the features.
@@ -59,7 +59,7 @@ ${this._prefixNameVar}.setVarValue("${_}", ${$}, ${_}, "${m}")`}return n==="-="?
59
59
  })
60
60
  `),this._isInFunc=!1,u}_parserArrowFunction(e){const n=`$_${e.name}`;this._nameMap.set(e.name,n);const o=[...e.params];e.hasMemberIndex&&o.push({name:`${this._prefixNameVar}_position`});const u=`const ${n} = (${this._parserParameters(o)}posStr) => {
61
61
  ${this._parserBlock(e.block,!0,!0)}
62
- }`;return this._isInFunc=!1,u}_parserParameters(e){return e.length?`{${e.map(n=>n.name).join(", ")}},`:""}_parserBlock(e,n=!1,o=!1){return o&&(this._isInFunc=!0),this._parserBlockLine(Array.isArray(e)?e:[e],n,o)}_parserDeclareAssign(e){const{nameList:n,value:o}=e,u=this._parserDeclareAssignNames(n),h=this._varlist[this._blockCount]||{};if(n.names)for(const[_,T]of n.names.entries())h[T]=n.posList[_];else h[n.name]=n.pos;this._varlist[this._blockCount]=h;const m=this._parserSingleExpression(o);if(n.declare){const _=`${n.pos.column}_${n.pos.lineNumber}`,T=this._isInFunc?`posStr + '_' + '${_}'`:`"${_}"`;return`let ${u} = ${this._prefixNameVar}.getVarValue("${u}", ${T}, "${n.declare}") || ${this._prefixNameVar}.setVarValue("${u}", ${T}, ${m}, "${n.declare}")`}return`let ${u} = ${m}`}_parserDeclareAssignNames(e){switch(e==null?void 0:e.ruleType){case"VarMultiple":return`[${e.names.join(", ")}]`;case"VarSingle":return e.name}return""}_parserSingleExpression(e){if(!e)return"";const{exprs:n,operator:o}=e;switch(e.ruleType){case Oe.MemberIndexExpression:return this._parserMemberIndexExpression(e);case Oe.MethodExpression:return this._parserMethodExpression(e);case Oe.UnaryExpression:return`${o}${this._parserSingleExpression(n[0])}`;case Oe.NotExpression:return`!${this._parserSingleExpression(n[0])}`;case Oe.AdditiveExpression:return this._parserAdditiveExpression(e);case Oe.MultiplicativeExpression:case Oe.RelationalExpression:case Oe.EqualityExpression:return`${this._parserSingleExpression(n[0])} ${o} ${this._parserSingleExpression(n[1])}`;case Oe.LogicalAndExpression:return`${this._parserSingleExpression(n[0])} && ${this._parserSingleExpression(n[1])}`;case Oe.LogicalOrExpression:return`${this._parserSingleExpression(n[0])} || ${this._parserSingleExpression(n[1])}`;case Oe.TernaryExpression:return`${this._parserSingleExpression(n[0])} ? ${this._parserSingleExpression(n[1])} : ${this._parserSingleExpression(n[2])}`;case Oe.Name:return this._parserName(e);case Oe.Literal:return this._parseLiteral(e);case Oe.ParenthesizedExpression:return`(${this._parserSingleExpression(e.exprs)})`;default:return e.name||""}}_parserAdditiveExpression(e){const{exprs:n,operator:o}=e,u=this._parserSingleExpression(n[0]),h=this._parserSingleExpression(n[1]);return o==="-"?`${this._prefixNameVar}.sub(${u}, ${h})`:`${this._prefixNameVar}.add(${u}, ${h})`}_parserMemberIndexExpression(e){const{exprs:n,isInFunc:o,ctx:u}=e,h=n[0],m=this._parserSingleExpression(n[1]);if(h.ruleType===Oe.Name&&!h.hasMethod){let P=this._blockCount;const A=h.name;for(;P>=0;){const F=this._varlist[P]||{},$=F[A];if($)return this._getUserVarMemberIndexs($,A,P,m,o);if(h.isBuiltIn){const V=this._parserSingleExpression(h),b=this._memberIndexList[0]||{};return b[A]=`${this._prefixNameVar}.setCacheData('${A}', ${V})`,`${this._prefixNameVar}.getCacheData('${A}', ${m}, ${V})`}else if(A.includes(".")){const V=A.split(".")[0],b=F[V];if(b)return this._getUserVarMemberIndexs(b,A,P,m,o)}P--}}const _=u.start.tokenIndex,T=this._parserSingleExpression(h),x=o?`${this._prefixNameVar}_position`:_;return`${this._prefixNameVar}.getCacheData('m${_}_' + ${x}, ${m}, ${T})`}_getUserVarMemberIndexs(e,n,o,u,h){const m=this._memberIndexList[o]||{};let _=`${n}_${e.lineNumber}_${e.column}`;return _=h&&o!==0?`'${_}' + '_' + posStr`:`'${_}'`,m[_]=`${this._prefixNameVar}.setCacheData(${_}, ${n})`,this._memberIndexList[o]=m,`${this._prefixNameVar}.getCacheData(${_}, ${u}, ${n})`}_parseLiteral(e){return e.type.endsWith(W.COLOR)?`"${this._colorToRgba(e.value)}"`:e.value}_colorToRgba(e){if(e.startsWith("#")){let n;const o=parseInt(e.substring(1,3),16),u=parseInt(e.substring(3,5),16),h=parseInt(e.substring(5,7),16),m=e.substring(7);return m?n=(255-parseInt(m,16))/255:n=1,`rgba(${Math.round(o)}, ${Math.round(u)}, ${Math.round(h)}, ${n.toFixed(2)})`}return e}_parserName(e){const{exprs:n,ctx:o}=e,{column:u,line:h}=(o==null?void 0:o.start)||{},m=`${h}_${u}`,_=n.map(T=>typeof T=="string"?T:this._parserMethodElement(T,m));return e.expr&&_.unshift(`(${this._parserSingleExpression(e.expr)})`),e.isBuiltIn&&_.unshift(e.isConst?this._prefixNameConst:this._prefixNameVar),_.join(".")}_parserMethodExpression(e){const{exprs:n,ctx:o}=e,{column:u,line:h}=o.start,m=`"${h}_${u}"`,_=this._isInFunc?`posStr + '_' + ${m}`:m;return n.map(x=>this._parserMethodElement(x,_)).join(".")}_parserMethodElement(e,n){let o="",u="";const h={...e.args};if(e.hasMemberIndex&&(u=`${this._prefixNameVar}_position: ${e.position}`),e.expr&&(o=`(${this._parserSingleExpression(e.expr)})`),o=o?`${o}.${e.name}`:this._nameMap.get(e.name)||e.name,e.isBuiltIn){if(Am.includes(o))o=`${o}.${o}`;else if(o==="max_bars_back"){const{name:_,varPos:T}=h.var||h.params[0];u=`var_name: '${T?`${_}_${T.lineNumber}_${T.column}`:_}'`}o=`${this._prefixNameFunc}.${o}`}if(e.selfArg){const _=o.split("."),T=_.length;Object.assign(h,{[e.selfArg.name]:{name:_.slice(0,T-1).join(".")}}),o=_[T-1]}const m=this._parserArguments(h,u,n);return o+m}_parserArguments(e,n,o){const u=e.params||[];delete e.params;const h=[],m=[],_=[];for(const T of u){const x=T.ruleType===Oe.Brackethesized?this._parserBrackethesized(T):this._parserSingleExpression(T);T.originName&&!["arg0, arg1, ...","number0, number1, ..."].includes(T.originName)?(h.push(`${T.originName}: ${x}`),T.isSourceType?h.push(`sourceTypeName: '${T.name}'`):T.type===`${W.SERIES} ${W.COLOR}`&&_.push(`'${T.originName}'`)):m.push(x)}for(const T of Object.keys(e)){const x=e[T],P=x.ruleType===Oe.Brackethesized?this._parserBrackethesized(x):this._parserSingleExpression(x);h.push(`${T}: ${P}`),x.type===`${W.SERIES} ${W.COLOR}`&&_.push(`'${T}'`)}return _.length&&h.push(`seriesColors: [${_.join(",")}]`),n&&h.push(n),m.length?`({${h.join(", ")}}, [${m.join(", ")}], ${o})`:h.length?`({${h.join(", ")}}, ${o})`:`(${o})`}_parserBrackethesized(e){return`[${e.exprs.map(o=>this._parserSingleExpression(o)).join(", ")}]`}_functionalProcess(e){return`(function () {
62
+ }`;return this._isInFunc=!1,u}_parserParameters(e){return e.length?`{${e.map(n=>n.name).join(", ")}},`:""}_parserBlock(e,n=!1,o=!1){return o&&(this._isInFunc=!0),this._parserBlockLine(Array.isArray(e)?e:[e],n,o)}_parserDeclareAssign(e){const{nameList:n,value:o}=e,u=this._parserDeclareAssignNames(n),h=this._varlist[this._blockCount]||{};if(n.names)for(const[_,T]of n.names.entries())h[T]=n.posList[_];else h[n.name]=n.pos;this._varlist[this._blockCount]=h;const m=this._parserSingleExpression(o);if(n.declare){const _=`${n.pos.column}_${n.pos.lineNumber}`,T=this._isInFunc?`posStr + '_' + '${_}'`:`"${_}"`;return`let ${u} = ${this._prefixNameVar}.getVarValue("${u}", ${T}, "${n.declare}") || ${this._prefixNameVar}.setVarValue("${u}", ${T}, ${m}, "${n.declare}")`}return`let ${u} = ${m}`}_parserDeclareAssignNames(e){switch(e==null?void 0:e.ruleType){case"VarMultiple":return`[${e.names.join(", ")}]`;case"VarSingle":return e.name}return""}_parserSingleExpression(e){if(!e)return"";const{exprs:n,operator:o}=e;switch(e.ruleType){case Oe.MemberIndexExpression:return this._parserMemberIndexExpression(e);case Oe.MethodExpression:return this._parserMethodExpression(e);case Oe.UnaryExpression:return`${o}${this._parserSingleExpression(n[0])}`;case Oe.NotExpression:return`!${this._parserSingleExpression(n[0])}`;case Oe.AdditiveExpression:return this._parserAdditiveExpression(e);case Oe.MultiplicativeExpression:case Oe.RelationalExpression:case Oe.EqualityExpression:return`${this._parserSingleExpression(n[0])} ${o} ${this._parserSingleExpression(n[1])}`;case Oe.LogicalAndExpression:return`${this._parserSingleExpression(n[0])} && ${this._parserSingleExpression(n[1])}`;case Oe.LogicalOrExpression:return`${this._parserSingleExpression(n[0])} || ${this._parserSingleExpression(n[1])}`;case Oe.TernaryExpression:return`${this._parserSingleExpression(n[0])} ? ${this._parserSingleExpression(n[1])} : ${this._parserSingleExpression(n[2])}`;case Oe.Name:return this._parserName(e);case Oe.Literal:return this._parseLiteral(e);case Oe.ParenthesizedExpression:return`(${this._parserSingleExpression(e.exprs)})`;default:return e.name||""}}_parserAdditiveExpression(e){const{exprs:n,operator:o}=e,u=this._parserSingleExpression(n[0]),h=this._parserSingleExpression(n[1]);return o==="-"?`${this._prefixNameVar}.sub(${u}, ${h})`:`${this._prefixNameVar}.add(${u}, ${h})`}_parserMemberIndexExpression(e){const{exprs:n,isInFunc:o,ctx:u}=e,h=n[0],m=this._parserSingleExpression(n[1]);if(h.ruleType===Oe.Name&&!h.hasMethod){let P=this._blockCount;const A=h.name;for(;P>=0;){const F=this._varlist[P]||{},$=F[A];if($)return this._getUserVarMemberIndexs($,A,P,m,o);if(h.isBuiltIn){const V=this._parserSingleExpression(h),b=this._memberIndexList[0]||{};return b[A]=`${this._prefixNameVar}.setCacheData('${A}', ${V})`,`${this._prefixNameVar}.getCacheData('${A}', ${m}, ${V})`}else if(A.includes(".")){const V=A.split(".")[0],b=F[V];if(b)return this._getUserVarMemberIndexs(b,A,P,m,o)}P--}}const _=u.start.tokenIndex,T=this._parserSingleExpression(h),x=o?`${this._prefixNameVar}_position`:_;return`${this._prefixNameVar}.getCacheData('m${_}_' + ${x}, ${m}, ${T})`}_getUserVarMemberIndexs(e,n,o,u,h){const m=this._memberIndexList[o]||{};let _=`${n}_${e.lineNumber}_${e.column}`;return _=h&&o!==0?`'${_}' + '_' + posStr`:`'${_}'`,m[_]=`${this._prefixNameVar}.setCacheData(${_}, ${n})`,this._memberIndexList[o]=m,`${this._prefixNameVar}.getCacheData(${_}, ${u}, ${n})`}_parseLiteral(e){return e.type.endsWith(W.COLOR)?`"${this._colorToRgba(e.value)}"`:e.value}_colorToRgba(e){if(e.startsWith("#")){let n;const o=parseInt(e.substring(1,3),16),u=parseInt(e.substring(3,5),16),h=parseInt(e.substring(5,7),16),m=e.substring(7);return m?n=(255-parseInt(m,16))/255:n=1,`rgba(${Math.round(o)}, ${Math.round(u)}, ${Math.round(h)}, ${n.toFixed(2)})`}return e}_parserName(e){const{exprs:n,ctx:o}=e,{column:u,line:h}=(o==null?void 0:o.start)||{},m=`${h}_${u}`,_=n.map(T=>typeof T=="string"?T:this._parserMethodElement(T,m));return e.expr&&_.unshift(`(${this._parserSingleExpression(e.expr)})`),e.isBuiltIn&&(_.join(".")==="strategy.opentrades"&&_.push("opentrades"),_.unshift(e.isConst?this._prefixNameConst:this._prefixNameVar)),_.join(".")}_parserMethodExpression(e){const{exprs:n,ctx:o}=e,{column:u,line:h}=o.start,m=`"${h}_${u}"`,_=this._isInFunc?`posStr + '_' + ${m}`:m;return n.map(x=>this._parserMethodElement(x,_)).join(".")}_parserMethodElement(e,n){let o="",u="";const h={...e.args};if(e.hasMemberIndex&&(u=`${this._prefixNameVar}_position: ${e.position}`),e.expr&&(o=`(${this._parserSingleExpression(e.expr)})`),o=o?`${o}.${e.name}`:this._nameMap.get(e.name)||e.name,e.isBuiltIn){if(Am.includes(o))o=`${o}.${o}`;else if(o==="max_bars_back"){const{name:_,varPos:T}=h.var||h.params[0];u=`var_name: '${T?`${_}_${T.lineNumber}_${T.column}`:_}'`}o=`${this._prefixNameFunc}.${o}`}if(e.selfArg){const _=o.split("."),T=_.length;Object.assign(h,{[e.selfArg.name]:{name:_.slice(0,T-1).join(".")}}),o=_[T-1]}const m=this._parserArguments(h,u,n);return o+m}_parserArguments(e,n,o){const u=e.params||[];delete e.params;const h=[],m=[],_=[];for(const T of u){const x=T.ruleType===Oe.Brackethesized?this._parserBrackethesized(T):this._parserSingleExpression(T);T.originName&&!["arg0, arg1, ...","number0, number1, ..."].includes(T.originName)?(h.push(`${T.originName}: ${x}`),T.isSourceType?h.push(`sourceTypeName: '${T.name}'`):T.type===`${W.SERIES} ${W.COLOR}`&&_.push(`'${T.originName}'`)):m.push(x)}for(const T of Object.keys(e)){const x=e[T],P=x.ruleType===Oe.Brackethesized?this._parserBrackethesized(x):this._parserSingleExpression(x);h.push(`${T}: ${P}`),x.type===`${W.SERIES} ${W.COLOR}`&&_.push(`'${T}'`)}return _.length&&h.push(`seriesColors: [${_.join(",")}]`),n&&h.push(n),m.length?`({${h.join(", ")}}, [${m.join(", ")}], ${o})`:h.length?`({${h.join(", ")}}, ${o})`:`(${o})`}_parserBrackethesized(e){return`[${e.exprs.map(o=>this._parserSingleExpression(o)).join(", ")}]`}_functionalProcess(e){return`(function () {
63
63
  let $_result=undefined;
64
64
  ${e}
65
65
  return $_result