Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ngx-text-diff

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ngx-text-diff - npm Package Compare versions

Comparing version 0.5.2 to 0.5.3

2

bundles/ngx-text-diff.umd.min.js

@@ -1,2 +0,2 @@

!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core"),require("diff-match-patch"),require("@angular/common"),require("@angular/forms")):"function"==typeof define&&define.amd?define("ngx-text-diff",["exports","@angular/core","diff-match-patch","@angular/common","@angular/forms"],n):n(t["ngx-text-diff"]={},t.ng.core,t.diffMatchPatch,t.ng.common,t.ng.forms)}(this,function(t,n,b,e,r){"use strict";var o=function(){function t(){this.initParser()}return t.prototype.initParser=function(){this.diffParser=new b.diff_match_patch},t.prototype.getDiffsByLines=function(s,f){var d=this;return new Promise(function(t,n){var e=d.diffParser.diff_linesToChars_(s,f),r=e.chars1,o=e.chars2,i=e.lineArray,l=d.diffParser.diff_main(r,o,!0);d.diffParser.diff_charsToLines_(l,i);var a=d.formatOutputNew(l,i);a||n("Error"),t(a)})},t.prototype.formatOutputNew=function(t,n){if(n)return this.formatDiffsFromLines(t,n)},t.prototype.formatDiffsFromLines=function(t,p){var h=this;p.splice(0,1);var g=1,u=1;return t.reduce(function(t,n){t||(t=[]);for(var e,r,o=n[1];(r=o)!==undefined&&null!==r||null!=(e=o)&&(Object.keys(e)||e).length&&0!==(Object.keys(e)||e).length||0<o.length;){var i=p.findIndex(function(t){return o.includes(t)});if(!(0<=i))break;var l=p[i],a=null,s=null,f=null,d=null,c=null;switch(n[0]){case b.DIFF_EQUAL:c={leftContent:f={lineNumber:g,lineContent:l,lineDiffs:[],prefix:""},rightContent:d={lineNumber:u,lineContent:l,lineDiffs:[],prefix:""},belongTo:"both",hasDiffs:!1},t.push(c),u+=1,g+=1;break;case b.DIFF_INSERT:a=t.find(function(t){return t.leftContent&&!t.rightContent&&t.leftContent.lineNumber===u&&""!==t.leftContent.prefix}),d={lineNumber:u,lineContent:l,lineDiffs:[{content:l,isDiff:!0}],prefix:"+"},a?(a.rightContent=d,a.leftContent.lineDiffs=h.getDiffParts(a.leftContent.lineContent,a.rightContent.lineContent),a.rightContent.lineDiffs=h.getDiffParts(a.rightContent.lineContent,a.leftContent.lineContent),a.belongTo="both"):t.push({leftContent:null,rightContent:d,hasDiffs:!0,belongTo:"right"}),u+=1;break;case b.DIFF_DELETE:s=t.find(function(t){return!t.leftContent&&t.rightContent&&t.rightContent.lineNumber===g&&""!==t.rightContent.prefix}),f={lineNumber:g,lineContent:l,lineDiffs:[{content:l,isDiff:!0}],prefix:"-"},s?(s.leftContent=f,s.leftContent.lineDiffs=h.getDiffParts(s.leftContent.lineContent,s.rightContent.lineContent),s.rightContent.lineDiffs=h.getDiffParts(s.rightContent.lineContent,s.leftContent.lineContent),s.belongTo="both"):t.push({leftContent:f,rightContent:null,hasDiffs:!0,belongTo:"left"}),g+=1}o=o.replace(l,""),p.splice(i,1)}return t},[])},t.prototype.getDiffParts=function(t,n){for(var e=[],r=0,o=0,i="",l="";r<t.length;)t[r]===n[o]&&o<n.length?(""!==l&&(e.push({content:l,isDiff:!0}),l=""),i+=t[r]):(""!==i&&(e.push({content:i,isDiff:!1}),i=""),l+=t[r]),r++,o++;return""!==l?e.push({content:l,isDiff:!0}):""!==i&&e.push({content:i,isDiff:!1}),e},t.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[]},t.ngInjectableDef=n.defineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}();function i(r,o){var i,l,a,t,s={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return t={next:n(0),"throw":n(1),"return":n(2)},"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function n(n){return function(t){return function e(t){if(i)throw new TypeError("Generator is already executing.");for(;s;)try{if(i=1,l&&(a=2&t[0]?l["return"]:t[0]?l["throw"]||((a=l["return"])&&a.call(l),0):l.next)&&!(a=a.call(l,t[1])).done)return a;switch(l=0,a&&(t=[2&t[0],a.value]),t[0]){case 0:case 1:a=t;break;case 4:return s.label++,{value:t[1],done:!1};case 5:s.label++,l=t[1],t=[0];continue;case 7:t=s.ops.pop(),s.trys.pop();continue;default:if(!(a=0<(a=s.trys).length&&a[a.length-1])&&(6===t[0]||2===t[0])){s=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]<a[3])){s.label=t[1];break}if(6===t[0]&&s.label<a[1]){s.label=a[1],a=t;break}if(a&&s.label<a[2]){s.label=a[2],s.ops.push(t);break}a[2]&&s.ops.pop(),s.trys.pop();continue}t=o.call(r,s)}catch(n){t=[6,n],l=0}finally{i=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([n,t])}}}var l=function(){function t(t,n){this.diff=t,this.cd=n,this.format="SideBySide",this.left="",this.right="",this.loading=!1,this.showBtnToolbar=!0,this.subscriptions=[],this.tableRows=[],this.filteredTableRows=[],this.tableRowsLineByLine=[],this.filteredTableRowsLineByLine=[],this.showLinesDiffs=!1,this.diffsCount=0,this.formatOptions=[{id:"side-by-side",name:"side-by-side",label:"Side by Side",value:"SideBySide",icon:"la-code"},{id:"line-by-line",name:"line-by-line",label:"Line by Line",value:"LineByLine",icon:"la-file-text"}]}return t.prototype.ngOnInit=function(){var n=this;this.diffContent&&this.subscriptions.push(this.diffContent.subscribe(function(t){n.left=t.leftContent,n.right=t.rightContent,n.renderDiffs().then(function(){n.cd.detectChanges()})})),this.renderDiffs().then()},t.prototype.ngOnDestroy=function(){this.subscriptions&&this.subscriptions.forEach(function(t){return t.unsubscribe()})},t.prototype.showLinesDiffsChange=function(t){this.showLinesDiffs=t,this.showLinesDiffs?(this.filteredTableRows=this.tableRows.filter(function(t){return t.leftContent&&"-"===t.leftContent.prefix||t.rightContent&&"+"===t.rightContent.prefix}),this.filteredTableRowsLineByLine=this.tableRowsLineByLine.filter(function(t){return t.leftContent&&"-"===t.leftContent.prefix||t.rightContent&&"+"===t.rightContent.prefix})):(this.filteredTableRows=this.tableRows,this.filteredTableRowsLineByLine=this.tableRowsLineByLine)},t.prototype.setDiffTableFormat=function(t){this.format=t},t.prototype.renderDiffs=function(){return function t(n,l,a,s){return new(a||(a=Promise))(function(t,e){function r(t){try{i(s.next(t))}catch(n){e(n)}}function o(t){try{i(s["throw"](t))}catch(n){e(n)}}function i(n){n.done?t(n.value):new a(function(t){t(n.value)}).then(r,o)}i((s=s.apply(n,l||[])).next())})}(this,void 0,void 0,function(){var n;return i(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),this.loading=!0,this.diffsCount=0,[4,(n=this).diff.getDiffsByLines(this.left,this.right)];case 1:return n.tableRows=t.sent(),this.tableRowsLineByLine=this.tableRows.reduce(function(t,n){return t||(t=[]),n.hasDiffs?(n.leftContent&&t.push({leftContent:n.leftContent,rightContent:null,belongTo:n.belongTo,hasDiffs:!0}),n.rightContent&&t.push({leftContent:null,rightContent:n.rightContent,belongTo:n.belongTo,hasDiffs:!0})):t.push(n),t},[]),this.diffsCount=this.tableRows.filter(function(t){return t.leftContent&&"-"===t.leftContent.prefix||t.rightContent&&"+"===t.rightContent.prefix}).length,this.filteredTableRows=this.tableRows,this.filteredTableRowsLineByLine=this.tableRowsLineByLine,this.loading=!1,[3,3];case 2:return t.sent(),[3,3];case 3:return[2]}})})},t.prototype.trackTableRows=function(t,n){return n&&n.leftContent?n.leftContent.lineContent:n&&n.rightContent?n.rightContent.lineContent:undefined},t.prototype.trackDiffs=function(t,n){return n&&n.content?n.content:undefined},t.decorators=[{type:n.Component,args:[{selector:"td-ngx-text-diff",template:'<td-loader-spinner [active]="loading"></td-loader-spinner>\r\n<div *ngIf="!loading">\r\n <div class="td-wrapper">\r\n <div class="td-toolbar-show-diff">\r\n <label class="td-checkbox-container">Show Lines with Diffs ({{diffsCount}})\r\n <input type="checkbox"\r\n id="showDiffs"\r\n [ngModel]="showLinesDiffs"\r\n (ngModelChange)="showLinesDiffsChange($event)"\r\n >\r\n <span class="checkmark"></span>\r\n </label>\r\n </div>\r\n <div class="td-toolbar-select-format" *ngIf="showBtnToolbar">\r\n <div class="td-btn-group td-btn-group-toggle" data-toggle="buttons">\r\n <button *ngFor="let option of formatOptions"\r\n [ngClass]="{\'active\': format === option.value, \'disabled\': !!option.disabled}"\r\n [name]="option.name"\r\n [id]="option.id"\r\n [disabled]="!!option.disabled"\r\n (click)="setDiffTableFormat(option.value)"\r\n >{{option.label}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class="td-table-wrapper">\r\n <div class="td-table-container side-by-side" *ngIf="format === \'SideBySide\'">\r\n <table class="td-table">\r\n <tbody>\r\n <tr *ngFor="let row of filteredTableRows; trackBy: trackTableRows">\r\n <td scope="row" class="fit-column line-number-col"\r\n [ngClass]="{\'delete-row\' : row.leftContent?.prefix === \'-\', \'empty-row\': !row.leftContent?.lineContent}">\r\n {{(row.leftContent?.lineNumber !== -1) ?\r\n row.leftContent?.lineNumber : \' \'}}\r\n </td>\r\n <td class="fit-column prefix-col"\r\n [ngClass]="{\'delete-row\' : row.leftContent?.prefix === \'-\', \'empty-row\': !row.leftContent?.lineContent}">\r\n <span>{{row.leftContent?.prefix || \' \'}}</span>\r\n </td>\r\n <td class="content-col"\r\n [ngClass]="{\'delete-row\' : row.leftContent?.prefix === \'-\', \'empty-row\': !row.leftContent?.lineContent}"\r\n *ngIf="!row.hasDiffs">\r\n <span [innerHTML]="row.leftContent?.lineContent | formatLine"></span>\r\n </td>\r\n <td class="content-col"\r\n [ngClass]="{\'delete-row\' : row.leftContent?.prefix === \'-\', \'empty-row\': !row.leftContent?.lineContent}"\r\n *ngIf="row.hasDiffs">\r\n <span [innerHTML]="diff.content | formatLine" [ngClass]="{\'highlight\': diff.isDiff}"\r\n *ngFor="let diff of row.leftContent?.lineDiffs; trackBy: trackDiffs"></span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class="td-table-container side-by-side" *ngIf="format === \'SideBySide\'">\r\n <table class="td-table">\r\n <tbody>\r\n <tr *ngFor="let row of filteredTableRows; trackBy: trackTableRows">\r\n <td scope="row" class="fit-column line-number-col"\r\n [ngClass]="{\'insert-row\' : row.rightContent?.prefix === \'+\', \'empty-row\': !row.rightContent?.lineContent}">\r\n {{(row.rightContent?.lineNumber !== -1) ?\r\n row.rightContent?.lineNumber : \' \'}}\r\n </td>\r\n <td class="fit-column prefix-col"\r\n [ngClass]="{\'insert-row\' : row.rightContent?.prefix === \'+\', \'empty-row\': !row.rightContent?.lineContent}">\r\n <span>{{row.rightContent?.prefix || \' \'}}</span>\r\n </td>\r\n <td class="content-col"\r\n [ngClass]="{\'insert-row\' : row.rightContent?.prefix === \'+\', \'empty-row\': !row.rightContent?.lineContent}"\r\n *ngIf="!row.hasDiffs">\r\n <span [innerHTML]="row.rightContent?.lineContent | formatLine"></span>\r\n </td>\r\n <td class="content-col"\r\n [ngClass]="{\'insert-row\' : row.rightContent?.prefix === \'+\', \'empty-row\': !row.rightContent?.lineContent}"\r\n *ngIf="row.hasDiffs">\r\n <span [innerHTML]="diff.content | formatLine" [ngClass]="{\'highlight\': diff.isDiff}"\r\n *ngFor="let diff of row.rightContent?.lineDiffs; trackBy: trackDiffs"></span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class="td-table-container line-by-line" *ngIf="format === \'LineByLine\'">\r\n <table class="td-table">\r\n <tbody>\r\n <tr *ngFor="let row of filteredTableRowsLineByLine; trackBy: trackTableRows">\r\n <td scope="row" class="fit-column line-number-col-left">{{row.leftContent?.lineNumber}}</td>\r\n <td scope="row" class="fit-column line-number-col">{{row.rightContent?.lineNumber}}</td>\r\n <td class="fit-column prefix-col"\r\n [ngClass]="{\'delete-row\' : row.leftContent?.prefix === \'-\', \'insert-row\' : row.rightContent?.prefix === \'+\'}">\r\n <span>{{row.leftContent?.prefix || row.rightContent?.prefix || \' \'}}</span>\r\n </td>\r\n <td class="content-col"\r\n [ngClass]="{\'delete-row\' : row.leftContent?.prefix === \'-\', \'insert-row\' : row.rightContent?.prefix === \'+\'}"\r\n *ngIf="!row.hasDiffs">\r\n <span [innerHTML]="row.leftContent?.lineContent | formatLine"></span>\r\n </td>\r\n <td class="content-col"\r\n [ngClass]="{\'delete-row\' : row.leftContent?.prefix === \'-\', \'insert-row\' : row.rightContent?.prefix === \'+\'}"\r\n *ngIf="row.hasDiffs && row.leftContent && row.leftContent?.lineDiffs.length !== 0">\r\n <span [innerHTML]="diff.content | formatLine" [ngClass]="{\'highlight\': diff.isDiff}"\r\n *ngFor="let diff of row.leftContent?.lineDiffs; trackBy: trackDiffs"></span>\r\n </td>\r\n <td class="content-col"\r\n [ngClass]="{\'delete-row\' : row.leftContent?.prefix === \'-\', \'insert-row\' : row.rightContent?.prefix === \'+\'}"\r\n *ngIf="row.hasDiffs && row.rightContent && row.rightContent?.lineDiffs.length !== 0">\r\n <span [innerHTML]="diff.content | formatLine" [ngClass]="{\'highlight\': diff.isDiff}"\r\n *ngFor="let diff of row.rightContent?.lineDiffs; trackBy: trackDiffs"></span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n',styles:[".td-wrapper{display:-ms-grid;display:grid;width:100%;grid-row-gap:10px;-ms-grid-columns:([col] 50%)[2];grid-template-columns:repeat(2,[col] 50%);-ms-grid-rows:([row] auto)[2];grid-template-rows:repeat(2,[row] auto);background-color:#fff;color:#444}.td-toolbar-show-diff{-ms-grid-column:1;grid-column:1;-ms-grid-row:1;grid-row:1}.td-toolbar-select-format{margin-left:auto;-ms-grid-column:2;grid-column:2;-ms-grid-row:1;grid-row:1}.td-table-container{-ms-grid-column:1;-ms-grid-column-span:1;grid-column:1/2;-ms-grid-row:2;grid-row:2;width:100%;max-width:100%;overflow-x:auto}.td-table-wrapper{display:flex;width:200%}.td-table{border:1px solid #a9a9a9;max-height:50vh;width:100%;max-width:100%}.fit-column{width:1px;white-space:nowrap}.line-number-col{border-right:1px solid #ddd;color:#999;text-align:right;background-color:#f7f7f7;padding-left:10px;padding-right:10px;font-size:87.5%}.line-number-col-left{color:#999;padding-left:10px;padding-right:10px;text-align:right;background-color:#f7f7f7;font-size:87.5%}.insert-row,.insert-row>.line-number-col{background-color:#dfd;border-color:#b4e2b4}.delete-row,.delete-row>.line-number-col{background-color:#fee8e9;border-color:#e9aeae}.empty-row{background-color:#f7f7f7;height:24px}.td-table td{border-top:0;padding-top:0;padding-bottom:0;white-space:nowrap;max-width:50%}pre{margin-bottom:0}td.content-col{padding:0;margin:0;line-height:24px}td.prefix-col{padding-left:10px;padding-right:10px;line-height:24px}.td-btn-group{border-radius:4px}.td-btn-group button{background-color:rgba(23,162,184,.7);border:1px solid #17a2b8;color:#fff;cursor:pointer;float:left}.td-btn-group button:not(:last-child){border-right:none}.td-btn-group button:first-child{-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-topleft:4px;-moz-border-radius-bottomleft:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.td-btn-group button:last-child{-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.td-btn-group:after{content:'';clear:both;display:table}.td-btn-group button.active,.td-btn-group button:hover{background-color:#17a2b8}.td-checkbox-container{display:block;position:relative;padding-left:21px;margin-bottom:0;cursor:pointer;font-size:16px;line-height:28px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.td-checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark{position:absolute;top:7px;left:0;height:16px;width:16px;background-color:#eee}.td-checkbox-container:hover input~.checkmark{background-color:#ccc}.td-checkbox-container input:checked~.checkmark{background-color:#17a2b8}.checkmark:after{content:\"\";position:absolute;display:none}.td-checkbox-container input:checked~.checkmark:after{display:block}.td-checkbox-container .checkmark:after{left:5px;top:3px;width:5px;height:10px;border:solid #fff;border-width:0 3px 3px 0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.insert-row>.highlight{background-color:#acf2bd!important}.delete-row>.highlight{background-color:#fdb8c0!important}"]}]}],t.ctorParameters=function(){return[{type:o},{type:n.ChangeDetectorRef}]},t.propDecorators={format:[{type:n.Input}],left:[{type:n.Input}],right:[{type:n.Input}],diffContent:[{type:n.Input}],loading:[{type:n.Input}],showBtnToolbar:[{type:n.Input}]},t}(),a=function(){function t(){this.active=!1}return t.prototype.ngOnInit=function(){},t.decorators=[{type:n.Component,args:[{selector:"td-loader-spinner",template:'<div class="td-loading-roller" *ngIf="active">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n</div>\n',styles:['.td-loading-roller{display:inline-block;position:relative;width:64px;height:64px}.td-loading-roller div{-webkit-animation:1.2s cubic-bezier(.5,0,.5,1) infinite lds-roller;animation:1.2s cubic-bezier(.5,0,.5,1) infinite lds-roller;-webkit-transform-origin:32px 32px;transform-origin:32px 32px}.td-loading-roller div:after{content:" ";display:block;position:absolute;width:6px;height:6px;border-radius:50%;background:#000;margin:-3px 0 0 -3px}.td-loading-roller div:nth-child(1){-webkit-animation-delay:-36ms;animation-delay:-36ms}.td-loading-roller div:nth-child(1):after{top:50px;left:50px}.td-loading-roller div:nth-child(2){-webkit-animation-delay:-72ms;animation-delay:-72ms}.td-loading-roller div:nth-child(2):after{top:54px;left:45px}.td-loading-roller div:nth-child(3){-webkit-animation-delay:-108ms;animation-delay:-108ms}.td-loading-roller div:nth-child(3):after{top:57px;left:39px}.td-loading-roller div:nth-child(4){-webkit-animation-delay:-144ms;animation-delay:-144ms}.td-loading-roller div:nth-child(4):after{top:58px;left:32px}.td-loading-roller div:nth-child(5){-webkit-animation-delay:-.18s;animation-delay:-.18s}.td-loading-roller div:nth-child(5):after{top:57px;left:25px}.td-loading-roller div:nth-child(6){-webkit-animation-delay:-216ms;animation-delay:-216ms}.td-loading-roller div:nth-child(6):after{top:54px;left:19px}.td-loading-roller div:nth-child(7){-webkit-animation-delay:-252ms;animation-delay:-252ms}.td-loading-roller div:nth-child(7):after{top:50px;left:14px}.td-loading-roller div:nth-child(8){-webkit-animation-delay:-288ms;animation-delay:-288ms}.td-loading-roller div:nth-child(8):after{top:45px;left:10px}@-webkit-keyframes lds-roller{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes lds-roller{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}']}]}],t.ctorParameters=function(){return[]},t.propDecorators={active:[{type:n.Input}]},t}(),s=function(){function t(){}return t.prototype.transform=function(t,n){return t?(n&&n.length,t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/ /g,"&nbsp;")):" "},t.decorators=[{type:n.Pipe,args:[{name:"formatLine"}]}],t}(),f=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,r.FormsModule],declarations:[l,a,s],exports:[l]}]}],t}();t.NgxTextDiffService=o,t.NgxTextDiffComponent=l,t.NgxTextDiffModule=f,t.ɵb=s,t.ɵa=a,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("diff-match-patch"),require("@angular/common"),require("@angular/forms"),require("@angular/core")):"function"==typeof define&&define.amd?define("ngx-text-diff",["exports","diff-match-patch","@angular/common","@angular/forms","@angular/core"],n):n(t["ngx-text-diff"]={},t.diffMatchPatch,t.ng.common,t.ng.forms,t.ng.core)}(this,function(t,p,n,e,r){"use strict";var h=function(t){return null==t||!(Object.keys(t)||t).length||0===(Object.keys(t)||t).length},o=function(){function t(){this.initParser()}return t.prototype.initParser=function(){this.diffParser=new p.diff_match_patch},t.prototype.getDiffsByLines=function(s,f){var d=this;return new Promise(function(t,n){var e=d.diffParser.diff_linesToChars_(s,f),r=e.chars1,o=e.chars2,i=e.lineArray,l=d.diffParser.diff_main(r,o,!0);d.diffParser.diff_charsToLines_(l,i);var a=d.formatOutput(l);a||n("Error"),t(a)})},t.prototype.formatOutput=function(t){var f=this,d=1,c=1;return t.reduce(function(n,t){n||(n=[]);var e=t[0],r=t[1],o=null,i=null,l=null,a=null,s=null;switch(e){case p.DIFF_EQUAL:r.split("\n").filter(function(t,n,e){return n!==e.length-1||!h(t)}).forEach(function(t){s={leftContent:l={lineNumber:d,lineContent:t,lineDiffs:[],prefix:""},rightContent:a={lineNumber:c,lineContent:t,lineDiffs:[],prefix:""},belongTo:"both",hasDiffs:!1},n.push(s),c+=1,d+=1});break;case p.DIFF_DELETE:r.split("\n").filter(function(t,n,e){return n!==e.length-1||!h(t)}).forEach(function(t){i=n.find(function(t){return!t.leftContent&&t.rightContent&&t.rightContent.lineNumber===d&&""!==t.rightContent.prefix}),l={lineNumber:d,lineContent:t,lineDiffs:[{content:t,isDiff:!0}],prefix:"-"},i?(i.leftContent=l,i.leftContent.lineDiffs=f.getDiffParts(i.leftContent.lineContent,i.rightContent.lineContent),i.rightContent.lineDiffs=f.getDiffParts(i.rightContent.lineContent,i.leftContent.lineContent),i.belongTo="both"):n.push({leftContent:l,rightContent:null,hasDiffs:!0,belongTo:"left"}),d+=1});break;case p.DIFF_INSERT:r.split("\n").filter(function(t,n,e){return n!==e.length-1||!h(t)}).forEach(function(t){o=n.find(function(t){return t.leftContent&&!t.rightContent&&t.leftContent.lineNumber===c&&""!==t.leftContent.prefix}),a={lineNumber:c,lineContent:t,lineDiffs:[{content:t,isDiff:!0}],prefix:"+"},o?(o.rightContent=a,o.leftContent.lineDiffs=f.getDiffParts(o.leftContent.lineContent,o.rightContent.lineContent),o.rightContent.lineDiffs=f.getDiffParts(o.rightContent.lineContent,o.leftContent.lineContent),o.belongTo="both"):n.push({leftContent:null,rightContent:a,hasDiffs:!0,belongTo:"right"}),c+=1})}return n},[])},t.prototype.getDiffParts=function(t,n){for(var e=[],r=0,o=0,i="",l="";r<t.length;)t[r]===n[o]&&o<n.length?(""!==l&&(e.push({content:l,isDiff:!0}),l=""),i+=t[r]):(""!==i&&(e.push({content:i,isDiff:!1}),i=""),l+=t[r]),r++,o++;return""!==l?e.push({content:l,isDiff:!0}):""!==i&&e.push({content:i,isDiff:!1}),e},t.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[]},t.ngInjectableDef=r.defineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}();function i(r,o){var i,l,a,t,s={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return t={next:n(0),"throw":n(1),"return":n(2)},"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function n(n){return function(t){return function e(t){if(i)throw new TypeError("Generator is already executing.");for(;s;)try{if(i=1,l&&(a=2&t[0]?l["return"]:t[0]?l["throw"]||((a=l["return"])&&a.call(l),0):l.next)&&!(a=a.call(l,t[1])).done)return a;switch(l=0,a&&(t=[2&t[0],a.value]),t[0]){case 0:case 1:a=t;break;case 4:return s.label++,{value:t[1],done:!1};case 5:s.label++,l=t[1],t=[0];continue;case 7:t=s.ops.pop(),s.trys.pop();continue;default:if(!(a=0<(a=s.trys).length&&a[a.length-1])&&(6===t[0]||2===t[0])){s=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]<a[3])){s.label=t[1];break}if(6===t[0]&&s.label<a[1]){s.label=a[1],a=t;break}if(a&&s.label<a[2]){s.label=a[2],s.ops.push(t);break}a[2]&&s.ops.pop(),s.trys.pop();continue}t=o.call(r,s)}catch(n){t=[6,n],l=0}finally{i=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([n,t])}}}var l=function(){function t(t,n){this.diff=t,this.cd=n,this.format="SideBySide",this.left="",this.right="",this.loading=!1,this.showBtnToolbar=!0,this.subscriptions=[],this.tableRows=[],this.filteredTableRows=[],this.tableRowsLineByLine=[],this.filteredTableRowsLineByLine=[],this.showLinesDiffs=!1,this.diffsCount=0,this.formatOptions=[{id:"side-by-side",name:"side-by-side",label:"Side by Side",value:"SideBySide",icon:"la-code"},{id:"line-by-line",name:"line-by-line",label:"Line by Line",value:"LineByLine",icon:"la-file-text"}]}return t.prototype.ngOnInit=function(){var n=this;this.loading=!0,this.diffContent&&this.subscriptions.push(this.diffContent.subscribe(function(t){n.loading=!0,n.left=t.leftContent,n.right=t.rightContent,n.renderDiffs().then(function(){n.cd.detectChanges(),n.loading=!1})["catch"](function(){return n.loading=!1})})),this.renderDiffs().then(function(){return n.loading=!1})["catch"](function(t){return n.loading=!1})},t.prototype.ngOnDestroy=function(){this.subscriptions&&this.subscriptions.forEach(function(t){return t.unsubscribe()})},t.prototype.showLinesDiffsChange=function(t){this.showLinesDiffs=t,this.showLinesDiffs?(this.filteredTableRows=this.tableRows.filter(function(t){return t.leftContent&&"-"===t.leftContent.prefix||t.rightContent&&"+"===t.rightContent.prefix}),this.filteredTableRowsLineByLine=this.tableRowsLineByLine.filter(function(t){return t.leftContent&&"-"===t.leftContent.prefix||t.rightContent&&"+"===t.rightContent.prefix})):(this.filteredTableRows=this.tableRows,this.filteredTableRowsLineByLine=this.tableRowsLineByLine)},t.prototype.setDiffTableFormat=function(t){this.format=t},t.prototype.renderDiffs=function(){return function t(n,l,a,s){return new(a||(a=Promise))(function(t,e){function r(t){try{i(s.next(t))}catch(n){e(n)}}function o(t){try{i(s["throw"](t))}catch(n){e(n)}}function i(n){n.done?t(n.value):new a(function(t){t(n.value)}).then(r,o)}i((s=s.apply(n,l||[])).next())})}(this,void 0,void 0,function(){var n;return i(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),this.diffsCount=0,[4,(n=this).diff.getDiffsByLines(this.left,this.right)];case 1:return n.tableRows=t.sent(),this.tableRowsLineByLine=this.tableRows.reduce(function(t,n){return t||(t=[]),n.hasDiffs?(n.leftContent&&t.push({leftContent:n.leftContent,rightContent:null,belongTo:n.belongTo,hasDiffs:!0}),n.rightContent&&t.push({leftContent:null,rightContent:n.rightContent,belongTo:n.belongTo,hasDiffs:!0})):t.push(n),t},[]),this.diffsCount=this.tableRows.filter(function(t){return t.leftContent&&"-"===t.leftContent.prefix||t.rightContent&&"+"===t.rightContent.prefix}).length,this.filteredTableRows=this.tableRows,this.filteredTableRowsLineByLine=this.tableRowsLineByLine,[3,3];case 2:throw t.sent();case 3:return[2]}})})},t.prototype.trackTableRows=function(t,n){return n&&n.leftContent?n.leftContent.lineContent:n&&n.rightContent?n.rightContent.lineContent:undefined},t.prototype.trackDiffs=function(t,n){return n&&n.content?n.content:undefined},t.decorators=[{type:r.Component,args:[{selector:"td-ngx-text-diff",template:'<td-loader-spinner [active]="loading"></td-loader-spinner>\r\n<div *ngIf="!loading">\r\n <div class="td-wrapper">\r\n <div class="td-toolbar-show-diff">\r\n <label class="td-checkbox-container">Show Lines with Diffs ({{diffsCount}})\r\n <input type="checkbox"\r\n id="showDiffs"\r\n [ngModel]="showLinesDiffs"\r\n (ngModelChange)="showLinesDiffsChange($event)"\r\n >\r\n <span class="checkmark"></span>\r\n </label>\r\n </div>\r\n <div class="td-toolbar-select-format" *ngIf="showBtnToolbar">\r\n <div class="td-btn-group td-btn-group-toggle" data-toggle="buttons">\r\n <button *ngFor="let option of formatOptions"\r\n [ngClass]="{\'active\': format === option.value, \'disabled\': !!option.disabled}"\r\n [name]="option.name"\r\n [id]="option.id"\r\n [disabled]="!!option.disabled"\r\n (click)="setDiffTableFormat(option.value)"\r\n >{{option.label}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class="td-table-wrapper">\r\n <div class="td-table-container side-by-side" *ngIf="format === \'SideBySide\'">\r\n <table class="td-table">\r\n <tbody>\r\n <tr *ngFor="let row of filteredTableRows; trackBy: trackTableRows">\r\n <td scope="row" class="fit-column line-number-col"\r\n [ngClass]="{\'delete-row\' : row.leftContent?.prefix === \'-\', \'empty-row\': !row.leftContent?.lineContent}">\r\n {{(row.leftContent?.lineNumber !== -1) ?\r\n row.leftContent?.lineNumber : \' \'}}\r\n </td>\r\n <td class="fit-column prefix-col"\r\n [ngClass]="{\'delete-row\' : row.leftContent?.prefix === \'-\', \'empty-row\': !row.leftContent?.lineContent}">\r\n <span>{{row.leftContent?.prefix || \' \'}}</span>\r\n </td>\r\n <td class="content-col"\r\n [ngClass]="{\'delete-row\' : row.leftContent?.prefix === \'-\', \'empty-row\': !row.leftContent?.lineContent}"\r\n *ngIf="!row.hasDiffs">\r\n <span [innerHTML]="row.leftContent?.lineContent | formatLine"></span>\r\n </td>\r\n <td class="content-col"\r\n [ngClass]="{\'delete-row\' : row.leftContent?.prefix === \'-\', \'empty-row\': !row.leftContent?.lineContent}"\r\n *ngIf="row.hasDiffs">\r\n <span [innerHTML]="diff.content | formatLine" [ngClass]="{\'highlight\': diff.isDiff}"\r\n *ngFor="let diff of row.leftContent?.lineDiffs; trackBy: trackDiffs"></span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class="td-table-container side-by-side" *ngIf="format === \'SideBySide\'">\r\n <table class="td-table">\r\n <tbody>\r\n <tr *ngFor="let row of filteredTableRows; trackBy: trackTableRows">\r\n <td scope="row" class="fit-column line-number-col"\r\n [ngClass]="{\'insert-row\' : row.rightContent?.prefix === \'+\', \'empty-row\': !row.rightContent?.lineContent}">\r\n {{(row.rightContent?.lineNumber !== -1) ?\r\n row.rightContent?.lineNumber : \' \'}}\r\n </td>\r\n <td class="fit-column prefix-col"\r\n [ngClass]="{\'insert-row\' : row.rightContent?.prefix === \'+\', \'empty-row\': !row.rightContent?.lineContent}">\r\n <span>{{row.rightContent?.prefix || \' \'}}</span>\r\n </td>\r\n <td class="content-col"\r\n [ngClass]="{\'insert-row\' : row.rightContent?.prefix === \'+\', \'empty-row\': !row.rightContent?.lineContent}"\r\n *ngIf="!row.hasDiffs">\r\n <span [innerHTML]="row.rightContent?.lineContent | formatLine"></span>\r\n </td>\r\n <td class="content-col"\r\n [ngClass]="{\'insert-row\' : row.rightContent?.prefix === \'+\', \'empty-row\': !row.rightContent?.lineContent}"\r\n *ngIf="row.hasDiffs">\r\n <span [innerHTML]="diff.content | formatLine" [ngClass]="{\'highlight\': diff.isDiff}"\r\n *ngFor="let diff of row.rightContent?.lineDiffs; trackBy: trackDiffs"></span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class="td-table-container line-by-line" *ngIf="format === \'LineByLine\'">\r\n <table class="td-table">\r\n <tbody>\r\n <tr *ngFor="let row of filteredTableRowsLineByLine; trackBy: trackTableRows">\r\n <td scope="row" class="fit-column line-number-col-left">{{row.leftContent?.lineNumber}}</td>\r\n <td scope="row" class="fit-column line-number-col">{{row.rightContent?.lineNumber}}</td>\r\n <td class="fit-column prefix-col"\r\n [ngClass]="{\'delete-row\' : row.leftContent?.prefix === \'-\', \'insert-row\' : row.rightContent?.prefix === \'+\'}">\r\n <span>{{row.leftContent?.prefix || row.rightContent?.prefix || \' \'}}</span>\r\n </td>\r\n <td class="content-col"\r\n [ngClass]="{\'delete-row\' : row.leftContent?.prefix === \'-\', \'insert-row\' : row.rightContent?.prefix === \'+\'}"\r\n *ngIf="!row.hasDiffs">\r\n <span [innerHTML]="row.leftContent?.lineContent | formatLine"></span>\r\n </td>\r\n <td class="content-col"\r\n [ngClass]="{\'delete-row\' : row.leftContent?.prefix === \'-\', \'insert-row\' : row.rightContent?.prefix === \'+\'}"\r\n *ngIf="row.hasDiffs && row.leftContent && row.leftContent?.lineDiffs.length !== 0">\r\n <span [innerHTML]="diff.content | formatLine" [ngClass]="{\'highlight\': diff.isDiff}"\r\n *ngFor="let diff of row.leftContent?.lineDiffs; trackBy: trackDiffs"></span>\r\n </td>\r\n <td class="content-col"\r\n [ngClass]="{\'delete-row\' : row.leftContent?.prefix === \'-\', \'insert-row\' : row.rightContent?.prefix === \'+\'}"\r\n *ngIf="row.hasDiffs && row.rightContent && row.rightContent?.lineDiffs.length !== 0">\r\n <span [innerHTML]="diff.content | formatLine" [ngClass]="{\'highlight\': diff.isDiff}"\r\n *ngFor="let diff of row.rightContent?.lineDiffs; trackBy: trackDiffs"></span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n',styles:[".td-wrapper{display:-ms-grid;display:grid;width:100%;grid-row-gap:10px;-ms-grid-columns:([col] 50%)[2];grid-template-columns:repeat(2,[col] 50%);-ms-grid-rows:([row] auto)[2];grid-template-rows:repeat(2,[row] auto);background-color:#fff;color:#444}.td-toolbar-show-diff{-ms-grid-column:1;grid-column:1;-ms-grid-row:1;grid-row:1}.td-toolbar-select-format{margin-left:auto;-ms-grid-column:2;grid-column:2;-ms-grid-row:1;grid-row:1}.td-table-container{-ms-grid-column:1;-ms-grid-column-span:1;grid-column:1/2;-ms-grid-row:2;grid-row:2;width:100%;max-width:100%;overflow-x:auto}.td-table-wrapper{display:flex;width:200%}.td-table{border:1px solid #a9a9a9;max-height:50vh;width:100%;max-width:100%}.fit-column{width:1px;white-space:nowrap}.line-number-col{border-right:1px solid #ddd;color:#999;text-align:right;background-color:#f7f7f7;padding-left:10px;padding-right:10px;font-size:87.5%}.line-number-col-left{color:#999;padding-left:10px;padding-right:10px;text-align:right;background-color:#f7f7f7;font-size:87.5%}.insert-row,.insert-row>.line-number-col{background-color:#dfd;border-color:#b4e2b4}.delete-row,.delete-row>.line-number-col{background-color:#fee8e9;border-color:#e9aeae}.empty-row{background-color:#f7f7f7;height:24px}.td-table td{border-top:0;padding-top:0;padding-bottom:0;white-space:nowrap;max-width:50%}pre{margin-bottom:0}td.content-col{padding:0;margin:0;line-height:24px}td.prefix-col{padding-left:10px;padding-right:10px;line-height:24px}.td-btn-group{border-radius:4px}.td-btn-group button{background-color:rgba(23,162,184,.7);border:1px solid #17a2b8;color:#fff;cursor:pointer;float:left}.td-btn-group button:not(:last-child){border-right:none}.td-btn-group button:first-child{-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-topleft:4px;-moz-border-radius-bottomleft:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.td-btn-group button:last-child{-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.td-btn-group:after{content:'';clear:both;display:table}.td-btn-group button.active,.td-btn-group button:hover{background-color:#17a2b8}.td-checkbox-container{display:block;position:relative;padding-left:21px;margin-bottom:0;cursor:pointer;font-size:16px;line-height:28px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.td-checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark{position:absolute;top:7px;left:0;height:16px;width:16px;background-color:#eee}.td-checkbox-container:hover input~.checkmark{background-color:#ccc}.td-checkbox-container input:checked~.checkmark{background-color:#17a2b8}.checkmark:after{content:\"\";position:absolute;display:none}.td-checkbox-container input:checked~.checkmark:after{display:block}.td-checkbox-container .checkmark:after{left:5px;top:3px;width:5px;height:10px;border:solid #fff;border-width:0 3px 3px 0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.insert-row>.highlight{background-color:#acf2bd!important}.delete-row>.highlight{background-color:#fdb8c0!important}"]}]}],t.ctorParameters=function(){return[{type:o},{type:r.ChangeDetectorRef}]},t.propDecorators={format:[{type:r.Input}],left:[{type:r.Input}],right:[{type:r.Input}],diffContent:[{type:r.Input}],loading:[{type:r.Input}],showBtnToolbar:[{type:r.Input}]},t}(),a=function(){function t(){this.active=!1}return t.prototype.ngOnInit=function(){},t.decorators=[{type:r.Component,args:[{selector:"td-loader-spinner",template:'<div class="td-loading-roller" *ngIf="active">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n</div>\r\n',styles:['.td-loading-roller{display:inline-block;position:relative;width:64px;height:64px}.td-loading-roller div{-webkit-animation:1.2s cubic-bezier(.5,0,.5,1) infinite lds-roller;animation:1.2s cubic-bezier(.5,0,.5,1) infinite lds-roller;-webkit-transform-origin:32px 32px;transform-origin:32px 32px}.td-loading-roller div:after{content:" ";display:block;position:absolute;width:6px;height:6px;border-radius:50%;background:#000;margin:-3px 0 0 -3px}.td-loading-roller div:nth-child(1){-webkit-animation-delay:-36ms;animation-delay:-36ms}.td-loading-roller div:nth-child(1):after{top:50px;left:50px}.td-loading-roller div:nth-child(2){-webkit-animation-delay:-72ms;animation-delay:-72ms}.td-loading-roller div:nth-child(2):after{top:54px;left:45px}.td-loading-roller div:nth-child(3){-webkit-animation-delay:-108ms;animation-delay:-108ms}.td-loading-roller div:nth-child(3):after{top:57px;left:39px}.td-loading-roller div:nth-child(4){-webkit-animation-delay:-144ms;animation-delay:-144ms}.td-loading-roller div:nth-child(4):after{top:58px;left:32px}.td-loading-roller div:nth-child(5){-webkit-animation-delay:-.18s;animation-delay:-.18s}.td-loading-roller div:nth-child(5):after{top:57px;left:25px}.td-loading-roller div:nth-child(6){-webkit-animation-delay:-216ms;animation-delay:-216ms}.td-loading-roller div:nth-child(6):after{top:54px;left:19px}.td-loading-roller div:nth-child(7){-webkit-animation-delay:-252ms;animation-delay:-252ms}.td-loading-roller div:nth-child(7):after{top:50px;left:14px}.td-loading-roller div:nth-child(8){-webkit-animation-delay:-288ms;animation-delay:-288ms}.td-loading-roller div:nth-child(8):after{top:45px;left:10px}@-webkit-keyframes lds-roller{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes lds-roller{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}']}]}],t.ctorParameters=function(){return[]},t.propDecorators={active:[{type:r.Input}]},t}(),s=function(){function t(){}return t.prototype.transform=function(t,n){return t?(n&&n.length,t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/ /g,"&nbsp;")):" "},t.decorators=[{type:r.Pipe,args:[{name:"formatLine"}]}],t}(),f=function(){function t(){}return t.decorators=[{type:r.NgModule,args:[{imports:[n.CommonModule,e.FormsModule],declarations:[l,a,s],exports:[l]}]}],t}();t.NgxTextDiffService=o,t.NgxTextDiffComponent=l,t.NgxTextDiffModule=f,t.ɵb=s,t.ɵa=a,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=ngx-text-diff.umd.min.js.map
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -18,4 +18,4 @@ import { Pipe } from '@angular/core';

/*diffs.forEach(diff => {
line = line.replace(diff, `<span class="highli">${diff}</span>`);
});*/
line = line.replace(diff, `<span class="highli">${diff}</span>`);
});*/
}

@@ -35,3 +35,2 @@ return line

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWxpbmUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC10ZXh0LWRpZmYvIiwic291cmNlcyI6WyJsaWIvZm9ybWF0LWxpbmUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFLcEQsTUFBTTs7Ozs7O0lBQ0osU0FBUyxDQUFDLElBQVksRUFBRSxLQUFnQjtRQUN0QyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUNELElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTs7OztTQUloQztRQUNELE9BQU8sSUFBSTthQUNSLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO2FBQ3RCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDO2FBQ3ZCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7S0FDNUI7OztZQW5CRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLFlBQVk7YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2Zvcm1hdExpbmUnXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1hdExpbmVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShsaW5lOiBzdHJpbmcsIGRpZmZzPzogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGlmICghbGluZSkge1xuICAgICAgcmV0dXJuICcgJztcbiAgICB9XG4gICAgaWYgKCEhZGlmZnMgJiYgZGlmZnMubGVuZ3RoID4gMCkge1xuICAgICAgLypkaWZmcy5mb3JFYWNoKGRpZmYgPT4ge1xuICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKGRpZmYsIGA8c3BhbiBjbGFzcz1cImhpZ2hsaVwiPiR7ZGlmZn08L3NwYW4+YCk7XG4gICAgICB9KTsqL1xuICAgIH1cbiAgICByZXR1cm4gbGluZVxuICAgICAgLnJlcGxhY2UoLyYvZywgJyZhbXA7JylcbiAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcbiAgICAgIC5yZXBsYWNlKC8+L2csICcmZ3Q7JylcbiAgICAgIC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JylcbiAgICAgIC5yZXBsYWNlKC8gL2csICcmbmJzcDsnKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWxpbmUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC10ZXh0LWRpZmYvIiwic291cmNlcyI6WyJsaWIvZm9ybWF0LWxpbmUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFLcEQsTUFBTSxPQUFPLGNBQWM7Ozs7OztJQUN6QixTQUFTLENBQUMsSUFBWSxFQUFFLEtBQWdCO1FBQ3RDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPLEdBQUcsQ0FBQztTQUNaO1FBQ0QsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9COztpQkFFSztTQUNOO1FBQ0QsT0FBTyxJQUFJO2FBQ1IsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7YUFDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7YUFDckIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7YUFDckIsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7YUFDdkIsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3QixDQUFDOzs7WUFuQkYsSUFBSSxTQUFDO2dCQUNKLElBQUksRUFBRSxZQUFZO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdmb3JtYXRMaW5lJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybWF0TGluZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0obGluZTogc3RyaW5nLCBkaWZmcz86IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICAgIGlmICghbGluZSkge1xyXG4gICAgICByZXR1cm4gJyAnO1xyXG4gICAgfVxyXG4gICAgaWYgKCEhZGlmZnMgJiYgZGlmZnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAvKmRpZmZzLmZvckVhY2goZGlmZiA9PiB7XHJcbiAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZShkaWZmLCBgPHNwYW4gY2xhc3M9XCJoaWdobGlcIj4ke2RpZmZ9PC9zcGFuPmApO1xyXG4gICAgICB9KTsqL1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGxpbmVcclxuICAgICAgLnJlcGxhY2UoLyYvZywgJyZhbXA7JylcclxuICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKVxyXG4gICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpXHJcbiAgICAgIC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JylcclxuICAgICAgLnJlcGxhY2UoLyAvZywgJyZuYnNwOycpO1xyXG4gIH1cclxufVxyXG4iXX0=
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -18,3 +18,3 @@ import { Component, Input } from '@angular/core';

selector: 'td-loader-spinner',
template: "<div class=\"td-loading-roller\" *ngIf=\"active\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n</div>\n",
template: "<div class=\"td-loading-roller\" *ngIf=\"active\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n</div>\r\n",
styles: [".td-loading-roller{display:inline-block;position:relative;width:64px;height:64px}.td-loading-roller div{-webkit-animation:1.2s cubic-bezier(.5,0,.5,1) infinite lds-roller;animation:1.2s cubic-bezier(.5,0,.5,1) infinite lds-roller;-webkit-transform-origin:32px 32px;transform-origin:32px 32px}.td-loading-roller div:after{content:\" \";display:block;position:absolute;width:6px;height:6px;border-radius:50%;background:#000;margin:-3px 0 0 -3px}.td-loading-roller div:nth-child(1){-webkit-animation-delay:-36ms;animation-delay:-36ms}.td-loading-roller div:nth-child(1):after{top:50px;left:50px}.td-loading-roller div:nth-child(2){-webkit-animation-delay:-72ms;animation-delay:-72ms}.td-loading-roller div:nth-child(2):after{top:54px;left:45px}.td-loading-roller div:nth-child(3){-webkit-animation-delay:-108ms;animation-delay:-108ms}.td-loading-roller div:nth-child(3):after{top:57px;left:39px}.td-loading-roller div:nth-child(4){-webkit-animation-delay:-144ms;animation-delay:-144ms}.td-loading-roller div:nth-child(4):after{top:58px;left:32px}.td-loading-roller div:nth-child(5){-webkit-animation-delay:-.18s;animation-delay:-.18s}.td-loading-roller div:nth-child(5):after{top:57px;left:25px}.td-loading-roller div:nth-child(6){-webkit-animation-delay:-216ms;animation-delay:-216ms}.td-loading-roller div:nth-child(6):after{top:54px;left:19px}.td-loading-roller div:nth-child(7){-webkit-animation-delay:-252ms;animation-delay:-252ms}.td-loading-roller div:nth-child(7):after{top:50px;left:14px}.td-loading-roller div:nth-child(8){-webkit-animation-delay:-288ms;animation-delay:-288ms}.td-loading-roller div:nth-child(8):after{top:45px;left:10px}@-webkit-keyframes lds-roller{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes lds-roller{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}"]

@@ -32,3 +32,2 @@ }] }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLXNwaW5uZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXRleHQtZGlmZi8iLCJzb3VyY2VzIjpbImxpYi9sb2FkZXItc3Bpbm5lci9sb2FkZXItc3Bpbm5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBT3pELE1BQU07SUFHSjtzQkFGa0IsS0FBSztLQUVQOzs7O0lBRWhCLFFBQVEsTUFBSzs7O1lBVmQsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLGdNQUE4Qzs7YUFFL0M7Ozs7O3FCQUVFLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGQtbG9hZGVyLXNwaW5uZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9hZGVyLXNwaW5uZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb2FkZXItc3Bpbm5lci5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTG9hZGVyU3Bpbm5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGFjdGl2ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHt9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLXNwaW5uZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXRleHQtZGlmZi8iLCJzb3VyY2VzIjpbImxpYi9sb2FkZXItc3Bpbm5lci9sb2FkZXItc3Bpbm5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBT3pELE1BQU0sT0FBTyxzQkFBc0I7SUFHakM7UUFGUyxXQUFNLEdBQUcsS0FBSyxDQUFDO0lBRVQsQ0FBQzs7OztJQUVoQixRQUFRLEtBQUksQ0FBQzs7O1lBVmQsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLG9OQUE4Qzs7YUFFL0M7Ozs7O3FCQUVFLEtBQUs7Ozs7SUFBTix3Q0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGQtbG9hZGVyLXNwaW5uZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2FkZXItc3Bpbm5lci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbG9hZGVyLXNwaW5uZXIuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2FkZXJTcGlubmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBhY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHt9XHJcbn1cclxuIl19
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -50,12 +50,19 @@ import * as tslib_1 from "tslib";

ngOnInit() {
this.loading = true;
if (this.diffContent) {
this.subscriptions.push(this.diffContent.subscribe(content => {
this.loading = true;
this.left = content.leftContent;
this.right = content.rightContent;
this.renderDiffs().then(() => {
this.renderDiffs()
.then(() => {
this.cd.detectChanges();
});
this.loading = false;
})
.catch(() => (this.loading = false));
}));
}
this.renderDiffs().then();
this.renderDiffs()
.then(() => (this.loading = false))
.catch(e => (this.loading = false));
}

@@ -98,3 +105,2 @@ /**

try {
this.loading = true;
this.diffsCount = 0;

@@ -132,5 +138,6 @@ this.tableRows = yield this.diff.getDiffsByLines(this.left, this.right);

this.filteredTableRowsLineByLine = this.tableRowsLineByLine;
this.loading = false;
}
catch (e) { }
catch (e) {
throw e;
}
});

@@ -204,8 +211,13 @@ }

NgxTextDiffComponent.prototype.formatOptions;
/** @type {?} */
/**
* @type {?}
* @private
*/
NgxTextDiffComponent.prototype.diff;
/** @type {?} */
/**
* @type {?}
* @private
*/
NgxTextDiffComponent.prototype.cd;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtdGV4dC1kaWZmLyIsInNvdXJjZXMiOlsibGliL25neC10ZXh0LWRpZmYuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBT2hELE1BQU07Ozs7O0lBZ0NKLFlBQW9CLElBQXdCLEVBQVUsRUFBcUI7UUFBdkQsU0FBSSxHQUFKLElBQUksQ0FBb0I7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtzQkEvQnhDLFlBQVk7b0JBQy9CLEVBQUU7cUJBQ0QsRUFBRTt1QkFFQSxLQUFLOzhCQUNFLElBQUk7NkJBQ0UsRUFBRTt5QkFDQSxFQUFFO2lDQUNNLEVBQUU7bUNBQ0EsRUFBRTsyQ0FDTSxFQUFFOzhCQUNyQyxLQUFLOzBCQUNULENBQUM7NkJBRTJCO1lBQ3ZDO2dCQUNFLEVBQUUsRUFBRSxjQUFjO2dCQUNsQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsS0FBSyxFQUFFLGNBQWM7Z0JBQ3JCLEtBQUssRUFBRSxZQUFZO2dCQUNuQixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLEVBQUUsRUFBRSxjQUFjO2dCQUNsQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsS0FBSyxFQUFFLGNBQWM7Z0JBQ3JCLEtBQUssRUFBRSxZQUFZO2dCQUNuQixJQUFJLEVBQUUsY0FBYzthQUNyQjtTQUNGO0tBRThFOzs7O0lBRS9FLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMs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QUssRUFBRSxJQUFjO1FBQzlCLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztLQUN4RDs7O1lBOUhGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1Qix1aU5BQTZDOzthQUU5Qzs7OztZQVBRLGtCQUFrQjtZQUZsQixpQkFBaUI7OztxQkFXdkIsS0FBSzttQkFDTCxLQUFLO29CQUNMLEtBQUs7MEJBQ0wsS0FBSztzQkFDTCxLQUFLOzZCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlmZkNvbnRlbnQsIERpZmZQYXJ0LCBEaWZmVGFibGVGb3JtYXQsIERpZmZUYWJsZUZvcm1hdE9wdGlvbiwgRGlmZlRhYmxlUm93UmVzdWx0IH0gZnJvbSAnLi9uZ3gtdGV4dC1kaWZmLm1vZGVsJztcclxuaW1wb3J0IHsgTmd4VGV4dERpZmZTZXJ2aWNlIH0gZnJvbSAnLi9uZ3gtdGV4dC1kaWZmLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGQtbmd4LXRleHQtZGlmZicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25neC10ZXh0LWRpZmYuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25neC10ZXh0LWRpZmYuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hUZXh0RGlmZkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBmb3JtYXQ6IERpZmZUYWJsZUZvcm1hdCA9ICdTaWRlQnlTaWRlJztcclxuICBASW5wdXQoKSBsZWZ0ID0gJyc7XHJcbiAgQElucHV0KCkgcmlnaHQgPSAnJztcclxuICBASW5wdXQoKSBkaWZmQ29udGVudDogT2JzZXJ2YWJsZTxEaWZmQ29udGVudD47XHJcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dCdG5Ub29sYmFyID0gdHJ1ZTtcclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIHRhYmxlUm93czogRGlmZlRhYmxlUm93UmVzdWx0W10gPSBbXTtcclxuICBmaWx0ZXJlZFRhYmxlUm93czogRGlmZlRhYmxlUm93UmVzdWx0W10gPSBbXTtcclxuICB0YWJsZVJvd3NMaW5lQnlMaW5lOiBEaWZmVGFibGVSb3dSZXN1bHRbXSA9IFtdO1xyXG4gIGZpbHRlcmVkVGFibGVSb3dzTGluZUJ5TGluZTogRGlmZlRhYmxlUm93UmVzdWx0W10gPSBbXTtcclxuICBzaG93TGluZXNEaWZmcyA9IGZhbHNlO1xyXG4gIGRpZmZzQ291bnQgPSAwO1xyXG5cclxuICBmb3JtYXRPcHRpb25zOiBEaWZmVGFibGVGb3JtYXRPcHRpb25bXSA9IFtcclxuICAgIHtcclxuICAgICAgaWQ6ICdzaWRlLWJ5LXNpZGUnLFxyXG4gICAgICBuYW1lOiAnc2lkZS1ieS1zaWRlJyxcclxuICAgICAgbGFiZWw6ICdTaWRlIGJ5IFNpZGUnLFxyXG4gICAgICB2YWx1ZTogJ1NpZGVCeVNpZGUnLFxyXG4gICAgICBpY29uOiAnbGEtY29kZSdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiAnbGluZS1ieS1saW5lJyxcclxuICAgICAgbmFtZTogJ2xpbmUtYnktbGluZScsXHJcbiAgICAgIGxhYmVsOiAnTGluZSBieSBMaW5lJyxcclxuICAgICAgdmFsdWU6ICdMaW5lQnlMaW5lJyxcclxuICAgICAgaWNvbjogJ2xhLWZpbGUtdGV4dCdcclxuICAgIH1cclxuICBdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpZmY6IE5neFRleHREaWZmU2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZGlmZkNvbnRlbnQpIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5kaWZmQ29udGVudC5zdWJzY3JpYmUoY29udGVudCA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxlZnQgPSBjb250ZW50LmxlZnRDb250ZW50O1xyXG4gICAgICAgICAgdGhpcy5yaWdodCA9IGNvbnRlbnQucmlnaHRDb250ZW50O1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJEaWZmcygpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlbmRlckRpZmZzKCkudGhlbigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25zKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93TGluZXNEaWZmc0NoYW5nZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zaG93TGluZXNEaWZmcyA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMuc2hvd0xpbmVzRGlmZnMpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZFRhYmxlUm93cyA9IHRoaXMudGFibGVSb3dzLmZpbHRlcihcclxuICAgICAgICByb3cgPT4gKHJvdy5sZWZ0Q29udGVudCAmJiByb3cubGVmdENvbnRlbnQucHJlZml4ID09PSAnLScpIHx8IChyb3cucmlnaHRDb250ZW50ICYmIHJvdy5yaWdodENvbnRlbnQucHJlZml4ID09PSAnKycpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRUYWJsZVJvd3NMaW5lQnlMaW5lID0gdGhpcy50YWJsZVJvd3NMaW5lQnlMaW5lLmZpbHRlcihcclxuICAgICAgICByb3cgPT4gKHJvdy5sZWZ0Q29udGVudCAmJiByb3cubGVmdENvbnRlbnQucHJlZml4ID09PSAnLScpIHx8IChyb3cucmlnaHRDb250ZW50ICYmIHJvdy5yaWdodENvbnRlbnQucHJlZml4ID09PSAnKycpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkVGFibGVSb3dzID0gdGhpcy50YWJsZVJvd3M7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRUYWJsZVJvd3NMaW5lQnlMaW5lID0gdGhpcy50YWJsZVJvd3NMaW5lQnlMaW5lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RGlmZlRhYmxlRm9ybWF0KGZvcm1hdDogRGlmZlRhYmxlRm9ybWF0KSB7XHJcbiAgICB0aGlzLmZvcm1hdCA9IGZvcm1hdDtcclxuICB9XHJcblxyXG4gIGFzeW5jIHJlbmRlckRpZmZzKCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kaWZmc0NvdW50ID0gMDtcclxuICAgICAgdGhpcy50YWJsZVJvd3MgPSBhd2FpdCB0aGlzLmRpZmYuZ2V0RGlmZnNCeUxpbmVzKHRoaXMubGVmdCwgdGhpcy5yaWdodCk7XHJcbiAgICAgIHRoaXMudGFibGVSb3dzTGluZUJ5TGluZSA9IHRoaXMudGFibGVSb3dzLnJlZHVjZSgodGFibGVMaW5lQnlMaW5lOiBEaWZmVGFibGVSb3dSZXN1bHRbXSwgcm93OiBEaWZmVGFibGVSb3dSZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAoIXRhYmxlTGluZUJ5TGluZSkge1xyXG4gICAgICAgICAgdGFibGVMaW5lQnlMaW5lID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyb3cuaGFzRGlmZnMpIHtcclxuICAgICAgICAgIGlmIChyb3cubGVmdENvbnRlbnQpIHtcclxuICAgICAgICAgICAgdGFibGVMaW5lQnlMaW5lLnB1c2goe1xyXG4gICAgICAgICAgICAgIGxlZnRDb250ZW50OiByb3cubGVmdENvbnRlbnQsXHJcbiAgICAgICAgICAgICAgcmlnaHRDb250ZW50OiBudWxsLFxyXG4gICAgICAgICAgICAgIGJlbG9uZ1RvOiByb3cuYmVsb25nVG8sXHJcbiAgICAgICAgICAgICAgaGFzRGlmZnM6IHRydWVcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAocm93LnJpZ2h0Q29udGVudCkge1xyXG4gICAgICAgICAgICB0YWJsZUxpbmVCeUxpbmUucHVzaCh7XHJcbiAgICAgICAgICAgICAgbGVmdENvbnRlbnQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgcmlnaHRDb250ZW50OiByb3cucmlnaHRDb250ZW50LFxyXG4gICAgICAgICAgICAgIGJlbG9uZ1RvOiByb3cuYmVsb25nVG8sXHJcbiAgICAgICAgICAgICAgaGFzRGlmZnM6IHRydWVcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRhYmxlTGluZUJ5TGluZS5wdXNoKHJvdyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGFibGVMaW5lQnlMaW5lO1xyXG4gICAgICB9LCBbXSk7XHJcbiAgICAgIHRoaXMuZGlmZnNDb3VudCA9IHRoaXMudGFibGVSb3dzLmZpbHRlcihcclxuICAgICAgICByb3cgPT4gKHJvdy5sZWZ0Q29udGVudCAmJiByb3cubGVmdENvbnRlbnQucHJlZml4ID09PSAnLScpIHx8IChyb3cucmlnaHRDb250ZW50ICYmIHJvdy5yaWdodENvbnRlbnQucHJlZml4ID09PSAnKycpXHJcbiAgICAgICkubGVuZ3RoO1xyXG4gICAgICB0aGlzLmZpbHRlcmVkVGFibGVSb3dzID0gdGhpcy50YWJsZVJvd3M7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRUYWJsZVJvd3NMaW5lQnlMaW5lID0gdGhpcy50YWJsZVJvd3NMaW5lQnlMaW5lO1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0gY2F0Y2ggKGUpIHt9XHJcbiAgfVxyXG5cclxuICB0cmFja1RhYmxlUm93cyhpbmRleCwgcm93OiBEaWZmVGFibGVSb3dSZXN1bHQpIHtcclxuICAgIHJldHVybiByb3cgJiYgcm93LmxlZnRDb250ZW50ID8gcm93LmxlZnRDb250ZW50LmxpbmVDb250ZW50IDogcm93ICYmIHJvdy5yaWdodENvbnRlbnQgPyByb3cucmlnaHRDb250ZW50LmxpbmVDb250ZW50IDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tEaWZmcyhpbmRleCwgZGlmZjogRGlmZlBhcnQpIHtcclxuICAgIHJldHVybiBkaWZmICYmIGRpZmYuY29udGVudCA/IGRpZmYuY29udGVudCA6IHVuZGVmaW5lZDtcclxuICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtdGV4dC1kaWZmLyIsInNvdXJjZXMiOlsibGliL25neC10ZXh0LWRpZmYuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBT2hELE1BQU0sT0FBTyxvQkFBb0I7Ozs7O0lBZ0MvQixZQUFvQixJQUF3QixFQUFVLEVBQXFCO1FBQXZELFNBQUksR0FBSixJQUFJLENBQW9CO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUEvQmxFLFdBQU0sR0FBb0IsWUFBWSxDQUFDO1FBQ3ZDLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUMvQixrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFDbkMsY0FBUyxHQUF5QixFQUFFLENBQUM7UUFDckMsc0JBQWlCLEdBQXlCLEVBQUUsQ0FBQztRQUM3Qyx3QkFBbUIsR0FBeUIsRUFBRSxDQUFDO1FBQy9DLGdDQUEyQixHQUF5QixFQUFFLENBQUM7UUFDdkQsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUVmLGtCQUFhLEdBQTRCO1lBQ3ZDO2dCQUNFLEVBQUUsRUFBRSxjQUFjO2dCQUNsQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsS0FBSyxFQUFFLGNBQWM7Z0JBQ3JCLEtBQUssRUFBRSxZQUFZO2dCQUNuQixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLEVBQUUsRUFBRSxjQUFjO2dCQUNsQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsS0FBSyxFQUFFLGNBQWM7Z0JBQ3JCLEtBQUssRUFBRSxZQUFZO2dCQUNuQixJQUFJLEVBQUUsY0FBYzthQUNyQjtTQUNGLENBQUM7SUFFNEUsQ0FBQzs7OztJQUUvRSxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsV0FBVyxFQUFFO3FCQUNmLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ1QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLENBQUMsQ0FBQztxQkFDRCxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDekMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztTQUNIO1FBQ0QsSUFBSSxDQUFDLFdBQVcsRUFBRTthQUNmLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUM7YUFDbEMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7OztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztTQUN4RTtJQUNILENBQUM7Ozs7O0lBRUQsb0JBQW9CLENBQUMsS0FBYztRQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUM1QyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQ3BILENBQUM7WUFDRixJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FDaEUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUNwSCxDQUFDO1NBQ0g7YUFBTTtZQUNMLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3hDLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7U0FDN0Q7SUFDSCxDQUFDOzs7OztJQUVELGtCQUFrQixDQUFDLE1BQXVCO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7Ozs7SUFFSyxXQUFXOztZQUNmLElBQUk7Z0JBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBcUMsRUFBRSxHQUF1QixFQUFFLEVBQUU7b0JBQ2xILElBQUksQ0FBQyxlQUFlLEVBQUU7d0JBQ3BCLGVBQWUsR0FBRyxFQUFFLENBQUM7cUJBQ3RCO29CQUNELElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRTt3QkFDaEIsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFOzRCQUNuQixlQUFlLENBQUMsSUFBSSxDQUFDO2dDQUNuQixXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVc7Z0NBQzVCLFlBQVksRUFBRSxJQUFJO2dDQUNsQixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7Z0NBQ3RCLFFBQVEsRUFBRSxJQUFJOzZCQUNmLENBQUMsQ0FBQzt5QkFDSjt3QkFDRCxJQUFJLEdBQUcsQ0FBQyxZQUFZLEVBQUU7NEJBQ3BCLGVBQWUsQ0FBQyxJQUFJLENBQUM7Z0NBQ25CLFdBQVcsRUFBRSxJQUFJO2dDQUNqQixZQUFZLEVBQUUsR0FBRyxDQUFDLFlBQVk7Z0NBQzlCLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtnQ0FDdEIsUUFBUSxFQUFFLElBQUk7NkJBQ2YsQ0FBQyxDQUFDO3lCQUNKO3FCQUNGO3lCQUFNO3dCQUNMLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQzNCO29CQUVELE9BQU8sZUFBZSxDQUFDO2dCQUN6QixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FDckMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUNwSCxDQUFDLE1BQU0sQ0FBQztnQkFDVCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQzthQUM3RDtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE1BQU0sQ0FBQyxDQUFDO2FBQ1Q7UUFDSCxDQUFDO0tBQUE7Ozs7OztJQUVELGNBQWMsQ0FBQyxLQUFLLEVBQUUsR0FBdUI7UUFDM0MsT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ25JLENBQUM7Ozs7OztJQUVELFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBYztRQUM5QixPQUFPLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDekQsQ0FBQzs7O1lBcklGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1Qix1aU5BQTZDOzthQUU5Qzs7OztZQVBRLGtCQUFrQjtZQUZsQixpQkFBaUI7OztxQkFXdkIsS0FBSzttQkFDTCxLQUFLO29CQUNMLEtBQUs7MEJBQ0wsS0FBSztzQkFDTCxLQUFLOzZCQUNMLEtBQUs7Ozs7SUFMTixzQ0FBZ0Q7O0lBQ2hELG9DQUFtQjs7SUFDbkIscUNBQW9COztJQUNwQiwyQ0FBOEM7O0lBQzlDLHVDQUF5Qjs7SUFDekIsOENBQStCOztJQUMvQiw2Q0FBbUM7O0lBQ25DLHlDQUFxQzs7SUFDckMsaURBQTZDOztJQUM3QyxtREFBK0M7O0lBQy9DLDJEQUF1RDs7SUFDdkQsOENBQXVCOztJQUN2QiwwQ0FBZTs7SUFFZiw2Q0FlRTs7Ozs7SUFFVSxvQ0FBZ0M7Ozs7O0lBQUUsa0NBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpZmZDb250ZW50LCBEaWZmUGFydCwgRGlmZlRhYmxlRm9ybWF0LCBEaWZmVGFibGVGb3JtYXRPcHRpb24sIERpZmZUYWJsZVJvd1Jlc3VsdCB9IGZyb20gJy4vbmd4LXRleHQtZGlmZi5tb2RlbCc7XHJcbmltcG9ydCB7IE5neFRleHREaWZmU2VydmljZSB9IGZyb20gJy4vbmd4LXRleHQtZGlmZi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RkLW5neC10ZXh0LWRpZmYnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9uZ3gtdGV4dC1kaWZmLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uZ3gtdGV4dC1kaWZmLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4VGV4dERpZmZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgZm9ybWF0OiBEaWZmVGFibGVGb3JtYXQgPSAnU2lkZUJ5U2lkZSc7XHJcbiAgQElucHV0KCkgbGVmdCA9ICcnO1xyXG4gIEBJbnB1dCgpIHJpZ2h0ID0gJyc7XHJcbiAgQElucHV0KCkgZGlmZkNvbnRlbnQ6IE9ic2VydmFibGU8RGlmZkNvbnRlbnQ+O1xyXG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93QnRuVG9vbGJhciA9IHRydWU7XHJcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICB0YWJsZVJvd3M6IERpZmZUYWJsZVJvd1Jlc3VsdFtdID0gW107XHJcbiAgZmlsdGVyZWRUYWJsZVJvd3M6IERpZmZUYWJsZVJvd1Jlc3VsdFtdID0gW107XHJcbiAgdGFibGVSb3dzTGluZUJ5TGluZTogRGlmZlRhYmxlUm93UmVzdWx0W10gPSBbXTtcclxuICBmaWx0ZXJlZFRhYmxlUm93c0xpbmVCeUxpbmU6IERpZmZUYWJsZVJvd1Jlc3VsdFtdID0gW107XHJcbiAgc2hvd0xpbmVzRGlmZnMgPSBmYWxzZTtcclxuICBkaWZmc0NvdW50ID0gMDtcclxuXHJcbiAgZm9ybWF0T3B0aW9uczogRGlmZlRhYmxlRm9ybWF0T3B0aW9uW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGlkOiAnc2lkZS1ieS1zaWRlJyxcclxuICAgICAgbmFtZTogJ3NpZGUtYnktc2lkZScsXHJcbiAgICAgIGxhYmVsOiAnU2lkZSBieSBTaWRlJyxcclxuICAgICAgdmFsdWU6ICdTaWRlQnlTaWRlJyxcclxuICAgICAgaWNvbjogJ2xhLWNvZGUnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpZDogJ2xpbmUtYnktbGluZScsXHJcbiAgICAgIG5hbWU6ICdsaW5lLWJ5LWxpbmUnLFxyXG4gICAgICBsYWJlbDogJ0xpbmUgYnkgTGluZScsXHJcbiAgICAgIHZhbHVlOiAnTGluZUJ5TGluZScsXHJcbiAgICAgIGljb246ICdsYS1maWxlLXRleHQnXHJcbiAgICB9XHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWZmOiBOZ3hUZXh0RGlmZlNlcnZpY2UsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5kaWZmQ29udGVudCkge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmRpZmZDb250ZW50LnN1YnNjcmliZShjb250ZW50ID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxlZnQgPSBjb250ZW50LmxlZnRDb250ZW50O1xyXG4gICAgICAgICAgdGhpcy5yaWdodCA9IGNvbnRlbnQucmlnaHRDb250ZW50O1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJEaWZmcygpXHJcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlbmRlckRpZmZzKClcclxuICAgICAgLnRoZW4oKCkgPT4gKHRoaXMubG9hZGluZyA9IGZhbHNlKSlcclxuICAgICAgLmNhdGNoKGUgPT4gKHRoaXMubG9hZGluZyA9IGZhbHNlKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMpIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3dMaW5lc0RpZmZzQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dMaW5lc0RpZmZzID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5zaG93TGluZXNEaWZmcykge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkVGFibGVSb3dzID0gdGhpcy50YWJsZVJvd3MuZmlsdGVyKFxyXG4gICAgICAgIHJvdyA9PiAocm93LmxlZnRDb250ZW50ICYmIHJvdy5sZWZ0Q29udGVudC5wcmVmaXggPT09ICctJykgfHwgKHJvdy5yaWdodENvbnRlbnQgJiYgcm93LnJpZ2h0Q29udGVudC5wcmVmaXggPT09ICcrJylcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5maWx0ZXJlZFRhYmxlUm93c0xpbmVCeUxpbmUgPSB0aGlzLnRhYmxlUm93c0xpbmVCeUxpbmUuZmlsdGVyKFxyXG4gICAgICAgIHJvdyA9PiAocm93LmxlZnRDb250ZW50ICYmIHJvdy5sZWZ0Q29udGVudC5wcmVmaXggPT09ICctJykgfHwgKHJvdy5yaWdodENvbnRlbnQgJiYgcm93LnJpZ2h0Q29udGVudC5wcmVmaXggPT09ICcrJylcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRUYWJsZVJvd3MgPSB0aGlzLnRhYmxlUm93cztcclxuICAgICAgdGhpcy5maWx0ZXJlZFRhYmxlUm93c0xpbmVCeUxpbmUgPSB0aGlzLnRhYmxlUm93c0xpbmVCeUxpbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXREaWZmVGFibGVGb3JtYXQoZm9ybWF0OiBEaWZmVGFibGVGb3JtYXQpIHtcclxuICAgIHRoaXMuZm9ybWF0ID0gZm9ybWF0O1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcmVuZGVyRGlmZnMoKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLmRpZmZzQ291bnQgPSAwO1xyXG4gICAgICB0aGlzLnRhYmxlUm93cyA9IGF3YWl0IHRoaXMuZGlmZi5nZXREaWZmc0J5TGluZXModGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgdGhpcy50YWJsZVJvd3NMaW5lQnlMaW5lID0gdGhpcy50YWJsZVJvd3MucmVkdWNlKCh0YWJsZUxpbmVCeUxpbmU6IERpZmZUYWJsZVJvd1Jlc3VsdFtdLCByb3c6IERpZmZUYWJsZVJvd1Jlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmICghdGFibGVMaW5lQnlMaW5lKSB7XHJcbiAgICAgICAgICB0YWJsZUxpbmVCeUxpbmUgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJvdy5oYXNEaWZmcykge1xyXG4gICAgICAgICAgaWYgKHJvdy5sZWZ0Q29udGVudCkge1xyXG4gICAgICAgICAgICB0YWJsZUxpbmVCeUxpbmUucHVzaCh7XHJcbiAgICAgICAgICAgICAgbGVmdENvbnRlbnQ6IHJvdy5sZWZ0Q29udGVudCxcclxuICAgICAgICAgICAgICByaWdodENvbnRlbnQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgYmVsb25nVG86IHJvdy5iZWxvbmdUbyxcclxuICAgICAgICAgICAgICBoYXNEaWZmczogdHJ1ZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyb3cucmlnaHRDb250ZW50KSB7XHJcbiAgICAgICAgICAgIHRhYmxlTGluZUJ5TGluZS5wdXNoKHtcclxuICAgICAgICAgICAgICBsZWZ0Q29udGVudDogbnVsbCxcclxuICAgICAgICAgICAgICByaWdodENvbnRlbnQ6IHJvdy5yaWdodENvbnRlbnQsXHJcbiAgICAgICAgICAgICAgYmVsb25nVG86IHJvdy5iZWxvbmdUbyxcclxuICAgICAgICAgICAgICBoYXNEaWZmczogdHJ1ZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGFibGVMaW5lQnlMaW5lLnB1c2gocm93KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0YWJsZUxpbmVCeUxpbmU7XHJcbiAgICAgIH0sIFtdKTtcclxuICAgICAgdGhpcy5kaWZmc0NvdW50ID0gdGhpcy50YWJsZVJvd3MuZmlsdGVyKFxyXG4gICAgICAgIHJvdyA9PiAocm93LmxlZnRDb250ZW50ICYmIHJvdy5sZWZ0Q29udGVudC5wcmVmaXggPT09ICctJykgfHwgKHJvdy5yaWdodENvbnRlbnQgJiYgcm93LnJpZ2h0Q29udGVudC5wcmVmaXggPT09ICcrJylcclxuICAgICAgKS5sZW5ndGg7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRUYWJsZVJvd3MgPSB0aGlzLnRhYmxlUm93cztcclxuICAgICAgdGhpcy5maWx0ZXJlZFRhYmxlUm93c0xpbmVCeUxpbmUgPSB0aGlzLnRhYmxlUm93c0xpbmVCeUxpbmU7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHRocm93IGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0cmFja1RhYmxlUm93cyhpbmRleCwgcm93OiBEaWZmVGFibGVSb3dSZXN1bHQpIHtcclxuICAgIHJldHVybiByb3cgJiYgcm93LmxlZnRDb250ZW50ID8gcm93LmxlZnRDb250ZW50LmxpbmVDb250ZW50IDogcm93ICYmIHJvdy5yaWdodENvbnRlbnQgPyByb3cucmlnaHRDb250ZW50LmxpbmVDb250ZW50IDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tEaWZmcyhpbmRleCwgZGlmZjogRGlmZlBhcnQpIHtcclxuICAgIHJldHVybiBkaWZmICYmIGRpZmYuY29udGVudCA/IGRpZmYuY29udGVudCA6IHVuZGVmaW5lZDtcclxuICB9XHJcbn1cclxuIl19
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @typedef {?} */
var DiffTableFormat;
export { DiffTableFormat };
/** @typedef {?} */
var SideDiff;
export { SideDiff };
/**

@@ -15,14 +9,16 @@ * @record

export function DiffTableFormatOption() { }
/** @type {?} */
DiffTableFormatOption.prototype.id;
/** @type {?} */
DiffTableFormatOption.prototype.name;
/** @type {?} */
DiffTableFormatOption.prototype.label;
/** @type {?} */
DiffTableFormatOption.prototype.value;
/** @type {?|undefined} */
DiffTableFormatOption.prototype.icon;
/** @type {?|undefined} */
DiffTableFormatOption.prototype.disabled;
if (false) {
/** @type {?} */
DiffTableFormatOption.prototype.id;
/** @type {?} */
DiffTableFormatOption.prototype.name;
/** @type {?} */
DiffTableFormatOption.prototype.label;
/** @type {?} */
DiffTableFormatOption.prototype.value;
/** @type {?|undefined} */
DiffTableFormatOption.prototype.icon;
/** @type {?|undefined} */
DiffTableFormatOption.prototype.disabled;
}
/**

@@ -32,6 +28,8 @@ * @record

export function DiffContent() { }
/** @type {?} */
DiffContent.prototype.leftContent;
/** @type {?} */
DiffContent.prototype.rightContent;
if (false) {
/** @type {?} */
DiffContent.prototype.leftContent;
/** @type {?} */
DiffContent.prototype.rightContent;
}
/**

@@ -41,6 +39,8 @@ * @record

export function DiffPart() { }
/** @type {?} */
DiffPart.prototype.content;
/** @type {?} */
DiffPart.prototype.isDiff;
if (false) {
/** @type {?} */
DiffPart.prototype.content;
/** @type {?} */
DiffPart.prototype.isDiff;
}
/**

@@ -50,10 +50,12 @@ * @record

export function DiffLineResult() { }
/** @type {?} */
DiffLineResult.prototype.lineNumber;
/** @type {?} */
DiffLineResult.prototype.prefix;
/** @type {?} */
DiffLineResult.prototype.lineContent;
/** @type {?} */
DiffLineResult.prototype.lineDiffs;
if (false) {
/** @type {?} */
DiffLineResult.prototype.lineNumber;
/** @type {?} */
DiffLineResult.prototype.prefix;
/** @type {?} */
DiffLineResult.prototype.lineContent;
/** @type {?} */
DiffLineResult.prototype.lineDiffs;
}
/**

@@ -63,11 +65,12 @@ * @record

export function DiffTableRowResult() { }
/** @type {?} */
DiffTableRowResult.prototype.leftContent;
/** @type {?} */
DiffTableRowResult.prototype.rightContent;
/** @type {?} */
DiffTableRowResult.prototype.belongTo;
/** @type {?} */
DiffTableRowResult.prototype.hasDiffs;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC10ZXh0LWRpZmYvIiwic291cmNlcyI6WyJsaWIvbmd4LXRleHQtZGlmZi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRGlmZlRhYmxlRm9ybWF0ID0gJ1NpZGVCeVNpZGUnIHwgJ0xpbmVCeUxpbmUnO1xyXG5leHBvcnQgdHlwZSBTaWRlRGlmZiA9ICdib3RoJyB8ICdsZWZ0JyB8ICdyaWdodCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpZmZUYWJsZUZvcm1hdE9wdGlvbiB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZTogRGlmZlRhYmxlRm9ybWF0O1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpZmZDb250ZW50IHtcclxuICBsZWZ0Q29udGVudDogc3RyaW5nO1xyXG4gIHJpZ2h0Q29udGVudDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpZmZQYXJ0IHtcclxuICBjb250ZW50OiBzdHJpbmc7XHJcbiAgaXNEaWZmOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpZmZMaW5lUmVzdWx0IHtcclxuICBsaW5lTnVtYmVyOiBudW1iZXI7XHJcbiAgcHJlZml4OiBzdHJpbmc7XHJcbiAgbGluZUNvbnRlbnQ6IHN0cmluZztcclxuICBsaW5lRGlmZnM6IERpZmZQYXJ0W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlmZlRhYmxlUm93UmVzdWx0IHtcclxuICBsZWZ0Q29udGVudDogRGlmZkxpbmVSZXN1bHQ7XHJcbiAgcmlnaHRDb250ZW50OiBEaWZmTGluZVJlc3VsdDtcclxuICBiZWxvbmdUbzogU2lkZURpZmY7XHJcbiAgaGFzRGlmZnM6IGJvb2xlYW47XHJcbn1cclxuIl19
if (false) {
/** @type {?} */
DiffTableRowResult.prototype.leftContent;
/** @type {?} */
DiffTableRowResult.prototype.rightContent;
/** @type {?} */
DiffTableRowResult.prototype.belongTo;
/** @type {?} */
DiffTableRowResult.prototype.hasDiffs;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC10ZXh0LWRpZmYvIiwic291cmNlcyI6WyJsaWIvbmd4LXRleHQtZGlmZi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBR0EsMkNBT0M7OztJQU5DLG1DQUFXOztJQUNYLHFDQUFhOztJQUNiLHNDQUFjOztJQUNkLHNDQUF1Qjs7SUFDdkIscUNBQWM7O0lBQ2QseUNBQW1COzs7OztBQUdyQixpQ0FHQzs7O0lBRkMsa0NBQW9COztJQUNwQixtQ0FBcUI7Ozs7O0FBR3ZCLDhCQUdDOzs7SUFGQywyQkFBZ0I7O0lBQ2hCLDBCQUFnQjs7Ozs7QUFHbEIsb0NBS0M7OztJQUpDLG9DQUFtQjs7SUFDbkIsZ0NBQWU7O0lBQ2YscUNBQW9COztJQUNwQixtQ0FBc0I7Ozs7O0FBR3hCLHdDQUtDOzs7SUFKQyx5Q0FBNEI7O0lBQzVCLDBDQUE2Qjs7SUFDN0Isc0NBQW1COztJQUNuQixzQ0FBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBEaWZmVGFibGVGb3JtYXQgPSAnU2lkZUJ5U2lkZScgfCAnTGluZUJ5TGluZSc7XHJcbmV4cG9ydCB0eXBlIFNpZGVEaWZmID0gJ2JvdGgnIHwgJ2xlZnQnIHwgJ3JpZ2h0JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlmZlRhYmxlRm9ybWF0T3B0aW9uIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHZhbHVlOiBEaWZmVGFibGVGb3JtYXQ7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlmZkNvbnRlbnQge1xyXG4gIGxlZnRDb250ZW50OiBzdHJpbmc7XHJcbiAgcmlnaHRDb250ZW50OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlmZlBhcnQge1xyXG4gIGNvbnRlbnQ6IHN0cmluZztcclxuICBpc0RpZmY6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlmZkxpbmVSZXN1bHQge1xyXG4gIGxpbmVOdW1iZXI6IG51bWJlcjtcclxuICBwcmVmaXg6IHN0cmluZztcclxuICBsaW5lQ29udGVudDogc3RyaW5nO1xyXG4gIGxpbmVEaWZmczogRGlmZlBhcnRbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaWZmVGFibGVSb3dSZXN1bHQge1xyXG4gIGxlZnRDb250ZW50OiBEaWZmTGluZVJlc3VsdDtcclxuICByaWdodENvbnRlbnQ6IERpZmZMaW5lUmVzdWx0O1xyXG4gIGJlbG9uZ1RvOiBTaWRlRGlmZjtcclxuICBoYXNEaWZmczogYm9vbGVhbjtcclxufVxyXG4iXX0=
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -20,3 +20,2 @@ import { NgModule } from '@angular/core';

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtdGV4dC1kaWZmLyIsInNvdXJjZXMiOlsibGliL25neC10ZXh0LWRpZmYubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBT3BELE1BQU07OztZQUxMLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO2dCQUNwQyxZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLENBQUM7Z0JBQzVFLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2FBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmd4VGV4dERpZmZDb21wb25lbnQgfSBmcm9tICcuL25neC10ZXh0LWRpZmYuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IExvYWRlclNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2xvYWRlci1zcGlubmVyL2xvYWRlci1zcGlubmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1hdExpbmVQaXBlIH0gZnJvbSAnLi9mb3JtYXQtbGluZS5waXBlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxyXG4gIGRlY2xhcmF0aW9uczogW05neFRleHREaWZmQ29tcG9uZW50LCBMb2FkZXJTcGlubmVyQ29tcG9uZW50LCBGb3JtYXRMaW5lUGlwZV0sXHJcbiAgZXhwb3J0czogW05neFRleHREaWZmQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4VGV4dERpZmZNb2R1bGUge31cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtdGV4dC1kaWZmLyIsInNvdXJjZXMiOlsibGliL25neC10ZXh0LWRpZmYubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBT3BELE1BQU0sT0FBTyxpQkFBaUI7OztZQUw3QixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztnQkFDcEMsWUFBWSxFQUFFLENBQUMsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxDQUFDO2dCQUM1RSxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzthQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5neFRleHREaWZmQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3gtdGV4dC1kaWZmLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMb2FkZXJTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkZXItc3Bpbm5lci9sb2FkZXItc3Bpbm5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtYXRMaW5lUGlwZSB9IGZyb20gJy4vZm9ybWF0LWxpbmUucGlwZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcclxuICBkZWNsYXJhdGlvbnM6IFtOZ3hUZXh0RGlmZkNvbXBvbmVudCwgTG9hZGVyU3Bpbm5lckNvbXBvbmVudCwgRm9ybWF0TGluZVBpcGVdLFxyXG4gIGV4cG9ydHM6IFtOZ3hUZXh0RGlmZkNvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFRleHREaWZmTW9kdWxlIHt9XHJcbiJdfQ==
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { DIFF_DELETE, DIFF_EQUAL, DIFF_INSERT, diff_match_patch } from 'diff-match-patch';
import { isEmpty, isNil } from './ngx-text-diff.utils';
import { isEmpty } from './ngx-text-diff.utils';
import * as i0 from "@angular/core";

@@ -14,2 +14,3 @@ export class NgxTextDiffService {

/**
* @private
* @return {?}

@@ -39,3 +40,3 @@ */

/** @type {?} */
const rows = this.formatOutputNew(diffs, linesArray);
const rows = this.formatOutput(diffs);
if (!rows) {

@@ -48,18 +49,7 @@ reject('Error');

/**
* @private
* @param {?} diffs
* @param {?=} lines
* @return {?}
*/
formatOutputNew(diffs, lines) {
if (lines) {
return this.formatDiffsFromLines(diffs, lines);
}
}
/**
* @param {?} diffs
* @param {?} lines
* @return {?}
*/
formatDiffsFromLines(diffs, lines) {
lines.splice(0, 1);
formatOutput(diffs) {
/** @type {?} */

@@ -69,4 +59,3 @@ let lineLeft = 1;

let lineRight = 1;
/** @type {?} */
const diffRowsResult = diffs.reduce((rows, diff) => {
return diffs.reduce((rows, diff) => {
if (!rows) {

@@ -76,106 +65,123 @@ rows = [];

/** @type {?} */
let diffValues = diff[1];
while (!isNil(diffValues) || !isEmpty(diffValues) || diffValues.length > 0) {
/** @type {?} */
const findIndex = lines.findIndex(line => diffValues.includes(line));
if (findIndex >= 0) {
/** @type {?} */
const line = lines[findIndex];
/** @type {?} */
let leftDiffRow = null;
/** @type {?} */
let rightDiffRow = null;
/** @type {?} */
let leftContent = null;
/** @type {?} */
let rightContent = null;
/** @type {?} */
let rowTemp = null;
switch (diff[0]) {
case DIFF_EQUAL:
leftContent = {
lineNumber: lineLeft,
lineContent: line,
lineDiffs: [],
prefix: ''
};
rightContent = {
lineNumber: lineRight,
lineContent: line,
lineDiffs: [],
prefix: ''
};
rowTemp = {
const diffType = diff[0];
/** @type {?} */
const diffValue = diff[1];
/** @type {?} */
let leftDiffRow = null;
/** @type {?} */
let rightDiffRow = null;
/** @type {?} */
let leftContent = null;
/** @type {?} */
let rightContent = null;
/** @type {?} */
let rowTemp = null;
switch (diffType) {
case DIFF_EQUAL: // 0
diffValue
.split('\n')
.filter((value, index, array) => {
if (index === array.length - 1) {
return !isEmpty(value);
}
return true;
})
.forEach(line => {
leftContent = {
lineNumber: lineLeft,
lineContent: line,
lineDiffs: [],
prefix: ''
};
rightContent = {
lineNumber: lineRight,
lineContent: line,
lineDiffs: [],
prefix: ''
};
rowTemp = {
leftContent,
rightContent,
belongTo: 'both',
hasDiffs: false
};
rows.push(rowTemp);
lineRight = lineRight + 1;
lineLeft = lineLeft + 1;
});
break;
case DIFF_DELETE: // -1
diffValue
.split('\n')
.filter((value, index, array) => {
if (index === array.length - 1) {
return !isEmpty(value);
}
return true;
})
.forEach(line => {
rightDiffRow = rows.find(row => !row.leftContent && row.rightContent && row.rightContent.lineNumber === lineLeft && row.rightContent.prefix !== '');
leftContent = {
lineNumber: lineLeft,
lineContent: line,
lineDiffs: [{ content: line, isDiff: true }],
prefix: '-'
};
if (rightDiffRow) {
rightDiffRow.leftContent = leftContent;
rightDiffRow.leftContent.lineDiffs = this.getDiffParts(rightDiffRow.leftContent.lineContent, rightDiffRow.rightContent.lineContent);
rightDiffRow.rightContent.lineDiffs = this.getDiffParts(rightDiffRow.rightContent.lineContent, rightDiffRow.leftContent.lineContent);
rightDiffRow.belongTo = 'both';
}
else {
rows.push({
leftContent,
rightContent: null,
hasDiffs: true,
belongTo: 'left'
});
}
lineLeft = lineLeft + 1;
});
break;
case DIFF_INSERT: // 1
diffValue
.split('\n')
.filter((value, index, array) => {
if (index === array.length - 1) {
return !isEmpty(value);
}
return true;
})
.forEach(line => {
leftDiffRow = rows.find(row => row.leftContent && !row.rightContent && row.leftContent.lineNumber === lineRight && row.leftContent.prefix !== '');
rightContent = {
lineNumber: lineRight,
lineContent: line,
lineDiffs: [{ content: line, isDiff: true }],
prefix: '+'
};
if (leftDiffRow) {
leftDiffRow.rightContent = rightContent;
leftDiffRow.leftContent.lineDiffs = this.getDiffParts(leftDiffRow.leftContent.lineContent, leftDiffRow.rightContent.lineContent);
leftDiffRow.rightContent.lineDiffs = this.getDiffParts(leftDiffRow.rightContent.lineContent, leftDiffRow.leftContent.lineContent);
leftDiffRow.belongTo = 'both';
}
else {
rows.push({
leftContent: null,
rightContent,
belongTo: 'both',
hasDiffs: false
};
rows.push(rowTemp);
lineRight = lineRight + 1;
lineLeft = lineLeft + 1;
break;
case DIFF_INSERT:
leftDiffRow = rows.find(row => row.leftContent && !row.rightContent && row.leftContent.lineNumber === lineRight && row.leftContent.prefix !== '');
rightContent = {
lineNumber: lineRight,
lineContent: line,
lineDiffs: [{ content: line, isDiff: true }],
prefix: '+'
};
if (leftDiffRow) {
leftDiffRow.rightContent = rightContent;
leftDiffRow.leftContent.lineDiffs = this.getDiffParts(leftDiffRow.leftContent.lineContent, leftDiffRow.rightContent.lineContent);
leftDiffRow.rightContent.lineDiffs = this.getDiffParts(leftDiffRow.rightContent.lineContent, leftDiffRow.leftContent.lineContent);
leftDiffRow.belongTo = 'both';
}
else {
rows.push({
leftContent: null,
rightContent,
hasDiffs: true,
belongTo: 'right'
});
}
lineRight = lineRight + 1;
break;
case DIFF_DELETE:
rightDiffRow = rows.find(row => !row.leftContent && row.rightContent && row.rightContent.lineNumber === lineLeft && row.rightContent.prefix !== '');
leftContent = {
lineNumber: lineLeft,
lineContent: line,
lineDiffs: [{ content: line, isDiff: true }],
prefix: '-'
};
if (rightDiffRow) {
rightDiffRow.leftContent = leftContent;
rightDiffRow.leftContent.lineDiffs = this.getDiffParts(rightDiffRow.leftContent.lineContent, rightDiffRow.rightContent.lineContent);
rightDiffRow.rightContent.lineDiffs = this.getDiffParts(rightDiffRow.rightContent.lineContent, rightDiffRow.leftContent.lineContent);
rightDiffRow.belongTo = 'both';
}
else {
rows.push({
leftContent,
rightContent: null,
hasDiffs: true,
belongTo: 'left'
});
}
lineLeft = lineLeft + 1;
break;
default:
break;
}
diffValues = diffValues.replace(line, '');
lines.splice(findIndex, 1);
}
else {
hasDiffs: true,
belongTo: 'right'
});
}
lineRight = lineRight + 1;
});
break;
}
}
return rows;
}, []);
return diffRowsResult;
}
/**
* @private
* @param {?} value

@@ -235,3 +241,2 @@ * @param {?} compareValue

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXRleHQtZGlmZi8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtdGV4dC1kaWZmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFRLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFLdkQsTUFBTTtJQUdKO1FBQ0UsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0tBQ25COzs7O0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQzs7Ozs7OztJQUczQyxlQUFlLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDekMsT0FBTyxJQUFJLE9BQU8sQ0FBdUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7O1lBQzNELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDOztZQUMxRCxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDOztZQUMzQixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDOztZQUMzQixNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDOztZQUMvQixNQUFNLEtBQUssR0FBVyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVFLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDOztZQUN0RCxNQUFNLElBQUks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QUU7WUFDeEIsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDcEQ7UUFFRCxPQUFPLFNBQVMsQ0FBQzs7OztZQTdMcEIsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEaWZmLCBESUZGX0RFTEVURSwgRElGRl9FUVVBTCwgRElGRl9JTlNFUlQsIGRpZmZfbWF0Y2hfcGF0Y2ggfSBmcm9tICdkaWZmLW1hdGNoLXBhdGNoJztcclxuaW1wb3J0IHsgRGlmZkxpbmVSZXN1bHQsIERpZmZQYXJ0LCBEaWZmVGFibGVSb3dSZXN1bHQgfSBmcm9tICcuL25neC10ZXh0LWRpZmYubW9kZWwnO1xyXG5pbXBvcnQgeyBpc0VtcHR5LCBpc05pbCB9IGZyb20gJy4vbmd4LXRleHQtZGlmZi51dGlscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hUZXh0RGlmZlNlcnZpY2Uge1xyXG4gIGRpZmZQYXJzZXI6IGRpZmZfbWF0Y2hfcGF0Y2g7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5pbml0UGFyc2VyKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRQYXJzZXIoKSB7XHJcbiAgICB0aGlzLmRpZmZQYXJzZXIgPSBuZXcgZGlmZl9tYXRjaF9wYXRjaCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGlmZnNCeUxpbmVzKGxlZnQ6IHN0cmluZywgcmlnaHQ6IHN0cmluZyk6IFByb21pc2U8RGlmZlRhYmxlUm93UmVzdWx0W10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxEaWZmVGFibGVSb3dSZXN1bHRbXT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBjb25zdCBhID0gdGhpcy5kaWZmUGFyc2VyLmRpZmZfbGluZXNUb0NoYXJzXyhsZWZ0LCByaWdodCk7XHJcbiAgICAgIGNvbnN0IGxpbmVUZXh0MSA9IGEuY2hhcnMxO1xyXG4gICAgICBjb25zdCBsaW5lVGV4dDIgPSBhLmNoYXJzMjtcclxuICAgICAgY29uc3QgbGluZXNBcnJheSA9IGEubGluZUFycmF5O1xyXG4gICAgICBjb25zdCBkaWZmczogRGlmZltdID0gdGhpcy5kaWZmUGFyc2VyLmRpZmZfbWFpbihsaW5lVGV4dDEsIGxpbmVUZXh0MiwgdHJ1ZSk7XHJcbiAgICAgIHRoaXMuZGlmZlBhcnNlci5kaWZmX2NoYXJzVG9MaW5lc18oZGlmZnMsIGxpbmVzQXJyYXkpO1xyXG4gICAgICBjb25zdCByb3dzOiBEaWZmVGFibGVSb3dSZXN1bHRbXSA9IHRoaXMuZm9ybWF0T3V0cHV0TmV3KGRpZmZzLCBsaW5lc0FycmF5KTtcclxuICAgICAgaWYgKCFyb3dzKSB7XHJcbiAgICAgICAgcmVqZWN0KCdFcnJvcicpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXNvbHZlKHJvd3MpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdE91dHB1dE5ldyhkaWZmczogRGlmZltdLCBsaW5lcz86IHN0cmluZ1tdKTogRGlmZlRhYmxlUm93UmVzdWx0W10ge1xyXG4gICAgaWYgKGxpbmVzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvcm1hdERpZmZzRnJvbUxpbmVzKGRpZmZzLCBsaW5lcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdERpZmZzRnJvbUxpbmVzKGRpZmZzOiBEaWZmW10sIGxpbmVzOiBzdHJpbmdbXSk6IERpZmZUYWJsZVJvd1Jlc3VsdFtdIHtcclxuICAgIGxpbmVzLnNwbGljZSgwLCAxKTtcclxuICAgIGxldCBsaW5lTGVmdCA9IDE7XHJcbiAgICBsZXQgbGluZVJpZ2h0ID0gMTtcclxuICAgIGNvbnN0IGRpZmZSb3dzUmVzdWx0ID0gZGlmZnMucmVkdWNlKChyb3dzOiBEaWZmVGFibGVSb3dSZXN1bHRbXSwgZGlmZjogRGlmZikgPT4ge1xyXG4gICAgICBpZiAoIXJvd3MpIHtcclxuICAgICAgICByb3dzID0gW107XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGRpZmZWYWx1ZXMgPSBkaWZmWzFdO1xyXG4gICAgICB3aGlsZSAoIWlzTmlsKGRpZmZWYWx1ZXMpIHx8ICFpc0VtcHR5KGRpZmZWYWx1ZXMpIHx8IGRpZmZWYWx1ZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnN0IGZpbmRJbmRleCA9IGxpbmVzLmZpbmRJbmRleChsaW5lID0+IGRpZmZWYWx1ZXMuaW5jbHVkZXMobGluZSkpO1xyXG4gICAgICAgIGlmIChmaW5kSW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgY29uc3QgbGluZSA9IGxpbmVzW2ZpbmRJbmRleF07XHJcbiAgICAgICAgICBsZXQgbGVmdERpZmZSb3c6IERpZmZUYWJsZVJvd1Jlc3VsdCA9IG51bGw7XHJcbiAgICAgICAgICBsZXQgcmlnaHREaWZmUm93OiBEaWZmVGFibGVSb3dSZXN1bHQgPSBudWxsO1xyXG4gICAgICAgICAgbGV0IGxlZnRDb250ZW50OiBEaWZmTGluZVJlc3VsdCA9IG51bGw7XHJcbiAgICAgICAgICBsZXQgcmlnaHRDb250ZW50OiBEaWZmTGluZVJlc3VsdCA9IG51bGw7XHJcbiAgICAgICAgICBsZXQgcm93VGVtcDogRGlmZlRhYmxlUm93UmVzdWx0ID0gbnVsbDtcclxuICAgICAgICAgIHN3aXRjaCAoZGlmZlswXSkge1xyXG4gICAgICAgICAgICBjYXNlIERJRkZfRVFVQUw6XHJcbiAgICAgICAgICAgICAgbGVmdENvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiBsaW5lTGVmdCxcclxuICAgICAgICAgICAgICAgIGxpbmVDb250ZW50OiBsaW5lLFxyXG4gICAgICAgICAgICAgICAgbGluZURpZmZzOiBbXSxcclxuICAgICAgICAgICAgICAgIHByZWZpeDogJydcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHJpZ2h0Q29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVSaWdodCxcclxuICAgICAgICAgICAgICAgIGxpbmVDb250ZW50OiBsaW5lLFxyXG4gICAgICAgICAgICAgICAgbGluZURpZmZzOiBbXSxcclxuICAgICAgICAgICAgICAgIHByZWZpeDogJydcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHJvd1RlbXAgPSB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0Q29udGVudCxcclxuICAgICAgICAgICAgICAgIHJpZ2h0Q29udGVudCxcclxuICAgICAgICAgICAgICAgIGJlbG9uZ1RvOiAnYm90aCcsXHJcbiAgICAgICAgICAgICAgICBoYXNEaWZmczogZmFsc2VcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHJvd3MucHVzaChyb3dUZW1wKTtcclxuICAgICAgICAgICAgICBsaW5lUmlnaHQgPSBsaW5lUmlnaHQgKyAxO1xyXG4gICAgICAgICAgICAgIGxpbmVMZWZ0ID0gbGluZUxlZnQgKyAxO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIERJRkZfSU5TRVJUOlxyXG4gICAgICAgICAgICAgIGxlZnREaWZmUm93ID0gcm93cy5maW5kKFxyXG4gICAgICAgICAgICAgICAgcm93ID0+IHJvdy5sZWZ0Q29udGVudCAmJiAhcm93LnJpZ2h0Q29udGVudCAmJiByb3cubGVmdENvbnRlbnQubGluZU51bWJlciA9PT0gbGluZVJpZ2h0ICYmIHJvdy5sZWZ0Q29udGVudC5wcmVmaXggIT09ICcnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICByaWdodENvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiBsaW5lUmlnaHQsXHJcbiAgICAgICAgICAgICAgICBsaW5lQ29udGVudDogbGluZSxcclxuICAgICAgICAgICAgICAgIGxpbmVEaWZmczogW3sgY29udGVudDogbGluZSwgaXNEaWZmOiB0cnVlIH1dLFxyXG4gICAgICAgICAgICAgICAgcHJlZml4OiAnKydcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIGlmIChsZWZ0RGlmZlJvdykge1xyXG4gICAgICAgICAgICAgICAgbGVmdERpZmZSb3cucmlnaHRDb250ZW50ID0gcmlnaHRDb250ZW50O1xyXG4gICAgICAgICAgICAgICAgbGVmdERpZmZSb3cubGVmdENvbnRlbnQubGluZURpZmZzID0gdGhpcy5nZXREaWZmUGFydHMoXHJcbiAgICAgICAgICAgICAgICAgIGxlZnREaWZmUm93LmxlZnRDb250ZW50LmxpbmVDb250ZW50LFxyXG4gICAgICAgICAgICAgICAgICBsZWZ0RGlmZlJvdy5yaWdodENvbnRlbnQubGluZUNvbnRlbnRcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBsZWZ0RGlmZlJvdy5yaWdodENvbnRlbnQubGluZURpZmZzID0gdGhpcy5nZXREaWZmUGFydHMoXHJcbiAgICAgICAgICAgICAgICAgIGxlZnREaWZmUm93LnJpZ2h0Q29udGVudC5saW5lQ29udGVudCxcclxuICAgICAgICAgICAgICAgICAgbGVmdERpZmZSb3cubGVmdENvbnRlbnQubGluZUNvbnRlbnRcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBsZWZ0RGlmZlJvdy5iZWxvbmdUbyA9ICdib3RoJztcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcm93cy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgbGVmdENvbnRlbnQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgIHJpZ2h0Q29udGVudCxcclxuICAgICAgICAgICAgICAgICAgaGFzRGlmZnM6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIGJlbG9uZ1RvOiAncmlnaHQnXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGluZVJpZ2h0ID0gbGluZVJpZ2h0ICsgMTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBESUZGX0RFTEVURTpcclxuICAgICAgICAgICAgICByaWdodERpZmZSb3cgPSByb3dzLmZpbmQoXHJcbiAgICAgICAgICAgICAgICByb3cgPT4gIXJvdy5sZWZ0Q29udGVudCAmJiByb3cucmlnaHRDb250ZW50ICYmIHJvdy5yaWdodENvbnRlbnQubGluZU51bWJlciA9PT0gbGluZUxlZnQgJiYgcm93LnJpZ2h0Q29udGVudC5wcmVmaXggIT09ICcnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICBsZWZ0Q29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVMZWZ0LFxyXG4gICAgICAgICAgICAgICAgbGluZUNvbnRlbnQ6IGxpbmUsXHJcbiAgICAgICAgICAgICAgICBsaW5lRGlmZnM6IFt7IGNvbnRlbnQ6IGxpbmUsIGlzRGlmZjogdHJ1ZSB9XSxcclxuICAgICAgICAgICAgICAgIHByZWZpeDogJy0nXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICBpZiAocmlnaHREaWZmUm93KSB7XHJcbiAgICAgICAgICAgICAgICByaWdodERpZmZSb3cubGVmdENvbnRlbnQgPSBsZWZ0Q29udGVudDtcclxuICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5sZWZ0Q29udGVudC5saW5lRGlmZnMgPSB0aGlzLmdldERpZmZQYXJ0cyhcclxuICAgICAgICAgICAgICAgICAgcmlnaHREaWZmUm93LmxlZnRDb250ZW50LmxpbmVDb250ZW50LFxyXG4gICAgICAgICAgICAgICAgICByaWdodERpZmZSb3cucmlnaHRDb250ZW50LmxpbmVDb250ZW50XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgcmlnaHREaWZmUm93LnJpZ2h0Q29udGVudC5saW5lRGlmZnMgPSB0aGlzLmdldERpZmZQYXJ0cyhcclxuICAgICAgICAgICAgICAgICAgcmlnaHREaWZmUm93LnJpZ2h0Q29udGVudC5saW5lQ29udGVudCxcclxuICAgICAgICAgICAgICAgICAgcmlnaHREaWZmUm93LmxlZnRDb250ZW50LmxpbmVDb250ZW50XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgcmlnaHREaWZmUm93LmJlbG9uZ1RvID0gJ2JvdGgnO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByb3dzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICBsZWZ0Q29udGVudCxcclxuICAgICAgICAgICAgICAgICAgcmlnaHRDb250ZW50OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICBoYXNEaWZmczogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgYmVsb25nVG86ICdsZWZ0J1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGxpbmVMZWZ0ID0gbGluZUxlZnQgKyAxO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGRpZmZWYWx1ZXMgPSBkaWZmVmFsdWVzLnJlcGxhY2UobGluZSwgJycpO1xyXG4gICAgICAgICAgbGluZXMuc3BsaWNlKGZpbmRJbmRleCwgMSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHJvd3M7XHJcbiAgICB9LCBbXSk7XHJcblxyXG4gICAgcmV0dXJuIGRpZmZSb3dzUmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREaWZmUGFydHModmFsdWU6IHN0cmluZywgY29tcGFyZVZhbHVlOiBzdHJpbmcpOiBEaWZmUGFydFtdIHtcclxuICAgIGNvbnN0IGRpZmZQYXJ0czogRGlmZlBhcnRbXSA9IFtdO1xyXG4gICAgbGV0IGkgPSAwO1xyXG4gICAgbGV0IGogPSAwO1xyXG4gICAgbGV0IHNoYXJlZCA9ICcnO1xyXG4gICAgbGV0IGRpZmYgPSAnJztcclxuXHJcbiAgICB3aGlsZSAoaSA8IHZhbHVlLmxlbmd0aCkge1xyXG4gICAgICBpZiAodmFsdWVbaV0gPT09IGNvbXBhcmVWYWx1ZVtqXSAmJiBqIDwgY29tcGFyZVZhbHVlLmxlbmd0aCkge1xyXG4gICAgICAgIGlmIChkaWZmICE9PSAnJykge1xyXG4gICAgICAgICAgZGlmZlBhcnRzLnB1c2goeyBjb250ZW50OiBkaWZmLCBpc0RpZmY6IHRydWUgfSk7XHJcbiAgICAgICAgICBkaWZmID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNoYXJlZCArPSB2YWx1ZVtpXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoc2hhcmVkICE9PSAnJykge1xyXG4gICAgICAgICAgZGlmZlBhcnRzLnB1c2goeyBjb250ZW50OiBzaGFyZWQsIGlzRGlmZjogZmFsc2UgfSk7XHJcbiAgICAgICAgICBzaGFyZWQgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgZGlmZiArPSB2YWx1ZVtpXTtcclxuICAgICAgfVxyXG4gICAgICBpKys7XHJcbiAgICAgIGorKztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZGlmZiAhPT0gJycpIHtcclxuICAgICAgZGlmZlBhcnRzLnB1c2goeyBjb250ZW50OiBkaWZmLCBpc0RpZmY6IHRydWUgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHNoYXJlZCAhPT0gJycpIHtcclxuICAgICAgZGlmZlBhcnRzLnB1c2goeyBjb250ZW50OiBzaGFyZWQsIGlzRGlmZjogZmFsc2UgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRpZmZQYXJ0cztcclxuICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXRleHQtZGlmZi8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtdGV4dC1kaWZmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFRLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEcsT0FBTyxFQUFFLE9BQU8sRUFBUyxNQUFNLHVCQUF1QixDQUFDOztBQUt2RCxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCO1FBQ0UsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7Ozs7O0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztJQUMzQyxDQUFDOzs7Ozs7SUFFRCxlQUFlLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDekMsT0FBTyxJQUFJLE9BQU8sQ0FBdUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7O2tCQUNyRCxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDOztrQkFDbkQsU0FBUyxHQUFHLENBQUMsQ0FBQyxNQUFNOztrQkFDcEIsU0FBUyxHQUFHLENBQUMsQ0FBQyxNQUFNOztrQkFDcEIsVUFBVSxHQUFHLENBQUMsQ0FBQyxTQUFTOztrQkFDeEIsS0FBSyxHQUFXLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDO1lBQzNFLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDOztrQkFDaEQsSUFBSSxHQUF5QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUMzRCxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNULE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNqQjtZQUVELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7OztJQUVPLFlBQVksQ0FBQyxLQUFhOztZQUM1QixRQUFRLEdBQUcsQ0FBQzs7WUFDWixTQUFTLEdBQUcsQ0FBQztRQUNqQixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUEwQixFQUFFLElBQVUsRUFBRSxFQUFFO1lBQzdELElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1QsSUFBSSxHQUFHLEVBQUUsQ0FBQzthQUNYOztrQkFDSyxRQUFRLEdBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQzs7a0JBQzFCLFNBQVMsR0FBVyxJQUFJLENBQUMsQ0FBQyxDQUFDOztnQkFDN0IsV0FBVyxHQUF1QixJQUFJOztnQkFDdEMsWUFBWSxHQUF1QixJQUFJOztnQkFDdkMsV0FBVyxHQUFtQixJQUFJOztnQkFDbEMsWUFBWSxHQUFtQixJQUFJOztnQkFDbkMsT0FBTyxHQUF1QixJQUFJO1lBQ3RDLFFBQVEsUUFBUSxFQUFFO2dCQUNoQixLQUFLLFVBQVUsRUFBRSxJQUFJO29CQUNuQixTQUFTO3lCQUNOLEtBQUssQ0FBQyxJQUFJLENBQUM7eUJBQ1gsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTt3QkFDOUIsSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7NEJBQzlCLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7eUJBQ3hCO3dCQUNELE9BQU8sSUFBSSxDQUFDO29CQUNkLENBQUMsQ0FBQzt5QkFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7d0JBQ2QsV0FBVyxHQUFHOzRCQUNaLFVBQVUsRUFBRSxRQUFROzRCQUNwQixXQUFXLEVBQUUsSUFBSTs0QkFDakIsU0FBUyxFQUFFLEVBQUU7NEJBQ2IsTUFBTSxFQUFFLEVBQUU7eUJBQ1gsQ0FBQzt3QkFDRixZQUFZLEdBQUc7NEJBQ2IsVUFBVSxFQUFFLFNBQVM7NEJBQ3JCLFdBQVcsRUFBRSxJQUFJOzRCQUNqQixTQUFTLEVBQUUsRUFBRTs0QkFDYixNQUFNLEVBQUUsRUFBRTt5QkFDWCxDQUFDO3dCQUNGLE9BQU8sR0FBRzs0QkFDUixXQUFXOzRCQUNYLFlBQVk7NEJBQ1osUUFBUSxFQUFFLE1BQU07NEJBQ2hCLFFBQVEsRUFBRSxLQUFLO3lCQUNoQixDQUFDO3dCQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQ25CLFNBQVMsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDO3dCQUMxQixRQUFRLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQztvQkFDMUIsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsTUFBTTtnQkFDUixLQUFLLFdBQVcsRUFBRSxLQUFLO29CQUNyQixTQUFTO3lCQUNOLEtBQUssQ0FBQyxJQUFJLENBQUM7eUJBQ1gsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTt3QkFDOUIsSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7NEJBQzlCLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7eUJBQ3hCO3dCQUNELE9BQU8sSUFBSSxDQUFDO29CQUNkLENBQUMsQ0FBQzt5QkFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7d0JBQ2QsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQ3RCLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxZQUFZLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxVQUFVLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FDMUgsQ0FBQzt3QkFDRixXQUFXLEdBQUc7NEJBQ1osVUFBVSxFQUFFLFFBQVE7NEJBQ3BCLFdBQVcsRUFBRSxJQUFJOzRCQUNqQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDOzRCQUM1QyxNQUFNLEVBQUUsR0FBRzt5QkFDWixDQUFDO3dCQUNGLElBQUksWUFBWSxFQUFFOzRCQUNoQixZQUFZLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQzs0QkFDdkMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FDcEQsWUFBWSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQ3BDLFlBQVksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUN0QyxDQUFDOzRCQUNGLFlBQVksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQ3JELFlBQVksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUNyQyxZQUFZLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FDckMsQ0FBQzs0QkFDRixZQUFZLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQzt5QkFDaEM7NkJBQU07NEJBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQztnQ0FDUixXQUFXO2dDQUNYLFlBQVksRUFBRSxJQUFJO2dDQUNsQixRQUFRLEVBQUUsSUFBSTtnQ0FDZCxRQUFRLEVBQUUsTUFBTTs2QkFDakIsQ0FBQyxDQUFDO3lCQUNKO3dCQUNELFFBQVEsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDO29CQUMxQixDQUFDLENBQUMsQ0FBQztvQkFDTCxNQUFNO2dCQUNSLEtBQUssV0FBVyxFQUFFLElBQUk7b0JBQ3BCLFNBQVM7eUJBQ04sS0FBSyxDQUFDLElBQUksQ0FBQzt5QkFDWCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO3dCQUM5QixJQUFJLEtBQUssS0FBSyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTs0QkFDOUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzt5QkFDeEI7d0JBQ0QsT0FBTyxJQUFJLENBQUM7b0JBQ2QsQ0FBQyxDQUFDO3lCQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDZCxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDckIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsS0FBSyxTQUFTLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUN6SCxDQUFDO3dCQUNGLFlBQVksR0FBRzs0QkFDYixVQUFVLEVBQUUsU0FBUzs0QkFDckIsV0FBVyxFQUFFLElBQUk7NEJBQ2pCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7NEJBQzVDLE1BQU0sRUFBRSxHQUFHO3lCQUNaLENBQUM7d0JBQ0YsSUFBSSxXQUFXLEVBQUU7NEJBQ2YsV0FBVyxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7NEJBQ3hDLFdBQVcsQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQ25ELFdBQVcsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUNuQyxXQUFXLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FDckMsQ0FBQzs0QkFDRixXQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUNwRCxXQUFXLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFDcEMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQ3BDLENBQUM7NEJBQ0YsV0FBVyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7eUJBQy9COzZCQUFNOzRCQUNMLElBQUksQ0FBQyxJQUFJLENBQUM7Z0NBQ1IsV0FBVyxFQUFFLElBQUk7Z0NBQ2pCLFlBQVk7Z0NBQ1osUUFBUSxFQUFFLElBQUk7Z0NBQ2QsUUFBUSxFQUFFLE9BQU87NkJBQ2xCLENBQUMsQ0FBQzt5QkFDSjt3QkFDRCxTQUFTLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQztvQkFDNUIsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsTUFBTTthQUNUO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDOzs7Ozs7O0lBRU8sWUFBWSxDQUFDLEtBQWEsRUFBRSxZQUFvQjs7Y0FDaEQsU0FBUyxHQUFlLEVBQUU7O1lBQzVCLENBQUMsR0FBRyxDQUFDOztZQUNMLENBQUMsR0FBRyxDQUFDOztZQUNMLE1BQU0sR0FBRyxFQUFFOztZQUNYLElBQUksR0FBRyxFQUFFO1FBRWIsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN2QixJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUU7Z0JBQzNELElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRTtvQkFDZixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDaEQsSUFBSSxHQUFHLEVBQUUsQ0FBQztpQkFDWDtnQkFDRCxNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3BCO2lCQUFNO2dCQUNMLElBQUksTUFBTSxLQUFLLEVBQUUsRUFBRTtvQkFDakIsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7b0JBQ25ELE1BQU0sR0FBRyxFQUFFLENBQUM7aUJBQ2I7Z0JBQ0QsSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNsQjtZQUNELENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7U0FDTDtRQUVELElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRTtZQUNmLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ2pEO2FBQU0sSUFBSSxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQ3hCLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7O1lBdE1GLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7Ozs7OztJQUVDLHdDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlmZiwgRElGRl9ERUxFVEUsIERJRkZfRVFVQUwsIERJRkZfSU5TRVJULCBkaWZmX21hdGNoX3BhdGNoIH0gZnJvbSAnZGlmZi1tYXRjaC1wYXRjaCc7XHJcbmltcG9ydCB7IERpZmZMaW5lUmVzdWx0LCBEaWZmUGFydCwgRGlmZlRhYmxlUm93UmVzdWx0IH0gZnJvbSAnLi9uZ3gtdGV4dC1kaWZmLm1vZGVsJztcclxuaW1wb3J0IHsgaXNFbXB0eSwgaXNOaWwgfSBmcm9tICcuL25neC10ZXh0LWRpZmYudXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4VGV4dERpZmZTZXJ2aWNlIHtcclxuICBkaWZmUGFyc2VyOiBkaWZmX21hdGNoX3BhdGNoO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuaW5pdFBhcnNlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0UGFyc2VyKCkge1xyXG4gICAgdGhpcy5kaWZmUGFyc2VyID0gbmV3IGRpZmZfbWF0Y2hfcGF0Y2goKTtcclxuICB9XHJcblxyXG4gIGdldERpZmZzQnlMaW5lcyhsZWZ0OiBzdHJpbmcsIHJpZ2h0OiBzdHJpbmcpOiBQcm9taXNlPERpZmZUYWJsZVJvd1Jlc3VsdFtdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8RGlmZlRhYmxlUm93UmVzdWx0W10+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgY29uc3QgYSA9IHRoaXMuZGlmZlBhcnNlci5kaWZmX2xpbmVzVG9DaGFyc18obGVmdCwgcmlnaHQpO1xyXG4gICAgICBjb25zdCBsaW5lVGV4dDEgPSBhLmNoYXJzMTtcclxuICAgICAgY29uc3QgbGluZVRleHQyID0gYS5jaGFyczI7XHJcbiAgICAgIGNvbnN0IGxpbmVzQXJyYXkgPSBhLmxpbmVBcnJheTtcclxuICAgICAgY29uc3QgZGlmZnM6IERpZmZbXSA9IHRoaXMuZGlmZlBhcnNlci5kaWZmX21haW4obGluZVRleHQxLCBsaW5lVGV4dDIsIHRydWUpO1xyXG4gICAgICB0aGlzLmRpZmZQYXJzZXIuZGlmZl9jaGFyc1RvTGluZXNfKGRpZmZzLCBsaW5lc0FycmF5KTtcclxuICAgICAgY29uc3Qgcm93czogRGlmZlRhYmxlUm93UmVzdWx0W10gPSB0aGlzLmZvcm1hdE91dHB1dChkaWZmcyk7XHJcbiAgICAgIGlmICghcm93cykge1xyXG4gICAgICAgIHJlamVjdCgnRXJyb3InKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmVzb2x2ZShyb3dzKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXRPdXRwdXQoZGlmZnM6IERpZmZbXSk6IERpZmZUYWJsZVJvd1Jlc3VsdFtdIHtcclxuICAgIGxldCBsaW5lTGVmdCA9IDE7XHJcbiAgICBsZXQgbGluZVJpZ2h0ID0gMTtcclxuICAgIHJldHVybiBkaWZmcy5yZWR1Y2UoKHJvd3M6IERpZmZUYWJsZVJvd1Jlc3VsdFtdLCBkaWZmOiBEaWZmKSA9PiB7XHJcbiAgICAgIGlmICghcm93cykge1xyXG4gICAgICAgIHJvd3MgPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkaWZmVHlwZTogbnVtYmVyID0gZGlmZlswXTtcclxuICAgICAgY29uc3QgZGlmZlZhbHVlOiBzdHJpbmcgPSBkaWZmWzFdO1xyXG4gICAgICBsZXQgbGVmdERpZmZSb3c6IERpZmZUYWJsZVJvd1Jlc3VsdCA9IG51bGw7XHJcbiAgICAgIGxldCByaWdodERpZmZSb3c6IERpZmZUYWJsZVJvd1Jlc3VsdCA9IG51bGw7XHJcbiAgICAgIGxldCBsZWZ0Q29udGVudDogRGlmZkxpbmVSZXN1bHQgPSBudWxsO1xyXG4gICAgICBsZXQgcmlnaHRDb250ZW50OiBEaWZmTGluZVJlc3VsdCA9IG51bGw7XHJcbiAgICAgIGxldCByb3dUZW1wOiBEaWZmVGFibGVSb3dSZXN1bHQgPSBudWxsO1xyXG4gICAgICBzd2l0Y2ggKGRpZmZUeXBlKSB7XHJcbiAgICAgICAgY2FzZSBESUZGX0VRVUFMOiAvLyAwXHJcbiAgICAgICAgICBkaWZmVmFsdWVcclxuICAgICAgICAgICAgLnNwbGl0KCdcXG4nKVxyXG4gICAgICAgICAgICAuZmlsdGVyKCh2YWx1ZSwgaW5kZXgsIGFycmF5KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSBhcnJheS5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIWlzRW1wdHkodmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmZvckVhY2gobGluZSA9PiB7XHJcbiAgICAgICAgICAgICAgbGVmdENvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiBsaW5lTGVmdCxcclxuICAgICAgICAgICAgICAgIGxpbmVDb250ZW50OiBsaW5lLFxyXG4gICAgICAgICAgICAgICAgbGluZURpZmZzOiBbXSxcclxuICAgICAgICAgICAgICAgIHByZWZpeDogJydcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHJpZ2h0Q29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVSaWdodCxcclxuICAgICAgICAgICAgICAgIGxpbmVDb250ZW50OiBsaW5lLFxyXG4gICAgICAgICAgICAgICAgbGluZURpZmZzOiBbXSxcclxuICAgICAgICAgICAgICAgIHByZWZpeDogJydcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHJvd1RlbXAgPSB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0Q29udGVudCxcclxuICAgICAgICAgICAgICAgIHJpZ2h0Q29udGVudCxcclxuICAgICAgICAgICAgICAgIGJlbG9uZ1RvOiAnYm90aCcsXHJcbiAgICAgICAgICAgICAgICBoYXNEaWZmczogZmFsc2VcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHJvd3MucHVzaChyb3dUZW1wKTtcclxuICAgICAgICAgICAgICBsaW5lUmlnaHQgPSBsaW5lUmlnaHQgKyAxO1xyXG4gICAgICAgICAgICAgIGxpbmVMZWZ0ID0gbGluZUxlZnQgKyAxO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRElGRl9ERUxFVEU6IC8vIC0xXHJcbiAgICAgICAgICBkaWZmVmFsdWVcclxuICAgICAgICAgICAgLnNwbGl0KCdcXG4nKVxyXG4gICAgICAgICAgICAuZmlsdGVyKCh2YWx1ZSwgaW5kZXgsIGFycmF5KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSBhcnJheS5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIWlzRW1wdHkodmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmZvckVhY2gobGluZSA9PiB7XHJcbiAgICAgICAgICAgICAgcmlnaHREaWZmUm93ID0gcm93cy5maW5kKFxyXG4gICAgICAgICAgICAgICAgcm93ID0+ICFyb3cubGVmdENvbnRlbnQgJiYgcm93LnJpZ2h0Q29udGVudCAmJiByb3cucmlnaHRDb250ZW50LmxpbmVOdW1iZXIgPT09IGxpbmVMZWZ0ICYmIHJvdy5yaWdodENvbnRlbnQucHJlZml4ICE9PSAnJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgbGVmdENvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiBsaW5lTGVmdCxcclxuICAgICAgICAgICAgICAgIGxpbmVDb250ZW50OiBsaW5lLFxyXG4gICAgICAgICAgICAgICAgbGluZURpZmZzOiBbeyBjb250ZW50OiBsaW5lLCBpc0RpZmY6IHRydWUgfV0sXHJcbiAgICAgICAgICAgICAgICBwcmVmaXg6ICctJ1xyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgaWYgKHJpZ2h0RGlmZlJvdykge1xyXG4gICAgICAgICAgICAgICAgcmlnaHREaWZmUm93LmxlZnRDb250ZW50ID0gbGVmdENvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICByaWdodERpZmZSb3cubGVmdENvbnRlbnQubGluZURpZmZzID0gdGhpcy5nZXREaWZmUGFydHMoXHJcbiAgICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5sZWZ0Q29udGVudC5saW5lQ29udGVudCxcclxuICAgICAgICAgICAgICAgICAgcmlnaHREaWZmUm93LnJpZ2h0Q29udGVudC5saW5lQ29udGVudFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5yaWdodENvbnRlbnQubGluZURpZmZzID0gdGhpcy5nZXREaWZmUGFydHMoXHJcbiAgICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5yaWdodENvbnRlbnQubGluZUNvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5sZWZ0Q29udGVudC5saW5lQ29udGVudFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5iZWxvbmdUbyA9ICdib3RoJztcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcm93cy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgbGVmdENvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICAgIHJpZ2h0Q29udGVudDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgaGFzRGlmZnM6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIGJlbG9uZ1RvOiAnbGVmdCdcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsaW5lTGVmdCA9IGxpbmVMZWZ0ICsgMTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIERJRkZfSU5TRVJUOiAvLyAxXHJcbiAgICAgICAgICBkaWZmVmFsdWVcclxuICAgICAgICAgICAgLnNwbGl0KCdcXG4nKVxyXG4gICAgICAgICAgICAuZmlsdGVyKCh2YWx1ZSwgaW5kZXgsIGFycmF5KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSBhcnJheS5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIWlzRW1wdHkodmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmZvckVhY2gobGluZSA9PiB7XHJcbiAgICAgICAgICAgICAgbGVmdERpZmZSb3cgPSByb3dzLmZpbmQoXHJcbiAgICAgICAgICAgICAgICByb3cgPT4gcm93LmxlZnRDb250ZW50ICYmICFyb3cucmlnaHRDb250ZW50ICYmIHJvdy5sZWZ0Q29udGVudC5saW5lTnVtYmVyID09PSBsaW5lUmlnaHQgJiYgcm93LmxlZnRDb250ZW50LnByZWZpeCAhPT0gJydcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHJpZ2h0Q29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVSaWdodCxcclxuICAgICAgICAgICAgICAgIGxpbmVDb250ZW50OiBsaW5lLFxyXG4gICAgICAgICAgICAgICAgbGluZURpZmZzOiBbeyBjb250ZW50OiBsaW5lLCBpc0RpZmY6IHRydWUgfV0sXHJcbiAgICAgICAgICAgICAgICBwcmVmaXg6ICcrJ1xyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgaWYgKGxlZnREaWZmUm93KSB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0RGlmZlJvdy5yaWdodENvbnRlbnQgPSByaWdodENvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICBsZWZ0RGlmZlJvdy5sZWZ0Q29udGVudC5saW5lRGlmZnMgPSB0aGlzLmdldERpZmZQYXJ0cyhcclxuICAgICAgICAgICAgICAgICAgbGVmdERpZmZSb3cubGVmdENvbnRlbnQubGluZUNvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICAgIGxlZnREaWZmUm93LnJpZ2h0Q29udGVudC5saW5lQ29udGVudFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGxlZnREaWZmUm93LnJpZ2h0Q29udGVudC5saW5lRGlmZnMgPSB0aGlzLmdldERpZmZQYXJ0cyhcclxuICAgICAgICAgICAgICAgICAgbGVmdERpZmZSb3cucmlnaHRDb250ZW50LmxpbmVDb250ZW50LFxyXG4gICAgICAgICAgICAgICAgICBsZWZ0RGlmZlJvdy5sZWZ0Q29udGVudC5saW5lQ29udGVudFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGxlZnREaWZmUm93LmJlbG9uZ1RvID0gJ2JvdGgnO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByb3dzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICBsZWZ0Q29udGVudDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgcmlnaHRDb250ZW50LFxyXG4gICAgICAgICAgICAgICAgICBoYXNEaWZmczogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgYmVsb25nVG86ICdyaWdodCdcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsaW5lUmlnaHQgPSBsaW5lUmlnaHQgKyAxO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiByb3dzO1xyXG4gICAgfSwgW10pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREaWZmUGFydHModmFsdWU6IHN0cmluZywgY29tcGFyZVZhbHVlOiBzdHJpbmcpOiBEaWZmUGFydFtdIHtcclxuICAgIGNvbnN0IGRpZmZQYXJ0czogRGlmZlBhcnRbXSA9IFtdO1xyXG4gICAgbGV0IGkgPSAwO1xyXG4gICAgbGV0IGogPSAwO1xyXG4gICAgbGV0IHNoYXJlZCA9ICcnO1xyXG4gICAgbGV0IGRpZmYgPSAnJztcclxuXHJcbiAgICB3aGlsZSAoaSA8IHZhbHVlLmxlbmd0aCkge1xyXG4gICAgICBpZiAodmFsdWVbaV0gPT09IGNvbXBhcmVWYWx1ZVtqXSAmJiBqIDwgY29tcGFyZVZhbHVlLmxlbmd0aCkge1xyXG4gICAgICAgIGlmIChkaWZmICE9PSAnJykge1xyXG4gICAgICAgICAgZGlmZlBhcnRzLnB1c2goeyBjb250ZW50OiBkaWZmLCBpc0RpZmY6IHRydWUgfSk7XHJcbiAgICAgICAgICBkaWZmID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNoYXJlZCArPSB2YWx1ZVtpXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoc2hhcmVkICE9PSAnJykge1xyXG4gICAgICAgICAgZGlmZlBhcnRzLnB1c2goeyBjb250ZW50OiBzaGFyZWQsIGlzRGlmZjogZmFsc2UgfSk7XHJcbiAgICAgICAgICBzaGFyZWQgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgZGlmZiArPSB2YWx1ZVtpXTtcclxuICAgICAgfVxyXG4gICAgICBpKys7XHJcbiAgICAgIGorKztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZGlmZiAhPT0gJycpIHtcclxuICAgICAgZGlmZlBhcnRzLnB1c2goeyBjb250ZW50OiBkaWZmLCBpc0RpZmY6IHRydWUgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHNoYXJlZCAhPT0gJycpIHtcclxuICAgICAgZGlmZlBhcnRzLnB1c2goeyBjb250ZW50OiBzaGFyZWQsIGlzRGlmZjogZmFsc2UgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRpZmZQYXJ0cztcclxuICB9XHJcbn1cclxuIl19
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -9,3 +9,2 @@ /** @type {?} */

export const isEmpty = val => val == null || !(Object.keys(val) || val).length || (Object.keys(val) || val).length === 0;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC10ZXh0LWRpZmYvIiwic291cmNlcyI6WyJsaWIvbmd4LXRleHQtZGlmZi51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGFBQWEsS0FBSyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDOztBQUM5RCxhQUFhLE9BQU8sR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzTmlsID0gdmFsID0+IHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gbnVsbDtcclxuZXhwb3J0IGNvbnN0IGlzRW1wdHkgPSB2YWwgPT4gdmFsID09IG51bGwgfHwgIShPYmplY3Qua2V5cyh2YWwpIHx8IHZhbCkubGVuZ3RoIHx8IChPYmplY3Qua2V5cyh2YWwpIHx8IHZhbCkubGVuZ3RoID09PSAwO1xyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC10ZXh0LWRpZmYvIiwic291cmNlcyI6WyJsaWIvbmd4LXRleHQtZGlmZi51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE1BQU0sT0FBTyxLQUFLLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJOztBQUM3RCxNQUFNLE9BQU8sT0FBTyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzTmlsID0gdmFsID0+IHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gbnVsbDtcclxuZXhwb3J0IGNvbnN0IGlzRW1wdHkgPSB2YWwgPT4gdmFsID09IG51bGwgfHwgIShPYmplY3Qua2V5cyh2YWwpIHx8IHZhbCkubGVuZ3RoIHx8IChPYmplY3Qua2V5cyh2YWwpIHx8IHZhbCkubGVuZ3RoID09PSAwO1xyXG4iXX0=
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -11,3 +11,2 @@ /**

export { LoaderSpinnerComponent as ɵa } from './lib/loader-spinner/loader-spinner.component';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC10ZXh0LWRpZmYvIiwic291cmNlcyI6WyJuZ3gtdGV4dC1kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSw0RUFBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG5cbmV4cG9ydCB7Rm9ybWF0TGluZVBpcGUgYXMgybVifSBmcm9tICcuL2xpYi9mb3JtYXQtbGluZS5waXBlJztcbmV4cG9ydCB7TG9hZGVyU3Bpbm5lckNvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2xvYWRlci1zcGlubmVyL2xvYWRlci1zcGlubmVyLmNvbXBvbmVudCc7Il19
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -11,3 +11,2 @@ /*

export { NgxTextDiffModule } from './lib/ngx-text-diff.module';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC10ZXh0LWRpZmYvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxtQ0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxxQ0FBYywrQkFBK0IsQ0FBQztBQUM5QyxrQ0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LXRleHQtZGlmZlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC10ZXh0LWRpZmYuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtdGV4dC1kaWZmLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtdGV4dC1kaWZmLm1vZHVsZSc7XG4iXX0=
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -25,4 +25,4 @@ import { Pipe } from '@angular/core';

/*diffs.forEach(diff => {
line = line.replace(diff, `<span class="highli">${diff}</span>`);
});*/
line = line.replace(diff, `<span class="highli">${diff}</span>`);
});*/
}

@@ -44,3 +44,2 @@ return line

export { FormatLinePipe };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWxpbmUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC10ZXh0LWRpZmYvIiwic291cmNlcyI6WyJsaWIvZm9ybWF0LWxpbmUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztJQU1sRCxrQ0FBUzs7Ozs7SUFBVCxVQUFVLElBQVksRUFBRSxLQUFnQjtRQUN0QyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUNELElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTs7OztTQUloQztRQUNELE9BQU8sSUFBSTthQUNSLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO2FBQ3RCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDO2FBQ3ZCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7S0FDNUI7O2dCQW5CRixJQUFJLFNBQUM7b0JBQ0osSUFBSSxFQUFFLFlBQVk7aUJBQ25COzt5QkFKRDs7U0FLYSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdmb3JtYXRMaW5lJ1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtYXRMaW5lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0obGluZTogc3RyaW5nLCBkaWZmcz86IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICBpZiAoIWxpbmUpIHtcbiAgICAgIHJldHVybiAnICc7XG4gICAgfVxuICAgIGlmICghIWRpZmZzICYmIGRpZmZzLmxlbmd0aCA+IDApIHtcbiAgICAgIC8qZGlmZnMuZm9yRWFjaChkaWZmID0+IHtcbiAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZShkaWZmLCBgPHNwYW4gY2xhc3M9XCJoaWdobGlcIj4ke2RpZmZ9PC9zcGFuPmApO1xuICAgICAgfSk7Ki9cbiAgICB9XG4gICAgcmV0dXJuIGxpbmVcbiAgICAgIC5yZXBsYWNlKC8mL2csICcmYW1wOycpXG4gICAgICAucmVwbGFjZSgvPC9nLCAnJmx0OycpXG4gICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpXG4gICAgICAucmVwbGFjZSgvXCIvZywgJyZxdW90OycpXG4gICAgICAucmVwbGFjZSgvIC9nLCAnJm5ic3A7Jyk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWxpbmUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC10ZXh0LWRpZmYvIiwic291cmNlcyI6WyJsaWIvZm9ybWF0LWxpbmUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQ7SUFBQTtJQW9CQSxDQUFDOzs7Ozs7SUFoQkMsa0NBQVM7Ozs7O0lBQVQsVUFBVSxJQUFZLEVBQUUsS0FBZ0I7UUFDdEMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFDRCxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDL0I7O2lCQUVLO1NBQ047UUFDRCxPQUFPLElBQUk7YUFDUixPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQzthQUN0QixPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQzthQUNyQixPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQzthQUNyQixPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQzthQUN2QixPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7O2dCQW5CRixJQUFJLFNBQUM7b0JBQ0osSUFBSSxFQUFFLFlBQVk7aUJBQ25COztJQWtCRCxxQkFBQztDQUFBLEFBcEJELElBb0JDO1NBakJZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2Zvcm1hdExpbmUnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtYXRMaW5lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybShsaW5lOiBzdHJpbmcsIGRpZmZzPzogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgaWYgKCFsaW5lKSB7XHJcbiAgICAgIHJldHVybiAnICc7XHJcbiAgICB9XHJcbiAgICBpZiAoISFkaWZmcyAmJiBkaWZmcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIC8qZGlmZnMuZm9yRWFjaChkaWZmID0+IHtcclxuICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKGRpZmYsIGA8c3BhbiBjbGFzcz1cImhpZ2hsaVwiPiR7ZGlmZn08L3NwYW4+YCk7XHJcbiAgICAgIH0pOyovXHJcbiAgICB9XHJcbiAgICByZXR1cm4gbGluZVxyXG4gICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxyXG4gICAgICAucmVwbGFjZSgvPC9nLCAnJmx0OycpXHJcbiAgICAgIC5yZXBsYWNlKC8+L2csICcmZ3Q7JylcclxuICAgICAgLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKVxyXG4gICAgICAucmVwbGFjZSgvIC9nLCAnJm5ic3A7Jyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -20,3 +20,3 @@ import { Component, Input } from '@angular/core';

selector: 'td-loader-spinner',
template: "<div class=\"td-loading-roller\" *ngIf=\"active\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n</div>\n",
template: "<div class=\"td-loading-roller\" *ngIf=\"active\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n</div>\r\n",
styles: [".td-loading-roller{display:inline-block;position:relative;width:64px;height:64px}.td-loading-roller div{-webkit-animation:1.2s cubic-bezier(.5,0,.5,1) infinite lds-roller;animation:1.2s cubic-bezier(.5,0,.5,1) infinite lds-roller;-webkit-transform-origin:32px 32px;transform-origin:32px 32px}.td-loading-roller div:after{content:\" \";display:block;position:absolute;width:6px;height:6px;border-radius:50%;background:#000;margin:-3px 0 0 -3px}.td-loading-roller div:nth-child(1){-webkit-animation-delay:-36ms;animation-delay:-36ms}.td-loading-roller div:nth-child(1):after{top:50px;left:50px}.td-loading-roller div:nth-child(2){-webkit-animation-delay:-72ms;animation-delay:-72ms}.td-loading-roller div:nth-child(2):after{top:54px;left:45px}.td-loading-roller div:nth-child(3){-webkit-animation-delay:-108ms;animation-delay:-108ms}.td-loading-roller div:nth-child(3):after{top:57px;left:39px}.td-loading-roller div:nth-child(4){-webkit-animation-delay:-144ms;animation-delay:-144ms}.td-loading-roller div:nth-child(4):after{top:58px;left:32px}.td-loading-roller div:nth-child(5){-webkit-animation-delay:-.18s;animation-delay:-.18s}.td-loading-roller div:nth-child(5):after{top:57px;left:25px}.td-loading-roller div:nth-child(6){-webkit-animation-delay:-216ms;animation-delay:-216ms}.td-loading-roller div:nth-child(6):after{top:54px;left:19px}.td-loading-roller div:nth-child(7){-webkit-animation-delay:-252ms;animation-delay:-252ms}.td-loading-roller div:nth-child(7):after{top:50px;left:14px}.td-loading-roller div:nth-child(8){-webkit-animation-delay:-288ms;animation-delay:-288ms}.td-loading-roller div:nth-child(8):after{top:45px;left:10px}@-webkit-keyframes lds-roller{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes lds-roller{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}"]

@@ -37,3 +37,2 @@ }] }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLXNwaW5uZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXRleHQtZGlmZi8iLCJzb3VyY2VzIjpbImxpYi9sb2FkZXItc3Bpbm5lci9sb2FkZXItc3Bpbm5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOztJQVV2RDtzQkFGa0IsS0FBSztLQUVQOzs7O0lBRWhCLHlDQUFROzs7SUFBUixlQUFhOztnQkFWZCxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsZ01BQThDOztpQkFFL0M7Ozs7O3lCQUVFLEtBQUs7O2lDQVJSOztTQU9hLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1sb2FkZXItc3Bpbm5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2FkZXItc3Bpbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xvYWRlci1zcGlubmVyLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMb2FkZXJTcGlubmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgYWN0aXZlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge31cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLXNwaW5uZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXRleHQtZGlmZi8iLCJzb3VyY2VzIjpbImxpYi9sb2FkZXItc3Bpbm5lci9sb2FkZXItc3Bpbm5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXpEO0lBUUU7UUFGUyxXQUFNLEdBQUcsS0FBSyxDQUFDO0lBRVQsQ0FBQzs7OztJQUVoQix5Q0FBUTs7O0lBQVIsY0FBWSxDQUFDOztnQkFWZCxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0Isb05BQThDOztpQkFFL0M7Ozs7O3lCQUVFLEtBQUs7O0lBS1IsNkJBQUM7Q0FBQSxBQVhELElBV0M7U0FOWSxzQkFBc0I7OztJQUNqQyx3Q0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGQtbG9hZGVyLXNwaW5uZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2FkZXItc3Bpbm5lci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbG9hZGVyLXNwaW5uZXIuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2FkZXJTcGlubmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBhY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHt9XHJcbn1cclxuIl19
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -50,12 +50,19 @@ import * as tslib_1 from "tslib";

var _this = this;
this.loading = true;
if (this.diffContent) {
this.subscriptions.push(this.diffContent.subscribe(function (content) {
_this.loading = true;
_this.left = content.leftContent;
_this.right = content.rightContent;
_this.renderDiffs().then(function () {
_this.renderDiffs()
.then(function () {
_this.cd.detectChanges();
});
_this.loading = false;
})
.catch(function () { return (_this.loading = false); });
}));
}
this.renderDiffs().then();
this.renderDiffs()
.then(function () { return (_this.loading = false); })
.catch(function (e) { return (_this.loading = false); });
};

@@ -116,3 +123,2 @@ /**

_b.trys.push([0, 2, , 3]);
this.loading = true;
this.diffsCount = 0;

@@ -153,7 +159,6 @@ _a = this;

this.filteredTableRowsLineByLine = this.tableRowsLineByLine;
this.loading = false;
return [3 /*break*/, 3];
case 2:
e_1 = _b.sent();
return [3 /*break*/, 3];
throw e_1;
case 3: return [2 /*return*/];

@@ -242,8 +247,13 @@ }

NgxTextDiffComponent.prototype.formatOptions;
/** @type {?} */
/**
* @type {?}
* @private
*/
NgxTextDiffComponent.prototype.diff;
/** @type {?} */
/**
* @type {?}
* @private
*/
NgxTextDiffComponent.prototype.cd;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtdGV4dC1kaWZmLyIsInNvdXJjZXMiOlsibGliL25neC10ZXh0LWRpZmYuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sTUFBTSxDQUFDOztJQXVDOUMsOEJBQW9CLElBQXdCLEVBQVUsRUFBcUI7UUFBdkQsU0FBSSxHQUFKLElBQUksQ0FBb0I7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtzQkEvQnhDLFlBQVk7b0JBQy9CLEVBQUU7cUJBQ0QsRUFBRTt1QkFFQSxLQUFLOzhCQUNFLElBQUk7NkJBQ0UsRUFBRTt5QkFDQSxFQUFFO2lDQUNNLEVBQUU7bUNBQ0EsRUFBRTsyQ0FDTSxFQUFFOzhCQUNyQyxLQUFLOzBCQUNULENBQUM7NkJBRTJCO1lBQ3ZDO2dCQUNFLEVBQUUsRUFBRSxjQUFjO2dCQUNsQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsS0FBSyxFQUFFLGNBQWM7Z0JBQ3JCLEtBQUssRUFBRSxZQUFZO2dCQUNuQixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLEVBQUUsRUFBRSxjQUFjO2dCQUNsQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsS0FBSyxFQUFFLGNBQWM7Z0JBQ3JCLEtBQUssRUFBRSxZQUFZO2dCQUNuQixJQUFJLEVBQUUsY0FBYzthQUNyQjtTQUNGO0tBRThFOzs7O0lBRS9FLHVDQUFROzs7SUFBUjtRQUFBLGlCQWFDO1FBWkMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsV0FB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QyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7S0FDbEk7Ozs7OztJQUVELHlDQUFVOzs7OztJQUFWLFVBQVcsS0FBSyxFQUFFLElBQWM7UUFDOUIsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0tBQ3hEOztnQkE5SEYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLHVpTkFBNkM7O2lCQUU5Qzs7OztnQkFQUSxrQkFBa0I7Z0JBRmxCLGlCQUFpQjs7O3lCQVd2QixLQUFLO3VCQUNMLEtBQUs7d0JBQ0wsS0FBSzs4QkFDTCxLQUFLOzBCQUNMLEtBQUs7aUNBQ0wsS0FBSzs7K0JBaEJSOztTQVVhLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEaWZmQ29udGVudCwgRGlmZlBhcnQsIERpZmZUYWJsZUZvcm1hdCwgRGlmZlRhYmxlRm9ybWF0T3B0aW9uLCBEaWZmVGFibGVSb3dSZXN1bHQgfSBmcm9tICcuL25neC10ZXh0LWRpZmYubW9kZWwnO1xyXG5pbXBvcnQgeyBOZ3hUZXh0RGlmZlNlcnZpY2UgfSBmcm9tICcuL25neC10ZXh0LWRpZmYuc2VydmljZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0ZC1uZ3gtdGV4dC1kaWZmJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmd4LXRleHQtZGlmZi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbmd4LXRleHQtZGlmZi5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFRleHREaWZmQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGZvcm1hdDogRGlmZlRhYmxlRm9ybWF0ID0gJ1NpZGVCeVNpZGUnO1xyXG4gIEBJbnB1dCgpIGxlZnQgPSAnJztcclxuICBASW5wdXQoKSByaWdodCA9ICcnO1xyXG4gIEBJbnB1dCgpIGRpZmZDb250ZW50OiBPYnNlcnZhYmxlPERpZmZDb250ZW50PjtcclxuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0J0blRvb2xiYXIgPSB0cnVlO1xyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgdGFibGVSb3dzOiBEaWZmVGFibGVSb3dSZXN1bHRbXSA9IFtdO1xyXG4gIGZpbHRlcmVkVGFibGVSb3dzOiBEaWZmVGFibGVSb3dSZXN1bHRbXSA9IFtdO1xyXG4gIHRhYmxlUm93c0xpbmVCeUxpbmU6IERpZmZUYWJsZVJvd1Jlc3VsdFtdID0gW107XHJcbiAgZmlsdGVyZWRUYWJsZVJvd3NMaW5lQnlMaW5lOiBEaWZmVGFibGVSb3dSZXN1bHRbXSA9IFtdO1xyXG4gIHNob3dMaW5lc0RpZmZzID0gZmFsc2U7XHJcbiAgZGlmZnNDb3VudCA9IDA7XHJcblxyXG4gIGZvcm1hdE9wdGlvbnM6IERpZmZUYWJsZUZvcm1hdE9wdGlvbltdID0gW1xyXG4gICAge1xyXG4gICAgICBpZDogJ3NpZGUtYnktc2lkZScsXHJcbiAgICAgIG5hbWU6ICdzaWRlLWJ5LXNpZGUnLFxyXG4gICAgICBsYWJlbDogJ1NpZGUgYnkgU2lkZScsXHJcbiAgICAgIHZhbHVlOiAnU2lkZUJ5U2lkZScsXHJcbiAgICAgIGljb246ICdsYS1jb2RlJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6ICdsaW5lLWJ5LWxpbmUnLFxyXG4gICAgICBuYW1lOiAnbGluZS1ieS1saW5lJyxcclxuICAgICAgbGFiZWw6ICdMaW5lIGJ5IExpbmUnLFxyXG4gICAgICB2YWx1ZTogJ0xpbmVCeUxpbmUnLFxyXG4gICAgICBpY29uOiAnbGEtZmlsZS10ZXh0J1xyXG4gICAgfVxyXG4gIF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlmZjogTmd4VGV4dERpZmZTZXJ2aWNlLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5kaWZmQ29udGVudCkge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmRpZmZDb250ZW50LnN1YnNjcmliZShjb250ZW50ID0+IHtcclxuICAgICAgICAgIHRoaXMubGVmdCA9IGNvbnRlbnQubGVmdENvbnRlbnQ7XHJcbiAgICAgICAgICB0aGlzLnJpZ2h0ID0gY29udGVudC5yaWdodENvbnRlbnQ7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckRpZmZzKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVuZGVyRGlmZnMoKS50aGVuKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMpIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3dMaW5lc0RpZmZzQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dMaW5lc0RpZmZzID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5zaG93TGluZXNEaWZmcykge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkVGFibGVSb3dzID0gdGhpcy50YWJsZVJvd3MuZmlsdGVyKFxyXG4gICAgICAgIHJvdyA9PiAocm93LmxlZnRDb250ZW50ICYmIHJvdy5sZWZ0Q29udGVudC5wcmVmaXggPT09ICctJykgfHwgKHJvdy5yaWdodENvbnRlbnQgJiYgcm93LnJpZ2h0Q29udGVudC5wcmVmaXggPT09ICcrJylcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5maWx0ZXJlZFRhYmxlUm93c0xpbmVCeUxpbmUgPSB0aGlzLnRhYmxlUm93c0xpbmVCeUxpbmUuZmlsdGVyKFxyXG4gICAgICAgIHJvdyA9PiAocm93LmxlZnRDb250ZW50ICYmIHJvdy5sZWZ0Q29udGVudC5wcmVmaXggPT09ICctJykgfHwgKHJvdy5yaWdodENvbnRlbnQgJiYgcm93LnJpZ2h0Q29udGVudC5wcmVmaXggPT09ICcrJylcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRUYWJsZVJvd3MgPSB0aGlzLnRhYmxlUm93cztcclxuICAgICAgdGhpcy5maWx0ZXJlZFRhYmxlUm93c0xpbmVCeUxpbmUgPSB0aGlzLnRhYmxlUm93c0xpbmVCeUxpbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXREaWZmVGFibGVGb3JtYXQoZm9ybWF0OiBEaWZmVGFibGVGb3JtYXQpIHtcclxuICAgIHRoaXMuZm9ybWF0ID0gZm9ybWF0O1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcmVuZGVyRGlmZnMoKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRpZmZzQ291bnQgPSAwO1xyXG4gICAgICB0aGlzLnRhYmxlUm93cyA9IGF3YWl0IHRoaXMuZGlmZi5nZXREaWZmc0J5TGluZXModGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgdGhpcy50YWJsZVJvd3NMaW5lQnlMaW5lID0gdGhpcy50YWJsZVJvd3MucmVkdWNlKCh0YWJsZUxpbmVCeUxpbmU6IERpZmZUYWJsZVJvd1Jlc3VsdFtdLCByb3c6IERpZmZUYWJsZVJvd1Jlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmICghdGFibGVMaW5lQnlMaW5lKSB7XHJcbiAgICAgICAgICB0YWJsZUxpbmVCeUxpbmUgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJvdy5oYXNEaWZmcykge1xyXG4gICAgICAgICAgaWYgKHJvdy5sZWZ0Q29udGVudCkge1xyXG4gICAgICAgICAgICB0YWJsZUxpbmVCeUxpbmUucHVzaCh7XHJcbiAgICAgICAgICAgICAgbGVmdENvbnRlbnQ6IHJvdy5sZWZ0Q29udGVudCxcclxuICAgICAgICAgICAgICByaWdodENvbnRlbnQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgYmVsb25nVG86IHJvdy5iZWxvbmdUbyxcclxuICAgICAgICAgICAgICBoYXNEaWZmczogdHJ1ZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyb3cucmlnaHRDb250ZW50KSB7XHJcbiAgICAgICAgICAgIHRhYmxlTGluZUJ5TGluZS5wdXNoKHtcclxuICAgICAgICAgICAgICBsZWZ0Q29udGVudDogbnVsbCxcclxuICAgICAgICAgICAgICByaWdodENvbnRlbnQ6IHJvdy5yaWdodENvbnRlbnQsXHJcbiAgICAgICAgICAgICAgYmVsb25nVG86IHJvdy5iZWxvbmdUbyxcclxuICAgICAgICAgICAgICBoYXNEaWZmczogdHJ1ZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGFibGVMaW5lQnlMaW5lLnB1c2gocm93KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0YWJsZUxpbmVCeUxpbmU7XHJcbiAgICAgIH0sIFtdKTtcclxuICAgICAgdGhpcy5kaWZmc0NvdW50ID0gdGhpcy50YWJsZVJvd3MuZmlsdGVyKFxyXG4gICAgICAgIHJvdyA9PiAocm93LmxlZnRDb250ZW50ICYmIHJvdy5sZWZ0Q29udGVudC5wcmVmaXggPT09ICctJykgfHwgKHJvdy5yaWdodENvbnRlbnQgJiYgcm93LnJpZ2h0Q29udGVudC5wcmVmaXggPT09ICcrJylcclxuICAgICAgKS5sZW5ndGg7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRUYWJsZVJvd3MgPSB0aGlzLnRhYmxlUm93cztcclxuICAgICAgdGhpcy5maWx0ZXJlZFRhYmxlUm93c0xpbmVCeUxpbmUgPSB0aGlzLnRhYmxlUm93c0xpbmVCeUxpbmU7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSBjYXRjaCAoZSkge31cclxuICB9XHJcblxyXG4gIHRyYWNrVGFibGVSb3dzKGluZGV4LCByb3c6IERpZmZUYWJsZVJvd1Jlc3VsdCkge1xyXG4gICAgcmV0dXJuIHJvdyAmJiByb3cubGVmdENvbnRlbnQgPyByb3cubGVmdENvbnRlbnQubGluZUNvbnRlbnQgOiByb3cgJiYgcm93LnJpZ2h0Q29udGVudCA/IHJvdy5yaWdodENvbnRlbnQubGluZUNvbnRlbnQgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICB0cmFja0RpZmZzKGluZGV4LCBkaWZmOiBEaWZmUGFydCkge1xyXG4gICAgcmV0dXJuIGRpZmYgJiYgZGlmZi5jb250ZW50ID8gZGlmZi5jb250ZW50IDogdW5kZWZpbmVkO1xyXG4gIH1cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtdGV4dC1kaWZmLyIsInNvdXJjZXMiOlsibGliL25neC10ZXh0LWRpZmYuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRWhEO0lBcUNFLDhCQUFvQixJQUF3QixFQUFVLEVBQXFCO1FBQXZELFNBQUksR0FBSixJQUFJLENBQW9CO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUEvQmxFLFdBQU0sR0FBb0IsWUFBWSxDQUFDO1FBQ3ZDLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUMvQixrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFDbkMsY0FBUyxHQUF5QixFQUFFLENBQUM7UUFDckMsc0JBQWlCLEdBQXlCLEVBQUUsQ0FBQztRQUM3Qyx3QkFBbUIsR0FBeUIsRUFBRSxDQUFDO1FBQy9DLGdDQUEyQixHQUF5QixFQUFFLENBQUM7UUFDdkQsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUVmLGtCQUFhLEdBQTRCO1lBQ3ZDO2dCQUNFLEVBQUUsRUFBRSxjQUFjO2dCQUNsQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsS0FBSyxFQUFFLGNBQWM7Z0JBQ3JCLEtBQUssRUFBRSxZQUFZO2dCQUNuQixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLEVBQUUsRUFBRSxjQUFjO2dCQUNsQixJQUFJLEVB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QUs7aUNBQ0wsS0FBSzs7SUEySFIsMkJBQUM7Q0FBQSxBQXRJRCxJQXNJQztTQWpJWSxvQkFBb0I7OztJQUMvQixzQ0FBZ0Q7O0lBQ2hELG9DQUFtQjs7SUFDbkIscUNBQW9COztJQUNwQiwyQ0FBOEM7O0lBQzlDLHVDQUF5Qjs7SUFDekIsOENBQStCOztJQUMvQiw2Q0FBbUM7O0lBQ25DLHlDQUFxQzs7SUFDckMsaURBQTZDOztJQUM3QyxtREFBK0M7O0lBQy9DLDJEQUF1RDs7SUFDdkQsOENBQXVCOztJQUN2QiwwQ0FBZTs7SUFFZiw2Q0FlRTs7Ozs7SUFFVSxvQ0FBZ0M7Ozs7O0lBQUUsa0NBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpZmZDb250ZW50LCBEaWZmUGFydCwgRGlmZlRhYmxlRm9ybWF0LCBEaWZmVGFibGVGb3JtYXRPcHRpb24sIERpZmZUYWJsZVJvd1Jlc3VsdCB9IGZyb20gJy4vbmd4LXRleHQtZGlmZi5tb2RlbCc7XHJcbmltcG9ydCB7IE5neFRleHREaWZmU2VydmljZSB9IGZyb20gJy4vbmd4LXRleHQtZGlmZi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RkLW5neC10ZXh0LWRpZmYnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9uZ3gtdGV4dC1kaWZmLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uZ3gtdGV4dC1kaWZmLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4VGV4dERpZmZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgZm9ybWF0OiBEaWZmVGFibGVGb3JtYXQgPSAnU2lkZUJ5U2lkZSc7XHJcbiAgQElucHV0KCkgbGVmdCA9ICcnO1xyXG4gIEBJbnB1dCgpIHJpZ2h0ID0gJyc7XHJcbiAgQElucHV0KCkgZGlmZkNvbnRlbnQ6IE9ic2VydmFibGU8RGlmZkNvbnRlbnQ+O1xyXG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93QnRuVG9vbGJhciA9IHRydWU7XHJcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICB0YWJsZVJvd3M6IERpZmZUYWJsZVJvd1Jlc3VsdFtdID0gW107XHJcbiAgZmlsdGVyZWRUYWJsZVJvd3M6IERpZmZUYWJsZVJvd1Jlc3VsdFtdID0gW107XHJcbiAgdGFibGVSb3dzTGluZUJ5TGluZTogRGlmZlRhYmxlUm93UmVzdWx0W10gPSBbXTtcclxuICBmaWx0ZXJlZFRhYmxlUm93c0xpbmVCeUxpbmU6IERpZmZUYWJsZVJvd1Jlc3VsdFtdID0gW107XHJcbiAgc2hvd0xpbmVzRGlmZnMgPSBmYWxzZTtcclxuICBkaWZmc0NvdW50ID0gMDtcclxuXHJcbiAgZm9ybWF0T3B0aW9uczogRGlmZlRhYmxlRm9ybWF0T3B0aW9uW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGlkOiAnc2lkZS1ieS1zaWRlJyxcclxuICAgICAgbmFtZTogJ3NpZGUtYnktc2lkZScsXHJcbiAgICAgIGxhYmVsOiAnU2lkZSBieSBTaWRlJyxcclxuICAgICAgdmFsdWU6ICdTaWRlQnlTaWRlJyxcclxuICAgICAgaWNvbjogJ2xhLWNvZGUnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpZDogJ2xpbmUtYnktbGluZScsXHJcbiAgICAgIG5hbWU6ICdsaW5lLWJ5LWxpbmUnLFxyXG4gICAgICBsYWJlbDogJ0xpbmUgYnkgTGluZScsXHJcbiAgICAgIHZhbHVlOiAnTGluZUJ5TGluZScsXHJcbiAgICAgIGljb246ICdsYS1maWxlLXRleHQnXHJcbiAgICB9XHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWZmOiBOZ3hUZXh0RGlmZlNlcnZpY2UsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5kaWZmQ29udGVudCkge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmRpZmZDb250ZW50LnN1YnNjcmliZShjb250ZW50ID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxlZnQgPSBjb250ZW50LmxlZnRDb250ZW50O1xyXG4gICAgICAgICAgdGhpcy5yaWdodCA9IGNvbnRlbnQucmlnaHRDb250ZW50O1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJEaWZmcygpXHJcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlbmRlckRpZmZzKClcclxuICAgICAgLnRoZW4oKCkgPT4gKHRoaXMubG9hZGluZyA9IGZhbHNlKSlcclxuICAgICAgLmNhdGNoKGUgPT4gKHRoaXMubG9hZGluZyA9IGZhbHNlKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMpIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3dMaW5lc0RpZmZzQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dMaW5lc0RpZmZzID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5zaG93TGluZXNEaWZmcykge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkVGFibGVSb3dzID0gdGhpcy50YWJsZVJvd3MuZmlsdGVyKFxyXG4gICAgICAgIHJvdyA9PiAocm93LmxlZnRDb250ZW50ICYmIHJvdy5sZWZ0Q29udGVudC5wcmVmaXggPT09ICctJykgfHwgKHJvdy5yaWdodENvbnRlbnQgJiYgcm93LnJpZ2h0Q29udGVudC5wcmVmaXggPT09ICcrJylcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5maWx0ZXJlZFRhYmxlUm93c0xpbmVCeUxpbmUgPSB0aGlzLnRhYmxlUm93c0xpbmVCeUxpbmUuZmlsdGVyKFxyXG4gICAgICAgIHJvdyA9PiAocm93LmxlZnRDb250ZW50ICYmIHJvdy5sZWZ0Q29udGVudC5wcmVmaXggPT09ICctJykgfHwgKHJvdy5yaWdodENvbnRlbnQgJiYgcm93LnJpZ2h0Q29udGVudC5wcmVmaXggPT09ICcrJylcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRUYWJsZVJvd3MgPSB0aGlzLnRhYmxlUm93cztcclxuICAgICAgdGhpcy5maWx0ZXJlZFRhYmxlUm93c0xpbmVCeUxpbmUgPSB0aGlzLnRhYmxlUm93c0xpbmVCeUxpbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXREaWZmVGFibGVGb3JtYXQoZm9ybWF0OiBEaWZmVGFibGVGb3JtYXQpIHtcclxuICAgIHRoaXMuZm9ybWF0ID0gZm9ybWF0O1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcmVuZGVyRGlmZnMoKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLmRpZmZzQ291bnQgPSAwO1xyXG4gICAgICB0aGlzLnRhYmxlUm93cyA9IGF3YWl0IHRoaXMuZGlmZi5nZXREaWZmc0J5TGluZXModGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgdGhpcy50YWJsZVJvd3NMaW5lQnlMaW5lID0gdGhpcy50YWJsZVJvd3MucmVkdWNlKCh0YWJsZUxpbmVCeUxpbmU6IERpZmZUYWJsZVJvd1Jlc3VsdFtdLCByb3c6IERpZmZUYWJsZVJvd1Jlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmICghdGFibGVMaW5lQnlMaW5lKSB7XHJcbiAgICAgICAgICB0YWJsZUxpbmVCeUxpbmUgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJvdy5oYXNEaWZmcykge1xyXG4gICAgICAgICAgaWYgKHJvdy5sZWZ0Q29udGVudCkge1xyXG4gICAgICAgICAgICB0YWJsZUxpbmVCeUxpbmUucHVzaCh7XHJcbiAgICAgICAgICAgICAgbGVmdENvbnRlbnQ6IHJvdy5sZWZ0Q29udGVudCxcclxuICAgICAgICAgICAgICByaWdodENvbnRlbnQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgYmVsb25nVG86IHJvdy5iZWxvbmdUbyxcclxuICAgICAgICAgICAgICBoYXNEaWZmczogdHJ1ZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyb3cucmlnaHRDb250ZW50KSB7XHJcbiAgICAgICAgICAgIHRhYmxlTGluZUJ5TGluZS5wdXNoKHtcclxuICAgICAgICAgICAgICBsZWZ0Q29udGVudDogbnVsbCxcclxuICAgICAgICAgICAgICByaWdodENvbnRlbnQ6IHJvdy5yaWdodENvbnRlbnQsXHJcbiAgICAgICAgICAgICAgYmVsb25nVG86IHJvdy5iZWxvbmdUbyxcclxuICAgICAgICAgICAgICBoYXNEaWZmczogdHJ1ZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGFibGVMaW5lQnlMaW5lLnB1c2gocm93KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0YWJsZUxpbmVCeUxpbmU7XHJcbiAgICAgIH0sIFtdKTtcclxuICAgICAgdGhpcy5kaWZmc0NvdW50ID0gdGhpcy50YWJsZVJvd3MuZmlsdGVyKFxyXG4gICAgICAgIHJvdyA9PiAocm93LmxlZnRDb250ZW50ICYmIHJvdy5sZWZ0Q29udGVudC5wcmVmaXggPT09ICctJykgfHwgKHJvdy5yaWdodENvbnRlbnQgJiYgcm93LnJpZ2h0Q29udGVudC5wcmVmaXggPT09ICcrJylcclxuICAgICAgKS5sZW5ndGg7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRUYWJsZVJvd3MgPSB0aGlzLnRhYmxlUm93cztcclxuICAgICAgdGhpcy5maWx0ZXJlZFRhYmxlUm93c0xpbmVCeUxpbmUgPSB0aGlzLnRhYmxlUm93c0xpbmVCeUxpbmU7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHRocm93IGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0cmFja1RhYmxlUm93cyhpbmRleCwgcm93OiBEaWZmVGFibGVSb3dSZXN1bHQpIHtcclxuICAgIHJldHVybiByb3cgJiYgcm93LmxlZnRDb250ZW50ID8gcm93LmxlZnRDb250ZW50LmxpbmVDb250ZW50IDogcm93ICYmIHJvdy5yaWdodENvbnRlbnQgPyByb3cucmlnaHRDb250ZW50LmxpbmVDb250ZW50IDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tEaWZmcyhpbmRleCwgZGlmZjogRGlmZlBhcnQpIHtcclxuICAgIHJldHVybiBkaWZmICYmIGRpZmYuY29udGVudCA/IGRpZmYuY29udGVudCA6IHVuZGVmaW5lZDtcclxuICB9XHJcbn1cclxuIl19
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @typedef {?} */
var DiffTableFormat;
export { DiffTableFormat };
/** @typedef {?} */
var SideDiff;
export { SideDiff };
/**

@@ -15,14 +9,16 @@ * @record

export function DiffTableFormatOption() { }
/** @type {?} */
DiffTableFormatOption.prototype.id;
/** @type {?} */
DiffTableFormatOption.prototype.name;
/** @type {?} */
DiffTableFormatOption.prototype.label;
/** @type {?} */
DiffTableFormatOption.prototype.value;
/** @type {?|undefined} */
DiffTableFormatOption.prototype.icon;
/** @type {?|undefined} */
DiffTableFormatOption.prototype.disabled;
if (false) {
/** @type {?} */
DiffTableFormatOption.prototype.id;
/** @type {?} */
DiffTableFormatOption.prototype.name;
/** @type {?} */
DiffTableFormatOption.prototype.label;
/** @type {?} */
DiffTableFormatOption.prototype.value;
/** @type {?|undefined} */
DiffTableFormatOption.prototype.icon;
/** @type {?|undefined} */
DiffTableFormatOption.prototype.disabled;
}
/**

@@ -32,6 +28,8 @@ * @record

export function DiffContent() { }
/** @type {?} */
DiffContent.prototype.leftContent;
/** @type {?} */
DiffContent.prototype.rightContent;
if (false) {
/** @type {?} */
DiffContent.prototype.leftContent;
/** @type {?} */
DiffContent.prototype.rightContent;
}
/**

@@ -41,6 +39,8 @@ * @record

export function DiffPart() { }
/** @type {?} */
DiffPart.prototype.content;
/** @type {?} */
DiffPart.prototype.isDiff;
if (false) {
/** @type {?} */
DiffPart.prototype.content;
/** @type {?} */
DiffPart.prototype.isDiff;
}
/**

@@ -50,10 +50,12 @@ * @record

export function DiffLineResult() { }
/** @type {?} */
DiffLineResult.prototype.lineNumber;
/** @type {?} */
DiffLineResult.prototype.prefix;
/** @type {?} */
DiffLineResult.prototype.lineContent;
/** @type {?} */
DiffLineResult.prototype.lineDiffs;
if (false) {
/** @type {?} */
DiffLineResult.prototype.lineNumber;
/** @type {?} */
DiffLineResult.prototype.prefix;
/** @type {?} */
DiffLineResult.prototype.lineContent;
/** @type {?} */
DiffLineResult.prototype.lineDiffs;
}
/**

@@ -63,11 +65,12 @@ * @record

export function DiffTableRowResult() { }
/** @type {?} */
DiffTableRowResult.prototype.leftContent;
/** @type {?} */
DiffTableRowResult.prototype.rightContent;
/** @type {?} */
DiffTableRowResult.prototype.belongTo;
/** @type {?} */
DiffTableRowResult.prototype.hasDiffs;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC10ZXh0LWRpZmYvIiwic291cmNlcyI6WyJsaWIvbmd4LXRleHQtZGlmZi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRGlmZlRhYmxlRm9ybWF0ID0gJ1NpZGVCeVNpZGUnIHwgJ0xpbmVCeUxpbmUnO1xyXG5leHBvcnQgdHlwZSBTaWRlRGlmZiA9ICdib3RoJyB8ICdsZWZ0JyB8ICdyaWdodCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpZmZUYWJsZUZvcm1hdE9wdGlvbiB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZTogRGlmZlRhYmxlRm9ybWF0O1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpZmZDb250ZW50IHtcclxuICBsZWZ0Q29udGVudDogc3RyaW5nO1xyXG4gIHJpZ2h0Q29udGVudDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpZmZQYXJ0IHtcclxuICBjb250ZW50OiBzdHJpbmc7XHJcbiAgaXNEaWZmOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpZmZMaW5lUmVzdWx0IHtcclxuICBsaW5lTnVtYmVyOiBudW1iZXI7XHJcbiAgcHJlZml4OiBzdHJpbmc7XHJcbiAgbGluZUNvbnRlbnQ6IHN0cmluZztcclxuICBsaW5lRGlmZnM6IERpZmZQYXJ0W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlmZlRhYmxlUm93UmVzdWx0IHtcclxuICBsZWZ0Q29udGVudDogRGlmZkxpbmVSZXN1bHQ7XHJcbiAgcmlnaHRDb250ZW50OiBEaWZmTGluZVJlc3VsdDtcclxuICBiZWxvbmdUbzogU2lkZURpZmY7XHJcbiAgaGFzRGlmZnM6IGJvb2xlYW47XHJcbn1cclxuIl19
if (false) {
/** @type {?} */
DiffTableRowResult.prototype.leftContent;
/** @type {?} */
DiffTableRowResult.prototype.rightContent;
/** @type {?} */
DiffTableRowResult.prototype.belongTo;
/** @type {?} */
DiffTableRowResult.prototype.hasDiffs;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC10ZXh0LWRpZmYvIiwic291cmNlcyI6WyJsaWIvbmd4LXRleHQtZGlmZi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBR0EsMkNBT0M7OztJQU5DLG1DQUFXOztJQUNYLHFDQUFhOztJQUNiLHNDQUFjOztJQUNkLHNDQUF1Qjs7SUFDdkIscUNBQWM7O0lBQ2QseUNBQW1COzs7OztBQUdyQixpQ0FHQzs7O0lBRkMsa0NBQW9COztJQUNwQixtQ0FBcUI7Ozs7O0FBR3ZCLDhCQUdDOzs7SUFGQywyQkFBZ0I7O0lBQ2hCLDBCQUFnQjs7Ozs7QUFHbEIsb0NBS0M7OztJQUpDLG9DQUFtQjs7SUFDbkIsZ0NBQWU7O0lBQ2YscUNBQW9COztJQUNwQixtQ0FBc0I7Ozs7O0FBR3hCLHdDQUtDOzs7SUFKQyx5Q0FBNEI7O0lBQzVCLDBDQUE2Qjs7SUFDN0Isc0NBQW1COztJQUNuQixzQ0FBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBEaWZmVGFibGVGb3JtYXQgPSAnU2lkZUJ5U2lkZScgfCAnTGluZUJ5TGluZSc7XHJcbmV4cG9ydCB0eXBlIFNpZGVEaWZmID0gJ2JvdGgnIHwgJ2xlZnQnIHwgJ3JpZ2h0JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlmZlRhYmxlRm9ybWF0T3B0aW9uIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHZhbHVlOiBEaWZmVGFibGVGb3JtYXQ7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlmZkNvbnRlbnQge1xyXG4gIGxlZnRDb250ZW50OiBzdHJpbmc7XHJcbiAgcmlnaHRDb250ZW50OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlmZlBhcnQge1xyXG4gIGNvbnRlbnQ6IHN0cmluZztcclxuICBpc0RpZmY6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlmZkxpbmVSZXN1bHQge1xyXG4gIGxpbmVOdW1iZXI6IG51bWJlcjtcclxuICBwcmVmaXg6IHN0cmluZztcclxuICBsaW5lQ29udGVudDogc3RyaW5nO1xyXG4gIGxpbmVEaWZmczogRGlmZlBhcnRbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaWZmVGFibGVSb3dSZXN1bHQge1xyXG4gIGxlZnRDb250ZW50OiBEaWZmTGluZVJlc3VsdDtcclxuICByaWdodENvbnRlbnQ6IERpZmZMaW5lUmVzdWx0O1xyXG4gIGJlbG9uZ1RvOiBTaWRlRGlmZjtcclxuICBoYXNEaWZmczogYm9vbGVhbjtcclxufVxyXG4iXX0=
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -24,3 +24,2 @@ import { NgModule } from '@angular/core';

export { NgxTextDiffModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtdGV4dC1kaWZmLyIsInNvdXJjZXMiOlsibGliL25neC10ZXh0LWRpZmYubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7OztnQkFFbkQsUUFBUSxTQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUM7b0JBQ3BDLFlBQVksRUFBRSxDQUFDLG9CQUFvQixFQUFFLHNCQUFzQixFQUFFLGNBQWMsQ0FBQztvQkFDNUUsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7aUJBQ2hDOzs0QkFYRDs7U0FZYSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ3hUZXh0RGlmZkNvbXBvbmVudCB9IGZyb20gJy4vbmd4LXRleHQtZGlmZi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTG9hZGVyU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4vbG9hZGVyLXNwaW5uZXIvbG9hZGVyLXNwaW5uZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybWF0TGluZVBpcGUgfSBmcm9tICcuL2Zvcm1hdC1saW5lLnBpcGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXHJcbiAgZGVjbGFyYXRpb25zOiBbTmd4VGV4dERpZmZDb21wb25lbnQsIExvYWRlclNwaW5uZXJDb21wb25lbnQsIEZvcm1hdExpbmVQaXBlXSxcclxuICBleHBvcnRzOiBbTmd4VGV4dERpZmZDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hUZXh0RGlmZk1vZHVsZSB7fVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtdGV4dC1kaWZmLyIsInNvdXJjZXMiOlsibGliL25neC10ZXh0LWRpZmYubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBEO0lBQUE7SUFLZ0MsQ0FBQzs7Z0JBTGhDLFFBQVEsU0FBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO29CQUNwQyxZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLENBQUM7b0JBQzVFLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNoQzs7SUFDK0Isd0JBQUM7Q0FBQSxBQUxqQyxJQUtpQztTQUFwQixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ3hUZXh0RGlmZkNvbXBvbmVudCB9IGZyb20gJy4vbmd4LXRleHQtZGlmZi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTG9hZGVyU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4vbG9hZGVyLXNwaW5uZXIvbG9hZGVyLXNwaW5uZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybWF0TGluZVBpcGUgfSBmcm9tICcuL2Zvcm1hdC1saW5lLnBpcGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXHJcbiAgZGVjbGFyYXRpb25zOiBbTmd4VGV4dERpZmZDb21wb25lbnQsIExvYWRlclNwaW5uZXJDb21wb25lbnQsIEZvcm1hdExpbmVQaXBlXSxcclxuICBleHBvcnRzOiBbTmd4VGV4dERpZmZDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hUZXh0RGlmZk1vZHVsZSB7fVxyXG4iXX0=
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { DIFF_DELETE, DIFF_EQUAL, DIFF_INSERT, diff_match_patch } from 'diff-match-patch';
import { isEmpty, isNil } from './ngx-text-diff.utils';
import { isEmpty } from './ngx-text-diff.utils';
import * as i0 from "@angular/core";

@@ -14,5 +14,7 @@ var NgxTextDiffService = /** @class */ (function () {

/**
* @private
* @return {?}
*/
NgxTextDiffService.prototype.initParser = /**
* @private
* @return {?}

@@ -48,3 +50,3 @@ */

/** @type {?} */
var rows = _this.formatOutputNew(diffs, linesArray);
var rows = _this.formatOutput(diffs);
if (!rows) {

@@ -57,29 +59,13 @@ reject('Error');

/**
* @private
* @param {?} diffs
* @param {?=} lines
* @return {?}
*/
NgxTextDiffService.prototype.formatOutputNew = /**
NgxTextDiffService.prototype.formatOutput = /**
* @private
* @param {?} diffs
* @param {?=} lines
* @return {?}
*/
function (diffs, lines) {
if (lines) {
return this.formatDiffsFromLines(diffs, lines);
}
};
/**
* @param {?} diffs
* @param {?} lines
* @return {?}
*/
NgxTextDiffService.prototype.formatDiffsFromLines = /**
* @param {?} diffs
* @param {?} lines
* @return {?}
*/
function (diffs, lines) {
function (diffs) {
var _this = this;
lines.splice(0, 1);
/** @type {?} */

@@ -89,4 +75,3 @@ var lineLeft = 1;

var lineRight = 1;
/** @type {?} */
var diffRowsResult = diffs.reduce(function (rows, diff) {
return diffs.reduce(function (rows, diff) {
if (!rows) {

@@ -96,106 +81,123 @@ rows = [];

/** @type {?} */
var diffValues = diff[1];
while (!isNil(diffValues) || !isEmpty(diffValues) || diffValues.length > 0) {
/** @type {?} */
var findIndex = lines.findIndex(function (line) { return diffValues.includes(line); });
if (findIndex >= 0) {
/** @type {?} */
var line = lines[findIndex];
/** @type {?} */
var leftDiffRow = null;
/** @type {?} */
var rightDiffRow = null;
/** @type {?} */
var leftContent = null;
/** @type {?} */
var rightContent = null;
/** @type {?} */
var rowTemp = null;
switch (diff[0]) {
case DIFF_EQUAL:
leftContent = {
lineNumber: lineLeft,
lineContent: line,
lineDiffs: [],
prefix: ''
};
rightContent = {
lineNumber: lineRight,
lineContent: line,
lineDiffs: [],
prefix: ''
};
rowTemp = {
var diffType = diff[0];
/** @type {?} */
var diffValue = diff[1];
/** @type {?} */
var leftDiffRow = null;
/** @type {?} */
var rightDiffRow = null;
/** @type {?} */
var leftContent = null;
/** @type {?} */
var rightContent = null;
/** @type {?} */
var rowTemp = null;
switch (diffType) {
case DIFF_EQUAL: // 0
diffValue
.split('\n')
.filter(function (value, index, array) {
if (index === array.length - 1) {
return !isEmpty(value);
}
return true;
})
.forEach(function (line) {
leftContent = {
lineNumber: lineLeft,
lineContent: line,
lineDiffs: [],
prefix: ''
};
rightContent = {
lineNumber: lineRight,
lineContent: line,
lineDiffs: [],
prefix: ''
};
rowTemp = {
leftContent: leftContent,
rightContent: rightContent,
belongTo: 'both',
hasDiffs: false
};
rows.push(rowTemp);
lineRight = lineRight + 1;
lineLeft = lineLeft + 1;
});
break;
case DIFF_DELETE: // -1
diffValue
.split('\n')
.filter(function (value, index, array) {
if (index === array.length - 1) {
return !isEmpty(value);
}
return true;
})
.forEach(function (line) {
rightDiffRow = rows.find(function (row) { return !row.leftContent && row.rightContent && row.rightContent.lineNumber === lineLeft && row.rightContent.prefix !== ''; });
leftContent = {
lineNumber: lineLeft,
lineContent: line,
lineDiffs: [{ content: line, isDiff: true }],
prefix: '-'
};
if (rightDiffRow) {
rightDiffRow.leftContent = leftContent;
rightDiffRow.leftContent.lineDiffs = _this.getDiffParts(rightDiffRow.leftContent.lineContent, rightDiffRow.rightContent.lineContent);
rightDiffRow.rightContent.lineDiffs = _this.getDiffParts(rightDiffRow.rightContent.lineContent, rightDiffRow.leftContent.lineContent);
rightDiffRow.belongTo = 'both';
}
else {
rows.push({
leftContent: leftContent,
rightContent: null,
hasDiffs: true,
belongTo: 'left'
});
}
lineLeft = lineLeft + 1;
});
break;
case DIFF_INSERT: // 1
diffValue
.split('\n')
.filter(function (value, index, array) {
if (index === array.length - 1) {
return !isEmpty(value);
}
return true;
})
.forEach(function (line) {
leftDiffRow = rows.find(function (row) { return row.leftContent && !row.rightContent && row.leftContent.lineNumber === lineRight && row.leftContent.prefix !== ''; });
rightContent = {
lineNumber: lineRight,
lineContent: line,
lineDiffs: [{ content: line, isDiff: true }],
prefix: '+'
};
if (leftDiffRow) {
leftDiffRow.rightContent = rightContent;
leftDiffRow.leftContent.lineDiffs = _this.getDiffParts(leftDiffRow.leftContent.lineContent, leftDiffRow.rightContent.lineContent);
leftDiffRow.rightContent.lineDiffs = _this.getDiffParts(leftDiffRow.rightContent.lineContent, leftDiffRow.leftContent.lineContent);
leftDiffRow.belongTo = 'both';
}
else {
rows.push({
leftContent: null,
rightContent: rightContent,
belongTo: 'both',
hasDiffs: false
};
rows.push(rowTemp);
lineRight = lineRight + 1;
lineLeft = lineLeft + 1;
break;
case DIFF_INSERT:
leftDiffRow = rows.find(function (row) { return row.leftContent && !row.rightContent && row.leftContent.lineNumber === lineRight && row.leftContent.prefix !== ''; });
rightContent = {
lineNumber: lineRight,
lineContent: line,
lineDiffs: [{ content: line, isDiff: true }],
prefix: '+'
};
if (leftDiffRow) {
leftDiffRow.rightContent = rightContent;
leftDiffRow.leftContent.lineDiffs = _this.getDiffParts(leftDiffRow.leftContent.lineContent, leftDiffRow.rightContent.lineContent);
leftDiffRow.rightContent.lineDiffs = _this.getDiffParts(leftDiffRow.rightContent.lineContent, leftDiffRow.leftContent.lineContent);
leftDiffRow.belongTo = 'both';
}
else {
rows.push({
leftContent: null,
rightContent: rightContent,
hasDiffs: true,
belongTo: 'right'
});
}
lineRight = lineRight + 1;
break;
case DIFF_DELETE:
rightDiffRow = rows.find(function (row) { return !row.leftContent && row.rightContent && row.rightContent.lineNumber === lineLeft && row.rightContent.prefix !== ''; });
leftContent = {
lineNumber: lineLeft,
lineContent: line,
lineDiffs: [{ content: line, isDiff: true }],
prefix: '-'
};
if (rightDiffRow) {
rightDiffRow.leftContent = leftContent;
rightDiffRow.leftContent.lineDiffs = _this.getDiffParts(rightDiffRow.leftContent.lineContent, rightDiffRow.rightContent.lineContent);
rightDiffRow.rightContent.lineDiffs = _this.getDiffParts(rightDiffRow.rightContent.lineContent, rightDiffRow.leftContent.lineContent);
rightDiffRow.belongTo = 'both';
}
else {
rows.push({
leftContent: leftContent,
rightContent: null,
hasDiffs: true,
belongTo: 'left'
});
}
lineLeft = lineLeft + 1;
break;
default:
break;
}
diffValues = diffValues.replace(line, '');
lines.splice(findIndex, 1);
}
else {
hasDiffs: true,
belongTo: 'right'
});
}
lineRight = lineRight + 1;
});
break;
}
}
return rows;
}, []);
return diffRowsResult;
};
/**
* @private
* @param {?} value

@@ -206,2 +208,3 @@ * @param {?} compareValue

NgxTextDiffService.prototype.getDiffParts = /**
* @private
* @param {?} value

@@ -263,3 +266,2 @@ * @param {?} compareValue

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXRleHQtZGlmZi8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtdGV4dC1kaWZmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFRLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0lBUXJEO1FBQ0UsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0tBQ25COzs7O0lBRU8sdUNBQVU7Ozs7UUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7Ozs7Ozs7SUFHM0MsNENBQWU7Ozs7O0lBQWYsVUFBZ0IsSUFBWSxFQUFFLEtBQWE7UUFBM0MsaUJBZUM7UUFkQyxPQUFPLElBQUksT0FBTyxDQUF1QixVQUFDLE9BQU8sRUFBRSxNQUFNOztZQUN2RCxJQUFNLENBQUMsR0FBRyxLQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQzs7WUFDMUQsSUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQzs7WUFDM0IsSUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQzs7WUFDM0IsSUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQzs7WUFDL0IsSUFBTSxLQUFLLEdBQVcsS0FBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM1RSxLQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQzs7WUFDdEQsSUFB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RUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNqRDthQUFNLElBQUksTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUN4QixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUNwRDtRQUVELE9BQU8sU0FBUyxDQUFDOzs7Z0JBN0xwQixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7Ozs2QkFQRDs7U0FRYSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpZmYsIERJRkZfREVMRVRFLCBESUZGX0VRVUFMLCBESUZGX0lOU0VSVCwgZGlmZl9tYXRjaF9wYXRjaCB9IGZyb20gJ2RpZmYtbWF0Y2gtcGF0Y2gnO1xyXG5pbXBvcnQgeyBEaWZmTGluZVJlc3VsdCwgRGlmZlBhcnQsIERpZmZUYWJsZVJvd1Jlc3VsdCB9IGZyb20gJy4vbmd4LXRleHQtZGlmZi5tb2RlbCc7XHJcbmltcG9ydCB7IGlzRW1wdHksIGlzTmlsIH0gZnJvbSAnLi9uZ3gtdGV4dC1kaWZmLnV0aWxzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFRleHREaWZmU2VydmljZSB7XHJcbiAgZGlmZlBhcnNlcjogZGlmZl9tYXRjaF9wYXRjaDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmluaXRQYXJzZXIoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdFBhcnNlcigpIHtcclxuICAgIHRoaXMuZGlmZlBhcnNlciA9IG5ldyBkaWZmX21hdGNoX3BhdGNoKCk7XHJcbiAgfVxyXG5cclxuICBnZXREaWZmc0J5TGluZXMobGVmdDogc3RyaW5nLCByaWdodDogc3RyaW5nKTogUHJvbWlzZTxEaWZmVGFibGVSb3dSZXN1bHRbXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPERpZmZUYWJsZVJvd1Jlc3VsdFtdPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIGNvbnN0IGEgPSB0aGlzLmRpZmZQYXJzZXIuZGlmZl9saW5lc1RvQ2hhcnNfKGxlZnQsIHJpZ2h0KTtcclxuICAgICAgY29uc3QgbGluZVRleHQxID0gYS5jaGFyczE7XHJcbiAgICAgIGNvbnN0IGxpbmVUZXh0MiA9IGEuY2hhcnMyO1xyXG4gICAgICBjb25zdCBsaW5lc0FycmF5ID0gYS5saW5lQXJyYXk7XHJcbiAgICAgIGNvbnN0IGRpZmZzOiBEaWZmW10gPSB0aGlzLmRpZmZQYXJzZXIuZGlmZl9tYWluKGxpbmVUZXh0MSwgbGluZVRleHQyLCB0cnVlKTtcclxuICAgICAgdGhpcy5kaWZmUGFyc2VyLmRpZmZfY2hhcnNUb0xpbmVzXyhkaWZmcywgbGluZXNBcnJheSk7XHJcbiAgICAgIGNvbnN0IHJvd3M6IERpZmZUYWJsZVJvd1Jlc3VsdFtdID0gdGhpcy5mb3JtYXRPdXRwdXROZXcoZGlmZnMsIGxpbmVzQXJyYXkpO1xyXG4gICAgICBpZiAoIXJvd3MpIHtcclxuICAgICAgICByZWplY3QoJ0Vycm9yJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJlc29sdmUocm93cyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0T3V0cHV0TmV3KGRpZmZzOiBEaWZmW10sIGxpbmVzPzogc3RyaW5nW10pOiBEaWZmVGFibGVSb3dSZXN1bHRbXSB7XHJcbiAgICBpZiAobGluZXMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0RGlmZnNGcm9tTGluZXMoZGlmZnMsIGxpbmVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0RGlmZnNGcm9tTGluZXMoZGlmZnM6IERpZmZbXSwgbGluZXM6IHN0cmluZ1tdKTogRGlmZlRhYmxlUm93UmVzdWx0W10ge1xyXG4gICAgbGluZXMuc3BsaWNlKDAsIDEpO1xyXG4gICAgbGV0IGxpbmVMZWZ0ID0gMTtcclxuICAgIGxldCBsaW5lUmlnaHQgPSAxO1xyXG4gICAgY29uc3QgZGlmZlJvd3NSZXN1bHQgPSBkaWZmcy5yZWR1Y2UoKHJvd3M6IERpZmZUYWJsZVJvd1Jlc3VsdFtdLCBkaWZmOiBEaWZmKSA9PiB7XHJcbiAgICAgIGlmICghcm93cykge1xyXG4gICAgICAgIHJvd3MgPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgZGlmZlZhbHVlcyA9IGRpZmZbMV07XHJcbiAgICAgIHdoaWxlICghaXNOaWwoZGlmZlZhbHVlcykgfHwgIWlzRW1wdHkoZGlmZlZhbHVlcykgfHwgZGlmZlZhbHVlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgY29uc3QgZmluZEluZGV4ID0gbGluZXMuZmluZEluZGV4KGxpbmUgPT4gZGlmZlZhbHVlcy5pbmNsdWRlcyhsaW5lKSk7XHJcbiAgICAgICAgaWYgKGZpbmRJbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICBjb25zdCBsaW5lID0gbGluZXNbZmluZEluZGV4XTtcclxuICAgICAgICAgIGxldCBsZWZ0RGlmZlJvdzogRGlmZlRhYmxlUm93UmVzdWx0ID0gbnVsbDtcclxuICAgICAgICAgIGxldCByaWdodERpZmZSb3c6IERpZmZUYWJsZVJvd1Jlc3VsdCA9IG51bGw7XHJcbiAgICAgICAgICBsZXQgbGVmdENvbnRlbnQ6IERpZmZMaW5lUmVzdWx0ID0gbnVsbDtcclxuICAgICAgICAgIGxldCByaWdodENvbnRlbnQ6IERpZmZMaW5lUmVzdWx0ID0gbnVsbDtcclxuICAgICAgICAgIGxldCByb3dUZW1wOiBEaWZmVGFibGVSb3dSZXN1bHQgPSBudWxsO1xyXG4gICAgICAgICAgc3dpdGNoIChkaWZmWzBdKSB7XHJcbiAgICAgICAgICAgIGNhc2UgRElGRl9FUVVBTDpcclxuICAgICAgICAgICAgICBsZWZ0Q29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVMZWZ0LFxyXG4gICAgICAgICAgICAgICAgbGluZUNvbnRlbnQ6IGxpbmUsXHJcbiAgICAgICAgICAgICAgICBsaW5lRGlmZnM6IFtdLFxyXG4gICAgICAgICAgICAgICAgcHJlZml4OiAnJ1xyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgcmlnaHRDb250ZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgbGluZU51bWJlcjogbGluZVJpZ2h0LFxyXG4gICAgICAgICAgICAgICAgbGluZUNvbnRlbnQ6IGxpbmUsXHJcbiAgICAgICAgICAgICAgICBsaW5lRGlmZnM6IFtdLFxyXG4gICAgICAgICAgICAgICAgcHJlZml4OiAnJ1xyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgcm93VGVtcCA9IHtcclxuICAgICAgICAgICAgICAgIGxlZnRDb250ZW50LFxyXG4gICAgICAgICAgICAgICAgcmlnaHRDb250ZW50LFxyXG4gICAgICAgICAgICAgICAgYmVsb25nVG86ICdib3RoJyxcclxuICAgICAgICAgICAgICAgIGhhc0RpZmZzOiBmYWxzZVxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgcm93cy5wdXNoKHJvd1RlbXApO1xyXG4gICAgICAgICAgICAgIGxpbmVSaWdodCA9IGxpbmVSaWdodCArIDE7XHJcbiAgICAgICAgICAgICAgbGluZUxlZnQgPSBsaW5lTGVmdCArIDE7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgRElGRl9JTlNFUlQ6XHJcbiAgICAgICAgICAgICAgbGVmdERpZmZSb3cgPSByb3dzLmZpbmQoXHJcbiAgICAgICAgICAgICAgICByb3cgPT4gcm93LmxlZnRDb250ZW50ICYmICFyb3cucmlnaHRDb250ZW50ICYmIHJvdy5sZWZ0Q29udGVudC5saW5lTnVtYmVyID09PSBsaW5lUmlnaHQgJiYgcm93LmxlZnRDb250ZW50LnByZWZpeCAhPT0gJydcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHJpZ2h0Q29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVSaWdodCxcclxuICAgICAgICAgICAgICAgIGxpbmVDb250ZW50OiBsaW5lLFxyXG4gICAgICAgICAgICAgICAgbGluZURpZmZzOiBbeyBjb250ZW50OiBsaW5lLCBpc0RpZmY6IHRydWUgfV0sXHJcbiAgICAgICAgICAgICAgICBwcmVmaXg6ICcrJ1xyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgaWYgKGxlZnREaWZmUm93KSB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0RGlmZlJvdy5yaWdodENvbnRlbnQgPSByaWdodENvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICBsZWZ0RGlmZlJvdy5sZWZ0Q29udGVudC5saW5lRGlmZnMgPSB0aGlzLmdldERpZmZQYXJ0cyhcclxuICAgICAgICAgICAgICAgICAgbGVmdERpZmZSb3cubGVmdENvbnRlbnQubGluZUNvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICAgIGxlZnREaWZmUm93LnJpZ2h0Q29udGVudC5saW5lQ29udGVudFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGxlZnREaWZmUm93LnJpZ2h0Q29udGVudC5saW5lRGlmZnMgPSB0aGlzLmdldERpZmZQYXJ0cyhcclxuICAgICAgICAgICAgICAgICAgbGVmdERpZmZSb3cucmlnaHRDb250ZW50LmxpbmVDb250ZW50LFxyXG4gICAgICAgICAgICAgICAgICBsZWZ0RGlmZlJvdy5sZWZ0Q29udGVudC5saW5lQ29udGVudFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGxlZnREaWZmUm93LmJlbG9uZ1RvID0gJ2JvdGgnO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByb3dzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICBsZWZ0Q29udGVudDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgcmlnaHRDb250ZW50LFxyXG4gICAgICAgICAgICAgICAgICBoYXNEaWZmczogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgYmVsb25nVG86ICdyaWdodCdcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsaW5lUmlnaHQgPSBsaW5lUmlnaHQgKyAxO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIERJRkZfREVMRVRFOlxyXG4gICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdyA9IHJvd3MuZmluZChcclxuICAgICAgICAgICAgICAgIHJvdyA9PiAhcm93LmxlZnRDb250ZW50ICYmIHJvdy5yaWdodENvbnRlbnQgJiYgcm93LnJpZ2h0Q29udGVudC5saW5lTnVtYmVyID09PSBsaW5lTGVmdCAmJiByb3cucmlnaHRDb250ZW50LnByZWZpeCAhPT0gJydcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIGxlZnRDb250ZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgbGluZU51bWJlcjogbGluZUxlZnQsXHJcbiAgICAgICAgICAgICAgICBsaW5lQ29udGVudDogbGluZSxcclxuICAgICAgICAgICAgICAgIGxpbmVEaWZmczogW3sgY29udGVudDogbGluZSwgaXNEaWZmOiB0cnVlIH1dLFxyXG4gICAgICAgICAgICAgICAgcHJlZml4OiAnLSdcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIGlmIChyaWdodERpZmZSb3cpIHtcclxuICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5sZWZ0Q29udGVudCA9IGxlZnRDb250ZW50O1xyXG4gICAgICAgICAgICAgICAgcmlnaHREaWZmUm93LmxlZnRDb250ZW50LmxpbmVEaWZmcyA9IHRoaXMuZ2V0RGlmZlBhcnRzKFxyXG4gICAgICAgICAgICAgICAgICByaWdodERpZmZSb3cubGVmdENvbnRlbnQubGluZUNvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5yaWdodENvbnRlbnQubGluZUNvbnRlbnRcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICByaWdodERpZmZSb3cucmlnaHRDb250ZW50LmxpbmVEaWZmcyA9IHRoaXMuZ2V0RGlmZlBhcnRzKFxyXG4gICAgICAgICAgICAgICAgICByaWdodERpZmZSb3cucmlnaHRDb250ZW50LmxpbmVDb250ZW50LFxyXG4gICAgICAgICAgICAgICAgICByaWdodERpZmZSb3cubGVmdENvbnRlbnQubGluZUNvbnRlbnRcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICByaWdodERpZmZSb3cuYmVsb25nVG8gPSAnYm90aCc7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJvd3MucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgIGxlZnRDb250ZW50LFxyXG4gICAgICAgICAgICAgICAgICByaWdodENvbnRlbnQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgIGhhc0RpZmZzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICBiZWxvbmdUbzogJ2xlZnQnXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGluZUxlZnQgPSBsaW5lTGVmdCArIDE7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgZGlmZlZhbHVlcyA9IGRpZmZWYWx1ZXMucmVwbGFjZShsaW5lLCAnJyk7XHJcbiAgICAgICAgICBsaW5lcy5zcGxpY2UoZmluZEluZGV4LCAxKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gcm93cztcclxuICAgIH0sIFtdKTtcclxuXHJcbiAgICByZXR1cm4gZGlmZlJvd3NSZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldERpZmZQYXJ0cyh2YWx1ZTogc3RyaW5nLCBjb21wYXJlVmFsdWU6IHN0cmluZyk6IERpZmZQYXJ0W10ge1xyXG4gICAgY29uc3QgZGlmZlBhcnRzOiBEaWZmUGFydFtdID0gW107XHJcbiAgICBsZXQgaSA9IDA7XHJcbiAgICBsZXQgaiA9IDA7XHJcbiAgICBsZXQgc2hhcmVkID0gJyc7XHJcbiAgICBsZXQgZGlmZiA9ICcnO1xyXG5cclxuICAgIHdoaWxlIChpIDwgdmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIGlmICh2YWx1ZVtpXSA9PT0gY29tcGFyZVZhbHVlW2pdICYmIGogPCBjb21wYXJlVmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgICAgaWYgKGRpZmYgIT09ICcnKSB7XHJcbiAgICAgICAgICBkaWZmUGFydHMucHVzaCh7IGNvbnRlbnQ6IGRpZmYsIGlzRGlmZjogdHJ1ZSB9KTtcclxuICAgICAgICAgIGRpZmYgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgc2hhcmVkICs9IHZhbHVlW2ldO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChzaGFyZWQgIT09ICcnKSB7XHJcbiAgICAgICAgICBkaWZmUGFydHMucHVzaCh7IGNvbnRlbnQ6IHNoYXJlZCwgaXNEaWZmOiBmYWxzZSB9KTtcclxuICAgICAgICAgIHNoYXJlZCA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBkaWZmICs9IHZhbHVlW2ldO1xyXG4gICAgICB9XHJcbiAgICAgIGkrKztcclxuICAgICAgaisrO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChkaWZmICE9PSAnJykge1xyXG4gICAgICBkaWZmUGFydHMucHVzaCh7IGNvbnRlbnQ6IGRpZmYsIGlzRGlmZjogdHJ1ZSB9KTtcclxuICAgIH0gZWxzZSBpZiAoc2hhcmVkICE9PSAnJykge1xyXG4gICAgICBkaWZmUGFydHMucHVzaCh7IGNvbnRlbnQ6IHNoYXJlZCwgaXNEaWZmOiBmYWxzZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGlmZlBhcnRzO1xyXG4gIH1cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXRleHQtZGlmZi8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtdGV4dC1kaWZmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFRLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEcsT0FBTyxFQUFFLE9BQU8sRUFBUyxNQUFNLHVCQUF1QixDQUFDOztBQUV2RDtJQU1FO1FBQ0UsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7Ozs7O0lBRU8sdUNBQVU7Ozs7SUFBbEI7UUFDRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztJQUMzQyxDQUFDOzs7Ozs7SUFFRCw0Q0FBZTs7Ozs7SUFBZixVQUFnQixJQUFZLEVBQUUsS0FBYTtRQUEzQyxpQkFlQztRQWRDLE9BQU8sSUFBSSxPQUFPLENBQXVCLFVBQUMsT0FBTyxFQUFFLE1BQU07O2dCQUNqRCxDQUFDLEdBQUcsS0FBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDOztnQkFDbkQsU0FBUyxHQUFHLENBQUMsQ0FBQyxNQUFNOztnQkFDcEIsU0FBUyxHQUFHLENBQUMsQ0FBQyxNQUFNOztnQkFDcEIsVUFBVSxHQUFHLENBQUMsQ0FBQyxTQUFTOztnQkFDeEIsS0FBSyxHQUFXLEtBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDO1lBQzNFLEtBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDOztnQkFDaEQsSUFBSSxHQUF5QixLQUFJLENBQUMsWUFBWSxDQUFDLEtB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RUFBRTtZQUNmLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ2pEO2FBQU0sSUFBSSxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQ3hCLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7Z0JBdE1GLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7OzZCQVBEO0NBNE1DLEFBdk1ELElBdU1DO1NBcE1ZLGtCQUFrQjs7O0lBQzdCLHdDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlmZiwgRElGRl9ERUxFVEUsIERJRkZfRVFVQUwsIERJRkZfSU5TRVJULCBkaWZmX21hdGNoX3BhdGNoIH0gZnJvbSAnZGlmZi1tYXRjaC1wYXRjaCc7XHJcbmltcG9ydCB7IERpZmZMaW5lUmVzdWx0LCBEaWZmUGFydCwgRGlmZlRhYmxlUm93UmVzdWx0IH0gZnJvbSAnLi9uZ3gtdGV4dC1kaWZmLm1vZGVsJztcclxuaW1wb3J0IHsgaXNFbXB0eSwgaXNOaWwgfSBmcm9tICcuL25neC10ZXh0LWRpZmYudXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4VGV4dERpZmZTZXJ2aWNlIHtcclxuICBkaWZmUGFyc2VyOiBkaWZmX21hdGNoX3BhdGNoO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuaW5pdFBhcnNlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0UGFyc2VyKCkge1xyXG4gICAgdGhpcy5kaWZmUGFyc2VyID0gbmV3IGRpZmZfbWF0Y2hfcGF0Y2goKTtcclxuICB9XHJcblxyXG4gIGdldERpZmZzQnlMaW5lcyhsZWZ0OiBzdHJpbmcsIHJpZ2h0OiBzdHJpbmcpOiBQcm9taXNlPERpZmZUYWJsZVJvd1Jlc3VsdFtdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8RGlmZlRhYmxlUm93UmVzdWx0W10+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgY29uc3QgYSA9IHRoaXMuZGlmZlBhcnNlci5kaWZmX2xpbmVzVG9DaGFyc18obGVmdCwgcmlnaHQpO1xyXG4gICAgICBjb25zdCBsaW5lVGV4dDEgPSBhLmNoYXJzMTtcclxuICAgICAgY29uc3QgbGluZVRleHQyID0gYS5jaGFyczI7XHJcbiAgICAgIGNvbnN0IGxpbmVzQXJyYXkgPSBhLmxpbmVBcnJheTtcclxuICAgICAgY29uc3QgZGlmZnM6IERpZmZbXSA9IHRoaXMuZGlmZlBhcnNlci5kaWZmX21haW4obGluZVRleHQxLCBsaW5lVGV4dDIsIHRydWUpO1xyXG4gICAgICB0aGlzLmRpZmZQYXJzZXIuZGlmZl9jaGFyc1RvTGluZXNfKGRpZmZzLCBsaW5lc0FycmF5KTtcclxuICAgICAgY29uc3Qgcm93czogRGlmZlRhYmxlUm93UmVzdWx0W10gPSB0aGlzLmZvcm1hdE91dHB1dChkaWZmcyk7XHJcbiAgICAgIGlmICghcm93cykge1xyXG4gICAgICAgIHJlamVjdCgnRXJyb3InKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmVzb2x2ZShyb3dzKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXRPdXRwdXQoZGlmZnM6IERpZmZbXSk6IERpZmZUYWJsZVJvd1Jlc3VsdFtdIHtcclxuICAgIGxldCBsaW5lTGVmdCA9IDE7XHJcbiAgICBsZXQgbGluZVJpZ2h0ID0gMTtcclxuICAgIHJldHVybiBkaWZmcy5yZWR1Y2UoKHJvd3M6IERpZmZUYWJsZVJvd1Jlc3VsdFtdLCBkaWZmOiBEaWZmKSA9PiB7XHJcbiAgICAgIGlmICghcm93cykge1xyXG4gICAgICAgIHJvd3MgPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkaWZmVHlwZTogbnVtYmVyID0gZGlmZlswXTtcclxuICAgICAgY29uc3QgZGlmZlZhbHVlOiBzdHJpbmcgPSBkaWZmWzFdO1xyXG4gICAgICBsZXQgbGVmdERpZmZSb3c6IERpZmZUYWJsZVJvd1Jlc3VsdCA9IG51bGw7XHJcbiAgICAgIGxldCByaWdodERpZmZSb3c6IERpZmZUYWJsZVJvd1Jlc3VsdCA9IG51bGw7XHJcbiAgICAgIGxldCBsZWZ0Q29udGVudDogRGlmZkxpbmVSZXN1bHQgPSBudWxsO1xyXG4gICAgICBsZXQgcmlnaHRDb250ZW50OiBEaWZmTGluZVJlc3VsdCA9IG51bGw7XHJcbiAgICAgIGxldCByb3dUZW1wOiBEaWZmVGFibGVSb3dSZXN1bHQgPSBudWxsO1xyXG4gICAgICBzd2l0Y2ggKGRpZmZUeXBlKSB7XHJcbiAgICAgICAgY2FzZSBESUZGX0VRVUFMOiAvLyAwXHJcbiAgICAgICAgICBkaWZmVmFsdWVcclxuICAgICAgICAgICAgLnNwbGl0KCdcXG4nKVxyXG4gICAgICAgICAgICAuZmlsdGVyKCh2YWx1ZSwgaW5kZXgsIGFycmF5KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSBhcnJheS5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIWlzRW1wdHkodmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmZvckVhY2gobGluZSA9PiB7XHJcbiAgICAgICAgICAgICAgbGVmdENvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiBsaW5lTGVmdCxcclxuICAgICAgICAgICAgICAgIGxpbmVDb250ZW50OiBsaW5lLFxyXG4gICAgICAgICAgICAgICAgbGluZURpZmZzOiBbXSxcclxuICAgICAgICAgICAgICAgIHByZWZpeDogJydcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHJpZ2h0Q29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVSaWdodCxcclxuICAgICAgICAgICAgICAgIGxpbmVDb250ZW50OiBsaW5lLFxyXG4gICAgICAgICAgICAgICAgbGluZURpZmZzOiBbXSxcclxuICAgICAgICAgICAgICAgIHByZWZpeDogJydcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHJvd1RlbXAgPSB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0Q29udGVudCxcclxuICAgICAgICAgICAgICAgIHJpZ2h0Q29udGVudCxcclxuICAgICAgICAgICAgICAgIGJlbG9uZ1RvOiAnYm90aCcsXHJcbiAgICAgICAgICAgICAgICBoYXNEaWZmczogZmFsc2VcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHJvd3MucHVzaChyb3dUZW1wKTtcclxuICAgICAgICAgICAgICBsaW5lUmlnaHQgPSBsaW5lUmlnaHQgKyAxO1xyXG4gICAgICAgICAgICAgIGxpbmVMZWZ0ID0gbGluZUxlZnQgKyAxO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRElGRl9ERUxFVEU6IC8vIC0xXHJcbiAgICAgICAgICBkaWZmVmFsdWVcclxuICAgICAgICAgICAgLnNwbGl0KCdcXG4nKVxyXG4gICAgICAgICAgICAuZmlsdGVyKCh2YWx1ZSwgaW5kZXgsIGFycmF5KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSBhcnJheS5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIWlzRW1wdHkodmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmZvckVhY2gobGluZSA9PiB7XHJcbiAgICAgICAgICAgICAgcmlnaHREaWZmUm93ID0gcm93cy5maW5kKFxyXG4gICAgICAgICAgICAgICAgcm93ID0+ICFyb3cubGVmdENvbnRlbnQgJiYgcm93LnJpZ2h0Q29udGVudCAmJiByb3cucmlnaHRDb250ZW50LmxpbmVOdW1iZXIgPT09IGxpbmVMZWZ0ICYmIHJvdy5yaWdodENvbnRlbnQucHJlZml4ICE9PSAnJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgbGVmdENvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiBsaW5lTGVmdCxcclxuICAgICAgICAgICAgICAgIGxpbmVDb250ZW50OiBsaW5lLFxyXG4gICAgICAgICAgICAgICAgbGluZURpZmZzOiBbeyBjb250ZW50OiBsaW5lLCBpc0RpZmY6IHRydWUgfV0sXHJcbiAgICAgICAgICAgICAgICBwcmVmaXg6ICctJ1xyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgaWYgKHJpZ2h0RGlmZlJvdykge1xyXG4gICAgICAgICAgICAgICAgcmlnaHREaWZmUm93LmxlZnRDb250ZW50ID0gbGVmdENvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICByaWdodERpZmZSb3cubGVmdENvbnRlbnQubGluZURpZmZzID0gdGhpcy5nZXREaWZmUGFydHMoXHJcbiAgICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5sZWZ0Q29udGVudC5saW5lQ29udGVudCxcclxuICAgICAgICAgICAgICAgICAgcmlnaHREaWZmUm93LnJpZ2h0Q29udGVudC5saW5lQ29udGVudFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5yaWdodENvbnRlbnQubGluZURpZmZzID0gdGhpcy5nZXREaWZmUGFydHMoXHJcbiAgICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5yaWdodENvbnRlbnQubGluZUNvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5sZWZ0Q29udGVudC5saW5lQ29udGVudFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5iZWxvbmdUbyA9ICdib3RoJztcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcm93cy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgbGVmdENvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICAgIHJpZ2h0Q29udGVudDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgaGFzRGlmZnM6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIGJlbG9uZ1RvOiAnbGVmdCdcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsaW5lTGVmdCA9IGxpbmVMZWZ0ICsgMTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIERJRkZfSU5TRVJUOiAvLyAxXHJcbiAgICAgICAgICBkaWZmVmFsdWVcclxuICAgICAgICAgICAgLnNwbGl0KCdcXG4nKVxyXG4gICAgICAgICAgICAuZmlsdGVyKCh2YWx1ZSwgaW5kZXgsIGFycmF5KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSBhcnJheS5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIWlzRW1wdHkodmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmZvckVhY2gobGluZSA9PiB7XHJcbiAgICAgICAgICAgICAgbGVmdERpZmZSb3cgPSByb3dzLmZpbmQoXHJcbiAgICAgICAgICAgICAgICByb3cgPT4gcm93LmxlZnRDb250ZW50ICYmICFyb3cucmlnaHRDb250ZW50ICYmIHJvdy5sZWZ0Q29udGVudC5saW5lTnVtYmVyID09PSBsaW5lUmlnaHQgJiYgcm93LmxlZnRDb250ZW50LnByZWZpeCAhPT0gJydcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHJpZ2h0Q29udGVudCA9IHtcclxuICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVSaWdodCxcclxuICAgICAgICAgICAgICAgIGxpbmVDb250ZW50OiBsaW5lLFxyXG4gICAgICAgICAgICAgICAgbGluZURpZmZzOiBbeyBjb250ZW50OiBsaW5lLCBpc0RpZmY6IHRydWUgfV0sXHJcbiAgICAgICAgICAgICAgICBwcmVmaXg6ICcrJ1xyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgaWYgKGxlZnREaWZmUm93KSB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0RGlmZlJvdy5yaWdodENvbnRlbnQgPSByaWdodENvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICBsZWZ0RGlmZlJvdy5sZWZ0Q29udGVudC5saW5lRGlmZnMgPSB0aGlzLmdldERpZmZQYXJ0cyhcclxuICAgICAgICAgICAgICAgICAgbGVmdERpZmZSb3cubGVmdENvbnRlbnQubGluZUNvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICAgIGxlZnREaWZmUm93LnJpZ2h0Q29udGVudC5saW5lQ29udGVudFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGxlZnREaWZmUm93LnJpZ2h0Q29udGVudC5saW5lRGlmZnMgPSB0aGlzLmdldERpZmZQYXJ0cyhcclxuICAgICAgICAgICAgICAgICAgbGVmdERpZmZSb3cucmlnaHRDb250ZW50LmxpbmVDb250ZW50LFxyXG4gICAgICAgICAgICAgICAgICBsZWZ0RGlmZlJvdy5sZWZ0Q29udGVudC5saW5lQ29udGVudFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGxlZnREaWZmUm93LmJlbG9uZ1RvID0gJ2JvdGgnO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByb3dzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICBsZWZ0Q29udGVudDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgcmlnaHRDb250ZW50LFxyXG4gICAgICAgICAgICAgICAgICBoYXNEaWZmczogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgYmVsb25nVG86ICdyaWdodCdcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsaW5lUmlnaHQgPSBsaW5lUmlnaHQgKyAxO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiByb3dzO1xyXG4gICAgfSwgW10pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREaWZmUGFydHModmFsdWU6IHN0cmluZywgY29tcGFyZVZhbHVlOiBzdHJpbmcpOiBEaWZmUGFydFtdIHtcclxuICAgIGNvbnN0IGRpZmZQYXJ0czogRGlmZlBhcnRbXSA9IFtdO1xyXG4gICAgbGV0IGkgPSAwO1xyXG4gICAgbGV0IGogPSAwO1xyXG4gICAgbGV0IHNoYXJlZCA9ICcnO1xyXG4gICAgbGV0IGRpZmYgPSAnJztcclxuXHJcbiAgICB3aGlsZSAoaSA8IHZhbHVlLmxlbmd0aCkge1xyXG4gICAgICBpZiAodmFsdWVbaV0gPT09IGNvbXBhcmVWYWx1ZVtqXSAmJiBqIDwgY29tcGFyZVZhbHVlLmxlbmd0aCkge1xyXG4gICAgICAgIGlmIChkaWZmICE9PSAnJykge1xyXG4gICAgICAgICAgZGlmZlBhcnRzLnB1c2goeyBjb250ZW50OiBkaWZmLCBpc0RpZmY6IHRydWUgfSk7XHJcbiAgICAgICAgICBkaWZmID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNoYXJlZCArPSB2YWx1ZVtpXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoc2hhcmVkICE9PSAnJykge1xyXG4gICAgICAgICAgZGlmZlBhcnRzLnB1c2goeyBjb250ZW50OiBzaGFyZWQsIGlzRGlmZjogZmFsc2UgfSk7XHJcbiAgICAgICAgICBzaGFyZWQgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgZGlmZiArPSB2YWx1ZVtpXTtcclxuICAgICAgfVxyXG4gICAgICBpKys7XHJcbiAgICAgIGorKztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZGlmZiAhPT0gJycpIHtcclxuICAgICAgZGlmZlBhcnRzLnB1c2goeyBjb250ZW50OiBkaWZmLCBpc0RpZmY6IHRydWUgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHNoYXJlZCAhPT0gJycpIHtcclxuICAgICAgZGlmZlBhcnRzLnB1c2goeyBjb250ZW50OiBzaGFyZWQsIGlzRGlmZjogZmFsc2UgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRpZmZQYXJ0cztcclxuICB9XHJcbn1cclxuIl19
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -9,3 +9,2 @@ /** @type {?} */

export var isEmpty = function (val) { return val == null || !(Object.keys(val) || val).length || (Object.keys(val) || val).length === 0; };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC10ZXh0LWRpZmYvIiwic291cmNlcyI6WyJsaWIvbmd4LXRleHQtZGlmZi51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLFdBQWEsS0FBSyxHQUFHLFVBQUEsR0FBRyxJQUFJLE9BQUEsR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFqQyxDQUFpQyxDQUFDOztBQUM5RCxXQUFhLE9BQU8sR0FBRyxVQUFBLEdBQUcsSUFBSSxPQUFBLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUExRixDQUEwRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzTmlsID0gdmFsID0+IHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gbnVsbDtcclxuZXhwb3J0IGNvbnN0IGlzRW1wdHkgPSB2YWwgPT4gdmFsID09IG51bGwgfHwgIShPYmplY3Qua2V5cyh2YWwpIHx8IHZhbCkubGVuZ3RoIHx8IChPYmplY3Qua2V5cyh2YWwpIHx8IHZhbCkubGVuZ3RoID09PSAwO1xyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC10ZXh0LWRpZmYvIiwic291cmNlcyI6WyJsaWIvbmd4LXRleHQtZGlmZi51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE1BQU0sS0FBTyxLQUFLLEdBQUcsVUFBQSxHQUFHLElBQUksT0FBQSxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQWpDLENBQWlDOztBQUM3RCxNQUFNLEtBQU8sT0FBTyxHQUFHLFVBQUEsR0FBRyxJQUFJLE9BQUEsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQTFGLENBQTBGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzTmlsID0gdmFsID0+IHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gbnVsbDtcclxuZXhwb3J0IGNvbnN0IGlzRW1wdHkgPSB2YWwgPT4gdmFsID09IG51bGwgfHwgIShPYmplY3Qua2V5cyh2YWwpIHx8IHZhbCkubGVuZ3RoIHx8IChPYmplY3Qua2V5cyh2YWwpIHx8IHZhbCkubGVuZ3RoID09PSAwO1xyXG4iXX0=
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -11,3 +11,2 @@ /**

export { LoaderSpinnerComponent as ɵa } from './lib/loader-spinner/loader-spinner.component';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC10ZXh0LWRpZmYvIiwic291cmNlcyI6WyJuZ3gtdGV4dC1kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSw0RUFBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG5cbmV4cG9ydCB7Rm9ybWF0TGluZVBpcGUgYXMgybVifSBmcm9tICcuL2xpYi9mb3JtYXQtbGluZS5waXBlJztcbmV4cG9ydCB7TG9hZGVyU3Bpbm5lckNvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2xvYWRlci1zcGlubmVyL2xvYWRlci1zcGlubmVyLmNvbXBvbmVudCc7Il19
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -11,3 +11,2 @@ /*

export { NgxTextDiffModule } from './lib/ngx-text-diff.module';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC10ZXh0LWRpZmYvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxtQ0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxxQ0FBYywrQkFBK0IsQ0FBQztBQUM5QyxrQ0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LXRleHQtZGlmZlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC10ZXh0LWRpZmYuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtdGV4dC1kaWZmLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtdGV4dC1kaWZmLm1vZHVsZSc7XG4iXX0=

@@ -1,2 +0,1 @@

import { Injectable, Pipe, Component, Input, NgModule, defineInjectable, ChangeDetectorRef } from '@angular/core';
import { DIFF_DELETE, DIFF_EQUAL, DIFF_INSERT, diff_match_patch } from 'diff-match-patch';

@@ -7,10 +6,9 @@ import { __awaiter } from 'tslib';

import { FormsModule } from '@angular/forms';
import { Injectable, Pipe, Component, Input, NgModule, defineInjectable, ChangeDetectorRef } from '@angular/core';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const isNil = val => val === undefined || val === null;
/** @type {?} */
const isEmpty = val => val == null || !(Object.keys(val) || val).length || (Object.keys(val) || val).length === 0;

@@ -20,3 +18,3 @@

* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -28,2 +26,3 @@ class NgxTextDiffService {

/**
* @private
* @return {?}

@@ -53,3 +52,3 @@ */

/** @type {?} */
const rows = this.formatOutputNew(diffs, linesArray);
const rows = this.formatOutput(diffs);
if (!rows) {

@@ -62,18 +61,7 @@ reject('Error');

/**
* @private
* @param {?} diffs
* @param {?=} lines
* @return {?}
*/
formatOutputNew(diffs, lines) {
if (lines) {
return this.formatDiffsFromLines(diffs, lines);
}
}
/**
* @param {?} diffs
* @param {?} lines
* @return {?}
*/
formatDiffsFromLines(diffs, lines) {
lines.splice(0, 1);
formatOutput(diffs) {
/** @type {?} */

@@ -83,4 +71,3 @@ let lineLeft = 1;

let lineRight = 1;
/** @type {?} */
const diffRowsResult = diffs.reduce((rows, diff) => {
return diffs.reduce((rows, diff) => {
if (!rows) {

@@ -90,106 +77,123 @@ rows = [];

/** @type {?} */
let diffValues = diff[1];
while (!isNil(diffValues) || !isEmpty(diffValues) || diffValues.length > 0) {
/** @type {?} */
const findIndex = lines.findIndex(line => diffValues.includes(line));
if (findIndex >= 0) {
/** @type {?} */
const line = lines[findIndex];
/** @type {?} */
let leftDiffRow = null;
/** @type {?} */
let rightDiffRow = null;
/** @type {?} */
let leftContent = null;
/** @type {?} */
let rightContent = null;
/** @type {?} */
let rowTemp = null;
switch (diff[0]) {
case DIFF_EQUAL:
leftContent = {
lineNumber: lineLeft,
lineContent: line,
lineDiffs: [],
prefix: ''
};
rightContent = {
lineNumber: lineRight,
lineContent: line,
lineDiffs: [],
prefix: ''
};
rowTemp = {
const diffType = diff[0];
/** @type {?} */
const diffValue = diff[1];
/** @type {?} */
let leftDiffRow = null;
/** @type {?} */
let rightDiffRow = null;
/** @type {?} */
let leftContent = null;
/** @type {?} */
let rightContent = null;
/** @type {?} */
let rowTemp = null;
switch (diffType) {
case DIFF_EQUAL: // 0
diffValue
.split('\n')
.filter((value, index, array) => {
if (index === array.length - 1) {
return !isEmpty(value);
}
return true;
})
.forEach(line => {
leftContent = {
lineNumber: lineLeft,
lineContent: line,
lineDiffs: [],
prefix: ''
};
rightContent = {
lineNumber: lineRight,
lineContent: line,
lineDiffs: [],
prefix: ''
};
rowTemp = {
leftContent,
rightContent,
belongTo: 'both',
hasDiffs: false
};
rows.push(rowTemp);
lineRight = lineRight + 1;
lineLeft = lineLeft + 1;
});
break;
case DIFF_DELETE: // -1
diffValue
.split('\n')
.filter((value, index, array) => {
if (index === array.length - 1) {
return !isEmpty(value);
}
return true;
})
.forEach(line => {
rightDiffRow = rows.find(row => !row.leftContent && row.rightContent && row.rightContent.lineNumber === lineLeft && row.rightContent.prefix !== '');
leftContent = {
lineNumber: lineLeft,
lineContent: line,
lineDiffs: [{ content: line, isDiff: true }],
prefix: '-'
};
if (rightDiffRow) {
rightDiffRow.leftContent = leftContent;
rightDiffRow.leftContent.lineDiffs = this.getDiffParts(rightDiffRow.leftContent.lineContent, rightDiffRow.rightContent.lineContent);
rightDiffRow.rightContent.lineDiffs = this.getDiffParts(rightDiffRow.rightContent.lineContent, rightDiffRow.leftContent.lineContent);
rightDiffRow.belongTo = 'both';
}
else {
rows.push({
leftContent,
rightContent: null,
hasDiffs: true,
belongTo: 'left'
});
}
lineLeft = lineLeft + 1;
});
break;
case DIFF_INSERT: // 1
diffValue
.split('\n')
.filter((value, index, array) => {
if (index === array.length - 1) {
return !isEmpty(value);
}
return true;
})
.forEach(line => {
leftDiffRow = rows.find(row => row.leftContent && !row.rightContent && row.leftContent.lineNumber === lineRight && row.leftContent.prefix !== '');
rightContent = {
lineNumber: lineRight,
lineContent: line,
lineDiffs: [{ content: line, isDiff: true }],
prefix: '+'
};
if (leftDiffRow) {
leftDiffRow.rightContent = rightContent;
leftDiffRow.leftContent.lineDiffs = this.getDiffParts(leftDiffRow.leftContent.lineContent, leftDiffRow.rightContent.lineContent);
leftDiffRow.rightContent.lineDiffs = this.getDiffParts(leftDiffRow.rightContent.lineContent, leftDiffRow.leftContent.lineContent);
leftDiffRow.belongTo = 'both';
}
else {
rows.push({
leftContent: null,
rightContent,
belongTo: 'both',
hasDiffs: false
};
rows.push(rowTemp);
lineRight = lineRight + 1;
lineLeft = lineLeft + 1;
break;
case DIFF_INSERT:
leftDiffRow = rows.find(row => row.leftContent && !row.rightContent && row.leftContent.lineNumber === lineRight && row.leftContent.prefix !== '');
rightContent = {
lineNumber: lineRight,
lineContent: line,
lineDiffs: [{ content: line, isDiff: true }],
prefix: '+'
};
if (leftDiffRow) {
leftDiffRow.rightContent = rightContent;
leftDiffRow.leftContent.lineDiffs = this.getDiffParts(leftDiffRow.leftContent.lineContent, leftDiffRow.rightContent.lineContent);
leftDiffRow.rightContent.lineDiffs = this.getDiffParts(leftDiffRow.rightContent.lineContent, leftDiffRow.leftContent.lineContent);
leftDiffRow.belongTo = 'both';
}
else {
rows.push({
leftContent: null,
rightContent,
hasDiffs: true,
belongTo: 'right'
});
}
lineRight = lineRight + 1;
break;
case DIFF_DELETE:
rightDiffRow = rows.find(row => !row.leftContent && row.rightContent && row.rightContent.lineNumber === lineLeft && row.rightContent.prefix !== '');
leftContent = {
lineNumber: lineLeft,
lineContent: line,
lineDiffs: [{ content: line, isDiff: true }],
prefix: '-'
};
if (rightDiffRow) {
rightDiffRow.leftContent = leftContent;
rightDiffRow.leftContent.lineDiffs = this.getDiffParts(rightDiffRow.leftContent.lineContent, rightDiffRow.rightContent.lineContent);
rightDiffRow.rightContent.lineDiffs = this.getDiffParts(rightDiffRow.rightContent.lineContent, rightDiffRow.leftContent.lineContent);
rightDiffRow.belongTo = 'both';
}
else {
rows.push({
leftContent,
rightContent: null,
hasDiffs: true,
belongTo: 'left'
});
}
lineLeft = lineLeft + 1;
break;
default:
break;
}
diffValues = diffValues.replace(line, '');
lines.splice(findIndex, 1);
}
else {
hasDiffs: true,
belongTo: 'right'
});
}
lineRight = lineRight + 1;
});
break;
}
}
return rows;
}, []);
return diffRowsResult;
}
/**
* @private
* @param {?} value

@@ -248,3 +252,3 @@ * @param {?} compareValue

* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -292,12 +296,19 @@ class NgxTextDiffComponent {

ngOnInit() {
this.loading = true;
if (this.diffContent) {
this.subscriptions.push(this.diffContent.subscribe(content => {
this.loading = true;
this.left = content.leftContent;
this.right = content.rightContent;
this.renderDiffs().then(() => {
this.renderDiffs()
.then(() => {
this.cd.detectChanges();
});
this.loading = false;
})
.catch(() => (this.loading = false));
}));
}
this.renderDiffs().then();
this.renderDiffs()
.then(() => (this.loading = false))
.catch(e => (this.loading = false));
}

@@ -340,3 +351,2 @@ /**

try {
this.loading = true;
this.diffsCount = 0;

@@ -374,5 +384,6 @@ this.tableRows = yield this.diff.getDiffsByLines(this.left, this.right);

this.filteredTableRowsLineByLine = this.tableRowsLineByLine;
this.loading = false;
}
catch (e) { }
catch (e) {
throw e;
}
});

@@ -420,3 +431,3 @@ }

* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -435,3 +446,3 @@ class LoaderSpinnerComponent {

selector: 'td-loader-spinner',
template: "<div class=\"td-loading-roller\" *ngIf=\"active\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n</div>\n",
template: "<div class=\"td-loading-roller\" *ngIf=\"active\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n</div>\r\n",
styles: [".td-loading-roller{display:inline-block;position:relative;width:64px;height:64px}.td-loading-roller div{-webkit-animation:1.2s cubic-bezier(.5,0,.5,1) infinite lds-roller;animation:1.2s cubic-bezier(.5,0,.5,1) infinite lds-roller;-webkit-transform-origin:32px 32px;transform-origin:32px 32px}.td-loading-roller div:after{content:\" \";display:block;position:absolute;width:6px;height:6px;border-radius:50%;background:#000;margin:-3px 0 0 -3px}.td-loading-roller div:nth-child(1){-webkit-animation-delay:-36ms;animation-delay:-36ms}.td-loading-roller div:nth-child(1):after{top:50px;left:50px}.td-loading-roller div:nth-child(2){-webkit-animation-delay:-72ms;animation-delay:-72ms}.td-loading-roller div:nth-child(2):after{top:54px;left:45px}.td-loading-roller div:nth-child(3){-webkit-animation-delay:-108ms;animation-delay:-108ms}.td-loading-roller div:nth-child(3):after{top:57px;left:39px}.td-loading-roller div:nth-child(4){-webkit-animation-delay:-144ms;animation-delay:-144ms}.td-loading-roller div:nth-child(4):after{top:58px;left:32px}.td-loading-roller div:nth-child(5){-webkit-animation-delay:-.18s;animation-delay:-.18s}.td-loading-roller div:nth-child(5):after{top:57px;left:25px}.td-loading-roller div:nth-child(6){-webkit-animation-delay:-216ms;animation-delay:-216ms}.td-loading-roller div:nth-child(6):after{top:54px;left:19px}.td-loading-roller div:nth-child(7){-webkit-animation-delay:-252ms;animation-delay:-252ms}.td-loading-roller div:nth-child(7):after{top:50px;left:14px}.td-loading-roller div:nth-child(8){-webkit-animation-delay:-288ms;animation-delay:-288ms}.td-loading-roller div:nth-child(8):after{top:45px;left:10px}@-webkit-keyframes lds-roller{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes lds-roller{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}"]

@@ -448,3 +459,3 @@ }] }

* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -478,3 +489,3 @@ class FormatLinePipe {

* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -493,3 +504,3 @@ class NgxTextDiffModule {

* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -499,3 +510,3 @@

* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -505,2 +516,2 @@

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRleHQtZGlmZi5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vbmd4LXRleHQtZGlmZi9saWIvbmd4LXRleHQtZGlmZi51dGlscy50cyIsIm5nOi8vbmd4LXRleHQtZGlmZi9saWIvbmd4LXRleHQtZGlmZi5zZXJ2aWNlLnRzIiwibmc6Ly9uZ3gtdGV4dC1kaWZmL2xpYi9uZ3gtdGV4dC1kaWZmLmNvbXBvbmVudC50cyIsIm5nOi8vbmd4LXRleHQtZGlmZi9saWIvbG9hZGVyLXNwaW5uZXIvbG9hZGVyLXNwaW5uZXIuY29tcG9uZW50LnRzIiwibmc6Ly9uZ3gtdGV4dC1kaWZmL2xpYi9mb3JtYXQtbGluZS5waXBlLnRzIiwibmc6Ly9uZ3gtdGV4dC1kaWZmL2xpYi9uZ3gtdGV4dC1kaWZmLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgaXNOaWwgPSB2YWwgPT4gdmFsID09PSB1bmRlZmluZWQgfHwgdmFsID09PSBudWxsO1xyXG5leHBvcnQgY29uc3QgaXNFbXB0eSA9IHZhbCA9PiB2YWwgPT0gbnVsbCB8fCAhKE9iamVjdC5rZXlzKHZhbCkgfHwgdmFsKS5sZW5ndGggfHwgKE9iamVjdC5rZXlzKHZhbCkgfHwgdmFsKS5sZW5ndGggPT09IDA7XHJcbiIsImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlmZiwgRElGRl9ERUxFVEUsIERJRkZfRVFVQUwsIERJRkZfSU5TRVJULCBkaWZmX21hdGNoX3BhdGNoIH0gZnJvbSAnZGlmZi1tYXRjaC1wYXRjaCc7XHJcbmltcG9ydCB7IERpZmZMaW5lUmVzdWx0LCBEaWZmUGFydCwgRGlmZlRhYmxlUm93UmVzdWx0IH0gZnJvbSAnLi9uZ3gtdGV4dC1kaWZmLm1vZGVsJztcclxuaW1wb3J0IHsgaXNFbXB0eSwgaXNOaWwgfSBmcm9tICcuL25neC10ZXh0LWRpZmYudXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4VGV4dERpZmZTZXJ2aWNlIHtcclxuICBkaWZmUGFyc2VyOiBkaWZmX21hdGNoX3BhdGNoO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuaW5pdFBhcnNlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0UGFyc2VyKCkge1xyXG4gICAgdGhpcy5kaWZmUGFyc2VyID0gbmV3IGRpZmZfbWF0Y2hfcGF0Y2goKTtcclxuICB9XHJcblxyXG4gIGdldERpZmZzQnlMaW5lcyhsZWZ0OiBzdHJpbmcsIHJpZ2h0OiBzdHJpbmcpOiBQcm9taXNlPERpZmZUYWJsZVJvd1Jlc3VsdFtdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8RGlmZlRhYmxlUm93UmVzdWx0W10+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgY29uc3QgYSA9IHRoaXMuZGlmZlBhcnNlci5kaWZmX2xpbmVzVG9DaGFyc18obGVmdCwgcmlnaHQpO1xyXG4gICAgICBjb25zdCBsaW5lVGV4dDEgPSBhLmNoYXJzMTtcclxuICAgICAgY29uc3QgbGluZVRleHQyID0gYS5jaGFyczI7XHJcbiAgICAgIGNvbnN0IGxpbmVzQXJyYXkgPSBhLmxpbmVBcnJheTtcclxuICAgICAgY29uc3QgZGlmZnM6IERpZmZbXSA9IHRoaXMuZGlmZlBhcnNlci5kaWZmX21haW4obGluZVRleHQxLCBsaW5lVGV4dDIsIHRydWUpO1xyXG4gICAgICB0aGlzLmRpZmZQYXJzZXIuZGlmZl9jaGFyc1RvTGluZXNfKGRpZmZzLCBsaW5lc0FycmF5KTtcclxuICAgICAgY29uc3Qgcm93czogRGlmZlRhYmxlUm93UmVzdWx0W10gPSB0aGlzLmZvcm1hdE91dHB1dE5ldyhkaWZmcywgbGluZXNBcnJheSk7XHJcbiAgICAgIGlmICghcm93cykge1xyXG4gICAgICAgIHJlamVjdCgnRXJyb3InKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmVzb2x2ZShyb3dzKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXRPdXRwdXROZXcoZGlmZnM6IERpZmZbXSwgbGluZXM/OiBzdHJpbmdbXSk6IERpZmZUYWJsZVJvd1Jlc3VsdFtdIHtcclxuICAgIGlmIChsaW5lcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXREaWZmc0Zyb21MaW5lcyhkaWZmcywgbGluZXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXREaWZmc0Zyb21MaW5lcyhkaWZmczogRGlmZltdLCBsaW5lczogc3RyaW5nW10pOiBEaWZmVGFibGVSb3dSZXN1bHRbXSB7XHJcbiAgICBsaW5lcy5zcGxpY2UoMCwgMSk7XHJcbiAgICBsZXQgbGluZUxlZnQgPSAxO1xyXG4gICAgbGV0IGxpbmVSaWdodCA9IDE7XHJcbiAgICBjb25zdCBkaWZmUm93c1Jlc3VsdCA9IGRpZmZzLnJlZHVjZSgocm93czogRGlmZlRhYmxlUm93UmVzdWx0W10sIGRpZmY6IERpZmYpID0+IHtcclxuICAgICAgaWYgKCFyb3dzKSB7XHJcbiAgICAgICAgcm93cyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBkaWZmVmFsdWVzID0gZGlmZlsxXTtcclxuICAgICAgd2hpbGUgKCFpc05pbChkaWZmVmFsdWVzKSB8fCAhaXNFbXB0eShkaWZmVmFsdWVzKSB8fCBkaWZmVmFsdWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBjb25zdCBmaW5kSW5kZXggPSBsaW5lcy5maW5kSW5kZXgobGluZSA9PiBkaWZmVmFsdWVzLmluY2x1ZGVzKGxpbmUpKTtcclxuICAgICAgICBpZiAoZmluZEluZGV4ID49IDApIHtcclxuICAgICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1tmaW5kSW5kZXhdO1xyXG4gICAgICAgICAgbGV0IGxlZnREaWZmUm93OiBEaWZmVGFibGVSb3dSZXN1bHQgPSBudWxsO1xyXG4gICAgICAgICAgbGV0IHJpZ2h0RGlmZlJvdzogRGlmZlRhYmxlUm93UmVzdWx0ID0gbnVsbDtcclxuICAgICAgICAgIGxldCBsZWZ0Q29udGVudDogRGlmZkxpbmVSZXN1bHQgPSBudWxsO1xyXG4gICAgICAgICAgbGV0IHJpZ2h0Q29udGVudDogRGlmZkxpbmVSZXN1bHQgPSBudWxsO1xyXG4gICAgICAgICAgbGV0IHJvd1RlbXA6IERpZmZUYWJsZVJvd1Jlc3VsdCA9IG51bGw7XHJcbiAgICAgICAgICBzd2l0Y2ggKGRpZmZbMF0pIHtcclxuICAgICAgICAgICAgY2FzZSBESUZGX0VRVUFMOlxyXG4gICAgICAgICAgICAgIGxlZnRDb250ZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgbGluZU51bWJlcjogbGluZUxlZnQsXHJcbiAgICAgICAgICAgICAgICBsaW5lQ29udGVudDogbGluZSxcclxuICAgICAgICAgICAgICAgIGxpbmVEaWZmczogW10sXHJcbiAgICAgICAgICAgICAgICBwcmVmaXg6ICcnXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICByaWdodENvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiBsaW5lUmlnaHQsXHJcbiAgICAgICAgICAgICAgICBsaW5lQ29udGVudDogbGluZSxcclxuICAgICAgICAgICAgICAgIGxpbmVEaWZmczogW10sXHJcbiAgICAgICAgICAgICAgICBwcmVmaXg6ICcnXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICByb3dUZW1wID0ge1xyXG4gICAgICAgICAgICAgICAgbGVmdENvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICByaWdodENvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICBiZWxvbmdUbzogJ2JvdGgnLFxyXG4gICAgICAgICAgICAgICAgaGFzRGlmZnM6IGZhbHNlXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICByb3dzLnB1c2gocm93VGVtcCk7XHJcbiAgICAgICAgICAgICAgbGluZVJpZ2h0ID0gbGluZVJpZ2h0ICsgMTtcclxuICAgICAgICAgICAgICBsaW5lTGVmdCA9IGxpbmVMZWZ0ICsgMTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBESUZGX0lOU0VSVDpcclxuICAgICAgICAgICAgICBsZWZ0RGlmZlJvdyA9IHJvd3MuZmluZChcclxuICAgICAgICAgICAgICAgIHJvdyA9PiByb3cubGVmdENvbnRlbnQgJiYgIXJvdy5yaWdodENvbnRlbnQgJiYgcm93LmxlZnRDb250ZW50LmxpbmVOdW1iZXIgPT09IGxpbmVSaWdodCAmJiByb3cubGVmdENvbnRlbnQucHJlZml4ICE9PSAnJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgcmlnaHRDb250ZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgbGluZU51bWJlcjogbGluZVJpZ2h0LFxyXG4gICAgICAgICAgICAgICAgbGluZUNvbnRlbnQ6IGxpbmUsXHJcbiAgICAgICAgICAgICAgICBsaW5lRGlmZnM6IFt7IGNvbnRlbnQ6IGxpbmUsIGlzRGlmZjogdHJ1ZSB9XSxcclxuICAgICAgICAgICAgICAgIHByZWZpeDogJysnXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICBpZiAobGVmdERpZmZSb3cpIHtcclxuICAgICAgICAgICAgICAgIGxlZnREaWZmUm93LnJpZ2h0Q29udGVudCA9IHJpZ2h0Q29udGVudDtcclxuICAgICAgICAgICAgICAgIGxlZnREaWZmUm93LmxlZnRDb250ZW50LmxpbmVEaWZmcyA9IHRoaXMuZ2V0RGlmZlBhcnRzKFxyXG4gICAgICAgICAgICAgICAgICBsZWZ0RGlmZlJvdy5sZWZ0Q29udGVudC5saW5lQ29udGVudCxcclxuICAgICAgICAgICAgICAgICAgbGVmdERpZmZSb3cucmlnaHRDb250ZW50LmxpbmVDb250ZW50XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgbGVmdERpZmZSb3cucmlnaHRDb250ZW50LmxpbmVEaWZmcyA9IHRoaXMuZ2V0RGlmZlBhcnRzKFxyXG4gICAgICAgICAgICAgICAgICBsZWZ0RGlmZlJvdy5yaWdodENvbnRlbnQubGluZUNvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICAgIGxlZnREaWZmUm93LmxlZnRDb250ZW50LmxpbmVDb250ZW50XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgbGVmdERpZmZSb3cuYmVsb25nVG8gPSAnYm90aCc7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJvd3MucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgIGxlZnRDb250ZW50OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICByaWdodENvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICAgIGhhc0RpZmZzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICBiZWxvbmdUbzogJ3JpZ2h0J1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGxpbmVSaWdodCA9IGxpbmVSaWdodCArIDE7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgRElGRl9ERUxFVEU6XHJcbiAgICAgICAgICAgICAgcmlnaHREaWZmUm93ID0gcm93cy5maW5kKFxyXG4gICAgICAgICAgICAgICAgcm93ID0+ICFyb3cubGVmdENvbnRlbnQgJiYgcm93LnJpZ2h0Q29udGVudCAmJiByb3cucmlnaHRDb250ZW50LmxpbmVOdW1iZXIgPT09IGxpbmVMZWZ0ICYmIHJvdy5yaWdodENvbnRlbnQucHJlZml4ICE9PSAnJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgbGVmdENvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiBsaW5lTGVmdCxcclxuICAgICAgICAgICAgICAgIGxpbmVDb250ZW50OiBsaW5lLFxyXG4gICAgICAgICAgICAgICAgbGluZURpZmZzOiBbeyBjb250ZW50OiBsaW5lLCBpc0RpZmY6IHRydWUgfV0sXHJcbiAgICAgICAgICAgICAgICBwcmVmaXg6ICctJ1xyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgaWYgKHJpZ2h0RGlmZlJvdykge1xyXG4gICAgICAgICAgICAgICAgcmlnaHREaWZmUm93LmxlZnRDb250ZW50ID0gbGVmdENvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICByaWdodERpZmZSb3cubGVmdENvbnRlbnQubGluZURpZmZzID0gdGhpcy5nZXREaWZmUGFydHMoXHJcbiAgICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5sZWZ0Q29udGVudC5saW5lQ29udGVudCxcclxuICAgICAgICAgICAgICAgICAgcmlnaHREaWZmUm93LnJpZ2h0Q29udGVudC5saW5lQ29udGVudFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5yaWdodENvbnRlbnQubGluZURpZmZzID0gdGhpcy5nZXREaWZmUGFydHMoXHJcbiAgICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5yaWdodENvbnRlbnQubGluZUNvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5sZWZ0Q29udGVudC5saW5lQ29udGVudFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHJpZ2h0RGlmZlJvdy5iZWxvbmdUbyA9ICdib3RoJztcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcm93cy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgbGVmdENvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICAgIHJpZ2h0Q29udGVudDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgaGFzRGlmZnM6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIGJlbG9uZ1RvOiAnbGVmdCdcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsaW5lTGVmdCA9IGxpbmVMZWZ0ICsgMTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBkaWZmVmFsdWVzID0gZGlmZlZhbHVlcy5yZXBsYWNlKGxpbmUsICcnKTtcclxuICAgICAgICAgIGxpbmVzLnNwbGljZShmaW5kSW5kZXgsIDEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiByb3dzO1xyXG4gICAgfSwgW10pO1xyXG5cclxuICAgIHJldHVybiBkaWZmUm93c1Jlc3VsdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGlmZlBhcnRzKHZhbHVlOiBzdHJpbmcsIGNvbXBhcmVWYWx1ZTogc3RyaW5nKTogRGlmZlBhcnRbXSB7XHJcbiAgICBjb25zdCBkaWZmUGFydHM6IERpZmZQYXJ0W10gPSBbXTtcclxuICAgIGxldCBpID0gMDtcclxuICAgIGxldCBqID0gMDtcclxuICAgIGxldCBzaGFyZWQgPSAnJztcclxuICAgIGxldCBkaWZmID0gJyc7XHJcblxyXG4gICAgd2hpbGUgKGkgPCB2YWx1ZS5sZW5ndGgpIHtcclxuICAgICAgaWYgKHZhbHVlW2ldID09PSBjb21wYXJlVmFsdWVbal0gJiYgaiA8IGNvbXBhcmVWYWx1ZS5sZW5ndGgpIHtcclxuICAgICAgICBpZiAoZGlmZiAhPT0gJycpIHtcclxuICAgICAgICAgIGRpZmZQYXJ0cy5wdXNoKHsgY29udGVudDogZGlmZiwgaXNEaWZmOiB0cnVlIH0pO1xyXG4gICAgICAgICAgZGlmZiA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzaGFyZWQgKz0gdmFsdWVbaV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHNoYXJlZCAhPT0gJycpIHtcclxuICAgICAgICAgIGRpZmZQYXJ0cy5wdXNoKHsgY29udGVudDogc2hhcmVkLCBpc0RpZmY6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgc2hhcmVkID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRpZmYgKz0gdmFsdWVbaV07XHJcbiAgICAgIH1cclxuICAgICAgaSsrO1xyXG4gICAgICBqKys7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGRpZmYgIT09ICcnKSB7XHJcbiAgICAgIGRpZmZQYXJ0cy5wdXNoKHsgY29udGVudDogZGlmZiwgaXNEaWZmOiB0cnVlIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzaGFyZWQgIT09ICcnKSB7XHJcbiAgICAgIGRpZmZQYXJ0cy5wdXNoKHsgY29udGVudDogc2hhcmVkLCBpc0RpZmY6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkaWZmUGFydHM7XHJcbiAgfVxyXG59XHJcbiIsImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEaWZmQ29udGVudCwgRGlmZlBhcnQsIERpZmZUYWJsZUZvcm1hdCwgRGlmZlRhYmxlRm9ybWF0T3B0aW9uLCBEaWZmVGFibGVSb3dSZXN1bHQgfSBmcm9tICcuL25neC10ZXh0LWRpZmYubW9kZWwnO1xyXG5pbXBvcnQgeyBOZ3hUZXh0RGlmZlNlcnZpY2UgfSBmcm9tICcuL25neC10ZXh0LWRpZmYuc2VydmljZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0ZC1uZ3gtdGV4dC1kaWZmJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmd4LXRleHQtZGlmZi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbmd4LXRleHQtZGlmZi5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFRleHREaWZmQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGZvcm1hdDogRGlmZlRhYmxlRm9ybWF0ID0gJ1NpZGVCeVNpZGUnO1xyXG4gIEBJbnB1dCgpIGxlZnQgPSAnJztcclxuICBASW5wdXQoKSByaWdodCA9ICcnO1xyXG4gIEBJbnB1dCgpIGRpZmZDb250ZW50OiBPYnNlcnZhYmxlPERpZmZDb250ZW50PjtcclxuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0J0blRvb2xiYXIgPSB0cnVlO1xyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgdGFibGVSb3dzOiBEaWZmVGFibGVSb3dSZXN1bHRbXSA9IFtdO1xyXG4gIGZpbHRlcmVkVGFibGVSb3dzOiBEaWZmVGFibGVSb3dSZXN1bHRbXSA9IFtdO1xyXG4gIHRhYmxlUm93c0xpbmVCeUxpbmU6IERpZmZUYWJsZVJvd1Jlc3VsdFtdID0gW107XHJcbiAgZmlsdGVyZWRUYWJsZVJvd3NMaW5lQnlMaW5lOiBEaWZmVGFibGVSb3dSZXN1bHRbXSA9IFtdO1xyXG4gIHNob3dMaW5lc0RpZmZzID0gZmFsc2U7XHJcbiAgZGlmZnNDb3VudCA9IDA7XHJcblxyXG4gIGZvcm1hdE9wdGlvbnM6IERpZmZUYWJsZUZvcm1hdE9wdGlvbltdID0gW1xyXG4gICAge1xyXG4gICAgICBpZDogJ3NpZGUtYnktc2lkZScsXHJcbiAgICAgIG5hbWU6ICdzaWRlLWJ5LXNpZGUnLFxyXG4gICAgICBsYWJlbDogJ1NpZGUgYnkgU2lkZScsXHJcbiAgICAgIHZhbHVlOiAnU2lkZUJ5U2lkZScsXHJcbiAgICAgIGljb246ICdsYS1jb2RlJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6ICdsaW5lLWJ5LWxpbmUnLFxyXG4gICAgICBuYW1lOiAnbGluZS1ieS1saW5lJyxcclxuICAgICAgbGFiZWw6ICdMaW5lIGJ5IExpbmUnLFxyXG4gICAgICB2YWx1ZTogJ0xpbmVCeUxpbmUnLFxyXG4gICAgICBpY29uOiAnbGEtZmlsZS10ZXh0J1xyXG4gICAgfVxyXG4gIF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlmZjogTmd4VGV4dERpZmZTZXJ2aWNlLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5kaWZmQ29udGVudCkge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmRpZmZDb250ZW50LnN1YnNjcmliZShjb250ZW50ID0+IHtcclxuICAgICAgICAgIHRoaXMubGVmdCA9IGNvbnRlbnQubGVmdENvbnRlbnQ7XHJcbiAgICAgICAgICB0aGlzLnJpZ2h0ID0gY29udGVudC5yaWdodENvbnRlbnQ7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckRpZmZzKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVuZGVyRGlmZnMoKS50aGVuKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMpIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3dMaW5lc0RpZmZzQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dMaW5lc0RpZmZzID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5zaG93TGluZXNEaWZmcykge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkVGFibGVSb3dzID0gdGhpcy50YWJsZVJvd3MuZmlsdGVyKFxyXG4gICAgICAgIHJvdyA9PiAocm93LmxlZnRDb250ZW50ICYmIHJvdy5sZWZ0Q29udGVudC5wcmVmaXggPT09ICctJykgfHwgKHJvdy5yaWdodENvbnRlbnQgJiYgcm93LnJpZ2h0Q29udGVudC5wcmVmaXggPT09ICcrJylcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5maWx0ZXJlZFRhYmxlUm93c0xpbmVCeUxpbmUgPSB0aGlzLnRhYmxlUm93c0xpbmVCeUxpbmUuZmlsdGVyKFxyXG4gICAgICAgIHJvdyA9PiAocm93LmxlZnRDb250ZW50ICYmIHJvdy5sZWZ0Q29udGVudC5wcmVmaXggPT09ICctJykgfHwgKHJvdy5yaWdodENvbnRlbnQgJiYgcm93LnJpZ2h0Q29udGVudC5wcmVmaXggPT09ICcrJylcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRUYWJsZVJvd3MgPSB0aGlzLnRhYmxlUm93cztcclxuICAgICAgdGhpcy5maWx0ZXJlZFRhYmxlUm93c0xpbmVCeUxpbmUgPSB0aGlzLnRhYmxlUm93c0xpbmVCeUxpbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXREaWZmVGFibGVGb3JtYXQoZm9ybWF0OiBEaWZmVGFibGVGb3JtYXQpIHtcclxuICAgIHRoaXMuZm9ybWF0ID0gZm9ybWF0O1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcmVuZGVyRGlmZnMoKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRpZmZzQ291bnQgPSAwO1xyXG4gICAgICB0aGlzLnRhYmxlUm93cyA9IGF3YWl0IHRoaXMuZGlmZi5nZXREaWZmc0J5TGluZXModGhpcy5sZWZ0LCB0aGlzLnJpZ2h0KTtcclxuICAgICAgdGhpcy50YWJsZVJvd3NMaW5lQnlMaW5lID0gdGhpcy50YWJsZVJvd3MucmVkdWNlKCh0YWJsZUxpbmVCeUxpbmU6IERpZmZUYWJsZVJvd1Jlc3VsdFtdLCByb3c6IERpZmZUYWJsZVJvd1Jlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmICghdGFibGVMaW5lQnlMaW5lKSB7XHJcbiAgICAgICAgICB0YWJsZUxpbmVCeUxpbmUgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJvdy5oYXNEaWZmcykge1xyXG4gICAgICAgICAgaWYgKHJvdy5sZWZ0Q29udGVudCkge1xyXG4gICAgICAgICAgICB0YWJsZUxpbmVCeUxpbmUucHVzaCh7XHJcbiAgICAgICAgICAgICAgbGVmdENvbnRlbnQ6IHJvdy5sZWZ0Q29udGVudCxcclxuICAgICAgICAgICAgICByaWdodENvbnRlbnQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgYmVsb25nVG86IHJvdy5iZWxvbmdUbyxcclxuICAgICAgICAgICAgICBoYXNEaWZmczogdHJ1ZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyb3cucmlnaHRDb250ZW50KSB7XHJcbiAgICAgICAgICAgIHRhYmxlTGluZUJ5TGluZS5wdXNoKHtcclxuICAgICAgICAgICAgICBsZWZ0Q29udGVudDogbnVsbCxcclxuICAgICAgICAgICAgICByaWdodENvbnRlbnQ6IHJvdy5yaWdodENvbnRlbnQsXHJcbiAgICAgICAgICAgICAgYmVsb25nVG86IHJvdy5iZWxvbmdUbyxcclxuICAgICAgICAgICAgICBoYXNEaWZmczogdHJ1ZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGFibGVMaW5lQnlMaW5lLnB1c2gocm93KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0YWJsZUxpbmVCeUxpbmU7XHJcbiAgICAgIH0sIFtdKTtcclxuICAgICAgdGhpcy5kaWZmc0NvdW50ID0gdGhpcy50YWJsZVJvd3MuZmlsdGVyKFxyXG4gICAgICAgIHJvdyA9PiAocm93LmxlZnRDb250ZW50ICYmIHJvdy5sZWZ0Q29udGVudC5wcmVmaXggPT09ICctJykgfHwgKHJvdy5yaWdodENvbnRlbnQgJiYgcm93LnJpZ2h0Q29udGVudC5wcmVmaXggPT09ICcrJylcclxuICAgICAgKS5sZW5ndGg7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRUYWJsZVJvd3MgPSB0aGlzLnRhYmxlUm93cztcclxuICAgICAgdGhpcy5maWx0ZXJlZFRhYmxlUm93c0xpbmVCeUxpbmUgPSB0aGlzLnRhYmxlUm93c0xpbmVCeUxpbmU7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSBjYXRjaCAoZSkge31cclxuICB9XHJcblxyXG4gIHRyYWNrVGFibGVSb3dzKGluZGV4LCByb3c6IERpZmZUYWJsZVJvd1Jlc3VsdCkge1xyXG4gICAgcmV0dXJuIHJvdyAmJiByb3cubGVmdENvbnRlbnQgPyByb3cubGVmdENvbnRlbnQubGluZUNvbnRlbnQgOiByb3cgJiYgcm93LnJpZ2h0Q29udGVudCA/IHJvdy5yaWdodENvbnRlbnQubGluZUNvbnRlbnQgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICB0cmFja0RpZmZzKGluZGV4LCBkaWZmOiBEaWZmUGFydCkge1xyXG4gICAgcmV0dXJuIGRpZmYgJiYgZGlmZi5jb250ZW50ID8gZGlmZi5jb250ZW50IDogdW5kZWZpbmVkO1xyXG4gIH1cclxufVxyXG4iLCJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGQtbG9hZGVyLXNwaW5uZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9hZGVyLXNwaW5uZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb2FkZXItc3Bpbm5lci5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTG9hZGVyU3Bpbm5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGFjdGl2ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHt9XG59XG4iLCJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2Zvcm1hdExpbmUnXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1hdExpbmVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShsaW5lOiBzdHJpbmcsIGRpZmZzPzogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGlmICghbGluZSkge1xuICAgICAgcmV0dXJuICcgJztcbiAgICB9XG4gICAgaWYgKCEhZGlmZnMgJiYgZGlmZnMubGVuZ3RoID4gMCkge1xuICAgICAgLypkaWZmcy5mb3JFYWNoKGRpZmYgPT4ge1xuICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKGRpZmYsIGA8c3BhbiBjbGFzcz1cImhpZ2hsaVwiPiR7ZGlmZn08L3NwYW4+YCk7XG4gICAgICB9KTsqL1xuICAgIH1cbiAgICByZXR1cm4gbGluZVxuICAgICAgLnJlcGxhY2UoLyYvZywgJyZhbXA7JylcbiAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcbiAgICAgIC5yZXBsYWNlKC8+L2csICcmZ3Q7JylcbiAgICAgIC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JylcbiAgICAgIC5yZXBsYWNlKC8gL2csICcmbmJzcDsnKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmd4VGV4dERpZmZDb21wb25lbnQgfSBmcm9tICcuL25neC10ZXh0LWRpZmYuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IExvYWRlclNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2xvYWRlci1zcGlubmVyL2xvYWRlci1zcGlubmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1hdExpbmVQaXBlIH0gZnJvbSAnLi9mb3JtYXQtbGluZS5waXBlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxyXG4gIGRlY2xhcmF0aW9uczogW05neFRleHREaWZmQ29tcG9uZW50LCBMb2FkZXJTcGlubmVyQ29tcG9uZW50LCBGb3JtYXRMaW5lUGlwZV0sXHJcbiAgZXhwb3J0czogW05neFRleHREaWZmQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4VGV4dERpZmZNb2R1bGUge31cclxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLE1BQWEsS0FBSyxHQUFHLEdBQUcsSUFBSSxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUM7O0FBQzlELE1BQWEsT0FBTyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxNQUFNLEtBQUssQ0FBQyxDQUFDOzs7Ozs7QUNEekg7SUFXRTtRQUNFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztLQUNuQjs7OztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7Ozs7Ozs7SUFHM0MsZUFBZSxDQUFDLElBQVksRUFBRSxLQUFhO1FBQ3pDLE9BQU8sSUFBSSxPQUFPLENBQXVCLENBQUMsT0FBTyxFQUFFLE1BQU07O1lBQ3ZELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFV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
//# sourceMappingURL=ngx-text-diff.js.map

@@ -8,5 +8,4 @@ import { diff_match_patch } from 'diff-match-patch';

getDiffsByLines(left: string, right: string): Promise<DiffTableRowResult[]>;
private formatOutputNew;
private formatDiffsFromLines;
private formatOutput;
private getDiffParts;
}

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"NgxTextDiffService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"initParser":[{"__symbolic":"method"}],"getDiffsByLines":[{"__symbolic":"method"}],"formatOutputNew":[{"__symbolic":"method"}],"formatDiffsFromLines":[{"__symbolic":"method"}],"getDiffParts":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"NgxTextDiffComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"td-ngx-text-diff","template":"<td-loader-spinner [active]=\"loading\"></td-loader-spinner>\r\n<div *ngIf=\"!loading\">\r\n <div class=\"td-wrapper\">\r\n <div class=\"td-toolbar-show-diff\">\r\n <label class=\"td-checkbox-container\">Show Lines with Diffs ({{diffsCount}})\r\n <input type=\"checkbox\"\r\n id=\"showDiffs\"\r\n [ngModel]=\"showLinesDiffs\"\r\n (ngModelChange)=\"showLinesDiffsChange($event)\"\r\n >\r\n <span class=\"checkmark\"></span>\r\n </label>\r\n </div>\r\n <div class=\"td-toolbar-select-format\" *ngIf=\"showBtnToolbar\">\r\n <div class=\"td-btn-group td-btn-group-toggle\" data-toggle=\"buttons\">\r\n <button *ngFor=\"let option of formatOptions\"\r\n [ngClass]=\"{'active': format === option.value, 'disabled': !!option.disabled}\"\r\n [name]=\"option.name\"\r\n [id]=\"option.id\"\r\n [disabled]=\"!!option.disabled\"\r\n (click)=\"setDiffTableFormat(option.value)\"\r\n >{{option.label}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"td-table-wrapper\">\r\n <div class=\"td-table-container side-by-side\" *ngIf=\"format === 'SideBySide'\">\r\n <table class=\"td-table\">\r\n <tbody>\r\n <tr *ngFor=\"let row of filteredTableRows; trackBy: trackTableRows\">\r\n <td scope=\"row\" class=\"fit-column line-number-col\"\r\n [ngClass]=\"{'delete-row' : row.leftContent?.prefix === '-', 'empty-row': !row.leftContent?.lineContent}\">\r\n {{(row.leftContent?.lineNumber !== -1) ?\r\n row.leftContent?.lineNumber : ' '}}\r\n </td>\r\n <td class=\"fit-column prefix-col\"\r\n [ngClass]=\"{'delete-row' : row.leftContent?.prefix === '-', 'empty-row': !row.leftContent?.lineContent}\">\r\n <span>{{row.leftContent?.prefix || ' '}}</span>\r\n </td>\r\n <td class=\"content-col\"\r\n [ngClass]=\"{'delete-row' : row.leftContent?.prefix === '-', 'empty-row': !row.leftContent?.lineContent}\"\r\n *ngIf=\"!row.hasDiffs\">\r\n <span [innerHTML]=\"row.leftContent?.lineContent | formatLine\"></span>\r\n </td>\r\n <td class=\"content-col\"\r\n [ngClass]=\"{'delete-row' : row.leftContent?.prefix === '-', 'empty-row': !row.leftContent?.lineContent}\"\r\n *ngIf=\"row.hasDiffs\">\r\n <span [innerHTML]=\"diff.content | formatLine\" [ngClass]=\"{'highlight': diff.isDiff}\"\r\n *ngFor=\"let diff of row.leftContent?.lineDiffs; trackBy: trackDiffs\"></span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"td-table-container side-by-side\" *ngIf=\"format === 'SideBySide'\">\r\n <table class=\"td-table\">\r\n <tbody>\r\n <tr *ngFor=\"let row of filteredTableRows; trackBy: trackTableRows\">\r\n <td scope=\"row\" class=\"fit-column line-number-col\"\r\n [ngClass]=\"{'insert-row' : row.rightContent?.prefix === '+', 'empty-row': !row.rightContent?.lineContent}\">\r\n {{(row.rightContent?.lineNumber !== -1) ?\r\n row.rightContent?.lineNumber : ' '}}\r\n </td>\r\n <td class=\"fit-column prefix-col\"\r\n [ngClass]=\"{'insert-row' : row.rightContent?.prefix === '+', 'empty-row': !row.rightContent?.lineContent}\">\r\n <span>{{row.rightContent?.prefix || ' '}}</span>\r\n </td>\r\n <td class=\"content-col\"\r\n [ngClass]=\"{'insert-row' : row.rightContent?.prefix === '+', 'empty-row': !row.rightContent?.lineContent}\"\r\n *ngIf=\"!row.hasDiffs\">\r\n <span [innerHTML]=\"row.rightContent?.lineContent | formatLine\"></span>\r\n </td>\r\n <td class=\"content-col\"\r\n [ngClass]=\"{'insert-row' : row.rightContent?.prefix === '+', 'empty-row': !row.rightContent?.lineContent}\"\r\n *ngIf=\"row.hasDiffs\">\r\n <span [innerHTML]=\"diff.content | formatLine\" [ngClass]=\"{'highlight': diff.isDiff}\"\r\n *ngFor=\"let diff of row.rightContent?.lineDiffs; trackBy: trackDiffs\"></span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"td-table-container line-by-line\" *ngIf=\"format === 'LineByLine'\">\r\n <table class=\"td-table\">\r\n <tbody>\r\n <tr *ngFor=\"let row of filteredTableRowsLineByLine; trackBy: trackTableRows\">\r\n <td scope=\"row\" class=\"fit-column line-number-col-left\">{{row.leftContent?.lineNumber}}</td>\r\n <td scope=\"row\" class=\"fit-column line-number-col\">{{row.rightContent?.lineNumber}}</td>\r\n <td class=\"fit-column prefix-col\"\r\n [ngClass]=\"{'delete-row' : row.leftContent?.prefix === '-', 'insert-row' : row.rightContent?.prefix === '+'}\">\r\n <span>{{row.leftContent?.prefix || row.rightContent?.prefix || ' '}}</span>\r\n </td>\r\n <td class=\"content-col\"\r\n [ngClass]=\"{'delete-row' : row.leftContent?.prefix === '-', 'insert-row' : row.rightContent?.prefix === '+'}\"\r\n *ngIf=\"!row.hasDiffs\">\r\n <span [innerHTML]=\"row.leftContent?.lineContent | formatLine\"></span>\r\n </td>\r\n <td class=\"content-col\"\r\n [ngClass]=\"{'delete-row' : row.leftContent?.prefix === '-', 'insert-row' : row.rightContent?.prefix === '+'}\"\r\n *ngIf=\"row.hasDiffs && row.leftContent && row.leftContent?.lineDiffs.length !== 0\">\r\n <span [innerHTML]=\"diff.content | formatLine\" [ngClass]=\"{'highlight': diff.isDiff}\"\r\n *ngFor=\"let diff of row.leftContent?.lineDiffs; trackBy: trackDiffs\"></span>\r\n </td>\r\n <td class=\"content-col\"\r\n [ngClass]=\"{'delete-row' : row.leftContent?.prefix === '-', 'insert-row' : row.rightContent?.prefix === '+'}\"\r\n *ngIf=\"row.hasDiffs && row.rightContent && row.rightContent?.lineDiffs.length !== 0\">\r\n <span [innerHTML]=\"diff.content | formatLine\" [ngClass]=\"{'highlight': diff.isDiff}\"\r\n *ngFor=\"let diff of row.rightContent?.lineDiffs; trackBy: trackDiffs\"></span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","styles":[".td-wrapper{display:-ms-grid;display:grid;width:100%;grid-row-gap:10px;-ms-grid-columns:([col] 50%)[2];grid-template-columns:repeat(2,[col] 50%);-ms-grid-rows:([row] auto)[2];grid-template-rows:repeat(2,[row] auto);background-color:#fff;color:#444}.td-toolbar-show-diff{-ms-grid-column:1;grid-column:1;-ms-grid-row:1;grid-row:1}.td-toolbar-select-format{margin-left:auto;-ms-grid-column:2;grid-column:2;-ms-grid-row:1;grid-row:1}.td-table-container{-ms-grid-column:1;-ms-grid-column-span:1;grid-column:1/2;-ms-grid-row:2;grid-row:2;width:100%;max-width:100%;overflow-x:auto}.td-table-wrapper{display:flex;width:200%}.td-table{border:1px solid #a9a9a9;max-height:50vh;width:100%;max-width:100%}.fit-column{width:1px;white-space:nowrap}.line-number-col{border-right:1px solid #ddd;color:#999;text-align:right;background-color:#f7f7f7;padding-left:10px;padding-right:10px;font-size:87.5%}.line-number-col-left{color:#999;padding-left:10px;padding-right:10px;text-align:right;background-color:#f7f7f7;font-size:87.5%}.insert-row,.insert-row>.line-number-col{background-color:#dfd;border-color:#b4e2b4}.delete-row,.delete-row>.line-number-col{background-color:#fee8e9;border-color:#e9aeae}.empty-row{background-color:#f7f7f7;height:24px}.td-table td{border-top:0;padding-top:0;padding-bottom:0;white-space:nowrap;max-width:50%}pre{margin-bottom:0}td.content-col{padding:0;margin:0;line-height:24px}td.prefix-col{padding-left:10px;padding-right:10px;line-height:24px}.td-btn-group{border-radius:4px}.td-btn-group button{background-color:rgba(23,162,184,.7);border:1px solid #17a2b8;color:#fff;cursor:pointer;float:left}.td-btn-group button:not(:last-child){border-right:none}.td-btn-group button:first-child{-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-topleft:4px;-moz-border-radius-bottomleft:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.td-btn-group button:last-child{-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.td-btn-group:after{content:'';clear:both;display:table}.td-btn-group button.active,.td-btn-group button:hover{background-color:#17a2b8}.td-checkbox-container{display:block;position:relative;padding-left:21px;margin-bottom:0;cursor:pointer;font-size:16px;line-height:28px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.td-checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark{position:absolute;top:7px;left:0;height:16px;width:16px;background-color:#eee}.td-checkbox-container:hover input~.checkmark{background-color:#ccc}.td-checkbox-container input:checked~.checkmark{background-color:#17a2b8}.checkmark:after{content:\"\";position:absolute;display:none}.td-checkbox-container input:checked~.checkmark:after{display:block}.td-checkbox-container .checkmark:after{left:5px;top:3px;width:5px;height:10px;border:solid #fff;border-width:0 3px 3px 0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.insert-row>.highlight{background-color:#acf2bd!important}.delete-row>.highlight{background-color:#fdb8c0!important}"]}]}],"members":{"format":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"left":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"right":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"diffContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"showBtnToolbar":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"NgxTextDiffService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":42,"character":60}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"showLinesDiffsChange":[{"__symbolic":"method"}],"setDiffTableFormat":[{"__symbolic":"method"}],"renderDiffs":[{"__symbolic":"method"}],"trackTableRows":[{"__symbolic":"method"}],"trackDiffs":[{"__symbolic":"method"}]}},"NgxTextDiffModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":12},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":8,"character":26}],"declarations":[{"__symbolic":"reference","name":"NgxTextDiffComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}],"exports":[{"__symbolic":"reference","name":"NgxTextDiffComponent"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"td-loader-spinner","template":"<div class=\"td-loading-roller\" *ngIf=\"active\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n</div>\n","styles":[".td-loading-roller{display:inline-block;position:relative;width:64px;height:64px}.td-loading-roller div{-webkit-animation:1.2s cubic-bezier(.5,0,.5,1) infinite lds-roller;animation:1.2s cubic-bezier(.5,0,.5,1) infinite lds-roller;-webkit-transform-origin:32px 32px;transform-origin:32px 32px}.td-loading-roller div:after{content:\" \";display:block;position:absolute;width:6px;height:6px;border-radius:50%;background:#000;margin:-3px 0 0 -3px}.td-loading-roller div:nth-child(1){-webkit-animation-delay:-36ms;animation-delay:-36ms}.td-loading-roller div:nth-child(1):after{top:50px;left:50px}.td-loading-roller div:nth-child(2){-webkit-animation-delay:-72ms;animation-delay:-72ms}.td-loading-roller div:nth-child(2):after{top:54px;left:45px}.td-loading-roller div:nth-child(3){-webkit-animation-delay:-108ms;animation-delay:-108ms}.td-loading-roller div:nth-child(3):after{top:57px;left:39px}.td-loading-roller div:nth-child(4){-webkit-animation-delay:-144ms;animation-delay:-144ms}.td-loading-roller div:nth-child(4):after{top:58px;left:32px}.td-loading-roller div:nth-child(5){-webkit-animation-delay:-.18s;animation-delay:-.18s}.td-loading-roller div:nth-child(5):after{top:57px;left:25px}.td-loading-roller div:nth-child(6){-webkit-animation-delay:-216ms;animation-delay:-216ms}.td-loading-roller div:nth-child(6):after{top:54px;left:19px}.td-loading-roller div:nth-child(7){-webkit-animation-delay:-252ms;animation-delay:-252ms}.td-loading-roller div:nth-child(7):after{top:50px;left:14px}.td-loading-roller div:nth-child(8){-webkit-animation-delay:-288ms;animation-delay:-288ms}.td-loading-roller div:nth-child(8):after{top:45px;left:10px}@-webkit-keyframes lds-roller{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes lds-roller{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}"]}]}],"members":{"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":2,"character":1},"arguments":[{"name":"formatLine"}]}],"members":{"transform":[{"__symbolic":"method"}]}}},"origins":{"NgxTextDiffService":"./lib/ngx-text-diff.service","NgxTextDiffComponent":"./lib/ngx-text-diff.component","NgxTextDiffModule":"./lib/ngx-text-diff.module","ɵa":"./lib/loader-spinner/loader-spinner.component","ɵb":"./lib/format-line.pipe"},"importAs":"ngx-text-diff"}
{"__symbolic":"module","version":4,"metadata":{"NgxTextDiffService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"initParser":[{"__symbolic":"method"}],"getDiffsByLines":[{"__symbolic":"method"}],"formatOutput":[{"__symbolic":"method"}],"getDiffParts":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"NgxTextDiffComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"td-ngx-text-diff","template":"<td-loader-spinner [active]=\"loading\"></td-loader-spinner>\r\n<div *ngIf=\"!loading\">\r\n <div class=\"td-wrapper\">\r\n <div class=\"td-toolbar-show-diff\">\r\n <label class=\"td-checkbox-container\">Show Lines with Diffs ({{diffsCount}})\r\n <input type=\"checkbox\"\r\n id=\"showDiffs\"\r\n [ngModel]=\"showLinesDiffs\"\r\n (ngModelChange)=\"showLinesDiffsChange($event)\"\r\n >\r\n <span class=\"checkmark\"></span>\r\n </label>\r\n </div>\r\n <div class=\"td-toolbar-select-format\" *ngIf=\"showBtnToolbar\">\r\n <div class=\"td-btn-group td-btn-group-toggle\" data-toggle=\"buttons\">\r\n <button *ngFor=\"let option of formatOptions\"\r\n [ngClass]=\"{'active': format === option.value, 'disabled': !!option.disabled}\"\r\n [name]=\"option.name\"\r\n [id]=\"option.id\"\r\n [disabled]=\"!!option.disabled\"\r\n (click)=\"setDiffTableFormat(option.value)\"\r\n >{{option.label}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"td-table-wrapper\">\r\n <div class=\"td-table-container side-by-side\" *ngIf=\"format === 'SideBySide'\">\r\n <table class=\"td-table\">\r\n <tbody>\r\n <tr *ngFor=\"let row of filteredTableRows; trackBy: trackTableRows\">\r\n <td scope=\"row\" class=\"fit-column line-number-col\"\r\n [ngClass]=\"{'delete-row' : row.leftContent?.prefix === '-', 'empty-row': !row.leftContent?.lineContent}\">\r\n {{(row.leftContent?.lineNumber !== -1) ?\r\n row.leftContent?.lineNumber : ' '}}\r\n </td>\r\n <td class=\"fit-column prefix-col\"\r\n [ngClass]=\"{'delete-row' : row.leftContent?.prefix === '-', 'empty-row': !row.leftContent?.lineContent}\">\r\n <span>{{row.leftContent?.prefix || ' '}}</span>\r\n </td>\r\n <td class=\"content-col\"\r\n [ngClass]=\"{'delete-row' : row.leftContent?.prefix === '-', 'empty-row': !row.leftContent?.lineContent}\"\r\n *ngIf=\"!row.hasDiffs\">\r\n <span [innerHTML]=\"row.leftContent?.lineContent | formatLine\"></span>\r\n </td>\r\n <td class=\"content-col\"\r\n [ngClass]=\"{'delete-row' : row.leftContent?.prefix === '-', 'empty-row': !row.leftContent?.lineContent}\"\r\n *ngIf=\"row.hasDiffs\">\r\n <span [innerHTML]=\"diff.content | formatLine\" [ngClass]=\"{'highlight': diff.isDiff}\"\r\n *ngFor=\"let diff of row.leftContent?.lineDiffs; trackBy: trackDiffs\"></span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"td-table-container side-by-side\" *ngIf=\"format === 'SideBySide'\">\r\n <table class=\"td-table\">\r\n <tbody>\r\n <tr *ngFor=\"let row of filteredTableRows; trackBy: trackTableRows\">\r\n <td scope=\"row\" class=\"fit-column line-number-col\"\r\n [ngClass]=\"{'insert-row' : row.rightContent?.prefix === '+', 'empty-row': !row.rightContent?.lineContent}\">\r\n {{(row.rightContent?.lineNumber !== -1) ?\r\n row.rightContent?.lineNumber : ' '}}\r\n </td>\r\n <td class=\"fit-column prefix-col\"\r\n [ngClass]=\"{'insert-row' : row.rightContent?.prefix === '+', 'empty-row': !row.rightContent?.lineContent}\">\r\n <span>{{row.rightContent?.prefix || ' '}}</span>\r\n </td>\r\n <td class=\"content-col\"\r\n [ngClass]=\"{'insert-row' : row.rightContent?.prefix === '+', 'empty-row': !row.rightContent?.lineContent}\"\r\n *ngIf=\"!row.hasDiffs\">\r\n <span [innerHTML]=\"row.rightContent?.lineContent | formatLine\"></span>\r\n </td>\r\n <td class=\"content-col\"\r\n [ngClass]=\"{'insert-row' : row.rightContent?.prefix === '+', 'empty-row': !row.rightContent?.lineContent}\"\r\n *ngIf=\"row.hasDiffs\">\r\n <span [innerHTML]=\"diff.content | formatLine\" [ngClass]=\"{'highlight': diff.isDiff}\"\r\n *ngFor=\"let diff of row.rightContent?.lineDiffs; trackBy: trackDiffs\"></span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"td-table-container line-by-line\" *ngIf=\"format === 'LineByLine'\">\r\n <table class=\"td-table\">\r\n <tbody>\r\n <tr *ngFor=\"let row of filteredTableRowsLineByLine; trackBy: trackTableRows\">\r\n <td scope=\"row\" class=\"fit-column line-number-col-left\">{{row.leftContent?.lineNumber}}</td>\r\n <td scope=\"row\" class=\"fit-column line-number-col\">{{row.rightContent?.lineNumber}}</td>\r\n <td class=\"fit-column prefix-col\"\r\n [ngClass]=\"{'delete-row' : row.leftContent?.prefix === '-', 'insert-row' : row.rightContent?.prefix === '+'}\">\r\n <span>{{row.leftContent?.prefix || row.rightContent?.prefix || ' '}}</span>\r\n </td>\r\n <td class=\"content-col\"\r\n [ngClass]=\"{'delete-row' : row.leftContent?.prefix === '-', 'insert-row' : row.rightContent?.prefix === '+'}\"\r\n *ngIf=\"!row.hasDiffs\">\r\n <span [innerHTML]=\"row.leftContent?.lineContent | formatLine\"></span>\r\n </td>\r\n <td class=\"content-col\"\r\n [ngClass]=\"{'delete-row' : row.leftContent?.prefix === '-', 'insert-row' : row.rightContent?.prefix === '+'}\"\r\n *ngIf=\"row.hasDiffs && row.leftContent && row.leftContent?.lineDiffs.length !== 0\">\r\n <span [innerHTML]=\"diff.content | formatLine\" [ngClass]=\"{'highlight': diff.isDiff}\"\r\n *ngFor=\"let diff of row.leftContent?.lineDiffs; trackBy: trackDiffs\"></span>\r\n </td>\r\n <td class=\"content-col\"\r\n [ngClass]=\"{'delete-row' : row.leftContent?.prefix === '-', 'insert-row' : row.rightContent?.prefix === '+'}\"\r\n *ngIf=\"row.hasDiffs && row.rightContent && row.rightContent?.lineDiffs.length !== 0\">\r\n <span [innerHTML]=\"diff.content | formatLine\" [ngClass]=\"{'highlight': diff.isDiff}\"\r\n *ngFor=\"let diff of row.rightContent?.lineDiffs; trackBy: trackDiffs\"></span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","styles":[".td-wrapper{display:-ms-grid;display:grid;width:100%;grid-row-gap:10px;-ms-grid-columns:([col] 50%)[2];grid-template-columns:repeat(2,[col] 50%);-ms-grid-rows:([row] auto)[2];grid-template-rows:repeat(2,[row] auto);background-color:#fff;color:#444}.td-toolbar-show-diff{-ms-grid-column:1;grid-column:1;-ms-grid-row:1;grid-row:1}.td-toolbar-select-format{margin-left:auto;-ms-grid-column:2;grid-column:2;-ms-grid-row:1;grid-row:1}.td-table-container{-ms-grid-column:1;-ms-grid-column-span:1;grid-column:1/2;-ms-grid-row:2;grid-row:2;width:100%;max-width:100%;overflow-x:auto}.td-table-wrapper{display:flex;width:200%}.td-table{border:1px solid #a9a9a9;max-height:50vh;width:100%;max-width:100%}.fit-column{width:1px;white-space:nowrap}.line-number-col{border-right:1px solid #ddd;color:#999;text-align:right;background-color:#f7f7f7;padding-left:10px;padding-right:10px;font-size:87.5%}.line-number-col-left{color:#999;padding-left:10px;padding-right:10px;text-align:right;background-color:#f7f7f7;font-size:87.5%}.insert-row,.insert-row>.line-number-col{background-color:#dfd;border-color:#b4e2b4}.delete-row,.delete-row>.line-number-col{background-color:#fee8e9;border-color:#e9aeae}.empty-row{background-color:#f7f7f7;height:24px}.td-table td{border-top:0;padding-top:0;padding-bottom:0;white-space:nowrap;max-width:50%}pre{margin-bottom:0}td.content-col{padding:0;margin:0;line-height:24px}td.prefix-col{padding-left:10px;padding-right:10px;line-height:24px}.td-btn-group{border-radius:4px}.td-btn-group button{background-color:rgba(23,162,184,.7);border:1px solid #17a2b8;color:#fff;cursor:pointer;float:left}.td-btn-group button:not(:last-child){border-right:none}.td-btn-group button:first-child{-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-topleft:4px;-moz-border-radius-bottomleft:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.td-btn-group button:last-child{-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.td-btn-group:after{content:'';clear:both;display:table}.td-btn-group button.active,.td-btn-group button:hover{background-color:#17a2b8}.td-checkbox-container{display:block;position:relative;padding-left:21px;margin-bottom:0;cursor:pointer;font-size:16px;line-height:28px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.td-checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark{position:absolute;top:7px;left:0;height:16px;width:16px;background-color:#eee}.td-checkbox-container:hover input~.checkmark{background-color:#ccc}.td-checkbox-container input:checked~.checkmark{background-color:#17a2b8}.checkmark:after{content:\"\";position:absolute;display:none}.td-checkbox-container input:checked~.checkmark:after{display:block}.td-checkbox-container .checkmark:after{left:5px;top:3px;width:5px;height:10px;border:solid #fff;border-width:0 3px 3px 0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.insert-row>.highlight{background-color:#acf2bd!important}.delete-row>.highlight{background-color:#fdb8c0!important}"]}]}],"members":{"format":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"left":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"right":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"diffContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"showBtnToolbar":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"NgxTextDiffService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":42,"character":60}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"showLinesDiffsChange":[{"__symbolic":"method"}],"setDiffTableFormat":[{"__symbolic":"method"}],"renderDiffs":[{"__symbolic":"method"}],"trackTableRows":[{"__symbolic":"method"}],"trackDiffs":[{"__symbolic":"method"}]}},"NgxTextDiffModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":12},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":8,"character":26}],"declarations":[{"__symbolic":"reference","name":"NgxTextDiffComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}],"exports":[{"__symbolic":"reference","name":"NgxTextDiffComponent"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"td-loader-spinner","template":"<div class=\"td-loading-roller\" *ngIf=\"active\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n</div>\r\n","styles":[".td-loading-roller{display:inline-block;position:relative;width:64px;height:64px}.td-loading-roller div{-webkit-animation:1.2s cubic-bezier(.5,0,.5,1) infinite lds-roller;animation:1.2s cubic-bezier(.5,0,.5,1) infinite lds-roller;-webkit-transform-origin:32px 32px;transform-origin:32px 32px}.td-loading-roller div:after{content:\" \";display:block;position:absolute;width:6px;height:6px;border-radius:50%;background:#000;margin:-3px 0 0 -3px}.td-loading-roller div:nth-child(1){-webkit-animation-delay:-36ms;animation-delay:-36ms}.td-loading-roller div:nth-child(1):after{top:50px;left:50px}.td-loading-roller div:nth-child(2){-webkit-animation-delay:-72ms;animation-delay:-72ms}.td-loading-roller div:nth-child(2):after{top:54px;left:45px}.td-loading-roller div:nth-child(3){-webkit-animation-delay:-108ms;animation-delay:-108ms}.td-loading-roller div:nth-child(3):after{top:57px;left:39px}.td-loading-roller div:nth-child(4){-webkit-animation-delay:-144ms;animation-delay:-144ms}.td-loading-roller div:nth-child(4):after{top:58px;left:32px}.td-loading-roller div:nth-child(5){-webkit-animation-delay:-.18s;animation-delay:-.18s}.td-loading-roller div:nth-child(5):after{top:57px;left:25px}.td-loading-roller div:nth-child(6){-webkit-animation-delay:-216ms;animation-delay:-216ms}.td-loading-roller div:nth-child(6):after{top:54px;left:19px}.td-loading-roller div:nth-child(7){-webkit-animation-delay:-252ms;animation-delay:-252ms}.td-loading-roller div:nth-child(7):after{top:50px;left:14px}.td-loading-roller div:nth-child(8){-webkit-animation-delay:-288ms;animation-delay:-288ms}.td-loading-roller div:nth-child(8):after{top:45px;left:10px}@-webkit-keyframes lds-roller{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes lds-roller{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}"]}]}],"members":{"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":2,"character":1},"arguments":[{"name":"formatLine"}]}],"members":{"transform":[{"__symbolic":"method"}]}}},"origins":{"NgxTextDiffService":"./lib/ngx-text-diff.service","NgxTextDiffComponent":"./lib/ngx-text-diff.component","NgxTextDiffModule":"./lib/ngx-text-diff.module","ɵa":"./lib/loader-spinner/loader-spinner.component","ɵb":"./lib/format-line.pipe"},"importAs":"ngx-text-diff"}
{
"name": "ngx-text-diff",
"version": "0.5.2",
"version": "0.5.3",
"description": "A Text Diff component for Angular.",

@@ -5,0 +5,0 @@ "keywords": [

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc