{"version":3,"file":"static/npm.micromark-extension-gfm-table.e35a6b86.js","mappings":"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","sources":["../node_modules/micromark-extension-gfm-table/index.js","../node_modules/micromark-extension-gfm-table/syntax.js"],"sourcesContent":["module.exports = require('./syntax')\n","exports.flow = {\n null: {tokenize: tokenizeTable, resolve: resolveTable, interruptible: true}\n}\n\nvar createSpace = require('micromark/dist/tokenize/factory-space')\n\nvar setextUnderlineMini = {tokenize: tokenizeSetextUnderlineMini, partial: true}\nvar nextPrefixedOrBlank = {tokenize: tokenizeNextPrefixedOrBlank, partial: true}\n\nfunction resolveTable(events, context) {\n var length = events.length\n var index = -1\n var token\n var inHead\n var inDelimiterRow\n var inRow\n var cell\n var content\n var text\n var contentStart\n var contentEnd\n var cellStart\n\n while (++index < length) {\n token = events[index][1]\n\n if (inRow) {\n if (token.type === 'temporaryTableCellContent') {\n contentStart = contentStart || index\n contentEnd = index\n }\n\n if (\n // Combine separate content parts into one.\n (token.type === 'tableCellDivider' || token.type === 'tableRow') &&\n contentEnd\n ) {\n content = {\n type: 'tableContent',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: content.start,\n end: content.end,\n contentType: 'text'\n }\n\n events.splice(\n contentStart,\n contentEnd - contentStart + 1,\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n )\n index -= contentEnd - contentStart - 3\n length = events.length\n contentStart = undefined\n contentEnd = undefined\n }\n }\n\n if (\n events[index][0] === 'exit' &&\n cellStart &&\n cellStart + 1 < index &&\n (token.type === 'tableCellDivider' ||\n (token.type === 'tableRow' &&\n (cellStart + 3 < index ||\n events[cellStart][1].type !== 'whitespace')))\n ) {\n cell = {\n type: inDelimiterRow\n ? 'tableDelimiter'\n : inHead\n ? 'tableHeader'\n : 'tableData',\n start: events[cellStart][1].start,\n end: events[index][1].end\n }\n events.splice(index + (token.type === 'tableCellDivider' ? 1 : 0), 0, [\n 'exit',\n cell,\n context\n ])\n events.splice(cellStart, 0, ['enter', cell, context])\n index += 2\n length = events.length\n cellStart = index + 1\n }\n\n if (token.type === 'tableRow') {\n inRow = events[index][0] === 'enter'\n\n if (inRow) {\n cellStart = index + 1\n }\n }\n\n if (token.type === 'tableDelimiterRow') {\n inDelimiterRow = events[index][0] === 'enter'\n\n if (inDelimiterRow) {\n cellStart = index + 1\n }\n }\n\n if (token.type === 'tableHead') {\n inHead = events[index][0] === 'enter'\n }\n }\n\n return events\n}\n\nfunction tokenizeTable(effects, ok, nok) {\n var align = []\n var tableHeaderCount = 0\n var seenDelimiter\n var hasDash\n\n return start\n\n function start(code) {\n /* istanbul ignore if - used to be passed in beta micromark versions. */\n if (code === null || code === -5 || code === -4 || code === -3) {\n return nok(code)\n }\n\n effects.enter('table')._align = align\n effects.enter('tableHead')\n effects.enter('tableRow')\n\n // If we start with a pipe, we open a cell marker.\n if (code === 124) {\n return cellDividerHead(code)\n }\n\n tableHeaderCount++\n effects.enter('temporaryTableCellContent')\n // Can’t be space or eols at the start of a construct, so we’re in a cell.\n return inCellContentHead(code)\n }\n\n function cellDividerHead(code) {\n // Always a pipe.\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n seenDelimiter = true\n return cellBreakHead\n }\n\n function cellBreakHead(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return atRowEndHead(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceHead\n }\n\n if (seenDelimiter) {\n seenDelimiter = undefined\n tableHeaderCount++\n }\n\n // `|`\n if (code === 124) {\n return cellDividerHead(code)\n }\n\n // Anything else is cell content.\n effects.enter('temporaryTableCellContent')\n return inCellContentHead(code)\n }\n\n function inWhitespaceHead(code) {\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return inWhitespaceHead\n }\n\n effects.exit('whitespace')\n return cellBreakHead(code)\n }\n\n function inCellContentHead(code) {\n // EOF, whitespace, pipe\n if (code === null || code < 0 || code === 32 || code === 124) {\n effects.exit('temporaryTableCellContent')\n return cellBreakHead(code)\n }\n\n effects.consume(code)\n // `\\`\n return code === 92 ? inCellContentEscapeHead : inCellContentHead\n }\n\n function inCellContentEscapeHead(code) {\n // `\\` or `|`\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentHead\n }\n\n // Anything else.\n return inCellContentHead(code)\n }\n\n function atRowEndHead(code) {\n if (code === null) {\n return nok(code)\n }\n\n effects.exit('tableRow')\n effects.exit('tableHead')\n\n // Always a line ending.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n\n // If a setext heading, exit.\n return effects.check(\n setextUnderlineMini,\n nok,\n // Support an indent before the delimiter row.\n createSpace(effects, rowStartDelimiter, 'linePrefix', 4)\n )\n }\n\n function rowStartDelimiter(code) {\n // If there’s another space, or we’re at the EOL/EOF, exit.\n if (code === null || code < 0 || code === 32) {\n return nok(code)\n }\n\n effects.enter('tableDelimiterRow')\n return atDelimiterRowBreak(code)\n }\n\n function atDelimiterRowBreak(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return rowEndDelimiter(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n // `-`\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n align.push(null)\n return inFillerDelimiter\n }\n\n // `:`\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n align.push('left')\n return afterLeftAlignment\n }\n\n // If we start with a pipe, we open a cell marker.\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return atDelimiterRowBreak\n }\n\n return nok(code)\n }\n\n function inWhitespaceDelimiter(code) {\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n effects.exit('whitespace')\n return atDelimiterRowBreak(code)\n }\n\n function inFillerDelimiter(code) {\n // `-`\n if (code === 45) {\n effects.consume(code)\n return inFillerDelimiter\n }\n\n effects.exit('tableDelimiterFiller')\n\n // `:`\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n\n align[align.length - 1] =\n align[align.length - 1] === 'left' ? 'center' : 'right'\n\n return afterRightAlignment\n }\n\n return atDelimiterRowBreak(code)\n }\n\n function afterLeftAlignment(code) {\n // `-`\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n return inFillerDelimiter\n }\n\n // Anything else is not ok.\n return nok(code)\n }\n\n function afterRightAlignment(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return rowEndDelimiter(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n // `|`\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return atDelimiterRowBreak\n }\n\n return nok(code)\n }\n\n function rowEndDelimiter(code) {\n effects.exit('tableDelimiterRow')\n\n // Exit if there was no dash at all, or if the header cell count is not the\n // delimiter cell count.\n if (!hasDash || tableHeaderCount !== align.length) {\n return nok(code)\n }\n\n if (code === null) {\n return tableClose(code)\n }\n\n return effects.check(nextPrefixedOrBlank, tableClose, tableContinue)(code)\n }\n\n function tableClose(code) {\n effects.exit('table')\n return ok(code)\n }\n\n function tableContinue(code) {\n // Always a line ending.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n // We checked that it’s not a prefixed or blank line, so we’re certain a\n // body is coming, though it may be indented.\n return createSpace(effects, bodyStart, 'linePrefix', 4)\n }\n\n function bodyStart(code) {\n effects.enter('tableBody')\n return rowStartBody(code)\n }\n\n function rowStartBody(code) {\n effects.enter('tableRow')\n\n // If we start with a pipe, we open a cell marker.\n if (code === 124) {\n return cellDividerBody(code)\n }\n\n effects.enter('temporaryTableCellContent')\n // Can’t be space or eols at the start of a construct, so we’re in a cell.\n return inCellContentBody(code)\n }\n\n function cellDividerBody(code) {\n // Always a pipe.\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return cellBreakBody\n }\n\n function cellBreakBody(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return atRowEndBody(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceBody\n }\n\n // `|`\n if (code === 124) {\n return cellDividerBody(code)\n }\n\n // Anything else is cell content.\n effects.enter('temporaryTableCellContent')\n return inCellContentBody(code)\n }\n\n function inWhitespaceBody(code) {\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return inWhitespaceBody\n }\n\n effects.exit('whitespace')\n return cellBreakBody(code)\n }\n\n function inCellContentBody(code) {\n // EOF, whitespace, pipe\n if (code === null || code < 0 || code === 32 || code === 124) {\n effects.exit('temporaryTableCellContent')\n return cellBreakBody(code)\n }\n\n effects.consume(code)\n // `\\`\n return code === 92 ? inCellContentEscapeBody : inCellContentBody\n }\n\n function inCellContentEscapeBody(code) {\n // `\\` or `|`\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentBody\n }\n\n // Anything else.\n return inCellContentBody(code)\n }\n\n function atRowEndBody(code) {\n effects.exit('tableRow')\n\n if (code === null) {\n return tableBodyClose(code)\n }\n\n return effects.check(\n nextPrefixedOrBlank,\n tableBodyClose,\n tableBodyContinue\n )(code)\n }\n\n function tableBodyClose(code) {\n effects.exit('tableBody')\n return tableClose(code)\n }\n\n function tableBodyContinue(code) {\n // Always a line ending.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n // Support an optional prefix, then start a body row.\n return createSpace(effects, rowStartBody, 'linePrefix', 4)\n }\n}\n\n// Based on micromark, but that won’t work as we’re in a table, and that expects\n// content.\n// \nfunction tokenizeSetextUnderlineMini(effects, ok, nok) {\n return start\n\n function start(code) {\n // `-`\n if (code !== 45) {\n return nok(code)\n }\n\n effects.enter('setextUnderline')\n return sequence(code)\n }\n\n function sequence(code) {\n if (code === 45) {\n effects.consume(code)\n return sequence\n }\n\n return whitespace(code)\n }\n\n function whitespace(code) {\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return whitespace\n }\n\n if (code === null || code === -5 || code === -4 || code === -3) {\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeNextPrefixedOrBlank(effects, ok, nok) {\n var size = 0\n\n return start\n\n function start(code) {\n // This is a check, so we don’t care about tokens, but we open a bogus one\n // so we’re valid.\n effects.enter('check')\n // EOL.\n effects.consume(code)\n return whitespace\n }\n\n function whitespace(code) {\n // VS or SP.\n if (code === -1 || code === 32) {\n effects.consume(code)\n size++\n return size === 4 ? ok : whitespace\n }\n\n // EOF or whitespace\n if (code === null || code < 0) {\n return ok(code)\n }\n\n // Anything else.\n return nok(code)\n }\n}\n"],"names":["module","exports","flow","null","tokenize","effects","ok","nok","seenDelimiter","hasDash","align","tableHeaderCount","code","enter","_align","cellDividerHead","inCellContentHead","consume","exit","cellBreakHead","check","setextUnderlineMini","createSpace","rowStartDelimiter","atRowEndHead","inWhitespaceHead","undefined","inCellContentEscapeHead","atDelimiterRowBreak","rowEndDelimiter","inWhitespaceDelimiter","push","inFillerDelimiter","afterLeftAlignment","length","afterRightAlignment","tableClose","nextPrefixedOrBlank","tableContinue","bodyStart","rowStartBody","cellDividerBody","inCellContentBody","cellBreakBody","tableBodyClose","tableBodyContinue","atRowEndBody","inWhitespaceBody","inCellContentEscapeBody","resolve","events","context","token","inHead","inDelimiterRow","inRow","cell","content","text","contentStart","contentEnd","cellStart","index","type","start","end","contentType","splice","interruptible","require","sequence","whitespace","partial","size"],"sourceRoot":""}