File "jquery.phpdiffmerge.min.js"

Full Path: /home/humancap/cl.humancap.com.my/generator/generator-assets/lib/php-diff/jquery.phpdiffmerge.min.js
File size: 6.95 KB
MIME-type: text/html
Charset: utf-8

/*!
* jQuery-Merge-for-php-diff - A jQuery plugin for handling the conflicts between two documents.
* v0.3.2 - 2014-05-13 3:53:31 PM UTC
* Copyright (c) 2014 Hannes Diercks <github@xiphe.net>; License: MIT
*/
!function(e){"use strict";var t="phpdiffmerge",i={failedToMergeMsg:"Unable to merge: not all conflicts have been resolved.",left:"",right:"",debug:!1,pupupResult:!1,pupupSources:!1,merged:e.noop()},n=0;function o(o,s){var l=this;l._id=1+n++,l.$el=e(o),l.options=e.extend({},i,s),l._defaults=i,l._name=t,l.$conflicts=e(),l.conflicts=[],l.toResolve=0,l.toMerge=0,l.inline=!1,l.result=[],l.lineOffset=0,l._tmpLineOffset=0,l._init()}function s(t,i){var n=this;n.$el=e(t),n.master=i,n._resolved=!1,n.type="",n.useOld=!1,n.leftLine=0,n.rightLine=0,n.rowsOld=0,n.rowsNew=0,n._init()}function l(e,t){var i=window.open("popup.html");t=t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),i.document.write("<html><head><title>"+e+"</title></head><body><pre>"+t+"</pre></body></html>")}o.prototype={_init:function(){var t=this;if(t._debug("PHPDiffMerge about to be initiated with options:",t.options),t.$conflicts=t.$el.find(".change-rep, .change-del, .change-ins"),t.toResolve=t.$conflicts.length,t.toResolve<=0||""===t.options.left&&""===t.options.right)return t._debug("Nothing to merge or merge sources not available - Please submit left and right on plug-in initiation!"),!1;this.inline=t.$el.hasClass("diff-inline"),t._ensurePresenceOfMergeButton(),e.each(t.$conflicts,(function(){t.conflicts.push(new s(this,t))})),t.$conflicts.on("xiphe_phpdiffmerge_resolved",e.proxy(t._conflictResolved,t)),t.$conflicts.on("xiphe_phpdiffmerge_merged",e.proxy(t._conflictMerged,t)),t.$conflicts.on("xiphe_phpdiffmerge_merged",e.proxy(t._updateLineOffset,t)),t._debug("PHPDiffMerge initiated",t)},useNew:function(){var e=this;e.$conflicts.find("td.new").click(),e.$el.hasClass("diff-inline")&&e.$el.find(".change-del td.old").click().click()},useOld:function(){var e=this;e.$conflicts.find("td.old").click(),e.$el.hasClass("diff-inline")&&e.$el.find(".change-ins td.new").click().click()},merge:function(e){var t=this;if(null!=e&&e.preventDefault(),"disabled"===t.options.button.attr("data-disabled"))return alert(t.options.failedToMergeMsg),void t._debug(t.options.failedToMergeMsg);t.result=t.options.left.slice(0),t.lineOffset=0,t.toMerge=t.$conflicts.length;for(var i=0;i<t.conflicts.length;i++)t.conflicts[i].merge()},option:function(t){e.isPlainObject(t)&&(this.options=e.extend(!0,this.options,t))},_ensurePresenceOfMergeButton:function(){var t=this;void 0!==t.options.button&&e(t.options.button).length?t.options.button=e(t.options.button).attr("data-disabled","disabled"):(t.options.button=e("<button />").html("Merge").attr({disabled:"disabled","data-disabled":"disabled",class:"btn btn-lg btn-primary"}).css({display:"block",height:"50px",width:"200px",margin:"50px auto"}),t.$el.after(t.options.button)),t.options.button.click(e.proxy(t.merge,t))},_debug:function(){this.options.debug&&window.console&&window.console.log&&window.console.log(Array.prototype.slice.call(arguments))},_conflictResolved:function(){var e=this;e.toResolve--,0===e.toResolve&&e.options.button.removeAttr("data-disabled")},_conflictMerged:function(){var e=this;e.toMerge--,0===e.toMerge&&(e.options.pupupResult&&l("end",e.result.join("\n")),e.options.pupupSources&&(l("left",e.options.left.join("\n")),l("right",e.options.right.join("\n"))),"function"==typeof e.options.merged&&e.options.merged.call(e,e.result,e.options.left,e.options.right))},_deleteResult:function(t,i){var n=this;n._debug("Deleting old: "+t+" - "+(t+i-1)+".");var o=n.result.splice(t+n.lineOffset-1,i);n.options.debug&&(o=o.map((function(t){return e.trim(t).substring(0,10)+"..."})),n._debug("Content: ",o)),n._tmpLineOffset-=i},_insertResult:function(t,i,n){for(var o=this,s=[],l=0;l<i;l++){var r=o.options.right[t-1+l];s.push(r),o.result.splice(n-1+o.lineOffset+l,0,r)}o.options.debug&&(o._debug("old line prior to insertion: "+(n-1)),o._debug("Content: ",e.trim(o.result[n-2+o.lineOffset]).substring(0,10)),o._debug("Inserted new: Row "+t+" - "+(t+i-1)+"."),s=s.map((function(t){return e.trim(t).substring(0,10)+"..."})),o._debug("Content: ("+s.join(", ")+")")),o._tmpLineOffset+=i},_updateLineOffset:function(){var e=this;e._debug("Change lineOffset from: "+e.lineOffset+" to "+(e.lineOffset+e._tmpLineOffset)+"."),e.lineOffset+=e._tmpLineOffset,e._tmpLineOffset=0}},s.prototype={_init:function(){var t=this;t.type=t.$el.attr("class").match(/change-([\w]+)/)[1],t.$el.find("td").click(e.proxy(t._clicked,t)).hover(e.proxy(t._hoverIn,t),e.proxy(t._hoverOut,t)),t._setLine(),t._setRows(),t.master._debug("Conflict initiated:",t)},merge:function(){var e=this;if(e.useOld)return e.master._debug("Ignoring lines "+e.leftLine+" - "+(e.leftLine+e.rowsOld-1)+"."),void e.$el.trigger("xiphe_phpdiffmerge_merged");switch(e.master._debug("Merging Conflict:",e),e.type){case"rep":e._delete(),e._insert();break;case"ins":e._insert();break;case"del":e._delete();break;default:return void r('Undefined merge method "'+e.type+'".')}e.$el.trigger("xiphe_phpdiffmerge_merged")},_hoverIn:function(t){var i=e(t.delegateTarget).hasClass("old")?"old":"new";this.$el.find("td."+i).addClass("hover")},_hoverOut:function(){this.$el.find("td.hover").removeClass("hover")},_clicked:function(t){var i,n,o=this,s=e(t.delegateTarget);if(o.master.inline?(o.useOld=s.hasClass("use"),s.hasClass("old")&&(o.useOld=!o.useOld)):o.useOld=s.hasClass("old"),i=o.useOld?"old":"new",n=o.useOld?"new":"old",!o.master.inline||"del"!==o.type&&"ins"!==o.type)o.$el.find("td."+i).removeClass("dontUse").addClass("use"),o.$el.find("td."+n).removeClass("use").addClass("dontUse");else{var l=o.$el.find("td");l.toggleClass("use"),l.toggleClass("dontUse",!l.hasClass("use"))}o._resolved||(o._resolved=!0,o.$el.trigger("xiphe_phpdiffmerge_resolved"))},_setLine:function(){var e=this,t=e.$el.prev("tbody").find("tr").last();e.leftLine=parseInt(t.find("th").first().html()||0,10)+1,e.rightLine=parseInt(t.find("th").last().html()||0,10)+1},_setRows:function(){var t=this;t.master.inline?(t.rowsOld=t.$el.find(".old").length,t.rowsNew=t.$el.find(".new").length):(t.rowsOld=0,t.$el.find(".old").each((function(){"&nbsp;"!==e(this).prev("th").html()&&t.rowsOld++})),t.rowsNew=0,t.$el.find(".new").each((function(){"&nbsp;"!==e(this).prev("th").html()&&t.rowsNew++})))},_insert:function(){var e=this;e.master._insertResult(e.rightLine,e.rowsNew,e.leftLine)},_delete:function(){var e=this;e.master._deleteResult(e.leftLine,e.rowsOld)}};var r=function(e){window.console&&window.console.error(e)};e.fn[t]=function(i){var n=this;if("string"==typeof i){var s=Array.prototype.slice.call(arguments,1);n.each((function(){var n=e.data(this,"plugin_"+t);n?e.isFunction(n[i])&&"_"!==i.charAt(0)?n[i].apply(n,s):r('no such method "'+i+'" for '+t+" instance"):r('cannot call methods on phpdiffmerge prior to initialization; attempted to call method "'+i+'"')}))}else n.each((function(){var n=e.data(this,"plugin_"+t);n?(n.option(i),n._init()):e.data(this,"plugin_"+t,new o(this,i))}));return n}}(jQuery);