@universis/ngx-tables 6.1.4 → 6.2.0

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.
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("lodash"),require("@ngx-translate/core"),require("@angular/common"),require("iso-639-1/build"),require("@angular/router"),require("@angular/core"),require("@universis/common"),require("@angular/forms"),require("@universis/common/routing"),require("ngx-bootstrap/modal"),require("rxjs"),require("rxjs/operators"),require("@themost/angular"),require("@themost/client"),require("jquery"),require("datatables.net"),require("datatables.net-rowgroup"),require("datatables.net-scroller"),require("datatables.net-colreorder"),require("datatables.net-buttons"),require("@angular/common/http"),require("rxjs/add/observable/combineLatest"),require("@universis/forms"),require("@ngrx/store"),require("angular-formio"),require("ngx-bootstrap/progressbar"),require("ngx-pipes")):"function"==typeof define&&define.amd?define("@universis/ngx-tables",["exports","lodash","@ngx-translate/core","@angular/common","iso-639-1/build","@angular/router","@angular/core","@universis/common","@angular/forms","@universis/common/routing","ngx-bootstrap/modal","rxjs","rxjs/operators","@themost/angular","@themost/client","jquery","datatables.net","datatables.net-rowgroup","datatables.net-scroller","datatables.net-colreorder","datatables.net-buttons","@angular/common/http","rxjs/add/observable/combineLatest","@universis/forms","@ngrx/store","angular-formio","ngx-bootstrap/progressbar","ngx-pipes"],t):t((e.universis=e.universis||{},e.universis["ngx-tables"]={}),e.lodash,e.core,e.ng.common,e.ISO6391,e.ng.router,e.ng.core,e.i2,e.ng.forms,e.routing,e.modal,e.rxjs,e.rxjs.operators,e.i1$1,e.client,e.jQuery_,0,0,0,0,0,e.ng.common.http,e.rxjs["add/observable/combineLatest"],e.forms$1,e.store,e.angularFormio,e.progressbar,e.ngxPipes)}(this,function(e,F,b,r,M,d,v,i,o,B,N,V,q,t,U,$,H,Q,G,K,Y,W,X,z,a,J,Z,ee){"use strict";var te=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])});function n(e,t){function n(){this.constructor=e}te(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var y=Object.assign||function y(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};function l(t,s,i,l){return new(i=i||Promise)(function(e,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(t){t.done?e(t.value):new i(function(e){e(t.value)}).then(a,r)}o((l=l.apply(t,s||[])).next())})}function T(n,a){var r,o,s,i={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},e={next:t(0),"throw":t(1),"return":t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return l([t,e])}}function l(e){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,o&&(s=o[2&e[0]?"return":e[0]?"throw":"next"])&&!(s=s.call(o,e[1])).done)return s;switch(o=0,(e=s?[0,s.value]:e)[0]){case 0:case 1:s=e;break;case 4:return i.label++,{value:e[1],done:!1};case 5:i.label++,o=e[1],e=[0];continue;case 7:e=i.ops.pop(),i.trys.pop();continue;default:if(!(s=0<(s=i.trys).length&&s[s.length-1])&&(6===e[0]||2===e[0])){i=0;continue}if(3===e[0]&&(!s||e[1]>s[0]&&e[1]<s[3]))i.label=e[1];else if(6===e[0]&&i.label<s[1])i.label=s[1],s=e;else{if(!(s&&i.label<s[2])){s[2]&&i.ops.pop(),i.trys.pop();continue}i.label=s[2],i.ops.push(e)}}e=a.call(n,i)}catch(t){e=[6,t],o=0}finally{r=s=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}}function w(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return{value:(e=e&&n>=e.length?void 0:e)&&e[n++],done:!e}}}}function ne(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var a,r,o=n.call(e),s=[];try{for(;(void 0===t||0<t--)&&!(a=o.next()).done;)s.push(a.value)}catch(i){r={error:i}}finally{try{a&&!a.done&&(n=o["return"])&&n.call(o)}finally{if(r)throw r.error}}return s}function ae(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(ne(arguments[t]));return e}u.template=function(e){var t=u.templateCache.get(e);return"function"!=typeof t&&(t=F.template(e),u.templateCache.set(e,t)),t},u.prototype.createUrlTree=function(r,e){var t,n,a,o,s,i,l,c;if(Array.isArray(e.commands)&&this.injector)return t=this.injector.get(d.ActivatedRoute),n=this.injector.get(d.Router),a=e.commands.map(function(n){var a;return"string"==typeof n?u.template(n)(r):n.outlets?(a={},Object.keys(n.outlets).forEach(function(e){var t;Object.prototype.hasOwnProperty.call(n.outlets,e)&&(t=n.outlets[e],Array.isArray(t)?Object.defineProperty(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t.map(function(e){return u.template(e)(r)})}):Object.defineProperty(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}))}),{outlets:a}):n}),o={},s=!0,(i=e.navigationExtras&&e.navigationExtras.queryParams)&&Object.keys(i).map(function(e){var t=i[e];o[e]=u.template(t)(r)}),e.navigationExtras&&"undefined"!=typeof e.navigationExtras.replaceUrl&&(s=e.navigationExtras.replaceUrl),l=!1,c=void(e.navigationExtras&&"undefined"!=typeof e.navigationExtras.skipLocationChange&&(l=e.navigationExtras.skipLocationChange)),e.navigationExtras&&"undefined"!=typeof e.navigationExtras.fragment&&(c=e.navigationExtras.fragment),n.createUrlTree(a,{fragment:c,relativeTo:t,queryParams:o,replaceUrl:s,skipLocationChange:l})},u.templateCache=new Map;var h=u;function u(){this.title=""}n(se,re=h),se.prototype.render=function(e,t,n,a){a=a.settings.aoColumns[a.col];return a&&a.data?F.at(n,a.data.replace(/\//g,".")):e};var re,oe=se;function se(){return re.call(this)||this}n(ce,ie=h),ce.prototype.render=function(e,t,n,a){var r,o,s;return null==e||null==this.injector?"":(e="",o=(r=Object.assign({buttonClass:"btn btn-default"},this.formatOptions)).buttonText?this.injector.get(b.TranslateService).instant(r.buttonText):r.buttonContent,r.buttonTitle&&(e=this.injector.get(b.TranslateService).instant(r.buttonTitle)),Array.isArray(this.formatOptions.commands)?(s=this.createUrlTree(n,this.formatOptions),'<a class="'+r.buttonClass+'" title="'+e+'" href="#'+s+'">'+o+"</a>"):(s=h.template(this.formatString)(n),'<a class="'+r.buttonClass+'" title="'+e+'" href="'+s+'">'+o+"</a>"))};var ie,le=ce;function ce(){return ie.call(this)||this}n(pe,de=h),pe.prototype.render=function(e,t,n,a){a=a.settings.aoColumns[a.col];return a&&a.data?'<a href="'+h.template(this.formatString)(n)+'">'+e+"</a>":e};var de,ue=pe;function pe(){return de.call(this)||this}n(fe,he=h),fe.prototype.render=function(e,t,n,a){var r,o,s=this,a=a.settings.aoColumns[a.col];if(a&&a.data){var a=this.actions||[],i=1;try{for(var l=w(a),c=l.next();!c.done;c=l.next()){var d=c.value;Object.assign(d,{name:d.name||"action"+i}),i+=1}}catch(u){r={error:u}}finally{try{c&&!c.done&&(o=l["return"])&&o.call(l)}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 '+a.map(function(e){var t;return"divider"===e.type?'<div class="dropdown-divider"></div>':e.formatOptions&&e.formatOptions.commands?(t=s.createUrlTree(n,e.formatOptions),"<a data-name='"+e.name+"' class=\"dropdown-item"+("string"==typeof e.className&&e.className.length?" "+e.className.trim():"")+'" href="#'+(t&&t.toString())+'">\n '+(s.injector&&s.injector.get(b.TranslateService).instant(e.title))+"\n </a>"):"<a data-name='"+e.name+"' class=\"dropdown-item"+("string"==typeof e.className&&e.className.length?" "+e.className.trim():"")+'" href="'+h.template(e.href)(n)+'">\n '+(s.injector&&s.injector.get(b.TranslateService).instant(e.title))+"\n </a>"}).join("")+"\n </div>\n </div>"}return e},fe.prototype.afterRender=function(e,t,n,a,r){};var he,me=fe;function fe(){return he.call(this)||this}n(ve,ge=h),ve.prototype.render=function(e,t,n,a){var r=this,a=a.settings.aoColumns[a.col];if(a&&a.data&&this.injector){var a=this.actions||[],o=1;try{for(var s=w(a),i=s.next();!i.done;i=s.next()){var l=i.value;Object.assign(l,{name:l.name||"action"+o}),o+=1}}catch(u){d={error:u}}finally{try{i&&!i.done&&(c=s["return"])&&c.call(s)}finally{if(d)throw d.error}}var c=void 0,d=(this.formatOptions&&this.formatOptions.buttonText&&(c=this.formatOptions.buttonText.includes("${")?h.template(this.formatOptions.buttonText)(n):this.injector.get(b.TranslateService).instant(this.formatOptions.buttonText)),void 0);return this.formatOptions&&this.formatOptions.buttonTitle&&(d=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="'+d+'"\n id="dropdownMenuButton-'+e+'" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\n '+c+'\n </a>\n <div class="dropdown-menu" aria-labelledby="dropdownMenuButton-'+e+'">\n '+a.map(function(e){var t;return"divider"===e.type?'<div class="dropdown-divider"></div>':e.commands?'<a class="dropdown-item" href="#'+((t=r.createUrlTree(n,e))&&t.toString())+'">\n '+(r.injector&&r.injector.get(b.TranslateService).instant(e.title))+"\n </a>":'<a class="dropdown-item" href="'+h.template(e.href)(n)+'">\n '+(r.injector&&r.injector.get(b.TranslateService).instant(e.title))+"\n </a>"}).join("")+"\n </div>\n </div>"}return e},ve.prototype.afterRender=function(e,t,n,a,r){};var ge,be=ve;function ve(){return ge.call(this)||this}n(we,ye=h),we.prototype.render=function(e,t,n,a){var r=this,a=a.settings.aoColumns[a.col];if(a&&a.data){var o,s,i,a=this.actions||[],l=1;try{for(var c=w(a),d=c.next();!d.done;d=c.next()){var u=d.value;Object.assign(u,{name:u.name||"action"+l}),l+=1}}catch(p){s={error:p}}finally{try{d&&!d.done&&(o=c["return"])&&o.call(c)}finally{if(s)throw s.error}}return 0===a.length?void 0:'<div class="btn-group">\n <a type="button" class="'+(o=this.formatOptions&&this.formatOptions.buttonClass||"btn btn-light")+'" href="'+((s=a[0])&&s.commands?"#"+((i=this.createUrlTree(n,s))&&i.toString()):h.template(s.href)(n))+'">\n '+(this.injector&&this.injector.get(b.TranslateService).instant(s.title))+'\n </a>\n <button type="button" class="'+o+' dropdown-toggle dropdown-toggle-split"\n data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\n <span class="sr-only">'+(this.injector&&this.injector.get(b.TranslateService).instant("Toggle Dropdown"))+'</span>\n </button>\n <div class="dropdown-menu" aria-labelledby="dropdownMenuButton-'+e+'">\n '+a.map(function(e){var t;return"-"===e.title?'<div class="dropdown-divider"></div>':e.commands?'<a class="dropdown-item" href="#'+((t=r.createUrlTree(n,e))&&t.toString())+'">\n '+(r.injector&&r.injector.get(b.TranslateService).instant(e.title))+"\n </a>":'<a class="dropdown-item" href="'+h.template(e.href)(n)+'">\n '+(r.injector&&r.injector.get(b.TranslateService).instant(e.title))+"\n </a>"}).join("")+"\n </div>\n </div>"}return e},we.prototype.afterRender=function(e,t,n,a,r){};var ye,Te=we;function we(){return ye.call(this)||this}n(xe,Se=h),xe.prototype.render=function(e,t,n,a){var r=a.settings.aoColumns[a.col];return r&&r.data?(r='<input class="checkbox checkbox-theme" type="checkbox"\n id="s-'+a.row+'" /><label for="s-'+a.row+'">&nbsp;</label>',h.template(r)(n)):e};var Se,Ce=xe;function xe(){return Se.call(this)||this}n(Ae,_e=h),Ae.prototype.render=function(e,t,n,a){a=a.settings.aoColumns[a.col];return a&&a.data?h.template(this.formatString)(n):e};var _e,Ie=Ae;function Ae(){return _e.call(this)||this}n(Pe,Ee=h),Pe.prototype.render=function(e,t,n,a){return e?this.injector&&this.injector.get(b.TranslateService).instant("TrueFalse.long.Yes"):this.injector&&this.injector.get(b.TranslateService).instant("TrueFalse.long.No")};var Ee,Oe=Pe;function Pe(){return Ee.call(this)||this}n(je,ke=h),je.prototype.render=function(e,t,n,a){return a.settings.aoColumns[a.col]&&null!=e?this.injector&&this.injector.get(b.TranslateService).instant(h.template(this.formatString)({value:e})):this.injector&&this.injector.get(b.TranslateService).instant("Unknown")};var ke,Le=je;function je(){return ke.call(this)||this}n(Fe,Re=h),Fe.prototype.render=function(e,t,n,a){var a=a.settings.aoColumns[a.col];return a&&a.data&&this.injector?(a=new r.DatePipe(this.injector.get(b.TranslateService).currentLang),"string"==typeof e&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}$/.test(e)?a.transform(new Date(e+":00"),this.formatString):a.transform(e,this.formatString)):e};var Re,De=Fe;function Fe(){return Re.call(this)||this}n(Ne,Me=h),Ne.prototype.render=function(e,t,n,a){var r,o,a=a.settings.aoColumns[a.col];if(a&&a.data&&this.formatOptions){var s=this.formatOptions.ngClass;a.ngClassTemplates=a.ngClassTemplates||{};try{for(var i=w(Object.keys(s)),l=i.next();!l.done;l=i.next()){var c=l.value,d=h.template(s[c])(n);if(!0===new Function("return "+d+";")())return'<span class="'+c+'">'+e+"</span>"}}catch(u){r={error:u}}finally{try{l&&!l.done&&(o=i["return"])&&o.call(i)}finally{if(r)throw r.error}}}return e};var Me,Be=Ne;function Ne(){return Me.call(this)||this}n(Ue,Ve=h),Ue.prototype.render=function(e,t,n,a){return e&&M.getNativeName(e)};var Ve,qe=Ue;function Ue(){return Ve.call(this)||this}s.prototype.buildFilter=function(e){if(e)return this._template.transform(e,this.values)},s.prototype.asyncBuildFilter=function(r){return l(this,void 0,void 0,function(){var t,n,a;return T(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]}})})},s.prototype.getValues=function(){return l(this,void 0,void 0,function(){return T(this,function(e){return[2,this.values]})})},s.decorators=[{type:v.Injectable,args:[{providedIn:"root"}]}],s.ctorParameters=function(){return[]},s.ngInjectableDef=v.defineInjectable({factory:function(){return new s},token:s,providedIn:"root"});var $e=s;function s(){this.values={},this._template=new i.TemplatePipe}n(c,He=B.RouterModalOkCancel),c.prototype.ok=function(){var e=this;this._changeDetector.detectChanges(),setTimeout(function(){e.changing=!0,e._modalRef.hide()},0);try{this.applyChanges()}catch(t){throw t}finally{this.changing=!1}return this.dismiss.emit("ok"),Promise.resolve("ok")},c.prototype.cancel=function(){return this._modalRef.hide(),this.dismiss.emit("cancel"),Promise.resolve("cancel")},c.prototype.ngOnChanges=function(e){},c.prototype.ngOnDestroy=function(){},c.prototype.ngOnInit=function(){Array.isArray(this.columns)&&(this.selectedColumns=this.columns.filter(function(e){return e.visible}).sort(function(e,t){return e.index<t.index?-1:e.index>t.index?1:0}).map(function(e){return{key:e.key,title:e.title}}))},c.prototype.applyChanges=function(){var e,t;if(this.selectedColumns&&this.columns){var n=this.selectedColumns.length-1,a=this;try{for(var r=w(this.columns),o=r.next();!o.done;o=r.next())!function(t){var e=a.selectedColumns.findIndex(function(e){return e.key===t.key});e<0?(t.visible=!1,n+=1,t.index=n):(t.visible=!0,t.index=e)}(o.value)}catch(s){e={error:s}}finally{try{o&&!o.done&&(t=r["return"])&&t.call(r)}finally{if(e)throw e.error}}}},c.prototype.removeColumns=function(){var e,t;if(this.selectedColumns){var n=this.selectedColumnsControl.value;if(0<n.length){var a=this;try{for(var r=w(n),o=r.next();!o.done;o=r.next())!function(t){var e=a.selectedColumns.findIndex(function(e){return e.key===t});0<=e&&a.selectedColumns.splice(e,1)}(o.value)}catch(s){e={error:s}}finally{try{o&&!o.done&&(t=r["return"])&&t.call(r)}finally{if(e)throw e.error}}this.selectedColumnsControl.reset()}}},c.prototype.addColumns=function(){var e;if(this.columns&&this.selectedColumns){var t=this.availableColumnsControl.value;if(0<t.length){var n=this;try{for(var a=w(t),r=a.next();!r.done;r=a.next())!function(t){var e=n.columns.find(function(e){return e.key===t});e&&n.selectedColumns.findIndex(function(e){return e.key===t})<0&&n.selectedColumns.push({key:e.key,title:e.title})}(r.value)}catch(s){e={error:s}}finally{try{r&&!r.done&&(o=a["return"])&&o.call(a)}finally{if(e)throw e.error}}var o=this.columns.findIndex(function(e){return e.key===t[t.length-1]});this.availableColumnsControl.reset(),-1<o&&o<this.columns.length-1&&this.availableColumnsControl.patchValue([this.columns[o+1].key])}}},c.prototype.moveUp=function(){var e,t;if(this.moveUpButton&&(this.moveUpButton.nativeElement.disabled=!0),this.selectedColumns){var n=this.selectedColumnsControl.value;if(0<n.length){var a=this;try{for(var r=w(n),o=r.next();!o.done;o=r.next())!function(t){var e,n=a.selectedColumns.findIndex(function(e){return e.key===t});0<n&&(e=a.selectedColumns[n],a.selectedColumns.splice(n,1),a.selectedColumns.splice(n-1,0,e))}(o.value)}catch(s){e={error:s}}finally{try{o&&!o.done&&(t=r["return"])&&t.call(r)}finally{if(e)throw e.error}}}}this.moveUpButton&&(this.moveUpButton.nativeElement.disabled=!1)},c.prototype.moveDown=function(){var e,t;if(this.moveDownButton&&(this.moveDownButton.nativeElement.disabled=!0),this.selectedColumns&&this.columns){var n=this.selectedColumnsControl.value;if(0<n.length){var a=this;try{for(var r=w(n),o=r.next();!o.done;o=r.next())!function(t){var e=a.selectedColumns.findIndex(function(e){return e.key===t}),n=a.columns.length;0<=e&&e<n&&(n=a.selectedColumns[e],a.selectedColumns.splice(e,1),a.selectedColumns.splice(e+1,0,n))}(o.value)}catch(s){e={error:s}}finally{try{o&&!o.done&&(t=r["return"])&&t.call(r)}finally{if(e)throw e.error}}}}this.moveDownButton&&(this.moveDownButton.nativeElement.disabled=!1)},c.decorators=[{type:v.Component,args:[{selector:"app-column-selector",template:'<div>\n <div class="modal-header">\n <h5 class="modal-title">{{\'Tables.SelectColumns\' | translate}}</h5>\n <button (click)="cancel()"\n type="button" class="close" data-dismiss="modal" aria-label="Cancel">\n <span aria-hidden="true">&times;</span>\n </button>\n </div>\n <div class="modal-body pt-0">\n <div class="row">\n <div class="col-12">\n <p [translate]="\'Tables.SelectColumnHelp\'"></p>\n <p [translate]="\'Tables.MoveColumnHelp\'"></p>\n </div>\n </div>\n <div class="row">\n <div class="col-4">\n <select [formControl]="availableColumnsControl" size="10" class="form-select form-control" multiple aria-label="multiple select example">\n <ng-container *ngIf="columns">\n <ng-container *ngFor="let column of columns | orderBy: [\'title\']">\n <option class="text-wrap" [value]="column.key">{{column.title}}</option>\n </ng-container>\n </ng-container>\n </select>\n </div>\n <div class="col-4 d-flex justify-content-center align-items-center">\n <div class="col-9">\n <div>\n <button [disabled]="!(availableColumnsControl.value && availableColumnsControl.value.length)" (click)="addColumns()" type="button" class="btn btn-primary btn-block">\n <i class="fas fa-plus mr-2"></i><span [translate]="\'Tables.AddColumn\'"></span>\n </button>\n </div>\n <div class="mt-3">\n <button [disabled]="!(selectedColumnsControl.value && selectedColumnsControl.value.length)" (click)="removeColumns()" type="button" class="btn btn-secondary btn-block">\n <i class="fas fa-minus mr-2"></i><span [translate]="\'Tables.RemoveColumn\'"></span>\n </button>\n </div>\n </div>\n </div>\n <div class="col-4">\n <select [formControl]="selectedColumnsControl" size="10" class="form-select form-control" multiple aria-label="multiple select example">\n <ng-container *ngIf="selectedColumns">\n <ng-container *ngFor="let column of selectedColumns">\n <option class="text-wrap" [value]="column.key">{{column.title}}</option>\n </ng-container>\n </ng-container>\n </select>\n <div class="d-flex justify-content-center align-items-center">\n <div class="btn-group mt-4">\n <button #moveUpButton [disabled]="!(selectedColumnsControl.value && selectedColumnsControl.value.length)" (click)="moveUp()" type="button" class="btn btn-primary">\n <i class="fas fa-chevron-up mr-2"></i><span [translate]="\'Tables.MoveUp\'"></span>\n </button>\n <button #moveDownButton [disabled]="!(selectedColumnsControl.value && selectedColumnsControl.value.length)" (click)="moveDown()" type="button" class="btn btn-primary ml-2">\n <i class="fas fa-chevron-down mr-2"></i><span [translate]="\'Tables.MoveDown\'"></span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="modal-footer justify-content-end">\n\n <button [disabled]="okButtonDisabled" (click)="ok()"\n type="button" class="btn btn-primary">\n <i *ngIf="changing" class="fa fa-spinner fa-spin mr-1"></i>\n {{\'OK\' | translate}}\n </button>\n <button [disabled]="cancelButtonDisabled"\n (click)="cancel()" type="button" [ngClass]="cancelButtonClass" data-dismiss="modal">\n {{\'Cancel\' | translate}}\n </button>\n </div>\n </div>\n\n',encapsulation:v.ViewEncapsulation.Emulated,styles:["\n .form-select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n padding: 5px;\n }\n .form-select * {\n padding: 5px 5px;\n }\n .btn.disabled, .btn:disabled {\n border-color: transparent !important;\n }\n "]}]}],c.ctorParameters=function(){return[{type:d.Router},{type:d.ActivatedRoute},{type:N.BsModalRef},{type:v.ChangeDetectorRef}]},c.propDecorators={columns:[{type:v.Input}],selectedColumns:[{type:v.Input}],moveUpButton:[{type:v.ViewChild,args:["moveUpButton"]}],moveDownButton:[{type:v.ViewChild,args:["moveDownButton"]}]};var He,Qe=c;function c(e,t,n,a){e=He.call(this,e,t)||this;return e._modalRef=n,e._changeDetector=a,e.dismiss=new v.EventEmitter,e.availableColumnsControl=new o.FormControl,e.selectedColumnsControl=new o.FormControl,e.changing=!1,e}Ke.prototype.selectColumns=function(r){var o=this;return new Promise(function(t,e){try{var n=o._modal.openModalComponent(Qe,{"class":"modal-lg modal-table",ignoreBackdropClick:!0,animated:!0,initialState:{columns:r}}).content;n.dismiss.subscribe(function(e){return t("ok"===e?{result:e,columns:n.columns}:{result:e})})}catch(a){return e(a)}})},Ke.decorators=[{type:v.Injectable}],Ke.ctorParameters=function(){return[{type:i.ModalService}]};var Ge=Ke;function Ke(e){this._modal=e}Object.defineProperty(p.prototype,"activeTable",{get:function(){return this._activeTable},set:function(e){this._activeTable=e,this.lastActiveTable.next(this._activeTable)},enumerable:!0,configurable:!0}),p.decorators=[{type:v.Injectable,args:[{providedIn:"root"}]}],p.ctorParameters=function(){return[{type:d.Router},{type:d.ActivatedRoute}]},p.ngInjectableDef=v.defineInjectable({factory:function(){return new p(v.inject(d.Router),v.inject(d.ActivatedRoute))},token:p,providedIn:"root"});var Ye=p;function p(e,t){var n=this;this._router=e,this._activatedRoute=t,this.lastActiveTable=new V.BehaviorSubject(undefined),this.nextActiveTable=this.lastActiveTable.pipe(q.skip(1)),e.events.forEach(function(e){e instanceof d.NavigationStart&&n._activeTable&&(n.activeTable=undefined)})}m.prototype.clickEvent=function(t){return l(this,void 0,void 0,function(){return T(this,function(e){return t.preventDefault(),t.stopPropagation(),this._activatedTable.activeTable?[2,this._activatedTable.activeTable.exportView()]:[2]})})},m.prototype.setParams=function(t,n){return n&&"object"==typeof n&&Object.keys(n).forEach(function(e){t.setParam(e,n[e])}),t},m.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},m.prototype.constructQueryParam=function(e,h){var m=this,t=(t=e.getParams().$select).split(",").map(function(e){var t,n,a,r,o=e.split(" ");if(3===o.length&&h&&h.columns)try{for(var s=w(h.columns),i=s.next();!i.done;i=s.next())(l=i.value).property===o[2]&&l.title?o[2]='"'+m._translate.instant(l.title)+'"':l.property===o[2]&&(o[2]='"'+m._translate.instant(o[2])+'"')}catch(u){t={error:u}}finally{try{i&&!i.done&&(n=s["return"])&&n.call(s)}finally{if(t)throw t.error}}if(1!==o.length)return o.join(" ");if(h&&h.columns)try{for(var l,c=w(h.columns),d=c.next();!d.done;d=c.next()){if((l=d.value).name===o[0]&&l.title){o[0]=o[0]+' as "'+m._translate.instant(l.title)+'"';break}if(l.name===o[0]&&l.property){o[0]=o[0]+' as "'+m._translate.instant(l.property)+'"';break}if(o[0]===l.name&&"id"===o[0]&&l.hidden)break;o[0]!=l.name&&o[0]!==l.property||(o[0]=o[0]+' as "'+m._translate.instant(o[0])+'"')}}catch(p){a={error:p}}finally{try{d&&!d.done&&(r=c["return"])&&r.call(c)}finally{if(a)throw a.error}}return o[0]}).join(",");return e.setParam("$select",t),e},m.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},m.prototype.constructQuery=function(e,t,n,a){e=this.setParams(e,t),e=this.setHeaders(e,a);return this.constructQueryParam(e,n)},m.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 U.ResponseError(e.statusText,e.status);return e.blob()}).then(function(e){var t=window.URL.createObjectURL(e),n=document.createElement("a"),a=(document.body.appendChild(n),n.setAttribute("style","display: none"),n.href=t,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:"."})})},m.decorators=[{type:v.Directive,args:[{selector:".universis-btn-export"}]}],m.ctorParameters=function(){return[{type:Ye},{type:t.AngularDataContext},{type:i.ConfigurationService},{type:b.TranslateService},{type:i.LoadingService},{type:i.ErrorService}]},m.propDecorators={clickEvent:[{type:v.HostListener,args:["click",["$event"]]}]};var We=m;function m(e,t,n,a,r,o){this._activatedTable=e,this._context=t,this._config=n,this._translate=a,this._loadingService=r,this._errorService=o}var Xe,S=$,ze=(S.fn.dataTable.Api.register("processing()",function(t){return this.iterator("table",function(e){e.oApi._fnProcessingDisplay(e,t)})}),{recordsTotal:0,recordsFiltered:0,data:[]}),Je=(n(f,Xe=v.ChangeDetectorRef),f.prototype.checkNoChanges=function(){},f.prototype.detach=function(){},f.prototype.detectChanges=function(){},f.prototype.markForCheck=function(){},f.prototype.reattach=function(){},f);function f(){return null!==Xe&&Xe.apply(this,arguments)||this}var Ze,et=new v.InjectionToken("column.formatters"),tt=(n(nt,Ze=RangeError),nt);function nt(e){e=Ze.call(this,e)||this;return e.name="ExportLimitExceededError",e}n(ot,at=h),ot.prototype.render=function(e,t,n,a){};var at,rt=ot;function ot(e){var t=at.call(this)||this;return t.injector=e,t.title="",t}it.cast=function(e,t){return t?JSON.parse(JSON.stringify(e)):e};var st=it;function it(){}Object.defineProperty(g.prototype,"config",{get:function(){return this._config},set:function(e){this._config=e,this.configChanges.next(this._config)},enumerable:!0,configurable:!0}),Object.defineProperty(g.prototype,"lastQueryTotalItems",{get:function(){return this._lastQueryTotalItems},enumerable:!0,configurable:!0}),Object.defineProperty(g.prototype,"showFooter",{get:function(){return this._showFooter},set:function(e){var t;this._showFooter=e,this._element&&this._element.nativeElement&&null!=(t=this._element.nativeElement.querySelector(".dataTables_info"))&&(e?t.classList.remove("d-none"):t.classList.add("d-none"))},enumerable:!0,configurable:!0}),Object.defineProperty(g.prototype,"showHeader",{get:function(){return this._showHeader},set:function(e){var t,n;this._showHeader=e,this._element&&this._element.nativeElement&&null!=(t=this._element.nativeElement.querySelector(".dataTable>thead"))&&null!=(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(g.prototype,"showPaging",{get:function(){return this._showPaging},set:function(e){var t;this._showPaging=e,this._element&&this._element.nativeElement&&null!=(t=this._element.nativeElement.querySelector(".dataTables_paginate"))&&(e?S(t).show():S(t).hide())},enumerable:!0,configurable:!0}),Object.defineProperty(g.prototype,"query",{get:function(){return this._query},set:function(e){this._query=e},enumerable:!0,configurable:!0}),g.prototype.search=function(e){var t,n,a,r=this;this.query=this.query||this._context.model(this.config.model).asQueryable(),this.serverSide?(e&&this.config.searchExpression?/^"(.*?)"$/.test(e)?this.query.setParam("$filter",this._template.transform(this.config.searchExpression,{text:e.replace(/^"|"$/g,"")})):(a=e.split(" ").map(function(e){return r._template.transform(r.config&&r.config.searchExpression,{text:e})}).join(" and "),this.query.setParam("$filter",a)):this.query.setParam("$filter",null),this._firstLoad=!1,this.dataTable.draw()):(this.resetEmptyTable(),this.dataTable.search(e.trim()).draw(),e=(a=Array.from(this.dataTable.context[0].aiDisplay)).length,t=a.length,n=Array.from(this.dataTable.rows().data()),a=a.map(function(e){return n[e]}),this.load.emit({data:a,recordsFiltered:e,recordsTotal:t}))},g.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()},g.prototype.destroy=function(){this.dataTable&&(this.dataTable.destroy(),this._firstLoad=!0,this.table&&S(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)},g.prototype.selectRow=function(e,t){var n,a,r;e&&(n=e.node(),!1===this.multipleSelect&&(!1===this.customSelect?this.dataTable.rows().nodes().each(function(e){e!==n&&S(e).find(":checkbox").prop("checked",!1)}):this.dataTable.rows(".selected").nodes().each(function(e){e!==n&&S(e).removeClass("selected")}),this.selected.splice(0,this.selected.length)),!1===this.customSelect?S(n).find(":checkbox").prop("checked",!0):S(e.node()).addClass("selected"),a=this.config.columns[0].property||this.config.columns[0].name||"",r=e.data(),0<=(e=this.selected.findIndex(function(e){return e[a]===r[a]}))&&this.selected.splice(e,1),this.selected.push(r),0<=(e=this.unselected.findIndex(function(e){return e[a]===r[a]}))&&this.unselected.splice(e,1),t||this.selectedItems.emit(this.selected))},g.prototype.unSelectRow=function(e,t){var n,a,r;e&&(!1===this.customSelect?S(e.node()).find(":checkbox").prop("checked",!1):S(e.node()).removeClass("selected"),n=this.config.columns[0].property||this.config.columns[0].name||"",e=e.data(),a=e[n],0<=(r=this.selected.findIndex(function(e){return e[n]===a})))&&(this.selected.splice(r,1),this.smartSelect&&(r=this.unselected.findIndex(function(e){return e[n]===a}))<0&&this.unselected.push(e),t||this.selectedItems.emit(this.selected))},g.prototype.selectAny=function(){var t=this;this.dataTable&&this.selectable&&(this.smartSelect=!0,this.dataTable.rows().every(function(e){e=t.dataTable.row(e);t.selectRow(e,!0)}),this.selectedItems.emit(this.selected))},g.prototype.selectNone=function(){var t=this;this.dataTable&&this.selectable&&(this.smartSelect=!1,this.unselected.splice(0,this.unselected.length),this.dataTable.rows().every(function(e){e=t.dataTable.row(e);t.unSelectRow(e,!0)}),this.selected.splice(0,this.selected.length),this.selectedItems.emit(this.selected))},g.prototype.toggleSelectRow=function(e){var t,n,a;e&&(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))},g.prototype._renderSelect=function(e,t,n,a){var r=a.settings.aoColumns[a.col];return"function"!=typeof r.selectTemplate&&Object.assign(r,{selectTemplate:F.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}">&nbsp;</label>\n ')}),r.selectTemplate({meta:a,data:e})},g.prototype.ngOnInit=function(){var p,a,r,e,t,o=this,h=this;this.dataTable&&this.destroy(),this.config&&(this.loading.emit({target:this}),Object.prototype.hasOwnProperty.call(this.config,"selectable")&&(this.selectable=this.config.selectable),Object.prototype.hasOwnProperty.call(this.config,"multipleSelect")&&(this.multipleSelect=this.config.multipleSelect),p=this.config.columns.filter(function(e){return!e.formatter||"ActionLinkFormatter"!==e.formatter||!1!==o.showActions}).map(function(e){return Object.assign(new rt(o._injector),e)}).map(function(s){var e,t,n={data:s.property||s.name,defaultContent:null!=s.defaultContent?s.defaultContent:"",title:o.translator.transform(s.title),sortable:!s.hasOwnProperty("sortable")||s.sortable,visible:!s.hasOwnProperty("hidden")||!s.hidden,name:s.name};return s.className?Object.assign(n,{className:s.className}):Object.assign(n,{className:""}),s.formatters&&(Object.assign(n,{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}}),0<(e=s.formatters.filter(function(e){return"function"==typeof e.afterRender})).length)&&Object.assign(n,{createdCell:function(t,n,a,r,o){e.forEach(function(e){e=h._columnFormatters[e.formatter];e&&"function"==typeof e.afterRender&&e.afterRender.bind(s)(t,n,a,r,o)})}}),s.formatter&&((t=h._columnFormatters[s.formatter])&&"function"==typeof t.render&&Object.assign(n,{render:t.render.bind(s)}),t)&&"function"==typeof t.afterRender&&(Object.assign(n,{render:t.render.bind(s)}),Object.assign(n,{createdCell:t.afterRender.bind(s)})),n}),a=S(this.table&&this.table.nativeElement),S(window).on("resize",function(){setTimeout(function(){o.dataTable&&o.dataTable.columns.adjust()},1)}),a.on("processing.dt",function(e,t,n){n?(a.find(".dataTables_empty").html(""),setTimeout(function(){a.addClass("processing")},0)):setTimeout(function(){a.removeClass("processing")},0)}),r=1,a.on("order.dt",function(e){var t;o.dataTable&&(t=o.dataTable.order())&&t.length&&o.order.emit(t)}).on("draw.dt",function(e){if(o.draw.emit(),o.dataTable){var t=o.dataTable.page.info();if(o.page.emit(t),!(1<r))try{r++,setTimeout(function(){o.dataTable.columns.adjust()},1)}catch(n){console.error("ERROR","An error occurred while adjusting table columns"),console.error(n)}}}),this.selectable&&(e={className:"text-center pl-4 pr-0",data:(e=this.config.columns[0]).property||e.name,defaultContent:"",title:"",sortable:!1,visible:!this.customSelect,name:e.name},Object.assign(e,{render:this._renderSelect.bind(this)}),p.unshift(e),a.on("draw.dt",function(){o.customSelect&&a.find("tbody").on("click","tr",function(){var e=h.dataTable.row(this);h.select.emit(e)});a.find("input.s-row").off("click").on("click",o.onSelectionChange.bind(o));var n=o.config.columns[0].property||"";0<o.selected.length&&o.selected.forEach(function(e){e=e[n];null!=e&&a.find("input[data-id='"+e+"']").prop("checked",!0)}),o.smartSelect?a.find("input[data-id]").each(function(e,t){o.unselected.findIndex(function(e){return e[n]==S(t).attr("data-id")})<0&&o.selectRow(o.dataTable.row(e))}):0===o.selected.length&&a.find("input[data-id]").prop("checked",!1)})),e={lengthMenu:[5,10,50,100,200,500],lengthChange:!1,searching:!0,processing:!0,serverSide:this.serverSide,columns:p,colReorder:this.columnOrdering,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)return l={recordsTotal:0,recordsFiltered:0,data:[]},h._lastQueryTotalItems=0,h.load.emit(l),a(l);h.toggleError();var r,o,s,i=h._activatedRoute.snapshot.queryParams,l=(t[1].value,t[2].value),c=t[3].value,d=t[4].value,u=(t[5].value,h._query instanceof U.ClientDataQueryable?h._query:h._context.model(h.config.model).asQueryable());d&&u.take(d).skip(c);h.rowGroup&&h.rowGroup.length&&(r=[],t=h.rowGroup.map(function(t){return p.findIndex(function(e){return e.data===t})}).filter(function(e){return 0<=e}),h.dataTable&&h.dataTable.colReorder&&!0===this.columnOrdering&&(r=h.dataTable.colReorder.order(),t=t.map(function(e){return r.indexOf(e)}).filter(function(e){return-1<e})),o=-1,s="asc",l&&l.length&&(o=l[0].column,s=l[0].dir),d=t.map(function(e){return e!=o&&null!=h.lastRowGroupOrder&&e===h.lastRowGroupOrder.column&&(o=h.lastRowGroupOrder.column,s=h.lastRowGroupOrder.direction),{column:e,dir:e===o?s:"asc"}}),(l=l||[]).unshift.apply(l,ae(d)),-1<o)&&(h.lastRowGroupOrder={column:o,direction:s}),l&&l.length&&(c=l.map(function(e){var t;return t=!1!==h.columnOrdering&&h.dataTable.colReorder?(t=h.dataTable.colReorder.order(),0<=e.column&&e.column<t.length?t[e.column]:0):e.column,p[t].name+" "+e.dir||"asc"}).join(","),u.setParam("$orderby",c)),null==h.stateLoadCallback&&(h.stateLoadCallback=function(e,t){return t(null)}),h.stateLoadCallback(null,function(n){var e,t=h.config.columns.filter(function(t){if(!0!==t.virtual){if(!0!==t.optional)return!0;if(n&&n.columns){var e=p.findIndex(function(e){return e.name===t.name});if(0<=e)return n.columns[e].visible}}return!1}).map(function(e){return e.property?e.name+" as "+e.property:e.name});if(u.select.apply(u,t),i.$filter&&i.$filter.length&&(t=u.getParams(),u.setParam("$filter",null),e=[i.$filter],t.$filter&&e.push("("+t.$filter+")"),u.filter(e.join(" and "))),i.$expand&&i.$expand.length?u.setParam("$expand",i.$expand):h.config&&h.config.defaults&&h.config.defaults.expand&&u.setParam("$expand",h.config.defaults.expand),!u.getParams().$orderby&&h.config&&h.config.defaults&&h.config.defaults.orderBy&&u.setParam("$orderby",h.config.defaults.orderBy),h.config&&h.config.defaults&&h.config.defaults.groupBy&&u.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){var t;return e&&(t=u.getParams(),u.setParam("$filter",null),e=[e],t.$filter&&e.push("("+t.$filter+")"),u.filter(e.join(" and "))),h.lastQueryParams=u.getParams(),u.getList().then(function(e){var t={recordsTotal:e.total,recordsFiltered:e.total,data:e.value};return h._lastQueryTotalItems=e.total,0===e.total&&h.resetEmptyTable(),h.load.emit(t),a(t)})})["catch"](function(e){return console.error("TABLES",e),h.toggleError(e),h._lastQueryTotalItems=0,h.load.emit(ze),a(ze)});h.lastQueryParams=u.getParams(),u.getList().then(function(e){var t={recordsTotal:e.total,recordsFiltered:e.total,data:e.value};return h._lastQueryTotalItems=e.total,0===e.total&&h.resetEmptyTable(),h.load.emit(t),a(t)})["catch"](function(e){return console.error("TABLES",e),h.toggleError(e),h.load.emit(ze),a(ze)})})},language:Object.assign({},h.translator.transform("Tables.DataTable"),{emptyTable:" "})},this.rowGroup.length&&(t=this.rowGroup.map(function(t){return p.findIndex(function(e){return e.data===t})}).filter(function(e){return 0<=e}).map(function(e){return p[e].data}),Object.assign(e,{rowGroup:{dataSrc:t,endRender:function(e,t){t=h._viewContainerRef.createEmbeddedView(h.footerTemplate,{group:t,rows:e});if(t.detectChanges(),1<t.rootNodes.length)throw new Error("FooterTemplate must have exactly one root node.");return t.rootNodes[0]},startRender:function(e,t){t=h._viewContainerRef.createEmbeddedView(h.headerTemplate,{group:t,rows:e});if(t.detectChanges(),1<t.rootNodes.length)throw new Error("HeaderTemplate must have exactly one root node.");return t.rootNodes[0]}}},{})),t={stateSave:this.stateSave},this.stateLoadCallback&&Object.assign(t,{stateLoadCallback:this.stateLoadCallback}),this.stateSaveCallback&&Object.assign(t,{stateSaveCallback:this.stateSaveCallback}),Object.assign(e,t),this.scrollable?Object.assign(e,{scrollY:this.scrollY,scrollCollapse:!1,scroller:{loadingIndicator:!1,displayBuffer:Array.isArray(this.rowGroup)&&0<this.rowGroup.length?100:10}}):Object.assign(e,{scrollY:this.scrollY,paging:this.paging,pageLength:this.pageLength}),this.selectable,this.dataTable=a.on("init.dt",function(e){S(e.target).parent().on("scroll",function(e){var e=S(e.target),t=e.scrollTop(),e=e.scrollLeft();o.dataTable&&o.scroll.emit({top:t,left:e})})}).DataTable(e),this.init.emit(),!this.showHeader&&this._element&&this._element.nativeElement&&((t=this._element.nativeElement.querySelector(".dataTable>thead"))&&t.classList.add("d-none"),e=this._element.nativeElement.querySelector(".dataTable"))&&e.classList.add("mt-2"),!this.showFooter&&this._element&&this._element.nativeElement&&(t=this._element.nativeElement.querySelector(".dataTables_info"))&&t.classList.add("d-none"),this.showPaging)&&(this.showPaging=!0)},g.prototype.ngAfterViewInit=function(){var e,t,n,a;if(this.headerTemplate){var r=this._viewContainerRef.createEmbeddedView(this.headerTemplate,{group:""});r.detectChanges();try{for(var o=w(r.rootNodes),s=o.next();!s.done;s=o.next()){var i=s.value;this.header&&this.header.nativeElement.appendChild(i)}}catch(d){e={error:d}}finally{try{s&&!s.done&&(t=o["return"])&&t.call(o)}finally{if(e)throw e.error}}}if(this.footerTemplate){r=this._viewContainerRef.createEmbeddedView(this.footerTemplate,{group:"",rows:[]});r.detectChanges();try{for(var l=w(r.rootNodes),c=l.next();!c.done;c=l.next()){i=c.value;this.footer&&this.footer.nativeElement.appendChild(i)}}catch(u){n={error:u}}finally{try{c&&!c.done&&(a=l["return"])&&a.call(l)}finally{if(n)throw n.error}}}},g.prototype.scrollTop=function(e){this.dataTable&&this.dataTable.parent().scrollTop(e)},g.prototype.scrollLeft=function(e){this.dataTable&&this.dataTable.parent().scrollLeft(e)},Object.defineProperty(g.prototype,"lastQuery",{get:function(){var t,n=this;if(null!=this.config&&null!=this.lastQueryParams)return t=this._context.model(this.config.model).asQueryable(),Object.keys(this.lastQueryParams).forEach(function(e){t.setParam(e,n.lastQueryParams&&n.lastQueryParams[e])}),t},enumerable:!0,configurable:!0}),g.prototype.fetchOne=function(n){var a=this;if(null!=n&&null!=this.dataTable&&null!=this.lastQueryParams){var e=Array.from(this.dataTable.rows().data());if(e&&e.length){var r=Object.keys(n);if(0===r.length)return;var o,s=e.findIndex(function(t){return 0===r.map(function(e){return t[e]===n[e]}).filter(function(e){return!1===e}).length});if(0<=s)return(o=this._context.model(this.config.model).asQueryable()).setParam("$select",this.lastQueryParams.$select),this.lastQueryParams.$expand&&o.setParam("$expand",this.lastQueryParams.$expand),r.forEach(function(t){var e=a.config.columns.find(function(e){return e.property===t||e.name===t});(e?(e=e.property||e.name,o.and(e)):o.and(t)).equal(n[t])}),o.getItem().then(function(e){var t=a.dataTable.row(s),n=S(t.node()).find(":checkbox").prop("checked");return e&&(t.data(e),S(t.node()).find(":checkbox").off("click").on("click",a.onSelectionChange.bind(a)),n)&&a.selectRow(t,!0),Promise.resolve()})}return Promise.resolve()}},g.prototype.ngOnDestroy=function(){this.reloadSubscription&&this.reloadSubscription.unsubscribe()},g.prototype.onSelectionChange=function(e){var t,n,a,e=e.target,r=/-(\d+)$/g.exec(e.id),r=parseInt(r&&r[1],10),r=this.dataTable.row(r).data();r&&(t=this.config.columns[0].property||"",n=r[t],a=this.selected.findIndex(function(e){return e[t]===n}),e.checked?a<0&&(this.selected.push(r),this.selectedItems.emit(this.selected)):0<=a&&(this.selected.splice(a,1),this.smartSelect)&&(a=this.unselected.findIndex(function(e){return e[t]===n}))<0&&(this.unselected.push(r),this.selectedItems.emit(this.selected)))},g.prototype.resetEmptyTable=function(){this.dataTable&&this.dataTable.context[0]&&(this.dataTable.context[0].oLanguage.sEmptyTable=this.dataTable.context[0].oLanguage.sZeroRecords=this.emptyTable&&this.emptyTable.nativeElement.innerHTML)},g.prototype.toggleError=function(e){var t,n;this.dataTable&&this.dataTable.context[0]&&(n=void 0,(t=this.errorTemplate&&this.errorTemplate.nativeElement)&&(n=t.getElementsByTagName("small").item(0)),e?(this.lastError=e,n&&(n.innerHTML=(e.error&&e.error.message?e.error:e).message),this.dataTable.context[0].oLanguage.sEmptyTable=this.dataTable.context[0].oLanguage.sZeroRecords=this.errorTemplate&&this.errorTemplate.nativeElement.innerHTML):(n&&(n.innerHTML=""),this.dataTable.context[0].oLanguage.sEmptyTable=this.dataTable.context[0].oLanguage.sZeroRecords=""))},g.prototype.clearEmptyTable=function(){this.dataTable&&this.dataTable.context[0]&&(this.dataTable.context[0].oLanguage.sEmptyTable=this.dataTable.context[0].oLanguage.sZeroRecords="")},g.prototype["export"]=function(){document.querySelector(".dt-buttons .buttons-excel").click()},g.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))})},g.prototype.getConfig=function(){return this.config},g.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.destroy(),t.fetch()})["catch"](function(e){console.error("TABLES","An error occurred while loading table configuration."),console.error(e)})},g.prototype.reset=function(e){this.query=undefined,this.destroy(),this.autoLoad=!!e,this.ngOnInit()},g.prototype.selectColumns=function(){var o=this,s=this.dataTable.colReorder.order(),e=this.dataTable.settings().init().columns.map(function(e,t){var n="column-"+t,e=e.title,a=s.indexOf(t),r=o.dataTable.column(a).visible();return{key:n,title:e=null==(e=null==(e=null!=(e=0===t&&o.selectable?"<"+o._translateService.instant("Tables.SelectColumn")+">":e)&&0===e.length?undefined:e)&&(n=void 0,o.selectable?0<t&&(n=o.config.columns[t-1].placeholder):n=o.config.columns[t].placeholder,null!=n)?"<"+o._translateService.instant(n)+">":e)?"<"+o._translateService.instant("Tables.UnknownColumn")+">":e,visible:r,index:a}});this._columnSelector.selectColumns(e).then(function(e){if("ok"===e.result){for(var t=e.columns.map(function(e){return{key:e.key,index:e.index}}).sort(function(e,t){return e.index-t.index}).map(function(t){return e.columns.findIndex(function(e){return t.key===e.key})}),n=0;n<e.columns.length;n++){var a=e.columns[n],r=s.indexOf(n);o.dataTable.column(r).visible(a.visible,!0)}o.dataTable.colReorder.order(t,!0),o.dataTable.draw()}})},g.prototype.exportView=function(s){return l(this,void 0,void 0,function(){var t,n,a,r,o;return T(this,function(e){switch(e.label){case 0:return(e.trys.push([0,4,5,6]),this._loading.showLoading(),this.lastQuery&&this._lastQueryTotalItems&&this.config)?(t=this._configuration.settings,t=t&&t.tables&&t.tables.exportLimit&&0<t.tables.exportLimit?t.tables.exportLimit:500,this._lastQueryTotalItems>t?(s&&s.errorHandler?s.errorHandler(new tt("Export limit exceeded")):this._modalService.showWarningDialog(this._translateService.instant("Tables.ExportList"),this._translateService.instant("Tables.ExportLimitExceeded",{dataLength:this._lastQueryTotalItems,exportLimit:t}),i.DIALOG_BUTTONS.Ok),[2]):Array.from(this.dataTable.context[0].aiDisplay).length!==this._lastQueryTotalItems?[3,1]:(r=this.getExportableData(),a=r.body,r=r.header,this._exportSpreadsheet["export"](a,this._translateService.instant(this.config.title||"Tables.ExportResults")+".xlsx",{header:r,skipHeader:!1}),[3,3])):[2];case 1:return n=this.dataTable.rows().data().toArray(),[4,this.lastQuery.take(t).getItems()];case 2:o=e.sent(),this.dataTable.clear().rows.add(o),o=this.getExportableData(),a=o.body,r=o.header,this.dataTable.clear().rows.add(n),this._exportSpreadsheet["export"](a,this._translateService.instant(this.config.title||"Tables.ExportResults")+".xlsx",{header:r,skipHeader:!1}),e.label=3;case 3:return[2];case 4:return o=e.sent(),console.error(o),s&&s.errorHandler?s.errorHandler(o):this._errorService.showError(o,{continueLink:"."}),[3,6];case 5:return this._loading.hideLoading(),[7];case 6:return[2]}})})},g.prototype.getExportableData=function(){var n,e,t,a=this;return this.dataTable&&this.dataTable.buttons&&"function"==typeof this.dataTable.buttons.exportData&&this.config?(t=(e=this.dataTable.buttons.exportData()).body,e=e.header,n=[],e=e.filter(function(e,t){return 0!==e.trim().length&&!!a.dataTable.column(t).visible()||(n.push(t),!1)}),{body:t=t.map(function(e){return e.filter(function(e,t){return-1===n.indexOf(t)})}),header:e}):{body:[],header:[]}},g.decorators=[{type:v.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 <div #errorTemplate class="d-none error-message">\n <div class="text-center">\n <div class="mt-4">\n <div class="icon-circle bg-danger border-gray-100"></div>\n </div>\n <div class="mt-4">\n <h4 class="font-3xl text-secondary" [translate]="\'Tables.DataError.Title\'"></h4>\n <p class="font-lg text-secondary mb-1" [translate]="\'Tables.DataError.Message\'"></p>\n <p class="font-lg text-secondary error-inner-message">\n <small></small>\n </p>\n </div>\n </div>\n </div>\n ',encapsulation:v.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 tbody tr.dtrg-group.dtrg-start th{border:2px solid #c2cfd6;border-bottom:1px solid #c2cfd6;color:#3e515b;background-color:#f0f3f5}table.dataTable tbody tr.dtrg-group.dtrg-end th{border-top:2px solid #c2cfd6;border-right:2px solid #c2cfd6;border-left:2px solid #c2cfd6;color:#3e515b;background-color:#f0f3f5}table.dataTable tbody tr:nth-last-child(1) th{border-bottom:2px solid #c2cfd6}table.dataTable td.dataTables_empty{border:none!important}table.dataTable .error-inner-message>small{overflow-wrap:break-word}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}"]}]}],g.ctorParameters=function(){return[{type:t.AngularDataContext},{type:undefined,decorators:[{type:v.Inject,args:[et]}]},{type:d.ActivatedRoute},{type:b.TranslateService},{type:v.Injector},{type:$e},{type:v.ElementRef},{type:i.TemplatePipe},{type:i.LoadingService},{type:W.HttpClient},{type:Ge},{type:i.ConfigurationService},{type:i.ExportSpreadsheetService},{type:i.ModalService},{type:i.ErrorService},{type:v.ViewContainerRef}]},g.propDecorators={table:[{type:v.ViewChild,args:["table"]}],emptyTable:[{type:v.ViewChild,args:["emptyTable"]}],errorTemplate:[{type:v.ViewChild,args:["errorTemplate"]}],loadingTable:[{type:v.ViewChild,args:["loadingTable"]}],height:[{type:v.Input}],showActions:[{type:v.Input}],autoLoad:[{type:v.Input}],load:[{type:v.Output,args:["load"]}],init:[{type:v.Output,args:["init"]}],reload:[{type:v.Input,args:["reload"]}],select:[{type:v.Output,args:["select"]}],draw:[{type:v.Output,args:["draw"]}],page:[{type:v.Output,args:["page"]}],order:[{type:v.Output,args:["order"]}],scroll:[{type:v.Output,args:["scroll"]}],selectedItems:[{type:v.Output,args:["selectedItems"]}],loading:[{type:v.Output,args:["loading"]}],scrollable:[{type:v.Input}],serverSide:[{type:v.Input}],lengthMenu:[{type:v.Input}],paging:[{type:v.Input}],pageLength:[{type:v.Input}],columnOrdering:[{type:v.Input}],stateSave:[{type:v.Input}],stateLoadCallback:[{type:v.Input}],stateSaveCallback:[{type:v.Input}],scrollY:[{type:v.Input}],scrollX:[{type:v.Input}],selectable:[{type:v.Input}],multipleSelect:[{type:v.Input}],customSelect:[{type:v.Input}],selected:[{type:v.Input}],configSrc:[{type:v.Input}],rowGroup:[{type:v.Input}],headerTemplate:[{type:v.Input}],footerTemplate:[{type:v.Input}],header:[{type:v.ViewChild,args:["header"]}],footer:[{type:v.ViewChild,args:["footer"]}],config:[{type:v.Input,args:["config"]}],showFooter:[{type:v.Input,args:["showFooter"]}],showHeader:[{type:v.Input,args:["showHeader"]}],showPaging:[{type:v.Input,args:["showPaging"]}],query:[{type:v.Input,args:["query"]}]};var lt=g;function g(e,t,n,a,r,o,s,i,l,c,d,u,p,h,m,f){var g=this;this._context=e,this._columnFormatters=t,this._activatedRoute=n,this._translateService=a,this._injector=r,this._advancedFilterValueProvider=o,this._element=s,this._template=i,this._loading=l,this._http=c,this._columnSelector=d,this._configuration=u,this._exportSpreadsheet=p,this._modalService=h,this._errorService=m,this._viewContainerRef=f,this._firstLoad=!0,this._showFooter=!1,this._showHeader=!0,this._showPaging=!1,this._id=Number(String(Math.random()).slice(2)).toString(36),this.smartSelect=!1,this.configChanges=new V.BehaviorSubject(null),this.height=800,this.showActions=!0,this.autoLoad=!0,this.load=new v.EventEmitter,this.init=new v.EventEmitter,this.reload=new v.EventEmitter,this.select=new v.EventEmitter,this.draw=new v.EventEmitter,this.page=new v.EventEmitter,this.order=new v.EventEmitter,this.scroll=new v.EventEmitter,this.selectedItems=new v.EventEmitter,this.loading=new v.EventEmitter,this.scrollable=!0,this.serverSide=!0,this.lengthMenu=[50,100,200,500],this.paging=!0,this.pageLength=25,this.columnOrdering=!1,this.stateSave=!1,this.scrollY=800,this.scrollX=!0,this.selectable=!1,this.multipleSelect=!0,this.customSelect=!1,this.selected=[],this.unselected=[],this.rowGroup=[],this._lastQueryTotalItems=0,this.translator=new b.TranslatePipe(this._translateService,new Je),S.fn.dataTable.ext.classes.sPageButton="btn",S.fn.dataTable.ext.classes.sPageButtonActive="btn btn-light",this.reloadSubscription=this.reload.subscribe(function(e){g.fetch()})}C.prototype.ngOnDestroy=function(){this.dataSubscription&&this.dataSubscription.unsubscribe(),this.reloadSubscription&&this.reloadSubscription.unsubscribe(),this.subscription&&this.subscription.unsubscribe()},C.prototype.ngOnInit=function(){return l(this,void 0,void 0,function(){var o,s,t,i=this;return T(this,function(e){switch(e.label){case 0:return(e.trys.push([0,2,,3]),null==this.table)?[2]:(o=this.table,[4,this._context.getMetadata()]);case 1:return s=e.sent(),this.dataSubscription=this._activatedRoute.data.subscribe(function(e){var t=new RegExp("^"+e.model+"$","ig"),n=s.EntityContainer.EntitySet.find(function(e){return t.test(e.Name)});if(null==n)return i._errorService.navigateToError(new U.ResponseError("EntitySet Not Found",404));if(null==s.EntityType.find(function(e){return e.Name===n.EntityType}))return i._errorService.navigateToError(new U.ResponseError("EntityType Not Found",404));e.searchConfiguration&&(Object.prototype.hasOwnProperty.call(e.searchConfiguration,"allowSave")&&(i.allowSaveOption=e.searchConfiguration.allowSave),i.searchConfiguration=e.searchConfiguration),e.tableConfiguration&&(i.tableConfiguration=e.tableConfiguration),e.description&&(i.description=i._translateService.instant(e.description)),e.longDescription&&(i.longDescription=i._translateService.instant(e.longDescription)),e.category&&(i.category=i._translateService.instant(e.category)),Object.prototype.hasOwnProperty.call(e,"readonly")&&(i.readonly=e.readonly);var a,e=st.cast(i.tableConfiguration,!0),r=e.columns.find(function(e){return"ButtonFormatter"===e.formatter&&"(modal:edit)"===e.formatString}),r=(r&&(a=[],i._activatedRoute.snapshot.pathFromRoot.forEach(function(e){a.push.apply(a,e.url)}),r.formatString="#/"+a.join("/")+"/(modal:${id}/edit)"),Object.assign({model:n.Name},e));Object.prototype.hasOwnProperty.call(r,"selectable")&&(r.selectable=!i.readonly),o.config=r,o.fetch(!0),i.reloadSubscription=i._activatedRoute.fragment.subscribe(function(e){e&&"reload"===e&&(i._toastService.show(i.description,i._translateService.instant("Settings.OperationCompleted")),o.fetch(!0))}),i._userActivityService.setItem({category:i.category,description:i.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]}})})},C.prototype.onDataLoad=function(e){this.recordsTotal=e.recordsTotal},C.prototype.remove=function(){var t,n=this,a=this.table;if(a&&a.selected&&a.selected.length)return t=a.selected,this._modalService.showWarningDialog(this._translateService.instant("Tables.RemoveItemsTitle"),this._translateService.instant("Tables.RemoveItemsMessage"),i.DIALOG_BUTTONS.OkCancel).then(function(e){"ok"===e&&n._context.model(a.config.model).remove(t).then(function(){n._toastService.show(n.description+":"+n._translateService.instant("Tables.RemoveItemMessage.title"),n._translateService.instant(1===t.length?"Tables.RemoveItemMessage.one":"Tables.RemoveItemMessage.many",{value:t.length})),a.fetch(!0)})["catch"](function(e){n._errorService.showError(e,{continueLink:"."})})})},C.decorators=[{type:v.Component,args:[{selector:"app-advanced-list",template:'<div>\n <div class="row" *ngIf="description">\n <div class="col-auto">\n <h2>{{description}}</h2>\n <ng-container *ngIf="longDescription">\n <p [innerHTML]="longDescription"></p>\n </ng-container>\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>&nbsp;</span><span [translate]="\'Tables.Items\'"></span>\n </div>\n <div class="font-xl text-secondary" *ngIf="recordsTotal === 1">\n <span>{{recordsTotal}}</span><span>&nbsp;</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="readonly === false && table.selected && table.selected.length"\n class="text-danger text-decoration-none mr-2" href="javascript:void(0)" (click)="remove()">\n <span>-</span><span>&nbsp;</span><span [translate]="\'Tables.RemoveItem\'"></span>\n </a>\n <a *ngIf="readonly === false" class="text-indigo text-decoration-none" [routerLink]="[\'.\', { outlets:{ modal:\'add\'} }]">\n <span>+</span><span>&nbsp;</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 [showFooter]="false"\n (load)="onDataLoad($event)" [height]="600"></app-advanced-table>\n </div>\n </div>\n <router-modal></router-modal>\n</div>\n'}]}],C.ctorParameters=function(){return[{type:t.AngularDataContext},{type:b.TranslateService},{type:d.ActivatedRoute},{type:i.ErrorService},{type:i.ToastService},{type:i.ModalService},{type:i.UserActivityService}]},C.propDecorators={entitySet:[{type:v.Input,args:["entitySet"]}],category:[{type:v.Input,args:["category"]}],description:[{type:v.Input,args:["description"]}],longDescription:[{type:v.Input,args:["longDescription"]}],tableConfiguration:[{type:v.Input,args:["tableConfiguration"]}],searchConfiguration:[{type:v.Input,args:["searchConfiguration"]}],table:[{type:v.ViewChild,args:["table"]}],allowSaveOption:[{type:v.Input,args:["allowSaveOption"]}],readonly:[{type:v.Input,args:["readonly"]}]};$=C;function C(e,t,n,a,r,o,s){this._context=e,this._translateService=t,this._activatedRoute=n,this._errorService=a,this._toastService=r,this._modalService=o,this._userActivityService=s,this.recordsTotal=NaN,this.allowSaveOption=!0,this.readonly=!1}n(x,ct=B.RouterModalOkCancel),Object.defineProperty(x.prototype,"form",{get:function(){return this.formComponent},enumerable:!0,configurable:!0}),x.prototype.ngOnInit=function(){var n=this;this.refreshSubscription=this.refresh.subscribe(function(e){var t;null!=n.progressComponent&&e&&e.progress&&(t=e.progress<(t=0)?0:100<e.progress?100:e.progress,n.progressComponent.value=t,n.showProgress())})},x.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)}))},x.prototype.ngOnDestroy=function(){this.refreshSubscription&&this.refreshSubscription.unsubscribe(),this.executeSubscription&&this.executeSubscription.unsubscribe(),this.invalidSubscription&&this.invalidSubscription.unsubscribe()},x.prototype.cancel=function(){return!this.loading&&this._modalService.modalRef?this._modalService.modalRef.hide():Promise.resolve()},x.prototype.ok=function(){return l(this,void 0,void 0,function(){var n=this;return T(this,function(e){try{if(null==this.execute)return[2];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){n.loading=!1,n.refresh.emit({progress:100}),e&&e.errors&&0<e.errors?(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)),n.refresh.emit({progress:1}),n.hideProgress()):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]})})},x.prototype.showProgress=function(){this.progressContainer&&this.progressContainer.nativeElement.classList.replace("invisible","visible")},x.prototype.hideProgress=function(){this.progressContainer&&this.progressContainer.nativeElement.classList.replace("visible","invisible")},x.decorators=[{type:v.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">&times;</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 invisible" #progressContainer>\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:v.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 "]}]}],x.ctorParameters=function(){return[{type:d.Router},{type:d.ActivatedRoute},{type:b.TranslateService},{type:i.ModalService}]},x.propDecorators={items:[{type:v.Input}],modalIcon:[{type:v.Input}],description:[{type:v.Input}],formTemplate:[{type:v.Input}],progressType:[{type:v.Input}],data:[{type:v.Output}],additionalMessage:[{type:v.Input}],errorMessage:[{type:v.Input}],progressComponent:[{type:v.ViewChild,args:["progress"]}],progressContainer:[{type:v.ViewChild,args:["progressContainer"]}],formComponent:[{type:v.ViewChild,args:["formComponent"]}],refresh:[{type:v.Input}],execute:[{type:v.Input}]};var ct,dt=x;function x(e,t,n,a){e=ct.call(this,e,t)||this;return e._translateService=n,e._modalService=a,e.modalIcon="fas fa-project-diagram",e.progressType="indigo",e.errorMessage="Tables.Actions.CompletedWithErrors",e.loading=!1,e.refresh=new v.EventEmitter,e.modalClass="modal-lg",e.modalTitle="Tables.Actions.Label",e.okButtonDisabled=!1,e.okButtonText="Tables.Actions.Start",e}Object.defineProperty(pt.prototype,"filter",{get:function(){return this._filter},set:function(e){this._filter=e},enumerable:!0,configurable:!0}),pt.prototype.onKeyEnter=function(e){"Enter"===e.code&&this.filterChange.emit(this._filter)},pt.decorators=[{type:v.Component,args:[{template:""}]}],pt.propDecorators={filterChange:[{type:v.Output}],filter:[{type:v.Input}]};var ut=pt;function pt(){this.filterChange=new v.EventEmitter}n(_,ht=ut),_.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}))},_.prototype.ngOnInit=function(){var t=this;this.form&&(new z.ServiceUrlPreProcessor(this._context).parse(this.form),new z.TranslatePreProcessor(this._translateService).parse(this.form),this.submission={data:this.filter},this.loading.emit({target:this}),this.refreshForm.emit({form:this.form}),this.componentLoading=!1,this.filterSubscription=this.filterChange.subscribe(function(e){t.submission.data=e,t.refreshForm.emit({submission:t.submission})}))},_.prototype.onChange=function(e){var r,o=this;null!=this.formComponent&&(r=this.formComponent,Object.keys(r.submission.data).forEach(function(e){var t,n,a;Object.prototype.hasOwnProperty.call(r.submission.data,e)&&(n="string"==typeof(t=r.submission.data[e])&&0===t.length,a="object"==typeof t&&0===Object.keys(t).length,n||a?delete o.filter[e]:Object.defineProperty(o.filter,e,{configurable:!0,enumerable:!0,value:t}))}))},_.prototype.onFormLoad=function(e){var t;null!=this.formComponent&&(t=this._translateService.currentLang,this.formComponent.formio.i18next.options.resources[t]={translation:this._translateService.instant("Forms")},this.formComponent.formio.language=t)},_.prototype.ngAfterViewInit=function(){},_.prototype.ngOnDestroy=function(){this.filterSubscription&&this.filterSubscription.unsubscribe()},_.decorators=[{type:v.Component,args:[{selector:"app-advanced-search-form",template:'\n <div class="p-4">\n <formio #formioComponent class="formio-search"\n (keydown)="onKeyEnter($event)" (change)="onChange($event)" (formLoad)="onFormLoad($event)"\n [refresh]="refreshForm" [submission]="submission" [form]="form"></formio>\n </div>\n ',encapsulation:v.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}"]}]}],_.ctorParameters=function(){return[{type:t.AngularDataContext},{type:b.TranslateService},{type:d.ActivatedRoute},{type:W.HttpClient}]},_.propDecorators={formComponent:[{type:v.ViewChild,args:["formioComponent"]}],form:[{type:v.Input}],formSrc:[{type:v.Input}],refreshForm:[{type:v.Output}],loading:[{type:v.Output}]};var ht,mt=_;function _(e,t,n,a){var r=ht.call(this)||this;return r._context=e,r._translateService=t,r._activatedRoute=n,r._http=a,r.form={},r.refreshForm=new v.EventEmitter,r.loading=new v.EventEmitter,r.submission={data:{}},r.componentLoading=!0,r}var ft,gt='\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" #searchElement\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" (click)="onSearch()">\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 d-none">\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()"\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',bt=(n(I,ft=B.RouterModalOkCancel),I.prototype.ngAfterViewInit=function(){var e=this;setTimeout(function(){e.searchElement&&e.searchElement.nativeElement&&e.searchElement.nativeElement.focus()},0)},I.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())},I.prototype.hasInputs=function(){return[]},I.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.advancedTable&&(n.configChangesSubscription=n.advancedTable.configChanges.subscribe(function(e){n.tableConfig&&(n.defaultFilter=I.DEFAULT_ALL_FILTER,n.defaultFilters=[I.DEFAULT_ALL_FILTER],n.defaultFilters.push.apply(n.defaultFilters,n.tableConfig.searches))}))})},I.prototype.cancel=function(){return this.close()},I.prototype.ok=function(){return this.close()},I.prototype.ngOnDestroy=function(){this.subscription&&this.subscription.unsubscribe()},I.prototype.onDataLoad=function(e){this.recordsTotal=e.recordsTotal,this.recordsFiltered=e.recordsFiltered,0<e.recordsTotal&&0===this.pageInfo.recordsTotal&&(this.pageInfo.recordsTotal=e.recordsTotal)},I.prototype.previousPage=function(){this.advancedTable&&this.advancedTable.dataTable.page("previous").draw("page")},I.prototype.nextPage=function(){this.advancedTable&&this.advancedTable.dataTable.page("next").draw("page")},I.prototype.onTableInit=function(){var t=this,n=t.advancedTable&&t.advancedTable.dataTable,e=n.page.info();e.start+=1,t.pageInfo=e,n.context[0].oLanguage.sEmptyTable=this.emptyTable&&this.emptyTable.nativeElement.innerHTML,n.on("page.dt",function(){var e=n.page.info();e.start+=1,t.pageInfo=e}),n.on("draw.dt",function(){t.loading=!1;var e=n.page.info();e.start+=1,t.pageInfo=e})},I.prototype.firstPage=function(){this.advancedTable&&this.advancedTable.dataTable.page("first").draw("page")},I.prototype.lastPage=function(){this.advancedTable&&this.advancedTable.dataTable.page("last").draw("page")},I.prototype.setLength=function(e){this.advancedTable&&(this.pageLength=e,this.advancedTable.dataTable.page.len(e).draw())},I.prototype.onKeyUp=function(e){"Enter"!==e.key&&"Return"!==e.key||this.advancedTable&&(this.loading=!0,this.advancedTable.search(e.target.value))},I.prototype.onSearch=function(){this.advancedTable&&(this.loading=!0,this.advancedTable.search(this.searchText))},I.prototype.getFilters=function(e,t,n){var a,r,o;return void 0===t&&(t={}),!e||!Array.isArray(e.criteria)||null==n.filter||null==(e=e.criteria.find(function(e){return Object.prototype.hasOwnProperty.call(n.filter,e.name)}))?[]:(a=n.filter[e.name],[(r=null!==e.name?e.name.toString():"").includes("GMT")?(o=this.datePipe.transform(r,"MM/dd/yyyy"),this._template.transform(e.filter,{value:o})):"undefined"!==r?this._template.transform(e.filter,Object.assign({value:a},t)):""])},I.prototype.onFilterSelect=function(e){this.advancedSearch(e)},I.prototype.advancedSearch=function(o){return l(this,void 0,void 0,function(){var t,n,a,r;return T(this,function(e){switch(e.label){case 0:if(!this.tableConfig||!Array.isArray(this.tableConfig.criteria)||!this.advancedTable)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=I.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]}})})},I.DEFAULT_ALL_FILTER={name:"Tables.All",filter:null},I.decorators=[{type:v.Component,args:[{selector:"app-advanced-table-modal",template:gt,styles:["\n\n "]}]}],I.ctorParameters=function(){return[{type:d.Router},{type:d.ActivatedRoute},{type:t.AngularDataContext},{type:$e},{type:r.DatePipe}]},I.propDecorators={advancedTable:[{type:v.ViewChild,args:["advancedTable"]}],emptyTable:[{type:v.ViewChild,args:["emptyTable"]}],dropdownFilter:[{type:v.ViewChild,args:["dropdownFilter"]}],dropdownLength:[{type:v.ViewChild,args:["dropdownLength"]}],searchElement:[{type:v.ViewChild,args:["searchElement"]}],tableConfig:[{type:v.Input,args:["tableConfig"]}],tableConfigSrc:[{type:v.Input,args:["tableConfigSrc"]}],pageLength:[{type:v.Input,args:["pageLength"]}],searchText:[{type:v.Input,args:["searchText"]}],lengthMenu:[{type:v.Input,args:["lengthMenu"]}],defaultFilter:[{type:v.Input,args:["defaultFilter"]}]},I);function I(e,t,n,a,r){e=ft.call(this,e,t)||this;return e._context=n,e.advancedFilterValueProvider=a,e.datePipe=r,e.pageLength=25,e.lengthMenu=[5,10,25,50,100],e.recordsTotal=0,e.loading=!1,e.recordsFiltered=0,e.defaultFilters=[I.DEFAULT_ALL_FILTER],e.defaultFilter=I.DEFAULT_ALL_FILTER,e.pageInfo={serverSide:!0},e.modalClass="modal-xl modal-table",e._template=new i.TemplatePipe,e}n(A,vt=bt),A.prototype.ngAfterViewInit=function(){var e=this;vt.prototype.ngAfterViewInit.call(this),setTimeout(function(){e.searchElement&&e.searchElement.nativeElement&&e.searchElement.nativeElement.focus()},0)},A.prototype.ok=function(){return l(this,void 0,void 0,function(){return T(this,function(e){return this._modalRef.hide(),this.dismiss.emit("ok"),[2]})})},A.prototype.cancel=function(){return l(this,void 0,void 0,function(){return T(this,function(e){return this._modalRef.hide(),this.dismiss.emit("cancel"),[2]})})},A.decorators=[{type:v.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">&times;</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" #searchElement (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" (click)="onSearch()">\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 d-none">\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()" (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:v.ViewEncapsulation.None,styles:["\n .modal-table .dataTables_wrapper {\n height: 50vh;\n overflow-y: auto;\n }\n "]}]}],A.ctorParameters=function(){return[{type:d.Router},{type:d.ActivatedRoute},{type:t.AngularDataContext},{type:$e},{type:r.DatePipe},{type:N.BsModalRef},{type:v.ElementRef}]},A.propDecorators={searchElement:[{type:v.ViewChild,args:["searchElement"]}]};var vt,yt=A;function A(e,t,n,a,r,o,s){e=vt.call(this,e,t,n,a,r)||this;return e._modalRef=o,e.el=s,e.dismiss=new v.EventEmitter,e}wt.prototype.select=function(r){var o=this;return new Promise(function(t,e){try{var n=o._modal.openModalComponent(yt,{"class":"modal-xl modal-table",ignoreBackdropClick:!0,animated:!0,initialState:r}).content;n.dismiss.subscribe(function(e){return t({result:e,items:n.advancedTable&&n.advancedTable.selected})})}catch(a){return e(a)}})},wt.decorators=[{type:v.Injectable}],wt.ctorParameters=function(){return[{type:i.ModalService}]};var Tt=wt;function wt(e){this._modal=e}Ct.prototype.resolve=function(e,t){var n=e.data.list||e.params.list,e=e.data.model||e.params.model;return this._http.get("assets/lists/"+e+"/"+n+".json").toPromise()},Ct.decorators=[{type:v.Injectable}],Ct.ctorParameters=function(){return[{type:W.HttpClient}]};var St=Ct;function Ct(e){this._http=e}_t.prototype.resolve=function(e,t){var n=e.data.list||e.params.list,e=e.data.model||e.params.model;return this._http.get("assets/lists/"+e+"/search."+n+".json").toPromise()},_t.decorators=[{type:v.Injectable}],_t.ctorParameters=function(){return[{type:W.HttpClient}]};var xt=_t;function _t(e){this._http=e}E.prototype.ngOnInit=function(){},E.prototype.ngAfterViewInit=function(){var t=this;this.activeTableConfig=this._activatedTable.activeTable&&this._activatedTable.activeTable.getConfig(),this.storageKey="registrar/settings/"+this.activeTableConfig.title+"/table/columns",this.form=this.formBuilder.group({columns:new o.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 n=this;this.tableColumns=this.activeTableConfig.columns.slice(1),this.tableColumns.forEach(function(e,t){e.hidden||(e={id:e.name,name:e.title},n.columns.push(e))}),this.savedTableSettings&&(this.columns.forEach(function(e,t){e.check=!1,e.check=n.savedTableSettings.includes(e.id)}),this.columns.map(function(e,t){e=new o.FormControl(e.check);n.form&&n.form.controls.columns.push(e)}))},E.prototype.openTableSettings=function(e){this.modalRef=this.modalService.show(e)},E.prototype.saveTableSettings=function(){var e,n=this;null!=this.form&&(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)&&this.modalRef.hide()},E.prototype.dismiss=function(){this.modalRef&&this.modalRef.hide()},E.prototype.minSelectedColumns=function(t){void 0===t&&(t=1);return function(e){e=e.controls.map(function(e){return e.value}).reduce(function(e,t){return t?e+t:e},0);return t<=e?null:{required:!0}}},E.decorators=[{type:v.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">&times;</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:v.ViewEncapsulation.None}]}],E.ctorParameters=function(){return[{type:t.AngularDataContext},{type:d.ActivatedRoute},{type:N.BsModalService},{type:i.UserStorageService},{type:o.FormBuilder},{type:Ye}]},E.propDecorators={table:[{type:v.Input}],modal_settings_template:[{type:v.ViewChild,args:["modal_settings_template"]}]};var It=E;function E(e,t,n,a,r,o){this._context=e,this._activatedRoute=t,this.modalService=n,this.userStorage=a,this.formBuilder=r,this._activatedTable=o,this.params=this._activatedRoute.params,this.columns=[]}n(O,At=ut),Object.defineProperty(O.prototype,"text",{get:function(){return this.searchText&&this.searchText.nativeElement&&this.searchText.nativeElement.value},set:function(e){this.searchText&&(this.searchText.nativeElement.value=e)},enumerable:!0,configurable:!0}),O.prototype.ngOnInit=function(){var t=this;null!=this.table&&(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)}))})}))},O.prototype.applyQueryParams=function(t){var n=this;if(null!=this.table){var a=this.table;if(this.filter={},Object.prototype.hasOwnProperty.call(t,"q"))return this.collapsed=!0,this.text=t.q,a.search(this.text);this.text="";var r=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)&&(r=this.selectedList.filter)):this.selectedList=null,Object.keys(r).filter(function(t){if(a.config&&a.config.criteria)return a.config.criteria.find(function(e){return e.name===t})}).forEach(function(e){var t=r[e];U.TextUtils.isNumber(t)&&(t=parseFloat(r[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){null==a.query?a.query=e:null!=e&&e.getParams().$filter?(e=e.getParams(),a.query.setParam("$filter",e.$filter)):a.query.setParam("$filter",null),a.fetch(!0)})}},O.prototype.ngOnDestroy=function(){this.queryParamSubscription&&this.queryParamSubscription.unsubscribe(),this.configChangesSubscription&&this.configChangesSubscription.unsubscribe()},O.prototype.ngAfterViewInit=function(){},O.prototype.onSearchKeyDown=function(e){var t;if(this.table&&13===e.keyCode)return e=e.target.value,this.mergeQueryParams?(t={q:e},this.table.config&&this.table.config.criteria&&this.table.config.criteria.forEach(function(e){Object.defineProperty(t,e.name,{configurable:!0,enumerable:!0,writable:!0,value:null})}),this._router.navigate([],{relativeTo:this._activatedRoute,queryParams:t,queryParamsHandling:"merge"})):(this.filterChange.emit({q:e}),this.table.search(e),!1)},O.prototype.transformDate=function(e){return e=this.datePipe.transform(e,"MM/dd/yyyy")},O.prototype.convertToString=function(e){var t="";return t=null!=e?e.toString():t},O.prototype.loadUserSearchList=function(){var t=this;return null==this.table?Promise.resolve():(this.storageKey="tables/"+this.table.config.model+"/searches",this._userStorage.getItem(this.storageKey).then(function(e){e=e.value||[];return t.table&&t.table.config.searches&&t.table.config.searches.length&&e.push.apply(e,t.table.config.searches.map(function(e){return e.readOnly=!0,e.name=t._translate.instant(e.name),e})),t.userSearchList=e,Promise.resolve()})["catch"](function(e){return console.error("An error occurred while getting user search list"),console.error(e),Promise.resolve()}))},O.prototype.onSelectUserSearch=function(e){var t,n;return this.selectedList&&this.table?!!(t=this.searchInListByName(this.selectedList.name))&&(this.mergeQueryParams?(n={q:null,s:this.selectedList.name},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"})):(this.selectedList=t,this.filter=this.selectedList.filter,this.filterChange.emit(this.filter),!0)):this._router.navigate([],{relativeTo:this._activatedRoute,queryParams:{s:null},queryParamsHandling:"merge"})},O.prototype.searchInListByName=function(t){if(Array.isArray(this.userSearchList))return this.userSearchList.find(function(e){return e.name===t})||!1},O.prototype.updateSavedSearchListItemByName=function(t,e){var n=this.userSearchList.find(function(e){return e.name===t}),n=this.userSearchList.indexOf(n);this.userSearchList[n]=e,this.selectedList=this.userSearchList[n]},O.prototype.updateSavedSearchListItemByObject=function(e,t){e=this.userSearchList.indexOf(e);this.userSearchList[e]=t,this.selectedList=this.userSearchList[e]},O.prototype.deleteItemFromSavedSearchListByObject=function(t){this.userSearchList=this.userSearchList.filter(function(e){return e!==t}),this.selectedList=null,this.filter={},this.advancedSearch(!0),this.uploadListOnUserStorage()},O.prototype.saveSearch=function(e,t){void 0===t&&(t=!0),this.table&&this.table.config.model?(this.storageKey="tables/"+this.table.config.model+"/searches",this.filter&&Object.keys(this.filter).length?!t&&this.selectedList?(t={name:this.selectedList.name,filter:y({},this.filter)},this.updateSavedSearchListItemByObject(this.selectedList,t),this.uploadListOnUserStorage()):this.modalRef=this._modalService.show(e):this._modal.showWarningDialog(this._translate.instant("AdvancedSearch.Modal.Title"),this._translate.instant("AdvancedSearch.Modal.EmptyCriteriaList"),i.DIALOG_BUTTONS.Ok)):this._modal.showWarningDialog(this._translate.instant("AdvancedSearch.Modal.Title"),this._translate.instant("AdvancedSearch.Modal.NoListDefined"),i.DIALOG_BUTTONS.Ok)},O.prototype.confirmModal=function(e){var t;e&&!this.searchInListByName(e)?(t={name:e,filter:y({},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&&this.modalRef.hide()):e&&this.searchInListByName(e)?alert(this._translate.instant("AdvancedSearch.Modal.TitleOnListAlreadyCreated")):alert(this._translate.instant("AdvancedSearch.Modal.TitleOnUserError"))},O.prototype.closeModal=function(){this.modalRef&&this.modalRef.hide()},O.prototype.uploadListOnUserStorage=function(){this._userStorage.setItem(this.storageKey,this.userSearchList.filter(function(e){return!e.readOnly}))},O.prototype.asyncAdvancedSearch=function(e){return l(this,void 0,void 0,function(){var t,n;return T(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&&t&&t.getParams().$filter?this.table.query.setParam("$filter",t.getParams().$filter):this.table.query=t,this.filterChange.emit(this.filter),this.table.fetch(),e.label=2;case 2:return[2]}})})},O.prototype.search=function(){return this.asyncAdvancedSearch().then(function(){})},O.prototype.getQuery=function(){return l(this,void 0,void 0,function(){var n,a,t,r=this;return T(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){var t;Object.prototype.hasOwnProperty.call(r.filter,e.name)&&(r.convertToString(r.filter[e.name]).includes("GMT")?(t=r.transformDate(r.filter[e.name]),n.push(r._template.transform(e.filter,{value:t}))):"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]}})})},O.prototype.advancedSearch=function(e){return this.asyncAdvancedSearch(e)},O.prototype.clear=function(){var t;if(this.mergeQueryParams&&this.table)return t={q:this.selectedList=null,s:null},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(O.prototype,"viewState",{get:function(){return{advancedView:!this.collapsed}},enumerable:!0,configurable:!0}),O.prototype.toggleView=function(){return l(this,void 0,void 0,function(){return T(this,function(e){return this.collapsed=!this.collapsed,this.viewChange.emit(this.viewState),[2]})})},O.decorators=[{type:v.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 && modalRef.hide()">\n <span aria-hidden="true">&times;</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:v.ViewEncapsulation.None}]}],O.ctorParameters=function(){return[{type:t.AngularDataContext},{type:d.ActivatedRoute},{type:r.DatePipe},{type:N.BsModalService},{type:i.UserStorageService},{type:b.TranslateService},{type:$e},{type:i.TemplatePipe},{type:d.Router},{type:i.ModalService}]},O.propDecorators={table:[{type:v.Input}],collapsed:[{type:v.Input}],allowSave:[{type:v.Input}],showMore:[{type:v.Input}],mergeQueryParams:[{type:v.Input}],searchText:[{type:v.ViewChild,args:["searchText"]}],viewChange:[{type:v.Output,args:["viewChange"]}],listChange:[{type:v.Output,args:["listChange"]}]};var At,Et=O;function O(e,t,n,a,r,o,s,i,l,c){var d=At.call(this)||this;return d._context=e,d._activatedRoute=t,d.datePipe=n,d._modalService=a,d._userStorage=r,d._translate=o,d._advancedSearchValueProvider=s,d._template=i,d._router=l,d._modal=c,d.collapsed=!0,d.allowSave=!0,d.showMore=!0,d.mergeQueryParams=!1,d.viewChange=new v.EventEmitter,d.listChange=new v.EventEmitter,d.userSearchList=[],d.selectedList=null,d}var Ot={ActionLinkFormatter:new me,ButtonFormatter:new le,DateTimeFormatter:new De,LanguageFormatter:new qe,LinkFormatter:new ue,NestedPropertyFormatter:new oe,NgClassFormatter:new Be,SelectRowFormatter:new Ce,TemplateFormatter:new Ie,TranslationFormatter:new Le,TrueFalseFormatter:new Oe,ActionButtonFormatter:new be,ActionSplitButtonFormatter:new Te},Pt=(kt.decorators=[{type:v.Component,args:[{selector:"table-simple-header-tools",template:"\n <ng-content></ng-content>\n "}]}],kt);function kt(){}P.prototype.ngOnChanges=function(e){var t=this;e.table&&(null==e.table.currentValue&&this.dataLoadSubscription?this.dataLoadSubscription.unsubscribe():e.table.currentValue!=e.table.previousValue&&(this.dataLoadSubscription=e.table.currentValue.load.subscribe(function(e){t.recordsTotal=e.recordsTotal})))},P.prototype.ngOnDestroy=function(){this.dataLoadSubscription&&this.dataLoadSubscription.unsubscribe()},P.prototype.ngOnInit=function(){},P.decorators=[{type:v.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>&nbsp;</span>\n </div>\n <div class="font-xl text-secondary" *ngIf="recordsTotal && recordsTotal > 1">\n <span>{{recordsTotal}}</span><span>&nbsp;</span><span [translate]="\'Tables.Items\'"></span>\n </div>\n <div class="font-xl text-secondary" *ngIf="recordsTotal === 1">\n <span>{{recordsTotal}}</span><span>&nbsp;</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'}]}],P.ctorParameters=function(){return[]},P.propDecorators={table:[{type:v.Input}]};var Lt=P;function P(){}n(Dt,jt=Error);var jt,Rt=Dt;function Dt(){return jt.call(this,"Advanced table component cannot be empty at this context.")||this}k.prototype.add=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(null==this.table)throw new Rt;var n=this.table.config.columns[0].property||this.table.config.columns[0].name||"";try{for(var a=w(e),r=a.next();!r.done;r=a.next()){var o=r.value,s=this.table.dataTable.rows(':has(input[data-id="'+o[n]+'"])').nodes().to$();s.hasClass("removed")?s.toggleClass("removed text-gray-400 text-decoration-line-through"):(this.table.dataTable.rows.add([o]),(s=this.table.dataTable.rows(':has(input[data-id="'+o[n]+'"])').nodes().to$()).toggleClass("added font-weight-bold text-success"))}}catch(d){l={error:d}}finally{try{r&&!r.done&&(i=a["return"])&&i.call(a)}finally{if(l)throw l.error}}this.table.dataTable.draw();var i=this.table.dataTable.rows(".removed")[0].length,l=this.table.dataTable.rows(".added")[0].length,c=this.table.dataTable.rows().data();this.table.load.emit({data:c,recordsFiltered:c.length-i,recordsTotal:c.length-i}),this.dirty=0<i||0<l,this.dirtyChange.emit(this.dirty)},k.prototype.remove=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(null==this.table)throw new Rt;var n=this.table.config.columns[0].property||this.table.config.columns[0].name||"",a=this;try{for(var r=w(e),o=r.next();!o.done;o=r.next())!function(t){var e=a.table.dataTable.rows(':has(input[data-id="'+t[n]+'"])').nodes().to$(),e=(e.hasClass("added")?a.table.dataTable.rows(e).remove():e.toggleClass("removed text-gray-400 text-decoration-line-through"),a.table.selected.findIndex(function(e){return e[n]===t[n]}));0<=e&&a.table.selected.splice(e,1)}(o.value)}catch(c){i={error:c}}finally{try{o&&!o.done&&(s=r["return"])&&s.call(r)}finally{if(i)throw i.error}}this.table.dataTable.draw();var s=this.table.dataTable.rows().data(),i=this.table.dataTable.rows(".removed")[0].length,l=this.table.dataTable.rows(".added")[0].length;this.table.load.emit({data:s,recordsFiltered:s.length-i,recordsTotal:s.length-i}),this.dirty=0<i||0<l,this.dirtyChange.emit(this.dirty)},k.prototype.set=function(e){if(null==this.table)throw new Rt;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})},k.prototype.undo=function(){if(null==this.table)throw new Rt;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)},k.prototype.rows=function(){if(null==this.table)throw new Rt;return Array.from(this.table.dataTable.rows(":not(.removed)").data())},k.decorators=[{type:v.Directive,args:[{selector:"[tableEditor]"}]}],k.ctorParameters=function(){return[{type:lt}]},k.propDecorators={dirtyChange:[{type:v.Output}]};var Ft=k;function k(e){this.table=e,this.dirty=!1,this.dirtyChange=new v.EventEmitter(!1)}L.prototype.fetchData=function(u,p,h,m,f,g){return void 0===h&&(h=""),l(this,void 0,void 0,function(){var n,a,r,o,s,i,l,c,d=this;return T(this,function(e){if(r=this._context.model(u).asQueryable(),o=[],p=p&&"object"==typeof p?p:{})try{for(s=w(Object.keys(p)),i=s.next();!i.done;i=s.next())l=i.value,o.push(l+" eq "+p[l])}catch(t){n={error:t}}finally{try{i&&!i.done&&(a=s["return"])&&a.call(s)}finally{if(n)throw n.error}}return m&&Array.isArray(m)&&(o=ae(o,m)),f&&g&&(c=void 0,c=/^"(.*?)"$/.test(g)?this._template.transform(f,y({},p,{text:g.replace(/^"|"$/g,"")})):g.split(" ").map(function(e){return d._template.transform(f,y({},p,{text:e}))}).join(" and "),o.push(c)),r.setParam("$filter",o.join("and")),[2,r.expand(h).take(-1).getItems()]})})},L.prototype.formatData=function(s,e){var i=this;try{return e.map(function(e){e.subitems&&Array.isArray(e.subitems)&&(e.subitems=i.formatData(s,e.subitems));for(var t={},n=0;n<s.columns.length;n++){var a=s.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[s.columns[n].name]=r}return e.subitems&&(t.subitems=e.subitems),t})}catch(t){console.error(t)}},L.decorators=[{type:v.Injectable,args:[{providedIn:"root"}]}],L.ctorParameters=function(){return[{type:t.AngularDataContext},{type:i.TemplatePipe}]},L.ngInjectableDef=v.defineInjectable({factory:function(){return new L(v.inject(t.AngularDataContext),v.inject(i.TemplatePipe))},token:L,providedIn:"root"});var Mt=L;function L(e,t){this._context=e,this._template=t}Object.defineProperty(j.prototype,"config",{get:function(){return this._config},set:function(e){this._config=e},enumerable:!0,configurable:!0}),Object.defineProperty(j.prototype,"aggregators",{get:function(){return this._aggregators},set:function(e){this._aggregators=e},enumerable:!0,configurable:!0}),Object.defineProperty(j.prototype,"postProcessors",{get:function(){return this._postProcessors},set:function(e){this._postProcessors=e},enumerable:!0,configurable:!0}),j.prototype.ngOnInit=function(){return l(this,void 0,void 0,function(){var t=this;return T(this,function(e){return this.selectedGroups$.subscribe(function(e){t.groups=e,t._changeDetector.markForCheck()}),this.filters$.subscribe(function(n){return l(t,void 0,void 0,function(){var t;return T(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]})})},j.prototype.ngOnDestroy=function(){return l(this,void 0,void 0,function(){return T(this,function(e){return this.selectedGroups$.unsubscribe(),this.filters$.unsubscribe(),[2]})})},j.prototype.fetch=function(r){return l(this,void 0,void 0,function(){var t,n,a;return T(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]}})})},j.prototype.onActionEvent=function(e){this.eventHandler.emit(e)},j.decorators=[{type:v.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:v.ChangeDetectionStrategy.OnPush}]}],j.ctorParameters=function(){return[{type:v.ChangeDetectorRef},{type:Mt},{type:i.LoadingService}]},j.propDecorators={config:[{type:v.Input,args:["config"]}],aggregators:[{type:v.Input,args:["aggregators"]}],postProcessors:[{type:v.Input,args:["postProcessors"]}],params:[{type:v.Input,args:["params"]}],selectedGroups$:[{type:v.Input,args:["selectedGroups"]}],filters$:[{type:v.Input,args:["filters"]}],searchExpression:[{type:v.Input,args:["searchExpression"]}],eventHandler:[{type:v.Output}]};var Bt=j;function j(e,t,n){this._changeDetector=e,this._advancedAggregatorService=t,this._loadingService=n,this.groups=[],this.eventHandler=new v.EventEmitter}var Nt={XL:"xl",LG:"lg",MD:"md",SM:"sm",XS:"xs"},Vt=(qt.prototype.ngOnInit=function(){var t=this;this.config.columns.forEach(function(e){e.length=Object.values(Nt).includes(e.length)?t._template.transform("sis--list-group-item_"+e.length+"_column",e):e.length||"sis--list-group-item_sm_column"})},qt.prototype.callCallback=function(e,t){this.clickEvent.emit({type:e,data:t})},qt.decorators=[{type:v.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" [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="" [class]="\'fas text-indigo ml-2 \' + \'fa-\' + action.icon"></i>\n </button>\n <span class="px-0">\n <i class="fa fa-fw">&nbsp;</i>\n </span>\n\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],\n \'fa-times text-danger\': !!entry[column.name] === false && 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 <div *ngIf="entry && entry.subitems">\n <div *ngFor="let subitem of entry.subitems" class="d-flex justify-content-center align-items-center list-color">\n <div *ngIf="config.actions && config.actions.length > 0"\n class="sis--list-group-item_sm_column text-left pr-0">\n <span class="px-0">\n <i class="fa fa-fw">&nbsp;</i>\n </span>\n <button *ngFor="let action of config.actions" (click)="callCallback(action.identifier, subitem)"\n [title]="(action.title ? action.title : \'\') | translate " class="btn btn-default px-0">\n <i *ngIf="action.type === \'edit\'" class="fas fa-edit text-indigo"></i>\n </button>\n </div>\n <div class="text-left"></div>\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\') && 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 <span *ngIf="config.columns[i].type === \'boolean\'">\n <i class="fa font-lg" [ngClass]="{\n \'fa-check text-success\': !!subitem[column.name],\n \'fa-times text-danger\': !!subitem[column.name] === false && config.columns[i].variant !== \'checkOrDash\'\n }"></i>\n <span\n *ngIf="subitem[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 </div>\n </li>\n </ul>\n</div>'}]}],qt.ctorParameters=function(){return[{type:i.TemplatePipe}]},qt.propDecorators={config:[{type:v.Input}],body:[{type:v.Input}],clickEvent:[{type:v.Output}]},qt);function qt(e){this._template=e,this.clickEvent=new v.EventEmitter}n(R,Ut=B.RouterModalOkCancel),R.prototype.ngOnInit=function(){var t=this;this.selectComponent&&this.selectComponent.advancedTable&&(this.selectedSubscription=this.selectComponent.advancedTable.selectedItems.subscribe(function(e){null==t.formName&&(t.okButtonDisabled=0===e.length)})),null!=this.formName&&this.formComponent&&(this.formChangeSubscription=this.formComponent.form.change.subscribe(function(e){Object.prototype.hasOwnProperty.call(e,"isValid")&&(t.okButtonDisabled=!e.isValid)})),this.target&&this.target},R.prototype.cancel=function(){return this.clearMessages(),!this.loading&&this._modalService.modalRef?this._modalService.modalRef.hide():Promise.resolve()},R.prototype.ngOnDestroy=function(){this.formLoadSubscription&&this.formLoadSubscription.unsubscribe(),this.formChangeSubscription&&this.formChangeSubscription.unsubscribe(),this.selectedSubscription&&this.selectedSubscription.unsubscribe()},Object.defineProperty(R.prototype,"formData",{get:function(){return null===this.formComponent?null:this.formComponent&&this.formComponent.form.formio.data},enumerable:!0,configurable:!0}),R.prototype.ok=function(){var n=this;try{return this.clearMessages(),new Promise(function(t){if(null==n.selectComponent||null==n.selectComponent.advancedTable||null==n.execute)return t(null);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(null)},function(e){return n.loading=!1,n._loadingService.hideLoading(),n.lastError=e,t(null)})})}catch(e){return this.loading=!1,this._loadingService.hideLoading(),this.lastError=e,Promise.resolve()}},R.prototype.onChange=function(e){},R.prototype.clearMessages=function(){this.messages=[]},R.prototype.onFilterChange=function(e){},R.decorators=[{type:v.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">&times;</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.SelectItems\'" ></a>\n </li>\n <li class="nav-item" *ngIf="formName">\n <a class="nav-link" [ngClass]="{ \'disabled\': !(selectComponent && selectComponent.advancedTable && 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 && selectComponent.advancedTable && 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'}]}],R.ctorParameters=function(){return[{type:d.Router},{type:d.ActivatedRoute},{type:i.ModalService},{type:i.LoadingService}]},R.propDecorators={execute:[{type:v.Input}],items:[{type:v.Input}],target:[{type:v.Input}],tableConfiguration:[{type:v.Input}],formName:[{type:v.Input}],messages:[{type:v.Input}],formComponent:[{type:v.ViewChild,args:["formComponent"]}],selectComponent:[{type:v.ViewChild,args:["selectComponent"]}]};var Ut,$t=R;function R(e,t,n,a){e=Ut.call(this,e,t)||this;return e._modalService=n,e._loadingService=a,e.loading=!1,e.items=[],e.messages=[],e.modalClass="modal-lg",e.okButtonDisabled=!0,e}Qt.prototype.transform=function(e,t,n){return Array.isArray(e)&&n&&n in t?t[n](e):"-"},Qt.decorators=[{type:v.Pipe,args:[{name:"callAggregator"}]}];var Ht=Qt;function Qt(){}Kt.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(" ")):""},Kt.decorators=[{type:v.Pipe,args:[{name:"aggregatorListTitle"}]}],Kt.ctorParameters=function(){return[{type:b.TranslateService}]};var Gt=Kt;function Kt(e){this._translateService=e}var Yt={Tables:{Export:"Εξαγωγή",More:"Περισσότερα",Search:"Αναζήτηση",SearchPlaceholder:"Αναζήτηση...",GroupBy:"Ομαδοποίηση ανά",NotDefined:"Μη προσδιορισμένο",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:"Η διαδικασία ολοκληρώθηκε με επιτυχία."}},SelectColumns:"Επιλογή στηλών",MoveUp:"Επάνω",MoveDown:"Κάτω",AddColumn:"Επιλογή",RemoveColumn:"Αφαίρεση",SelectColumnHelp:"Επιλέξτε μία ή περισσότερες από τις διαθέσιμες στήλες και πατήστε το πλήκτρο 'Επιλογή' για να τις εμφανίσετε. Χρησιμοποιήστε το πλήκτρο 'Αφαίρεση' για να αφαιρέσετε τις επιλεγμένες στήλες.",MoveColumnHelp:"Χρησιμοποιήστε τα πλήκτρα 'Επάνω' και 'Κάτω' για να αλλάξετε την σειρά εμφάνισης των στηλών του πίνακα.",UnknownColumn:"Άγνωστο",SelectColumn:"Επιλογή",ActionLinkColumn:"Ενέργειες",DataError:{Title:"Σφάλμα κατά την παραλαβή των δεδομένων",Message:"Συνέβη σφάλμα κατά την παραλαβή των δεδομένων. Προσπαθήστε ξανά ή τροποποιήστε τα στοιχεία αναζήτησης."},ExportList:"Εξαγωγή λίστας",ExportLimitExceeded:"Το πλήθος των στοιχείων προς εξαγωγή ({{dataLength}}) ξεπερνάει το μέγιστο επιτρεπτό ({{exportLimit}}). Παρακαλούμε προσαρμόστε τα φίλτρα της αναζήτησης και προσπαθήστε ξανά.",ExportResults:"Δεδομένα λίστας"},TrueFalse:{"long":{Yes:"Ναι",No:"Όχι"}},Settings:{OperationCompleted:"Η διαδικασία ολοκληρώθηκε με επιτυχία."},AdvancedSearch:{Choose:"<Επιλέξτε μια αναζήτηση>",ChooseDate:"Επιλογή ημερομηνίας",SavedSearches:"Αποθηκευμένες αναζητήσεις",ToggleDropdown:"Εμφάνιση λίστας",SaveCurrentSearch:"Αποθήκευση αναζήτησης",SaveAs:"Αποθήκευση ως",Save:"Αποθήκευση",Delete:"Διαγραφή",More:"Περισσότερα",Less:"Λιγότερα",Modal:{Title:"Αποθήκευση κριτηρίων αναζήτησης",Help:"Ορίστε έναν τίτλο για τα επιλεγμένα κριτήρια αναζήτησης. Αυτός ο τίτλος θα σας βοηθήσει να τα χρησιμοποιήσετε ξανά στο μέλλον.",TitleOnUserError:"Παρακαλώ εισάγετε έναν τίτλο",TitleOnListAlreadyCreated:"Το όνομα αυτό χρησιμοποιείται ήδη. Διαλέξτε ένα διαφορετικό.",NoListDefined:"Δεν έχει οριστεί το σημείο αποθήκευσης της λίστας",EmptyCriteriaList:"Δεν έχετε καθορίσει κανένα κριτήριο για αποθήκευση",SaveNameLabel:"Ονομασία λίστας",SaveNamePlaceholder:"Εισάγετε έναν τίτλο",Accept:"Αποθήκευση",Decline:"Απόρριψη",Close:"Κλείσιμο"}},AddItems:{SelectItems:"Επιλέξτε στοιχεία"}},Wt={Tables:{Export:"Export",More:"More",Search:"Search",SearchPlaceholder:"Search...",GroupBy:"Group by",NotDefined:"Not defined",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."}},SelectColumns:"Select columns",MoveUp:"Move up",MoveDown:"Move down",AddColumn:"Add",RemoveColumn:"Remove",SelectColumnHelp:"Select one or more columns and press 'Add' button to include them in table. Use 'Remove' button to exclude one or more columns from view.",MoveColumnHelp:"Use 'Move up' and 'Move down' buttons to change column order.",UnknownColumn:"Unknown",SelectColumn:"Select",ActionLinkColumn:"Actions",DataError:{Title:"Error while getting data",Message:"An error occurred while getting data. Please try again or change your criteria."},ExportList:"Export list",ExportLimitExceeded:"The number of items that are to be exported ({{dataLength}}) exceeds the export limit ({{exportLimit}}). Please apply more specific filters to the search.",ExportResults:"Exported list"},TrueFalse:{"long":{Yes:"Yes",No:"No"}},Settings:{OperationCompleted:"The operation was completed successfully."},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"}},AddItems:{SelectItems:"Select items"}},Xt="[Table] Load Filter",zt="[Table] Append Filter",Jt="[Table] Append State",Zt=function(e,t){this.id=e,this.filter=t,this.type=zt},en=function(e,t){this.id=e,this.data=t,this.type=Jt},tn={};function nn(e,t){switch(void 0===e&&(e=tn),t.type){case Xt:return e[t.id];case zt:return e[t.id]=y({},e[t.id],{filter:F.cloneDeep(t.filter)}),e;case Jt:return e[t.id]=y({},e[t.id],{table:t.data}),e;default:return e}}var an={tables:nn},rn=a.createFeatureSelector("tables"),on=a.createSelector(rn,function(e,t){return e.tables[t.id]}),sn=(ln.prototype.ngOnInit=function(){var t,n=this;null!=this.store&&(this.table.stateSave=!0,this.table.stateLoadCallback=function(e,t){n.store.pipe(a.select(on,{id:n.tableState}),q.first()).subscribe(function(e){t(e&&e.table),e&&e.table&&e.table.ColReorder&&n.table.dataTable.colReorder.order(e.table.ColReorder,!0)})},t=!0,this.table.draw.subscribe(function(){var e;!1!==t&&null!=n.table.dataTable&&(t=!1,e=(e=n.table.dataTable.settings()[0]).oSavedState&&e.oSavedState.scroller)&&e.topRow&&n.table.dataTable.scroller().scrollToRow(e.topRow,!0)}),this.table.stateSaveCallback=function(e,t){n.store.dispatch(new en(n.tableState,t))})},ln.decorators=[{type:v.Directive,args:[{selector:"[tableState]"}]}],ln.ctorParameters=function(){return[{type:lt},{type:a.Store,decorators:[{type:v.Optional}]}]},ln.propDecorators={tableState:[{type:v.Input}]},ln);function ln(e,t){this.table=e,this.store=t}n(un,cn=Error);var cn,dn=un;function un(){return cn.call(this,"Advanced table search component cannot be empty at this context.")||this}D.prototype.ngOnInit=function(){var t=this;if(null!=this.store){if(null==this.search)throw new dn;this.search.table&&(this.search.table.autoLoad=!1,this.filterChangeSubscription=this.search.filterChange.subscribe(function(e){t.onSearchFilter(e)}),this.applyTableState(),this.tableInitSubscription=this.search.table.init.subscribe(function(){return t.onTableInit()}))}},D.prototype.applyTableState=function(){var e;this.search.table&&((e=new sn(this.search.table,this.store)).tableState=this.searchState,e.ngOnInit())},D.prototype.onTableInit=function(){var e=this;this.store.pipe(a.select(on,{id:this.searchState}),q.first()).subscribe(function(t){if(t)return t.order&&t.order.length&&e.search.table&&e.search.table.dataTable.order(t.order),t.filter&&t.filter.q&&e.search.table?(e.search.text=t.filter.q,e.search.collapsed=!0,e.search.table.search(e.search.text)):(t.filter&&t.filter.s?e.search.selectedList=e.search.userSearchList.find(function(e){return e.name===t.filter.s}):t.filter&&Object.keys(t.filter).length?(e.search.collapsed=!1,e.search.filter=t.filter):e.search.filter={},e.search.search())})},D.prototype.onSearchFilter=function(e){e=F.isEmpty(e)?null:e,this.store.dispatch(new Zt(this.searchState,e))},D.prototype.ngOnDestroy=function(){this.filterChangeSubscription&&this.filterChangeSubscription.unsubscribe(),this.tableInitSubscription&&this.tableInitSubscription.unsubscribe()},D.decorators=[{type:v.Directive,args:[{selector:"[searchState]"}]}],D.ctorParameters=function(){return[{type:Et},{type:a.Store,decorators:[{type:v.Optional}]}]},D.propDecorators={searchState:[{type:v.Input}]};var pn=D;function D(e,t){this.search=e,this.store=t}n(fn,hn=pn),fn.prototype.ngOnDestroy=function(){return this._routerSubscription&&this._routerSubscription.unsubscribe(),hn.prototype.ngOnDestroy.call(this)},fn.decorators=[{type:v.Directive,args:[{selector:"[routerSearchState]"}]}],fn.ctorParameters=function(){return[{type:Et},{type:a.Store,decorators:[{type:v.Optional}]},{type:d.Router}]};var hn,mn=fn;function fn(e,t,n){var a=hn.call(this,e,t)||this;return a.search=e,a.store=t,a._router=n,a._enteringState=!0,a._applyState=!1,a._routerSubscription=a._router.events.pipe(q.filter(function(e){return e instanceof d.NavigationStart||e instanceof d.NavigationEnd})).subscribe(function(e){if(e instanceof d.NavigationStart&&!a._enteringState){try{a.searchState=new URL(e.url,location.origin).pathname}catch(t){console.error("An error occured while trying to set search state for the current table",t),a.searchState=e.url}a._applyState=!0}if(e instanceof d.NavigationEnd&&a._enteringState){try{a.searchState=new URL(e.urlAfterRedirects,location.origin).pathname}catch(t){console.error("An error occured while trying to set search state for the current table",t),a.searchState=e.urlAfterRedirects}a._enteringState=!1}a._applyState&&(hn.prototype.applyTableState.call(a),a._applyState=!1)}),a}var gn=Ot,B=(bn.prototype.ngOnInit=function(){return l(this,void 0,void 0,function(){return T(this,function(e){return this._translateService.setTranslation("en",Wt,!0),this._translateService.setTranslation("el",Yt,!0),[2]})})},bn.decorators=[{type:v.NgModule,args:[{imports:[r.CommonModule,i.SharedModule,b.TranslateModule,o.FormsModule,o.ReactiveFormsModule,d.RouterModule,B.RouterModalModule,J.FormioModule,z.AdvancedFormsModule,i.SharedModule,N.ModalModule,Z.ProgressbarModule,ee.NgPipesModule],providers:[r.DatePipe,i.TemplatePipe,{provide:et,useValue:gn},St,xt,Tt,Mt,Ge,ee.GroupByPipe],declarations:[lt,ut,Et,We,It,bt,mt,$,dt,Lt,Pt,yt,Ft,Bt,Vt,Ht,Gt,$t,pn,sn,mn,Qe],exports:[lt,Et,We,It,mt,$,dt,Lt,Pt,yt,Ft,Bt,Vt,$t,pn,sn,mn,Qe],entryComponents:[bt,It,dt,yt,$t,Qe],schemas:[v.CUSTOM_ELEMENTS_SCHEMA]}]}],bn.ctorParameters=function(){return[{type:b.TranslateService}]},bn);function bn(e){this._translateService=e,this.ngOnInit()["catch"](function(e){console.error("An error occurred while loading tables module"),console.error(e)})}e.AdvancedListComponent=$,e.AdvancedRowActionComponent=dt,e.AdvancedSearchFormComponent=mt,e.AdvancedSelectComponent=yt,e.AdvancedSelectService=Tt,e.AdvancedTableConfigurationResolver=St,e.AdvancedSearchConfigurationResolver=xt,e.AdvancedColumnFormatter=h,e.NestedPropertyFormatter=oe,e.ButtonFormatter=le,e.LinkFormatter=ue,e.ActionLinkFormatter=me,e.ActionButtonFormatter=be,e.ActionSplitButtonFormatter=Te,e.SelectRowFormatter=Ce,e.TemplateFormatter=Ie,e.TrueFalseFormatter=Oe,e.TranslationFormatter=Le,e.DateTimeFormatter=De,e.NgClassFormatter=Be,e.LanguageFormatter=qe,e.COLUMN_FORMATTERS=et,e.ExportLimitExceededError=tt,e.AdvancedTableConfiguration=st,e.AdvancedTableComponent=lt,e.AdvancedTableSettingsComponent=It,e.AdvancedTableSearchBaseComponent=ut,e.AdvancedTableSearchComponent=Et,e.FORMATTERS=Ot,e.AdvancedFilterValueProvider=$e,e.AdvancedTableModalBaseTemplate=gt,e.AdvancedTableModalBaseComponent=bt,e.SimpleHeaderToolsComponent=Pt,e.TableSimpleHeaderComponent=Lt,e.AdvancedTableNotNullError=Rt,e.AdvancedTableEditorDirective=Ft,e.MAX_EXPORT_ITEMS=500,e.BtnExpDirective=We,e.AdvancedAggregatorComponent=Bt,e.AdvancedAggregatorListComponent=Vt,e.AddItemsComponent=$t,e.AdvancedAggregatorPipe=Ht,e.ParseTitlePipe=Gt,e.AdvancedAggregatorService=Mt,e.TablesModule=B,e.ActivatedTableService=Ye,e.ColumnSelectorService=Ge,e.ColumnSelectorComponent=Qe,e.tableReducer=nn,e.initialState=tn,e.tableInitialState={filter:{},order:[]},e.tableReducers=an,e.featureName="tables",e.getTablesState=rn,e.selectTable=on,e.ɵa=pn,e.ɵc=sn,e.ɵd=mn,Object.defineProperty(e,"__esModule",{value:!0})});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("lodash"),require("@ngx-translate/core"),require("@angular/common"),require("iso-639-1/build"),require("@angular/router"),require("@angular/core"),require("@universis/common"),require("@angular/forms"),require("@universis/common/routing"),require("ngx-bootstrap/modal"),require("rxjs"),require("rxjs/operators"),require("@themost/angular"),require("@themost/client"),require("jquery"),require("datatables.net"),require("datatables.net-rowgroup"),require("datatables.net-scroller"),require("datatables.net-colreorder"),require("datatables.net-buttons"),require("@angular/common/http"),require("rxjs/add/observable/combineLatest"),require("@universis/forms"),require("@ngrx/store"),require("angular-formio"),require("ngx-bootstrap/progressbar"),require("ngx-pipes")):"function"==typeof define&&define.amd?define("@universis/ngx-tables",["exports","lodash","@ngx-translate/core","@angular/common","iso-639-1/build","@angular/router","@angular/core","@universis/common","@angular/forms","@universis/common/routing","ngx-bootstrap/modal","rxjs","rxjs/operators","@themost/angular","@themost/client","jquery","datatables.net","datatables.net-rowgroup","datatables.net-scroller","datatables.net-colreorder","datatables.net-buttons","@angular/common/http","rxjs/add/observable/combineLatest","@universis/forms","@ngrx/store","angular-formio","ngx-bootstrap/progressbar","ngx-pipes"],t):t((e.universis=e.universis||{},e.universis["ngx-tables"]={}),e.lodash,e.core,e.ng.common,e.ISO6391,e.ng.router,e.ng.core,e.i2,e.ng.forms,e.routing,e.modal,e.rxjs,e.rxjs.operators,e.i1$1,e.client,e.jQuery_,0,0,0,0,0,e.ng.common.http,e.rxjs["add/observable/combineLatest"],e.forms$1,e.store,e.angularFormio,e.progressbar,e.ngxPipes)}(this,function(e,F,b,r,M,d,v,i,o,B,N,V,q,t,U,$,H,Q,G,K,Y,W,X,z,a,J,Z,ee){"use strict";var te=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])});function n(e,t){function n(){this.constructor=e}te(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var y=Object.assign||function y(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};function l(t,s,i,l){return new(i=i||Promise)(function(e,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(t){t.done?e(t.value):new i(function(e){e(t.value)}).then(a,r)}o((l=l.apply(t,s||[])).next())})}function T(n,a){var r,o,s,i={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},e={next:t(0),"throw":t(1),"return":t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return l([t,e])}}function l(e){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,o&&(s=o[2&e[0]?"return":e[0]?"throw":"next"])&&!(s=s.call(o,e[1])).done)return s;switch(o=0,(e=s?[0,s.value]:e)[0]){case 0:case 1:s=e;break;case 4:return i.label++,{value:e[1],done:!1};case 5:i.label++,o=e[1],e=[0];continue;case 7:e=i.ops.pop(),i.trys.pop();continue;default:if(!(s=0<(s=i.trys).length&&s[s.length-1])&&(6===e[0]||2===e[0])){i=0;continue}if(3===e[0]&&(!s||e[1]>s[0]&&e[1]<s[3]))i.label=e[1];else if(6===e[0]&&i.label<s[1])i.label=s[1],s=e;else{if(!(s&&i.label<s[2])){s[2]&&i.ops.pop(),i.trys.pop();continue}i.label=s[2],i.ops.push(e)}}e=a.call(n,i)}catch(t){e=[6,t],o=0}finally{r=s=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}}function w(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return{value:(e=e&&n>=e.length?void 0:e)&&e[n++],done:!e}}}}function ne(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var a,r,o=n.call(e),s=[];try{for(;(void 0===t||0<t--)&&!(a=o.next()).done;)s.push(a.value)}catch(i){r={error:i}}finally{try{a&&!a.done&&(n=o["return"])&&n.call(o)}finally{if(r)throw r.error}}return s}function ae(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(ne(arguments[t]));return e}u.template=function(e){var t=u.templateCache.get(e);return"function"!=typeof t&&(t=F.template(e),u.templateCache.set(e,t)),t},u.prototype.createUrlTree=function(r,e){var t,n,a,o,s,i,l,c;if(Array.isArray(e.commands)&&this.injector)return t=this.injector.get(d.ActivatedRoute),n=this.injector.get(d.Router),a=e.commands.map(function(n){var a;return"string"==typeof n?u.template(n)(r):n.outlets?(a={},Object.keys(n.outlets).forEach(function(e){var t;Object.prototype.hasOwnProperty.call(n.outlets,e)&&(t=n.outlets[e],Array.isArray(t)?Object.defineProperty(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t.map(function(e){return u.template(e)(r)})}):Object.defineProperty(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}))}),{outlets:a}):n}),o={},s=!0,(i=e.navigationExtras&&e.navigationExtras.queryParams)&&Object.keys(i).map(function(e){var t=i[e];o[e]=u.template(t)(r)}),e.navigationExtras&&"undefined"!=typeof e.navigationExtras.replaceUrl&&(s=e.navigationExtras.replaceUrl),l=!1,c=void(e.navigationExtras&&"undefined"!=typeof e.navigationExtras.skipLocationChange&&(l=e.navigationExtras.skipLocationChange)),e.navigationExtras&&"undefined"!=typeof e.navigationExtras.fragment&&(c=e.navigationExtras.fragment),n.createUrlTree(a,{fragment:c,relativeTo:t,queryParams:o,replaceUrl:s,skipLocationChange:l})},u.templateCache=new Map;var h=u;function u(){this.title=""}n(se,re=h),se.prototype.render=function(e,t,n,a){a=a.settings.aoColumns[a.col];return a&&a.data?F.at(n,a.data.replace(/\//g,".")):e};var re,oe=se;function se(){return re.call(this)||this}n(ce,ie=h),ce.prototype.render=function(e,t,n,a){var r,o,s;return null==e||null==this.injector?"":(e="",o=(r=Object.assign({buttonClass:"btn btn-default"},this.formatOptions)).buttonText?this.injector.get(b.TranslateService).instant(r.buttonText):r.buttonContent,r.buttonTitle&&(e=this.injector.get(b.TranslateService).instant(r.buttonTitle)),Array.isArray(this.formatOptions.commands)?(s=this.createUrlTree(n,this.formatOptions),'<a class="'+r.buttonClass+'" title="'+e+'" href="#'+s+'">'+o+"</a>"):(s=h.template(this.formatString)(n),'<a class="'+r.buttonClass+'" title="'+e+'" href="'+s+'">'+o+"</a>"))};var ie,le=ce;function ce(){return ie.call(this)||this}n(pe,de=h),pe.prototype.render=function(e,t,n,a){a=a.settings.aoColumns[a.col];return a&&a.data?'<a href="'+h.template(this.formatString)(n)+'">'+e+"</a>":e};var de,ue=pe;function pe(){return de.call(this)||this}n(fe,he=h),fe.prototype.render=function(e,t,n,a){var r,o,s=this,a=a.settings.aoColumns[a.col];if(a&&a.data){var a=this.actions||[],i=1;try{for(var l=w(a),c=l.next();!c.done;c=l.next()){var d=c.value;Object.assign(d,{name:d.name||"action"+i}),i+=1}}catch(u){r={error:u}}finally{try{c&&!c.done&&(o=l["return"])&&o.call(l)}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 '+a.map(function(e){var t;return"divider"===e.type?'<div class="dropdown-divider"></div>':e.formatOptions&&e.formatOptions.commands?(t=s.createUrlTree(n,e.formatOptions),"<a data-name='"+e.name+"' class=\"dropdown-item"+("string"==typeof e.className&&e.className.length?" "+e.className.trim():"")+'" href="#'+(t&&t.toString())+'">\n '+(s.injector&&s.injector.get(b.TranslateService).instant(e.title))+"\n </a>"):"<a data-name='"+e.name+"' class=\"dropdown-item"+("string"==typeof e.className&&e.className.length?" "+e.className.trim():"")+'" href="'+h.template(e.href)(n)+'">\n '+(s.injector&&s.injector.get(b.TranslateService).instant(e.title))+"\n </a>"}).join("")+"\n </div>\n </div>"}return e},fe.prototype.afterRender=function(e,t,n,a,r){};var he,me=fe;function fe(){return he.call(this)||this}n(ve,ge=h),ve.prototype.render=function(e,t,n,a){var r=this,a=a.settings.aoColumns[a.col];if(a&&a.data&&this.injector){var a=this.actions||[],o=1;try{for(var s=w(a),i=s.next();!i.done;i=s.next()){var l=i.value;Object.assign(l,{name:l.name||"action"+o}),o+=1}}catch(u){d={error:u}}finally{try{i&&!i.done&&(c=s["return"])&&c.call(s)}finally{if(d)throw d.error}}var c=void 0,d=(this.formatOptions&&this.formatOptions.buttonText&&(c=this.formatOptions.buttonText.includes("${")?h.template(this.formatOptions.buttonText)(n):this.injector.get(b.TranslateService).instant(this.formatOptions.buttonText)),void 0);return this.formatOptions&&this.formatOptions.buttonTitle&&(d=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="'+d+'"\n id="dropdownMenuButton-'+e+'" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\n '+c+'\n </a>\n <div class="dropdown-menu" aria-labelledby="dropdownMenuButton-'+e+'">\n '+a.map(function(e){var t;return"divider"===e.type?'<div class="dropdown-divider"></div>':e.commands?'<a class="dropdown-item" href="#'+((t=r.createUrlTree(n,e))&&t.toString())+'">\n '+(r.injector&&r.injector.get(b.TranslateService).instant(e.title))+"\n </a>":'<a class="dropdown-item" href="'+h.template(e.href)(n)+'">\n '+(r.injector&&r.injector.get(b.TranslateService).instant(e.title))+"\n </a>"}).join("")+"\n </div>\n </div>"}return e},ve.prototype.afterRender=function(e,t,n,a,r){};var ge,be=ve;function ve(){return ge.call(this)||this}n(we,ye=h),we.prototype.render=function(e,t,n,a){var r=this,a=a.settings.aoColumns[a.col];if(a&&a.data){var o,s,i,a=this.actions||[],l=1;try{for(var c=w(a),d=c.next();!d.done;d=c.next()){var u=d.value;Object.assign(u,{name:u.name||"action"+l}),l+=1}}catch(p){s={error:p}}finally{try{d&&!d.done&&(o=c["return"])&&o.call(c)}finally{if(s)throw s.error}}return 0===a.length?void 0:'<div class="btn-group">\n <a type="button" class="'+(o=this.formatOptions&&this.formatOptions.buttonClass||"btn btn-light")+'" href="'+((s=a[0])&&s.commands?"#"+((i=this.createUrlTree(n,s))&&i.toString()):h.template(s.href)(n))+'">\n '+(this.injector&&this.injector.get(b.TranslateService).instant(s.title))+'\n </a>\n <button type="button" class="'+o+' dropdown-toggle dropdown-toggle-split"\n data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\n <span class="sr-only">'+(this.injector&&this.injector.get(b.TranslateService).instant("Toggle Dropdown"))+'</span>\n </button>\n <div class="dropdown-menu" aria-labelledby="dropdownMenuButton-'+e+'">\n '+a.map(function(e){var t;return"-"===e.title?'<div class="dropdown-divider"></div>':e.commands?'<a class="dropdown-item" href="#'+((t=r.createUrlTree(n,e))&&t.toString())+'">\n '+(r.injector&&r.injector.get(b.TranslateService).instant(e.title))+"\n </a>":'<a class="dropdown-item" href="'+h.template(e.href)(n)+'">\n '+(r.injector&&r.injector.get(b.TranslateService).instant(e.title))+"\n </a>"}).join("")+"\n </div>\n </div>"}return e},we.prototype.afterRender=function(e,t,n,a,r){};var ye,Te=we;function we(){return ye.call(this)||this}n(xe,Se=h),xe.prototype.render=function(e,t,n,a){var r=a.settings.aoColumns[a.col];return r&&r.data?(r='<input class="checkbox checkbox-theme" type="checkbox"\n id="s-'+a.row+'" /><label for="s-'+a.row+'">&nbsp;</label>',h.template(r)(n)):e};var Se,Ce=xe;function xe(){return Se.call(this)||this}n(Ae,_e=h),Ae.prototype.render=function(e,t,n,a){a=a.settings.aoColumns[a.col];return a&&a.data?h.template(this.formatString)(n):e};var _e,Ie=Ae;function Ae(){return _e.call(this)||this}n(Pe,Ee=h),Pe.prototype.render=function(e,t,n,a){return e?this.injector&&this.injector.get(b.TranslateService).instant("TrueFalse.long.Yes"):this.injector&&this.injector.get(b.TranslateService).instant("TrueFalse.long.No")};var Ee,Oe=Pe;function Pe(){return Ee.call(this)||this}n(je,ke=h),je.prototype.render=function(e,t,n,a){return a.settings.aoColumns[a.col]&&null!=e?this.injector&&this.injector.get(b.TranslateService).instant(h.template(this.formatString)({value:e})):this.injector&&this.injector.get(b.TranslateService).instant("Unknown")};var ke,Le=je;function je(){return ke.call(this)||this}n(Fe,Re=h),Fe.prototype.render=function(e,t,n,a){var a=a.settings.aoColumns[a.col];return a&&a.data&&this.injector?(a=new r.DatePipe(this.injector.get(b.TranslateService).currentLang),"string"==typeof e&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}$/.test(e)?a.transform(new Date(e+":00"),this.formatString):a.transform(e,this.formatString)):e};var Re,De=Fe;function Fe(){return Re.call(this)||this}n(Ne,Me=h),Ne.prototype.render=function(e,t,n,a){var r,o,a=a.settings.aoColumns[a.col];if(a&&a.data&&this.formatOptions){var s=this.formatOptions.ngClass;a.ngClassTemplates=a.ngClassTemplates||{};try{for(var i=w(Object.keys(s)),l=i.next();!l.done;l=i.next()){var c=l.value,d=h.template(s[c])(n);if(!0===new Function("return "+d+";")())return'<span class="'+c+'">'+e+"</span>"}}catch(u){r={error:u}}finally{try{l&&!l.done&&(o=i["return"])&&o.call(i)}finally{if(r)throw r.error}}}return e};var Me,Be=Ne;function Ne(){return Me.call(this)||this}n(Ue,Ve=h),Ue.prototype.render=function(e,t,n,a){return e&&M.getNativeName(e)};var Ve,qe=Ue;function Ue(){return Ve.call(this)||this}s.prototype.buildFilter=function(e){if(e)return this._template.transform(e,this.values)},s.prototype.asyncBuildFilter=function(r){return l(this,void 0,void 0,function(){var t,n,a;return T(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]}})})},s.prototype.getValues=function(){return l(this,void 0,void 0,function(){return T(this,function(e){return[2,this.values]})})},s.decorators=[{type:v.Injectable,args:[{providedIn:"root"}]}],s.ctorParameters=function(){return[]},s.ngInjectableDef=v.defineInjectable({factory:function(){return new s},token:s,providedIn:"root"});var $e=s;function s(){this.values={},this._template=new i.TemplatePipe}n(c,He=B.RouterModalOkCancel),c.prototype.ok=function(){var e=this;this._changeDetector.detectChanges(),setTimeout(function(){e.changing=!0,e._modalRef.hide()},0);try{this.applyChanges()}catch(t){throw t}finally{this.changing=!1}return this.dismiss.emit("ok"),Promise.resolve("ok")},c.prototype.cancel=function(){return this._modalRef.hide(),this.dismiss.emit("cancel"),Promise.resolve("cancel")},c.prototype.ngOnChanges=function(e){},c.prototype.ngOnDestroy=function(){},c.prototype.ngOnInit=function(){Array.isArray(this.columns)&&(this.selectedColumns=this.columns.filter(function(e){return e.visible}).sort(function(e,t){return e.index<t.index?-1:e.index>t.index?1:0}).map(function(e){return{key:e.key,title:e.title}}))},c.prototype.applyChanges=function(){var e,t;if(this.selectedColumns&&this.columns){var n=this.selectedColumns.length-1,a=this;try{for(var r=w(this.columns),o=r.next();!o.done;o=r.next())!function(t){var e=a.selectedColumns.findIndex(function(e){return e.key===t.key});e<0?(t.visible=!1,n+=1,t.index=n):(t.visible=!0,t.index=e)}(o.value)}catch(s){e={error:s}}finally{try{o&&!o.done&&(t=r["return"])&&t.call(r)}finally{if(e)throw e.error}}}},c.prototype.removeColumns=function(){var e,t;if(this.selectedColumns){var n=this.selectedColumnsControl.value;if(0<n.length){var a=this;try{for(var r=w(n),o=r.next();!o.done;o=r.next())!function(t){var e=a.selectedColumns.findIndex(function(e){return e.key===t});0<=e&&a.selectedColumns.splice(e,1)}(o.value)}catch(s){e={error:s}}finally{try{o&&!o.done&&(t=r["return"])&&t.call(r)}finally{if(e)throw e.error}}this.selectedColumnsControl.reset()}}},c.prototype.addColumns=function(){var e;if(this.columns&&this.selectedColumns){var t=this.availableColumnsControl.value;if(0<t.length){var n=this;try{for(var a=w(t),r=a.next();!r.done;r=a.next())!function(t){var e=n.columns.find(function(e){return e.key===t});e&&n.selectedColumns.findIndex(function(e){return e.key===t})<0&&n.selectedColumns.push({key:e.key,title:e.title})}(r.value)}catch(s){e={error:s}}finally{try{r&&!r.done&&(o=a["return"])&&o.call(a)}finally{if(e)throw e.error}}var o=this.columns.findIndex(function(e){return e.key===t[t.length-1]});this.availableColumnsControl.reset(),-1<o&&o<this.columns.length-1&&this.availableColumnsControl.patchValue([this.columns[o+1].key])}}},c.prototype.moveUp=function(){var e,t;if(this.moveUpButton&&(this.moveUpButton.nativeElement.disabled=!0),this.selectedColumns){var n=this.selectedColumnsControl.value;if(0<n.length){var a=this;try{for(var r=w(n),o=r.next();!o.done;o=r.next())!function(t){var e,n=a.selectedColumns.findIndex(function(e){return e.key===t});0<n&&(e=a.selectedColumns[n],a.selectedColumns.splice(n,1),a.selectedColumns.splice(n-1,0,e))}(o.value)}catch(s){e={error:s}}finally{try{o&&!o.done&&(t=r["return"])&&t.call(r)}finally{if(e)throw e.error}}}}this.moveUpButton&&(this.moveUpButton.nativeElement.disabled=!1)},c.prototype.moveDown=function(){var e,t;if(this.moveDownButton&&(this.moveDownButton.nativeElement.disabled=!0),this.selectedColumns&&this.columns){var n=this.selectedColumnsControl.value;if(0<n.length){var a=this;try{for(var r=w(n),o=r.next();!o.done;o=r.next())!function(t){var e=a.selectedColumns.findIndex(function(e){return e.key===t}),n=a.columns.length;0<=e&&e<n&&(n=a.selectedColumns[e],a.selectedColumns.splice(e,1),a.selectedColumns.splice(e+1,0,n))}(o.value)}catch(s){e={error:s}}finally{try{o&&!o.done&&(t=r["return"])&&t.call(r)}finally{if(e)throw e.error}}}}this.moveDownButton&&(this.moveDownButton.nativeElement.disabled=!1)},c.decorators=[{type:v.Component,args:[{selector:"app-column-selector",template:'<div>\n <div class="modal-header">\n <h5 class="modal-title">{{\'Tables.SelectColumns\' | translate}}</h5>\n <button (click)="cancel()"\n type="button" class="close" data-dismiss="modal" aria-label="Cancel">\n <span aria-hidden="true">&times;</span>\n </button>\n </div>\n <div class="modal-body pt-0">\n <div class="row">\n <div class="col-12">\n <p [translate]="\'Tables.SelectColumnHelp\'"></p>\n <p [translate]="\'Tables.MoveColumnHelp\'"></p>\n </div>\n </div>\n <div class="row">\n <div class="col-4">\n <select [formControl]="availableColumnsControl" size="10" class="form-select form-control" multiple aria-label="multiple select example">\n <ng-container *ngIf="columns">\n <ng-container *ngFor="let column of columns | orderBy: [\'title\']">\n <option class="text-wrap" [value]="column.key">{{column.title}}</option>\n </ng-container>\n </ng-container>\n </select>\n </div>\n <div class="col-4 d-flex justify-content-center align-items-center">\n <div class="col-9">\n <div>\n <button [disabled]="!(availableColumnsControl.value && availableColumnsControl.value.length)" (click)="addColumns()" type="button" class="btn btn-primary btn-block">\n <i class="fas fa-plus mr-2"></i><span [translate]="\'Tables.AddColumn\'"></span>\n </button>\n </div>\n <div class="mt-3">\n <button [disabled]="!(selectedColumnsControl.value && selectedColumnsControl.value.length)" (click)="removeColumns()" type="button" class="btn btn-secondary btn-block">\n <i class="fas fa-minus mr-2"></i><span [translate]="\'Tables.RemoveColumn\'"></span>\n </button>\n </div>\n </div>\n </div>\n <div class="col-4">\n <select [formControl]="selectedColumnsControl" size="10" class="form-select form-control" multiple aria-label="multiple select example">\n <ng-container *ngIf="selectedColumns">\n <ng-container *ngFor="let column of selectedColumns">\n <option class="text-wrap" [value]="column.key">{{column.title}}</option>\n </ng-container>\n </ng-container>\n </select>\n <div class="d-flex justify-content-end align-items-center">\n <div class="btn-group mt-4">\n <button #moveUpButton [disabled]="!(selectedColumnsControl.value && selectedColumnsControl.value.length)" (click)="moveUp()" type="button" class="btn btn-primary" style="min-width: 7rem;">\n <i class="fas fa-chevron-up mr-2"></i><span [translate]="\'Tables.MoveUp\'"></span>\n </button>\n <button #moveDownButton [disabled]="!(selectedColumnsControl.value && selectedColumnsControl.value.length)" (click)="moveDown()" type="button" class="btn btn-primary ml-3 mr-1" style="min-width: 7rem;">\n <i class="fas fa-chevron-down mr-2"></i><span [translate]="\'Tables.MoveDown\'"></span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="modal-footer justify-content-end">\n\n <button [disabled]="okButtonDisabled" (click)="ok()"\n type="button" class="btn btn-primary">\n <i *ngIf="changing" class="fa fa-spinner fa-spin mr-1"></i>\n {{\'OK\' | translate}}\n </button>\n <button [disabled]="cancelButtonDisabled"\n (click)="cancel()" type="button" [ngClass]="cancelButtonClass" data-dismiss="modal">\n {{\'Cancel\' | translate}}\n </button>\n </div>\n </div>\n\n',encapsulation:v.ViewEncapsulation.Emulated,styles:["\n .form-select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n padding: 5px;\n }\n .form-select * {\n padding: 5px 5px;\n }\n .btn.disabled, .btn:disabled {\n border-color: transparent !important;\n }\n "]}]}],c.ctorParameters=function(){return[{type:d.Router},{type:d.ActivatedRoute},{type:N.BsModalRef},{type:v.ChangeDetectorRef}]},c.propDecorators={columns:[{type:v.Input}],selectedColumns:[{type:v.Input}],moveUpButton:[{type:v.ViewChild,args:["moveUpButton"]}],moveDownButton:[{type:v.ViewChild,args:["moveDownButton"]}]};var He,Qe=c;function c(e,t,n,a){e=He.call(this,e,t)||this;return e._modalRef=n,e._changeDetector=a,e.dismiss=new v.EventEmitter,e.availableColumnsControl=new o.FormControl,e.selectedColumnsControl=new o.FormControl,e.changing=!1,e}Ke.prototype.selectColumns=function(r){var o=this;return new Promise(function(t,e){try{var n=o._modal.openModalComponent(Qe,{"class":"modal-xl modal-table",ignoreBackdropClick:!0,animated:!0,initialState:{columns:r}}).content;n.dismiss.subscribe(function(e){return t("ok"===e?{result:e,columns:n.columns}:{result:e})})}catch(a){return e(a)}})},Ke.decorators=[{type:v.Injectable}],Ke.ctorParameters=function(){return[{type:i.ModalService}]};var Ge=Ke;function Ke(e){this._modal=e}Object.defineProperty(p.prototype,"activeTable",{get:function(){return this._activeTable},set:function(e){this._activeTable=e,this.lastActiveTable.next(this._activeTable)},enumerable:!0,configurable:!0}),p.decorators=[{type:v.Injectable,args:[{providedIn:"root"}]}],p.ctorParameters=function(){return[{type:d.Router},{type:d.ActivatedRoute}]},p.ngInjectableDef=v.defineInjectable({factory:function(){return new p(v.inject(d.Router),v.inject(d.ActivatedRoute))},token:p,providedIn:"root"});var Ye=p;function p(e,t){var n=this;this._router=e,this._activatedRoute=t,this.lastActiveTable=new V.BehaviorSubject(undefined),this.nextActiveTable=this.lastActiveTable.pipe(q.skip(1)),e.events.forEach(function(e){e instanceof d.NavigationStart&&n._activeTable&&(n.activeTable=undefined)})}m.prototype.clickEvent=function(t){return l(this,void 0,void 0,function(){return T(this,function(e){return t.preventDefault(),t.stopPropagation(),this._activatedTable.activeTable?[2,this._activatedTable.activeTable.exportView()]:[2]})})},m.prototype.setParams=function(t,n){return n&&"object"==typeof n&&Object.keys(n).forEach(function(e){t.setParam(e,n[e])}),t},m.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},m.prototype.constructQueryParam=function(e,h){var m=this,t=(t=e.getParams().$select).split(",").map(function(e){var t,n,a,r,o=e.split(" ");if(3===o.length&&h&&h.columns)try{for(var s=w(h.columns),i=s.next();!i.done;i=s.next())(l=i.value).property===o[2]&&l.title?o[2]='"'+m._translate.instant(l.title)+'"':l.property===o[2]&&(o[2]='"'+m._translate.instant(o[2])+'"')}catch(u){t={error:u}}finally{try{i&&!i.done&&(n=s["return"])&&n.call(s)}finally{if(t)throw t.error}}if(1!==o.length)return o.join(" ");if(h&&h.columns)try{for(var l,c=w(h.columns),d=c.next();!d.done;d=c.next()){if((l=d.value).name===o[0]&&l.title){o[0]=o[0]+' as "'+m._translate.instant(l.title)+'"';break}if(l.name===o[0]&&l.property){o[0]=o[0]+' as "'+m._translate.instant(l.property)+'"';break}if(o[0]===l.name&&"id"===o[0]&&l.hidden)break;o[0]!=l.name&&o[0]!==l.property||(o[0]=o[0]+' as "'+m._translate.instant(o[0])+'"')}}catch(p){a={error:p}}finally{try{d&&!d.done&&(r=c["return"])&&r.call(c)}finally{if(a)throw a.error}}return o[0]}).join(",");return e.setParam("$select",t),e},m.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},m.prototype.constructQuery=function(e,t,n,a){e=this.setParams(e,t),e=this.setHeaders(e,a);return this.constructQueryParam(e,n)},m.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 U.ResponseError(e.statusText,e.status);return e.blob()}).then(function(e){var t=window.URL.createObjectURL(e),n=document.createElement("a"),a=(document.body.appendChild(n),n.setAttribute("style","display: none"),n.href=t,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:"."})})},m.decorators=[{type:v.Directive,args:[{selector:".universis-btn-export"}]}],m.ctorParameters=function(){return[{type:Ye},{type:t.AngularDataContext},{type:i.ConfigurationService},{type:b.TranslateService},{type:i.LoadingService},{type:i.ErrorService}]},m.propDecorators={clickEvent:[{type:v.HostListener,args:["click",["$event"]]}]};var We=m;function m(e,t,n,a,r,o){this._activatedTable=e,this._context=t,this._config=n,this._translate=a,this._loadingService=r,this._errorService=o}var Xe,S=$,ze=(S.fn.dataTable.Api.register("processing()",function(t){return this.iterator("table",function(e){e.oApi._fnProcessingDisplay(e,t)})}),{recordsTotal:0,recordsFiltered:0,data:[]}),Je=(n(f,Xe=v.ChangeDetectorRef),f.prototype.checkNoChanges=function(){},f.prototype.detach=function(){},f.prototype.detectChanges=function(){},f.prototype.markForCheck=function(){},f.prototype.reattach=function(){},f);function f(){return null!==Xe&&Xe.apply(this,arguments)||this}var Ze,et=new v.InjectionToken("column.formatters"),tt=(n(nt,Ze=RangeError),nt);function nt(e){e=Ze.call(this,e)||this;return e.name="ExportLimitExceededError",e}n(ot,at=h),ot.prototype.render=function(e,t,n,a){};var at,rt=ot;function ot(e){var t=at.call(this)||this;return t.injector=e,t.title="",t}it.cast=function(e,t){return t?JSON.parse(JSON.stringify(e)):e};var st=it;function it(){}Object.defineProperty(g.prototype,"config",{get:function(){return this._config},set:function(e){this._config=e,this.configChanges.next(this._config)},enumerable:!0,configurable:!0}),Object.defineProperty(g.prototype,"lastQueryTotalItems",{get:function(){return this._lastQueryTotalItems},enumerable:!0,configurable:!0}),Object.defineProperty(g.prototype,"showFooter",{get:function(){return this._showFooter},set:function(e){var t;this._showFooter=e,this._element&&this._element.nativeElement&&null!=(t=this._element.nativeElement.querySelector(".dataTables_info"))&&(e?t.classList.remove("d-none"):t.classList.add("d-none"))},enumerable:!0,configurable:!0}),Object.defineProperty(g.prototype,"showHeader",{get:function(){return this._showHeader},set:function(e){var t,n;this._showHeader=e,this._element&&this._element.nativeElement&&null!=(t=this._element.nativeElement.querySelector(".dataTable>thead"))&&null!=(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(g.prototype,"showPaging",{get:function(){return this._showPaging},set:function(e){var t;this._showPaging=e,this._element&&this._element.nativeElement&&null!=(t=this._element.nativeElement.querySelector(".dataTables_paginate"))&&(e?S(t).show():S(t).hide())},enumerable:!0,configurable:!0}),Object.defineProperty(g.prototype,"query",{get:function(){return this._query},set:function(e){this._query=e},enumerable:!0,configurable:!0}),g.prototype.search=function(e){var t,n,a,r=this;this.query=this.query||this._context.model(this.config.model).asQueryable(),this.serverSide?(e&&this.config.searchExpression?/^"(.*?)"$/.test(e)?this.query.setParam("$filter",this._template.transform(this.config.searchExpression,{text:e.replace(/^"|"$/g,"")})):(a=e.split(" ").map(function(e){return r._template.transform(r.config&&r.config.searchExpression,{text:e})}).join(" and "),this.query.setParam("$filter",a)):this.query.setParam("$filter",null),this._firstLoad=!1,this.dataTable.draw()):(this.resetEmptyTable(),this.dataTable.search(e.trim()).draw(),e=(a=Array.from(this.dataTable.context[0].aiDisplay)).length,t=a.length,n=Array.from(this.dataTable.rows().data()),a=a.map(function(e){return n[e]}),this.load.emit({data:a,recordsFiltered:e,recordsTotal:t}))},g.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()},g.prototype.destroy=function(){this.dataTable&&(this.dataTable.destroy(),this._firstLoad=!0,this.table&&S(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)},g.prototype.selectRow=function(e,t){var n,a,r;e&&(n=e.node(),!1===this.multipleSelect&&(!1===this.customSelect?this.dataTable.rows().nodes().each(function(e){e!==n&&S(e).find(":checkbox").prop("checked",!1)}):this.dataTable.rows(".selected").nodes().each(function(e){e!==n&&S(e).removeClass("selected")}),this.selected.splice(0,this.selected.length)),!1===this.customSelect?S(n).find(":checkbox").prop("checked",!0):S(e.node()).addClass("selected"),a=this.config.columns[0].property||this.config.columns[0].name||"",r=e.data(),0<=(e=this.selected.findIndex(function(e){return e[a]===r[a]}))&&this.selected.splice(e,1),this.selected.push(r),0<=(e=this.unselected.findIndex(function(e){return e[a]===r[a]}))&&this.unselected.splice(e,1),t||this.selectedItems.emit(this.selected))},g.prototype.unSelectRow=function(e,t){var n,a,r;e&&(!1===this.customSelect?S(e.node()).find(":checkbox").prop("checked",!1):S(e.node()).removeClass("selected"),n=this.config.columns[0].property||this.config.columns[0].name||"",e=e.data(),a=e[n],0<=(r=this.selected.findIndex(function(e){return e[n]===a})))&&(this.selected.splice(r,1),this.smartSelect&&(r=this.unselected.findIndex(function(e){return e[n]===a}))<0&&this.unselected.push(e),t||this.selectedItems.emit(this.selected))},g.prototype.selectAny=function(){var t=this;this.dataTable&&this.selectable&&(this.smartSelect=!0,this.dataTable.rows().every(function(e){e=t.dataTable.row(e);t.selectRow(e,!0)}),this.selectedItems.emit(this.selected))},g.prototype.selectNone=function(){var t=this;this.dataTable&&this.selectable&&(this.smartSelect=!1,this.unselected.splice(0,this.unselected.length),this.dataTable.rows().every(function(e){e=t.dataTable.row(e);t.unSelectRow(e,!0)}),this.selected.splice(0,this.selected.length),this.selectedItems.emit(this.selected))},g.prototype.toggleSelectRow=function(e){var t,n,a;e&&(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))},g.prototype._renderSelect=function(e,t,n,a){var r=a.settings.aoColumns[a.col];return"function"!=typeof r.selectTemplate&&Object.assign(r,{selectTemplate:F.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}">&nbsp;</label>\n ')}),r.selectTemplate({meta:a,data:e})},g.prototype.ngOnInit=function(){var p,a,r,e,t,o=this,h=this;this.dataTable&&this.destroy(),this.config&&(this.loading.emit({target:this}),Object.prototype.hasOwnProperty.call(this.config,"selectable")&&(this.selectable=this.config.selectable),Object.prototype.hasOwnProperty.call(this.config,"multipleSelect")&&(this.multipleSelect=this.config.multipleSelect),p=this.config.columns.filter(function(e){return!e.formatter||"ActionLinkFormatter"!==e.formatter||!1!==o.showActions}).map(function(e){return Object.assign(new rt(o._injector),e)}).map(function(s){var e,t,n={data:s.property||s.name,defaultContent:null!=s.defaultContent?s.defaultContent:"",title:o.translator.transform(s.title),sortable:!s.hasOwnProperty("sortable")||s.sortable,visible:!s.hasOwnProperty("hidden")||!s.hidden,name:s.name};return s.className?Object.assign(n,{className:s.className}):Object.assign(n,{className:""}),s.formatters&&(Object.assign(n,{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}}),0<(e=s.formatters.filter(function(e){return"function"==typeof e.afterRender})).length)&&Object.assign(n,{createdCell:function(t,n,a,r,o){e.forEach(function(e){e=h._columnFormatters[e.formatter];e&&"function"==typeof e.afterRender&&e.afterRender.bind(s)(t,n,a,r,o)})}}),s.formatter&&((t=h._columnFormatters[s.formatter])&&"function"==typeof t.render&&Object.assign(n,{render:t.render.bind(s)}),t)&&"function"==typeof t.afterRender&&(Object.assign(n,{render:t.render.bind(s)}),Object.assign(n,{createdCell:t.afterRender.bind(s)})),n}),a=S(this.table&&this.table.nativeElement),S(window).on("resize",function(){setTimeout(function(){o.dataTable&&o.dataTable.columns.adjust()},1)}),a.on("processing.dt",function(e,t,n){n?(a.find(".dataTables_empty").html(""),setTimeout(function(){a.addClass("processing")},0)):setTimeout(function(){a.removeClass("processing")},0)}),r=1,a.on("order.dt",function(e){var t;o.dataTable&&(t=o.dataTable.order())&&t.length&&o.order.emit(t)}).on("draw.dt",function(e){if(o.draw.emit(),o.dataTable){var t=o.dataTable.page.info();if(o.page.emit(t),!(1<r))try{r++,setTimeout(function(){o.dataTable.columns.adjust()},1)}catch(n){console.error("ERROR","An error occurred while adjusting table columns"),console.error(n)}}}),this.selectable&&(e={className:"text-center pl-4 pr-0",data:(e=this.config.columns[0]).property||e.name,defaultContent:"",title:"",sortable:!1,visible:!this.customSelect,name:e.name},Object.assign(e,{render:this._renderSelect.bind(this)}),p.unshift(e),a.on("draw.dt",function(){o.customSelect&&a.find("tbody").on("click","tr",function(){var e=h.dataTable.row(this);h.select.emit(e)});a.find("input.s-row").off("click").on("click",o.onSelectionChange.bind(o));var n=o.config.columns[0].property||"";0<o.selected.length&&o.selected.forEach(function(e){e=e[n];null!=e&&a.find("input[data-id='"+e+"']").prop("checked",!0)}),o.smartSelect?a.find("input[data-id]").each(function(e,t){o.unselected.findIndex(function(e){return e[n]==S(t).attr("data-id")})<0&&o.selectRow(o.dataTable.row(e))}):0===o.selected.length&&a.find("input[data-id]").prop("checked",!1)})),e={lengthMenu:[5,10,50,100,200,500],lengthChange:!1,searching:!0,processing:!0,serverSide:this.serverSide,columns:p,colReorder:this.columnOrdering,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)return l={recordsTotal:0,recordsFiltered:0,data:[]},h._lastQueryTotalItems=0,h.load.emit(l),a(l);h.toggleError();var r,o,s,i=h._activatedRoute.snapshot.queryParams,l=(t[1].value,t[2].value),c=t[3].value,d=t[4].value,u=(t[5].value,h._query instanceof U.ClientDataQueryable?h._query:h._context.model(h.config.model).asQueryable());d&&u.take(d).skip(c);h.rowGroup&&h.rowGroup.length&&(r=[],t=h.rowGroup.map(function(t){return p.findIndex(function(e){return e.data===t})}).filter(function(e){return 0<=e}),h.dataTable&&h.dataTable.colReorder&&!0===this.columnOrdering&&(r=h.dataTable.colReorder.order(),t=t.map(function(e){return r.indexOf(e)}).filter(function(e){return-1<e})),o=-1,s="asc",l&&l.length&&(o=l[0].column,s=l[0].dir),d=t.map(function(e){return e!=o&&null!=h.lastRowGroupOrder&&e===h.lastRowGroupOrder.column&&(o=h.lastRowGroupOrder.column,s=h.lastRowGroupOrder.direction),{column:e,dir:e===o?s:"asc"}}),(l=l||[]).unshift.apply(l,ae(d)),-1<o)&&(h.lastRowGroupOrder={column:o,direction:s}),l&&l.length&&(c=l.map(function(e){var t;return t=!1!==h.columnOrdering&&h.dataTable.colReorder?(t=h.dataTable.colReorder.order(),0<=e.column&&e.column<t.length?t[e.column]:0):e.column,p[t].name+" "+e.dir||"asc"}).join(","),u.setParam("$orderby",c)),null==h.stateLoadCallback&&(h.stateLoadCallback=function(e,t){return t(null)}),h.stateLoadCallback(null,function(n){var e,t=h.config.columns.filter(function(t){if(!0!==t.virtual){if(!0!==t.optional)return!0;if(n&&n.columns){var e=p.findIndex(function(e){return e.name===t.name});if(0<=e)return n.columns[e].visible}}return!1}).map(function(e){return e.property?e.name+" as "+e.property:e.name});if(u.select.apply(u,t),i.$filter&&i.$filter.length&&(t=u.getParams(),u.setParam("$filter",null),e=[i.$filter],t.$filter&&e.push("("+t.$filter+")"),u.filter(e.join(" and "))),i.$expand&&i.$expand.length?u.setParam("$expand",i.$expand):h.config&&h.config.defaults&&h.config.defaults.expand&&u.setParam("$expand",h.config.defaults.expand),!u.getParams().$orderby&&h.config&&h.config.defaults&&h.config.defaults.orderBy&&u.setParam("$orderby",h.config.defaults.orderBy),h.config&&h.config.defaults&&h.config.defaults.groupBy&&u.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){var t;return e&&(t=u.getParams(),u.setParam("$filter",null),e=[e],t.$filter&&e.push("("+t.$filter+")"),u.filter(e.join(" and "))),h.lastQueryParams=u.getParams(),u.getList().then(function(e){var t={recordsTotal:e.total,recordsFiltered:e.total,data:e.value};return h._lastQueryTotalItems=e.total,0===e.total&&h.resetEmptyTable(),h.load.emit(t),a(t)})})["catch"](function(e){return console.error("TABLES",e),h.toggleError(e),h._lastQueryTotalItems=0,h.load.emit(ze),a(ze)});h.lastQueryParams=u.getParams(),u.getList().then(function(e){var t={recordsTotal:e.total,recordsFiltered:e.total,data:e.value};return h._lastQueryTotalItems=e.total,0===e.total&&h.resetEmptyTable(),h.load.emit(t),a(t)})["catch"](function(e){return console.error("TABLES",e),h.toggleError(e),h.load.emit(ze),a(ze)})})},language:Object.assign({},h.translator.transform("Tables.DataTable"),{emptyTable:" "})},this.rowGroup.length&&(t=this.rowGroup.map(function(t){return p.findIndex(function(e){return e.data===t})}).filter(function(e){return 0<=e}).map(function(e){return p[e].data}),Object.assign(e,{rowGroup:{dataSrc:t,endRender:function(e,t){t=h._viewContainerRef.createEmbeddedView(h.footerTemplate,{group:t,rows:e});if(t.detectChanges(),1<t.rootNodes.length)throw new Error("FooterTemplate must have exactly one root node.");return t.rootNodes[0]},startRender:function(e,t){t=h._viewContainerRef.createEmbeddedView(h.headerTemplate,{group:t,rows:e});if(t.detectChanges(),1<t.rootNodes.length)throw new Error("HeaderTemplate must have exactly one root node.");return t.rootNodes[0]}}},{})),t={stateSave:this.stateSave},this.stateLoadCallback&&Object.assign(t,{stateLoadCallback:this.stateLoadCallback}),this.stateSaveCallback&&Object.assign(t,{stateSaveCallback:this.stateSaveCallback}),Object.assign(e,t),this.scrollable?Object.assign(e,{scrollY:this.scrollY,scrollCollapse:!1,scroller:{loadingIndicator:!1,displayBuffer:Array.isArray(this.rowGroup)&&0<this.rowGroup.length?100:10}}):Object.assign(e,{scrollY:this.scrollY,paging:this.paging,pageLength:this.pageLength}),this.selectable,this.dataTable=a.on("init.dt",function(e){S(e.target).parent().on("scroll",function(e){var e=S(e.target),t=e.scrollTop(),e=e.scrollLeft();o.dataTable&&o.scroll.emit({top:t,left:e})})}).DataTable(e),this.init.emit(),!this.showHeader&&this._element&&this._element.nativeElement&&((t=this._element.nativeElement.querySelector(".dataTable>thead"))&&t.classList.add("d-none"),e=this._element.nativeElement.querySelector(".dataTable"))&&e.classList.add("mt-2"),!this.showFooter&&this._element&&this._element.nativeElement&&(t=this._element.nativeElement.querySelector(".dataTables_info"))&&t.classList.add("d-none"),this.showPaging)&&(this.showPaging=!0)},g.prototype.ngAfterViewInit=function(){var e,t,n,a;if(this.headerTemplate){var r=this._viewContainerRef.createEmbeddedView(this.headerTemplate,{group:""});r.detectChanges();try{for(var o=w(r.rootNodes),s=o.next();!s.done;s=o.next()){var i=s.value;this.header&&this.header.nativeElement.appendChild(i)}}catch(d){e={error:d}}finally{try{s&&!s.done&&(t=o["return"])&&t.call(o)}finally{if(e)throw e.error}}}if(this.footerTemplate){r=this._viewContainerRef.createEmbeddedView(this.footerTemplate,{group:"",rows:[]});r.detectChanges();try{for(var l=w(r.rootNodes),c=l.next();!c.done;c=l.next()){i=c.value;this.footer&&this.footer.nativeElement.appendChild(i)}}catch(u){n={error:u}}finally{try{c&&!c.done&&(a=l["return"])&&a.call(l)}finally{if(n)throw n.error}}}},g.prototype.scrollTop=function(e){this.dataTable&&this.dataTable.parent().scrollTop(e)},g.prototype.scrollLeft=function(e){this.dataTable&&this.dataTable.parent().scrollLeft(e)},Object.defineProperty(g.prototype,"lastQuery",{get:function(){var t,n=this;if(null!=this.config&&null!=this.lastQueryParams)return t=this._context.model(this.config.model).asQueryable(),Object.keys(this.lastQueryParams).forEach(function(e){t.setParam(e,n.lastQueryParams&&n.lastQueryParams[e])}),t},enumerable:!0,configurable:!0}),g.prototype.fetchOne=function(n){var a=this;if(null!=n&&null!=this.dataTable&&null!=this.lastQueryParams){var e=Array.from(this.dataTable.rows().data());if(e&&e.length){var r=Object.keys(n);if(0===r.length)return;var o,s=e.findIndex(function(t){return 0===r.map(function(e){return t[e]===n[e]}).filter(function(e){return!1===e}).length});if(0<=s)return(o=this._context.model(this.config.model).asQueryable()).setParam("$select",this.lastQueryParams.$select),this.lastQueryParams.$expand&&o.setParam("$expand",this.lastQueryParams.$expand),r.forEach(function(t){var e=a.config.columns.find(function(e){return e.property===t||e.name===t});(e?(e=e.property||e.name,o.and(e)):o.and(t)).equal(n[t])}),o.getItem().then(function(e){var t=a.dataTable.row(s),n=S(t.node()).find(":checkbox").prop("checked");return e&&(t.data(e),S(t.node()).find(":checkbox").off("click").on("click",a.onSelectionChange.bind(a)),n)&&a.selectRow(t,!0),Promise.resolve()})}return Promise.resolve()}},g.prototype.ngOnDestroy=function(){this.reloadSubscription&&this.reloadSubscription.unsubscribe()},g.prototype.onSelectionChange=function(e){var t,n,a,e=e.target,r=/-(\d+)$/g.exec(e.id),r=parseInt(r&&r[1],10),r=this.dataTable.row(r).data();r&&(t=this.config.columns[0].property||"",n=r[t],a=this.selected.findIndex(function(e){return e[t]===n}),e.checked?a<0&&(this.selected.push(r),this.selectedItems.emit(this.selected)):0<=a&&(this.selected.splice(a,1),this.smartSelect)&&(a=this.unselected.findIndex(function(e){return e[t]===n}))<0&&(this.unselected.push(r),this.selectedItems.emit(this.selected)))},g.prototype.resetEmptyTable=function(){this.dataTable&&this.dataTable.context[0]&&(this.dataTable.context[0].oLanguage.sEmptyTable=this.dataTable.context[0].oLanguage.sZeroRecords=this.emptyTable&&this.emptyTable.nativeElement.innerHTML)},g.prototype.toggleError=function(e){var t,n;this.dataTable&&this.dataTable.context[0]&&(n=void 0,(t=this.errorTemplate&&this.errorTemplate.nativeElement)&&(n=t.getElementsByTagName("small").item(0)),e?(this.lastError=e,n&&(n.innerHTML=(e.error&&e.error.message?e.error:e).message),this.dataTable.context[0].oLanguage.sEmptyTable=this.dataTable.context[0].oLanguage.sZeroRecords=this.errorTemplate&&this.errorTemplate.nativeElement.innerHTML):(n&&(n.innerHTML=""),this.dataTable.context[0].oLanguage.sEmptyTable=this.dataTable.context[0].oLanguage.sZeroRecords=""))},g.prototype.clearEmptyTable=function(){this.dataTable&&this.dataTable.context[0]&&(this.dataTable.context[0].oLanguage.sEmptyTable=this.dataTable.context[0].oLanguage.sZeroRecords="")},g.prototype["export"]=function(){document.querySelector(".dt-buttons .buttons-excel").click()},g.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))})},g.prototype.getConfig=function(){return this.config},g.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.destroy(),t.fetch()})["catch"](function(e){console.error("TABLES","An error occurred while loading table configuration."),console.error(e)})},g.prototype.reset=function(e){this.query=undefined,this.destroy(),this.autoLoad=!!e,this.ngOnInit()},g.prototype.selectColumns=function(){var o=this,s=this.dataTable.colReorder.order(),e=this.dataTable.settings().init().columns.map(function(e,t){var n="column-"+t,e=e.title,a=s.indexOf(t),r=o.dataTable.column(a).visible();return{key:n,title:e=null==(e=null==(e=null!=(e=0===t&&o.selectable?"<"+o._translateService.instant("Tables.SelectColumn")+">":e)&&0===e.length?undefined:e)&&(n=void 0,o.selectable?0<t&&(n=o.config.columns[t-1].placeholder):n=o.config.columns[t].placeholder,null!=n)?"<"+o._translateService.instant(n)+">":e)?"<"+o._translateService.instant("Tables.UnknownColumn")+">":e,visible:r,index:a}});this._columnSelector.selectColumns(e).then(function(e){if("ok"===e.result){for(var t=e.columns.map(function(e){return{key:e.key,index:e.index}}).sort(function(e,t){return e.index-t.index}).map(function(t){return e.columns.findIndex(function(e){return t.key===e.key})}),n=0;n<e.columns.length;n++){var a=e.columns[n],r=s.indexOf(n);o.dataTable.column(r).visible(a.visible,!0)}o.dataTable.colReorder.order(t,!0),o.dataTable.draw()}})},g.prototype.exportView=function(s){return l(this,void 0,void 0,function(){var t,n,a,r,o;return T(this,function(e){switch(e.label){case 0:return(e.trys.push([0,4,5,6]),this._loading.showLoading(),this.lastQuery&&this._lastQueryTotalItems&&this.config)?(t=this._configuration.settings,t=t&&t.tables&&t.tables.exportLimit&&0<t.tables.exportLimit?t.tables.exportLimit:500,this._lastQueryTotalItems>t?(s&&s.errorHandler?s.errorHandler(new tt("Export limit exceeded")):this._modalService.showWarningDialog(this._translateService.instant("Tables.ExportList"),this._translateService.instant("Tables.ExportLimitExceeded",{dataLength:this._lastQueryTotalItems,exportLimit:t}),i.DIALOG_BUTTONS.Ok),[2]):Array.from(this.dataTable.context[0].aiDisplay).length!==this._lastQueryTotalItems?[3,1]:(r=this.getExportableData(),a=r.body,r=r.header,this._exportSpreadsheet["export"](a,this._translateService.instant(this.config.title||"Tables.ExportResults")+".xlsx",{header:r,skipHeader:!1}),[3,3])):[2];case 1:return n=this.dataTable.rows().data().toArray(),[4,this.lastQuery.take(t).getItems()];case 2:o=e.sent(),this.dataTable.clear().rows.add(o),o=this.getExportableData(),a=o.body,r=o.header,this.dataTable.clear().rows.add(n),this._exportSpreadsheet["export"](a,this._translateService.instant(this.config.title||"Tables.ExportResults")+".xlsx",{header:r,skipHeader:!1}),e.label=3;case 3:return[2];case 4:return o=e.sent(),console.error(o),s&&s.errorHandler?s.errorHandler(o):this._errorService.showError(o,{continueLink:"."}),[3,6];case 5:return this._loading.hideLoading(),[7];case 6:return[2]}})})},g.prototype.getExportableData=function(){var n,e,t,a=this;return this.dataTable&&this.dataTable.buttons&&"function"==typeof this.dataTable.buttons.exportData&&this.config?(t=(e=this.dataTable.buttons.exportData()).body,e=e.header,n=[],e=e.filter(function(e,t){return 0!==e.trim().length&&!!a.dataTable.column(t).visible()||(n.push(t),!1)}),{body:t=t.map(function(e){return e.filter(function(e,t){return-1===n.indexOf(t)})}),header:e}):{body:[],header:[]}},g.decorators=[{type:v.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 <div #errorTemplate class="d-none error-message">\n <div class="text-center">\n <div class="mt-4">\n <div class="icon-circle bg-danger border-gray-100"></div>\n </div>\n <div class="mt-4">\n <h4 class="font-3xl text-secondary" [translate]="\'Tables.DataError.Title\'"></h4>\n <p class="font-lg text-secondary mb-1" [translate]="\'Tables.DataError.Message\'"></p>\n <p class="font-lg text-secondary error-inner-message">\n <small></small>\n </p>\n </div>\n </div>\n </div>\n ',encapsulation:v.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 tbody tr.dtrg-group.dtrg-start th{border:2px solid #c2cfd6;border-bottom:1px solid #c2cfd6;color:#3e515b;background-color:#f0f3f5}table.dataTable tbody tr.dtrg-group.dtrg-end th{border-top:2px solid #c2cfd6;border-right:2px solid #c2cfd6;border-left:2px solid #c2cfd6;color:#3e515b;background-color:#f0f3f5}table.dataTable tbody tr:nth-last-child(1) th{border-bottom:2px solid #c2cfd6}table.dataTable td.dataTables_empty{border:none!important}table.dataTable .error-inner-message>small{overflow-wrap:break-word}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}"]}]}],g.ctorParameters=function(){return[{type:t.AngularDataContext},{type:undefined,decorators:[{type:v.Inject,args:[et]}]},{type:d.ActivatedRoute},{type:b.TranslateService},{type:v.Injector},{type:$e},{type:v.ElementRef},{type:i.TemplatePipe},{type:i.LoadingService},{type:W.HttpClient},{type:Ge},{type:i.ConfigurationService},{type:i.ExportSpreadsheetService},{type:i.ModalService},{type:i.ErrorService},{type:v.ViewContainerRef}]},g.propDecorators={table:[{type:v.ViewChild,args:["table"]}],emptyTable:[{type:v.ViewChild,args:["emptyTable"]}],errorTemplate:[{type:v.ViewChild,args:["errorTemplate"]}],loadingTable:[{type:v.ViewChild,args:["loadingTable"]}],height:[{type:v.Input}],showActions:[{type:v.Input}],autoLoad:[{type:v.Input}],load:[{type:v.Output,args:["load"]}],init:[{type:v.Output,args:["init"]}],reload:[{type:v.Input,args:["reload"]}],select:[{type:v.Output,args:["select"]}],draw:[{type:v.Output,args:["draw"]}],page:[{type:v.Output,args:["page"]}],order:[{type:v.Output,args:["order"]}],scroll:[{type:v.Output,args:["scroll"]}],selectedItems:[{type:v.Output,args:["selectedItems"]}],loading:[{type:v.Output,args:["loading"]}],scrollable:[{type:v.Input}],serverSide:[{type:v.Input}],lengthMenu:[{type:v.Input}],paging:[{type:v.Input}],pageLength:[{type:v.Input}],columnOrdering:[{type:v.Input}],stateSave:[{type:v.Input}],stateLoadCallback:[{type:v.Input}],stateSaveCallback:[{type:v.Input}],scrollY:[{type:v.Input}],scrollX:[{type:v.Input}],selectable:[{type:v.Input}],multipleSelect:[{type:v.Input}],customSelect:[{type:v.Input}],selected:[{type:v.Input}],configSrc:[{type:v.Input}],rowGroup:[{type:v.Input}],headerTemplate:[{type:v.Input}],footerTemplate:[{type:v.Input}],header:[{type:v.ViewChild,args:["header"]}],footer:[{type:v.ViewChild,args:["footer"]}],config:[{type:v.Input,args:["config"]}],showFooter:[{type:v.Input,args:["showFooter"]}],showHeader:[{type:v.Input,args:["showHeader"]}],showPaging:[{type:v.Input,args:["showPaging"]}],query:[{type:v.Input,args:["query"]}]};var lt=g;function g(e,t,n,a,r,o,s,i,l,c,d,u,p,h,m,f){var g=this;this._context=e,this._columnFormatters=t,this._activatedRoute=n,this._translateService=a,this._injector=r,this._advancedFilterValueProvider=o,this._element=s,this._template=i,this._loading=l,this._http=c,this._columnSelector=d,this._configuration=u,this._exportSpreadsheet=p,this._modalService=h,this._errorService=m,this._viewContainerRef=f,this._firstLoad=!0,this._showFooter=!1,this._showHeader=!0,this._showPaging=!1,this._id=Number(String(Math.random()).slice(2)).toString(36),this.smartSelect=!1,this.configChanges=new V.BehaviorSubject(null),this.height=800,this.showActions=!0,this.autoLoad=!0,this.load=new v.EventEmitter,this.init=new v.EventEmitter,this.reload=new v.EventEmitter,this.select=new v.EventEmitter,this.draw=new v.EventEmitter,this.page=new v.EventEmitter,this.order=new v.EventEmitter,this.scroll=new v.EventEmitter,this.selectedItems=new v.EventEmitter,this.loading=new v.EventEmitter,this.scrollable=!0,this.serverSide=!0,this.lengthMenu=[50,100,200,500],this.paging=!0,this.pageLength=25,this.columnOrdering=!1,this.stateSave=!1,this.scrollY=800,this.scrollX=!0,this.selectable=!1,this.multipleSelect=!0,this.customSelect=!1,this.selected=[],this.unselected=[],this.rowGroup=[],this._lastQueryTotalItems=0,this.translator=new b.TranslatePipe(this._translateService,new Je),S.fn.dataTable.ext.classes.sPageButton="btn",S.fn.dataTable.ext.classes.sPageButtonActive="btn btn-light",this.reloadSubscription=this.reload.subscribe(function(e){g.fetch()})}C.prototype.ngOnDestroy=function(){this.dataSubscription&&this.dataSubscription.unsubscribe(),this.reloadSubscription&&this.reloadSubscription.unsubscribe(),this.subscription&&this.subscription.unsubscribe()},C.prototype.ngOnInit=function(){return l(this,void 0,void 0,function(){var o,s,t,i=this;return T(this,function(e){switch(e.label){case 0:return(e.trys.push([0,2,,3]),null==this.table)?[2]:(o=this.table,[4,this._context.getMetadata()]);case 1:return s=e.sent(),this.dataSubscription=this._activatedRoute.data.subscribe(function(e){var t=new RegExp("^"+e.model+"$","ig"),n=s.EntityContainer.EntitySet.find(function(e){return t.test(e.Name)});if(null==n)return i._errorService.navigateToError(new U.ResponseError("EntitySet Not Found",404));if(null==s.EntityType.find(function(e){return e.Name===n.EntityType}))return i._errorService.navigateToError(new U.ResponseError("EntityType Not Found",404));e.searchConfiguration&&(Object.prototype.hasOwnProperty.call(e.searchConfiguration,"allowSave")&&(i.allowSaveOption=e.searchConfiguration.allowSave),i.searchConfiguration=e.searchConfiguration),e.tableConfiguration&&(i.tableConfiguration=e.tableConfiguration),e.description&&(i.description=i._translateService.instant(e.description)),e.longDescription&&(i.longDescription=i._translateService.instant(e.longDescription)),e.category&&(i.category=i._translateService.instant(e.category)),Object.prototype.hasOwnProperty.call(e,"readonly")&&(i.readonly=e.readonly);var a,e=st.cast(i.tableConfiguration,!0),r=e.columns.find(function(e){return"ButtonFormatter"===e.formatter&&"(modal:edit)"===e.formatString}),r=(r&&(a=[],i._activatedRoute.snapshot.pathFromRoot.forEach(function(e){a.push.apply(a,e.url)}),r.formatString="#/"+a.join("/")+"/(modal:${id}/edit)"),Object.assign({model:n.Name},e));Object.prototype.hasOwnProperty.call(r,"selectable")&&(r.selectable=!i.readonly),o.config=r,o.fetch(!0),i.reloadSubscription=i._activatedRoute.fragment.subscribe(function(e){e&&"reload"===e&&(i._toastService.show(i.description,i._translateService.instant("Settings.OperationCompleted")),o.fetch(!0))}),i._userActivityService.setItem({category:i.category,description:i.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]}})})},C.prototype.onDataLoad=function(e){this.recordsTotal=e.recordsTotal},C.prototype.remove=function(){var t,n=this,a=this.table;if(a&&a.selected&&a.selected.length)return t=a.selected,this._modalService.showWarningDialog(this._translateService.instant("Tables.RemoveItemsTitle"),this._translateService.instant("Tables.RemoveItemsMessage"),i.DIALOG_BUTTONS.OkCancel).then(function(e){"ok"===e&&n._context.model(a.config.model).remove(t).then(function(){n._toastService.show(n.description+":"+n._translateService.instant("Tables.RemoveItemMessage.title"),n._translateService.instant(1===t.length?"Tables.RemoveItemMessage.one":"Tables.RemoveItemMessage.many",{value:t.length})),a.fetch(!0)})["catch"](function(e){n._errorService.showError(e,{continueLink:"."})})})},C.decorators=[{type:v.Component,args:[{selector:"app-advanced-list",template:'<div>\n <div class="row" *ngIf="description">\n <div class="col-auto">\n <h2>{{description}}</h2>\n <ng-container *ngIf="longDescription">\n <p [innerHTML]="longDescription"></p>\n </ng-container>\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>&nbsp;</span><span [translate]="\'Tables.Items\'"></span>\n </div>\n <div class="font-xl text-secondary" *ngIf="recordsTotal === 1">\n <span>{{recordsTotal}}</span><span>&nbsp;</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="readonly === false && table.selected && table.selected.length"\n class="text-danger text-decoration-none mr-2" href="javascript:void(0)" (click)="remove()">\n <span>-</span><span>&nbsp;</span><span [translate]="\'Tables.RemoveItem\'"></span>\n </a>\n <a *ngIf="readonly === false" class="text-indigo text-decoration-none" [routerLink]="[\'.\', { outlets:{ modal:\'add\'} }]">\n <span>+</span><span>&nbsp;</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 [showFooter]="false"\n (load)="onDataLoad($event)" [height]="600"></app-advanced-table>\n </div>\n </div>\n <router-modal></router-modal>\n</div>\n'}]}],C.ctorParameters=function(){return[{type:t.AngularDataContext},{type:b.TranslateService},{type:d.ActivatedRoute},{type:i.ErrorService},{type:i.ToastService},{type:i.ModalService},{type:i.UserActivityService}]},C.propDecorators={entitySet:[{type:v.Input,args:["entitySet"]}],category:[{type:v.Input,args:["category"]}],description:[{type:v.Input,args:["description"]}],longDescription:[{type:v.Input,args:["longDescription"]}],tableConfiguration:[{type:v.Input,args:["tableConfiguration"]}],searchConfiguration:[{type:v.Input,args:["searchConfiguration"]}],table:[{type:v.ViewChild,args:["table"]}],allowSaveOption:[{type:v.Input,args:["allowSaveOption"]}],readonly:[{type:v.Input,args:["readonly"]}]};$=C;function C(e,t,n,a,r,o,s){this._context=e,this._translateService=t,this._activatedRoute=n,this._errorService=a,this._toastService=r,this._modalService=o,this._userActivityService=s,this.recordsTotal=NaN,this.allowSaveOption=!0,this.readonly=!1}n(x,ct=B.RouterModalOkCancel),Object.defineProperty(x.prototype,"form",{get:function(){return this.formComponent},enumerable:!0,configurable:!0}),x.prototype.ngOnInit=function(){var n=this;this.refreshSubscription=this.refresh.subscribe(function(e){var t;null!=n.progressComponent&&e&&e.progress&&(t=e.progress<(t=0)?0:100<e.progress?100:e.progress,n.progressComponent.value=t,n.showProgress())})},x.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)}))},x.prototype.ngOnDestroy=function(){this.refreshSubscription&&this.refreshSubscription.unsubscribe(),this.executeSubscription&&this.executeSubscription.unsubscribe(),this.invalidSubscription&&this.invalidSubscription.unsubscribe()},x.prototype.cancel=function(){return!this.loading&&this._modalService.modalRef?this._modalService.modalRef.hide():Promise.resolve()},x.prototype.ok=function(){return l(this,void 0,void 0,function(){var n=this;return T(this,function(e){try{if(null==this.execute)return[2];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){n.loading=!1,n.refresh.emit({progress:100}),e&&e.errors&&0<e.errors?(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)),n.refresh.emit({progress:1}),n.hideProgress()):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]})})},x.prototype.showProgress=function(){this.progressContainer&&this.progressContainer.nativeElement.classList.replace("invisible","visible")},x.prototype.hideProgress=function(){this.progressContainer&&this.progressContainer.nativeElement.classList.replace("visible","invisible")},x.decorators=[{type:v.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">&times;</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 invisible" #progressContainer>\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:v.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 "]}]}],x.ctorParameters=function(){return[{type:d.Router},{type:d.ActivatedRoute},{type:b.TranslateService},{type:i.ModalService}]},x.propDecorators={items:[{type:v.Input}],modalIcon:[{type:v.Input}],description:[{type:v.Input}],formTemplate:[{type:v.Input}],progressType:[{type:v.Input}],data:[{type:v.Output}],additionalMessage:[{type:v.Input}],errorMessage:[{type:v.Input}],progressComponent:[{type:v.ViewChild,args:["progress"]}],progressContainer:[{type:v.ViewChild,args:["progressContainer"]}],formComponent:[{type:v.ViewChild,args:["formComponent"]}],refresh:[{type:v.Input}],execute:[{type:v.Input}]};var ct,dt=x;function x(e,t,n,a){e=ct.call(this,e,t)||this;return e._translateService=n,e._modalService=a,e.modalIcon="fas fa-project-diagram",e.progressType="indigo",e.errorMessage="Tables.Actions.CompletedWithErrors",e.loading=!1,e.refresh=new v.EventEmitter,e.modalClass="modal-lg",e.modalTitle="Tables.Actions.Label",e.okButtonDisabled=!1,e.okButtonText="Tables.Actions.Start",e}Object.defineProperty(pt.prototype,"filter",{get:function(){return this._filter},set:function(e){this._filter=e},enumerable:!0,configurable:!0}),pt.prototype.onKeyEnter=function(e){"Enter"===e.code&&this.filterChange.emit(this._filter)},pt.decorators=[{type:v.Component,args:[{template:""}]}],pt.propDecorators={filterChange:[{type:v.Output}],filter:[{type:v.Input}]};var ut=pt;function pt(){this.filterChange=new v.EventEmitter}n(_,ht=ut),_.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}))},_.prototype.ngOnInit=function(){var t=this;this.form&&(new z.ServiceUrlPreProcessor(this._context).parse(this.form),new z.TranslatePreProcessor(this._translateService).parse(this.form),this.submission={data:this.filter},this.loading.emit({target:this}),this.refreshForm.emit({form:this.form}),this.componentLoading=!1,this.filterSubscription=this.filterChange.subscribe(function(e){t.submission.data=e,t.refreshForm.emit({submission:t.submission})}))},_.prototype.onChange=function(e){var r,o=this;null!=this.formComponent&&(r=this.formComponent,Object.keys(r.submission.data).forEach(function(e){var t,n,a;Object.prototype.hasOwnProperty.call(r.submission.data,e)&&(n="string"==typeof(t=r.submission.data[e])&&0===t.length,a="object"==typeof t&&0===Object.keys(t).length,n||a?delete o.filter[e]:Object.defineProperty(o.filter,e,{configurable:!0,enumerable:!0,value:t}))}))},_.prototype.onFormLoad=function(e){var t;null!=this.formComponent&&(t=this._translateService.currentLang,this.formComponent.formio.i18next.options.resources[t]={translation:this._translateService.instant("Forms")},this.formComponent.formio.language=t)},_.prototype.ngAfterViewInit=function(){},_.prototype.ngOnDestroy=function(){this.filterSubscription&&this.filterSubscription.unsubscribe()},_.decorators=[{type:v.Component,args:[{selector:"app-advanced-search-form",template:'\n <div class="p-4">\n <formio #formioComponent class="formio-search"\n (keydown)="onKeyEnter($event)" (change)="onChange($event)" (formLoad)="onFormLoad($event)"\n [refresh]="refreshForm" [submission]="submission" [form]="form"></formio>\n </div>\n ',encapsulation:v.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}"]}]}],_.ctorParameters=function(){return[{type:t.AngularDataContext},{type:b.TranslateService},{type:d.ActivatedRoute},{type:W.HttpClient}]},_.propDecorators={formComponent:[{type:v.ViewChild,args:["formioComponent"]}],form:[{type:v.Input}],formSrc:[{type:v.Input}],refreshForm:[{type:v.Output}],loading:[{type:v.Output}]};var ht,mt=_;function _(e,t,n,a){var r=ht.call(this)||this;return r._context=e,r._translateService=t,r._activatedRoute=n,r._http=a,r.form={},r.refreshForm=new v.EventEmitter,r.loading=new v.EventEmitter,r.submission={data:{}},r.componentLoading=!0,r}var ft,gt='\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" #searchElement\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" (click)="onSearch()">\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 d-none">\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()"\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',bt=(n(I,ft=B.RouterModalOkCancel),I.prototype.ngAfterViewInit=function(){var e=this;setTimeout(function(){e.searchElement&&e.searchElement.nativeElement&&e.searchElement.nativeElement.focus()},0)},I.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())},I.prototype.hasInputs=function(){return[]},I.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.advancedTable&&(n.configChangesSubscription=n.advancedTable.configChanges.subscribe(function(e){n.tableConfig&&(n.defaultFilter=I.DEFAULT_ALL_FILTER,n.defaultFilters=[I.DEFAULT_ALL_FILTER],n.defaultFilters.push.apply(n.defaultFilters,n.tableConfig.searches))}))})},I.prototype.cancel=function(){return this.close()},I.prototype.ok=function(){return this.close()},I.prototype.ngOnDestroy=function(){this.subscription&&this.subscription.unsubscribe()},I.prototype.onDataLoad=function(e){this.recordsTotal=e.recordsTotal,this.recordsFiltered=e.recordsFiltered,0<e.recordsTotal&&0===this.pageInfo.recordsTotal&&(this.pageInfo.recordsTotal=e.recordsTotal)},I.prototype.previousPage=function(){this.advancedTable&&this.advancedTable.dataTable.page("previous").draw("page")},I.prototype.nextPage=function(){this.advancedTable&&this.advancedTable.dataTable.page("next").draw("page")},I.prototype.onTableInit=function(){var t=this,n=t.advancedTable&&t.advancedTable.dataTable,e=n.page.info();e.start+=1,t.pageInfo=e,n.context[0].oLanguage.sEmptyTable=this.emptyTable&&this.emptyTable.nativeElement.innerHTML,n.on("page.dt",function(){var e=n.page.info();e.start+=1,t.pageInfo=e}),n.on("draw.dt",function(){t.loading=!1;var e=n.page.info();e.start+=1,t.pageInfo=e})},I.prototype.firstPage=function(){this.advancedTable&&this.advancedTable.dataTable.page("first").draw("page")},I.prototype.lastPage=function(){this.advancedTable&&this.advancedTable.dataTable.page("last").draw("page")},I.prototype.setLength=function(e){this.advancedTable&&(this.pageLength=e,this.advancedTable.dataTable.page.len(e).draw())},I.prototype.onKeyUp=function(e){"Enter"!==e.key&&"Return"!==e.key||this.advancedTable&&(this.loading=!0,this.advancedTable.search(e.target.value))},I.prototype.onSearch=function(){this.advancedTable&&(this.loading=!0,this.advancedTable.search(this.searchText))},I.prototype.getFilters=function(e,t,n){var a,r,o;return void 0===t&&(t={}),!e||!Array.isArray(e.criteria)||null==n.filter||null==(e=e.criteria.find(function(e){return Object.prototype.hasOwnProperty.call(n.filter,e.name)}))?[]:(a=n.filter[e.name],[(r=null!==e.name?e.name.toString():"").includes("GMT")?(o=this.datePipe.transform(r,"MM/dd/yyyy"),this._template.transform(e.filter,{value:o})):"undefined"!==r?this._template.transform(e.filter,Object.assign({value:a},t)):""])},I.prototype.onFilterSelect=function(e){this.advancedSearch(e)},I.prototype.advancedSearch=function(o){return l(this,void 0,void 0,function(){var t,n,a,r;return T(this,function(e){switch(e.label){case 0:if(!this.tableConfig||!Array.isArray(this.tableConfig.criteria)||!this.advancedTable)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=I.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]}})})},I.DEFAULT_ALL_FILTER={name:"Tables.All",filter:null},I.decorators=[{type:v.Component,args:[{selector:"app-advanced-table-modal",template:gt,styles:["\n\n "]}]}],I.ctorParameters=function(){return[{type:d.Router},{type:d.ActivatedRoute},{type:t.AngularDataContext},{type:$e},{type:r.DatePipe}]},I.propDecorators={advancedTable:[{type:v.ViewChild,args:["advancedTable"]}],emptyTable:[{type:v.ViewChild,args:["emptyTable"]}],dropdownFilter:[{type:v.ViewChild,args:["dropdownFilter"]}],dropdownLength:[{type:v.ViewChild,args:["dropdownLength"]}],searchElement:[{type:v.ViewChild,args:["searchElement"]}],tableConfig:[{type:v.Input,args:["tableConfig"]}],tableConfigSrc:[{type:v.Input,args:["tableConfigSrc"]}],pageLength:[{type:v.Input,args:["pageLength"]}],searchText:[{type:v.Input,args:["searchText"]}],lengthMenu:[{type:v.Input,args:["lengthMenu"]}],defaultFilter:[{type:v.Input,args:["defaultFilter"]}]},I);function I(e,t,n,a,r){e=ft.call(this,e,t)||this;return e._context=n,e.advancedFilterValueProvider=a,e.datePipe=r,e.pageLength=25,e.lengthMenu=[5,10,25,50,100],e.recordsTotal=0,e.loading=!1,e.recordsFiltered=0,e.defaultFilters=[I.DEFAULT_ALL_FILTER],e.defaultFilter=I.DEFAULT_ALL_FILTER,e.pageInfo={serverSide:!0},e.modalClass="modal-xl modal-table",e._template=new i.TemplatePipe,e}n(A,vt=bt),A.prototype.ngAfterViewInit=function(){var e=this;vt.prototype.ngAfterViewInit.call(this),setTimeout(function(){e.searchElement&&e.searchElement.nativeElement&&e.searchElement.nativeElement.focus()},0)},A.prototype.ok=function(){return l(this,void 0,void 0,function(){return T(this,function(e){return this._modalRef.hide(),this.dismiss.emit("ok"),[2]})})},A.prototype.cancel=function(){return l(this,void 0,void 0,function(){return T(this,function(e){return this._modalRef.hide(),this.dismiss.emit("cancel"),[2]})})},A.decorators=[{type:v.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">&times;</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" #searchElement (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" (click)="onSearch()">\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 d-none">\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()" (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:v.ViewEncapsulation.None,styles:["\n .modal-table .dataTables_wrapper {\n height: 50vh;\n overflow-y: auto;\n }\n "]}]}],A.ctorParameters=function(){return[{type:d.Router},{type:d.ActivatedRoute},{type:t.AngularDataContext},{type:$e},{type:r.DatePipe},{type:N.BsModalRef},{type:v.ElementRef}]},A.propDecorators={searchElement:[{type:v.ViewChild,args:["searchElement"]}]};var vt,yt=A;function A(e,t,n,a,r,o,s){e=vt.call(this,e,t,n,a,r)||this;return e._modalRef=o,e.el=s,e.dismiss=new v.EventEmitter,e}wt.prototype.select=function(r){var o=this;return new Promise(function(t,e){try{var n=o._modal.openModalComponent(yt,{"class":"modal-xl modal-table",ignoreBackdropClick:!0,animated:!0,initialState:r}).content;n.dismiss.subscribe(function(e){return t({result:e,items:n.advancedTable&&n.advancedTable.selected})})}catch(a){return e(a)}})},wt.decorators=[{type:v.Injectable}],wt.ctorParameters=function(){return[{type:i.ModalService}]};var Tt=wt;function wt(e){this._modal=e}Ct.prototype.resolve=function(e,t){var n=e.data.list||e.params.list,e=e.data.model||e.params.model;return this._http.get("assets/lists/"+e+"/"+n+".json").toPromise()},Ct.decorators=[{type:v.Injectable}],Ct.ctorParameters=function(){return[{type:W.HttpClient}]};var St=Ct;function Ct(e){this._http=e}_t.prototype.resolve=function(e,t){var n=e.data.list||e.params.list,e=e.data.model||e.params.model;return this._http.get("assets/lists/"+e+"/search."+n+".json").toPromise()},_t.decorators=[{type:v.Injectable}],_t.ctorParameters=function(){return[{type:W.HttpClient}]};var xt=_t;function _t(e){this._http=e}E.prototype.ngOnInit=function(){},E.prototype.ngAfterViewInit=function(){var t=this;this.activeTableConfig=this._activatedTable.activeTable&&this._activatedTable.activeTable.getConfig(),this.storageKey="registrar/settings/"+this.activeTableConfig.title+"/table/columns",this.form=this.formBuilder.group({columns:new o.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 n=this;this.tableColumns=this.activeTableConfig.columns.slice(1),this.tableColumns.forEach(function(e,t){e.hidden||(e={id:e.name,name:e.title},n.columns.push(e))}),this.savedTableSettings&&(this.columns.forEach(function(e,t){e.check=!1,e.check=n.savedTableSettings.includes(e.id)}),this.columns.map(function(e,t){e=new o.FormControl(e.check);n.form&&n.form.controls.columns.push(e)}))},E.prototype.openTableSettings=function(e){this.modalRef=this.modalService.show(e)},E.prototype.saveTableSettings=function(){var e,n=this;null!=this.form&&(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)&&this.modalRef.hide()},E.prototype.dismiss=function(){this.modalRef&&this.modalRef.hide()},E.prototype.minSelectedColumns=function(t){void 0===t&&(t=1);return function(e){e=e.controls.map(function(e){return e.value}).reduce(function(e,t){return t?e+t:e},0);return t<=e?null:{required:!0}}},E.decorators=[{type:v.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">&times;</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:v.ViewEncapsulation.None}]}],E.ctorParameters=function(){return[{type:t.AngularDataContext},{type:d.ActivatedRoute},{type:N.BsModalService},{type:i.UserStorageService},{type:o.FormBuilder},{type:Ye}]},E.propDecorators={table:[{type:v.Input}],modal_settings_template:[{type:v.ViewChild,args:["modal_settings_template"]}]};var It=E;function E(e,t,n,a,r,o){this._context=e,this._activatedRoute=t,this.modalService=n,this.userStorage=a,this.formBuilder=r,this._activatedTable=o,this.params=this._activatedRoute.params,this.columns=[]}n(O,At=ut),Object.defineProperty(O.prototype,"text",{get:function(){return this.searchText&&this.searchText.nativeElement&&this.searchText.nativeElement.value},set:function(e){this.searchText&&(this.searchText.nativeElement.value=e)},enumerable:!0,configurable:!0}),O.prototype.ngOnInit=function(){var t=this;null!=this.table&&(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)}))})}))},O.prototype.applyQueryParams=function(t){var n=this;if(null!=this.table){var a=this.table;if(this.filter={},Object.prototype.hasOwnProperty.call(t,"q"))return this.collapsed=!0,this.text=t.q,a.search(this.text);this.text="";var r=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)&&(r=this.selectedList.filter)):this.selectedList=null,Object.keys(r).filter(function(t){if(a.config&&a.config.criteria)return a.config.criteria.find(function(e){return e.name===t})}).forEach(function(e){var t=r[e];U.TextUtils.isNumber(t)&&(t=parseFloat(r[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){null==a.query?a.query=e:null!=e&&e.getParams().$filter?(e=e.getParams(),a.query.setParam("$filter",e.$filter)):a.query.setParam("$filter",null),a.fetch(!0)})}},O.prototype.ngOnDestroy=function(){this.queryParamSubscription&&this.queryParamSubscription.unsubscribe(),this.configChangesSubscription&&this.configChangesSubscription.unsubscribe()},O.prototype.ngAfterViewInit=function(){},O.prototype.onSearchKeyDown=function(e){var t;if(this.table&&13===e.keyCode)return e=e.target.value,this.mergeQueryParams?(t={q:e},this.table.config&&this.table.config.criteria&&this.table.config.criteria.forEach(function(e){Object.defineProperty(t,e.name,{configurable:!0,enumerable:!0,writable:!0,value:null})}),this._router.navigate([],{relativeTo:this._activatedRoute,queryParams:t,queryParamsHandling:"merge"})):(this.filterChange.emit({q:e}),this.table.search(e),!1)},O.prototype.transformDate=function(e){return e=this.datePipe.transform(e,"MM/dd/yyyy")},O.prototype.convertToString=function(e){var t="";return t=null!=e?e.toString():t},O.prototype.loadUserSearchList=function(){var t=this;return null==this.table?Promise.resolve():(this.storageKey="tables/"+this.table.config.model+"/searches",this._userStorage.getItem(this.storageKey).then(function(e){e=e.value||[];return t.table&&t.table.config.searches&&t.table.config.searches.length&&e.push.apply(e,t.table.config.searches.map(function(e){return e.readOnly=!0,e.name=t._translate.instant(e.name),e})),t.userSearchList=e,Promise.resolve()})["catch"](function(e){return console.error("An error occurred while getting user search list"),console.error(e),Promise.resolve()}))},O.prototype.onSelectUserSearch=function(e){var t,n;return this.selectedList&&this.table?!!(t=this.searchInListByName(this.selectedList.name))&&(this.mergeQueryParams?(n={q:null,s:this.selectedList.name},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"})):(this.selectedList=t,this.filter=this.selectedList.filter,this.filterChange.emit(this.filter),!0)):this._router.navigate([],{relativeTo:this._activatedRoute,queryParams:{s:null},queryParamsHandling:"merge"})},O.prototype.searchInListByName=function(t){if(Array.isArray(this.userSearchList))return this.userSearchList.find(function(e){return e.name===t})||!1},O.prototype.updateSavedSearchListItemByName=function(t,e){var n=this.userSearchList.find(function(e){return e.name===t}),n=this.userSearchList.indexOf(n);this.userSearchList[n]=e,this.selectedList=this.userSearchList[n]},O.prototype.updateSavedSearchListItemByObject=function(e,t){e=this.userSearchList.indexOf(e);this.userSearchList[e]=t,this.selectedList=this.userSearchList[e]},O.prototype.deleteItemFromSavedSearchListByObject=function(t){this.userSearchList=this.userSearchList.filter(function(e){return e!==t}),this.selectedList=null,this.filter={},this.advancedSearch(!0),this.uploadListOnUserStorage()},O.prototype.saveSearch=function(e,t){void 0===t&&(t=!0),this.table&&this.table.config.model?(this.storageKey="tables/"+this.table.config.model+"/searches",this.filter&&Object.keys(this.filter).length?!t&&this.selectedList?(t={name:this.selectedList.name,filter:y({},this.filter)},this.updateSavedSearchListItemByObject(this.selectedList,t),this.uploadListOnUserStorage()):this.modalRef=this._modalService.show(e):this._modal.showWarningDialog(this._translate.instant("AdvancedSearch.Modal.Title"),this._translate.instant("AdvancedSearch.Modal.EmptyCriteriaList"),i.DIALOG_BUTTONS.Ok)):this._modal.showWarningDialog(this._translate.instant("AdvancedSearch.Modal.Title"),this._translate.instant("AdvancedSearch.Modal.NoListDefined"),i.DIALOG_BUTTONS.Ok)},O.prototype.confirmModal=function(e){var t;e&&!this.searchInListByName(e)?(t={name:e,filter:y({},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&&this.modalRef.hide()):e&&this.searchInListByName(e)?alert(this._translate.instant("AdvancedSearch.Modal.TitleOnListAlreadyCreated")):alert(this._translate.instant("AdvancedSearch.Modal.TitleOnUserError"))},O.prototype.closeModal=function(){this.modalRef&&this.modalRef.hide()},O.prototype.uploadListOnUserStorage=function(){this._userStorage.setItem(this.storageKey,this.userSearchList.filter(function(e){return!e.readOnly}))},O.prototype.asyncAdvancedSearch=function(e){return l(this,void 0,void 0,function(){var t,n;return T(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&&t&&t.getParams().$filter?this.table.query.setParam("$filter",t.getParams().$filter):this.table.query=t,this.filterChange.emit(this.filter),this.table.fetch(),e.label=2;case 2:return[2]}})})},O.prototype.search=function(){return this.asyncAdvancedSearch().then(function(){})},O.prototype.getQuery=function(){return l(this,void 0,void 0,function(){var n,a,t,r=this;return T(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){var t;Object.prototype.hasOwnProperty.call(r.filter,e.name)&&(r.convertToString(r.filter[e.name]).includes("GMT")?(t=r.transformDate(r.filter[e.name]),n.push(r._template.transform(e.filter,{value:t}))):"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]}})})},O.prototype.advancedSearch=function(e){return this.asyncAdvancedSearch(e)},O.prototype.clear=function(){var t;if(this.mergeQueryParams&&this.table)return t={q:this.selectedList=null,s:null},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(O.prototype,"viewState",{get:function(){return{advancedView:!this.collapsed}},enumerable:!0,configurable:!0}),O.prototype.toggleView=function(){return l(this,void 0,void 0,function(){return T(this,function(e){return this.collapsed=!this.collapsed,this.viewChange.emit(this.viewState),[2]})})},O.decorators=[{type:v.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 && modalRef.hide()">\n <span aria-hidden="true">&times;</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:v.ViewEncapsulation.None}]}],O.ctorParameters=function(){return[{type:t.AngularDataContext},{type:d.ActivatedRoute},{type:r.DatePipe},{type:N.BsModalService},{type:i.UserStorageService},{type:b.TranslateService},{type:$e},{type:i.TemplatePipe},{type:d.Router},{type:i.ModalService}]},O.propDecorators={table:[{type:v.Input}],collapsed:[{type:v.Input}],allowSave:[{type:v.Input}],showMore:[{type:v.Input}],mergeQueryParams:[{type:v.Input}],searchText:[{type:v.ViewChild,args:["searchText"]}],viewChange:[{type:v.Output,args:["viewChange"]}],listChange:[{type:v.Output,args:["listChange"]}]};var At,Et=O;function O(e,t,n,a,r,o,s,i,l,c){var d=At.call(this)||this;return d._context=e,d._activatedRoute=t,d.datePipe=n,d._modalService=a,d._userStorage=r,d._translate=o,d._advancedSearchValueProvider=s,d._template=i,d._router=l,d._modal=c,d.collapsed=!0,d.allowSave=!0,d.showMore=!0,d.mergeQueryParams=!1,d.viewChange=new v.EventEmitter,d.listChange=new v.EventEmitter,d.userSearchList=[],d.selectedList=null,d}var Ot={ActionLinkFormatter:new me,ButtonFormatter:new le,DateTimeFormatter:new De,LanguageFormatter:new qe,LinkFormatter:new ue,NestedPropertyFormatter:new oe,NgClassFormatter:new Be,SelectRowFormatter:new Ce,TemplateFormatter:new Ie,TranslationFormatter:new Le,TrueFalseFormatter:new Oe,ActionButtonFormatter:new be,ActionSplitButtonFormatter:new Te},Pt=(kt.decorators=[{type:v.Component,args:[{selector:"table-simple-header-tools",template:"\n <ng-content></ng-content>\n "}]}],kt);function kt(){}P.prototype.ngOnChanges=function(e){var t=this;e.table&&(null==e.table.currentValue&&this.dataLoadSubscription?this.dataLoadSubscription.unsubscribe():e.table.currentValue!=e.table.previousValue&&(this.dataLoadSubscription=e.table.currentValue.load.subscribe(function(e){t.recordsTotal=e.recordsTotal})))},P.prototype.ngOnDestroy=function(){this.dataLoadSubscription&&this.dataLoadSubscription.unsubscribe()},P.prototype.ngOnInit=function(){},P.decorators=[{type:v.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>&nbsp;</span>\n </div>\n <div class="font-xl text-secondary" *ngIf="recordsTotal && recordsTotal > 1">\n <span>{{recordsTotal}}</span><span>&nbsp;</span><span [translate]="\'Tables.Items\'"></span>\n </div>\n <div class="font-xl text-secondary" *ngIf="recordsTotal === 1">\n <span>{{recordsTotal}}</span><span>&nbsp;</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'}]}],P.ctorParameters=function(){return[]},P.propDecorators={table:[{type:v.Input}]};var Lt=P;function P(){}n(Dt,jt=Error);var jt,Rt=Dt;function Dt(){return jt.call(this,"Advanced table component cannot be empty at this context.")||this}k.prototype.add=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(null==this.table)throw new Rt;var n=this.table.config.columns[0].property||this.table.config.columns[0].name||"";try{for(var a=w(e),r=a.next();!r.done;r=a.next()){var o=r.value,s=this.table.dataTable.rows(':has(input[data-id="'+o[n]+'"])').nodes().to$();s.hasClass("removed")?s.toggleClass("removed text-gray-400 text-decoration-line-through"):(this.table.dataTable.rows.add([o]),(s=this.table.dataTable.rows(':has(input[data-id="'+o[n]+'"])').nodes().to$()).toggleClass("added font-weight-bold text-success"))}}catch(d){l={error:d}}finally{try{r&&!r.done&&(i=a["return"])&&i.call(a)}finally{if(l)throw l.error}}this.table.dataTable.draw();var i=this.table.dataTable.rows(".removed")[0].length,l=this.table.dataTable.rows(".added")[0].length,c=this.table.dataTable.rows().data();this.table.load.emit({data:c,recordsFiltered:c.length-i,recordsTotal:c.length-i}),this.dirty=0<i||0<l,this.dirtyChange.emit(this.dirty)},k.prototype.remove=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(null==this.table)throw new Rt;var n=this.table.config.columns[0].property||this.table.config.columns[0].name||"",a=this;try{for(var r=w(e),o=r.next();!o.done;o=r.next())!function(t){var e=a.table.dataTable.rows(':has(input[data-id="'+t[n]+'"])').nodes().to$(),e=(e.hasClass("added")?a.table.dataTable.rows(e).remove():e.toggleClass("removed text-gray-400 text-decoration-line-through"),a.table.selected.findIndex(function(e){return e[n]===t[n]}));0<=e&&a.table.selected.splice(e,1)}(o.value)}catch(c){i={error:c}}finally{try{o&&!o.done&&(s=r["return"])&&s.call(r)}finally{if(i)throw i.error}}this.table.dataTable.draw();var s=this.table.dataTable.rows().data(),i=this.table.dataTable.rows(".removed")[0].length,l=this.table.dataTable.rows(".added")[0].length;this.table.load.emit({data:s,recordsFiltered:s.length-i,recordsTotal:s.length-i}),this.dirty=0<i||0<l,this.dirtyChange.emit(this.dirty)},k.prototype.set=function(e){if(null==this.table)throw new Rt;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})},k.prototype.undo=function(){if(null==this.table)throw new Rt;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)},k.prototype.rows=function(){if(null==this.table)throw new Rt;return Array.from(this.table.dataTable.rows(":not(.removed)").data())},k.decorators=[{type:v.Directive,args:[{selector:"[tableEditor]"}]}],k.ctorParameters=function(){return[{type:lt}]},k.propDecorators={dirtyChange:[{type:v.Output}]};var Ft=k;function k(e){this.table=e,this.dirty=!1,this.dirtyChange=new v.EventEmitter(!1)}L.prototype.fetchData=function(u,p,h,m,f,g){return void 0===h&&(h=""),l(this,void 0,void 0,function(){var n,a,r,o,s,i,l,c,d=this;return T(this,function(e){if(r=this._context.model(u).asQueryable(),o=[],p=p&&"object"==typeof p?p:{})try{for(s=w(Object.keys(p)),i=s.next();!i.done;i=s.next())l=i.value,o.push(l+" eq "+p[l])}catch(t){n={error:t}}finally{try{i&&!i.done&&(a=s["return"])&&a.call(s)}finally{if(n)throw n.error}}return m&&Array.isArray(m)&&(o=ae(o,m)),f&&g&&(c=void 0,c=/^"(.*?)"$/.test(g)?this._template.transform(f,y({},p,{text:g.replace(/^"|"$/g,"")})):g.split(" ").map(function(e){return d._template.transform(f,y({},p,{text:e}))}).join(" and "),o.push(c)),r.setParam("$filter",o.join("and")),[2,r.expand(h).take(-1).getItems()]})})},L.prototype.formatData=function(s,e){var i=this;try{return e.map(function(e){e.subitems&&Array.isArray(e.subitems)&&(e.subitems=i.formatData(s,e.subitems));for(var t={},n=0;n<s.columns.length;n++){var a=s.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[s.columns[n].name]=r}return e.subitems&&(t.subitems=e.subitems),t})}catch(t){console.error(t)}},L.decorators=[{type:v.Injectable,args:[{providedIn:"root"}]}],L.ctorParameters=function(){return[{type:t.AngularDataContext},{type:i.TemplatePipe}]},L.ngInjectableDef=v.defineInjectable({factory:function(){return new L(v.inject(t.AngularDataContext),v.inject(i.TemplatePipe))},token:L,providedIn:"root"});var Mt=L;function L(e,t){this._context=e,this._template=t}Object.defineProperty(j.prototype,"config",{get:function(){return this._config},set:function(e){this._config=e},enumerable:!0,configurable:!0}),Object.defineProperty(j.prototype,"aggregators",{get:function(){return this._aggregators},set:function(e){this._aggregators=e},enumerable:!0,configurable:!0}),Object.defineProperty(j.prototype,"postProcessors",{get:function(){return this._postProcessors},set:function(e){this._postProcessors=e},enumerable:!0,configurable:!0}),j.prototype.ngOnInit=function(){return l(this,void 0,void 0,function(){var t=this;return T(this,function(e){return this.selectedGroups$.subscribe(function(e){t.groups=e,t._changeDetector.markForCheck()}),this.filters$.subscribe(function(n){return l(t,void 0,void 0,function(){var t;return T(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]})})},j.prototype.ngOnDestroy=function(){return l(this,void 0,void 0,function(){return T(this,function(e){return this.selectedGroups$.unsubscribe(),this.filters$.unsubscribe(),[2]})})},j.prototype.fetch=function(r){return l(this,void 0,void 0,function(){var t,n,a;return T(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]}})})},j.prototype.onActionEvent=function(e){this.eventHandler.emit(e)},j.decorators=[{type:v.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:v.ChangeDetectionStrategy.OnPush}]}],j.ctorParameters=function(){return[{type:v.ChangeDetectorRef},{type:Mt},{type:i.LoadingService}]},j.propDecorators={config:[{type:v.Input,args:["config"]}],aggregators:[{type:v.Input,args:["aggregators"]}],postProcessors:[{type:v.Input,args:["postProcessors"]}],params:[{type:v.Input,args:["params"]}],selectedGroups$:[{type:v.Input,args:["selectedGroups"]}],filters$:[{type:v.Input,args:["filters"]}],searchExpression:[{type:v.Input,args:["searchExpression"]}],eventHandler:[{type:v.Output}]};var Bt=j;function j(e,t,n){this._changeDetector=e,this._advancedAggregatorService=t,this._loadingService=n,this.groups=[],this.eventHandler=new v.EventEmitter}var Nt={XL:"xl",LG:"lg",MD:"md",SM:"sm",XS:"xs"},Vt=(qt.prototype.ngOnInit=function(){var t=this;this.config.columns.forEach(function(e){e.length=Object.values(Nt).includes(e.length)?t._template.transform("sis--list-group-item_"+e.length+"_column",e):e.length||"sis--list-group-item_sm_column"})},qt.prototype.callCallback=function(e,t){this.clickEvent.emit({type:e,data:t})},qt.decorators=[{type:v.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" [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="" [class]="\'fas text-indigo ml-2 \' + \'fa-\' + action.icon"></i>\n </button>\n <span class="px-0">\n <i class="fa fa-fw">&nbsp;</i>\n </span>\n\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],\n \'fa-times text-danger\': !!entry[column.name] === false && 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 <div *ngIf="entry && entry.subitems">\n <div *ngFor="let subitem of entry.subitems" class="d-flex justify-content-center align-items-center list-color">\n <div *ngIf="config.actions && config.actions.length > 0"\n class="sis--list-group-item_sm_column text-left pr-0">\n <span class="px-0">\n <i class="fa fa-fw">&nbsp;</i>\n </span>\n <button *ngFor="let action of config.actions" (click)="callCallback(action.identifier, subitem)"\n [title]="(action.title ? action.title : \'\') | translate " class="btn btn-default px-0">\n <i *ngIf="action.type === \'edit\'" class="fas fa-edit text-indigo"></i>\n </button>\n </div>\n <div class="text-left"></div>\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\') && 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 <span *ngIf="config.columns[i].type === \'boolean\'">\n <i class="fa font-lg" [ngClass]="{\n \'fa-check text-success\': !!subitem[column.name],\n \'fa-times text-danger\': !!subitem[column.name] === false && config.columns[i].variant !== \'checkOrDash\'\n }"></i>\n <span\n *ngIf="subitem[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 </div>\n </li>\n </ul>\n</div>'}]}],qt.ctorParameters=function(){return[{type:i.TemplatePipe}]},qt.propDecorators={config:[{type:v.Input}],body:[{type:v.Input}],clickEvent:[{type:v.Output}]},qt);function qt(e){this._template=e,this.clickEvent=new v.EventEmitter}n(R,Ut=B.RouterModalOkCancel),R.prototype.ngOnInit=function(){var t=this;this.selectComponent&&this.selectComponent.advancedTable&&(this.selectedSubscription=this.selectComponent.advancedTable.selectedItems.subscribe(function(e){null==t.formName&&(t.okButtonDisabled=0===e.length)})),null!=this.formName&&this.formComponent&&(this.formChangeSubscription=this.formComponent.form.change.subscribe(function(e){Object.prototype.hasOwnProperty.call(e,"isValid")&&(t.okButtonDisabled=!e.isValid)})),this.target&&this.target},R.prototype.cancel=function(){return this.clearMessages(),!this.loading&&this._modalService.modalRef?this._modalService.modalRef.hide():Promise.resolve()},R.prototype.ngOnDestroy=function(){this.formLoadSubscription&&this.formLoadSubscription.unsubscribe(),this.formChangeSubscription&&this.formChangeSubscription.unsubscribe(),this.selectedSubscription&&this.selectedSubscription.unsubscribe()},Object.defineProperty(R.prototype,"formData",{get:function(){return null===this.formComponent?null:this.formComponent&&this.formComponent.form.formio.data},enumerable:!0,configurable:!0}),R.prototype.ok=function(){var n=this;try{return this.clearMessages(),new Promise(function(t){if(null==n.selectComponent||null==n.selectComponent.advancedTable||null==n.execute)return t(null);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(null)},function(e){return n.loading=!1,n._loadingService.hideLoading(),n.lastError=e,t(null)})})}catch(e){return this.loading=!1,this._loadingService.hideLoading(),this.lastError=e,Promise.resolve()}},R.prototype.onChange=function(e){},R.prototype.clearMessages=function(){this.messages=[]},R.prototype.onFilterChange=function(e){},R.decorators=[{type:v.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">&times;</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.SelectItems\'" ></a>\n </li>\n <li class="nav-item" *ngIf="formName">\n <a class="nav-link" [ngClass]="{ \'disabled\': !(selectComponent && selectComponent.advancedTable && 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 && selectComponent.advancedTable && 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'}]}],R.ctorParameters=function(){return[{type:d.Router},{type:d.ActivatedRoute},{type:i.ModalService},{type:i.LoadingService}]},R.propDecorators={execute:[{type:v.Input}],items:[{type:v.Input}],target:[{type:v.Input}],tableConfiguration:[{type:v.Input}],formName:[{type:v.Input}],messages:[{type:v.Input}],formComponent:[{type:v.ViewChild,args:["formComponent"]}],selectComponent:[{type:v.ViewChild,args:["selectComponent"]}]};var Ut,$t=R;function R(e,t,n,a){e=Ut.call(this,e,t)||this;return e._modalService=n,e._loadingService=a,e.loading=!1,e.items=[],e.messages=[],e.modalClass="modal-lg",e.okButtonDisabled=!0,e}Qt.prototype.transform=function(e,t,n){return Array.isArray(e)&&n&&n in t?t[n](e):"-"},Qt.decorators=[{type:v.Pipe,args:[{name:"callAggregator"}]}];var Ht=Qt;function Qt(){}Kt.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(" ")):""},Kt.decorators=[{type:v.Pipe,args:[{name:"aggregatorListTitle"}]}],Kt.ctorParameters=function(){return[{type:b.TranslateService}]};var Gt=Kt;function Kt(e){this._translateService=e}var Yt={Tables:{Export:"Εξαγωγή",More:"Περισσότερα",Search:"Αναζήτηση",SearchPlaceholder:"Αναζήτηση...",GroupBy:"Ομαδοποίηση ανά",NotDefined:"Μη προσδιορισμένο",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:"Η διαδικασία ολοκληρώθηκε με επιτυχία."}},SelectColumns:"Επιλογή στηλών",MoveUp:"Επάνω",MoveDown:"Κάτω",AddColumn:"Επιλογή",RemoveColumn:"Αφαίρεση",SelectColumnHelp:"Επιλέξτε μία ή περισσότερες από τις διαθέσιμες στήλες και πατήστε το πλήκτρο 'Επιλογή' για να τις εμφανίσετε. Χρησιμοποιήστε το πλήκτρο 'Αφαίρεση' για να αφαιρέσετε τις επιλεγμένες στήλες.",MoveColumnHelp:"Χρησιμοποιήστε τα πλήκτρα 'Επάνω' και 'Κάτω' για να αλλάξετε την σειρά εμφάνισης των στηλών του πίνακα.",UnknownColumn:"Άγνωστο",SelectColumn:"Επιλογή",ActionLinkColumn:"Ενέργειες",DataError:{Title:"Σφάλμα κατά την παραλαβή των δεδομένων",Message:"Συνέβη σφάλμα κατά την παραλαβή των δεδομένων. Προσπαθήστε ξανά ή τροποποιήστε τα στοιχεία αναζήτησης."},ExportList:"Εξαγωγή λίστας",ExportLimitExceeded:"Το πλήθος των στοιχείων προς εξαγωγή ({{dataLength}}) ξεπερνάει το μέγιστο επιτρεπτό ({{exportLimit}}). Παρακαλούμε προσαρμόστε τα φίλτρα της αναζήτησης και προσπαθήστε ξανά.",ExportResults:"Δεδομένα λίστας"},TrueFalse:{"long":{Yes:"Ναι",No:"Όχι"}},Settings:{OperationCompleted:"Η διαδικασία ολοκληρώθηκε με επιτυχία."},AdvancedSearch:{Choose:"<Επιλέξτε μια αναζήτηση>",ChooseDate:"Επιλογή ημερομηνίας",SavedSearches:"Αποθηκευμένες αναζητήσεις",ToggleDropdown:"Εμφάνιση λίστας",SaveCurrentSearch:"Αποθήκευση αναζήτησης",SaveAs:"Αποθήκευση ως",Save:"Αποθήκευση",Delete:"Διαγραφή",More:"Περισσότερα",Less:"Λιγότερα",Modal:{Title:"Αποθήκευση κριτηρίων αναζήτησης",Help:"Ορίστε έναν τίτλο για τα επιλεγμένα κριτήρια αναζήτησης. Αυτός ο τίτλος θα σας βοηθήσει να τα χρησιμοποιήσετε ξανά στο μέλλον.",TitleOnUserError:"Παρακαλώ εισάγετε έναν τίτλο",TitleOnListAlreadyCreated:"Το όνομα αυτό χρησιμοποιείται ήδη. Διαλέξτε ένα διαφορετικό.",NoListDefined:"Δεν έχει οριστεί το σημείο αποθήκευσης της λίστας",EmptyCriteriaList:"Δεν έχετε καθορίσει κανένα κριτήριο για αποθήκευση",SaveNameLabel:"Ονομασία λίστας",SaveNamePlaceholder:"Εισάγετε έναν τίτλο",Accept:"Αποθήκευση",Decline:"Απόρριψη",Close:"Κλείσιμο"}},AddItems:{SelectItems:"Επιλέξτε στοιχεία"}},Wt={Tables:{Export:"Export",More:"More",Search:"Search",SearchPlaceholder:"Search...",GroupBy:"Group by",NotDefined:"Not defined",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."}},SelectColumns:"Select columns",MoveUp:"Move up",MoveDown:"Move down",AddColumn:"Add",RemoveColumn:"Remove",SelectColumnHelp:"Select one or more columns and press 'Add' button to include them in table. Use 'Remove' button to exclude one or more columns from view.",MoveColumnHelp:"Use 'Move up' and 'Move down' buttons to change column order.",UnknownColumn:"Unknown",SelectColumn:"Select",ActionLinkColumn:"Actions",DataError:{Title:"Error while getting data",Message:"An error occurred while getting data. Please try again or change your criteria."},ExportList:"Export list",ExportLimitExceeded:"The number of items that are to be exported ({{dataLength}}) exceeds the export limit ({{exportLimit}}). Please apply more specific filters to the search.",ExportResults:"Exported list"},TrueFalse:{"long":{Yes:"Yes",No:"No"}},Settings:{OperationCompleted:"The operation was completed successfully."},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"}},AddItems:{SelectItems:"Select items"}},Xt="[Table] Load Filter",zt="[Table] Append Filter",Jt="[Table] Append State",Zt=function(e,t){this.id=e,this.filter=t,this.type=zt},en=function(e,t){this.id=e,this.data=t,this.type=Jt},tn={};function nn(e,t){switch(void 0===e&&(e=tn),t.type){case Xt:return e[t.id];case zt:return e[t.id]=y({},e[t.id],{filter:F.cloneDeep(t.filter)}),e;case Jt:return e[t.id]=y({},e[t.id],{table:t.data}),e;default:return e}}var an={tables:nn},rn=a.createFeatureSelector("tables"),on=a.createSelector(rn,function(e,t){return e.tables[t.id]}),sn=(ln.prototype.ngOnInit=function(){var t,n=this;null!=this.store&&(this.table.stateSave=!0,this.table.stateLoadCallback=function(e,t){n.store.pipe(a.select(on,{id:n.tableState}),q.first()).subscribe(function(e){t(e&&e.table),e&&e.table&&e.table.ColReorder&&n.table.dataTable.colReorder.order(e.table.ColReorder,!0)})},t=!0,this.table.draw.subscribe(function(){var e;!1!==t&&null!=n.table.dataTable&&(t=!1,e=(e=n.table.dataTable.settings()[0]).oSavedState&&e.oSavedState.scroller)&&e.topRow&&n.table.dataTable.scroller().scrollToRow(e.topRow,!0)}),this.table.stateSaveCallback=function(e,t){n.store.dispatch(new en(n.tableState,t))})},ln.decorators=[{type:v.Directive,args:[{selector:"[tableState]"}]}],ln.ctorParameters=function(){return[{type:lt},{type:a.Store,decorators:[{type:v.Optional}]}]},ln.propDecorators={tableState:[{type:v.Input}]},ln);function ln(e,t){this.table=e,this.store=t}n(un,cn=Error);var cn,dn=un;function un(){return cn.call(this,"Advanced table search component cannot be empty at this context.")||this}D.prototype.ngOnInit=function(){var t=this;if(null!=this.store){if(null==this.search)throw new dn;this.search.table&&(this.search.table.autoLoad=!1,this.filterChangeSubscription=this.search.filterChange.subscribe(function(e){t.onSearchFilter(e)}),this.applyTableState(),this.tableInitSubscription=this.search.table.init.subscribe(function(){return t.onTableInit()}))}},D.prototype.applyTableState=function(){var e;this.search.table&&((e=new sn(this.search.table,this.store)).tableState=this.searchState,e.ngOnInit())},D.prototype.onTableInit=function(){var e=this;this.store.pipe(a.select(on,{id:this.searchState}),q.first()).subscribe(function(t){if(t)return t.order&&t.order.length&&e.search.table&&e.search.table.dataTable.order(t.order),t.filter&&t.filter.q&&e.search.table?(e.search.text=t.filter.q,e.search.collapsed=!0,e.search.table.search(e.search.text)):(t.filter&&t.filter.s?e.search.selectedList=e.search.userSearchList.find(function(e){return e.name===t.filter.s}):t.filter&&Object.keys(t.filter).length?(e.search.collapsed=!1,e.search.filter=t.filter):e.search.filter={},e.search.search())})},D.prototype.onSearchFilter=function(e){e=F.isEmpty(e)?null:e,this.store.dispatch(new Zt(this.searchState,e))},D.prototype.ngOnDestroy=function(){this.filterChangeSubscription&&this.filterChangeSubscription.unsubscribe(),this.tableInitSubscription&&this.tableInitSubscription.unsubscribe()},D.decorators=[{type:v.Directive,args:[{selector:"[searchState]"}]}],D.ctorParameters=function(){return[{type:Et},{type:a.Store,decorators:[{type:v.Optional}]}]},D.propDecorators={searchState:[{type:v.Input}]};var pn=D;function D(e,t){this.search=e,this.store=t}n(fn,hn=pn),fn.prototype.ngOnDestroy=function(){return this._routerSubscription&&this._routerSubscription.unsubscribe(),hn.prototype.ngOnDestroy.call(this)},fn.decorators=[{type:v.Directive,args:[{selector:"[routerSearchState]"}]}],fn.ctorParameters=function(){return[{type:Et},{type:a.Store,decorators:[{type:v.Optional}]},{type:d.Router}]};var hn,mn=fn;function fn(e,t,n){var a=hn.call(this,e,t)||this;return a.search=e,a.store=t,a._router=n,a._enteringState=!0,a._applyState=!1,a._routerSubscription=a._router.events.pipe(q.filter(function(e){return e instanceof d.NavigationStart||e instanceof d.NavigationEnd})).subscribe(function(e){if(e instanceof d.NavigationStart&&!a._enteringState){try{a.searchState=new URL(e.url,location.origin).pathname}catch(t){console.error("An error occured while trying to set search state for the current table",t),a.searchState=e.url}a._applyState=!0}if(e instanceof d.NavigationEnd&&a._enteringState){try{a.searchState=new URL(e.urlAfterRedirects,location.origin).pathname}catch(t){console.error("An error occured while trying to set search state for the current table",t),a.searchState=e.urlAfterRedirects}a._enteringState=!1}a._applyState&&(hn.prototype.applyTableState.call(a),a._applyState=!1)}),a}var gn=Ot,B=(bn.prototype.ngOnInit=function(){return l(this,void 0,void 0,function(){return T(this,function(e){return this._translateService.setTranslation("en",Wt,!0),this._translateService.setTranslation("el",Yt,!0),[2]})})},bn.decorators=[{type:v.NgModule,args:[{imports:[r.CommonModule,i.SharedModule,b.TranslateModule,o.FormsModule,o.ReactiveFormsModule,d.RouterModule,B.RouterModalModule,J.FormioModule,z.AdvancedFormsModule,i.SharedModule,N.ModalModule,Z.ProgressbarModule,ee.NgPipesModule],providers:[r.DatePipe,i.TemplatePipe,{provide:et,useValue:gn},St,xt,Tt,Mt,Ge,ee.GroupByPipe],declarations:[lt,ut,Et,We,It,bt,mt,$,dt,Lt,Pt,yt,Ft,Bt,Vt,Ht,Gt,$t,pn,sn,mn,Qe],exports:[lt,Et,We,It,mt,$,dt,Lt,Pt,yt,Ft,Bt,Vt,$t,pn,sn,mn,Qe],entryComponents:[bt,It,dt,yt,$t,Qe],schemas:[v.CUSTOM_ELEMENTS_SCHEMA]}]}],bn.ctorParameters=function(){return[{type:b.TranslateService}]},bn);function bn(e){this._translateService=e,this.ngOnInit()["catch"](function(e){console.error("An error occurred while loading tables module"),console.error(e)})}e.AdvancedListComponent=$,e.AdvancedRowActionComponent=dt,e.AdvancedSearchFormComponent=mt,e.AdvancedSelectComponent=yt,e.AdvancedSelectService=Tt,e.AdvancedTableConfigurationResolver=St,e.AdvancedSearchConfigurationResolver=xt,e.AdvancedColumnFormatter=h,e.NestedPropertyFormatter=oe,e.ButtonFormatter=le,e.LinkFormatter=ue,e.ActionLinkFormatter=me,e.ActionButtonFormatter=be,e.ActionSplitButtonFormatter=Te,e.SelectRowFormatter=Ce,e.TemplateFormatter=Ie,e.TrueFalseFormatter=Oe,e.TranslationFormatter=Le,e.DateTimeFormatter=De,e.NgClassFormatter=Be,e.LanguageFormatter=qe,e.COLUMN_FORMATTERS=et,e.ExportLimitExceededError=tt,e.AdvancedTableConfiguration=st,e.AdvancedTableComponent=lt,e.AdvancedTableSettingsComponent=It,e.AdvancedTableSearchBaseComponent=ut,e.AdvancedTableSearchComponent=Et,e.FORMATTERS=Ot,e.AdvancedFilterValueProvider=$e,e.AdvancedTableModalBaseTemplate=gt,e.AdvancedTableModalBaseComponent=bt,e.SimpleHeaderToolsComponent=Pt,e.TableSimpleHeaderComponent=Lt,e.AdvancedTableNotNullError=Rt,e.AdvancedTableEditorDirective=Ft,e.MAX_EXPORT_ITEMS=500,e.BtnExpDirective=We,e.AdvancedAggregatorComponent=Bt,e.AdvancedAggregatorListComponent=Vt,e.AddItemsComponent=$t,e.AdvancedAggregatorPipe=Ht,e.ParseTitlePipe=Gt,e.AdvancedAggregatorService=Mt,e.TablesModule=B,e.ActivatedTableService=Ye,e.ColumnSelectorService=Ge,e.ColumnSelectorComponent=Qe,e.tableReducer=nn,e.initialState=tn,e.tableInitialState={filter:{},order:[]},e.tableReducers=an,e.featureName="tables",e.getTablesState=rn,e.selectTable=on,e.ɵa=pn,e.ɵc=sn,e.ɵd=mn,Object.defineProperty(e,"__esModule",{value:!0})});
2
2
  //# sourceMappingURL=universis-ngx-tables.umd.min.js.map