New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@remult/angular

Package Overview
Dependencies
Maintainers
2
Versions
305
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@remult/angular - npm Package Compare versions

Comparing version 2.3.12 to 2.3.13

2

bundles/remult-angular.umd.min.js

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

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/material/core"),require("@angular/common"),require("@angular/forms"),require("util"),require("@angular/router"),require("@angular/common/http"),require("@angular/material/progress-spinner"),require("rxjs/operators"),require("@angular/material/dialog"),require("@angular/platform-browser/animations"),require("@angular/material/form-field"),require("@angular/material/input"),require("@angular/material/button"),require("@angular/material/list"),require("@angular/material/icon"),require("@angular/material/checkbox"),require("@angular/material/tooltip"),require("@angular/material/menu"),require("@angular/core"),require("@angular/cdk/bidi"),require("@remult/core")):"function"==typeof define&&define.amd?define("@remult/angular",["exports","@angular/material/core","@angular/common","@angular/forms","util","@angular/router","@angular/common/http","@angular/material/progress-spinner","rxjs/operators","@angular/material/dialog","@angular/platform-browser/animations","@angular/material/form-field","@angular/material/input","@angular/material/button","@angular/material/list","@angular/material/icon","@angular/material/checkbox","@angular/material/tooltip","@angular/material/menu","@angular/core","@angular/cdk/bidi","@remult/core"],e):e((t.remult=t.remult||{},t.remult.angular={}),t.ng.material.core,t.ng.common,t.ng.forms,t.util,t.ng.router,t.ng.common.http,t.ng.material["progress-spinner"],t.rxjs.operators,t.ng.material.dialog,t.ng.platformBrowser.animations,t.ng.material["form-field"],t.ng.material.input,t.ng.material.button,t.ng.material.list,t.ng.material.icon,t.ng.material.checkbox,t.ng.material.tooltip,t.ng.material.menu,t.ng.core,t.ng.cdk.bidi,t.core$2)}(this,function(t,e,n,i,r,o,s,a,l,u,c,d,h,p,g,f,m,y,w,v,C,b){"use strict";var x=function(t,e){return(x=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function R(t,e){function n(){this.constructor=t}x(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function I(e,s,a,l){return new(a=a||Promise)(function(t,n){function i(t){try{o(l.next(t))}catch(e){n(e)}}function r(t){try{o(l["throw"](t))}catch(e){n(e)}}function o(e){e.done?t(e.value):new a(function(t){t(e.value)}).then(i,r)}o((l=l.apply(e,s||[])).next())})}function _(i,r){var o,s,a,t,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return t={next:e(0),"throw":e(1),"return":e(2)},"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function e(e){return function(t){return function n(t){if(o)throw new TypeError("Generator is already executing.");for(;l;)try{if(o=1,s&&(a=2&t[0]?s["return"]:t[0]?s["throw"]||((a=s["return"])&&a.call(s),0):s.next)&&!(a=a.call(s,t[1])).done)return a;switch(s=0,a&&(t=[2&t[0],a.value]),t[0]){case 0:case 1:a=t;break;case 4:return l.label++,{value:t[1],done:!1};case 5:l.label++,s=t[1],t=[0];continue;case 7:t=l.ops.pop(),l.trys.pop();continue;default:if(!(a=0<(a=l.trys).length&&a[a.length-1])&&(6===t[0]||2===t[0])){l=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]<a[3])){l.label=t[1];break}if(6===t[0]&&l.label<a[1]){l.label=a[1],a=t;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(t);break}a[2]&&l.ops.pop(),l.trys.pop();continue}t=r.call(i,l)}catch(e){t=[6,e],s=0}finally{o=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([e,t])}}}function k(t){var e="function"==typeof Symbol&&t[Symbol.iterator],n=0;return e?e.call(t):{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}}function S(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var i,r,o=n.call(t),s=[];try{for(;(void 0===e||0<e--)&&!(i=o.next()).done;)s.push(i.value)}catch(a){r={error:a}}finally{try{i&&!i.done&&(n=o["return"])&&n.call(o)}finally{if(r)throw r.error}}return s}function O(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(S(arguments[e]));return t}var L=Symbol("configDataControlField");function A(n,t){!t.caption&&n.defs.caption&&(t.caption=n.defs.caption),!t.inputType&&n.defs.inputType&&(t.inputType=n.defs.inputType);var e=n.__settings;if(t.readOnly==undefined&&(e.sqlExpression?t.readOnly=!0:"boolean"==typeof e.allowApiUpdate&&(t.readOnly=!e.allowApiUpdate)),n[F]=D(n),n[F])for(var i in!t.getValue&&n[F].getValue&&(t.getValue=function(t){var e=n;return t&&(e=t.columns.find(e)),e[F]||(e[F]=D(n)),e[F].getValue(t)}),!t.click&&n[F].click&&(t.click=function(t){var e=n;t&&(e=t.columns.find(e)),e[F]||(e[F]=D(n)),e[F].click(t)}),!t.allowClick&&n[F].allowClick&&(t.allowClick=function(t){var e=n;return t&&(e=t.columns.find(e)),e[F]||(e[F]=D(n)),e[F].allowClick(t)}),n[F])if(n[F].hasOwnProperty(i)){var r=n[F][i];r!==undefined&&t[i]===undefined&&(t[i]=r)}}var F=Symbol("__displayResult");function D(e){if(e[L]){var t={};return e[L](t),t}return e instanceof b.ValueListColumn&&(e[L]=function(t){t.valueList=e.getOptions()}),undefined}var B=(T.prototype.__showArea=function(){return this.showArea()},T.prototype.__getColumn=function(t,e){var n;return e&&(n=e.columns.find(t.column)),n=n||t.column},T.prototype.__visible=function(t,e){return t.visible===undefined||t.visible(e)},T.prototype.__dataControlStyle=function(t){return t.width&&0<t.width.trim().length?(+t.width).toString()==t.width?t.width+"px":t.width:undefined},T.prototype.add=function(){for(var u=[],t=0;t<arguments.length;t++)u[t]=arguments[t];return I(this,void 0,void 0,function(){var n,i,r,o,s,a,l;return _(this,function(t){switch(t.label){case 0:r=[];try{for(o=k(u),s=o.next();!s.done;s=o.next())(a=s.value)&&(!(l=a).column&&a instanceof b.Column&&(l={column:a}),l.column&&A(l.column,l),l.getValue||r.push(this.buildDropDown(l)),this.items.push(l))}catch(e){n={error:e}}finally{try{s&&!s.done&&(i=o["return"])&&i.call(o)}finally{if(n)throw n.error}}return[4,Promise.all(r)];case 1:return t.sent(),[2,Promise.resolve()]}})})},T.prototype.buildDropDown=function(y){return I(this,void 0,void 0,function(){var n,i,r,o,s,a,l,u,c,d,h,p,g,f,m;return _(this,function(t){switch(t.label){case 0:if(!y.valueList)return[3,5];if(r=y.valueList,o=[],y.valueList=o,!(r instanceof Array))return[3,1];try{for(s=k(r),a=s.next();!a.done;a=s.next())l=a.value,"string"==(u=typeof l)||"number"==u?o.push({id:l,caption:l}):(c=l)&&c.id!=undefined&&o.push(c)}catch(e){n={error:e}}finally{try{a&&!a.done&&(i=s["return"])&&i.call(s)}finally{if(n)throw n.error}}return[3,5];case 1:return"function"!=typeof r?[3,3]:(h=(d=o.push).apply,p=[o],[4,r()]);case 2:return h.apply(d,p.concat([O.apply(void 0,[t.sent()])])),[3,5];case 3:return f=(g=o.push).apply,m=[o],[4,r];case 4:f.apply(g,m.concat([O.apply(void 0,[t.sent()])])),t.label=5;case 5:return[2,Promise.resolve()]}})})},T.prototype.colListChanged=function(){this._lastNumOfColumnsInGrid=-1,this._colListChangeListeners.forEach(function(t){return t()})},T.prototype.onColListChange=function(t){this._colListChangeListeners.push(t)},T.prototype.moveCol=function(t,e){var n=this.items.indexOf(t),i=n+e;i<0||i>=this.items.length||(this.items.splice(n,1),this.items.splice(i,0,t),this.colListChanged())},T.prototype.filterRows=function(t){var e=t.forceEqualFilter;e===undefined&&(e=t.valueList!=undefined),this.filterHelper.filterColumn(t.column,!1,e)},T.prototype.clearFilter=function(t){this.filterHelper.filterColumn(t.column,!0,!1)},T.prototype._shouldShowFilterDialog=function(t){return!1},T.prototype.deleteCol=function(t){this.items.splice(this.items.indexOf(t),1),this.colListChanged()},T.prototype.addCol=function(t,e){this.items.splice(this.items.indexOf(t)+1,0,e),this.colListChanged()},T.prototype._getEditable=function(t,e){return!(!this.allowUpdate()||!t.column||t.readOnly!==undefined&&b.valueOrEntityExpressionToValue(t.readOnly,e))},T.prototype._click=function(t,e){t.click(e)},T.prototype._getColDisplayValue=function(t,e){var n,i,r;if(t.getValue)(r=t.getValue(e))instanceof b.Column&&(r=r.value);else if(t.column){if(t.valueList)try{for(var o=k(t.valueList),s=o.next();!s.done;s=o.next()){var a=s.value;if(a.id==this.__getColumn(t,e).value)return a.caption}}catch(l){n={error:l}}finally{try{s&&!s.done&&(i=o["return"])&&i.call(o)}finally{if(n)throw n.error}}r=this.__getColumn(t,e).displayValue}return r},T.prototype._getColDataType=function(t){return t.inputType?t.inputType:"text"},T.prototype._getColumnClass=function(t,e){return t.cssClass?"function"!=typeof t.cssClass?t.cssClass:(0,t.cssClass)(e):""},T.prototype._getError=function(t,e){return t.column?this.__getColumn(t,e).validationError:undefined},T.prototype.autoGenerateColumnsBasedOnData=function(t){var e,n;if(0==this.items.length&&t){var i=undefined;t instanceof b.IdEntity&&(i=t.id);try{for(var r=k(t.columns),o=r.next();!o.done;o=r.next()){var s=o.value;s!=i&&this.add(s)}}catch(a){e={error:a}}finally{try{o&&!o.done&&(n=r["return"])&&n.call(r)}finally{if(e)throw e.error}}}},T.prototype.__columnSettingsTypeScript=function(){var e=this,n="x";this.currentRow()&&(n=this.currentRow().defs.name),n=n[0].toLocaleLowerCase()+n.substring(1);var i="";return this.items.forEach(function(t){0<i.length&&(i+=",\n"),i+=" "+e.__columnTypeScriptDescription(t,n)}),i="columnSettings: "+n+" => [\n"+i+"\n]"},T.prototype.__columnTypeScriptDescription=function(t,e){var i="";function n(t,e){!function n(t,e){0<i.length&&(i+=", "),i+="\n "+t+": "+e}(t,"'"+e+"'")}var r="";t.column?(r+=e+"."+t.column.defs.key,t==t.column&&(r+="/*equal*/"),t.caption!=t.column.defs.caption&&n("caption",t.caption)):n("caption",t.caption),t.width&&0<t.width.length&&n("width",t.width),0<i.length&&""!=r&&(i="\n column: "+r+", "+i);var o="";return 0<i.length?o="{"+i+"\n }":""!=r&&(o=r),o},T.prototype.__changeWidth=function(t,e){var n=t.width;n=(+(n=n||"50")+e).toString(),t.width=n},T.prototype._colValueChanged=function(t,e){},T.prototype._initColumnsArrays=function(){var t,e;if(this._lastColumnCount!=this.items.length||this._lastNumOfColumnsInGrid!=this.numOfColumnsInGrid){this._lastNumOfColumnsInGrid=this.numOfColumnsInGrid,this._lastColumnCount=this.items.length,this.gridColumns=[],this.nonGridColumns=[];var n=0;try{for(var i=k(this.items),r=i.next();!r.done;r=i.next()){var o=r.value;n++<this._lastNumOfColumnsInGrid?this.gridColumns.push(o):this.nonGridColumns.push(o)}}catch(s){t={error:s}}finally{try{r&&!r.done&&(e=i["return"])&&e.call(i)}finally{if(t)throw t.error}}}},T.prototype.getGridColumns=function(){return this._initColumnsArrays(),this.gridColumns},T.prototype.getNonGridColumns=function(){return this._initColumnsArrays(),this.nonGridColumns},T);function T(t,e,n,i){this.currentRow=t,this.allowUpdate=e,this.filterHelper=n,this.showArea=i,this.settingsByKey={},this.designMode=!1,this._colListChangeListeners=[],this.items=[],this.numOfColumnsInGrid=5}var M=(Object.defineProperty(P.prototype,"column",{set:function(t){this.map={column:t},decorateDataSettings(this.map.column,this.map)},enumerable:!0,configurable:!0}),P.prototype.showDescription=function(){return this.map.column&&this.map.getValue||!this._getEditable()},P.prototype.getDropDown=function(){return this.map.valueList},P.prototype.showClick=function(){return!!this.map.click&&!!this._getEditable()&&(this.map.allowClick===undefined||this.map.allowClick(this.record))},P.prototype.click=function(){this.showClick()&&this.settings._click(this.map,this.record)},P.prototype.getClickIcon=function(){return this.map.clickIcon?this.map.clickIcon:"keyboard_arrow_down"},P.prototype.dataControlStyle=function(){return this.settings.__dataControlStyle(this.map)},P.prototype._getColumn=function(){return this.map.column?this.settings.__getColumn(this.map,this.record):new b.StringColumn},P.prototype._getEditable=function(){return!!this.notReadonly||this.settings._getEditable(this.map,this.record)},P.prototype.ngOnChanges=function(){},P.prototype.isSelect=function(){return!(!this.map.valueList||!this._getEditable())},P.prototype.showTextBox=function(){return!this.isSelect()&&!this.showCheckbox()},P.prototype.showCheckbox=function(){return"checkbox"==this.settings._getColDataType(this.map)},P.prototype.getError=function(){return this.settings._getError(this.map,this.record)},P.prototype.getStyle=function(){return this.showDescription()?this.map.hideDataOnInput||!this._getEditable()?{display:"none"}:{width:"50px"}:{}},P.prototype.getFloatLabel=function(){return this.showDescription()&&this.settings._getColDisplayValue(this.map,this.record)?"always":""},P.decorators=[{type:v.Component,args:[{selector:"data-control",template:'<div class="data-control2">\r\n <mat-form-field appearance="outline" [floatLabel]="getFloatLabel()" *ngIf="!showCheckbox()"\r\n class="full-width-form-field dense-form-field">\r\n <mat-label>{{map.caption}}</mat-label>\r\n <div style="display:flex;" *ngIf="showTextBox()">\r\n <input #theId matInput [(ngModel)]="_getColumn().inputValue" type="{{settings._getColDataType(map)}}"\r\n (ngModelChange)="settings._colValueChanged(map,record)" [errorStateMatcher]="ngErrorStateMatches"\r\n [ngStyle]="getStyle()" />\r\n <div *ngIf="showDescription()" style="white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n padding-left:10px;width:100%;" (click)="click()">\r\n {{settings._getColDisplayValue(map,record)}}&nbsp;</div>\r\n </div>\r\n <div *ngIf="isSelect()">\r\n <select matNativeControl [(ngModel)]="_getColumn().inputValue"\r\n (ngModelChange)="settings._colValueChanged(map,record)">\r\n <option *ngFor="let v of getDropDown()" value="{{v.id}}">{{v.caption}}</option>\r\n\r\n </select>\r\n </div>\r\n\r\n <button mat-icon-button matSuffix *ngIf="showClick()" (click)="click()">\r\n <mat-icon>{{getClickIcon()}} </mat-icon>\r\n </button>\r\n\r\n <mat-error *ngIf="getError()" [id]="theId">{{getError()}}</mat-error>\r\n </mat-form-field>\r\n <div *ngIf="showCheckbox()">\r\n <mat-checkbox #theId1 [(ngModel)]="_getColumn().inputValue"\r\n (ngModelChange)="settings._colValueChanged(map,record)" class="fix-label">{{map.caption}}</mat-checkbox>\r\n <mat-error *ngIf="getError()" [id]="theId1">{{getError()}}</mat-error>\r\n </div>\r\n\r\n</div>',styles:[""]}]}],P.propDecorators={map:[{type:v.Input}],column:[{type:v.Input}],record:[{type:v.Input}],notReadonly:[{type:v.Input}],settings:[{type:v.Input}]},P);function P(){function t(t){var e=n.call(this)||this;return e.parent=t,e}var n;this.settings=new B(undefined,function(){return!0},undefined,undefined),this.ngErrorStateMatches=(R(t,n=e.ErrorStateMatcher),t.prototype.isErrorState=function(){return!!this.parent.getError()},new t(this))}var G=(Object.defineProperty(E.prototype,"column",{set:function(t){this.map={column:t},decorateDataSettings(this.map.column,this.map)},enumerable:!0,configurable:!0}),E.prototype.showDescription=function(){return this.map.column&&this.map.getValue||!this._getEditable()},E.prototype.showClick=function(){return!!this.map.click&&!!this._getEditable()&&(this.map.allowClick===undefined||this.map.allowClick(this.record))},E.prototype.getClickIcon=function(){return this.map.clickIcon?this.map.clickIcon:"keyboard_arrow_down"},E.prototype.dataControlStyle=function(){return this.settings.__dataControlStyle(this.map)},E.prototype._getColumn=function(){return this.map.column?this.settings.__getColumn(this.map,this.record):new b.StringColumn},E.prototype.click=function(){this.showClick()&&this.settings._click(this.map,this.record)},E.prototype._getEditable=function(){return!!this.notReadonly||this.settings._getEditable(this.map,this.record)},E.prototype.ngOnChanges=function(){},E.prototype.getDropDown=function(){return this.map.valueList},E.prototype.isSelect=function(){return!(!this.map.valueList||!this._getEditable())},E.prototype.showTextBox=function(){return!this.isSelect()&&!this.showCheckbox()&&this._getEditable()},E.prototype.showReadonlyText=function(){return!this._getEditable()},E.prototype.showCheckbox=function(){return"checkbox"==this.settings._getColDataType(this.map)},E.prototype.getError=function(){return this.settings._getError(this.map,this.record)},E.prototype.getStyle=function(){return this.showDescription()?this.map.hideDataOnInput||!this._getEditable()?{display:"none"}:{width:"50px"}:{width:"100%"}},E.prototype.getFloatLabel=function(){return this.showDescription()&&this.settings._getColDisplayValue(this.map,this.record)?"always":""},E.decorators=[{type:v.Component,args:[{selector:"data-control3",template:'<div class="data-control3" #myDiv>\r\n <div style="display:flex;width:100%;" *ngIf="showTextBox()">\r\n <input #theId matInput [(ngModel)]="_getColumn().inputValue" type="{{settings._getColDataType(map)}}"\r\n (ngModelChange)="settings._colValueChanged(map,record)"\r\n [errorStateMatcher]="ngErrorStateMatches" [ngStyle]="getStyle()" />\r\n <div *ngIf="showDescription()" style="white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n padding-left:10px; width:100%;" (click)="click()">\r\n {{settings._getColDisplayValue(map,record)}}&nbsp;</div>\r\n </div>\r\n <div *ngIf="showReadonlyText()" style="\r\n overflow: hidden;\r\n padding-left:10px; width:100%;" >\r\n {{settings._getColDisplayValue(map,record)}}&nbsp;</div>\r\n <div *ngIf="isSelect()" class="my-select" [class.rtl-select]="rightToLeft">\r\n <select matNativeControl [(ngModel)]="_getColumn().inputValue"\r\n (ngModelChange)="settings._colValueChanged(map,record)">\r\n <option *ngFor="let v of getDropDown()" value="{{v.id}}">{{v.caption}}</option>\r\n\r\n </select>\r\n </div>\r\n\r\n <button mat-icon-button *ngIf="showClick()" (click)="click()" class="row-button">\r\n <mat-icon style="height:19px;">{{getClickIcon()}} </mat-icon>\r\n </button>\r\n\r\n\r\n <div *ngIf="showCheckbox()">\r\n <mat-checkbox #theId1 [(ngModel)]="_getColumn().inputValue"\r\n (ngModelChange)="settings._colValueChanged(map,record)" class="fix-label"></mat-checkbox>\r\n </div>\r\n\r\n</div>\r\n<mat-error *ngIf="getError()" [id]="theId" style="font-size: 75%;">{{getError()}}</mat-error>',styles:['.my-select::after{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;position:absolute;top:50%;right:0;pointer-events:none;color:rgba(0,0,0,.54);margin-top:-5px}.rtl-select::after{right:auto;left:0}.my-select{position:relative;width:100%}.data-control3{display:-webkit-box;display:flex;width:100%}.row-button{height:auto;line-height:normal}input{border:none;outline:0;padding:0;margin:0;font-size:inherit;font-family:inherit}']}]}],E.propDecorators={map:[{type:v.Input}],column:[{type:v.Input}],rightToLeft:[{type:v.Input}],record:[{type:v.Input}],notReadonly:[{type:v.Input}],settings:[{type:v.Input}]},E);function E(){function t(t){var e=n.call(this)||this;return e.parent=t,e}var n;this.rightToLeft=!1,this.settings=new B(undefined,function(){return!0},undefined,undefined),this.ngErrorStateMatches=(R(t,n=e.ErrorStateMatcher),t.prototype.isErrorState=function(){return!!this.parent.getError()},new t(this))}var V=(W.prototype.selectFirst=function(){var t,e;try{for(var n=k(this.values),i=n.next();!i.done;i=n.next()){var r=i.value;if(this.matchesFilter(r))return void this.select(r)}}catch(o){t={error:o}}finally{try{i&&!i.done&&(e=n["return"])&&e.call(n)}finally{if(t)throw t.error}}},W.prototype.matchesFilter=function(t){return t.caption.toLocaleLowerCase().includes(this.searchString.toLocaleLowerCase())},W.prototype.args=function(t){this.values=t.values,this.onSelect=t.onSelect,this.title=t.title},W.prototype.select=function(t){this.onSelect(t),this.dialog.close()},W.decorators=[{type:v.Component,args:[{template:'<h1 mat-dialog-title>{{title}}</h1>\r\n\r\n<div mat-dialog-content>\r\n <form (submit)="selectFirst()">\r\n <mat-form-field>\r\n <input matInput [(ngModel)]="searchString" [ngModelOptions]="{standalone: true}"> \r\n </mat-form-field>\r\n </form>\r\n <mat-nav-list role="list" *ngIf="values">\r\n <ng-container *ngFor="let o of values">\r\n <mat-list-item role="listitem" style="height:36px"\r\n *ngIf="matchesFilter(o)" (click)="select(o)">\r\n {{o.caption}}\r\n </mat-list-item>\r\n <mat-divider *ngIf="matchesFilter(o)"></mat-divider>\r\n </ng-container>\r\n </mat-nav-list>\r\n</div>\r\n<div mat-dialog-actions>\r\n\r\n <button mat-icon-button mat-dialog-close>\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n</div>'}]}],W.ctorParameters=function(){return[{type:u.MatDialogRef}]},W);function W(t){this.dialog=t,this.searchString=""}var N=(H.prototype.setFilter=function(){this.info.settings.columns.filterRows(this.info.filterColumnToAdd),this.dialog.close()},H.prototype.clear=function(){this.info.settings.columns.clearFilter(this.info.filterColumnToAdd),this.dialog.close()},H.decorators=[{type:v.Component,args:[{template:'<h1 mat-dialog-title *ngIf="!info.rightToLeft">Filter {{this.info.filterColumnToAdd?.caption}}</h1>\r\n<h1 mat-dialog-title *ngIf="info.rightToLeft">סינון {{this.info.filterColumnToAdd?.caption}}</h1>\r\n<div mat-dialog-content>\r\n\r\n <data-control *ngIf="this.info.filterColumnToAdd" [settings]="info.settings.columns" [map]="info.filterColumnToAdd"\r\n [record]="info.settings.columns.filterHelper.filterRow" [notReadonly]="true"></data-control>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-icon-button (click)="setFilter()">\r\n <mat-icon>check</mat-icon>\r\n </button>\r\n <button mat-icon-button (click)="clear()">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n</div>'}]}],H.ctorParameters=function(){return[{type:u.MatDialogRef}]},H);function H(t){this.dialog=t}var j=(q.prototype.getCurrentFilterValue=function(e){this.settings.initOrigList();var t=this.settings.origList.find(function(t){return t.column==e});return this.settings.columns._getColDisplayValue(t,this.settings.filterHelper.filterRow)},q.prototype.cancelAddFilter=function(){},q.prototype.showEditFilter=function(e){this.filterColumnToAdd=this.settings.origList.find(function(t){return t.column==e}),this.editFilterVisible=!0,this.showAddFilter=!1},q.prototype.userFilterButton=function(){this.showFilterButton=!this.showFilterButton,this.settings.initOrigList(),0==this.settings.filterHelper.filterColumns.length&&this.showAddAnotherFilterDialog()},q.prototype.showAddAnotherFilterDialog=function(){return I(this,void 0,void 0,function(){var e=this;return _(this,function(t){switch(t.label){case 0:return this.settings.initOrigList(),this.filterColumnToAdd=undefined,[4,wt(V,function(t){return t.args({title:e.rightToLeft?"בחר עמודה לסינון":"Select Column to Filter",values:e.settings.origList,onSelect:function(t){return e.filterColumnToAdd=t}})})];case 1:return t.sent(),this.filterColumnToAdd?[4,wt(N,function(t){return t.info=e})]:[3,3];case 2:t.sent(),t.label=3;case 3:return this.showAddFilter=!0,this.filterColumnToAdd=undefined,[2]}})})},q.prototype.editFilter=function(n){return I(this,void 0,void 0,function(){var e=this;return _(this,function(t){switch(t.label){case 0:return this.filterColumnToAdd=this.settings.origList.find(function(t){return t.column==n}),[4,wt(N,function(t){return t.info=e})];case 1:return t.sent(),[2]}})})},q.prototype.confirmEditFilter=function(){this.settings.columns.filterRows(this.filterColumnToAdd),this.editFilterVisible=!1},q.prototype.clearEditFilter=function(){this.settings.columns.clearFilter(this.filterColumnToAdd),this.editFilterVisible=!1},q.prototype.addFilter=function(){this.settings.columns.filterRows(this.filterColumnToAdd),this.showAddFilter=!1},q.prototype.cancelAddNewFilter=function(){this.showAddFilter=!1},q.decorators=[{type:v.Component,args:[{selector:"Data-Filter",template:'<span (click)="showAddAnotherFilterDialog()" #theDiv class="link"\r\n *ngIf="settings.settings.showFilter"><span>{{rightToLeft?\'סינון\': \'Filter\'}}</span></span>\r\n<span *ngIf="settings.columns.filterHelper.filterColumns.length>0">: </span>\r\n<span *ngFor="let map of settings.columns.filterHelper.filterColumns ; let i = index">\r\n <span *ngIf="i>0"> <span *ngIf="!rightToLeft">and</span><span *ngIf="rightToLeft">וגם</span> </span>\r\n <span (click)="editFilter(map)" class="link"> {{map.defs.caption}} = "{{this.getCurrentFilterValue(map)}}"</span>\r\n</span>',styles:[".link {\n cursor:pointer;\n color:blue;\n text-decoration:underline;\n }"]}]}],q.ctorParameters=function(){return[{type:b.Context},{type:C.Directionality}]},q.propDecorators={settings:[{type:v.Input}]},q);function q(t,e){this.context=t,this.showFilterButton=!1,this.showAddFilter=!1,this.editFilterVisible=!1,this.rightToLeft=!1,this.rightToLeft="rtl"===e.value}var U=(z.prototype.addCol=function(n){return I(this,void 0,void 0,function(){var e=this;return _(this,function(t){switch(t.label){case 0:return[4,wt(V,function(t){return t.args({values:e.settings.origList,onSelect:function(t){e.settings.columns.addCol(n,t),e.settings.columns.numOfColumnsInGrid++}})})];case 1:return t.sent(),[2]}})})},z.prototype.getColFlex=function(t){return"0 0 "+this.getColWidth(t)},z.prototype.getColWidth=function(t){var e=this.settings.columns.__dataControlStyle(t);return e=e||"200px"},z.prototype.test=function(){},z.prototype.getTotalRows=function(){return this.settings.totalRows?Math.ceil(this.settings.totalRows/this.settings.rowsPerPage):this.rightToLeft?"רבים":"many"},z.prototype.dragStart=function(t){this.tempDragColumn=t},z.prototype.dragOver=function(t,e){e.preventDefault()},z.prototype.onDrop=function(t){var e=this.settings.columns.items.indexOf(this.tempDragColumn);this.settings.columns.items.splice(e,1);var n=this.settings.columns.items.indexOf(t);n==e&&n++,this.settings.columns.items.splice(n,0,this.tempDragColumn),this.settings.columns.colListChanged()},z.prototype._getHeight=function(){if(this.height)return(+this.height).toString()==this.height?this.height+"px":this.height},z.prototype.isFiltered=function(t){return this.settings.columns.filterHelper.isFiltered(t)},z.prototype.showFilterColumnDialog=function(t){this.settings.initOrigList(),this.dataFilterInfo.editFilter(t.column)},z.prototype.getButtonCssClass=function(t,e){return t.cssClass?r.isFunction(t.cssClass)?t.cssClass(e):t.cssClass.toString():""},z.prototype.getButtonText=function(t,e){return t.textInMenu?r.isFunction(t.textInMenu)?e?t.textInMenu(e):"":t.textInMenu:t.name},z.prototype.clickOnselectCheckboxFor=function(t,e){this.settings.clickOnselectCheckboxFor(t,e.shiftKey)},z.prototype.hasVisibleButton=function(e){return this.rowButtons.find(function(t){return t.visible(e)})},z.prototype.hasVisibleGridButtons=function(){return this.gridButtons.find(function(t){return t.visible()})},z.prototype.addButton=function(t){if(t.click||(t.click=function(t){}),t.visible||(t.visible=function(t){return!0}),t.cssClass){if(!r.isFunction(t.cssClass)){var e=t.cssClass;t.cssClass=function(t){return e}}}else t.cssClass=function(t){return"btn"};return this.rowButtons.push(t),t},z.prototype.rowClicked=function(t){this.settings.setCurrentRow(t)},z.prototype.nextPage=function(){this.page++},z.prototype.previousPage=function(){this.page<=1||this.page--},z.prototype.showSaveAllButton=function(){return this.settings.items.find(function(t){return t.wasChanged()})},z.prototype.saveAllText=function(){return this.rightToLeft?"שמור "+this.settings.items.filter(function(t){return t.wasChanged()}).length+" שורות":"save "+this.settings.items.filter(function(t){return t.wasChanged()}).length+" rows"},z.prototype.saveAllClick=function(){return I(this,void 0,void 0,function(){return _(this,function(t){switch(t.label){case 0:return[4,Promise.all(this.settings.items.filter(function(t){return t.wasChanged()}).map(function(t){return t.save()}))];case 1:return t.sent(),[2]}})})},z.prototype.ngOnChanges=function(){var t,e,n,i=this;if(this.settings){if(this.rowButtons=[],this.gridButtons=[],this.gridButtons.push({visible:function(){return i.showSaveAllButton()},textInMenu:function(){return i.saveAllText()},click:function(){return I(i,void 0,void 0,function(){return _(this,function(t){switch(t.label){case 0:return[4,this.saveAllClick()];case 1:return t.sent(),[2]}})})}}),this.settings.settings.gridButtons&&(t=this.gridButtons).push.apply(t,O(this.settings.settings.gridButtons.map(function(t){return t.visible||(t.visible=function(){return!0}),t}))),this.settings.allowUpdate&&(this.addButton({name:"",icon:"check",cssClass:"glyphicon glyphicon-ok btn-success",visible:function(t){return t.wasChanged()},showInLine:!0,textInMenu:function(){return i.rightToLeft?"שמור":"save"},click:function(t){i.settings._doSavingRow(t)}}),this.addButton({name:"",icon:"cancel",cssClass:"btn btn-danger glyphicon glyphicon-ban-circle",visible:function(t){return t.wasChanged()},showInLine:!0,textInMenu:function(){return i.rightToLeft?"בטל שינוים":"cancel"},click:function(t){t.undoChanges()}})),this.settings.allowDelete&&this.addButton({name:"",visible:function(t){return t&&!t.isNew()},icon:"delete",showInLine:!0,textInMenu:function(){return i.rightToLeft?"מחק":"delete"},click:function(e){return I(i,void 0,void 0,function(){return _(this,function(t){switch(t.label){case 0:return this.settings.settings.confirmDelete?[4,this.settings.settings.confirmDelete(e)]:[3,2];case 1:if(!t.sent())return[2];t.label=2;case 2:return e["delete"](),[2]}})})},cssClass:"btn-danger glyphicon glyphicon-trash"}),this.settings._buttons)try{for(var r=k(this.settings._buttons),o=r.next();!o.done;o=r.next()){var s=o.value;this.addButton(s)}}catch(a){e={error:a}}finally{try{o&&!o.done&&(n=r["return"])&&n.call(r)}finally{if(e)throw e.error}}!this.records&&this.settings&&this.settings.getRecords().then(function(t){i.records=t})}},z.prototype._getRowClass=function(t){var e="dataGridRow ";return this.settings.rowClass&&(e+=this.settings.rowClass(t)),t==this.settings.currentRow&&(e+=" active"),e},z.prototype._getRowColumnClass=function(t,e){return this.settings.columns._getColumnClass(t,e)+" dataGridDataCell"},z.decorators=[{type:v.Component,args:[{selector:"data-grid",template:'<div style="height: 100%;display: flex;flex-direction: column;">\r\n <Data-Filter [settings]="settings" #dataFilter style="flex-shrink: 0;">\r\n </Data-Filter>\r\n <div class="dataGrid" #dataGridDiv *ngIf="settings&&settings.columns" [style.height]="_getHeight()">\r\n <div class="inner-wrapper">\r\n <div class="dataGridHeaderArea">\r\n <div class="dataGridRow">\r\n <div class="data-grid-row-more-buttons dataGridDataCell">\r\n\r\n <button mat-icon-button [matMenuTriggerFor]="updatedRowOptions" *ngIf="hasVisibleGridButtons()">\r\n <mat-icon>expand_more</mat-icon>\r\n </button>\r\n\r\n </div>\r\n <div class="data-grid-row-selection dataGridDataCell" *ngIf="settings.settings.allowSelection">\r\n\r\n <mat-checkbox [indeterminate]="settings.selectAllIntermitent()" [checked]="settings.selectAllChecked()"\r\n (change)="settings.selectAllChanged($event)"></mat-checkbox>\r\n\r\n </div>\r\n <mat-menu #updatedRowOptions="matMenu">\r\n\r\n <ng-container *ngFor="let b of gridButtons">\r\n <button mat-menu-item *ngIf="b.visible()" (click)="b.click()">\r\n <mat-icon *ngIf="b.icon">{{b.icon}}</mat-icon>{{b.textInMenu?b.textInMenu(): b.name}}\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n <div class="dataGridHeaderCell headerWithFilter" *ngFor="let map of settings.columns.getGridColumns()"\r\n [style.flex]="getColFlex(map)" [style.width]="getColWidth(map)" draggable="true"\r\n (dragstart)="dragStart(map)" (dragover)="dragOver(map,$event)" (drop)="onDrop(map)">\r\n\r\n <span (click)="settings.sort(map.column)">{{map.caption}}</span>\r\n\r\n\r\n <span class="filterButton" [class.filteredFilterButton]="isFiltered(map.column)"\r\n (click)="showFilterColumnDialog(map)">\r\n <mat-icon>filter_alt</mat-icon>\r\n </span>\r\n\r\n <mat-icon *ngIf="settings.sortedAscending(map.column)">arrow_downward</mat-icon>\r\n <mat-icon class="glyphicon glyphicon-chevron-down pull-right" *ngIf="settings.sortedDescending(map.column)">\r\n arrow_upward</mat-icon>\r\n </div>\r\n <div class="dataGridButtonHeaderCell" *ngIf="rowButtons&& rowButtons.length>0&&displayButtons"\r\n [class.col-xs-1]="rowButtons&&rowButtons.length<3">\r\n <button mat-icon-button *ngIf="showSaveAllButton()" (click)="saveAllClick()" style="line-height:36px;max-height:28px">\r\n <mat-icon [matTooltip]="saveAllText()" class="row-button" style="font-size:24px">done_all</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="dataGridBodyArea">\r\n <div class="dataGridRow" *ngFor="let record of records" [className]="_getRowClass(record)"\r\n (click)="rowClicked(record)">\r\n <div class="data-grid-row-more-buttons dataGridDataCell">\r\n\r\n <button mat-icon-button [matMenuTriggerFor]="updatedRowOptions" *ngIf="hasVisibleButton(record) ">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n\r\n </div>\r\n <div class="data-grid-row-selection dataGridDataCell" *ngIf="settings.settings.allowSelection">\r\n\r\n <mat-checkbox [checked]="settings.isSelected(record)" (change)="settings.selectedChanged(record)" (click)="clickOnselectCheckboxFor(record,$event)">\r\n </mat-checkbox>\r\n\r\n </div>\r\n <mat-menu #updatedRowOptions="matMenu">\r\n <ng-container *ngFor="let b of rowButtons">\r\n <button mat-menu-item *ngIf="b.visible(record)" (click)="b.click(record)">\r\n <mat-icon *ngIf="b.icon">{{b.icon}}</mat-icon>{{getButtonText(b,record)}}\r\n </button>\r\n </ng-container>\r\n\r\n </mat-menu>\r\n <div class="dataGridDataCell" *ngFor="let map of settings.columns.getGridColumns()"\r\n [className]="_getRowColumnClass(map,record)" [style.flex]="getColFlex(map)"\r\n [style.width]="getColWidth(map)">\r\n <data-control3 [settings]="settings.columns" [map]="map" [record]="record" [rightToLeft]="rightToLeft">\r\n </data-control3>\r\n </div>\r\n <div class="dataGridButtonCell" *ngIf="rowButtons.length>0&&displayButtons" style="white-space:nowrap">\r\n <ng-container *ngFor="let b of rowButtons">\r\n <button mat-icon-button *ngIf="b.visible(record)&&b.icon&&b.showInLine" (click)="b.click(record)"\r\n matTooltip="{{getButtonText(b,record)}}" class="row-button">\r\n <mat-icon *ngIf="b.icon">{{b.icon}} </mat-icon> {{b.name}}\r\n </button>\r\n <button mat-raised-button *ngIf="b.visible(record)&&!b.icon&&b.showInLine" (click)="b.click(record)"\r\n class="row-button">\r\n {{b.name}}\r\n </button>\r\n </ng-container>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class="dataGridFooterArea" *ngIf="records&&settings.settings.showPagination">\r\n <div class="dataGridFooterButtonGroup">\r\n <button mat-icon-button (click)="settings.userChooseColumns()">\r\n <mat-icon>settings</mat-icon>\r\n </button>\r\n\r\n {{rightToLeft?\'שורות בדף\': \'lines per page\'}}\r\n <select class="form-control" style="width:80px;display:inline-block" [(ngModel)]="settings.rowsPerPage"\r\n (change)="settings.getRecords()">\r\n <option *ngFor="let r of settings.rowsPerPageOptions" value="{{r}}">{{r}}</option>\r\n </select>\r\n </div>\r\n <div class="dataGridFooterButtonGroup">\r\n <button mat-icon-button (click)="settings.firstPage()">\r\n <mat-icon>{{rightToLeft?\'last_page\':\'first_page\'}} </mat-icon>\r\n </button>\r\n <button mat-icon-button [disabled]="settings.page==1" (click)="settings.previousPage()">\r\n <mat-icon>{{rightToLeft?\'chevron_right\':\'chevron_left\'}}</mat-icon>\r\n </button>\r\n {{rightToLeft?\'עמוד\':\'Page\'}} {{settings.page}} {{rightToLeft?\' מתוך \':\' of \'}} {{getTotalRows()}}\r\n <button mat-icon-button [disabled]="!(records.items&& records.items.length>0)" (click)="settings.nextPage()">\r\n <mat-icon>{{!rightToLeft?\'chevron_right\':\'chevron_left\'}}</mat-icon>\r\n </button>\r\n <button mat-icon-button *ngIf="settings.allowUpdate &&settings.allowInsert" (click)="settings.addNewRow()">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </div>\r\n <div *ngIf="settings.showSelectColumn" class="selectColumnsArea">\r\n Select Columns\r\n <ol>\r\n <ng-container *ngFor="let c of settings.currList; let i=index">\r\n <li *ngIf="i<settings.columns.numOfColumnsInGrid">\r\n <select [(ngModel)]="settings.currList[i]" class="form-control selectColumnCombo"\r\n (change)="settings.columns.colListChanged()">\r\n <option *ngFor="let o of settings.origList" [ngValue]="o">{{o.caption}}</option>\r\n </select>\r\n <input [(ngModel)]="c.width" style="width:50px;display:inline;">\r\n <button mat-icon-button *ngIf="settings.currList.length>1" (click)="settings.deleteCol(c)">\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n <button mat-icon-button (click)="addCol(c)">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n <button mat-icon-button *ngIf="i<settings.currList.length-1" (click)="settings.columns.moveCol(c,1)">\r\n <mat-icon>keyboard_arrow_down</mat-icon>\r\n </button>\r\n <button mat-icon-button *ngIf="i>0" (click)="settings.columns.moveCol(c,-1)">\r\n <mat-icon>keyboard_arrow_up</mat-icon>\r\n </button>\r\n </li>\r\n </ng-container>\r\n </ol>\r\n <button (click)="settings.resetColumns()" class="btn glyphicon glyphicon-repeat"></button>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n <data-area *ngIf="settings.showDataArea" [settings]="settings" [columns]="2"></data-area>\r\n</div>',styles:[".row-button{height:auto;line-height:normal}.inner-wrapper{display:inline-block}.dataGrid{overflow:auto;border:1px solid #e0e0e0;height:100%}.dataGridRow{display:-webkit-box;display:flex}.dataGridHeaderArea{position:-webkit-sticky;position:sticky;top:0;clear:both;background-color:#f5f5f5;z-index:3}.dataGridHeaderArea mat-icon{font-size:16px;height:18px;width:18px;line-height:18px}.dataGridFooterButtonGroup{display:inline-block}.dataGridFooterArea{width:100%;bottom:0;left:0;background-color:#f5f5f5;border:1px solid #e0e0e0;box-sizing:border-box}.dataGridDataCell,.dataGridHeaderCell{padding:4px}.dataGridDataCell{border-top:1px solid #e0e0e0}.data-grid-row-more-buttons{border-left:1px solid #e0e0e0;border-right:1px solid #e0e0e0;padding-left:0;padding-right:0;width:18px}.data-grid-row-more-buttons mat-icon{font-size:16px;height:17px;width:18px;line-height:17px}.data-grid-row-more-buttons button{width:auto;height:auto;line-height:18px}.data-grid-row-selection{width:18px}.filterDialog{background-color:#fff;position:absolute;padding:10px;z-index:800;border-radius:5px;width:200px;border:2px solid gray}.filterDialog .form-group{margin-right:0;margin-left:0}.designModeButton span{visibility:hidden}.designModeButton:hover span{visibility:visible}.selectColumnCombo{display:inline-block;width:auto}.selectColumnsArea{display:block}.headerWithFilter .filterButton{visibility:hidden}.headerWithFilter .filteredFilterButton,.headerWithFilter:hover .filterButton{visibility:visible}table input{min-width:75px}table select{min-width:100px}"]}]}],z.ctorParameters=function(){return[{type:b.Context},{type:C.Directionality}]},z.propDecorators={width:[{type:v.Input}],height:[{type:v.Input}],displayButtons:[{type:v.Input}],displayVCR:[{type:v.Input}],records:[{type:v.Input}],settings:[{type:v.Input}],dataFilterInfo:[{type:v.ViewChild,args:[j]}]},z);function z(t,e){this.context=t,this.rightToLeft=!1,this.displayButtons=!0,this.displayVCR=!0,this.rowButtons=[],this.gridButtons=[],this.keys=[],this.page=1,this.rightToLeft="rtl"===e.value}var $=(J.prototype.navigateToComponent=function(e){var n=this,i=!1;this.router.config.forEach(function(t){i||t.component==e&&(i=!0,n.router.navigate(["/"+t.path]))}),i||console.warn("couldn't find path for ",e,this.router.config)},J.prototype.canNavigateToRoute=function(t){var e,n;if(!t.canActivate)return!0;try{for(var i=k(t.canActivate),r=i.next();!r.done;r=i.next()){var o=r.value,s=this.injector.get(o);if(s&&s.canActivate){var a=new tt;if(a.routeConfig=t,!s.canActivate(a,undefined))return!1}}}catch(l){e={error:l}}finally{try{r&&!r.done&&(n=i["return"])&&n.call(i)}finally{if(e)throw e.error}}return!0},J.decorators=[{type:v.Injectable}],J.ctorParameters=function(){return[{type:o.Router},{type:v.Injector}]},J);function J(t,e){this.router=t,this.injector=e}var K=(Q.prototype.isAllowed=function(){return!0},Q.prototype.canActivate=function(t){if(this.context.isSignedIn()&&this.context.isAllowed(this.isAllowed()))return!0;if(!(t instanceof tt)){var e=Q.componentToNavigateIfNotAllowed;e!=undefined?this.helper.navigateToComponent(e):this.router.navigate(["/"])}return!1},Q.decorators=[{type:v.Injectable}],Q.ctorParameters=function(){return[{type:b.Context},{type:o.Router},{type:$}]},Q);function Q(t,e,n){this.context=t,this.router=e,this.helper=n}var X=(Y.prototype.canActivate=function(t){return!this.context.isSignedIn()},Y.decorators=[{type:v.Injectable}],Y.ctorParameters=function(){return[{type:b.Context},{type:o.Router}]},Y);function Y(t,e){this.context=t,this.router=e}var Z,tt=(R(et,Z=o.ActivatedRouteSnapshot),et);function et(){return Z.call(this)||this}var nt=(it.prototype.ngOnInit=function(){},it.decorators=[{type:v.Component,args:[{selector:"app-wait",template:'<mat-progress-spinner [mode]="mode" [value]="value" >\r\n</mat-progress-spinner>',styles:[""]}]}],it.ctorParameters=function(){return[]},it);function it(){this.mode="indeterminate",this.value=0}var rt=(ot.prototype.donotWait=function(e){return I(this,void 0,void 0,function(){return _(this,function(t){switch(t.label){case 0:this.disableWait=!0,t.label=1;case 1:return t.trys.push([1,,3,4]),[4,e()];case 2:return[2,t.sent()];case 3:return this.disableWait=!1,[7];case 4:return[2]}})})},ot.prototype.donotWaitNonAsync=function(t){this.disableWait=!0;try{return t()}finally{this.disableWait=!1}},ot.prototype.log=function(t,e){},ot.prototype.doWhileShowingBusy=function(n){return I(this,void 0,void 0,function(){var e;return _(this,function(t){switch(t.label){case 0:e=this.showBusy(),t.label=1;case 1:return t.trys.push([1,,3,4]),[4,n()];case 2:return[2,t.sent()];case 3:return e(),[7];case 4:return[2]}})})},ot.prototype.startBusyWithProgress=function(){var t=this;if(this.disableWait)return{close:function(){},progress:function(){}};var e=!1,n=this.dialog.open(nt,{disableClose:!0});return{close:function(){return I(t,void 0,void 0,function(){return _(this,function(t){switch(t.label){case 0:return e?(n.componentInstance.value=100,[4,new Promise(function(t){return setTimeout(function(){return t(0)},250)})]):[3,2];case 1:t.sent(),t.label=2;case 2:return n.close(),[2]}})})},progress:function(t){0<t&&(e=!0,n.componentInstance.mode="determinate",n.componentInstance.value=100*t)}}},ot.prototype.showBusy=function(){var t=this,e=this.id++;return this.disableWait?function(){}:(this.log(e,"start busy "),0==this.numOfWaits&&setTimeout(function(){0<t.numOfWaits&&!t.waitRef&&(t.log(e,"actual start busy "),t.waitRef=t.dialog.open(nt,{disableClose:!0}))},300),this.numOfWaits++,function(){t.numOfWaits--,t.log(e,"close busy "),0==t.numOfWaits&&(t.log(e,"close top busy "),t.waitRef&&(t.log(e,"actual close top busy "),t.waitRef.close(),t.waitRef=undefined))})},ot.decorators=[{type:v.Injectable}],ot.ctorParameters=function(){return[{type:u.MatDialog}]},ot);function ot(t){this.dialog=t,this.id=0,this.numOfWaits=0,this.disableWait=!1,ot.singleInstance=this}var st=(at.prototype.intercept=function(t,e){var n=this.busy.showBusy();return e.handle(t).pipe(l.finalize(function(){return n()}))},at.decorators=[{type:v.Injectable}],at.ctorParameters=function(){return[{type:rt}]},at);function at(t){this.busy=t}var lt=function bt(t,e,n){var i,r;if(this.settings=t,this.columns=e,this.lines=[],e==undefined&&((e=new B(function(){return undefined},function(){return!0},undefined,function(){return!0})).numOfColumnsInGrid=0,this.columns=e),t&&t.columnSettings)try{for(var o=k(t.columnSettings(n)),s=o.next();!s.done;s=o.next()){var a=s.value;if(Array.isArray(a)){var l=e.items.length;e.add.apply(e,O(a));for(var u=[],c=l;c<e.items.length;c++)u.push(e.items[c]);this.lines.push(u)}else e.add(a),this.lines.push([e.items[e.items.length-1]])}}catch(d){i={error:d}}finally{try{s&&!s.done&&(r=o["return"])&&r.call(o)}finally{if(i)throw i.error}}},ut=(ct.prototype.ngOnChanges=function(){var t=this;if(this.settings&&this.settings.columns){this.object&&(this.settings=new lt({columnSettings:function(){return b.getColumnsFromObject(t.object)}})),this.settings.columns.onColListChange(function(){return t.lastCols=undefined});var e=this.settings;e.settings&&e.settings.numberOfColumnAreas&&(this.columns=e.settings.numberOfColumnAreas)}},ct.prototype.theColumns=function(){var t=this.settings.columns.getNonGridColumns();if(t==this.lastAllCols)return this.lastCols;this.lastAllCols=t;var e,n=[];this.lastCols=n;for(var i=0;i<this.columns;i++)n.push([]);e=this.settings.lines?this.settings.lines:t.map(function(t){return[t]});var r=Math.round(e.length/this.columns);for(i=0;i<e.length;i++)n[Math.floor(i/r)].push(e[i]);return this.lastCols},ct.decorators=[{type:v.Component,args:[{selector:"data-area",template:'<div class="column-container">\r\n <div *ngFor="let col of theColumns()">\r\n <ng-container *ngFor="let line of col">\r\n <div class="one-line">\r\n <ng-container *ngFor="let map of line">\r\n <data-control [settings]="settings.columns" [map]="map" [record]="settings.columns.currentRow()" *ngIf="settings.columns.__visible(map,settings.columns.currentRow())">\r\n </data-control>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>',encapsulation:v.ViewEncapsulation.None,styles:[".one-line{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between}.one-line>*{margin-left:.2em;margin-right:.2em;flex-basis:1px;-webkit-box-flex:1;flex-grow:1}@media only screen and (min-width:768px){.column-container{display:-webkit-box;display:flex;width:100%}.column-container>div{width:100%}}"]}]}],ct.propDecorators={settings:[{type:v.Input}],object:[{type:v.Input}],columns:[{type:v.Input}]},ct);function ct(){this.settings={columns:new B(function(){return undefined},function(){return!1},undefined,function(){return!0}),lines:undefined},this.columns=1}var dt=(ht.prototype.intercept=function(t,e){var n=t,i=this.sessionManager.getToken();return i&&0<i.length&&(n=t.clone({headers:t.headers.set("authorization","Bearer "+i)})),e.handle(n)},ht.decorators=[{type:v.Injectable}],ht.ctorParameters=function(){return[{type:b.JwtSessionService}]},ht);function ht(t){this.sessionManager=t}var pt=(gt.decorators=[{type:v.NgModule,args:[{declarations:[M,ut,j,U,nt,G,V,N],imports:[i.FormsModule,n.CommonModule,s.HttpClientModule,a.MatProgressSpinnerModule,u.MatDialogModule,c.BrowserAnimationsModule,d.MatFormFieldModule,p.MatButtonModule,g.MatListModule,y.MatTooltipModule,h.MatInputModule,f.MatIconModule,i.ReactiveFormsModule,m.MatCheckboxModule,w.MatMenuModule,C.BidiModule],providers:[{provide:b.Context,useFactory:yt,deps:[s.HttpClient,u.MatDialog]},{provide:b.JwtSessionService,useClass:b.JwtSessionService,deps:[b.Context]},X,K,$,rt,{provide:s.HTTP_INTERCEPTORS,useClass:st,multi:!0},{provide:s.HTTP_INTERCEPTORS,useClass:dt,multi:!0}],exports:[M,j,U,ut,V],entryComponents:[nt,V,N]}]}],gt);function gt(){}var ft,mt=Symbol("dialogConfigMember");function yt(t,e){var n=this,i=new b.Context(t);return ft=e,b.actionInfo.runActionWithoutBlockingUI=function(e){return I(n,void 0,void 0,function(){return _(this,function(t){switch(t.label){case 0:return[4,rt.singleInstance.donotWait(e)];case 1:return[2,t.sent()]}})})},b.actionInfo.startBusyWithProgress=function(){return rt.singleInstance.startBusyWithProgress()},i}function wt(i,r,o){return I(this,void 0,void 0,function(){var e,n;return _(this,function(t){switch(t.label){case 0:return e=ft.open(i,i[mt]),r&&r(e.componentInstance),e.beforeClosed?[4,e.beforeClosed().toPromise()]:[3,2];case 1:return n=t.sent(),[3,4];case 2:return[4,e.beforeClose().toPromise()];case 3:n=t.sent(),t.label=4;case 4:return o?[2,o(e.componentInstance)]:[2,n]}})})}var vt=(Ct.prototype.initOrigList=function(){var t;this.origList||(this.origList=[],this.origNumOfColumns=this.columns.numOfColumnsInGrid,(t=this.origList).push.apply(t,O(this.columns.items)))},Ct.prototype.userChooseColumns=function(){this.initOrigList(),this.currList||this.resetColumns(),this.showSelectColumn=!this.showSelectColumn},Ct.prototype.resetColumns=function(){this.currList=[],this.columns.items=this.currList,this.columns.numOfColumnsInGrid=this.origNumOfColumns;for(var t=0;t<this.origList.length;t++)this.currList.push(this.origList[t])},Ct.prototype.deleteCol=function(t){this.columns.deleteCol(t),this.columns.numOfColumnsInGrid--},Ct.prototype.setGetOptions=function(t){(this.getOptions=t)&&t.limit?this.rowsPerPage=t.limit:this.rowsPerPage=25,this.rowsPerPageOptions.indexOf(this.rowsPerPage)<0&&(this.rowsPerPageOptions.push(this.rowsPerPage),this.rowsPerPageOptions.sort(function(t,e){return t-e})),this._currentOrderBy=undefined,this.getOptions&&this.getOptions.orderBy&&(this._currentOrderBy=b.entityOrderByToSort(this.entityProvider.create(),this.getOptions.orderBy))},Ct.prototype.addNewRow=function(){var t=this.restList.add();this.onNewRow&&this.onNewRow(t),this.setCurrentRow(t)},Ct.prototype.addArea=function(t){var e=this,n=new B(function(){return e.currentRow},function(){return e.allowUpdate},this.filterHelper,function(){return!!e.currentRow});return n.numOfColumnsInGrid=0,new lt(t,n,this.entityProvider.create())},Ct.prototype.setCurrentRow=function(t){this.currentRow!=t&&(this.currentRow=t,this.onEnterRow&&t&&this.onEnterRow(t))},Ct.prototype.nextRow=function(){var t=this;if(!this.currentRow&&0<this.items.length&&this.setCurrentRow(this.items[0]),this.currentRow){var e=this.items.indexOf(this.currentRow);e<this.items.length-1?this.setCurrentRow(this.items[e+1]):this.nextPage().then(function(){0<t.items.length&&t.setCurrentRow(t.items[0])})}},Ct.prototype.previousRowAllowed=function(){return this.currentRow&&0<this.items.indexOf(this.currentRow)||1<this.page},Ct.prototype.previousRow=function(){var t=this;if(this.previousRowAllowed()){var e=this.items.indexOf(this.currentRow);0<e?this.setCurrentRow(this.items[e-1]):1<this.page&&this.previousPage().then(function(){0<t.items.length&&t.setCurrentRow(t.items[t.items.length-1])})}},Ct.prototype.deleteCurentRow=function(){this.deleteCurrentRowAllowed&&this.currentRowAsRestListItemRow()["delete"]()},Ct.prototype.currentRowAsRestListItemRow=function(){return this.currentRow?this.currentRow:undefined},Ct.prototype.cancelCurrentRowChanges=function(){this.currentRowAsRestListItemRow()&&this.currentRowAsRestListItemRow()&&this.currentRowAsRestListItemRow().undoChanges()},Ct.prototype.deleteCurrentRowAllowed=function(){return this.currentRowAsRestListItemRow()&&this.currentRowAsRestListItemRow()["delete"]&&this.allowDelete&&!function e(t){t&&t.isNew()}(this.currentRow)},Ct.prototype.currentRowChanged=function(){return this.currentRowAsRestListItemRow()&&this.currentRowAsRestListItemRow().wasChanged()},Ct.prototype.saveCurrentRow=function(){this.currentRowAsRestListItemRow()&&this.currentRowAsRestListItemRow().save&&this.currentRowAsRestListItemRow().save()},Ct.prototype._doSavingRow=function(e){var t=this;return e.save(function(){return I(t,void 0,void 0,function(){return _(this,function(t){switch(t.label){case 0:return this.onValidate?[4,this.onValidate(e)]:[3,2];case 1:t.sent(),t.label=2;case 2:return this.onSavingRow?[4,this.onSavingRow(e)]:[3,4];case 3:t.sent(),t.label=4;case 4:return[2]}})})})},Ct.prototype.nextPage=function(){return this.page++,this.getRecords()},Ct.prototype.previousPage=function(){if(!(this.page<=1))return this.page--,this.getRecords()},Ct.prototype.firstPage=function(){return this.page=1,this.getRecords()},Ct.prototype.selectedChanged=function(t){this.isSelected(t)?(this.selectedRows.splice(this.selectedRows.indexOf(t),1),this._selectedAll=!1):(this.selectedRows.push(t),this._selectedAll=this.selectedRows.length==this.totalRows)},Ct.prototype.clickOnselectCheckboxFor=function(t,e){var n,i;if(e)if(this.lastSelectedRowWithShift){var r=!1;try{for(var o=k(this.items),s=o.next();!s.done;s=o.next()){var a=s.value;if(r){if(a==t||a==this.lastSelectedRowWithShift)return void(this.lastSelectedRowWithShift=undefined);this.selectedChanged(a)}else r=a==t||a==this.lastSelectedRowWithShift}}catch(l){n={error:l}}finally{try{s&&!s.done&&(i=o["return"])&&i.call(o)}finally{if(n)throw n.error}}}else this.lastSelectedRowWithShift=t;this.lastSelectedRowWithShift=t},Ct.prototype.isSelected=function(t){return 0<=this.selectedRows.indexOf(t)},Ct.prototype.selectAllIntermitent=function(){return 0<this.selectedRows.length&&(this.selectedRows.length!=this.items.length||!this._selectedAll)},Ct.prototype.selectAllChecked=function(){return 0<this.selectedRows.length&&this.selectedRows.length==this.items.length&&this._selectedAll},Ct.prototype.selectAllChanged=function(t){var e;this.selectedRows.splice(0),t.checked?((e=this.selectedRows).push.apply(e,O(this.items)),this._selectedAll=!0):this._selectedAll=!1},Ct.prototype.get=function(t){return this.setGetOptions(t),this.page=1,this.getRecords()},Ct.prototype.sort=function(t){var e=!1;this._currentOrderBy&&0<this._currentOrderBy.Segments.length&&this._currentOrderBy.Segments[0].column==t&&(this._currentOrderBy.Segments[0].descending=!this._currentOrderBy.Segments[0].descending,e=!0),e||(this._currentOrderBy=new b.Sort({column:t})),this.getRecords()},Ct.prototype.sortedAscending=function(t){return!!this._currentOrderBy&&!!t&&0<this._currentOrderBy.Segments.length&&this._currentOrderBy.Segments[0].column==t&&!this._currentOrderBy.Segments[0].descending},Ct.prototype.sortedDescending=function(t){return!!this._currentOrderBy&&!!t&&0<this._currentOrderBy.Segments.length&&this._currentOrderBy.Segments[0].column==t&&!!this._currentOrderBy.Segments[0].descending},Ct.prototype.getRecords=function(){return this.reloadData()},Ct.prototype.reloadData=function(){var e=this,t=this._internalBuildFindOptions();this.columns.autoGenerateColumnsBasedOnData(this.entityProvider.create());var n=this.restList.get(t).then(function(){return e.selectedRows.splice(0),e._selectedAll=!1,0==e.restList.items.length?e.setCurrentRow(undefined):e.setCurrentRow(e.restList.items[0]),e.restList});return this.settings&&this.settings.knowTotalRows&&this.restList.count(t.where).then(function(t){e.totalRows=t}),n},Ct.prototype._internalBuildFindOptions=function(){var e=this,t={};return this.getOptions&&(t=Object.assign(t,this.getOptions)),this._currentOrderBy&&(t.orderBy=function(t){return e._currentOrderBy.translateFor(t)}),t.limit=this.rowsPerPage,1<this.page&&(t.page=this.page),this.filterHelper.addToFindOptions(t),t},Ct.prototype.getFilterWithSelectedRows=function(){var t=this._internalBuildFindOptions();if(0<this.selectedRows.length&&!this._selectedAll){var n=this.selectedRows.map(function(t){return t.columns.idColumn.value});if(t.where){var i=t.where;t.where=function(t){var e;return new b.AndFilter(b.translateEntityWhere(i,t),(e=t.columns.idColumn).isIn.apply(e,O(n)))}}else t.where=function(t){var e;return(e=t.columns.idColumn).isIn.apply(e,O(n))}}return t},Object.defineProperty(Ct.prototype,"items",{get:function(){return this.restList?this.restList.items:undefined},enumerable:!0,configurable:!0}),Ct);function Ct(t,e){var n,i=this;if(this.entityProvider=t,this.settings=e,this.showSelectColumn=!1,this.allowUpdate=!1,this.allowInsert=!1,this.allowDelete=!1,this.showDataArea=!1,this._buttons=[],this.filterHelper=new b.FilterHelper(function(){i.page=1,i.getRecords()}),this.page=1,this.selectedRows=[],this._selectedAll=!1,this.rowsPerPageOptions=[10,25,50,100],e||(this.settings=e={}),this.restList=new b.DataList(t),t&&(this.filterHelper.filterRow=t.create()),this.columns=new B(function(){return i.currentRow},function(){return i.allowUpdate},this.filterHelper,function(){return!!i.currentRow}),this.restList._rowReplacedListeners.push(function(t,e){t==i.currentRow&&i.setCurrentRow(e)}),e){e.columnSettings&&(n=this.columns).add.apply(n,O(e.columnSettings(t.create()))),e.allowCRUD!==undefined&&(e.allowUpdate===undefined&&(e.allowUpdate=e.allowCRUD),e.allowDelete===undefined&&(e.allowDelete=e.allowCRUD),e.allowInsert===undefined&&(e.allowInsert=e.allowCRUD)),e.allowUpdate&&(this.allowUpdate=!0),e.allowDelete&&(this.allowDelete=!0),e.allowInsert&&(this.allowInsert=!0),e.showDataArea&&(this.showDataArea=e.showDataArea),e.showPagination===undefined&&(e.showPagination=!0),e.numOfColumnsInGrid!=undefined&&(this.columns.numOfColumnsInGrid=e.numOfColumnsInGrid),e.rowButtons&&(this._buttons=e.rowButtons),e.rowCssClass&&(this.rowClass=e.rowCssClass),e.saving&&(this.onSavingRow=e.saving),e.enterRow&&(this.onEnterRow=e.enterRow),e.newRow&&(this.onNewRow=e.newRow),e.validation&&(this.onValidate=e.validation),e.caption&&(this.caption=e.caption),!this.caption&&t&&(this.caption=t.create().defs.caption);var r=e.get;r=r||{},e.where&&(r.where=e.where),e.orderBy&&(r.orderBy=e.orderBy),e.rowsInPage!==undefined&&(r.limit=e.rowsInPage),e.page!==undefined&&(r.page=e.page),this.setGetOptions(r)}}t.BusyService=rt,t.SelectValueDialogComponent=V,t.DialogConfig=function xt(e){return function(t){return t[mt]=e,t}},t.buildContext=yt,t.openDialog=wt,t.getValueList=function Rt(c,d){return I(this,void 0,void 0,function(){var n,i,r,o,s,a,l,u;return _(this,function(t){switch(t.label){case 0:if((d=d||{}).idColumn||(d.idColumn=function(t){return t.columns.idColumn}),!d.captionColumn){r=c.create(),o=d.idColumn(r),s=function(e){if(e!=o)return d.captionColumn=function(t){return t.columns.find(e)},"break"};try{for(a=k(r.columns),l=a.next();!l.done&&(u=l.value,"break"!==s(u));l=a.next());}catch(e){n={error:e}}finally{try{l&&!l.done&&(i=a["return"])&&i.call(a)}finally{if(n)throw n.error}}}return[4,c.find({where:d.where,orderBy:d.orderBy,limit:1e3})];case 1:return[2,t.sent().map(function(t){return{id:d.idColumn(t).value,caption:d.captionColumn(t).value}})]}})})},t.RemultModule=pt,t.RouteHelperService=$,t.SignedInGuard=K,t.NotSignedInGuard=X,t.GridSettings=vt,t.ColumnCollection=B,t.extend=function It(i){return{dataControl:function(e){var t=i[L];if(t){var n=t;t=function(t){n(t),e(t)}}else t=e;return i[L]=t,i}}},t.decorateDataSettings=A,t.__getDataControlSettings=D,t.configDataControlField=L,t.DataAreaSettings=lt,t.ɵc=ut,t.ɵb=M,t.ɵg=G,t.ɵd=j,t.ɵe=U,t.ɵh=N,t.ɵa=st,t.ɵf=nt,t.ɵi=dt,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/material/core"),require("@angular/common"),require("@angular/forms"),require("@angular/router"),require("@angular/common/http"),require("@angular/material/progress-spinner"),require("rxjs/operators"),require("@angular/material/dialog"),require("@angular/platform-browser/animations"),require("@angular/material/form-field"),require("@angular/material/input"),require("@angular/material/button"),require("@angular/material/list"),require("@angular/material/icon"),require("@angular/material/checkbox"),require("@angular/material/tooltip"),require("@angular/material/menu"),require("@angular/core"),require("@angular/cdk/bidi"),require("@remult/core")):"function"==typeof define&&define.amd?define("@remult/angular",["exports","@angular/material/core","@angular/common","@angular/forms","@angular/router","@angular/common/http","@angular/material/progress-spinner","rxjs/operators","@angular/material/dialog","@angular/platform-browser/animations","@angular/material/form-field","@angular/material/input","@angular/material/button","@angular/material/list","@angular/material/icon","@angular/material/checkbox","@angular/material/tooltip","@angular/material/menu","@angular/core","@angular/cdk/bidi","@remult/core"],e):e((t.remult=t.remult||{},t.remult.angular={}),t.ng.material.core,t.ng.common,t.ng.forms,t.ng.router,t.ng.common.http,t.ng.material["progress-spinner"],t.rxjs.operators,t.ng.material.dialog,t.ng.platformBrowser.animations,t.ng.material["form-field"],t.ng.material.input,t.ng.material.button,t.ng.material.list,t.ng.material.icon,t.ng.material.checkbox,t.ng.material.tooltip,t.ng.material.menu,t.ng.core,t.ng.cdk.bidi,t.core$2)}(this,function(t,e,n,i,r,o,s,a,l,u,c,d,h,p,g,f,m,y,w,v,C){"use strict";var b=function(t,e){return(b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function x(t,e){function n(){this.constructor=t}b(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function R(e,s,a,l){return new(a=a||Promise)(function(t,n){function i(t){try{o(l.next(t))}catch(e){n(e)}}function r(t){try{o(l["throw"](t))}catch(e){n(e)}}function o(e){e.done?t(e.value):new a(function(t){t(e.value)}).then(i,r)}o((l=l.apply(e,s||[])).next())})}function I(i,r){var o,s,a,t,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return t={next:e(0),"throw":e(1),"return":e(2)},"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function e(e){return function(t){return function n(t){if(o)throw new TypeError("Generator is already executing.");for(;l;)try{if(o=1,s&&(a=2&t[0]?s["return"]:t[0]?s["throw"]||((a=s["return"])&&a.call(s),0):s.next)&&!(a=a.call(s,t[1])).done)return a;switch(s=0,a&&(t=[2&t[0],a.value]),t[0]){case 0:case 1:a=t;break;case 4:return l.label++,{value:t[1],done:!1};case 5:l.label++,s=t[1],t=[0];continue;case 7:t=l.ops.pop(),l.trys.pop();continue;default:if(!(a=0<(a=l.trys).length&&a[a.length-1])&&(6===t[0]||2===t[0])){l=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]<a[3])){l.label=t[1];break}if(6===t[0]&&l.label<a[1]){l.label=a[1],a=t;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(t);break}a[2]&&l.ops.pop(),l.trys.pop();continue}t=r.call(i,l)}catch(e){t=[6,e],s=0}finally{o=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([e,t])}}}function _(t){var e="function"==typeof Symbol&&t[Symbol.iterator],n=0;return e?e.call(t):{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}}function k(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var i,r,o=n.call(t),s=[];try{for(;(void 0===e||0<e--)&&!(i=o.next()).done;)s.push(i.value)}catch(a){r={error:a}}finally{try{i&&!i.done&&(n=o["return"])&&n.call(o)}finally{if(r)throw r.error}}return s}function S(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(k(arguments[e]));return t}var O=Symbol("configDataControlField");function L(n,t){!t.caption&&n.defs.caption&&(t.caption=n.defs.caption),!t.inputType&&n.defs.inputType&&(t.inputType=n.defs.inputType);var e=n.__settings;if(t.readOnly==undefined&&(e.sqlExpression?t.readOnly=!0:"boolean"==typeof e.allowApiUpdate&&(t.readOnly=!e.allowApiUpdate)),n[A]=D(n),n[A])for(var i in!t.getValue&&n[A].getValue&&(t.getValue=function(t){var e=n;return t&&(e=t.columns.find(e)),e[A]||(e[A]=D(n)),e[A].getValue(t)}),!t.click&&n[A].click&&(t.click=function(t){var e=n;t&&(e=t.columns.find(e)),e[A]||(e[A]=D(n)),e[A].click(t)}),!t.allowClick&&n[A].allowClick&&(t.allowClick=function(t){var e=n;return t&&(e=t.columns.find(e)),e[A]||(e[A]=D(n)),e[A].allowClick(t)}),n[A])if(n[A].hasOwnProperty(i)){var r=n[A][i];r!==undefined&&t[i]===undefined&&(t[i]=r)}}var A=Symbol("__displayResult");function D(e){if(e[O]){var t={};return e[O](t),t}return e instanceof C.ValueListColumn&&(e[O]=function(t){t.valueList=e.getOptions()}),undefined}var F=(B.prototype.__showArea=function(){return this.showArea()},B.prototype.__getColumn=function(t,e){var n;return e&&(n=e.columns.find(t.column)),n=n||t.column},B.prototype.__visible=function(t,e){return t.visible===undefined||t.visible(e)},B.prototype.__dataControlStyle=function(t){return t.width&&0<t.width.trim().length?(+t.width).toString()==t.width?t.width+"px":t.width:undefined},B.prototype.add=function(){for(var u=[],t=0;t<arguments.length;t++)u[t]=arguments[t];return R(this,void 0,void 0,function(){var n,i,r,o,s,a,l;return I(this,function(t){switch(t.label){case 0:r=[];try{for(o=_(u),s=o.next();!s.done;s=o.next())(a=s.value)&&(!(l=a).column&&a instanceof C.Column&&(l={column:a}),l.column&&L(l.column,l),l.getValue||r.push(this.buildDropDown(l)),this.items.push(l))}catch(e){n={error:e}}finally{try{s&&!s.done&&(i=o["return"])&&i.call(o)}finally{if(n)throw n.error}}return[4,Promise.all(r)];case 1:return t.sent(),[2,Promise.resolve()]}})})},B.prototype.buildDropDown=function(y){return R(this,void 0,void 0,function(){var n,i,r,o,s,a,l,u,c,d,h,p,g,f,m;return I(this,function(t){switch(t.label){case 0:if(!y.valueList)return[3,5];if(r=y.valueList,o=[],y.valueList=o,!(r instanceof Array))return[3,1];try{for(s=_(r),a=s.next();!a.done;a=s.next())l=a.value,"string"==(u=typeof l)||"number"==u?o.push({id:l,caption:l}):(c=l)&&c.id!=undefined&&o.push(c)}catch(e){n={error:e}}finally{try{a&&!a.done&&(i=s["return"])&&i.call(s)}finally{if(n)throw n.error}}return[3,5];case 1:return"function"!=typeof r?[3,3]:(h=(d=o.push).apply,p=[o],[4,r()]);case 2:return h.apply(d,p.concat([S.apply(void 0,[t.sent()])])),[3,5];case 3:return f=(g=o.push).apply,m=[o],[4,r];case 4:f.apply(g,m.concat([S.apply(void 0,[t.sent()])])),t.label=5;case 5:return[2,Promise.resolve()]}})})},B.prototype.colListChanged=function(){this._lastNumOfColumnsInGrid=-1,this._colListChangeListeners.forEach(function(t){return t()})},B.prototype.onColListChange=function(t){this._colListChangeListeners.push(t)},B.prototype.moveCol=function(t,e){var n=this.items.indexOf(t),i=n+e;i<0||i>=this.items.length||(this.items.splice(n,1),this.items.splice(i,0,t),this.colListChanged())},B.prototype.filterRows=function(t){var e=t.forceEqualFilter;e===undefined&&(e=t.valueList!=undefined),this.filterHelper.filterColumn(t.column,!1,e)},B.prototype.clearFilter=function(t){this.filterHelper.filterColumn(t.column,!0,!1)},B.prototype._shouldShowFilterDialog=function(t){return!1},B.prototype.deleteCol=function(t){this.items.splice(this.items.indexOf(t),1),this.colListChanged()},B.prototype.addCol=function(t,e){this.items.splice(this.items.indexOf(t)+1,0,e),this.colListChanged()},B.prototype._getEditable=function(t,e){return!(!this.allowUpdate()||!t.column||t.readOnly!==undefined&&C.valueOrEntityExpressionToValue(t.readOnly,e))},B.prototype._click=function(t,e){t.click(e)},B.prototype._getColDisplayValue=function(t,e){var n,i,r;if(t.getValue)(r=t.getValue(e))instanceof C.Column&&(r=r.value);else if(t.column){if(t.valueList)try{for(var o=_(t.valueList),s=o.next();!s.done;s=o.next()){var a=s.value;if(a.id==this.__getColumn(t,e).value)return a.caption}}catch(l){n={error:l}}finally{try{s&&!s.done&&(i=o["return"])&&i.call(o)}finally{if(n)throw n.error}}r=this.__getColumn(t,e).displayValue}return r},B.prototype._getColDataType=function(t){return t.inputType?t.inputType:"text"},B.prototype._getColumnClass=function(t,e){return t.cssClass?"function"!=typeof t.cssClass?t.cssClass:(0,t.cssClass)(e):""},B.prototype._getError=function(t,e){return t.column?this.__getColumn(t,e).validationError:undefined},B.prototype.autoGenerateColumnsBasedOnData=function(t){var e,n;if(0==this.items.length&&t){var i=undefined;t instanceof C.IdEntity&&(i=t.id);try{for(var r=_(t.columns),o=r.next();!o.done;o=r.next()){var s=o.value;s!=i&&this.add(s)}}catch(a){e={error:a}}finally{try{o&&!o.done&&(n=r["return"])&&n.call(r)}finally{if(e)throw e.error}}}},B.prototype.__columnSettingsTypeScript=function(){var e=this,n="x";this.currentRow()&&(n=this.currentRow().defs.name),n=n[0].toLocaleLowerCase()+n.substring(1);var i="";return this.items.forEach(function(t){0<i.length&&(i+=",\n"),i+=" "+e.__columnTypeScriptDescription(t,n)}),i="columnSettings: "+n+" => [\n"+i+"\n]"},B.prototype.__columnTypeScriptDescription=function(t,e){var i="";function n(t,e){!function n(t,e){0<i.length&&(i+=", "),i+="\n "+t+": "+e}(t,"'"+e+"'")}var r="";t.column?(r+=e+"."+t.column.defs.key,t==t.column&&(r+="/*equal*/"),t.caption!=t.column.defs.caption&&n("caption",t.caption)):n("caption",t.caption),t.width&&0<t.width.length&&n("width",t.width),0<i.length&&""!=r&&(i="\n column: "+r+", "+i);var o="";return 0<i.length?o="{"+i+"\n }":""!=r&&(o=r),o},B.prototype.__changeWidth=function(t,e){var n=t.width;n=(+(n=n||"50")+e).toString(),t.width=n},B.prototype._colValueChanged=function(t,e){},B.prototype._initColumnsArrays=function(){var t,e;if(this._lastColumnCount!=this.items.length||this._lastNumOfColumnsInGrid!=this.numOfColumnsInGrid){this._lastNumOfColumnsInGrid=this.numOfColumnsInGrid,this._lastColumnCount=this.items.length,this.gridColumns=[],this.nonGridColumns=[];var n=0;try{for(var i=_(this.items),r=i.next();!r.done;r=i.next()){var o=r.value;n++<this._lastNumOfColumnsInGrid?this.gridColumns.push(o):this.nonGridColumns.push(o)}}catch(s){t={error:s}}finally{try{r&&!r.done&&(e=i["return"])&&e.call(i)}finally{if(t)throw t.error}}}},B.prototype.getGridColumns=function(){return this._initColumnsArrays(),this.gridColumns},B.prototype.getNonGridColumns=function(){return this._initColumnsArrays(),this.nonGridColumns},B);function B(t,e,n,i){this.currentRow=t,this.allowUpdate=e,this.filterHelper=n,this.showArea=i,this.settingsByKey={},this.designMode=!1,this._colListChangeListeners=[],this.items=[],this.numOfColumnsInGrid=5}var T=(Object.defineProperty(M.prototype,"column",{set:function(t){this.map={column:t},decorateDataSettings(this.map.column,this.map)},enumerable:!0,configurable:!0}),M.prototype.showDescription=function(){return this.map.column&&this.map.getValue||!this._getEditable()},M.prototype.getDropDown=function(){return this.map.valueList},M.prototype.showClick=function(){return!!this.map.click&&!!this._getEditable()&&(this.map.allowClick===undefined||this.map.allowClick(this.record))},M.prototype.click=function(){this.showClick()&&this.settings._click(this.map,this.record)},M.prototype.getClickIcon=function(){return this.map.clickIcon?this.map.clickIcon:"keyboard_arrow_down"},M.prototype.dataControlStyle=function(){return this.settings.__dataControlStyle(this.map)},M.prototype._getColumn=function(){return this.map.column?this.settings.__getColumn(this.map,this.record):new C.StringColumn},M.prototype._getEditable=function(){return!!this.notReadonly||this.settings._getEditable(this.map,this.record)},M.prototype.ngOnChanges=function(){},M.prototype.isSelect=function(){return!(!this.map.valueList||!this._getEditable())},M.prototype.showTextBox=function(){return!this.isSelect()&&!this.showCheckbox()},M.prototype.showCheckbox=function(){return"checkbox"==this.settings._getColDataType(this.map)},M.prototype.getError=function(){return this.settings._getError(this.map,this.record)},M.prototype.getStyle=function(){return this.showDescription()?this.map.hideDataOnInput||!this._getEditable()?{display:"none"}:{width:"50px"}:{}},M.prototype.getFloatLabel=function(){return this.showDescription()&&this.settings._getColDisplayValue(this.map,this.record)?"always":""},M.decorators=[{type:w.Component,args:[{selector:"data-control",template:'<div class="data-control2">\r\n <mat-form-field appearance="outline" [floatLabel]="getFloatLabel()" *ngIf="!showCheckbox()"\r\n class="full-width-form-field dense-form-field">\r\n <mat-label>{{map.caption}}</mat-label>\r\n <div style="display:flex;" *ngIf="showTextBox()">\r\n <input #theId matInput [(ngModel)]="_getColumn().inputValue" type="{{settings._getColDataType(map)}}"\r\n (ngModelChange)="settings._colValueChanged(map,record)" [errorStateMatcher]="ngErrorStateMatches"\r\n [ngStyle]="getStyle()" />\r\n <div *ngIf="showDescription()" style="white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n padding-left:10px;width:100%;" (click)="click()">\r\n {{settings._getColDisplayValue(map,record)}}&nbsp;</div>\r\n </div>\r\n <div *ngIf="isSelect()">\r\n <select matNativeControl [(ngModel)]="_getColumn().inputValue"\r\n (ngModelChange)="settings._colValueChanged(map,record)">\r\n <option *ngFor="let v of getDropDown()" value="{{v.id}}">{{v.caption}}</option>\r\n\r\n </select>\r\n </div>\r\n\r\n <button mat-icon-button matSuffix *ngIf="showClick()" (click)="click()">\r\n <mat-icon>{{getClickIcon()}} </mat-icon>\r\n </button>\r\n\r\n <mat-error *ngIf="getError()" [id]="theId">{{getError()}}</mat-error>\r\n </mat-form-field>\r\n <div *ngIf="showCheckbox()">\r\n <mat-checkbox #theId1 [(ngModel)]="_getColumn().inputValue"\r\n (ngModelChange)="settings._colValueChanged(map,record)" class="fix-label">{{map.caption}}</mat-checkbox>\r\n <mat-error *ngIf="getError()" [id]="theId1">{{getError()}}</mat-error>\r\n </div>\r\n\r\n</div>',styles:[""]}]}],M.propDecorators={map:[{type:w.Input}],column:[{type:w.Input}],record:[{type:w.Input}],notReadonly:[{type:w.Input}],settings:[{type:w.Input}]},M);function M(){function t(t){var e=n.call(this)||this;return e.parent=t,e}var n;this.settings=new F(undefined,function(){return!0},undefined,undefined),this.ngErrorStateMatches=(x(t,n=e.ErrorStateMatcher),t.prototype.isErrorState=function(){return!!this.parent.getError()},new t(this))}var P=(Object.defineProperty(G.prototype,"column",{set:function(t){this.map={column:t},decorateDataSettings(this.map.column,this.map)},enumerable:!0,configurable:!0}),G.prototype.showDescription=function(){return this.map.column&&this.map.getValue||!this._getEditable()},G.prototype.showClick=function(){return!!this.map.click&&!!this._getEditable()&&(this.map.allowClick===undefined||this.map.allowClick(this.record))},G.prototype.getClickIcon=function(){return this.map.clickIcon?this.map.clickIcon:"keyboard_arrow_down"},G.prototype.dataControlStyle=function(){return this.settings.__dataControlStyle(this.map)},G.prototype._getColumn=function(){return this.map.column?this.settings.__getColumn(this.map,this.record):new C.StringColumn},G.prototype.click=function(){this.showClick()&&this.settings._click(this.map,this.record)},G.prototype._getEditable=function(){return!!this.notReadonly||this.settings._getEditable(this.map,this.record)},G.prototype.ngOnChanges=function(){},G.prototype.getDropDown=function(){return this.map.valueList},G.prototype.isSelect=function(){return!(!this.map.valueList||!this._getEditable())},G.prototype.showTextBox=function(){return!this.isSelect()&&!this.showCheckbox()&&this._getEditable()},G.prototype.showReadonlyText=function(){return!this._getEditable()},G.prototype.showCheckbox=function(){return"checkbox"==this.settings._getColDataType(this.map)},G.prototype.getError=function(){return this.settings._getError(this.map,this.record)},G.prototype.getStyle=function(){return this.showDescription()?this.map.hideDataOnInput||!this._getEditable()?{display:"none"}:{width:"50px"}:{width:"100%"}},G.prototype.getFloatLabel=function(){return this.showDescription()&&this.settings._getColDisplayValue(this.map,this.record)?"always":""},G.decorators=[{type:w.Component,args:[{selector:"data-control3",template:'<div class="data-control3" #myDiv>\r\n <div style="display:flex;width:100%;" *ngIf="showTextBox()">\r\n <input #theId matInput [(ngModel)]="_getColumn().inputValue" type="{{settings._getColDataType(map)}}"\r\n (ngModelChange)="settings._colValueChanged(map,record)"\r\n [errorStateMatcher]="ngErrorStateMatches" [ngStyle]="getStyle()" />\r\n <div *ngIf="showDescription()" style="white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n padding-left:10px; width:100%;" (click)="click()">\r\n {{settings._getColDisplayValue(map,record)}}&nbsp;</div>\r\n </div>\r\n <div *ngIf="showReadonlyText()" style="\r\n overflow: hidden;\r\n padding-left:10px; width:100%;" >\r\n {{settings._getColDisplayValue(map,record)}}&nbsp;</div>\r\n <div *ngIf="isSelect()" class="my-select" [class.rtl-select]="rightToLeft">\r\n <select matNativeControl [(ngModel)]="_getColumn().inputValue"\r\n (ngModelChange)="settings._colValueChanged(map,record)">\r\n <option *ngFor="let v of getDropDown()" value="{{v.id}}">{{v.caption}}</option>\r\n\r\n </select>\r\n </div>\r\n\r\n <button mat-icon-button *ngIf="showClick()" (click)="click()" class="row-button">\r\n <mat-icon style="height:19px;">{{getClickIcon()}} </mat-icon>\r\n </button>\r\n\r\n\r\n <div *ngIf="showCheckbox()">\r\n <mat-checkbox #theId1 [(ngModel)]="_getColumn().inputValue"\r\n (ngModelChange)="settings._colValueChanged(map,record)" class="fix-label"></mat-checkbox>\r\n </div>\r\n\r\n</div>\r\n<mat-error *ngIf="getError()" [id]="theId" style="font-size: 75%;">{{getError()}}</mat-error>',styles:['.my-select::after{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;position:absolute;top:50%;right:0;pointer-events:none;color:rgba(0,0,0,.54);margin-top:-5px}.rtl-select::after{right:auto;left:0}.my-select{position:relative;width:100%}.data-control3{display:-webkit-box;display:flex;width:100%}.row-button{height:auto;line-height:normal}input{border:none;outline:0;padding:0;margin:0;font-size:inherit;font-family:inherit}']}]}],G.propDecorators={map:[{type:w.Input}],column:[{type:w.Input}],rightToLeft:[{type:w.Input}],record:[{type:w.Input}],notReadonly:[{type:w.Input}],settings:[{type:w.Input}]},G);function G(){function t(t){var e=n.call(this)||this;return e.parent=t,e}var n;this.rightToLeft=!1,this.settings=new F(undefined,function(){return!0},undefined,undefined),this.ngErrorStateMatches=(x(t,n=e.ErrorStateMatcher),t.prototype.isErrorState=function(){return!!this.parent.getError()},new t(this))}var E=(V.prototype.selectFirst=function(){var t,e;try{for(var n=_(this.values),i=n.next();!i.done;i=n.next()){var r=i.value;if(this.matchesFilter(r))return void this.select(r)}}catch(o){t={error:o}}finally{try{i&&!i.done&&(e=n["return"])&&e.call(n)}finally{if(t)throw t.error}}},V.prototype.matchesFilter=function(t){return t.caption.toLocaleLowerCase().includes(this.searchString.toLocaleLowerCase())},V.prototype.args=function(t){this.values=t.values,this.onSelect=t.onSelect,this.title=t.title},V.prototype.select=function(t){this.onSelect(t),this.dialog.close()},V.decorators=[{type:w.Component,args:[{template:'<h1 mat-dialog-title>{{title}}</h1>\r\n\r\n<div mat-dialog-content>\r\n <form (submit)="selectFirst()">\r\n <mat-form-field>\r\n <input matInput [(ngModel)]="searchString" [ngModelOptions]="{standalone: true}"> \r\n </mat-form-field>\r\n </form>\r\n <mat-nav-list role="list" *ngIf="values">\r\n <ng-container *ngFor="let o of values">\r\n <mat-list-item role="listitem" style="height:36px"\r\n *ngIf="matchesFilter(o)" (click)="select(o)">\r\n {{o.caption}}\r\n </mat-list-item>\r\n <mat-divider *ngIf="matchesFilter(o)"></mat-divider>\r\n </ng-container>\r\n </mat-nav-list>\r\n</div>\r\n<div mat-dialog-actions>\r\n\r\n <button mat-icon-button mat-dialog-close>\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n</div>'}]}],V.ctorParameters=function(){return[{type:l.MatDialogRef}]},V);function V(t){this.dialog=t,this.searchString=""}var W=(N.prototype.setFilter=function(){this.info.settings.columns.filterRows(this.info.filterColumnToAdd),this.dialog.close()},N.prototype.clear=function(){this.info.settings.columns.clearFilter(this.info.filterColumnToAdd),this.dialog.close()},N.decorators=[{type:w.Component,args:[{template:'<h1 mat-dialog-title *ngIf="!info.rightToLeft">Filter {{this.info.filterColumnToAdd?.caption}}</h1>\r\n<h1 mat-dialog-title *ngIf="info.rightToLeft">סינון {{this.info.filterColumnToAdd?.caption}}</h1>\r\n<div mat-dialog-content>\r\n\r\n <data-control *ngIf="this.info.filterColumnToAdd" [settings]="info.settings.columns" [map]="info.filterColumnToAdd"\r\n [record]="info.settings.columns.filterHelper.filterRow" [notReadonly]="true"></data-control>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-icon-button (click)="setFilter()">\r\n <mat-icon>check</mat-icon>\r\n </button>\r\n <button mat-icon-button (click)="clear()">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n</div>'}]}],N.ctorParameters=function(){return[{type:l.MatDialogRef}]},N);function N(t){this.dialog=t}var H=(j.prototype.getCurrentFilterValue=function(e){this.settings.initOrigList();var t=this.settings.origList.find(function(t){return t.column==e});return this.settings.columns._getColDisplayValue(t,this.settings.filterHelper.filterRow)},j.prototype.cancelAddFilter=function(){},j.prototype.showEditFilter=function(e){this.filterColumnToAdd=this.settings.origList.find(function(t){return t.column==e}),this.editFilterVisible=!0,this.showAddFilter=!1},j.prototype.userFilterButton=function(){this.showFilterButton=!this.showFilterButton,this.settings.initOrigList(),0==this.settings.filterHelper.filterColumns.length&&this.showAddAnotherFilterDialog()},j.prototype.showAddAnotherFilterDialog=function(){return R(this,void 0,void 0,function(){var e=this;return I(this,function(t){switch(t.label){case 0:return this.settings.initOrigList(),this.filterColumnToAdd=undefined,[4,yt(E,function(t){return t.args({title:e.rightToLeft?"בחר עמודה לסינון":"Select Column to Filter",values:e.settings.origList,onSelect:function(t){return e.filterColumnToAdd=t}})})];case 1:return t.sent(),this.filterColumnToAdd?[4,yt(W,function(t){return t.info=e})]:[3,3];case 2:t.sent(),t.label=3;case 3:return this.showAddFilter=!0,this.filterColumnToAdd=undefined,[2]}})})},j.prototype.editFilter=function(n){return R(this,void 0,void 0,function(){var e=this;return I(this,function(t){switch(t.label){case 0:return this.filterColumnToAdd=this.settings.origList.find(function(t){return t.column==n}),[4,yt(W,function(t){return t.info=e})];case 1:return t.sent(),[2]}})})},j.prototype.confirmEditFilter=function(){this.settings.columns.filterRows(this.filterColumnToAdd),this.editFilterVisible=!1},j.prototype.clearEditFilter=function(){this.settings.columns.clearFilter(this.filterColumnToAdd),this.editFilterVisible=!1},j.prototype.addFilter=function(){this.settings.columns.filterRows(this.filterColumnToAdd),this.showAddFilter=!1},j.prototype.cancelAddNewFilter=function(){this.showAddFilter=!1},j.decorators=[{type:w.Component,args:[{selector:"Data-Filter",template:'<span (click)="showAddAnotherFilterDialog()" #theDiv class="link"\r\n *ngIf="settings.settings.showFilter"><span>{{rightToLeft?\'סינון\': \'Filter\'}}</span></span>\r\n<span *ngIf="settings.columns.filterHelper.filterColumns.length>0">: </span>\r\n<span *ngFor="let map of settings.columns.filterHelper.filterColumns ; let i = index">\r\n <span *ngIf="i>0"> <span *ngIf="!rightToLeft">and</span><span *ngIf="rightToLeft">וגם</span> </span>\r\n <span (click)="editFilter(map)" class="link"> {{map.defs.caption}} = "{{this.getCurrentFilterValue(map)}}"</span>\r\n</span>',styles:[".link {\n cursor:pointer;\n color:blue;\n text-decoration:underline;\n }"]}]}],j.ctorParameters=function(){return[{type:C.Context},{type:v.Directionality}]},j.propDecorators={settings:[{type:w.Input}]},j);function j(t,e){this.context=t,this.showFilterButton=!1,this.showAddFilter=!1,this.editFilterVisible=!1,this.rightToLeft=!1,this.rightToLeft="rtl"===e.value}var q=(U.prototype.addCol=function(n){return R(this,void 0,void 0,function(){var e=this;return I(this,function(t){switch(t.label){case 0:return[4,yt(E,function(t){return t.args({values:e.settings.origList,onSelect:function(t){e.settings.columns.addCol(n,t),e.settings.columns.numOfColumnsInGrid++}})})];case 1:return t.sent(),[2]}})})},U.prototype.getColFlex=function(t){return"0 0 "+this.getColWidth(t)},U.prototype.getColWidth=function(t){var e=this.settings.columns.__dataControlStyle(t);return e=e||"200px"},U.prototype.test=function(){},U.prototype.getTotalRows=function(){return this.settings.totalRows?Math.ceil(this.settings.totalRows/this.settings.rowsPerPage):this.rightToLeft?"רבים":"many"},U.prototype.dragStart=function(t){this.tempDragColumn=t},U.prototype.dragOver=function(t,e){e.preventDefault()},U.prototype.onDrop=function(t){var e=this.settings.columns.items.indexOf(this.tempDragColumn);this.settings.columns.items.splice(e,1);var n=this.settings.columns.items.indexOf(t);n==e&&n++,this.settings.columns.items.splice(n,0,this.tempDragColumn),this.settings.columns.colListChanged()},U.prototype._getHeight=function(){if(this.height)return(+this.height).toString()==this.height?this.height+"px":this.height},U.prototype.isFiltered=function(t){return this.settings.columns.filterHelper.isFiltered(t)},U.prototype.showFilterColumnDialog=function(t){this.settings.initOrigList(),this.dataFilterInfo.editFilter(t.column)},U.prototype.getButtonCssClass=function(t,e){return t.cssClass?"function"==typeof t.cssClass?t.cssClass(e):t.cssClass.toString():""},U.prototype.getButtonText=function(t,e){return t.textInMenu?"function"==typeof t.textInMenu?e?t.textInMenu(e):"":t.textInMenu:t.name},U.prototype.clickOnselectCheckboxFor=function(t,e){this.settings.clickOnselectCheckboxFor(t,e.shiftKey)},U.prototype.hasVisibleButton=function(e){return this.rowButtons.find(function(t){return t.visible(e)})},U.prototype.hasVisibleGridButtons=function(){return this.gridButtons.find(function(t){return t.visible()})},U.prototype.addButton=function(t){if(t.click||(t.click=function(t){}),t.visible||(t.visible=function(t){return!0}),t.cssClass){if("function"!=typeof t.cssClass){var e=t.cssClass;t.cssClass=function(t){return e}}}else t.cssClass=function(t){return"btn"};return this.rowButtons.push(t),t},U.prototype.rowClicked=function(t){this.settings.setCurrentRow(t)},U.prototype.nextPage=function(){this.page++},U.prototype.previousPage=function(){this.page<=1||this.page--},U.prototype.showSaveAllButton=function(){return this.settings.items.find(function(t){return t.wasChanged()})},U.prototype.saveAllText=function(){return this.rightToLeft?"שמור "+this.settings.items.filter(function(t){return t.wasChanged()}).length+" שורות":"save "+this.settings.items.filter(function(t){return t.wasChanged()}).length+" rows"},U.prototype.saveAllClick=function(){return R(this,void 0,void 0,function(){return I(this,function(t){switch(t.label){case 0:return[4,Promise.all(this.settings.items.filter(function(t){return t.wasChanged()}).map(function(t){return t.save()}))];case 1:return t.sent(),[2]}})})},U.prototype.ngOnChanges=function(){var t,e,n,i=this;if(this.settings){if(this.rowButtons=[],this.gridButtons=[],this.gridButtons.push({visible:function(){return i.showSaveAllButton()},textInMenu:function(){return i.saveAllText()},click:function(){return R(i,void 0,void 0,function(){return I(this,function(t){switch(t.label){case 0:return[4,this.saveAllClick()];case 1:return t.sent(),[2]}})})}}),this.settings.settings.gridButtons&&(t=this.gridButtons).push.apply(t,S(this.settings.settings.gridButtons.map(function(t){return t.visible||(t.visible=function(){return!0}),t}))),this.settings.allowUpdate&&(this.addButton({name:"",icon:"check",cssClass:"glyphicon glyphicon-ok btn-success",visible:function(t){return t.wasChanged()},showInLine:!0,textInMenu:function(){return i.rightToLeft?"שמור":"save"},click:function(t){i.settings._doSavingRow(t)}}),this.addButton({name:"",icon:"cancel",cssClass:"btn btn-danger glyphicon glyphicon-ban-circle",visible:function(t){return t.wasChanged()},showInLine:!0,textInMenu:function(){return i.rightToLeft?"בטל שינוים":"cancel"},click:function(t){t.undoChanges()}})),this.settings.allowDelete&&this.addButton({name:"",visible:function(t){return t&&!t.isNew()},icon:"delete",showInLine:!0,textInMenu:function(){return i.rightToLeft?"מחק":"delete"},click:function(e){return R(i,void 0,void 0,function(){return I(this,function(t){switch(t.label){case 0:return this.settings.settings.confirmDelete?[4,this.settings.settings.confirmDelete(e)]:[3,2];case 1:if(!t.sent())return[2];t.label=2;case 2:return e["delete"](),[2]}})})},cssClass:"btn-danger glyphicon glyphicon-trash"}),this.settings._buttons)try{for(var r=_(this.settings._buttons),o=r.next();!o.done;o=r.next()){var s=o.value;this.addButton(s)}}catch(a){e={error:a}}finally{try{o&&!o.done&&(n=r["return"])&&n.call(r)}finally{if(e)throw e.error}}!this.records&&this.settings&&this.settings.getRecords().then(function(t){i.records=t})}},U.prototype._getRowClass=function(t){var e="dataGridRow ";return this.settings.rowClass&&(e+=this.settings.rowClass(t)),t==this.settings.currentRow&&(e+=" active"),e},U.prototype._getRowColumnClass=function(t,e){return this.settings.columns._getColumnClass(t,e)+" dataGridDataCell"},U.decorators=[{type:w.Component,args:[{selector:"data-grid",template:'<div style="height: 100%;display: flex;flex-direction: column;">\r\n <Data-Filter [settings]="settings" #dataFilter style="flex-shrink: 0;">\r\n </Data-Filter>\r\n <div class="dataGrid" #dataGridDiv *ngIf="settings&&settings.columns" [style.height]="_getHeight()">\r\n <div class="inner-wrapper">\r\n <div class="dataGridHeaderArea">\r\n <div class="dataGridRow">\r\n <div class="data-grid-row-more-buttons dataGridDataCell">\r\n\r\n <button mat-icon-button [matMenuTriggerFor]="updatedRowOptions" *ngIf="hasVisibleGridButtons()">\r\n <mat-icon>expand_more</mat-icon>\r\n </button>\r\n\r\n </div>\r\n <div class="data-grid-row-selection dataGridDataCell" *ngIf="settings.settings.allowSelection">\r\n\r\n <mat-checkbox [indeterminate]="settings.selectAllIntermitent()" [checked]="settings.selectAllChecked()"\r\n (change)="settings.selectAllChanged($event)"></mat-checkbox>\r\n\r\n </div>\r\n <mat-menu #updatedRowOptions="matMenu">\r\n\r\n <ng-container *ngFor="let b of gridButtons">\r\n <button mat-menu-item *ngIf="b.visible()" (click)="b.click()">\r\n <mat-icon *ngIf="b.icon">{{b.icon}}</mat-icon>{{b.textInMenu?b.textInMenu(): b.name}}\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n <div class="dataGridHeaderCell headerWithFilter" *ngFor="let map of settings.columns.getGridColumns()"\r\n [style.flex]="getColFlex(map)" [style.width]="getColWidth(map)" draggable="true"\r\n (dragstart)="dragStart(map)" (dragover)="dragOver(map,$event)" (drop)="onDrop(map)">\r\n\r\n <span (click)="settings.sort(map.column)">{{map.caption}}</span>\r\n\r\n\r\n <span class="filterButton" [class.filteredFilterButton]="isFiltered(map.column)"\r\n (click)="showFilterColumnDialog(map)">\r\n <mat-icon>filter_alt</mat-icon>\r\n </span>\r\n\r\n <mat-icon *ngIf="settings.sortedAscending(map.column)">arrow_downward</mat-icon>\r\n <mat-icon class="glyphicon glyphicon-chevron-down pull-right" *ngIf="settings.sortedDescending(map.column)">\r\n arrow_upward</mat-icon>\r\n </div>\r\n <div class="dataGridButtonHeaderCell" *ngIf="rowButtons&& rowButtons.length>0&&displayButtons"\r\n [class.col-xs-1]="rowButtons&&rowButtons.length<3">\r\n <button mat-icon-button *ngIf="showSaveAllButton()" (click)="saveAllClick()" style="line-height:36px;max-height:28px">\r\n <mat-icon [matTooltip]="saveAllText()" class="row-button" style="font-size:24px">done_all</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="dataGridBodyArea">\r\n <div class="dataGridRow" *ngFor="let record of records" [className]="_getRowClass(record)"\r\n (click)="rowClicked(record)">\r\n <div class="data-grid-row-more-buttons dataGridDataCell">\r\n\r\n <button mat-icon-button [matMenuTriggerFor]="updatedRowOptions" *ngIf="hasVisibleButton(record) ">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n\r\n </div>\r\n <div class="data-grid-row-selection dataGridDataCell" *ngIf="settings.settings.allowSelection">\r\n\r\n <mat-checkbox [checked]="settings.isSelected(record)" (change)="settings.selectedChanged(record)" (click)="clickOnselectCheckboxFor(record,$event)">\r\n </mat-checkbox>\r\n\r\n </div>\r\n <mat-menu #updatedRowOptions="matMenu">\r\n <ng-container *ngFor="let b of rowButtons">\r\n <button mat-menu-item *ngIf="b.visible(record)" (click)="b.click(record)">\r\n <mat-icon *ngIf="b.icon">{{b.icon}}</mat-icon>{{getButtonText(b,record)}}\r\n </button>\r\n </ng-container>\r\n\r\n </mat-menu>\r\n <div class="dataGridDataCell" *ngFor="let map of settings.columns.getGridColumns()"\r\n [className]="_getRowColumnClass(map,record)" [style.flex]="getColFlex(map)"\r\n [style.width]="getColWidth(map)">\r\n <data-control3 [settings]="settings.columns" [map]="map" [record]="record" [rightToLeft]="rightToLeft">\r\n </data-control3>\r\n </div>\r\n <div class="dataGridButtonCell" *ngIf="rowButtons.length>0&&displayButtons" style="white-space:nowrap">\r\n <ng-container *ngFor="let b of rowButtons">\r\n <button mat-icon-button *ngIf="b.visible(record)&&b.icon&&b.showInLine" (click)="b.click(record)"\r\n matTooltip="{{getButtonText(b,record)}}" class="row-button">\r\n <mat-icon *ngIf="b.icon">{{b.icon}} </mat-icon> {{b.name}}\r\n </button>\r\n <button mat-raised-button *ngIf="b.visible(record)&&!b.icon&&b.showInLine" (click)="b.click(record)"\r\n class="row-button">\r\n {{b.name}}\r\n </button>\r\n </ng-container>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class="dataGridFooterArea" *ngIf="records&&settings.settings.showPagination">\r\n <div class="dataGridFooterButtonGroup">\r\n <button mat-icon-button (click)="settings.userChooseColumns()">\r\n <mat-icon>settings</mat-icon>\r\n </button>\r\n\r\n {{rightToLeft?\'שורות בדף\': \'lines per page\'}}\r\n <select class="form-control" style="width:80px;display:inline-block" [(ngModel)]="settings.rowsPerPage"\r\n (change)="settings.getRecords()">\r\n <option *ngFor="let r of settings.rowsPerPageOptions" value="{{r}}">{{r}}</option>\r\n </select>\r\n </div>\r\n <div class="dataGridFooterButtonGroup">\r\n <button mat-icon-button (click)="settings.firstPage()">\r\n <mat-icon>{{rightToLeft?\'last_page\':\'first_page\'}} </mat-icon>\r\n </button>\r\n <button mat-icon-button [disabled]="settings.page==1" (click)="settings.previousPage()">\r\n <mat-icon>{{rightToLeft?\'chevron_right\':\'chevron_left\'}}</mat-icon>\r\n </button>\r\n {{rightToLeft?\'עמוד\':\'Page\'}} {{settings.page}} {{rightToLeft?\' מתוך \':\' of \'}} {{getTotalRows()}}\r\n <button mat-icon-button [disabled]="!(records.items&& records.items.length>0)" (click)="settings.nextPage()">\r\n <mat-icon>{{!rightToLeft?\'chevron_right\':\'chevron_left\'}}</mat-icon>\r\n </button>\r\n <button mat-icon-button *ngIf="settings.allowUpdate &&settings.allowInsert" (click)="settings.addNewRow()">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </div>\r\n <div *ngIf="settings.showSelectColumn" class="selectColumnsArea">\r\n Select Columns\r\n <ol>\r\n <ng-container *ngFor="let c of settings.currList; let i=index">\r\n <li *ngIf="i<settings.columns.numOfColumnsInGrid">\r\n <select [(ngModel)]="settings.currList[i]" class="form-control selectColumnCombo"\r\n (change)="settings.columns.colListChanged()">\r\n <option *ngFor="let o of settings.origList" [ngValue]="o">{{o.caption}}</option>\r\n </select>\r\n <input [(ngModel)]="c.width" style="width:50px;display:inline;">\r\n <button mat-icon-button *ngIf="settings.currList.length>1" (click)="settings.deleteCol(c)">\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n <button mat-icon-button (click)="addCol(c)">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n <button mat-icon-button *ngIf="i<settings.currList.length-1" (click)="settings.columns.moveCol(c,1)">\r\n <mat-icon>keyboard_arrow_down</mat-icon>\r\n </button>\r\n <button mat-icon-button *ngIf="i>0" (click)="settings.columns.moveCol(c,-1)">\r\n <mat-icon>keyboard_arrow_up</mat-icon>\r\n </button>\r\n </li>\r\n </ng-container>\r\n </ol>\r\n <button (click)="settings.resetColumns()" class="btn glyphicon glyphicon-repeat"></button>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n <data-area *ngIf="settings.showDataArea" [settings]="settings" [columns]="2"></data-area>\r\n</div>',styles:[".row-button{height:auto;line-height:normal}.inner-wrapper{display:inline-block}.dataGrid{overflow:auto;border:1px solid #e0e0e0;height:100%}.dataGridRow{display:-webkit-box;display:flex}.dataGridHeaderArea{position:-webkit-sticky;position:sticky;top:0;clear:both;background-color:#f5f5f5;z-index:3}.dataGridHeaderArea mat-icon{font-size:16px;height:18px;width:18px;line-height:18px}.dataGridFooterButtonGroup{display:inline-block}.dataGridFooterArea{width:100%;bottom:0;left:0;background-color:#f5f5f5;border:1px solid #e0e0e0;box-sizing:border-box}.dataGridDataCell,.dataGridHeaderCell{padding:4px}.dataGridDataCell{border-top:1px solid #e0e0e0}.data-grid-row-more-buttons{border-left:1px solid #e0e0e0;border-right:1px solid #e0e0e0;padding-left:0;padding-right:0;width:18px}.data-grid-row-more-buttons mat-icon{font-size:16px;height:17px;width:18px;line-height:17px}.data-grid-row-more-buttons button{width:auto;height:auto;line-height:18px}.data-grid-row-selection{width:18px}.filterDialog{background-color:#fff;position:absolute;padding:10px;z-index:800;border-radius:5px;width:200px;border:2px solid gray}.filterDialog .form-group{margin-right:0;margin-left:0}.designModeButton span{visibility:hidden}.designModeButton:hover span{visibility:visible}.selectColumnCombo{display:inline-block;width:auto}.selectColumnsArea{display:block}.headerWithFilter .filterButton{visibility:hidden}.headerWithFilter .filteredFilterButton,.headerWithFilter:hover .filterButton{visibility:visible}table input{min-width:75px}table select{min-width:100px}"]}]}],U.ctorParameters=function(){return[{type:C.Context},{type:v.Directionality}]},U.propDecorators={width:[{type:w.Input}],height:[{type:w.Input}],displayButtons:[{type:w.Input}],displayVCR:[{type:w.Input}],records:[{type:w.Input}],settings:[{type:w.Input}],dataFilterInfo:[{type:w.ViewChild,args:[H]}]},U);function U(t,e){this.context=t,this.rightToLeft=!1,this.displayButtons=!0,this.displayVCR=!0,this.rowButtons=[],this.gridButtons=[],this.keys=[],this.page=1,this.rightToLeft="rtl"===e.value}var z=($.prototype.navigateToComponent=function(e){var n=this,i=!1;this.router.config.forEach(function(t){i||t.component==e&&(i=!0,n.router.navigate(["/"+t.path]))}),i||console.warn("couldn't find path for ",e,this.router.config)},$.prototype.canNavigateToRoute=function(t){var e,n;if(!t.canActivate)return!0;try{for(var i=_(t.canActivate),r=i.next();!r.done;r=i.next()){var o=r.value,s=this.injector.get(o);if(s&&s.canActivate){var a=new Z;if(a.routeConfig=t,!s.canActivate(a,undefined))return!1}}}catch(l){e={error:l}}finally{try{r&&!r.done&&(n=i["return"])&&n.call(i)}finally{if(e)throw e.error}}return!0},$.decorators=[{type:w.Injectable}],$.ctorParameters=function(){return[{type:r.Router},{type:w.Injector}]},$);function $(t,e){this.router=t,this.injector=e}var J=(K.prototype.isAllowed=function(){return!0},K.prototype.canActivate=function(t){if(this.context.isSignedIn()&&this.context.isAllowed(this.isAllowed()))return!0;if(!(t instanceof Z)){var e=K.componentToNavigateIfNotAllowed;e!=undefined?this.helper.navigateToComponent(e):this.router.navigate(["/"])}return!1},K.decorators=[{type:w.Injectable}],K.ctorParameters=function(){return[{type:C.Context},{type:r.Router},{type:z}]},K);function K(t,e,n){this.context=t,this.router=e,this.helper=n}var Q=(X.prototype.canActivate=function(t){return!this.context.isSignedIn()},X.decorators=[{type:w.Injectable}],X.ctorParameters=function(){return[{type:C.Context},{type:r.Router}]},X);function X(t,e){this.context=t,this.router=e}var Y,Z=(x(tt,Y=r.ActivatedRouteSnapshot),tt);function tt(){return Y.call(this)||this}var et=(nt.prototype.ngOnInit=function(){},nt.decorators=[{type:w.Component,args:[{selector:"app-wait",template:'<mat-progress-spinner [mode]="mode" [value]="value" >\r\n</mat-progress-spinner>',styles:[""]}]}],nt.ctorParameters=function(){return[]},nt);function nt(){this.mode="indeterminate",this.value=0}var it=(rt.prototype.donotWait=function(e){return R(this,void 0,void 0,function(){return I(this,function(t){switch(t.label){case 0:this.disableWait=!0,t.label=1;case 1:return t.trys.push([1,,3,4]),[4,e()];case 2:return[2,t.sent()];case 3:return this.disableWait=!1,[7];case 4:return[2]}})})},rt.prototype.donotWaitNonAsync=function(t){this.disableWait=!0;try{return t()}finally{this.disableWait=!1}},rt.prototype.log=function(t,e){},rt.prototype.doWhileShowingBusy=function(n){return R(this,void 0,void 0,function(){var e;return I(this,function(t){switch(t.label){case 0:e=this.showBusy(),t.label=1;case 1:return t.trys.push([1,,3,4]),[4,n()];case 2:return[2,t.sent()];case 3:return e(),[7];case 4:return[2]}})})},rt.prototype.startBusyWithProgress=function(){var t=this;if(this.disableWait)return{close:function(){},progress:function(){}};var e=!1,n=this.dialog.open(et,{disableClose:!0});return{close:function(){return R(t,void 0,void 0,function(){return I(this,function(t){switch(t.label){case 0:return e?(n.componentInstance.value=100,[4,new Promise(function(t){return setTimeout(function(){return t(0)},250)})]):[3,2];case 1:t.sent(),t.label=2;case 2:return n.close(),[2]}})})},progress:function(t){0<t&&(e=!0,n.componentInstance.mode="determinate",n.componentInstance.value=100*t)}}},rt.prototype.showBusy=function(){var t=this,e=this.id++;return this.disableWait?function(){}:(this.log(e,"start busy "),0==this.numOfWaits&&setTimeout(function(){0<t.numOfWaits&&!t.waitRef&&(t.log(e,"actual start busy "),t.waitRef=t.dialog.open(et,{disableClose:!0}))},300),this.numOfWaits++,function(){t.numOfWaits--,t.log(e,"close busy "),0==t.numOfWaits&&(t.log(e,"close top busy "),t.waitRef&&(t.log(e,"actual close top busy "),t.waitRef.close(),t.waitRef=undefined))})},rt.decorators=[{type:w.Injectable}],rt.ctorParameters=function(){return[{type:l.MatDialog}]},rt);function rt(t){this.dialog=t,this.id=0,this.numOfWaits=0,this.disableWait=!1,rt.singleInstance=this}var ot=(st.prototype.intercept=function(t,e){var n=this.busy.showBusy();return e.handle(t).pipe(a.finalize(function(){return n()}))},st.decorators=[{type:w.Injectable}],st.ctorParameters=function(){return[{type:it}]},st);function st(t){this.busy=t}var at=function Ct(t,e,n){var i,r;if(this.settings=t,this.columns=e,this.lines=[],e==undefined&&((e=new F(function(){return undefined},function(){return!0},undefined,function(){return!0})).numOfColumnsInGrid=0,this.columns=e),t&&t.columnSettings)try{for(var o=_(t.columnSettings(n)),s=o.next();!s.done;s=o.next()){var a=s.value;if(Array.isArray(a)){var l=e.items.length;e.add.apply(e,S(a));for(var u=[],c=l;c<e.items.length;c++)u.push(e.items[c]);this.lines.push(u)}else e.add(a),this.lines.push([e.items[e.items.length-1]])}}catch(d){i={error:d}}finally{try{s&&!s.done&&(r=o["return"])&&r.call(o)}finally{if(i)throw i.error}}},lt=(ut.prototype.ngOnChanges=function(){var t=this;if(this.settings&&this.settings.columns){this.object&&(this.settings=new at({columnSettings:function(){return C.getColumnsFromObject(t.object)}})),this.settings.columns.onColListChange(function(){return t.lastCols=undefined});var e=this.settings;e.settings&&e.settings.numberOfColumnAreas&&(this.columns=e.settings.numberOfColumnAreas)}},ut.prototype.theColumns=function(){var t=this.settings.columns.getNonGridColumns();if(t==this.lastAllCols)return this.lastCols;this.lastAllCols=t;var e,n=[];this.lastCols=n;for(var i=0;i<this.columns;i++)n.push([]);e=this.settings.lines?this.settings.lines:t.map(function(t){return[t]});var r=Math.round(e.length/this.columns);for(i=0;i<e.length;i++)n[Math.floor(i/r)].push(e[i]);return this.lastCols},ut.decorators=[{type:w.Component,args:[{selector:"data-area",template:'<div class="column-container">\r\n <div *ngFor="let col of theColumns()">\r\n <ng-container *ngFor="let line of col">\r\n <div class="one-line">\r\n <ng-container *ngFor="let map of line">\r\n <data-control [settings]="settings.columns" [map]="map" [record]="settings.columns.currentRow()" *ngIf="settings.columns.__visible(map,settings.columns.currentRow())">\r\n </data-control>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>',encapsulation:w.ViewEncapsulation.None,styles:[".one-line{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between}.one-line>*{margin-left:.2em;margin-right:.2em;flex-basis:1px;-webkit-box-flex:1;flex-grow:1}@media only screen and (min-width:768px){.column-container{display:-webkit-box;display:flex;width:100%}.column-container>div{width:100%}}"]}]}],ut.propDecorators={settings:[{type:w.Input}],object:[{type:w.Input}],columns:[{type:w.Input}]},ut);function ut(){this.settings={columns:new F(function(){return undefined},function(){return!1},undefined,function(){return!0}),lines:undefined},this.columns=1}var ct=(dt.prototype.intercept=function(t,e){var n=t,i=this.sessionManager.getToken();return i&&0<i.length&&(n=t.clone({headers:t.headers.set("authorization","Bearer "+i)})),e.handle(n)},dt.decorators=[{type:w.Injectable}],dt.ctorParameters=function(){return[{type:C.JwtSessionService}]},dt);function dt(t){this.sessionManager=t}var ht=(pt.decorators=[{type:w.NgModule,args:[{declarations:[T,lt,H,q,et,P,E,W],imports:[i.FormsModule,n.CommonModule,o.HttpClientModule,s.MatProgressSpinnerModule,l.MatDialogModule,u.BrowserAnimationsModule,c.MatFormFieldModule,h.MatButtonModule,p.MatListModule,m.MatTooltipModule,d.MatInputModule,g.MatIconModule,i.ReactiveFormsModule,f.MatCheckboxModule,y.MatMenuModule,v.BidiModule],providers:[{provide:C.Context,useFactory:mt,deps:[o.HttpClient,l.MatDialog]},{provide:C.JwtSessionService,useClass:C.JwtSessionService,deps:[C.Context]},Q,J,z,it,{provide:o.HTTP_INTERCEPTORS,useClass:ot,multi:!0},{provide:o.HTTP_INTERCEPTORS,useClass:ct,multi:!0}],exports:[T,H,q,lt,E],entryComponents:[et,E,W]}]}],pt);function pt(){}var gt,ft=Symbol("dialogConfigMember");function mt(t,e){var n=this,i=new C.Context(t);return gt=e,C.actionInfo.runActionWithoutBlockingUI=function(e){return R(n,void 0,void 0,function(){return I(this,function(t){switch(t.label){case 0:return[4,it.singleInstance.donotWait(e)];case 1:return[2,t.sent()]}})})},C.actionInfo.startBusyWithProgress=function(){return it.singleInstance.startBusyWithProgress()},i}function yt(i,r,o){return R(this,void 0,void 0,function(){var e,n;return I(this,function(t){switch(t.label){case 0:return e=gt.open(i,i[ft]),r&&r(e.componentInstance),e.beforeClosed?[4,e.beforeClosed().toPromise()]:[3,2];case 1:return n=t.sent(),[3,4];case 2:return[4,e.beforeClose().toPromise()];case 3:n=t.sent(),t.label=4;case 4:return o?[2,o(e.componentInstance)]:[2,n]}})})}var wt=(vt.prototype.initOrigList=function(){var t;this.origList||(this.origList=[],this.origNumOfColumns=this.columns.numOfColumnsInGrid,(t=this.origList).push.apply(t,S(this.columns.items)))},vt.prototype.userChooseColumns=function(){this.initOrigList(),this.currList||this.resetColumns(),this.showSelectColumn=!this.showSelectColumn},vt.prototype.resetColumns=function(){this.currList=[],this.columns.items=this.currList,this.columns.numOfColumnsInGrid=this.origNumOfColumns;for(var t=0;t<this.origList.length;t++)this.currList.push(this.origList[t])},vt.prototype.deleteCol=function(t){this.columns.deleteCol(t),this.columns.numOfColumnsInGrid--},vt.prototype.setGetOptions=function(t){(this.getOptions=t)&&t.limit?this.rowsPerPage=t.limit:this.rowsPerPage=25,this.rowsPerPageOptions.indexOf(this.rowsPerPage)<0&&(this.rowsPerPageOptions.push(this.rowsPerPage),this.rowsPerPageOptions.sort(function(t,e){return t-e})),this._currentOrderBy=undefined,this.getOptions&&this.getOptions.orderBy&&(this._currentOrderBy=C.entityOrderByToSort(this.entityProvider.create(),this.getOptions.orderBy))},vt.prototype.addNewRow=function(){var t=this.restList.add();this.onNewRow&&this.onNewRow(t),this.setCurrentRow(t)},vt.prototype.addArea=function(t){var e=this,n=new F(function(){return e.currentRow},function(){return e.allowUpdate},this.filterHelper,function(){return!!e.currentRow});return n.numOfColumnsInGrid=0,new at(t,n,this.entityProvider.create())},vt.prototype.setCurrentRow=function(t){this.currentRow!=t&&(this.currentRow=t,this.onEnterRow&&t&&this.onEnterRow(t))},vt.prototype.nextRow=function(){var t=this;if(!this.currentRow&&0<this.items.length&&this.setCurrentRow(this.items[0]),this.currentRow){var e=this.items.indexOf(this.currentRow);e<this.items.length-1?this.setCurrentRow(this.items[e+1]):this.nextPage().then(function(){0<t.items.length&&t.setCurrentRow(t.items[0])})}},vt.prototype.previousRowAllowed=function(){return this.currentRow&&0<this.items.indexOf(this.currentRow)||1<this.page},vt.prototype.previousRow=function(){var t=this;if(this.previousRowAllowed()){var e=this.items.indexOf(this.currentRow);0<e?this.setCurrentRow(this.items[e-1]):1<this.page&&this.previousPage().then(function(){0<t.items.length&&t.setCurrentRow(t.items[t.items.length-1])})}},vt.prototype.deleteCurentRow=function(){this.deleteCurrentRowAllowed&&this.currentRowAsRestListItemRow()["delete"]()},vt.prototype.currentRowAsRestListItemRow=function(){return this.currentRow?this.currentRow:undefined},vt.prototype.cancelCurrentRowChanges=function(){this.currentRowAsRestListItemRow()&&this.currentRowAsRestListItemRow()&&this.currentRowAsRestListItemRow().undoChanges()},vt.prototype.deleteCurrentRowAllowed=function(){return this.currentRowAsRestListItemRow()&&this.currentRowAsRestListItemRow()["delete"]&&this.allowDelete&&!function e(t){t&&t.isNew()}(this.currentRow)},vt.prototype.currentRowChanged=function(){return this.currentRowAsRestListItemRow()&&this.currentRowAsRestListItemRow().wasChanged()},vt.prototype.saveCurrentRow=function(){this.currentRowAsRestListItemRow()&&this.currentRowAsRestListItemRow().save&&this.currentRowAsRestListItemRow().save()},vt.prototype._doSavingRow=function(e){var t=this;return e.save(function(){return R(t,void 0,void 0,function(){return I(this,function(t){switch(t.label){case 0:return this.onValidate?[4,this.onValidate(e)]:[3,2];case 1:t.sent(),t.label=2;case 2:return this.onSavingRow?[4,this.onSavingRow(e)]:[3,4];case 3:t.sent(),t.label=4;case 4:return[2]}})})})},vt.prototype.nextPage=function(){return this.page++,this.getRecords()},vt.prototype.previousPage=function(){if(!(this.page<=1))return this.page--,this.getRecords()},vt.prototype.firstPage=function(){return this.page=1,this.getRecords()},vt.prototype.selectedChanged=function(t){this.isSelected(t)?(this.selectedRows.splice(this.selectedRows.indexOf(t),1),this._selectedAll=!1):(this.selectedRows.push(t),this._selectedAll=this.selectedRows.length==this.totalRows)},vt.prototype.clickOnselectCheckboxFor=function(t,e){var n,i;if(e)if(this.lastSelectedRowWithShift){var r=!1;try{for(var o=_(this.items),s=o.next();!s.done;s=o.next()){var a=s.value;if(r){if(a==t||a==this.lastSelectedRowWithShift)return void(this.lastSelectedRowWithShift=undefined);this.selectedChanged(a)}else r=a==t||a==this.lastSelectedRowWithShift}}catch(l){n={error:l}}finally{try{s&&!s.done&&(i=o["return"])&&i.call(o)}finally{if(n)throw n.error}}}else this.lastSelectedRowWithShift=t;this.lastSelectedRowWithShift=t},vt.prototype.isSelected=function(t){return 0<=this.selectedRows.indexOf(t)},vt.prototype.selectAllIntermitent=function(){return 0<this.selectedRows.length&&(this.selectedRows.length!=this.items.length||!this._selectedAll)},vt.prototype.selectAllChecked=function(){return 0<this.selectedRows.length&&this.selectedRows.length==this.items.length&&this._selectedAll},vt.prototype.selectAllChanged=function(t){var e;this.selectedRows.splice(0),t.checked?((e=this.selectedRows).push.apply(e,S(this.items)),this._selectedAll=!0):this._selectedAll=!1},vt.prototype.get=function(t){return this.setGetOptions(t),this.page=1,this.getRecords()},vt.prototype.sort=function(t){var e=!1;this._currentOrderBy&&0<this._currentOrderBy.Segments.length&&this._currentOrderBy.Segments[0].column==t&&(this._currentOrderBy.Segments[0].descending=!this._currentOrderBy.Segments[0].descending,e=!0),e||(this._currentOrderBy=new C.Sort({column:t})),this.getRecords()},vt.prototype.sortedAscending=function(t){return!!this._currentOrderBy&&!!t&&0<this._currentOrderBy.Segments.length&&this._currentOrderBy.Segments[0].column==t&&!this._currentOrderBy.Segments[0].descending},vt.prototype.sortedDescending=function(t){return!!this._currentOrderBy&&!!t&&0<this._currentOrderBy.Segments.length&&this._currentOrderBy.Segments[0].column==t&&!!this._currentOrderBy.Segments[0].descending},vt.prototype.getRecords=function(){return this.reloadData()},vt.prototype.reloadData=function(){var e=this,t=this._internalBuildFindOptions();this.columns.autoGenerateColumnsBasedOnData(this.entityProvider.create());var n=this.restList.get(t).then(function(){return e.selectedRows.splice(0),e._selectedAll=!1,0==e.restList.items.length?e.setCurrentRow(undefined):e.setCurrentRow(e.restList.items[0]),e.restList});return this.settings&&this.settings.knowTotalRows&&this.restList.count(t.where).then(function(t){e.totalRows=t}),n},vt.prototype._internalBuildFindOptions=function(){var e=this,t={};return this.getOptions&&(t=Object.assign(t,this.getOptions)),this._currentOrderBy&&(t.orderBy=function(t){return e._currentOrderBy.translateFor(t)}),t.limit=this.rowsPerPage,1<this.page&&(t.page=this.page),this.filterHelper.addToFindOptions(t),t},vt.prototype.getFilterWithSelectedRows=function(){var t=this._internalBuildFindOptions();if(0<this.selectedRows.length&&!this._selectedAll){var n=this.selectedRows.map(function(t){return t.columns.idColumn.value});if(t.where){var i=t.where;t.where=function(t){var e;return new C.AndFilter(C.translateEntityWhere(i,t),(e=t.columns.idColumn).isIn.apply(e,S(n)))}}else t.where=function(t){var e;return(e=t.columns.idColumn).isIn.apply(e,S(n))}}return t},Object.defineProperty(vt.prototype,"items",{get:function(){return this.restList?this.restList.items:undefined},enumerable:!0,configurable:!0}),vt);function vt(t,e){var n,i=this;if(this.entityProvider=t,this.settings=e,this.showSelectColumn=!1,this.allowUpdate=!1,this.allowInsert=!1,this.allowDelete=!1,this.showDataArea=!1,this._buttons=[],this.filterHelper=new C.FilterHelper(function(){i.page=1,i.getRecords()}),this.page=1,this.selectedRows=[],this._selectedAll=!1,this.rowsPerPageOptions=[10,25,50,100],e||(this.settings=e={}),this.restList=new C.DataList(t),t&&(this.filterHelper.filterRow=t.create()),this.columns=new F(function(){return i.currentRow},function(){return i.allowUpdate},this.filterHelper,function(){return!!i.currentRow}),this.restList._rowReplacedListeners.push(function(t,e){t==i.currentRow&&i.setCurrentRow(e)}),e){e.columnSettings&&(n=this.columns).add.apply(n,S(e.columnSettings(t.create()))),e.allowCRUD!==undefined&&(e.allowUpdate===undefined&&(e.allowUpdate=e.allowCRUD),e.allowDelete===undefined&&(e.allowDelete=e.allowCRUD),e.allowInsert===undefined&&(e.allowInsert=e.allowCRUD)),e.allowUpdate&&(this.allowUpdate=!0),e.allowDelete&&(this.allowDelete=!0),e.allowInsert&&(this.allowInsert=!0),e.showDataArea&&(this.showDataArea=e.showDataArea),e.showPagination===undefined&&(e.showPagination=!0),e.numOfColumnsInGrid!=undefined&&(this.columns.numOfColumnsInGrid=e.numOfColumnsInGrid),e.rowButtons&&(this._buttons=e.rowButtons),e.rowCssClass&&(this.rowClass=e.rowCssClass),e.saving&&(this.onSavingRow=e.saving),e.enterRow&&(this.onEnterRow=e.enterRow),e.newRow&&(this.onNewRow=e.newRow),e.validation&&(this.onValidate=e.validation),e.caption&&(this.caption=e.caption),!this.caption&&t&&(this.caption=t.create().defs.caption);var r=e.get;r=r||{},e.where&&(r.where=e.where),e.orderBy&&(r.orderBy=e.orderBy),e.rowsInPage!==undefined&&(r.limit=e.rowsInPage),e.page!==undefined&&(r.page=e.page),this.setGetOptions(r)}}t.BusyService=it,t.SelectValueDialogComponent=E,t.DialogConfig=function bt(e){return function(t){return t[ft]=e,t}},t.buildContext=mt,t.openDialog=yt,t.getValueList=function xt(c,d){return R(this,void 0,void 0,function(){var n,i,r,o,s,a,l,u;return I(this,function(t){switch(t.label){case 0:if((d=d||{}).idColumn||(d.idColumn=function(t){return t.columns.idColumn}),!d.captionColumn){r=c.create(),o=d.idColumn(r),s=function(e){if(e!=o)return d.captionColumn=function(t){return t.columns.find(e)},"break"};try{for(a=_(r.columns),l=a.next();!l.done&&(u=l.value,"break"!==s(u));l=a.next());}catch(e){n={error:e}}finally{try{l&&!l.done&&(i=a["return"])&&i.call(a)}finally{if(n)throw n.error}}}return[4,c.find({where:d.where,orderBy:d.orderBy,limit:1e3})];case 1:return[2,t.sent().map(function(t){return{id:d.idColumn(t).value,caption:d.captionColumn(t).value}})]}})})},t.RemultModule=ht,t.RouteHelperService=z,t.SignedInGuard=J,t.NotSignedInGuard=Q,t.GridSettings=wt,t.ColumnCollection=F,t.extend=function Rt(i){return{dataControl:function(e){var t=i[O];if(t){var n=t;t=function(t){n(t),e(t)}}else t=e;return i[O]=t,i}}},t.decorateDataSettings=L,t.__getDataControlSettings=D,t.configDataControlField=O,t.DataAreaSettings=at,t.ɵc=lt,t.ɵb=T,t.ɵg=P,t.ɵd=H,t.ɵe=q,t.ɵh=W,t.ɵa=ot,t.ɵf=et,t.ɵi=ct,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=remult-angular.umd.min.js.map

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

import { Component, Input, ViewChild } from '@angular/core';
import { isFunction } from 'util';
import { DataFilterInfoComponent } from '../data-filter-info/data-filter-info.component';

@@ -151,3 +150,3 @@ import { Context } from '@remult/core';

return "";
if (isFunction(b.cssClass))
if (typeof b.cssClass === 'function')
return ((/** @type {?} */ (b.cssClass)))(row);

@@ -164,3 +163,3 @@ return b.cssClass.toString();

return b.name;
if (isFunction(b.textInMenu)) {
if (typeof b.textInMenu === "function") {
if (!row)

@@ -226,3 +225,3 @@ return '';

r => "btn");
else if (!isFunction(b.cssClass)) {
else if (!(typeof b.cssClass === 'function')) {
/** @type {?} */

@@ -504,2 +503,2 @@ let x = b.cssClass;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkMi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcmVtdWx0L2FuZ3VsYXIvIiwic291cmNlcyI6WyJzcmMvYW5ndWxhci9kYXRlLWdyaWQtMi9kYXRhLWdyaWQyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUFFLFNBQVMsRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFFbEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQVUsT0FBTyxFQUFVLE1BQU0sY0FBYyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUduRCxPQUFPLEVBQWMsWUFBWSxFQUFhLE1BQU0scUJBQXFCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBVW5ELE1BQU0sT0FBTyxrQkFBa0I7Ozs7O0lBQzdCLFlBQW9CLE9BQWdCLEVBQUUsR0FBbUI7UUFBckMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQTJCcEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFtQ1gsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQTRDM0IsZUFBVSxHQUFxQixFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBaUIsRUFBRSxDQUFDO1FBQy9CLFNBQUksR0FBYSxFQUFFLENBQUM7UUFxQnBCLFNBQUksR0FBRyxDQUFDLENBQUM7UUFqSVAsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQztJQUN6QyxDQUFDOzs7OztJQUVLLE1BQU0sQ0FBQyxDQUFzQjs7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OztZQW5RRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLHErUUFBMEM7O2FBRTNDOzs7O1lBWGdCLE9BQU87WUFFZixjQUFjOzs7b0JBb0VwQixLQUFLO3FCQUNMLEtBQUs7NkJBUUwsS0FBSzt5QkFDTCxLQUFLO3NCQUVMLEtBQUs7dUJBQ0wsS0FBSzs2QkFLTCxTQUFTLFNBQUMsdUJBQXVCOzs7O0lBNUNsQyx5Q0FBb0I7O0lBU3BCLDRDQUFzQzs7SUFpQnRDLG1DQUF1Qjs7SUFDdkIsb0NBQXdCOztJQVF4Qiw0Q0FBK0I7O0lBQy9CLHdDQUEyQjs7SUFFM0IscUNBQXNCOztJQUN0QixzQ0FBcUM7O0lBS3JDLDRDQUE0RTs7SUFvQzVFLHdDQUFrQzs7SUFDbEMseUNBQStCOztJQUMvQixrQ0FBb0I7O0lBcUJwQixrQ0FBUzs7Ozs7SUFsSUcscUNBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25DaGFuZ2VzLCBJbnB1dCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAndXRpbCc7XHJcbmltcG9ydCB7IERhdGFGaWx0ZXJJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YS1maWx0ZXItaW5mby9kYXRhLWZpbHRlci1pbmZvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbHVtbiwgQ29udGV4dCwgRW50aXR5IH0gZnJvbSAnQHJlbXVsdC9jb3JlJztcclxuaW1wb3J0IHsgU2VsZWN0VmFsdWVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtZmlsdGVyLWRpYWxvZy9hZGQtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuXHJcbmltcG9ydCB7IERhdGFDb250cm9sU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9kYXRhLWNvbnRyb2wtaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEdyaWRCdXR0b24sIEdyaWRTZXR0aW5ncywgUm93QnV0dG9uIH0gZnJvbSAnLi4vLi4vZ3JpZC1zZXR0aW5ncyc7XHJcbmltcG9ydCB7IG9wZW5EaWFsb2cgfSBmcm9tICcuLi9yZW11bHQtY29yZS5tb2R1bGUnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RhdGEtZ3JpZCcsXHJcbiAgdGVtcGxhdGVVcmw6IGAuL2RhdGEtZ3JpZDIuY29tcG9uZW50Lmh0bWxgLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGEtZ3JpZDIuY29tcG9uZW50LnNjc3MnXVxyXG59XHJcbilcclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFHcmlkMkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250ZXh0OiBDb250ZXh0LCBkaXI6IERpcmVjdGlvbmFsaXR5KSB7XHJcbiAgICB0aGlzLnJpZ2h0VG9MZWZ0ID0gZGlyLnZhbHVlID09PSAncnRsJztcclxuICB9XHJcblxyXG4gIGFzeW5jIGFkZENvbChjOiBEYXRhQ29udHJvbFNldHRpbmdzKSB7XHJcbiAgICBhd2FpdCBvcGVuRGlhbG9nKFNlbGVjdFZhbHVlRGlhbG9nQ29tcG9uZW50LCB4ID0+IHguYXJncyh7XHJcbiAgICAgIHZhbHVlczogdGhpcy5zZXR0aW5ncy5vcmlnTGlzdCxcclxuICAgICAgb25TZWxlY3Q6IGNvbCA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmFkZENvbChjLCBjb2wpO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5udW1PZkNvbHVtbnNJbkdyaWQrKztcclxuICAgICAgfVxyXG4gICAgfSkpO1xyXG5cclxuICB9XHJcbiAgZ2V0Q29sRmxleChtYXA6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIHJldHVybiAnMCAwICcgKyB0aGlzLmdldENvbFdpZHRoKG1hcCk7XHJcbiAgfVxyXG4gIGdldENvbFdpZHRoKG1hcDogRGF0YUNvbnRyb2xTZXR0aW5ncykge1xyXG4gICAgbGV0IHggPSB0aGlzLnNldHRpbmdzLmNvbHVtbnMuX19kYXRhQ29udHJvbFN0eWxlKG1hcCk7XHJcbiAgICBpZiAoIXgpXHJcbiAgICAgIHggPSAnMjAwcHgnO1xyXG4gICAgcmV0dXJuIHg7XHJcbiAgfVxyXG5cclxuICB0ZXN0KCkge1xyXG4gICAgLy90aGlzLmRhdGFHcmlkRGl2Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcclxuICB9XHJcbiAgcmlnaHRUb0xlZnQgPSBmYWxzZTtcclxuXHJcbiAgZ2V0VG90YWxSb3dzKCkge1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MudG90YWxSb3dzKVxyXG4gICAgICByZXR1cm4gTWF0aC5jZWlsKHRoaXMuc2V0dGluZ3MudG90YWxSb3dzIC8gdGhpcy5zZXR0aW5ncy5yb3dzUGVyUGFnZSk7XHJcbiAgICBpZiAodGhpcy5yaWdodFRvTGVmdClcclxuICAgICAgcmV0dXJuICfXqNeR15nXnSc7XHJcbiAgICByZXR1cm4gJ21hbnknO1xyXG4gIH1cclxuICB0ZW1wRHJhZ0NvbHVtbjogKERhdGFDb250cm9sU2V0dGluZ3MpO1xyXG4gIGRyYWdTdGFydCh4OiBEYXRhQ29udHJvbFNldHRpbmdzKSB7XHJcbiAgICB0aGlzLnRlbXBEcmFnQ29sdW1uID0geDtcclxuXHJcbiAgfVxyXG4gIGRyYWdPdmVyKHg6IENvbHVtbiwgZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcbiAgb25Ecm9wKHg6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIGxldCBvbGRQb3NpdGlvbiA9IHRoaXMuc2V0dGluZ3MuY29sdW1ucy5pdGVtcy5pbmRleE9mKHRoaXMudGVtcERyYWdDb2x1bW4pO1xyXG4gICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLml0ZW1zLnNwbGljZShvbGRQb3NpdGlvbiwgMSk7XHJcbiAgICBsZXQgbmV3UG9zaXRpb24gPSB0aGlzLnNldHRpbmdzLmNvbHVtbnMuaXRlbXMuaW5kZXhPZih4KTtcclxuICAgIGlmIChuZXdQb3NpdGlvbiA9PSBvbGRQb3NpdGlvbilcclxuICAgICAgbmV3UG9zaXRpb24rKztcclxuICAgIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5pdGVtcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIHRoaXMudGVtcERyYWdDb2x1bW4pO1xyXG4gICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmNvbExpc3RDaGFuZ2VkKCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmc7XHJcbiAgX2dldEhlaWdodCgpIHtcclxuICAgIGlmICh0aGlzLmhlaWdodCkge1xyXG4gICAgICBpZiAoKCt0aGlzLmhlaWdodCkudG9TdHJpbmcoKSA9PSB0aGlzLmhlaWdodClcclxuICAgICAgICByZXR1cm4gdGhpcy5oZWlnaHQgKyBcInB4XCI7XHJcbiAgICAgIHJldHVybiB0aGlzLmhlaWdodDtcclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgZGlzcGxheUJ1dHRvbnMgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlWQ1IgPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSByZWNvcmRzOiBhbnk7XHJcbiAgQElucHV0KCkgc2V0dGluZ3M6IEdyaWRTZXR0aW5nczxhbnk+O1xyXG4gIGlzRmlsdGVyZWQoYzogQ29sdW1uKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmZpbHRlckhlbHBlci5pc0ZpbHRlcmVkKGMpO1xyXG4gIH1cclxuICAvL0B0cy1pZ25vcmVcclxuICBAVmlld0NoaWxkKERhdGFGaWx0ZXJJbmZvQ29tcG9uZW50KSBkYXRhRmlsdGVySW5mbzogRGF0YUZpbHRlckluZm9Db21wb25lbnQ7XHJcbiAgc2hvd0ZpbHRlckNvbHVtbkRpYWxvZyhkYXRhQ29udHJvbFNldHRpbmdzOiBEYXRhQ29udHJvbFNldHRpbmdzKSB7XHJcbiAgICB0aGlzLnNldHRpbmdzLmluaXRPcmlnTGlzdCgpO1xyXG4gICAgdGhpcy5kYXRhRmlsdGVySW5mby5lZGl0RmlsdGVyKGRhdGFDb250cm9sU2V0dGluZ3MuY29sdW1uKTtcclxuICB9XHJcblxyXG4gIGdldEJ1dHRvbkNzc0NsYXNzKGI6IFJvd0J1dHRvbjxhbnk+LCByb3c6IGFueSkge1xyXG4gICAgaWYgKCFiLmNzc0NsYXNzKVxyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIGlmIChpc0Z1bmN0aW9uKGIuY3NzQ2xhc3MpKVxyXG4gICAgICByZXR1cm4gKDwoKHJvdzogYW55KSA9PiBzdHJpbmcpPmIuY3NzQ2xhc3MpKHJvdyk7XHJcbiAgICByZXR1cm4gYi5jc3NDbGFzcy50b1N0cmluZygpO1xyXG5cclxuICB9XHJcbiAgZ2V0QnV0dG9uVGV4dChiOiBSb3dCdXR0b248YW55Piwgcm93OiBhbnkpIHtcclxuICAgIGlmICghYi50ZXh0SW5NZW51KVxyXG4gICAgICByZXR1cm4gYi5uYW1lO1xyXG4gICAgaWYgKGlzRnVuY3Rpb24oYi50ZXh0SW5NZW51KSkge1xyXG4gICAgICBpZiAoIXJvdylcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICByZXR1cm4gYi50ZXh0SW5NZW51KHJvdyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gPHN0cmluZz5iLnRleHRJbk1lbnU7XHJcblxyXG5cclxuICB9XHJcbiAgY2xpY2tPbnNlbGVjdENoZWNrYm94Rm9yKHJvdzogYW55LCBlOiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLnNldHRpbmdzLmNsaWNrT25zZWxlY3RDaGVja2JveEZvcihyb3csIGUuc2hpZnRLZXkpO1xyXG4gIH1cclxuICBoYXNWaXNpYmxlQnV0dG9uKHJlY29yZCkge1xyXG4gICAgcmV0dXJuIHRoaXMucm93QnV0dG9ucy5maW5kKGIgPT4gYi52aXNpYmxlKHJlY29yZCkpO1xyXG4gIH1cclxuICBoYXNWaXNpYmxlR3JpZEJ1dHRvbnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5ncmlkQnV0dG9ucy5maW5kKGIgPT4gYi52aXNpYmxlKCkpO1xyXG4gIH1cclxuICByb3dCdXR0b25zOiBSb3dCdXR0b248YW55PltdID0gW107XHJcbiAgZ3JpZEJ1dHRvbnM6IEdyaWRCdXR0b25bXSA9IFtdO1xyXG4gIGtleXM6IHN0cmluZ1tdID0gW107XHJcbiAgcHJpdmF0ZSBhZGRCdXR0b24oYjogUm93QnV0dG9uPEVudGl0eT4pIHtcclxuICAgIGlmICghYi5jbGljaylcclxuICAgICAgYi5jbGljayA9IChyKSA9PiB7IH07XHJcbiAgICBpZiAoIWIudmlzaWJsZSlcclxuICAgICAgYi52aXNpYmxlID0gciA9PiB0cnVlO1xyXG4gICAgaWYgKCFiLmNzc0NsYXNzKVxyXG4gICAgICBiLmNzc0NsYXNzID0gciA9PiBcImJ0blwiO1xyXG4gICAgZWxzZSBpZiAoIWlzRnVuY3Rpb24oYi5jc3NDbGFzcykpIHtcclxuICAgICAgbGV0IHggPSBiLmNzc0NsYXNzO1xyXG4gICAgICBiLmNzc0NsYXNzID0gPGFueT4oKHI6IGFueSkgPT4geCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yb3dCdXR0b25zLnB1c2goYik7XHJcbiAgICByZXR1cm4gYjtcclxuXHJcbiAgfVxyXG4gIHJvd0NsaWNrZWQocm93OiBhbnkpIHtcclxuICAgIHRoaXMuc2V0dGluZ3Muc2V0Q3VycmVudFJvdyhyb3cpO1xyXG4gIH1cclxuXHJcbiAgcGFnZSA9IDE7XHJcbiAgbmV4dFBhZ2UoKSB7XHJcbiAgICB0aGlzLnBhZ2UrKztcclxuICB9XHJcbiAgcHJldmlvdXNQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMucGFnZSA8PSAxKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB0aGlzLnBhZ2UtLTtcclxuICB9XHJcblxyXG5cclxuICBzaG93U2F2ZUFsbEJ1dHRvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLml0ZW1zLmZpbmQoeCA9PiB4Lndhc0NoYW5nZWQoKSlcclxuICB9XHJcbiAgc2F2ZUFsbFRleHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yaWdodFRvTGVmdCA/ICgn16nXnteV16ggJyArIHRoaXMuc2V0dGluZ3MuaXRlbXMuZmlsdGVyKHggPT4geC53YXNDaGFuZ2VkKCkpLmxlbmd0aCArICcg16nXldeo15XXqicpIDpcclxuICAgICAgKCdzYXZlICcgKyB0aGlzLnNldHRpbmdzLml0ZW1zLmZpbHRlcih4ID0+IHgud2FzQ2hhbmdlZCgpKS5sZW5ndGggKyAnIHJvd3MnKTtcclxuICB9XHJcbiAgYXN5bmMgc2F2ZUFsbENsaWNrKCkge1xyXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5zZXR0aW5ncy5pdGVtcy5maWx0ZXIoeCA9PiB4Lndhc0NoYW5nZWQoKSkubWFwKHggPT4geC5zYXZlKCkpKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG5cclxuICAgIGlmICghdGhpcy5zZXR0aW5ncylcclxuICAgICAgcmV0dXJuO1xyXG5cclxuXHJcbiAgICB0aGlzLnJvd0J1dHRvbnMgPSBbXTtcclxuICAgIHRoaXMuZ3JpZEJ1dHRvbnMgPSBbXTtcclxuICAgIHRoaXMuZ3JpZEJ1dHRvbnMucHVzaCh7XHJcbiAgICAgIHZpc2libGU6ICgpID0+IHRoaXMuc2hvd1NhdmVBbGxCdXR0b24oKSxcclxuICAgICAgdGV4dEluTWVudTogKCkgPT4gdGhpcy5zYXZlQWxsVGV4dCgpLFxyXG4gICAgICBjbGljazogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZUFsbENsaWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3Muc2V0dGluZ3MuZ3JpZEJ1dHRvbnMpIHtcclxuICAgICAgdGhpcy5ncmlkQnV0dG9ucy5wdXNoKC4uLnRoaXMuc2V0dGluZ3Muc2V0dGluZ3MuZ3JpZEJ1dHRvbnMubWFwKHggPT4ge1xyXG4gICAgICAgIGlmICgheC52aXNpYmxlKVxyXG4gICAgICAgICAgeC52aXNpYmxlID0gKCkgPT4gdHJ1ZTtcclxuICAgICAgICByZXR1cm4geDtcclxuICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNldHRpbmdzLmFsbG93VXBkYXRlKSB7XHJcbiAgICAgIHRoaXMuYWRkQnV0dG9uKHtcclxuICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgIGljb246ICdjaGVjaycsXHJcbiAgICAgICAgY3NzQ2xhc3M6IFwiZ2x5cGhpY29uIGdseXBoaWNvbi1vayBidG4tc3VjY2Vzc1wiLFxyXG4gICAgICAgIHZpc2libGU6IHIgPT4gci53YXNDaGFuZ2VkKCksXHJcbiAgICAgICAgc2hvd0luTGluZTogdHJ1ZSxcclxuICAgICAgICB0ZXh0SW5NZW51OiAoKSA9PiB0aGlzLnJpZ2h0VG9MZWZ0ID8gJ9ep157XldeoJyA6ICdzYXZlJyxcclxuICAgICAgICBjbGljazogciA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLl9kb1NhdmluZ1JvdyhyKTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuYWRkQnV0dG9uKHtcclxuICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgIGljb246ICdjYW5jZWwnLFxyXG4gICAgICAgIGNzc0NsYXNzOiBcImJ0biBidG4tZGFuZ2VyIGdseXBoaWNvbiBnbHlwaGljb24tYmFuLWNpcmNsZVwiLFxyXG4gICAgICAgIHZpc2libGU6IHIgPT4gci53YXNDaGFuZ2VkKCksXHJcbiAgICAgICAgc2hvd0luTGluZTogdHJ1ZSxcclxuICAgICAgICB0ZXh0SW5NZW51OiAoKSA9PiB0aGlzLnJpZ2h0VG9MZWZ0ID8gJ9eR15jXnCDXqdeZ16DXldeZ150nIDogJ2NhbmNlbCcsXHJcblxyXG4gICAgICAgIGNsaWNrOiByID0+IHtcclxuICAgICAgICAgIHIudW5kb0NoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5hbGxvd0RlbGV0ZSlcclxuICAgICAgdGhpcy5hZGRCdXR0b24oe1xyXG4gICAgICAgIG5hbWU6ICcnLFxyXG4gICAgICAgIHZpc2libGU6IChyKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gciAmJiAhci5pc05ldygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAsIGljb246ICdkZWxldGUnLFxyXG4gICAgICAgIHNob3dJbkxpbmU6IHRydWUsXHJcbiAgICAgICAgdGV4dEluTWVudTogKCkgPT4gdGhpcy5yaWdodFRvTGVmdCA/ICfXnteX16cnIDogJ2RlbGV0ZScsXHJcbiAgICAgICAgY2xpY2s6IGFzeW5jIHIgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3Muc2V0dGluZ3MuY29uZmlybURlbGV0ZSkge1xyXG5cclxuICAgICAgICAgICAgaWYgKCFhd2FpdCB0aGlzLnNldHRpbmdzLnNldHRpbmdzLmNvbmZpcm1EZWxldGUocikpXHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgci5kZWxldGUoKTtcclxuXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgY3NzQ2xhc3M6IFwiYnRuLWRhbmdlciBnbHlwaGljb24gZ2x5cGhpY29uLXRyYXNoXCJcclxuICAgICAgfSk7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5fYnV0dG9ucylcclxuICAgICAgZm9yIChsZXQgYiBvZiB0aGlzLnNldHRpbmdzLl9idXR0b25zKSB7XHJcbiAgICAgICAgdGhpcy5hZGRCdXR0b24oYik7XHJcbiAgICAgIH1cclxuICAgIGlmICghdGhpcy5yZWNvcmRzICYmIHRoaXMuc2V0dGluZ3MpIHtcclxuICAgICAgdGhpcy5zZXR0aW5ncy5nZXRSZWNvcmRzKCkudGhlbigocjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRzID0gcjtcclxuXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBfZ2V0Um93Q2xhc3Mocm93OiBhbnkpIHtcclxuICAgIGxldCByID0gJ2RhdGFHcmlkUm93ICc7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5yb3dDbGFzcylcclxuICAgICAgciArPSB0aGlzLnNldHRpbmdzLnJvd0NsYXNzKHJvdyk7XHJcbiAgICBpZiAocm93ID09IHRoaXMuc2V0dGluZ3MuY3VycmVudFJvdylcclxuICAgICAgciArPSBcIiBhY3RpdmVcIjtcclxuXHJcbiAgICByZXR1cm4gcjtcclxuICB9XHJcbiAgX2dldFJvd0NvbHVtbkNsYXNzKGNvbDogYW55LCByb3c6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5fZ2V0Q29sdW1uQ2xhc3MoY29sLCByb3cpICsgJyBkYXRhR3JpZERhdGFDZWxsJztcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkMi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcmVtdWx0L2FuZ3VsYXIvIiwic291cmNlcyI6WyJzcmMvYW5ndWxhci9kYXRlLWdyaWQtMi9kYXRhLWdyaWQyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQVUsT0FBTyxFQUFVLE1BQU0sY0FBYyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUduRCxPQUFPLEVBQWMsWUFBWSxFQUFhLE1BQU0scUJBQXFCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBVW5ELE1BQU0sT0FBTyxrQkFBa0I7Ozs7O0lBQzdCLFlBQW9CLE9BQWdCLEVBQUUsR0FBbUI7UUFBckMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQTJCcEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFtQ1gsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQTRDM0IsZUFBVSxHQUFxQixFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBaUIsRUFBRSxDQUFDO1FBQy9CLFNBQUksR0FBYSxFQUFFLENBQUM7UUFxQnBCLFNBQUksR0FBRyxDQUFDLENBQUM7UUFqSVAsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQztJQUN6QyxDQUFDOzs7OztJQUVLLE1BQU0sQ0FBQyxDQUFzQjs7WUFDakMsTUFBTSxVQUFVLENBQUMsMEJBQTBCOzs7O1lBQUUsQ0FBQyxD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RSxXQUFXO2dCQUNyQixxK1FBQTBDOzthQUUzQzs7OztZQVhnQixPQUFPO1lBRWYsY0FBYzs7O29CQW9FcEIsS0FBSztxQkFDTCxLQUFLOzZCQVFMLEtBQUs7eUJBQ0wsS0FBSztzQkFFTCxLQUFLO3VCQUNMLEtBQUs7NkJBS0wsU0FBUyxTQUFDLHVCQUF1Qjs7OztJQTVDbEMseUNBQW9COztJQVNwQiw0Q0FBc0M7O0lBaUJ0QyxtQ0FBdUI7O0lBQ3ZCLG9DQUF3Qjs7SUFReEIsNENBQStCOztJQUMvQix3Q0FBMkI7O0lBRTNCLHFDQUFzQjs7SUFDdEIsc0NBQXFDOztJQUtyQyw0Q0FBNEU7O0lBb0M1RSx3Q0FBa0M7O0lBQ2xDLHlDQUErQjs7SUFDL0Isa0NBQW9COztJQXFCcEIsa0NBQVM7Ozs7O0lBbElHLHFDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uQ2hhbmdlcywgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuXHJcbmltcG9ydCB7IERhdGFGaWx0ZXJJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YS1maWx0ZXItaW5mby9kYXRhLWZpbHRlci1pbmZvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbHVtbiwgQ29udGV4dCwgRW50aXR5IH0gZnJvbSAnQHJlbXVsdC9jb3JlJztcclxuaW1wb3J0IHsgU2VsZWN0VmFsdWVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtZmlsdGVyLWRpYWxvZy9hZGQtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuXHJcbmltcG9ydCB7IERhdGFDb250cm9sU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9kYXRhLWNvbnRyb2wtaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEdyaWRCdXR0b24sIEdyaWRTZXR0aW5ncywgUm93QnV0dG9uIH0gZnJvbSAnLi4vLi4vZ3JpZC1zZXR0aW5ncyc7XHJcbmltcG9ydCB7IG9wZW5EaWFsb2cgfSBmcm9tICcuLi9yZW11bHQtY29yZS5tb2R1bGUnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RhdGEtZ3JpZCcsXHJcbiAgdGVtcGxhdGVVcmw6IGAuL2RhdGEtZ3JpZDIuY29tcG9uZW50Lmh0bWxgLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGEtZ3JpZDIuY29tcG9uZW50LnNjc3MnXVxyXG59XHJcbilcclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFHcmlkMkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250ZXh0OiBDb250ZXh0LCBkaXI6IERpcmVjdGlvbmFsaXR5KSB7XHJcbiAgICB0aGlzLnJpZ2h0VG9MZWZ0ID0gZGlyLnZhbHVlID09PSAncnRsJztcclxuICB9XHJcblxyXG4gIGFzeW5jIGFkZENvbChjOiBEYXRhQ29udHJvbFNldHRpbmdzKSB7XHJcbiAgICBhd2FpdCBvcGVuRGlhbG9nKFNlbGVjdFZhbHVlRGlhbG9nQ29tcG9uZW50LCB4ID0+IHguYXJncyh7XHJcbiAgICAgIHZhbHVlczogdGhpcy5zZXR0aW5ncy5vcmlnTGlzdCxcclxuICAgICAgb25TZWxlY3Q6IGNvbCA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmFkZENvbChjLCBjb2wpO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5udW1PZkNvbHVtbnNJbkdyaWQrKztcclxuICAgICAgfVxyXG4gICAgfSkpO1xyXG5cclxuICB9XHJcbiAgZ2V0Q29sRmxleChtYXA6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIHJldHVybiAnMCAwICcgKyB0aGlzLmdldENvbFdpZHRoKG1hcCk7XHJcbiAgfVxyXG4gIGdldENvbFdpZHRoKG1hcDogRGF0YUNvbnRyb2xTZXR0aW5ncykge1xyXG4gICAgbGV0IHggPSB0aGlzLnNldHRpbmdzLmNvbHVtbnMuX19kYXRhQ29udHJvbFN0eWxlKG1hcCk7XHJcbiAgICBpZiAoIXgpXHJcbiAgICAgIHggPSAnMjAwcHgnO1xyXG4gICAgcmV0dXJuIHg7XHJcbiAgfVxyXG5cclxuICB0ZXN0KCkge1xyXG4gICAgLy90aGlzLmRhdGFHcmlkRGl2Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcclxuICB9XHJcbiAgcmlnaHRUb0xlZnQgPSBmYWxzZTtcclxuXHJcbiAgZ2V0VG90YWxSb3dzKCkge1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MudG90YWxSb3dzKVxyXG4gICAgICByZXR1cm4gTWF0aC5jZWlsKHRoaXMuc2V0dGluZ3MudG90YWxSb3dzIC8gdGhpcy5zZXR0aW5ncy5yb3dzUGVyUGFnZSk7XHJcbiAgICBpZiAodGhpcy5yaWdodFRvTGVmdClcclxuICAgICAgcmV0dXJuICfXqNeR15nXnSc7XHJcbiAgICByZXR1cm4gJ21hbnknO1xyXG4gIH1cclxuICB0ZW1wRHJhZ0NvbHVtbjogKERhdGFDb250cm9sU2V0dGluZ3MpO1xyXG4gIGRyYWdTdGFydCh4OiBEYXRhQ29udHJvbFNldHRpbmdzKSB7XHJcbiAgICB0aGlzLnRlbXBEcmFnQ29sdW1uID0geDtcclxuXHJcbiAgfVxyXG4gIGRyYWdPdmVyKHg6IENvbHVtbiwgZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcbiAgb25Ecm9wKHg6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIGxldCBvbGRQb3NpdGlvbiA9IHRoaXMuc2V0dGluZ3MuY29sdW1ucy5pdGVtcy5pbmRleE9mKHRoaXMudGVtcERyYWdDb2x1bW4pO1xyXG4gICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLml0ZW1zLnNwbGljZShvbGRQb3NpdGlvbiwgMSk7XHJcbiAgICBsZXQgbmV3UG9zaXRpb24gPSB0aGlzLnNldHRpbmdzLmNvbHVtbnMuaXRlbXMuaW5kZXhPZih4KTtcclxuICAgIGlmIChuZXdQb3NpdGlvbiA9PSBvbGRQb3NpdGlvbilcclxuICAgICAgbmV3UG9zaXRpb24rKztcclxuICAgIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5pdGVtcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIHRoaXMudGVtcERyYWdDb2x1bW4pO1xyXG4gICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmNvbExpc3RDaGFuZ2VkKCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmc7XHJcbiAgX2dldEhlaWdodCgpIHtcclxuICAgIGlmICh0aGlzLmhlaWdodCkge1xyXG4gICAgICBpZiAoKCt0aGlzLmhlaWdodCkudG9TdHJpbmcoKSA9PSB0aGlzLmhlaWdodClcclxuICAgICAgICByZXR1cm4gdGhpcy5oZWlnaHQgKyBcInB4XCI7XHJcbiAgICAgIHJldHVybiB0aGlzLmhlaWdodDtcclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgZGlzcGxheUJ1dHRvbnMgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlWQ1IgPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSByZWNvcmRzOiBhbnk7XHJcbiAgQElucHV0KCkgc2V0dGluZ3M6IEdyaWRTZXR0aW5nczxhbnk+O1xyXG4gIGlzRmlsdGVyZWQoYzogQ29sdW1uKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmZpbHRlckhlbHBlci5pc0ZpbHRlcmVkKGMpO1xyXG4gIH1cclxuICAvL0B0cy1pZ25vcmVcclxuICBAVmlld0NoaWxkKERhdGFGaWx0ZXJJbmZvQ29tcG9uZW50KSBkYXRhRmlsdGVySW5mbzogRGF0YUZpbHRlckluZm9Db21wb25lbnQ7XHJcbiAgc2hvd0ZpbHRlckNvbHVtbkRpYWxvZyhkYXRhQ29udHJvbFNldHRpbmdzOiBEYXRhQ29udHJvbFNldHRpbmdzKSB7XHJcbiAgICB0aGlzLnNldHRpbmdzLmluaXRPcmlnTGlzdCgpO1xyXG4gICAgdGhpcy5kYXRhRmlsdGVySW5mby5lZGl0RmlsdGVyKGRhdGFDb250cm9sU2V0dGluZ3MuY29sdW1uKTtcclxuICB9XHJcblxyXG4gIGdldEJ1dHRvbkNzc0NsYXNzKGI6IFJvd0J1dHRvbjxhbnk+LCByb3c6IGFueSkge1xyXG4gICAgaWYgKCFiLmNzc0NsYXNzKVxyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIGlmICh0eXBlb2YgYi5jc3NDbGFzcyA9PT0gJ2Z1bmN0aW9uJylcclxuICAgICAgcmV0dXJuICg8KChyb3c6IGFueSkgPT4gc3RyaW5nKT5iLmNzc0NsYXNzKShyb3cpO1xyXG4gICAgcmV0dXJuIGIuY3NzQ2xhc3MudG9TdHJpbmcoKTtcclxuXHJcbiAgfVxyXG4gIGdldEJ1dHRvblRleHQoYjogUm93QnV0dG9uPGFueT4sIHJvdzogYW55KSB7XHJcbiAgICBpZiAoIWIudGV4dEluTWVudSlcclxuICAgICAgcmV0dXJuIGIubmFtZTtcclxuICAgIGlmICh0eXBlb2YgYi50ZXh0SW5NZW51ID09PVwiZnVuY3Rpb25cIikge1xyXG4gICAgICBpZiAoIXJvdylcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICByZXR1cm4gYi50ZXh0SW5NZW51KHJvdyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gPHN0cmluZz5iLnRleHRJbk1lbnU7XHJcblxyXG5cclxuICB9XHJcbiAgY2xpY2tPbnNlbGVjdENoZWNrYm94Rm9yKHJvdzogYW55LCBlOiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLnNldHRpbmdzLmNsaWNrT25zZWxlY3RDaGVja2JveEZvcihyb3csIGUuc2hpZnRLZXkpO1xyXG4gIH1cclxuICBoYXNWaXNpYmxlQnV0dG9uKHJlY29yZCkge1xyXG4gICAgcmV0dXJuIHRoaXMucm93QnV0dG9ucy5maW5kKGIgPT4gYi52aXNpYmxlKHJlY29yZCkpO1xyXG4gIH1cclxuICBoYXNWaXNpYmxlR3JpZEJ1dHRvbnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5ncmlkQnV0dG9ucy5maW5kKGIgPT4gYi52aXNpYmxlKCkpO1xyXG4gIH1cclxuICByb3dCdXR0b25zOiBSb3dCdXR0b248YW55PltdID0gW107XHJcbiAgZ3JpZEJ1dHRvbnM6IEdyaWRCdXR0b25bXSA9IFtdO1xyXG4gIGtleXM6IHN0cmluZ1tdID0gW107XHJcbiAgcHJpdmF0ZSBhZGRCdXR0b24oYjogUm93QnV0dG9uPEVudGl0eT4pIHtcclxuICAgIGlmICghYi5jbGljaylcclxuICAgICAgYi5jbGljayA9IChyKSA9PiB7IH07XHJcbiAgICBpZiAoIWIudmlzaWJsZSlcclxuICAgICAgYi52aXNpYmxlID0gciA9PiB0cnVlO1xyXG4gICAgaWYgKCFiLmNzc0NsYXNzKVxyXG4gICAgICBiLmNzc0NsYXNzID0gciA9PiBcImJ0blwiO1xyXG4gICAgZWxzZSBpZiAoISh0eXBlb2YgYi5jc3NDbGFzcyA9PT0gJ2Z1bmN0aW9uJykpIHtcclxuICAgICAgbGV0IHggPSBiLmNzc0NsYXNzO1xyXG4gICAgICBiLmNzc0NsYXNzID0gPGFueT4oKHI6IGFueSkgPT4geCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yb3dCdXR0b25zLnB1c2goYik7XHJcbiAgICByZXR1cm4gYjtcclxuXHJcbiAgfVxyXG4gIHJvd0NsaWNrZWQocm93OiBhbnkpIHtcclxuICAgIHRoaXMuc2V0dGluZ3Muc2V0Q3VycmVudFJvdyhyb3cpO1xyXG4gIH1cclxuXHJcbiAgcGFnZSA9IDE7XHJcbiAgbmV4dFBhZ2UoKSB7XHJcbiAgICB0aGlzLnBhZ2UrKztcclxuICB9XHJcbiAgcHJldmlvdXNQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMucGFnZSA8PSAxKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB0aGlzLnBhZ2UtLTtcclxuICB9XHJcblxyXG5cclxuICBzaG93U2F2ZUFsbEJ1dHRvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLml0ZW1zLmZpbmQoeCA9PiB4Lndhc0NoYW5nZWQoKSlcclxuICB9XHJcbiAgc2F2ZUFsbFRleHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yaWdodFRvTGVmdCA/ICgn16nXnteV16ggJyArIHRoaXMuc2V0dGluZ3MuaXRlbXMuZmlsdGVyKHggPT4geC53YXNDaGFuZ2VkKCkpLmxlbmd0aCArICcg16nXldeo15XXqicpIDpcclxuICAgICAgKCdzYXZlICcgKyB0aGlzLnNldHRpbmdzLml0ZW1zLmZpbHRlcih4ID0+IHgud2FzQ2hhbmdlZCgpKS5sZW5ndGggKyAnIHJvd3MnKTtcclxuICB9XHJcbiAgYXN5bmMgc2F2ZUFsbENsaWNrKCkge1xyXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5zZXR0aW5ncy5pdGVtcy5maWx0ZXIoeCA9PiB4Lndhc0NoYW5nZWQoKSkubWFwKHggPT4geC5zYXZlKCkpKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG5cclxuICAgIGlmICghdGhpcy5zZXR0aW5ncylcclxuICAgICAgcmV0dXJuO1xyXG5cclxuXHJcbiAgICB0aGlzLnJvd0J1dHRvbnMgPSBbXTtcclxuICAgIHRoaXMuZ3JpZEJ1dHRvbnMgPSBbXTtcclxuICAgIHRoaXMuZ3JpZEJ1dHRvbnMucHVzaCh7XHJcbiAgICAgIHZpc2libGU6ICgpID0+IHRoaXMuc2hvd1NhdmVBbGxCdXR0b24oKSxcclxuICAgICAgdGV4dEluTWVudTogKCkgPT4gdGhpcy5zYXZlQWxsVGV4dCgpLFxyXG4gICAgICBjbGljazogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZUFsbENsaWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3Muc2V0dGluZ3MuZ3JpZEJ1dHRvbnMpIHtcclxuICAgICAgdGhpcy5ncmlkQnV0dG9ucy5wdXNoKC4uLnRoaXMuc2V0dGluZ3Muc2V0dGluZ3MuZ3JpZEJ1dHRvbnMubWFwKHggPT4ge1xyXG4gICAgICAgIGlmICgheC52aXNpYmxlKVxyXG4gICAgICAgICAgeC52aXNpYmxlID0gKCkgPT4gdHJ1ZTtcclxuICAgICAgICByZXR1cm4geDtcclxuICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNldHRpbmdzLmFsbG93VXBkYXRlKSB7XHJcbiAgICAgIHRoaXMuYWRkQnV0dG9uKHtcclxuICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgIGljb246ICdjaGVjaycsXHJcbiAgICAgICAgY3NzQ2xhc3M6IFwiZ2x5cGhpY29uIGdseXBoaWNvbi1vayBidG4tc3VjY2Vzc1wiLFxyXG4gICAgICAgIHZpc2libGU6IHIgPT4gci53YXNDaGFuZ2VkKCksXHJcbiAgICAgICAgc2hvd0luTGluZTogdHJ1ZSxcclxuICAgICAgICB0ZXh0SW5NZW51OiAoKSA9PiB0aGlzLnJpZ2h0VG9MZWZ0ID8gJ9ep157XldeoJyA6ICdzYXZlJyxcclxuICAgICAgICBjbGljazogciA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLl9kb1NhdmluZ1JvdyhyKTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuYWRkQnV0dG9uKHtcclxuICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgIGljb246ICdjYW5jZWwnLFxyXG4gICAgICAgIGNzc0NsYXNzOiBcImJ0biBidG4tZGFuZ2VyIGdseXBoaWNvbiBnbHlwaGljb24tYmFuLWNpcmNsZVwiLFxyXG4gICAgICAgIHZpc2libGU6IHIgPT4gci53YXNDaGFuZ2VkKCksXHJcbiAgICAgICAgc2hvd0luTGluZTogdHJ1ZSxcclxuICAgICAgICB0ZXh0SW5NZW51OiAoKSA9PiB0aGlzLnJpZ2h0VG9MZWZ0ID8gJ9eR15jXnCDXqdeZ16DXldeZ150nIDogJ2NhbmNlbCcsXHJcblxyXG4gICAgICAgIGNsaWNrOiByID0+IHtcclxuICAgICAgICAgIHIudW5kb0NoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5hbGxvd0RlbGV0ZSlcclxuICAgICAgdGhpcy5hZGRCdXR0b24oe1xyXG4gICAgICAgIG5hbWU6ICcnLFxyXG4gICAgICAgIHZpc2libGU6IChyKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gciAmJiAhci5pc05ldygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAsIGljb246ICdkZWxldGUnLFxyXG4gICAgICAgIHNob3dJbkxpbmU6IHRydWUsXHJcbiAgICAgICAgdGV4dEluTWVudTogKCkgPT4gdGhpcy5yaWdodFRvTGVmdCA/ICfXnteX16cnIDogJ2RlbGV0ZScsXHJcbiAgICAgICAgY2xpY2s6IGFzeW5jIHIgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3Muc2V0dGluZ3MuY29uZmlybURlbGV0ZSkge1xyXG5cclxuICAgICAgICAgICAgaWYgKCFhd2FpdCB0aGlzLnNldHRpbmdzLnNldHRpbmdzLmNvbmZpcm1EZWxldGUocikpXHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgci5kZWxldGUoKTtcclxuXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgY3NzQ2xhc3M6IFwiYnRuLWRhbmdlciBnbHlwaGljb24gZ2x5cGhpY29uLXRyYXNoXCJcclxuICAgICAgfSk7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5fYnV0dG9ucylcclxuICAgICAgZm9yIChsZXQgYiBvZiB0aGlzLnNldHRpbmdzLl9idXR0b25zKSB7XHJcbiAgICAgICAgdGhpcy5hZGRCdXR0b24oYik7XHJcbiAgICAgIH1cclxuICAgIGlmICghdGhpcy5yZWNvcmRzICYmIHRoaXMuc2V0dGluZ3MpIHtcclxuICAgICAgdGhpcy5zZXR0aW5ncy5nZXRSZWNvcmRzKCkudGhlbigocjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRzID0gcjtcclxuXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBfZ2V0Um93Q2xhc3Mocm93OiBhbnkpIHtcclxuICAgIGxldCByID0gJ2RhdGFHcmlkUm93ICc7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5yb3dDbGFzcylcclxuICAgICAgciArPSB0aGlzLnNldHRpbmdzLnJvd0NsYXNzKHJvdyk7XHJcbiAgICBpZiAocm93ID09IHRoaXMuc2V0dGluZ3MuY3VycmVudFJvdylcclxuICAgICAgciArPSBcIiBhY3RpdmVcIjtcclxuXHJcbiAgICByZXR1cm4gcjtcclxuICB9XHJcbiAgX2dldFJvd0NvbHVtbkNsYXNzKGNvbDogYW55LCByb3c6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5fZ2V0Q29sdW1uQ2xhc3MoY29sLCByb3cpICsgJyBkYXRhR3JpZERhdGFDZWxsJztcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=

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

import { Component, Input, ViewChild } from '@angular/core';
import { isFunction } from 'util';
import { DataFilterInfoComponent } from '../data-filter-info/data-filter-info.component';

@@ -202,3 +201,3 @@ import { Context } from '@remult/core';

return "";
if (isFunction(b.cssClass))
if (typeof b.cssClass === 'function')
return ((/** @type {?} */ (b.cssClass)))(row);

@@ -220,3 +219,3 @@ return b.cssClass.toString();

return b.name;
if (isFunction(b.textInMenu)) {
if (typeof b.textInMenu === "function") {
if (!row)

@@ -299,3 +298,3 @@ return '';

function (r) { return "btn"; });
else if (!isFunction(b.cssClass)) {
else if (!(typeof b.cssClass === 'function')) {
/** @type {?} */

@@ -645,2 +644,2 @@ var x_1 = b.cssClass;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkMi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcmVtdWx0L2FuZ3VsYXIvIiwic291cmNlcyI6WyJzcmMvYW5ndWxhci9kYXRlLWdyaWQtMi9kYXRhLWdyaWQyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUFFLFNBQVMsRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFFbEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQVUsT0FBTyxFQUFVLE1BQU0sY0FBYyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUduRCxPQUFPLEVBQWMsWUFBWSxFQUFhLE1BQU0scUJBQXFCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25EO0lBVUUsNEJBQW9CLE9BQWdCLEVBQUUsR0FBbUI7UUFBckMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQTJCcEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFtQ1gsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQTRDM0IsZUFBVSxHQUFxQixFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBaUIsRUFBRSxDQUFDO1FBQy9CLFNBQUksR0FBYSxFQUFFLENBQUM7UUFxQnBCLFNBQUksR0FBRyxDQUFDLENBQUM7UUFqSVAsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQztJQUN6QyxDQUFDOzs7OztJQUVLLG1DQUFNOzs7O0lBQVosVUFBYSxDQUFzQjs7Ozs7NEJBQ2pDLHFC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clxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkNoYW5nZXMsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICd1dGlsJztcclxuaW1wb3J0IHsgRGF0YUZpbHRlckluZm9Db21wb25lbnQgfSBmcm9tICcuLi9kYXRhLWZpbHRlci1pbmZvL2RhdGEtZmlsdGVyLWluZm8uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sdW1uLCBDb250ZXh0LCBFbnRpdHkgfSBmcm9tICdAcmVtdWx0L2NvcmUnO1xyXG5pbXBvcnQgeyBTZWxlY3RWYWx1ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1maWx0ZXItZGlhbG9nL2FkZC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5cclxuaW1wb3J0IHsgRGF0YUNvbnRyb2xTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2RhdGEtY29udHJvbC1pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgR3JpZEJ1dHRvbiwgR3JpZFNldHRpbmdzLCBSb3dCdXR0b24gfSBmcm9tICcuLi8uLi9ncmlkLXNldHRpbmdzJztcclxuaW1wb3J0IHsgb3BlbkRpYWxvZyB9IGZyb20gJy4uL3JlbXVsdC1jb3JlLm1vZHVsZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGF0YS1ncmlkJyxcclxuICB0ZW1wbGF0ZVVybDogYC4vZGF0YS1ncmlkMi5jb21wb25lbnQuaHRtbGAsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS1ncmlkMi5jb21wb25lbnQuc2NzcyddXHJcbn1cclxuKVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YUdyaWQyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRleHQ6IENvbnRleHQsIGRpcjogRGlyZWN0aW9uYWxpdHkpIHtcclxuICAgIHRoaXMucmlnaHRUb0xlZnQgPSBkaXIudmFsdWUgPT09ICdydGwnO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgYWRkQ29sKGM6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIGF3YWl0IG9wZW5EaWFsb2coU2VsZWN0VmFsdWVEaWFsb2dDb21wb25lbnQsIHggPT4geC5hcmdzKHtcclxuICAgICAgdmFsdWVzOiB0aGlzLnNldHRpbmdzLm9yaWdMaXN0LFxyXG4gICAgICBvblNlbGVjdDogY29sID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmNvbHVtbnMuYWRkQ29sKGMsIGNvbCk7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLm51bU9mQ29sdW1uc0luR3JpZCsrO1xyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcblxyXG4gIH1cclxuICBnZXRDb2xGbGV4KG1hcDogRGF0YUNvbnRyb2xTZXR0aW5ncykge1xyXG4gICAgcmV0dXJuICcwIDAgJyArIHRoaXMuZ2V0Q29sV2lkdGgobWFwKTtcclxuICB9XHJcbiAgZ2V0Q29sV2lkdGgobWFwOiBEYXRhQ29udHJvbFNldHRpbmdzKSB7XHJcbiAgICBsZXQgeCA9IHRoaXMuc2V0dGluZ3MuY29sdW1ucy5fX2RhdGFDb250cm9sU3R5bGUobWFwKTtcclxuICAgIGlmICgheClcclxuICAgICAgeCA9ICcyMDBweCc7XHJcbiAgICByZXR1cm4geDtcclxuICB9XHJcblxyXG4gIHRlc3QoKSB7XHJcbiAgICAvL3RoaXMuZGF0YUdyaWREaXYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAwO1xyXG4gIH1cclxuICByaWdodFRvTGVmdCA9IGZhbHNlO1xyXG5cclxuICBnZXRUb3RhbFJvd3MoKSB7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy50b3RhbFJvd3MpXHJcbiAgICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy5zZXR0aW5ncy50b3RhbFJvd3MgLyB0aGlzLnNldHRpbmdzLnJvd3NQZXJQYWdlKTtcclxuICAgIGlmICh0aGlzLnJpZ2h0VG9MZWZ0KVxyXG4gICAgICByZXR1cm4gJ9eo15HXmdedJztcclxuICAgIHJldHVybiAnbWFueSc7XHJcbiAgfVxyXG4gIHRlbXBEcmFnQ29sdW1uOiAoRGF0YUNvbnRyb2xTZXR0aW5ncyk7XHJcbiAgZHJhZ1N0YXJ0KHg6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIHRoaXMudGVtcERyYWdDb2x1bW4gPSB4O1xyXG5cclxuICB9XHJcbiAgZHJhZ092ZXIoeDogQ29sdW1uLCBldmVudDogYW55KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuICBvbkRyb3AoeDogRGF0YUNvbnRyb2xTZXR0aW5ncykge1xyXG4gICAgbGV0IG9sZFBvc2l0aW9uID0gdGhpcy5zZXR0aW5ncy5jb2x1bW5zLml0ZW1zLmluZGV4T2YodGhpcy50ZW1wRHJhZ0NvbHVtbik7XHJcbiAgICB0aGlzLnNldHRpbmdzLmNvbHVtbnMuaXRlbXMuc3BsaWNlKG9sZFBvc2l0aW9uLCAxKTtcclxuICAgIGxldCBuZXdQb3NpdGlvbiA9IHRoaXMuc2V0dGluZ3MuY29sdW1ucy5pdGVtcy5pbmRleE9mKHgpO1xyXG4gICAgaWYgKG5ld1Bvc2l0aW9uID09IG9sZFBvc2l0aW9uKVxyXG4gICAgICBuZXdQb3NpdGlvbisrO1xyXG4gICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLml0ZW1zLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgdGhpcy50ZW1wRHJhZ0NvbHVtbik7XHJcbiAgICB0aGlzLnNldHRpbmdzLmNvbHVtbnMuY29sTGlzdENoYW5nZWQoKTtcclxuICB9XHJcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZztcclxuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZztcclxuICBfZ2V0SGVpZ2h0KCkge1xyXG4gICAgaWYgKHRoaXMuaGVpZ2h0KSB7XHJcbiAgICAgIGlmICgoK3RoaXMuaGVpZ2h0KS50b1N0cmluZygpID09IHRoaXMuaGVpZ2h0KVxyXG4gICAgICAgIHJldHVybiB0aGlzLmhlaWdodCArIFwicHhcIjtcclxuICAgICAgcmV0dXJuIHRoaXMuaGVpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBkaXNwbGF5QnV0dG9ucyA9IHRydWU7XHJcbiAgQElucHV0KCkgZGlzcGxheVZDUiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIHJlY29yZHM6IGFueTtcclxuICBASW5wdXQoKSBzZXR0aW5nczogR3JpZFNldHRpbmdzPGFueT47XHJcbiAgaXNGaWx0ZXJlZChjOiBDb2x1bW4pIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmNvbHVtbnMuZmlsdGVySGVscGVyLmlzRmlsdGVyZWQoYyk7XHJcbiAgfVxyXG4gIC8vQHRzLWlnbm9yZVxyXG4gIEBWaWV3Q2hpbGQoRGF0YUZpbHRlckluZm9Db21wb25lbnQpIGRhdGFGaWx0ZXJJbmZvOiBEYXRhRmlsdGVySW5mb0NvbXBvbmVudDtcclxuICBzaG93RmlsdGVyQ29sdW1uRGlhbG9nKGRhdGFDb250cm9sU2V0dGluZ3M6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MuaW5pdE9yaWdMaXN0KCk7XHJcbiAgICB0aGlzLmRhdGFGaWx0ZXJJbmZvLmVkaXRGaWx0ZXIoZGF0YUNvbnRyb2xTZXR0aW5ncy5jb2x1bW4pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnV0dG9uQ3NzQ2xhc3MoYjogUm93QnV0dG9uPGFueT4sIHJvdzogYW55KSB7XHJcbiAgICBpZiAoIWIuY3NzQ2xhc3MpXHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgaWYgKGlzRnVuY3Rpb24oYi5jc3NDbGFzcykpXHJcbiAgICAgIHJldHVybiAoPCgocm93OiBhbnkpID0+IHN0cmluZyk+Yi5jc3NDbGFzcykocm93KTtcclxuICAgIHJldHVybiBiLmNzc0NsYXNzLnRvU3RyaW5nKCk7XHJcblxyXG4gIH1cclxuICBnZXRCdXR0b25UZXh0KGI6IFJvd0J1dHRvbjxhbnk+LCByb3c6IGFueSkge1xyXG4gICAgaWYgKCFiLnRleHRJbk1lbnUpXHJcbiAgICAgIHJldHVybiBiLm5hbWU7XHJcbiAgICBpZiAoaXNGdW5jdGlvbihiLnRleHRJbk1lbnUpKSB7XHJcbiAgICAgIGlmICghcm93KVxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgIHJldHVybiBiLnRleHRJbk1lbnUocm93KTtcclxuICAgIH1cclxuICAgIHJldHVybiA8c3RyaW5nPmIudGV4dEluTWVudTtcclxuXHJcblxyXG4gIH1cclxuICBjbGlja09uc2VsZWN0Q2hlY2tib3hGb3Iocm93OiBhbnksIGU6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MuY2xpY2tPbnNlbGVjdENoZWNrYm94Rm9yKHJvdywgZS5zaGlmdEtleSk7XHJcbiAgfVxyXG4gIGhhc1Zpc2libGVCdXR0b24ocmVjb3JkKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3dCdXR0b25zLmZpbmQoYiA9PiBiLnZpc2libGUocmVjb3JkKSk7XHJcbiAgfVxyXG4gIGhhc1Zpc2libGVHcmlkQnV0dG9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLmdyaWRCdXR0b25zLmZpbmQoYiA9PiBiLnZpc2libGUoKSk7XHJcbiAgfVxyXG4gIHJvd0J1dHRvbnM6IFJvd0J1dHRvbjxhbnk+W10gPSBbXTtcclxuICBncmlkQnV0dG9uczogR3JpZEJ1dHRvbltdID0gW107XHJcbiAga2V5czogc3RyaW5nW10gPSBbXTtcclxuICBwcml2YXRlIGFkZEJ1dHRvbihiOiBSb3dCdXR0b248RW50aXR5Pikge1xyXG4gICAgaWYgKCFiLmNsaWNrKVxyXG4gICAgICBiLmNsaWNrID0gKHIpID0+IHsgfTtcclxuICAgIGlmICghYi52aXNpYmxlKVxyXG4gICAgICBiLnZpc2libGUgPSByID0+IHRydWU7XHJcbiAgICBpZiAoIWIuY3NzQ2xhc3MpXHJcbiAgICAgIGIuY3NzQ2xhc3MgPSByID0+IFwiYnRuXCI7XHJcbiAgICBlbHNlIGlmICghaXNGdW5jdGlvbihiLmNzc0NsYXNzKSkge1xyXG4gICAgICBsZXQgeCA9IGIuY3NzQ2xhc3M7XHJcbiAgICAgIGIuY3NzQ2xhc3MgPSA8YW55PigocjogYW55KSA9PiB4KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJvd0J1dHRvbnMucHVzaChiKTtcclxuICAgIHJldHVybiBiO1xyXG5cclxuICB9XHJcbiAgcm93Q2xpY2tlZChyb3c6IGFueSkge1xyXG4gICAgdGhpcy5zZXR0aW5ncy5zZXRDdXJyZW50Um93KHJvdyk7XHJcbiAgfVxyXG5cclxuICBwYWdlID0gMTtcclxuICBuZXh0UGFnZSgpIHtcclxuICAgIHRoaXMucGFnZSsrO1xyXG4gIH1cclxuICBwcmV2aW91c1BhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5wYWdlIDw9IDEpXHJcbiAgICAgIHJldHVybjtcclxuICAgIHRoaXMucGFnZS0tO1xyXG4gIH1cclxuXHJcblxyXG4gIHNob3dTYXZlQWxsQnV0dG9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuaXRlbXMuZmluZCh4ID0+IHgud2FzQ2hhbmdlZCgpKVxyXG4gIH1cclxuICBzYXZlQWxsVGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLnJpZ2h0VG9MZWZ0ID8gKCfXqdee15XXqCAnICsgdGhpcy5zZXR0aW5ncy5pdGVtcy5maWx0ZXIoeCA9PiB4Lndhc0NoYW5nZWQoKSkubGVuZ3RoICsgJyDXqdeV16jXldeqJykgOlxyXG4gICAgICAoJ3NhdmUgJyArIHRoaXMuc2V0dGluZ3MuaXRlbXMuZmlsdGVyKHggPT4geC53YXNDaGFuZ2VkKCkpLmxlbmd0aCArICcgcm93cycpO1xyXG4gIH1cclxuICBhc3luYyBzYXZlQWxsQ2xpY2soKSB7XHJcbiAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLnNldHRpbmdzLml0ZW1zLmZpbHRlcih4ID0+IHgud2FzQ2hhbmdlZCgpKS5tYXAoeCA9PiB4LnNhdmUoKSkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKCF0aGlzLnNldHRpbmdzKVxyXG4gICAgICByZXR1cm47XHJcblxyXG5cclxuICAgIHRoaXMucm93QnV0dG9ucyA9IFtdO1xyXG4gICAgdGhpcy5ncmlkQnV0dG9ucyA9IFtdO1xyXG4gICAgdGhpcy5ncmlkQnV0dG9ucy5wdXNoKHtcclxuICAgICAgdmlzaWJsZTogKCkgPT4gdGhpcy5zaG93U2F2ZUFsbEJ1dHRvbigpLFxyXG4gICAgICB0ZXh0SW5NZW51OiAoKSA9PiB0aGlzLnNhdmVBbGxUZXh0KCksXHJcbiAgICAgIGNsaWNrOiBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlQWxsQ2xpY2soKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5zZXR0aW5ncy5ncmlkQnV0dG9ucykge1xyXG4gICAgICB0aGlzLmdyaWRCdXR0b25zLnB1c2goLi4udGhpcy5zZXR0aW5ncy5zZXR0aW5ncy5ncmlkQnV0dG9ucy5tYXAoeCA9PiB7XHJcbiAgICAgICAgaWYgKCF4LnZpc2libGUpXHJcbiAgICAgICAgICB4LnZpc2libGUgPSAoKSA9PiB0cnVlO1xyXG4gICAgICAgIHJldHVybiB4O1xyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MuYWxsb3dVcGRhdGUpIHtcclxuICAgICAgdGhpcy5hZGRCdXR0b24oe1xyXG4gICAgICAgIG5hbWU6IFwiXCIsXHJcbiAgICAgICAgaWNvbjogJ2NoZWNrJyxcclxuICAgICAgICBjc3NDbGFzczogXCJnbHlwaGljb24gZ2x5cGhpY29uLW9rIGJ0bi1zdWNjZXNzXCIsXHJcbiAgICAgICAgdmlzaWJsZTogciA9PiByLndhc0NoYW5nZWQoKSxcclxuICAgICAgICBzaG93SW5MaW5lOiB0cnVlLFxyXG4gICAgICAgIHRleHRJbk1lbnU6ICgpID0+IHRoaXMucmlnaHRUb0xlZnQgPyAn16nXnteV16gnIDogJ3NhdmUnLFxyXG4gICAgICAgIGNsaWNrOiByID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0dGluZ3MuX2RvU2F2aW5nUm93KHIpO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5hZGRCdXR0b24oe1xyXG4gICAgICAgIG5hbWU6IFwiXCIsXHJcbiAgICAgICAgaWNvbjogJ2NhbmNlbCcsXHJcbiAgICAgICAgY3NzQ2xhc3M6IFwiYnRuIGJ0bi1kYW5nZXIgZ2x5cGhpY29uIGdseXBoaWNvbi1iYW4tY2lyY2xlXCIsXHJcbiAgICAgICAgdmlzaWJsZTogciA9PiByLndhc0NoYW5nZWQoKSxcclxuICAgICAgICBzaG93SW5MaW5lOiB0cnVlLFxyXG4gICAgICAgIHRleHRJbk1lbnU6ICgpID0+IHRoaXMucmlnaHRUb0xlZnQgPyAn15HXmNecINep15nXoNeV15nXnScgOiAnY2FuY2VsJyxcclxuXHJcbiAgICAgICAgY2xpY2s6IHIgPT4ge1xyXG4gICAgICAgICAgci51bmRvQ2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG5cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNldHRpbmdzLmFsbG93RGVsZXRlKVxyXG4gICAgICB0aGlzLmFkZEJ1dHRvbih7XHJcbiAgICAgICAgbmFtZTogJycsXHJcbiAgICAgICAgdmlzaWJsZTogKHIpID0+IHtcclxuICAgICAgICAgIHJldHVybiByICYmICFyLmlzTmV3KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICwgaWNvbjogJ2RlbGV0ZScsXHJcbiAgICAgICAgc2hvd0luTGluZTogdHJ1ZSxcclxuICAgICAgICB0ZXh0SW5NZW51OiAoKSA9PiB0aGlzLnJpZ2h0VG9MZWZ0ID8gJ9ee15fXpycgOiAnZGVsZXRlJyxcclxuICAgICAgICBjbGljazogYXN5bmMgciA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zZXR0aW5ncy5jb25maXJtRGVsZXRlKSB7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWF3YWl0IHRoaXMuc2V0dGluZ3Muc2V0dGluZ3MuY29uZmlybURlbGV0ZShyKSlcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByLmRlbGV0ZSgpO1xyXG5cclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBjc3NDbGFzczogXCJidG4tZGFuZ2VyIGdseXBoaWNvbiBnbHlwaGljb24tdHJhc2hcIlxyXG4gICAgICB9KTtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLl9idXR0b25zKVxyXG4gICAgICBmb3IgKGxldCBiIG9mIHRoaXMuc2V0dGluZ3MuX2J1dHRvbnMpIHtcclxuICAgICAgICB0aGlzLmFkZEJ1dHRvbihiKTtcclxuICAgICAgfVxyXG4gICAgaWYgKCF0aGlzLnJlY29yZHMgJiYgdGhpcy5zZXR0aW5ncykge1xyXG4gICAgICB0aGlzLnNldHRpbmdzLmdldFJlY29yZHMoKS50aGVuKChyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnJlY29yZHMgPSByO1xyXG5cclxuICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIF9nZXRSb3dDbGFzcyhyb3c6IGFueSkge1xyXG4gICAgbGV0IHIgPSAnZGF0YUdyaWRSb3cgJztcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLnJvd0NsYXNzKVxyXG4gICAgICByICs9IHRoaXMuc2V0dGluZ3Mucm93Q2xhc3Mocm93KTtcclxuICAgIGlmIChyb3cgPT0gdGhpcy5zZXR0aW5ncy5jdXJyZW50Um93KVxyXG4gICAgICByICs9IFwiIGFjdGl2ZVwiO1xyXG5cclxuICAgIHJldHVybiByO1xyXG4gIH1cclxuICBfZ2V0Um93Q29sdW1uQ2xhc3MoY29sOiBhbnksIHJvdzogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5jb2x1bW5zLl9nZXRDb2x1bW5DbGFzcyhjb2wsIHJvdykgKyAnIGRhdGFHcmlkRGF0YUNlbGwnO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkMi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcmVtdWx0L2FuZ3VsYXIvIiwic291cmNlcyI6WyJzcmMvYW5ndWxhci9kYXRlLWdyaWQtMi9kYXRhLWdyaWQyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQVUsT0FBTyxFQUFVLE1BQU0sY0FBYyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUduRCxPQUFPLEVBQWMsWUFBWSxFQUFhLE1BQU0scUJBQXFCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25EO0lBVUUsNEJBQW9CLE9BQWdCLEVBQUUsR0FBbUI7UUFBckMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQTJCcEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFtQ1gsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQTRDM0IsZUFBVSxHQUFxQixFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBaUIsRUFBRSxDQUFDO1FBQy9CLFNBQUksR0FBYSxFQUFFLENBQUM7UUFxQnBCLFNBQUksR0FBRyxDQUFDLENBQUM7UUFqSVAsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQztJQUN6QyxDQUFDOzs7OztJQUVLLG1DQUFNOzs7O0lBQVosVUFBYSxDQUFzQjs7Ozs7NEJBQ2pDLHFCQUFNLFVBQVUsQ0FBQywwQkFBMEI7Ozs7d0JBQUUsVUFBQSxDQUFDLElB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LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuaW1wb3J0IHsgRGF0YUZpbHRlckluZm9Db21wb25lbnQgfSBmcm9tICcuLi9kYXRhLWZpbHRlci1pbmZvL2RhdGEtZmlsdGVyLWluZm8uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sdW1uLCBDb250ZXh0LCBFbnRpdHkgfSBmcm9tICdAcmVtdWx0L2NvcmUnO1xyXG5pbXBvcnQgeyBTZWxlY3RWYWx1ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1maWx0ZXItZGlhbG9nL2FkZC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5cclxuaW1wb3J0IHsgRGF0YUNvbnRyb2xTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2RhdGEtY29udHJvbC1pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgR3JpZEJ1dHRvbiwgR3JpZFNldHRpbmdzLCBSb3dCdXR0b24gfSBmcm9tICcuLi8uLi9ncmlkLXNldHRpbmdzJztcclxuaW1wb3J0IHsgb3BlbkRpYWxvZyB9IGZyb20gJy4uL3JlbXVsdC1jb3JlLm1vZHVsZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGF0YS1ncmlkJyxcclxuICB0ZW1wbGF0ZVVybDogYC4vZGF0YS1ncmlkMi5jb21wb25lbnQuaHRtbGAsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS1ncmlkMi5jb21wb25lbnQuc2NzcyddXHJcbn1cclxuKVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YUdyaWQyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRleHQ6IENvbnRleHQsIGRpcjogRGlyZWN0aW9uYWxpdHkpIHtcclxuICAgIHRoaXMucmlnaHRUb0xlZnQgPSBkaXIudmFsdWUgPT09ICdydGwnO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgYWRkQ29sKGM6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIGF3YWl0IG9wZW5EaWFsb2coU2VsZWN0VmFsdWVEaWFsb2dDb21wb25lbnQsIHggPT4geC5hcmdzKHtcclxuICAgICAgdmFsdWVzOiB0aGlzLnNldHRpbmdzLm9yaWdMaXN0LFxyXG4gICAgICBvblNlbGVjdDogY29sID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmNvbHVtbnMuYWRkQ29sKGMsIGNvbCk7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLm51bU9mQ29sdW1uc0luR3JpZCsrO1xyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcblxyXG4gIH1cclxuICBnZXRDb2xGbGV4KG1hcDogRGF0YUNvbnRyb2xTZXR0aW5ncykge1xyXG4gICAgcmV0dXJuICcwIDAgJyArIHRoaXMuZ2V0Q29sV2lkdGgobWFwKTtcclxuICB9XHJcbiAgZ2V0Q29sV2lkdGgobWFwOiBEYXRhQ29udHJvbFNldHRpbmdzKSB7XHJcbiAgICBsZXQgeCA9IHRoaXMuc2V0dGluZ3MuY29sdW1ucy5fX2RhdGFDb250cm9sU3R5bGUobWFwKTtcclxuICAgIGlmICgheClcclxuICAgICAgeCA9ICcyMDBweCc7XHJcbiAgICByZXR1cm4geDtcclxuICB9XHJcblxyXG4gIHRlc3QoKSB7XHJcbiAgICAvL3RoaXMuZGF0YUdyaWREaXYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAwO1xyXG4gIH1cclxuICByaWdodFRvTGVmdCA9IGZhbHNlO1xyXG5cclxuICBnZXRUb3RhbFJvd3MoKSB7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy50b3RhbFJvd3MpXHJcbiAgICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy5zZXR0aW5ncy50b3RhbFJvd3MgLyB0aGlzLnNldHRpbmdzLnJvd3NQZXJQYWdlKTtcclxuICAgIGlmICh0aGlzLnJpZ2h0VG9MZWZ0KVxyXG4gICAgICByZXR1cm4gJ9eo15HXmdedJztcclxuICAgIHJldHVybiAnbWFueSc7XHJcbiAgfVxyXG4gIHRlbXBEcmFnQ29sdW1uOiAoRGF0YUNvbnRyb2xTZXR0aW5ncyk7XHJcbiAgZHJhZ1N0YXJ0KHg6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIHRoaXMudGVtcERyYWdDb2x1bW4gPSB4O1xyXG5cclxuICB9XHJcbiAgZHJhZ092ZXIoeDogQ29sdW1uLCBldmVudDogYW55KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuICBvbkRyb3AoeDogRGF0YUNvbnRyb2xTZXR0aW5ncykge1xyXG4gICAgbGV0IG9sZFBvc2l0aW9uID0gdGhpcy5zZXR0aW5ncy5jb2x1bW5zLml0ZW1zLmluZGV4T2YodGhpcy50ZW1wRHJhZ0NvbHVtbik7XHJcbiAgICB0aGlzLnNldHRpbmdzLmNvbHVtbnMuaXRlbXMuc3BsaWNlKG9sZFBvc2l0aW9uLCAxKTtcclxuICAgIGxldCBuZXdQb3NpdGlvbiA9IHRoaXMuc2V0dGluZ3MuY29sdW1ucy5pdGVtcy5pbmRleE9mKHgpO1xyXG4gICAgaWYgKG5ld1Bvc2l0aW9uID09IG9sZFBvc2l0aW9uKVxyXG4gICAgICBuZXdQb3NpdGlvbisrO1xyXG4gICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLml0ZW1zLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgdGhpcy50ZW1wRHJhZ0NvbHVtbik7XHJcbiAgICB0aGlzLnNldHRpbmdzLmNvbHVtbnMuY29sTGlzdENoYW5nZWQoKTtcclxuICB9XHJcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZztcclxuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZztcclxuICBfZ2V0SGVpZ2h0KCkge1xyXG4gICAgaWYgKHRoaXMuaGVpZ2h0KSB7XHJcbiAgICAgIGlmICgoK3RoaXMuaGVpZ2h0KS50b1N0cmluZygpID09IHRoaXMuaGVpZ2h0KVxyXG4gICAgICAgIHJldHVybiB0aGlzLmhlaWdodCArIFwicHhcIjtcclxuICAgICAgcmV0dXJuIHRoaXMuaGVpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBkaXNwbGF5QnV0dG9ucyA9IHRydWU7XHJcbiAgQElucHV0KCkgZGlzcGxheVZDUiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIHJlY29yZHM6IGFueTtcclxuICBASW5wdXQoKSBzZXR0aW5nczogR3JpZFNldHRpbmdzPGFueT47XHJcbiAgaXNGaWx0ZXJlZChjOiBDb2x1bW4pIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmNvbHVtbnMuZmlsdGVySGVscGVyLmlzRmlsdGVyZWQoYyk7XHJcbiAgfVxyXG4gIC8vQHRzLWlnbm9yZVxyXG4gIEBWaWV3Q2hpbGQoRGF0YUZpbHRlckluZm9Db21wb25lbnQpIGRhdGFGaWx0ZXJJbmZvOiBEYXRhRmlsdGVySW5mb0NvbXBvbmVudDtcclxuICBzaG93RmlsdGVyQ29sdW1uRGlhbG9nKGRhdGFDb250cm9sU2V0dGluZ3M6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MuaW5pdE9yaWdMaXN0KCk7XHJcbiAgICB0aGlzLmRhdGFGaWx0ZXJJbmZvLmVkaXRGaWx0ZXIoZGF0YUNvbnRyb2xTZXR0aW5ncy5jb2x1bW4pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnV0dG9uQ3NzQ2xhc3MoYjogUm93QnV0dG9uPGFueT4sIHJvdzogYW55KSB7XHJcbiAgICBpZiAoIWIuY3NzQ2xhc3MpXHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgaWYgKHR5cGVvZiBiLmNzc0NsYXNzID09PSAnZnVuY3Rpb24nKVxyXG4gICAgICByZXR1cm4gKDwoKHJvdzogYW55KSA9PiBzdHJpbmcpPmIuY3NzQ2xhc3MpKHJvdyk7XHJcbiAgICByZXR1cm4gYi5jc3NDbGFzcy50b1N0cmluZygpO1xyXG5cclxuICB9XHJcbiAgZ2V0QnV0dG9uVGV4dChiOiBSb3dCdXR0b248YW55Piwgcm93OiBhbnkpIHtcclxuICAgIGlmICghYi50ZXh0SW5NZW51KVxyXG4gICAgICByZXR1cm4gYi5uYW1lO1xyXG4gICAgaWYgKHR5cGVvZiBiLnRleHRJbk1lbnUgPT09XCJmdW5jdGlvblwiKSB7XHJcbiAgICAgIGlmICghcm93KVxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgIHJldHVybiBiLnRleHRJbk1lbnUocm93KTtcclxuICAgIH1cclxuICAgIHJldHVybiA8c3RyaW5nPmIudGV4dEluTWVudTtcclxuXHJcblxyXG4gIH1cclxuICBjbGlja09uc2VsZWN0Q2hlY2tib3hGb3Iocm93OiBhbnksIGU6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MuY2xpY2tPbnNlbGVjdENoZWNrYm94Rm9yKHJvdywgZS5zaGlmdEtleSk7XHJcbiAgfVxyXG4gIGhhc1Zpc2libGVCdXR0b24ocmVjb3JkKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3dCdXR0b25zLmZpbmQoYiA9PiBiLnZpc2libGUocmVjb3JkKSk7XHJcbiAgfVxyXG4gIGhhc1Zpc2libGVHcmlkQnV0dG9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLmdyaWRCdXR0b25zLmZpbmQoYiA9PiBiLnZpc2libGUoKSk7XHJcbiAgfVxyXG4gIHJvd0J1dHRvbnM6IFJvd0J1dHRvbjxhbnk+W10gPSBbXTtcclxuICBncmlkQnV0dG9uczogR3JpZEJ1dHRvbltdID0gW107XHJcbiAga2V5czogc3RyaW5nW10gPSBbXTtcclxuICBwcml2YXRlIGFkZEJ1dHRvbihiOiBSb3dCdXR0b248RW50aXR5Pikge1xyXG4gICAgaWYgKCFiLmNsaWNrKVxyXG4gICAgICBiLmNsaWNrID0gKHIpID0+IHsgfTtcclxuICAgIGlmICghYi52aXNpYmxlKVxyXG4gICAgICBiLnZpc2libGUgPSByID0+IHRydWU7XHJcbiAgICBpZiAoIWIuY3NzQ2xhc3MpXHJcbiAgICAgIGIuY3NzQ2xhc3MgPSByID0+IFwiYnRuXCI7XHJcbiAgICBlbHNlIGlmICghKHR5cGVvZiBiLmNzc0NsYXNzID09PSAnZnVuY3Rpb24nKSkge1xyXG4gICAgICBsZXQgeCA9IGIuY3NzQ2xhc3M7XHJcbiAgICAgIGIuY3NzQ2xhc3MgPSA8YW55PigocjogYW55KSA9PiB4KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJvd0J1dHRvbnMucHVzaChiKTtcclxuICAgIHJldHVybiBiO1xyXG5cclxuICB9XHJcbiAgcm93Q2xpY2tlZChyb3c6IGFueSkge1xyXG4gICAgdGhpcy5zZXR0aW5ncy5zZXRDdXJyZW50Um93KHJvdyk7XHJcbiAgfVxyXG5cclxuICBwYWdlID0gMTtcclxuICBuZXh0UGFnZSgpIHtcclxuICAgIHRoaXMucGFnZSsrO1xyXG4gIH1cclxuICBwcmV2aW91c1BhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5wYWdlIDw9IDEpXHJcbiAgICAgIHJldHVybjtcclxuICAgIHRoaXMucGFnZS0tO1xyXG4gIH1cclxuXHJcblxyXG4gIHNob3dTYXZlQWxsQnV0dG9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuaXRlbXMuZmluZCh4ID0+IHgud2FzQ2hhbmdlZCgpKVxyXG4gIH1cclxuICBzYXZlQWxsVGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLnJpZ2h0VG9MZWZ0ID8gKCfXqdee15XXqCAnICsgdGhpcy5zZXR0aW5ncy5pdGVtcy5maWx0ZXIoeCA9PiB4Lndhc0NoYW5nZWQoKSkubGVuZ3RoICsgJyDXqdeV16jXldeqJykgOlxyXG4gICAgICAoJ3NhdmUgJyArIHRoaXMuc2V0dGluZ3MuaXRlbXMuZmlsdGVyKHggPT4geC53YXNDaGFuZ2VkKCkpLmxlbmd0aCArICcgcm93cycpO1xyXG4gIH1cclxuICBhc3luYyBzYXZlQWxsQ2xpY2soKSB7XHJcbiAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLnNldHRpbmdzLml0ZW1zLmZpbHRlcih4ID0+IHgud2FzQ2hhbmdlZCgpKS5tYXAoeCA9PiB4LnNhdmUoKSkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKCF0aGlzLnNldHRpbmdzKVxyXG4gICAgICByZXR1cm47XHJcblxyXG5cclxuICAgIHRoaXMucm93QnV0dG9ucyA9IFtdO1xyXG4gICAgdGhpcy5ncmlkQnV0dG9ucyA9IFtdO1xyXG4gICAgdGhpcy5ncmlkQnV0dG9ucy5wdXNoKHtcclxuICAgICAgdmlzaWJsZTogKCkgPT4gdGhpcy5zaG93U2F2ZUFsbEJ1dHRvbigpLFxyXG4gICAgICB0ZXh0SW5NZW51OiAoKSA9PiB0aGlzLnNhdmVBbGxUZXh0KCksXHJcbiAgICAgIGNsaWNrOiBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlQWxsQ2xpY2soKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5zZXR0aW5ncy5ncmlkQnV0dG9ucykge1xyXG4gICAgICB0aGlzLmdyaWRCdXR0b25zLnB1c2goLi4udGhpcy5zZXR0aW5ncy5zZXR0aW5ncy5ncmlkQnV0dG9ucy5tYXAoeCA9PiB7XHJcbiAgICAgICAgaWYgKCF4LnZpc2libGUpXHJcbiAgICAgICAgICB4LnZpc2libGUgPSAoKSA9PiB0cnVlO1xyXG4gICAgICAgIHJldHVybiB4O1xyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MuYWxsb3dVcGRhdGUpIHtcclxuICAgICAgdGhpcy5hZGRCdXR0b24oe1xyXG4gICAgICAgIG5hbWU6IFwiXCIsXHJcbiAgICAgICAgaWNvbjogJ2NoZWNrJyxcclxuICAgICAgICBjc3NDbGFzczogXCJnbHlwaGljb24gZ2x5cGhpY29uLW9rIGJ0bi1zdWNjZXNzXCIsXHJcbiAgICAgICAgdmlzaWJsZTogciA9PiByLndhc0NoYW5nZWQoKSxcclxuICAgICAgICBzaG93SW5MaW5lOiB0cnVlLFxyXG4gICAgICAgIHRleHRJbk1lbnU6ICgpID0+IHRoaXMucmlnaHRUb0xlZnQgPyAn16nXnteV16gnIDogJ3NhdmUnLFxyXG4gICAgICAgIGNsaWNrOiByID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0dGluZ3MuX2RvU2F2aW5nUm93KHIpO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5hZGRCdXR0b24oe1xyXG4gICAgICAgIG5hbWU6IFwiXCIsXHJcbiAgICAgICAgaWNvbjogJ2NhbmNlbCcsXHJcbiAgICAgICAgY3NzQ2xhc3M6IFwiYnRuIGJ0bi1kYW5nZXIgZ2x5cGhpY29uIGdseXBoaWNvbi1iYW4tY2lyY2xlXCIsXHJcbiAgICAgICAgdmlzaWJsZTogciA9PiByLndhc0NoYW5nZWQoKSxcclxuICAgICAgICBzaG93SW5MaW5lOiB0cnVlLFxyXG4gICAgICAgIHRleHRJbk1lbnU6ICgpID0+IHRoaXMucmlnaHRUb0xlZnQgPyAn15HXmNecINep15nXoNeV15nXnScgOiAnY2FuY2VsJyxcclxuXHJcbiAgICAgICAgY2xpY2s6IHIgPT4ge1xyXG4gICAgICAgICAgci51bmRvQ2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG5cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNldHRpbmdzLmFsbG93RGVsZXRlKVxyXG4gICAgICB0aGlzLmFkZEJ1dHRvbih7XHJcbiAgICAgICAgbmFtZTogJycsXHJcbiAgICAgICAgdmlzaWJsZTogKHIpID0+IHtcclxuICAgICAgICAgIHJldHVybiByICYmICFyLmlzTmV3KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICwgaWNvbjogJ2RlbGV0ZScsXHJcbiAgICAgICAgc2hvd0luTGluZTogdHJ1ZSxcclxuICAgICAgICB0ZXh0SW5NZW51OiAoKSA9PiB0aGlzLnJpZ2h0VG9MZWZ0ID8gJ9ee15fXpycgOiAnZGVsZXRlJyxcclxuICAgICAgICBjbGljazogYXN5bmMgciA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zZXR0aW5ncy5jb25maXJtRGVsZXRlKSB7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWF3YWl0IHRoaXMuc2V0dGluZ3Muc2V0dGluZ3MuY29uZmlybURlbGV0ZShyKSlcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByLmRlbGV0ZSgpO1xyXG5cclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBjc3NDbGFzczogXCJidG4tZGFuZ2VyIGdseXBoaWNvbiBnbHlwaGljb24tdHJhc2hcIlxyXG4gICAgICB9KTtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLl9idXR0b25zKVxyXG4gICAgICBmb3IgKGxldCBiIG9mIHRoaXMuc2V0dGluZ3MuX2J1dHRvbnMpIHtcclxuICAgICAgICB0aGlzLmFkZEJ1dHRvbihiKTtcclxuICAgICAgfVxyXG4gICAgaWYgKCF0aGlzLnJlY29yZHMgJiYgdGhpcy5zZXR0aW5ncykge1xyXG4gICAgICB0aGlzLnNldHRpbmdzLmdldFJlY29yZHMoKS50aGVuKChyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnJlY29yZHMgPSByO1xyXG5cclxuICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIF9nZXRSb3dDbGFzcyhyb3c6IGFueSkge1xyXG4gICAgbGV0IHIgPSAnZGF0YUdyaWRSb3cgJztcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLnJvd0NsYXNzKVxyXG4gICAgICByICs9IHRoaXMuc2V0dGluZ3Mucm93Q2xhc3Mocm93KTtcclxuICAgIGlmIChyb3cgPT0gdGhpcy5zZXR0aW5ncy5jdXJyZW50Um93KVxyXG4gICAgICByICs9IFwiIGFjdGl2ZVwiO1xyXG5cclxuICAgIHJldHVybiByO1xyXG4gIH1cclxuICBfZ2V0Um93Q29sdW1uQ2xhc3MoY29sOiBhbnksIHJvdzogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5jb2x1bW5zLl9nZXRDb2x1bW5DbGFzcyhjb2wsIHJvdykgKyAnIGRhdGFHcmlkRGF0YUNlbGwnO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
{
"name": "@remult/angular",
"schematics": "./schematics/collection.json",
"version": "2.3.12",
"version": "2.3.13",
"description": "an angular module for remult",

@@ -6,0 +6,0 @@ "license": "MIT",

@@ -31,3 +31,3 @@ import { OnChanges } from '@angular/core';

getButtonCssClass(b: RowButton<any>, row: any): string;
getButtonText(b: RowButton<any>, row: any): any;
getButtonText(b: RowButton<any>, row: any): string;
clickOnselectCheckboxFor(row: any, e: MouseEvent): void;

@@ -34,0 +34,0 @@ hasVisibleButton(record: any): RowButton<any>;

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 too big to display

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