@universis/ngx-tables 0.6.7 → 0.6.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/universis-ngx-tables.umd.js +252 -84
- package/bundles/universis-ngx-tables.umd.js.map +1 -1
- package/bundles/universis-ngx-tables.umd.min.js +1 -1
- package/bundles/universis-ngx-tables.umd.min.js.map +1 -1
- package/esm2015/lib/components/advanced-select/advanced-select.component.js +2 -2
- package/esm2015/lib/components/advanced-table/advanced-table-search.component.js +3 -3
- package/esm2015/lib/components/advanced-table/advanced-table.component.js +18 -6
- package/esm2015/lib/components/advanced-table/advanced-table.formatters.interface.js +4 -2
- package/esm2015/lib/components/advanced-table/advanced-table.formatters.js +195 -58
- package/esm2015/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +17 -10
- package/esm2015/lib/tables.module.js +1 -3
- package/esm5/lib/components/advanced-select/advanced-select.component.js +2 -2
- package/esm5/lib/components/advanced-table/advanced-table-search.component.js +3 -3
- package/esm5/lib/components/advanced-table/advanced-table.component.js +18 -6
- package/esm5/lib/components/advanced-table/advanced-table.formatters.interface.js +4 -2
- package/esm5/lib/components/advanced-table/advanced-table.formatters.js +202 -67
- package/esm5/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +12 -5
- package/esm5/lib/tables.module.js +1 -3
- package/fesm2015/universis-ngx-tables.js +233 -77
- package/fesm2015/universis-ngx-tables.js.map +1 -1
- package/fesm5/universis-ngx-tables.js +233 -81
- package/fesm5/universis-ngx-tables.js.map +1 -1
- package/lib/components/advanced-table/advanced-table.formatters.d.ts +15 -0
- package/lib/components/advanced-table/advanced-table.formatters.interface.d.ts +3 -1
- package/lib/components/advanced-table-modal/advanced-table-modal-base.component.d.ts +5 -1
- package/package.json +1 -1
- package/universis-ngx-tables.metadata.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("iso-639-1/build"),require("bootstrap"),require("rxjs"),require("jquery"),require("datatables.net"),require("lodash"),require("datatables.net-scroller"),require("rxjs/add/observable/combineLatest"),require("@angular/common/http"),require("@themost/angular"),require("@themost/client"),require("@angular/core"),require("@angular/common"),require("@ngx-translate/core"),require("@angular/forms"),require("@universis/common"),require("@universis/common/routing"),require("@universis/forms"),require("angular-formio"),require("@angular/router"),require("ngx-bootstrap/modal"),require("ngx-bootstrap/dropdown"),require("ngx-bootstrap/progressbar"),require("ngx-pipes")):"function"==typeof define&&define.amd?define("@universis/ngx-tables",["exports","iso-639-1/build","bootstrap","rxjs","jquery","datatables.net","lodash","datatables.net-scroller","rxjs/add/observable/combineLatest","@angular/common/http","@themost/angular","@themost/client","@angular/core","@angular/common","@ngx-translate/core","@angular/forms","@universis/common","@universis/common/routing","@universis/forms","angular-formio","@angular/router","ngx-bootstrap/modal","ngx-bootstrap/dropdown","ngx-bootstrap/progressbar","ngx-pipes"],t):t((e.universis=e.universis||{},e.universis["ngx-tables"]={}),e.ISO6391,e.bootstrap,e.rxjs,e.jQuery_,null,e.lodash,null,e.rxjs["add/observable/combineLatest"],e.ng.common.http,e.i1,e.client,e.ng.core,e.ng.common,e.core,e.ng.forms,e.i2,e.routing,e.forms$1,e.angularFormio,e.ng.router,e.modal,e.dropdown,e.progressbar,e.ngxPipes)}(this,function(e,r,o,p,t,n,i,a,s,l,c,m,f,d,b,u,h,g,v,y,T,S,w,x,C){"use strict";var _=function(e,t){return(_=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function A(e,t){function n(){this.constructor=e}_(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var I=function(){return(I=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};function P(e,i,s,l){return new(s||(s=Promise))(function(t,n){function a(e){try{o(l.next(e))}catch(t){n(t)}}function r(e){try{o(l["throw"](e))}catch(t){n(t)}}function o(e){e.done?t(e.value):function n(t){return t instanceof s?t:new s(function(e){e(t)})}(e.value).then(a,r)}o((l=l.apply(e,i||[])).next())})}function O(a,r){var o,i,s,e,l={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return e={next:t(0),"throw":t(1),"return":t(2)},"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function n(e){if(o)throw new TypeError("Generator is already executing.");for(;l;)try{if(o=1,i&&(s=2&e[0]?i["return"]:e[0]?i["throw"]||((s=i["return"])&&s.call(i),0):i.next)&&!(s=s.call(i,e[1])).done)return s;switch(i=0,s&&(e=[2&e[0],s.value]),e[0]){case 0:case 1:s=e;break;case 4:return l.label++,{value:e[1],done:!1};case 5:l.label++,i=e[1],e=[0];continue;case 7:e=l.ops.pop(),l.trys.pop();continue;default:if(!(s=0<(s=l.trys).length&&s[s.length-1])&&(6===e[0]||2===e[0])){l=0;continue}if(3===e[0]&&(!s||e[1]>s[0]&&e[1]<s[3])){l.label=e[1];break}if(6===e[0]&&l.label<s[1]){l.label=s[1],s=e;break}if(s&&l.label<s[2]){l.label=s[2],l.ops.push(e);break}s[2]&&l.ops.pop(),l.trys.pop();continue}e=r.call(a,l)}catch(t){e=[6,t],i=0}finally{o=s=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([t,e])}}}function L(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],a=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&a>=e.length&&(e=void 0),{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function E(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var a,r,o=n.call(e),i=[];try{for(;(void 0===t||0<t--)&&!(a=o.next()).done;)i.push(a.value)}catch(s){r={error:s}}finally{try{a&&!a.done&&(n=o["return"])&&n.call(o)}finally{if(r)throw r.error}}return i}var k,F,j=function(d){function e(e,t,n,a,r,o,i,s,l){var c=d.call(this,e,t)||this;return c._errorService=n,c._modalService=a,c._appEvent=r,c._toastService=o,c._loadingService=i,c._translateService=s,c._context=l,c.loading=!1,c.items=[],c.messages=[],c.modalClass="modal-lg",c.okButtonDisabled=!0,c}return A(e,d),e.prototype.ngOnInit=function(){var t=this;if(this.selectedSubscription=this.selectComponent.advancedTable.selectedItems.subscribe(function(e){null==t.formName&&(t.okButtonDisabled=0===e.length)}),null!=this.formName&&(this.formChangeSubscription=this.formComponent.form.change.subscribe(function(e){Object.prototype.hasOwnProperty.call(e,"isValid")&&(t.okButtonDisabled=!e.isValid)})),this.target)this.target},e.prototype.cancel=function(){if(this.clearMessages(),!this.loading)return this._modalService.modalRef?this._modalService.modalRef.hide():void 0},e.prototype.ngOnDestroy=function(){this.formLoadSubscription&&this.formLoadSubscription.unsubscribe(),this.formChangeSubscription&&this.formChangeSubscription.unsubscribe(),this.selectedSubscription&&this.selectedSubscription.unsubscribe()},Object.defineProperty(e.prototype,"formData",{get:function(){return null===this.formComponent?null:this.formComponent.form.formio.data},enumerable:!0,configurable:!0}),e.prototype.ok=function(){var n=this;try{return this.clearMessages(),new Promise(function(t,e){n.loading=!1,n.lastError=null,n.items=n.selectComponent.advancedTable.selected,n.executeSubscription=n.execute.subscribe(function(e){return n.loading=!1,n.executeSubscription&&n.executeSubscription.unsubscribe(),n._modalService.modalRef&&n._modalService.modalRef.hide(),t()},function(e){return n.loading=!1,n._loadingService.hideLoading(),n.lastError=e,t()})})}catch(e){this.loading=!1,this._loadingService.hideLoading(),this.lastError=e}},e.prototype.onChange=function(e){},e.prototype.clearMessages=function(){this.messages=[]},e.prototype.onFilterChange=function(e){},e.decorators=[{type:f.Component,args:[{selector:"app-add-items",template:'<div>\n <div class="modal-header" *ngIf="modalTitle">\n <h5 class="modal-title">{{modalTitle | translate}}</h5>\n <button (click)="cancel()" [disabled]="loading"\n type="button" class="close" data-dismiss="modal" aria-label="Cancel">\n <span aria-hidden="true">×</span>\n </button>\n </div>\n <div class="modal-body pt-0">\n <div class="row" *ngIf="lastError">\n <div class="alert alert-danger col-12" role="alert">\n <span [translate]="\'E\' + (lastError.statusCode || 500) + \'.title\'"></span><br>\n <small *ngIf="lastError.statusCode >= 0" [translate]="\'E\' + (lastError.statusCode || 500) + \'.message\'"></small>\n <small *ngIf="lastError.statusCode == null">{{lastError.message}}</small>\n </div>\n </div>\n <div class="row d-none" *ngIf="items">\n <div class="col-12">\n <p [translate]="\'StudyPrograms.AddCoursesHelp\'" [translateParams]="items" ></p>\n </div>\n </div>\n <div class="row mt-3">\n <div class="col-12">\n <ng-container>\n <ul style="margin-left: -24px" class="nav nav-tabs mb-1" id="myTab" role="tablist">\n <li class="nav-item" *ngIf="tableConfiguration">\n <a class="nav-link active" id="courses-tab" data-toggle="tab" href="#courses" role="tab" aria-controls="home" aria-selected="true" [translate]="\'AddItems.SelectCourses\'" ></a>\n </li>\n <li class="nav-item" *ngIf="formName">\n <a class="nav-link" [ngClass]="{ \'disabled\': !(selectComponent.advancedTable.selected && selectComponent.advancedTable.selected.length) }" id="attributes-tab" data-toggle="tab" href="#attributes" role="tab" aria-controls="profile" aria-selected="false" [translate]="\'AddItems.EditAttributes\'"></a>\n </li>\n <li class="nav-item" *ngIf="messages && messages.length > 0">\n <a class="nav-link" id="messages-tab" data-toggle="tab" href="#messages" role="tab" aria-controls="profile" aria-selected="false" [translate]="\'AddItems.Messages\'"></a>\n </li>\n </ul>\n <div class="tab-content border-0" id="myTabContent">\n <div class="tab-pane fade show active" id="courses" role="tabpanel" aria-labelledby="home-tab">\n <app-advanced-table-modal #selectComponent (filter)="onFilterChange($event)" [tableConfig]="tableConfiguration"></app-advanced-table-modal>\n </div>\n <div class="tab-pane fade" id="attributes" role="tabpanel" aria-labelledby="profile-tab"\n [ngClass]="{\'invisible\':(formName == null)}">\n\x3c!-- <advanced-form-edit #formComponent [formName]="formName" ></advanced-form-edit>--\x3e\n </div>\n <div class="tab-pane fade" id="messages" role="tabpanel" aria-labelledby="profile-tab"\n [ngClass]="{\'invisible\':(messages == null)}">\n <ul *ngIf="messages && messages.length>0" class="sis--list-group sis--list-group-header">\n <li class="sis--list-group-item">\n <div class="d-flex justify-content-center align-items-center">\n <div class="sis--list-group-item_lg_column" [translate]="\'AddItems.Messages\'"></div>\n </div>\n </li>\n </ul>\n <ul class="sis--list-group sis--list-group-body">\n <li *ngFor="let message of messages" class="sis--list-group-item">\n <div class="d-flex justify-content-center align-items-center list-color">\n <div class="sis--list-group-item_lg_column">{{ message?.message }}</div>\n </div>\n </li>\n </ul>\n <div *ngIf="messages && messages.length>0">\n <button [disabled]="loading" (click)="clearMessages()" type="button" class="btn btn-indigo mt-3">\n {{\'Clear\' | translate}}\n </button>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <div class="modal-footer justify-content-end">\n <button [disabled]="okButtonDisabled || loading || !(selectComponent.advancedTable.selected && selectComponent.advancedTable.selected.length) " (click)="ok()"\n type="button" [ngClass]="okButtonClass">\n {{\'OK\' | translate}}\n </button>\n <button [disabled]="cancelButtonDisabled || loading"\n (click)="cancel()" type="button" [ngClass]="cancelButtonClass" data-dismiss="modal">\n {{\'Cancel\' | translate}}\n </button>\n </div>\n</div>\n'}]}],e.ctorParameters=function(){return[{type:T.Router},{type:T.ActivatedRoute},{type:h.ErrorService},{type:h.ModalService},{type:h.AppEventService},{type:h.ToastService},{type:h.LoadingService},{type:b.TranslateService},{type:c.AngularDataContext}]},e.propDecorators={execute:[{type:f.Input}],items:[{type:f.Input}],target:[{type:f.Input}],tableConfiguration:[{type:f.Input}],formName:[{type:f.Input}],messages:[{type:f.Input}],formComponent:[{type:f.ViewChild,args:["formComponent"]}],selectComponent:[{type:f.ViewChild,args:["selectComponent"]}]},e}(g.RouterModalOkCancel),M=function(){function e(e,t){this._context=e,this._template=t}return e.prototype.fetchData=function(p,f,h,g,m,b){return void 0===h&&(h=""),P(this,void 0,void 0,function(){var a,r,o,i,s,l,c,d,u=this;return O(this,function(e){if(o=this._context.model(p).asQueryable(),f&&"object"==typeof f||(f={}),i=[],f)try{for(s=L(Object.keys(f)),l=s.next();!l.done;l=s.next())c=l.value,i.push(c+" eq "+f[c])}catch(t){a={error:t}}finally{try{l&&!l.done&&(r=s["return"])&&r.call(s)}finally{if(a)throw a.error}}return g&&Array.isArray(g)&&(i=function n(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(E(arguments[t]));return e}(i,g)),m&&b&&(d=void 0,d=/^"(.*?)"$/.test(b)?this._template.transform(m,I({},f,{text:b.replace(/^"|"$/g,"")})):b.split(" ").map(function(e){return u._template.transform(m,I({},f,{text:e}))}).join(" and "),i.push(d)),o.setParam("$filter",i.join(" and ")),[2,o.expand(h).take(-1).getItems()]})})},e.prototype.formatData=function(i,e){try{return e.map(function(e){for(var t={},n=0;n<i.columns.length;n++){var a=i.columns[n].name.split("/"),r=e[a[0]];if(r&&1<a.length)for(var o=1;o<a.length&&(r!==undefined&&null!==r);o++)r=r[a[o]]!==undefined&&null!==r[a[o]]?r[a[o]]:undefined;t[i.columns[n].name]=r}return e.subitems&&(t.subitems=e.subitems),t})}catch(t){console.error(t)}},e.decorators=[{type:f.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:c.AngularDataContext},{type:h.TemplatePipe}]},e.ngInjectableDef=f.defineInjectable({factory:function(){return new e(f.inject(c.AngularDataContext),f.inject(h.TemplatePipe))},token:e,providedIn:"root"}),e}(),D=function(){function e(e,t,n){this._changeDetector=e,this._advancedAggregatorService=t,this._loadingService=n,this.groups=[],this.eventHandler=new f.EventEmitter}return Object.defineProperty(e.prototype,"config",{get:function(){return this._config},set:function(e){this._config=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"aggregators",{get:function(){return this._aggregators},set:function(e){this._aggregators=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"postProcessors",{get:function(){return this._postProcessors},set:function(e){this._postProcessors=e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){return P(this,void 0,void 0,function(){var t=this;return O(this,function(e){return this.selectedGroups$.subscribe(function(e){t.groups=e,t._changeDetector.markForCheck()}),this.filters$.subscribe(function(n){return P(t,void 0,void 0,function(){var t;return O(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,this.fetch(n)];case 1:return e.sent(),[3,3];case 2:return t=e.sent(),console.error(t),[3,3];case 3:return[2]}})})}),[2]})})},e.prototype.ngOnDestroy=function(){return P(this,void 0,void 0,function(){return O(this,function(e){return this.selectedGroups$.unsubscribe(),this.filters$.unsubscribe(),[2]})})},e.prototype.fetch=function(r){return P(this,void 0,void 0,function(){var t,n,a;return O(this,function(e){switch(e.label){case 0:return e.trys.push([0,6,7,8]),this._loadingService.showLoading(),[4,this._advancedAggregatorService.fetchData(this.config.model,this.params,this.config.query,r.filters,this.searchExpression,r.text)];case 1:if(t=e.sent(),!(this.postProcessors&&0<Object.keys(this.postProcessors).length&&this.config.postProcessors&&0<this.config.postProcessors.length))return[3,5];n=0,e.label=2;case 2:return n<this.config.postProcessors.length?[4,this.postProcessors[this.config.postProcessors[n].name](t)]:[3,5];case 3:t=e.sent(),e.label=4;case 4:return n++,[3,2];case 5:return this.body=this._advancedAggregatorService.formatData(this.config,t),this._changeDetector.markForCheck(),[3,8];case 6:return a=e.sent(),console.error(a),[3,8];case 7:return this._loadingService.hideLoading(),[7];case 8:return[2]}})})},e.prototype.onActionEvent=function(e){this.eventHandler.emit(e)},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-aggregator",template:'<ng-container *ngIf="config && body">\n <div class="w-100 text-center" *ngIf="body && body.length === 0">\n <div>\n <div class="mt-4">\n <div class="icon-circle bg-gray-300 border-gray-100"></div>\n </div>\n <div class="mt-4">\n <h4 class="font-3xl text-dark" [translate]="\'Tables.EmptyTableTitle\'"></h4>\n <p class="font-lg text-dark" [translate]="\'Tables.EmptyTableMessage\'"></p>\n </div>\n </div>\n </div>\n <ng-container *ngIf="groups.length === 0">\n <div class="row mt-4">\n <app-advanced-aggregator-list [body]="body" [config]="config" (clickEvent)="onActionEvent($event)" class="col-12">\n </app-advanced-aggregator-list>\n <div *ngIf="config.aggregators && config.aggregators.length > 0"\n class="footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100">\n <div *ngFor="let aggregator of config.aggregators">\n <span *ngIf="aggregator.label"> {{ aggregator.label | translate }} </span>:\n <span class="font-weight-bold"> {{ body | callAggregator: aggregators: aggregator.name }}\n </span>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf="groups.length === 1">\n <ng-container *ngFor="let group of body | groupBy: groups[0].name | keyvalue">\n <div class="row mt-4">\n <h4 class="col text-secondary"> {{ groups[0].title | aggregatorListTitle: group.key }} </h4>\n <app-advanced-aggregator-list [body]="group.value" [config]="config" (clickEvent)="onActionEvent($event)"\n class="col-12">\n </app-advanced-aggregator-list>\n </div>\n\n \x3c!-- Footer for the group --\x3e\n <div *ngIf="config.aggregators && config.aggregators.length > 0"\n class="footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100">\n <div *ngFor="let aggregator of config.aggregators">\n <span *ngIf="aggregator.label"> {{ aggregator.label | translate }} </span>:\n <span class="font-weight-bold"> {{ group.value | callAggregator: aggregators: aggregator.name }} </span>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf="groups.length > 1">\n <ng-container *ngFor="let group of body | groupBy: groups[0].name | keyvalue">\n <div class="row mt-4">\n <h4 class="col text-secondary"> {{ groups[0].title | aggregatorListTitle: group.key }} </h4>\n <div *ngFor="let subgroup of group.value | groupBy: groups[1].name | keyvalue" class="col-12 ml-4 pl-4">\n <div class="row mt-4">\n <h6 class="col-12 text-secondary"> {{ groups[1].title | aggregatorListTitle: subgroup.key }} </h6>\n <app-advanced-aggregator-list [body]="subgroup.value" [config]="config" (clickEvent)="onActionEvent($event)"\n class="col-12">\n </app-advanced-aggregator-list>\n </div>\n\n \x3c!-- Footer for each subgroup --\x3e\n <div *ngIf="config.aggregators && config.aggregators.length > 0"\n class="footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100">\n <div *ngFor="let aggregator of config.aggregators">\n <span *ngIf="aggregator.label"> {{ aggregator.label | translate }} </span>:\n <span class="font-weight-bold"> {{ subgroup.value | callAggregator: aggregators: aggregator.name }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>',changeDetection:f.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:f.ChangeDetectorRef},{type:M},{type:h.LoadingService}]},e.propDecorators={config:[{type:f.Input,args:["config"]}],aggregators:[{type:f.Input,args:["aggregators"]}],postProcessors:[{type:f.Input,args:["postProcessors"]}],params:[{type:f.Input,args:["params"]}],selectedGroups$:[{type:f.Input,args:["selectedGroups"]}],filters$:[{type:f.Input,args:["filters"]}],searchExpression:[{type:f.Input,args:["searchExpression"]}],eventHandler:[{type:f.Output}]},e}();(F=k||(k={})).XL="xl",F.LG="lg",F.MD="md",F.SM="sm",F.XS="xs";var R=function(){function e(e){this._template=e,this.clickEvent=new f.EventEmitter}return e.prototype.ngOnInit=function(){var t=this;this.config.columns.forEach(function(e){e.length=Object.values(k).includes(e.length)?t._template.transform("sis--list-group-item_"+e.length+"_column",e):e.length?e.length:"sis--list-group-item_sm_column"})},e.prototype.callCallback=function(e,t){this.clickEvent.emit({type:e,data:t})},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-aggregator-list",template:"<div id=\"group-list\" class=\"flex-column\" *ngIf=\"config && config.columns\">\n <ul class=\"sis--list-group sis--list-group-header\">\n <li class=\"sis--list-group-item text-wrap\">\n <div class=\"d-flex justify-content-center align-items-center\" *ngIf=\"body && body.length > 0\">\n <div *ngIf=\"config.actions && config.actions.length > 0\" class=\"sis--list-group-item_sm_column\"></div>\n <div *ngFor=\"let column of config.columns; let i = index\" class=\"text-left\"\n [class]=\"config.columns[i].length\"\n [translate]=\"config.columns[i].type === 'action' ? '' : column.title\" [ngClass]=\"{\n 'd-none': config.columns[i].hidden\n }\"></div>\n </div>\n </li>\n </ul>\n\n \x3c!-- The list of entries --\x3e\n <ul class=\"sis--list-group sis--list-group-body\" *ngIf=\"body && body.length > 0\">\n <li class=\"sis--list-group-item text-wrap\" *ngFor=\"let entry of body | orderBy: config.orderBy\">\n <div class=\"d-flex justify-content-center align-items-center list-color\">\n \x3c!-- The list of actions --\x3e\n <div *ngIf=\"config.actions && config.actions.length > 0\" class=\"sis--list-group-item_sm_column text-left pr-0\">\n <button *ngFor=\"let action of config.actions\" (click)=\"callCallback(action.identifier, entry)\"\n [title]=\"(action.title ? action.title : '') | translate \" class=\"btn btn-default px-0\">\n <i [class]=\"'fas text-indigo ml-2 ' + 'fa-' + action.icon\"></i>\n </button>\n </div>\n \x3c!-- The list of data --\x3e\n <div *ngFor=\"let column of config.columns; let i=index\" [class]=\"config.columns[i].length\" class=\"text-left\"\n [ngClass]=\"{\n 'text-truncate': config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate,\n 'd-none': config.columns[i].hidden,\n 'd-md-block': !config.columns[i].hidden\n }\"\n [title]=\"config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate ? entry[column.name] : ''\">\n <span class=\"text-secondary\"\n *ngIf=\"!config.columns[i].hasOwnProperty('type') || (config.columns[i].hasOwnProperty('type') && config.columns[i].type === 'text')\"\n [ngClass]=\"{\n 'font-xs': config.columns[i].variant !== 'primary',\n 'text-body': config.columns[i].variant === 'primary',\n 'text-success': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && entry[config.columns[i].condition],\n 'text-danger': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && !entry[config.columns[i].condition],\n 'font-lg': config.columns[i].variant === 'redGreen' && entry[column.name] && entry[column.name].length > 3,\n 'font-2xl': config.columns[i].variant === 'redGreen' && entry[column.name] && entry[column.name].length <= 3\n }\">\n {{entry[column.name] || '-'}}\n </span>\n\n <span *ngIf=\"config.columns[i].type === 'boolean'\">\n <i class=\"fa font-lg\" [ngClass]=\"{\n 'fa-check text-success': entry[column.name].toString() === config.columns[i].trueValue,\n 'fa-times text-danger': entry[column.name].toString() !== config.columns[i].trueValue && config.columns[i].variant !== 'checkOrDash'\n }\"></i>\n <span\n *ngIf=\"entry[column.name].toString() !== config.columns[i].trueValue && config.columns[i].variant === 'checkOrDash'\"\n class=\"text-secondary font-xs\">-</span>\n </span>\n </div>\n </div>\n <ul *ngIf=\"entry && entry.subitems\">\n <li *ngFor=\"let subitem of entry.subitems\" class=\"d-flex justify-content-center align-items-center list-color\">\n <div class=\"text-left\"></div>\n <div *ngFor=\"let column of config.columns; let i=index\" [class]=\"config.column[i].length\" class=\"text-left\"\n [ngClass]=\"{\n 'text-truncate': config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate,\n 'd-none': config.columns[i].hidden,\n 'd-md-block': !config.columns[i].hidden\n }\"\n [title]=\"config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate ? entry[column.name] : ''\">\n <span class=\"text-secondary\"\n *ngIf=\"!config.columns[i].hasOwnProperty('type') || (config.columns[i].hasOwnProperty('type') && config.columns[i].type === 'text')\"\n [ngClass]=\"{\n 'font-xs': config.columns[i].variant !== 'primary',\n 'text-body': config.columns[i].variant === 'primary',\n 'text-success': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && subitem[config.columns[i].condition],\n 'text-danger': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && !subitem[config.columns[i].condition],\n 'font-lg': config.columns[i].variant === 'redGreen' && subitem[column.name] && subitem[column.name].length > 3,\n 'font-2xl': config.columns[i].variant === 'redGreen' && subitem[column.name] && subitem[column.name].length <= 3\n }\">\n {{subitem[column.name] || '-'}}\n </span>\n </div>\n </li>\n </ul>\n </li>\n </ul>\n</div>\n"}]}],e.ctorParameters=function(){return[{type:h.TemplatePipe}]},e.propDecorators={config:[{type:f.Input}],body:[{type:f.Input}],clickEvent:[{type:f.Output}]},e}(),B=function(){function n(){}return n.template=function(e){var t=n.templateCache.get(e);return"function"==typeof t||(t=i.template(e),n.templateCache.set(e,t)),t},n.templateCache=new Map,n}(),q=function(e){function t(){return e.call(this)||this}return A(t,e),t.prototype.render=function(e,t,n,a){var r=a.settings.aoColumns[a.col];return r&&r.data?i.at(n,r.data.replace(/\//g,".")):e},t}(B),N=function(e){function t(){return e.call(this)||this}return A(t,e),t.prototype.render=function(e,t,r,n){var a=this;if(null==e)return"";n.settings.aoColumns[n.col];var o,i=Object.assign({buttonClass:"btn btn-default"},this.formatOptions),s="";if(o=i.buttonText?this.injector.get(b.TranslateService).instant(i.buttonText):i.buttonContent,i.buttonTitle&&(s=this.injector.get(b.TranslateService).instant(i.buttonTitle)),Array.isArray(this.formatOptions.commands)){var l=this.injector.get(T.ActivatedRoute),c=this.injector.get(T.Router),d=this.formatOptions.commands.map(function(n){if("string"==typeof n)return B.template(n)(r);if(n.outlets){var a={};return Object.keys(n.outlets).forEach(function(e){if(Object.prototype.hasOwnProperty.call(n.outlets,e)){var t=n.outlets[e];Array.isArray(t)?Object.defineProperty(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t.map(function(e){return B.template(e)(r)})}):Object.defineProperty(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}}),{outlets:a}}return n}),u={},p=!0;this.formatOptions.navigationExtras&&this.formatOptions.navigationExtras.queryParams&&Object.keys(this.formatOptions.navigationExtras.queryParams).map(function(e){u[e]=B.template(a.formatOptions.navigationExtras.queryParams[e])(r)}),this.formatOptions.navigationExtras&&"undefined"!=typeof this.formatOptions.navigationExtras.replaceUrl&&(p=this.formatOptions.navigationExtras.replaceUrl);var f=!1;this.formatOptions.navigationExtras&&"undefined"!=typeof this.formatOptions.navigationExtras.skipLocationChange&&(f=this.formatOptions.navigationExtras.skipLocationChange);var h=c.createUrlTree(d,{relativeTo:l,queryParams:u,replaceUrl:p,skipLocationChange:f}).toString();return'<a class="'+i.buttonClass+'" title="'+s+'" href="#'+h+'">'+o+"</a>"}var g=B.template(this.formatString)(r);return'<a class="'+i.buttonClass+'" title="'+s+'" href="'+g+'">'+o+"</a>"},t}(B),V=function(e){function t(){return e.call(this)||this}return A(t,e),t.prototype.render=function(e,t,n,a){var r=a.settings.aoColumns[a.col];return r&&r.data?'<a href="'+B.template(this.formatString)(n)+'">'+e+"</a>":e},t}(B),$=function(e){function t(){return e.call(this)||this}return A(t,e),t.prototype.render=function(e,t,n,a){var r,o,i=this,s=a.settings.aoColumns[a.col];if(s&&s.data){var l=this.actions||[],c=1;try{for(var d=L(l),u=d.next();!u.done;u=d.next()){var p=u.value;Object.assign(p,{name:p.name||"action"+c}),c+=1}}catch(f){r={error:f}}finally{try{u&&!u.done&&(o=d["return"])&&o.call(d)}finally{if(r)throw r.error}}return"<div class='dropdown details-control' data-id='"+e+"' data-type='student' >\n <a id=\"dropdownMenuButton-"+e+'" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\n <span class="fa-2x text-dots"></span></a>\n <div class="dropdown-menu" aria-labelledby="dropdownMenuButton-'+e+'">\n '+l.map(function(e){return"divider"===e.type?'<div class="dropdown-divider"></div>':"<a data-name='"+e.name+'\' class="dropdown-item" href="'+B.template(e.href)(n)+'">\n '+i.injector.get(b.TranslateService).instant(e.title)+"\n </a>"}).join("")+"\n </div>\n </div>"}return e},t.prototype.afterRender=function(e,t,n,a,r){new o.Dropdown(e)},t}(B),U=function(e){function t(){return e.call(this)||this}return A(t,e),t.prototype.render=function(e,t,n,a){var r=a.settings.aoColumns[a.col];if(r&&r.data){var o='<input class="checkbox checkbox-theme" type="checkbox"\n id="s-'+a.row+'" /><label for="s-'+a.row+'"> </label>';return B.template(o)(n)}return e},t}(B),H=function(e){function t(){return e.call(this)||this}return A(t,e),t.prototype.render=function(e,t,n,a){var r=a.settings.aoColumns[a.col];return r&&r.data?B.template(this.formatString)(n):e},t}(B),Q=function(e){function t(){return e.call(this)||this}return A(t,e),t.prototype.render=function(e,t,n,a){return e?this.injector.get(b.TranslateService).instant("TrueFalse.long.Yes"):this.injector.get(b.TranslateService).instant("TrueFalse.long.No")},t}(B),G=function(e){function t(){return e.call(this)||this}return A(t,e),t.prototype.render=function(e,t,n,a){return a.settings.aoColumns[a.col]&&null!=e?this.injector.get(b.TranslateService).instant(B.template(this.formatString)({value:e})):this.injector.get(b.TranslateService).instant("Unknown")},t}(B),K=function(e){function t(){return e.call(this)||this}return A(t,e),t.prototype.render=function(e,t,n,a){var r=a.settings.aoColumns[a.col];if(r&&r.data){var o=new d.DatePipe(this.injector.get(b.TranslateService).currentLang);return"string"==typeof e&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}$/.test(e)?o.transform(new Date(e+":00"),this.formatString):o.transform(e,this.formatString)}return e},t}(B),Y=function(e){function t(){return e.call(this)||this}return A(t,e),t.prototype.render=function(e,t,n,a){var r,o,i=a.settings.aoColumns[a.col];if(i&&i.data){if(this.formatOptions){var s=this.formatOptions.ngClass;i.ngClassTemplates=i.ngClassTemplates||{};try{for(var l=L(Object.keys(s)),c=l.next();!c.done;c=l.next()){var d=c.value,u=B.template(s[d])(n);if(!0===new Function("return "+u+";")())return'<span class="'+d+'">'+e+"</span>"}}catch(p){r={error:p}}finally{try{c&&!c.done&&(o=l["return"])&&o.call(l)}finally{if(r)throw r.error}}}return e}return e},t}(B),W=function(e){function t(){return e.call(this)||this}return A(t,e),t.prototype.render=function(e,t,n,a){return e?r.getNativeName(e):e},t}(B),X=function(){function e(){this.values={},this._template=new h.TemplatePipe}return e.prototype.buildFilter=function(e){if(e)return this._template.transform(e,this.values)},e.prototype.asyncBuildFilter=function(r){return P(this,void 0,void 0,function(){var t,n,a;return O(this,function(e){switch(e.label){case 0:return r?(n=(t=this._template).transform,a=[r],[4,this.getValues()]):[3,2];case 1:return[2,n.apply(t,a.concat([e.sent()]))];case 2:return[2]}})})},e.prototype.getValues=function(){return P(this,void 0,void 0,function(){return O(this,function(e){return[2,this.values]})})},e.decorators=[{type:f.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[]},e.ngInjectableDef=f.defineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e}(),z=t;z.fn.dataTable.Api.register("processing()",function(t){return this.iterator("table",function(e){e.oApi._fnProcessingDisplay(e,t)})});var J=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return A(t,e),t.prototype.checkNoChanges=function(){},t.prototype.detach=function(){},t.prototype.detectChanges=function(){},t.prototype.markForCheck=function(){},t.prototype.reattach=function(){},t}(f.ChangeDetectorRef),Z=new f.InjectionToken("column.formatters"),ee=function(n){function e(e){var t=n.call(this)||this;return t.injector=e,t}return A(e,n),e.prototype.render=function(e,t,n,a){},e}(B);function te(e){return e}var ne=function(){function e(){}return e.cast=function(e,t){return te(t?JSON.parse(JSON.stringify(e)):e)},e}();var ae=function(){function e(e,t,n,a,r,o,i,s,l,c){var d=this;this._context=e,this._columnFormatters=t,this._activatedRoute=n,this._translateService=a,this._injector=r,this._advancedFilterValueProvider=o,this._element=i,this._template=s,this._loading=l,this._http=c,this._firstLoad=!0,this._showFooter=!0,this._showHeader=!0,this._showPaging=!1,this._id=function u(){return Number(String(Math.random()).slice(2)).toString(36)}(),this.smartSelect=!1,this.configChanges=new p.BehaviorSubject(null),this.height=800,this.showActions=!0,this.autoLoad=!1,this.load=new f.EventEmitter,this.init=new f.EventEmitter,this.reload=new f.EventEmitter,this.select=new f.EventEmitter,this.selectedItems=new f.EventEmitter,this.scrollable=!0,this.serverSide=!0,this.lengthMenu=[50,100,200,500],this.paging=!0,this.pageLength=25,this.scrollY=800,this.scrollX=!0,this.selectable=!1,this.multipleSelect=!0,this.customSelect=!1,this.selected=[],this.unselected=[],this.translator=new b.TranslatePipe(this._translateService,new J),z.fn.dataTable.ext.classes.sPageButton="btn",z.fn.dataTable.ext.classes.sPageButtonActive="btn btn-light",this.reloadSubscription=this.reload.subscribe(function(e){d.fetch()})}return Object.defineProperty(e.prototype,"config",{get:function(){return this._config},set:function(e){this._config=e,this.configChanges.next(this._config)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showFooter",{get:function(){return this._showFooter},set:function(e){if(this._showFooter=e,this._element&&this._element.nativeElement){var t=this._element.nativeElement.querySelector(".dataTables_info");if(null==t)return;e?t.classList.remove("d-none"):t.classList.add("d-none")}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showHeader",{get:function(){return this._showHeader},set:function(e){if(this._showHeader=e,this._element&&this._element.nativeElement){var t=this._element.nativeElement.querySelector(".dataTable>thead");if(null==t)return;var n=this._element.nativeElement.querySelector(".dataTable");e?(t.classList.remove("d-none"),n.classList.remove("mt-2")):(t.classList.add("d-none"),n.classList.add("mt-2"))}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showPaging",{get:function(){return this._showPaging},set:function(e){if(this._showPaging=e,this._element&&this._element.nativeElement){var t=this._element.nativeElement.querySelector(".dataTables_paginate");if(null==t)return;e?z(t).show():z(t).hide()}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"query",{get:function(){return this._query},set:function(e){this._query=e},enumerable:!0,configurable:!0}),e.prototype.search=function(e){var t=this;if(this.query=this.query||this._context.model(this.config.model).asQueryable(),e&&this.config.searchExpression)if(/^"(.*?)"$/.test(e))this.query.setParam("$filter",this._template.transform(this.config.searchExpression,{text:e.replace(/^"|"$/g,"")}));else{var n=e.split(" ").map(function(e){return t._template.transform(t.config.searchExpression,{text:e})}).join(" and ");this.query.setParam("$filter",n)}else this.query.setParam("$filter",null);this._firstLoad=!1,this.dataTable.draw()},e.prototype.fetch=function(e){if(null==this.dataTable)return this.ngOnInit();null!=e&&!0!==e||(this.smartSelect=!1,this.selected.length&&this.selected.splice(0,this.selected.length),this.unselected.length&&this.unselected.splice(0,this.unselected.length)),this.dataTable.draw()},e.prototype.destroy=function(){this.dataTable&&(this.dataTable.destroy(),this._firstLoad=!0,z(this.table.nativeElement).empty(),this.dataTable=null,this.selected.length&&this.selected.splice(0,this.selected.length),this.unselected.length&&this.unselected.splice(0,this.unselected.length),this.smartSelect=!1)},e.prototype.selectRow=function(e,t){if(e){var n=e.node();!1===this.multipleSelect&&(!1===this.customSelect?this.dataTable.rows().nodes().each(function(e){e!==n&&z(e).find(":checkbox").prop("checked",!1)}):this.dataTable.rows(".selected").nodes().each(function(e){e!==n&&z(e).removeClass("selected")}),this.selected.splice(0,this.selected.length)),!1===this.customSelect?z(n).find(":checkbox").prop("checked",!0):z(e.node()).addClass("selected");var a=this.config.columns[0].property||this.config.columns[0].name,r=e.data(),o=this.selected.findIndex(function(e){return e[a]===r[a]});if(0<=o&&this.selected.splice(o,1),this.selected.push(r),0<=(o=this.unselected.findIndex(function(e){return e[a]===r[a]}))&&this.unselected.splice(o,1),t)return;this.selectedItems.emit(this.selected)}},e.prototype.unSelectRow=function(e,t){if(e){!1===this.customSelect?z(e.node()).find(":checkbox").prop("checked",!1):z(e.node()).removeClass("selected");var n=this.config.columns[0].property||this.config.columns[0].name,a=e.data(),r=a[n],o=this.selected.findIndex(function(e){return e[n]===r});if(0<=o){if(this.selected.splice(o,1),this.smartSelect&&(o=this.unselected.findIndex(function(e){return e[n]===r}))<0&&this.unselected.push(a),t)return;this.selectedItems.emit(this.selected)}}},e.prototype.selectAny=function(){var n=this;this.dataTable&&this.selectable&&(this.smartSelect=!0,this.dataTable.rows().every(function(e){var t=n.dataTable.row(e);n.selectRow(t,!0)}),this.selectedItems.emit(this.selected))},e.prototype.selectNone=function(){var n=this;this.dataTable&&this.selectable&&(this.smartSelect=!1,this.unselected.splice(0,this.unselected.length),this.dataTable.rows().every(function(e){var t=n.dataTable.row(e);n.unSelectRow(t,!0)}),this.selected.splice(0,this.selected.length),this.selectedItems.emit(this.selected))},e.prototype.toggleSelectRow=function(e){if(e){var t=e.data(),n=this.config.columns[0].property||this.config.columns[0].name,a=t[n];0<=this.selected.find(function(e){return e[n]===a})?this.unSelectRow(e):this.selectRow(e)}},e.prototype._renderSelect=function(e,t,n,a){var r=a.settings.aoColumns[a.col];return"function"!=typeof r.selectTemplate&&Object.assign(r,{selectTemplate:i.template('<input class="checkbox checkbox-theme s-row" type="checkbox"\n id="s-'+this._id+'-${meta.row}" data-id="${data}" /><label for="s-'+this._id+'-${meta.row}"> </label>\n ')}),r.selectTemplate({meta:a,data:e})},e.prototype.ngOnInit=function(){var a=this,h=this;if(this.dataTable&&this.destroy(),this.config){Object.prototype.hasOwnProperty.call(this.config,"selectable")&&(this.selectable=this.config.selectable),Object.prototype.hasOwnProperty.call(this.config,"multipleSelect")&&(this.multipleSelect=this.config.multipleSelect);var g=this.config.columns.filter(function(e){return!e.formatter||"ActionLinkFormatter"!==e.formatter||!1!==a.showActions}).map(function(e){return Object.assign(new ee(a._injector),e)}).map(function(s){var e={data:s.property||s.name,defaultContent:s.hasOwnProperty("defaultContent")?s.defaultContent:"",title:a.translator.transform(s.title),sortable:!s.hasOwnProperty("sortable")||s.sortable,visible:!s.hasOwnProperty("hidden")||!s.hidden,name:s.name};if(s.className?Object.assign(e,{className:s.className}):Object.assign(e,{className:""}),s.formatters){Object.assign(e,{render:function(e,n,a,r){var o=e;return s.formatters.forEach(function(e){var t=h._columnFormatters[e.formatter];t&&"function"==typeof t.render&&(s.formatString=e.formatString,s.formatOptions=e.formatOptions),o=t.render.bind(s)(o,n,a,r)}),delete s.formatString,delete s.formatOptions,o}});var t=s.formatters.filter(function(e){return"function"==typeof e.afterRender});0<t.length&&Object.assign(e,{afterRender:function(n,a,r,o,i){t.forEach(function(e){var t=h._columnFormatters[e.formatter];t&&"function"==typeof t.afterRender&&t.afterRender.bind(s)(n,a,r,o,i)})}})}if(s.formatter){var n=h._columnFormatters[s.formatter];n&&"function"==typeof n.render&&Object.assign(e,{render:n.render.bind(s)})}return e}),r=z(this.table.nativeElement);if(r.on("processing.dt",function(e,t,n){n?(r.find(".dataTables_empty").html(""),setTimeout(function(){r.addClass("processing")},0)):setTimeout(function(){r.removeClass("processing")},0)}),this.selectable){var e=this.config.columns[0],t={className:"text-center pl-4 pr-0",data:e.property||e.name,defaultContent:"",title:"",sortable:!1,visible:!this.customSelect,name:e.name};Object.assign(t,{render:this._renderSelect.bind(this)}),g.unshift(t),r.on("page.dt",function(e){a.dataTable.page.info()}).on("draw.dt",function(){a.customSelect&&r.find("tbody").on("click","tr",function(){var e=h.dataTable.row(this);h.select.emit(e)}),r.find("input.s-row").on("click",a.onSelectionChange.bind(a));var n=a.config.columns[0].property;0<a.selected.length&&a.selected.forEach(function(e){var t=e[n];null!=t&&r.find("input[data-id='"+t+"']").prop("checked",!0)}),a.smartSelect?r.find("input[data-id]").each(function(e,t){a.unselected.findIndex(function(e){return e[n]==z(t).attr("data-id")})<0&&a.selectRow(a.dataTable.row(e))}):0===a.selected.length&&r.find("input[data-id]").prop("checked",!1)})}var n={lengthMenu:[5,10,50,100,200,500],lengthChange:!1,searching:!0,processing:!0,serverSide:this.serverSide,columns:g,order:[],scrollX:this.scrollX,dom:"Bfrtip",autoWidth:!1,buttons:[{extend:"excel",filename:this.config.title,className:"d-none",exportOptions:{columns:"th:not(:first-child)"}}],fnServerData:function(e,t,a,n){if(h._firstLoad&&(h._firstLoad=!1)===h.autoLoad){var r={recordsTotal:0,recordsFiltered:0,data:[]};return h.load.emit(r),a(r)}var o=h._activatedRoute.snapshot.queryParams,i=(t[1].value,t[2].value),s=t[3].value,l=t[4].value,c=(t[5].value,h._query instanceof m.ClientDataQueryable?h._query:h._context.model(h.config.model).asQueryable());if(l&&c.take(l).skip(s),i&&i.length){var d=i.map(function(e){return g[e.column].name+" "+e.dir||"asc"}).join(",");c.setParam("$orderby",d)}var u=h.config.columns.filter(function(e){return!0!==e.virtual}).map(function(e){return e.property?e.name+" as "+e.property:e.name});if(c.select.apply(c,u),o.$filter&&o.$filter.length){var p=c.getParams();c.setParam("$filter",null);var f=[o.$filter];p.$filter&&f.push("("+p.$filter+")"),c.filter(f.join(" and "))}if(o.$expand&&o.$expand.length?c.setParam("$expand",o.$expand):h.config&&h.config.defaults&&h.config.defaults.expand&&c.setParam("$expand",h.config.defaults.expand),!c.getParams().$orderby&&h.config&&h.config.defaults&&h.config.defaults.orderBy&&c.setParam("$orderby",h.config.defaults.orderBy),h.config&&h.config.defaults&&h.config.defaults.groupBy&&c.setParam("$groupby",h.config.defaults.groupBy),h.config&&h.config.defaults&&h.config.defaults.filter)return h._advancedFilterValueProvider.asyncBuildFilter(h.config.defaults.filter).then(function(e){if(e){var t=c.getParams();c.setParam("$filter",null);var n=[e];t.$filter&&n.push("("+t.$filter+")"),c.filter(n.join(" and "))}h.lastQueryParams=c.getParams(),c.getList().then(function(e){var t={recordsTotal:e.total,recordsFiltered:e.total,data:e.value};return 0===e.total&&h.resetEmptyTable(),h.load.emit(t),a(t)})})["catch"](function(e){console.error("TABLES",e)});h.lastQueryParams=c.getParams(),c.getList().then(function(e){var t={recordsTotal:e.total,recordsFiltered:e.total,data:e.value};return 0===e.total&&h.resetEmptyTable(),h.load.emit(t),a(t)})["catch"](function(e){console.error("TABLES",e)})},language:Object.assign({},h.translator.transform("Tables.DataTable"),{emptyTable:" "})};this.scrollable?Object.assign(n,{scrollY:this.scrollY,scrollCollapse:!1,scroller:{loadingIndicator:!1,displayBuffer:10}}):Object.assign(n,{paging:this.paging,pageLength:this.pageLength}),this.selectable,this.dataTable=r.DataTable(n),r.on("init.dt",function(){null!=a.dataTable&&a.init.emit(a.dataTable)}),this.showHeader||(this._element.nativeElement.querySelector(".dataTable>thead").classList.add("d-none"),this._element.nativeElement.querySelector(".dataTable").classList.add("mt-2")),this.showFooter||this._element.nativeElement.querySelector(".dataTables_info").classList.add("d-none"),this.showPaging&&(this.showPaging=!0)}},Object.defineProperty(e.prototype,"lastQuery",{get:function(){var t=this;if(null==this.config)return null;if(null==this.lastQueryParams)return null;var n=this._context.model(this.config.model).asQueryable();return Object.keys(this.lastQueryParams).forEach(function(e){n.setParam(e,t.lastQueryParams[e])}),n},enumerable:!0,configurable:!0}),e.prototype.fetchOne=function(a){var r=this;if(null!=a&&null!=this.dataTable&&null!=this.lastQueryParams){var e=Array.from(this.dataTable.rows().data());if(e&&e.length){var n=Object.keys(a);if(0===n.length)return;var o=e.findIndex(function(t){return 0===n.map(function(e){return t[e]===a[e]}).filter(function(e){return!1===e}).length});if(0<=o){var i=this._context.model(this.config.model).asQueryable();return i.setParam("$select",this.lastQueryParams.$select),n.forEach(function(t){var e=r.config.columns.find(function(e){return e.property===t||e.name===t});if(e){var n=e.property||e.name;i.and(n).equal(a[t])}else i.and(t).equal(a[t])}),i.getItem().then(function(e){var t=r.dataTable.row(o),n=z(t.node()).find(":checkbox").prop("checked");return e&&(t.data(e),z(t.node()).find(":checkbox").on("click",r.onSelectionChange.bind(r)),n&&r.selectRow(t,!0)),Promise.resolve()})}}return Promise.resolve()}},e.prototype.ngOnDestroy=function(){this.reloadSubscription&&this.reloadSubscription.unsubscribe()},e.prototype.onSelectionChange=function(e){var t=e.target,n=parseInt(/-(\d+)$/g.exec(t.id)[1],10),a=this.dataTable.row(n).data();if(a){var r=this.config.columns[0].property,o=a[r],i=this.selected.findIndex(function(e){return e[r]===o});t.checked?i<0&&this.selected.push(a):0<=i&&(this.selected.splice(i,1),this.smartSelect&&(i=this.unselected.findIndex(function(e){return e[r]===o}))<0&&this.unselected.push(a))}},e.prototype.resetEmptyTable=function(){this.dataTable&&this.dataTable.context[0]&&(this.dataTable.context[0].oLanguage.sEmptyTable=this.emptyTable.nativeElement.innerHTML)},e.prototype.clearEmptyTable=function(){this.dataTable&&this.dataTable.context[0]&&(this.dataTable.context[0].oLanguage.sEmptyTable="")},e.prototype["export"]=function(){document.querySelector(".dt-buttons .buttons-excel").click()},e.prototype.handleColumns=function(n){var a=this.dataTable;this.config.columns.slice(1).forEach(function(e,t){e.hidden||(n.includes(e.name)?a.column(e.name+":name").visible(!0):a.column(e.name+":name").visible(!1))})},e.prototype.getConfig=function(){return this.config},e.prototype.ngOnChanges=function(e){var t=this;Object.prototype.hasOwnProperty.call(e,"configSrc")&&null!=e.configSrc&&e.configSrc.currentValue&&e.configSrc.currentValue!=e.configSrc.previousValue&&this._http.get(e.configSrc.currentValue).toPromise().then(function(e){t.config=e,t.fetch()})["catch"](function(e){console.error("TABLES","An error occurred while loading table configuration."),console.error(e)})},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-table",template:'\n <table #table class="dataTable">\n </table>\n <div #emptyTable class="d-none">\n <div>\n <div class="mt-4">\n <div class="icon-circle bg-gray-300 border-gray-100"></div>\n </div>\n <div class="mt-4">\n <h4 class="font-3xl text-dark" [translate]="\'Tables.EmptyTableTitle\'"></h4>\n <p class="font-lg text-dark" [translate]="\'Tables.EmptyTableMessage\'"></p>\n </div>\n </div>\n </div>\n ',encapsulation:f.ViewEncapsulation.None,styles:["table.dataTable thead .sorting{background-image:none}table.dataTable thead .sorting_asc{background-position:95% 60%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsSAAALEgHS3X78AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAEtJREFUKJFjYBgywAOKMQALFjE/BgaGTCibjYGBYRM+kz0ZGBh2MTAw8DAwMHAxMDBsY2BgCCBGMQzg1IRNMV5NuVAJXIALqmYwAgBBkAlPRCLcLwAAAABJRU5ErkJggg==)}table.dataTable thead .sorting_desc{background-position:95% 60%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAArzAAAK8wHvFRX1AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAFNJREFUKJHVzTEKgDAQRNGHZfBg2sSTeDMLKwXPYuVJbBKQQEyrH6bZ+cPyWWaElz4kR5cOJ1b0FXnBVRYjjmIUsGGqvX6OmnImYk+JLTkzpPyBGwrtCvfBe56nAAAAAElFTkSuQmCC)}table.dataTable thead th{color:#73818e;font-size:.75rem;font-weight:600;padding-top:16px;padding-bottom:4px;border-bottom:none;padding-left:8px}table.dataTable tbody tr:first-child td:first-child{border-radius:6px 0}table.dataTable tbody tr:first-child td:last-child{border-radius:0 6px}table.dataTable tbody tr{border-radius:6px}table.dataTable tbody tr td:first-child{border-left:1px solid #c2cfd6}table.dataTable tbody tr td:last-child{border-right:1px solid #c2cfd6}table.dataTable tbody tr td{padding-top:16px;padding-bottom:16px;border-top:1px solid #c2cfd6}table.dataTable tbody tr:last-child td:first-child{border-radius:0 0 0 6px}table.dataTable tbody tr:last-child td:last-child{border-radius:0 0 6px}table.dataTable tbody tr:last-child td{border-bottom:1px solid #c2cfd6}table.dataTable td.dataTables_empty{border:none!important}table.dataTable.no-footer{border-bottom:none}.dataTables_paginate .btn.previous{margin-right:8px}.dataTables_paginate .btn.next{margin-left:8px}.dataTables_info,.dataTables_paginate{margin-top:1rem}.dataTables_paginate span .btn{border-radius:1.5rem}.dataTables_filter{display:none}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:0;overflow:auto}.dataTables_paginate{display:none}.dataTable.processing{opacity:15%}.dataTables_wrapper .dataTables_processing{background:0 0;position:absolute;display:inline-block;top:25%;z-index:5;color:#73818e}.text-decoration-line-through{text-decoration:line-through!important}tr.removed .checkbox+label{visibility:hidden}"]}]}],e.ctorParameters=function(){return[{type:c.AngularDataContext},{type:undefined,decorators:[{type:f.Inject,args:[Z]}]},{type:T.ActivatedRoute},{type:b.TranslateService},{type:f.Injector},{type:X},{type:f.ElementRef},{type:h.TemplatePipe},{type:h.LoadingService},{type:l.HttpClient}]},e.propDecorators={table:[{type:f.ViewChild,args:["table"]}],emptyTable:[{type:f.ViewChild,args:["emptyTable"]}],loadingTable:[{type:f.ViewChild,args:["loadingTable"]}],height:[{type:f.Input}],showActions:[{type:f.Input}],autoLoad:[{type:f.Input}],load:[{type:f.Output,args:["load"]}],init:[{type:f.Output,args:["init"]}],reload:[{type:f.Input,args:["reload"]}],select:[{type:f.Output,args:["select"]}],selectedItems:[{type:f.Output,args:["selectedItems"]}],scrollable:[{type:f.Input}],serverSide:[{type:f.Input}],lengthMenu:[{type:f.Input}],paging:[{type:f.Input}],pageLength:[{type:f.Input}],scrollY:[{type:f.Input}],scrollX:[{type:f.Input}],selectable:[{type:f.Input}],multipleSelect:[{type:f.Input}],customSelect:[{type:f.Input}],selected:[{type:f.Input}],configSrc:[{type:f.Input}],config:[{type:f.Input,args:["config"]}],showFooter:[{type:f.Input,args:["showFooter"]}],showHeader:[{type:f.Input,args:["showHeader"]}],showPaging:[{type:f.Input,args:["showPaging"]}],query:[{type:f.Input,args:["query"]}]},e}(),re=function(){function e(e,t,n,a,r,o,i){this._context=e,this._translateService=t,this._activatedRoute=n,this._errorService=a,this._toastService=r,this._modalService=o,this._userActivityService=i,this.allowSaveOption=!0}return e.prototype.ngOnDestroy=function(){this.dataSubscription&&this.dataSubscription.unsubscribe(),this.reloadSubscription&&this.reloadSubscription.unsubscribe(),this.subscription&&this.subscription.unsubscribe()},e.prototype.ngOnInit=function(){return P(this,void 0,void 0,function(){var i,t,s=this;return O(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,this._context.getMetadata()];case 1:return i=e.sent(),this.dataSubscription=this._activatedRoute.data.subscribe(function(e){var t=new RegExp("^"+e.model+"$","ig"),n=i.EntityContainer.EntitySet.find(function(e){return t.test(e.Name)});if(null==n)return s._errorService.navigateToError(new m.ResponseError("EntitySet Not Found",404));if(null==i.EntityType.find(function(e){return e.Name===n.EntityType}))return s._errorService.navigateToError(new m.ResponseError("EntityType Not Found",404));e.searchConfiguration&&(Object.prototype.hasOwnProperty.call(e.searchConfiguration,"allowSave")&&(s.allowSaveOption=e.searchConfiguration.allowSave),s.searchConfiguration=e.searchConfiguration),e.tableConfiguration&&(s.tableConfiguration=e.tableConfiguration),e.description&&(s.description=s._translateService.instant(e.description)),e.longDescription&&(s.longDescription=s._translateService.instant(e.longDescription)),e.category&&(s.category=s._translateService.instant(e.category));var a=ne.cast(s.tableConfiguration,!0),r=a.columns.find(function(e){return"ButtonFormatter"===e.formatter&&"(modal:edit)"===e.formatString});if(r){var o=[];s._activatedRoute.snapshot.pathFromRoot.forEach(function(e){o.push.apply(o,e.url)}),r.formatString="#/"+o.join("/")+"/(modal:${id}/edit)"}s.table.config=Object.assign({model:n.Name},a),s.table.fetch(!0),s.reloadSubscription=s._activatedRoute.fragment.subscribe(function(e){e&&"reload"===e&&(s._toastService.show(s.description,s._translateService.instant("Settings.OperationCompleted")),s.table.fetch(!0))}),s._userActivityService.setItem({category:s.category,description:s.description,url:window.location.hash.substring(1),dateCreated:new Date})}),[3,3];case 2:return t=e.sent(),console.error(t),[2,this._errorService.showError(t)];case 3:return[2]}})})},e.prototype.onDataLoad=function(e){this.recordsTotal=e.recordsTotal},e.prototype.remove=function(){var t=this;if(this.table&&this.table.selected&&this.table.selected.length){var n=this.table.selected;return this._modalService.showWarningDialog(this._translateService.instant("Tables.RemoveItemsTitle"),this._translateService.instant("Tables.RemoveItemsMessage"),h.DIALOG_BUTTONS.OkCancel).then(function(e){"ok"===e&&t._context.model(t.table.config.model).remove(n).then(function(){t._toastService.show(t.description+":"+t._translateService.instant("Tables.RemoveItemMessage.title"),t._translateService.instant(1===n.length?"Tables.RemoveItemMessage.one":"Tables.RemoveItemMessage.many",{value:n.length})),t.table.fetch(!0)})["catch"](function(e){t._errorService.showError(e,{continueLink:"."})})})}},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-list",template:'<div>\n <div class="row" *ngIf="description">\n <div class="col-auto">\n <h2>{{description}}</h2>\n <p *ngIf="longDescription">{{longDescription}}</p>\n </div>\n </div>\n <div class="row" *ngIf="searchConfiguration">\n <div class="col-12" [ngVar]="{}" #filter="ngVar">\n <app-advanced-table-search #advancedSearch [(filter)]="filter.value" [collapsed]="true" [table]="table" [allowSave]="allowSaveOption">\n <advanced-search>\n <app-advanced-search-form [form]="searchConfiguration" (filterChange)="advancedSearch.asyncAdvancedSearch()" #search [(filter)]="filter.value"></app-advanced-search-form>\n </advanced-search>\n </app-advanced-table-search>\n </div>\n </div>\n <div class="row">\n <div class="col-auto mt-4">\n <div class="font-xl text-secondary" *ngIf="recordsTotal > 1">\n <span>{{recordsTotal}}</span><span> </span><span [translate]="\'Tables.Items\'"></span>\n </div>\n <div class="font-xl text-secondary" *ngIf="recordsTotal === 1">\n <span>{{recordsTotal}}</span><span> </span><span [translate]="\'Tables.Item\'"></span>\n </div>\n </div>\n <div class="pull-right ml-auto mr-3 mt-3">\n <div class="font-lg btn-toolbar mt-3">\n <a *ngIf="table && table.selected && table.selected.length"\n class="text-danger text-decoration-none mr-2" href="javascript:void(0)" (click)="remove()">\n <span>-</span><span> </span><span [translate]="\'Tables.RemoveItem\'"></span>\n </a>\n <a class="text-indigo text-decoration-none" [routerLink]="[\'.\', { outlets:{ modal:\'add\'} }]">\n <span>+</span><span> </span><span [translate]="\'Tables.AddItem\'"></span>\n </a>\n </div>\n </div>\n </div>\n <div class="row">\n <div class="col-12 mb-4">\n <app-advanced-table [selectable]="true" #table\n [autoLoad]=false\n [showFooter]="false"\n (load)="onDataLoad($event)" [height]="600"></app-advanced-table>\n </div>\n </div>\n <router-modal></router-modal>\n</div>\n'}]}],e.ctorParameters=function(){return[{type:c.AngularDataContext},{type:b.TranslateService},{type:T.ActivatedRoute},{type:h.ErrorService},{type:h.ToastService},{type:h.ModalService},{type:h.UserActivityService}]},e.propDecorators={entitySet:[{type:f.Input,args:["entitySet"]}],category:[{type:f.Input,args:["category"]}],description:[{type:f.Input,args:["description"]}],longDescription:[{type:f.Input,args:["longDescription"]}],tableConfiguration:[{type:f.Input,args:["tableConfiguration"]}],searchConfiguration:[{type:f.Input,args:["searchConfiguration"]}],table:[{type:f.ViewChild,args:["table"]}],allowSaveOption:[{type:f.Input,args:["allowSaveOption"]}]},e}(),oe=function(l){function e(e,t,n,a,r,o,i){var s=l.call(this,e,t)||this;return s._translateService=n,s._context=a,s._errorService=r,s._modalService=o,s._appEvent=i,s.modalIcon="fas fa-project-diagram",s.progressType="indigo",s.errorMessage="Tables.Actions.CompletedWithErrors",s.loading=!1,s.refresh=new f.EventEmitter,s.modalClass="modal-lg",s.modalTitle="Tables.Actions.Label",s.okButtonDisabled=!1,s.okButtonText="Tables.Actions.Start",s}return A(e,l),Object.defineProperty(e.prototype,"form",{get:function(){return this.formComponent},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var n=this;this.refreshSubscription=this.refresh.subscribe(function(e){if(e&&e.progress){var t=0;t=e.progress<0?0:100<e.progress?100:e.progress,n.progressComponent.value=t}})},e.prototype.ngAfterViewInit=function(){var t=this;this.formComponent&&this.formComponent.form&&(this.okButtonDisabled=!0,this.invalidSubscription=this.formComponent.form.change.subscribe(function(e){Object.prototype.hasOwnProperty.call(e,"isValid")&&null!=e.changed&&(t.okButtonDisabled=!e.isValid)}))},e.prototype.ngOnDestroy=function(){this.refreshSubscription&&this.refreshSubscription.unsubscribe(),this.executeSubscription&&this.executeSubscription.unsubscribe(),this.invalidSubscription&&this.invalidSubscription.unsubscribe()},e.prototype.cancel=function(){if(!this.loading)return this._modalService.modalRef?this._modalService.modalRef.hide():void 0},e.prototype.ok=function(){return P(this,void 0,void 0,function(){var n=this;return O(this,function(e){try{this.loading=!0,this.lastError=null,this.formComponent&&this.formComponent.form&&this.formComponent.form.formio&&this.formComponent.form.formio.data&&(this.data=this.formComponent.form.formio.data),this.execute.subscribe(function(e){if(n.loading=!1,n.refresh.emit({progress:100}),e&&e.errors&&0<e.errors)return 1===e.errors?n.lastError=new Error(n._translateService.instant(n.errorMessage+".Description.One")):n.lastError=new Error(n._translateService.instant(n.errorMessage+".Description.Many",e)),void n.refresh.emit({progress:1});n._modalService.modalRef&&n._modalService.modalRef.hide()},function(e){n.loading=!1,n.lastError=e,n.refresh.emit({progress:0})})}catch(t){this.loading=!1,this.lastError=t}return[2]})})},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-row-action",template:'<div>\n <div class="modal-header" *ngIf="modalTitle">\n <h5 class="modal-title">{{modalTitle | translate}}</h5>\n <button (click)="cancel()" [disabled]="loading"\n type="button" class="close" data-dismiss="modal" aria-label="Cancel">\n <span aria-hidden="true">×</span>\n </button>\n </div>\n <div class="modal-body pt-0 mt-2 pb-0">\n <div class="row" *ngIf="lastError">\n <div class="col-12">\n <div class="alert alert-warning" role="alert">\n <span>{{ \'Tables.Actions.CompletedWithErrors.Title\' | translate }}</span><br>\n <small *ngIf="lastError.status >= 0" [translate]="\'E\' + lastError.status + \'.message\'"></small>\n <small *ngIf="lastError.status == null">{{lastError.message}}</small>\n </div>\n </div>\n </div>\n <div class="row" *ngIf="description">\n <div class="col-12 mb-3">\n <div class="text-justify">\n {{description | translate}}\n </div>\n </div>\n </div>\n <div class="row">\n <div class="col-12">\n <div *ngIf="items && items.length > 1" [translate]="\'Tables.Actions.ActionMessage.Many\'" [translateParams]="items"></div>\n <div *ngIf="items && items.length === 1" [translate]="\'Tables.Actions.ActionMessage.One\'"></div>\n <div class="font-weight-bold text-danger" *ngIf="items && items.length <= 0" [translate]="\'Tables.Actions.ActionMessage.None\'"></div>\n <div class="pt-2 font-weight-bold text-danger" *ngIf="additionalMessage && items && items.length <= 0">{{additionalMessage}}</div>\n </div>\n </div>\n <div class="row pt-3" *ngIf="formTemplate">\n <div class="col-12 mb-3">\n <div>\n <advanced-form-edit #formComponent [formName]="formTemplate" [(data)]="data"></advanced-form-edit>\n </div>\n </div>\n </div>\n\n <div class="row mt-3">\n <div class="col-12">\n <progressbar #progress [type]="progressType" [max]="100">\n </progressbar>\n </div>\n </div>\n </div>\n\n <div class="modal-footer justify-content-end">\n <button [disabled]="okButtonDisabled || loading || (items && items.length === 0)" (click)="ok()"\n type="button" [ngClass]="okButtonClass">\n {{okButtonText | translate}}\n </button>\n <button [disabled]="cancelButtonDisabled || loading"\n (click)="cancel()" type="button" [ngClass]="cancelButtonClass" data-dismiss="modal">\n {{cancelButtonText | translate}}\n </button>\n </div>\n</div>\n',encapsulation:f.ViewEncapsulation.None,styles:["\n .fa-1_5x {\n font-size: 1.5rem;\n }\n .form-control:disabled, .form-control[readonly] {\n background-color: inherit;\n }\n .form-check.checkbox {\n position: relative\n }\n "]}]}],e.ctorParameters=function(){return[{type:T.Router},{type:T.ActivatedRoute},{type:b.TranslateService},{type:c.AngularDataContext},{type:h.ErrorService},{type:h.ModalService},{type:h.AppEventService}]},e.propDecorators={items:[{type:f.Input}],modalIcon:[{type:f.Input}],description:[{type:f.Input}],formTemplate:[{type:f.Input}],progressType:[{type:f.Input}],data:[{type:f.Output}],additionalMessage:[{type:f.Input}],errorMessage:[{type:f.Input}],progressComponent:[{type:f.ViewChild,args:["progress"]}],formComponent:[{type:f.ViewChild,args:["formComponent"]}],refresh:[{type:f.Input}],execute:[{type:f.Input}]},e}(g.RouterModalOkCancel),ie=function(){function e(){this.filterChange=new f.EventEmitter}return Object.defineProperty(e.prototype,"filter",{get:function(){return this._filter},set:function(e){this._filter=e},enumerable:!0,configurable:!0}),e.prototype.onKeyEnter=function(e){"Enter"===e.code&&this.filterChange.emit(this._filter)},e.propDecorators={filterChange:[{type:f.Output}],filter:[{type:f.Input}]},e}(),se=function(o){function e(e,t,n,a){var r=o.call(this)||this;return r._context=e,r._translateService=t,r._activatedRoute=n,r._http=a,r.form={},r.refreshForm=new f.EventEmitter,r.submission={data:{}},r.loading=!0,r}return A(e,o),e.prototype.ngOnChanges=function(e){var t=this;Object.prototype.hasOwnProperty.call(e,"form")&&null!=e.form&&e.form.currentValue&&e.form.currentValue!=e.form.previousValue&&this.ngOnInit(),Object.prototype.hasOwnProperty.call(e,"formSrc")&&null!=e.formSrc&&e.formSrc.currentValue&&e.formSrc.currentValue!=e.formSrc.previousValue&&this._http.get(e.formSrc.currentValue).toPromise().then(function(e){t.form=e,t.ngOnInit()})["catch"](function(e){console.error("An error occurred while loading search configuration"),console.error(e)}),Object.prototype.hasOwnProperty.call(e,"filter")&&null!=e.filter&&(this.submission.data=e.filter.currentValue||{},this.refreshForm.emit({submission:this.submission}))},e.prototype.ngOnInit=function(){var t=this;this.form&&(new v.ServiceUrlPreProcessor(this._context).parse(this.form),new v.TranslatePreProcessor(this._translateService).parse(this.form),this.submission={data:this.filter},this.refreshForm.emit({form:this.form}),this.loading=!1,this.filterSubscription=this.filterChange.subscribe(function(e){t.submission.data=e,t.refreshForm.emit({submission:t.submission})}))},e.prototype.onChange=function(e){var n=this;Object.keys(this.formComponent.submission.data).forEach(function(e){if(Object.prototype.hasOwnProperty.call(n.formComponent.submission.data,e)){var t=n.formComponent.submission.data[e];"string"==typeof t&&0===t.length?delete n.filter[e]:Object.defineProperty(n.filter,e,{configurable:!0,enumerable:!0,value:t})}})},e.prototype.onFormLoad=function(e){var t=this._translateService.currentLang;this.formComponent.formio.i18next.options.resources[t]={translation:this._translateService.instant("Forms")},this.formComponent.formio.language=t},e.prototype.ngAfterViewInit=function(){},e.prototype.ngOnDestroy=function(){this.filterSubscription&&this.filterSubscription.unsubscribe()},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-search-form",template:'\n <div class="p-4">\n <formio #formioComponent class="formio-search" (keydown)="onKeyEnter($event)" (change)="onChange($event)" (formLoad)="onFormLoad($event)"\n [refresh]="refreshForm" [submission]="submission" [form]="form"></formio>\n </div>\n ',encapsulation:f.ViewEncapsulation.None,styles:["formio.formio-search .form-group{margin-bottom:0}formio.formio-search .form-group .col-form-label{font-size:90%;padding-top:4px;padding-bottom:4px}.choices__list.choices__list--single .choices__item:first-child.choices__item--selectable{width:85%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}"]}]}],e.ctorParameters=function(){return[{type:c.AngularDataContext},{type:b.TranslateService},{type:T.ActivatedRoute},{type:l.HttpClient}]},e.propDecorators={formComponent:[{type:f.ViewChild,args:["formioComponent"]}],form:[{type:f.Input}],formSrc:[{type:f.Input}],refreshForm:[{type:f.Output}]},e}(ie),le='\n<div>\n \x3c!-- search --\x3e\n <div class="row mt-3">\n <div class="col-12 col-lg-3">\n <div class="input-group mb-3">\n <input spellcheck="false" type="text"\n (keyup)="onKeyUp($event)" [(ngModel)]="searchText"\n class="form-control bg-gray-100 border-0"\n placeholder="{{\'Tables.SearchPlaceholder\' | translate}}" aria-label="Search" aria-describedby="basic-addon2">\n <div class="input-group-append">\n <button class="btn btn-default bg-gray-100 border-0" type="button">\n <i class="fa fa-search text-secondary"></i>\n </button>\n </div>\n </div>\n </div>\n <div #emptyTable class="d-none">\n <div>\n <div class="mt-4">\n <div class="icon-circle bg-gray-300 border-gray-100"></div>\n </div>\n <div class="mt-4">\n <h4 class="font-3xl text-dark" [translate]="\'Tables.EmptyTableTitle\'"></h4>\n <p class="font-lg text-dark" [translate]="\'Tables.EmptyTableMessage\'"></p>\n </div>\n\n </div>\n </div>\n <div class="col-12 col-lg-5">\n <div class="btn-toolbar">\n <button class="btn btn-gray-100">\n <i class="fa fa-sliders-h pr-2 text-secondary" aria-hidden="true"></i>{{\'Tables.Filters\' | translate}}\n </button>\n <div #dropdownFilter class="dropdown ml-3" dropdown>\n <button class="btn btn-gray-100 dropdown-toggle"\n type="button" id="dropdownDefaultFilters"\n data-toggle="dropdown" dropdownToggle>\n {{ this.defaultFilter.name | translate }}\n </button>\n <div class="dropdown-menu" aria-labelledby="dropdownDefaultFilters" *dropdownMenu>\n <a class="dropdown-item" *ngFor="let filter of defaultFilters" (click)="advancedSearch(filter.filter ? filter : \'\')">\n {{ filter.name | translate }}\n </a>\n </div>\n </div>\n </div>\n </div>\n <div class="col text-lg-right mt-3 mt-lg-0">\n <button [disabled]="true" class="btn rounded-pill btn-outline-theme">\n <span class="pr-2 font-lg">+</span><span [translate]="\'Tables.AddItem\'"></span>\n </button>\n </div>\n </div>\n <div class="row">\n <div class="col-12" [ngClass]="{ \'component-loading\': loading}">\n <app-advanced-table #advancedTable (init)="onTableInit($event)"\n (load)="onDataLoad($event)"\n [selectable]="true"\n [multipleSelect]="true"\n [scrollX]="false" [scrollY]="320"\n [pageLength]="pageLength"\n [scrollable]="false" [showFooter]="false"\n [showActions]="false" [lengthMenu]="lengthMenu"\n [config]="tableConfig" [configSrc]="tableConfigSrc"></app-advanced-table>\n </div>\n </div>\n <div class="row mt-3 table-custom-pager">\n <div class="col-12 d-flex" *ngIf="recordsTotal">\n <div class="mt-2 ml-auto mr-3 text-secondary" [translate]="\'Tables.RecordsPerPage\'"></div>\n <div #dropdownLength class="dropdown mr-3" dropdown>\n <button class="btn btn-gray-100 dropdown-toggle"\n type="button" id="dropdownPageSize" data-toggle="dropdown"\n dropdownToggle>\n {{pageLength}}\n </button>\n <div class="dropdown-menu" aria-labelledby="dropdownPageSize" *dropdownMenu>\n <button (click)="setLength(item)"\n class="dropdown-item dropdown-item-theme"\n type="button" *ngFor="let item of lengthMenu">{{item}}</button>\n </div>\n </div>\n <div class="mt-2 mr-2" [translate]="\'Tables.PageInfo\'" [translateParams]="pageInfo"></div>\n <button [disabled]="pageInfo && pageInfo.page === 0" class="btn text-nowrap" (click)="firstPage()">\n <i class="fa fa-chevron-left text-color-theme"></i>\n <i class="fa fa-chevron-left text-color-theme"></i>\n </button>\n <button [disabled]="pageInfo && pageInfo.page===0" class="btn" (click)="previousPage()">\n <i class="fa fa-chevron-left text-color-theme"></i>\n </button>\n <button [disabled]="pageInfo && pageInfo.page===pageInfo.pages-1" class="btn" (click)="nextPage()">\n <i class="fa fa-chevron-right text-color-theme"></i>\n </button>\n <button [disabled]="pageInfo && pageInfo.page===pageInfo.pages-1" class="btn text-nowrap" (click)="lastPage()">\n <i class="fa fa-chevron-right text-color-theme"></i>\n <i class="fa fa-chevron-right text-color-theme"></i>\n </button>\n </div>\n </div>\n </div>\n',ce=function(i){function s(e,t,n,a,r){var o=i.call(this,e,t)||this;return o._context=n,o.advancedFilterValueProvider=a,o.datePipe=r,o.pageLength=25,o.lengthMenu=[5,10,25,50,100],o.recordsTotal=0,o.loading=!1,o.recordsFiltered=0,o.defaultFilters=[s.DEFAULT_ALL_FILTER],o.defaultFilter=s.DEFAULT_ALL_FILTER,o.pageInfo={serverSide:!0},o.modalClass="modal-xl modal-table",o._template=new h.TemplatePipe,o}return A(s,i),s.prototype.ngAfterViewInit=function(){},s.prototype._getInputs=function(e){var t=e.__prop__metadata__,n=[];return null==t?n:(Object.keys(t).forEach(function(e){"Input"===t[e][0].ngMetadataName&&n.push(e)}),n.sort())},s.prototype.hasInputs=function(){return[]},s.prototype.ngOnInit=function(){var n=this;this.okButtonText="Tables.Apply",this.cancelButtonText="Tables.Cancel",this.subscription=this.activatedRoute.data.subscribe(function(t){t.title&&(n.modalTitle=t.title),t.config&&(n.tableConfig=t.config),n.tableConfig&&n.defaultFilters.push.apply(n.defaultFilters,n.tableConfig.searches),n.hasInputs().forEach(function(e){Object.prototype.hasOwnProperty.call(t,e)&&(n[e]=t[e])}),n.configChangesSubscription=n.advancedTable.configChanges.subscribe(function(e){n.tableConfig&&(n.defaultFilter=s.DEFAULT_ALL_FILTER,n.defaultFilters=[s.DEFAULT_ALL_FILTER],n.defaultFilters.push.apply(n.defaultFilters,n.tableConfig.searches))})})},s.prototype.cancel=function(){return this.close()},s.prototype.ok=function(){return this.close()},s.prototype.ngOnDestroy=function(){this.subscription&&this.subscription.unsubscribe()},s.prototype.onDataLoad=function(e){this.recordsTotal=e.recordsTotal,this.recordsFiltered=e.recordsFiltered,0<e.recordsTotal&&0===this.pageInfo.recordsTotal&&(this.pageInfo.recordsTotal=e.recordsTotal)},s.prototype.previousPage=function(){this.advancedTable.dataTable.page("previous").draw("page")},s.prototype.nextPage=function(){this.advancedTable.dataTable.page("next").draw("page")},s.prototype.onTableInit=function(t){var n=this,e=t.page.info();e.start+=1,n.pageInfo=e,t.context[0].oLanguage.sEmptyTable=this.emptyTable.nativeElement.innerHTML,t.on("page.dt",function(){var e=t.page.info();e.start+=1,n.pageInfo=e}),t.on("draw.dt",function(){n.loading=!1;var e=t.page.info();e.start+=1,n.pageInfo=e})},s.prototype.firstPage=function(){this.advancedTable.dataTable.page("first").draw("page")},s.prototype.lastPage=function(){this.advancedTable.dataTable.page("last").draw("page")},s.prototype.setLength=function(e){this.pageLength=e,this.advancedTable.dataTable.page.len(e).draw()},s.prototype.onKeyUp=function(e){"Enter"===e.code&&(this.loading=!0,this.advancedTable.search(e.target.value))},s.prototype.getFilters=function(e,t,n){if(void 0===t&&(t={}),!e||!Array.isArray(e.criteria))return console.warn("No table configuration available",this.tableConfig),[];var a=e.criteria.find(function(e){return Object.prototype.hasOwnProperty.call(n.filter,e.name)});if(!a)return[];var r,o=null!==a.name?a.name.toString():"";if(o.includes("GMT")){var i=this.datePipe.transform(o,"MM/dd/yyyy");r=this._template.transform(a.filter,{value:i})}else r="undefined"!==o?this._template.transform(a.filter,Object.assign({value:a.filter},t)):"";return[r]},s.prototype.advancedSearch=function(o){return P(this,void 0,void 0,function(){var t,n,a,r;return O(this,function(e){switch(e.label){case 0:if(!this.tableConfig&&!Array.isArray(this.tableConfig.criteria))return console.warn("No table configuration available",this.tableConfig),[2];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,this.advancedFilterValueProvider.getValues()];case 2:return t=e.sent(),[3,4];case 3:return e.sent(),t={},[3,4];case 4:return n=[],o?(this.defaultFilter=o,a=this.getFilters(this.tableConfig,t,o)):this.defaultFilter=s.DEFAULT_ALL_FILTER,n.push(a),(r=this._context.model(this.advancedTable.config.model).asQueryable()).setParam("filter",n.join(" and ")).prepare(),this.advancedTable.query=r,this.advancedTable.fetch(),[2]}})})},s.DEFAULT_ALL_FILTER={name:"Tables.All",filter:null},s.decorators=[{type:f.Component,args:[{selector:"app-advanced-table-modal",template:le,styles:["\n\n "]}]}],s.ctorParameters=function(){return[{type:T.Router},{type:T.ActivatedRoute},{type:c.AngularDataContext},{type:X},{type:d.DatePipe}]},s.propDecorators={advancedTable:[{type:f.ViewChild,args:["advancedTable"]}],emptyTable:[{type:f.ViewChild,args:["emptyTable"]}],dropdownFilter:[{type:f.ViewChild,args:["dropdownFilter"]}],dropdownLength:[{type:f.ViewChild,args:["dropdownLength"]}],tableConfig:[{type:f.Input,args:["tableConfig"]}],tableConfigSrc:[{type:f.Input,args:["tableConfigSrc"]}],pageLength:[{type:f.Input,args:["pageLength"]}],searchText:[{type:f.Input,args:["searchText"]}],lengthMenu:[{type:f.Input,args:["lengthMenu"]}],defaultFilter:[{type:f.Input,args:["defaultFilter"]}]},s}(g.RouterModalOkCancel),de=function(s){function e(e,t,n,a,r,o){var i=s.call(this,e,t,n,a,r)||this;return i._modalRef=o,i.dismiss=new f.EventEmitter,i}return A(e,s),e.prototype.ok=function(){return P(this,void 0,void 0,function(){return O(this,function(e){return this._modalRef.hide(),this.dismiss.emit("ok"),[2]})})},e.prototype.cancel=function(){return P(this,void 0,void 0,function(){return O(this,function(e){return this._modalRef.hide(),this.dismiss.emit("cancel"),[2]})})},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-select",template:'<div class="modal-header" *ngIf="modalTitle">\n <h5 class="modal-title">{{modalTitle | translate}}</h5>\n <button [disabled]="cancelButtonDisabled" (click)="cancel()" type="button" class="close" data-dismiss="modal"\n aria-label="Cancel">\n <span aria-hidden="true">×</span>\n </button>\n</div>\n<div class="modal-body">\n <div>\n \x3c!-- search --\x3e\n <div class="row mt-3">\n <div class="col-12 col-lg-3">\n <div class="input-group mb-3">\n <input spellcheck="false" type="text" (keyup)="onKeyUp($event)" [(ngModel)]="searchText"\n class="form-control bg-gray-100 border-0" placeholder="{{\'Tables.SearchPlaceholder\' | translate}}"\n aria-label="Search" aria-describedby="basic-addon2">\n <div class="input-group-append">\n <button class="btn btn-default bg-gray-100 border-0" type="button">\n <i class="fa fa-search text-secondary"></i>\n </button>\n </div>\n </div>\n </div>\n <div #emptyTable class="d-none">\n <div>\n <div class="mt-4">\n <div class="icon-circle bg-gray-300 border-gray-100"></div>\n </div>\n <div class="mt-4">\n <h4 class="font-3xl text-dark" [translate]="\'Tables.EmptyTableTitle\'"></h4>\n <p class="font-lg text-dark" [translate]="\'Tables.EmptyTableMessage\'"></p>\n </div>\n\n </div>\n </div>\n <div class="col-12 col-lg-5">\n <div class="btn-toolbar">\n <button class="btn btn-gray-100">\n <i class="fa fa-sliders-h pr-2 text-secondary" aria-hidden="true"></i>{{\'Tables.Filters\' | translate}}\n </button>\n <div class="dropdown ml-3" dropdown>\n <button dropdownToggle class="btn btn-gray-100 dropdown-toggle" type="button" id="dropdownDefaultFilters"\n data-toggle="dropdown">\n {{ this.defaultFilter.name | translate }}\n </button>\n <div class="dropdown-menu" aria-labelledby="dropdownDefaultFilters" *dropdownMenu>\n <a class="dropdown-item" *ngFor="let filter of defaultFilters"\n (click)="advancedSearch(filter.filter ? filter : \'\')">\n {{ filter.name | translate }}\n </a>\n </div>\n </div>\n </div>\n </div>\n <div class="col text-lg-right mt-3 mt-lg-0">\n <button [disabled]="true" class="btn rounded-pill btn-outline-theme">\n <span class="pr-2 font-lg">+</span><span [translate]="\'Tables.AddItem\'"></span>\n </button>\n </div>\n </div>\n <div class="row">\n <div class="col-12" [ngClass]="{ \'component-loading\': loading}">\n <app-advanced-table #advancedTable (init)="onTableInit($event)" (load)="onDataLoad($event)"\n [autoLoad]="true"\n [selectable]="true" [multipleSelect]="true" [scrollX]="false" [scrollY]="320" [pageLength]="pageLength"\n [scrollable]="false" [showFooter]="false" [showActions]="false" [lengthMenu]="lengthMenu"\n [config]="tableConfig" [configSrc]="tableConfigSrc"></app-advanced-table>\n </div>\n </div>\n <div class="row mt-3 table-custom-pager">\n <div class="col-12 d-flex" *ngIf="recordsTotal">\n <div class="mt-2 ml-auto mr-3 text-secondary" [translate]="\'Tables.RecordsPerPage\'"></div>\n <div class="dropdown mr-3" dropdown>\n <button dropdownToggle class="btn btn-gray-100 dropdown-toggle" type="button" id="dropdownPageSize"\n data-toggle="dropdown">\n {{pageLength}}\n </button>\n <div class="dropdown-menu" aria-labelledby="dropdownPageSize" *dropdownMenu>\n <button (click)="setLength(item)" class="dropdown-item dropdown-item-theme" type="button"\n *ngFor="let item of lengthMenu">{{item}}</button>\n </div>\n </div>\n <div class="mt-2 mr-2" [translate]="\'Tables.PageInfo\'" [translateParams]="pageInfo"></div>\n <button [disabled]="pageInfo && pageInfo.page === 0" class="btn text-nowrap" (click)="firstPage()">\n <i class="fa fa-chevron-left text-color-theme"></i>\n <i class="fa fa-chevron-left text-color-theme"></i>\n </button>\n <button [disabled]="pageInfo && pageInfo.page===0" class="btn" (click)="previousPage()">\n <i class="fa fa-chevron-left text-color-theme"></i>\n </button>\n <button [disabled]="pageInfo && pageInfo.page===pageInfo.pages-1" class="btn" (click)="nextPage()">\n <i class="fa fa-chevron-right text-color-theme"></i>\n </button>\n <button [disabled]="pageInfo && pageInfo.page===pageInfo.pages-1" class="btn text-nowrap"\n (click)="lastPage()">\n <i class="fa fa-chevron-right text-color-theme"></i>\n <i class="fa fa-chevron-right text-color-theme"></i>\n </button>\n </div>\n </div>\n </div>\n</div>\n<div class="modal-footer justify-content-end">\n <button [disabled]="okButtonDisabled" (click)="ok()" type="button" [ngClass]="okButtonClass">\n {{okButtonText | translate}}\n </button>\n <button [disabled]="cancelButtonDisabled" (click)="cancel()" type="button" [ngClass]="cancelButtonClass"\n data-dismiss="modal">\n {{ cancelButtonText | translate}}\n </button>\n</div>\n',encapsulation:f.ViewEncapsulation.None,styles:["\n .modal-table .dataTables_wrapper {\n height: 50vh;\n overflow-y: auto;\n }\n "]}]}],e.ctorParameters=function(){return[{type:T.Router},{type:T.ActivatedRoute},{type:c.AngularDataContext},{type:X},{type:d.DatePipe},{type:S.BsModalRef}]},e}(ce),ue=function(){function e(e){this._modal=e}return e.prototype.select=function(r){var o=this;return new Promise(function(t,e){try{var n=o._modal.openModalComponent(de,{"class":"modal-xl modal-table",ignoreBackdropClick:!0,animated:!0,initialState:r}).content;n.dismiss.subscribe(function(e){return t({result:e,items:n.advancedTable.selected})})}catch(a){return e(a)}})},e.decorators=[{type:f.Injectable}],e.ctorParameters=function(){return[{type:h.ModalService}]},e}(),pe=function(){function e(e){this._http=e}return e.prototype.resolve=function(e,t){var n=e.data.list||e.params.list,a=e.data.model||e.params.model;return this._http.get("assets/lists/"+a+"/"+n+".json").toPromise()},e.decorators=[{type:f.Injectable}],e.ctorParameters=function(){return[{type:l.HttpClient}]},e}(),fe=function(){function e(e){this._http=e}return e.prototype.resolve=function(e,t){var n=e.data.list||e.params.list,a=e.data.model||e.params.model;return this._http.get("assets/lists/"+a+"/search."+n+".json").toPromise()},e.decorators=[{type:f.Injectable}],e.ctorParameters=function(){return[{type:l.HttpClient}]},e}(),he=function(){function e(e,t){var n=this;this._router=e,this._activatedRoute=t,e.events.forEach(function(e){e instanceof T.NavigationStart&&n._activeTable&&(n._activeTable=null)})}return Object.defineProperty(e.prototype,"activeTable",{get:function(){return this._activeTable},set:function(e){this._activeTable=e},enumerable:!0,configurable:!0}),e.decorators=[{type:f.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:T.Router},{type:T.ActivatedRoute}]},e.ngInjectableDef=f.defineInjectable({factory:function(){return new e(f.inject(T.Router),f.inject(T.ActivatedRoute))},token:e,providedIn:"root"}),e}(),ge=function(){function e(e,t,n,a,r,o,i){this._context=e,this._activatedRoute=t,this.elRef=n,this.modalService=a,this.userStorage=r,this.formBuilder=o,this._activatedTable=i,this.params=this._activatedRoute.params,this.columns=[]}return e.prototype.ngOnInit=function(){},e.prototype.ngAfterViewInit=function(){var t=this;this.activeTableConfig=this._activatedTable.activeTable.getConfig(),this.storageKey="registrar/settings/"+this.activeTableConfig.title+"/table/columns",this.form=this.formBuilder.group({columns:new u.FormArray([],this.minSelectedColumns(1))}),this.userStorage.getItem(this.storageKey).then(function(e){e&&(t.savedTableSettings=e.value,t.savedTableSettings&&t._activatedTable.activeTable&&t._activatedTable.activeTable.handleColumns(t.savedTableSettings),t.addCheckboxes())})},e.prototype.addCheckboxes=function(){var a=this;this.tableColumns=this.activeTableConfig.columns.slice(1),this.tableColumns.forEach(function(e,t){if(!e.hidden){var n={id:e.name,name:e.title};a.columns.push(n)}}),this.savedTableSettings&&(this.columns.forEach(function(e,t){e.check=!1,e.check=a.savedTableSettings.includes(e.id)}),this.columns.map(function(e,t){var n=new u.FormControl(e.check);a.form.controls.columns.push(n)}))},e.prototype.openTableSettings=function(e){this.modalRef=this.modalService.show(e)},e.prototype.saveTableSettings=function(){var n=this,e=this.form.value.columns.map(function(e,t){return e?n.columns[t].id:null}).filter(function(e){return null!==e});this.userStorage.setItem(this.storageKey,e),this._activatedTable.activeTable&&this._activatedTable.activeTable.handleColumns(e),this.modalRef.hide()},e.prototype.dismiss=function(){this.modalRef.hide()},e.prototype.minSelectedColumns=function(n){void 0===n&&(n=1);return function(e){var t=e.controls.map(function(e){return e.value}).reduce(function(e,t){return t?e+t:e},0);return n<=t?null:{required:!0}}},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-table-settings",template:'<i class="fa fa-edit fa-lg advanced-table-settings" (click)="openTableSettings(modal_settings_template)"></i>\r\n<ng-template #modal_settings_template>\r\n <div class="modal-header">\r\n <h3 class="modal-title" [translate]="\'Tables.ColumnDisplay\'"></h3>\r\n <button type="button" class="close pull-right" aria-label="Close" (click)="dismiss()">\r\n <span aria-hidden="true">×</span>\r\n </button>\r\n </div>\r\n\r\n <form class="form-group p-3 text-left" [formGroup]="form" (ngSubmit)="saveTableSettings()">\r\n <div class="modal-body">\r\n <p [translate]="\'Tables.ColumnDisplayInfo\'"></p>\r\n \x3c!-- <div *ngFor="let column of form.controls.columns.controls; let i = index">\r\n <div formArrayName="columns">\r\n <input class="checkbox checkbox-primary" type="checkbox" [formControlName]="i" id="checkbox{{i}}">\r\n <label for="checkbox{{i}}">\r\n {{columns[i].name | translate}}\r\n </label>\r\n </div>\r\n </div> --\x3e\r\n </div>\r\n <div class="modal-footer">\r\n <button type="button" class="btn btn-light" (click)="dismiss()" [translate]="\'Tables.Cancel\'"> </button>\r\n <button type="submit" class="btn btn-success" [translate]="\'Tables.Save\'"></button>\r\n </div>\r\n </form>\r\n</ng-template>\r\n',encapsulation:f.ViewEncapsulation.None}]}],e.ctorParameters=function(){return[{type:c.AngularDataContext},{type:T.ActivatedRoute},{type:f.ElementRef},{type:S.BsModalService},{type:h.UserStorageService},{type:u.FormBuilder},{type:he}]},e.propDecorators={table:[{type:f.Input}],modal_settings_template:[{type:f.ViewChild,args:["modal_settings_template"]}]},e}(),me=function(u){function e(e,t,n,a,r,o,i,s,l,c){var d=u.call(this)||this;return d._context=e,d._activatedRoute=t,d.datePipe=n,d._modalService=a,d._userStorage=r,d._translate=o,d._advancedSearchValueProvider=i,d._template=s,d._router=l,d._modal=c,d.collapsed=!0,d.allowSave=!0,d.showMore=!0,d.mergeQueryParams=!0,d.viewChange=new f.EventEmitter,d.userSearchList=[],d.selectedList=null,d}return A(e,u),Object.defineProperty(e.prototype,"text",{get:function(){if(this.searchText)return this.searchText.nativeElement.value},set:function(e){this.searchText&&(this.searchText.nativeElement.value=e)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var t=this;this.configChangesSubscription=this.table.configChanges.subscribe(function(e){null!=e&&t.loadUserSearchList().then(function(){t.mergeQueryParams&&(t.queryParamSubscription=t._activatedRoute.queryParams.subscribe(function(e){t.applyQueryParams(e)}))})})},e.prototype.applyQueryParams=function(t){var n=this;if(this.filter={},Object.prototype.hasOwnProperty.call(t,"q"))return this.collapsed=!0,this.text=t.q,this.table.search(this.text);this.text="";var a=Object.assign({},t);Object.prototype.hasOwnProperty.call(t,"s")?(this.collapsed=!1,this.userSearchList&&(this.selectedList=this.userSearchList.find(function(e){return e.name===t.s}),this.selectedList&&(a=this.selectedList.filter))):this.selectedList=null,Object.keys(a).filter(function(t){if(n.table&&n.table.config&&n.table.config.criteria)return n.table.config.criteria.find(function(e){return e.name===t})}).forEach(function(e){var t=a[e];m.TextUtils.isNumber(t)&&(t=parseFloat(a[e])),n.filter[e]!==t&&Object.defineProperty(n.filter,e,{configurable:!0,enumerable:!0,writable:!0,value:t}),null!=n.filter[e]&&(n.collapsed=!1)}),this.filterChange.emit(this.filter),this.getQuery().then(function(e){if(null==n.table.query)n.table.query=e;else if(null!=e){var t=e.getParams();n.table.query.setParam("$filter",t.$filter)}else n.table.query.setParam("$filter",null);n.table.fetch(!0)})},e.prototype.ngOnDestroy=function(){this.queryParamSubscription&&this.queryParamSubscription.unsubscribe(),this.configChangesSubscription&&this.configChangesSubscription.unsubscribe()},e.prototype.ngAfterViewInit=function(){},e.prototype.onSearchKeyDown=function(e){if(this.table&&13===e.keyCode){var t=e.target.value;if(this.mergeQueryParams){var n={q:t};return this.table.config&&this.table.config.criteria&&this.table.config.criteria.forEach(function(e){Object.defineProperty(n,e.name,{configurable:!0,enumerable:!0,writable:!0,value:null})}),this._router.navigate([],{relativeTo:this._activatedRoute,queryParams:n,queryParamsHandling:"merge"})}return this.table.search(t),!1}},e.prototype.transformDate=function(e){return e=this.datePipe.transform(e,"MM/dd/yyyy")},e.prototype.convertToString=function(e){var t="";return null!=e&&(t=e.toString()),t},e.prototype.loadUserSearchList=function(){var n=this;return this.storageKey="tables/"+this.table.config.model+"/searches",this._userStorage.getItem(this.storageKey).then(function(e){var t=e.value||[];return n.table&&n.table.config.searches&&n.table.config.searches.length&&t.push.apply(t,n.table.config.searches.map(function(e){return e.readOnly=!0,e.name=n._translate.instant(e.name),e})),n.userSearchList=t,Promise.resolve()})["catch"](function(e){return console.error("An error occurred while getting user search list"),console.error(e),Promise.resolve()})},e.prototype.onSelectUserSearch=function(e){if(!this.selectedList)return this._router.navigate([],{relativeTo:this._activatedRoute,queryParams:{s:null},queryParamsHandling:"merge"});var t=this.searchInListByName(this.selectedList.name);if(t){if(this.mergeQueryParams){var n={q:null,s:this.selectedList.name};return this.table.config.criteria.forEach(function(e){!1===Object.prototype.hasOwnProperty.call(n,e.name)&&Object.defineProperty(n,e.name,{configurable:!0,enumerable:!0,writable:!0,value:null})}),this._router.navigate([],{relativeTo:this._activatedRoute,queryParams:n,queryParamsHandling:"merge"})}return this.selectedList=t,this.filter=this.selectedList.filter,this.filterChange.emit(this.filter),!0}return!1},e.prototype.searchInListByName=function(t){if(Array.isArray(this.userSearchList)){var e=this.userSearchList.find(function(e){return e.name===t});return e||!1}},e.prototype.updateSavedSearchListItemByName=function(t,e){var n=this.userSearchList.find(function(e){return e.name===t}),a=this.userSearchList.indexOf(n);this.userSearchList[a]=e,this.selectedList=this.userSearchList[a]},e.prototype.updateSavedSearchListItemByObject=function(e,t){var n=this.userSearchList.indexOf(e);this.userSearchList[n]=t,this.selectedList=this.userSearchList[n]},e.prototype.deleteItemFromSavedSearchListByObject=function(t){this.userSearchList=this.userSearchList.filter(function(e){return e!==t}),this.selectedList=null,this.filter={},this.advancedSearch(!0),this.uploadListOnUserStorage()},e.prototype.saveSearch=function(e,t){if(void 0===t&&(t=!0),this.table.config.model)if(this.storageKey="tables/"+this.table.config.model+"/searches",this.filter&&Object.keys(this.filter).length)if(!t&&this.selectedList){var n={name:this.selectedList.name,filter:I({},this.filter)};this.updateSavedSearchListItemByObject(this.selectedList,n),this.uploadListOnUserStorage()}else this.modalRef=this._modalService.show(e);else this._modal.showWarningDialog(this._translate.instant("AdvancedSearch.Modal.Title"),this._translate.instant("AdvancedSearch.Modal.EmptyCriteriaList"),h.DIALOG_BUTTONS.Ok);else this._modal.showWarningDialog(this._translate.instant("AdvancedSearch.Modal.Title"),this._translate.instant("AdvancedSearch.Modal.NoListDefined"),h.DIALOG_BUTTONS.Ok)},e.prototype.confirmModal=function(e){if(e&&!this.searchInListByName(e)){var t={name:e,filter:I({},this.filter)};this.userSearchList&&0!==this.userSearchList.length?(this.userSearchList.push(t),this.storageValue=this.userSearchList):(this.storageValue=[t],this.userSearchList=this.storageValue),this.selectedList=t,this.uploadListOnUserStorage(),this.modalRef.hide()}else e&&this.searchInListByName(e)?alert(this._translate.instant("AdvancedSearch.Modal.TitleOnListAlreadyCreated")):alert(this._translate.instant("AdvancedSearch.Modal.TitleOnUserError"))},e.prototype.closeModal=function(){this.modalRef.hide()},e.prototype.uploadListOnUserStorage=function(){this._userStorage.setItem(this.storageKey,this.userSearchList.filter(function(e){return!e.readOnly}))},e.prototype.asyncAdvancedSearch=function(e){return P(this,void 0,void 0,function(){var t,n;return O(this,function(e){switch(e.label){case 0:return this.table&&this.table.config&&Array.isArray(this.table.config.criteria)?[4,this.getQuery()]:[3,2];case 1:if(t=e.sent(),this.mergeQueryParams)return this.selectedList=null,n=Object.assign({q:null,s:null},this.filter),this.table.config.criteria.forEach(function(e){!1===Object.prototype.hasOwnProperty.call(n,e.name)&&Object.defineProperty(n,e.name,{configurable:!0,enumerable:!0,writable:!0,value:null})}),[2,this._router.navigate([],{relativeTo:this._activatedRoute,queryParams:n,queryParamsHandling:"merge"})];this.table.query?this.table.query.setParam("$filter",t.getParams().$filter):this.table.query=t,this.table.fetch(),e.label=2;case 2:return[2]}})})},e.prototype.search=function(){return this.asyncAdvancedSearch().then(function(){})},e.prototype.getQuery=function(){return P(this,void 0,void 0,function(){var n,a,t,r=this;return O(this,function(e){switch(e.label){case 0:return this.collapsed?[2,null]:this.table&&this.table.config&&Array.isArray(this.table.config.criteria)?(n=[],[4,this._advancedSearchValueProvider.getValues()]):[3,2];case 1:return a=e.sent(),this.table.config.criteria.forEach(function(e){if(Object.prototype.hasOwnProperty.call(r.filter,e.name))if(r.convertToString(r.filter[e.name]).includes("GMT")){var t=r.transformDate(r.filter[e.name]);n.push(r._template.transform(e.filter,{value:t}))}else"undefined"!==r.filter[e.name]&&n.push(r._template.transform(e.filter,Object.assign({value:r.filter[e.name]},a)))}),t=void 0,n||n.length?(t=this._context.model(this.table.config.model).asQueryable()).setParam("filter",n.join(" and ")):t=this._context.model(this.table.config.model).asQueryable(),[2,t];case 2:return[2]}})})},e.prototype.advancedSearch=function(e){return this.asyncAdvancedSearch(e)},e.prototype.clear=function(){if(this.mergeQueryParams){var t={q:this.selectedList=null,s:null};return this.table.config.criteria.forEach(function(e){!1===Object.prototype.hasOwnProperty.call(t,e.name)&&Object.defineProperty(t,e.name,{configurable:!0,enumerable:!0,writable:!0,value:null})}),this._router.navigate([],{relativeTo:this._activatedRoute,queryParams:t,queryParamsHandling:"merge"})}this.filter={},this.selectedList=null,this.filterChange.emit(this.filter)},Object.defineProperty(e.prototype,"viewState",{get:function(){return{advancedView:!this.collapsed}},enumerable:!0,configurable:!0}),e.prototype.toggleView=function(){return P(this,void 0,void 0,function(){return O(this,function(e){return this.collapsed=!this.collapsed,this.viewChange.emit(this.viewState),[2]})})},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-table-search",template:'<div class="s--list-navbar d-none d-sm-block">\n\n <div id="collapse-header" [ngClass]="{\'show\':collapsed}" class="collapse multi-collapse">\n <form class="form-inline p-3 col">\n <div class="form-group col-7" [ngClass]= "{ \'col-12\': !showMore }">\n <label class="pr-3" for="searchText" [translate]="\'Tables.Search\'"></label>\n <input (keydown)="onSearchKeyDown($event)" spellcheck="false" type="text" id="searchText" name="searchText"\n class="form-control col text-left" placeholder="{{ \'Tables.SearchPlaceholder\' | translate }}" #searchText>\n </div>\n <div *ngIf="showMore" class="col-5 text-right text-secondary" id="heading3">\n <button class="d-inline-block btn btn-link collapsed float-right text-secondary text-decoration-none"\n type="button" (click)="toggleView();">\n <span class="d-none d-sm-inline" [translate]="\'AdvancedSearch.More\'"></span>\n <i class="ml-2 pt-1 fa fa-chevron-down"></i>\n </button>\n </div>\n </form>\n </div>\n\n <div id="collapse3" [ngClass]="{\'show\':!collapsed}" class="collapse multi-collapse" aria-labelledby="heading3">\n <div class="row">\n <div class="col-sm-12">\n <div id="advanced-form">\n <ng-content select="advanced-search"></ng-content>\n <hr class="mt-0 mb-0" width="97%">\n <div class="row">\n <div class="col-sm-12">\n <div class="form-inline pb-3 pt-3 pr-1 pl-1 col">\n\n <div class="form-group col-4">\n <div class="d-flex flex-row w-100" *ngIf="allowSave">\n <label class="pr-3 d-none" [translate]="\'AdvancedSearch.SavedSearches\'"></label>\n <select *ngIf="userSearchList" class="custom-select text-secondary flex col-12" (change)="onSelectUserSearch($event)" [(ngModel)]="selectedList">\n <option [ngValue]="null" [translate]="\'AdvancedSearch.Choose\'"></option>\n <option *ngFor="let item of userSearchList" [ngValue]="item">{{ item.name }}</option>\n </select>\n <select *ngIf="!userSearchList" class="custom-select flex col-6">\n <option [value]="null" [translate]="\'AdvancedSearch.Choose\'"></option>\n </select>\n </div>\n </div>\n\n <div class="col-3 d-flex flex-row w-100">\n <div class="btn-group" *ngIf="allowSave" dropdown>\n <button type="button" class="btn btn-sm btn-primary" (click)="saveSearch(templateToUse, ( (selectedList && selectedList.readOnly) ? true : false ) )" [translate]="\'AdvancedSearch.SaveCurrentSearch\'"></button>\n <button type="button" dropdownToggle class="btn btn-sm btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\n <span class="sr-only" [translate]="\'AdvancedSearch.ToggleDropdown\'"></span>\n </button>\n\n <div class="dropdown-menu" *dropdownMenu>\n <a [ngClass]="{\'disabled\': selectedList && selectedList.readOnly}" class="dropdown-item" (click)="saveSearch(templateToUse, false)" [translate]="\'AdvancedSearch.Save\'" href="javascript:void(0)"></a>\n <a class="dropdown-item" (click)="saveSearch(templateToUse)" [translate]="\'AdvancedSearch.SaveAs\'" href="javascript:void(0)"></a>\n <div class="dropdown-divider"></div>\n <a [ngClass]="{\'disabled\': selectedList && selectedList.readOnly}" class="dropdown-item" (click)="deleteItemFromSavedSearchListByObject(selectedList)" [translate]="\'AdvancedSearch.Delete\'" href="javascript:void(0)"></a>\n </div>\n </div>\n </div>\n\n <div class="col-5 text-right text-secondary">\n <button type="button" class="btn btn-light text-secondary pl-2 pr-2 mr-2" (click)="clear()">\n <i class="fa fa-eraser"></i>\n </button>\n <button type="button" class="btn btn-success pl-4 pr-4 mr-2" (click)="advancedSearch($event);"\n [translate]="\'Tables.Search\'"></button>\n <button class="d-inline-block btn btn-link collapsed float-right text-secondary text-decoration-none"\n type="button" (click)="toggleView();">\n <span class="d-none d-sm-inline" [translate]="\'AdvancedSearch.Less\'"></span>\n <i class="ml-2 pt-1 fa fa-chevron-up"></i>\n </button>\n </div>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-template #templateToUse>\n <div class="modal-header">\n <h4 class="modal-title pull-left" [translate]="\'AdvancedSearch.Modal.Title\'"></h4>\n <button type="button" class="close pull-right" aria-label="Close" (click)="modalRef.hide()">\n <span aria-hidden="true">×</span>\n </button>\n </div>\n <div class="modal-body mt-0 mb-0 text-center">\n <div>\n <p class="text-secondary text-left" [translate]="\'AdvancedSearch.Modal.Help\'"></p>\n </div>\n <form class="p-3 text-center" #newListForm="ngForm" >\n <div [ngVar]="{ name: ( selectedList?.name ? ( selectedList?.name + \' (1)\' ) : null ) }" #model="ngVar">\n <input [(ngModel)]="model.value.name" [required]="true" id="newListName" name="newListName" type="text" class="form-control" placeholder="{{ \'AdvancedSearch.Modal.SaveNamePlaceholder\' | translate }}"/>\n <div class="btn-group mt-4">\n <button [disabled]="newListForm.invalid" type="button" class="btn btn-primary" (click)="confirmModal(model.value.name)" [translate]="\'AdvancedSearch.Modal.Accept\'"></button>\n <button type="button" class="btn btn-gray-300 text-white" (click)="closeModal()" [translate]="\'AdvancedSearch.Modal.Close\'"></button>\n </div>\n </div>\n </form>\n </div>\n </ng-template>\n\n</div>\n',encapsulation:f.ViewEncapsulation.None}]}],e.ctorParameters=function(){return[{type:c.AngularDataContext},{type:T.ActivatedRoute},{type:d.DatePipe},{type:S.BsModalService},{type:h.UserStorageService},{type:b.TranslateService},{type:X},{type:h.TemplatePipe},{type:T.Router},{type:h.ModalService}]},e.propDecorators={table:[{type:f.Input}],collapsed:[{type:f.Input}],allowSave:[{type:f.Input}],showMore:[{type:f.Input}],mergeQueryParams:[{type:f.Input}],searchText:[{type:f.ViewChild,args:["searchText"]}],viewChange:[{type:f.Output,args:["viewChange"]}]},e}(ie),be={ActionLinkFormatter:new $,ButtonFormatter:new N,DateTimeFormatter:new K,LanguageFormatter:new W,LinkFormatter:new V,NestedPropertyFormatter:new q,NgClassFormatter:new Y,SelectRowFormatter:new U,TemplateFormatter:new H,TranslationFormatter:new G,TrueFalseFormatter:new Q},ve=function(){function e(){}return e.decorators=[{type:f.Component,args:[{selector:"table-simple-header-tools",template:"\n <ng-content></ng-content>\n "}]}],e}(),ye=function(){function e(){}return e.prototype.ngOnChanges=function(e){var t=this;if(e.table){if(null==e.table.currentValue&&this.dataLoadSubscription)return void this.dataLoadSubscription.unsubscribe();e.table.currentValue!=e.table.previousValue&&(this.dataLoadSubscription=e.table.currentValue.load.subscribe(function(e){t.recordsTotal=e.recordsTotal}))}},e.prototype.ngOnDestroy=function(){this.dataLoadSubscription&&this.dataLoadSubscription.unsubscribe()},e.prototype.ngOnInit=function(){},e.decorators=[{type:f.Component,args:[{selector:"app-table-simple-header",template:'<div class="row">\n <div class="col-auto mt-4">\n <div class="font-xl text-secondary" *ngIf="recordsTotal === 0">\n <span> </span>\n </div>\n <div class="font-xl text-secondary" *ngIf="recordsTotal > 1">\n <span>{{recordsTotal}}</span><span> </span><span [translate]="\'Tables.Items\'"></span>\n </div>\n <div class="font-xl text-secondary" *ngIf="recordsTotal === 1">\n <span>{{recordsTotal}}</span><span> </span><span [translate]="\'Tables.Item\'"></span>\n </div>\n </div>\n <div class="pull-right ml-auto mr-3 mt-3">\n <div class="font-lg btn-toolbar mt-2">\n <ng-content select="table-simple-header-tools"></ng-content>\n </div>\n </div>\n</div>\n\n'}]}],e.ctorParameters=function(){return[]},e.propDecorators={table:[{type:f.Input}]},e}(),Te=function(e){function t(){return e.call(this,"Advanced table component cannot be empty at this context.")||this}return A(t,e),t}(Error),Se=function(){function e(e){this.table=e,this.dirty=!1,this.dirtyChange=new f.EventEmitter(!1)}return e.prototype.add=function(){for(var e,t,n=[],a=0;a<arguments.length;a++)n[a]=arguments[a];if(null==this.table)throw new Te;var r=this.table.config.columns[0].property||this.table.config.columns[0].name;try{for(var o=L(n),i=o.next();!i.done;i=o.next()){var s=i.value,l=this.table.dataTable.rows(':has(input[data-id="'+s[r]+'"])').nodes().to$();l.hasClass("removed")?l.toggleClass("removed text-gray-400 text-decoration-line-through"):(this.table.dataTable.rows.add([s]),(l=this.table.dataTable.rows(':has(input[data-id="'+s[r]+'"])').nodes().to$()).toggleClass("added font-weight-bold text-success"))}}catch(p){e={error:p}}finally{try{i&&!i.done&&(t=o["return"])&&t.call(o)}finally{if(e)throw e.error}}this.table.dataTable.draw();var c=this.table.dataTable.rows(".removed")[0].length,d=this.table.dataTable.rows(".added")[0].length,u=this.table.dataTable.rows().data();this.table.load.emit({data:u,recordsFiltered:u.length-c,recordsTotal:u.length-c}),this.dirty=0<c||0<d,this.dirtyChange.emit(this.dirty)},e.prototype.remove=function(){for(var e,t,n=[],a=0;a<arguments.length;a++)n[a]=arguments[a];if(null==this.table)throw new Te;var r=this.table.config.columns[0].property||this.table.config.columns[0].name,o=function(t){var e=i.table.dataTable.rows(':has(input[data-id="'+t[r]+'"])').nodes().to$();e.hasClass("added")?i.table.dataTable.rows(e).remove():e.toggleClass("removed text-gray-400 text-decoration-line-through");var n=i.table.selected.findIndex(function(e){return e[r]===t[r]});0<=n&&i.table.selected.splice(n,1)},i=this;try{for(var s=L(n),l=s.next();!l.done;l=s.next()){o(l.value)}}catch(p){e={error:p}}finally{try{l&&!l.done&&(t=s["return"])&&t.call(s)}finally{if(e)throw e.error}}this.table.dataTable.draw();var c=this.table.dataTable.rows().data(),d=this.table.dataTable.rows(".removed")[0].length,u=this.table.dataTable.rows(".added")[0].length;this.table.load.emit({data:c,recordsFiltered:c.length-d,recordsTotal:c.length-d}),this.dirty=0<d||0<u,this.dirtyChange.emit(this.dirty)},e.prototype.set=function(e){if(null==this.table)throw new Te;this.table.selected=[],this.table.dataTable.clear(),this.table.dataTable.rows.add(e).draw(),this.table.load.emit({data:e,recordsFiltered:e.length,recordsTotal:e.length})},e.prototype.undo=function(){if(null==this.table)throw new Te;this.table.dataTable.rows(".removed").nodes().to$().toggleClass("removed text-gray-400 text-decoration-line-through"),this.table.dataTable.rows(".added").remove(),this.table.selected=[];var e=this.table.dataTable.rows().data();this.table.dataTable.draw(),this.table.load.emit({data:e,recordsFiltered:e.length,recordsTotal:e.length}),this.dirty=!1,this.dirtyChange.emit(this.dirty)},e.prototype.rows=function(){if(null==this.table)throw new Te;return Array.from(this.table.dataTable.rows(":not(.removed)").data())},e.decorators=[{type:f.Directive,args:[{selector:"[tableEditor]"}]}],e.ctorParameters=function(){return[{type:ae}]},e.propDecorators={dirtyChange:[{type:f.Output}]},e}(),we=function(){function e(e,t,n,a,r,o){this._activatedTable=e,this._context=t,this._config=n,this._translate=a,this._loadingService=r,this._errorService=o}return e.prototype.clickEvent=function(l){return P(this,void 0,void 0,function(){var t,n,a,r,o,i,s;return O(this,function(e){return l.preventDefault(),l.stopPropagation(),this._activatedTable.activeTable&&(t=this._activatedTable.activeTable.lastQuery,n=this._activatedTable.activeTable.config,a=this._context.getService().getHeaders(),r=t.getModel(),o=this._context.model(r).asQueryable(),i=t.getParams(),o=this.constructQuery(o,i,n,a),1e3,o.skip(0).take(1e3),s=this.constructURL(o),this.downloadFile(s,o.getService().getHeaders(),o.getModel())),[2]})})},e.prototype.setParams=function(t,n){return n&&"object"==typeof n&&Object.keys(n).forEach(function(e){t.setParam(e,n[e])}),t},e.prototype.setHeaders=function(t,n){return Object.keys(n).forEach(function(e){n.hasOwnProperty(e)&&t.getService().setHeader(e,n[e])}),t.getService().setHeader("Accept","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"),t},e.prototype.constructQueryParam=function(e,f){var h=this,t=e.getParams().$select,n=t.split(",");return t=(n=n.map(function(e){var t,n,a,r,o=e.split(" ");if(3===o.length&&f&&f.columns)try{for(var i=L(f.columns),s=i.next();!s.done;s=i.next()){(d=s.value).property===o[2]&&d.title?o[2]='"'+h._translate.instant(d.title)+'"':d.property===o[2]&&(o[2]='"'+h._translate.instant(o[2])+'"')}}catch(u){t={error:u}}finally{try{s&&!s.done&&(n=i["return"])&&n.call(i)}finally{if(t)throw t.error}}if(1!==o.length)return o.join(" ");if(f&&f.columns)try{for(var l=L(f.columns),c=l.next();!c.done;c=l.next()){var d;if((d=c.value).name===o[0]&&d.title){o[0]=o[0]+' as "'+h._translate.instant(d.title)+'"';break}if(d.name===o[0]&&d.property){o[0]=o[0]+' as "'+h._translate.instant(d.property)+'"';break}if(o[0]===d.name&&"id"===o[0]&&d.hidden)break;o[0]!=d.name&&o[0]!==d.property||(o[0]=o[0]+' as "'+h._translate.instant(o[0])+'"')}}catch(p){a={error:p}}finally{try{c&&!c.done&&(r=l["return"])&&r.call(l)}finally{if(a)throw a.error}}return o[0]})).join(","),e.setParam("$select",t),e},e.prototype.constructURL=function(n){var e=n.getService().getBase(),a=e.endsWith("/")?e+n.getModel()+"?":e+"/"+n.getModel()+"?";return Object.keys(n.getParams()).forEach(function(e,t){a+=0===t?e+"="+n.getParams()[e]:"&"+e+"="+n.getParams()[e]}),a},e.prototype.constructQuery=function(e,t,n,a){var r=this.setParams(e,t);return r=this.setHeaders(r,a),r=this.constructQueryParam(r,n)},e.prototype.downloadFile=function(e,t,r){var o=this;this._loadingService.showLoading(),fetch(encodeURI(e),{headers:t,credentials:"include"}).then(function(e){if(e&&!e.ok)throw new m.ResponseError(e.statusText,e.status);return e.blob()}).then(function(e){var t=window.URL.createObjectURL(e),n=document.createElement("a");document.body.appendChild(n),n.setAttribute("style","display: none"),n.href=t;var a=r+".xlsx";n.download=a,window.navigator&&window.navigator.msSaveOrOpenBlob?window.navigator.msSaveOrOpenBlob(e,a):n.click(),window.URL.revokeObjectURL(t),n.remove(),o._loadingService.hideLoading()})["catch"](function(e){o._loadingService.hideLoading(),o._errorService.showError(e,{continueLink:"."})})},e.decorators=[{type:f.Directive,args:[{selector:".universis-btn-export"}]}],e.ctorParameters=function(){return[{type:he},{type:c.AngularDataContext},{type:h.ConfigurationService},{type:b.TranslateService},{type:h.LoadingService},{type:h.ErrorService}]},e.propDecorators={clickEvent:[{type:f.HostListener,args:["click",["$event"]]}]},e}(),xe=function(){function e(){}return e.prototype.transform=function(e,t,n){return Array.isArray(e)&&n&&n in t?t[n](e):"-"},e.decorators=[{type:f.Pipe,args:[{name:"callAggregator"}]}],e}(),Ce=function(){function e(e){this._translateService=e}return e.prototype.transform=function(e,t){var n=this;return e?(t!==undefined&&null!==t&&"undefined"!==t&&"null"!==t||(t=this._translateService.instant("Tables.NotDefined")),e.split(" ").map(function(e){return n._translateService.instant(e)}).map(function(e){return e.replace("${param}",t)}).join(" ")):""},e.decorators=[{type:f.Pipe,args:[{name:"aggregatorListTitle"}]}],e.ctorParameters=function(){return[{type:b.TranslateService}]},e}(),_e={Tables:{Export:"Εξαγωγή",More:"Περισσότερα",Search:"Αναζήτηση",SearchPlaceholder:"Αναζήτηση...",GroupBy:"Ομαδοποίηση ανά",DataTable:{paginate:{first:"Πρώτη σελίδα",last:"Τελεταία σελίδα",next:"Επόμενη",previous:"Προηγούμενη"},info:"Εμφάνιση _START_ έως _END_ από _TOTAL_ εγγραφές",infoEmpty:"Δεν βρέθηκαν εγγραφές",loading:"Εμφάνιση δεδομένων...",processing:"Παραλαβή δεδομένων...",emptyTable:"Δεν βρέθηκαν αποτελέσματα."},ColumnDisplay:"Επιλογή Εμφάνισης στηλών",ColumnDisplayInfo:"Επιλέξτε τις στήλες που θέλετε να εμφανίζονται.",Save:"Εφαρμογή",Apply:"Εφαρμογή",Cancel:"Ακύρωση",RecordsPerPage:"Εγγραφές ανά σελίδα",PageInfo:"{{start}}-{{end}} από {{recordsTotal}}",SearchListPlaceholder:"Αναζητήστε στη λίστα...",Filters:"Φίλτρα",All:"Όλα",AddItem:"Προσθήκη στοιχείου",EmptyTableTitle:"Δεν βρέθηκαν αποτελέσματα.",EmptyTableMessage:"Προσπαθήστε να χρησιμοποιήσετε άλλες λέξεις κλειδιά.",RemoveItem:"Διαγραφή στοιχείου",Items:"στοιχεία",Item:"στοιχείο",AddItemMessage:{title:"Προσθήκη στοιχείων",one:"Ένα νέο στοιχείο προστέθηκε με επιτυχία.",many:"{{value}} νέα στοιχεία προστέθηκαν με επιτυχία."},RemoveItemMessage:{title:"Αφαίρεση στοιχείων",one:"Ένα στοιχείο αφαιρέθηκε με επιτυχία.",many:"{{value}} στοιχεία αφαιρέθηκαν με επιτυχία."},RemoveItemsTitle:"Διαγραφή στοιχείου",RemoveItemsMessage:"Πρόκειται να διαγράψετε ένα ή περισσότερα στοιχεία. Θέλετε να προχωρήσετε?",SelectAll:"Επιλογή όλων",ClearSelection:"Αναίρεση επιλογής",Actions:{Label:"Επεξεργασία",Start:"Έναρξη",ActionMessage:{None:"Δεν έχετε επιλέξει κανένα στοιχείο που να ακολουθεί τις προϋποθέσεις της ενέργειας.",One:"Έχετε επιλέξει ένα στοιχείο που ακολουθεί τις προϋποθέσεις της ενέργειας. Πατήστε το πλήκτρο Έναρξη για να ξεκινήσει η διαδικασία.",Many:"Έχετε επιλέξει {{length}} στοιχεία που ακολουθούν τις προϋποθέσεις της ενέργειας. Πατήστε το πλήκτρο Έναρξη για να ξεκινήσει η διαδικασία."},CompletedWithErrors:{Title:"Η διαδικασία ολοκληρώθηκε με σφάλματα.",Description:{One:"Ένα στοιχείο δεν ανανεώθηκε λόγω ενός σφάλματος που συνέβη κατά την εκτέλεση της διαδικασίας.",Many:"{{errors}} στοιχεία δεν ανανεώθηκαν λόγω ενός σφάλματος που συνέβη κατά την εκτέλεση της διαδικασίας."}},CompletedWithSuccess:{Title:"Η διαδικασία ολοκληρώθηκε με επιτυχία."}}},TrueFalse:{"long":{Yes:"Ναι",No:"Όχι"}},AdvancedSearch:{Choose:"<Επιλέξτε μια αναζήτηση>",ChooseDate:"Επιλογή ημερομηνίας",SavedSearches:"Αποθηκευμένες αναζητήσεις",ToggleDropdown:"Εμφάνιση λίστας",SaveCurrentSearch:"Αποθήκευση αναζήτησης",SaveAs:"Αποθήκευση ως",Save:"Αποθήκευση",Delete:"Διαγραφή",More:"Περισσότερα",Less:"Λιγότερα",Modal:{Title:"Αποθήκευση κριτηρίων αναζήτησης",Help:"Ορίστε έναν τίτλο για τα επιλεγμένα κριτήρια αναζήτησης. Αυτός ο τίτλος θα σας βοηθήσει να τα χρησιμοποιήσετε ξανά στο μέλλον.",TitleOnUserError:"Παρακαλώ εισάγετε έναν τίτλο",TitleOnListAlreadyCreated:"Το όνομα αυτό χρησιμοποιείται ήδη. Διαλέξτε ένα διαφορετικό.",NoListDefined:"Δεν έχει οριστεί το σημείο αποθήκευσης της λίστας",EmptyCriteriaList:"Δεν έχετε καθορίσει κανένα κριτήριο για αποθήκευση",SaveNameLabel:"Ονομασία λίστας",SaveNamePlaceholder:"Εισάγετε έναν τίτλο",Accept:"Αποθήκευση",Decline:"Απόρριψη",Close:"Κλείσιμο"}}},Ae={Tables:{Export:"Export",More:"More",Search:"Search",SearchPlaceholder:"Search...",GroupBy:"Group by",DataTable:{paginate:{first:"First",last:"Last",next:"Next",previous:"Previous"},info:"Showing _START_ to _END_ of _TOTAL_ entries",infoEmpty:"Showing 0 to 0 of 0 entries",processing:"Processing data...",emptyTable:"There are no matching records."},ColumnDisplay:"Column Display",ColumnDisplayInfo:"Επιλέξτε τις στήλες που θέλετε να εμφανίζονται.",Save:"Save",Apply:"Apply",Cancel:"Cancel",RecordsPerPage:"Items per page",PageInfo:"{{start}}-{{end}} of {{recordsTotal}}",SearchListPlaceHolder:"Search in list...",Filters:"Filters",All:"All",AddItem:"Add item",EmptyTableTitle:"There are no matching records.",EmptyTableMessage:"Please try to use other keywords or search parameters.",RemoveItem:"Remove item",Items:"items",Item:"item",AddItemMessage:{title:"Add item",one:"A new item has been added successfully.",many:"{{value}} new items have been added successfully."},RemoveItemMessage:{title:"Remove items",one:"An item has been successfully removed.",many:"{{value}} items have been successfully removed."},RemoveItemsTitle:"Remove items",RemoveItemsMessage:"You are going to remove one or more instructor courses. Do you want to proceed?",SelectAll:"Select all",ClearSelection:"Clear selection",Actions:{Label:"Edit",Start:"Start",ActionMessage:{None:"There is no selected item that meets action requirements.",One:"You have selected one item that meets action requirements.",Many:"You have selected {{length}} items that meet action requirements."},CompletedWithErrors:{Title:"The operation was completed with errors.",Description:{One:"One item has not been updated due to an error occurred while executing process.",Many:"{{errors}} items have not been updated due to an error occurred while executing process."}},CompletedWithSuccess:{Title:"The operation was completed successfully."}}},TrueFalse:{"long":{Yes:"Yes",No:"No"}},AdvancedSearch:{Choose:"<Select a saved search>",ChooseDate:"Choose date",SavedSearches:"Saved searches",ToggleDropdown:"Toggle Dropdown",SaveCurrentSearch:"Save search",SaveAs:"Save as...",Save:"Save",Delete:"Remove",More:"More",Less:"Less",Modal:{Title:"Save current search criteria",Help:"Please add a title for the given search criteria. This title will help you to use those criteria again in the future.",TitleOnUserError:"Please use a valid name for your list",TitleOnListAlreadyCreated:"Name already in use. Please choose a different one",NoListDefined:"Cannot define user storage key.",EmptyCriteriaList:"Please define search criteria before save.",SaveNameLabel:"List name",SaveNamePlaceholder:"Type a title here...",Accept:"Save",Decline:"Decline",Close:"Close"}}},Ie=be,Pe=function(){function e(e){this._translateService=e,this.ngOnInit()["catch"](function(e){console.error("An error occurred while loading tables module"),console.error(e)})}return e.prototype.ngOnInit=function(){return P(this,void 0,void 0,function(){return O(this,function(e){return this._translateService.setTranslation("en",Ae,!0),this._translateService.setTranslation("el",_e,!0),[2]})})},e.decorators=[{type:f.NgModule,args:[{imports:[d.CommonModule,h.SharedModule,b.TranslateModule,u.FormsModule,u.ReactiveFormsModule,T.RouterModule,g.RouterModalModule,y.FormioModule,v.AdvancedFormsModule,h.SharedModule,S.ModalModule,w.BsDropdownModule,x.ProgressbarModule,C.NgPipesModule],providers:[d.DatePipe,h.TemplatePipe,{provide:Z,useValue:Ie},pe,fe,ue,M,C.GroupByPipe],declarations:[ae,me,we,ge,ce,se,re,oe,ye,ve,de,Se,D,R,xe,Ce,j],exports:[ae,me,we,ge,se,re,oe,ye,ve,de,Se,D,R,j],entryComponents:[ce,ge,oe,de,j],schemas:[f.CUSTOM_ELEMENTS_SCHEMA]}]}],e.ctorParameters=function(){return[{type:b.TranslateService}]},e}();e.AddItemsComponent=j,e.AdvancedAggregatorComponent=D,e.AdvancedAggregatorListComponent=R,e.AdvancedListComponent=re,e.AdvancedRowActionComponent=oe,e.AdvancedSearchFormComponent=se,e.AdvancedSelectComponent=de,e.AdvancedSelectService=ue,e.AdvancedTableConfigurationResolver=pe,e.AdvancedSearchConfigurationResolver=fe,e.AdvancedColumnFormatter=B,e.NestedPropertyFormatter=q,e.ButtonFormatter=N,e.LinkFormatter=V,e.ActionLinkFormatter=$,e.SelectRowFormatter=U,e.TemplateFormatter=H,e.TrueFalseFormatter=Q,e.TranslationFormatter=G,e.DateTimeFormatter=K,e.NgClassFormatter=Y,e.LanguageFormatter=W,e.COLUMN_FORMATTERS=Z,e.AdvancedTableConfiguration=ne,e.AdvancedTableComponent=ae,e.AdvancedTableSettingsComponent=ge,e.AdvancedTableSearchBaseComponent=ie,e.AdvancedTableSearchComponent=me,e.FORMATTERS=be,e.AdvancedFilterValueProvider=X,e.AdvancedTableModalBaseTemplate=le,e.AdvancedTableModalBaseComponent=ce,e.SimpleHeaderToolsComponent=ve,e.TableSimpleHeaderComponent=ye,e.AdvancedTableNotNullError=Te,e.AdvancedTableEditorDirective=Se,e.BtnExpDirective=we,e.AdvancedAggregatorPipe=xe,e.ParseTitlePipe=Ce,e.AdvancedAggregatorService=M,e.TablesModule=Pe,e.ɵ0=Ie,e.ActivatedTableService=he,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("iso-639-1/build"),require("rxjs"),require("jquery"),require("datatables.net"),require("lodash"),require("datatables.net-scroller"),require("rxjs/add/observable/combineLatest"),require("@angular/common/http"),require("@themost/angular"),require("@themost/client"),require("@angular/core"),require("@angular/common"),require("@ngx-translate/core"),require("@angular/forms"),require("@universis/common"),require("@universis/common/routing"),require("@universis/forms"),require("angular-formio"),require("@angular/router"),require("ngx-bootstrap/modal"),require("ngx-bootstrap/progressbar"),require("ngx-pipes")):"function"==typeof define&&define.amd?define("@universis/ngx-tables",["exports","iso-639-1/build","rxjs","jquery","datatables.net","lodash","datatables.net-scroller","rxjs/add/observable/combineLatest","@angular/common/http","@themost/angular","@themost/client","@angular/core","@angular/common","@ngx-translate/core","@angular/forms","@universis/common","@universis/common/routing","@universis/forms","angular-formio","@angular/router","ngx-bootstrap/modal","ngx-bootstrap/progressbar","ngx-pipes"],t):t((e.universis=e.universis||{},e.universis["ngx-tables"]={}),e.ISO6391,e.rxjs,e.jQuery_,null,e.lodash,null,e.rxjs["add/observable/combineLatest"],e.ng.common.http,e.i1,e.client,e.ng.core,e.ng.common,e.core,e.ng.forms,e.i2,e.routing,e.forms$1,e.angularFormio,e.ng.router,e.modal,e.progressbar,e.ngxPipes)}(this,function(e,r,p,t,n,o,a,i,s,c,m,f,l,b,d,h,u,g,v,y,T,S,w){"use strict";var x=function(e,t){return(x=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function C(e,t){function n(){this.constructor=e}x(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var _=function(){return(_=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};function A(e,i,s,l){return new(s||(s=Promise))(function(t,n){function a(e){try{o(l.next(e))}catch(t){n(t)}}function r(e){try{o(l["throw"](e))}catch(t){n(t)}}function o(e){e.done?t(e.value):function n(t){return t instanceof s?t:new s(function(e){e(t)})}(e.value).then(a,r)}o((l=l.apply(e,i||[])).next())})}function I(a,r){var o,i,s,e,l={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return e={next:t(0),"throw":t(1),"return":t(2)},"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function n(e){if(o)throw new TypeError("Generator is already executing.");for(;l;)try{if(o=1,i&&(s=2&e[0]?i["return"]:e[0]?i["throw"]||((s=i["return"])&&s.call(i),0):i.next)&&!(s=s.call(i,e[1])).done)return s;switch(i=0,s&&(e=[2&e[0],s.value]),e[0]){case 0:case 1:s=e;break;case 4:return l.label++,{value:e[1],done:!1};case 5:l.label++,i=e[1],e=[0];continue;case 7:e=l.ops.pop(),l.trys.pop();continue;default:if(!(s=0<(s=l.trys).length&&s[s.length-1])&&(6===e[0]||2===e[0])){l=0;continue}if(3===e[0]&&(!s||e[1]>s[0]&&e[1]<s[3])){l.label=e[1];break}if(6===e[0]&&l.label<s[1]){l.label=s[1],s=e;break}if(s&&l.label<s[2]){l.label=s[2],l.ops.push(e);break}s[2]&&l.ops.pop(),l.trys.pop();continue}e=r.call(a,l)}catch(t){e=[6,t],i=0}finally{o=s=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([t,e])}}}function P(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],a=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&a>=e.length&&(e=void 0),{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function O(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var a,r,o=n.call(e),i=[];try{for(;(void 0===t||0<t--)&&!(a=o.next()).done;)i.push(a.value)}catch(s){r={error:s}}finally{try{a&&!a.done&&(n=o["return"])&&n.call(o)}finally{if(r)throw r.error}}return i}var L,E,k=function(d){function e(e,t,n,a,r,o,i,s,l){var c=d.call(this,e,t)||this;return c._errorService=n,c._modalService=a,c._appEvent=r,c._toastService=o,c._loadingService=i,c._translateService=s,c._context=l,c.loading=!1,c.items=[],c.messages=[],c.modalClass="modal-lg",c.okButtonDisabled=!0,c}return C(e,d),e.prototype.ngOnInit=function(){var t=this;if(this.selectedSubscription=this.selectComponent.advancedTable.selectedItems.subscribe(function(e){null==t.formName&&(t.okButtonDisabled=0===e.length)}),null!=this.formName&&(this.formChangeSubscription=this.formComponent.form.change.subscribe(function(e){Object.prototype.hasOwnProperty.call(e,"isValid")&&(t.okButtonDisabled=!e.isValid)})),this.target)this.target},e.prototype.cancel=function(){if(this.clearMessages(),!this.loading)return this._modalService.modalRef?this._modalService.modalRef.hide():void 0},e.prototype.ngOnDestroy=function(){this.formLoadSubscription&&this.formLoadSubscription.unsubscribe(),this.formChangeSubscription&&this.formChangeSubscription.unsubscribe(),this.selectedSubscription&&this.selectedSubscription.unsubscribe()},Object.defineProperty(e.prototype,"formData",{get:function(){return null===this.formComponent?null:this.formComponent.form.formio.data},enumerable:!0,configurable:!0}),e.prototype.ok=function(){var n=this;try{return this.clearMessages(),new Promise(function(t,e){n.loading=!1,n.lastError=null,n.items=n.selectComponent.advancedTable.selected,n.executeSubscription=n.execute.subscribe(function(e){return n.loading=!1,n.executeSubscription&&n.executeSubscription.unsubscribe(),n._modalService.modalRef&&n._modalService.modalRef.hide(),t()},function(e){return n.loading=!1,n._loadingService.hideLoading(),n.lastError=e,t()})})}catch(e){this.loading=!1,this._loadingService.hideLoading(),this.lastError=e}},e.prototype.onChange=function(e){},e.prototype.clearMessages=function(){this.messages=[]},e.prototype.onFilterChange=function(e){},e.decorators=[{type:f.Component,args:[{selector:"app-add-items",template:'<div>\n <div class="modal-header" *ngIf="modalTitle">\n <h5 class="modal-title">{{modalTitle | translate}}</h5>\n <button (click)="cancel()" [disabled]="loading"\n type="button" class="close" data-dismiss="modal" aria-label="Cancel">\n <span aria-hidden="true">×</span>\n </button>\n </div>\n <div class="modal-body pt-0">\n <div class="row" *ngIf="lastError">\n <div class="alert alert-danger col-12" role="alert">\n <span [translate]="\'E\' + (lastError.statusCode || 500) + \'.title\'"></span><br>\n <small *ngIf="lastError.statusCode >= 0" [translate]="\'E\' + (lastError.statusCode || 500) + \'.message\'"></small>\n <small *ngIf="lastError.statusCode == null">{{lastError.message}}</small>\n </div>\n </div>\n <div class="row d-none" *ngIf="items">\n <div class="col-12">\n <p [translate]="\'StudyPrograms.AddCoursesHelp\'" [translateParams]="items" ></p>\n </div>\n </div>\n <div class="row mt-3">\n <div class="col-12">\n <ng-container>\n <ul style="margin-left: -24px" class="nav nav-tabs mb-1" id="myTab" role="tablist">\n <li class="nav-item" *ngIf="tableConfiguration">\n <a class="nav-link active" id="courses-tab" data-toggle="tab" href="#courses" role="tab" aria-controls="home" aria-selected="true" [translate]="\'AddItems.SelectCourses\'" ></a>\n </li>\n <li class="nav-item" *ngIf="formName">\n <a class="nav-link" [ngClass]="{ \'disabled\': !(selectComponent.advancedTable.selected && selectComponent.advancedTable.selected.length) }" id="attributes-tab" data-toggle="tab" href="#attributes" role="tab" aria-controls="profile" aria-selected="false" [translate]="\'AddItems.EditAttributes\'"></a>\n </li>\n <li class="nav-item" *ngIf="messages && messages.length > 0">\n <a class="nav-link" id="messages-tab" data-toggle="tab" href="#messages" role="tab" aria-controls="profile" aria-selected="false" [translate]="\'AddItems.Messages\'"></a>\n </li>\n </ul>\n <div class="tab-content border-0" id="myTabContent">\n <div class="tab-pane fade show active" id="courses" role="tabpanel" aria-labelledby="home-tab">\n <app-advanced-table-modal #selectComponent (filter)="onFilterChange($event)" [tableConfig]="tableConfiguration"></app-advanced-table-modal>\n </div>\n <div class="tab-pane fade" id="attributes" role="tabpanel" aria-labelledby="profile-tab"\n [ngClass]="{\'invisible\':(formName == null)}">\n\x3c!-- <advanced-form-edit #formComponent [formName]="formName" ></advanced-form-edit>--\x3e\n </div>\n <div class="tab-pane fade" id="messages" role="tabpanel" aria-labelledby="profile-tab"\n [ngClass]="{\'invisible\':(messages == null)}">\n <ul *ngIf="messages && messages.length>0" class="sis--list-group sis--list-group-header">\n <li class="sis--list-group-item">\n <div class="d-flex justify-content-center align-items-center">\n <div class="sis--list-group-item_lg_column" [translate]="\'AddItems.Messages\'"></div>\n </div>\n </li>\n </ul>\n <ul class="sis--list-group sis--list-group-body">\n <li *ngFor="let message of messages" class="sis--list-group-item">\n <div class="d-flex justify-content-center align-items-center list-color">\n <div class="sis--list-group-item_lg_column">{{ message?.message }}</div>\n </div>\n </li>\n </ul>\n <div *ngIf="messages && messages.length>0">\n <button [disabled]="loading" (click)="clearMessages()" type="button" class="btn btn-indigo mt-3">\n {{\'Clear\' | translate}}\n </button>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <div class="modal-footer justify-content-end">\n <button [disabled]="okButtonDisabled || loading || !(selectComponent.advancedTable.selected && selectComponent.advancedTable.selected.length) " (click)="ok()"\n type="button" [ngClass]="okButtonClass">\n {{\'OK\' | translate}}\n </button>\n <button [disabled]="cancelButtonDisabled || loading"\n (click)="cancel()" type="button" [ngClass]="cancelButtonClass" data-dismiss="modal">\n {{\'Cancel\' | translate}}\n </button>\n </div>\n</div>\n'}]}],e.ctorParameters=function(){return[{type:y.Router},{type:y.ActivatedRoute},{type:h.ErrorService},{type:h.ModalService},{type:h.AppEventService},{type:h.ToastService},{type:h.LoadingService},{type:b.TranslateService},{type:c.AngularDataContext}]},e.propDecorators={execute:[{type:f.Input}],items:[{type:f.Input}],target:[{type:f.Input}],tableConfiguration:[{type:f.Input}],formName:[{type:f.Input}],messages:[{type:f.Input}],formComponent:[{type:f.ViewChild,args:["formComponent"]}],selectComponent:[{type:f.ViewChild,args:["selectComponent"]}]},e}(u.RouterModalOkCancel),F=function(){function e(e,t){this._context=e,this._template=t}return e.prototype.fetchData=function(p,f,h,g,m,b){return void 0===h&&(h=""),A(this,void 0,void 0,function(){var a,r,o,i,s,l,c,d,u=this;return I(this,function(e){if(o=this._context.model(p).asQueryable(),f&&"object"==typeof f||(f={}),i=[],f)try{for(s=P(Object.keys(f)),l=s.next();!l.done;l=s.next())c=l.value,i.push(c+" eq "+f[c])}catch(t){a={error:t}}finally{try{l&&!l.done&&(r=s["return"])&&r.call(s)}finally{if(a)throw a.error}}return g&&Array.isArray(g)&&(i=function n(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(O(arguments[t]));return e}(i,g)),m&&b&&(d=void 0,d=/^"(.*?)"$/.test(b)?this._template.transform(m,_({},f,{text:b.replace(/^"|"$/g,"")})):b.split(" ").map(function(e){return u._template.transform(m,_({},f,{text:e}))}).join(" and "),i.push(d)),o.setParam("$filter",i.join(" and ")),[2,o.expand(h).take(-1).getItems()]})})},e.prototype.formatData=function(i,e){try{return e.map(function(e){for(var t={},n=0;n<i.columns.length;n++){var a=i.columns[n].name.split("/"),r=e[a[0]];if(r&&1<a.length)for(var o=1;o<a.length&&(r!==undefined&&null!==r);o++)r=r[a[o]]!==undefined&&null!==r[a[o]]?r[a[o]]:undefined;t[i.columns[n].name]=r}return e.subitems&&(t.subitems=e.subitems),t})}catch(t){console.error(t)}},e.decorators=[{type:f.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:c.AngularDataContext},{type:h.TemplatePipe}]},e.ngInjectableDef=f.defineInjectable({factory:function(){return new e(f.inject(c.AngularDataContext),f.inject(h.TemplatePipe))},token:e,providedIn:"root"}),e}(),j=function(){function e(e,t,n){this._changeDetector=e,this._advancedAggregatorService=t,this._loadingService=n,this.groups=[],this.eventHandler=new f.EventEmitter}return Object.defineProperty(e.prototype,"config",{get:function(){return this._config},set:function(e){this._config=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"aggregators",{get:function(){return this._aggregators},set:function(e){this._aggregators=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"postProcessors",{get:function(){return this._postProcessors},set:function(e){this._postProcessors=e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){return A(this,void 0,void 0,function(){var t=this;return I(this,function(e){return this.selectedGroups$.subscribe(function(e){t.groups=e,t._changeDetector.markForCheck()}),this.filters$.subscribe(function(n){return A(t,void 0,void 0,function(){var t;return I(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,this.fetch(n)];case 1:return e.sent(),[3,3];case 2:return t=e.sent(),console.error(t),[3,3];case 3:return[2]}})})}),[2]})})},e.prototype.ngOnDestroy=function(){return A(this,void 0,void 0,function(){return I(this,function(e){return this.selectedGroups$.unsubscribe(),this.filters$.unsubscribe(),[2]})})},e.prototype.fetch=function(r){return A(this,void 0,void 0,function(){var t,n,a;return I(this,function(e){switch(e.label){case 0:return e.trys.push([0,6,7,8]),this._loadingService.showLoading(),[4,this._advancedAggregatorService.fetchData(this.config.model,this.params,this.config.query,r.filters,this.searchExpression,r.text)];case 1:if(t=e.sent(),!(this.postProcessors&&0<Object.keys(this.postProcessors).length&&this.config.postProcessors&&0<this.config.postProcessors.length))return[3,5];n=0,e.label=2;case 2:return n<this.config.postProcessors.length?[4,this.postProcessors[this.config.postProcessors[n].name](t)]:[3,5];case 3:t=e.sent(),e.label=4;case 4:return n++,[3,2];case 5:return this.body=this._advancedAggregatorService.formatData(this.config,t),this._changeDetector.markForCheck(),[3,8];case 6:return a=e.sent(),console.error(a),[3,8];case 7:return this._loadingService.hideLoading(),[7];case 8:return[2]}})})},e.prototype.onActionEvent=function(e){this.eventHandler.emit(e)},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-aggregator",template:'<ng-container *ngIf="config && body">\n <div class="w-100 text-center" *ngIf="body && body.length === 0">\n <div>\n <div class="mt-4">\n <div class="icon-circle bg-gray-300 border-gray-100"></div>\n </div>\n <div class="mt-4">\n <h4 class="font-3xl text-dark" [translate]="\'Tables.EmptyTableTitle\'"></h4>\n <p class="font-lg text-dark" [translate]="\'Tables.EmptyTableMessage\'"></p>\n </div>\n </div>\n </div>\n <ng-container *ngIf="groups.length === 0">\n <div class="row mt-4">\n <app-advanced-aggregator-list [body]="body" [config]="config" (clickEvent)="onActionEvent($event)" class="col-12">\n </app-advanced-aggregator-list>\n <div *ngIf="config.aggregators && config.aggregators.length > 0"\n class="footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100">\n <div *ngFor="let aggregator of config.aggregators">\n <span *ngIf="aggregator.label"> {{ aggregator.label | translate }} </span>:\n <span class="font-weight-bold"> {{ body | callAggregator: aggregators: aggregator.name }}\n </span>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf="groups.length === 1">\n <ng-container *ngFor="let group of body | groupBy: groups[0].name | keyvalue">\n <div class="row mt-4">\n <h4 class="col text-secondary"> {{ groups[0].title | aggregatorListTitle: group.key }} </h4>\n <app-advanced-aggregator-list [body]="group.value" [config]="config" (clickEvent)="onActionEvent($event)"\n class="col-12">\n </app-advanced-aggregator-list>\n </div>\n\n \x3c!-- Footer for the group --\x3e\n <div *ngIf="config.aggregators && config.aggregators.length > 0"\n class="footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100">\n <div *ngFor="let aggregator of config.aggregators">\n <span *ngIf="aggregator.label"> {{ aggregator.label | translate }} </span>:\n <span class="font-weight-bold"> {{ group.value | callAggregator: aggregators: aggregator.name }} </span>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf="groups.length > 1">\n <ng-container *ngFor="let group of body | groupBy: groups[0].name | keyvalue">\n <div class="row mt-4">\n <h4 class="col text-secondary"> {{ groups[0].title | aggregatorListTitle: group.key }} </h4>\n <div *ngFor="let subgroup of group.value | groupBy: groups[1].name | keyvalue" class="col-12 ml-4 pl-4">\n <div class="row mt-4">\n <h6 class="col-12 text-secondary"> {{ groups[1].title | aggregatorListTitle: subgroup.key }} </h6>\n <app-advanced-aggregator-list [body]="subgroup.value" [config]="config" (clickEvent)="onActionEvent($event)"\n class="col-12">\n </app-advanced-aggregator-list>\n </div>\n\n \x3c!-- Footer for each subgroup --\x3e\n <div *ngIf="config.aggregators && config.aggregators.length > 0"\n class="footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100">\n <div *ngFor="let aggregator of config.aggregators">\n <span *ngIf="aggregator.label"> {{ aggregator.label | translate }} </span>:\n <span class="font-weight-bold"> {{ subgroup.value | callAggregator: aggregators: aggregator.name }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>',changeDetection:f.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:f.ChangeDetectorRef},{type:F},{type:h.LoadingService}]},e.propDecorators={config:[{type:f.Input,args:["config"]}],aggregators:[{type:f.Input,args:["aggregators"]}],postProcessors:[{type:f.Input,args:["postProcessors"]}],params:[{type:f.Input,args:["params"]}],selectedGroups$:[{type:f.Input,args:["selectedGroups"]}],filters$:[{type:f.Input,args:["filters"]}],searchExpression:[{type:f.Input,args:["searchExpression"]}],eventHandler:[{type:f.Output}]},e}();(E=L||(L={})).XL="xl",E.LG="lg",E.MD="md",E.SM="sm",E.XS="xs";var M=function(){function e(e){this._template=e,this.clickEvent=new f.EventEmitter}return e.prototype.ngOnInit=function(){var t=this;this.config.columns.forEach(function(e){e.length=Object.values(L).includes(e.length)?t._template.transform("sis--list-group-item_"+e.length+"_column",e):e.length?e.length:"sis--list-group-item_sm_column"})},e.prototype.callCallback=function(e,t){this.clickEvent.emit({type:e,data:t})},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-aggregator-list",template:"<div id=\"group-list\" class=\"flex-column\" *ngIf=\"config && config.columns\">\n <ul class=\"sis--list-group sis--list-group-header\">\n <li class=\"sis--list-group-item text-wrap\">\n <div class=\"d-flex justify-content-center align-items-center\" *ngIf=\"body && body.length > 0\">\n <div *ngIf=\"config.actions && config.actions.length > 0\" class=\"sis--list-group-item_sm_column\"></div>\n <div *ngFor=\"let column of config.columns; let i = index\" class=\"text-left\"\n [class]=\"config.columns[i].length\"\n [translate]=\"config.columns[i].type === 'action' ? '' : column.title\" [ngClass]=\"{\n 'd-none': config.columns[i].hidden\n }\"></div>\n </div>\n </li>\n </ul>\n\n \x3c!-- The list of entries --\x3e\n <ul class=\"sis--list-group sis--list-group-body\" *ngIf=\"body && body.length > 0\">\n <li class=\"sis--list-group-item text-wrap\" *ngFor=\"let entry of body | orderBy: config.orderBy\">\n <div class=\"d-flex justify-content-center align-items-center list-color\">\n \x3c!-- The list of actions --\x3e\n <div *ngIf=\"config.actions && config.actions.length > 0\" class=\"sis--list-group-item_sm_column text-left pr-0\">\n <button *ngFor=\"let action of config.actions\" (click)=\"callCallback(action.identifier, entry)\"\n [title]=\"(action.title ? action.title : '') | translate \" class=\"btn btn-default px-0\">\n <i [class]=\"'fas text-indigo ml-2 ' + 'fa-' + action.icon\"></i>\n </button>\n </div>\n \x3c!-- The list of data --\x3e\n <div *ngFor=\"let column of config.columns; let i=index\" [class]=\"config.columns[i].length\" class=\"text-left\"\n [ngClass]=\"{\n 'text-truncate': config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate,\n 'd-none': config.columns[i].hidden,\n 'd-md-block': !config.columns[i].hidden\n }\"\n [title]=\"config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate ? entry[column.name] : ''\">\n <span class=\"text-secondary\"\n *ngIf=\"!config.columns[i].hasOwnProperty('type') || (config.columns[i].hasOwnProperty('type') && config.columns[i].type === 'text')\"\n [ngClass]=\"{\n 'font-xs': config.columns[i].variant !== 'primary',\n 'text-body': config.columns[i].variant === 'primary',\n 'text-success': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && entry[config.columns[i].condition],\n 'text-danger': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && !entry[config.columns[i].condition],\n 'font-lg': config.columns[i].variant === 'redGreen' && entry[column.name] && entry[column.name].length > 3,\n 'font-2xl': config.columns[i].variant === 'redGreen' && entry[column.name] && entry[column.name].length <= 3\n }\">\n {{entry[column.name] || '-'}}\n </span>\n\n <span *ngIf=\"config.columns[i].type === 'boolean'\">\n <i class=\"fa font-lg\" [ngClass]=\"{\n 'fa-check text-success': entry[column.name].toString() === config.columns[i].trueValue,\n 'fa-times text-danger': entry[column.name].toString() !== config.columns[i].trueValue && config.columns[i].variant !== 'checkOrDash'\n }\"></i>\n <span\n *ngIf=\"entry[column.name].toString() !== config.columns[i].trueValue && config.columns[i].variant === 'checkOrDash'\"\n class=\"text-secondary font-xs\">-</span>\n </span>\n </div>\n </div>\n <ul *ngIf=\"entry && entry.subitems\">\n <li *ngFor=\"let subitem of entry.subitems\" class=\"d-flex justify-content-center align-items-center list-color\">\n <div class=\"text-left\"></div>\n <div *ngFor=\"let column of config.columns; let i=index\" [class]=\"config.column[i].length\" class=\"text-left\"\n [ngClass]=\"{\n 'text-truncate': config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate,\n 'd-none': config.columns[i].hidden,\n 'd-md-block': !config.columns[i].hidden\n }\"\n [title]=\"config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate ? entry[column.name] : ''\">\n <span class=\"text-secondary\"\n *ngIf=\"!config.columns[i].hasOwnProperty('type') || (config.columns[i].hasOwnProperty('type') && config.columns[i].type === 'text')\"\n [ngClass]=\"{\n 'font-xs': config.columns[i].variant !== 'primary',\n 'text-body': config.columns[i].variant === 'primary',\n 'text-success': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && subitem[config.columns[i].condition],\n 'text-danger': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && !subitem[config.columns[i].condition],\n 'font-lg': config.columns[i].variant === 'redGreen' && subitem[column.name] && subitem[column.name].length > 3,\n 'font-2xl': config.columns[i].variant === 'redGreen' && subitem[column.name] && subitem[column.name].length <= 3\n }\">\n {{subitem[column.name] || '-'}}\n </span>\n </div>\n </li>\n </ul>\n </li>\n </ul>\n</div>\n"}]}],e.ctorParameters=function(){return[{type:h.TemplatePipe}]},e.propDecorators={config:[{type:f.Input}],body:[{type:f.Input}],clickEvent:[{type:f.Output}]},e}(),D=function(){function l(){}return l.template=function(e){var t=l.templateCache.get(e);return"function"==typeof t||(t=o.template(e),l.templateCache.set(e,t)),t},l.prototype.createUrlTree=function(r,n){if(Array.isArray(n.commands)){var e=this.injector.get(y.ActivatedRoute),t=this.injector.get(y.Router),a=n.commands.map(function(n){if("string"==typeof n)return l.template(n)(r);if(n.outlets){var a={};return Object.keys(n.outlets).forEach(function(e){if(Object.prototype.hasOwnProperty.call(n.outlets,e)){var t=n.outlets[e];Array.isArray(t)?Object.defineProperty(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t.map(function(e){return l.template(e)(r)})}):Object.defineProperty(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}}),{outlets:a}}return n}),o={},i=!0;n.navigationExtras&&n.navigationExtras.queryParams&&Object.keys(n.navigationExtras.queryParams).map(function(e){var t=n.navigationExtras.queryParams[e];o[e]=l.template(t)(r)}),n.navigationExtras&&"undefined"!=typeof n.navigationExtras.replaceUrl&&(i=n.navigationExtras.replaceUrl);var s=!1;return n.navigationExtras&&"undefined"!=typeof n.navigationExtras.skipLocationChange&&(s=n.navigationExtras.skipLocationChange),t.createUrlTree(a,{relativeTo:e,queryParams:o,replaceUrl:i,skipLocationChange:s})}},l.templateCache=new Map,l}(),R=function(e){function t(){return e.call(this)||this}return C(t,e),t.prototype.render=function(e,t,n,a){var r=a.settings.aoColumns[a.col];return r&&r.data?o.at(n,r.data.replace(/\//g,".")):e},t}(D),B=function(e){function t(){return e.call(this)||this}return C(t,e),t.prototype.render=function(e,t,n,a){if(null==e)return"";a.settings.aoColumns[a.col];var r,o=Object.assign({buttonClass:"btn btn-default"},this.formatOptions),i="";if(r=o.buttonText?this.injector.get(b.TranslateService).instant(o.buttonText):o.buttonContent,o.buttonTitle&&(i=this.injector.get(b.TranslateService).instant(o.buttonTitle)),Array.isArray(this.formatOptions.commands)){var s=this.createUrlTree(n,this.formatOptions);return'<a class="'+o.buttonClass+'" title="'+i+'" href="#'+s+'">'+r+"</a>"}var l=D.template(this.formatString)(n);return'<a class="'+o.buttonClass+'" title="'+i+'" href="'+l+'">'+r+"</a>"},t}(D),q=function(e){function t(){return e.call(this)||this}return C(t,e),t.prototype.render=function(e,t,n,a){var r=a.settings.aoColumns[a.col];return r&&r.data?'<a href="'+D.template(this.formatString)(n)+'">'+e+"</a>":e},t}(D),N=function(e){function t(){return e.call(this)||this}return C(t,e),t.prototype.render=function(e,t,n,a){var r,o,i=this,s=a.settings.aoColumns[a.col];if(s&&s.data){var l=this.actions||[],c=1;try{for(var d=P(l),u=d.next();!u.done;u=d.next()){var p=u.value;Object.assign(p,{name:p.name||"action"+c}),c+=1}}catch(f){r={error:f}}finally{try{u&&!u.done&&(o=d["return"])&&o.call(d)}finally{if(r)throw r.error}}return"<div class='dropdown details-control' data-id='"+e+"' data-type='student' >\n <a id=\"dropdownMenuButton-"+e+'"\n data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\n <span class="fa-2x text-dots"></span>\n </a>\n <div class="dropdown-menu" aria-labelledby="dropdownMenuButton-'+e+'">\n '+l.map(function(e){if("divider"===e.type)return'<div class="dropdown-divider"></div>';if(e.formatOptions&&e.formatOptions.commands){var t=i.createUrlTree(n,e.formatOptions);return"<a data-name='"+e.name+'\' class="dropdown-item" href="'+t.toString()+'">\n '+i.injector.get(b.TranslateService).instant(e.title)+"\n </a>"}return"<a data-name='"+e.name+'\' class="dropdown-item" href="'+D.template(e.href)(n)+'">\n '+i.injector.get(b.TranslateService).instant(e.title)+"\n </a>"}).join("")+"\n </div>\n </div>"}return e},t.prototype.afterRender=function(e,t,n,a,r){},t}(D),V=function(e){function t(){return e.call(this)||this}return C(t,e),t.prototype.render=function(e,t,n,a){var r,o,i=this,s=a.settings.aoColumns[a.col];if(s&&s.data){var l=this.actions||[],c=1;try{for(var d=P(l),u=d.next();!u.done;u=d.next()){var p=u.value;Object.assign(p,{name:p.name||"action"+c}),c+=1}}catch(g){r={error:g}}finally{try{u&&!u.done&&(o=d["return"])&&o.call(d)}finally{if(r)throw r.error}}var f=void 0;this.formatOptions&&this.formatOptions.buttonText&&(f=this.formatOptions.buttonText.includes("${")?D.template(this.formatOptions.buttonText)(n):this.injector.get(b.TranslateService).instant(this.formatOptions.buttonText));var h=void 0;return this.formatOptions&&this.formatOptions.buttonTitle&&(h=this.injector.get(b.TranslateService).instant(this.formatOptions.buttonTbuttonTitleext)),"<div class='dropdown details-control' data-id='"+e+"'>\n <a class=\""+(this.formatOptions&&this.formatOptions.buttonClass||"btn btn-light")+' dropdown-toggle" href="#" role="button" title="'+h+'"\n id="dropdownMenuButton-'+e+'" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\n '+f+'\n </a>\n <div class="dropdown-menu" aria-labelledby="dropdownMenuButton-'+e+'">\n '+l.map(function(e){return"divider"===e.type?'<div class="dropdown-divider"></div>':e.commands?'<a class="dropdown-item" href="'+i.createUrlTree(n,e).toString()+'">\n '+i.injector.get(b.TranslateService).instant(e.title)+"\n </a>":'<a class="dropdown-item" href="'+D.template(e.href)(n)+'">\n '+i.injector.get(b.TranslateService).instant(e.title)+"\n </a>"}).join("")+"\n </div>\n </div>"}return e},t.prototype.afterRender=function(e,t,n,a,r){},t}(D),$=function(e){function t(){return e.call(this)||this}return C(t,e),t.prototype.render=function(e,t,n,a){var r,o,i=this,s=a.settings.aoColumns[a.col];if(s&&s.data){var l=this.actions||[],c=1;try{for(var d=P(l),u=d.next();!u.done;u=d.next()){var p=u.value;Object.assign(p,{name:p.name||"action"+c}),c+=1}}catch(g){r={error:g}}finally{try{u&&!u.done&&(o=d["return"])&&o.call(d)}finally{if(r)throw r.error}}if(0===l.length)return;var f=this.formatOptions&&this.formatOptions.buttonClass||"btn btn-light",h=l[0];return'<div class="btn-group">\n <a type="button" class="'+f+'" href="'+(h&&h.commands?this.createUrlTree(n,h).toString():D.template(h.href)(n))+'">\n '+this.injector.get(b.TranslateService).instant(h.title)+'\n </a>\n <button type="button" class="'+f+' dropdown-toggle dropdown-toggle-split"\n data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\n <span class="sr-only">'+this.injector.get(b.TranslateService).instant("Toggle Dropdown")+'</span>\n </button>\n <div class="dropdown-menu" aria-labelledby="dropdownMenuButton-'+e+'">\n '+l.map(function(e){return"-"===e.title?'<div class="dropdown-divider"></div>':e.commands?'<a class="dropdown-item" href="'+i.createUrlTree(n,e).toString()+'">\n '+i.injector.get(b.TranslateService).instant(e.title)+"\n </a>":'<a class="dropdown-item" href="'+D.template(e.href)(n)+'">\n '+i.injector.get(b.TranslateService).instant(e.title)+"\n </a>"}).join("")+"\n </div>\n </div>"}return e},t.prototype.afterRender=function(e,t,n,a,r){},t}(D),U=function(e){function t(){return e.call(this)||this}return C(t,e),t.prototype.render=function(e,t,n,a){var r=a.settings.aoColumns[a.col];if(r&&r.data){var o='<input class="checkbox checkbox-theme" type="checkbox"\n id="s-'+a.row+'" /><label for="s-'+a.row+'"> </label>';return D.template(o)(n)}return e},t}(D),H=function(e){function t(){return e.call(this)||this}return C(t,e),t.prototype.render=function(e,t,n,a){var r=a.settings.aoColumns[a.col];return r&&r.data?D.template(this.formatString)(n):e},t}(D),Q=function(e){function t(){return e.call(this)||this}return C(t,e),t.prototype.render=function(e,t,n,a){return e?this.injector.get(b.TranslateService).instant("TrueFalse.long.Yes"):this.injector.get(b.TranslateService).instant("TrueFalse.long.No")},t}(D),G=function(e){function t(){return e.call(this)||this}return C(t,e),t.prototype.render=function(e,t,n,a){return a.settings.aoColumns[a.col]&&null!=e?this.injector.get(b.TranslateService).instant(D.template(this.formatString)({value:e})):this.injector.get(b.TranslateService).instant("Unknown")},t}(D),Y=function(e){function t(){return e.call(this)||this}return C(t,e),t.prototype.render=function(e,t,n,a){var r=a.settings.aoColumns[a.col];if(r&&r.data){var o=new l.DatePipe(this.injector.get(b.TranslateService).currentLang);return"string"==typeof e&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}$/.test(e)?o.transform(new Date(e+":00"),this.formatString):o.transform(e,this.formatString)}return e},t}(D),K=function(e){function t(){return e.call(this)||this}return C(t,e),t.prototype.render=function(e,t,n,a){var r,o,i=a.settings.aoColumns[a.col];if(i&&i.data){if(this.formatOptions){var s=this.formatOptions.ngClass;i.ngClassTemplates=i.ngClassTemplates||{};try{for(var l=P(Object.keys(s)),c=l.next();!c.done;c=l.next()){var d=c.value,u=D.template(s[d])(n);if(!0===new Function("return "+u+";")())return'<span class="'+d+'">'+e+"</span>"}}catch(p){r={error:p}}finally{try{c&&!c.done&&(o=l["return"])&&o.call(l)}finally{if(r)throw r.error}}}return e}return e},t}(D),W=function(e){function t(){return e.call(this)||this}return C(t,e),t.prototype.render=function(e,t,n,a){return e?r.getNativeName(e):e},t}(D),X=function(){function e(){this.values={},this._template=new h.TemplatePipe}return e.prototype.buildFilter=function(e){if(e)return this._template.transform(e,this.values)},e.prototype.asyncBuildFilter=function(r){return A(this,void 0,void 0,function(){var t,n,a;return I(this,function(e){switch(e.label){case 0:return r?(n=(t=this._template).transform,a=[r],[4,this.getValues()]):[3,2];case 1:return[2,n.apply(t,a.concat([e.sent()]))];case 2:return[2]}})})},e.prototype.getValues=function(){return A(this,void 0,void 0,function(){return I(this,function(e){return[2,this.values]})})},e.decorators=[{type:f.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[]},e.ngInjectableDef=f.defineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e}(),z=t;z.fn.dataTable.Api.register("processing()",function(t){return this.iterator("table",function(e){e.oApi._fnProcessingDisplay(e,t)})});var J=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return C(t,e),t.prototype.checkNoChanges=function(){},t.prototype.detach=function(){},t.prototype.detectChanges=function(){},t.prototype.markForCheck=function(){},t.prototype.reattach=function(){},t}(f.ChangeDetectorRef),Z=new f.InjectionToken("column.formatters"),ee=function(n){function e(e){var t=n.call(this)||this;return t.injector=e,t}return C(e,n),e.prototype.render=function(e,t,n,a){},e}(D);function te(e){return e}var ne=function(){function e(){}return e.cast=function(e,t){return te(t?JSON.parse(JSON.stringify(e)):e)},e}();var ae=function(){function e(e,t,n,a,r,o,i,s,l,c){var d=this;this._context=e,this._columnFormatters=t,this._activatedRoute=n,this._translateService=a,this._injector=r,this._advancedFilterValueProvider=o,this._element=i,this._template=s,this._loading=l,this._http=c,this._firstLoad=!0,this._showFooter=!0,this._showHeader=!0,this._showPaging=!1,this._id=function u(){return Number(String(Math.random()).slice(2)).toString(36)}(),this.smartSelect=!1,this.configChanges=new p.BehaviorSubject(null),this.height=800,this.showActions=!0,this.autoLoad=!0,this.load=new f.EventEmitter,this.init=new f.EventEmitter,this.reload=new f.EventEmitter,this.select=new f.EventEmitter,this.selectedItems=new f.EventEmitter,this.scrollable=!0,this.serverSide=!0,this.lengthMenu=[50,100,200,500],this.paging=!0,this.pageLength=25,this.scrollY=800,this.scrollX=!0,this.selectable=!1,this.multipleSelect=!0,this.customSelect=!1,this.selected=[],this.unselected=[],this.translator=new b.TranslatePipe(this._translateService,new J),z.fn.dataTable.ext.classes.sPageButton="btn",z.fn.dataTable.ext.classes.sPageButtonActive="btn btn-light",this.reloadSubscription=this.reload.subscribe(function(e){d.fetch()})}return Object.defineProperty(e.prototype,"config",{get:function(){return this._config},set:function(e){this._config=e,this.configChanges.next(this._config)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showFooter",{get:function(){return this._showFooter},set:function(e){if(this._showFooter=e,this._element&&this._element.nativeElement){var t=this._element.nativeElement.querySelector(".dataTables_info");if(null==t)return;e?t.classList.remove("d-none"):t.classList.add("d-none")}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showHeader",{get:function(){return this._showHeader},set:function(e){if(this._showHeader=e,this._element&&this._element.nativeElement){var t=this._element.nativeElement.querySelector(".dataTable>thead");if(null==t)return;var n=this._element.nativeElement.querySelector(".dataTable");e?(t.classList.remove("d-none"),n.classList.remove("mt-2")):(t.classList.add("d-none"),n.classList.add("mt-2"))}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showPaging",{get:function(){return this._showPaging},set:function(e){if(this._showPaging=e,this._element&&this._element.nativeElement){var t=this._element.nativeElement.querySelector(".dataTables_paginate");if(null==t)return;e?z(t).show():z(t).hide()}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"query",{get:function(){return this._query},set:function(e){this._query=e},enumerable:!0,configurable:!0}),e.prototype.search=function(e){var t=this;if(this.query=this.query||this._context.model(this.config.model).asQueryable(),e&&this.config.searchExpression)if(/^"(.*?)"$/.test(e))this.query.setParam("$filter",this._template.transform(this.config.searchExpression,{text:e.replace(/^"|"$/g,"")}));else{var n=e.split(" ").map(function(e){return t._template.transform(t.config.searchExpression,{text:e})}).join(" and ");this.query.setParam("$filter",n)}else this.query.setParam("$filter",null);this._firstLoad=!1,this.dataTable.draw()},e.prototype.fetch=function(e){if(null==this.dataTable)return this.ngOnInit();null!=e&&!0!==e||(this.smartSelect=!1,this.selected.length&&this.selected.splice(0,this.selected.length),this.unselected.length&&this.unselected.splice(0,this.unselected.length)),this.dataTable.draw()},e.prototype.destroy=function(){this.dataTable&&(this.dataTable.destroy(),this._firstLoad=!0,z(this.table.nativeElement).empty(),this.dataTable=null,this.selected.length&&this.selected.splice(0,this.selected.length),this.unselected.length&&this.unselected.splice(0,this.unselected.length),this.smartSelect=!1)},e.prototype.selectRow=function(e,t){if(e){var n=e.node();!1===this.multipleSelect&&(!1===this.customSelect?this.dataTable.rows().nodes().each(function(e){e!==n&&z(e).find(":checkbox").prop("checked",!1)}):this.dataTable.rows(".selected").nodes().each(function(e){e!==n&&z(e).removeClass("selected")}),this.selected.splice(0,this.selected.length)),!1===this.customSelect?z(n).find(":checkbox").prop("checked",!0):z(e.node()).addClass("selected");var a=this.config.columns[0].property||this.config.columns[0].name,r=e.data(),o=this.selected.findIndex(function(e){return e[a]===r[a]});if(0<=o&&this.selected.splice(o,1),this.selected.push(r),0<=(o=this.unselected.findIndex(function(e){return e[a]===r[a]}))&&this.unselected.splice(o,1),t)return;this.selectedItems.emit(this.selected)}},e.prototype.unSelectRow=function(e,t){if(e){!1===this.customSelect?z(e.node()).find(":checkbox").prop("checked",!1):z(e.node()).removeClass("selected");var n=this.config.columns[0].property||this.config.columns[0].name,a=e.data(),r=a[n],o=this.selected.findIndex(function(e){return e[n]===r});if(0<=o){if(this.selected.splice(o,1),this.smartSelect&&(o=this.unselected.findIndex(function(e){return e[n]===r}))<0&&this.unselected.push(a),t)return;this.selectedItems.emit(this.selected)}}},e.prototype.selectAny=function(){var n=this;this.dataTable&&this.selectable&&(this.smartSelect=!0,this.dataTable.rows().every(function(e){var t=n.dataTable.row(e);n.selectRow(t,!0)}),this.selectedItems.emit(this.selected))},e.prototype.selectNone=function(){var n=this;this.dataTable&&this.selectable&&(this.smartSelect=!1,this.unselected.splice(0,this.unselected.length),this.dataTable.rows().every(function(e){var t=n.dataTable.row(e);n.unSelectRow(t,!0)}),this.selected.splice(0,this.selected.length),this.selectedItems.emit(this.selected))},e.prototype.toggleSelectRow=function(e){if(e){var t=e.data(),n=this.config.columns[0].property||this.config.columns[0].name,a=t[n];0<=this.selected.find(function(e){return e[n]===a})?this.unSelectRow(e):this.selectRow(e)}},e.prototype._renderSelect=function(e,t,n,a){var r=a.settings.aoColumns[a.col];return"function"!=typeof r.selectTemplate&&Object.assign(r,{selectTemplate:o.template('<input class="checkbox checkbox-theme s-row" type="checkbox"\n id="s-'+this._id+'-${meta.row}" data-id="${data}" /><label for="s-'+this._id+'-${meta.row}"> </label>\n ')}),r.selectTemplate({meta:a,data:e})},e.prototype.ngOnInit=function(){var a=this,h=this;if(this.dataTable&&this.destroy(),this.config){Object.prototype.hasOwnProperty.call(this.config,"selectable")&&(this.selectable=this.config.selectable),Object.prototype.hasOwnProperty.call(this.config,"multipleSelect")&&(this.multipleSelect=this.config.multipleSelect);var g=this.config.columns.filter(function(e){return!e.formatter||"ActionLinkFormatter"!==e.formatter||!1!==a.showActions}).map(function(e){return Object.assign(new ee(a._injector),e)}).map(function(s){var e={data:s.property||s.name,defaultContent:s.hasOwnProperty("defaultContent")?s.defaultContent:"",title:a.translator.transform(s.title),sortable:!s.hasOwnProperty("sortable")||s.sortable,visible:!s.hasOwnProperty("hidden")||!s.hidden,name:s.name};if(s.className?Object.assign(e,{className:s.className}):Object.assign(e,{className:""}),s.formatters){Object.assign(e,{render:function(e,n,a,r){var o=e;return s.formatters.forEach(function(e){var t=h._columnFormatters[e.formatter];t&&"function"==typeof t.render&&(s.formatString=e.formatString,s.formatOptions=e.formatOptions),o=t.render.bind(s)(o,n,a,r)}),delete s.formatString,delete s.formatOptions,o}});var t=s.formatters.filter(function(e){return"function"==typeof e.afterRender});0<t.length&&Object.assign(e,{createdCell:function(n,a,r,o,i){t.forEach(function(e){var t=h._columnFormatters[e.formatter];t&&"function"==typeof t.afterRender&&t.afterRender.bind(s)(n,a,r,o,i)})}})}if(s.formatter){var n=h._columnFormatters[s.formatter];n&&"function"==typeof n.render&&Object.assign(e,{render:n.render.bind(s)}),n&&"function"==typeof n.afterRender&&(Object.assign(e,{render:n.render.bind(s)}),Object.assign(e,{createdCell:n.afterRender.bind(s)}))}return e}),r=z(this.table.nativeElement);if(r.on("processing.dt",function(e,t,n){n?(r.find(".dataTables_empty").html(""),setTimeout(function(){r.addClass("processing")},0)):setTimeout(function(){r.removeClass("processing")},0)}),this.selectable){var e=this.config.columns[0],t={className:"text-center pl-4 pr-0",data:e.property||e.name,defaultContent:"",title:"",sortable:!1,visible:!this.customSelect,name:e.name};Object.assign(t,{render:this._renderSelect.bind(this)}),g.unshift(t),r.on("page.dt",function(e){a.dataTable.page.info()}).on("draw.dt",function(){a.customSelect&&r.find("tbody").on("click","tr",function(){var e=h.dataTable.row(this);h.select.emit(e)}),r.find("input.s-row").off("click").on("click",a.onSelectionChange.bind(a));var n=a.config.columns[0].property;0<a.selected.length&&a.selected.forEach(function(e){var t=e[n];null!=t&&r.find("input[data-id='"+t+"']").prop("checked",!0)}),a.smartSelect?r.find("input[data-id]").each(function(e,t){a.unselected.findIndex(function(e){return e[n]==z(t).attr("data-id")})<0&&a.selectRow(a.dataTable.row(e))}):0===a.selected.length&&r.find("input[data-id]").prop("checked",!1)})}var n={lengthMenu:[5,10,50,100,200,500],lengthChange:!1,searching:!0,processing:!0,serverSide:this.serverSide,columns:g,order:[],scrollX:this.scrollX,dom:"Bfrtip",autoWidth:!1,buttons:[{extend:"excel",filename:this.config.title,className:"d-none",exportOptions:{columns:"th:not(:first-child)"}}],fnServerData:function(e,t,a,n){if(h._firstLoad&&(h._firstLoad=!1)===h.autoLoad){var r={recordsTotal:0,recordsFiltered:0,data:[]};return h.load.emit(r),a(r)}var o=h._activatedRoute.snapshot.queryParams,i=(t[1].value,t[2].value),s=t[3].value,l=t[4].value,c=(t[5].value,h._query instanceof m.ClientDataQueryable?h._query:h._context.model(h.config.model).asQueryable());if(l&&c.take(l).skip(s),i&&i.length){var d=i.map(function(e){return g[e.column].name+" "+e.dir||"asc"}).join(",");c.setParam("$orderby",d)}var u=h.config.columns.filter(function(e){return!0!==e.virtual}).map(function(e){return e.property?e.name+" as "+e.property:e.name});if(c.select.apply(c,u),o.$filter&&o.$filter.length){var p=c.getParams();c.setParam("$filter",null);var f=[o.$filter];p.$filter&&f.push("("+p.$filter+")"),c.filter(f.join(" and "))}if(o.$expand&&o.$expand.length?c.setParam("$expand",o.$expand):h.config&&h.config.defaults&&h.config.defaults.expand&&c.setParam("$expand",h.config.defaults.expand),!c.getParams().$orderby&&h.config&&h.config.defaults&&h.config.defaults.orderBy&&c.setParam("$orderby",h.config.defaults.orderBy),h.config&&h.config.defaults&&h.config.defaults.groupBy&&c.setParam("$groupby",h.config.defaults.groupBy),h.config&&h.config.defaults&&h.config.defaults.filter)return h._advancedFilterValueProvider.asyncBuildFilter(h.config.defaults.filter).then(function(e){if(e){var t=c.getParams();c.setParam("$filter",null);var n=[e];t.$filter&&n.push("("+t.$filter+")"),c.filter(n.join(" and "))}h.lastQueryParams=c.getParams(),c.getList().then(function(e){var t={recordsTotal:e.total,recordsFiltered:e.total,data:e.value};return 0===e.total&&h.resetEmptyTable(),h.load.emit(t),a(t)})})["catch"](function(e){console.error("TABLES",e)});h.lastQueryParams=c.getParams(),c.getList().then(function(e){var t={recordsTotal:e.total,recordsFiltered:e.total,data:e.value};return 0===e.total&&h.resetEmptyTable(),h.load.emit(t),a(t)})["catch"](function(e){console.error("TABLES",e)})},language:Object.assign({},h.translator.transform("Tables.DataTable"),{emptyTable:" "})};this.scrollable?Object.assign(n,{scrollY:this.scrollY,scrollCollapse:!1,scroller:{loadingIndicator:!1,displayBuffer:10}}):Object.assign(n,{scrollY:this.scrollY,paging:this.paging,pageLength:this.pageLength}),this.selectable,this.dataTable=r.DataTable(n),r.on("init.dt",function(){null!=a.dataTable&&a.init.emit(a.dataTable)}),this.showHeader||(this._element.nativeElement.querySelector(".dataTable>thead").classList.add("d-none"),this._element.nativeElement.querySelector(".dataTable").classList.add("mt-2")),this.showFooter||this._element.nativeElement.querySelector(".dataTables_info").classList.add("d-none"),this.showPaging&&(this.showPaging=!0)}},Object.defineProperty(e.prototype,"lastQuery",{get:function(){var t=this;if(null==this.config)return null;if(null==this.lastQueryParams)return null;var n=this._context.model(this.config.model).asQueryable();return Object.keys(this.lastQueryParams).forEach(function(e){n.setParam(e,t.lastQueryParams[e])}),n},enumerable:!0,configurable:!0}),e.prototype.fetchOne=function(a){var r=this;if(null!=a&&null!=this.dataTable&&null!=this.lastQueryParams){var e=Array.from(this.dataTable.rows().data());if(e&&e.length){var n=Object.keys(a);if(0===n.length)return;var o=e.findIndex(function(t){return 0===n.map(function(e){return t[e]===a[e]}).filter(function(e){return!1===e}).length});if(0<=o){var i=this._context.model(this.config.model).asQueryable();return i.setParam("$select",this.lastQueryParams.$select),n.forEach(function(t){var e=r.config.columns.find(function(e){return e.property===t||e.name===t});if(e){var n=e.property||e.name;i.and(n).equal(a[t])}else i.and(t).equal(a[t])}),i.getItem().then(function(e){var t=r.dataTable.row(o),n=z(t.node()).find(":checkbox").prop("checked");return e&&(t.data(e),z(t.node()).find(":checkbox").off("click").on("click",r.onSelectionChange.bind(r)),n&&r.selectRow(t,!0)),Promise.resolve()})}}return Promise.resolve()}},e.prototype.ngOnDestroy=function(){this.reloadSubscription&&this.reloadSubscription.unsubscribe()},e.prototype.onSelectionChange=function(e){var t=e.target,n=parseInt(/-(\d+)$/g.exec(t.id)[1],10),a=this.dataTable.row(n).data();if(a){var r=this.config.columns[0].property,o=a[r],i=this.selected.findIndex(function(e){return e[r]===o});t.checked?i<0&&(this.selected.push(a),this.selectedItems.emit(this.selected)):0<=i&&(this.selected.splice(i,1),this.smartSelect&&(i=this.unselected.findIndex(function(e){return e[r]===o}))<0&&(this.unselected.push(a),this.selectedItems.emit(this.selected)))}},e.prototype.resetEmptyTable=function(){this.dataTable&&this.dataTable.context[0]&&(this.dataTable.context[0].oLanguage.sEmptyTable=this.emptyTable.nativeElement.innerHTML)},e.prototype.clearEmptyTable=function(){this.dataTable&&this.dataTable.context[0]&&(this.dataTable.context[0].oLanguage.sEmptyTable="")},e.prototype["export"]=function(){document.querySelector(".dt-buttons .buttons-excel").click()},e.prototype.handleColumns=function(n){var a=this.dataTable;this.config.columns.slice(1).forEach(function(e,t){e.hidden||(n.includes(e.name)?a.column(e.name+":name").visible(!0):a.column(e.name+":name").visible(!1))})},e.prototype.getConfig=function(){return this.config},e.prototype.ngOnChanges=function(e){var t=this;Object.prototype.hasOwnProperty.call(e,"configSrc")&&null!=e.configSrc&&e.configSrc.currentValue&&e.configSrc.currentValue!=e.configSrc.previousValue&&this._http.get(e.configSrc.currentValue).toPromise().then(function(e){t.config=e,t.fetch()})["catch"](function(e){console.error("TABLES","An error occurred while loading table configuration."),console.error(e)})},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-table",template:'\n <table #table class="dataTable">\n </table>\n <div #emptyTable class="d-none">\n <div>\n <div class="mt-4">\n <div class="icon-circle bg-gray-300 border-gray-100"></div>\n </div>\n <div class="mt-4">\n <h4 class="font-3xl text-dark" [translate]="\'Tables.EmptyTableTitle\'"></h4>\n <p class="font-lg text-dark" [translate]="\'Tables.EmptyTableMessage\'"></p>\n </div>\n </div>\n </div>\n ',encapsulation:f.ViewEncapsulation.None,styles:["table.dataTable thead .sorting{background-image:none}table.dataTable thead .sorting_asc{background-position:95% 60%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsSAAALEgHS3X78AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAEtJREFUKJFjYBgywAOKMQALFjE/BgaGTCibjYGBYRM+kz0ZGBh2MTAw8DAwMHAxMDBsY2BgCCBGMQzg1IRNMV5NuVAJXIALqmYwAgBBkAlPRCLcLwAAAABJRU5ErkJggg==)}table.dataTable thead .sorting_desc{background-position:95% 60%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAArzAAAK8wHvFRX1AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAFNJREFUKJHVzTEKgDAQRNGHZfBg2sSTeDMLKwXPYuVJbBKQQEyrH6bZ+cPyWWaElz4kR5cOJ1b0FXnBVRYjjmIUsGGqvX6OmnImYk+JLTkzpPyBGwrtCvfBe56nAAAAAElFTkSuQmCC)}table.dataTable thead th{color:#73818e;font-size:.75rem;font-weight:600;padding-top:16px;padding-bottom:4px;border-bottom:none;padding-left:8px}table.dataTable tbody tr:first-child td:first-child{border-radius:6px 0}table.dataTable tbody tr:first-child td:last-child{border-radius:0 6px}table.dataTable tbody tr{border-radius:6px}table.dataTable tbody tr td:first-child{border-left:1px solid #c2cfd6}table.dataTable tbody tr td:last-child{border-right:1px solid #c2cfd6}table.dataTable tbody tr td{padding-top:8px;padding-bottom:8px;border-top:1px solid #c2cfd6}table.dataTable tbody tr:last-child td:first-child{border-radius:0 0 0 6px}table.dataTable tbody tr:last-child td:last-child{border-radius:0 0 6px}table.dataTable tbody tr:last-child td{border-bottom:1px solid #c2cfd6}table.dataTable td.dataTables_empty{border:none!important}table.dataTable.no-footer{border-bottom:none}.dataTables_paginate .btn.previous{margin-right:8px}.dataTables_paginate .btn.next{margin-left:8px}.dataTables_info,.dataTables_paginate{margin-top:1rem}.dataTables_paginate span .btn{border-radius:1.5rem}.dataTables_filter{display:none}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:0;overflow:auto}.dataTables_paginate{display:none}.dataTable.processing{opacity:15%}.dataTables_wrapper .dataTables_processing{background:0 0;position:absolute;display:inline-block;top:25%;z-index:5;color:#73818e}.text-decoration-line-through{text-decoration:line-through!important}tr.removed .checkbox+label{visibility:hidden}"]}]}],e.ctorParameters=function(){return[{type:c.AngularDataContext},{type:undefined,decorators:[{type:f.Inject,args:[Z]}]},{type:y.ActivatedRoute},{type:b.TranslateService},{type:f.Injector},{type:X},{type:f.ElementRef},{type:h.TemplatePipe},{type:h.LoadingService},{type:s.HttpClient}]},e.propDecorators={table:[{type:f.ViewChild,args:["table"]}],emptyTable:[{type:f.ViewChild,args:["emptyTable"]}],loadingTable:[{type:f.ViewChild,args:["loadingTable"]}],height:[{type:f.Input}],showActions:[{type:f.Input}],autoLoad:[{type:f.Input}],load:[{type:f.Output,args:["load"]}],init:[{type:f.Output,args:["init"]}],reload:[{type:f.Input,args:["reload"]}],select:[{type:f.Output,args:["select"]}],selectedItems:[{type:f.Output,args:["selectedItems"]}],scrollable:[{type:f.Input}],serverSide:[{type:f.Input}],lengthMenu:[{type:f.Input}],paging:[{type:f.Input}],pageLength:[{type:f.Input}],scrollY:[{type:f.Input}],scrollX:[{type:f.Input}],selectable:[{type:f.Input}],multipleSelect:[{type:f.Input}],customSelect:[{type:f.Input}],selected:[{type:f.Input}],configSrc:[{type:f.Input}],config:[{type:f.Input,args:["config"]}],showFooter:[{type:f.Input,args:["showFooter"]}],showHeader:[{type:f.Input,args:["showHeader"]}],showPaging:[{type:f.Input,args:["showPaging"]}],query:[{type:f.Input,args:["query"]}]},e}(),re=function(){function e(e,t,n,a,r,o,i){this._context=e,this._translateService=t,this._activatedRoute=n,this._errorService=a,this._toastService=r,this._modalService=o,this._userActivityService=i,this.allowSaveOption=!0}return e.prototype.ngOnDestroy=function(){this.dataSubscription&&this.dataSubscription.unsubscribe(),this.reloadSubscription&&this.reloadSubscription.unsubscribe(),this.subscription&&this.subscription.unsubscribe()},e.prototype.ngOnInit=function(){return A(this,void 0,void 0,function(){var i,t,s=this;return I(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,this._context.getMetadata()];case 1:return i=e.sent(),this.dataSubscription=this._activatedRoute.data.subscribe(function(e){var t=new RegExp("^"+e.model+"$","ig"),n=i.EntityContainer.EntitySet.find(function(e){return t.test(e.Name)});if(null==n)return s._errorService.navigateToError(new m.ResponseError("EntitySet Not Found",404));if(null==i.EntityType.find(function(e){return e.Name===n.EntityType}))return s._errorService.navigateToError(new m.ResponseError("EntityType Not Found",404));e.searchConfiguration&&(Object.prototype.hasOwnProperty.call(e.searchConfiguration,"allowSave")&&(s.allowSaveOption=e.searchConfiguration.allowSave),s.searchConfiguration=e.searchConfiguration),e.tableConfiguration&&(s.tableConfiguration=e.tableConfiguration),e.description&&(s.description=s._translateService.instant(e.description)),e.longDescription&&(s.longDescription=s._translateService.instant(e.longDescription)),e.category&&(s.category=s._translateService.instant(e.category));var a=ne.cast(s.tableConfiguration,!0),r=a.columns.find(function(e){return"ButtonFormatter"===e.formatter&&"(modal:edit)"===e.formatString});if(r){var o=[];s._activatedRoute.snapshot.pathFromRoot.forEach(function(e){o.push.apply(o,e.url)}),r.formatString="#/"+o.join("/")+"/(modal:${id}/edit)"}s.table.config=Object.assign({model:n.Name},a),s.table.fetch(!0),s.reloadSubscription=s._activatedRoute.fragment.subscribe(function(e){e&&"reload"===e&&(s._toastService.show(s.description,s._translateService.instant("Settings.OperationCompleted")),s.table.fetch(!0))}),s._userActivityService.setItem({category:s.category,description:s.description,url:window.location.hash.substring(1),dateCreated:new Date})}),[3,3];case 2:return t=e.sent(),console.error(t),[2,this._errorService.showError(t)];case 3:return[2]}})})},e.prototype.onDataLoad=function(e){this.recordsTotal=e.recordsTotal},e.prototype.remove=function(){var t=this;if(this.table&&this.table.selected&&this.table.selected.length){var n=this.table.selected;return this._modalService.showWarningDialog(this._translateService.instant("Tables.RemoveItemsTitle"),this._translateService.instant("Tables.RemoveItemsMessage"),h.DIALOG_BUTTONS.OkCancel).then(function(e){"ok"===e&&t._context.model(t.table.config.model).remove(n).then(function(){t._toastService.show(t.description+":"+t._translateService.instant("Tables.RemoveItemMessage.title"),t._translateService.instant(1===n.length?"Tables.RemoveItemMessage.one":"Tables.RemoveItemMessage.many",{value:n.length})),t.table.fetch(!0)})["catch"](function(e){t._errorService.showError(e,{continueLink:"."})})})}},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-list",template:'<div>\n <div class="row" *ngIf="description">\n <div class="col-auto">\n <h2>{{description}}</h2>\n <p *ngIf="longDescription">{{longDescription}}</p>\n </div>\n </div>\n <div class="row" *ngIf="searchConfiguration">\n <div class="col-12" [ngVar]="{}" #filter="ngVar">\n <app-advanced-table-search #advancedSearch [(filter)]="filter.value" [collapsed]="true" [table]="table" [allowSave]="allowSaveOption">\n <advanced-search>\n <app-advanced-search-form [form]="searchConfiguration" (filterChange)="advancedSearch.asyncAdvancedSearch()" #search [(filter)]="filter.value"></app-advanced-search-form>\n </advanced-search>\n </app-advanced-table-search>\n </div>\n </div>\n <div class="row">\n <div class="col-auto mt-4">\n <div class="font-xl text-secondary" *ngIf="recordsTotal > 1">\n <span>{{recordsTotal}}</span><span> </span><span [translate]="\'Tables.Items\'"></span>\n </div>\n <div class="font-xl text-secondary" *ngIf="recordsTotal === 1">\n <span>{{recordsTotal}}</span><span> </span><span [translate]="\'Tables.Item\'"></span>\n </div>\n </div>\n <div class="pull-right ml-auto mr-3 mt-3">\n <div class="font-lg btn-toolbar mt-3">\n <a *ngIf="table && table.selected && table.selected.length"\n class="text-danger text-decoration-none mr-2" href="javascript:void(0)" (click)="remove()">\n <span>-</span><span> </span><span [translate]="\'Tables.RemoveItem\'"></span>\n </a>\n <a class="text-indigo text-decoration-none" [routerLink]="[\'.\', { outlets:{ modal:\'add\'} }]">\n <span>+</span><span> </span><span [translate]="\'Tables.AddItem\'"></span>\n </a>\n </div>\n </div>\n </div>\n <div class="row">\n <div class="col-12 mb-4">\n <app-advanced-table [selectable]="true" #table\n [autoLoad]=false\n [showFooter]="false"\n (load)="onDataLoad($event)" [height]="600"></app-advanced-table>\n </div>\n </div>\n <router-modal></router-modal>\n</div>\n'}]}],e.ctorParameters=function(){return[{type:c.AngularDataContext},{type:b.TranslateService},{type:y.ActivatedRoute},{type:h.ErrorService},{type:h.ToastService},{type:h.ModalService},{type:h.UserActivityService}]},e.propDecorators={entitySet:[{type:f.Input,args:["entitySet"]}],category:[{type:f.Input,args:["category"]}],description:[{type:f.Input,args:["description"]}],longDescription:[{type:f.Input,args:["longDescription"]}],tableConfiguration:[{type:f.Input,args:["tableConfiguration"]}],searchConfiguration:[{type:f.Input,args:["searchConfiguration"]}],table:[{type:f.ViewChild,args:["table"]}],allowSaveOption:[{type:f.Input,args:["allowSaveOption"]}]},e}(),oe=function(l){function e(e,t,n,a,r,o,i){var s=l.call(this,e,t)||this;return s._translateService=n,s._context=a,s._errorService=r,s._modalService=o,s._appEvent=i,s.modalIcon="fas fa-project-diagram",s.progressType="indigo",s.errorMessage="Tables.Actions.CompletedWithErrors",s.loading=!1,s.refresh=new f.EventEmitter,s.modalClass="modal-lg",s.modalTitle="Tables.Actions.Label",s.okButtonDisabled=!1,s.okButtonText="Tables.Actions.Start",s}return C(e,l),Object.defineProperty(e.prototype,"form",{get:function(){return this.formComponent},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var n=this;this.refreshSubscription=this.refresh.subscribe(function(e){if(e&&e.progress){var t=0;t=e.progress<0?0:100<e.progress?100:e.progress,n.progressComponent.value=t}})},e.prototype.ngAfterViewInit=function(){var t=this;this.formComponent&&this.formComponent.form&&(this.okButtonDisabled=!0,this.invalidSubscription=this.formComponent.form.change.subscribe(function(e){Object.prototype.hasOwnProperty.call(e,"isValid")&&null!=e.changed&&(t.okButtonDisabled=!e.isValid)}))},e.prototype.ngOnDestroy=function(){this.refreshSubscription&&this.refreshSubscription.unsubscribe(),this.executeSubscription&&this.executeSubscription.unsubscribe(),this.invalidSubscription&&this.invalidSubscription.unsubscribe()},e.prototype.cancel=function(){if(!this.loading)return this._modalService.modalRef?this._modalService.modalRef.hide():void 0},e.prototype.ok=function(){return A(this,void 0,void 0,function(){var n=this;return I(this,function(e){try{this.loading=!0,this.lastError=null,this.formComponent&&this.formComponent.form&&this.formComponent.form.formio&&this.formComponent.form.formio.data&&(this.data=this.formComponent.form.formio.data),this.execute.subscribe(function(e){if(n.loading=!1,n.refresh.emit({progress:100}),e&&e.errors&&0<e.errors)return 1===e.errors?n.lastError=new Error(n._translateService.instant(n.errorMessage+".Description.One")):n.lastError=new Error(n._translateService.instant(n.errorMessage+".Description.Many",e)),void n.refresh.emit({progress:1});n._modalService.modalRef&&n._modalService.modalRef.hide()},function(e){n.loading=!1,n.lastError=e,n.refresh.emit({progress:0})})}catch(t){this.loading=!1,this.lastError=t}return[2]})})},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-row-action",template:'<div>\n <div class="modal-header" *ngIf="modalTitle">\n <h5 class="modal-title">{{modalTitle | translate}}</h5>\n <button (click)="cancel()" [disabled]="loading"\n type="button" class="close" data-dismiss="modal" aria-label="Cancel">\n <span aria-hidden="true">×</span>\n </button>\n </div>\n <div class="modal-body pt-0 mt-2 pb-0">\n <div class="row" *ngIf="lastError">\n <div class="col-12">\n <div class="alert alert-warning" role="alert">\n <span>{{ \'Tables.Actions.CompletedWithErrors.Title\' | translate }}</span><br>\n <small *ngIf="lastError.status >= 0" [translate]="\'E\' + lastError.status + \'.message\'"></small>\n <small *ngIf="lastError.status == null">{{lastError.message}}</small>\n </div>\n </div>\n </div>\n <div class="row" *ngIf="description">\n <div class="col-12 mb-3">\n <div class="text-justify">\n {{description | translate}}\n </div>\n </div>\n </div>\n <div class="row">\n <div class="col-12">\n <div *ngIf="items && items.length > 1" [translate]="\'Tables.Actions.ActionMessage.Many\'" [translateParams]="items"></div>\n <div *ngIf="items && items.length === 1" [translate]="\'Tables.Actions.ActionMessage.One\'"></div>\n <div class="font-weight-bold text-danger" *ngIf="items && items.length <= 0" [translate]="\'Tables.Actions.ActionMessage.None\'"></div>\n <div class="pt-2 font-weight-bold text-danger" *ngIf="additionalMessage && items && items.length <= 0">{{additionalMessage}}</div>\n </div>\n </div>\n <div class="row pt-3" *ngIf="formTemplate">\n <div class="col-12 mb-3">\n <div>\n <advanced-form-edit #formComponent [formName]="formTemplate" [(data)]="data"></advanced-form-edit>\n </div>\n </div>\n </div>\n\n <div class="row mt-3">\n <div class="col-12">\n <progressbar #progress [type]="progressType" [max]="100">\n </progressbar>\n </div>\n </div>\n </div>\n\n <div class="modal-footer justify-content-end">\n <button [disabled]="okButtonDisabled || loading || (items && items.length === 0)" (click)="ok()"\n type="button" [ngClass]="okButtonClass">\n {{okButtonText | translate}}\n </button>\n <button [disabled]="cancelButtonDisabled || loading"\n (click)="cancel()" type="button" [ngClass]="cancelButtonClass" data-dismiss="modal">\n {{cancelButtonText | translate}}\n </button>\n </div>\n</div>\n',encapsulation:f.ViewEncapsulation.None,styles:["\n .fa-1_5x {\n font-size: 1.5rem;\n }\n .form-control:disabled, .form-control[readonly] {\n background-color: inherit;\n }\n .form-check.checkbox {\n position: relative\n }\n "]}]}],e.ctorParameters=function(){return[{type:y.Router},{type:y.ActivatedRoute},{type:b.TranslateService},{type:c.AngularDataContext},{type:h.ErrorService},{type:h.ModalService},{type:h.AppEventService}]},e.propDecorators={items:[{type:f.Input}],modalIcon:[{type:f.Input}],description:[{type:f.Input}],formTemplate:[{type:f.Input}],progressType:[{type:f.Input}],data:[{type:f.Output}],additionalMessage:[{type:f.Input}],errorMessage:[{type:f.Input}],progressComponent:[{type:f.ViewChild,args:["progress"]}],formComponent:[{type:f.ViewChild,args:["formComponent"]}],refresh:[{type:f.Input}],execute:[{type:f.Input}]},e}(u.RouterModalOkCancel),ie=function(){function e(){this.filterChange=new f.EventEmitter}return Object.defineProperty(e.prototype,"filter",{get:function(){return this._filter},set:function(e){this._filter=e},enumerable:!0,configurable:!0}),e.prototype.onKeyEnter=function(e){"Enter"===e.code&&this.filterChange.emit(this._filter)},e.propDecorators={filterChange:[{type:f.Output}],filter:[{type:f.Input}]},e}(),se=function(o){function e(e,t,n,a){var r=o.call(this)||this;return r._context=e,r._translateService=t,r._activatedRoute=n,r._http=a,r.form={},r.refreshForm=new f.EventEmitter,r.submission={data:{}},r.loading=!0,r}return C(e,o),e.prototype.ngOnChanges=function(e){var t=this;Object.prototype.hasOwnProperty.call(e,"form")&&null!=e.form&&e.form.currentValue&&e.form.currentValue!=e.form.previousValue&&this.ngOnInit(),Object.prototype.hasOwnProperty.call(e,"formSrc")&&null!=e.formSrc&&e.formSrc.currentValue&&e.formSrc.currentValue!=e.formSrc.previousValue&&this._http.get(e.formSrc.currentValue).toPromise().then(function(e){t.form=e,t.ngOnInit()})["catch"](function(e){console.error("An error occurred while loading search configuration"),console.error(e)}),Object.prototype.hasOwnProperty.call(e,"filter")&&null!=e.filter&&(this.submission.data=e.filter.currentValue||{},this.refreshForm.emit({submission:this.submission}))},e.prototype.ngOnInit=function(){var t=this;this.form&&(new g.ServiceUrlPreProcessor(this._context).parse(this.form),new g.TranslatePreProcessor(this._translateService).parse(this.form),this.submission={data:this.filter},this.refreshForm.emit({form:this.form}),this.loading=!1,this.filterSubscription=this.filterChange.subscribe(function(e){t.submission.data=e,t.refreshForm.emit({submission:t.submission})}))},e.prototype.onChange=function(e){var n=this;Object.keys(this.formComponent.submission.data).forEach(function(e){if(Object.prototype.hasOwnProperty.call(n.formComponent.submission.data,e)){var t=n.formComponent.submission.data[e];"string"==typeof t&&0===t.length?delete n.filter[e]:Object.defineProperty(n.filter,e,{configurable:!0,enumerable:!0,value:t})}})},e.prototype.onFormLoad=function(e){var t=this._translateService.currentLang;this.formComponent.formio.i18next.options.resources[t]={translation:this._translateService.instant("Forms")},this.formComponent.formio.language=t},e.prototype.ngAfterViewInit=function(){},e.prototype.ngOnDestroy=function(){this.filterSubscription&&this.filterSubscription.unsubscribe()},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-search-form",template:'\n <div class="p-4">\n <formio #formioComponent class="formio-search" (keydown)="onKeyEnter($event)" (change)="onChange($event)" (formLoad)="onFormLoad($event)"\n [refresh]="refreshForm" [submission]="submission" [form]="form"></formio>\n </div>\n ',encapsulation:f.ViewEncapsulation.None,styles:["formio.formio-search .form-group{margin-bottom:0}formio.formio-search .form-group .col-form-label{font-size:90%;padding-top:4px;padding-bottom:4px}.choices__list.choices__list--single .choices__item:first-child.choices__item--selectable{width:85%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}"]}]}],e.ctorParameters=function(){return[{type:c.AngularDataContext},{type:b.TranslateService},{type:y.ActivatedRoute},{type:s.HttpClient}]},e.propDecorators={formComponent:[{type:f.ViewChild,args:["formioComponent"]}],form:[{type:f.Input}],formSrc:[{type:f.Input}],refreshForm:[{type:f.Output}]},e}(ie),le='\n<div>\n \x3c!-- search --\x3e\n <div class="row mt-3">\n <div class="col-12 col-lg-3">\n <div class="input-group mb-3">\n <input spellcheck="false" type="text"\n (keyup)="onKeyUp($event)" [(ngModel)]="searchText"\n class="form-control bg-gray-100 border-0"\n placeholder="{{\'Tables.SearchPlaceholder\' | translate}}" aria-label="Search" aria-describedby="basic-addon2">\n <div class="input-group-append">\n <button class="btn btn-default bg-gray-100 border-0" type="button">\n <i class="fa fa-search text-secondary"></i>\n </button>\n </div>\n </div>\n </div>\n <div #emptyTable class="d-none">\n <div>\n <div class="mt-4">\n <div class="icon-circle bg-gray-300 border-gray-100"></div>\n </div>\n <div class="mt-4">\n <h4 class="font-3xl text-dark" [translate]="\'Tables.EmptyTableTitle\'"></h4>\n <p class="font-lg text-dark" [translate]="\'Tables.EmptyTableMessage\'"></p>\n </div>\n\n </div>\n </div>\n <div class="col-12 col-lg-5">\n <div class="btn-toolbar">\n <button class="btn btn-gray-100">\n <i class="fa fa-sliders-h pr-2 text-secondary" aria-hidden="true"></i>{{\'Tables.Filters\' | translate}}\n </button>\n <div #dropdownFilter class="dropdown ml-3">\n <button class="btn btn-gray-100 dropdown-toggle"\n type="button" id="dropdownDefaultFilters"\n data-toggle="dropdown" dropdownToggle>\n {{ this.defaultFilter.name | translate }}\n </button>\n <div class="dropdown-menu" aria-labelledby="dropdownDefaultFilters">\n <button type="button" class="dropdown-item" *ngFor="let filter of defaultFilters" (click)="onFilterSelect(filter)">\n {{ filter.name | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n <div class="col text-lg-right mt-3 mt-lg-0">\n <button [disabled]="true" class="btn rounded-pill btn-outline-theme">\n <span class="pr-2 font-lg">+</span><span [translate]="\'Tables.AddItem\'"></span>\n </button>\n </div>\n </div>\n <div class="row">\n <div class="col-12" [ngClass]="{ \'component-loading\': loading}">\n <app-advanced-table #advancedTable (init)="onTableInit($event)"\n (load)="onDataLoad($event)"\n [selectable]="true"\n [multipleSelect]="true"\n [scrollX]="false" [scrollY]="320"\n [pageLength]="pageLength"\n [scrollable]="false" [showFooter]="false"\n [showActions]="false" [lengthMenu]="lengthMenu"\n [config]="tableConfig" [configSrc]="tableConfigSrc"></app-advanced-table>\n </div>\n </div>\n <div class="row mt-3 table-custom-pager">\n <div class="col-12 d-flex" *ngIf="recordsTotal">\n <div class="mt-2 ml-auto mr-3 text-secondary" [translate]="\'Tables.RecordsPerPage\'"></div>\n <div #dropdownLength class="dropdown mr-3">\n <button class="btn btn-gray-100 dropdown-toggle"\n type="button" id="dropdownPageSize" data-toggle="dropdown"\n dropdownToggle>\n {{pageLength}}\n </button>\n <div class="dropdown-menu" aria-labelledby="dropdownPageSize">\n <button (click)="setLength(item)"\n class="dropdown-item dropdown-item-theme"\n type="button" *ngFor="let item of lengthMenu">{{item}}</button>\n </div>\n </div>\n <div class="mt-2 mr-2" [translate]="\'Tables.PageInfo\'" [translateParams]="pageInfo"></div>\n <button [disabled]="pageInfo && pageInfo.page === 0" class="btn text-nowrap" (click)="firstPage()">\n <i class="fa fa-chevron-left text-color-theme"></i>\n <i class="fa fa-chevron-left text-color-theme"></i>\n </button>\n <button [disabled]="pageInfo && pageInfo.page===0" class="btn" (click)="previousPage()">\n <i class="fa fa-chevron-left text-color-theme"></i>\n </button>\n <button [disabled]="pageInfo && pageInfo.page===pageInfo.pages-1" class="btn" (click)="nextPage()">\n <i class="fa fa-chevron-right text-color-theme"></i>\n </button>\n <button [disabled]="pageInfo && pageInfo.page===pageInfo.pages-1" class="btn text-nowrap" (click)="lastPage()">\n <i class="fa fa-chevron-right text-color-theme"></i>\n <i class="fa fa-chevron-right text-color-theme"></i>\n </button>\n </div>\n </div>\n </div>\n',ce=function(i){function s(e,t,n,a,r){var o=i.call(this,e,t)||this;return o._context=n,o.advancedFilterValueProvider=a,o.datePipe=r,o.pageLength=25,o.lengthMenu=[5,10,25,50,100],o.recordsTotal=0,o.loading=!1,o.recordsFiltered=0,o.defaultFilters=[s.DEFAULT_ALL_FILTER],o.defaultFilter=s.DEFAULT_ALL_FILTER,o.pageInfo={serverSide:!0},o.modalClass="modal-xl modal-table",o._template=new h.TemplatePipe,o}return C(s,i),s.prototype.ngAfterViewInit=function(){},s.prototype._getInputs=function(e){var t=e.__prop__metadata__,n=[];return null==t?n:(Object.keys(t).forEach(function(e){"Input"===t[e][0].ngMetadataName&&n.push(e)}),n.sort())},s.prototype.hasInputs=function(){return[]},s.prototype.ngOnInit=function(){var n=this;this.okButtonText="Tables.Apply",this.cancelButtonText="Tables.Cancel",this.subscription=this.activatedRoute.data.subscribe(function(t){t.title&&(n.modalTitle=t.title),t.config&&(n.tableConfig=t.config),n.tableConfig&&n.defaultFilters.push.apply(n.defaultFilters,n.tableConfig.searches),n.hasInputs().forEach(function(e){Object.prototype.hasOwnProperty.call(t,e)&&(n[e]=t[e])}),n.configChangesSubscription=n.advancedTable.configChanges.subscribe(function(e){n.tableConfig&&(n.defaultFilter=s.DEFAULT_ALL_FILTER,n.defaultFilters=[s.DEFAULT_ALL_FILTER],n.defaultFilters.push.apply(n.defaultFilters,n.tableConfig.searches))})})},s.prototype.cancel=function(){return this.close()},s.prototype.ok=function(){return this.close()},s.prototype.ngOnDestroy=function(){this.subscription&&this.subscription.unsubscribe()},s.prototype.onDataLoad=function(e){this.recordsTotal=e.recordsTotal,this.recordsFiltered=e.recordsFiltered,0<e.recordsTotal&&0===this.pageInfo.recordsTotal&&(this.pageInfo.recordsTotal=e.recordsTotal)},s.prototype.previousPage=function(){this.advancedTable.dataTable.page("previous").draw("page")},s.prototype.nextPage=function(){this.advancedTable.dataTable.page("next").draw("page")},s.prototype.onTableInit=function(t){var n=this,e=t.page.info();e.start+=1,n.pageInfo=e,t.context[0].oLanguage.sEmptyTable=this.emptyTable.nativeElement.innerHTML,t.on("page.dt",function(){var e=t.page.info();e.start+=1,n.pageInfo=e}),t.on("draw.dt",function(){n.loading=!1;var e=t.page.info();e.start+=1,n.pageInfo=e})},s.prototype.firstPage=function(){this.advancedTable.dataTable.page("first").draw("page")},s.prototype.lastPage=function(){this.advancedTable.dataTable.page("last").draw("page")},s.prototype.setLength=function(e){this.pageLength=e,this.advancedTable.dataTable.page.len(e).draw()},s.prototype.onKeyUp=function(e){"Enter"===e.code&&(this.loading=!0,this.advancedTable.search(e.target.value))},s.prototype.getFilters=function(e,t,n){if(void 0===t&&(t={}),!e||!Array.isArray(e.criteria))return[];if(null==n.filter)return[];var a=e.criteria.find(function(e){return Object.prototype.hasOwnProperty.call(n.filter,e.name)});if(null==a)return[];var r,o=n.filter[a.name],i=null!==a.name?a.name.toString():"";if(i.includes("GMT")){var s=this.datePipe.transform(i,"MM/dd/yyyy");r=this._template.transform(a.filter,{value:s})}else r="undefined"!==i?this._template.transform(a.filter,Object.assign({value:o},t)):"";return[r]},s.prototype.onFilterSelect=function(e){this.advancedSearch(e)},s.prototype.advancedSearch=function(o){return A(this,void 0,void 0,function(){var t,n,a,r;return I(this,function(e){switch(e.label){case 0:if(!this.tableConfig&&!Array.isArray(this.tableConfig.criteria))return console.warn("No table configuration available",this.tableConfig),[2];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,this.advancedFilterValueProvider.getValues()];case 2:return t=e.sent(),[3,4];case 3:return e.sent(),t={},[3,4];case 4:return n=[],o?(this.defaultFilter=o,a=this.getFilters(this.tableConfig,t,o)):this.defaultFilter=s.DEFAULT_ALL_FILTER,n.push(a),(r=this._context.model(this.advancedTable.config.model).asQueryable()).setParam("filter",n.join(" and ")).prepare(),this.advancedTable.query=r,this.advancedTable.fetch(),[2]}})})},s.DEFAULT_ALL_FILTER={name:"Tables.All",filter:null},s.decorators=[{type:f.Component,args:[{selector:"app-advanced-table-modal",template:le,styles:["\n\n "]}]}],s.ctorParameters=function(){return[{type:y.Router},{type:y.ActivatedRoute},{type:c.AngularDataContext},{type:X},{type:l.DatePipe}]},s.propDecorators={advancedTable:[{type:f.ViewChild,args:["advancedTable"]}],emptyTable:[{type:f.ViewChild,args:["emptyTable"]}],dropdownFilter:[{type:f.ViewChild,args:["dropdownFilter"]}],dropdownLength:[{type:f.ViewChild,args:["dropdownLength"]}],tableConfig:[{type:f.Input,args:["tableConfig"]}],tableConfigSrc:[{type:f.Input,args:["tableConfigSrc"]}],pageLength:[{type:f.Input,args:["pageLength"]}],searchText:[{type:f.Input,args:["searchText"]}],lengthMenu:[{type:f.Input,args:["lengthMenu"]}],defaultFilter:[{type:f.Input,args:["defaultFilter"]}]},s}(u.RouterModalOkCancel),de=function(s){function e(e,t,n,a,r,o){var i=s.call(this,e,t,n,a,r)||this;return i._modalRef=o,i.dismiss=new f.EventEmitter,i}return C(e,s),e.prototype.ok=function(){return A(this,void 0,void 0,function(){return I(this,function(e){return this._modalRef.hide(),this.dismiss.emit("ok"),[2]})})},e.prototype.cancel=function(){return A(this,void 0,void 0,function(){return I(this,function(e){return this._modalRef.hide(),this.dismiss.emit("cancel"),[2]})})},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-select",template:'<div class="modal-header" *ngIf="modalTitle">\n <h5 class="modal-title">{{modalTitle | translate}}</h5>\n <button [disabled]="cancelButtonDisabled" (click)="cancel()" type="button" class="close" data-dismiss="modal"\n aria-label="Cancel">\n <span aria-hidden="true">×</span>\n </button>\n</div>\n<div class="modal-body">\n <div>\n \x3c!-- search --\x3e\n <div class="row mt-3">\n <div class="col-12 col-lg-3">\n <div class="input-group mb-3">\n <input spellcheck="false" type="text" (keyup)="onKeyUp($event)" [(ngModel)]="searchText"\n class="form-control bg-gray-100 border-0" placeholder="{{\'Tables.SearchPlaceholder\' | translate}}"\n aria-label="Search" aria-describedby="basic-addon2">\n <div class="input-group-append">\n <button class="btn btn-default bg-gray-100 border-0" type="button">\n <i class="fa fa-search text-secondary"></i>\n </button>\n </div>\n </div>\n </div>\n <div #emptyTable class="d-none">\n <div>\n <div class="mt-4">\n <div class="icon-circle bg-gray-300 border-gray-100"></div>\n </div>\n <div class="mt-4">\n <h4 class="font-3xl text-dark" [translate]="\'Tables.EmptyTableTitle\'"></h4>\n <p class="font-lg text-dark" [translate]="\'Tables.EmptyTableMessage\'"></p>\n </div>\n\n </div>\n </div>\n <div class="col-12 col-lg-5">\n <div class="btn-toolbar">\n <button class="btn btn-gray-100">\n <i class="fa fa-sliders-h pr-2 text-secondary" aria-hidden="true"></i>{{\'Tables.Filters\' | translate}}\n </button>\n <div class="dropdown ml-3">\n <button dropdownToggle class="btn btn-gray-100 dropdown-toggle" type="button" id="dropdownDefaultFilters"\n data-toggle="dropdown">\n {{ this.defaultFilter.name | translate }}\n </button>\n <div class="dropdown-menu" aria-labelledby="dropdownDefaultFilters">\n <a class="dropdown-item" *ngFor="let filter of defaultFilters"\n (click)="advancedSearch(filter.filter ? filter : \'\')">\n {{ filter.name | translate }}\n </a>\n </div>\n </div>\n </div>\n </div>\n <div class="col text-lg-right mt-3 mt-lg-0">\n <button [disabled]="true" class="btn rounded-pill btn-outline-theme">\n <span class="pr-2 font-lg">+</span><span [translate]="\'Tables.AddItem\'"></span>\n </button>\n </div>\n </div>\n <div class="row">\n <div class="col-12" [ngClass]="{ \'component-loading\': loading}">\n <app-advanced-table #advancedTable (init)="onTableInit($event)" (load)="onDataLoad($event)"\n [autoLoad]="true"\n [selectable]="true" [multipleSelect]="true" [scrollX]="false" [scrollY]="320" [pageLength]="pageLength"\n [scrollable]="false" [showFooter]="false" [showActions]="false" [lengthMenu]="lengthMenu"\n [config]="tableConfig" [configSrc]="tableConfigSrc"></app-advanced-table>\n </div>\n </div>\n <div class="row mt-3 table-custom-pager">\n <div class="col-12 d-flex" *ngIf="recordsTotal">\n <div class="mt-2 ml-auto mr-3 text-secondary" [translate]="\'Tables.RecordsPerPage\'"></div>\n <div class="dropdown mr-3">\n <button dropdownToggle class="btn btn-gray-100 dropdown-toggle" type="button" id="dropdownPageSize"\n data-toggle="dropdown">\n {{pageLength}}\n </button>\n <div class="dropdown-menu" aria-labelledby="dropdownPageSize">\n <button (click)="setLength(item)" class="dropdown-item dropdown-item-theme" type="button"\n *ngFor="let item of lengthMenu">{{item}}</button>\n </div>\n </div>\n <div class="mt-2 mr-2" [translate]="\'Tables.PageInfo\'" [translateParams]="pageInfo"></div>\n <button [disabled]="pageInfo && pageInfo.page === 0" class="btn text-nowrap" (click)="firstPage()">\n <i class="fa fa-chevron-left text-color-theme"></i>\n <i class="fa fa-chevron-left text-color-theme"></i>\n </button>\n <button [disabled]="pageInfo && pageInfo.page===0" class="btn" (click)="previousPage()">\n <i class="fa fa-chevron-left text-color-theme"></i>\n </button>\n <button [disabled]="pageInfo && pageInfo.page===pageInfo.pages-1" class="btn" (click)="nextPage()">\n <i class="fa fa-chevron-right text-color-theme"></i>\n </button>\n <button [disabled]="pageInfo && pageInfo.page===pageInfo.pages-1" class="btn text-nowrap"\n (click)="lastPage()">\n <i class="fa fa-chevron-right text-color-theme"></i>\n <i class="fa fa-chevron-right text-color-theme"></i>\n </button>\n </div>\n </div>\n </div>\n</div>\n<div class="modal-footer justify-content-end">\n <button [disabled]="okButtonDisabled" (click)="ok()" type="button" [ngClass]="okButtonClass">\n {{okButtonText | translate}}\n </button>\n <button [disabled]="cancelButtonDisabled" (click)="cancel()" type="button" [ngClass]="cancelButtonClass"\n data-dismiss="modal">\n {{ cancelButtonText | translate}}\n </button>\n</div>\n',encapsulation:f.ViewEncapsulation.None,styles:["\n .modal-table .dataTables_wrapper {\n height: 50vh;\n overflow-y: auto;\n }\n "]}]}],e.ctorParameters=function(){return[{type:y.Router},{type:y.ActivatedRoute},{type:c.AngularDataContext},{type:X},{type:l.DatePipe},{type:T.BsModalRef}]},e}(ce),ue=function(){function e(e){this._modal=e}return e.prototype.select=function(r){var o=this;return new Promise(function(t,e){try{var n=o._modal.openModalComponent(de,{"class":"modal-xl modal-table",ignoreBackdropClick:!0,animated:!0,initialState:r}).content;n.dismiss.subscribe(function(e){return t({result:e,items:n.advancedTable.selected})})}catch(a){return e(a)}})},e.decorators=[{type:f.Injectable}],e.ctorParameters=function(){return[{type:h.ModalService}]},e}(),pe=function(){function e(e){this._http=e}return e.prototype.resolve=function(e,t){var n=e.data.list||e.params.list,a=e.data.model||e.params.model;return this._http.get("assets/lists/"+a+"/"+n+".json").toPromise()},e.decorators=[{type:f.Injectable}],e.ctorParameters=function(){return[{type:s.HttpClient}]},e}(),fe=function(){function e(e){this._http=e}return e.prototype.resolve=function(e,t){var n=e.data.list||e.params.list,a=e.data.model||e.params.model;return this._http.get("assets/lists/"+a+"/search."+n+".json").toPromise()},e.decorators=[{type:f.Injectable}],e.ctorParameters=function(){return[{type:s.HttpClient}]},e}(),he=function(){function e(e,t){var n=this;this._router=e,this._activatedRoute=t,e.events.forEach(function(e){e instanceof y.NavigationStart&&n._activeTable&&(n._activeTable=null)})}return Object.defineProperty(e.prototype,"activeTable",{get:function(){return this._activeTable},set:function(e){this._activeTable=e},enumerable:!0,configurable:!0}),e.decorators=[{type:f.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:y.Router},{type:y.ActivatedRoute}]},e.ngInjectableDef=f.defineInjectable({factory:function(){return new e(f.inject(y.Router),f.inject(y.ActivatedRoute))},token:e,providedIn:"root"}),e}(),ge=function(){function e(e,t,n,a,r,o,i){this._context=e,this._activatedRoute=t,this.elRef=n,this.modalService=a,this.userStorage=r,this.formBuilder=o,this._activatedTable=i,this.params=this._activatedRoute.params,this.columns=[]}return e.prototype.ngOnInit=function(){},e.prototype.ngAfterViewInit=function(){var t=this;this.activeTableConfig=this._activatedTable.activeTable.getConfig(),this.storageKey="registrar/settings/"+this.activeTableConfig.title+"/table/columns",this.form=this.formBuilder.group({columns:new d.FormArray([],this.minSelectedColumns(1))}),this.userStorage.getItem(this.storageKey).then(function(e){e&&(t.savedTableSettings=e.value,t.savedTableSettings&&t._activatedTable.activeTable&&t._activatedTable.activeTable.handleColumns(t.savedTableSettings),t.addCheckboxes())})},e.prototype.addCheckboxes=function(){var a=this;this.tableColumns=this.activeTableConfig.columns.slice(1),this.tableColumns.forEach(function(e,t){if(!e.hidden){var n={id:e.name,name:e.title};a.columns.push(n)}}),this.savedTableSettings&&(this.columns.forEach(function(e,t){e.check=!1,e.check=a.savedTableSettings.includes(e.id)}),this.columns.map(function(e,t){var n=new d.FormControl(e.check);a.form.controls.columns.push(n)}))},e.prototype.openTableSettings=function(e){this.modalRef=this.modalService.show(e)},e.prototype.saveTableSettings=function(){var n=this,e=this.form.value.columns.map(function(e,t){return e?n.columns[t].id:null}).filter(function(e){return null!==e});this.userStorage.setItem(this.storageKey,e),this._activatedTable.activeTable&&this._activatedTable.activeTable.handleColumns(e),this.modalRef.hide()},e.prototype.dismiss=function(){this.modalRef.hide()},e.prototype.minSelectedColumns=function(n){void 0===n&&(n=1);return function(e){var t=e.controls.map(function(e){return e.value}).reduce(function(e,t){return t?e+t:e},0);return n<=t?null:{required:!0}}},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-table-settings",template:'<i class="fa fa-edit fa-lg advanced-table-settings" (click)="openTableSettings(modal_settings_template)"></i>\r\n<ng-template #modal_settings_template>\r\n <div class="modal-header">\r\n <h3 class="modal-title" [translate]="\'Tables.ColumnDisplay\'"></h3>\r\n <button type="button" class="close pull-right" aria-label="Close" (click)="dismiss()">\r\n <span aria-hidden="true">×</span>\r\n </button>\r\n </div>\r\n\r\n <form class="form-group p-3 text-left" [formGroup]="form" (ngSubmit)="saveTableSettings()">\r\n <div class="modal-body">\r\n <p [translate]="\'Tables.ColumnDisplayInfo\'"></p>\r\n \x3c!-- <div *ngFor="let column of form.controls.columns.controls; let i = index">\r\n <div formArrayName="columns">\r\n <input class="checkbox checkbox-primary" type="checkbox" [formControlName]="i" id="checkbox{{i}}">\r\n <label for="checkbox{{i}}">\r\n {{columns[i].name | translate}}\r\n </label>\r\n </div>\r\n </div> --\x3e\r\n </div>\r\n <div class="modal-footer">\r\n <button type="button" class="btn btn-light" (click)="dismiss()" [translate]="\'Tables.Cancel\'"> </button>\r\n <button type="submit" class="btn btn-success" [translate]="\'Tables.Save\'"></button>\r\n </div>\r\n </form>\r\n</ng-template>\r\n',encapsulation:f.ViewEncapsulation.None}]}],e.ctorParameters=function(){return[{type:c.AngularDataContext},{type:y.ActivatedRoute},{type:f.ElementRef},{type:T.BsModalService},{type:h.UserStorageService},{type:d.FormBuilder},{type:he}]},e.propDecorators={table:[{type:f.Input}],modal_settings_template:[{type:f.ViewChild,args:["modal_settings_template"]}]},e}(),me=function(u){function e(e,t,n,a,r,o,i,s,l,c){var d=u.call(this)||this;return d._context=e,d._activatedRoute=t,d.datePipe=n,d._modalService=a,d._userStorage=r,d._translate=o,d._advancedSearchValueProvider=i,d._template=s,d._router=l,d._modal=c,d.collapsed=!0,d.allowSave=!0,d.showMore=!0,d.mergeQueryParams=!1,d.viewChange=new f.EventEmitter,d.userSearchList=[],d.selectedList=null,d}return C(e,u),Object.defineProperty(e.prototype,"text",{get:function(){if(this.searchText)return this.searchText.nativeElement.value},set:function(e){this.searchText&&(this.searchText.nativeElement.value=e)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var t=this;this.configChangesSubscription=this.table.configChanges.subscribe(function(e){null!=e&&t.loadUserSearchList().then(function(){t.mergeQueryParams&&(t.queryParamSubscription=t._activatedRoute.queryParams.subscribe(function(e){t.applyQueryParams(e)}))})})},e.prototype.applyQueryParams=function(t){var n=this;if(this.filter={},Object.prototype.hasOwnProperty.call(t,"q"))return this.collapsed=!0,this.text=t.q,this.table.search(this.text);this.text="";var a=Object.assign({},t);Object.prototype.hasOwnProperty.call(t,"s")?(this.collapsed=!1,this.userSearchList&&(this.selectedList=this.userSearchList.find(function(e){return e.name===t.s}),this.selectedList&&(a=this.selectedList.filter))):this.selectedList=null,Object.keys(a).filter(function(t){if(n.table&&n.table.config&&n.table.config.criteria)return n.table.config.criteria.find(function(e){return e.name===t})}).forEach(function(e){var t=a[e];m.TextUtils.isNumber(t)&&(t=parseFloat(a[e])),n.filter[e]!==t&&Object.defineProperty(n.filter,e,{configurable:!0,enumerable:!0,writable:!0,value:t}),null!=n.filter[e]&&(n.collapsed=!1)}),this.filterChange.emit(this.filter),this.getQuery().then(function(e){if(null==n.table.query)n.table.query=e;else if(null!=e){var t=e.getParams();n.table.query.setParam("$filter",t.$filter)}else n.table.query.setParam("$filter",null);n.table.fetch(!0)})},e.prototype.ngOnDestroy=function(){this.queryParamSubscription&&this.queryParamSubscription.unsubscribe(),this.configChangesSubscription&&this.configChangesSubscription.unsubscribe()},e.prototype.ngAfterViewInit=function(){},e.prototype.onSearchKeyDown=function(e){if(this.table&&13===e.keyCode){var t=e.target.value;if(this.mergeQueryParams){var n={q:t};return this.table.config&&this.table.config.criteria&&this.table.config.criteria.forEach(function(e){Object.defineProperty(n,e.name,{configurable:!0,enumerable:!0,writable:!0,value:null})}),this._router.navigate([],{relativeTo:this._activatedRoute,queryParams:n,queryParamsHandling:"merge"})}return this.table.search(t),!1}},e.prototype.transformDate=function(e){return e=this.datePipe.transform(e,"MM/dd/yyyy")},e.prototype.convertToString=function(e){var t="";return null!=e&&(t=e.toString()),t},e.prototype.loadUserSearchList=function(){var n=this;return this.storageKey="tables/"+this.table.config.model+"/searches",this._userStorage.getItem(this.storageKey).then(function(e){var t=e.value||[];return n.table&&n.table.config.searches&&n.table.config.searches.length&&t.push.apply(t,n.table.config.searches.map(function(e){return e.readOnly=!0,e.name=n._translate.instant(e.name),e})),n.userSearchList=t,Promise.resolve()})["catch"](function(e){return console.error("An error occurred while getting user search list"),console.error(e),Promise.resolve()})},e.prototype.onSelectUserSearch=function(e){if(!this.selectedList)return this._router.navigate([],{relativeTo:this._activatedRoute,queryParams:{s:null},queryParamsHandling:"merge"});var t=this.searchInListByName(this.selectedList.name);if(t){if(this.mergeQueryParams){var n={q:null,s:this.selectedList.name};return this.table.config.criteria.forEach(function(e){!1===Object.prototype.hasOwnProperty.call(n,e.name)&&Object.defineProperty(n,e.name,{configurable:!0,enumerable:!0,writable:!0,value:null})}),this._router.navigate([],{relativeTo:this._activatedRoute,queryParams:n,queryParamsHandling:"merge"})}return this.selectedList=t,this.filter=this.selectedList.filter,this.filterChange.emit(this.filter),!0}return!1},e.prototype.searchInListByName=function(t){if(Array.isArray(this.userSearchList)){var e=this.userSearchList.find(function(e){return e.name===t});return e||!1}},e.prototype.updateSavedSearchListItemByName=function(t,e){var n=this.userSearchList.find(function(e){return e.name===t}),a=this.userSearchList.indexOf(n);this.userSearchList[a]=e,this.selectedList=this.userSearchList[a]},e.prototype.updateSavedSearchListItemByObject=function(e,t){var n=this.userSearchList.indexOf(e);this.userSearchList[n]=t,this.selectedList=this.userSearchList[n]},e.prototype.deleteItemFromSavedSearchListByObject=function(t){this.userSearchList=this.userSearchList.filter(function(e){return e!==t}),this.selectedList=null,this.filter={},this.advancedSearch(!0),this.uploadListOnUserStorage()},e.prototype.saveSearch=function(e,t){if(void 0===t&&(t=!0),this.table.config.model)if(this.storageKey="tables/"+this.table.config.model+"/searches",this.filter&&Object.keys(this.filter).length)if(!t&&this.selectedList){var n={name:this.selectedList.name,filter:_({},this.filter)};this.updateSavedSearchListItemByObject(this.selectedList,n),this.uploadListOnUserStorage()}else this.modalRef=this._modalService.show(e);else this._modal.showWarningDialog(this._translate.instant("AdvancedSearch.Modal.Title"),this._translate.instant("AdvancedSearch.Modal.EmptyCriteriaList"),h.DIALOG_BUTTONS.Ok);else this._modal.showWarningDialog(this._translate.instant("AdvancedSearch.Modal.Title"),this._translate.instant("AdvancedSearch.Modal.NoListDefined"),h.DIALOG_BUTTONS.Ok)},e.prototype.confirmModal=function(e){if(e&&!this.searchInListByName(e)){var t={name:e,filter:_({},this.filter)};this.userSearchList&&0!==this.userSearchList.length?(this.userSearchList.push(t),this.storageValue=this.userSearchList):(this.storageValue=[t],this.userSearchList=this.storageValue),this.selectedList=t,this.uploadListOnUserStorage(),this.modalRef.hide()}else e&&this.searchInListByName(e)?alert(this._translate.instant("AdvancedSearch.Modal.TitleOnListAlreadyCreated")):alert(this._translate.instant("AdvancedSearch.Modal.TitleOnUserError"))},e.prototype.closeModal=function(){this.modalRef.hide()},e.prototype.uploadListOnUserStorage=function(){this._userStorage.setItem(this.storageKey,this.userSearchList.filter(function(e){return!e.readOnly}))},e.prototype.asyncAdvancedSearch=function(e){return A(this,void 0,void 0,function(){var t,n;return I(this,function(e){switch(e.label){case 0:return this.table&&this.table.config&&Array.isArray(this.table.config.criteria)?[4,this.getQuery()]:[3,2];case 1:if(t=e.sent(),this.mergeQueryParams)return this.selectedList=null,n=Object.assign({q:null,s:null},this.filter),this.table.config.criteria.forEach(function(e){!1===Object.prototype.hasOwnProperty.call(n,e.name)&&Object.defineProperty(n,e.name,{configurable:!0,enumerable:!0,writable:!0,value:null})}),[2,this._router.navigate([],{relativeTo:this._activatedRoute,queryParams:n,queryParamsHandling:"merge"})];this.table.query?this.table.query.setParam("$filter",t.getParams().$filter):this.table.query=t,this.table.fetch(),e.label=2;case 2:return[2]}})})},e.prototype.search=function(){return this.asyncAdvancedSearch().then(function(){})},e.prototype.getQuery=function(){return A(this,void 0,void 0,function(){var n,a,t,r=this;return I(this,function(e){switch(e.label){case 0:return this.collapsed?[2,null]:this.table&&this.table.config&&Array.isArray(this.table.config.criteria)?(n=[],[4,this._advancedSearchValueProvider.getValues()]):[3,2];case 1:return a=e.sent(),this.table.config.criteria.forEach(function(e){if(Object.prototype.hasOwnProperty.call(r.filter,e.name))if(r.convertToString(r.filter[e.name]).includes("GMT")){var t=r.transformDate(r.filter[e.name]);n.push(r._template.transform(e.filter,{value:t}))}else"undefined"!==r.filter[e.name]&&n.push(r._template.transform(e.filter,Object.assign({value:r.filter[e.name]},a)))}),t=void 0,n||n.length?(t=this._context.model(this.table.config.model).asQueryable()).setParam("filter",n.join(" and ")):t=this._context.model(this.table.config.model).asQueryable(),[2,t];case 2:return[2]}})})},e.prototype.advancedSearch=function(e){return this.asyncAdvancedSearch(e)},e.prototype.clear=function(){if(this.mergeQueryParams){var t={q:this.selectedList=null,s:null};return this.table.config.criteria.forEach(function(e){!1===Object.prototype.hasOwnProperty.call(t,e.name)&&Object.defineProperty(t,e.name,{configurable:!0,enumerable:!0,writable:!0,value:null})}),this._router.navigate([],{relativeTo:this._activatedRoute,queryParams:t,queryParamsHandling:"merge"})}this.filter={},this.selectedList=null,this.filterChange.emit(this.filter)},Object.defineProperty(e.prototype,"viewState",{get:function(){return{advancedView:!this.collapsed}},enumerable:!0,configurable:!0}),e.prototype.toggleView=function(){return A(this,void 0,void 0,function(){return I(this,function(e){return this.collapsed=!this.collapsed,this.viewChange.emit(this.viewState),[2]})})},e.decorators=[{type:f.Component,args:[{selector:"app-advanced-table-search",template:'<div class="s--list-navbar d-none d-sm-block">\n\n <div id="collapse-header" [ngClass]="{\'show\':collapsed}" class="collapse multi-collapse">\n <form class="form-inline p-3 col">\n <div class="form-group col-7" [ngClass]= "{ \'col-12\': !showMore }">\n <label class="pr-3" for="searchText" [translate]="\'Tables.Search\'"></label>\n <input (keydown)="onSearchKeyDown($event)" spellcheck="false" type="text" id="searchText" name="searchText"\n class="form-control col text-left" placeholder="{{ \'Tables.SearchPlaceholder\' | translate }}" #searchText>\n </div>\n <div *ngIf="showMore" class="col-5 text-right text-secondary" id="heading3">\n <button class="d-inline-block btn btn-link collapsed float-right text-secondary text-decoration-none"\n type="button" (click)="toggleView();">\n <span class="d-none d-sm-inline" [translate]="\'AdvancedSearch.More\'"></span>\n <i class="ml-2 pt-1 fa fa-chevron-down"></i>\n </button>\n </div>\n </form>\n </div>\n\n <div id="collapse3" [ngClass]="{\'show\':!collapsed}" class="collapse multi-collapse" aria-labelledby="heading3">\n <div class="row">\n <div class="col-sm-12">\n <div id="advanced-form">\n <ng-content select="advanced-search"></ng-content>\n <hr class="mt-0 mb-0" width="97%">\n <div class="row">\n <div class="col-sm-12">\n <div class="form-inline pb-3 pt-3 pr-1 pl-1 col">\n\n <div class="form-group col-4">\n <div class="d-flex flex-row w-100" *ngIf="allowSave">\n <label class="pr-3 d-none" [translate]="\'AdvancedSearch.SavedSearches\'"></label>\n <select *ngIf="userSearchList" class="custom-select text-secondary flex col-12" (change)="onSelectUserSearch($event)" [(ngModel)]="selectedList">\n <option [ngValue]="null" [translate]="\'AdvancedSearch.Choose\'"></option>\n <option *ngFor="let item of userSearchList" [ngValue]="item">{{ item.name }}</option>\n </select>\n <select *ngIf="!userSearchList" class="custom-select flex col-6">\n <option [value]="null" [translate]="\'AdvancedSearch.Choose\'"></option>\n </select>\n </div>\n </div>\n\n <div class="col-3 d-flex flex-row w-100">\n <div class="btn-group" *ngIf="allowSave">\n <button type="button" class="btn btn-sm btn-primary" (click)="saveSearch(templateToUse, ( (selectedList && selectedList.readOnly) ? true : false ) )" [translate]="\'AdvancedSearch.SaveCurrentSearch\'"></button>\n <button type="button" dropdownToggle class="btn btn-sm btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\n <span class="sr-only" [translate]="\'AdvancedSearch.ToggleDropdown\'"></span>\n </button>\n\n <div class="dropdown-menu">\n <a [ngClass]="{\'disabled\': selectedList && selectedList.readOnly}" class="dropdown-item" (click)="saveSearch(templateToUse, false)" [translate]="\'AdvancedSearch.Save\'" href="javascript:void(0)"></a>\n <a class="dropdown-item" (click)="saveSearch(templateToUse)" [translate]="\'AdvancedSearch.SaveAs\'" href="javascript:void(0)"></a>\n <div class="dropdown-divider"></div>\n <a [ngClass]="{\'disabled\': selectedList && selectedList.readOnly}" class="dropdown-item" (click)="deleteItemFromSavedSearchListByObject(selectedList)" [translate]="\'AdvancedSearch.Delete\'" href="javascript:void(0)"></a>\n </div>\n </div>\n </div>\n\n <div class="col-5 text-right text-secondary">\n <button type="button" class="btn btn-light text-secondary pl-2 pr-2 mr-2" (click)="clear()">\n <i class="fa fa-eraser"></i>\n </button>\n <button type="button" class="btn btn-success pl-4 pr-4 mr-2" (click)="advancedSearch($event);"\n [translate]="\'Tables.Search\'"></button>\n <button class="d-inline-block btn btn-link collapsed float-right text-secondary text-decoration-none"\n type="button" (click)="toggleView();">\n <span class="d-none d-sm-inline" [translate]="\'AdvancedSearch.Less\'"></span>\n <i class="ml-2 pt-1 fa fa-chevron-up"></i>\n </button>\n </div>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-template #templateToUse>\n <div class="modal-header">\n <h4 class="modal-title pull-left" [translate]="\'AdvancedSearch.Modal.Title\'"></h4>\n <button type="button" class="close pull-right" aria-label="Close" (click)="modalRef.hide()">\n <span aria-hidden="true">×</span>\n </button>\n </div>\n <div class="modal-body mt-0 mb-0 text-center">\n <div>\n <p class="text-secondary text-left" [translate]="\'AdvancedSearch.Modal.Help\'"></p>\n </div>\n <form class="p-3 text-center" #newListForm="ngForm" >\n <div [ngVar]="{ name: ( selectedList?.name ? ( selectedList?.name + \' (1)\' ) : null ) }" #model="ngVar">\n <input [(ngModel)]="model.value.name" [required]="true" id="newListName" name="newListName" type="text" class="form-control" placeholder="{{ \'AdvancedSearch.Modal.SaveNamePlaceholder\' | translate }}"/>\n <div class="btn-group mt-4">\n <button [disabled]="newListForm.invalid" type="button" class="btn btn-primary" (click)="confirmModal(model.value.name)" [translate]="\'AdvancedSearch.Modal.Accept\'"></button>\n <button type="button" class="btn btn-gray-300 text-white" (click)="closeModal()" [translate]="\'AdvancedSearch.Modal.Close\'"></button>\n </div>\n </div>\n </form>\n </div>\n </ng-template>\n\n</div>\n',encapsulation:f.ViewEncapsulation.None}]}],e.ctorParameters=function(){return[{type:c.AngularDataContext},{type:y.ActivatedRoute},{type:l.DatePipe},{type:T.BsModalService},{type:h.UserStorageService},{type:b.TranslateService},{type:X},{type:h.TemplatePipe},{type:y.Router},{type:h.ModalService}]},e.propDecorators={table:[{type:f.Input}],collapsed:[{type:f.Input}],allowSave:[{type:f.Input}],showMore:[{type:f.Input}],mergeQueryParams:[{type:f.Input}],searchText:[{type:f.ViewChild,args:["searchText"]}],viewChange:[{type:f.Output,args:["viewChange"]}]},e}(ie),be={ActionLinkFormatter:new N,ButtonFormatter:new B,DateTimeFormatter:new Y,LanguageFormatter:new W,LinkFormatter:new q,NestedPropertyFormatter:new R,NgClassFormatter:new K,SelectRowFormatter:new U,TemplateFormatter:new H,TranslationFormatter:new G,TrueFalseFormatter:new Q,ActionButtonFormatter:new V,ActionSplitButtonFormatter:new $},ve=function(){function e(){}return e.decorators=[{type:f.Component,args:[{selector:"table-simple-header-tools",template:"\n <ng-content></ng-content>\n "}]}],e}(),ye=function(){function e(){}return e.prototype.ngOnChanges=function(e){var t=this;if(e.table){if(null==e.table.currentValue&&this.dataLoadSubscription)return void this.dataLoadSubscription.unsubscribe();e.table.currentValue!=e.table.previousValue&&(this.dataLoadSubscription=e.table.currentValue.load.subscribe(function(e){t.recordsTotal=e.recordsTotal}))}},e.prototype.ngOnDestroy=function(){this.dataLoadSubscription&&this.dataLoadSubscription.unsubscribe()},e.prototype.ngOnInit=function(){},e.decorators=[{type:f.Component,args:[{selector:"app-table-simple-header",template:'<div class="row">\n <div class="col-auto mt-4">\n <div class="font-xl text-secondary" *ngIf="recordsTotal === 0">\n <span> </span>\n </div>\n <div class="font-xl text-secondary" *ngIf="recordsTotal > 1">\n <span>{{recordsTotal}}</span><span> </span><span [translate]="\'Tables.Items\'"></span>\n </div>\n <div class="font-xl text-secondary" *ngIf="recordsTotal === 1">\n <span>{{recordsTotal}}</span><span> </span><span [translate]="\'Tables.Item\'"></span>\n </div>\n </div>\n <div class="pull-right ml-auto mr-3 mt-3">\n <div class="font-lg btn-toolbar mt-2">\n <ng-content select="table-simple-header-tools"></ng-content>\n </div>\n </div>\n</div>\n\n'}]}],e.ctorParameters=function(){return[]},e.propDecorators={table:[{type:f.Input}]},e}(),Te=function(e){function t(){return e.call(this,"Advanced table component cannot be empty at this context.")||this}return C(t,e),t}(Error),Se=function(){function e(e){this.table=e,this.dirty=!1,this.dirtyChange=new f.EventEmitter(!1)}return e.prototype.add=function(){for(var e,t,n=[],a=0;a<arguments.length;a++)n[a]=arguments[a];if(null==this.table)throw new Te;var r=this.table.config.columns[0].property||this.table.config.columns[0].name;try{for(var o=P(n),i=o.next();!i.done;i=o.next()){var s=i.value,l=this.table.dataTable.rows(':has(input[data-id="'+s[r]+'"])').nodes().to$();l.hasClass("removed")?l.toggleClass("removed text-gray-400 text-decoration-line-through"):(this.table.dataTable.rows.add([s]),(l=this.table.dataTable.rows(':has(input[data-id="'+s[r]+'"])').nodes().to$()).toggleClass("added font-weight-bold text-success"))}}catch(p){e={error:p}}finally{try{i&&!i.done&&(t=o["return"])&&t.call(o)}finally{if(e)throw e.error}}this.table.dataTable.draw();var c=this.table.dataTable.rows(".removed")[0].length,d=this.table.dataTable.rows(".added")[0].length,u=this.table.dataTable.rows().data();this.table.load.emit({data:u,recordsFiltered:u.length-c,recordsTotal:u.length-c}),this.dirty=0<c||0<d,this.dirtyChange.emit(this.dirty)},e.prototype.remove=function(){for(var e,t,n=[],a=0;a<arguments.length;a++)n[a]=arguments[a];if(null==this.table)throw new Te;var r=this.table.config.columns[0].property||this.table.config.columns[0].name,o=function(t){var e=i.table.dataTable.rows(':has(input[data-id="'+t[r]+'"])').nodes().to$();e.hasClass("added")?i.table.dataTable.rows(e).remove():e.toggleClass("removed text-gray-400 text-decoration-line-through");var n=i.table.selected.findIndex(function(e){return e[r]===t[r]});0<=n&&i.table.selected.splice(n,1)},i=this;try{for(var s=P(n),l=s.next();!l.done;l=s.next()){o(l.value)}}catch(p){e={error:p}}finally{try{l&&!l.done&&(t=s["return"])&&t.call(s)}finally{if(e)throw e.error}}this.table.dataTable.draw();var c=this.table.dataTable.rows().data(),d=this.table.dataTable.rows(".removed")[0].length,u=this.table.dataTable.rows(".added")[0].length;this.table.load.emit({data:c,recordsFiltered:c.length-d,recordsTotal:c.length-d}),this.dirty=0<d||0<u,this.dirtyChange.emit(this.dirty)},e.prototype.set=function(e){if(null==this.table)throw new Te;this.table.selected=[],this.table.dataTable.clear(),this.table.dataTable.rows.add(e).draw(),this.table.load.emit({data:e,recordsFiltered:e.length,recordsTotal:e.length})},e.prototype.undo=function(){if(null==this.table)throw new Te;this.table.dataTable.rows(".removed").nodes().to$().toggleClass("removed text-gray-400 text-decoration-line-through"),this.table.dataTable.rows(".added").remove(),this.table.selected=[];var e=this.table.dataTable.rows().data();this.table.dataTable.draw(),this.table.load.emit({data:e,recordsFiltered:e.length,recordsTotal:e.length}),this.dirty=!1,this.dirtyChange.emit(this.dirty)},e.prototype.rows=function(){if(null==this.table)throw new Te;return Array.from(this.table.dataTable.rows(":not(.removed)").data())},e.decorators=[{type:f.Directive,args:[{selector:"[tableEditor]"}]}],e.ctorParameters=function(){return[{type:ae}]},e.propDecorators={dirtyChange:[{type:f.Output}]},e}(),we=function(){function e(e,t,n,a,r,o){this._activatedTable=e,this._context=t,this._config=n,this._translate=a,this._loadingService=r,this._errorService=o}return e.prototype.clickEvent=function(l){return A(this,void 0,void 0,function(){var t,n,a,r,o,i,s;return I(this,function(e){return l.preventDefault(),l.stopPropagation(),this._activatedTable.activeTable&&(t=this._activatedTable.activeTable.lastQuery,n=this._activatedTable.activeTable.config,a=this._context.getService().getHeaders(),r=t.getModel(),o=this._context.model(r).asQueryable(),i=t.getParams(),o=this.constructQuery(o,i,n,a),1e3,o.skip(0).take(1e3),s=this.constructURL(o),this.downloadFile(s,o.getService().getHeaders(),o.getModel())),[2]})})},e.prototype.setParams=function(t,n){return n&&"object"==typeof n&&Object.keys(n).forEach(function(e){t.setParam(e,n[e])}),t},e.prototype.setHeaders=function(t,n){return Object.keys(n).forEach(function(e){n.hasOwnProperty(e)&&t.getService().setHeader(e,n[e])}),t.getService().setHeader("Accept","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"),t},e.prototype.constructQueryParam=function(e,f){var h=this,t=e.getParams().$select,n=t.split(",");return t=(n=n.map(function(e){var t,n,a,r,o=e.split(" ");if(3===o.length&&f&&f.columns)try{for(var i=P(f.columns),s=i.next();!s.done;s=i.next()){(d=s.value).property===o[2]&&d.title?o[2]='"'+h._translate.instant(d.title)+'"':d.property===o[2]&&(o[2]='"'+h._translate.instant(o[2])+'"')}}catch(u){t={error:u}}finally{try{s&&!s.done&&(n=i["return"])&&n.call(i)}finally{if(t)throw t.error}}if(1!==o.length)return o.join(" ");if(f&&f.columns)try{for(var l=P(f.columns),c=l.next();!c.done;c=l.next()){var d;if((d=c.value).name===o[0]&&d.title){o[0]=o[0]+' as "'+h._translate.instant(d.title)+'"';break}if(d.name===o[0]&&d.property){o[0]=o[0]+' as "'+h._translate.instant(d.property)+'"';break}if(o[0]===d.name&&"id"===o[0]&&d.hidden)break;o[0]!=d.name&&o[0]!==d.property||(o[0]=o[0]+' as "'+h._translate.instant(o[0])+'"')}}catch(p){a={error:p}}finally{try{c&&!c.done&&(r=l["return"])&&r.call(l)}finally{if(a)throw a.error}}return o[0]})).join(","),e.setParam("$select",t),e},e.prototype.constructURL=function(n){var e=n.getService().getBase(),a=e.endsWith("/")?e+n.getModel()+"?":e+"/"+n.getModel()+"?";return Object.keys(n.getParams()).forEach(function(e,t){a+=0===t?e+"="+n.getParams()[e]:"&"+e+"="+n.getParams()[e]}),a},e.prototype.constructQuery=function(e,t,n,a){var r=this.setParams(e,t);return r=this.setHeaders(r,a),r=this.constructQueryParam(r,n)},e.prototype.downloadFile=function(e,t,r){var o=this;this._loadingService.showLoading(),fetch(encodeURI(e),{headers:t,credentials:"include"}).then(function(e){if(e&&!e.ok)throw new m.ResponseError(e.statusText,e.status);return e.blob()}).then(function(e){var t=window.URL.createObjectURL(e),n=document.createElement("a");document.body.appendChild(n),n.setAttribute("style","display: none"),n.href=t;var a=r+".xlsx";n.download=a,window.navigator&&window.navigator.msSaveOrOpenBlob?window.navigator.msSaveOrOpenBlob(e,a):n.click(),window.URL.revokeObjectURL(t),n.remove(),o._loadingService.hideLoading()})["catch"](function(e){o._loadingService.hideLoading(),o._errorService.showError(e,{continueLink:"."})})},e.decorators=[{type:f.Directive,args:[{selector:".universis-btn-export"}]}],e.ctorParameters=function(){return[{type:he},{type:c.AngularDataContext},{type:h.ConfigurationService},{type:b.TranslateService},{type:h.LoadingService},{type:h.ErrorService}]},e.propDecorators={clickEvent:[{type:f.HostListener,args:["click",["$event"]]}]},e}(),xe=function(){function e(){}return e.prototype.transform=function(e,t,n){return Array.isArray(e)&&n&&n in t?t[n](e):"-"},e.decorators=[{type:f.Pipe,args:[{name:"callAggregator"}]}],e}(),Ce=function(){function e(e){this._translateService=e}return e.prototype.transform=function(e,t){var n=this;return e?(t!==undefined&&null!==t&&"undefined"!==t&&"null"!==t||(t=this._translateService.instant("Tables.NotDefined")),e.split(" ").map(function(e){return n._translateService.instant(e)}).map(function(e){return e.replace("${param}",t)}).join(" ")):""},e.decorators=[{type:f.Pipe,args:[{name:"aggregatorListTitle"}]}],e.ctorParameters=function(){return[{type:b.TranslateService}]},e}(),_e={Tables:{Export:"Εξαγωγή",More:"Περισσότερα",Search:"Αναζήτηση",SearchPlaceholder:"Αναζήτηση...",GroupBy:"Ομαδοποίηση ανά",DataTable:{paginate:{first:"Πρώτη σελίδα",last:"Τελεταία σελίδα",next:"Επόμενη",previous:"Προηγούμενη"},info:"Εμφάνιση _START_ έως _END_ από _TOTAL_ εγγραφές",infoEmpty:"Δεν βρέθηκαν εγγραφές",loading:"Εμφάνιση δεδομένων...",processing:"Παραλαβή δεδομένων...",emptyTable:"Δεν βρέθηκαν αποτελέσματα."},ColumnDisplay:"Επιλογή Εμφάνισης στηλών",ColumnDisplayInfo:"Επιλέξτε τις στήλες που θέλετε να εμφανίζονται.",Save:"Εφαρμογή",Apply:"Εφαρμογή",Cancel:"Ακύρωση",RecordsPerPage:"Εγγραφές ανά σελίδα",PageInfo:"{{start}}-{{end}} από {{recordsTotal}}",SearchListPlaceholder:"Αναζητήστε στη λίστα...",Filters:"Φίλτρα",All:"Όλα",AddItem:"Προσθήκη στοιχείου",EmptyTableTitle:"Δεν βρέθηκαν αποτελέσματα.",EmptyTableMessage:"Προσπαθήστε να χρησιμοποιήσετε άλλες λέξεις κλειδιά.",RemoveItem:"Διαγραφή στοιχείου",Items:"στοιχεία",Item:"στοιχείο",AddItemMessage:{title:"Προσθήκη στοιχείων",one:"Ένα νέο στοιχείο προστέθηκε με επιτυχία.",many:"{{value}} νέα στοιχεία προστέθηκαν με επιτυχία."},RemoveItemMessage:{title:"Αφαίρεση στοιχείων",one:"Ένα στοιχείο αφαιρέθηκε με επιτυχία.",many:"{{value}} στοιχεία αφαιρέθηκαν με επιτυχία."},RemoveItemsTitle:"Διαγραφή στοιχείου",RemoveItemsMessage:"Πρόκειται να διαγράψετε ένα ή περισσότερα στοιχεία. Θέλετε να προχωρήσετε?",SelectAll:"Επιλογή όλων",ClearSelection:"Αναίρεση επιλογής",Actions:{Label:"Επεξεργασία",Start:"Έναρξη",ActionMessage:{None:"Δεν έχετε επιλέξει κανένα στοιχείο που να ακολουθεί τις προϋποθέσεις της ενέργειας.",One:"Έχετε επιλέξει ένα στοιχείο που ακολουθεί τις προϋποθέσεις της ενέργειας. Πατήστε το πλήκτρο Έναρξη για να ξεκινήσει η διαδικασία.",Many:"Έχετε επιλέξει {{length}} στοιχεία που ακολουθούν τις προϋποθέσεις της ενέργειας. Πατήστε το πλήκτρο Έναρξη για να ξεκινήσει η διαδικασία."},CompletedWithErrors:{Title:"Η διαδικασία ολοκληρώθηκε με σφάλματα.",Description:{One:"Ένα στοιχείο δεν ανανεώθηκε λόγω ενός σφάλματος που συνέβη κατά την εκτέλεση της διαδικασίας.",Many:"{{errors}} στοιχεία δεν ανανεώθηκαν λόγω ενός σφάλματος που συνέβη κατά την εκτέλεση της διαδικασίας."}},CompletedWithSuccess:{Title:"Η διαδικασία ολοκληρώθηκε με επιτυχία."}}},TrueFalse:{"long":{Yes:"Ναι",No:"Όχι"}},AdvancedSearch:{Choose:"<Επιλέξτε μια αναζήτηση>",ChooseDate:"Επιλογή ημερομηνίας",SavedSearches:"Αποθηκευμένες αναζητήσεις",ToggleDropdown:"Εμφάνιση λίστας",SaveCurrentSearch:"Αποθήκευση αναζήτησης",SaveAs:"Αποθήκευση ως",Save:"Αποθήκευση",Delete:"Διαγραφή",More:"Περισσότερα",Less:"Λιγότερα",Modal:{Title:"Αποθήκευση κριτηρίων αναζήτησης",Help:"Ορίστε έναν τίτλο για τα επιλεγμένα κριτήρια αναζήτησης. Αυτός ο τίτλος θα σας βοηθήσει να τα χρησιμοποιήσετε ξανά στο μέλλον.",TitleOnUserError:"Παρακαλώ εισάγετε έναν τίτλο",TitleOnListAlreadyCreated:"Το όνομα αυτό χρησιμοποιείται ήδη. Διαλέξτε ένα διαφορετικό.",NoListDefined:"Δεν έχει οριστεί το σημείο αποθήκευσης της λίστας",EmptyCriteriaList:"Δεν έχετε καθορίσει κανένα κριτήριο για αποθήκευση",SaveNameLabel:"Ονομασία λίστας",SaveNamePlaceholder:"Εισάγετε έναν τίτλο",Accept:"Αποθήκευση",Decline:"Απόρριψη",Close:"Κλείσιμο"}}},Ae={Tables:{Export:"Export",More:"More",Search:"Search",SearchPlaceholder:"Search...",GroupBy:"Group by",DataTable:{paginate:{first:"First",last:"Last",next:"Next",previous:"Previous"},info:"Showing _START_ to _END_ of _TOTAL_ entries",infoEmpty:"Showing 0 to 0 of 0 entries",processing:"Processing data...",emptyTable:"There are no matching records."},ColumnDisplay:"Column Display",ColumnDisplayInfo:"Επιλέξτε τις στήλες που θέλετε να εμφανίζονται.",Save:"Save",Apply:"Apply",Cancel:"Cancel",RecordsPerPage:"Items per page",PageInfo:"{{start}}-{{end}} of {{recordsTotal}}",SearchListPlaceHolder:"Search in list...",Filters:"Filters",All:"All",AddItem:"Add item",EmptyTableTitle:"There are no matching records.",EmptyTableMessage:"Please try to use other keywords or search parameters.",RemoveItem:"Remove item",Items:"items",Item:"item",AddItemMessage:{title:"Add item",one:"A new item has been added successfully.",many:"{{value}} new items have been added successfully."},RemoveItemMessage:{title:"Remove items",one:"An item has been successfully removed.",many:"{{value}} items have been successfully removed."},RemoveItemsTitle:"Remove items",RemoveItemsMessage:"You are going to remove one or more instructor courses. Do you want to proceed?",SelectAll:"Select all",ClearSelection:"Clear selection",Actions:{Label:"Edit",Start:"Start",ActionMessage:{None:"There is no selected item that meets action requirements.",One:"You have selected one item that meets action requirements.",Many:"You have selected {{length}} items that meet action requirements."},CompletedWithErrors:{Title:"The operation was completed with errors.",Description:{One:"One item has not been updated due to an error occurred while executing process.",Many:"{{errors}} items have not been updated due to an error occurred while executing process."}},CompletedWithSuccess:{Title:"The operation was completed successfully."}}},TrueFalse:{"long":{Yes:"Yes",No:"No"}},AdvancedSearch:{Choose:"<Select a saved search>",ChooseDate:"Choose date",SavedSearches:"Saved searches",ToggleDropdown:"Toggle Dropdown",SaveCurrentSearch:"Save search",SaveAs:"Save as...",Save:"Save",Delete:"Remove",More:"More",Less:"Less",Modal:{Title:"Save current search criteria",Help:"Please add a title for the given search criteria. This title will help you to use those criteria again in the future.",TitleOnUserError:"Please use a valid name for your list",TitleOnListAlreadyCreated:"Name already in use. Please choose a different one",NoListDefined:"Cannot define user storage key.",EmptyCriteriaList:"Please define search criteria before save.",SaveNameLabel:"List name",SaveNamePlaceholder:"Type a title here...",Accept:"Save",Decline:"Decline",Close:"Close"}}},Ie=be,Pe=function(){function e(e){this._translateService=e,this.ngOnInit()["catch"](function(e){console.error("An error occurred while loading tables module"),console.error(e)})}return e.prototype.ngOnInit=function(){return A(this,void 0,void 0,function(){return I(this,function(e){return this._translateService.setTranslation("en",Ae,!0),this._translateService.setTranslation("el",_e,!0),[2]})})},e.decorators=[{type:f.NgModule,args:[{imports:[l.CommonModule,h.SharedModule,b.TranslateModule,d.FormsModule,d.ReactiveFormsModule,y.RouterModule,u.RouterModalModule,v.FormioModule,g.AdvancedFormsModule,h.SharedModule,T.ModalModule,S.ProgressbarModule,w.NgPipesModule],providers:[l.DatePipe,h.TemplatePipe,{provide:Z,useValue:Ie},pe,fe,ue,F,w.GroupByPipe],declarations:[ae,me,we,ge,ce,se,re,oe,ye,ve,de,Se,j,M,xe,Ce,k],exports:[ae,me,we,ge,se,re,oe,ye,ve,de,Se,j,M,k],entryComponents:[ce,ge,oe,de,k],schemas:[f.CUSTOM_ELEMENTS_SCHEMA]}]}],e.ctorParameters=function(){return[{type:b.TranslateService}]},e}();e.AddItemsComponent=k,e.AdvancedAggregatorComponent=j,e.AdvancedAggregatorListComponent=M,e.AdvancedListComponent=re,e.AdvancedRowActionComponent=oe,e.AdvancedSearchFormComponent=se,e.AdvancedSelectComponent=de,e.AdvancedSelectService=ue,e.AdvancedTableConfigurationResolver=pe,e.AdvancedSearchConfigurationResolver=fe,e.AdvancedColumnFormatter=D,e.NestedPropertyFormatter=R,e.ButtonFormatter=B,e.LinkFormatter=q,e.ActionLinkFormatter=N,e.ActionButtonFormatter=V,e.ActionSplitButtonFormatter=$,e.SelectRowFormatter=U,e.TemplateFormatter=H,e.TrueFalseFormatter=Q,e.TranslationFormatter=G,e.DateTimeFormatter=Y,e.NgClassFormatter=K,e.LanguageFormatter=W,e.COLUMN_FORMATTERS=Z,e.AdvancedTableConfiguration=ne,e.AdvancedTableComponent=ae,e.AdvancedTableSettingsComponent=ge,e.AdvancedTableSearchBaseComponent=ie,e.AdvancedTableSearchComponent=me,e.FORMATTERS=be,e.AdvancedFilterValueProvider=X,e.AdvancedTableModalBaseTemplate=le,e.AdvancedTableModalBaseComponent=ce,e.SimpleHeaderToolsComponent=ve,e.TableSimpleHeaderComponent=ye,e.AdvancedTableNotNullError=Te,e.AdvancedTableEditorDirective=Se,e.BtnExpDirective=we,e.AdvancedAggregatorPipe=xe,e.ParseTitlePipe=Ce,e.AdvancedAggregatorService=F,e.TablesModule=Pe,e.ɵ0=Ie,e.ActivatedTableService=he,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=universis-ngx-tables.umd.min.js.map
|