{"version":3,"sources":["https://lively-kernel.org/lively4/composed-offset/src/external/ansi-to-html.js"],"names":["updateStickyStack","tokenize","closeTag","pushBackgroundColor","pushForegroundColor","pushStyle","pushTag","pushText","categoryForCode","notCategory","range","resetStyles","handleDisplay","generateOutput","toColorHexString","toHexString","setStyleColor","getDefaultColors","defaults","fg","bg","newline","escapeXML","stream","colors","forEach","red","green","blue","gray","c","l","r","g","b","num","str","toString","length","ref","results","j","len","push","join","stack","token","data","options","result","code","parseInt","codeMap","stackClone","slice","reverse","map","tag","low","high","category","e","text","style","color","last","pop","callback","ansiMatch","ansiHandler","remove","removeXterm256","m","g1","ansiMess","trim","trimRight","split","o","realText","tokens","pattern","sub","process","handler","i","replace","results1","outer","stickyStack","filter","Filter","constructor","Object","assign","opts","toHtml","input","buf","element","output"],"mappings":"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","file":"ansi-to-html.js","sourcesContent":["const defaults = {\n    fg: '#FFF',\n    bg: '#000',\n    newline: false,\n    escapeXML: false,\n    stream: false,\n    colors: getDefaultColors()\n};\n\nfunction getDefaultColors() {\n    const colors = {\n        0: '#000',\n        1: '#A00',\n        2: '#0A0',\n        3: '#A50',\n        4: '#00A',\n        5: '#A0A',\n        6: '#0AA',\n        7: '#AAA',\n        8: '#555',\n        9: '#F55',\n        10: '#5F5',\n        11: '#FF5',\n        12: '#55F',\n        13: '#F5F',\n        14: '#5FF',\n        15: '#FFF'\n    };\n\n    range(0, 5).forEach(red => {\n        range(0, 5).forEach(green => {\n            range(0, 5).forEach(blue => setStyleColor(red, green, blue, colors));\n        });\n    });\n\n    range(0, 23).forEach(function (gray) {\n        const c = gray + 232;\n        const l = toHexString(gray * 10 + 8);\n\n        colors[c] = '#' + l + l + l;\n    });\n\n    return colors;\n}\n\n/**\n * @param {number} red\n * @param {number} green\n * @param {number} blue\n * @param {object} colors\n */\nfunction setStyleColor(red, green, blue, colors) {\n    const c = 16 + (red * 36) + (green * 6) + blue;\n    const r = red > 0 ? red * 40 + 55 : 0;\n    const g = green > 0 ? green * 40 + 55 : 0;\n    const b = blue > 0 ? blue * 40 + 55 : 0;\n\n    colors[c] = toColorHexString([r, g, b]);\n}\n\n/**\n * Converts from a number like 15 to a hex string like 'F'\n * @param {number} num\n * @returns {string}\n */\nfunction toHexString(num) {\n    var str = num.toString(16);\n\n    while (str.length < 2) {\n        str = '0' + str;\n    }\n\n    return str;\n}\n\n/**\n * Converts from an array of numbers like [15, 15, 15] to a hex string like 'FFF'\n * @param {[red, green, blue]} ref\n * @returns {string}\n */\nfunction toColorHexString(ref) {\n    var results = [];\n\n    for (var j = 0, len = ref.length; j < len; j++) {\n        results.push(toHexString(ref[j]));\n    }\n\n    return '#' + results.join('');\n}\n\n/**\n * @param {Array} stack\n * @param {string} token\n * @param {*} data\n * @param {object} options\n */\nfunction generateOutput(stack, token, data, options) {\n    var result;\n\n    if (token === 'text') {\n        result = pushText(data, options);\n    } else if (token === 'display') {\n        result = handleDisplay(stack, data, options);\n    } else if (token === 'xterm256') {\n        result = pushForegroundColor(stack, options.colors[data]);\n    }\n\n    return result;\n}\n\n/**\n * @param {Array} stack\n * @param {number} code\n * @param {object} options\n * @returns {*}\n */\nfunction handleDisplay(stack, code, options) {\n    code = parseInt(code, 10);\n    var result;\n\n    const codeMap = {\n        '-1': () => '<br/>',\n        0: () => stack.length && resetStyles(stack),\n        1: () => pushTag(stack, 'b'),\n        3: () => pushTag(stack, 'i'),\n        4: () => pushTag(stack, 'u'),\n        8: () => pushStyle(stack, 'display:none'),\n        9: () => pushTag(stack, 'strike'),\n        22: () => closeTag(stack, 'b'),\n        23: () => closeTag(stack, 'i'),\n        24: () => closeTag(stack, 'u'),\n        39: () => pushForegroundColor(stack, options.fg),\n        49: () => pushBackgroundColor(stack, options.bg)\n    };\n\n    if (codeMap[code]) {\n        result = codeMap[code]();\n    } else if (4 < code && code < 7) {\n        result = pushTag(stack, 'blink');\n    } else if (29 < code && code < 38) {\n        result = pushForegroundColor(stack, options.colors[code - 30]);\n    } else if ((39 < code && code < 48)) {\n        result = pushBackgroundColor(stack, options.colors[code - 40]);\n    } else if ((89 < code && code < 98)) {\n        result = pushForegroundColor(stack, options.colors[8 + (code - 90)]);\n    } else if ((99 < code && code < 108)) {\n        result = pushBackgroundColor(stack, options.colors[8 + (code - 100)]);\n    }\n\n    return result;\n}\n\n/**\n * Clear all the styles\n * @returns {string}\n */\nfunction resetStyles(stack) {\n    var stackClone = stack.slice(0);\n\n    stack.length = 0;\n\n    return stackClone.reverse().map(function (tag) {\n        return '</' + tag + '>';\n    }).join('');\n}\n\n/**\n * Creates an array of numbers ranging from low to high\n * @param {number} low\n * @param {number} high\n * @returns {Array}\n * @example range(3, 7); // creates [3, 4, 5, 6, 7]\n */\nfunction range(low, high) {\n    const results = [];\n\n    for (var j = low; j <= high; j++) {\n        results.push(j);\n    }\n\n    return results;\n}\n\n\n\n/**\n * Returns a new function that is true if value is NOT the same category\n * @param {string} category\n * @returns {function}\n */\nfunction notCategory(category) {\n    return function (e) {\n        return (category === null || e.category !== category) && category !== 'all';\n    };\n}\n\n/**\n * Converts a code into an ansi token type\n * @param {number} code\n * @returns {string}\n */\nfunction categoryForCode(code) {\n    code = parseInt(code, 10);\n    var result = null;\n\n    if (code === 0) {\n        result = 'all';\n    } else if (code === 1) {\n        result = 'bold';\n    } else if ((2 < code && code < 5)) {\n        result = 'underline';\n    } else if ((4 < code && code < 7)) {\n        result = 'blink';\n    } else if (code === 8) {\n        result = 'hide';\n    } else if (code === 9) {\n        result = 'strike';\n    } else if ((29 < code && code < 38) || code === 39 || (89 < code && code < 98)) {\n        result = 'foreground-color';\n    } else if ((39 < code && code < 48) || code === 49 || (99 < code && code < 108)) {\n        result = 'background-color';\n    }\n\n    return result;\n}\n\n/**\n * @param {string} text\n * @param {object} options\n * @returns {string}\n */\nfunction pushText(text, options) {\n  return text;\n}\n\n/**\n * @param {Array} stack\n * @param {string} tag\n * @param {string} [style='']\n * @returns {string}\n */\nfunction pushTag(stack, tag, style) {\n    if (!style) {\n        style = '';\n    }\n\n    stack.push(tag);\n\n    return ['<' + tag, (style ? ' style=\"' + style + '\"' : void 0), '>'].join('');\n}\n\n/**\n * @param {Array} stack\n * @param {string} style\n * @returns {string}\n */\nfunction pushStyle (stack, style) {\n    return pushTag(stack, 'span', style);\n}\n\nfunction pushForegroundColor(stack, color) {\n    return pushTag(stack, 'span', 'color:' + color);\n}\n\nfunction pushBackgroundColor(stack, color) {\n    return pushTag(stack, 'span', 'background-color:' + color);\n}\n\n/**\n * @param {Array} stack\n * @param {string} style\n * @returns {string}\n */\nfunction closeTag(stack, style) {\n    var last;\n\n    if (stack.slice(-1)[0] === style) {\n        last = stack.pop();\n    }\n\n    if (last) {\n        return '</' + style + '>';\n    }\n}\n\n/**\n * @param {string} text\n * @param {object} options\n * @param {function} callback\n * @returns {Array}\n */\nfunction tokenize(text, options, callback) {\n    var ansiMatch = false;\n    var ansiHandler = 3;\n\n    function remove() {\n        return '';\n    }\n\n    function removeXterm256(m, g1) {\n        callback('xterm256', g1);\n        return '';\n    }\n\n    function newline(m) {\n        if (options.newline) {\n            callback('display', -1);\n        } else {\n            callback('text', m);\n        }\n\n        return '';\n    }\n\n    function ansiMess(m, g1) {\n        ansiMatch = true;\n        if (g1.trim().length === 0) {\n            g1 = '0';\n        }\n\n        g1 = g1.trimRight(';').split(';');\n\n        for (var o = 0, len = g1.length; o < len; o++) {\n            callback('display', g1[o]);\n        }\n\n        return '';\n    }\n\n    function realText(m) {\n        callback('text', m);\n\n        return '';\n    }\n\n    /* eslint no-control-regex:0 */\n    const tokens = [{\n        pattern: /^\\x08+/,\n        sub: remove\n    }, {\n        pattern: /^\\x1b\\[[012]?K/,\n        sub: remove\n    }, {\n        pattern: /^\\x1b\\[\\(B/,\n        sub: remove\n    }, {\n        pattern: /^\\x1b\\[38;5;(\\d+)m/,\n        sub: removeXterm256\n    }, {\n        pattern: /^\\n/,\n        sub: newline\n    }, {\n        pattern: /^\\x1b\\[((?:\\d{1,3};?)+|)m/,\n        sub: ansiMess\n    }, {\n        pattern: /^\\x1b\\[?[\\d;]{0,3}/,\n        sub: remove\n    }, {\n        pattern: /^([^\\x1b\\x08\\n]+)/,\n        sub: realText\n    }];\n\n    function process(handler, i) {\n        if (i > ansiHandler && ansiMatch) {\n            return;\n        }\n\n        ansiMatch = false;\n\n        text = text.replace(handler.pattern, handler.sub);\n    }\n\n    var handler;\n    var results1 = [];\n    var length = text.length;\n\n    outer:\n    while (length > 0) {\n        for (var i = 0, o = 0, len = tokens.length; o < len; i = ++o) {\n            handler = tokens[i];\n            process(handler, i);\n\n            if (text.length !== length) {\n                // We matched a token and removed it from the text. We need to\n                // start matching *all* tokens against the new text.\n                length = text.length;\n                continue outer;\n            }\n        }\n\n        if (text.length === length) {\n            break;\n        } else {\n            results1.push(0);\n        }\n\n        length = text.length;\n    }\n\n    return results1;\n}\n\n/**\n * If streaming, then the stack is \"sticky\"\n *\n * @param {Array} stickyStack\n * @param {string} token\n * @param {*} data\n * @returns {Array}\n */\nfunction updateStickyStack(stickyStack, token, data) {\n    if (token !== 'text') {\n        stickyStack = stickyStack.filter(notCategory(categoryForCode(data)));\n        stickyStack.push({token: token, data: data, category: categoryForCode(data)});\n    }\n\n    return stickyStack;\n}\n\nexport default class Filter {\n  \n  constructor(options) {\n    options = options || {};\n\n    if (options.colors) {\n        options.colors = Object.assign({}, defaults.colors, options.colors);\n    }\n\n    this.opts = Object.assign({}, defaults, options);\n    this.stack = [];\n    this.stickyStack = [];\n  }\n  toHtml (input) {\n        input = typeof input === 'string' ? [input] : input;\n        const stack = this.stack;\n        const options = this.opts;\n        const buf = [];\n\n        this.stickyStack.forEach(element => {\n            var output = generateOutput(stack, element.token, element.data, options);\n\n            if (output) {\n                buf.push(output);\n            }\n        });\n\n        tokenize(input.join(''), options, (token, data) => {\n            var output = generateOutput(stack, token, data, options);\n\n            if (output) {\n                buf.push(output);\n            }\n\n            if (options.stream) {\n                this.stickyStack = updateStickyStack(this.stickyStack, token, data);\n            }\n        });\n\n        if (stack.length) {\n            buf.push(resetStyles(stack));\n        }\n\n        return buf.join('');\n    }\n}\n\n"]}