diff2html/dist/diff2html.min.js

2 lines
40 KiB
JavaScript
Raw Normal View History

!function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){(function(global){!function(){function Diff2Html(){}var diffParser=__webpack_require__(1).DiffParser,fileLister=__webpack_require__(3).FileListPrinter,htmlPrinter=__webpack_require__(20).HtmlPrinter;Diff2Html.prototype.getJsonFromDiff=function(diffInput){return diffParser.generateDiffJson(diffInput)},Diff2Html.prototype.getPrettyHtml=function(diffInput,config){var configOrEmpty=config||{},diffJson=diffInput;configOrEmpty.inputFormat&&"diff"!==configOrEmpty.inputFormat||(diffJson=diffParser.generateDiffJson(diffInput));var fileList="";configOrEmpty.showFiles===!0&&(fileList=fileLister.generateFileList(diffJson,configOrEmpty));var diffOutput="";return diffOutput="side-by-side"===configOrEmpty.outputFormat?htmlPrinter.generateSideBySideJsonHtml(diffJson,configOrEmpty):htmlPrinter.generateLineByLineJsonHtml(diffJson,configOrEmpty),fileList+diffOutput},Diff2Html.prototype.getPrettyHtmlFromDiff=function(diffInput,config){var configOrEmpty=config||{};return configOrEmpty.inputFormat="diff",configOrEmpty.outputFormat="line-by-line",this.getPrettyHtml(diffInput,configOrEmpty)},Diff2Html.prototype.getPrettyHtmlFromJson=function(diffJson,config){var configOrEmpty=config||{};return configOrEmpty.inputFormat="json",configOrEmpty.outputFormat="line-by-line",this.getPrettyHtml(diffJson,configOrEmpty)},Diff2Html.prototype.getPrettySideBySideHtmlFromDiff=function(diffInput,config){var configOrEmpty=config||{};return configOrEmpty.inputFormat="diff",configOrEmpty.outputFormat="side-by-side",this.getPrettyHtml(diffInput,configOrEmpty)},Diff2Html.prototype.getPrettySideBySideHtmlFromJson=function(diffJson,config){var configOrEmpty=config||{};return configOrEmpty.inputFormat="json",configOrEmpty.outputFormat="side-by-side",this.getPrettyHtml(diffJson,configOrEmpty)};var diffName="Diff2Html",diffObject=new Diff2Html;module.exports[diffName]=diffObject,global[diffName]=diffObject}(this)}).call(exports,function(){return this}())},function(module,exports,__webpack_require__){!function(){function DiffParser(){}function getExtension(filename,language){var nameSplit=filename.split(".");return nameSplit.length>1?nameSplit[nameSplit.length-1]:language}var utils=__webpack_require__(2).Utils,LINE_TYPE={INSERTS:"d2h-ins",DELETES:"d2h-del",CONTEXT:"d2h-cntx",INFO:"d2h-info"};DiffParser.prototype.LINE_TYPE=LINE_TYPE,DiffParser.prototype.generateDiffJson=function(diffInput){var files=[],currentFile=null,currentBlock=null,oldLine=null,newLine=null,saveBlock=function(){currentBlock&&(currentFile.blocks.push(currentBlock),currentBlock=null)},saveFile=function(){currentFile&&currentFile.newName&&(files.push(currentFile),currentFile=null)},startFile=function(){saveBlock(),saveFile(),currentFile={},currentFile.blocks=[],currentFile.deletedLines=0,currentFile.addedLines=0},startBlock=function(line){saveBlock();var values;(values=/^@@ -(\d+),\d+ \+(\d+),\d+ @@.*/.exec(line))?currentFile.isCombined=!1:(values=/^@@@ -(\d+),\d+ -\d+,\d+ \+(\d+),\d+ @@@.*/.exec(line))?currentFile.isCombined=!0:(values=[0,0],currentFile.isCombined=!1),oldLine=values[1],newLine=values[2],currentBlock={},currentBlock.lines=[],currentBlock.oldStartLine=oldLine,currentBlock.newStartLine=newLine,currentBlock.header=line},createLine=function(line){var currentLine={};currentLine.content=line;var newLinePrefixes=currentFile.isCombined?["+"," +"]:["+"],delLinePrefixes=currentFile.isCombined?["-"," -"]:["-"];utils.startsWith(line,newLinePrefixes)?(currentFile.addedLines++,currentLine.type=LINE_TYPE.INSERTS,currentLine.oldNumber=null,currentLine.newNumber=newLine++,currentBlock.lines.pus
for(var lines='<tr>\n <td class="d2h-code-linenumber '+diffParser.LINE_TYPE.INFO+'"></td>\n <td class="'+diffParser.LINE_TYPE.INFO+'"> <div class="d2h-code-line '+diffParser.LINE_TYPE.INFO+'">'+utils.escape(block.header)+"</div> </td>\n</tr>\n",oldLines=[],newLines=[],processedOldLines=[],processedNewLines=[],i=0;i<block.lines.length;i++){var line=block.lines[i],escapedLine=utils.escape(line.content);if(line.type!=diffParser.LINE_TYPE.CONTEXT||oldLines.length||newLines.length)if(line.type!=diffParser.LINE_TYPE.INSERTS||oldLines.length||newLines.length)if(line.type!=diffParser.LINE_TYPE.DELETES||newLines.length)if(line.type==diffParser.LINE_TYPE.INSERTS&&oldLines.length>newLines.length)newLines.push(line);else{var oldLine,newLine,j=0;if(oldLines.length===newLines.length){for(j=0;j<oldLines.length;j++){oldLine=oldLines[j],newLine=newLines[j],config.isCombined=file.isCombined;var diff=printerUtils.diffHighlight(oldLine.content,newLine.content,config);processedOldLines+=generateLineHtml(oldLine.type,oldLine.oldNumber,oldLine.newNumber,diff.first.line,diff.first.prefix),processedNewLines+=generateLineHtml(newLine.type,newLine.oldNumber,newLine.newNumber,diff.second.line,diff.second.prefix)}lines+=processedOldLines+processedNewLines}else lines+=processLines(oldLines,newLines);oldLines=[],newLines=[],processedOldLines=[],processedNewLines=[],i--}else oldLines.push(line);else lines+=generateLineHtml(line.type,line.oldNumber,line.newNumber,escapedLine);else lines+=generateLineHtml(line.type,line.oldNumber,line.newNumber,escapedLine)}return lines+=processLines(oldLines,newLines)}).join("\n")}function processLines(oldLines,newLines){var lines="";for(j=0;j<oldLines.length;j++){var oldLine=oldLines[j],oldEscapedLine=utils.escape(oldLine.content);lines+=generateLineHtml(oldLine.type,oldLine.oldNumber,oldLine.newNumber,oldEscapedLine)}for(j=0;j<newLines.length;j++){var newLine=newLines[j],newEscapedLine=utils.escape(newLine.content);lines+=generateLineHtml(newLine.type,newLine.oldNumber,newLine.newNumber,newEscapedLine)}return lines}function generateLineHtml(type,oldNumber,newNumber,content,prefix){var htmlPrefix="";prefix&&(htmlPrefix='<span class="d2h-code-line-prefix">'+prefix+"</span>");var htmlContent="";return content&&(htmlContent='<span class="d2h-code-line-ctn">'+content+"</span>"),'<tr>\n <td class="d2h-code-linenumber '+type+'"> <div class="line-num1">'+utils.valueOrEmpty(oldNumber)+'</div> <div class="line-num2">'+utils.valueOrEmpty(newNumber)+'</div> </td>\n <td class="'+type+'"> <div class="d2h-code-line '+type+'">'+htmlPrefix+htmlContent+"</div> </td>\n</tr>\n"}function generateEmptyDiff(){return'<tr>\n <td class="'+diffParser.LINE_TYPE.INFO+'"> <div class="d2h-code-line '+diffParser.LINE_TYPE.INFO+'">File without changes </div> </td>\n</tr>\n'}var diffParser=__webpack_require__(1).DiffParser,printerUtils=__webpack_require__(4).PrinterUtils,utils=__webpack_require__(2).Utils;LineByLinePrinter.prototype.generateLineByLineJsonHtml=function(diffFiles,config){return'<div class="d2h-wrapper">\n'+diffFiles.map(function(file){var diffs;return diffs=file.blocks.length?generateFileHtml(file,config):generateEmptyDiff(),'<div id="'+printerUtils.getHtmlId(file)+'" class="d2h-file-wrapper" data-lang="'+file.language+'">\n <div class="d2h-file-header">\n <div class="d2h-file-stats">\n <span class="d2h-lines-added"> <span>+'+file.addedLines+'</span>\n </span>\n <span class="d2h-lines-deleted"> <span>-'+file.deletedLines+'</span>\n </span>\n </div>\n <div class="d2h-file-name">'+printerUtils.getDiffName(file)+'</div>\n </div>\n <div class="d2h-file-diff">\n <div class="d2h-code-wrapper">\n <table class="d2h-diff-table">\n <tbody class="d2h-diff-tbody">\n '+diffs+" </tbody>\n </table>\n </div>\n </div>\n </div>\n"}).join("\n")+"</div>\n"},module.exports.LineByLinePrinter=new LineByLinePrinter}(this)},function(module,exports,__webpack_require__){!function(){function Sid