@universis/ngx-tables 0.7.12 → 0.7.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/universis-ngx-tables.umd.js +35 -9
- package/bundles/universis-ngx-tables.umd.js.map +1 -1
- package/bundles/universis-ngx-tables.umd.min.js +1 -1
- package/bundles/universis-ngx-tables.umd.min.js.map +1 -1
- package/esm2015/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +2 -2
- package/esm2015/lib/components/advanced-select/advanced-select.component.js +18 -5
- package/esm2015/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +15 -5
- package/esm2015/lib/directives/btnexp.directive.js +5 -2
- package/esm5/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +2 -2
- package/esm5/lib/components/advanced-select/advanced-select.component.js +19 -5
- package/esm5/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +15 -4
- package/esm5/lib/directives/btnexp.directive.js +4 -3
- package/fesm2015/universis-ngx-tables.js +40 -10
- package/fesm2015/universis-ngx-tables.js.map +1 -1
- package/fesm5/universis-ngx-tables.js +35 -9
- package/fesm5/universis-ngx-tables.js.map +1 -1
- package/lib/components/advanced-select/advanced-select.component.d.ts +6 -3
- package/lib/components/advanced-table-modal/advanced-table-modal-base.component.d.ts +3 -1
- package/package.json +1 -1
- package/universis-ngx-tables.metadata.json +1 -1
|
@@ -2156,12 +2156,12 @@ const AdvancedTableModalBaseTemplate = `
|
|
|
2156
2156
|
<div class="row mt-3">
|
|
2157
2157
|
<div class="col-12 col-lg-3">
|
|
2158
2158
|
<div class="input-group mb-3">
|
|
2159
|
-
<input spellcheck="false" type="text"
|
|
2159
|
+
<input spellcheck="false" type="text" #searchElement
|
|
2160
2160
|
(keyup)="onKeyUp($event)" [(ngModel)]="searchText"
|
|
2161
2161
|
class="form-control bg-gray-100 border-0"
|
|
2162
2162
|
placeholder="{{'Tables.SearchPlaceholder' | translate}}" aria-label="Search" aria-describedby="basic-addon2">
|
|
2163
2163
|
<div class="input-group-append">
|
|
2164
|
-
<button class="btn btn-default bg-gray-100 border-0" type="button">
|
|
2164
|
+
<button class="btn btn-default bg-gray-100 border-0" type="button" (click)="onSearch()">
|
|
2165
2165
|
<i class="fa fa-search text-secondary"></i>
|
|
2166
2166
|
</button>
|
|
2167
2167
|
</div>
|
|
@@ -2271,7 +2271,11 @@ class AdvancedTableModalBaseComponent extends RouterModalOkCancel {
|
|
|
2271
2271
|
this._template = new TemplatePipe();
|
|
2272
2272
|
}
|
|
2273
2273
|
ngAfterViewInit() {
|
|
2274
|
-
|
|
2274
|
+
setTimeout(() => {
|
|
2275
|
+
if (this.searchElement && this.searchElement.nativeElement) {
|
|
2276
|
+
this.searchElement.nativeElement.focus();
|
|
2277
|
+
}
|
|
2278
|
+
}, 0);
|
|
2275
2279
|
}
|
|
2276
2280
|
_getInputs(componentType) {
|
|
2277
2281
|
const props = componentType.__prop__metadata__;
|
|
@@ -2395,12 +2399,17 @@ class AdvancedTableModalBaseComponent extends RouterModalOkCancel {
|
|
|
2395
2399
|
this.advancedTable.dataTable.page.len(value).draw();
|
|
2396
2400
|
}
|
|
2397
2401
|
onKeyUp(event) {
|
|
2398
|
-
if (event.
|
|
2402
|
+
if (event.key === 'Enter' || event.key === 'Return') {
|
|
2399
2403
|
// loading
|
|
2400
2404
|
this.loading = true;
|
|
2401
2405
|
this.advancedTable.search(event.target.value);
|
|
2402
2406
|
}
|
|
2403
2407
|
}
|
|
2408
|
+
onSearch() {
|
|
2409
|
+
// loading
|
|
2410
|
+
this.loading = true;
|
|
2411
|
+
this.advancedTable.search(this.searchText);
|
|
2412
|
+
}
|
|
2404
2413
|
/**
|
|
2405
2414
|
*
|
|
2406
2415
|
* Reads the modal table and returns a list of filters to use in the table
|
|
@@ -2516,6 +2525,7 @@ AdvancedTableModalBaseComponent.propDecorators = {
|
|
|
2516
2525
|
emptyTable: [{ type: ViewChild, args: ['emptyTable',] }],
|
|
2517
2526
|
dropdownFilter: [{ type: ViewChild, args: ['dropdownFilter',] }],
|
|
2518
2527
|
dropdownLength: [{ type: ViewChild, args: ['dropdownLength',] }],
|
|
2528
|
+
searchElement: [{ type: ViewChild, args: ['searchElement',] }],
|
|
2519
2529
|
tableConfig: [{ type: Input, args: ['tableConfig',] }],
|
|
2520
2530
|
tableConfigSrc: [{ type: Input, args: ['tableConfigSrc',] }],
|
|
2521
2531
|
pageLength: [{ type: Input, args: ['pageLength',] }],
|
|
@@ -2525,11 +2535,20 @@ AdvancedTableModalBaseComponent.propDecorators = {
|
|
|
2525
2535
|
};
|
|
2526
2536
|
|
|
2527
2537
|
class AdvancedSelectComponent extends AdvancedTableModalBaseComponent {
|
|
2528
|
-
constructor(router, activatedRoute, context, advancedFilterValueProvider, datePipe, _modalRef) {
|
|
2538
|
+
constructor(router, activatedRoute, context, advancedFilterValueProvider, datePipe, _modalRef, el) {
|
|
2529
2539
|
super(router, activatedRoute, context, advancedFilterValueProvider, datePipe);
|
|
2530
2540
|
this._modalRef = _modalRef;
|
|
2541
|
+
this.el = el;
|
|
2531
2542
|
this.dismiss = new EventEmitter();
|
|
2532
2543
|
}
|
|
2544
|
+
ngAfterViewInit() {
|
|
2545
|
+
super.ngAfterViewInit();
|
|
2546
|
+
setTimeout(() => {
|
|
2547
|
+
if (this.searchElement && this.searchElement.nativeElement) {
|
|
2548
|
+
this.searchElement.nativeElement.focus();
|
|
2549
|
+
}
|
|
2550
|
+
}, 0);
|
|
2551
|
+
}
|
|
2533
2552
|
ok() {
|
|
2534
2553
|
return __awaiter(this, void 0, void 0, function* () {
|
|
2535
2554
|
this._modalRef.hide();
|
|
@@ -2547,7 +2566,7 @@ AdvancedSelectComponent.decorators = [
|
|
|
2547
2566
|
{ type: Component, args: [{
|
|
2548
2567
|
// tslint:disable-next-line: component-selector
|
|
2549
2568
|
selector: 'app-advanced-select',
|
|
2550
|
-
template: "<div class=\"modal-header\" *ngIf=\"modalTitle\">\n <h5 class=\"modal-title\">{{modalTitle | translate}}</h5>\n <button [disabled]=\"cancelButtonDisabled\" (click)=\"cancel()\" type=\"button\" class=\"close\" data-dismiss=\"modal\"\n aria-label=\"Cancel\">\n <span aria-hidden=\"true\">×</span>\n </button>\n</div>\n<div class=\"modal-body\">\n <div>\n <!-- search -->\n <div class=\"row mt-3\">\n <div class=\"col-12 col-lg-3\">\n <div class=\"input-group mb-3\">\n <input spellcheck=\"false\" type=\"text\" (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"searchText\"\n class=\"form-control bg-gray-100 border-0\" placeholder=\"{{'Tables.SearchPlaceholder' | translate}}\"\n aria-label=\"Search\" aria-describedby=\"basic-addon2\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-default bg-gray-100 border-0\" type=\"button\">\n <i class=\"fa fa-search text-secondary\"></i>\n </button>\n </div>\n </div>\n </div>\n <div #emptyTable class=\"d-none\">\n <div>\n <div class=\"mt-4\">\n <div class=\"icon-circle bg-gray-300 border-gray-100\"></div>\n </div>\n <div class=\"mt-4\">\n <h4 class=\"font-3xl text-dark\" [translate]=\"'Tables.EmptyTableTitle'\"></h4>\n <p class=\"font-lg text-dark\" [translate]=\"'Tables.EmptyTableMessage'\"></p>\n </div>\n\n </div>\n </div>\n <div class=\"col-12 col-lg-5\">\n <div class=\"btn-toolbar\">\n <button class=\"btn btn-gray-100\">\n <i class=\"fa fa-sliders-h pr-2 text-secondary\" aria-hidden=\"true\"></i>{{'Tables.Filters' | translate}}\n </button>\n <div class=\"dropdown ml-3\">\n <button dropdownToggle class=\"btn btn-gray-100 dropdown-toggle\" type=\"button\" id=\"dropdownDefaultFilters\"\n data-toggle=\"dropdown\">\n {{ this.defaultFilter.name | translate }}\n </button>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownDefaultFilters\">\n <a class=\"dropdown-item\" *ngFor=\"let filter of defaultFilters\"\n (click)=\"advancedSearch(filter.filter ? filter : '')\">\n {{ filter.name | translate }}\n </a>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col text-lg-right mt-3 mt-lg-0 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",
|
|
2569
|
+
template: "<div class=\"modal-header\" *ngIf=\"modalTitle\">\n <h5 class=\"modal-title\">{{modalTitle | translate}}</h5>\n <button [disabled]=\"cancelButtonDisabled\" (click)=\"cancel()\" type=\"button\" class=\"close\" data-dismiss=\"modal\"\n aria-label=\"Cancel\">\n <span aria-hidden=\"true\">×</span>\n </button>\n</div>\n<div class=\"modal-body\">\n <div>\n <!-- search -->\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",
|
|
2551
2570
|
encapsulation: ViewEncapsulation.None,
|
|
2552
2571
|
styles: [`
|
|
2553
2572
|
.modal-table .dataTables_wrapper {
|
|
@@ -2564,8 +2583,12 @@ AdvancedSelectComponent.ctorParameters = () => [
|
|
|
2564
2583
|
{ type: AngularDataContext },
|
|
2565
2584
|
{ type: AdvancedFilterValueProvider },
|
|
2566
2585
|
{ type: DatePipe },
|
|
2567
|
-
{ type: BsModalRef }
|
|
2586
|
+
{ type: BsModalRef },
|
|
2587
|
+
{ type: ElementRef }
|
|
2568
2588
|
];
|
|
2589
|
+
AdvancedSelectComponent.propDecorators = {
|
|
2590
|
+
searchElement: [{ type: ViewChild, args: ['searchElement',] }]
|
|
2591
|
+
};
|
|
2569
2592
|
|
|
2570
2593
|
class AdvancedSelectService {
|
|
2571
2594
|
constructor(_modal) {
|
|
@@ -3504,6 +3527,7 @@ AdvancedTableEditorDirective.propDecorators = {
|
|
|
3504
3527
|
dirtyChange: [{ type: Output }]
|
|
3505
3528
|
};
|
|
3506
3529
|
|
|
3530
|
+
const MAX_EXPORT_ITEMS = 500;
|
|
3507
3531
|
class BtnExpDirective {
|
|
3508
3532
|
constructor(_activatedTable, _context, _config, _translate, _loadingService, _errorService) {
|
|
3509
3533
|
this._activatedTable = _activatedTable;
|
|
@@ -3525,10 +3549,16 @@ class BtnExpDirective {
|
|
|
3525
3549
|
let query = this._context.model(queryModel).asQueryable();
|
|
3526
3550
|
const queryParams = lastQuery.getParams();
|
|
3527
3551
|
query = this.constructQuery(query, queryParams, tableConfig, serviceHeaders);
|
|
3528
|
-
|
|
3529
|
-
|
|
3552
|
+
// get export settings
|
|
3553
|
+
const exportSettings = this._config.settings;
|
|
3554
|
+
// get export limit
|
|
3555
|
+
const maxExportItems = exportSettings && exportSettings.tables && exportSettings.tables.exportLimit;
|
|
3556
|
+
if (maxExportItems && typeof maxExportItems === 'number' && maxExportItems > 0) {
|
|
3530
3557
|
query.skip(0).take(maxExportItems);
|
|
3531
3558
|
}
|
|
3559
|
+
else {
|
|
3560
|
+
query.skip(0).take(MAX_EXPORT_ITEMS);
|
|
3561
|
+
}
|
|
3532
3562
|
// This constructs the URI based on the way @themost does
|
|
3533
3563
|
const url = this.constructURL(query);
|
|
3534
3564
|
this.downloadFile(url, query.getService().getHeaders(), query.getModel());
|
|
@@ -3981,7 +4011,7 @@ class AdvancedAggregatorListComponent {
|
|
|
3981
4011
|
AdvancedAggregatorListComponent.decorators = [
|
|
3982
4012
|
{ type: Component, args: [{
|
|
3983
4013
|
selector: 'app-advanced-aggregator-list',
|
|
3984
|
-
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\"
|
|
4014
|
+
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 <!-- The list of entries -->\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 <!-- The list of actions -->\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\"> </i>\n </span>\n\n </div>\n <!-- The list of data -->\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\"> </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>"
|
|
3985
4015
|
}] }
|
|
3986
4016
|
];
|
|
3987
4017
|
/** @nocollapse */
|