UNPKG

sodajs

Version:

Light weight but powerful template engine for JavaScript.

1,058 lines (807 loc) 31.4 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define([], factory); else if(typeof exports === 'object') exports["soda"] = factory(); else root["soda"] = factory(); })(this, function() { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 3); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _const = __webpack_require__(1); var _util = __webpack_require__(2); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var doc = typeof document !== 'undefined' ? document : {}; var Soda = function () { function Soda() { var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'soda-'; _classCallCheck(this, Soda); this._prefix = prefix; } _createClass(Soda, [{ key: 'setDocument', value: function setDocument(_doc) { doc = _doc; } }, { key: 'run', value: function run(str, data) { var _this = this; // 解析模板DOM var div = doc.createElement("div"); // 必须加入到body中去,不然自定义标签不生效 if (doc.documentMode < 9) { div.style.display = 'none'; doc.body.appendChild(div); } div.innerHTML = str; (0, _util.nodes2Arr)(div.childNodes).map(function (child) { _this.compileNode(child, data); }); var innerHTML = div.innerHTML; if (doc.documentMode < 9) { doc.body.removeChild(div); } return innerHTML; } }, { key: 'prefix', value: function prefix(_prefix) { this._prefix = _prefix; } }, { key: '_getPrefixReg', value: function _getPrefixReg() { return new RegExp('^' + this._prefix); } }, { key: '_getPrefixedDirectiveMap', value: function _getPrefixedDirectiveMap() { var _this2 = this; var map = {}; Soda.sodaDirectives.map(function (item) { var prefixedName = _this2._prefix + item.name; map[prefixedName] = item; }); return map; } }, { key: '_removeSodaMark', value: function _removeSodaMark(node, name) { node.removeAttribute(name); } }, { key: 'compileNode', value: function compileNode(node, scope) { var _this3 = this; var prefixReg = this._getPrefixReg(); var sodaDirectives = Soda.sodaDirectives; var prefixedDirectiveMap = this._getPrefixedDirectiveMap(); var compile = function compile(node, scope) { // 如果只是文本 // parseTextNode if (node.nodeType === (node.TEXT_NODE || 3)) { node.nodeValue = node.nodeValue.replace(_const.VALUE_OUT_REG, function (item, $1) { var value = _this3.parseSodaExpression($1, scope); if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === "object") { value = JSON.stringify(value, null, 2); } return value; }); } // parse Attributes if (node.attributes && node.attributes.length) { // 指令优先处理 sodaDirectives.map(function (item) { var name = item.name, opt = item.opt; var prefixedName = _this3._prefix + name; // 这里移除了对parentNode的判断 // 允许使用无值的指令 if ((0, _util.exist)(node.getAttribute(prefixedName))) { var expression = node.getAttribute(prefixedName); opt.link.bind(_this3)({ expression: expression, scope: scope, el: node, parseSodaExpression: _this3.parseSodaExpression.bind(_this3), getValue: _this3.getValue.bind(_this3), compileNode: _this3.compileNode.bind(_this3), document: doc }); // 移除标签 _this3._removeSodaMark(node, prefixedName); } }); // 处理输出 包含 prefix-* (0, _util.nodes2Arr)(node.attributes) // 过滤掉指令里包含的属性 .filter(function (attr) { return !prefixedDirectiveMap[attr.name]; }).map(function (attr) { if (prefixReg.test(attr.name)) { var attrName = attr.name.replace(prefixReg, ''); if (attrName && (0, _util.exist)(attr.value)) { var attrValue = _this3.parseComplexExpression(attr.value, scope); if (attrValue !== false && (0, _util.exist)(attrValue)) { node.setAttribute(attrName, attrValue); } _this3._removeSodaMark(node, attr.name); } // 对其他属性里含expr 处理 } else { if ((0, _util.exist)(attr.value)) { attr.value = _this3.parseComplexExpression(attr.value, scope); } } }); } // parse childNodes (0, _util.nodes2Arr)(node.childNodes).map(function (child) { compile(child, scope); }); }; compile(node, scope); } }, { key: 'getEvalFunc', value: function getEvalFunc(expr) { var evalFunc = new Function("getValue", "sodaFilterMap", "return function sodaExp(scope){ return " + expr + "}")(this.getValue, Soda.sodaFilterMap); return evalFunc; } }, { key: 'getValue', value: function getValue(_data, _attrStr) { _const.CONST_REGG.lastIndex = 0; var realAttrStr = _attrStr.replace(_const.CONST_REGG, function (r) { if (typeof _data[r] === "undefined") { return r; } else { return _data[r]; } }); if (_attrStr === 'true') { return true; } if (_attrStr === 'false') { return false; } var _getValue = function _getValue(data, attrStr) { var dotIndex = attrStr.indexOf("."); if (dotIndex > -1) { var attr = attrStr.substr(0, dotIndex); attrStr = attrStr.substr(dotIndex + 1); // 检查attrStr是否属于变量并转换 if (typeof _data[attr] !== "undefined" && _const.CONST_REG.test(attr)) { attr = _data[attr]; } if (typeof data[attr] !== "undefined" && data[attr] !== null) { return _getValue(data[attr], attrStr); } else { var eventData = { name: realAttrStr, data: _data }; // 如果还有 return ""; } } else { attrStr = attrStr.trim(); // 检查attrStr是否属于变量并转换 if (typeof _data[attrStr] !== "undefined" && _const.CONST_REG.test(attrStr)) { attrStr = _data[attrStr]; } var rValue; if (typeof data[attrStr] !== "undefined") { rValue = data[attrStr]; } else { var eventData = { name: realAttrStr, data: _data }; rValue = ""; } return rValue; } }; return _getValue(_data, _attrStr); } // 解析混合表达式 }, { key: 'parseComplexExpression', value: function parseComplexExpression(str, scope) { var _this4 = this; var onlyResult = _const.ONLY_VALUE_OUT_REG.exec(str); if (onlyResult) { var sodaExp = onlyResult[1]; return this.parseSodaExpression(sodaExp, scope); } return str.replace(_const.VALUE_OUT_REG, function (item, $1) { return _this4.parseSodaExpression($1, scope); }); } }, { key: 'parseSodaExpression', value: function parseSodaExpression(str, scope) { var _this5 = this; // 将字符常量保存下来 str = str.replace(_const.STRING_REG, function (r, $1, $2) { var key = (0, _util.getRandom)(); scope[key] = $1 || $2; return key; }); // 对filter进行处理 str = str.replace(_const.OR_REG, _const.OR_REPLACE).split("|"); for (var i = 0; i < str.length; i++) { str[i] = (str[i].replace(new RegExp(_const.OR_REPLACE, 'g'), "||") || '').trim(); } var expr = str[0] || ""; var filters = str.slice(1); while (_const.ATTR_REG_NG.test(expr)) { _const.ATTR_REG.lastIndex = 0; //对expr预处理 expr = expr.replace(_const.ATTR_REG, function (r, $1) { var key = (0, _util.getAttrVarKey)(); // 属性名称为字符常量 var attrName = _this5.parseSodaExpression($1, scope); // 给一个特殊的前缀 表示是属性变量 scope[key] = attrName; return "." + key; }); } expr = expr.replace(_const.OBJECT_REG, function (value) { return "getValue(scope,'" + value.trim() + "')"; }); expr = this.parseFilter(filters, expr); return this.getEvalFunc(expr)(scope); } }, { key: 'parseFilter', value: function parseFilter(filters, expr) { var sodaFilterMap = Soda.sodaFilterMap; var parse = function parse() { var filterExpr = filters.shift(); if (!filterExpr) { return; } var filterExpr = filterExpr.split(":"); var args = filterExpr.slice(1) || []; var name = (filterExpr[0] || "").trim(); for (var i = 0; i < args.length; i++) { //这里根据类型进行判断 if (_const.OBJECT_REG_NG.test(args[i])) { args[i] = "getValue(scope,'" + args[i] + "')"; } else {} } if (sodaFilterMap[name]) { args.unshift(expr); args = args.join(","); expr = "sodaFilterMap['" + name + "'](" + args + ")"; } parse(); }; parse(); return expr; } }], [{ key: 'filter', value: function filter(name, func) { this.sodaFilterMap[name] = func; } }, { key: 'getFilter', value: function getFilter(name) { return this.sodaFilterMap[name]; } }, { key: 'directive', value: function directive(name, opt) { // 按照顺序入 var _opt$priority = opt.priority, priority = _opt$priority === undefined ? 0 : _opt$priority; var i = void 0; for (i = 0; i < this.sodaDirectives.length; i++) { var item = this.sodaDirectives[i]; var _item$opt$priority = item.opt.priority, itemPriority = _item$opt$priority === undefined ? 0 : _item$opt$priority; // 比他小 继续比下一个 if (priority < itemPriority) { // 发现比它大或者相等 就插大他前面 } else if (priority >= itemPriority) { break; } } this.sodaDirectives.splice(i, 0, { name: name, opt: opt }); } }, { key: 'discribe', value: function discribe(name, funcOrStr) { var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { compile: true }; this.template[name] = { funcOrStr: funcOrStr, option: option }; } }, { key: 'getTmpl', value: function getTmpl(name, args) { var template = this.template[name]; var funcOrStr = template.funcOrStr, _template$option = template.option, option = _template$option === undefined ? {} : _template$option; var result = void 0; if (typeof funcOrStr === 'function') { result = funcOrStr.apply(null, args); } else { result = funcOrStr; } return { template: result, option: option }; } }]); return Soda; }(); Soda.sodaDirectives = []; Soda.sodaFilterMap = {}; Soda.template = {}; exports["default"] = Soda; /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // 标识符 var IDENTOR_REG = exports.IDENTOR_REG = /[a-zA-Z_\$]+[\w\$]*/g; var STRING_REG = exports.STRING_REG = /"([^"]*)"|'([^']*)'/g; var NUMBER_REG = exports.NUMBER_REG = /\d+|\d*\.\d+/g; var OBJECT_REG = exports.OBJECT_REG = /[a-zA-Z_\$]+[\w\$]*(?:\s*\.\s*(?:[a-zA-Z_\$]+[\w\$]*|\d+))*/g; // 非global 做test用 var OBJECT_REG_NG = exports.OBJECT_REG_NG = /[a-zA-Z_\$]+[\w\$]*(?:\s*\.\s*(?:[a-zA-Z_\$]+[\w\$]*|\d+))*/; var ATTR_REG = exports.ATTR_REG = /\[([^\[\]]*)\]/g; var ATTR_REG_NG = exports.ATTR_REG_NG = /\[([^\[\]]*)\]/; var ATTR_REG_DOT = exports.ATTR_REG_DOT = /\.([a-zA-Z_\$]+[\w\$]*)/g; var NOT_ATTR_REG = exports.NOT_ATTR_REG = /[^\.|]([a-zA-Z_\$]+[\w\$]*)/g; var OR_REG = exports.OR_REG = /\|\|/g; var OR_REPLACE = exports.OR_REPLACE = "OR_OPERATOR\x1E"; var CONST_PRIFIX = exports.CONST_PRIFIX = "_$C$_"; var CONST_REG = exports.CONST_REG = /^_\$C\$_/; var CONST_REGG = exports.CONST_REGG = /_\$C\$_[^\.]+/g; var VALUE_OUT_REG = exports.VALUE_OUT_REG = /\{\{([^\}]*)\}\}/g; var ONLY_VALUE_OUT_REG = exports.ONLY_VALUE_OUT_REG = /^\{\{([^\}]*)\}\}$/; /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.assign = exports.nodes2Arr = exports.exist = exports.getRandom = exports.getAttrVarKey = undefined; var _const = __webpack_require__(1); var getAttrVarKey = exports.getAttrVarKey = function getAttrVarKey() { return _const.CONST_PRIFIX + ~~(Math.random() * 1E6); }; var getRandom = exports.getRandom = function getRandom() { return "$$" + ~~(Math.random() * 1E6); }; var exist = exports.exist = function exist(value) { return value !== null && value !== undefined && value !== "" && typeof value !== 'undefined'; }; var nodes2Arr = exports.nodes2Arr = function nodes2Arr(nodes) { var arr = []; for (var i = 0; i < nodes.length; i++) { arr.push(nodes[i]); } return arr; }; var getOwnPropertySymbols = Object.getOwnPropertySymbols; var hasOwnProperty = Object.prototype.hasOwnProperty; var propIsEnumerable = Object.prototype.propertyIsEnumerable; var toObject = function toObject(val) { if (val === null || val === undefined) { throw new TypeError('Object.assign cannot be called with null or undefined'); } return Object(val); }; var assign = exports.assign = Object.assign || function (target, source) { var from; var to = toObject(target); var symbols; for (var s = 1; s < arguments.length; s++) { from = Object(arguments[s]); for (var key in from) { if (hasOwnProperty.call(from, key)) { to[key] = from[key]; } } if (getOwnPropertySymbols) { symbols = getOwnPropertySymbols(from); for (var i = 0; i < symbols.length; i++) { if (propIsEnumerable.call(from, symbols[i])) { to[symbols[i]] = from[symbols[i]]; } } } } return to; }; /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _soda = __webpack_require__(0); var _soda2 = _interopRequireDefault(_soda); var _util = __webpack_require__(2); __webpack_require__(4); __webpack_require__(5); __webpack_require__(6); __webpack_require__(7); __webpack_require__(8); __webpack_require__(9); __webpack_require__(10); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var sodaInstance = new _soda2["default"](); var init = function init(str, data) { return sodaInstance.run(str, data); }; var mock = { prefix: function prefix(_prefix) { sodaInstance.prefix(_prefix); }, filter: function filter(name, func) { _soda2["default"].filter(name, func); }, directive: function directive(name, opt) { _soda2["default"].directive(name, opt); }, setDocument: function setDocument(document) { sodaInstance.setDocument(document); }, discribe: function discribe(name, str, option) { _soda2["default"].discribe(name, str, option); }, Soda: _soda2["default"] }; var soda = (0, _util.assign)(init, mock); module.exports = soda; /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _soda = __webpack_require__(0); var _soda2 = _interopRequireDefault(_soda); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } _soda2["default"].directive('repeat', { priority: 10, link: function link(_ref) { var _this = this; var scope = _ref.scope, el = _ref.el, expression = _ref.expression, getValue = _ref.getValue, parseSodaExpression = _ref.parseSodaExpression, compileNode = _ref.compileNode; var itemName; var valueName; var trackReg = /\s+by\s+([^\s]+)$/; var trackName; var opt = expression.replace(trackReg, function (item, $1) { if ($1) { trackName = ($1 || '').trim(); } return ''; }); var inReg = /([^\s]+)\s+in\s+([^\s]+)|\(([^,]+)\s*,\s*([^)]+)\)\s+in\s+([^\s]+)/; var r = inReg.exec(opt); if (r) { if (r[1] && r[2]) { itemName = (r[1] || '').trim(); valueName = (r[2] || '').trim(); if (!(itemName && valueName)) { return; } } else if (r[3] && r[4] && r[5]) { trackName = (r[3] || '').trim(); itemName = (r[4] || '').trim(); valueName = (r[5] || '').trim(); } } else { return; } trackName = trackName || '$index'; // 这里要处理一下 var repeatObj = getValue(scope, valueName) || []; var repeatFunc = function repeatFunc(i) { var itemNode = el.cloneNode(true); // 这里创建一个新的scope var itemScope = Object.create(scope); itemScope[trackName] = i; itemScope[itemName] = repeatObj[i]; //itemScope.__proto__ = scope; // REMOVE cjd6568358 itemNode.removeAttribute(_this._prefix + 'repeat'); el.parentNode.insertBefore(itemNode, el); // 这里是新加的dom, 要单独编译 compileNode(itemNode, itemScope); }; if ('length' in repeatObj) { for (var i = 0; i < repeatObj.length; i++) { repeatFunc(i); } } else { for (var i in repeatObj) { if (repeatObj.hasOwnProperty(i)) { repeatFunc(i); } } } // el 清理 el.parentNode.removeChild(el); if (el.childNodes && el.childNodes.length) { el.innerHTML = ''; } } }); /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _soda = __webpack_require__(0); var _soda2 = _interopRequireDefault(_soda); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } _soda2["default"].directive('if', { priority: 9, link: function link(_ref) { var expression = _ref.expression, parseSodaExpression = _ref.parseSodaExpression, scope = _ref.scope, el = _ref.el; var expressFunc = parseSodaExpression(expression, scope); if (expressFunc) {} else { el.parentNode && el.parentNode.removeChild(el); el.innerHTML = ''; } } }); /***/ }), /* 6 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _soda = __webpack_require__(0); var _soda2 = _interopRequireDefault(_soda); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var classNameRegExp = function classNameRegExp(className) { return new RegExp('(^|\\s+)' + className + '(\\s+|$)', 'g'); }; var addClass = function addClass(el, className) { if (!el.className) { el.className = className; return; } if (el.className.match(classNameRegExp(className))) {} else { el.className += " " + className; } }; var removeClass = function removeClass(el, className) { el.className = el.className.replace(classNameRegExp(className), ""); }; _soda2["default"].directive('class', { link: function link(_ref) { var scope = _ref.scope, el = _ref.el, expression = _ref.expression, parseSodaExpression = _ref.parseSodaExpression; var expressFunc = parseSodaExpression(expression, scope); if (expressFunc) { addClass(el, expressFunc); } else {} } }); /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _soda = __webpack_require__(0); var _soda2 = _interopRequireDefault(_soda); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } _soda2["default"].directive('html', { link: function link(_ref) { var expression = _ref.expression, scope = _ref.scope, el = _ref.el, parseSodaExpression = _ref.parseSodaExpression; var result = parseSodaExpression(expression, scope); if (result) { el.innerHTML = result; } } }); /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _soda = __webpack_require__(0); var _soda2 = _interopRequireDefault(_soda); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } _soda2["default"].directive('replace', { link: function link(_ref) { var scope = _ref.scope, el = _ref.el, expression = _ref.expression, parseSodaExpression = _ref.parseSodaExpression, document = _ref.document; var result = parseSodaExpression(expression, scope); if (result) { var div = document.createElement('div'); div.innerHTML = result; if (el.parentNode) { while (div.childNodes[0]) { el.parentNode.insertBefore(div.childNodes[0], el); } } } el.parentNode && el.parentNode.removeChild(el); } }); /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _soda = __webpack_require__(0); var _soda2 = _interopRequireDefault(_soda); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } _soda2["default"].directive('style', { link: function link(_ref) { var scope = _ref.scope, el = _ref.el, expression = _ref.expression, parseSodaExpression = _ref.parseSodaExpression; var expressFunc = parseSodaExpression(expression, scope); var getCssValue = function getCssValue(name, value) { var numberWithoutpx = /opacity|z-index/; if (numberWithoutpx.test(name)) { return parseFloat(value); } if (isNaN(value)) { return value; } else { return value + "px"; } }; if (expressFunc) { var stylelist = []; for (var i in expressFunc) { if (expressFunc.hasOwnProperty(i)) { var provalue = getCssValue(i, expressFunc[i]); stylelist.push([i, provalue].join(":")); } } var style = el.style; for (var i = 0; i < style.length; i++) { var name = style[i]; if (expressFunc[name]) {} else { stylelist.push([name, style[name]].join(":")); } } var styleStr = stylelist.join(";"); el.setAttribute("style", styleStr); } } }); /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _soda = __webpack_require__(0); var _soda2 = _interopRequireDefault(_soda); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } _soda2["default"].directive('include', { priority: 8, link: function link(_ref) { var scope = _ref.scope, el = _ref.el, parseSodaExpression = _ref.parseSodaExpression, expression = _ref.expression; var VALUE_OUT_REG = /\{\{([^\}]*)\}\}/g; var result = expression.replace(VALUE_OUT_REG, function (item, $1) { return parseSodaExpression($1, scope); }); result = result.split(":"); var name = result[0]; var args = result.slice(1); var templateOption = _soda2["default"].getTmpl(name, args); var template = templateOption.template, _templateOption$optio = templateOption.option, option = _templateOption$optio === undefined ? {} : _templateOption$optio; if (template) { if (option.compile) { el.outerHTML = this.run(template, scope); } else { el.outerHTML = template; } } } }); /***/ }) /******/ ]); });