{"version":3,"file":"index.cjs","sources":["../lib/decode.js","../lib/parser.js"],"sourcesContent":["var fromCharCode = String.fromCharCode;\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar ENTITY_PATTERN = /&#(\\d+);|&#x([0-9a-f]+);|&(\\w+);/ig;\n\nvar ENTITY_MAPPING = {\n  'amp': '&',\n  'apos': '\\'',\n  'gt': '>',\n  'lt': '<',\n  'quot': '\"'\n};\n\n// map UPPERCASE variants of supported special chars\nObject.keys(ENTITY_MAPPING).forEach(function(k) {\n  ENTITY_MAPPING[k.toUpperCase()] = ENTITY_MAPPING[k];\n});\n\n\nfunction replaceEntities(_, d, x, z) {\n\n  // reserved names, i.e. &nbsp;\n  if (z) {\n    if (hasOwnProperty.call(ENTITY_MAPPING, z)) {\n      return ENTITY_MAPPING[z];\n    } else {\n\n      // fall back to original value\n      return '&' + z + ';';\n    }\n  }\n\n  // decimal encoded char\n  if (d) {\n    return fromCharCode(d);\n  }\n\n  // hex encoded char\n  return fromCharCode(parseInt(x, 16));\n}\n\n\n/**\n * A basic entity decoder that can decode a minimal\n * sub-set of reserved names (&amp;) as well as\n * hex (&#xaaf;) and decimal (&#1231;) encoded characters.\n *\n * @param {string} s\n *\n * @return {string} decoded string\n */\nexport default function decodeEntities(s) {\n  if (s.length > 3 && s.indexOf('&') !== -1) {\n    return s.replace(ENTITY_PATTERN, replaceEntities);\n  }\n\n  return s;\n}","import decodeEntities from './decode.js';\n\nvar NON_WHITESPACE_OUTSIDE_ROOT_NODE = 'non-whitespace outside of root node';\n\nfunction error(msg) {\n  return new Error(msg);\n}\n\nfunction missingNamespaceForPrefix(prefix) {\n  return 'missing namespace for prefix <' + prefix + '>';\n}\n\nfunction getter(getFn) {\n  return {\n    'get': getFn,\n    'enumerable': true\n  };\n}\n\nfunction cloneNsMatrix(nsMatrix) {\n  var clone = {}, key;\n  for (key in nsMatrix) {\n    clone[key] = nsMatrix[key];\n  }\n  return clone;\n}\n\nfunction uriPrefix(prefix) {\n  return prefix + '$uri';\n}\n\nfunction buildNsMatrix(nsUriToPrefix) {\n  var nsMatrix = {},\n      uri,\n      prefix;\n\n  for (uri in nsUriToPrefix) {\n    prefix = nsUriToPrefix[uri];\n    nsMatrix[prefix] = prefix;\n    nsMatrix[uriPrefix(prefix)] = uri;\n  }\n\n  return nsMatrix;\n}\n\nfunction noopGetContext() {\n  return { line: 0, column: 0 };\n}\n\nfunction throwFunc(err) {\n  throw err;\n}\n\n/**\n * Creates a new parser with the given options.\n *\n * @constructor\n *\n * @param  {!Object<string, ?>=} options\n */\nexport default function Parser(options) {\n\n  if (!this) {\n    return new Parser(options);\n  }\n\n  var proxy = options && options['proxy'];\n\n  var onText,\n      onOpenTag,\n      onCloseTag,\n      onCDATA,\n      onError = throwFunc,\n      onWarning,\n      onComment,\n      onQuestion,\n      onAttention;\n\n  var getContext = noopGetContext;\n\n  /**\n   * Do we need to parse the current elements attributes for namespaces?\n   *\n   * @type {boolean}\n   */\n  var maybeNS = false;\n\n  /**\n   * Do we process namespaces at all?\n   *\n   * @type {boolean}\n   */\n  var isNamespace = false;\n\n  /**\n   * The caught error returned on parse end\n   *\n   * @type {Error}\n   */\n  var returnError = null;\n\n  /**\n   * Should we stop parsing?\n   *\n   * @type {boolean}\n   */\n  var parseStop = false;\n\n  /**\n   * A map of { uri: prefix } used by the parser.\n   *\n   * This map will ensure we can normalize prefixes during processing;\n   * for each uri, only one prefix will be exposed to the handlers.\n   *\n   * @type {!Object<string, string>}}\n   */\n  var nsUriToPrefix;\n\n  /**\n   * Handle parse error.\n   *\n   * @param  {string|Error} err\n   */\n  function handleError(err) {\n    if (!(err instanceof Error)) {\n      err = error(err);\n    }\n\n    returnError = err;\n\n    onError(err, getContext);\n  }\n\n  /**\n   * Handle parse error.\n   *\n   * @param  {string|Error} err\n   */\n  function handleWarning(err) {\n\n    if (!onWarning) {\n      return;\n    }\n\n    if (!(err instanceof Error)) {\n      err = error(err);\n    }\n\n    onWarning(err, getContext);\n  }\n\n  /**\n   * Register parse listener.\n   *\n   * @param  {string}   name\n   * @param  {Function} cb\n   *\n   * @return {Parser}\n   */\n  this['on'] = function(name, cb) {\n\n    if (typeof cb !== 'function') {\n      throw error('required args <name, cb>');\n    }\n\n    switch (name) {\n    case 'openTag': onOpenTag = cb; break;\n    case 'text': onText = cb; break;\n    case 'closeTag': onCloseTag = cb; break;\n    case 'error': onError = cb; break;\n    case 'warn': onWarning = cb; break;\n    case 'cdata': onCDATA = cb; break;\n    case 'attention': onAttention = cb; break; // <!XXXXX zzzz=\"eeee\">\n    case 'question': onQuestion = cb; break; // <? ....  ?>\n    case 'comment': onComment = cb; break;\n    default:\n      throw error('unsupported event: ' + name);\n    }\n\n    return this;\n  };\n\n  /**\n   * Set the namespace to prefix mapping.\n   *\n   * @example\n   *\n   * parser.ns({\n   *   'http://foo': 'foo',\n   *   'http://bar': 'bar'\n   * });\n   *\n   * @param  {!Object<string, string>} nsMap\n   *\n   * @return {Parser}\n   */\n  this['ns'] = function(nsMap) {\n\n    if (typeof nsMap === 'undefined') {\n      nsMap = {};\n    }\n\n    if (typeof nsMap !== 'object') {\n      throw error('required args <nsMap={}>');\n    }\n\n    var _nsUriToPrefix = {}, k;\n\n    for (k in nsMap) {\n      _nsUriToPrefix[k] = nsMap[k];\n    }\n\n    isNamespace = true;\n    nsUriToPrefix = _nsUriToPrefix;\n\n    return this;\n  };\n\n  /**\n   * Parse xml string.\n   *\n   * @param  {string} xml\n   *\n   * @return {Error} returnError, if not thrown\n   */\n  this['parse'] = function(xml) {\n    if (typeof xml !== 'string') {\n      throw error('required args <xml=string>');\n    }\n\n    returnError = null;\n\n    parse(xml);\n\n    getContext = noopGetContext;\n    parseStop = false;\n\n    return returnError;\n  };\n\n  /**\n   * Stop parsing.\n   */\n  this['stop'] = function() {\n    parseStop = true;\n  };\n\n  /**\n   * Parse string, invoking configured listeners on element.\n   *\n   * @param  {string} xml\n   */\n  function parse(xml) {\n    var nsMatrixStack = isNamespace ? [] : null,\n        nsMatrix = isNamespace ? buildNsMatrix(nsUriToPrefix) : null,\n        _nsMatrix,\n        nodeStack = [],\n        anonymousNsCount = 0,\n        tagStart = false,\n        tagEnd = false,\n        i = 0, j = 0,\n        x, y, q, w, v,\n        xmlns,\n        elementName,\n        _elementName,\n        elementProxy\n        ;\n\n    var attrsString = '',\n        attrsStart = 0,\n        cachedAttrs // false = parsed with errors, null = needs parsing\n        ;\n\n    /**\n     * Parse attributes on demand and returns the parsed attributes.\n     *\n     * Return semantics: (1) `false` on attribute parse error,\n     * (2) object hash on extracted attrs.\n     *\n     * @return {boolean|Object}\n     */\n    function getAttrs() {\n      if (cachedAttrs !== null) {\n        return cachedAttrs;\n      }\n\n      var nsUri,\n          nsUriPrefix,\n          nsName,\n          defaultAlias = isNamespace && nsMatrix['xmlns'],\n          attrList = isNamespace && maybeNS ? [] : null,\n          i = attrsStart,\n          s = attrsString,\n          l = s.length,\n          hasNewMatrix,\n          newalias,\n          value,\n          alias,\n          name,\n          attrs = {},\n          seenAttrs = {},\n          skipAttr,\n          w,\n          j;\n\n      parseAttr:\n      for (; i < l; i++) {\n        skipAttr = false;\n        w = s.charCodeAt(i);\n\n        if (w === 32 || (w < 14 && w > 8)) { // WHITESPACE={ \\f\\n\\r\\t\\v}\n          continue;\n        }\n\n        // wait for non whitespace character\n        if (w < 65 || w > 122 || (w > 90 && w < 97)) {\n          if (w !== 95 && w !== 58) { // char 95\"_\" 58\":\"\n            handleWarning('illegal first char attribute name');\n            skipAttr = true;\n          }\n        }\n\n        // parse attribute name\n        for (j = i + 1; j < l; j++) {\n          w = s.charCodeAt(j);\n\n          if (\n            w > 96 && w < 123 ||\n            w > 64 && w < 91 ||\n            w > 47 && w < 59 ||\n            w === 46 || // '.'\n            w === 45 || // '-'\n            w === 95 // '_'\n          ) {\n            continue;\n          }\n\n          // unexpected whitespace\n          if (w === 32 || (w < 14 && w > 8)) { // WHITESPACE\n            handleWarning('missing attribute value');\n            i = j;\n\n            continue parseAttr;\n          }\n\n          // expected \"=\"\n          if (w === 61) { // \"=\" == 61\n            break;\n          }\n\n          handleWarning('illegal attribute name char');\n          skipAttr = true;\n        }\n\n        name = s.substring(i, j);\n\n        if (name === 'xmlns:xmlns') {\n          handleWarning('illegal declaration of xmlns');\n          skipAttr = true;\n        }\n\n        w = s.charCodeAt(j + 1);\n\n        if (w === 34) { // '\"'\n          j = s.indexOf('\"', i = j + 2);\n\n          if (j === -1) {\n            j = s.indexOf('\\'', i);\n\n            if (j !== -1) {\n              handleWarning('attribute value quote missmatch');\n              skipAttr = true;\n            }\n          }\n\n        } else if (w === 39) { // \"'\"\n          j = s.indexOf('\\'', i = j + 2);\n\n          if (j === -1) {\n            j = s.indexOf('\"', i);\n\n            if (j !== -1) {\n              handleWarning('attribute value quote missmatch');\n              skipAttr = true;\n            }\n          }\n\n        } else {\n          handleWarning('missing attribute value quotes');\n          skipAttr = true;\n\n          // skip to next space\n          for (j = j + 1; j < l; j++) {\n            w = s.charCodeAt(j + 1);\n\n            if (w === 32 || (w < 14 && w > 8)) { // WHITESPACE\n              break;\n            }\n          }\n\n        }\n\n        if (j === -1) {\n          handleWarning('missing closing quotes');\n\n          j = l;\n          skipAttr = true;\n        }\n\n        if (!skipAttr) {\n          value = s.substring(i, j);\n        }\n\n        i = j;\n\n        // ensure SPACE follows attribute\n        // skip illegal content otherwise\n        // example a=\"b\"c\n        for (; j + 1 < l; j++) {\n          w = s.charCodeAt(j + 1);\n\n          if (w === 32 || (w < 14 && w > 8)) { // WHITESPACE\n            break;\n          }\n\n          // FIRST ILLEGAL CHAR\n          if (i === j) {\n            handleWarning('illegal character after attribute end');\n            skipAttr = true;\n          }\n        }\n\n        // advance cursor to next attribute\n        i = j + 1;\n\n        if (skipAttr) {\n          continue parseAttr;\n        }\n\n        // check attribute re-declaration\n        if (name in seenAttrs) {\n          handleWarning('attribute <' + name + '> already defined');\n          continue;\n        }\n\n        seenAttrs[name] = true;\n\n        if (!isNamespace) {\n          attrs[name] = value;\n          continue;\n        }\n\n        // try to extract namespace information\n        if (maybeNS) {\n          newalias = (\n            name === 'xmlns'\n              ? 'xmlns'\n              : (name.charCodeAt(0) === 120 && name.substr(0, 6) === 'xmlns:')\n                ? name.substr(6)\n                : null\n          );\n\n          // handle xmlns(:alias) assignment\n          if (newalias !== null) {\n            nsUri = decodeEntities(value);\n            nsUriPrefix = uriPrefix(newalias);\n\n            alias = nsUriToPrefix[nsUri];\n\n            if (!alias) {\n\n              // no prefix defined or prefix collision\n              if (\n                (newalias === 'xmlns') ||\n                (nsUriPrefix in nsMatrix && nsMatrix[nsUriPrefix] !== nsUri)\n              ) {\n\n                // alocate free ns prefix\n                do {\n                  alias = 'ns' + (anonymousNsCount++);\n                } while (typeof nsMatrix[alias] !== 'undefined');\n              } else {\n                alias = newalias;\n              }\n\n              nsUriToPrefix[nsUri] = alias;\n            }\n\n            if (nsMatrix[newalias] !== alias) {\n              if (!hasNewMatrix) {\n                nsMatrix = cloneNsMatrix(nsMatrix);\n                hasNewMatrix = true;\n              }\n\n              nsMatrix[newalias] = alias;\n              if (newalias === 'xmlns') {\n                nsMatrix[uriPrefix(alias)] = nsUri;\n                defaultAlias = alias;\n              }\n\n              nsMatrix[nsUriPrefix] = nsUri;\n            }\n\n            // expose xmlns(:asd)=\"...\" in attributes\n            attrs[name] = value;\n            continue;\n          }\n\n          // collect attributes until all namespace\n          // declarations are processed\n          attrList.push(name, value);\n          continue;\n\n        } /** end if (maybeNs) */\n\n        // handle attributes on element without\n        // namespace declarations\n        w = name.indexOf(':');\n        if (w === -1) {\n          attrs[name] = value;\n          continue;\n        }\n\n        // normalize ns attribute name\n        if (!(nsName = nsMatrix[name.substring(0, w)])) {\n          handleWarning(missingNamespaceForPrefix(name.substring(0, w)));\n          continue;\n        }\n\n        name = defaultAlias === nsName\n          ? name.substr(w + 1)\n          : nsName + name.substr(w);\n\n        // end: normalize ns attribute name\n\n        attrs[name] = value;\n      }\n\n\n      // handle deferred, possibly namespaced attributes\n      if (maybeNS) {\n\n        // normalize captured attributes\n        for (i = 0, l = attrList.length; i < l; i++) {\n\n          name = attrList[i++];\n          value = attrList[i];\n\n          w = name.indexOf(':');\n\n          if (w !== -1) {\n\n            // normalize ns attribute name\n            if (!(nsName = nsMatrix[name.substring(0, w)])) {\n              handleWarning(missingNamespaceForPrefix(name.substring(0, w)));\n              continue;\n            }\n\n            name = defaultAlias === nsName\n              ? name.substr(w + 1)\n              : nsName + name.substr(w);\n\n            // end: normalize ns attribute name\n          }\n\n          attrs[name] = value;\n        }\n\n        // end: normalize captured attributes\n      }\n\n      return cachedAttrs = attrs;\n    }\n\n    /**\n     * Extract the parse context { line, column, part }\n     * from the current parser position.\n     *\n     * @return {Object} parse context\n     */\n    function getParseContext() {\n      var splitsRe = /(\\r\\n|\\r|\\n)/g;\n\n      var line = 0;\n      var column = 0;\n      var startOfLine = 0;\n      var endOfLine = j;\n      var match;\n      var data;\n\n      while (i >= startOfLine) {\n\n        match = splitsRe.exec(xml);\n\n        if (!match) {\n          break;\n        }\n\n        // end of line = (break idx + break chars)\n        endOfLine = match[0].length + match.index;\n\n        if (endOfLine > i) {\n          break;\n        }\n\n        // advance to next line\n        line += 1;\n\n        startOfLine = endOfLine;\n      }\n\n      // EOF errors\n      if (i == -1) {\n        column = endOfLine;\n        data = xml.substring(j);\n      } else\n\n      // start errors\n      if (j === 0) {\n        data = xml.substring(j, i);\n      }\n\n      // other errors\n      else {\n        column = i - startOfLine;\n        data = (j == -1 ? xml.substring(i) : xml.substring(i, j + 1));\n      }\n\n      return {\n        'data': data,\n        'line': line,\n        'column': column\n      };\n    }\n\n    getContext = getParseContext;\n\n\n    if (proxy) {\n      elementProxy = Object.create({}, {\n        'name': getter(function() {\n          return elementName;\n        }),\n        'originalName': getter(function() {\n          return _elementName;\n        }),\n        'attrs': getter(getAttrs),\n        'ns': getter(function() {\n          return nsMatrix;\n        })\n      });\n    }\n\n    // actual parse logic\n    while (j !== -1) {\n\n      if (xml.charCodeAt(j) === 60) { // \"<\"\n        i = j;\n      } else {\n        i = xml.indexOf('<', j);\n      }\n\n      // parse end\n      if (i === -1) {\n        if (nodeStack.length) {\n          return handleError('unexpected end of file');\n        }\n\n        if (j === 0) {\n          return handleError('missing start tag');\n        }\n\n        if (j < xml.length) {\n          if (xml.substring(j).trim()) {\n            handleWarning(NON_WHITESPACE_OUTSIDE_ROOT_NODE);\n          }\n        }\n\n        return;\n      }\n\n      // parse text\n      if (j !== i) {\n\n        if (nodeStack.length) {\n          if (onText) {\n            onText(xml.substring(j, i), decodeEntities, getContext);\n\n            if (parseStop) {\n              return;\n            }\n          }\n        } else {\n          if (xml.substring(j, i).trim()) {\n            handleWarning(NON_WHITESPACE_OUTSIDE_ROOT_NODE);\n\n            if (parseStop) {\n              return;\n            }\n          }\n        }\n      }\n\n      w = xml.charCodeAt(i + 1);\n\n      // parse comments + CDATA\n      if (w === 33) { // \"!\"\n        q = xml.charCodeAt(i + 2);\n\n        // CDATA section\n        if (q === 91 && xml.substr(i + 3, 6) === 'CDATA[') { // 91 == \"[\"\n          j = xml.indexOf(']]>', i);\n          if (j === -1) {\n            return handleError('unclosed cdata');\n          }\n\n          if (onCDATA) {\n            onCDATA(xml.substring(i + 9, j), getContext);\n            if (parseStop) {\n              return;\n            }\n          }\n\n          j += 3;\n          continue;\n        }\n\n        // comment\n        if (q === 45 && xml.charCodeAt(i + 3) === 45) { // 45 == \"-\"\n          j = xml.indexOf('-->', i);\n          if (j === -1) {\n            return handleError('unclosed comment');\n          }\n\n\n          if (onComment) {\n            onComment(xml.substring(i + 4, j), decodeEntities, getContext);\n            if (parseStop) {\n              return;\n            }\n          }\n\n          j += 3;\n          continue;\n        }\n      }\n\n      // parse question <? ... ?>\n      if (w === 63) { // \"?\"\n        j = xml.indexOf('?>', i);\n        if (j === -1) {\n          return handleError('unclosed question');\n        }\n\n        if (onQuestion) {\n          onQuestion(xml.substring(i, j + 2), getContext);\n          if (parseStop) {\n            return;\n          }\n        }\n\n        j += 2;\n        continue;\n      }\n\n      // find matching closing tag for attention or standard tags\n      // for that we must skip through attribute values\n      // (enclosed in single or double quotes)\n      for (x = i + 1; ; x++) {\n        v = xml.charCodeAt(x);\n        if (isNaN(v)) {\n          j = -1;\n          return handleError('unclosed tag');\n        }\n\n        // [10] AttValue ::= '\"' ([^<&\"] | Reference)* '\"' | \"'\" ([^<&'] | Reference)* \"'\"\n        // skips the quoted string\n        // (double quotes) does not appear in a literal enclosed by (double quotes)\n        // (single quote) does not appear in a literal enclosed by (single quote)\n        if (v === 34) { //  '\"'\n          q = xml.indexOf('\"', x + 1);\n          x = q !== -1 ? q : x;\n        } else if (v === 39) { // \"'\"\n          q = xml.indexOf(\"'\", x + 1);\n          x = q !== -1 ? q : x;\n        } else if (v === 62) { // '>'\n          j = x;\n          break;\n        }\n      }\n\n\n      // parse attention <! ...>\n      // previously comment and CDATA have already been parsed\n      if (w === 33) { // \"!\"\n\n        if (onAttention) {\n          onAttention(xml.substring(i, j + 1), decodeEntities, getContext);\n          if (parseStop) {\n            return;\n          }\n        }\n\n        j += 1;\n        continue;\n      }\n\n      // don't process attributes;\n      // there are none\n      cachedAttrs = {};\n\n      // if (xml.charCodeAt(i+1) === 47) { // </...\n      if (w === 47) { // </...\n        tagStart = false;\n        tagEnd = true;\n\n        if (!nodeStack.length) {\n          return handleError('missing open tag');\n        }\n\n        // verify open <-> close tag match\n        x = elementName = nodeStack.pop();\n        q = i + 2 + x.length;\n\n        if (xml.substring(i + 2, q) !== x) {\n          return handleError('closing tag mismatch');\n        }\n\n        // verify chars in close tag\n        for (; q < j; q++) {\n          w = xml.charCodeAt(q);\n\n          if (w === 32 || (w > 8 && w < 14)) { // \\f\\n\\r\\t\\v space\n            continue;\n          }\n\n          return handleError('close tag');\n        }\n\n      } else {\n        if (xml.charCodeAt(j - 1) === 47) { // .../>\n          x = elementName = xml.substring(i + 1, j - 1);\n\n          tagStart = true;\n          tagEnd = true;\n\n        } else {\n          x = elementName = xml.substring(i + 1, j);\n\n          tagStart = true;\n          tagEnd = false;\n        }\n\n        if (!(w > 96 && w < 123 || w > 64 && w < 91 || w === 95 || w === 58)) { // char 95\"_\" 58\":\"\n          return handleError('illegal first char nodeName');\n        }\n\n        for (q = 1, y = x.length; q < y; q++) {\n          w = x.charCodeAt(q);\n\n          if (w > 96 && w < 123 || w > 64 && w < 91 || w > 47 && w < 59 || w === 45 || w === 95 || w == 46) {\n            continue;\n          }\n\n          if (w === 32 || (w < 14 && w > 8)) { // \\f\\n\\r\\t\\v space\n            elementName = x.substring(0, q);\n\n            // maybe there are attributes\n            cachedAttrs = null;\n            break;\n          }\n\n          return handleError('invalid nodeName');\n        }\n\n        if (!tagEnd) {\n          nodeStack.push(elementName);\n        }\n      }\n\n      if (isNamespace) {\n\n        _nsMatrix = nsMatrix;\n\n        if (tagStart) {\n\n          // remember old namespace\n          // unless we're self-closing\n          if (!tagEnd) {\n            nsMatrixStack.push(_nsMatrix);\n          }\n\n          if (cachedAttrs === null) {\n\n            // quick check, whether there may be namespace\n            // declarations on the node; if that is the case\n            // we need to eagerly parse the node attributes\n            if ((maybeNS = x.indexOf('xmlns', q) !== -1)) {\n              attrsStart = q;\n              attrsString = x;\n\n              getAttrs();\n\n              maybeNS = false;\n            }\n          }\n        }\n\n        _elementName = elementName;\n\n        w = elementName.indexOf(':');\n        if (w !== -1) {\n          xmlns = nsMatrix[elementName.substring(0, w)];\n\n          // prefix given; namespace must exist\n          if (!xmlns) {\n            return handleError('missing namespace on <' + _elementName + '>');\n          }\n\n          elementName = elementName.substr(w + 1);\n        } else {\n          xmlns = nsMatrix['xmlns'];\n\n          // if no default namespace is defined,\n          // we'll import the element as anonymous.\n          //\n          // it is up to users to correct that to the document defined\n          // targetNamespace, or whatever their undersanding of the\n          // XML spec mandates.\n        }\n\n        // adjust namespace prefixs as configured\n        if (xmlns) {\n          elementName = xmlns + ':' + elementName;\n        }\n\n      }\n\n      if (tagStart) {\n        attrsStart = q;\n        attrsString = x;\n\n        if (onOpenTag) {\n          if (proxy) {\n            onOpenTag(elementProxy, decodeEntities, tagEnd, getContext);\n          } else {\n            onOpenTag(elementName, getAttrs, decodeEntities, tagEnd, getContext);\n          }\n\n          if (parseStop) {\n            return;\n          }\n        }\n\n      }\n\n      if (tagEnd) {\n\n        if (onCloseTag) {\n          onCloseTag(proxy ? elementProxy : elementName, decodeEntities, tagStart, getContext);\n\n          if (parseStop) {\n            return;\n          }\n        }\n\n        // restore old namespace\n        if (isNamespace) {\n          if (!tagStart) {\n            nsMatrix = nsMatrixStack.pop();\n          } else {\n            nsMatrix = _nsMatrix;\n          }\n        }\n      }\n\n      j += 1;\n    }\n  } /** end parse */\n\n}"],"names":[],"mappings":"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"}