@remult/angular
Advanced tools
Comparing version 2.1.23 to 2.1.24
@@ -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("@auth0/angular-jwt"),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","@auth0/angular-jwt","@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.angularJwt,t.core$2)}(this,function(t,e,n,i,o,r,s,a,l,c,u,d,p,h,g,f,m,y,b,v,w,C){"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 I(t,e){function n(){this.constructor=t}x(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function k(e,s,a,l){return new(a=a||Promise)(function(t,n){function i(t){try{r(l.next(t))}catch(e){n(e)}}function o(t){try{r(l["throw"](t))}catch(e){n(e)}}function r(e){e.done?t(e.value):new a(function(t){t(e.value)}).then(i,o)}r((l=l.apply(e,s||[])).next())})}function _(i,o){var r,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(r)throw new TypeError("Generator is already executing.");for(;l;)try{if(r=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=o.call(i,l)}catch(e){t=[6,e],s=0}finally{r=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([e,t])}}}function F(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 T(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var i,o,r=n.call(t),s=[];try{for(;(void 0===e||0<e--)&&!(i=r.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(n=r["return"])&&n.call(r)}finally{if(o)throw o.error}}return s}var D=(Object.defineProperty(S.prototype,"column",{set:function(t){this.map={column:t},this.map.column.__decorateDataSettings(this.map)},enumerable:!0,configurable:!0}),S.prototype.showDescription=function(){return this.map.column&&this.map.getValue||!this._getEditable()},S.prototype.getDropDown=function(){return this.map.valueList},S.prototype.showClick=function(){return!!this.map.click&&!!this._getEditable()&&(this.map.allowClick===undefined||this.map.allowClick(this.record))},S.prototype.click=function(){this.showClick()&&this.settings._click(this.map,this.record)},S.prototype.getClickIcon=function(){return this.map.clickIcon?this.map.clickIcon:"keyboard_arrow_down"},S.prototype.dataControlStyle=function(){return this.settings.__dataControlStyle(this.map)},S.prototype._getColumn=function(){return this.map.column?this.settings.__getColumn(this.map,this.record):new C.StringColumn},S.prototype._getEditable=function(){return!!this.notReadonly||this.settings._getEditable(this.map,this.record)},S.prototype.ngOnChanges=function(){},S.prototype.isSelect=function(){return!(!this.map.valueList||!this._getEditable())},S.prototype.showTextBox=function(){return!this.isSelect()&&!this.showCheckbox()},S.prototype.showCheckbox=function(){return"checkbox"==this.settings._getColDataType(this.map)},S.prototype.getError=function(){return this.settings._getError(this.map,this.record)},S.prototype.getStyle=function(){return this.showDescription()?this.map.hideDataOnInput||!this._getEditable()?{display:"none"}:{width:"50px"}:{}},S.prototype.getFloatLabel=function(){return this.showDescription()&&this.settings._getColDisplayValue(this.map,this.record)?"always":""},S.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)}} </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:[""]}]}],S.propDecorators={map:[{type:v.Input}],column:[{type:v.Input}],record:[{type:v.Input}],notReadonly:[{type:v.Input}],settings:[{type:v.Input}]},S);function S(){function t(t){var e=n.call(this)||this;return e.parent=t,e}var n;this.settings=new C.ColumnCollection(undefined,function(){return!0},undefined,undefined),this.ngErrorStateMatches=(I(t,n=e.ErrorStateMatcher),t.prototype.isErrorState=function(){return!!this.parent.getError()},new t(this))}var M=(Object.defineProperty(B.prototype,"column",{set:function(t){this.map={column:t},this.map.column.__decorateDataSettings(this.map)},enumerable:!0,configurable:!0}),B.prototype.showDescription=function(){return this.map.column&&this.map.getValue||!this._getEditable()},B.prototype.showClick=function(){return!!this.map.click&&!!this._getEditable()&&(this.map.allowClick===undefined||this.map.allowClick(this.record))},B.prototype.getClickIcon=function(){return this.map.clickIcon?this.map.clickIcon:"keyboard_arrow_down"},B.prototype.dataControlStyle=function(){return this.settings.__dataControlStyle(this.map)},B.prototype._getColumn=function(){return this.map.column?this.settings.__getColumn(this.map,this.record):new C.StringColumn},B.prototype.click=function(){this.showClick()&&this.settings._click(this.map,this.record)},B.prototype._getEditable=function(){return!!this.notReadonly||this.settings._getEditable(this.map,this.record)},B.prototype.ngOnChanges=function(){},B.prototype.getDropDown=function(){return this.map.valueList},B.prototype.isSelect=function(){return!(!this.map.valueList||!this._getEditable())},B.prototype.showTextBox=function(){return!this.isSelect()&&!this.showCheckbox()&&this._getEditable()},B.prototype.showReadonlyText=function(){return!this._getEditable()},B.prototype.showCheckbox=function(){return"checkbox"==this.settings._getColDataType(this.map)},B.prototype.getError=function(){return this.settings._getError(this.map,this.record)},B.prototype.getStyle=function(){return this.showDescription()?this.map.hideDataOnInput||!this._getEditable()?{display:"none"}:{width:"50px"}:{width:"100%"}},B.prototype.getFloatLabel=function(){return this.showDescription()&&this.settings._getColDisplayValue(this.map,this.record)?"always":""},B.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)}} </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)}} </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}']}]}],B.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}]},B);function B(){function t(t){var e=n.call(this)||this;return e.parent=t,e}var n;this.rightToLeft=!1,this.settings=new C.ColumnCollection(undefined,function(){return!0},undefined,undefined),this.ngErrorStateMatches=(I(t,n=e.ErrorStateMatcher),t.prototype.isErrorState=function(){return!!this.parent.getError()},new t(this))}var A=(L.prototype.selectFirst=function(){var t,e;try{for(var n=F(this.values),i=n.next();!i.done;i=n.next()){var o=i.value;if(this.matchesFilter(o))return void this.select(o)}}catch(r){t={error:r}}finally{try{i&&!i.done&&(e=n["return"])&&e.call(n)}finally{if(t)throw t.error}}},L.prototype.matchesFilter=function(t){return t.caption.toLocaleLowerCase().includes(this.searchString.toLocaleLowerCase())},L.prototype.args=function(t){this.values=t.values,this.onSelect=t.onSelect,this.title=t.title},L.prototype.select=function(t){this.onSelect(t),this.dialog.close()},L.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>'}]}],L.ctorParameters=function(){return[{type:c.MatDialogRef}]},L);function L(t){this.dialog=t,this.searchString=""}var R=(P.prototype.setFilter=function(){this.info.settings.columns.filterRows(this.info.filterColumnToAdd),this.dialog.close()},P.prototype.clear=function(){this.info.settings.columns.clearFilter(this.info.filterColumnToAdd),this.dialog.close()},P.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>'}]}],P.ctorParameters=function(){return[{type:c.MatDialogRef}]},P);function P(t){this.dialog=t}var G=(E.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)},E.prototype.cancelAddFilter=function(){},E.prototype.showEditFilter=function(e){this.filterColumnToAdd=this.settings.origList.find(function(t){return t.column==e}),this.editFilterVisible=!0,this.showAddFilter=!1},E.prototype.userFilterButton=function(){this.showFilterButton=!this.showFilterButton,this.settings.initOrigList(),0==this.settings.filterHelper.filterColumns.length&&this.showAddAnotherFilterDialog()},E.prototype.showAddAnotherFilterDialog=function(){return k(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,this.context.openDialog(A,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,this.context.openDialog(R,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]}})})},E.prototype.editFilter=function(n){return k(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,this.context.openDialog(R,function(t){return t.info=e})];case 1:return t.sent(),[2]}})})},E.prototype.confirmEditFilter=function(){this.settings.columns.filterRows(this.filterColumnToAdd),this.editFilterVisible=!1},E.prototype.clearEditFilter=function(){this.settings.columns.clearFilter(this.filterColumnToAdd),this.editFilterVisible=!1},E.prototype.addFilter=function(){this.settings.columns.filterRows(this.filterColumnToAdd),this.showAddFilter=!1},E.prototype.cancelAddNewFilter=function(){this.showAddFilter=!1},E.prototype.ngAfterViewInit=function(){window&&window.getComputedStyle&&this.theDiv&&(this.rightToLeft="rtl"==window.getComputedStyle(this.theDiv.nativeElement,null).getPropertyValue("direction"))},E.decorators=[{type:v.Component,args:[{selector:"Data-Filter",template:'<span (click)="showAddAnotherFilterDialog()" #theDiv class="link" *ngIf="settings.settings.showFilter"><span *ngIf="!rightToLeft">Filter</span><span *ngIf="rightToLeft">סינון</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 }"]}]}],E.ctorParameters=function(){return[{type:C.Context}]},E.propDecorators={settings:[{type:v.Input}],theDiv:[{type:v.ViewChild,args:["theDiv"]}]},E);function E(t){this.context=t,this.showFilterButton=!1,this.showAddFilter=!1,this.editFilterVisible=!1,this.rightToLeft=!1}var O=(V.prototype.ngAfterViewInit=function(){window&&window.getComputedStyle&&this.dataGridDiv&&(this.rightToLeft="rtl"==window.getComputedStyle(this.dataGridDiv.nativeElement,null).getPropertyValue("direction"))},V.prototype.addCol=function(n){return k(this,void 0,void 0,function(){var e=this;return _(this,function(t){switch(t.label){case 0:return[4,this.context.openDialog(A,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]}})})},V.prototype.getColFlex=function(t){return"0 0 "+this.getColWidth(t)},V.prototype.getColWidth=function(t){var e=this.settings.columns.__dataControlStyle(t);return e=e||"200px"},V.prototype.test=function(){},V.prototype.getTotalRows=function(){return this.settings.totalRows?Math.ceil(this.settings.totalRows/this.settings.rowsPerPage):this.rightToLeft?"רבים":"many"},V.prototype.dragStart=function(t){this.tempDragColumn=t},V.prototype.dragOver=function(t,e){e.preventDefault()},V.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()},V.prototype._getHeight=function(){if(this.height)return(+this.height).toString()==this.height?this.height+"px":this.height},V.prototype.isFiltered=function(t){return this.settings.columns.filterHelper.isFiltered(t)},V.prototype.showFilterColumnDialog=function(t){this.settings.initOrigList(),this.dataFilterInfo.editFilter(t.column)},V.prototype.getButtonCssClass=function(t,e){return t.cssClass?o.isFunction(t.cssClass)?t.cssClass(e):t.cssClass.toString():""},V.prototype.getButtonText=function(t,e){return t.textInMenu?o.isFunction(t.textInMenu)?e?t.textInMenu(e):"":t.textInMenu:t.name},V.prototype.hasVisibleButton=function(e){return this.rowButtons.find(function(t){return t.visible(e)})},V.prototype.hasVisibleGridButtons=function(){return this.gridButtons.find(function(t){return t.visible()})},V.prototype.addButton=function(t){if(t.click||(t.click=function(t){}),t.visible||(t.visible=function(t){return!0}),t.cssClass){if(!o.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},V.prototype.rowClicked=function(t){this.settings.setCurrentRow(t)},V.prototype.nextPage=function(){this.page++},V.prototype.previousPage=function(){this.page<=1||this.page--},V.prototype.ngOnChanges=function(){var t,e,n,i=this;if(this.settings){if(this.rowButtons=[],this.gridButtons=[],this.gridButtons.push({visible:function(){return i.settings.items.find(function(t){return t.wasChanged()})},textInMenu:function(){return i.rightToLeft?"שמור "+i.settings.items.filter(function(t){return t.wasChanged()}).length+" שורות":"save "+i.settings.items.filter(function(t){return t.wasChanged()}).length+" rows"},click:function(){return k(i,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]}})})}}),this.settings.settings.gridButtons&&(t=this.gridButtons).push.apply(t,function a(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(T(arguments[e]));return t}(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 k(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 o=F(this.settings._buttons),r=o.next();!r.done;r=o.next()){var s=r.value;this.addButton(s)}}catch(l){e={error:l}}finally{try{r&&!r.done&&(n=o["return"])&&n.call(o)}finally{if(e)throw e.error}}!this.records&&this.settings&&this.settings.getRecords().then(function(t){i.records=t})}},V.prototype._getRowClass=function(t){var e="dataGridRow ";return this.settings.rowClass&&(e+=this.settings.rowClass(t)),t==this.settings.currentRow&&(e+=" active"),e},V.prototype._getRowColumnClass=function(t,e){return this.settings.columns._getColumnClass(t,e)+" dataGridDataCell"},V.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"></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)">\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></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}"]}]}],V.ctorParameters=function(){return[{type:C.Context}]},V.propDecorators={dataGridDiv:[{type:v.ViewChild,args:["dataGridDiv"]}],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:[G]}]},V);function V(t){this.context=t,this.rightToLeft=!1,this.displayButtons=!0,this.displayVCR=!0,this.rowButtons=[],this.gridButtons=[],this.keys=[],this.page=1}var W=(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=F(t.canActivate),o=i.next();!o.done;o=i.next()){var r=o.value,s=this.injector.get(r);if(s&&s.canActivate){var a=new U;if(a.routeConfig=t,!s.canActivate(a,undefined))return!1}}}catch(l){e={error:l}}finally{try{o&&!o.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:r.Router},{type:v.Injector}]},j);function j(t,e){this.router=t,this.injector=e}var N=(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 U)){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:C.Context},{type:r.Router},{type:W}]},q);function q(t,e,n){this.context=t,this.router=e,this.helper=n}var H=(z.prototype.canActivate=function(t){return!this.context.isSignedIn()},z.decorators=[{type:v.Injectable}],z.ctorParameters=function(){return[{type:C.Context},{type:r.Router}]},z);function z(t,e){this.context=t,this.router=e}var J,U=(I($,J=r.ActivatedRouteSnapshot),$);function $(){return J.call(this)||this}var K=(Q.prototype.ngOnInit=function(){},Q.decorators=[{type:v.Component,args:[{selector:"app-wait",template:'<mat-progress-spinner [mode]="mode" [value]="value" >\r\n</mat-progress-spinner>',styles:[""]}]}],Q.ctorParameters=function(){return[]},Q);function Q(){this.mode="indeterminate",this.value=0}var X=(Y.prototype.donotWait=function(e){return k(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]}})})},Y.prototype.donotWaitNonAsync=function(t){this.disableWait=!0;try{return t()}finally{this.disableWait=!1}},Y.prototype.log=function(t,e){},Y.prototype.doWhileShowingBusy=function(n){return k(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]}})})},Y.prototype.startBusyWithProgress=function(){var t=this;if(this.disableWait)return{close:function(){},progress:function(){}};var e=!1,n=this.dialog.open(K,{disableClose:!0});return{close:function(){return k(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)}}},Y.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(K,{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))})},Y.decorators=[{type:v.Injectable}],Y.ctorParameters=function(){return[{type:c.MatDialog}]},Y);function Y(t){this.dialog=t,this.id=0,this.numOfWaits=0,this.disableWait=!1,Y.singleInstance=this}var Z=(tt.prototype.intercept=function(t,e){var n=this.busy.showBusy();return e.handle(t).pipe(l.finalize(function(){return n()}))},tt.decorators=[{type:v.Injectable}],tt.ctorParameters=function(){return[{type:X}]},tt);function tt(t){this.busy=t}var et=(nt.prototype.ngOnChanges=function(){var t=this;if(this.settings&&this.settings.columns){this.object&&(this.settings=new C.DataAreaSettings({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)}},nt.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 o=Math.round(e.length/this.columns);for(i=0;i<e.length;i++)n[Math.floor(i/o)].push(e[i]);return this.lastCols},nt.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%}}"]}]}],nt.propDecorators={settings:[{type:v.Input}],object:[{type:v.Input}],columns:[{type:v.Input}]},nt);function nt(){this.settings={columns:new C.ColumnCollection(function(){return undefined},function(){return!1},undefined,function(){return!0}),lines:undefined},this.columns=1}var it=(ot.prototype.post=function(t,e){return this.http.post(t,e).toPromise()},ot.prototype["delete"]=function(t){return this.http["delete"](t).toPromise().then(function(t){})},ot.prototype.put=function(t,e){return this.http.put(t,e).toPromise()},ot.prototype.get=function(t){return this.http.get(t).toPromise()},ot);function ot(t){this.http=t}var rt="authorization",st=(at.prototype.getToken=function(){return this.currentToken},at.prototype.loadSessionFromCookie=function(t){this.path=t,this.tokenName=rt,this.path&&(this.tokenName+="/"+t);var e=sessionStorage.getItem(this.tokenName);if(e)this.setToken(e);else if(e=localStorage.getItem(this.tokenName))this.setToken(e);else{var n=document.cookie,i=n.indexOf(rt+"=");0<=i&&(0<=(i=(n=n.substring(i+rt.length+1).trim()).indexOf(";"))&&(n=n.substring(0,i)),this._setToken(n),localStorage.setItem(this.tokenName,n))}},at.prototype.setToken=function(n,i){return void 0===i&&(i=!1),k(this,void 0,void 0,function(){var e;return _(this,function(t){return n?(this._setToken(n),e=rt+"="+n,this.path?e+="; path=/"+this.path:e+=";path=/",i&&(e+="; expires = Thu, 01 Jan 2076 00:00:00 GMT",localStorage.setItem(this.tokenName,n)),sessionStorage.setItem(this.tokenName,n),document.cookie=e,[2,!0]):(this.signout(),[2,!1])})})},at.prototype._setToken=function(t){this.currentToken=t;var e=undefined;if(this.currentToken)try{e=(new w.JwtHelperService).decodeToken(t)}catch(n){console.log(n)}this.context._setUser(e),this.tokenInfoChanged&&this.tokenInfoChanged()},at.prototype.signout=function(){this._setToken("");var t=rt+"=; expires = Thu, 01 Jan 1970 00:00:00 GMT";this.path?t+="; path="+this.path:t+=";path=/",document.cookie=t,localStorage.removeItem(this.tokenName),sessionStorage.removeItem(this.tokenName)},at.decorators=[{type:v.Injectable}],at.ctorParameters=function(){return[{type:C.Context}]},at);function at(t){this.context=t}var lt=(ct.prototype.intercept=function(t,e){var n=t,i=this.sessionManager.getToken();return i&&0<i.length&&(n=t.clone({headers:t.headers.set(rt,"Bearer "+i)})),e.handle(n)},ct.decorators=[{type:v.Injectable}],ct.ctorParameters=function(){return[{type:st}]},ct);function ct(t){this.sessionManager=t}var ut=(dt.decorators=[{type:v.NgModule,args:[{declarations:[D,et,G,O,K,M,A,R],imports:[i.FormsModule,n.CommonModule,s.HttpClientModule,a.MatProgressSpinnerModule,c.MatDialogModule,u.BrowserAnimationsModule,d.MatFormFieldModule,h.MatButtonModule,g.MatListModule,y.MatTooltipModule,p.MatInputModule,f.MatIconModule,i.ReactiveFormsModule,m.MatCheckboxModule,b.MatMenuModule],providers:[{provide:C.Context,useFactory:ht,deps:[s.HttpClient,c.MatDialog]},st,H,N,W,X,{provide:s.HTTP_INTERCEPTORS,useClass:Z,multi:!0},{provide:s.HTTP_INTERCEPTORS,useClass:lt,multi:!0}],exports:[D,G,O,et,A],entryComponents:[K,A,R]}]}],dt);function dt(){}var pt=Symbol("dialogConfigMember");function ht(t,s){var n=this,e=new C.Context;e.openDialog=function(i,o,r){return k(n,void 0,void 0,function(){var e,n;return _(this,function(t){switch(t.label){case 0:return e=s.open(i,i[pt]),o&&o(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 r?[2,r(e.componentInstance)]:[2,n]}})})};var i=new it(t);return C.Action.provider=i,C.actionInfo.runActionWithoutBlockingUI=function(e){return k(n,void 0,void 0,function(){return _(this,function(t){switch(t.label){case 0:return[4,X.singleInstance.donotWait(e)];case 1:return[2,t.sent()]}})})},C.actionInfo.startBusyWithProgress=function(){return X.singleInstance.startBusyWithProgress()},e.setDataProvider(new C.RestDataProvider(C.Context.apiBaseUrl,i)),e}t.BusyService=X,t.SelectValueDialogComponent=A,t.JwtSessionManager=st,t.DialogConfig=function gt(e){return function(t){return t[pt]=e,t}},t.buildContext=ht,t.RemultModule=ut,t.RouteHelperService=W,t.SignedInGuard=N,t.NotSignedInGuard=H,t.ɵd=et,t.ɵc=D,t.ɵh=M,t.ɵe=G,t.ɵf=O,t.ɵi=R,t.ɵa=Z,t.ɵg=K,t.ɵb=lt,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("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("@auth0/angular-jwt"),require("@remult/core"),require("@angular/cdk/bidi")):"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","@auth0/angular-jwt","@remult/core","@angular/cdk/bidi"],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.angularJwt,t.core$2,t.ng.cdk.bidi)}(this,function(t,e,n,o,i,r,s,a,l,c,u,d,p,h,g,f,m,y,b,v,w,C,x){"use strict";var k=function(t,e){return(k=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 I(t,e){function n(){this.constructor=t}k(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function _(e,s,a,l){return new(a=a||Promise)(function(t,n){function o(t){try{r(l.next(t))}catch(e){n(e)}}function i(t){try{r(l["throw"](t))}catch(e){n(e)}}function r(e){e.done?t(e.value):new a(function(t){t(e.value)}).then(o,i)}r((l=l.apply(e,s||[])).next())})}function F(o,i){var r,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(r)throw new TypeError("Generator is already executing.");for(;l;)try{if(r=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=i.call(o,l)}catch(e){t=[6,e],s=0}finally{r=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([e,t])}}}function T(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 o,i,r=n.call(t),s=[];try{for(;(void 0===e||0<e--)&&!(o=r.next()).done;)s.push(o.value)}catch(a){i={error:a}}finally{try{o&&!o.done&&(n=r["return"])&&n.call(r)}finally{if(i)throw i.error}}return s}var D=(Object.defineProperty(M.prototype,"column",{set:function(t){this.map={column:t},this.map.column.__decorateDataSettings(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: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)}} </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:v.Input}],column:[{type:v.Input}],record:[{type:v.Input}],notReadonly:[{type:v.Input}],settings:[{type:v.Input}]},M);function M(){function t(t){var e=n.call(this)||this;return e.parent=t,e}var n;this.settings=new C.ColumnCollection(undefined,function(){return!0},undefined,undefined),this.ngErrorStateMatches=(I(t,n=e.ErrorStateMatcher),t.prototype.isErrorState=function(){return!!this.parent.getError()},new t(this))}var B=(Object.defineProperty(A.prototype,"column",{set:function(t){this.map={column:t},this.map.column.__decorateDataSettings(this.map)},enumerable:!0,configurable:!0}),A.prototype.showDescription=function(){return this.map.column&&this.map.getValue||!this._getEditable()},A.prototype.showClick=function(){return!!this.map.click&&!!this._getEditable()&&(this.map.allowClick===undefined||this.map.allowClick(this.record))},A.prototype.getClickIcon=function(){return this.map.clickIcon?this.map.clickIcon:"keyboard_arrow_down"},A.prototype.dataControlStyle=function(){return this.settings.__dataControlStyle(this.map)},A.prototype._getColumn=function(){return this.map.column?this.settings.__getColumn(this.map,this.record):new C.StringColumn},A.prototype.click=function(){this.showClick()&&this.settings._click(this.map,this.record)},A.prototype._getEditable=function(){return!!this.notReadonly||this.settings._getEditable(this.map,this.record)},A.prototype.ngOnChanges=function(){},A.prototype.getDropDown=function(){return this.map.valueList},A.prototype.isSelect=function(){return!(!this.map.valueList||!this._getEditable())},A.prototype.showTextBox=function(){return!this.isSelect()&&!this.showCheckbox()&&this._getEditable()},A.prototype.showReadonlyText=function(){return!this._getEditable()},A.prototype.showCheckbox=function(){return"checkbox"==this.settings._getColDataType(this.map)},A.prototype.getError=function(){return this.settings._getError(this.map,this.record)},A.prototype.getStyle=function(){return this.showDescription()?this.map.hideDataOnInput||!this._getEditable()?{display:"none"}:{width:"50px"}:{width:"100%"}},A.prototype.getFloatLabel=function(){return this.showDescription()&&this.settings._getColDisplayValue(this.map,this.record)?"always":""},A.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)}} </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)}} </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}']}]}],A.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}]},A);function A(){function t(t){var e=n.call(this)||this;return e.parent=t,e}var n;this.rightToLeft=!1,this.settings=new C.ColumnCollection(undefined,function(){return!0},undefined,undefined),this.ngErrorStateMatches=(I(t,n=e.ErrorStateMatcher),t.prototype.isErrorState=function(){return!!this.parent.getError()},new t(this))}var L=(R.prototype.selectFirst=function(){var t,e;try{for(var n=T(this.values),o=n.next();!o.done;o=n.next()){var i=o.value;if(this.matchesFilter(i))return void this.select(i)}}catch(r){t={error:r}}finally{try{o&&!o.done&&(e=n["return"])&&e.call(n)}finally{if(t)throw t.error}}},R.prototype.matchesFilter=function(t){return t.caption.toLocaleLowerCase().includes(this.searchString.toLocaleLowerCase())},R.prototype.args=function(t){this.values=t.values,this.onSelect=t.onSelect,this.title=t.title},R.prototype.select=function(t){this.onSelect(t),this.dialog.close()},R.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>'}]}],R.ctorParameters=function(){return[{type:c.MatDialogRef}]},R);function R(t){this.dialog=t,this.searchString=""}var P=(O.prototype.setFilter=function(){this.info.settings.columns.filterRows(this.info.filterColumnToAdd),this.dialog.close()},O.prototype.clear=function(){this.info.settings.columns.clearFilter(this.info.filterColumnToAdd),this.dialog.close()},O.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>'}]}],O.ctorParameters=function(){return[{type:c.MatDialogRef}]},O);function O(t){this.dialog=t}var E=(G.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)},G.prototype.cancelAddFilter=function(){},G.prototype.showEditFilter=function(e){this.filterColumnToAdd=this.settings.origList.find(function(t){return t.column==e}),this.editFilterVisible=!0,this.showAddFilter=!1},G.prototype.userFilterButton=function(){this.showFilterButton=!this.showFilterButton,this.settings.initOrigList(),0==this.settings.filterHelper.filterColumns.length&&this.showAddAnotherFilterDialog()},G.prototype.showAddAnotherFilterDialog=function(){return _(this,void 0,void 0,function(){var e=this;return F(this,function(t){switch(t.label){case 0:return this.settings.initOrigList(),this.filterColumnToAdd=undefined,[4,this.context.openDialog(L,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,this.context.openDialog(P,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]}})})},G.prototype.editFilter=function(n){return _(this,void 0,void 0,function(){var e=this;return F(this,function(t){switch(t.label){case 0:return this.filterColumnToAdd=this.settings.origList.find(function(t){return t.column==n}),[4,this.context.openDialog(P,function(t){return t.info=e})];case 1:return t.sent(),[2]}})})},G.prototype.confirmEditFilter=function(){this.settings.columns.filterRows(this.filterColumnToAdd),this.editFilterVisible=!1},G.prototype.clearEditFilter=function(){this.settings.columns.clearFilter(this.filterColumnToAdd),this.editFilterVisible=!1},G.prototype.addFilter=function(){this.settings.columns.filterRows(this.filterColumnToAdd),this.showAddFilter=!1},G.prototype.cancelAddNewFilter=function(){this.showAddFilter=!1},G.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 }"]}]}],G.ctorParameters=function(){return[{type:C.Context},{type:x.Directionality}]},G.propDecorators={settings:[{type:v.Input}]},G);function G(t,e){this.context=t,this.showFilterButton=!1,this.showAddFilter=!1,this.editFilterVisible=!1,this.rightToLeft=!1,this.rightToLeft="rtl"===e.value}var V=(W.prototype.addCol=function(n){return _(this,void 0,void 0,function(){var e=this;return F(this,function(t){switch(t.label){case 0:return[4,this.context.openDialog(L,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]}})})},W.prototype.getColFlex=function(t){return"0 0 "+this.getColWidth(t)},W.prototype.getColWidth=function(t){var e=this.settings.columns.__dataControlStyle(t);return e=e||"200px"},W.prototype.test=function(){},W.prototype.getTotalRows=function(){return this.settings.totalRows?Math.ceil(this.settings.totalRows/this.settings.rowsPerPage):this.rightToLeft?"רבים":"many"},W.prototype.dragStart=function(t){this.tempDragColumn=t},W.prototype.dragOver=function(t,e){e.preventDefault()},W.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()},W.prototype._getHeight=function(){if(this.height)return(+this.height).toString()==this.height?this.height+"px":this.height},W.prototype.isFiltered=function(t){return this.settings.columns.filterHelper.isFiltered(t)},W.prototype.showFilterColumnDialog=function(t){this.settings.initOrigList(),this.dataFilterInfo.editFilter(t.column)},W.prototype.getButtonCssClass=function(t,e){return t.cssClass?i.isFunction(t.cssClass)?t.cssClass(e):t.cssClass.toString():""},W.prototype.getButtonText=function(t,e){return t.textInMenu?i.isFunction(t.textInMenu)?e?t.textInMenu(e):"":t.textInMenu:t.name},W.prototype.clickOnselectCheckboxFor=function(t,e){this.settings.clickOnselectCheckboxFor(t,e.shiftKey)},W.prototype.hasVisibleButton=function(e){return this.rowButtons.find(function(t){return t.visible(e)})},W.prototype.hasVisibleGridButtons=function(){return this.gridButtons.find(function(t){return t.visible()})},W.prototype.addButton=function(t){if(t.click||(t.click=function(t){}),t.visible||(t.visible=function(t){return!0}),t.cssClass){if(!i.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},W.prototype.rowClicked=function(t){this.settings.setCurrentRow(t)},W.prototype.nextPage=function(){this.page++},W.prototype.previousPage=function(){this.page<=1||this.page--},W.prototype.showSaveAllButton=function(){return this.settings.items.find(function(t){return t.wasChanged()})},W.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"},W.prototype.saveAllClick=function(){return _(this,void 0,void 0,function(){return F(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]}})})},W.prototype.ngOnChanges=function(){var t,e,n,o=this;if(this.settings){if(this.rowButtons=[],this.gridButtons=[],this.gridButtons.push({visible:function(){return o.showSaveAllButton()},textInMenu:function(){return o.saveAllText()},click:function(){return _(o,void 0,void 0,function(){return F(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,function a(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(S(arguments[e]));return t}(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 o.rightToLeft?"שמור":"save"},click:function(t){o.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 o.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 o.rightToLeft?"מחק":"delete"},click:function(e){return _(o,void 0,void 0,function(){return F(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 i=T(this.settings._buttons),r=i.next();!r.done;r=i.next()){var s=r.value;this.addButton(s)}}catch(l){e={error:l}}finally{try{r&&!r.done&&(n=i["return"])&&n.call(i)}finally{if(e)throw e.error}}!this.records&&this.settings&&this.settings.getRecords().then(function(t){o.records=t})}},W.prototype._getRowClass=function(t){var e="dataGridRow ";return this.settings.rowClass&&(e+=this.settings.rowClass(t)),t==this.settings.currentRow&&(e+=" active"),e},W.prototype._getRowColumnClass=function(t,e){return this.settings.columns._getColumnClass(t,e)+" dataGridDataCell"},W.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}"]}]}],W.ctorParameters=function(){return[{type:C.Context},{type:x.Directionality}]},W.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:[E]}]},W);function W(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=(N.prototype.navigateToComponent=function(e){var n=this,o=!1;this.router.config.forEach(function(t){o||t.component==e&&(o=!0,n.router.navigate(["/"+t.path]))}),o||console.warn("couldn't find path for ",e,this.router.config)},N.prototype.canNavigateToRoute=function(t){var e,n;if(!t.canActivate)return!0;try{for(var o=T(t.canActivate),i=o.next();!i.done;i=o.next()){var r=i.value,s=this.injector.get(r);if(s&&s.canActivate){var a=new $;if(a.routeConfig=t,!s.canActivate(a,undefined))return!1}}}catch(l){e={error:l}}finally{try{i&&!i.done&&(n=o["return"])&&n.call(o)}finally{if(e)throw e.error}}return!0},N.decorators=[{type:v.Injectable}],N.ctorParameters=function(){return[{type:r.Router},{type:v.Injector}]},N);function N(t,e){this.router=t,this.injector=e}var q=(H.prototype.isAllowed=function(){return!0},H.prototype.canActivate=function(t){if(this.context.isSignedIn()&&this.context.isAllowed(this.isAllowed()))return!0;if(!(t instanceof $)){var e=H.componentToNavigateIfNotAllowed;e!=undefined?this.helper.navigateToComponent(e):this.router.navigate(["/"])}return!1},H.decorators=[{type:v.Injectable}],H.ctorParameters=function(){return[{type:C.Context},{type:r.Router},{type:j}]},H);function H(t,e,n){this.context=t,this.router=e,this.helper=n}var z=(J.prototype.canActivate=function(t){return!this.context.isSignedIn()},J.decorators=[{type:v.Injectable}],J.ctorParameters=function(){return[{type:C.Context},{type:r.Router}]},J);function J(t,e){this.context=t,this.router=e}var U,$=(I(K,U=r.ActivatedRouteSnapshot),K);function K(){return U.call(this)||this}var Q=(X.prototype.ngOnInit=function(){},X.decorators=[{type:v.Component,args:[{selector:"app-wait",template:'<mat-progress-spinner [mode]="mode" [value]="value" >\r\n</mat-progress-spinner>',styles:[""]}]}],X.ctorParameters=function(){return[]},X);function X(){this.mode="indeterminate",this.value=0}var Y=(Z.prototype.donotWait=function(e){return _(this,void 0,void 0,function(){return F(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]}})})},Z.prototype.donotWaitNonAsync=function(t){this.disableWait=!0;try{return t()}finally{this.disableWait=!1}},Z.prototype.log=function(t,e){},Z.prototype.doWhileShowingBusy=function(n){return _(this,void 0,void 0,function(){var e;return F(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]}})})},Z.prototype.startBusyWithProgress=function(){var t=this;if(this.disableWait)return{close:function(){},progress:function(){}};var e=!1,n=this.dialog.open(Q,{disableClose:!0});return{close:function(){return _(t,void 0,void 0,function(){return F(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)}}},Z.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(Q,{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))})},Z.decorators=[{type:v.Injectable}],Z.ctorParameters=function(){return[{type:c.MatDialog}]},Z);function Z(t){this.dialog=t,this.id=0,this.numOfWaits=0,this.disableWait=!1,Z.singleInstance=this}var tt=(et.prototype.intercept=function(t,e){var n=this.busy.showBusy();return e.handle(t).pipe(l.finalize(function(){return n()}))},et.decorators=[{type:v.Injectable}],et.ctorParameters=function(){return[{type:Y}]},et);function et(t){this.busy=t}var nt=(ot.prototype.ngOnChanges=function(){var t=this;if(this.settings&&this.settings.columns){this.object&&(this.settings=new C.DataAreaSettings({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)}},ot.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 o=0;o<this.columns;o++)n.push([]);e=this.settings.lines?this.settings.lines:t.map(function(t){return[t]});var i=Math.round(e.length/this.columns);for(o=0;o<e.length;o++)n[Math.floor(o/i)].push(e[o]);return this.lastCols},ot.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%}}"]}]}],ot.propDecorators={settings:[{type:v.Input}],object:[{type:v.Input}],columns:[{type:v.Input}]},ot);function ot(){this.settings={columns:new C.ColumnCollection(function(){return undefined},function(){return!1},undefined,function(){return!0}),lines:undefined},this.columns=1}var it=(rt.prototype.post=function(t,e){return this.http.post(t,e).toPromise()},rt.prototype["delete"]=function(t){return this.http["delete"](t).toPromise().then(function(t){})},rt.prototype.put=function(t,e){return this.http.put(t,e).toPromise()},rt.prototype.get=function(t){return this.http.get(t).toPromise()},rt);function rt(t){this.http=t}var st="authorization",at=(lt.prototype.getToken=function(){return this.currentToken},lt.prototype.loadSessionFromCookie=function(t){this.path=t,this.tokenName=st,this.path&&(this.tokenName+="/"+t);var e=sessionStorage.getItem(this.tokenName);if(e)this.setToken(e);else if(e=localStorage.getItem(this.tokenName))this.setToken(e);else{var n=document.cookie,o=n.indexOf(st+"=");0<=o&&(0<=(o=(n=n.substring(o+st.length+1).trim()).indexOf(";"))&&(n=n.substring(0,o)),this._setToken(n),localStorage.setItem(this.tokenName,n))}},lt.prototype.setToken=function(n,o){return void 0===o&&(o=!1),_(this,void 0,void 0,function(){var e;return F(this,function(t){return n?(this._setToken(n),e=st+"="+n,this.path?e+="; path=/"+this.path:e+=";path=/",o&&(e+="; expires = Thu, 01 Jan 2076 00:00:00 GMT",localStorage.setItem(this.tokenName,n)),sessionStorage.setItem(this.tokenName,n),document.cookie=e,[2,!0]):(this.signout(),[2,!1])})})},lt.prototype._setToken=function(t){this.currentToken=t;var e=undefined;if(this.currentToken)try{e=(new w.JwtHelperService).decodeToken(t)}catch(n){console.log(n)}this.context._setUser(e),this.tokenInfoChanged&&this.tokenInfoChanged()},lt.prototype.signout=function(){this._setToken("");var t=st+"=; expires = Thu, 01 Jan 1970 00:00:00 GMT";this.path?t+="; path="+this.path:t+=";path=/",document.cookie=t,localStorage.removeItem(this.tokenName),sessionStorage.removeItem(this.tokenName)},lt.decorators=[{type:v.Injectable}],lt.ctorParameters=function(){return[{type:C.Context}]},lt);function lt(t){this.context=t}var ct=(ut.prototype.intercept=function(t,e){var n=t,o=this.sessionManager.getToken();return o&&0<o.length&&(n=t.clone({headers:t.headers.set(st,"Bearer "+o)})),e.handle(n)},ut.decorators=[{type:v.Injectable}],ut.ctorParameters=function(){return[{type:at}]},ut);function ut(t){this.sessionManager=t}var dt=(pt.decorators=[{type:v.NgModule,args:[{declarations:[D,nt,E,V,Q,B,L,P],imports:[o.FormsModule,n.CommonModule,s.HttpClientModule,a.MatProgressSpinnerModule,c.MatDialogModule,u.BrowserAnimationsModule,d.MatFormFieldModule,h.MatButtonModule,g.MatListModule,y.MatTooltipModule,p.MatInputModule,f.MatIconModule,o.ReactiveFormsModule,m.MatCheckboxModule,b.MatMenuModule,x.BidiModule],providers:[{provide:C.Context,useFactory:gt,deps:[s.HttpClient,c.MatDialog]},at,z,q,j,Y,{provide:s.HTTP_INTERCEPTORS,useClass:tt,multi:!0},{provide:s.HTTP_INTERCEPTORS,useClass:ct,multi:!0}],exports:[D,E,V,nt,L],entryComponents:[Q,L,P]}]}],pt);function pt(){}var ht=Symbol("dialogConfigMember");function gt(t,s){var n=this,e=new C.Context;e.openDialog=function(o,i,r){return _(n,void 0,void 0,function(){var e,n;return F(this,function(t){switch(t.label){case 0:return e=s.open(o,o[ht]),i&&i(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 r?[2,r(e.componentInstance)]:[2,n]}})})};var o=new it(t);return C.Action.provider=o,C.actionInfo.runActionWithoutBlockingUI=function(e){return _(n,void 0,void 0,function(){return F(this,function(t){switch(t.label){case 0:return[4,Y.singleInstance.donotWait(e)];case 1:return[2,t.sent()]}})})},C.actionInfo.startBusyWithProgress=function(){return Y.singleInstance.startBusyWithProgress()},e.setDataProvider(new C.RestDataProvider(C.Context.apiBaseUrl,o)),e}t.BusyService=Y,t.SelectValueDialogComponent=L,t.JwtSessionManager=at,t.DialogConfig=function ft(e){return function(t){return t[ht]=e,t}},t.buildContext=gt,t.RemultModule=dt,t.RouteHelperService=j,t.SignedInGuard=q,t.NotSignedInGuard=z,t.ɵd=nt,t.ɵc=D,t.ɵh=B,t.ɵe=E,t.ɵf=V,t.ɵi=P,t.ɵa=tt,t.ɵg=Q,t.ɵb=ct,Object.defineProperty(t,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=remult-angular.umd.min.js.map |
@@ -6,3 +6,4 @@ /** | ||
import * as tslib_1 from "tslib"; | ||
import { Component, Input, ElementRef, ViewChild } from '@angular/core'; | ||
import { Directionality } from '@angular/cdk/bidi'; | ||
import { Component, Input } from '@angular/core'; | ||
import { Context, GridSettings } from '@remult/core'; | ||
@@ -14,4 +15,5 @@ import { SelectValueDialogComponent } from '../add-filter-dialog/add-filter-dialog.component'; | ||
* @param {?} context | ||
* @param {?} dir | ||
*/ | ||
constructor(context) { | ||
constructor(context, dir) { | ||
this.context = context; | ||
@@ -22,2 +24,3 @@ this.showFilterButton = false; | ||
this.rightToLeft = false; | ||
this.rightToLeft = dir.value === 'rtl'; | ||
} | ||
@@ -145,10 +148,2 @@ /** | ||
} | ||
/** | ||
* @return {?} | ||
*/ | ||
ngAfterViewInit() { | ||
if (window && window.getComputedStyle && this.theDiv) { | ||
this.rightToLeft = window.getComputedStyle(this.theDiv.nativeElement, null).getPropertyValue('direction') == 'rtl'; | ||
} | ||
} | ||
} | ||
@@ -158,3 +153,3 @@ DataFilterInfoComponent.decorators = [ | ||
selector: 'Data-Filter', | ||
template: "<span (click)=\"showAddAnotherFilterDialog()\" #theDiv class=\"link\" *ngIf=\"settings.settings.showFilter\"><span *ngIf=\"!rightToLeft\">Filter</span><span *ngIf=\"rightToLeft\">\u05E1\u05D9\u05E0\u05D5\u05DF</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\">\u05D5\u05D2\u05DD</span> </span>\r\n <span (click)=\"editFilter(map)\" class=\"link\"> {{map.defs.caption}} = \"{{this.getCurrentFilterValue(map)}}\"</span>\r\n</span>", | ||
template: "<span (click)=\"showAddAnotherFilterDialog()\" #theDiv class=\"link\"\r\n *ngIf=\"settings.settings.showFilter\"><span>{{rightToLeft?'\u05E1\u05D9\u05E0\u05D5\u05DF': '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\">\u05D5\u05D2\u05DD</span> </span>\r\n <span (click)=\"editFilter(map)\" class=\"link\"> {{map.defs.caption}} = \"{{this.getCurrentFilterValue(map)}}\"</span>\r\n</span>", | ||
styles: [`.link { | ||
@@ -169,7 +164,7 @@ cursor:pointer; | ||
DataFilterInfoComponent.ctorParameters = () => [ | ||
{ type: Context } | ||
{ type: Context }, | ||
{ type: Directionality } | ||
]; | ||
DataFilterInfoComponent.propDecorators = { | ||
settings: [{ type: Input }], | ||
theDiv: [{ type: ViewChild, args: ['theDiv',] }] | ||
settings: [{ type: Input }] | ||
}; | ||
@@ -189,4 +184,2 @@ if (false) { | ||
DataFilterInfoComponent.prototype.rightToLeft; | ||
/** @type {?} */ | ||
DataFilterInfoComponent.prototype.theDiv; | ||
/** | ||
@@ -198,2 +191,2 @@ * @type {?} | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1maWx0ZXItaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcmVtdWx0L2FuZ3VsYXIvIiwic291cmNlcyI6WyJzcmMvYW5ndWxhci9kYXRhLWZpbHRlci1pbmZvL2RhdGEtZmlsdGVyLWluZm8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQVUsT0FBTyxFQUF1QixZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDOUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFVakYsTUFBTSxPQUFPLHVCQUF1Qjs7OztJQWNoQyxZQUFvQixPQUFnQjtRQUFoQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBSXBDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFtRDFCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBdkRwQixDQUFDOzs7OztJQVpELHFCQUFxQixDQUFDLEdBQVc7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQzs7WUFDekIsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUk7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7Ozs7SUFDRCxlQUFlO0lBSWYsQ0FBQzs7Ozs7SUFRRCxjQUFjLENBQUMsR0FBVztRQUN0QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7Ozs7SUFDRCxnQkFBZ0I7UUFDWixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxNQUFNLElBQUksQ0FBQztZQUNwRCxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUMxQyxDQUFDOzs7O0lBQ0ssMEJBQTBCOztZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7WUFDbkMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQywwQkFBMEI7Ozs7WUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMseUJBQXlCO2dCQUN4RSxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRO2dCQUM5QixRQUFROzs7O2dCQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQTthQUM1QyxDQUFDLEVBQUMsQ0FBQztZQUdKLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUN4QixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLHFCQUFxQjs7Ozs7O2dCQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUMsQ0FBQzthQUM1RTtZQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7UUFDdkMsQ0FBQztLQUFBOzs7OztJQUNZLFVBQVUsQ0FBQyxHQUFXOztZQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSTs7OztZQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUMsQ0FBQztZQUMzRSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLHFCQUFxQjs7Ozs7O1lBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksRUFBQyxDQUFDO1FBQzdFLENBQUM7S0FBQTs7OztJQUNELGlCQUFpQjtRQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7Ozs7SUFDRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQzs7OztJQUdELFNBQVM7UUFFTCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQzs7OztJQUNELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7Ozs7SUFLRCxlQUFlO1FBQ1gsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxDQUFDO1NBQ3RIO0lBQ0wsQ0FBQzs7O1lBeEZKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsb3FCQUFnRDt5QkFDdkM7Ozs7S0FJUjthQUNKOzs7O1lBWGdCLE9BQU87Ozt1QkFjbkIsS0FBSztxQkF1RUwsU0FBUyxTQUFDLFFBQVE7Ozs7SUF2RW5CLDJDQUFxQzs7SUFDckMsb0RBQXVDOztJQWV2QyxtREFBeUI7O0lBQ3pCLGdEQUFzQjs7SUFDdEIsb0RBQTBCOztJQW1EMUIsOENBQW9COztJQUVwQix5Q0FDbUI7Ozs7O0lBNURQLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29sdW1uLCBDb250ZXh0LCBEYXRhQ29udHJvbFNldHRpbmdzLCBHcmlkU2V0dGluZ3MgfSBmcm9tICdAcmVtdWx0L2NvcmUnO1xyXG5pbXBvcnQgeyBTZWxlY3RWYWx1ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1maWx0ZXItZGlhbG9nL2FkZC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbHRlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlci1kaWFsb2cvZmlsdGVyLWRpYWxvZy5jb21wb25lbnQnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnRGF0YS1GaWx0ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtZmlsdGVyLWluZm8uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVzOiBbYC5saW5rIHtcclxuICAgICAgICBjdXJzb3I6cG9pbnRlcjtcclxuICAgICAgICBjb2xvcjpibHVlO1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7XHJcbiAgIH1gXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YUZpbHRlckluZm9Db21wb25lbnQge1xyXG5cclxuICAgIEBJbnB1dCgpIHNldHRpbmdzOiBHcmlkU2V0dGluZ3M8YW55PjtcclxuICAgIGZpbHRlckNvbHVtblRvQWRkOiBEYXRhQ29udHJvbFNldHRpbmdzO1xyXG4gICAgZ2V0Q3VycmVudEZpbHRlclZhbHVlKGNvbDogQ29sdW1uKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5pbml0T3JpZ0xpc3QoKTtcclxuICAgICAgICBsZXQgbSA9IHRoaXMuc2V0dGluZ3Mub3JpZ0xpc3QuZmluZCh4ID0+IHguY29sdW1uID09IGNvbCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5fZ2V0Q29sRGlzcGxheVZhbHVlKG0sIHRoaXMuc2V0dGluZ3MuZmlsdGVySGVscGVyLmZpbHRlclJvdyk7XHJcbiAgICB9XHJcbiAgICBjYW5jZWxBZGRGaWx0ZXIoKSB7XHJcblxyXG5cclxuXHJcbiAgICB9XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRleHQ6IENvbnRleHQpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgc2hvd0ZpbHRlckJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgc2hvd0FkZEZpbHRlciA9IGZhbHNlO1xyXG4gICAgZWRpdEZpbHRlclZpc2libGUgPSBmYWxzZTtcclxuICAgIHNob3dFZGl0RmlsdGVyKGNvbDogQ29sdW1uKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCA9IHRoaXMuc2V0dGluZ3Mub3JpZ0xpc3QuZmluZCh4ID0+IHguY29sdW1uID09IGNvbCk7XHJcbiAgICAgICAgdGhpcy5lZGl0RmlsdGVyVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkRmlsdGVyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB1c2VyRmlsdGVyQnV0dG9uKCkge1xyXG4gICAgICAgIHRoaXMuc2hvd0ZpbHRlckJ1dHRvbiA9ICF0aGlzLnNob3dGaWx0ZXJCdXR0b247XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5pbml0T3JpZ0xpc3QoKTtcclxuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5maWx0ZXJIZWxwZXIuZmlsdGVyQ29sdW1ucy5sZW5ndGggPT0gMClcclxuICAgICAgICAgICAgdGhpcy5zaG93QWRkQW5vdGhlckZpbHRlckRpYWxvZygpO1xyXG4gICAgfVxyXG4gICAgYXN5bmMgc2hvd0FkZEFub3RoZXJGaWx0ZXJEaWFsb2coKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5pbml0T3JpZ0xpc3QoKTtcclxuICAgICAgICB0aGlzLmZpbHRlckNvbHVtblRvQWRkID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuY29udGV4dC5vcGVuRGlhbG9nKFNlbGVjdFZhbHVlRGlhbG9nQ29tcG9uZW50LCB4ID0+IHguYXJncyh7XHJcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnJpZ2h0VG9MZWZ0ID8gXCLXkdeX16gg16LXnteV15PXlCDXnNeh15nXoNeV159cIiA6IFwiU2VsZWN0IENvbHVtbiB0byBGaWx0ZXJcIixcclxuICAgICAgICAgICAgdmFsdWVzOiB0aGlzLnNldHRpbmdzLm9yaWdMaXN0LFxyXG4gICAgICAgICAgICBvblNlbGVjdDogeCA9PiB0aGlzLmZpbHRlckNvbHVtblRvQWRkID0geFxyXG4gICAgICAgIH0pKTtcclxuXHJcblxyXG4gICAgICAgIGlmICh0aGlzLmZpbHRlckNvbHVtblRvQWRkKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY29udGV4dC5vcGVuRGlhbG9nKEZpbHRlckRpYWxvZ0NvbXBvbmVudCwgeCA9PiB4LmluZm8gPSB0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd0FkZEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBhc3luYyBlZGl0RmlsdGVyKGNvbDogQ29sdW1uKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCA9IHRoaXMuc2V0dGluZ3Mub3JpZ0xpc3QuZmluZCh4ID0+IHguY29sdW1uID09IGNvbCk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jb250ZXh0Lm9wZW5EaWFsb2coRmlsdGVyRGlhbG9nQ29tcG9uZW50LCB4ID0+IHguaW5mbyA9IHRoaXMpO1xyXG4gICAgfVxyXG4gICAgY29uZmlybUVkaXRGaWx0ZXIoKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmZpbHRlclJvd3ModGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCk7XHJcbiAgICAgICAgdGhpcy5lZGl0RmlsdGVyVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY2xlYXJFZGl0RmlsdGVyKCkge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5jbGVhckZpbHRlcih0aGlzLmZpbHRlckNvbHVtblRvQWRkKTtcclxuICAgICAgICB0aGlzLmVkaXRGaWx0ZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGFkZEZpbHRlcigpIHtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmZpbHRlclJvd3ModGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCk7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkRmlsdGVyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjYW5jZWxBZGROZXdGaWx0ZXIoKSB7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkRmlsdGVyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByaWdodFRvTGVmdCA9IGZhbHNlO1xyXG4gICAgLy9AdHMtaWdub3JlXHJcbiAgICBAVmlld0NoaWxkKCd0aGVEaXYnKVxyXG4gICAgdGhlRGl2OiBFbGVtZW50UmVmO1xyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh3aW5kb3cgJiYgd2luZG93LmdldENvbXB1dGVkU3R5bGUgJiYgdGhpcy50aGVEaXYpIHtcclxuICAgICAgICAgICAgdGhpcy5yaWdodFRvTGVmdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMudGhlRGl2Lm5hdGl2ZUVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2RpcmVjdGlvbicpID09ICdydGwnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1maWx0ZXItaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcmVtdWx0L2FuZ3VsYXIvIiwic291cmNlcyI6WyJzcmMvYW5ndWxhci9kYXRhLWZpbHRlci1pbmZvL2RhdGEtZmlsdGVyLWluZm8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQVUsT0FBTyxFQUF1QixZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDOUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFVakYsTUFBTSxPQUFPLHVCQUF1Qjs7Ozs7SUFjaEMsWUFBb0IsT0FBZ0IsRUFBRSxHQUFtQjtRQUFyQyxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBSXBDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFtRDFCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBeERoQixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDO0lBQzNDLENBQUM7Ozs7O0lBWkQscUJBQXFCLENBQUMsR0FBVztRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDOztZQUN6QixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUM7UUFDekQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8s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QUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDOzs7O0lBQ0Qsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQzs7O1lBL0VKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsdW9CQUFnRDt5QkFDdkM7Ozs7S0FJUjthQUNKOzs7O1lBWGdCLE9BQU87WUFGZixjQUFjOzs7dUJBZ0JsQixLQUFLOzs7O0lBQU4sMkNBQXFDOztJQUNyQyxvREFBdUM7O0lBZXZDLG1EQUF5Qjs7SUFDekIsZ0RBQXNCOztJQUN0QixvREFBMEI7O0lBbUQxQiw4Q0FBb0I7Ozs7O0lBekRSLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRWxlbWVudFJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbHVtbiwgQ29udGV4dCwgRGF0YUNvbnRyb2xTZXR0aW5ncywgR3JpZFNldHRpbmdzIH0gZnJvbSAnQHJlbXVsdC9jb3JlJztcclxuaW1wb3J0IHsgU2VsZWN0VmFsdWVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtZmlsdGVyLWRpYWxvZy9hZGQtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWx0ZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXItZGlhbG9nL2ZpbHRlci1kaWFsb2cuY29tcG9uZW50JztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ0RhdGEtRmlsdGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRhLWZpbHRlci1pbmZvLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlczogW2AubGluayB7XHJcbiAgICAgICAgY3Vyc29yOnBvaW50ZXI7XHJcbiAgICAgICAgY29sb3I6Ymx1ZTtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO1xyXG4gICB9YF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFGaWx0ZXJJbmZvQ29tcG9uZW50IHtcclxuXHJcbiAgICBASW5wdXQoKSBzZXR0aW5nczogR3JpZFNldHRpbmdzPGFueT47XHJcbiAgICBmaWx0ZXJDb2x1bW5Ub0FkZDogRGF0YUNvbnRyb2xTZXR0aW5ncztcclxuICAgIGdldEN1cnJlbnRGaWx0ZXJWYWx1ZShjb2w6IENvbHVtbikge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuaW5pdE9yaWdMaXN0KCk7XHJcbiAgICAgICAgbGV0IG0gPSB0aGlzLnNldHRpbmdzLm9yaWdMaXN0LmZpbmQoeCA9PiB4LmNvbHVtbiA9PSBjb2wpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmNvbHVtbnMuX2dldENvbERpc3BsYXlWYWx1ZShtLCB0aGlzLnNldHRpbmdzLmZpbHRlckhlbHBlci5maWx0ZXJSb3cpO1xyXG4gICAgfVxyXG4gICAgY2FuY2VsQWRkRmlsdGVyKCkge1xyXG5cclxuXHJcblxyXG4gICAgfVxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250ZXh0OiBDb250ZXh0LCBkaXI6IERpcmVjdGlvbmFsaXR5KSB7XHJcbiAgICAgICAgdGhpcy5yaWdodFRvTGVmdCA9IGRpci52YWx1ZSA9PT0gJ3J0bCc7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd0ZpbHRlckJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgc2hvd0FkZEZpbHRlciA9IGZhbHNlO1xyXG4gICAgZWRpdEZpbHRlclZpc2libGUgPSBmYWxzZTtcclxuICAgIHNob3dFZGl0RmlsdGVyKGNvbDogQ29sdW1uKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCA9IHRoaXMuc2V0dGluZ3Mub3JpZ0xpc3QuZmluZCh4ID0+IHguY29sdW1uID09IGNvbCk7XHJcbiAgICAgICAgdGhpcy5lZGl0RmlsdGVyVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkRmlsdGVyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB1c2VyRmlsdGVyQnV0dG9uKCkge1xyXG4gICAgICAgIHRoaXMuc2hvd0ZpbHRlckJ1dHRvbiA9ICF0aGlzLnNob3dGaWx0ZXJCdXR0b247XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5pbml0T3JpZ0xpc3QoKTtcclxuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5maWx0ZXJIZWxwZXIuZmlsdGVyQ29sdW1ucy5sZW5ndGggPT0gMClcclxuICAgICAgICAgICAgdGhpcy5zaG93QWRkQW5vdGhlckZpbHRlckRpYWxvZygpO1xyXG4gICAgfVxyXG4gICAgYXN5bmMgc2hvd0FkZEFub3RoZXJGaWx0ZXJEaWFsb2coKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5pbml0T3JpZ0xpc3QoKTtcclxuICAgICAgICB0aGlzLmZpbHRlckNvbHVtblRvQWRkID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuY29udGV4dC5vcGVuRGlhbG9nKFNlbGVjdFZhbHVlRGlhbG9nQ29tcG9uZW50LCB4ID0+IHguYXJncyh7XHJcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnJpZ2h0VG9MZWZ0ID8gXCLXkdeX16gg16LXnteV15PXlCDXnNeh15nXoNeV159cIiA6IFwiU2VsZWN0IENvbHVtbiB0byBGaWx0ZXJcIixcclxuICAgICAgICAgICAgdmFsdWVzOiB0aGlzLnNldHRpbmdzLm9yaWdMaXN0LFxyXG4gICAgICAgICAgICBvblNlbGVjdDogeCA9PiB0aGlzLmZpbHRlckNvbHVtblRvQWRkID0geFxyXG4gICAgICAgIH0pKTtcclxuXHJcblxyXG4gICAgICAgIGlmICh0aGlzLmZpbHRlckNvbHVtblRvQWRkKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY29udGV4dC5vcGVuRGlhbG9nKEZpbHRlckRpYWxvZ0NvbXBvbmVudCwgeCA9PiB4LmluZm8gPSB0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd0FkZEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBhc3luYyBlZGl0RmlsdGVyKGNvbDogQ29sdW1uKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCA9IHRoaXMuc2V0dGluZ3Mub3JpZ0xpc3QuZmluZCh4ID0+IHguY29sdW1uID09IGNvbCk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jb250ZXh0Lm9wZW5EaWFsb2coRmlsdGVyRGlhbG9nQ29tcG9uZW50LCB4ID0+IHguaW5mbyA9IHRoaXMpO1xyXG4gICAgfVxyXG4gICAgY29uZmlybUVkaXRGaWx0ZXIoKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmZpbHRlclJvd3ModGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCk7XHJcbiAgICAgICAgdGhpcy5lZGl0RmlsdGVyVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY2xlYXJFZGl0RmlsdGVyKCkge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5jbGVhckZpbHRlcih0aGlzLmZpbHRlckNvbHVtblRvQWRkKTtcclxuICAgICAgICB0aGlzLmVkaXRGaWx0ZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGFkZEZpbHRlcigpIHtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmZpbHRlclJvd3ModGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCk7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkRmlsdGVyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjYW5jZWxBZGROZXdGaWx0ZXIoKSB7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkRmlsdGVyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByaWdodFRvTGVmdCA9IGZhbHNlO1xyXG4gICAgXHJcbn1cclxuIl19 |
@@ -6,3 +6,3 @@ /** | ||
import * as tslib_1 from "tslib"; | ||
import { Component, Input, ViewChild, ElementRef } from '@angular/core'; | ||
import { Component, Input, ViewChild } from '@angular/core'; | ||
import { isFunction } from 'util'; | ||
@@ -12,7 +12,9 @@ import { DataFilterInfoComponent } from '../data-filter-info/data-filter-info.component'; | ||
import { SelectValueDialogComponent } from '../add-filter-dialog/add-filter-dialog.component'; | ||
import { Directionality } from '@angular/cdk/bidi'; | ||
export class DataGrid2Component { | ||
/** | ||
* @param {?} context | ||
* @param {?} dir | ||
*/ | ||
constructor(context) { | ||
constructor(context, dir) { | ||
this.context = context; | ||
@@ -26,12 +28,5 @@ this.rightToLeft = false; | ||
this.page = 1; | ||
this.rightToLeft = dir.value === 'rtl'; | ||
} | ||
/** | ||
* @return {?} | ||
*/ | ||
ngAfterViewInit() { | ||
if (window && window.getComputedStyle && this.dataGridDiv) { | ||
this.rightToLeft = window.getComputedStyle(this.dataGridDiv.nativeElement, null).getPropertyValue('direction') == 'rtl'; | ||
} | ||
} | ||
/** | ||
* @param {?} c | ||
@@ -177,2 +172,10 @@ * @return {?} | ||
/** | ||
* @param {?} row | ||
* @param {?} e | ||
* @return {?} | ||
*/ | ||
clickOnselectCheckboxFor(row, e) { | ||
this.settings.clickOnselectCheckboxFor(row, e.shiftKey); | ||
} | ||
/** | ||
* @param {?} record | ||
@@ -258,2 +261,43 @@ * @return {?} | ||
*/ | ||
showSaveAllButton() { | ||
return this.settings.items.find((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
x => x.wasChanged())); | ||
} | ||
/** | ||
* @return {?} | ||
*/ | ||
saveAllText() { | ||
return this.rightToLeft ? ('שמור ' + this.settings.items.filter((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
x => x.wasChanged())).length + ' שורות') : | ||
('save ' + this.settings.items.filter((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
x => x.wasChanged())).length + ' rows'); | ||
} | ||
/** | ||
* @return {?} | ||
*/ | ||
saveAllClick() { | ||
return tslib_1.__awaiter(this, void 0, void 0, /** @this {!DataGrid2Component} */ function* () { | ||
yield Promise.all(this.settings.items.filter((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
x => x.wasChanged())).map((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
x => x.save()))); | ||
}); | ||
} | ||
/** | ||
* @return {?} | ||
*/ | ||
ngOnChanges() { | ||
@@ -268,20 +312,7 @@ if (!this.settings) | ||
*/ | ||
() => this.settings.items.find((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
x => x.wasChanged()))), | ||
() => this.showSaveAllButton()), | ||
textInMenu: (/** | ||
* @return {?} | ||
*/ | ||
() => this.rightToLeft ? ('שמור ' + this.settings.items.filter((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
x => x.wasChanged())).length + ' שורות') : | ||
('save ' + this.settings.items.filter((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
x => x.wasChanged())).length + ' rows')), | ||
() => this.saveAllText()), | ||
click: (/** | ||
@@ -291,11 +322,3 @@ * @return {?} | ||
() => tslib_1.__awaiter(this, void 0, void 0, function* () { | ||
yield Promise.all(this.settings.items.filter((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
x => x.wasChanged())).map((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
x => x.save()))); | ||
yield this.saveAllClick(); | ||
})) | ||
@@ -431,3 +454,3 @@ }); | ||
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\"></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)\">\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?'\u05E9\u05D5\u05E8\u05D5\u05EA \u05D1\u05D3\u05E3': '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></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?'\u05E2\u05DE\u05D5\u05D3':'Page'}} {{settings.page}} {{rightToLeft?' \u05DE\u05EA\u05D5\u05DA ':' 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>", | ||
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?'\u05E9\u05D5\u05E8\u05D5\u05EA \u05D1\u05D3\u05E3': '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?'\u05E2\u05DE\u05D5\u05D3':'Page'}} {{settings.page}} {{rightToLeft?' \u05DE\u05EA\u05D5\u05DA ':' 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}"] | ||
@@ -438,6 +461,6 @@ }] } | ||
DataGrid2Component.ctorParameters = () => [ | ||
{ type: Context } | ||
{ type: Context }, | ||
{ type: Directionality } | ||
]; | ||
DataGrid2Component.propDecorators = { | ||
dataGridDiv: [{ type: ViewChild, args: ['dataGridDiv',] }], | ||
width: [{ type: Input }], | ||
@@ -455,4 +478,2 @@ height: [{ type: Input }], | ||
/** @type {?} */ | ||
DataGrid2Component.prototype.dataGridDiv; | ||
/** @type {?} */ | ||
DataGrid2Component.prototype.tempDragColumn; | ||
@@ -487,2 +508,2 @@ /** @type {?} */ | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkMi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcmVtdWx0L2FuZ3VsYXIvIiwic291cmNlcyI6WyJzcmMvYW5ndWxhci9kYXRlLWdyaWQtMi9kYXRhLWdyaWQyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRWxHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFVLE9BQU8sRUFBMkMsWUFBWSxFQUFhLE1BQU0sY0FBYyxDQUFDO0FBQ2pILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBVTlGLE1BQU0sT0FBTyxrQkFBa0I7Ozs7SUFDN0IsWUFBb0IsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQStCcEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFxQ1gsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQXlDM0IsZUFBVSxHQUFxQixFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBaUIsRUFBRSxDQUFDO1FBQy9CLFNBQUksR0FBYSxFQUFFLENBQUM7UUFxQnBCLFNBQUksR0FBRyxDQUFDLENBQUM7SUFuSVQsQ0FBQzs7OztJQUNELGVBQWU7UUFDYixJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN6RCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLENB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QnRDLG1DQUF1Qjs7SUFDdkIsb0NBQXdCOztJQVF4Qiw0Q0FBK0I7O0lBQy9CLHdDQUEyQjs7SUFFM0IscUNBQXNCOztJQUN0QixzQ0FBcUM7O0lBS3JDLDRDQUE0RTs7SUFpQzVFLHdDQUFrQzs7SUFDbEMseUNBQStCOztJQUMvQixrQ0FBb0I7O0lBcUJwQixrQ0FBUzs7Ozs7SUFySUcscUNBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25DaGFuZ2VzLCBJbnB1dCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAndXRpbCc7XHJcbmltcG9ydCB7IERhdGFGaWx0ZXJJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YS1maWx0ZXItaW5mby9kYXRhLWZpbHRlci1pbmZvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbHVtbiwgQ29udGV4dCwgRGF0YUNvbnRyb2xTZXR0aW5ncywgRW50aXR5LCBHcmlkQnV0dG9uLCBHcmlkU2V0dGluZ3MsIFJvd0J1dHRvbiB9IGZyb20gJ0ByZW11bHQvY29yZSc7XHJcbmltcG9ydCB7IFNlbGVjdFZhbHVlRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkLWZpbHRlci1kaWFsb2cvYWRkLWZpbHRlci1kaWFsb2cuY29tcG9uZW50JztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkYXRhLWdyaWQnLFxyXG4gIHRlbXBsYXRlVXJsOiBgLi9kYXRhLWdyaWQyLmNvbXBvbmVudC5odG1sYCxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRhLWdyaWQyLmNvbXBvbmVudC5zY3NzJ11cclxufVxyXG4pXHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhR3JpZDJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udGV4dDogQ29udGV4dCkge1xyXG5cclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHdpbmRvdyAmJiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSAmJiB0aGlzLmRhdGFHcmlkRGl2KSB7XHJcbiAgICAgIHRoaXMucmlnaHRUb0xlZnQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmRhdGFHcmlkRGl2Lm5hdGl2ZUVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2RpcmVjdGlvbicpID09ICdydGwnO1xyXG4gICAgfVxyXG4gIH1cclxuICBhc3luYyBhZGRDb2woYzogRGF0YUNvbnRyb2xTZXR0aW5ncykge1xyXG4gICAgYXdhaXQgdGhpcy5jb250ZXh0Lm9wZW5EaWFsb2coU2VsZWN0VmFsdWVEaWFsb2dDb21wb25lbnQsIHggPT4geC5hcmdzKHtcclxuICAgICAgdmFsdWVzOiB0aGlzLnNldHRpbmdzLm9yaWdMaXN0LFxyXG4gICAgICBvblNlbGVjdDogY29sID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmNvbHVtbnMuYWRkQ29sKGMsIGNvbCk7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLm51bU9mQ29sdW1uc0luR3JpZCsrO1xyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcblxyXG4gIH1cclxuICBnZXRDb2xGbGV4KG1hcDogRGF0YUNvbnRyb2xTZXR0aW5ncykge1xyXG4gICAgcmV0dXJuICcwIDAgJyArIHRoaXMuZ2V0Q29sV2lkdGgobWFwKTtcclxuICB9XHJcbiAgZ2V0Q29sV2lkdGgobWFwOiBEYXRhQ29udHJvbFNldHRpbmdzKSB7XHJcbiAgICBsZXQgeCA9IHRoaXMuc2V0dGluZ3MuY29sdW1ucy5fX2RhdGFDb250cm9sU3R5bGUobWFwKTtcclxuICAgIGlmICgheClcclxuICAgICAgeCA9ICcyMDBweCc7XHJcbiAgICByZXR1cm4geDtcclxuICB9XHJcblxyXG4gIHRlc3QoKSB7XHJcbiAgICAvL3RoaXMuZGF0YUdyaWREaXYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAwO1xyXG4gIH1cclxuICByaWdodFRvTGVmdCA9IGZhbHNlO1xyXG4gIC8vQHRzLWlnbm9yZVxyXG4gIEBWaWV3Q2hpbGQoJ2RhdGFHcmlkRGl2JylcclxuICBkYXRhR3JpZERpdjogRWxlbWVudFJlZjtcclxuICBnZXRUb3RhbFJvd3MoKSB7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy50b3RhbFJvd3MpXHJcbiAgICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy5zZXR0aW5ncy50b3RhbFJvd3MgLyB0aGlzLnNldHRpbmdzLnJvd3NQZXJQYWdlKTtcclxuICAgIGlmICh0aGlzLnJpZ2h0VG9MZWZ0KVxyXG4gICAgICByZXR1cm4gJ9eo15HXmdedJztcclxuICAgIHJldHVybiAnbWFueSc7XHJcbiAgfVxyXG4gIHRlbXBEcmFnQ29sdW1uOiAoRGF0YUNvbnRyb2xTZXR0aW5ncyk7XHJcbiAgZHJhZ1N0YXJ0KHg6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIHRoaXMudGVtcERyYWdDb2x1bW4gPSB4O1xyXG5cclxuICB9XHJcbiAgZHJhZ092ZXIoeDogQ29sdW1uLCBldmVudDogYW55KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuICBvbkRyb3AoeDogRGF0YUNvbnRyb2xTZXR0aW5ncykge1xyXG4gICAgbGV0IG9sZFBvc2l0aW9uID0gdGhpcy5zZXR0aW5ncy5jb2x1bW5zLml0ZW1zLmluZGV4T2YodGhpcy50ZW1wRHJhZ0NvbHVtbik7XHJcbiAgICB0aGlzLnNldHRpbmdzLmNvbHVtbnMuaXRlbXMuc3BsaWNlKG9sZFBvc2l0aW9uLCAxKTtcclxuICAgIGxldCBuZXdQb3NpdGlvbiA9IHRoaXMuc2V0dGluZ3MuY29sdW1ucy5pdGVtcy5pbmRleE9mKHgpO1xyXG4gICAgaWYgKG5ld1Bvc2l0aW9uID09IG9sZFBvc2l0aW9uKVxyXG4gICAgICBuZXdQb3NpdGlvbisrO1xyXG4gICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLml0ZW1zLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgdGhpcy50ZW1wRHJhZ0NvbHVtbik7XHJcbiAgICB0aGlzLnNldHRpbmdzLmNvbHVtbnMuY29sTGlzdENoYW5nZWQoKTtcclxuICB9XHJcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZztcclxuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZztcclxuICBfZ2V0SGVpZ2h0KCkge1xyXG4gICAgaWYgKHRoaXMuaGVpZ2h0KSB7XHJcbiAgICAgIGlmICgoK3RoaXMuaGVpZ2h0KS50b1N0cmluZygpID09IHRoaXMuaGVpZ2h0KVxyXG4gICAgICAgIHJldHVybiB0aGlzLmhlaWdodCArIFwicHhcIjtcclxuICAgICAgcmV0dXJuIHRoaXMuaGVpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBkaXNwbGF5QnV0dG9ucyA9IHRydWU7XHJcbiAgQElucHV0KCkgZGlzcGxheVZDUiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIHJlY29yZHM6IGFueTtcclxuICBASW5wdXQoKSBzZXR0aW5nczogR3JpZFNldHRpbmdzPGFueT47XHJcbiAgaXNGaWx0ZXJlZChjOiBDb2x1bW4pIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmNvbHVtbnMuZmlsdGVySGVscGVyLmlzRmlsdGVyZWQoYyk7XHJcbiAgfVxyXG4gIC8vQHRzLWlnbm9yZVxyXG4gIEBWaWV3Q2hpbGQoRGF0YUZpbHRlckluZm9Db21wb25lbnQpIGRhdGFGaWx0ZXJJbmZvOiBEYXRhRmlsdGVySW5mb0NvbXBvbmVudDtcclxuICBzaG93RmlsdGVyQ29sdW1uRGlhbG9nKGRhdGFDb250cm9sU2V0dGluZ3M6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MuaW5pdE9yaWdMaXN0KCk7XHJcbiAgICB0aGlzLmRhdGFGaWx0ZXJJbmZvLmVkaXRGaWx0ZXIoZGF0YUNvbnRyb2xTZXR0aW5ncy5jb2x1bW4pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnV0dG9uQ3NzQ2xhc3MoYjogUm93QnV0dG9uPGFueT4sIHJvdzogYW55KSB7XHJcbiAgICBpZiAoIWIuY3NzQ2xhc3MpXHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgaWYgKGlzRnVuY3Rpb24oYi5jc3NDbGFzcykpXHJcbiAgICAgIHJldHVybiAoPCgocm93OiBhbnkpID0+IHN0cmluZyk+Yi5jc3NDbGFzcykocm93KTtcclxuICAgIHJldHVybiBiLmNzc0NsYXNzLnRvU3RyaW5nKCk7XHJcblxyXG4gIH1cclxuICBnZXRCdXR0b25UZXh0KGI6IFJvd0J1dHRvbjxhbnk+LCByb3c6IGFueSkge1xyXG4gICAgaWYgKCFiLnRleHRJbk1lbnUpXHJcbiAgICAgIHJldHVybiBiLm5hbWU7XHJcbiAgICBpZiAoaXNGdW5jdGlvbihiLnRleHRJbk1lbnUpKSB7XHJcbiAgICAgIGlmICghcm93KVxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgIHJldHVybiBiLnRleHRJbk1lbnUocm93KTtcclxuICAgIH1cclxuICAgIHJldHVybiA8c3RyaW5nPmIudGV4dEluTWVudTtcclxuXHJcblxyXG4gIH1cclxuICBoYXNWaXNpYmxlQnV0dG9uKHJlY29yZCkge1xyXG4gICAgcmV0dXJuIHRoaXMucm93QnV0dG9ucy5maW5kKGIgPT4gYi52aXNpYmxlKHJlY29yZCkpO1xyXG4gIH1cclxuICBoYXNWaXNpYmxlR3JpZEJ1dHRvbnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5ncmlkQnV0dG9ucy5maW5kKGIgPT4gYi52aXNpYmxlKCkpO1xyXG4gIH1cclxuICByb3dCdXR0b25zOiBSb3dCdXR0b248YW55PltdID0gW107XHJcbiAgZ3JpZEJ1dHRvbnM6IEdyaWRCdXR0b25bXSA9IFtdO1xyXG4gIGtleXM6IHN0cmluZ1tdID0gW107XHJcbiAgcHJpdmF0ZSBhZGRCdXR0b24oYjogUm93QnV0dG9uPEVudGl0eT4pIHtcclxuICAgIGlmICghYi5jbGljaylcclxuICAgICAgYi5jbGljayA9IChyKSA9PiB7IH07XHJcbiAgICBpZiAoIWIudmlzaWJsZSlcclxuICAgICAgYi52aXNpYmxlID0gciA9PiB0cnVlO1xyXG4gICAgaWYgKCFiLmNzc0NsYXNzKVxyXG4gICAgICBiLmNzc0NsYXNzID0gciA9PiBcImJ0blwiO1xyXG4gICAgZWxzZSBpZiAoIWlzRnVuY3Rpb24oYi5jc3NDbGFzcykpIHtcclxuICAgICAgbGV0IHggPSBiLmNzc0NsYXNzO1xyXG4gICAgICBiLmNzc0NsYXNzID0gPGFueT4oKHI6IGFueSkgPT4geCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yb3dCdXR0b25zLnB1c2goYik7XHJcbiAgICByZXR1cm4gYjtcclxuXHJcbiAgfVxyXG4gIHJvd0NsaWNrZWQocm93OiBhbnkpIHtcclxuICAgIHRoaXMuc2V0dGluZ3Muc2V0Q3VycmVudFJvdyhyb3cpO1xyXG4gIH1cclxuXHJcbiAgcGFnZSA9IDE7XHJcbiAgbmV4dFBhZ2UoKSB7XHJcbiAgICB0aGlzLnBhZ2UrKztcclxuICB9XHJcbiAgcHJldmlvdXNQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMucGFnZSA8PSAxKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB0aGlzLnBhZ2UtLTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG5cclxuICAgIGlmICghdGhpcy5zZXR0aW5ncylcclxuICAgICAgcmV0dXJuO1xyXG5cclxuXHJcbiAgICB0aGlzLnJvd0J1dHRvbnMgPSBbXTtcclxuICAgIHRoaXMuZ3JpZEJ1dHRvbnMgPSBbXTtcclxuICAgIHRoaXMuZ3JpZEJ1dHRvbnMucHVzaCh7XHJcbiAgICAgIHZpc2libGU6ICgpID0+IHRoaXMuc2V0dGluZ3MuaXRlbXMuZmluZCh4ID0+IHgud2FzQ2hhbmdlZCgpKSxcclxuICAgICAgdGV4dEluTWVudTogKCkgPT4gdGhpcy5yaWdodFRvTGVmdCA/ICgn16nXnteV16ggJyArIHRoaXMuc2V0dGluZ3MuaXRlbXMuZmlsdGVyKHggPT4geC53YXNDaGFuZ2VkKCkpLmxlbmd0aCArICcg16nXldeo15XXqicpIDpcclxuICAgICAgICAoJ3NhdmUgJyArIHRoaXMuc2V0dGluZ3MuaXRlbXMuZmlsdGVyKHggPT4geC53YXNDaGFuZ2VkKCkpLmxlbmd0aCArICcgcm93cycpLFxyXG4gICAgICBjbGljazogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMuc2V0dGluZ3MuaXRlbXMuZmlsdGVyKHggPT4geC53YXNDaGFuZ2VkKCkpLm1hcCh4ID0+IHguc2F2ZSgpKSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3Muc2V0dGluZ3MuZ3JpZEJ1dHRvbnMpIHtcclxuICAgICAgdGhpcy5ncmlkQnV0dG9ucy5wdXNoKC4uLnRoaXMuc2V0dGluZ3Muc2V0dGluZ3MuZ3JpZEJ1dHRvbnMubWFwKHggPT4ge1xyXG4gICAgICAgIGlmICgheC52aXNpYmxlKVxyXG4gICAgICAgICAgeC52aXNpYmxlID0gKCkgPT4gdHJ1ZTtcclxuICAgICAgICByZXR1cm4geDtcclxuICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNldHRpbmdzLmFsbG93VXBkYXRlKSB7XHJcbiAgICAgIHRoaXMuYWRkQnV0dG9uKHtcclxuICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgIGljb246ICdjaGVjaycsXHJcbiAgICAgICAgY3NzQ2xhc3M6IFwiZ2x5cGhpY29uIGdseXBoaWNvbi1vayBidG4tc3VjY2Vzc1wiLFxyXG4gICAgICAgIHZpc2libGU6IHIgPT4gci53YXNDaGFuZ2VkKCksXHJcbiAgICAgICAgc2hvd0luTGluZTogdHJ1ZSxcclxuICAgICAgICB0ZXh0SW5NZW51OiAoKSA9PiB0aGlzLnJpZ2h0VG9MZWZ0ID8gJ9ep157XldeoJyA6ICdzYXZlJyxcclxuICAgICAgICBjbGljazogciA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLl9kb1NhdmluZ1JvdyhyKTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuYWRkQnV0dG9uKHtcclxuICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgIGljb246ICdjYW5jZWwnLFxyXG4gICAgICAgIGNzc0NsYXNzOiBcImJ0biBidG4tZGFuZ2VyIGdseXBoaWNvbiBnbHlwaGljb24tYmFuLWNpcmNsZVwiLFxyXG4gICAgICAgIHZpc2libGU6IHIgPT4gci53YXNDaGFuZ2VkKCksXHJcbiAgICAgICAgc2hvd0luTGluZTogdHJ1ZSxcclxuICAgICAgICB0ZXh0SW5NZW51OiAoKSA9PiB0aGlzLnJpZ2h0VG9MZWZ0ID8gJ9eR15jXnCDXqdeZ16DXldeZ150nIDogJ2NhbmNlbCcsXHJcblxyXG4gICAgICAgIGNsaWNrOiByID0+IHtcclxuICAgICAgICAgIHIudW5kb0NoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5hbGxvd0RlbGV0ZSlcclxuICAgICAgdGhpcy5hZGRCdXR0b24oe1xyXG4gICAgICAgIG5hbWU6ICcnLFxyXG4gICAgICAgIHZpc2libGU6IChyKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gciAmJiAhci5pc05ldygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAsIGljb246ICdkZWxldGUnLFxyXG4gICAgICAgIHNob3dJbkxpbmU6IHRydWUsXHJcbiAgICAgICAgdGV4dEluTWVudTogKCkgPT4gdGhpcy5yaWdodFRvTGVmdCA/ICfXnteX16cnIDogJ2RlbGV0ZScsXHJcbiAgICAgICAgY2xpY2s6IGFzeW5jIHIgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3Muc2V0dGluZ3MuY29uZmlybURlbGV0ZSkge1xyXG5cclxuICAgICAgICAgICAgaWYgKCFhd2FpdCB0aGlzLnNldHRpbmdzLnNldHRpbmdzLmNvbmZpcm1EZWxldGUocikpXHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgci5kZWxldGUoKTtcclxuXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgY3NzQ2xhc3M6IFwiYnRuLWRhbmdlciBnbHlwaGljb24gZ2x5cGhpY29uLXRyYXNoXCJcclxuICAgICAgfSk7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5fYnV0dG9ucylcclxuICAgICAgZm9yIChsZXQgYiBvZiB0aGlzLnNldHRpbmdzLl9idXR0b25zKSB7XHJcbiAgICAgICAgdGhpcy5hZGRCdXR0b24oYik7XHJcbiAgICAgIH1cclxuICAgIGlmICghdGhpcy5yZWNvcmRzICYmIHRoaXMuc2V0dGluZ3MpIHtcclxuICAgICAgdGhpcy5zZXR0aW5ncy5nZXRSZWNvcmRzKCkudGhlbigocjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRzID0gcjtcclxuXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBfZ2V0Um93Q2xhc3Mocm93OiBhbnkpIHtcclxuICAgIGxldCByID0gJ2RhdGFHcmlkUm93ICc7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5yb3dDbGFzcylcclxuICAgICAgciArPSB0aGlzLnNldHRpbmdzLnJvd0NsYXNzKHJvdyk7XHJcbiAgICBpZiAocm93ID09IHRoaXMuc2V0dGluZ3MuY3VycmVudFJvdylcclxuICAgICAgciArPSBcIiBhY3RpdmVcIjtcclxuXHJcbiAgICByZXR1cm4gcjtcclxuICB9XHJcbiAgX2dldFJvd0NvbHVtbkNsYXNzKGNvbDogYW55LCByb3c6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5fZ2V0Q29sdW1uQ2xhc3MoY29sLCByb3cpICsgJyBkYXRhR3JpZERhdGFDZWxsJztcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkMi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcmVtdWx0L2FuZ3VsYXIvIiwic291cmNlcyI6WyJzcmMvYW5ndWxhci9kYXRlLWdyaWQtMi9kYXRhLWdyaWQyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUFFLFNBQVMsRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFFbEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQVUsT0FBTyxFQUEyQyxZQUFZLEVBQWEsTUFBTSxjQUFjLENBQUM7QUFDakgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDOUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBVW5ELE1BQU0sT0FBTyxrQkFBa0I7Ozs7O0lBQzdCLFlBQW9CLE9BQWdCLEVBQUUsR0FBbUI7UUFBckMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQTJCcEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFtQ1gsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQTRDM0IsZUFBVSxHQUFxQixFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBaUIsRUFBRSxDQUFDO1FBQy9CLFNBQUksR0FBYSxFQUFFLENBQUM7UUFxQnBCLFNBQUksR0FBRyxDQUFDLENBQUM7UUFqSVAsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQztJQUN6QyxDQUFDOzs7OztJQUVLLE1BQU0sQ0FBQyxDQUFzQjs7WUFDakMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQywwQkFBMEI7Ozs7WUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BFLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVE7Z0JBQzlCLFFBQVE7Ozs7Z0JBQUUsR0FBRyxDQUFDLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztnQkFDN0MsQ0FBQyxDQUFBO2FBQ0YsQ0FBQyxFQUFDLENBQUM7UUFFTixDQUFDO0tBQUE7Ozs7O0lBQ0QsVUFBVSxDQUFDLEdBQXdCO1FBQ2pDLE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7Ozs7SUFDRCxXQUFXLENBQUMsR0FBd0I7O1lBQzlCLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7UUFDckQsSUFBSSxDQUFDLENBQUM7WUFDSixDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQ2QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDOzs7O0lBRUQsSUFBSTtRQUNGLCtDQUErQztJQUNqRCxDQUFDOzs7O0lBR0QsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hFLElBQUksSUFBSSxDQUFDLFdBQVc7WUFDbEIsT0FBTyxNQUFNLENBQUM7UUFDaEIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7Ozs7SUFFRCxTQUFTLENBQUMsQ0FBc0I7UUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFFMUIsQ0FBQzs7Ozs7O0lBQ0QsUUFBUSxDQUFDLENBQVMsRUFBRSxLQUFVO1FBQzVCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs7OztJQUNELE1BQU0sQ0FBQyxDQUFzQjs7WUFDdkIsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMxRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQzs7WUFDL0MsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksV0FBVyxJQUFJLFdBQVc7WUFDNUIsV0FBVyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzs7O0lBR0QsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTTtnQkFDMUMsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDcEI7SUFDSCxDQUFDOzs7OztJQU1ELFVBQVUsQ0FBQyxDQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDOzs7OztJQUdELHNCQUFzQixDQUFDLG1CQUF3QztRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7Ozs7OztJQUVELGlCQUFpQixDQUFDLENBQWlCLEVBQUUsR0FBUTtRQUMzQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVE7WUFDYixPQUFPLEVBQUUsQ0FBQztRQUNaLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDeEIsT0FBTyxDQUFDLG1CQUF3QixDQUFDLENBQUMsUUFBUSxFQUFBLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRCxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFL0IsQ0FBQzs7Ozs7O0lBQ0QsYUFBYSxDQUFDLENBQWlCLEVBQUUsR0FBUTtRQUN2QyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVU7WUFDZixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEIsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxHQUFHO2dCQUNOLE9BQU8sRUFBRSxDQUFDO1lBQ1osWUFBWTtZQUNaLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sbUJBQVEsQ0FBQyxDQUFDLFVBQVUsRUFBQSxDQUFDO0lBRzlCLENBQUM7Ozs7OztJQUNELHdCQUF3QixDQUFDLEdBQVEsRUFBRSxDQUFhO1FBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRCxDQUFDOzs7OztJQUNELGdCQUFnQixDQUFDLE1BQU07UUFDckIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUk7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQztJQUN0RCxDQUFDOzs7O0lBQ0QscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQztJQUNqRCxDQUFDOzs7Ozs7SUFJTyxTQUFTLENBQUMsQ0FBb0I7UUFDcEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ1YsQ0FBQyxDQUFDLEtBQUs7Ozs7WUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFBLENBQUM7UUFDdkIsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPO1lBQ1osQ0FBQyxDQUFDLE9BQU87Ozs7WUFBRyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUTtZQUNiLENBQUMsQ0FBQyxRQUFROzs7O1lBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUEsQ0FBQzthQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRTs7Z0JBQzVCLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUTtZQUNsQixDQUFDLENBQUMsUUFBUSxHQUFHLG1CQUFLOzs7O1lBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxFQUFBLENBQUM7U0FDbkM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixPQUFPLENBQUMsQ0FBQztJQUVYLENBQUM7Ozs7O0lBQ0QsVUFBVSxDQUFDLEdBQVE7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs7OztJQUdELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDOzs7O0lBQ0QsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO1lBQ2hCLE9BQU87UUFDVCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDOzs7O0lBR0QsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUMsQ0FBQTtJQUN0RCxDQUFDOzs7O0lBQ0QsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFDLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDdkcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTTs7OztZQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFDLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Ozs7SUFDSyxZQUFZOztZQUNoQixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTTs7OztZQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFDLENBQUMsR0FBRzs7OztZQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFDLENBQUMsQ0FBQztRQUN4RixDQUFDO0tBQUE7Ozs7SUFFRCxXQUFXO1FBRVQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQ2hCLE9BQU87UUFHVCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNwQixPQUFPOzs7WUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtZQUN2QyxVQUFVOzs7WUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7WUFDcEMsS0FBSzs7O1lBQUUsR0FBUyxFQUFFO2dCQUNoQixNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QixDQUFDLENBQUEsQ0FBQTtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUc7Ozs7WUFBQyxDQUFDLENBQUMsRUFBRTtnQkFDbEUsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPO29CQUNaLENBQUMsQ0FBQyxPQUFPOzs7b0JBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBLENBQUM7Z0JBQ3pCLE9BQU8sQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxFQUFDLENBQUMsQ0FBQztTQUNMO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRTtZQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNiLElBQUksRUFBRSxFQUFFO2dCQUNSLElBQUksRUFBRSxPQUFPO2dCQUNiLFFBQVEsRUFBRSxvQ0FBb0M7Z0JBQzlDLE9BQU87Ozs7Z0JBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUE7Z0JBQzVCLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixVQUFVOzs7Z0JBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7Z0JBQ3BELEtBQUs7Ozs7Z0JBQUUsQ0FBQyxDQUFDLEVBQUU7b0JBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQTthQUVGLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ2IsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsUUFBUSxFQUFFLCtDQUErQztnQkFDekQsT0FBTzs7OztnQkFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtnQkFDNUIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFVBQVU7OztnQkFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQTtnQkFFNUQsS0FBSzs7OztnQkFBRSxDQUFDLENBQUMsRUFBRTtvQkFDVCxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2xCLENBQUMsQ0FBQTthQUNGLENBQUMsQ0FBQztTQUdKO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVc7WUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDYixJQUFJLEVBQUUsRUFBRTtnQkFDUixPQUFPOzs7O2dCQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQTtnQkFDQyxJQUFJLEVBQUUsUUFBUTtnQkFDaEIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFVBQVU7OztnQkFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQTtnQkFDckQsS0FBSzs7OztnQkFBRSxDQUFNLENBQUMsRUFBQyxFQUFFO29CQUNmLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFO3dCQUV4QyxJQUFJLENBQUMsQ0FBQSxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQTs0QkFDaEQsT0FBTztxQkFDVjtvQkFDRCxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBRWIsQ0FBQyxDQUFBLENBQUE7Z0JBRUQsUUFBUSxFQUFFLHNDQUFzQzthQUNqRCxDQUFDLENBQUM7UUFDTCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUN4QixLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ25CO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUk7Ozs7WUFBQyxDQUFDLENBQU0sRUFBRSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztZQUVuQixDQUFDLEVBQUMsQ0FBQztTQUVKO0lBRUgsQ0FBQzs7Ozs7SUFFRCxZQUFZLENBQUMsR0FBUTs7WUFDZixDQUFDLEdBQUcsY0FBYztRQUN0QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUN4QixDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVO1lBQ2pDLENBQUMsSUFBSSxTQUFTLENBQUM7UUFFakIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDOzs7Ozs7SUFDRCxrQkFBa0IsQ0FBQyxHQUFRLEVBQUUsR0FBUTtRQUNuQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsbUJBQW1CLENBQUM7SUFDL0UsQ0FBQzs7O1lBblFGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIscStRQUEwQzs7YUFFM0M7Ozs7WUFQZ0IsT0FBTztZQUVmLGNBQWM7OztvQkFnRXBCLEtBQUs7cUJBQ0wsS0FBSzs2QkFRTCxLQUFLO3lCQUNMLEtBQUs7c0JBRUwsS0FBSzt1QkFDTCxLQUFLOzZCQUtMLFNBQVMsU0FBQyx1QkFBdUI7Ozs7SUE1Q2xDLHlDQUFvQjs7SUFTcEIsNENBQXNDOztJQWlCdEMsbUNBQXVCOztJQUN2QixvQ0FBd0I7O0lBUXhCLDRDQUErQjs7SUFDL0Isd0NBQTJCOztJQUUzQixxQ0FBc0I7O0lBQ3RCLHNDQUFxQzs7SUFLckMsNENBQTRFOztJQW9DNUUsd0NBQWtDOztJQUNsQyx5Q0FBK0I7O0lBQy9CLGtDQUFvQjs7SUFxQnBCLGtDQUFTOzs7OztJQWxJRyxxQ0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkNoYW5nZXMsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICd1dGlsJztcclxuaW1wb3J0IHsgRGF0YUZpbHRlckluZm9Db21wb25lbnQgfSBmcm9tICcuLi9kYXRhLWZpbHRlci1pbmZvL2RhdGEtZmlsdGVyLWluZm8uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sdW1uLCBDb250ZXh0LCBEYXRhQ29udHJvbFNldHRpbmdzLCBFbnRpdHksIEdyaWRCdXR0b24sIEdyaWRTZXR0aW5ncywgUm93QnV0dG9uIH0gZnJvbSAnQHJlbXVsdC9jb3JlJztcclxuaW1wb3J0IHsgU2VsZWN0VmFsdWVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtZmlsdGVyLWRpYWxvZy9hZGQtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkYXRhLWdyaWQnLFxyXG4gIHRlbXBsYXRlVXJsOiBgLi9kYXRhLWdyaWQyLmNvbXBvbmVudC5odG1sYCxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRhLWdyaWQyLmNvbXBvbmVudC5zY3NzJ11cclxufVxyXG4pXHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhR3JpZDJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udGV4dDogQ29udGV4dCwgZGlyOiBEaXJlY3Rpb25hbGl0eSkge1xyXG4gICAgdGhpcy5yaWdodFRvTGVmdCA9IGRpci52YWx1ZSA9PT0gJ3J0bCc7XHJcbiAgfVxyXG5cclxuICBhc3luYyBhZGRDb2woYzogRGF0YUNvbnRyb2xTZXR0aW5ncykge1xyXG4gICAgYXdhaXQgdGhpcy5jb250ZXh0Lm9wZW5EaWFsb2coU2VsZWN0VmFsdWVEaWFsb2dDb21wb25lbnQsIHggPT4geC5hcmdzKHtcclxuICAgICAgdmFsdWVzOiB0aGlzLnNldHRpbmdzLm9yaWdMaXN0LFxyXG4gICAgICBvblNlbGVjdDogY29sID0+IHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmNvbHVtbnMuYWRkQ29sKGMsIGNvbCk7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLm51bU9mQ29sdW1uc0luR3JpZCsrO1xyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcblxyXG4gIH1cclxuICBnZXRDb2xGbGV4KG1hcDogRGF0YUNvbnRyb2xTZXR0aW5ncykge1xyXG4gICAgcmV0dXJuICcwIDAgJyArIHRoaXMuZ2V0Q29sV2lkdGgobWFwKTtcclxuICB9XHJcbiAgZ2V0Q29sV2lkdGgobWFwOiBEYXRhQ29udHJvbFNldHRpbmdzKSB7XHJcbiAgICBsZXQgeCA9IHRoaXMuc2V0dGluZ3MuY29sdW1ucy5fX2RhdGFDb250cm9sU3R5bGUobWFwKTtcclxuICAgIGlmICgheClcclxuICAgICAgeCA9ICcyMDBweCc7XHJcbiAgICByZXR1cm4geDtcclxuICB9XHJcblxyXG4gIHRlc3QoKSB7XHJcbiAgICAvL3RoaXMuZGF0YUdyaWREaXYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAwO1xyXG4gIH1cclxuICByaWdodFRvTGVmdCA9IGZhbHNlO1xyXG5cclxuICBnZXRUb3RhbFJvd3MoKSB7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy50b3RhbFJvd3MpXHJcbiAgICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy5zZXR0aW5ncy50b3RhbFJvd3MgLyB0aGlzLnNldHRpbmdzLnJvd3NQZXJQYWdlKTtcclxuICAgIGlmICh0aGlzLnJpZ2h0VG9MZWZ0KVxyXG4gICAgICByZXR1cm4gJ9eo15HXmdedJztcclxuICAgIHJldHVybiAnbWFueSc7XHJcbiAgfVxyXG4gIHRlbXBEcmFnQ29sdW1uOiAoRGF0YUNvbnRyb2xTZXR0aW5ncyk7XHJcbiAgZHJhZ1N0YXJ0KHg6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIHRoaXMudGVtcERyYWdDb2x1bW4gPSB4O1xyXG5cclxuICB9XHJcbiAgZHJhZ092ZXIoeDogQ29sdW1uLCBldmVudDogYW55KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuICBvbkRyb3AoeDogRGF0YUNvbnRyb2xTZXR0aW5ncykge1xyXG4gICAgbGV0IG9sZFBvc2l0aW9uID0gdGhpcy5zZXR0aW5ncy5jb2x1bW5zLml0ZW1zLmluZGV4T2YodGhpcy50ZW1wRHJhZ0NvbHVtbik7XHJcbiAgICB0aGlzLnNldHRpbmdzLmNvbHVtbnMuaXRlbXMuc3BsaWNlKG9sZFBvc2l0aW9uLCAxKTtcclxuICAgIGxldCBuZXdQb3NpdGlvbiA9IHRoaXMuc2V0dGluZ3MuY29sdW1ucy5pdGVtcy5pbmRleE9mKHgpO1xyXG4gICAgaWYgKG5ld1Bvc2l0aW9uID09IG9sZFBvc2l0aW9uKVxyXG4gICAgICBuZXdQb3NpdGlvbisrO1xyXG4gICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLml0ZW1zLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgdGhpcy50ZW1wRHJhZ0NvbHVtbik7XHJcbiAgICB0aGlzLnNldHRpbmdzLmNvbHVtbnMuY29sTGlzdENoYW5nZWQoKTtcclxuICB9XHJcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZztcclxuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZztcclxuICBfZ2V0SGVpZ2h0KCkge1xyXG4gICAgaWYgKHRoaXMuaGVpZ2h0KSB7XHJcbiAgICAgIGlmICgoK3RoaXMuaGVpZ2h0KS50b1N0cmluZygpID09IHRoaXMuaGVpZ2h0KVxyXG4gICAgICAgIHJldHVybiB0aGlzLmhlaWdodCArIFwicHhcIjtcclxuICAgICAgcmV0dXJuIHRoaXMuaGVpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBkaXNwbGF5QnV0dG9ucyA9IHRydWU7XHJcbiAgQElucHV0KCkgZGlzcGxheVZDUiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIHJlY29yZHM6IGFueTtcclxuICBASW5wdXQoKSBzZXR0aW5nczogR3JpZFNldHRpbmdzPGFueT47XHJcbiAgaXNGaWx0ZXJlZChjOiBDb2x1bW4pIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmNvbHVtbnMuZmlsdGVySGVscGVyLmlzRmlsdGVyZWQoYyk7XHJcbiAgfVxyXG4gIC8vQHRzLWlnbm9yZVxyXG4gIEBWaWV3Q2hpbGQoRGF0YUZpbHRlckluZm9Db21wb25lbnQpIGRhdGFGaWx0ZXJJbmZvOiBEYXRhRmlsdGVySW5mb0NvbXBvbmVudDtcclxuICBzaG93RmlsdGVyQ29sdW1uRGlhbG9nKGRhdGFDb250cm9sU2V0dGluZ3M6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MuaW5pdE9yaWdMaXN0KCk7XHJcbiAgICB0aGlzLmRhdGFGaWx0ZXJJbmZvLmVkaXRGaWx0ZXIoZGF0YUNvbnRyb2xTZXR0aW5ncy5jb2x1bW4pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnV0dG9uQ3NzQ2xhc3MoYjogUm93QnV0dG9uPGFueT4sIHJvdzogYW55KSB7XHJcbiAgICBpZiAoIWIuY3NzQ2xhc3MpXHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgaWYgKGlzRnVuY3Rpb24oYi5jc3NDbGFzcykpXHJcbiAgICAgIHJldHVybiAoPCgocm93OiBhbnkpID0+IHN0cmluZyk+Yi5jc3NDbGFzcykocm93KTtcclxuICAgIHJldHVybiBiLmNzc0NsYXNzLnRvU3RyaW5nKCk7XHJcblxyXG4gIH1cclxuICBnZXRCdXR0b25UZXh0KGI6IFJvd0J1dHRvbjxhbnk+LCByb3c6IGFueSkge1xyXG4gICAgaWYgKCFiLnRleHRJbk1lbnUpXHJcbiAgICAgIHJldHVybiBiLm5hbWU7XHJcbiAgICBpZiAoaXNGdW5jdGlvbihiLnRleHRJbk1lbnUpKSB7XHJcbiAgICAgIGlmICghcm93KVxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgIHJldHVybiBiLnRleHRJbk1lbnUocm93KTtcclxuICAgIH1cclxuICAgIHJldHVybiA8c3RyaW5nPmIudGV4dEluTWVudTtcclxuXHJcblxyXG4gIH1cclxuICBjbGlja09uc2VsZWN0Q2hlY2tib3hGb3Iocm93OiBhbnksIGU6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMuc2V0dGluZ3MuY2xpY2tPbnNlbGVjdENoZWNrYm94Rm9yKHJvdywgZS5zaGlmdEtleSk7XHJcbiAgfVxyXG4gIGhhc1Zpc2libGVCdXR0b24ocmVjb3JkKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3dCdXR0b25zLmZpbmQoYiA9PiBiLnZpc2libGUocmVjb3JkKSk7XHJcbiAgfVxyXG4gIGhhc1Zpc2libGVHcmlkQnV0dG9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLmdyaWRCdXR0b25zLmZpbmQoYiA9PiBiLnZpc2libGUoKSk7XHJcbiAgfVxyXG4gIHJvd0J1dHRvbnM6IFJvd0J1dHRvbjxhbnk+W10gPSBbXTtcclxuICBncmlkQnV0dG9uczogR3JpZEJ1dHRvbltdID0gW107XHJcbiAga2V5czogc3RyaW5nW10gPSBbXTtcclxuICBwcml2YXRlIGFkZEJ1dHRvbihiOiBSb3dCdXR0b248RW50aXR5Pikge1xyXG4gICAgaWYgKCFiLmNsaWNrKVxyXG4gICAgICBiLmNsaWNrID0gKHIpID0+IHsgfTtcclxuICAgIGlmICghYi52aXNpYmxlKVxyXG4gICAgICBiLnZpc2libGUgPSByID0+IHRydWU7XHJcbiAgICBpZiAoIWIuY3NzQ2xhc3MpXHJcbiAgICAgIGIuY3NzQ2xhc3MgPSByID0+IFwiYnRuXCI7XHJcbiAgICBlbHNlIGlmICghaXNGdW5jdGlvbihiLmNzc0NsYXNzKSkge1xyXG4gICAgICBsZXQgeCA9IGIuY3NzQ2xhc3M7XHJcbiAgICAgIGIuY3NzQ2xhc3MgPSA8YW55PigocjogYW55KSA9PiB4KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJvd0J1dHRvbnMucHVzaChiKTtcclxuICAgIHJldHVybiBiO1xyXG5cclxuICB9XHJcbiAgcm93Q2xpY2tlZChyb3c6IGFueSkge1xyXG4gICAgdGhpcy5zZXR0aW5ncy5zZXRDdXJyZW50Um93KHJvdyk7XHJcbiAgfVxyXG5cclxuICBwYWdlID0gMTtcclxuICBuZXh0UGFnZSgpIHtcclxuICAgIHRoaXMucGFnZSsrO1xyXG4gIH1cclxuICBwcmV2aW91c1BhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5wYWdlIDw9IDEpXHJcbiAgICAgIHJldHVybjtcclxuICAgIHRoaXMucGFnZS0tO1xyXG4gIH1cclxuXHJcblxyXG4gIHNob3dTYXZlQWxsQnV0dG9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuaXRlbXMuZmluZCh4ID0+IHgud2FzQ2hhbmdlZCgpKVxyXG4gIH1cclxuICBzYXZlQWxsVGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLnJpZ2h0VG9MZWZ0ID8gKCfXqdee15XXqCAnICsgdGhpcy5zZXR0aW5ncy5pdGVtcy5maWx0ZXIoeCA9PiB4Lndhc0NoYW5nZWQoKSkubGVuZ3RoICsgJyDXqdeV16jXldeqJykgOlxyXG4gICAgICAoJ3NhdmUgJyArIHRoaXMuc2V0dGluZ3MuaXRlbXMuZmlsdGVyKHggPT4geC53YXNDaGFuZ2VkKCkpLmxlbmd0aCArICcgcm93cycpO1xyXG4gIH1cclxuICBhc3luYyBzYXZlQWxsQ2xpY2soKSB7XHJcbiAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLnNldHRpbmdzLml0ZW1zLmZpbHRlcih4ID0+IHgud2FzQ2hhbmdlZCgpKS5tYXAoeCA9PiB4LnNhdmUoKSkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKCF0aGlzLnNldHRpbmdzKVxyXG4gICAgICByZXR1cm47XHJcblxyXG5cclxuICAgIHRoaXMucm93QnV0dG9ucyA9IFtdO1xyXG4gICAgdGhpcy5ncmlkQnV0dG9ucyA9IFtdO1xyXG4gICAgdGhpcy5ncmlkQnV0dG9ucy5wdXNoKHtcclxuICAgICAgdmlzaWJsZTogKCkgPT4gdGhpcy5zaG93U2F2ZUFsbEJ1dHRvbigpLFxyXG4gICAgICB0ZXh0SW5NZW51OiAoKSA9PiB0aGlzLnNhdmVBbGxUZXh0KCksXHJcbiAgICAgIGNsaWNrOiBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlQWxsQ2xpY2soKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5zZXR0aW5ncy5ncmlkQnV0dG9ucykge1xyXG4gICAgICB0aGlzLmdyaWRCdXR0b25zLnB1c2goLi4udGhpcy5zZXR0aW5ncy5zZXR0aW5ncy5ncmlkQnV0dG9ucy5tYXAoeCA9PiB7XHJcbiAgICAgICAgaWYgKCF4LnZpc2libGUpXHJcbiAgICAgICAgICB4LnZpc2libGUgPSAoKSA9PiB0cnVlO1xyXG4gICAgICAgIHJldHVybiB4O1xyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MuYWxsb3dVcGRhdGUpIHtcclxuICAgICAgdGhpcy5hZGRCdXR0b24oe1xyXG4gICAgICAgIG5hbWU6IFwiXCIsXHJcbiAgICAgICAgaWNvbjogJ2NoZWNrJyxcclxuICAgICAgICBjc3NDbGFzczogXCJnbHlwaGljb24gZ2x5cGhpY29uLW9rIGJ0bi1zdWNjZXNzXCIsXHJcbiAgICAgICAgdmlzaWJsZTogciA9PiByLndhc0NoYW5nZWQoKSxcclxuICAgICAgICBzaG93SW5MaW5lOiB0cnVlLFxyXG4gICAgICAgIHRleHRJbk1lbnU6ICgpID0+IHRoaXMucmlnaHRUb0xlZnQgPyAn16nXnteV16gnIDogJ3NhdmUnLFxyXG4gICAgICAgIGNsaWNrOiByID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0dGluZ3MuX2RvU2F2aW5nUm93KHIpO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5hZGRCdXR0b24oe1xyXG4gICAgICAgIG5hbWU6IFwiXCIsXHJcbiAgICAgICAgaWNvbjogJ2NhbmNlbCcsXHJcbiAgICAgICAgY3NzQ2xhc3M6IFwiYnRuIGJ0bi1kYW5nZXIgZ2x5cGhpY29uIGdseXBoaWNvbi1iYW4tY2lyY2xlXCIsXHJcbiAgICAgICAgdmlzaWJsZTogciA9PiByLndhc0NoYW5nZWQoKSxcclxuICAgICAgICBzaG93SW5MaW5lOiB0cnVlLFxyXG4gICAgICAgIHRleHRJbk1lbnU6ICgpID0+IHRoaXMucmlnaHRUb0xlZnQgPyAn15HXmNecINep15nXoNeV15nXnScgOiAnY2FuY2VsJyxcclxuXHJcbiAgICAgICAgY2xpY2s6IHIgPT4ge1xyXG4gICAgICAgICAgci51bmRvQ2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG5cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNldHRpbmdzLmFsbG93RGVsZXRlKVxyXG4gICAgICB0aGlzLmFkZEJ1dHRvbih7XHJcbiAgICAgICAgbmFtZTogJycsXHJcbiAgICAgICAgdmlzaWJsZTogKHIpID0+IHtcclxuICAgICAgICAgIHJldHVybiByICYmICFyLmlzTmV3KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICwgaWNvbjogJ2RlbGV0ZScsXHJcbiAgICAgICAgc2hvd0luTGluZTogdHJ1ZSxcclxuICAgICAgICB0ZXh0SW5NZW51OiAoKSA9PiB0aGlzLnJpZ2h0VG9MZWZ0ID8gJ9ee15fXpycgOiAnZGVsZXRlJyxcclxuICAgICAgICBjbGljazogYXN5bmMgciA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5zZXR0aW5ncy5jb25maXJtRGVsZXRlKSB7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWF3YWl0IHRoaXMuc2V0dGluZ3Muc2V0dGluZ3MuY29uZmlybURlbGV0ZShyKSlcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByLmRlbGV0ZSgpO1xyXG5cclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBjc3NDbGFzczogXCJidG4tZGFuZ2VyIGdseXBoaWNvbiBnbHlwaGljb24tdHJhc2hcIlxyXG4gICAgICB9KTtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLl9idXR0b25zKVxyXG4gICAgICBmb3IgKGxldCBiIG9mIHRoaXMuc2V0dGluZ3MuX2J1dHRvbnMpIHtcclxuICAgICAgICB0aGlzLmFkZEJ1dHRvbihiKTtcclxuICAgICAgfVxyXG4gICAgaWYgKCF0aGlzLnJlY29yZHMgJiYgdGhpcy5zZXR0aW5ncykge1xyXG4gICAgICB0aGlzLnNldHRpbmdzLmdldFJlY29yZHMoKS50aGVuKChyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnJlY29yZHMgPSByO1xyXG5cclxuICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIF9nZXRSb3dDbGFzcyhyb3c6IGFueSkge1xyXG4gICAgbGV0IHIgPSAnZGF0YUdyaWRSb3cgJztcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLnJvd0NsYXNzKVxyXG4gICAgICByICs9IHRoaXMuc2V0dGluZ3Mucm93Q2xhc3Mocm93KTtcclxuICAgIGlmIChyb3cgPT0gdGhpcy5zZXR0aW5ncy5jdXJyZW50Um93KVxyXG4gICAgICByICs9IFwiIGFjdGl2ZVwiO1xyXG5cclxuICAgIHJldHVybiByO1xyXG4gIH1cclxuICBfZ2V0Um93Q29sdW1uQ2xhc3MoY29sOiBhbnksIHJvdzogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5jb2x1bW5zLl9nZXRDb2x1bW5DbGFzcyhjb2wsIHJvdykgKyAnIGRhdGFHcmlkRGF0YUNlbGwnO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ== |
@@ -34,2 +34,3 @@ /** | ||
import { AuthorizationInterceptor, JwtSessionManager } from '../jwt-session-manager'; | ||
import { BidiModule } from '@angular/cdk/bidi'; | ||
export class RemultModule { | ||
@@ -45,3 +46,3 @@ } | ||
MatTooltipModule, | ||
MatInputModule, MatIconModule, ReactiveFormsModule, MatCheckboxModule, MatMenuModule], | ||
MatInputModule, MatIconModule, ReactiveFormsModule, MatCheckboxModule, MatMenuModule, BidiModule], | ||
providers: [{ | ||
@@ -119,2 +120,2 @@ provide: Context, | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtdWx0LWNvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJlbXVsdC9hbmd1bGFyLyIsInNvdXJjZXMiOlsic3JjL2FuZ3VsYXIvcmVtdWx0LWNvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUcsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFtQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFB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LElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDaEUsSUFBSSxhQUFhO1lBQ2YsYUFBYSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDOztZQUNuQyxDQUFDO1FBQ0wsSUFBSSxHQUFHLENBQUMsWUFBWTtZQUNsQixDQUFDLEdBQUcsTUFBTSxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7O1lBRXpDLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUcxQyxJQUFJLFlBQVk7WUFDZCxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM3QyxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUMsQ0FBQSxDQUFBLENBQUE7O1FBQ0csSUFBSSxHQUFHLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDO0lBQ3hDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLFVBQVUsQ0FBQywwQkFBMEI7Ozs7SUFBRyxDQUFNLENBQUMsRUFBQyxFQUFFLHdEQUFDLE9BQUEsTUFBTSxXQUFXLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxHQUFBLENBQUEsQ0FBQztJQUNqRyxVQUFVLENBQUMscUJBQXFCOzs7SUFBRyxHQUFFLEVBQUUsQ0FBQSxXQUFXLENBQUMsY0FBYyxDQUFDLHFCQUFxQixFQUFFLENBQUEsQ0FBQTtJQUN6RixDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFDb250cm9sMkNvbXBvbmVudCB9IGZyb20gJy4vZGF0YS1jb250cm9sL2RhdGEtY29udHJvbDIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0YUNvbnRyb2wzQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLWNvbnRyb2wvZGF0YS1jb250cm9sMy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IERhdGFGaWx0ZXJJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLWZpbHRlci1pbmZvL2RhdGEtZmlsdGVyLWluZm8uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0YUdyaWQyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLWdyaWQtMi9kYXRhLWdyaWQyLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBhY3Rpb25JbmZvLCBDb250ZXh0LCBSZXN0RGF0YVByb3ZpZGVyLCBBY3Rpb24gfSBmcm9tICdAcmVtdWx0L2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTm90U2lnbmVkSW5HdWFyZCwgU2lnbmVkSW5HdWFyZCwgUm91dGVIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi9uYXZpZ2F0ZS10by1jb21wb25lbnQtcm91dGUtc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBDbGllbnRNb2R1bGUsIEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgQnVzeVNlcnZpY2UsIExvYWRlckludGVyY2VwdG9yIH0gZnJvbSAnLi93YWl0L2J1c3ktc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnLCBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFdhaXRDb21wb25lbnQgfSBmcm9tICcuL3dhaXQvd2FpdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcblxyXG5pbXBvcnQgeyBEYXRhQXJlYTJDb21wbmVudCB9IGZyb20gJy4vZGF0YS1hcmVhL2RhdGFBcmVhMic7XHJcbmltcG9ydCB7IFNlbGVjdFZhbHVlRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtZmlsdGVyLWRpYWxvZy9hZGQtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IEZpbHRlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVyLWRpYWxvZy9maWx0ZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5cclxuXHJcbmltcG9ydCB7IEFuZ3VsYXJIdHRwUHJvdmlkZXIgfSBmcm9tICcuL0FuZ3VsYXJIdHRwUHJvdmlkZXInO1xyXG5pbXBvcnQgeyBBdXRob3JpemF0aW9uSW50ZXJjZXB0b3IsIEp3dFNlc3Npb25NYW5hZ2VyIH0gZnJvbSAnLi4vand0LXNlc3Npb24tbWFuYWdlcic7XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtEYXRhQ29udHJvbDJDb21wb25lbnQsIERhdGFBcmVhMkNvbXBuZW50LCBEYXRhRmlsdGVySW5mb0NvbXBvbmVudCwgRGF0YUdyaWQyQ29tcG9uZW50LCBXYWl0Q29tcG9uZW50LCBEYXRhQ29udHJvbDNDb21wb25lbnQsIFNlbGVjdFZhbHVlRGlhbG9nQ29tcG9uZW50LCBGaWx0ZXJEaWFsb2dDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgQ29tbW9uTW9kdWxlLCBIdHRwQ2xpZW50TW9kdWxlLCBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsIE1hdERpYWxvZ01vZHVsZSwgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRMaXN0TW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLCBNYXRJY29uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNYXRDaGVja2JveE1vZHVsZSwgTWF0TWVudU1vZHVsZV0sXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogQ29udGV4dCxcclxuICAgIHVzZUZhY3Rvcnk6IGJ1aWxkQ29udGV4dCxcclxuICAgIGRlcHM6IFtIdHRwQ2xpZW50LCBNYXREaWFsb2ddXHJcbiAgfSwgSnd0U2Vzc2lvbk1hbmFnZXIsIE5vdFNpZ25lZEluR3VhcmQsIFNpZ25lZEluR3VhcmQsIFJvdXRlSGVscGVyU2VydmljZSxcclxuICAgIEJ1c3lTZXJ2aWNlLFxyXG5cclxuICB7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogTG9hZGVySW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlIH0sXHJcbiAgeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IEF1dGhvcml6YXRpb25JbnRlcmNlcHRvciwgbXVsdGk6IHRydWUgfV1cclxuICAsXHJcbiAgZXhwb3J0czogW0RhdGFDb250cm9sMkNvbXBvbmVudCwgRGF0YUZpbHRlckluZm9Db21wb25lbnQsIERhdGFHcmlkMkNvbXBvbmVudCwgRGF0YUFyZWEyQ29tcG5lbnQsIFNlbGVjdFZhbHVlRGlhbG9nQ29tcG9uZW50XSxcclxuICBlbnRyeUNvbXBvbmVudHM6IFtXYWl0Q29tcG9uZW50LCBTZWxlY3RWYWx1ZURpYWxvZ0NvbXBvbmVudCwgRmlsdGVyRGlhbG9nQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVtdWx0TW9kdWxlIHsgfVxyXG5leHBvcnQgZnVuY3Rpb24gRGlhbG9nQ29uZmlnKGNvbmZpZzogTWF0RGlhbG9nQ29uZmlnKSB7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHtcclxuICAgIHRhcmdldFtkaWFsb2dDb25maWdNZW1iZXJdID0gY29uZmlnO1xyXG4gICAgcmV0dXJuIHRhcmdldDtcclxuICB9O1xyXG59XHJcbmNvbnN0IGRpYWxvZ0NvbmZpZ01lbWJlciA9IFN5bWJvbChcImRpYWxvZ0NvbmZpZ01lbWJlclwiKTtcclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQ29udGV4dChodHRwOiBIdHRwQ2xpZW50LCBfZGlhbG9nOiBNYXREaWFsb2cpIHtcclxuICBsZXQgciA9IG5ldyBDb250ZXh0KCk7XHJcblxyXG4gIHIub3BlbkRpYWxvZyA9IGFzeW5jIChjb21wb25lbnQsIHNldFBhcmFtZXRlcnMsIHJldHVybkFWYWx1ZSkgPT4ge1xyXG4gICAgbGV0IHJlZiA9IF9kaWFsb2cub3Blbihjb21wb25lbnQsIGNvbXBvbmVudFtkaWFsb2dDb25maWdNZW1iZXJdKTtcclxuICAgIGlmIChzZXRQYXJhbWV0ZXJzKVxyXG4gICAgICBzZXRQYXJhbWV0ZXJzKHJlZi5jb21wb25lbnRJbnN0YW5jZSk7XHJcbiAgICB2YXIgcjtcclxuICAgIGlmIChyZWYuYmVmb3JlQ2xvc2VkKVxyXG4gICAgICByID0gYXdhaXQgcmVmLmJlZm9yZUNsb3NlZCgpLnRvUHJvbWlzZSgpO1xyXG4gICAgZWxzZVxyXG4gICAgICByID0gYXdhaXQgcmVmLmJlZm9yZUNsb3NlKCkudG9Qcm9taXNlKCk7XHJcblxyXG5cclxuICAgIGlmIChyZXR1cm5BVmFsdWUpXHJcbiAgICAgIHJldHVybiByZXR1cm5BVmFsdWUocmVmLmNvbXBvbmVudEluc3RhbmNlKTtcclxuICAgIHJldHVybiByO1xyXG4gIH1cclxuICBsZXQgcHJvdiA9IG5ldyBBbmd1bGFySHR0cFByb3ZpZGVyKGh0dHApO1xyXG4gIEFjdGlvbi5wcm92aWRlciA9IHByb3Y7XHJcbiAgYWN0aW9uSW5mby5ydW5BY3Rpb25XaXRob3V0QmxvY2tpbmdVSSA9IGFzeW5jIHggPT4gYXdhaXQgQnVzeVNlcnZpY2Uuc2luZ2xlSW5zdGFuY2UuZG9ub3RXYWl0KHgpO1xyXG4gIGFjdGlvbkluZm8uc3RhcnRCdXN5V2l0aFByb2dyZXNzID0gKCk9PkJ1c3lTZXJ2aWNlLnNpbmdsZUluc3RhbmNlLnN0YXJ0QnVzeVdpdGhQcm9ncmVzcygpXHJcbiAgci5zZXREYXRhUHJvdmlkZXIobmV3IFJlc3REYXRhUHJvdmlkZXIoQ29udGV4dC5hcGlCYXNlVXJsLCBwcm92KSk7XHJcbiAgcmV0dXJuIHI7XHJcbn0iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtdWx0LWNvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJlbXVsdC9hbmd1bGFyLyIsInNvdXJjZXMiOlsic3JjL2FuZ3VsYXIvcmVtdWx0LWNvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUcsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFtQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFB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aW1wb3J0IHsgRGF0YUNvbnRyb2wyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLWNvbnRyb2wvZGF0YS1jb250cm9sMi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhQ29udHJvbDNDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtY29udHJvbC9kYXRhLWNvbnRyb2wzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgRGF0YUZpbHRlckluZm9Db21wb25lbnQgfSBmcm9tICcuL2RhdGEtZmlsdGVyLWluZm8vZGF0YS1maWx0ZXItaW5mby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhR3JpZDJDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtZ3JpZC0yL2RhdGEtZ3JpZDIuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IGFjdGlvbkluZm8sIENvbnRleHQsIFJlc3REYXRhUHJvdmlkZXIsIEFjdGlvbiB9IGZyb20gJ0ByZW11bHQvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBOb3RTaWduZWRJbkd1YXJkLCBTaWduZWRJbkd1YXJkLCBSb3V0ZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuL25hdmlnYXRlLXRvLWNvbXBvbmVudC1yb3V0ZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cENsaWVudE1vZHVsZSwgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBCdXN5U2VydmljZSwgTG9hZGVySW50ZXJjZXB0b3IgfSBmcm9tICcuL3dhaXQvYnVzeS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcsIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgV2FpdENvbXBvbmVudCB9IGZyb20gJy4vd2FpdC93YWl0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuXHJcbmltcG9ydCB7IERhdGFBcmVhMkNvbXBuZW50IH0gZnJvbSAnLi9kYXRhLWFyZWEvZGF0YUFyZWEyJztcclxuaW1wb3J0IHsgU2VsZWN0VmFsdWVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2FkZC1maWx0ZXItZGlhbG9nL2FkZC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgRmlsdGVyRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXItZGlhbG9nL2ZpbHRlci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcblxyXG5cclxuaW1wb3J0IHsgQW5ndWxhckh0dHBQcm92aWRlciB9IGZyb20gJy4vQW5ndWxhckh0dHBQcm92aWRlcic7XHJcbmltcG9ydCB7IEF1dGhvcml6YXRpb25JbnRlcmNlcHRvciwgSnd0U2Vzc2lvbk1hbmFnZXIgfSBmcm9tICcuLi9qd3Qtc2Vzc2lvbi1tYW5hZ2VyJztcclxuaW1wb3J0IHsgQmlkaU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0RhdGFDb250cm9sMkNvbXBvbmVudCwgRGF0YUFyZWEyQ29tcG5lbnQsIERhdGFGaWx0ZXJJbmZvQ29tcG9uZW50LCBEYXRhR3JpZDJDb21wb25lbnQsIFdhaXRDb21wb25lbnQsIERhdGFDb250cm9sM0NvbXBvbmVudCwgU2VsZWN0VmFsdWVEaWFsb2dDb21wb25lbnQsIEZpbHRlckRpYWxvZ0NvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBDb21tb25Nb2R1bGUsIEh0dHBDbGllbnRNb2R1bGUsIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSwgTWF0RGlhbG9nTW9kdWxlLCBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdExpc3RNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsIE1hdEljb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdENoZWNrYm94TW9kdWxlLCBNYXRNZW51TW9kdWxlLCBCaWRpTW9kdWxlXSxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBDb250ZXh0LFxyXG4gICAgdXNlRmFjdG9yeTogYnVpbGRDb250ZXh0LFxyXG4gICAgZGVwczogW0h0dHBDbGllbnQsIE1hdERpYWxvZ11cclxuICB9LCBKd3RTZXNzaW9uTWFuYWdlciwgTm90U2lnbmVkSW5HdWFyZCwgU2lnbmVkSW5HdWFyZCwgUm91dGVIZWxwZXJTZXJ2aWNlLFxyXG4gICAgQnVzeVNlcnZpY2UsXHJcblxyXG4gIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBMb2FkZXJJbnRlcmNlcHRvciwgbXVsdGk6IHRydWUgfSxcclxuICB7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogQXV0aG9yaXphdGlvbkludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZSB9XVxyXG4gICxcclxuICBleHBvcnRzOiBbRGF0YUNvbnRyb2wyQ29tcG9uZW50LCBEYXRhRmlsdGVySW5mb0NvbXBvbmVudCwgRGF0YUdyaWQyQ29tcG9uZW50LCBEYXRhQXJlYTJDb21wbmVudCwgU2VsZWN0VmFsdWVEaWFsb2dDb21wb25lbnRdLFxyXG4gIGVudHJ5Q29tcG9uZW50czogW1dhaXRDb21wb25lbnQsIFNlbGVjdFZhbHVlRGlhbG9nQ29tcG9uZW50LCBGaWx0ZXJEaWFsb2dDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZW11bHRNb2R1bGUgeyB9XHJcbmV4cG9ydCBmdW5jdGlvbiBEaWFsb2dDb25maWcoY29uZmlnOiBNYXREaWFsb2dDb25maWcpIHtcclxuICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCkge1xyXG4gICAgdGFyZ2V0W2RpYWxvZ0NvbmZpZ01lbWJlcl0gPSBjb25maWc7XHJcbiAgICByZXR1cm4gdGFyZ2V0O1xyXG4gIH07XHJcbn1cclxuY29uc3QgZGlhbG9nQ29uZmlnTWVtYmVyID0gU3ltYm9sKFwiZGlhbG9nQ29uZmlnTWVtYmVyXCIpO1xyXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRDb250ZXh0KGh0dHA6IEh0dHBDbGllbnQsIF9kaWFsb2c6IE1hdERpYWxvZykge1xyXG4gIGxldCByID0gbmV3IENvbnRleHQoKTtcclxuXHJcbiAgci5vcGVuRGlhbG9nID0gYXN5bmMgKGNvbXBvbmVudCwgc2V0UGFyYW1ldGVycywgcmV0dXJuQVZhbHVlKSA9PiB7XHJcbiAgICBsZXQgcmVmID0gX2RpYWxvZy5vcGVuKGNvbXBvbmVudCwgY29tcG9uZW50W2RpYWxvZ0NvbmZpZ01lbWJlcl0pO1xyXG4gICAgaWYgKHNldFBhcmFtZXRlcnMpXHJcbiAgICAgIHNldFBhcmFtZXRlcnMocmVmLmNvbXBvbmVudEluc3RhbmNlKTtcclxuICAgIHZhciByO1xyXG4gICAgaWYgKHJlZi5iZWZvcmVDbG9zZWQpXHJcbiAgICAgIHIgPSBhd2FpdCByZWYuYmVmb3JlQ2xvc2VkKCkudG9Qcm9taXNlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHIgPSBhd2FpdCByZWYuYmVmb3JlQ2xvc2UoKS50b1Byb21pc2UoKTtcclxuXHJcblxyXG4gICAgaWYgKHJldHVybkFWYWx1ZSlcclxuICAgICAgcmV0dXJuIHJldHVybkFWYWx1ZShyZWYuY29tcG9uZW50SW5zdGFuY2UpO1xyXG4gICAgcmV0dXJuIHI7XHJcbiAgfVxyXG4gIGxldCBwcm92ID0gbmV3IEFuZ3VsYXJIdHRwUHJvdmlkZXIoaHR0cCk7XHJcbiAgQWN0aW9uLnByb3ZpZGVyID0gcHJvdjtcclxuICBhY3Rpb25JbmZvLnJ1bkFjdGlvbldpdGhvdXRCbG9ja2luZ1VJID0gYXN5bmMgeCA9PiBhd2FpdCBCdXN5U2VydmljZS5zaW5nbGVJbnN0YW5jZS5kb25vdFdhaXQoeCk7XHJcbiAgYWN0aW9uSW5mby5zdGFydEJ1c3lXaXRoUHJvZ3Jlc3MgPSAoKSA9PiBCdXN5U2VydmljZS5zaW5nbGVJbnN0YW5jZS5zdGFydEJ1c3lXaXRoUHJvZ3Jlc3MoKVxyXG4gIHIuc2V0RGF0YVByb3ZpZGVyKG5ldyBSZXN0RGF0YVByb3ZpZGVyKENvbnRleHQuYXBpQmFzZVVybCwgcHJvdikpO1xyXG4gIHJldHVybiByO1xyXG59Il19 |
@@ -6,3 +6,4 @@ /** | ||
import * as tslib_1 from "tslib"; | ||
import { Component, Input, ElementRef, ViewChild } from '@angular/core'; | ||
import { Directionality } from '@angular/cdk/bidi'; | ||
import { Component, Input } from '@angular/core'; | ||
import { Context, GridSettings } from '@remult/core'; | ||
@@ -12,3 +13,3 @@ import { SelectValueDialogComponent } from '../add-filter-dialog/add-filter-dialog.component'; | ||
var DataFilterInfoComponent = /** @class */ (function () { | ||
function DataFilterInfoComponent(context) { | ||
function DataFilterInfoComponent(context, dir) { | ||
this.context = context; | ||
@@ -19,2 +20,3 @@ this.showFilterButton = false; | ||
this.rightToLeft = false; | ||
this.rightToLeft = dir.value === 'rtl'; | ||
} | ||
@@ -196,17 +198,6 @@ /** | ||
}; | ||
/** | ||
* @return {?} | ||
*/ | ||
DataFilterInfoComponent.prototype.ngAfterViewInit = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
if (window && window.getComputedStyle && this.theDiv) { | ||
this.rightToLeft = window.getComputedStyle(this.theDiv.nativeElement, null).getPropertyValue('direction') == 'rtl'; | ||
} | ||
}; | ||
DataFilterInfoComponent.decorators = [ | ||
{ type: Component, args: [{ | ||
selector: 'Data-Filter', | ||
template: "<span (click)=\"showAddAnotherFilterDialog()\" #theDiv class=\"link\" *ngIf=\"settings.settings.showFilter\"><span *ngIf=\"!rightToLeft\">Filter</span><span *ngIf=\"rightToLeft\">\u05E1\u05D9\u05E0\u05D5\u05DF</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\">\u05D5\u05D2\u05DD</span> </span>\r\n <span (click)=\"editFilter(map)\" class=\"link\"> {{map.defs.caption}} = \"{{this.getCurrentFilterValue(map)}}\"</span>\r\n</span>", | ||
template: "<span (click)=\"showAddAnotherFilterDialog()\" #theDiv class=\"link\"\r\n *ngIf=\"settings.settings.showFilter\"><span>{{rightToLeft?'\u05E1\u05D9\u05E0\u05D5\u05DF': '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\">\u05D5\u05D2\u05DD</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 }"] | ||
@@ -217,7 +208,7 @@ }] } | ||
DataFilterInfoComponent.ctorParameters = function () { return [ | ||
{ type: Context } | ||
{ type: Context }, | ||
{ type: Directionality } | ||
]; }; | ||
DataFilterInfoComponent.propDecorators = { | ||
settings: [{ type: Input }], | ||
theDiv: [{ type: ViewChild, args: ['theDiv',] }] | ||
settings: [{ type: Input }] | ||
}; | ||
@@ -240,4 +231,2 @@ return DataFilterInfoComponent; | ||
DataFilterInfoComponent.prototype.rightToLeft; | ||
/** @type {?} */ | ||
DataFilterInfoComponent.prototype.theDiv; | ||
/** | ||
@@ -249,2 +238,2 @@ * @type {?} | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1maWx0ZXItaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcmVtdWx0L2FuZ3VsYXIvIiwic291cmNlcyI6WyJzcmMvYW5ndWxhci9kYXRhLWZpbHRlci1pbmZvL2RhdGEtZmlsdGVyLWluZm8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQVUsT0FBTyxFQUF1QixZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDOUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakY7SUF1QkksaUNBQW9CLE9BQWdCO1FBQWhCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFJcEMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQW1EMUIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUF2RHBCLENBQUM7Ozs7O0lBWkQsdURBQXFCOzs7O0lBQXJCLFVBQXNCLEdBQVc7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQzs7WUFDekIsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUk7Ozs7UUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFmLENBQWUsRUFBQztRQUN6RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5RixDQUFDOzs7O0lBQ0Qs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Q0FBQztRQUMxRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7Ozs7SUFHRCwyQ0FBUzs7O0lBQVQ7UUFFSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQzs7OztJQUNELG9EQUFrQjs7O0lBQWxCO1FBQ0ksSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQzs7OztJQUtELGlEQUFlOzs7SUFBZjtRQUNJLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2xELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssQ0FBQztTQUN0SDtJQUNMLENBQUM7O2dCQXhGSixTQUFTLFNBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLG9xQkFBZ0Q7NkJBQ3ZDLGlHQUlSO2lCQUNKOzs7O2dCQVhnQixPQUFPOzs7MkJBY25CLEtBQUs7eUJBdUVMLFNBQVMsU0FBQyxRQUFROztJQU92Qiw4QkFBQztDQUFBLEFBekZELElBeUZDO1NBaEZZLHVCQUF1Qjs7O0lBRWhDLDJDQUFxQzs7SUFDckMsb0RBQXVDOztJQWV2QyxtREFBeUI7O0lBQ3pCLGdEQUFzQjs7SUFDdEIsb0RBQTBCOztJQW1EMUIsOENBQW9COztJQUVwQix5Q0FDbUI7Ozs7O0lBNURQLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29sdW1uLCBDb250ZXh0LCBEYXRhQ29udHJvbFNldHRpbmdzLCBHcmlkU2V0dGluZ3MgfSBmcm9tICdAcmVtdWx0L2NvcmUnO1xyXG5pbXBvcnQgeyBTZWxlY3RWYWx1ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1maWx0ZXItZGlhbG9nL2FkZC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbHRlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlci1kaWFsb2cvZmlsdGVyLWRpYWxvZy5jb21wb25lbnQnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnRGF0YS1GaWx0ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtZmlsdGVyLWluZm8uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVzOiBbYC5saW5rIHtcclxuICAgICAgICBjdXJzb3I6cG9pbnRlcjtcclxuICAgICAgICBjb2xvcjpibHVlO1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7XHJcbiAgIH1gXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YUZpbHRlckluZm9Db21wb25lbnQge1xyXG5cclxuICAgIEBJbnB1dCgpIHNldHRpbmdzOiBHcmlkU2V0dGluZ3M8YW55PjtcclxuICAgIGZpbHRlckNvbHVtblRvQWRkOiBEYXRhQ29udHJvbFNldHRpbmdzO1xyXG4gICAgZ2V0Q3VycmVudEZpbHRlclZhbHVlKGNvbDogQ29sdW1uKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5pbml0T3JpZ0xpc3QoKTtcclxuICAgICAgICBsZXQgbSA9IHRoaXMuc2V0dGluZ3Mub3JpZ0xpc3QuZmluZCh4ID0+IHguY29sdW1uID09IGNvbCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5fZ2V0Q29sRGlzcGxheVZhbHVlKG0sIHRoaXMuc2V0dGluZ3MuZmlsdGVySGVscGVyLmZpbHRlclJvdyk7XHJcbiAgICB9XHJcbiAgICBjYW5jZWxBZGRGaWx0ZXIoKSB7XHJcblxyXG5cclxuXHJcbiAgICB9XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRleHQ6IENvbnRleHQpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgc2hvd0ZpbHRlckJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgc2hvd0FkZEZpbHRlciA9IGZhbHNlO1xyXG4gICAgZWRpdEZpbHRlclZpc2libGUgPSBmYWxzZTtcclxuICAgIHNob3dFZGl0RmlsdGVyKGNvbDogQ29sdW1uKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCA9IHRoaXMuc2V0dGluZ3Mub3JpZ0xpc3QuZmluZCh4ID0+IHguY29sdW1uID09IGNvbCk7XHJcbiAgICAgICAgdGhpcy5lZGl0RmlsdGVyVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkRmlsdGVyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB1c2VyRmlsdGVyQnV0dG9uKCkge1xyXG4gICAgICAgIHRoaXMuc2hvd0ZpbHRlckJ1dHRvbiA9ICF0aGlzLnNob3dGaWx0ZXJCdXR0b247XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5pbml0T3JpZ0xpc3QoKTtcclxuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5maWx0ZXJIZWxwZXIuZmlsdGVyQ29sdW1ucy5sZW5ndGggPT0gMClcclxuICAgICAgICAgICAgdGhpcy5zaG93QWRkQW5vdGhlckZpbHRlckRpYWxvZygpO1xyXG4gICAgfVxyXG4gICAgYXN5bmMgc2hvd0FkZEFub3RoZXJGaWx0ZXJEaWFsb2coKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5pbml0T3JpZ0xpc3QoKTtcclxuICAgICAgICB0aGlzLmZpbHRlckNvbHVtblRvQWRkID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuY29udGV4dC5vcGVuRGlhbG9nKFNlbGVjdFZhbHVlRGlhbG9nQ29tcG9uZW50LCB4ID0+IHguYXJncyh7XHJcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnJpZ2h0VG9MZWZ0ID8gXCLXkdeX16gg16LXnteV15PXlCDXnNeh15nXoNeV159cIiA6IFwiU2VsZWN0IENvbHVtbiB0byBGaWx0ZXJcIixcclxuICAgICAgICAgICAgdmFsdWVzOiB0aGlzLnNldHRpbmdzLm9yaWdMaXN0LFxyXG4gICAgICAgICAgICBvblNlbGVjdDogeCA9PiB0aGlzLmZpbHRlckNvbHVtblRvQWRkID0geFxyXG4gICAgICAgIH0pKTtcclxuXHJcblxyXG4gICAgICAgIGlmICh0aGlzLmZpbHRlckNvbHVtblRvQWRkKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY29udGV4dC5vcGVuRGlhbG9nKEZpbHRlckRpYWxvZ0NvbXBvbmVudCwgeCA9PiB4LmluZm8gPSB0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd0FkZEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBhc3luYyBlZGl0RmlsdGVyKGNvbDogQ29sdW1uKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCA9IHRoaXMuc2V0dGluZ3Mub3JpZ0xpc3QuZmluZCh4ID0+IHguY29sdW1uID09IGNvbCk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jb250ZXh0Lm9wZW5EaWFsb2coRmlsdGVyRGlhbG9nQ29tcG9uZW50LCB4ID0+IHguaW5mbyA9IHRoaXMpO1xyXG4gICAgfVxyXG4gICAgY29uZmlybUVkaXRGaWx0ZXIoKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmZpbHRlclJvd3ModGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCk7XHJcbiAgICAgICAgdGhpcy5lZGl0RmlsdGVyVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY2xlYXJFZGl0RmlsdGVyKCkge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5jbGVhckZpbHRlcih0aGlzLmZpbHRlckNvbHVtblRvQWRkKTtcclxuICAgICAgICB0aGlzLmVkaXRGaWx0ZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGFkZEZpbHRlcigpIHtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmZpbHRlclJvd3ModGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCk7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkRmlsdGVyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjYW5jZWxBZGROZXdGaWx0ZXIoKSB7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkRmlsdGVyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByaWdodFRvTGVmdCA9IGZhbHNlO1xyXG4gICAgLy9AdHMtaWdub3JlXHJcbiAgICBAVmlld0NoaWxkKCd0aGVEaXYnKVxyXG4gICAgdGhlRGl2OiBFbGVtZW50UmVmO1xyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh3aW5kb3cgJiYgd2luZG93LmdldENvbXB1dGVkU3R5bGUgJiYgdGhpcy50aGVEaXYpIHtcclxuICAgICAgICAgICAgdGhpcy5yaWdodFRvTGVmdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMudGhlRGl2Lm5hdGl2ZUVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2RpcmVjdGlvbicpID09ICdydGwnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1maWx0ZXItaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcmVtdWx0L2FuZ3VsYXIvIiwic291cmNlcyI6WyJzcmMvYW5ndWxhci9kYXRhLWZpbHRlci1pbmZvL2RhdGEtZmlsdGVyLWluZm8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQVUsT0FBTyxFQUF1QixZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDOUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakY7SUF1QkksaUNBQW9CLE9BQWdCLEVBQUUsR0FBbUI7UUFBckMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUlwQyxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBbUQxQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQXhEaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQztJQUMzQyxDQUFDOzs7OztJQVpELHVEQUFxQjs7OztJQUFyQixVQUFzQixHQUFXO1FBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7O1lBQ3pCLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJOzs7O1FBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBZixDQUFlLEVBQUM7UUFDekQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8s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QUM7Ozs7SUFDRCxpREFBZTs7O0lBQWY7UUFDSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDOzs7O0lBR0QsMkNBQVM7OztJQUFUO1FBRUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7Ozs7SUFDRCxvREFBa0I7OztJQUFsQjtRQUNJLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7O2dCQS9FSixTQUFTLFNBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLHVvQkFBZ0Q7NkJBQ3ZDLGlHQUlSO2lCQUNKOzs7O2dCQVhnQixPQUFPO2dCQUZmLGNBQWM7OzsyQkFnQmxCLEtBQUs7O0lBdUVWLDhCQUFDO0NBQUEsQUFsRkQsSUFrRkM7U0F6RVksdUJBQXVCOzs7SUFFaEMsMkNBQXFDOztJQUNyQyxvREFBdUM7O0lBZXZDLG1EQUF5Qjs7SUFDekIsZ0RBQXNCOztJQUN0QixvREFBMEI7O0lBbUQxQiw4Q0FBb0I7Ozs7O0lBekRSLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRWxlbWVudFJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbHVtbiwgQ29udGV4dCwgRGF0YUNvbnRyb2xTZXR0aW5ncywgR3JpZFNldHRpbmdzIH0gZnJvbSAnQHJlbXVsdC9jb3JlJztcclxuaW1wb3J0IHsgU2VsZWN0VmFsdWVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtZmlsdGVyLWRpYWxvZy9hZGQtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWx0ZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXItZGlhbG9nL2ZpbHRlci1kaWFsb2cuY29tcG9uZW50JztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ0RhdGEtRmlsdGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRhLWZpbHRlci1pbmZvLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlczogW2AubGluayB7XHJcbiAgICAgICAgY3Vyc29yOnBvaW50ZXI7XHJcbiAgICAgICAgY29sb3I6Ymx1ZTtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO1xyXG4gICB9YF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFGaWx0ZXJJbmZvQ29tcG9uZW50IHtcclxuXHJcbiAgICBASW5wdXQoKSBzZXR0aW5nczogR3JpZFNldHRpbmdzPGFueT47XHJcbiAgICBmaWx0ZXJDb2x1bW5Ub0FkZDogRGF0YUNvbnRyb2xTZXR0aW5ncztcclxuICAgIGdldEN1cnJlbnRGaWx0ZXJWYWx1ZShjb2w6IENvbHVtbikge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuaW5pdE9yaWdMaXN0KCk7XHJcbiAgICAgICAgbGV0IG0gPSB0aGlzLnNldHRpbmdzLm9yaWdMaXN0LmZpbmQoeCA9PiB4LmNvbHVtbiA9PSBjb2wpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmNvbHVtbnMuX2dldENvbERpc3BsYXlWYWx1ZShtLCB0aGlzLnNldHRpbmdzLmZpbHRlckhlbHBlci5maWx0ZXJSb3cpO1xyXG4gICAgfVxyXG4gICAgY2FuY2VsQWRkRmlsdGVyKCkge1xyXG5cclxuXHJcblxyXG4gICAgfVxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250ZXh0OiBDb250ZXh0LCBkaXI6IERpcmVjdGlvbmFsaXR5KSB7XHJcbiAgICAgICAgdGhpcy5yaWdodFRvTGVmdCA9IGRpci52YWx1ZSA9PT0gJ3J0bCc7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd0ZpbHRlckJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgc2hvd0FkZEZpbHRlciA9IGZhbHNlO1xyXG4gICAgZWRpdEZpbHRlclZpc2libGUgPSBmYWxzZTtcclxuICAgIHNob3dFZGl0RmlsdGVyKGNvbDogQ29sdW1uKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCA9IHRoaXMuc2V0dGluZ3Mub3JpZ0xpc3QuZmluZCh4ID0+IHguY29sdW1uID09IGNvbCk7XHJcbiAgICAgICAgdGhpcy5lZGl0RmlsdGVyVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkRmlsdGVyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB1c2VyRmlsdGVyQnV0dG9uKCkge1xyXG4gICAgICAgIHRoaXMuc2hvd0ZpbHRlckJ1dHRvbiA9ICF0aGlzLnNob3dGaWx0ZXJCdXR0b247XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5pbml0T3JpZ0xpc3QoKTtcclxuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5maWx0ZXJIZWxwZXIuZmlsdGVyQ29sdW1ucy5sZW5ndGggPT0gMClcclxuICAgICAgICAgICAgdGhpcy5zaG93QWRkQW5vdGhlckZpbHRlckRpYWxvZygpO1xyXG4gICAgfVxyXG4gICAgYXN5bmMgc2hvd0FkZEFub3RoZXJGaWx0ZXJEaWFsb2coKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5pbml0T3JpZ0xpc3QoKTtcclxuICAgICAgICB0aGlzLmZpbHRlckNvbHVtblRvQWRkID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuY29udGV4dC5vcGVuRGlhbG9nKFNlbGVjdFZhbHVlRGlhbG9nQ29tcG9uZW50LCB4ID0+IHguYXJncyh7XHJcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnJpZ2h0VG9MZWZ0ID8gXCLXkdeX16gg16LXnteV15PXlCDXnNeh15nXoNeV159cIiA6IFwiU2VsZWN0IENvbHVtbiB0byBGaWx0ZXJcIixcclxuICAgICAgICAgICAgdmFsdWVzOiB0aGlzLnNldHRpbmdzLm9yaWdMaXN0LFxyXG4gICAgICAgICAgICBvblNlbGVjdDogeCA9PiB0aGlzLmZpbHRlckNvbHVtblRvQWRkID0geFxyXG4gICAgICAgIH0pKTtcclxuXHJcblxyXG4gICAgICAgIGlmICh0aGlzLmZpbHRlckNvbHVtblRvQWRkKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY29udGV4dC5vcGVuRGlhbG9nKEZpbHRlckRpYWxvZ0NvbXBvbmVudCwgeCA9PiB4LmluZm8gPSB0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd0FkZEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBhc3luYyBlZGl0RmlsdGVyKGNvbDogQ29sdW1uKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCA9IHRoaXMuc2V0dGluZ3Mub3JpZ0xpc3QuZmluZCh4ID0+IHguY29sdW1uID09IGNvbCk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jb250ZXh0Lm9wZW5EaWFsb2coRmlsdGVyRGlhbG9nQ29tcG9uZW50LCB4ID0+IHguaW5mbyA9IHRoaXMpO1xyXG4gICAgfVxyXG4gICAgY29uZmlybUVkaXRGaWx0ZXIoKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmZpbHRlclJvd3ModGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCk7XHJcbiAgICAgICAgdGhpcy5lZGl0RmlsdGVyVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY2xlYXJFZGl0RmlsdGVyKCkge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5jbGVhckZpbHRlcih0aGlzLmZpbHRlckNvbHVtblRvQWRkKTtcclxuICAgICAgICB0aGlzLmVkaXRGaWx0ZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGFkZEZpbHRlcigpIHtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmZpbHRlclJvd3ModGhpcy5maWx0ZXJDb2x1bW5Ub0FkZCk7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkRmlsdGVyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjYW5jZWxBZGROZXdGaWx0ZXIoKSB7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkRmlsdGVyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByaWdodFRvTGVmdCA9IGZhbHNlO1xyXG4gICAgXHJcbn1cclxuIl19 |
@@ -6,3 +6,3 @@ /** | ||
import * as tslib_1 from "tslib"; | ||
import { Component, Input, ViewChild, ElementRef } from '@angular/core'; | ||
import { Component, Input, ViewChild } from '@angular/core'; | ||
import { isFunction } from 'util'; | ||
@@ -12,4 +12,5 @@ import { DataFilterInfoComponent } from '../data-filter-info/data-filter-info.component'; | ||
import { SelectValueDialogComponent } from '../add-filter-dialog/add-filter-dialog.component'; | ||
import { Directionality } from '@angular/cdk/bidi'; | ||
var DataGrid2Component = /** @class */ (function () { | ||
function DataGrid2Component(context) { | ||
function DataGrid2Component(context, dir) { | ||
this.context = context; | ||
@@ -23,15 +24,5 @@ this.rightToLeft = false; | ||
this.page = 1; | ||
this.rightToLeft = dir.value === 'rtl'; | ||
} | ||
/** | ||
* @return {?} | ||
*/ | ||
DataGrid2Component.prototype.ngAfterViewInit = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
if (window && window.getComputedStyle && this.dataGridDiv) { | ||
this.rightToLeft = window.getComputedStyle(this.dataGridDiv.nativeElement, null).getPropertyValue('direction') == 'rtl'; | ||
} | ||
}; | ||
/** | ||
* @param {?} c | ||
@@ -237,2 +228,15 @@ * @return {?} | ||
/** | ||
* @param {?} row | ||
* @param {?} e | ||
* @return {?} | ||
*/ | ||
DataGrid2Component.prototype.clickOnselectCheckboxFor = /** | ||
* @param {?} row | ||
* @param {?} e | ||
* @return {?} | ||
*/ | ||
function (row, e) { | ||
this.settings.clickOnselectCheckboxFor(row, e.shiftKey); | ||
}; | ||
/** | ||
* @param {?} record | ||
@@ -340,2 +344,59 @@ * @return {?} | ||
*/ | ||
DataGrid2Component.prototype.showSaveAllButton = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
return this.settings.items.find((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
function (x) { return x.wasChanged(); })); | ||
}; | ||
/** | ||
* @return {?} | ||
*/ | ||
DataGrid2Component.prototype.saveAllText = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
return this.rightToLeft ? ('שמור ' + this.settings.items.filter((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
function (x) { return x.wasChanged(); })).length + ' שורות') : | ||
('save ' + this.settings.items.filter((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
function (x) { return x.wasChanged(); })).length + ' rows'); | ||
}; | ||
/** | ||
* @return {?} | ||
*/ | ||
DataGrid2Component.prototype.saveAllClick = /** | ||
* @return {?} | ||
*/ | ||
function () { | ||
return tslib_1.__awaiter(this, void 0, void 0, function () { | ||
return tslib_1.__generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, Promise.all(this.settings.items.filter((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
function (x) { return x.wasChanged(); })).map((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
function (x) { return x.save(); })))]; | ||
case 1: | ||
_a.sent(); | ||
return [2 /*return*/]; | ||
} | ||
}); | ||
}); | ||
}; | ||
/** | ||
* @return {?} | ||
*/ | ||
DataGrid2Component.prototype.ngOnChanges = /** | ||
@@ -355,20 +416,7 @@ * @return {?} | ||
*/ | ||
function () { return _this.settings.items.find((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
function (x) { return x.wasChanged(); })); }), | ||
function () { return _this.showSaveAllButton(); }), | ||
textInMenu: (/** | ||
* @return {?} | ||
*/ | ||
function () { return _this.rightToLeft ? ('שמור ' + _this.settings.items.filter((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
function (x) { return x.wasChanged(); })).length + ' שורות') : | ||
('save ' + _this.settings.items.filter((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
function (x) { return x.wasChanged(); })).length + ' rows'); }), | ||
function () { return _this.saveAllText(); }), | ||
click: (/** | ||
@@ -380,11 +428,3 @@ * @return {?} | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, Promise.all(this.settings.items.filter((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
function (x) { return x.wasChanged(); })).map((/** | ||
* @param {?} x | ||
* @return {?} | ||
*/ | ||
function (x) { return x.save(); })))]; | ||
case 0: return [4 /*yield*/, this.saveAllClick()]; | ||
case 1: | ||
@@ -552,3 +592,3 @@ _a.sent(); | ||
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\"></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)\">\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?'\u05E9\u05D5\u05E8\u05D5\u05EA \u05D1\u05D3\u05E3': '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></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?'\u05E2\u05DE\u05D5\u05D3':'Page'}} {{settings.page}} {{rightToLeft?' \u05DE\u05EA\u05D5\u05DA ':' 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>", | ||
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?'\u05E9\u05D5\u05E8\u05D5\u05EA \u05D1\u05D3\u05E3': '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?'\u05E2\u05DE\u05D5\u05D3':'Page'}} {{settings.page}} {{rightToLeft?' \u05DE\u05EA\u05D5\u05DA ':' 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}"] | ||
@@ -559,6 +599,6 @@ }] } | ||
DataGrid2Component.ctorParameters = function () { return [ | ||
{ type: Context } | ||
{ type: Context }, | ||
{ type: Directionality } | ||
]; }; | ||
DataGrid2Component.propDecorators = { | ||
dataGridDiv: [{ type: ViewChild, args: ['dataGridDiv',] }], | ||
width: [{ type: Input }], | ||
@@ -579,4 +619,2 @@ height: [{ type: Input }], | ||
/** @type {?} */ | ||
DataGrid2Component.prototype.dataGridDiv; | ||
/** @type {?} */ | ||
DataGrid2Component.prototype.tempDragColumn; | ||
@@ -611,2 +649,2 @@ /** @type {?} */ | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkMi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcmVtdWx0L2FuZ3VsYXIvIiwic291cmNlcyI6WyJzcmMvYW5ndWxhci9kYXRlLWdyaWQtMi9kYXRhLWdyaWQyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRWxHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFVLE9BQU8sRUFBMkMsWUFBWSxFQUFhLE1BQU0sY0FBYyxDQUFDO0FBQ2pILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzlGO0lBVUUsNEJBQW9CLE9BQWdCO1FBQWhCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUErQnBDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBcUNYLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUF5QzNCLGVBQVUsR0FBcUIsRUFBRSxDQUFDO1FBQ2xDLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQUMvQixTQUFJLEdBQWEsRUFBRSxDQUFDO1FBcUJwQixTQUFJLEdBQUcsQ0FBQyxDQUFDO0lBbklULENBQUM7Ozs7SUFDRCw0Q0FBZTs7O0lBQWY7UUFDRSxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN6RCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLENBQUM7U0FDekg7SUFDSCxDQUFDOzs7OztJQUNLLG1DQUFNOzs7O0lBQVosVUFBYSxDQUFzQjs7Ozs7NEJBQ2pDLHFCQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLDBCQUEwQjs7Ozt3QkFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxJQUFJLENBQUM7NEJBQ3BFLE1BQU0sRUFBRSxLQUFJLENBQUMsUUFBUSxDQUFDLFFBQVE7NEJBQzlCLFFBQVE7Ozs7NEJBQUUsVUFBQSxHQUFHO2dDQUNYLEtBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0NBQ3JDLEtBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7NEJBQzdDLENBQUMsQ0FBQTt5QkFDRixDQUFDLEVBTjZELENBTTdELEVBQUMsRUFBQTs7d0JBTkgsU0FNRyxDQUFDOzs7OztLQUVMOzs7OztJQUNELHVDQUFVOzs7O0lBQVYsVUFBVyxHQUF3QjtRQUNqQyxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Ozs7O0lBQ0Qsd0NBQVc7Ozs7SUFBWCxVQUFZLEdBQXdCOztZQUM5QixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDO1FBQ3JELElBQUksQ0FBQyxDQUFDO1lBQ0osQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUNkLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7OztJQUVELGlDQUFJOzs7SUFBSjtRQUNFLCtDQUErQztJQUNqRCxDQUFDOzs7O0lBS0QseUNBQVk7OztJQUFaO1FBQ0UsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVM7WUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEUsSUFBSSxJQUFJLENBQUMsV0FBVztZQUNsQixPQUFPLE1BQU0sQ0FBQztRQUNoQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzs7OztJQUVELHNDQUFTOzs7O0lBQVQsVUFBVSxDQUFzQjtRQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUUxQixDQUFDOzs7Ozs7SUFDRCxxQ0FBUTs7Ozs7SUFBUixVQUFTLENBQVMsRUFBRSxLQUFVO1FBQzVCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs7OztJQUNELG1DQUFNOzs7O0lBQU4sVUFBTyxDQUFzQjs7WUFDdkIsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMxRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQzs7WUFDL0MsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksV0FBVyxJQUFJLFdBQVc7WUFDNUIsV0FBVyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzs7O0lBR0QsdUNBQVU7OztJQUFWO1FBQ0UsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNO2dCQUMxQyxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNwQjtJQUNILENBQUM7Ozs7O0lBTUQsdUNBQVU7Ozs7SUFBVixVQUFXLENBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7Ozs7O0lBR0QsbURBQXNCOzs7O0lBQXRCLFVBQXVCLG1CQUF3QztRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7Ozs7OztJQUVELDhDQUFpQjs7Ozs7SUFBakIsVUFBa0IsQ0FBaUIsRUFBRSxHQUFRO1FBQzNDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUTtZQUNiLE9BQU8sRUFBRSxDQUFDO1FBQ1osSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUN4QixPQUFPLENBQUMsbUJBQXdCLENBQUMsQ0FBQyxRQUFRLEVBQUEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUUvQixDQUFDOzs7Ozs7SUFDRCwwQ0FBYTs7Ozs7SUFBYixVQUFjLENBQWlCLEVBQUUsR0FBUTtRQUN2QyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVU7WUFDZixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEIsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxHQUFHO2dCQUNOLE9BQU8sRUFBRSxDQUFDO1lBQ1osWUFBWTtZQUNaLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sbUJBQVEsQ0FBQyxDQUFDLFVBQVUsRUFBQSxDQUFDO0lBRzlCLENBQUM7Ozs7O0lBQ0QsNkNBQWdCOzs7O0lBQWhCLFVBQWlCLE1BQU07UUFDckIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUk7Ozs7UUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQWpCLENBQWlCLEVBQUMsQ0FBQztJQUN0RCxDQUFDOzs7O0lBQ0Qsa0RBQXFCOzs7SUFBckI7UUFDRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTs7OztRQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFYLENBQVcsRUFBQyxDQUFDO0lBQ2pELENBQUM7Ozs7OztJQUlPLHNDQUFTOzs7OztJQUFqQixVQUFrQixDQUFvQjtRQUNwQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDVixDQUFDLENBQUMsS0FBSzs7OztZQUFHLFVBQUMsQ0FBQyxJQUFPLENBQUMsQ0FBQSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTztZQUNaLENBQUMsQ0FBQyxPQUFPOzs7O1lBQUcsVUFBQSxDQUFDLElBQUksT0FBQSxJQUFJLEVBQUosQ0FBSSxDQUFBLENBQUM7UUFDeEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRO1lBQ2IsQ0FBQyxDQUFDLFFBQVE7Ozs7WUFBRyxVQUFBLENBQUMsSUFBSSxPQUFBLEtBQUssRUFBTCxDQUFLLENBQUEsQ0FBQzthQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRTs7Z0JBQzVCLEdBQUMsR0FBRyxDQUFDLENBQUMsUUFBUTtZQUNsQixDQUFDLENBQUMsUUFBUSxHQUFHLG1CQUFLOzs7O1lBQUMsVUFBQyxDQUFNLElBQUssT0FBQSxHQUFDLEVBQUQsQ0FBQyxFQUFDLEVBQUEsQ0FBQztTQUNuQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxDQUFDO0lBRVgsQ0FBQzs7Ozs7SUFDRCx1Q0FBVTs7OztJQUFWLFVBQVcsR0FBUTtRQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDOzs7O0lBR0QscUNBQVE7OztJQUFSO1FBQ0UsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQzs7OztJQUNELHlDQUFZOzs7SUFBWjtRQUNFLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO1lBQ2hCLE9BQU87UUFDVCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDOzs7O0lBS0Qsd0NBQVc7OztJQUFYO1FBQUEsaUJBcUZDOztRQW5GQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFDaEIsT0FBTztRQUdULElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3BCLE9BQU87OztZQUFFLGNBQU0sT0FBQSxLQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJOzs7O1lBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQWQsQ0FBYyxFQUFDLEVBQTdDLENBQTZDLENBQUE7WUFDNUQsVUFBVTs7O1lBQUUsY0FBTSxPQUFBLEtBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLEtBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU07Ozs7WUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBZCxDQUFjLEVBQUMsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDbEgsQ0FBQyxPQUFPLEdBQUcsS0FBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTTs7OztnQkFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBZCxDQUFjLEVBQUMsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBRDVELENBQzRELENBQUE7WUFDOUUsS0FBSzs7O1lBQUU7OztnQ0FDTCxxQkFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU07Ozs7NEJBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQWQsQ0FBYyxFQUFDLENBQUMsR0FBRzs7Ozs0QkFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBUixDQUFRLEVBQUMsQ0FBQyxFQUFBOzs0QkFBckYsU0FBcUYsQ0FBQzs7OztpQkFDdkYsQ0FBQTtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFO1lBQ3RDLENBQUEsS0FBQSxJQUFJLENBQUMsV0FBVyxDQUFBLENBQUMsSUFBSSw0QkFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRzs7OztZQUFDLFVBQUEsQ0FBQztnQkFDL0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPO29CQUNaLENBQUMsQ0FBQyxPQUFPOzs7b0JBQUcsY0FBTSxPQUFBLElBQUksRUFBSixDQUFJLENBQUEsQ0FBQztnQkFDekIsT0FBTyxDQUFDLENBQUM7WUFDWCxDQUFDLEVBQUMsR0FBRTtTQUNMO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRTtZQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNiLElBQUksRUFBRSxFQUFFO2dCQUNSLElBQUksRUFBRSxPQUFPO2dCQUNiLFFBQVEsRUFBRSxvQ0FBb0M7Z0JBQzlDLE9BQU87Ozs7Z0JBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQWQsQ0FBYyxDQUFBO2dCQUM1QixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsVUFBVTs7O2dCQUFFLGNBQU0sT0FBQSxLQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBbEMsQ0FBa0MsQ0FBQTtnQkFDcEQsS0FBSzs7OztnQkFBRSxVQUFBLENBQUM7b0JBQ04sS0FBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQTthQUVGLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ2IsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsUUFBUSxFQUFFLCtDQUErQztnQkFDekQsT0FBTzs7OztnQkFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBZCxDQUFjLENBQUE7Z0JBQzVCLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixVQUFVOzs7Z0JBQUUsY0FBTSxPQUFBLEtBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUExQyxDQUEwQyxDQUFBO2dCQUU1RCxLQUFLOzs7O2dCQUFFLFVBQUEsQ0FBQztvQkFDTixDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2xCLENBQUMsQ0FBQTthQUNGLENBQUMsQ0FBQztTQUdKO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVc7WUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDYixJQUFJLEVBQUUsRUFBRTtnQkFDUixPQUFPOzs7O2dCQUFFLFVBQUMsQ0FBQztvQkFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDekIsQ0FBQyxDQUFBO2dCQUNDLElBQUksRUFBRSxRQUFRO2dCQUNoQixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsVUFBVTs7O2dCQUFFLGNBQU0sT0FBQSxLQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBbkMsQ0FBbUMsQ0FBQTtnQkFDckQsS0FBSzs7OztnQkFBRSxVQUFNLENBQUM7Ozs7cUNBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFwQyx3QkFBb0M7Z0NBRWpDLHFCQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBQTs7Z0NBQWxELElBQUksQ0FBQyxDQUFBLFNBQTZDLENBQUE7b0NBQ2hELHNCQUFPOzs7Z0NBRVgsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDOzs7O3FCQUVaLENBQUE7Z0JBRUQsUUFBUSxFQUFFLHNDQUFzQzthQUNqRCxDQUFDLENBQUM7UUFDTCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUTs7Z0JBQ3hCLEtBQWMsSUFBQSxLQUFBLGlCQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFBLGdCQUFBLDRCQUFFO29CQUFqQyxJQUFJLENBQUMsV0FBQTtvQkFDUixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNuQjs7Ozs7Ozs7YUFBQTtRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJOzs7O1lBQUMsVUFBQyxDQUFNO2dCQUNyQyxLQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztZQUVuQixDQUFDLEVBQUMsQ0FBQztTQUVKO0lBRUgsQ0FBQzs7Ozs7SUFFRCx5Q0FBWTs7OztJQUFaLFVBQWEsR0FBUTs7WUFDZixDQUFDLEdBQUcsY0FBYztRQUN0QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUN4QixDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVO1lBQ2pDLENBQUMsSUFBSSxTQUFTLENBQUM7UUFFakIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDOzs7Ozs7SUFDRCwrQ0FBa0I7Ozs7O0lBQWxCLFVBQW1CLEdBQVEsRUFBRSxHQUFRO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxtQkFBbUIsQ0FBQztJQUMvRSxDQUFDOztnQkE5UEYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixxb1FBQTBDOztpQkFFM0M7Ozs7Z0JBTmdCLE9BQU87Ozs4QkE2Q3JCLFNBQVMsU0FBQyxhQUFhO3dCQTBCdkIsS0FBSzt5QkFDTCxLQUFLO2lDQVFMLEtBQUs7NkJBQ0wsS0FBSzswQkFFTCxLQUFLOzJCQUNMLEtBQUs7aUNBS0wsU0FBUyxTQUFDLHVCQUF1Qjs7SUEwS3BDLHlCQUFDO0NBQUEsQUFqUUQsSUFpUUM7U0F4UFksa0JBQWtCOzs7SUFnQzdCLHlDQUFvQjs7SUFFcEIseUNBQ3dCOztJQVF4Qiw0Q0FBc0M7O0lBaUJ0QyxtQ0FBdUI7O0lBQ3ZCLG9DQUF3Qjs7SUFReEIsNENBQStCOztJQUMvQix3Q0FBMkI7O0lBRTNCLHFDQUFzQjs7SUFDdEIsc0NBQXFDOztJQUtyQyw0Q0FBNEU7O0lBaUM1RSx3Q0FBa0M7O0lBQ2xDLHlDQUErQjs7SUFDL0Isa0NBQW9COztJQXFCcEIsa0NBQVM7Ozs7O0lBcklHLHFDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uQ2hhbmdlcywgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJ3V0aWwnO1xyXG5pbXBvcnQgeyBEYXRhRmlsdGVySW5mb0NvbXBvbmVudCB9IGZyb20gJy4uL2RhdGEtZmlsdGVyLWluZm8vZGF0YS1maWx0ZXItaW5mby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2x1bW4sIENvbnRleHQsIERhdGFDb250cm9sU2V0dGluZ3MsIEVudGl0eSwgR3JpZEJ1dHRvbiwgR3JpZFNldHRpbmdzLCBSb3dCdXR0b24gfSBmcm9tICdAcmVtdWx0L2NvcmUnO1xyXG5pbXBvcnQgeyBTZWxlY3RWYWx1ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1maWx0ZXItZGlhbG9nL2FkZC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGF0YS1ncmlkJyxcclxuICB0ZW1wbGF0ZVVybDogYC4vZGF0YS1ncmlkMi5jb21wb25lbnQuaHRtbGAsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS1ncmlkMi5jb21wb25lbnQuc2NzcyddXHJcbn1cclxuKVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YUdyaWQyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRleHQ6IENvbnRleHQpIHtcclxuXHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh3aW5kb3cgJiYgd2luZG93LmdldENvbXB1dGVkU3R5bGUgJiYgdGhpcy5kYXRhR3JpZERpdikge1xyXG4gICAgICB0aGlzLnJpZ2h0VG9MZWZ0ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5kYXRhR3JpZERpdi5uYXRpdmVFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdkaXJlY3Rpb24nKSA9PSAncnRsJztcclxuICAgIH1cclxuICB9XHJcbiAgYXN5bmMgYWRkQ29sKGM6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIGF3YWl0IHRoaXMuY29udGV4dC5vcGVuRGlhbG9nKFNlbGVjdFZhbHVlRGlhbG9nQ29tcG9uZW50LCB4ID0+IHguYXJncyh7XHJcbiAgICAgIHZhbHVlczogdGhpcy5zZXR0aW5ncy5vcmlnTGlzdCxcclxuICAgICAgb25TZWxlY3Q6IGNvbCA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmFkZENvbChjLCBjb2wpO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5udW1PZkNvbHVtbnNJbkdyaWQrKztcclxuICAgICAgfVxyXG4gICAgfSkpO1xyXG5cclxuICB9XHJcbiAgZ2V0Q29sRmxleChtYXA6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIHJldHVybiAnMCAwICcgKyB0aGlzLmdldENvbFdpZHRoKG1hcCk7XHJcbiAgfVxyXG4gIGdldENvbFdpZHRoKG1hcDogRGF0YUNvbnRyb2xTZXR0aW5ncykge1xyXG4gICAgbGV0IHggPSB0aGlzLnNldHRpbmdzLmNvbHVtbnMuX19kYXRhQ29udHJvbFN0eWxlKG1hcCk7XHJcbiAgICBpZiAoIXgpXHJcbiAgICAgIHggPSAnMjAwcHgnO1xyXG4gICAgcmV0dXJuIHg7XHJcbiAgfVxyXG5cclxuICB0ZXN0KCkge1xyXG4gICAgLy90aGlzLmRhdGFHcmlkRGl2Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcclxuICB9XHJcbiAgcmlnaHRUb0xlZnQgPSBmYWxzZTtcclxuICAvL0B0cy1pZ25vcmVcclxuICBAVmlld0NoaWxkKCdkYXRhR3JpZERpdicpXHJcbiAgZGF0YUdyaWREaXY6IEVsZW1lbnRSZWY7XHJcbiAgZ2V0VG90YWxSb3dzKCkge1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MudG90YWxSb3dzKVxyXG4gICAgICByZXR1cm4gTWF0aC5jZWlsKHRoaXMuc2V0dGluZ3MudG90YWxSb3dzIC8gdGhpcy5zZXR0aW5ncy5yb3dzUGVyUGFnZSk7XHJcbiAgICBpZiAodGhpcy5yaWdodFRvTGVmdClcclxuICAgICAgcmV0dXJuICfXqNeR15nXnSc7XHJcbiAgICByZXR1cm4gJ21hbnknO1xyXG4gIH1cclxuICB0ZW1wRHJhZ0NvbHVtbjogKERhdGFDb250cm9sU2V0dGluZ3MpO1xyXG4gIGRyYWdTdGFydCh4OiBEYXRhQ29udHJvbFNldHRpbmdzKSB7XHJcbiAgICB0aGlzLnRlbXBEcmFnQ29sdW1uID0geDtcclxuXHJcbiAgfVxyXG4gIGRyYWdPdmVyKHg6IENvbHVtbiwgZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcbiAgb25Ecm9wKHg6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIGxldCBvbGRQb3NpdGlvbiA9IHRoaXMuc2V0dGluZ3MuY29sdW1ucy5pdGVtcy5pbmRleE9mKHRoaXMudGVtcERyYWdDb2x1bW4pO1xyXG4gICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLml0ZW1zLnNwbGljZShvbGRQb3NpdGlvbiwgMSk7XHJcbiAgICBsZXQgbmV3UG9zaXRpb24gPSB0aGlzLnNldHRpbmdzLmNvbHVtbnMuaXRlbXMuaW5kZXhPZih4KTtcclxuICAgIGlmIChuZXdQb3NpdGlvbiA9PSBvbGRQb3NpdGlvbilcclxuICAgICAgbmV3UG9zaXRpb24rKztcclxuICAgIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5pdGVtcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIHRoaXMudGVtcERyYWdDb2x1bW4pO1xyXG4gICAgdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmNvbExpc3RDaGFuZ2VkKCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmc7XHJcbiAgX2dldEhlaWdodCgpIHtcclxuICAgIGlmICh0aGlzLmhlaWdodCkge1xyXG4gICAgICBpZiAoKCt0aGlzLmhlaWdodCkudG9TdHJpbmcoKSA9PSB0aGlzLmhlaWdodClcclxuICAgICAgICByZXR1cm4gdGhpcy5oZWlnaHQgKyBcInB4XCI7XHJcbiAgICAgIHJldHVybiB0aGlzLmhlaWdodDtcclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgZGlzcGxheUJ1dHRvbnMgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlWQ1IgPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSByZWNvcmRzOiBhbnk7XHJcbiAgQElucHV0KCkgc2V0dGluZ3M6IEdyaWRTZXR0aW5nczxhbnk+O1xyXG4gIGlzRmlsdGVyZWQoYzogQ29sdW1uKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5jb2x1bW5zLmZpbHRlckhlbHBlci5pc0ZpbHRlcmVkKGMpO1xyXG4gIH1cclxuICAvL0B0cy1pZ25vcmVcclxuICBAVmlld0NoaWxkKERhdGFGaWx0ZXJJbmZvQ29tcG9uZW50KSBkYXRhRmlsdGVySW5mbzogRGF0YUZpbHRlckluZm9Db21wb25lbnQ7XHJcbiAgc2hvd0ZpbHRlckNvbHVtbkRpYWxvZyhkYXRhQ29udHJvbFNldHRpbmdzOiBEYXRhQ29udHJvbFNldHRpbmdzKSB7XHJcbiAgICB0aGlzLnNldHRpbmdzLmluaXRPcmlnTGlzdCgpO1xyXG4gICAgdGhpcy5kYXRhRmlsdGVySW5mby5lZGl0RmlsdGVyKGRhdGFDb250cm9sU2V0dGluZ3MuY29sdW1uKTtcclxuICB9XHJcblxyXG4gIGdldEJ1dHRvbkNzc0NsYXNzKGI6IFJvd0J1dHRvbjxhbnk+LCByb3c6IGFueSkge1xyXG4gICAgaWYgKCFiLmNzc0NsYXNzKVxyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIGlmIChpc0Z1bmN0aW9uKGIuY3NzQ2xhc3MpKVxyXG4gICAgICByZXR1cm4gKDwoKHJvdzogYW55KSA9PiBzdHJpbmcpPmIuY3NzQ2xhc3MpKHJvdyk7XHJcbiAgICByZXR1cm4gYi5jc3NDbGFzcy50b1N0cmluZygpO1xyXG5cclxuICB9XHJcbiAgZ2V0QnV0dG9uVGV4dChiOiBSb3dCdXR0b248YW55Piwgcm93OiBhbnkpIHtcclxuICAgIGlmICghYi50ZXh0SW5NZW51KVxyXG4gICAgICByZXR1cm4gYi5uYW1lO1xyXG4gICAgaWYgKGlzRnVuY3Rpb24oYi50ZXh0SW5NZW51KSkge1xyXG4gICAgICBpZiAoIXJvdylcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICByZXR1cm4gYi50ZXh0SW5NZW51KHJvdyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gPHN0cmluZz5iLnRleHRJbk1lbnU7XHJcblxyXG5cclxuICB9XHJcbiAgaGFzVmlzaWJsZUJ1dHRvbihyZWNvcmQpIHtcclxuICAgIHJldHVybiB0aGlzLnJvd0J1dHRvbnMuZmluZChiID0+IGIudmlzaWJsZShyZWNvcmQpKTtcclxuICB9XHJcbiAgaGFzVmlzaWJsZUdyaWRCdXR0b25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ3JpZEJ1dHRvbnMuZmluZChiID0+IGIudmlzaWJsZSgpKTtcclxuICB9XHJcbiAgcm93QnV0dG9uczogUm93QnV0dG9uPGFueT5bXSA9IFtdO1xyXG4gIGdyaWRCdXR0b25zOiBHcmlkQnV0dG9uW10gPSBbXTtcclxuICBrZXlzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHByaXZhdGUgYWRkQnV0dG9uKGI6IFJvd0J1dHRvbjxFbnRpdHk+KSB7XHJcbiAgICBpZiAoIWIuY2xpY2spXHJcbiAgICAgIGIuY2xpY2sgPSAocikgPT4geyB9O1xyXG4gICAgaWYgKCFiLnZpc2libGUpXHJcbiAgICAgIGIudmlzaWJsZSA9IHIgPT4gdHJ1ZTtcclxuICAgIGlmICghYi5jc3NDbGFzcylcclxuICAgICAgYi5jc3NDbGFzcyA9IHIgPT4gXCJidG5cIjtcclxuICAgIGVsc2UgaWYgKCFpc0Z1bmN0aW9uKGIuY3NzQ2xhc3MpKSB7XHJcbiAgICAgIGxldCB4ID0gYi5jc3NDbGFzcztcclxuICAgICAgYi5jc3NDbGFzcyA9IDxhbnk+KChyOiBhbnkpID0+IHgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucm93QnV0dG9ucy5wdXNoKGIpO1xyXG4gICAgcmV0dXJuIGI7XHJcblxyXG4gIH1cclxuICByb3dDbGlja2VkKHJvdzogYW55KSB7XHJcbiAgICB0aGlzLnNldHRpbmdzLnNldEN1cnJlbnRSb3cocm93KTtcclxuICB9XHJcblxyXG4gIHBhZ2UgPSAxO1xyXG4gIG5leHRQYWdlKCkge1xyXG4gICAgdGhpcy5wYWdlKys7XHJcbiAgfVxyXG4gIHByZXZpb3VzUGFnZSgpIHtcclxuICAgIGlmICh0aGlzLnBhZ2UgPD0gMSlcclxuICAgICAgcmV0dXJuO1xyXG4gICAgdGhpcy5wYWdlLS07XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoIXRoaXMuc2V0dGluZ3MpXHJcbiAgICAgIHJldHVybjtcclxuXHJcblxyXG4gICAgdGhpcy5yb3dCdXR0b25zID0gW107XHJcbiAgICB0aGlzLmdyaWRCdXR0b25zID0gW107XHJcbiAgICB0aGlzLmdyaWRCdXR0b25zLnB1c2goe1xyXG4gICAgICB2aXNpYmxlOiAoKSA9PiB0aGlzLnNldHRpbmdzLml0ZW1zLmZpbmQoeCA9PiB4Lndhc0NoYW5nZWQoKSksXHJcbiAgICAgIHRleHRJbk1lbnU6ICgpID0+IHRoaXMucmlnaHRUb0xlZnQgPyAoJ9ep157XldeoICcgKyB0aGlzLnNldHRpbmdzLml0ZW1zLmZpbHRlcih4ID0+IHgud2FzQ2hhbmdlZCgpKS5sZW5ndGggKyAnINep15XXqNeV16onKSA6XHJcbiAgICAgICAgKCdzYXZlICcgKyB0aGlzLnNldHRpbmdzLml0ZW1zLmZpbHRlcih4ID0+IHgud2FzQ2hhbmdlZCgpKS5sZW5ndGggKyAnIHJvd3MnKSxcclxuICAgICAgY2xpY2s6IGFzeW5jICgpID0+IHtcclxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLnNldHRpbmdzLml0ZW1zLmZpbHRlcih4ID0+IHgud2FzQ2hhbmdlZCgpKS5tYXAoeCA9PiB4LnNhdmUoKSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLnNldHRpbmdzLmdyaWRCdXR0b25zKSB7XHJcbiAgICAgIHRoaXMuZ3JpZEJ1dHRvbnMucHVzaCguLi50aGlzLnNldHRpbmdzLnNldHRpbmdzLmdyaWRCdXR0b25zLm1hcCh4ID0+IHtcclxuICAgICAgICBpZiAoIXgudmlzaWJsZSlcclxuICAgICAgICAgIHgudmlzaWJsZSA9ICgpID0+IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHg7XHJcbiAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5hbGxvd1VwZGF0ZSkge1xyXG4gICAgICB0aGlzLmFkZEJ1dHRvbih7XHJcbiAgICAgICAgbmFtZTogXCJcIixcclxuICAgICAgICBpY29uOiAnY2hlY2snLFxyXG4gICAgICAgIGNzc0NsYXNzOiBcImdseXBoaWNvbiBnbHlwaGljb24tb2sgYnRuLXN1Y2Nlc3NcIixcclxuICAgICAgICB2aXNpYmxlOiByID0+IHIud2FzQ2hhbmdlZCgpLFxyXG4gICAgICAgIHNob3dJbkxpbmU6IHRydWUsXHJcbiAgICAgICAgdGV4dEluTWVudTogKCkgPT4gdGhpcy5yaWdodFRvTGVmdCA/ICfXqdee15XXqCcgOiAnc2F2ZScsXHJcbiAgICAgICAgY2xpY2s6IHIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXR0aW5ncy5fZG9TYXZpbmdSb3cocik7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmFkZEJ1dHRvbih7XHJcbiAgICAgICAgbmFtZTogXCJcIixcclxuICAgICAgICBpY29uOiAnY2FuY2VsJyxcclxuICAgICAgICBjc3NDbGFzczogXCJidG4gYnRuLWRhbmdlciBnbHlwaGljb24gZ2x5cGhpY29uLWJhbi1jaXJjbGVcIixcclxuICAgICAgICB2aXNpYmxlOiByID0+IHIud2FzQ2hhbmdlZCgpLFxyXG4gICAgICAgIHNob3dJbkxpbmU6IHRydWUsXHJcbiAgICAgICAgdGV4dEluTWVudTogKCkgPT4gdGhpcy5yaWdodFRvTGVmdCA/ICfXkdeY15wg16nXmdeg15XXmdedJyA6ICdjYW5jZWwnLFxyXG5cclxuICAgICAgICBjbGljazogciA9PiB7XHJcbiAgICAgICAgICByLnVuZG9DaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcblxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MuYWxsb3dEZWxldGUpXHJcbiAgICAgIHRoaXMuYWRkQnV0dG9uKHtcclxuICAgICAgICBuYW1lOiAnJyxcclxuICAgICAgICB2aXNpYmxlOiAocikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHIgJiYgIXIuaXNOZXcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLCBpY29uOiAnZGVsZXRlJyxcclxuICAgICAgICBzaG93SW5MaW5lOiB0cnVlLFxyXG4gICAgICAgIHRleHRJbk1lbnU6ICgpID0+IHRoaXMucmlnaHRUb0xlZnQgPyAn157Xl9enJyA6ICdkZWxldGUnLFxyXG4gICAgICAgIGNsaWNrOiBhc3luYyByID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLnNldHRpbmdzLmNvbmZpcm1EZWxldGUpIHtcclxuXHJcbiAgICAgICAgICAgIGlmICghYXdhaXQgdGhpcy5zZXR0aW5ncy5zZXR0aW5ncy5jb25maXJtRGVsZXRlKHIpKVxyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHIuZGVsZXRlKCk7XHJcblxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIGNzc0NsYXNzOiBcImJ0bi1kYW5nZXIgZ2x5cGhpY29uIGdseXBoaWNvbi10cmFzaFwiXHJcbiAgICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MuX2J1dHRvbnMpXHJcbiAgICAgIGZvciAobGV0IGIgb2YgdGhpcy5zZXR0aW5ncy5fYnV0dG9ucykge1xyXG4gICAgICAgIHRoaXMuYWRkQnV0dG9uKGIpO1xyXG4gICAgICB9XHJcbiAgICBpZiAoIXRoaXMucmVjb3JkcyAmJiB0aGlzLnNldHRpbmdzKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MuZ2V0UmVjb3JkcygpLnRoZW4oKHI6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVjb3JkcyA9IHI7XHJcblxyXG4gICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgX2dldFJvd0NsYXNzKHJvdzogYW55KSB7XHJcbiAgICBsZXQgciA9ICdkYXRhR3JpZFJvdyAnO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3Mucm93Q2xhc3MpXHJcbiAgICAgIHIgKz0gdGhpcy5zZXR0aW5ncy5yb3dDbGFzcyhyb3cpO1xyXG4gICAgaWYgKHJvdyA9PSB0aGlzLnNldHRpbmdzLmN1cnJlbnRSb3cpXHJcbiAgICAgIHIgKz0gXCIgYWN0aXZlXCI7XHJcblxyXG4gICAgcmV0dXJuIHI7XHJcbiAgfVxyXG4gIF9nZXRSb3dDb2x1bW5DbGFzcyhjb2w6IGFueSwgcm93OiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmNvbHVtbnMuX2dldENvbHVtbkNsYXNzKGNvbCwgcm93KSArICcgZGF0YUdyaWREYXRhQ2VsbCc7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkMi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcmVtdWx0L2FuZ3VsYXIvIiwic291cmNlcyI6WyJzcmMvYW5ndWxhci9kYXRlLWdyaWQtMi9kYXRhLWdyaWQyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUFFLFNBQVMsRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFFbEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQVUsT0FBTyxFQUEyQyxZQUFZLEVBQWEsTUFBTSxjQUFjLENBQUM7QUFDakgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDOUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25EO0lBVUUsNEJBQW9CLE9BQWdCLEVBQUUsR0FBbUI7UUFBckMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQTJCcEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFtQ1gsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQTRDM0IsZUFBVSxHQUFxQixFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBaUIsRUFBRSxDQUFDO1FBQy9CLFNBQUksR0FBYSxFQUFFLENBQUM7UUFxQnBCLFNBQUksR0FBRyxDQUFDLENBQUM7UUFqSVAsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQztJQUN6QyxDQUFDOzs7OztJQUVLLG1DQUFNOzs7O0lBQVosVUFBYSxDQUFzQjs7Ozs7NEJBQ2pDLHFCQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLDBCQUEwQjs7Ozt3QkFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMs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QUVELHlDQUFZOzs7O0lBQVosVUFBYSxHQUFROztZQUNmLENBQUMsR0FBRyxjQUFjO1FBQ3RCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1lBQ3hCLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVU7WUFDakMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUVqQixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7Ozs7OztJQUNELCtDQUFrQjs7Ozs7SUFBbEIsVUFBbUIsR0FBUSxFQUFFLEdBQVE7UUFDbkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLG1CQUFtQixDQUFDO0lBQy9FLENBQUM7O2dCQW5RRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLHErUUFBMEM7O2lCQUUzQzs7OztnQkFQZ0IsT0FBTztnQkFFZixjQUFjOzs7d0JBZ0VwQixLQUFLO3lCQUNMLEtBQUs7aUNBUUwsS0FBSzs2QkFDTCxLQUFLOzBCQUVMLEtBQUs7MkJBQ0wsS0FBSztpQ0FLTCxTQUFTLFNBQUMsdUJBQXVCOztJQXFMcEMseUJBQUM7Q0FBQSxBQXRRRCxJQXNRQztTQTdQWSxrQkFBa0I7OztJQTRCN0IseUNBQW9COztJQVNwQiw0Q0FBc0M7O0lBaUJ0QyxtQ0FBdUI7O0lBQ3ZCLG9DQUF3Qjs7SUFReEIsNENBQStCOztJQUMvQix3Q0FBMkI7O0lBRTNCLHFDQUFzQjs7SUFDdEIsc0NBQXFDOztJQUtyQyw0Q0FBNEU7O0lBb0M1RSx3Q0FBa0M7O0lBQ2xDLHlDQUErQjs7SUFDL0Isa0NBQW9COztJQXFCcEIsa0NBQVM7Ozs7O0lBbElHLHFDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uQ2hhbmdlcywgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJ3V0aWwnO1xyXG5pbXBvcnQgeyBEYXRhRmlsdGVySW5mb0NvbXBvbmVudCB9IGZyb20gJy4uL2RhdGEtZmlsdGVyLWluZm8vZGF0YS1maWx0ZXItaW5mby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2x1bW4sIENvbnRleHQsIERhdGFDb250cm9sU2V0dGluZ3MsIEVudGl0eSwgR3JpZEJ1dHRvbiwgR3JpZFNldHRpbmdzLCBSb3dCdXR0b24gfSBmcm9tICdAcmVtdWx0L2NvcmUnO1xyXG5pbXBvcnQgeyBTZWxlY3RWYWx1ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1maWx0ZXItZGlhbG9nL2FkZC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RhdGEtZ3JpZCcsXHJcbiAgdGVtcGxhdGVVcmw6IGAuL2RhdGEtZ3JpZDIuY29tcG9uZW50Lmh0bWxgLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGEtZ3JpZDIuY29tcG9uZW50LnNjc3MnXVxyXG59XHJcbilcclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFHcmlkMkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250ZXh0OiBDb250ZXh0LCBkaXI6IERpcmVjdGlvbmFsaXR5KSB7XHJcbiAgICB0aGlzLnJpZ2h0VG9MZWZ0ID0gZGlyLnZhbHVlID09PSAncnRsJztcclxuICB9XHJcblxyXG4gIGFzeW5jIGFkZENvbChjOiBEYXRhQ29udHJvbFNldHRpbmdzKSB7XHJcbiAgICBhd2FpdCB0aGlzLmNvbnRleHQub3BlbkRpYWxvZyhTZWxlY3RWYWx1ZURpYWxvZ0NvbXBvbmVudCwgeCA9PiB4LmFyZ3Moe1xyXG4gICAgICB2YWx1ZXM6IHRoaXMuc2V0dGluZ3Mub3JpZ0xpc3QsXHJcbiAgICAgIG9uU2VsZWN0OiBjb2wgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5hZGRDb2woYywgY29sKTtcclxuICAgICAgICB0aGlzLnNldHRpbmdzLmNvbHVtbnMubnVtT2ZDb2x1bW5zSW5HcmlkKys7XHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuXHJcbiAgfVxyXG4gIGdldENvbEZsZXgobWFwOiBEYXRhQ29udHJvbFNldHRpbmdzKSB7XHJcbiAgICByZXR1cm4gJzAgMCAnICsgdGhpcy5nZXRDb2xXaWR0aChtYXApO1xyXG4gIH1cclxuICBnZXRDb2xXaWR0aChtYXA6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIGxldCB4ID0gdGhpcy5zZXR0aW5ncy5jb2x1bW5zLl9fZGF0YUNvbnRyb2xTdHlsZShtYXApO1xyXG4gICAgaWYgKCF4KVxyXG4gICAgICB4ID0gJzIwMHB4JztcclxuICAgIHJldHVybiB4O1xyXG4gIH1cclxuXHJcbiAgdGVzdCgpIHtcclxuICAgIC8vdGhpcy5kYXRhR3JpZERpdi5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IDA7XHJcbiAgfVxyXG4gIHJpZ2h0VG9MZWZ0ID0gZmFsc2U7XHJcblxyXG4gIGdldFRvdGFsUm93cygpIHtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLnRvdGFsUm93cylcclxuICAgICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLnNldHRpbmdzLnRvdGFsUm93cyAvIHRoaXMuc2V0dGluZ3Mucm93c1BlclBhZ2UpO1xyXG4gICAgaWYgKHRoaXMucmlnaHRUb0xlZnQpXHJcbiAgICAgIHJldHVybiAn16jXkdeZ150nO1xyXG4gICAgcmV0dXJuICdtYW55JztcclxuICB9XHJcbiAgdGVtcERyYWdDb2x1bW46IChEYXRhQ29udHJvbFNldHRpbmdzKTtcclxuICBkcmFnU3RhcnQoeDogRGF0YUNvbnRyb2xTZXR0aW5ncykge1xyXG4gICAgdGhpcy50ZW1wRHJhZ0NvbHVtbiA9IHg7XHJcblxyXG4gIH1cclxuICBkcmFnT3Zlcih4OiBDb2x1bW4sIGV2ZW50OiBhbnkpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG4gIG9uRHJvcCh4OiBEYXRhQ29udHJvbFNldHRpbmdzKSB7XHJcbiAgICBsZXQgb2xkUG9zaXRpb24gPSB0aGlzLnNldHRpbmdzLmNvbHVtbnMuaXRlbXMuaW5kZXhPZih0aGlzLnRlbXBEcmFnQ29sdW1uKTtcclxuICAgIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5pdGVtcy5zcGxpY2Uob2xkUG9zaXRpb24sIDEpO1xyXG4gICAgbGV0IG5ld1Bvc2l0aW9uID0gdGhpcy5zZXR0aW5ncy5jb2x1bW5zLml0ZW1zLmluZGV4T2YoeCk7XHJcbiAgICBpZiAobmV3UG9zaXRpb24gPT0gb2xkUG9zaXRpb24pXHJcbiAgICAgIG5ld1Bvc2l0aW9uKys7XHJcbiAgICB0aGlzLnNldHRpbmdzLmNvbHVtbnMuaXRlbXMuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCB0aGlzLnRlbXBEcmFnQ29sdW1uKTtcclxuICAgIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5jb2xMaXN0Q2hhbmdlZCgpO1xyXG4gIH1cclxuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nO1xyXG4gIF9nZXRIZWlnaHQoKSB7XHJcbiAgICBpZiAodGhpcy5oZWlnaHQpIHtcclxuICAgICAgaWYgKCgrdGhpcy5oZWlnaHQpLnRvU3RyaW5nKCkgPT0gdGhpcy5oZWlnaHQpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaGVpZ2h0ICsgXCJweFwiO1xyXG4gICAgICByZXR1cm4gdGhpcy5oZWlnaHQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGRpc3BsYXlCdXR0b25zID0gdHJ1ZTtcclxuICBASW5wdXQoKSBkaXNwbGF5VkNSID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgcmVjb3JkczogYW55O1xyXG4gIEBJbnB1dCgpIHNldHRpbmdzOiBHcmlkU2V0dGluZ3M8YW55PjtcclxuICBpc0ZpbHRlcmVkKGM6IENvbHVtbikge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuY29sdW1ucy5maWx0ZXJIZWxwZXIuaXNGaWx0ZXJlZChjKTtcclxuICB9XHJcbiAgLy9AdHMtaWdub3JlXHJcbiAgQFZpZXdDaGlsZChEYXRhRmlsdGVySW5mb0NvbXBvbmVudCkgZGF0YUZpbHRlckluZm86IERhdGFGaWx0ZXJJbmZvQ29tcG9uZW50O1xyXG4gIHNob3dGaWx0ZXJDb2x1bW5EaWFsb2coZGF0YUNvbnRyb2xTZXR0aW5nczogRGF0YUNvbnRyb2xTZXR0aW5ncykge1xyXG4gICAgdGhpcy5zZXR0aW5ncy5pbml0T3JpZ0xpc3QoKTtcclxuICAgIHRoaXMuZGF0YUZpbHRlckluZm8uZWRpdEZpbHRlcihkYXRhQ29udHJvbFNldHRpbmdzLmNvbHVtbik7XHJcbiAgfVxyXG5cclxuICBnZXRCdXR0b25Dc3NDbGFzcyhiOiBSb3dCdXR0b248YW55Piwgcm93OiBhbnkpIHtcclxuICAgIGlmICghYi5jc3NDbGFzcylcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICBpZiAoaXNGdW5jdGlvbihiLmNzc0NsYXNzKSlcclxuICAgICAgcmV0dXJuICg8KChyb3c6IGFueSkgPT4gc3RyaW5nKT5iLmNzc0NsYXNzKShyb3cpO1xyXG4gICAgcmV0dXJuIGIuY3NzQ2xhc3MudG9TdHJpbmcoKTtcclxuXHJcbiAgfVxyXG4gIGdldEJ1dHRvblRleHQoYjogUm93QnV0dG9uPGFueT4sIHJvdzogYW55KSB7XHJcbiAgICBpZiAoIWIudGV4dEluTWVudSlcclxuICAgICAgcmV0dXJuIGIubmFtZTtcclxuICAgIGlmIChpc0Z1bmN0aW9uKGIudGV4dEluTWVudSkpIHtcclxuICAgICAgaWYgKCFyb3cpXHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgcmV0dXJuIGIudGV4dEluTWVudShyb3cpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIDxzdHJpbmc+Yi50ZXh0SW5NZW51O1xyXG5cclxuXHJcbiAgfVxyXG4gIGNsaWNrT25zZWxlY3RDaGVja2JveEZvcihyb3c6IGFueSwgZTogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5zZXR0aW5ncy5jbGlja09uc2VsZWN0Q2hlY2tib3hGb3Iocm93LCBlLnNoaWZ0S2V5KTtcclxuICB9XHJcbiAgaGFzVmlzaWJsZUJ1dHRvbihyZWNvcmQpIHtcclxuICAgIHJldHVybiB0aGlzLnJvd0J1dHRvbnMuZmluZChiID0+IGIudmlzaWJsZShyZWNvcmQpKTtcclxuICB9XHJcbiAgaGFzVmlzaWJsZUdyaWRCdXR0b25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ3JpZEJ1dHRvbnMuZmluZChiID0+IGIudmlzaWJsZSgpKTtcclxuICB9XHJcbiAgcm93QnV0dG9uczogUm93QnV0dG9uPGFueT5bXSA9IFtdO1xyXG4gIGdyaWRCdXR0b25zOiBHcmlkQnV0dG9uW10gPSBbXTtcclxuICBrZXlzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHByaXZhdGUgYWRkQnV0dG9uKGI6IFJvd0J1dHRvbjxFbnRpdHk+KSB7XHJcbiAgICBpZiAoIWIuY2xpY2spXHJcbiAgICAgIGIuY2xpY2sgPSAocikgPT4geyB9O1xyXG4gICAgaWYgKCFiLnZpc2libGUpXHJcbiAgICAgIGIudmlzaWJsZSA9IHIgPT4gdHJ1ZTtcclxuICAgIGlmICghYi5jc3NDbGFzcylcclxuICAgICAgYi5jc3NDbGFzcyA9IHIgPT4gXCJidG5cIjtcclxuICAgIGVsc2UgaWYgKCFpc0Z1bmN0aW9uKGIuY3NzQ2xhc3MpKSB7XHJcbiAgICAgIGxldCB4ID0gYi5jc3NDbGFzcztcclxuICAgICAgYi5jc3NDbGFzcyA9IDxhbnk+KChyOiBhbnkpID0+IHgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucm93QnV0dG9ucy5wdXNoKGIpO1xyXG4gICAgcmV0dXJuIGI7XHJcblxyXG4gIH1cclxuICByb3dDbGlja2VkKHJvdzogYW55KSB7XHJcbiAgICB0aGlzLnNldHRpbmdzLnNldEN1cnJlbnRSb3cocm93KTtcclxuICB9XHJcblxyXG4gIHBhZ2UgPSAxO1xyXG4gIG5leHRQYWdlKCkge1xyXG4gICAgdGhpcy5wYWdlKys7XHJcbiAgfVxyXG4gIHByZXZpb3VzUGFnZSgpIHtcclxuICAgIGlmICh0aGlzLnBhZ2UgPD0gMSlcclxuICAgICAgcmV0dXJuO1xyXG4gICAgdGhpcy5wYWdlLS07XHJcbiAgfVxyXG5cclxuXHJcbiAgc2hvd1NhdmVBbGxCdXR0b24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5pdGVtcy5maW5kKHggPT4geC53YXNDaGFuZ2VkKCkpXHJcbiAgfVxyXG4gIHNhdmVBbGxUZXh0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucmlnaHRUb0xlZnQgPyAoJ9ep157XldeoICcgKyB0aGlzLnNldHRpbmdzLml0ZW1zLmZpbHRlcih4ID0+IHgud2FzQ2hhbmdlZCgpKS5sZW5ndGggKyAnINep15XXqNeV16onKSA6XHJcbiAgICAgICgnc2F2ZSAnICsgdGhpcy5zZXR0aW5ncy5pdGVtcy5maWx0ZXIoeCA9PiB4Lndhc0NoYW5nZWQoKSkubGVuZ3RoICsgJyByb3dzJyk7XHJcbiAgfVxyXG4gIGFzeW5jIHNhdmVBbGxDbGljaygpIHtcclxuICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMuc2V0dGluZ3MuaXRlbXMuZmlsdGVyKHggPT4geC53YXNDaGFuZ2VkKCkpLm1hcCh4ID0+IHguc2F2ZSgpKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoIXRoaXMuc2V0dGluZ3MpXHJcbiAgICAgIHJldHVybjtcclxuXHJcblxyXG4gICAgdGhpcy5yb3dCdXR0b25zID0gW107XHJcbiAgICB0aGlzLmdyaWRCdXR0b25zID0gW107XHJcbiAgICB0aGlzLmdyaWRCdXR0b25zLnB1c2goe1xyXG4gICAgICB2aXNpYmxlOiAoKSA9PiB0aGlzLnNob3dTYXZlQWxsQnV0dG9uKCksXHJcbiAgICAgIHRleHRJbk1lbnU6ICgpID0+IHRoaXMuc2F2ZUFsbFRleHQoKSxcclxuICAgICAgY2xpY2s6IGFzeW5jICgpID0+IHtcclxuICAgICAgICBhd2FpdCB0aGlzLnNhdmVBbGxDbGljaygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLnNldHRpbmdzLmdyaWRCdXR0b25zKSB7XHJcbiAgICAgIHRoaXMuZ3JpZEJ1dHRvbnMucHVzaCguLi50aGlzLnNldHRpbmdzLnNldHRpbmdzLmdyaWRCdXR0b25zLm1hcCh4ID0+IHtcclxuICAgICAgICBpZiAoIXgudmlzaWJsZSlcclxuICAgICAgICAgIHgudmlzaWJsZSA9ICgpID0+IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHg7XHJcbiAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5hbGxvd1VwZGF0ZSkge1xyXG4gICAgICB0aGlzLmFkZEJ1dHRvbih7XHJcbiAgICAgICAgbmFtZTogXCJcIixcclxuICAgICAgICBpY29uOiAnY2hlY2snLFxyXG4gICAgICAgIGNzc0NsYXNzOiBcImdseXBoaWNvbiBnbHlwaGljb24tb2sgYnRuLXN1Y2Nlc3NcIixcclxuICAgICAgICB2aXNpYmxlOiByID0+IHIud2FzQ2hhbmdlZCgpLFxyXG4gICAgICAgIHNob3dJbkxpbmU6IHRydWUsXHJcbiAgICAgICAgdGV4dEluTWVudTogKCkgPT4gdGhpcy5yaWdodFRvTGVmdCA/ICfXqdee15XXqCcgOiAnc2F2ZScsXHJcbiAgICAgICAgY2xpY2s6IHIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXR0aW5ncy5fZG9TYXZpbmdSb3cocik7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmFkZEJ1dHRvbih7XHJcbiAgICAgICAgbmFtZTogXCJcIixcclxuICAgICAgICBpY29uOiAnY2FuY2VsJyxcclxuICAgICAgICBjc3NDbGFzczogXCJidG4gYnRuLWRhbmdlciBnbHlwaGljb24gZ2x5cGhpY29uLWJhbi1jaXJjbGVcIixcclxuICAgICAgICB2aXNpYmxlOiByID0+IHIud2FzQ2hhbmdlZCgpLFxyXG4gICAgICAgIHNob3dJbkxpbmU6IHRydWUsXHJcbiAgICAgICAgdGV4dEluTWVudTogKCkgPT4gdGhpcy5yaWdodFRvTGVmdCA/ICfXkdeY15wg16nXmdeg15XXmdedJyA6ICdjYW5jZWwnLFxyXG5cclxuICAgICAgICBjbGljazogciA9PiB7XHJcbiAgICAgICAgICByLnVuZG9DaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcblxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MuYWxsb3dEZWxldGUpXHJcbiAgICAgIHRoaXMuYWRkQnV0dG9uKHtcclxuICAgICAgICBuYW1lOiAnJyxcclxuICAgICAgICB2aXNpYmxlOiAocikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHIgJiYgIXIuaXNOZXcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLCBpY29uOiAnZGVsZXRlJyxcclxuICAgICAgICBzaG93SW5MaW5lOiB0cnVlLFxyXG4gICAgICAgIHRleHRJbk1lbnU6ICgpID0+IHRoaXMucmlnaHRUb0xlZnQgPyAn157Xl9enJyA6ICdkZWxldGUnLFxyXG4gICAgICAgIGNsaWNrOiBhc3luYyByID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLnNldHRpbmdzLmNvbmZpcm1EZWxldGUpIHtcclxuXHJcbiAgICAgICAgICAgIGlmICghYXdhaXQgdGhpcy5zZXR0aW5ncy5zZXR0aW5ncy5jb25maXJtRGVsZXRlKHIpKVxyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHIuZGVsZXRlKCk7XHJcblxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIGNzc0NsYXNzOiBcImJ0bi1kYW5nZXIgZ2x5cGhpY29uIGdseXBoaWNvbi10cmFzaFwiXHJcbiAgICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MuX2J1dHRvbnMpXHJcbiAgICAgIGZvciAobGV0IGIgb2YgdGhpcy5zZXR0aW5ncy5fYnV0dG9ucykge1xyXG4gICAgICAgIHRoaXMuYWRkQnV0dG9uKGIpO1xyXG4gICAgICB9XHJcbiAgICBpZiAoIXRoaXMucmVjb3JkcyAmJiB0aGlzLnNldHRpbmdzKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MuZ2V0UmVjb3JkcygpLnRoZW4oKHI6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVjb3JkcyA9IHI7XHJcblxyXG4gICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgX2dldFJvd0NsYXNzKHJvdzogYW55KSB7XHJcbiAgICBsZXQgciA9ICdkYXRhR3JpZFJvdyAnO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3Mucm93Q2xhc3MpXHJcbiAgICAgIHIgKz0gdGhpcy5zZXR0aW5ncy5yb3dDbGFzcyhyb3cpO1xyXG4gICAgaWYgKHJvdyA9PSB0aGlzLnNldHRpbmdzLmN1cnJlbnRSb3cpXHJcbiAgICAgIHIgKz0gXCIgYWN0aXZlXCI7XHJcblxyXG4gICAgcmV0dXJuIHI7XHJcbiAgfVxyXG4gIF9nZXRSb3dDb2x1bW5DbGFzcyhjb2w6IGFueSwgcm93OiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmNvbHVtbnMuX2dldENvbHVtbkNsYXNzKGNvbCwgcm93KSArICcgZGF0YUdyaWREYXRhQ2VsbCc7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19 |
@@ -34,2 +34,3 @@ /** | ||
import { AuthorizationInterceptor, JwtSessionManager } from '../jwt-session-manager'; | ||
import { BidiModule } from '@angular/cdk/bidi'; | ||
var RemultModule = /** @class */ (function () { | ||
@@ -46,3 +47,3 @@ function RemultModule() { | ||
MatTooltipModule, | ||
MatInputModule, MatIconModule, ReactiveFormsModule, MatCheckboxModule, MatMenuModule], | ||
MatInputModule, MatIconModule, ReactiveFormsModule, MatCheckboxModule, MatMenuModule, BidiModule], | ||
providers: [{ | ||
@@ -138,2 +139,2 @@ provide: Context, | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtdWx0LWNvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJlbXVsdC9hbmd1bGFyLyIsInNvdXJjZXMiOlsic3JjL2FuZ3VsYXIvcmVtdWx0LWNvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUcsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFtQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFB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ZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFDb250cm9sMkNvbXBvbmVudCB9IGZyb20gJy4vZGF0YS1jb250cm9sL2RhdGEtY29udHJvbDIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0YUNvbnRyb2wzQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLWNvbnRyb2wvZGF0YS1jb250cm9sMy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IERhdGFGaWx0ZXJJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLWZpbHRlci1pbmZvL2RhdGEtZmlsdGVyLWluZm8uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0YUdyaWQyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLWdyaWQtMi9kYXRhLWdyaWQyLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBhY3Rpb25JbmZvLCBDb250ZXh0LCBSZXN0RGF0YVByb3ZpZGVyLCBBY3Rpb24gfSBmcm9tICdAcmVtdWx0L2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTm90U2lnbmVkSW5HdWFyZCwgU2lnbmVkSW5HdWFyZCwgUm91dGVIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi9uYXZpZ2F0ZS10by1jb21wb25lbnQtcm91dGUtc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBDbGllbnRNb2R1bGUsIEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgQnVzeVNlcnZpY2UsIExvYWRlckludGVyY2VwdG9yIH0gZnJvbSAnLi93YWl0L2J1c3ktc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnLCBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFdhaXRDb21wb25lbnQgfSBmcm9tICcuL3dhaXQvd2FpdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcblxyXG5pbXBvcnQgeyBEYXRhQXJlYTJDb21wbmVudCB9IGZyb20gJy4vZGF0YS1hcmVhL2RhdGFBcmVhMic7XHJcbmltcG9ydCB7IFNlbGVjdFZhbHVlRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtZmlsdGVyLWRpYWxvZy9hZGQtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IEZpbHRlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVyLWRpYWxvZy9maWx0ZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5cclxuXHJcbmltcG9ydCB7IEFuZ3VsYXJIdHRwUHJvdmlkZXIgfSBmcm9tICcuL0FuZ3VsYXJIdHRwUHJvdmlkZXInO1xyXG5pbXBvcnQgeyBBdXRob3JpemF0aW9uSW50ZXJjZXB0b3IsIEp3dFNlc3Npb25NYW5hZ2VyIH0gZnJvbSAnLi4vand0LXNlc3Npb24tbWFuYWdlcic7XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtEYXRhQ29udHJvbDJDb21wb25lbnQsIERhdGFBcmVhMkNvbXBuZW50LCBEYXRhRmlsdGVySW5mb0NvbXBvbmVudCwgRGF0YUdyaWQyQ29tcG9uZW50LCBXYWl0Q29tcG9uZW50LCBEYXRhQ29udHJvbDNDb21wb25lbnQsIFNlbGVjdFZhbHVlRGlhbG9nQ29tcG9uZW50LCBGaWx0ZXJEaWFsb2dDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgQ29tbW9uTW9kdWxlLCBIdHRwQ2xpZW50TW9kdWxlLCBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsIE1hdERpYWxvZ01vZHVsZSwgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRMaXN0TW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLCBNYXRJY29uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNYXRDaGVja2JveE1vZHVsZSwgTWF0TWVudU1vZHVsZV0sXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogQ29udGV4dCxcclxuICAgIHVzZUZhY3Rvcnk6IGJ1aWxkQ29udGV4dCxcclxuICAgIGRlcHM6IFtIdHRwQ2xpZW50LCBNYXREaWFsb2ddXHJcbiAgfSwgSnd0U2Vzc2lvbk1hbmFnZXIsIE5vdFNpZ25lZEluR3VhcmQsIFNpZ25lZEluR3VhcmQsIFJvdXRlSGVscGVyU2VydmljZSxcclxuICAgIEJ1c3lTZXJ2aWNlLFxyXG5cclxuICB7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogTG9hZGVySW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlIH0sXHJcbiAgeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IEF1dGhvcml6YXRpb25JbnRlcmNlcHRvciwgbXVsdGk6IHRydWUgfV1cclxuICAsXHJcbiAgZXhwb3J0czogW0RhdGFDb250cm9sMkNvbXBvbmVudCwgRGF0YUZpbHRlckluZm9Db21wb25lbnQsIERhdGFHcmlkMkNvbXBvbmVudCwgRGF0YUFyZWEyQ29tcG5lbnQsIFNlbGVjdFZhbHVlRGlhbG9nQ29tcG9uZW50XSxcclxuICBlbnRyeUNvbXBvbmVudHM6IFtXYWl0Q29tcG9uZW50LCBTZWxlY3RWYWx1ZURpYWxvZ0NvbXBvbmVudCwgRmlsdGVyRGlhbG9nQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVtdWx0TW9kdWxlIHsgfVxyXG5leHBvcnQgZnVuY3Rpb24gRGlhbG9nQ29uZmlnKGNvbmZpZzogTWF0RGlhbG9nQ29uZmlnKSB7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHtcclxuICAgIHRhcmdldFtkaWFsb2dDb25maWdNZW1iZXJdID0gY29uZmlnO1xyXG4gICAgcmV0dXJuIHRhcmdldDtcclxuICB9O1xyXG59XHJcbmNvbnN0IGRpYWxvZ0NvbmZpZ01lbWJlciA9IFN5bWJvbChcImRpYWxvZ0NvbmZpZ01lbWJlclwiKTtcclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQ29udGV4dChodHRwOiBIdHRwQ2xpZW50LCBfZGlhbG9nOiBNYXREaWFsb2cpIHtcclxuICBsZXQgciA9IG5ldyBDb250ZXh0KCk7XHJcblxyXG4gIHIub3BlbkRpYWxvZyA9IGFzeW5jIChjb21wb25lbnQsIHNldFBhcmFtZXRlcnMsIHJldHVybkFWYWx1ZSkgPT4ge1xyXG4gICAgbGV0IHJlZiA9IF9kaWFsb2cub3Blbihjb21wb25lbnQsIGNvbXBvbmVudFtkaWFsb2dDb25maWdNZW1iZXJdKTtcclxuICAgIGlmIChzZXRQYXJhbWV0ZXJzKVxyXG4gICAgICBzZXRQYXJhbWV0ZXJzKHJlZi5jb21wb25lbnRJbnN0YW5jZSk7XHJcbiAgICB2YXIgcjtcclxuICAgIGlmIChyZWYuYmVmb3JlQ2xvc2VkKVxyXG4gICAgICByID0gYXdhaXQgcmVmLmJlZm9yZUNsb3NlZCgpLnRvUHJvbWlzZSgpO1xyXG4gICAgZWxzZVxyXG4gICAgICByID0gYXdhaXQgcmVmLmJlZm9yZUNsb3NlKCkudG9Qcm9taXNlKCk7XHJcblxyXG5cclxuICAgIGlmIChyZXR1cm5BVmFsdWUpXHJcbiAgICAgIHJldHVybiByZXR1cm5BVmFsdWUocmVmLmNvbXBvbmVudEluc3RhbmNlKTtcclxuICAgIHJldHVybiByO1xyXG4gIH1cclxuICBsZXQgcHJvdiA9IG5ldyBBbmd1bGFySHR0cFByb3ZpZGVyKGh0dHApO1xyXG4gIEFjdGlvbi5wcm92aWRlciA9IHByb3Y7XHJcbiAgYWN0aW9uSW5mby5ydW5BY3Rpb25XaXRob3V0QmxvY2tpbmdVSSA9IGFzeW5jIHggPT4gYXdhaXQgQnVzeVNlcnZpY2Uuc2luZ2xlSW5zdGFuY2UuZG9ub3RXYWl0KHgpO1xyXG4gIGFjdGlvbkluZm8uc3RhcnRCdXN5V2l0aFByb2dyZXNzID0gKCk9PkJ1c3lTZXJ2aWNlLnNpbmdsZUluc3RhbmNlLnN0YXJ0QnVzeVdpdGhQcm9ncmVzcygpXHJcbiAgci5zZXREYXRhUHJvdmlkZXIobmV3IFJlc3REYXRhUHJvdmlkZXIoQ29udGV4dC5hcGlCYXNlVXJsLCBwcm92KSk7XHJcbiAgcmV0dXJuIHI7XHJcbn0iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtdWx0LWNvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJlbXVsdC9hbmd1bGFyLyIsInNvdXJjZXMiOlsic3JjL2FuZ3VsYXIvcmVtdWx0LWNvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUcsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFtQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFB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Q0FBQyxDQUFDLENBQUM7SUFDbEUsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YUNvbnRyb2wyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLWNvbnRyb2wvZGF0YS1jb250cm9sMi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhQ29udHJvbDNDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtY29udHJvbC9kYXRhLWNvbnRyb2wzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgRGF0YUZpbHRlckluZm9Db21wb25lbnQgfSBmcm9tICcuL2RhdGEtZmlsdGVyLWluZm8vZGF0YS1maWx0ZXItaW5mby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhR3JpZDJDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtZ3JpZC0yL2RhdGEtZ3JpZDIuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IGFjdGlvbkluZm8sIENvbnRleHQsIFJlc3REYXRhUHJvdmlkZXIsIEFjdGlvbiB9IGZyb20gJ0ByZW11bHQvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBOb3RTaWduZWRJbkd1YXJkLCBTaWduZWRJbkd1YXJkLCBSb3V0ZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuL25hdmlnYXRlLXRvLWNvbXBvbmVudC1yb3V0ZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cENsaWVudE1vZHVsZSwgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBCdXN5U2VydmljZSwgTG9hZGVySW50ZXJjZXB0b3IgfSBmcm9tICcuL3dhaXQvYnVzeS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcsIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgV2FpdENvbXBvbmVudCB9IGZyb20gJy4vd2FpdC93YWl0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuXHJcbmltcG9ydCB7IERhdGFBcmVhMkNvbXBuZW50IH0gZnJvbSAnLi9kYXRhLWFyZWEvZGF0YUFyZWEyJztcclxuaW1wb3J0IHsgU2VsZWN0VmFsdWVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2FkZC1maWx0ZXItZGlhbG9nL2FkZC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgRmlsdGVyRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXItZGlhbG9nL2ZpbHRlci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcblxyXG5cclxuaW1wb3J0IHsgQW5ndWxhckh0dHBQcm92aWRlciB9IGZyb20gJy4vQW5ndWxhckh0dHBQcm92aWRlcic7XHJcbmltcG9ydCB7IEF1dGhvcml6YXRpb25JbnRlcmNlcHRvciwgSnd0U2Vzc2lvbk1hbmFnZXIgfSBmcm9tICcuLi9qd3Qtc2Vzc2lvbi1tYW5hZ2VyJztcclxuaW1wb3J0IHsgQmlkaU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0RhdGFDb250cm9sMkNvbXBvbmVudCwgRGF0YUFyZWEyQ29tcG5lbnQsIERhdGFGaWx0ZXJJbmZvQ29tcG9uZW50LCBEYXRhR3JpZDJDb21wb25lbnQsIFdhaXRDb21wb25lbnQsIERhdGFDb250cm9sM0NvbXBvbmVudCwgU2VsZWN0VmFsdWVEaWFsb2dDb21wb25lbnQsIEZpbHRlckRpYWxvZ0NvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBDb21tb25Nb2R1bGUsIEh0dHBDbGllbnRNb2R1bGUsIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSwgTWF0RGlhbG9nTW9kdWxlLCBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdExpc3RNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsIE1hdEljb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdENoZWNrYm94TW9kdWxlLCBNYXRNZW51TW9kdWxlLCBCaWRpTW9kdWxlXSxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBDb250ZXh0LFxyXG4gICAgdXNlRmFjdG9yeTogYnVpbGRDb250ZXh0LFxyXG4gICAgZGVwczogW0h0dHBDbGllbnQsIE1hdERpYWxvZ11cclxuICB9LCBKd3RTZXNzaW9uTWFuYWdlciwgTm90U2lnbmVkSW5HdWFyZCwgU2lnbmVkSW5HdWFyZCwgUm91dGVIZWxwZXJTZXJ2aWNlLFxyXG4gICAgQnVzeVNlcnZpY2UsXHJcblxyXG4gIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBMb2FkZXJJbnRlcmNlcHRvciwgbXVsdGk6IHRydWUgfSxcclxuICB7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogQXV0aG9yaXphdGlvbkludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZSB9XVxyXG4gICxcclxuICBleHBvcnRzOiBbRGF0YUNvbnRyb2wyQ29tcG9uZW50LCBEYXRhRmlsdGVySW5mb0NvbXBvbmVudCwgRGF0YUdyaWQyQ29tcG9uZW50LCBEYXRhQXJlYTJDb21wbmVudCwgU2VsZWN0VmFsdWVEaWFsb2dDb21wb25lbnRdLFxyXG4gIGVudHJ5Q29tcG9uZW50czogW1dhaXRDb21wb25lbnQsIFNlbGVjdFZhbHVlRGlhbG9nQ29tcG9uZW50LCBGaWx0ZXJEaWFsb2dDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZW11bHRNb2R1bGUgeyB9XHJcbmV4cG9ydCBmdW5jdGlvbiBEaWFsb2dDb25maWcoY29uZmlnOiBNYXREaWFsb2dDb25maWcpIHtcclxuICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCkge1xyXG4gICAgdGFyZ2V0W2RpYWxvZ0NvbmZpZ01lbWJlcl0gPSBjb25maWc7XHJcbiAgICByZXR1cm4gdGFyZ2V0O1xyXG4gIH07XHJcbn1cclxuY29uc3QgZGlhbG9nQ29uZmlnTWVtYmVyID0gU3ltYm9sKFwiZGlhbG9nQ29uZmlnTWVtYmVyXCIpO1xyXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRDb250ZXh0KGh0dHA6IEh0dHBDbGllbnQsIF9kaWFsb2c6IE1hdERpYWxvZykge1xyXG4gIGxldCByID0gbmV3IENvbnRleHQoKTtcclxuXHJcbiAgci5vcGVuRGlhbG9nID0gYXN5bmMgKGNvbXBvbmVudCwgc2V0UGFyYW1ldGVycywgcmV0dXJuQVZhbHVlKSA9PiB7XHJcbiAgICBsZXQgcmVmID0gX2RpYWxvZy5vcGVuKGNvbXBvbmVudCwgY29tcG9uZW50W2RpYWxvZ0NvbmZpZ01lbWJlcl0pO1xyXG4gICAgaWYgKHNldFBhcmFtZXRlcnMpXHJcbiAgICAgIHNldFBhcmFtZXRlcnMocmVmLmNvbXBvbmVudEluc3RhbmNlKTtcclxuICAgIHZhciByO1xyXG4gICAgaWYgKHJlZi5iZWZvcmVDbG9zZWQpXHJcbiAgICAgIHIgPSBhd2FpdCByZWYuYmVmb3JlQ2xvc2VkKCkudG9Qcm9taXNlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHIgPSBhd2FpdCByZWYuYmVmb3JlQ2xvc2UoKS50b1Byb21pc2UoKTtcclxuXHJcblxyXG4gICAgaWYgKHJldHVybkFWYWx1ZSlcclxuICAgICAgcmV0dXJuIHJldHVybkFWYWx1ZShyZWYuY29tcG9uZW50SW5zdGFuY2UpO1xyXG4gICAgcmV0dXJuIHI7XHJcbiAgfVxyXG4gIGxldCBwcm92ID0gbmV3IEFuZ3VsYXJIdHRwUHJvdmlkZXIoaHR0cCk7XHJcbiAgQWN0aW9uLnByb3ZpZGVyID0gcHJvdjtcclxuICBhY3Rpb25JbmZvLnJ1bkFjdGlvbldpdGhvdXRCbG9ja2luZ1VJID0gYXN5bmMgeCA9PiBhd2FpdCBCdXN5U2VydmljZS5zaW5nbGVJbnN0YW5jZS5kb25vdFdhaXQoeCk7XHJcbiAgYWN0aW9uSW5mby5zdGFydEJ1c3lXaXRoUHJvZ3Jlc3MgPSAoKSA9PiBCdXN5U2VydmljZS5zaW5nbGVJbnN0YW5jZS5zdGFydEJ1c3lXaXRoUHJvZ3Jlc3MoKVxyXG4gIHIuc2V0RGF0YVByb3ZpZGVyKG5ldyBSZXN0RGF0YVByb3ZpZGVyKENvbnRleHQuYXBpQmFzZVVybCwgcHJvdikpO1xyXG4gIHJldHVybiByO1xyXG59Il19 |
{ | ||
"name": "@remult/angular", | ||
"schematics": "./schematics/collection.json", | ||
"version": "2.1.23", | ||
"version": "2.1.24", | ||
"description": "an angular module for remult", | ||
@@ -6,0 +6,0 @@ "license": "MIT", |
@@ -1,1 +0,1 @@ | ||
{"__symbolic":"module","version":4,"metadata":{"RemultModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":42,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"SelectValueDialogComponent"},{"__symbolic":"reference","name":"ɵi"}],"imports":[{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":44,"character":12},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":44,"character":25},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":44,"character":39},{"__symbolic":"reference","module":"@angular/material/progress-spinner","name":"MatProgressSpinnerModule","line":44,"character":57},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialogModule","line":44,"character":83},{"__symbolic":"reference","module":"@angular/platform-browser/animations","name":"BrowserAnimationsModule","line":44,"character":100},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":45,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":46,"character":4},{"__symbolic":"reference","module":"@angular/material/list","name":"MatListModule","line":47,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":48,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":49,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":49,"character":20},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":49,"character":35},{"__symbolic":"reference","module":"@angular/material/checkbox","name":"MatCheckboxModule","line":49,"character":56},{"__symbolic":"reference","module":"@angular/material/menu","name":"MatMenuModule","line":49,"character":75}],"providers":[{"provide":{"__symbolic":"reference","module":"@remult/core","name":"Context","line":51,"character":13},"useFactory":{"__symbolic":"reference","name":"buildContext"},"deps":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":53,"character":11},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialog","line":53,"character":23}]},{"__symbolic":"reference","name":"JwtSessionManager"},{"__symbolic":"reference","name":"NotSignedInGuard"},{"__symbolic":"reference","name":"SignedInGuard"},{"__symbolic":"reference","name":"RouteHelperService"},{"__symbolic":"reference","name":"BusyService"},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":57,"character":13},"useClass":{"__symbolic":"reference","name":"ɵa"},"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":58,"character":13},"useClass":{"__symbolic":"reference","name":"ɵb"},"multi":true}],"exports":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"SelectValueDialogComponent"}],"entryComponents":[{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"SelectValueDialogComponent"},{"__symbolic":"reference","name":"ɵi"}]}]}],"members":{}},"DialogConfig":{"__symbolic":"function","parameters":["config"],"value":{"__symbolic":"error","message":"Lambda not supported","line":65,"character":9,"module":"./src/angular/remult-core.module"}},"buildContext":{"__symbolic":"function"},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":121,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"BusyService"}]}],"intercept":[{"__symbolic":"method"}]}},"BusyService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"donotWait":[{"__symbolic":"method"}],"donotWaitNonAsync":[{"__symbolic":"method"}],"log":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialog","line":39,"character":32}]}],"doWhileShowingBusy":[{"__symbolic":"method"}],"startBusyWithProgress":[{"__symbolic":"method"}],"showBusy":[{"__symbolic":"method"}]},"statics":{"singleInstance":{"__symbolic":"error","message":"Variable not initialized","line":32,"character":11}}},"RouteHelperService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":5,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":5,"character":58}]}],"navigateToComponent":[{"__symbolic":"method"}],"canNavigateToRoute":[{"__symbolic":"method"}]}},"SignedInGuard":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@remult/core","name":"Context","line":41,"character":35},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":5,"character":32},{"__symbolic":"reference","name":"RouteHelperService"}]}],"isAllowed":[{"__symbolic":"method"}],"canActivate":[{"__symbolic":"method"}]},"statics":{"componentToNavigateIfNotAllowed":{"__symbolic":"error","message":"Variable not initialized","line":47,"character":11}}},"NotSignedInGuard":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":66,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@remult/core","name":"Context","line":41,"character":35},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":5,"character":32}]}],"canActivate":[{"__symbolic":"method"}]}},"SelectValueDialogComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"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>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"selectFirst":[{"__symbolic":"method"}],"matchesFilter":[{"__symbolic":"method"}],"args":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":111,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"JwtSessionManager"}]}],"intercept":[{"__symbolic":"method"}]}},"JwtSessionManager":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"getToken":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@remult/core","name":"Context","line":18,"character":25}]}],"loadSessionFromCookie":[{"__symbolic":"method"}],"setToken":[{"__symbolic":"method"}],"_setToken":[{"__symbolic":"method"}],"signout":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"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)}} </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":[""]}]}],"members":{"map":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"column":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"record":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"notReadonly":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"settings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"showDescription":[{"__symbolic":"method"}],"getDropDown":[{"__symbolic":"method"}],"showClick":[{"__symbolic":"method"}],"click":[{"__symbolic":"method"}],"getClickIcon":[{"__symbolic":"method"}],"dataControlStyle":[{"__symbolic":"method"}],"_getColumn":[{"__symbolic":"method"}],"_getEditable":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"isSelect":[{"__symbolic":"method"}],"showTextBox":[{"__symbolic":"method"}],"showCheckbox":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"}],"getStyle":[{"__symbolic":"method"}],"getFloatLabel":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"data-area","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":11,"character":17},"member":"None"},"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>","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%}}"]}]}],"members":{"settings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"object":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}],"theColumns":[{"__symbolic":"method"}],"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":3}}]}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"Data-Filter","styles":[".link {\n cursor:pointer;\n color:blue;\n text-decoration:underline;\n }"],"template":"<span (click)=\"showAddAnotherFilterDialog()\" #theDiv class=\"link\" *ngIf=\"settings.settings.showFilter\"><span *ngIf=\"!rightToLeft\">Filter</span><span *ngIf=\"rightToLeft\">סינון</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>"}]}],"members":{"settings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":5}}]}],"getCurrentFilterValue":[{"__symbolic":"method"}],"cancelAddFilter":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@remult/core","name":"Context","line":28,"character":33}]}],"showEditFilter":[{"__symbolic":"method"}],"userFilterButton":[{"__symbolic":"method"}],"showAddAnotherFilterDialog":[{"__symbolic":"method"}],"editFilter":[{"__symbolic":"method"}],"confirmEditFilter":[{"__symbolic":"method"}],"clearEditFilter":[{"__symbolic":"method"}],"addFilter":[{"__symbolic":"method"}],"cancelAddNewFilter":[{"__symbolic":"method"}],"theDiv":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":87,"character":5},"arguments":["theDiv"]}]}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"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\"></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)\">\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></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}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@remult/core","name":"Context","line":17,"character":31}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"addCol":[{"__symbolic":"method"}],"getColFlex":[{"__symbolic":"method"}],"getColWidth":[{"__symbolic":"method"}],"test":[{"__symbolic":"method"}],"dataGridDiv":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":50,"character":3},"arguments":["dataGridDiv"]}]}],"getTotalRows":[{"__symbolic":"method"}],"dragStart":[{"__symbolic":"method"}],"dragOver":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method"}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":3}}]}],"_getHeight":[{"__symbolic":"method"}],"displayButtons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":85,"character":3}}]}],"displayVCR":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":86,"character":3}}]}],"records":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":88,"character":3}}]}],"settings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":89,"character":3}}]}],"isFiltered":[{"__symbolic":"method"}],"dataFilterInfo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":94,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]}],"showFilterColumnDialog":[{"__symbolic":"method"}],"getButtonCssClass":[{"__symbolic":"method"}],"getButtonText":[{"__symbolic":"method"}],"hasVisibleButton":[{"__symbolic":"method"}],"hasVisibleGridButtons":[{"__symbolic":"method"}],"addButton":[{"__symbolic":"method"}],"rowClicked":[{"__symbolic":"method"}],"nextPage":[{"__symbolic":"method"}],"previousPage":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"_getRowClass":[{"__symbolic":"method"}],"_getRowColumnClass":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"app-wait","template":"<mat-progress-spinner [mode]=\"mode\" [value]=\"value\" >\r\n</mat-progress-spinner>","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"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)}} </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)}} </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}"]}]}],"members":{"map":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"column":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"rightToLeft":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"record":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"notReadonly":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"settings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"showDescription":[{"__symbolic":"method"}],"showClick":[{"__symbolic":"method"}],"getClickIcon":[{"__symbolic":"method"}],"dataControlStyle":[{"__symbolic":"method"}],"_getColumn":[{"__symbolic":"method"}],"click":[{"__symbolic":"method"}],"_getEditable":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"getDropDown":[{"__symbolic":"method"}],"isSelect":[{"__symbolic":"method"}],"showTextBox":[{"__symbolic":"method"}],"showReadonlyText":[{"__symbolic":"method"}],"showCheckbox":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"}],"getStyle":[{"__symbolic":"method"}],"getFloatLabel":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"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>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"setFilter":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}]}}},"origins":{"RemultModule":"./src/angular/remult-core.module","DialogConfig":"./src/angular/remult-core.module","buildContext":"./src/angular/remult-core.module","ɵa":"./src/angular/wait/busy-service","BusyService":"./src/angular/wait/busy-service","RouteHelperService":"./src/angular/navigate-to-component-route-service","SignedInGuard":"./src/angular/navigate-to-component-route-service","NotSignedInGuard":"./src/angular/navigate-to-component-route-service","SelectValueDialogComponent":"./src/angular/add-filter-dialog/add-filter-dialog.component","ɵb":"./src/jwt-session-manager","JwtSessionManager":"./src/jwt-session-manager","ɵc":"./src/angular/data-control/data-control2.component","ɵd":"./src/angular/data-area/dataArea2","ɵe":"./src/angular/data-filter-info/data-filter-info.component","ɵf":"./src/angular/date-grid-2/data-grid2.component","ɵg":"./src/angular/wait/wait.component","ɵh":"./src/angular/data-control/data-control3.component","ɵi":"./src/angular/filter-dialog/filter-dialog.component"},"importAs":"@remult/angular"} | ||
{"__symbolic":"module","version":4,"metadata":{"RemultModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":43,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"SelectValueDialogComponent"},{"__symbolic":"reference","name":"ɵi"}],"imports":[{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":45,"character":12},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":45,"character":25},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":45,"character":39},{"__symbolic":"reference","module":"@angular/material/progress-spinner","name":"MatProgressSpinnerModule","line":45,"character":57},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialogModule","line":45,"character":83},{"__symbolic":"reference","module":"@angular/platform-browser/animations","name":"BrowserAnimationsModule","line":45,"character":100},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":46,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":47,"character":4},{"__symbolic":"reference","module":"@angular/material/list","name":"MatListModule","line":48,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":49,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":50,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":50,"character":20},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":50,"character":35},{"__symbolic":"reference","module":"@angular/material/checkbox","name":"MatCheckboxModule","line":50,"character":56},{"__symbolic":"reference","module":"@angular/material/menu","name":"MatMenuModule","line":50,"character":75},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"BidiModule","line":50,"character":90}],"providers":[{"provide":{"__symbolic":"reference","module":"@remult/core","name":"Context","line":52,"character":13},"useFactory":{"__symbolic":"reference","name":"buildContext"},"deps":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":54,"character":11},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialog","line":54,"character":23}]},{"__symbolic":"reference","name":"JwtSessionManager"},{"__symbolic":"reference","name":"NotSignedInGuard"},{"__symbolic":"reference","name":"SignedInGuard"},{"__symbolic":"reference","name":"RouteHelperService"},{"__symbolic":"reference","name":"BusyService"},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":58,"character":13},"useClass":{"__symbolic":"reference","name":"ɵa"},"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":59,"character":13},"useClass":{"__symbolic":"reference","name":"ɵb"},"multi":true}],"exports":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"SelectValueDialogComponent"}],"entryComponents":[{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"SelectValueDialogComponent"},{"__symbolic":"reference","name":"ɵi"}]}]}],"members":{}},"DialogConfig":{"__symbolic":"function","parameters":["config"],"value":{"__symbolic":"error","message":"Lambda not supported","line":66,"character":9,"module":"./src/angular/remult-core.module"}},"buildContext":{"__symbolic":"function"},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":121,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"BusyService"}]}],"intercept":[{"__symbolic":"method"}]}},"BusyService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"donotWait":[{"__symbolic":"method"}],"donotWaitNonAsync":[{"__symbolic":"method"}],"log":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialog","line":39,"character":32}]}],"doWhileShowingBusy":[{"__symbolic":"method"}],"startBusyWithProgress":[{"__symbolic":"method"}],"showBusy":[{"__symbolic":"method"}]},"statics":{"singleInstance":{"__symbolic":"error","message":"Variable not initialized","line":32,"character":11}}},"RouteHelperService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":5,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":5,"character":58}]}],"navigateToComponent":[{"__symbolic":"method"}],"canNavigateToRoute":[{"__symbolic":"method"}]}},"SignedInGuard":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@remult/core","name":"Context","line":41,"character":35},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":5,"character":32},{"__symbolic":"reference","name":"RouteHelperService"}]}],"isAllowed":[{"__symbolic":"method"}],"canActivate":[{"__symbolic":"method"}]},"statics":{"componentToNavigateIfNotAllowed":{"__symbolic":"error","message":"Variable not initialized","line":47,"character":11}}},"NotSignedInGuard":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":66,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@remult/core","name":"Context","line":41,"character":35},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":5,"character":32}]}],"canActivate":[{"__symbolic":"method"}]}},"SelectValueDialogComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"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>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"selectFirst":[{"__symbolic":"method"}],"matchesFilter":[{"__symbolic":"method"}],"args":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":111,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"JwtSessionManager"}]}],"intercept":[{"__symbolic":"method"}]}},"JwtSessionManager":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"getToken":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@remult/core","name":"Context","line":18,"character":25}]}],"loadSessionFromCookie":[{"__symbolic":"method"}],"setToken":[{"__symbolic":"method"}],"_setToken":[{"__symbolic":"method"}],"signout":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"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)}} </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":[""]}]}],"members":{"map":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"column":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"record":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"notReadonly":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"settings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"showDescription":[{"__symbolic":"method"}],"getDropDown":[{"__symbolic":"method"}],"showClick":[{"__symbolic":"method"}],"click":[{"__symbolic":"method"}],"getClickIcon":[{"__symbolic":"method"}],"dataControlStyle":[{"__symbolic":"method"}],"_getColumn":[{"__symbolic":"method"}],"_getEditable":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"isSelect":[{"__symbolic":"method"}],"showTextBox":[{"__symbolic":"method"}],"showCheckbox":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"}],"getStyle":[{"__symbolic":"method"}],"getFloatLabel":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"data-area","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":11,"character":17},"member":"None"},"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>","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%}}"]}]}],"members":{"settings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"object":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}],"theColumns":[{"__symbolic":"method"}],"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":3}}]}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"Data-Filter","styles":[".link {\n cursor:pointer;\n color:blue;\n text-decoration:underline;\n }"],"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>"}]}],"members":{"settings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":5}}]}],"getCurrentFilterValue":[{"__symbolic":"method"}],"cancelAddFilter":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@remult/core","name":"Context","line":29,"character":33},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":29,"character":47}]}],"showEditFilter":[{"__symbolic":"method"}],"userFilterButton":[{"__symbolic":"method"}],"showAddAnotherFilterDialog":[{"__symbolic":"method"}],"editFilter":[{"__symbolic":"method"}],"confirmEditFilter":[{"__symbolic":"method"}],"clearEditFilter":[{"__symbolic":"method"}],"addFilter":[{"__symbolic":"method"}],"cancelAddNewFilter":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"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}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@remult/core","name":"Context","line":18,"character":31},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":18,"character":45}]}],"addCol":[{"__symbolic":"method"}],"getColFlex":[{"__symbolic":"method"}],"getColWidth":[{"__symbolic":"method"}],"test":[{"__symbolic":"method"}],"getTotalRows":[{"__symbolic":"method"}],"dragStart":[{"__symbolic":"method"}],"dragOver":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method"}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":71,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3}}]}],"_getHeight":[{"__symbolic":"method"}],"displayButtons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":80,"character":3}}]}],"displayVCR":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":81,"character":3}}]}],"records":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":83,"character":3}}]}],"settings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":3}}]}],"isFiltered":[{"__symbolic":"method"}],"dataFilterInfo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":89,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]}],"showFilterColumnDialog":[{"__symbolic":"method"}],"getButtonCssClass":[{"__symbolic":"method"}],"getButtonText":[{"__symbolic":"method"}],"clickOnselectCheckboxFor":[{"__symbolic":"method"}],"hasVisibleButton":[{"__symbolic":"method"}],"hasVisibleGridButtons":[{"__symbolic":"method"}],"addButton":[{"__symbolic":"method"}],"rowClicked":[{"__symbolic":"method"}],"nextPage":[{"__symbolic":"method"}],"previousPage":[{"__symbolic":"method"}],"showSaveAllButton":[{"__symbolic":"method"}],"saveAllText":[{"__symbolic":"method"}],"saveAllClick":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"_getRowClass":[{"__symbolic":"method"}],"_getRowColumnClass":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"app-wait","template":"<mat-progress-spinner [mode]=\"mode\" [value]=\"value\" >\r\n</mat-progress-spinner>","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"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)}} </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)}} </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}"]}]}],"members":{"map":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"column":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"rightToLeft":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"record":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"notReadonly":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"settings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"showDescription":[{"__symbolic":"method"}],"showClick":[{"__symbolic":"method"}],"getClickIcon":[{"__symbolic":"method"}],"dataControlStyle":[{"__symbolic":"method"}],"_getColumn":[{"__symbolic":"method"}],"click":[{"__symbolic":"method"}],"_getEditable":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"getDropDown":[{"__symbolic":"method"}],"isSelect":[{"__symbolic":"method"}],"showTextBox":[{"__symbolic":"method"}],"showReadonlyText":[{"__symbolic":"method"}],"showCheckbox":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"}],"getStyle":[{"__symbolic":"method"}],"getFloatLabel":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"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>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"setFilter":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}]}}},"origins":{"RemultModule":"./src/angular/remult-core.module","DialogConfig":"./src/angular/remult-core.module","buildContext":"./src/angular/remult-core.module","ɵa":"./src/angular/wait/busy-service","BusyService":"./src/angular/wait/busy-service","RouteHelperService":"./src/angular/navigate-to-component-route-service","SignedInGuard":"./src/angular/navigate-to-component-route-service","NotSignedInGuard":"./src/angular/navigate-to-component-route-service","SelectValueDialogComponent":"./src/angular/add-filter-dialog/add-filter-dialog.component","ɵb":"./src/jwt-session-manager","JwtSessionManager":"./src/jwt-session-manager","ɵc":"./src/angular/data-control/data-control2.component","ɵd":"./src/angular/data-area/dataArea2","ɵe":"./src/angular/data-filter-info/data-filter-info.component","ɵf":"./src/angular/date-grid-2/data-grid2.component","ɵg":"./src/angular/wait/wait.component","ɵh":"./src/angular/data-control/data-control3.component","ɵi":"./src/angular/filter-dialog/filter-dialog.component"},"importAs":"@remult/angular"} |
@@ -1,2 +0,2 @@ | ||
import { ElementRef } from '@angular/core'; | ||
import { Directionality } from '@angular/cdk/bidi'; | ||
import { Column, Context, DataControlSettings, GridSettings } from '@remult/core'; | ||
@@ -9,3 +9,3 @@ export declare class DataFilterInfoComponent { | ||
cancelAddFilter(): void; | ||
constructor(context: Context); | ||
constructor(context: Context, dir: Directionality); | ||
showFilterButton: boolean; | ||
@@ -23,4 +23,2 @@ showAddFilter: boolean; | ||
rightToLeft: boolean; | ||
theDiv: ElementRef; | ||
ngAfterViewInit(): void; | ||
} |
@@ -1,8 +0,8 @@ | ||
import { OnChanges, ElementRef, AfterViewInit } from '@angular/core'; | ||
import { OnChanges } from '@angular/core'; | ||
import { DataFilterInfoComponent } from '../data-filter-info/data-filter-info.component'; | ||
import { Column, Context, DataControlSettings, GridButton, GridSettings, RowButton } from '@remult/core'; | ||
export declare class DataGrid2Component implements OnChanges, AfterViewInit { | ||
import { Directionality } from '@angular/cdk/bidi'; | ||
export declare class DataGrid2Component implements OnChanges { | ||
private context; | ||
constructor(context: Context); | ||
ngAfterViewInit(): void; | ||
constructor(context: Context, dir: Directionality); | ||
addCol(c: DataControlSettings): Promise<void>; | ||
@@ -13,3 +13,2 @@ getColFlex(map: DataControlSettings): string; | ||
rightToLeft: boolean; | ||
dataGridDiv: ElementRef; | ||
getTotalRows(): number | "רבים" | "many"; | ||
@@ -32,2 +31,3 @@ tempDragColumn: (DataControlSettings); | ||
getButtonText(b: RowButton<any>, row: any): any; | ||
clickOnselectCheckboxFor(row: any, e: MouseEvent): void; | ||
hasVisibleButton(record: any): RowButton<any>; | ||
@@ -43,2 +43,5 @@ hasVisibleGridButtons(): GridButton; | ||
previousPage(): void; | ||
showSaveAllButton(): any; | ||
saveAllText(): string; | ||
saveAllClick(): Promise<void>; | ||
ngOnChanges(): void; | ||
@@ -45,0 +48,0 @@ _getRowClass(row: any): string; |
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
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
1186135
14710