@universis/ngx-tables 0.6.7 → 0.6.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/bundles/universis-ngx-tables.umd.js +252 -84
  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/components/advanced-select/advanced-select.component.js +2 -2
  6. package/esm2015/lib/components/advanced-table/advanced-table-search.component.js +3 -3
  7. package/esm2015/lib/components/advanced-table/advanced-table.component.js +18 -6
  8. package/esm2015/lib/components/advanced-table/advanced-table.formatters.interface.js +4 -2
  9. package/esm2015/lib/components/advanced-table/advanced-table.formatters.js +195 -58
  10. package/esm2015/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +17 -10
  11. package/esm2015/lib/tables.module.js +1 -3
  12. package/esm5/lib/components/advanced-select/advanced-select.component.js +2 -2
  13. package/esm5/lib/components/advanced-table/advanced-table-search.component.js +3 -3
  14. package/esm5/lib/components/advanced-table/advanced-table.component.js +18 -6
  15. package/esm5/lib/components/advanced-table/advanced-table.formatters.interface.js +4 -2
  16. package/esm5/lib/components/advanced-table/advanced-table.formatters.js +202 -67
  17. package/esm5/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +12 -5
  18. package/esm5/lib/tables.module.js +1 -3
  19. package/fesm2015/universis-ngx-tables.js +233 -77
  20. package/fesm2015/universis-ngx-tables.js.map +1 -1
  21. package/fesm5/universis-ngx-tables.js +233 -81
  22. package/fesm5/universis-ngx-tables.js.map +1 -1
  23. package/lib/components/advanced-table/advanced-table.formatters.d.ts +15 -0
  24. package/lib/components/advanced-table/advanced-table.formatters.interface.d.ts +3 -1
  25. package/lib/components/advanced-table-modal/advanced-table-modal-base.component.d.ts +5 -1
  26. package/package.json +1 -1
  27. package/universis-ngx-tables.metadata.json +1 -1
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('iso-639-1/build'), require('bootstrap'), require('rxjs'), require('jquery'), require('datatables.net'), require('lodash'), require('datatables.net-scroller'), require('rxjs/add/observable/combineLatest'), require('@angular/common/http'), require('@themost/angular'), require('@themost/client'), require('@angular/core'), require('@angular/common'), require('@ngx-translate/core'), require('@angular/forms'), require('@universis/common'), require('@universis/common/routing'), require('@universis/forms'), require('angular-formio'), require('@angular/router'), require('ngx-bootstrap/modal'), require('ngx-bootstrap/dropdown'), require('ngx-bootstrap/progressbar'), require('ngx-pipes')) :
3
- typeof define === 'function' && define.amd ? define('@universis/ngx-tables', ['exports', 'iso-639-1/build', 'bootstrap', 'rxjs', 'jquery', 'datatables.net', 'lodash', 'datatables.net-scroller', 'rxjs/add/observable/combineLatest', '@angular/common/http', '@themost/angular', '@themost/client', '@angular/core', '@angular/common', '@ngx-translate/core', '@angular/forms', '@universis/common', '@universis/common/routing', '@universis/forms', 'angular-formio', '@angular/router', 'ngx-bootstrap/modal', 'ngx-bootstrap/dropdown', 'ngx-bootstrap/progressbar', 'ngx-pipes'], factory) :
4
- (factory((global.universis = global.universis || {}, global.universis['ngx-tables'] = {}),global.ISO6391,global.bootstrap,global.rxjs,global.jQuery_,null,global.lodash,null,global.rxjs['add/observable/combineLatest'],global.ng.common.http,global.i1,global.client,global.ng.core,global.ng.common,global.core,global.ng.forms,global.i2,global.routing,global.forms$1,global.angularFormio,global.ng.router,global.modal,global.dropdown,global.progressbar,global.ngxPipes));
5
- }(this, (function (exports,ISO6391,bootstrap,rxjs,jQuery_,datatables_net,lodash,datatables_netScroller,combineLatest,http,i1,client,i0,common,core,forms,i2,routing,forms$1,angularFormio,i1$1,modal,dropdown,progressbar,ngxPipes) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('iso-639-1/build'), require('rxjs'), require('jquery'), require('datatables.net'), require('lodash'), require('datatables.net-scroller'), require('rxjs/add/observable/combineLatest'), require('@angular/common/http'), require('@themost/angular'), require('@themost/client'), require('@angular/core'), require('@angular/common'), require('@ngx-translate/core'), require('@angular/forms'), require('@universis/common'), require('@universis/common/routing'), require('@universis/forms'), require('angular-formio'), require('@angular/router'), require('ngx-bootstrap/modal'), require('ngx-bootstrap/progressbar'), require('ngx-pipes')) :
3
+ typeof define === 'function' && define.amd ? define('@universis/ngx-tables', ['exports', 'iso-639-1/build', 'rxjs', 'jquery', 'datatables.net', 'lodash', 'datatables.net-scroller', 'rxjs/add/observable/combineLatest', '@angular/common/http', '@themost/angular', '@themost/client', '@angular/core', '@angular/common', '@ngx-translate/core', '@angular/forms', '@universis/common', '@universis/common/routing', '@universis/forms', 'angular-formio', '@angular/router', 'ngx-bootstrap/modal', 'ngx-bootstrap/progressbar', 'ngx-pipes'], factory) :
4
+ (factory((global.universis = global.universis || {}, global.universis['ngx-tables'] = {}),global.ISO6391,global.rxjs,global.jQuery_,null,global.lodash,null,global.rxjs['add/observable/combineLatest'],global.ng.common.http,global.i1,global.client,global.ng.core,global.ng.common,global.core,global.ng.forms,global.i2,global.routing,global.forms$1,global.angularFormio,global.ng.router,global.modal,global.progressbar,global.ngxPipes));
5
+ }(this, (function (exports,ISO6391,rxjs,jQuery_,datatables_net,lodash,datatables_netScroller,combineLatest,http,i1,client,i0,common,core,forms,i2,routing,forms$1,angularFormio,i1$1,modal,progressbar,ngxPipes) { 'use strict';
6
6
 
7
7
  /*! *****************************************************************************
8
8
  Copyright (c) Microsoft Corporation.
@@ -685,6 +685,68 @@
685
685
  AdvancedColumnFormatter.templateCache.set(expr, result);
686
686
  return result;
687
687
  };
688
+ AdvancedColumnFormatter.prototype.createUrlTree = function (data, options) {
689
+ if (Array.isArray(options.commands)) {
690
+ var activatedRoute = this.injector.get(i1$1.ActivatedRoute);
691
+ var router = this.injector.get(i1$1.Router);
692
+ var commands = options.commands.map(function (command) {
693
+ if (typeof command === 'string') {
694
+ return AdvancedColumnFormatter.template(command)(data);
695
+ }
696
+ if (command.outlets) {
697
+ var commandOutlets_1 = {};
698
+ Object.keys(command.outlets).forEach(function (key) {
699
+ if (Object.prototype.hasOwnProperty.call(command.outlets, key)) {
700
+ var outlet = command.outlets[key];
701
+ if (Array.isArray(outlet)) {
702
+ Object.defineProperty(commandOutlets_1, key, {
703
+ enumerable: true,
704
+ configurable: true,
705
+ writable: true,
706
+ value: outlet.map(function (x) {
707
+ return AdvancedColumnFormatter.template(x)(data);
708
+ }),
709
+ });
710
+ }
711
+ else {
712
+ Object.defineProperty(commandOutlets_1, key, {
713
+ enumerable: true,
714
+ configurable: true,
715
+ writable: true,
716
+ value: outlet,
717
+ });
718
+ }
719
+ }
720
+ });
721
+ return {
722
+ outlets: commandOutlets_1,
723
+ };
724
+ }
725
+ return command;
726
+ });
727
+ var queryParams_1 = {};
728
+ var replaceUrl = true;
729
+ if (options.navigationExtras && options.navigationExtras.queryParams) {
730
+ Object.keys(options.navigationExtras.queryParams).map(function (key) {
731
+ var text = options.navigationExtras.queryParams[key];
732
+ queryParams_1[key] = AdvancedColumnFormatter.template(text)(data);
733
+ });
734
+ }
735
+ if (options.navigationExtras && typeof options.navigationExtras.replaceUrl !== 'undefined') {
736
+ replaceUrl = options.navigationExtras.replaceUrl;
737
+ }
738
+ var skipLocationChange = false;
739
+ if (options.navigationExtras && typeof options.navigationExtras.skipLocationChange !== 'undefined') {
740
+ skipLocationChange = options.navigationExtras.skipLocationChange;
741
+ }
742
+ return router.createUrlTree(commands, {
743
+ relativeTo: activatedRoute,
744
+ queryParams: queryParams_1,
745
+ replaceUrl: replaceUrl,
746
+ skipLocationChange: skipLocationChange,
747
+ });
748
+ }
749
+ };
688
750
  AdvancedColumnFormatter.templateCache = new Map();
689
751
  return AdvancedColumnFormatter;
690
752
  }());
@@ -709,7 +771,6 @@
709
771
  return _super.call(this) || this;
710
772
  }
711
773
  ButtonFormatter.prototype.render = function (data, type, row, meta) {
712
- var _this = this;
713
774
  if (data == null) {
714
775
  return '';
715
776
  }
@@ -732,63 +793,7 @@
732
793
  buttonTitle = this.injector.get(core.TranslateService).instant(formatOptions.buttonTitle);
733
794
  }
734
795
  if (Array.isArray(this.formatOptions.commands)) {
735
- var activatedRoute = this.injector.get(i1$1.ActivatedRoute);
736
- var router = this.injector.get(i1$1.Router);
737
- var commands = this.formatOptions.commands.map(function (command) {
738
- if (typeof command === 'string') {
739
- return AdvancedColumnFormatter.template(command)(row);
740
- }
741
- if (command.outlets) {
742
- var commandOutlets_1 = {};
743
- Object.keys(command.outlets).forEach(function (key) {
744
- if (Object.prototype.hasOwnProperty.call(command.outlets, key)) {
745
- var outlet = command.outlets[key];
746
- if (Array.isArray(outlet)) {
747
- Object.defineProperty(commandOutlets_1, key, {
748
- enumerable: true,
749
- configurable: true,
750
- writable: true,
751
- value: outlet.map(function (x) {
752
- return AdvancedColumnFormatter.template(x)(row);
753
- }),
754
- });
755
- }
756
- else {
757
- Object.defineProperty(commandOutlets_1, key, {
758
- enumerable: true,
759
- configurable: true,
760
- writable: true,
761
- value: outlet,
762
- });
763
- }
764
- }
765
- });
766
- return {
767
- outlets: commandOutlets_1,
768
- };
769
- }
770
- return command;
771
- });
772
- var queryParams_1 = {};
773
- var replaceUrl = true;
774
- if (this.formatOptions.navigationExtras && this.formatOptions.navigationExtras.queryParams) {
775
- Object.keys(this.formatOptions.navigationExtras.queryParams).map(function (key) {
776
- queryParams_1[key] = AdvancedColumnFormatter.template(_this.formatOptions.navigationExtras.queryParams[key])(row);
777
- });
778
- }
779
- if (this.formatOptions.navigationExtras && typeof this.formatOptions.navigationExtras.replaceUrl !== 'undefined') {
780
- replaceUrl = this.formatOptions.navigationExtras.replaceUrl;
781
- }
782
- var skipLocationChange = false;
783
- if (this.formatOptions.navigationExtras && typeof this.formatOptions.navigationExtras.skipLocationChange !== 'undefined') {
784
- skipLocationChange = this.formatOptions.navigationExtras.skipLocationChange;
785
- }
786
- var routerLink = router.createUrlTree(commands, {
787
- relativeTo: activatedRoute,
788
- queryParams: queryParams_1,
789
- replaceUrl: replaceUrl,
790
- skipLocationChange: skipLocationChange,
791
- }).toString();
796
+ var routerLink = this.createUrlTree(row, this.formatOptions);
792
797
  return "<a class=\"" + formatOptions.buttonClass + "\" title=\"" + buttonTitle + "\" href=\"#" + routerLink + "\">" + buttonText + "</a>";
793
798
  }
794
799
  // and return button
@@ -848,10 +853,14 @@
848
853
  }
849
854
  }
850
855
  // return the dropdown menu with 3 dots
851
- return "<div class='dropdown details-control' data-id='" + data + "' data-type='student' >\n <a id=\"dropdownMenuButton-" + data + "\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <span class=\"fa-2x text-dots\"></span></a>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownMenuButton-" + data + "\">\n " + actions.map(function (x) {
856
+ return "<div class='dropdown details-control' data-id='" + data + "' data-type='student' >\n <a id=\"dropdownMenuButton-" + data + "\"\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-" + data + "\">\n " + actions.map(function (x) {
852
857
  if (x.type === 'divider') {
853
858
  return "<div class=\"dropdown-divider\"></div>";
854
859
  }
860
+ if (x.formatOptions && x.formatOptions.commands) {
861
+ var urlTree = _this.createUrlTree(row, x.formatOptions);
862
+ return "<a data-name='" + x.name + "' class=\"dropdown-item\" href=\"" + urlTree.toString() + "\">\n " + _this.injector.get(core.TranslateService).instant(x.title) + "\n </a>";
863
+ }
855
864
  return "<a data-name='" + x.name + "' class=\"dropdown-item\" href=\"" + AdvancedColumnFormatter.template(x.href)(row) + "\">\n " + _this.injector.get(core.TranslateService).instant(x.title) + "\n </a>";
856
865
  })
857
866
  .join('') + "\n </div>\n </div>";
@@ -859,12 +868,149 @@
859
868
  return data;
860
869
  };
861
870
  ActionLinkFormatter.prototype.afterRender = function (cell, cellData, rowData, rowIndex, colIndex) {
862
- // assign bootstrap dropdown
863
- // tslint:disable-next-line: no-unused-expression
864
- new bootstrap.Dropdown(cell);
871
+ // assign bootstrap dropdown (?)
865
872
  };
866
873
  return ActionLinkFormatter;
867
874
  }(AdvancedColumnFormatter));
875
+ var ActionButtonFormatter = /** @class */ (function (_super) {
876
+ __extends(ActionButtonFormatter, _super);
877
+ function ActionButtonFormatter() {
878
+ return _super.call(this) || this;
879
+ }
880
+ ActionButtonFormatter.prototype.render = function (data, type, row, meta) {
881
+ var _this = this;
882
+ var e_2, _a;
883
+ // get column
884
+ var column = meta.settings.aoColumns[meta.col];
885
+ if (column && column.data) {
886
+ var actions = this.actions || [];
887
+ var index = 1;
888
+ try {
889
+ for (var actions_2 = __values(actions), actions_2_1 = actions_2.next(); !actions_2_1.done; actions_2_1 = actions_2.next()) {
890
+ var action = actions_2_1.value;
891
+ Object.assign(action, {
892
+ name: action.name || "action" + index,
893
+ });
894
+ index += 1;
895
+ }
896
+ }
897
+ catch (e_2_1) {
898
+ e_2 = { error: e_2_1 };
899
+ }
900
+ finally {
901
+ try {
902
+ if (actions_2_1 && !actions_2_1.done && (_a = actions_2.return))
903
+ _a.call(actions_2);
904
+ }
905
+ finally {
906
+ if (e_2)
907
+ throw e_2.error;
908
+ }
909
+ }
910
+ var buttonText = void 0;
911
+ if (this.formatOptions && this.formatOptions.buttonText) {
912
+ // if button text is a literal expression
913
+ if (this.formatOptions.buttonText.includes('${')) {
914
+ // use template
915
+ buttonText = AdvancedColumnFormatter.template(this.formatOptions.buttonText)(row);
916
+ }
917
+ else {
918
+ // otherwise translate it
919
+ buttonText = this.injector.get(core.TranslateService).instant(this.formatOptions.buttonText);
920
+ }
921
+ }
922
+ var buttonTitle = void 0;
923
+ if (this.formatOptions && this.formatOptions.buttonTitle) {
924
+ buttonTitle = this.injector.get(core.TranslateService).instant(this.formatOptions.buttonTbuttonTitleext);
925
+ }
926
+ var buttonClass = (this.formatOptions && this.formatOptions.buttonClass) || 'btn btn-light';
927
+ // return the dropdown menu with 3 dots
928
+ return "<div class='dropdown details-control' data-id='" + data + "'>\n <a class=\"" + buttonClass + " dropdown-toggle\" href=\"#\" role=\"button\" title=\"" + buttonTitle + "\"\n id=\"dropdownMenuButton-" + data + "\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n " + buttonText + "\n </a>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownMenuButton-" + data + "\">\n " + actions.map(function (x) {
929
+ if (x.type === 'divider') {
930
+ return "<div class=\"dropdown-divider\"></div>";
931
+ }
932
+ if (x.commands) {
933
+ var urlTree = _this.createUrlTree(row, x);
934
+ return "<a class=\"dropdown-item\" href=\"" + urlTree.toString() + "\">\n " + _this.injector.get(core.TranslateService).instant(x.title) + "\n </a>";
935
+ }
936
+ return "<a class=\"dropdown-item\" href=\"" + AdvancedColumnFormatter.template(x.href)(row) + "\">\n " + _this.injector.get(core.TranslateService).instant(x.title) + "\n </a>";
937
+ })
938
+ .join('') + "\n </div>\n </div>";
939
+ }
940
+ return data;
941
+ };
942
+ ActionButtonFormatter.prototype.afterRender = function (cell, cellData, rowData, rowIndex, colIndex) {
943
+ // assign bootstrap dropdown (?)
944
+ };
945
+ return ActionButtonFormatter;
946
+ }(AdvancedColumnFormatter));
947
+ var ActionSplitButtonFormatter = /** @class */ (function (_super) {
948
+ __extends(ActionSplitButtonFormatter, _super);
949
+ function ActionSplitButtonFormatter() {
950
+ return _super.call(this) || this;
951
+ }
952
+ ActionSplitButtonFormatter.prototype.render = function (data, type, row, meta) {
953
+ var _this = this;
954
+ var e_3, _a;
955
+ // get column
956
+ var column = meta.settings.aoColumns[meta.col];
957
+ if (column && column.data) {
958
+ var actions = this.actions || [];
959
+ var index = 1;
960
+ try {
961
+ for (var actions_3 = __values(actions), actions_3_1 = actions_3.next(); !actions_3_1.done; actions_3_1 = actions_3.next()) {
962
+ var action = actions_3_1.value;
963
+ Object.assign(action, {
964
+ name: action.name || "action" + index,
965
+ });
966
+ index += 1;
967
+ }
968
+ }
969
+ catch (e_3_1) {
970
+ e_3 = { error: e_3_1 };
971
+ }
972
+ finally {
973
+ try {
974
+ if (actions_3_1 && !actions_3_1.done && (_a = actions_3.return))
975
+ _a.call(actions_3);
976
+ }
977
+ finally {
978
+ if (e_3)
979
+ throw e_3.error;
980
+ }
981
+ }
982
+ if (actions.length === 0) {
983
+ return;
984
+ }
985
+ var buttonClass = (this.formatOptions && this.formatOptions.buttonClass) || 'btn btn-light';
986
+ // return the dropdown menu with 3 dots
987
+ var defaultAction = actions[0];
988
+ var defaultActionHref = void 0;
989
+ if (defaultAction && defaultAction.commands) {
990
+ defaultActionHref = this.createUrlTree(row, defaultAction).toString();
991
+ }
992
+ else {
993
+ defaultActionHref = AdvancedColumnFormatter.template(defaultAction.href)(row);
994
+ }
995
+ return "<div class=\"btn-group\">\n <a type=\"button\" class=\"" + buttonClass + "\" href=\"" + defaultActionHref + "\">\n " + this.injector.get(core.TranslateService).instant(defaultAction.title) + "\n </a>\n <button type=\"button\" class=\"" + buttonClass + " dropdown-toggle dropdown-toggle-split\"\n data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <span class=\"sr-only\">" + this.injector.get(core.TranslateService).instant('Toggle Dropdown') + "</span>\n </button>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownMenuButton-" + data + "\">\n " + actions.map(function (x) {
996
+ if (x.title === '-') {
997
+ return "<div class=\"dropdown-divider\"></div>";
998
+ }
999
+ if (x.commands) {
1000
+ var urlTree = _this.createUrlTree(row, x);
1001
+ return "<a class=\"dropdown-item\" href=\"" + urlTree.toString() + "\">\n " + _this.injector.get(core.TranslateService).instant(x.title) + "\n </a>";
1002
+ }
1003
+ return "<a class=\"dropdown-item\" href=\"" + AdvancedColumnFormatter.template(x.href)(row) + "\">\n " + _this.injector.get(core.TranslateService).instant(x.title) + "\n </a>";
1004
+ })
1005
+ .join('') + "\n </div>\n </div>";
1006
+ }
1007
+ return data;
1008
+ };
1009
+ ActionSplitButtonFormatter.prototype.afterRender = function (cell, cellData, rowData, rowIndex, colIndex) {
1010
+ // assign bootstrap dropdown (?)
1011
+ };
1012
+ return ActionSplitButtonFormatter;
1013
+ }(AdvancedColumnFormatter));
868
1014
  var SelectRowFormatter = /** @class */ (function (_super) {
869
1015
  __extends(SelectRowFormatter, _super);
870
1016
  function SelectRowFormatter() {
@@ -949,7 +1095,7 @@
949
1095
  return _super.call(this) || this;
950
1096
  }
951
1097
  NgClassFormatter.prototype.render = function (data, type, row, meta) {
952
- var e_2, _a;
1098
+ var e_4, _a;
953
1099
  // get column
954
1100
  var column = meta.settings.aoColumns[meta.col];
955
1101
  if (column && column.data) {
@@ -969,8 +1115,8 @@
969
1115
  }
970
1116
  }
971
1117
  }
972
- catch (e_2_1) {
973
- e_2 = { error: e_2_1 };
1118
+ catch (e_4_1) {
1119
+ e_4 = { error: e_4_1 };
974
1120
  }
975
1121
  finally {
976
1122
  try {
@@ -978,8 +1124,8 @@
978
1124
  _a.call(_b);
979
1125
  }
980
1126
  finally {
981
- if (e_2)
982
- throw e_2.error;
1127
+ if (e_4)
1128
+ throw e_4.error;
983
1129
  }
984
1130
  }
985
1131
  }
@@ -1125,7 +1271,7 @@
1125
1271
  this.configChanges = new rxjs.BehaviorSubject(null);
1126
1272
  this.height = 800;
1127
1273
  this.showActions = true;
1128
- this.autoLoad = false;
1274
+ this.autoLoad = true;
1129
1275
  this.load = new i0.EventEmitter();
1130
1276
  this.init = new i0.EventEmitter();
1131
1277
  this.reload = new i0.EventEmitter();
@@ -1585,7 +1731,7 @@
1585
1731
  });
1586
1732
  if (items_1.length > 0) {
1587
1733
  Object.assign(columnDefinition, {
1588
- afterRender: function (cell, cellData, rowData, rowIndex, colIndex) {
1734
+ createdCell: function (cell, cellData, rowData, rowIndex, colIndex) {
1589
1735
  items_1.forEach(function (columnFormatter) {
1590
1736
  var formatter = self._columnFormatters[columnFormatter.formatter];
1591
1737
  if (formatter && typeof formatter.afterRender === 'function') {
@@ -1603,6 +1749,14 @@
1603
1749
  render: formatter.render.bind(column),
1604
1750
  });
1605
1751
  }
1752
+ if (formatter && typeof formatter.afterRender === 'function') {
1753
+ Object.assign(columnDefinition, {
1754
+ render: formatter.render.bind(column),
1755
+ });
1756
+ Object.assign(columnDefinition, {
1757
+ createdCell: formatter.afterRender.bind(column),
1758
+ });
1759
+ }
1606
1760
  }
1607
1761
  return columnDefinition;
1608
1762
  });
@@ -1662,7 +1816,8 @@
1662
1816
  self.select.emit(row);
1663
1817
  });
1664
1818
  }
1665
- tableElement_1.find('input.s-row').on('click', _this.onSelectionChange.bind(_this));
1819
+ var elements = tableElement_1.find('input.s-row');
1820
+ elements.off('click').on('click', _this.onSelectionChange.bind(_this));
1666
1821
  // make selection on current page
1667
1822
  var key = _this.config.columns[0].property;
1668
1823
  if (_this.selected.length > 0) {
@@ -1874,6 +2029,7 @@
1874
2029
  }
1875
2030
  else {
1876
2031
  Object.assign(settings, {
2032
+ scrollY: this.scrollY,
1877
2033
  paging: this.paging,
1878
2034
  pageLength: this.pageLength,
1879
2035
  });
@@ -1985,7 +2141,7 @@
1985
2141
  if (item) {
1986
2142
  // redraw row
1987
2143
  row.data(item);
1988
- jQuery(row.node()).find(':checkbox').on('click', _this.onSelectionChange.bind(_this));
2144
+ jQuery(row.node()).find(':checkbox').off('click').on('click', _this.onSelectionChange.bind(_this));
1989
2145
  // if row is already selected
1990
2146
  if (checked) {
1991
2147
  _this.selectRow(row, true);
@@ -2023,6 +2179,7 @@
2023
2179
  if (findItemIndex < 0) {
2024
2180
  // add row to selected rows
2025
2181
  this.selected.push(row);
2182
+ this.selectedItems.emit(this.selected);
2026
2183
  }
2027
2184
  }
2028
2185
  else {
@@ -2036,6 +2193,7 @@
2036
2193
  });
2037
2194
  if (findItemIndex < 0) {
2038
2195
  this.unselected.push(row);
2196
+ this.selectedItems.emit(this.selected);
2039
2197
  }
2040
2198
  }
2041
2199
  }
@@ -2103,7 +2261,7 @@
2103
2261
  selector: 'app-advanced-table',
2104
2262
  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 ",
2105
2263
  encapsulation: i0.ViewEncapsulation.None,
2106
- styles: ["table.dataTable thead .sorting{background-image:none}table.dataTable thead .sorting_asc{background-position:95% 60%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsSAAALEgHS3X78AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAEtJREFUKJFjYBgywAOKMQALFjE/BgaGTCibjYGBYRM+kz0ZGBh2MTAw8DAwMHAxMDBsY2BgCCBGMQzg1IRNMV5NuVAJXIALqmYwAgBBkAlPRCLcLwAAAABJRU5ErkJggg==)}table.dataTable thead .sorting_desc{background-position:95% 60%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAArzAAAK8wHvFRX1AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAFNJREFUKJHVzTEKgDAQRNGHZfBg2sSTeDMLKwXPYuVJbBKQQEyrH6bZ+cPyWWaElz4kR5cOJ1b0FXnBVRYjjmIUsGGqvX6OmnImYk+JLTkzpPyBGwrtCvfBe56nAAAAAElFTkSuQmCC)}table.dataTable thead th{color:#73818e;font-size:.75rem;font-weight:600;padding-top:16px;padding-bottom:4px;border-bottom:none;padding-left:8px}table.dataTable tbody tr:first-child td:first-child{border-radius:6px 0}table.dataTable tbody tr:first-child td:last-child{border-radius:0 6px}table.dataTable tbody tr{border-radius:6px}table.dataTable tbody tr td:first-child{border-left:1px solid #c2cfd6}table.dataTable tbody tr td:last-child{border-right:1px solid #c2cfd6}table.dataTable tbody tr td{padding-top:16px;padding-bottom:16px;border-top:1px solid #c2cfd6}table.dataTable tbody tr:last-child td:first-child{border-radius:0 0 0 6px}table.dataTable tbody tr:last-child td:last-child{border-radius:0 0 6px}table.dataTable tbody tr:last-child td{border-bottom:1px solid #c2cfd6}table.dataTable td.dataTables_empty{border:none!important}table.dataTable.no-footer{border-bottom:none}.dataTables_paginate .btn.previous{margin-right:8px}.dataTables_paginate .btn.next{margin-left:8px}.dataTables_info,.dataTables_paginate{margin-top:1rem}.dataTables_paginate span .btn{border-radius:1.5rem}.dataTables_filter{display:none}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:0;overflow:auto}.dataTables_paginate{display:none}.dataTable.processing{opacity:15%}.dataTables_wrapper .dataTables_processing{background:0 0;position:absolute;display:inline-block;top:25%;z-index:5;color:#73818e}.text-decoration-line-through{text-decoration:line-through!important}tr.removed .checkbox+label{visibility:hidden}"]
2264
+ styles: ["table.dataTable thead .sorting{background-image:none}table.dataTable thead .sorting_asc{background-position:95% 60%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsSAAALEgHS3X78AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAEtJREFUKJFjYBgywAOKMQALFjE/BgaGTCibjYGBYRM+kz0ZGBh2MTAw8DAwMHAxMDBsY2BgCCBGMQzg1IRNMV5NuVAJXIALqmYwAgBBkAlPRCLcLwAAAABJRU5ErkJggg==)}table.dataTable thead .sorting_desc{background-position:95% 60%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAArzAAAK8wHvFRX1AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAFNJREFUKJHVzTEKgDAQRNGHZfBg2sSTeDMLKwXPYuVJbBKQQEyrH6bZ+cPyWWaElz4kR5cOJ1b0FXnBVRYjjmIUsGGqvX6OmnImYk+JLTkzpPyBGwrtCvfBe56nAAAAAElFTkSuQmCC)}table.dataTable thead th{color:#73818e;font-size:.75rem;font-weight:600;padding-top:16px;padding-bottom:4px;border-bottom:none;padding-left:8px}table.dataTable tbody tr:first-child td:first-child{border-radius:6px 0}table.dataTable tbody tr:first-child td:last-child{border-radius:0 6px}table.dataTable tbody tr{border-radius:6px}table.dataTable tbody tr td:first-child{border-left:1px solid #c2cfd6}table.dataTable tbody tr td:last-child{border-right:1px solid #c2cfd6}table.dataTable tbody tr td{padding-top:8px;padding-bottom:8px;border-top:1px solid #c2cfd6}table.dataTable tbody tr:last-child td:first-child{border-radius:0 0 0 6px}table.dataTable tbody tr:last-child td:last-child{border-radius:0 0 6px}table.dataTable tbody tr:last-child td{border-bottom:1px solid #c2cfd6}table.dataTable td.dataTables_empty{border:none!important}table.dataTable.no-footer{border-bottom:none}.dataTables_paginate .btn.previous{margin-right:8px}.dataTables_paginate .btn.next{margin-left:8px}.dataTables_info,.dataTables_paginate{margin-top:1rem}.dataTables_paginate span .btn{border-radius:1.5rem}.dataTables_filter{display:none}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:0;overflow:auto}.dataTables_paginate{display:none}.dataTable.processing{opacity:15%}.dataTables_wrapper .dataTables_processing{background:0 0;position:absolute;display:inline-block;top:25%;z-index:5;color:#73818e}.text-decoration-line-through{text-decoration:line-through!important}tr.removed .checkbox+label{visibility:hidden}"]
2107
2265
  }] }
2108
2266
  ];
2109
2267
  /** @nocollapse */
@@ -2652,7 +2810,7 @@
2652
2810
 
2653
2811
  // important: export this const due to AOT compilation errors
2654
2812
  // see more https://angular.io/guide/aot-metadata-errors#only-initialized-variables
2655
- var AdvancedTableModalBaseTemplate = "\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\"\n (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"searchText\"\n class=\"form-control bg-gray-100 border-0\"\n placeholder=\"{{'Tables.SearchPlaceholder' | translate}}\" aria-label=\"Search\" aria-describedby=\"basic-addon2\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-default bg-gray-100 border-0\" type=\"button\">\n <i class=\"fa fa-search text-secondary\"></i>\n </button>\n </div>\n </div>\n </div>\n <div #emptyTable class=\"d-none\">\n <div>\n <div class=\"mt-4\">\n <div class=\"icon-circle bg-gray-300 border-gray-100\"></div>\n </div>\n <div class=\"mt-4\">\n <h4 class=\"font-3xl text-dark\" [translate]=\"'Tables.EmptyTableTitle'\"></h4>\n <p class=\"font-lg text-dark\" [translate]=\"'Tables.EmptyTableMessage'\"></p>\n </div>\n\n </div>\n </div>\n <div class=\"col-12 col-lg-5\">\n <div class=\"btn-toolbar\">\n <button class=\"btn btn-gray-100\">\n <i class=\"fa fa-sliders-h pr-2 text-secondary\" aria-hidden=\"true\"></i>{{'Tables.Filters' | translate}}\n </button>\n <div #dropdownFilter class=\"dropdown ml-3\" dropdown>\n <button class=\"btn btn-gray-100 dropdown-toggle\"\n type=\"button\" id=\"dropdownDefaultFilters\"\n data-toggle=\"dropdown\" dropdownToggle>\n {{ this.defaultFilter.name | translate }}\n </button>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownDefaultFilters\" *dropdownMenu>\n <a class=\"dropdown-item\" *ngFor=\"let filter of defaultFilters\" (click)=\"advancedSearch(filter.filter ? filter : '')\">\n {{ filter.name | translate }}\n </a>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col text-lg-right mt-3 mt-lg-0\">\n <button [disabled]=\"true\" class=\"btn rounded-pill btn-outline-theme\">\n <span class=\"pr-2 font-lg\">+</span><span [translate]=\"'Tables.AddItem'\"></span>\n </button>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\" [ngClass]=\"{ 'component-loading': loading}\">\n <app-advanced-table #advancedTable (init)=\"onTableInit($event)\"\n (load)=\"onDataLoad($event)\"\n [selectable]=\"true\"\n [multipleSelect]=\"true\"\n [scrollX]=\"false\" [scrollY]=\"320\"\n [pageLength]=\"pageLength\"\n [scrollable]=\"false\" [showFooter]=\"false\"\n [showActions]=\"false\" [lengthMenu]=\"lengthMenu\"\n [config]=\"tableConfig\" [configSrc]=\"tableConfigSrc\"></app-advanced-table>\n </div>\n </div>\n <div class=\"row mt-3 table-custom-pager\">\n <div class=\"col-12 d-flex\" *ngIf=\"recordsTotal\">\n <div class=\"mt-2 ml-auto mr-3 text-secondary\" [translate]=\"'Tables.RecordsPerPage'\"></div>\n <div #dropdownLength class=\"dropdown mr-3\" dropdown>\n <button class=\"btn btn-gray-100 dropdown-toggle\"\n type=\"button\" id=\"dropdownPageSize\" data-toggle=\"dropdown\"\n dropdownToggle>\n {{pageLength}}\n </button>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownPageSize\" *dropdownMenu>\n <button (click)=\"setLength(item)\"\n class=\"dropdown-item dropdown-item-theme\"\n type=\"button\" *ngFor=\"let item of lengthMenu\">{{item}}</button>\n </div>\n </div>\n <div class=\"mt-2 mr-2\" [translate]=\"'Tables.PageInfo'\" [translateParams]=\"pageInfo\"></div>\n <button [disabled]=\"pageInfo && pageInfo.page === 0\" class=\"btn text-nowrap\" (click)=\"firstPage()\">\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===0\" class=\"btn\" (click)=\"previousPage()\">\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===pageInfo.pages-1\" class=\"btn\" (click)=\"nextPage()\">\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===pageInfo.pages-1\" class=\"btn text-nowrap\" (click)=\"lastPage()\">\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n </button>\n </div>\n </div>\n </div>\n";
2813
+ var AdvancedTableModalBaseTemplate = "\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\"\n (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"searchText\"\n class=\"form-control bg-gray-100 border-0\"\n placeholder=\"{{'Tables.SearchPlaceholder' | translate}}\" aria-label=\"Search\" aria-describedby=\"basic-addon2\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-default bg-gray-100 border-0\" type=\"button\">\n <i class=\"fa fa-search text-secondary\"></i>\n </button>\n </div>\n </div>\n </div>\n <div #emptyTable class=\"d-none\">\n <div>\n <div class=\"mt-4\">\n <div class=\"icon-circle bg-gray-300 border-gray-100\"></div>\n </div>\n <div class=\"mt-4\">\n <h4 class=\"font-3xl text-dark\" [translate]=\"'Tables.EmptyTableTitle'\"></h4>\n <p class=\"font-lg text-dark\" [translate]=\"'Tables.EmptyTableMessage'\"></p>\n </div>\n\n </div>\n </div>\n <div class=\"col-12 col-lg-5\">\n <div class=\"btn-toolbar\">\n <button class=\"btn btn-gray-100\">\n <i class=\"fa fa-sliders-h pr-2 text-secondary\" aria-hidden=\"true\"></i>{{'Tables.Filters' | translate}}\n </button>\n <div #dropdownFilter class=\"dropdown ml-3\">\n <button class=\"btn btn-gray-100 dropdown-toggle\"\n type=\"button\" id=\"dropdownDefaultFilters\"\n data-toggle=\"dropdown\" dropdownToggle>\n {{ this.defaultFilter.name | translate }}\n </button>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownDefaultFilters\">\n <button type=\"button\" class=\"dropdown-item\" *ngFor=\"let filter of defaultFilters\" (click)=\"onFilterSelect(filter)\">\n {{ filter.name | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col text-lg-right mt-3 mt-lg-0\">\n <button [disabled]=\"true\" class=\"btn rounded-pill btn-outline-theme\">\n <span class=\"pr-2 font-lg\">+</span><span [translate]=\"'Tables.AddItem'\"></span>\n </button>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\" [ngClass]=\"{ 'component-loading': loading}\">\n <app-advanced-table #advancedTable (init)=\"onTableInit($event)\"\n (load)=\"onDataLoad($event)\"\n [selectable]=\"true\"\n [multipleSelect]=\"true\"\n [scrollX]=\"false\" [scrollY]=\"320\"\n [pageLength]=\"pageLength\"\n [scrollable]=\"false\" [showFooter]=\"false\"\n [showActions]=\"false\" [lengthMenu]=\"lengthMenu\"\n [config]=\"tableConfig\" [configSrc]=\"tableConfigSrc\"></app-advanced-table>\n </div>\n </div>\n <div class=\"row mt-3 table-custom-pager\">\n <div class=\"col-12 d-flex\" *ngIf=\"recordsTotal\">\n <div class=\"mt-2 ml-auto mr-3 text-secondary\" [translate]=\"'Tables.RecordsPerPage'\"></div>\n <div #dropdownLength class=\"dropdown mr-3\">\n <button class=\"btn btn-gray-100 dropdown-toggle\"\n type=\"button\" id=\"dropdownPageSize\" data-toggle=\"dropdown\"\n dropdownToggle>\n {{pageLength}}\n </button>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownPageSize\">\n <button (click)=\"setLength(item)\"\n class=\"dropdown-item dropdown-item-theme\"\n type=\"button\" *ngFor=\"let item of lengthMenu\">{{item}}</button>\n </div>\n </div>\n <div class=\"mt-2 mr-2\" [translate]=\"'Tables.PageInfo'\" [translateParams]=\"pageInfo\"></div>\n <button [disabled]=\"pageInfo && pageInfo.page === 0\" class=\"btn text-nowrap\" (click)=\"firstPage()\">\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===0\" class=\"btn\" (click)=\"previousPage()\">\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===pageInfo.pages-1\" class=\"btn\" (click)=\"nextPage()\">\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===pageInfo.pages-1\" class=\"btn text-nowrap\" (click)=\"lastPage()\">\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n </button>\n </div>\n </div>\n </div>\n";
2656
2814
  var AdvancedTableModalBaseComponent = /** @class */ (function (_super) {
2657
2815
  __extends(AdvancedTableModalBaseComponent, _super);
2658
2816
  function AdvancedTableModalBaseComponent(_router, _activatedRoute, _context, advancedFilterValueProvider, datePipe) {
@@ -2821,15 +2979,18 @@
2821
2979
  }
2822
2980
  // Do nothing in absence of configuration.
2823
2981
  if (!tableConfig || !Array.isArray(tableConfig.criteria)) {
2824
- console.warn('No table configuration available', this.tableConfig);
2982
+ return [];
2983
+ }
2984
+ if (searchItem.filter == null) {
2825
2985
  return [];
2826
2986
  }
2827
2987
  var matchedCriterion = tableConfig.criteria.find(function (criterion) {
2828
2988
  return Object.prototype.hasOwnProperty.call(searchItem.filter, criterion.name);
2829
2989
  });
2830
- if (!matchedCriterion) {
2990
+ if (matchedCriterion == null) {
2831
2991
  return [];
2832
2992
  }
2993
+ var value = searchItem.filter[matchedCriterion.name];
2833
2994
  var criterionSafeName = matchedCriterion.name !== null
2834
2995
  ? matchedCriterion.name.toString()
2835
2996
  : '';
@@ -2843,7 +3004,7 @@
2843
3004
  }
2844
3005
  else if (criterionSafeName !== 'undefined') {
2845
3006
  applicableFilter = (this._template.transform(matchedCriterion.filter, Object.assign({
2846
- value: matchedCriterion.filter
3007
+ value: value
2847
3008
  }, defaultFilterValues)));
2848
3009
  }
2849
3010
  else {
@@ -2851,6 +3012,9 @@
2851
3012
  }
2852
3013
  return [applicableFilter];
2853
3014
  };
3015
+ AdvancedTableModalBaseComponent.prototype.onFilterSelect = function (value) {
3016
+ this.advancedSearch(value);
3017
+ };
2854
3018
  /**
2855
3019
  *
2856
3020
  * Runs a filter against the modal table
@@ -2907,6 +3071,7 @@
2907
3071
  };
2908
3072
  AdvancedTableModalBaseComponent.decorators = [
2909
3073
  { type: i0.Component, args: [{
3074
+ // tslint:disable-next-line: component-selector
2910
3075
  selector: 'app-advanced-table-modal',
2911
3076
  template: AdvancedTableModalBaseTemplate,
2912
3077
  styles: ["\n\n "]
@@ -2967,7 +3132,7 @@
2967
3132
  { type: i0.Component, args: [{
2968
3133
  // tslint:disable-next-line: component-selector
2969
3134
  selector: 'app-advanced-select',
2970
- 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\" dropdown>\n <button dropdownToggle class=\"btn btn-gray-100 dropdown-toggle\" type=\"button\" id=\"dropdownDefaultFilters\"\n data-toggle=\"dropdown\">\n {{ this.defaultFilter.name | translate }}\n </button>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownDefaultFilters\" *dropdownMenu>\n <a class=\"dropdown-item\" *ngFor=\"let filter of defaultFilters\"\n (click)=\"advancedSearch(filter.filter ? filter : '')\">\n {{ filter.name | translate }}\n </a>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col text-lg-right mt-3 mt-lg-0\">\n <button [disabled]=\"true\" class=\"btn rounded-pill btn-outline-theme\">\n <span class=\"pr-2 font-lg\">+</span><span [translate]=\"'Tables.AddItem'\"></span>\n </button>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\" [ngClass]=\"{ 'component-loading': loading}\">\n <app-advanced-table #advancedTable (init)=\"onTableInit($event)\" (load)=\"onDataLoad($event)\"\n [autoLoad]=\"true\"\n [selectable]=\"true\" [multipleSelect]=\"true\" [scrollX]=\"false\" [scrollY]=\"320\" [pageLength]=\"pageLength\"\n [scrollable]=\"false\" [showFooter]=\"false\" [showActions]=\"false\" [lengthMenu]=\"lengthMenu\"\n [config]=\"tableConfig\" [configSrc]=\"tableConfigSrc\"></app-advanced-table>\n </div>\n </div>\n <div class=\"row mt-3 table-custom-pager\">\n <div class=\"col-12 d-flex\" *ngIf=\"recordsTotal\">\n <div class=\"mt-2 ml-auto mr-3 text-secondary\" [translate]=\"'Tables.RecordsPerPage'\"></div>\n <div class=\"dropdown mr-3\" dropdown>\n <button dropdownToggle class=\"btn btn-gray-100 dropdown-toggle\" type=\"button\" id=\"dropdownPageSize\"\n data-toggle=\"dropdown\">\n {{pageLength}}\n </button>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownPageSize\" *dropdownMenu>\n <button (click)=\"setLength(item)\" class=\"dropdown-item dropdown-item-theme\" type=\"button\"\n *ngFor=\"let item of lengthMenu\">{{item}}</button>\n </div>\n </div>\n <div class=\"mt-2 mr-2\" [translate]=\"'Tables.PageInfo'\" [translateParams]=\"pageInfo\"></div>\n <button [disabled]=\"pageInfo && pageInfo.page === 0\" class=\"btn text-nowrap\" (click)=\"firstPage()\">\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===0\" class=\"btn\" (click)=\"previousPage()\">\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===pageInfo.pages-1\" class=\"btn\" (click)=\"nextPage()\">\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===pageInfo.pages-1\" class=\"btn text-nowrap\"\n (click)=\"lastPage()\">\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n </button>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-footer justify-content-end\">\n <button [disabled]=\"okButtonDisabled\" (click)=\"ok()\" type=\"button\" [ngClass]=\"okButtonClass\">\n {{okButtonText | translate}}\n </button>\n <button [disabled]=\"cancelButtonDisabled\" (click)=\"cancel()\" type=\"button\" [ngClass]=\"cancelButtonClass\"\n data-dismiss=\"modal\">\n {{ cancelButtonText | translate}}\n </button>\n</div>\n",
3135
+ 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\">\n <button [disabled]=\"true\" class=\"btn rounded-pill btn-outline-theme\">\n <span class=\"pr-2 font-lg\">+</span><span [translate]=\"'Tables.AddItem'\"></span>\n </button>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\" [ngClass]=\"{ 'component-loading': loading}\">\n <app-advanced-table #advancedTable (init)=\"onTableInit($event)\" (load)=\"onDataLoad($event)\"\n [autoLoad]=\"true\"\n [selectable]=\"true\" [multipleSelect]=\"true\" [scrollX]=\"false\" [scrollY]=\"320\" [pageLength]=\"pageLength\"\n [scrollable]=\"false\" [showFooter]=\"false\" [showActions]=\"false\" [lengthMenu]=\"lengthMenu\"\n [config]=\"tableConfig\" [configSrc]=\"tableConfigSrc\"></app-advanced-table>\n </div>\n </div>\n <div class=\"row mt-3 table-custom-pager\">\n <div class=\"col-12 d-flex\" *ngIf=\"recordsTotal\">\n <div class=\"mt-2 ml-auto mr-3 text-secondary\" [translate]=\"'Tables.RecordsPerPage'\"></div>\n <div class=\"dropdown mr-3\">\n <button dropdownToggle class=\"btn btn-gray-100 dropdown-toggle\" type=\"button\" id=\"dropdownPageSize\"\n data-toggle=\"dropdown\">\n {{pageLength}}\n </button>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownPageSize\">\n <button (click)=\"setLength(item)\" class=\"dropdown-item dropdown-item-theme\" type=\"button\"\n *ngFor=\"let item of lengthMenu\">{{item}}</button>\n </div>\n </div>\n <div class=\"mt-2 mr-2\" [translate]=\"'Tables.PageInfo'\" [translateParams]=\"pageInfo\"></div>\n <button [disabled]=\"pageInfo && pageInfo.page === 0\" class=\"btn text-nowrap\" (click)=\"firstPage()\">\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===0\" class=\"btn\" (click)=\"previousPage()\">\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===pageInfo.pages-1\" class=\"btn\" (click)=\"nextPage()\">\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===pageInfo.pages-1\" class=\"btn text-nowrap\"\n (click)=\"lastPage()\">\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n </button>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-footer justify-content-end\">\n <button [disabled]=\"okButtonDisabled\" (click)=\"ok()\" type=\"button\" [ngClass]=\"okButtonClass\">\n {{okButtonText | translate}}\n </button>\n <button [disabled]=\"cancelButtonDisabled\" (click)=\"cancel()\" type=\"button\" [ngClass]=\"cancelButtonClass\"\n data-dismiss=\"modal\">\n {{ cancelButtonText | translate}}\n </button>\n</div>\n",
2971
3136
  encapsulation: i0.ViewEncapsulation.None,
2972
3137
  styles: ["\n .modal-table .dataTables_wrapper {\n height: 50vh;\n overflow-y: auto;\n }\n "]
2973
3138
  }] }
@@ -3238,7 +3403,7 @@
3238
3403
  _this.collapsed = true;
3239
3404
  _this.allowSave = true;
3240
3405
  _this.showMore = true;
3241
- _this.mergeQueryParams = true;
3406
+ _this.mergeQueryParams = false;
3242
3407
  _this.viewChange = new i0.EventEmitter();
3243
3408
  _this.userSearchList = [];
3244
3409
  _this.selectedList = null;
@@ -3738,7 +3903,7 @@
3738
3903
  { type: i0.Component, args: [{
3739
3904
  // tslint:disable-next-line: component-selector
3740
3905
  selector: 'app-advanced-table-search',
3741
- template: "<div class=\"s--list-navbar d-none d-sm-block\">\n\n <div id=\"collapse-header\" [ngClass]=\"{'show':collapsed}\" class=\"collapse multi-collapse\">\n <form class=\"form-inline p-3 col\">\n <div class=\"form-group col-7\" [ngClass]= \"{ 'col-12': !showMore }\">\n <label class=\"pr-3\" for=\"searchText\" [translate]=\"'Tables.Search'\"></label>\n <input (keydown)=\"onSearchKeyDown($event)\" spellcheck=\"false\" type=\"text\" id=\"searchText\" name=\"searchText\"\n class=\"form-control col text-left\" placeholder=\"{{ 'Tables.SearchPlaceholder' | translate }}\" #searchText>\n </div>\n <div *ngIf=\"showMore\" class=\"col-5 text-right text-secondary\" id=\"heading3\">\n <button class=\"d-inline-block btn btn-link collapsed float-right text-secondary text-decoration-none\"\n type=\"button\" (click)=\"toggleView();\">\n <span class=\"d-none d-sm-inline\" [translate]=\"'AdvancedSearch.More'\"></span>\n <i class=\"ml-2 pt-1 fa fa-chevron-down\"></i>\n </button>\n </div>\n </form>\n </div>\n\n <div id=\"collapse3\" [ngClass]=\"{'show':!collapsed}\" class=\"collapse multi-collapse\" aria-labelledby=\"heading3\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <div id=\"advanced-form\">\n <ng-content select=\"advanced-search\"></ng-content>\n <hr class=\"mt-0 mb-0\" width=\"97%\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <div class=\"form-inline pb-3 pt-3 pr-1 pl-1 col\">\n\n <div class=\"form-group col-4\">\n <div class=\"d-flex flex-row w-100\" *ngIf=\"allowSave\">\n <label class=\"pr-3 d-none\" [translate]=\"'AdvancedSearch.SavedSearches'\"></label>\n <select *ngIf=\"userSearchList\" class=\"custom-select text-secondary flex col-12\" (change)=\"onSelectUserSearch($event)\" [(ngModel)]=\"selectedList\">\n <option [ngValue]=\"null\" [translate]=\"'AdvancedSearch.Choose'\"></option>\n <option *ngFor=\"let item of userSearchList\" [ngValue]=\"item\">{{ item.name }}</option>\n </select>\n <select *ngIf=\"!userSearchList\" class=\"custom-select flex col-6\">\n <option [value]=\"null\" [translate]=\"'AdvancedSearch.Choose'\"></option>\n </select>\n </div>\n </div>\n\n <div class=\"col-3 d-flex flex-row w-100\">\n <div class=\"btn-group\" *ngIf=\"allowSave\" dropdown>\n <button type=\"button\" class=\"btn btn-sm btn-primary\" (click)=\"saveSearch(templateToUse, ( (selectedList && selectedList.readOnly) ? true : false ) )\" [translate]=\"'AdvancedSearch.SaveCurrentSearch'\"></button>\n <button type=\"button\" dropdownToggle class=\"btn btn-sm btn-primary dropdown-toggle dropdown-toggle-split\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <span class=\"sr-only\" [translate]=\"'AdvancedSearch.ToggleDropdown'\"></span>\n </button>\n\n <div class=\"dropdown-menu\" *dropdownMenu>\n <a [ngClass]=\"{'disabled': selectedList && selectedList.readOnly}\" class=\"dropdown-item\" (click)=\"saveSearch(templateToUse, false)\" [translate]=\"'AdvancedSearch.Save'\" href=\"javascript:void(0)\"></a>\n <a class=\"dropdown-item\" (click)=\"saveSearch(templateToUse)\" [translate]=\"'AdvancedSearch.SaveAs'\" href=\"javascript:void(0)\"></a>\n <div class=\"dropdown-divider\"></div>\n <a [ngClass]=\"{'disabled': selectedList && selectedList.readOnly}\" class=\"dropdown-item\" (click)=\"deleteItemFromSavedSearchListByObject(selectedList)\" [translate]=\"'AdvancedSearch.Delete'\" href=\"javascript:void(0)\"></a>\n </div>\n </div>\n </div>\n\n <div class=\"col-5 text-right text-secondary\">\n <button type=\"button\" class=\"btn btn-light text-secondary pl-2 pr-2 mr-2\" (click)=\"clear()\">\n <i class=\"fa fa-eraser\"></i>\n </button>\n <button type=\"button\" class=\"btn btn-success pl-4 pr-4 mr-2\" (click)=\"advancedSearch($event);\"\n [translate]=\"'Tables.Search'\"></button>\n <button class=\"d-inline-block btn btn-link collapsed float-right text-secondary text-decoration-none\"\n type=\"button\" (click)=\"toggleView();\">\n <span class=\"d-none d-sm-inline\" [translate]=\"'AdvancedSearch.Less'\"></span>\n <i class=\"ml-2 pt-1 fa fa-chevron-up\"></i>\n </button>\n </div>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-template #templateToUse>\n <div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\" [translate]=\"'AdvancedSearch.Modal.Title'\"></h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"modalRef.hide()\">\n <span aria-hidden=\"true\">&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",
3906
+ template: "<div class=\"s--list-navbar d-none d-sm-block\">\n\n <div id=\"collapse-header\" [ngClass]=\"{'show':collapsed}\" class=\"collapse multi-collapse\">\n <form class=\"form-inline p-3 col\">\n <div class=\"form-group col-7\" [ngClass]= \"{ 'col-12': !showMore }\">\n <label class=\"pr-3\" for=\"searchText\" [translate]=\"'Tables.Search'\"></label>\n <input (keydown)=\"onSearchKeyDown($event)\" spellcheck=\"false\" type=\"text\" id=\"searchText\" name=\"searchText\"\n class=\"form-control col text-left\" placeholder=\"{{ 'Tables.SearchPlaceholder' | translate }}\" #searchText>\n </div>\n <div *ngIf=\"showMore\" class=\"col-5 text-right text-secondary\" id=\"heading3\">\n <button class=\"d-inline-block btn btn-link collapsed float-right text-secondary text-decoration-none\"\n type=\"button\" (click)=\"toggleView();\">\n <span class=\"d-none d-sm-inline\" [translate]=\"'AdvancedSearch.More'\"></span>\n <i class=\"ml-2 pt-1 fa fa-chevron-down\"></i>\n </button>\n </div>\n </form>\n </div>\n\n <div id=\"collapse3\" [ngClass]=\"{'show':!collapsed}\" class=\"collapse multi-collapse\" aria-labelledby=\"heading3\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <div id=\"advanced-form\">\n <ng-content select=\"advanced-search\"></ng-content>\n <hr class=\"mt-0 mb-0\" width=\"97%\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <div class=\"form-inline pb-3 pt-3 pr-1 pl-1 col\">\n\n <div class=\"form-group col-4\">\n <div class=\"d-flex flex-row w-100\" *ngIf=\"allowSave\">\n <label class=\"pr-3 d-none\" [translate]=\"'AdvancedSearch.SavedSearches'\"></label>\n <select *ngIf=\"userSearchList\" class=\"custom-select text-secondary flex col-12\" (change)=\"onSelectUserSearch($event)\" [(ngModel)]=\"selectedList\">\n <option [ngValue]=\"null\" [translate]=\"'AdvancedSearch.Choose'\"></option>\n <option *ngFor=\"let item of userSearchList\" [ngValue]=\"item\">{{ item.name }}</option>\n </select>\n <select *ngIf=\"!userSearchList\" class=\"custom-select flex col-6\">\n <option [value]=\"null\" [translate]=\"'AdvancedSearch.Choose'\"></option>\n </select>\n </div>\n </div>\n\n <div class=\"col-3 d-flex flex-row w-100\">\n <div class=\"btn-group\" *ngIf=\"allowSave\">\n <button type=\"button\" class=\"btn btn-sm btn-primary\" (click)=\"saveSearch(templateToUse, ( (selectedList && selectedList.readOnly) ? true : false ) )\" [translate]=\"'AdvancedSearch.SaveCurrentSearch'\"></button>\n <button type=\"button\" dropdownToggle class=\"btn btn-sm btn-primary dropdown-toggle dropdown-toggle-split\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <span class=\"sr-only\" [translate]=\"'AdvancedSearch.ToggleDropdown'\"></span>\n </button>\n\n <div class=\"dropdown-menu\">\n <a [ngClass]=\"{'disabled': selectedList && selectedList.readOnly}\" class=\"dropdown-item\" (click)=\"saveSearch(templateToUse, false)\" [translate]=\"'AdvancedSearch.Save'\" href=\"javascript:void(0)\"></a>\n <a class=\"dropdown-item\" (click)=\"saveSearch(templateToUse)\" [translate]=\"'AdvancedSearch.SaveAs'\" href=\"javascript:void(0)\"></a>\n <div class=\"dropdown-divider\"></div>\n <a [ngClass]=\"{'disabled': selectedList && selectedList.readOnly}\" class=\"dropdown-item\" (click)=\"deleteItemFromSavedSearchListByObject(selectedList)\" [translate]=\"'AdvancedSearch.Delete'\" href=\"javascript:void(0)\"></a>\n </div>\n </div>\n </div>\n\n <div class=\"col-5 text-right text-secondary\">\n <button type=\"button\" class=\"btn btn-light text-secondary pl-2 pr-2 mr-2\" (click)=\"clear()\">\n <i class=\"fa fa-eraser\"></i>\n </button>\n <button type=\"button\" class=\"btn btn-success pl-4 pr-4 mr-2\" (click)=\"advancedSearch($event);\"\n [translate]=\"'Tables.Search'\"></button>\n <button class=\"d-inline-block btn btn-link collapsed float-right text-secondary text-decoration-none\"\n type=\"button\" (click)=\"toggleView();\">\n <span class=\"d-none d-sm-inline\" [translate]=\"'AdvancedSearch.Less'\"></span>\n <i class=\"ml-2 pt-1 fa fa-chevron-up\"></i>\n </button>\n </div>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-template #templateToUse>\n <div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\" [translate]=\"'AdvancedSearch.Modal.Title'\"></h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"modalRef.hide()\">\n <span aria-hidden=\"true\">&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",
3742
3907
  encapsulation: i0.ViewEncapsulation.None
3743
3908
  }] }
3744
3909
  ];
@@ -3781,6 +3946,8 @@
3781
3946
  TemplateFormatter: new TemplateFormatter(),
3782
3947
  TranslationFormatter: new TranslationFormatter(),
3783
3948
  TrueFalseFormatter: new TrueFalseFormatter(),
3949
+ ActionButtonFormatter: new ActionButtonFormatter(),
3950
+ ActionSplitButtonFormatter: new ActionSplitButtonFormatter(),
3784
3951
  };
3785
3952
 
3786
3953
  var SimpleHeaderToolsComponent = /** @class */ (function () {
@@ -4617,7 +4784,6 @@
4617
4784
  forms$1.AdvancedFormsModule,
4618
4785
  i2.SharedModule,
4619
4786
  modal.ModalModule,
4620
- dropdown.BsDropdownModule,
4621
4787
  progressbar.ProgressbarModule,
4622
4788
  ngxPipes.NgPipesModule
4623
4789
  ],
@@ -4709,6 +4875,8 @@
4709
4875
  exports.ButtonFormatter = ButtonFormatter;
4710
4876
  exports.LinkFormatter = LinkFormatter;
4711
4877
  exports.ActionLinkFormatter = ActionLinkFormatter;
4878
+ exports.ActionButtonFormatter = ActionButtonFormatter;
4879
+ exports.ActionSplitButtonFormatter = ActionSplitButtonFormatter;
4712
4880
  exports.SelectRowFormatter = SelectRowFormatter;
4713
4881
  exports.TemplateFormatter = TemplateFormatter;
4714
4882
  exports.TrueFalseFormatter = TrueFalseFormatter;