{"version":3,"file":"index.mjs","sources":["../node_modules/elenpi/dist/index.mjs","../node_modules/elenpi-simple-function-call-parser/src/index.js","../src/index.js"],"sourcesContent":["var classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n/*\n * @Author: Gilles Coomans\n * @Last Modified by:   Gilles Coomans\n * @Last Modified time: 2017-05-08 00:53:57\n */\n\n/**\n * The Parser class.\n * @public\n */\nvar Parser = function () {\n\n\t/**\n  * @param  {Object} rules       an object containing rules\n  * @param  {String} defaultRule the default rule to use when parsing\n  */\n\tfunction Parser(rules, defaultRule) {\n\t\tclassCallCheck(this, Parser);\n\n\n\t\t/**\n   * the rules map\n   * @type {Object}\n   */\n\t\tthis.rules = rules;\n\n\t\t/**\n   * the default rule's name to use\n   * @type {String}\n   */\n\t\tthis.defaultRule = defaultRule;\n\t}\n\n\t/**\n  * find rule by name\n  * @param  {String} name the rule's name\n  * @return {Rule}      the finded rule\n  * @throws {Error} If rule not found\n  */\n\n\n\tcreateClass(Parser, [{\n\t\tkey: 'getRule',\n\t\tvalue: function getRule(name) {\n\t\t\tvar r = this.rules[name];\n\t\t\tif (!r) throw new Error('elenpi parser : rules not found : ' + name);\n\t\t\treturn r;\n\t\t}\n\n\t\t/**\n   * Parse provided string with specific rule\n   * @param  {String} string     the string to parse\n   * @param  {?String} rule       the name of the rule to apply. default is null (will use parser's default method if not provided).\n   * @param  {?Object} descriptor the main descriptor object\n   * @param  {?Object} env \t\tthe env object (internal object used while parsing)\n   * @return {Object}            the decorated descriptor\n   * @throws {Error} If parsing fail (for any reason)\n   */\n\n\t}, {\n\t\tkey: 'parse',\n\t\tvalue: function parse(string) {\n\t\t\tvar rule = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\t\t\tvar descriptor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\t\t\tvar env = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n\t\t\tenv.parser = this;\n\t\t\tenv.string = string;\n\t\t\tenv.lastPosition = env.lastPosition || 0;\n\t\t\trule = rule || this.getRule(this.defaultRule);\n\t\t\tParser.exec(rule, descriptor, env);\n\t\t\tif (!env.error && env.string.length) {\n\t\t\t\tenv.error = true;\n\t\t\t\tenv.errorMessage = 'string wasn\\'t parsed entierly';\n\t\t\t}\n\t\t\tif (env.error) {\n\t\t\t\tvar pos = string.length - env.string.length,\n\t\t\t\t    posInFile = getPositionInFile(string, pos);\n\t\t\t\tthrow new Error('Parsing failed : ' + (env.errorMessage || 'no rules matched') + ' : (line:' + posInFile.line + ' , col:' + posInFile.col + ') near : ' + string.substring(Math.max(0, pos - 10), pos + 50));\n\t\t\t}\n\t\t\treturn descriptor;\n\t\t}\n\n\t\t/**\n   * Execute a rule (only for those who developing grammars)\n   * @param  {String|Rule} rule      the name of the rule to use or the rule itself\n   * @param  {Object} descriptor the descriptor to decorate\n   * @param  {Object} env        the inner-job main object where parser, parsed string and eventual errors are stored\n   * @return {Void}            nothing\n   * @public\n   * @throws {Error} If rule is string (so it's a rule's name) and referenced rule could not be found with it.\n   */\n\n\t}], [{\n\t\tkey: 'exec',\n\t\tvalue: function exec(rule, descriptor, env) {\n\t\t\t// if (env.error)\n\t\t\t// return;\n\t\t\tif (typeof rule === 'string') rule = env.parser.getRule(rule);\n\n\t\t\tvar rules = rule._queue;\n\t\t\tfor (var i = 0, len = rules.length; i < len; ++i) {\n\t\t\t\trules[i](env, descriptor, env.lastPosition);\n\t\t\t\tif (env.error) break;\n\t\t\t}\n\t\t}\n\t}]);\n\treturn Parser;\n}();\n\nfunction getPositionInFile(string, position) {\n\tvar splitted = string.split(/\\r|\\n/),\n\t    len = splitted.length;\n\tvar lineNumber = 0,\n\t    current = 0,\n\t    line = void 0,\n\t    lineLength = void 0;\n\twhile (lineNumber < len) {\n\t\tline = splitted[lineNumber];\n\t\tlineLength = line.length;\n\t\tif (position <= current + lineLength) break;\n\t\tcurrent += lineLength;\n\t\tlineNumber++;\n\t}\n\treturn {\n\t\tline: lineNumber + 1,\n\t\tcol: position - current\n\t};\n}\n\n/*\n * @Author: Gilles Coomans\n */\n\nvar defaultSpaceRegExp = /^\\s+/;\nvar exec = Parser.exec;\n\n/**\n * The Rule base class.\n * @public\n */\n\nvar Rule = function () {\n\n\t/**\n  * the Rule constructor\n  */\n\tfunction Rule() {\n\t\tclassCallCheck(this, Rule);\n\n\t\tthis._queue = [];\n\t\tthis.__elenpi__ = true;\n\t}\n\n\t/**\n  * the base handler for every other lexems\n  * @param  {Function} callback the callback to handle string\n  * @return {Rule}          this rule handler\n  */\n\n\n\tcreateClass(Rule, [{\n\t\tkey: 'done',\n\t\tvalue: function done(callback) {\n\t\t\tthis._queue.push(callback);\n\t\t\treturn this;\n\t\t}\n\n\t\t/**\n   * use another rule  \n   * @param  {String|Rule|function} rule the rule to use\n   * @return {Rule}          this rule handler\n   */\n\n\t}, {\n\t\tkey: 'use',\n\t\tvalue: function use(rule) {\n\t\t\t// const args = [].slice.call(arguments, 1);\n\t\t\treturn this.done(function (env, descriptor) {\n\t\t\t\tif (typeof rule === 'string') rule = env.parser.getRule(rule);\n\t\t\t\texec(rule, descriptor, env);\n\t\t\t});\n\t\t}\n\n\t\t/**\n   * catch a terminal\n   * @param  {RegExp} reg the terminal's regexp\n   * @param  {String|Function} set either the name of the property (in current descriptor) where store the catched value \n   *                           or a function to handle captured object by hand \n   * @return {Rule}          this rule handler\n   */\n\n\t}, {\n\t\tkey: 'terminal',\n\t\tvalue: function terminal(reg, set$$1) {\n\t\t\treturn this.done(function (env, descriptor, startIndex) {\n\t\t\t\tif (!env.string.length) {\n\t\t\t\t\tenv.error = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar cap = reg.exec(env.string);\n\t\t\t\tif (cap) {\n\t\t\t\t\tenv.string = env.string.substring(cap[0].length);\n\t\t\t\t\tenv.lastPosition += cap[0].length;\n\t\t\t\t\tif (set$$1) {\n\t\t\t\t\t\tif (typeof set$$1 === 'string') descriptor[set$$1] = cap[0];else set$$1(env, descriptor, cap, startIndex, env.lastPosition);\n\t\t\t\t\t}\n\t\t\t\t} else env.error = true;\n\t\t\t});\n\t\t}\n\n\t\t/**\n   * match a single character\n   * @param  {String} test the caracter to match\n   * @return {Rule}          this rule handler\n   */\n\n\t}, {\n\t\tkey: 'char',\n\t\tvalue: function char(test) {\n\t\t\treturn this.done(function (env) {\n\t\t\t\tif (!env.string.length || env.string[0] !== test) env.error = true;else {\n\t\t\t\t\tenv.string = env.string.substring(1);\n\t\t\t\t\tenv.lastPosition += 1;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n   * match x or more element from string with provided rule\n   * @param  {Rule|Object} rule either a rule instance or an option object\n   * @return {Rule}          this rule handler\n   */\n\n\t}, {\n\t\tkey: 'xOrMore',\n\t\tvalue: function xOrMore(rule) {\n\t\t\tvar opt = typeof rule === 'string' || rule.__elenpi__ ? {\n\t\t\t\trule: rule\n\t\t\t} : rule;\n\t\t\topt.minimum = opt.minimum || 0;\n\t\t\topt.maximum = opt.maximum || Infinity;\n\t\t\treturn this.done(function (env, descriptor) {\n\n\t\t\t\tif (opt.minimum && !env.string.length) {\n\t\t\t\t\tenv.error = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar rule = opt.rule,\n\t\t\t\t    pushTo = opt.pushTo,\n\t\t\t\t    pushToString = typeof pushTo === 'string',\n\t\t\t\t    As = opt.as,\n\t\t\t\t    separator = opt.separator;\n\n\t\t\t\tvar count = 0,\n\t\t\t\t    currentPosition = void 0,\n\t\t\t\t    newDescriptor = void 0,\n\t\t\t\t    restLength = void 0;\n\n\t\t\t\twhile (env.string.length && count < opt.maximum) {\n\n\t\t\t\t\tnewDescriptor = As ? As(env, descriptor) : pushTo ? {} : descriptor;\n\t\t\t\t\tcurrentPosition = env.string.length;\n\n\t\t\t\t\texec(rule, newDescriptor, env);\n\n\t\t\t\t\trestLength = env.string.length;\n\n\t\t\t\t\tif (env.error) {\n\t\t\t\t\t\tif (currentPosition === restLength) // has not moved deeper : so try next rule\n\t\t\t\t\t\t\tenv.error = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcount++;\n\n\t\t\t\t\t// store new descriptor in parent descriptor\n\t\t\t\t\tif (!newDescriptor.skip && pushTo) if (pushToString) {\n\t\t\t\t\t\tdescriptor[pushTo] = descriptor[pushTo] || [];\n\t\t\t\t\t\tdescriptor[pushTo].push(newDescriptor);\n\t\t\t\t\t} else pushTo(env, descriptor, newDescriptor);\n\n\t\t\t\t\t// manage separator\n\t\t\t\t\tif (separator && restLength) {\n\t\t\t\t\t\tcurrentPosition = restLength;\n\t\t\t\t\t\texec(separator, newDescriptor, env);\n\t\t\t\t\t\tif (env.error) {\n\t\t\t\t\t\t\tif (currentPosition === env.string.length) env.error = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!env.error && count < opt.minimum) {\n\t\t\t\t\tenv.error = true;\n\t\t\t\t\tenv.errorMessage = \"missing xOrMore item : \" + rule;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n   * match 0 or more element from string with provided rule\n   * @param  {Rule|Object} rule either a rule instance or an option object\n   * @return {Rule}          this rule handler\n   */\n\n\t}, {\n\t\tkey: 'zeroOrMore',\n\t\tvalue: function zeroOrMore(rule) {\n\t\t\treturn this.xOrMore(rule);\n\t\t}\n\n\t\t/**\n   * match 1 or more element from string with provided rule\n   * @param  {Rule|Object} rule either a rule instance or an option object\n   * @return {Rule}          this rule handler\n   */\n\n\t}, {\n\t\tkey: 'oneOrMore',\n\t\tvalue: function oneOrMore(rule) {\n\t\t\tif (typeof rule === 'string' || rule.__elenpi__) rule = {\n\t\t\t\trule: rule,\n\t\t\t\tminimum: 1\n\t\t\t};else rule.minimum = 1;\n\t\t\treturn this.xOrMore(rule);\n\t\t}\n\n\t\t/**\n   * match one element from string with one of provided rules\n   * @param  {Rule|Object} rules either a rule instance or an option object\n   * @return {Rule}          this rule handler\n   */\n\n\t}, {\n\t\tkey: 'oneOf',\n\t\tvalue: function oneOf(rules) {\n\t\t\tvar opt = typeof rules === 'string' || rules.__elenpi__ ? {\n\t\t\t\trules: [].slice.call(arguments)\n\t\t\t} : rules;\n\t\t\treturn this.done(function (env, descriptor) {\n\n\t\t\t\tif (!opt.optional && !env.string.length) {\n\t\t\t\t\tenv.error = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar len = opt.rules.length,\n\t\t\t\t    currentPosition = env.string.length;\n\n\t\t\t\tvar count = 0,\n\t\t\t\t    rule = void 0,\n\t\t\t\t    newDescriptor = void 0;\n\n\t\t\t\twhile (count < len) {\n\t\t\t\t\trule = opt.rules[count++];\n\t\t\t\t\tnewDescriptor = opt.as ? opt.as(env, descriptor) : opt.set ? {} : descriptor;\n\t\t\t\t\texec(rule, newDescriptor, env);\n\t\t\t\t\tif (env.error) {\n\t\t\t\t\t\tif (env.string.length === currentPosition) {\n\t\t\t\t\t\t\tenv.error = false;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else setDescriptor(descriptor, newDescriptor, opt.set, env);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!opt.optional) env.error = true;\n\t\t\t});\n\t\t}\n\n\t\t/**\n   * maybe match one element from string with one of provided rules\n   * @param  {Rule|Object} rules either a rule instance or an option object\n   * @return {Rule}          this rule handler\n   */\n\n\t}, {\n\t\tkey: 'maybeOneOf',\n\t\tvalue: function maybeOneOf(rules) {\n\t\t\tvar opt = typeof rules === 'string' || rules.__elenpi__ ? {\n\t\t\t\trules: [].slice.call(arguments)\n\t\t\t} : rules;\n\t\t\topt.optional = true;\n\t\t\treturn this.oneOf(opt);\n\t\t}\n\n\t\t/**\n   * match one element from string with provided rule\n   * @param  {Rule|Object} rule either a rule instance or an option object\n   * @return {Rule}          this rule handler\n   */\n\n\t}, {\n\t\tkey: 'one',\n\t\tvalue: function one(rule) {\n\t\t\tvar opt = typeof rule === 'string' || rule && rule.__elenpi__ ? {\n\t\t\t\trule: rule\n\t\t\t} : rule;\n\t\t\treturn this.done(function (env, descriptor) {\n\t\t\t\tif (!opt.optional && !env.string.length) {\n\t\t\t\t\tenv.error = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar newDescriptor = opt.as ? opt.as(env, descriptor) : opt.set ? {} : descriptor,\n\t\t\t\t    currentPosition = env.string.length;\n\n\t\t\t\texec(opt.rule, newDescriptor, env);\n\t\t\t\tif (!env.error) setDescriptor(descriptor, newDescriptor, opt.set, env);else if (opt.optional && env.string.length === currentPosition) env.error = false;\n\t\t\t});\n\t\t}\n\n\t\t/**\n   * maybe match one element from string with provided rule\n   * @param  {Rule|Object} rule either a rule instance or an option object\n   * @return {Rule}          this rule handler\n   */\n\n\t}, {\n\t\tkey: 'maybeOne',\n\t\tvalue: function maybeOne(rule) {\n\t\t\tvar opt = typeof rule === 'string' || rule && rule.__elenpi__ ? {\n\t\t\t\trule: rule\n\t\t\t} : rule;\n\t\t\topt.optional = true;\n\t\t\treturn this.one(opt);\n\t\t}\n\n\t\t/**\n   * skip current descriptor\n   * @return {Rule}          this rule handler\n   */\n\n\t}, {\n\t\tkey: 'skip',\n\t\tvalue: function skip() {\n\t\t\treturn this.done(function (env, descriptor) {\n\t\t\t\tdescriptor.skip = true;\n\t\t\t});\n\t\t}\n\n\t\t/**\n   * match a space (any spaces, or carriage returns, or new lines)\n   * @param  {Boolean} needed true if space is needed. false otherwise.\n   * @return {Rule}          this rule handler\n   */\n\n\t}, {\n\t\tkey: 'space',\n\t\tvalue: function space() {\n\t\t\tvar needed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t\t\treturn this.done(function (env) {\n\t\t\t\tif (!env.string.length) {\n\t\t\t\t\tif (needed) env.error = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar cap = (env.parser.rules.space || defaultSpaceRegExp).exec(env.string);\n\t\t\t\tif (cap) env.string = env.string.substring(cap[0].length);else if (needed) env.error = true;\n\t\t\t});\n\t\t}\n\n\t\t/**\n   * match the end of string\n   * @return {Rule}          this rule handler\n   */\n\n\t}, {\n\t\tkey: 'end',\n\t\tvalue: function end() {\n\t\t\treturn this.done(function (env) {\n\t\t\t\tif (env.string.length) env.error = true;\n\t\t\t});\n\t\t}\n\n\t\t/**\n   * force end parsing with error. Only aimed to be used in .oneOf().\n   * @param  {String} msg the error message.\n   * @return {Rule}          this rule handler\n   */\n\n\t}, {\n\t\tkey: 'error',\n\t\tvalue: function error(msg) {\n\t\t\treturn this.done(function (env) {\n\t\t\t\tenv.error = true;\n\t\t\t\tenv.errorMessage = msg;\n\t\t\t});\n\t\t}\n\t}]);\n\treturn Rule;\n}();\n\nfunction setDescriptor(descriptor, newDescriptor, set$$1, env) {\n\tif (!newDescriptor.skip && set$$1) if (typeof set$$1 === 'string') descriptor[set$$1] = newDescriptor;else set$$1(env, descriptor, newDescriptor);\n}\n\nvar r = {};\n\nObject.getOwnPropertyNames(Rule.prototype) // because Babel make prototype methods not enumerable\n.forEach(function (key) {\n\tif (typeof Rule.prototype[key] === 'function') r[key] = function () {\n\t\tvar rule = new Rule();\n\t\treturn rule[key].apply(rule, arguments);\n\t};\n});\n\n/**\n * Rule initializer object (all the Rul's API for starting rule's sentences)\n * @type {Object}\n * @public\n * @static\n */\nRule.initializer = r;\n\n/**\n * elenpi\n * @author Gilles Coomans\n */\n\n/**\n * elenpi export object { Rule, Parser }\n * @type {Object}\n * @public\n */\nvar elenpi = {\n  Rule: Rule,\n  Parser: Parser\n};\n\nexport default elenpi;\n//# sourceMappingURL=index.mjs.map\n","/** \n * @author Gilles Coomans <gilles.coomans@gmail.com>\n * Simple function call parser\n */\n\nlet elenpi = require('elenpi');\n\nelenpi = elenpi.default || elenpi;\n\nconst r = elenpi.Rule.initializer;\n\nconst rules = {\n\n\tdoublestring: r.terminal(/^\"((?:[^\"\\\\]|\\\\.)*)\"/, (env, descriptor, cap) => descriptor.arguments.push(cap[1])),\n\n\tsinglestring: r.terminal(/^'((?:[^'\\\\]|\\\\.)*)'/, (env, descriptor, cap) => descriptor.arguments.push(cap[1])),\n\n\ttemplatestring: r.terminal(/^`([^`]*)`/, (env, descriptor, cap) => descriptor.arguments.push(cap[1])),\n\n\tfloat: r.terminal(/^[0-9]*\\.[0-9]+/, (env, descriptor, cap) => descriptor.arguments.push(parseFloat(cap[0], 10))),\n\n\tinteger: r.terminal(/^[0-9]+/, (env, descriptor, cap) => descriptor.arguments.push(parseInt(cap[0], 10))),\n\n\tbool: r.terminal(/^(true|false)/, (env, descriptor, cap) => descriptor.arguments.push((cap[1] === 'true') ? true : false)),\n\n\tnull: r.terminal(/^null/, (env, obj) => obj.arguments.push(null)),\n\n\tundefined: r.terminal(/^undefined/, (env, obj) => obj.arguments.push(undefined)),\n\n\tNaN: r.terminal(/^NaN/, (env, obj) => obj.arguments.push(NaN)),\n\n\tInfinity: r.terminal(/^Infinity/, (env, obj) => obj.arguments.push(Infinity)),\n\t//_____________________________________\n\n\tcall: r\n\t\t.terminal(/^\\s*([\\w-_]+)\\s*/, (env, obj, cap) => {\n\t\t\tobj.method = cap[1]; \n\t\t\tobj.arguments = [];\n\t\t}) // method name\n\t\t.maybeOne(\n\t\t\tr.terminal(/^\\(\\s*/) // open parenthesis\n\t\t\t.zeroOrMore({ // arguments list\n\t\t\t\trule: r.oneOf('singlestring', 'doublestring', 'templatestring', 'null', 'undefined', 'NaN', 'Infinity', 'float', 'integer', 'bool'),\n\t\t\t\tseparator: r.terminal(/^\\s*,\\s*/)\n\t\t\t})\n\t\t\t.terminal(/^\\s*\\)\\s*/) // close parenthesis\n\t\t)\n};\n\nmodule.exports = new elenpi.Parser(rules, 'call');\n","/**\n * # AutoEvents\n *\n * Auto bind events on DOM nodes with methods from a controller.\n *\n */\n\n/* eslint curly:0, no-param-reassign:0 */\nimport functionCallParser from 'elenpi-simple-function-call-parser/src/index';\nconst debug  = require('debug');\nconst eventAttributeMatcher = /^data-ev-(\\w+)/i;\n\n\nconst autoEvents = {\n\tdevMode: false\n};\nfunction isAllowedMethod(name, ctrl) {\n\tif (!ctrl[name])\n\t\tthrow new Error('method not found on component : ', name);\n\treturn true;\n}\n\nfunction parseCallAndCheck(value, parsed, ctrl) {\n\tparsed = functionCallParser.parse(value);\n\tisAllowedMethod(parsed.method, ctrl);\n\treturn parsed;\n}\n\nfunction checkAttribute(node, ctrl, attrib) {\n\tconst matched = eventAttributeMatcher.exec(attrib.name);\n\tif (matched) {\n\t\tconst eventType = matched[1];\n\t\tlet parsed;\t\t\n\t\tdebug('bind event (%s) with : %s : on : ', eventType, attrib.value, ctrl);\n\t\tif (!parsed && autoEvents.devMode) // immediate parsing and check of events\n\t\t\tparsed = parseCallAndCheck(attrib.value, parsed, ctrl);\n\n\t\tnode.addEventListener(eventType, e => {\n\t\t\tif (!parsed && !autoEvents.devMode) // lazzy parsing and check of events \n\t\t\t\tparsed = parseCallAndCheck(attrib.value, parsed, ctrl);\n\t\t\t\t\n\t\t\tdebug('binded event : %s ! : ', eventType, parsed.method, parsed.arguments);\n\t\t\tctrl[parsed.method](e, ...parsed.arguments);\n\t\t});\n\t}\n}\n\nfunction bindEvents(node, ctrl) {\n\tif (typeof node === 'string')\n\t\tnode = document.querySelector(node);\n\t[].slice.call(node.attributes)\n\t\t.forEach(attrib => checkAttribute(node, ctrl, attrib));\n}\n\nautoEvents.bindEvents = bindEvents;\nautoEvents.install = function($ = window.$) {\n\t$.fn.autoEvents = function autoEvents(ctrl) {\n\t\tthis.get().forEach(node => bindEvents(node, ctrl));\n\t\treturn this;\n\t};\n};\n\nmodule.exports = autoEvents;\n"],"names":["classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","defineProperty","key","protoProps","staticProps","prototype","Parser","rules","defaultRule","getRule","name","r","Error","parse","string","rule","arguments","undefined","env","parser","lastPosition","exec","error","errorMessage","pos","posInFile","getPositionInFile","line","col","substring","Math","max","_queue","len","position","splitted","split","lineNumber","current","lineLength","defaultSpaceRegExp","Rule","__elenpi__","done","callback","push","use","terminal","reg","set$$1","startIndex","cap","char","test","xOrMore","opt","minimum","maximum","Infinity","pushTo","pushToString","As","as","separator","count","currentPosition","newDescriptor","restLength","skip","zeroOrMore","oneOrMore","oneOf","slice","call","optional","set","setDescriptor","maybeOneOf","one","maybeOne","space","needed","end","msg","Object","getOwnPropertyNames","forEach","apply","initializer","elenpi","require","default","parseFloat","parseInt","obj","NaN","method","module","debug","eventAttributeMatcher","autoEvents","isAllowedMethod","ctrl","parseCallAndCheck","value","parsed","functionCallParser","checkAttribute","node","attrib","matched","eventType","devMode","addEventListener","e","bindEvents","document","querySelector","attributes","install","$","window","fn","get","exports"],"mappings":"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"}