UNPKG

weex-bindingx

Version:

bindingx,expression,binding,weex

1 lines 15 kB
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define)define("index.native",function(n,t,i){i.exports=e()});else{("undefined"!=typeof window?window:"undefined"!=typeof self?self:"undefined"!=typeof global?global:this)["index.native"]=e()}}(function(){return function(e){var n={};function t(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,t),r.l=!0,r.exports}return t.m=e,t.c=n,t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=0)}([function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=t(1);function o(e){try{if(void 0!==("undefined"==typeof weex?"undefined":i(weex))&&weex.requireModule)return weex.requireModule(e)}catch(e){}return window.require("@weex-module/"+e)}var s=!0,a=!0,l=void 0;try{l=o("bindingx"),s=!0}catch(e){s=!1}if(!l||!l.bind)try{l=o("binding"),s=!0}catch(e){s=!1}if(!(s=!!(l&&l.bind&&l.unbind&&l.getComputedStyle)))try{l=o("expressionBinding"),a=!0}catch(e){a=!1}function u(e){if(void 0!==e){try{e=JSON.parse(e)}catch(e){}var n={};if("string"==typeof e?n.origin=e:e&&(n.origin=e.origin,n.transformed=e.transformed),n.transformed||n.origin)return n.transformed=n.transformed||(0,r.parse)(n.origin),n}}a=!(!l||!l.bind&&!l.createBinding),n.default={isSupportNewBinding:s,isSupportBinding:a,_bindingInstances:[],bind:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};if(!e)throw new Error("should pass options for binding");if(function(e){e&&(e.exitExpression=u(e.exitExpression),e.props&&e.props.forEach(function(e){e.expression=u(e.expression)}))}(e),l&&a){if(s)return l.bind(e,e&&"timing"===e.eventType?function(e){return function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("function"==typeof e)return e({state:"end"===n.state?"exit":n.state,t:void 0!==n.t?n.t:n.deltaT})}}(n):n);l.enableBinding(e.anchor,e.eventType),l.createBinding(e.anchor,e.eventType,"",function(e){if(e&&e.props)return e.props.map(function(e){return{element:e.element,property:e.property,expression:e.expression.transformed}})}(e),n)}},unbind:function(e){if(!e)throw new Error("should pass options for binding");if(l&&a)return s?l.unbind(e):l.disableBinding(e.anchor,e.eventType)},unbindAll:function(){if(l&&a)return s?l.unbindAll():l.disableAll()},prepare:function(e){if(l&&a)return s?l.prepare(e):l.enableBinding(e.anchor,e.eventType)},getComputedStyle:function(e){return s?l.getComputedStyle(e):{}}},e.exports=n.default},function(module,exports,__webpack_require__){!function(e,n){module.exports=n()}("undefined"!=typeof self&&self,function(){return function(e){var n={};function t(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,t),r.l=!0,r.exports}return t.m=e,t.c=n,t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=0)}([function(module,exports,__webpack_require__){"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},lex={InputElementDiv:"<WhiteSpace>|<LineTerminator>|<ReservedWord>|<Identifier>|<NumericLiteral>|<Punctuator>|<StringLiteral>",InputElementRegExp:"<WhiteSpace>|<LineTerminator>|<ReservedWord>|<Identifier>|<NumericLiteral>|<Punctuator>|<StringLiteral>",ReservedWord:"<Keyword>|<NullLiteral>|<BooleanLiteral>",WhiteSpace:/[\t\v\f\u0020\u00A0\u1680\u180E\u2000-\u200A\u202F\u205f\u3000\uFEFF]/,LineTerminator:/[\n\r\u2028\u2029]/,Keyword:/new(?![_$a-zA-Z0-9])|void(?![_$a-zA-Z0-9])|delete(?![_$a-zA-Z0-9])|in(?![_$a-zA-Z0-9])|instanceof(?![_$a-zA-Z0-9])|typeof(?![_$a-zA-Z0-9])/,NullLiteral:/null(?![_$a-zA-Z0-9])/,BooleanLiteral:/(?:true|false)(?![_$a-zA-Z0-9])/,Identifier:/[_$a-zA-Z][_$a-zA-Z0-9]*/,Punctuator:/\/|=>|\*\*|>>>=|>>=|<<=|===|!==|>>>|<<|%=|\*=|-=|\+=|<=|>=|==|!=|\^=|\|=|\|\||&&|&=|>>|\+\+|--|\:|}|\*|&|\||\^|!|~|-|\+|\?|%|=|>|<|,|;|\.(?![0-9])|\]|\[|\)|\(|{/,DivPunctuator:/\/=|\//,NumericLiteral:/(?:0[xX][0-9a-fA-F]*|\.[0-9]+|(?:[1-9]+[0-9]*|0)(?:\.[0-9]*|\.)?)(?:[eE][+-]{0,1}[0-9]+)?(?![_$a-zA-Z0-9])/,StringLiteral:/"(?:[^"\n\\\r\u2028\u2029]|\\(?:['"\\bfnrtv\n\r\u2028\u2029]|\r\n)|\\x[0-9a-fA-F]{2}|\\u[0-9a-fA-F]{4}|\\[^0-9ux'"\\bfnrtv\n\\\r\u2028\u2029])*"|'(?:[^'\n\\\r\u2028\u2029]|\\(?:['"\\bfnrtv\n\r\u2028\u2029]|\r\n)|\\x[0-9a-fA-F]{2}|\\u[0-9a-fA-F]{4}|\\[^0-9ux'"\\bfnrtv\n\\\r\u2028\u2029])*'/,RegularExpressionLiteral:/\/(?:\[(?:\\[\s\S]|[^\]])*\]|[^*\/\\\n\r\u2028\u2029]|\\[^\n\r\u2028\u2029])(?:\[(?:\\[\s\S]|[^\]])*\]|[^\/\\\n\r\u2028\u2029]|\\[^\n\r\u2028\u2029])*\/[0-9a-zA-Z]*/};function XRegExp(e,n,t){var i=[n];var r=function n(r){var o=new RegExp;return o.compile(r.replace(/<([^>]+)>/g,function(t,r){return e[r]?(i.push(r),e[r]instanceof RegExp?"("+e[r].source+")":"("+n(e[r]).source+")"):""}),t),o}(e[n]);this.exec=function(e){var n=r.exec(e);if(null==n)return null;for(var t=new String(n[0]),o=0;o<i.length;o++)n[o]&&(t[i[o]]=n[o]);return t},Object.defineProperty(this,"lastIndex",{get:function(){return r.lastIndex},set:function(e){r.lastIndex=e}})}function LexicalParser(){var e,n=new XRegExp(lex,"InputElementDiv","g"),t=new XRegExp(lex,"InputElementRegExp","g");Object.defineProperty(this,"source",{get:function(){return e},set:function(i){e=i,n.lastIndex=0,t.lastIndex=0}}),this.reset=function(){n.lastIndex=0,t.lastIndex=0},this.getNextToken=function(i){var r,o=n.lastIndex,s=(r=i?n:t).exec(e);if(s&&r.lastIndex-o>s.length)throw new SyntaxError("Unexpected token ILLEGAL");return n.lastIndex=r.lastIndex,t.lastIndex=r.lastIndex,s}}var rules={IdentifierName:[["Identifier"]],Literal:[["NullLiteral"],["BooleanLiteral"],["NumericLiteral"],["StringLiteral"],["RegularExpressionLiteral"]],PrimaryExpression:[["Identifier"],["Literal"],["(","Expression",")"]],CallExpression:[["PrimaryExpression","Arguments"],["CallExpression","Arguments"]],Arguments:[["(",")"],["(","ArgumentList",")"]],ArgumentList:[["ConditionalExpression"],["ArgumentList",",","ConditionalExpression"]],LeftHandSideExpression:[["PrimaryExpression"],["CallExpression"]],UnaryExpression:[["LeftHandSideExpression"],["void","UnaryExpression"],["+","UnaryExpression"],["-","UnaryExpression"],["~","UnaryExpression"],["!","UnaryExpression"]],ExponentiationExpression:[["UnaryExpression"],["ExponentiationExpression","**","UnaryExpression"]],MultiplicativeExpression:[["MultiplicativeExpression","/","ExponentiationExpression"],["ExponentiationExpression"],["MultiplicativeExpression","*","ExponentiationExpression"],["MultiplicativeExpression","%","ExponentiationExpression"]],AdditiveExpression:[["MultiplicativeExpression"],["AdditiveExpression","+","MultiplicativeExpression"],["AdditiveExpression","-","MultiplicativeExpression"]],ShiftExpression:[["AdditiveExpression"],["ShiftExpression","<<","AdditiveExpression"],["ShiftExpression",">>","AdditiveExpression"],["ShiftExpression",">>>","AdditiveExpression"]],RelationalExpression:[["ShiftExpression"],["RelationalExpression","<","ShiftExpression"],["RelationalExpression",">","ShiftExpression"],["RelationalExpression","<=","ShiftExpression"],["RelationalExpression",">=","ShiftExpression"],["RelationalExpression","instanceof","ShiftExpression"],["RelationalExpression","in","ShiftExpression"]],EqualityExpression:[["RelationalExpression"],["EqualityExpression","==","RelationalExpression"],["EqualityExpression","!=","RelationalExpression"],["EqualityExpression","===","RelationalExpression"],["EqualityExpression","!==","RelationalExpression"]],BitwiseANDExpression:[["EqualityExpression"],["BitwiseANDExpression","&","EqualityExpression"]],BitwiseXORExpression:[["BitwiseANDExpression"],["BitwiseXORExpression","^","BitwiseANDExpression"]],BitwiseORExpression:[["BitwiseXORExpression"],["BitwiseORExpression","|","BitwiseXORExpression"]],LogicalANDExpression:[["BitwiseORExpression"],["LogicalANDExpression","&&","BitwiseORExpression"]],LogicalORExpression:[["LogicalANDExpression"],["LogicalORExpression","||","LogicalANDExpression"]],ConditionalExpression:[["LogicalORExpression"],["LogicalORExpression","?","LogicalORExpression",":","LogicalORExpression"]],Expression:[["ConditionalExpression"],["Expression",",","ConditionalExpression"]],Program:[["Expression"]]};function _Symbol(e,n){this.name=e,this.token=n,this.childNodes=[],this.toString=function(e){if(e||(e=""),1==this.childNodes.length)return this.childNodes[0].toString(e);for(var n=e+this.name+(void 0!=this.token&&this.name!=this.token?":"+this.token:"")+"\n",t=0;t<this.childNodes.length;t++)n+=this.childNodes[t].toString(e+" ");return n}}function SyntacticalParser(){var e={Program:"$"},n={};!function e(t){n[JSON.stringify(t)]=t;for(var i=Object.getOwnPropertyNames(t);i.length;){var r=i.shift();rules[r]&&rules[r].forEach(function(e){t[e[0]]||i.push(e[0]);var n=t;e.forEach(function(e){n[e]||(n[e]={}),n=n[e]}),t[r].$div&&(n.$div=!0),n.$reduce=r,n.$count=e.length})}for(var o in t)"object"!=_typeof(t[o])||"$"==o.charAt(0)||t[o].$closure||(n[JSON.stringify(t[o])]?t[o]=n[JSON.stringify(t[o])]:e(t[o]));t.$closure=!0}(e);var t=[],i=[e],r=e;this.insertSymbol=function(e,n){for(;!r[e.name]&&r.$reduce;){for(var o=r.$count,s=new _Symbol(r.$reduce);o--;)s.childNodes.push(t.pop()),i.pop();r=i[i.length-1],this.insertSymbol(s)}if(r=r[e.name],t.push(e),i.push(r),!r)throw new Error;return r.$div},this.reset=function(){r=e,t=[],i=[e]},Object.defineProperty(this,"grammarTree",{get:function(){try{for(;r.$reduce;){for(var e=r.$count,n=new _Symbol(r.$reduce);e--;)n.childNodes.push(t.pop()),i.pop();r=i[i.length-1],this.insertSymbol(n)}if(t.length>0&&r[";"])return this.insertSymbol(new _Symbol(";",";")),this.grammarTree;if(1!=t.length||"Program"!=t[0].name)throw new Error}catch(e){throw new SyntaxError("Unexpected end of input")}return t[0]}})}function Parser(){this.lexicalParser=new LexicalParser,this.syntacticalParser=new SyntacticalParser;var e={};["NullLiteral","BooleanLiteral","NumericLiteral","StringLiteral","RegularExpressionLiteral","Identifier","**","=>","{","}","(",")","[","]",".",";",",","<",">","<=",">=","==","!=","===","!==","+","-","*","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","=","+=","-=","*=","%=","<<=",">>=",">>>=","&=","|=","^=","/","/=","instanceof","typeof","new","void","debugger","this","delete","in"].forEach(function(n){Object.defineProperty(e,n,{})}),this.reset=function(){this.lexicalParser.reset(),this.syntacticalParser.reset()},this.parse=function(n,t){var i,r=this,o=!1;this.lexicalParser.source=n;for(var s=!1;i=this.lexicalParser.getNextToken(s);){t&&t(i);try{if(Object.getOwnPropertyNames(i).some(function(n){return!!e.hasOwnProperty(n)&&(s=r.syntacticalParser.insertSymbol(new _Symbol(n,i),o),o=!1,!0)}))continue;(i.Keyword||i.Punctuator||i.DivPunctuator)&&e.hasOwnProperty(i.toString())&&(s=this.syntacticalParser.insertSymbol(new _Symbol(i.toString(),i),o))}catch(e){throw new SyntaxError("Unexpected token "+i)}}return this.syntacticalParser.grammarTree}}var parser=new Parser;function JavaScriptExpression(text){parser.reset(),this.tree=parser.parse(text),this.paths=[];var context=Object.create(null),me=this,pathIndex=Object.create(null);function checkSimple(e){for(var n=e;n.childNodes.length<=1&&"MemberExpression"!==n.name;)n=n.childNodes[0];"MemberExpression"===n.name?me.isSimple=!0:me.isSimple=!1}function walk(e){if("CallExpression"===e.name&&"CallExpression"!==e.childNodes[e.childNodes.length-1].name){getPath(e.childNodes[1]);walk(e.childNodes[0])}else if("NewExpression"===e.name&&1===e.childNodes.length)getPath(e.childNodes[0]);else if("MemberExpression"===e.name&&1===e.childNodes.length)getPath(e);else for(var n=0;n<e.childNodes.length;n++)walk(e.childNodes[n])}function getPath(e){var n;if("IdentifierName"===e.childNodes[0].name)return(n=getPath(e.childNodes[2]))&&(n=n.concat(e.childNodes[0].childNodes[0].token.toString())),createPath(n),n;if("PrimaryExpression"===e.childNodes[0].name)return"Identifier"===e.childNodes[0].childNodes[0].name?(createPath(n=[e.childNodes[0].childNodes[0].token.toString()]),n):null;if("]"===e.childNodes[0].name)return getPath(e.childNodes[3]),walk(e.childNodes[1]),null;if("Arguments"===e.childNodes[0].name)return walk(e.childNodes[0]),walk(e.childNodes[1]),null;for(var t=0;t<e.childNodes.length;t++)walk(e.childNodes[t])}function createPath(e){for(var n=context,t=0;t<e.length-1;t++)n[e[t]]||(n[e[t]]=Object.create(null)),n=n[e[t]];me.paths.push(e),pathIndex[e.join(".")]=!1}this.isSimple,this.isConst,walk(this.tree),checkSimple(this.tree),0===this.paths.length&&(this.isConst=!0),this.setter=function(e){for(var n=context,t=0;t<e.length-1;t++)n[e[t]]||(n[e[t]]=Object.create(null)),n=n[e[t]];return{isCompleted:function(){for(var e in pathIndex)if(!pathIndex[e])return!1;return!0},set:function(i){return pathIndex[e.join(".")]||(pathIndex[e.join(".")]=!0),n[e[t]]=i,this.isCompleted()?me.exec():void 0}}},this.valueOf=this.exec=function(){try{return function(){return eval(text)}.call(context)}catch(e){}}}function visit(e){var n,t=e.childNodes.slice().reverse(),i=t.filter(function(e){return!e.token||!e.token.Punctuator});if("UnaryExpression"===e.name&&(2===t.length&&"-"===t[0].name&&1===i.length))return(n=visit(i[0])).value=-n.value,n;if("Arguments"===e.name){for(var r=[],o=i[0];o;)3===o.childNodes.length&&(r.unshift(o.childNodes[0]),o=o.childNodes[2]),1===o.childNodes.length&&(r.unshift(o.childNodes[0]),o=null);return{type:"Arguments",children:r.map(function(e){return visit(e)})}}if(i&&1===i.length)return n=visit(i[0]);if(e.token&&["NullLiteral","BooleanLiteral","NumericLiteral","StringLiteral","Identifier"].some(function(n){return e.token[n]})){var s=Object.keys(e.token).filter(function(e){return e.match(/Literal/)||e.match(/Identifier/)})[0];return{type:s,value:{NullLiteral:null,BooleanLiteral:Boolean(e.token),NumericLiteral:Number(e.token),StringLiteral:e.token,Identifier:e.token}[s]}}return"CallExpression"===e.name?{type:"CallExpression",children:[visit(t[0]),visit(t[1])]}:{type:t.filter(function(e){return e.token&&e.token.Punctuator})[0].name,children:t.filter(function(e){return!e.token||!e.token.Punctuator}).map(function(e){return visit(e)})}}function parse(e){var n=new JavaScriptExpression(e);return JSON.stringify(visit(n.tree),null)}module.exports={parse:parse}}])})}])});