@universis/ngx-tables 0.7.14 → 0.7.19

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.
Files changed (35) hide show
  1. package/bundles/universis-ngx-tables.umd.js +46 -9
  2. package/bundles/universis-ngx-tables.umd.js.map +1 -1
  3. package/bundles/universis-ngx-tables.umd.min.js +1 -1
  4. package/bundles/universis-ngx-tables.umd.min.js.map +1 -1
  5. package/esm2015/lib/advanced-aggregator.js +2 -0
  6. package/esm2015/lib/components/add-items/add-items.component.js +3 -3
  7. package/esm2015/lib/components/advanced-select/advanced-select.component.js +18 -5
  8. package/esm2015/lib/components/advanced-table/advanced-table-search-base.js +7 -2
  9. package/esm2015/lib/components/advanced-table/advanced-table-settings.component.js +1 -1
  10. package/esm2015/lib/components/advanced-table/advanced-table.formatters.js +2 -2
  11. package/esm2015/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +15 -5
  12. package/esm2015/lib/i18n/tables.el.js +4 -1
  13. package/esm2015/lib/i18n/tables.en.js +4 -1
  14. package/esm2015/lib/tables.module.js +3 -1
  15. package/esm5/lib/advanced-aggregator.js +2 -0
  16. package/esm5/lib/components/add-items/add-items.component.js +3 -3
  17. package/esm5/lib/components/advanced-select/advanced-select.component.js +19 -5
  18. package/esm5/lib/components/advanced-table/advanced-table-search-base.js +7 -2
  19. package/esm5/lib/components/advanced-table/advanced-table-settings.component.js +1 -1
  20. package/esm5/lib/components/advanced-table/advanced-table.formatters.js +2 -2
  21. package/esm5/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +15 -4
  22. package/esm5/lib/i18n/tables.el.js +4 -1
  23. package/esm5/lib/i18n/tables.en.js +4 -1
  24. package/esm5/lib/tables.module.js +3 -1
  25. package/fesm2015/universis-ngx-tables.js +45 -10
  26. package/fesm2015/universis-ngx-tables.js.map +1 -1
  27. package/fesm5/universis-ngx-tables.js +46 -9
  28. package/fesm5/universis-ngx-tables.js.map +1 -1
  29. package/lib/advanced-aggregator.d.ts +55 -61
  30. package/lib/components/advanced-select/advanced-select.component.d.ts +6 -3
  31. package/lib/components/advanced-table-modal/advanced-table-modal-base.component.d.ts +3 -1
  32. package/lib/i18n/tables.el.d.ts +3 -0
  33. package/lib/i18n/tables.en.d.ts +3 -0
  34. package/package.json +1 -1
  35. package/universis-ngx-tables.metadata.json +1 -1
@@ -88,7 +88,7 @@ class AdvancedColumnFormatter {
88
88
  if (options.navigationExtras && typeof options.navigationExtras.skipLocationChange !== 'undefined') {
89
89
  skipLocationChange = options.navigationExtras.skipLocationChange;
90
90
  }
91
- return router.createUrlTree(commands, {
91
+ return router.createUrlTree(commands, options.navigationExtras = {
92
92
  relativeTo: activatedRoute,
93
93
  queryParams,
94
94
  replaceUrl,
@@ -2015,6 +2015,11 @@ class AdvancedTableSearchBaseComponent {
2015
2015
  }
2016
2016
  }
2017
2017
  }
2018
+ AdvancedTableSearchBaseComponent.decorators = [
2019
+ { type: Component, args: [{
2020
+ template: ''
2021
+ }] }
2022
+ ];
2018
2023
  AdvancedTableSearchBaseComponent.propDecorators = {
2019
2024
  filterChange: [{ type: Output }],
2020
2025
  filter: [{ type: Input }]
@@ -2156,12 +2161,12 @@ const AdvancedTableModalBaseTemplate = `
2156
2161
  <div class="row mt-3">
2157
2162
  <div class="col-12 col-lg-3">
2158
2163
  <div class="input-group mb-3">
2159
- <input spellcheck="false" type="text"
2164
+ <input spellcheck="false" type="text" #searchElement
2160
2165
  (keyup)="onKeyUp($event)" [(ngModel)]="searchText"
2161
2166
  class="form-control bg-gray-100 border-0"
2162
2167
  placeholder="{{'Tables.SearchPlaceholder' | translate}}" aria-label="Search" aria-describedby="basic-addon2">
2163
2168
  <div class="input-group-append">
2164
- <button class="btn btn-default bg-gray-100 border-0" type="button">
2169
+ <button class="btn btn-default bg-gray-100 border-0" type="button" (click)="onSearch()">
2165
2170
  <i class="fa fa-search text-secondary"></i>
2166
2171
  </button>
2167
2172
  </div>
@@ -2271,7 +2276,11 @@ class AdvancedTableModalBaseComponent extends RouterModalOkCancel {
2271
2276
  this._template = new TemplatePipe();
2272
2277
  }
2273
2278
  ngAfterViewInit() {
2274
- //
2279
+ setTimeout(() => {
2280
+ if (this.searchElement && this.searchElement.nativeElement) {
2281
+ this.searchElement.nativeElement.focus();
2282
+ }
2283
+ }, 0);
2275
2284
  }
2276
2285
  _getInputs(componentType) {
2277
2286
  const props = componentType.__prop__metadata__;
@@ -2395,12 +2404,17 @@ class AdvancedTableModalBaseComponent extends RouterModalOkCancel {
2395
2404
  this.advancedTable.dataTable.page.len(value).draw();
2396
2405
  }
2397
2406
  onKeyUp(event) {
2398
- if (event.code === 'Enter') {
2407
+ if (event.key === 'Enter' || event.key === 'Return') {
2399
2408
  // loading
2400
2409
  this.loading = true;
2401
2410
  this.advancedTable.search(event.target.value);
2402
2411
  }
2403
2412
  }
2413
+ onSearch() {
2414
+ // loading
2415
+ this.loading = true;
2416
+ this.advancedTable.search(this.searchText);
2417
+ }
2404
2418
  /**
2405
2419
  *
2406
2420
  * Reads the modal table and returns a list of filters to use in the table
@@ -2516,6 +2530,7 @@ AdvancedTableModalBaseComponent.propDecorators = {
2516
2530
  emptyTable: [{ type: ViewChild, args: ['emptyTable',] }],
2517
2531
  dropdownFilter: [{ type: ViewChild, args: ['dropdownFilter',] }],
2518
2532
  dropdownLength: [{ type: ViewChild, args: ['dropdownLength',] }],
2533
+ searchElement: [{ type: ViewChild, args: ['searchElement',] }],
2519
2534
  tableConfig: [{ type: Input, args: ['tableConfig',] }],
2520
2535
  tableConfigSrc: [{ type: Input, args: ['tableConfigSrc',] }],
2521
2536
  pageLength: [{ type: Input, args: ['pageLength',] }],
@@ -2525,11 +2540,20 @@ AdvancedTableModalBaseComponent.propDecorators = {
2525
2540
  };
2526
2541
 
2527
2542
  class AdvancedSelectComponent extends AdvancedTableModalBaseComponent {
2528
- constructor(router, activatedRoute, context, advancedFilterValueProvider, datePipe, _modalRef) {
2543
+ constructor(router, activatedRoute, context, advancedFilterValueProvider, datePipe, _modalRef, el) {
2529
2544
  super(router, activatedRoute, context, advancedFilterValueProvider, datePipe);
2530
2545
  this._modalRef = _modalRef;
2546
+ this.el = el;
2531
2547
  this.dismiss = new EventEmitter();
2532
2548
  }
2549
+ ngAfterViewInit() {
2550
+ super.ngAfterViewInit();
2551
+ setTimeout(() => {
2552
+ if (this.searchElement && this.searchElement.nativeElement) {
2553
+ this.searchElement.nativeElement.focus();
2554
+ }
2555
+ }, 0);
2556
+ }
2533
2557
  ok() {
2534
2558
  return __awaiter(this, void 0, void 0, function* () {
2535
2559
  this._modalRef.hide();
@@ -2547,7 +2571,7 @@ AdvancedSelectComponent.decorators = [
2547
2571
  { type: Component, args: [{
2548
2572
  // tslint:disable-next-line: component-selector
2549
2573
  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\">&times;</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",
2574
+ 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 <!-- 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
2575
  encapsulation: ViewEncapsulation.None,
2552
2576
  styles: [`
2553
2577
  .modal-table .dataTables_wrapper {
@@ -2564,8 +2588,12 @@ AdvancedSelectComponent.ctorParameters = () => [
2564
2588
  { type: AngularDataContext },
2565
2589
  { type: AdvancedFilterValueProvider },
2566
2590
  { type: DatePipe },
2567
- { type: BsModalRef }
2591
+ { type: BsModalRef },
2592
+ { type: ElementRef }
2568
2593
  ];
2594
+ AdvancedSelectComponent.propDecorators = {
2595
+ searchElement: [{ type: ViewChild, args: ['searchElement',] }]
2596
+ };
2569
2597
 
2570
2598
  class AdvancedSelectService {
2571
2599
  constructor(_modal) {
@@ -4081,14 +4109,14 @@ class AddItemsComponent extends RouterModalOkCancel {
4081
4109
  if (this._modalService.modalRef) {
4082
4110
  this._modalService.modalRef.hide();
4083
4111
  }
4084
- return resolve();
4112
+ return resolve(null);
4085
4113
  }, (err) => {
4086
4114
  this.loading = false;
4087
4115
  // ensure that loading is hidden
4088
4116
  this._loadingService.hideLoading();
4089
4117
  // set last error
4090
4118
  this.lastError = err;
4091
- return resolve();
4119
+ return resolve(null);
4092
4120
  });
4093
4121
  });
4094
4122
  }
@@ -4286,6 +4314,9 @@ const TABLES_EL = {
4286
4314
  "No": "Όχι"
4287
4315
  }
4288
4316
  },
4317
+ "Settings": {
4318
+ "OperationCompleted": "Η διαδικασία ολοκληρώθηκε με επιτυχία."
4319
+ },
4289
4320
  "AdvancedSearch": {
4290
4321
  "Choose": "<Επιλέξτε μια αναζήτηση>",
4291
4322
  "ChooseDate": "Επιλογή ημερομηνίας",
@@ -4389,6 +4420,9 @@ const TABLES_EN = {
4389
4420
  "No": "No"
4390
4421
  }
4391
4422
  },
4423
+ "Settings": {
4424
+ "OperationCompleted": "The operation was completed successfully."
4425
+ },
4392
4426
  "AdvancedSearch": {
4393
4427
  "Choose": "<Select a saved search>",
4394
4428
  "ChooseDate": "Choose date",
@@ -4719,6 +4753,7 @@ TablesModule.decorators = [
4719
4753
  ],
4720
4754
  declarations: [
4721
4755
  AdvancedTableComponent,
4756
+ AdvancedTableSearchBaseComponent,
4722
4757
  AdvancedTableSearchComponent,
4723
4758
  BtnExpDirective,
4724
4759
  AdvancedTableSettingsComponent,