'use strict' var allowedModifiers = ['trim', 'number', 'lazy'] var RANGE_TOKEN = '__r' var CHECKBOX_RADIO_TOKEN = '__c' var htmlTags = require('html-tags') var svgTags = require('svg-tags') var isReservedTag = function isReservedTag(tag) { return ~htmlTags.indexOf(tag) || ~svgTags.indexOf(tag) } var getExpression = function getExpression(t, path) { return t.isStringLiteral(path.node.value) ? path.node.value : path.node.value.expression } var genValue = function genValue(t, model) { return t.jSXAttribute(t.jSXIdentifier('domPropsValue'), t.jSXExpressionContainer(model)) } var genAssignmentCode = function genAssignmentCode(t, model, assignment) { if (model.computed) { var object = model.object, property = model.property return t.ExpressionStatement( t.CallExpression(t.MemberExpression(t.ThisExpression(), t.Identifier('$set')), [object, property, assignment]) ) } else { return t.ExpressionStatement(t.AssignmentExpression('=', model, assignment)) } } var genListener = function genListener(t, event, body) { return t.jSXAttribute( t.jSXIdentifier('on' + event), t.jSXExpressionContainer(t.ArrowFunctionExpression([t.Identifier('$event')], t.BlockStatement(body))) ) } var genSelectModel = function genSelectModel(t, modelAttribute, model, modifier) { if (modifier && modifier !== 'number') { throw modelAttribute.get('name').get('name').buildCodeFrameError('you can only use number modifier with