@den4ik92/ng2-smart-table 18.2.13 → 19.0.4

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 (107) hide show
  1. package/README.md +167 -0
  2. package/fesm2022/den4ik92-ng2-smart-table.mjs +1502 -1581
  3. package/fesm2022/den4ik92-ng2-smart-table.mjs.map +1 -1
  4. package/lib/components/cell/cell-edit-mode/custom-edit.component.d.ts +3 -5
  5. package/lib/components/cell/cell-edit-mode/default-edit.component.d.ts +3 -3
  6. package/lib/components/cell/cell-edit-mode/edit-cell-default.d.ts +2 -3
  7. package/lib/components/cell/cell-edit-mode/edit-cell.component.d.ts +4 -5
  8. package/lib/components/cell/cell-editors/checkbox-editor.component.d.ts +2 -2
  9. package/lib/components/cell/cell-editors/default-editor.d.ts +8 -8
  10. package/lib/components/cell/cell-editors/input-editor.component.d.ts +2 -2
  11. package/lib/components/cell/cell-editors/select-editor.component.d.ts +2 -2
  12. package/lib/components/cell/cell-editors/textarea-editor.component.d.ts +2 -2
  13. package/lib/components/cell/cell-view-mode/custom-view.component.d.ts +1 -1
  14. package/lib/components/cell/cell-view-mode/view-cell.component.d.ts +2 -2
  15. package/lib/components/cell/cell.component.d.ts +8 -8
  16. package/lib/components/filter/custom-filter.component.d.ts +3 -5
  17. package/lib/components/filter/default-filter.component.d.ts +1 -1
  18. package/lib/components/filter/filter-default.d.ts +2 -3
  19. package/lib/components/filter/filter-types/checkbox-filter.component.d.ts +4 -4
  20. package/lib/components/filter/filter-types/default-filter.d.ts +4 -4
  21. package/lib/components/filter/filter-types/input-filter.component.d.ts +4 -4
  22. package/lib/components/filter/filter-types/select-filter.component.d.ts +1 -1
  23. package/lib/components/filter/filter.component.d.ts +2 -2
  24. package/lib/components/pager/pager.component.d.ts +5 -5
  25. package/lib/components/tbody/cells/create-cancel.component.d.ts +4 -4
  26. package/lib/components/tbody/cells/custom.component.d.ts +2 -3
  27. package/lib/components/tbody/cells/edit-delete.component.d.ts +7 -7
  28. package/lib/components/tbody/tbody.component.d.ts +19 -19
  29. package/lib/components/thead/cells/actions-title.component.d.ts +3 -4
  30. package/lib/components/thead/cells/actions.component.d.ts +4 -4
  31. package/lib/components/thead/cells/add-button.component.d.ts +5 -6
  32. package/lib/components/thead/cells/checkbox-select-all.component.d.ts +3 -3
  33. package/lib/components/thead/cells/column-title.component.d.ts +4 -5
  34. package/lib/components/thead/cells/title/title.component.d.ts +8 -8
  35. package/lib/components/thead/rows/thead-filters-row.component.d.ts +4 -4
  36. package/lib/components/thead/rows/thead-form-row.component.d.ts +4 -4
  37. package/lib/components/thead/rows/thead-titles-row.component.d.ts +6 -6
  38. package/lib/components/thead/thead.component.d.ts +7 -7
  39. package/lib/lib/grid.d.ts +20 -11
  40. package/lib/lib/helpers.d.ts +4 -1
  41. package/lib/lib/interfaces/smart-table.models.d.ts +16 -12
  42. package/lib/ng2-smart-table.component.d.ts +20 -21
  43. package/package.json +6 -7
  44. package/public-api.d.ts +0 -1
  45. package/esm2022/den4ik92-ng2-smart-table.mjs +0 -5
  46. package/esm2022/lib/components/cell/cell-edit-mode/custom-edit.component.mjs +0 -44
  47. package/esm2022/lib/components/cell/cell-edit-mode/default-edit.component.mjs +0 -26
  48. package/esm2022/lib/components/cell/cell-edit-mode/edit-cell-default.mjs +0 -35
  49. package/esm2022/lib/components/cell/cell-edit-mode/edit-cell.component.mjs +0 -76
  50. package/esm2022/lib/components/cell/cell-editors/checkbox-editor.component.mjs +0 -40
  51. package/esm2022/lib/components/cell/cell-editors/default-editor.mjs +0 -30
  52. package/esm2022/lib/components/cell/cell-editors/input-editor.component.mjs +0 -37
  53. package/esm2022/lib/components/cell/cell-editors/select-editor.component.mjs +0 -52
  54. package/esm2022/lib/components/cell/cell-editors/textarea-editor.component.mjs +0 -39
  55. package/esm2022/lib/components/cell/cell-view-mode/custom-view.component.mjs +0 -15
  56. package/esm2022/lib/components/cell/cell-view-mode/view-cell.component.mjs +0 -47
  57. package/esm2022/lib/components/cell/cell-view-mode/view-cell.mjs +0 -2
  58. package/esm2022/lib/components/cell/cell.component.mjs +0 -73
  59. package/esm2022/lib/components/cell/cell.module.mjs +0 -75
  60. package/esm2022/lib/components/filter/custom-filter.component.mjs +0 -43
  61. package/esm2022/lib/components/filter/default-filter.component.mjs +0 -73
  62. package/esm2022/lib/components/filter/filter-default.mjs +0 -37
  63. package/esm2022/lib/components/filter/filter-types/checkbox-filter.component.mjs +0 -54
  64. package/esm2022/lib/components/filter/filter-types/default-filter.mjs +0 -36
  65. package/esm2022/lib/components/filter/filter-types/input-filter.component.mjs +0 -53
  66. package/esm2022/lib/components/filter/filter-types/select-filter.component.mjs +0 -58
  67. package/esm2022/lib/components/filter/filter.component.mjs +0 -86
  68. package/esm2022/lib/components/filter/filter.module.mjs +0 -62
  69. package/esm2022/lib/components/pager/pager.component.mjs +0 -241
  70. package/esm2022/lib/components/pager/pager.module.mjs +0 -28
  71. package/esm2022/lib/components/tbody/cells/create-cancel.component.mjs +0 -195
  72. package/esm2022/lib/components/tbody/cells/custom.component.mjs +0 -59
  73. package/esm2022/lib/components/tbody/cells/edit-delete.component.mjs +0 -241
  74. package/esm2022/lib/components/tbody/tbody.component.mjs +0 -95
  75. package/esm2022/lib/components/tbody/tbody.module.mjs +0 -47
  76. package/esm2022/lib/components/thead/cells/actions-title.component.mjs +0 -31
  77. package/esm2022/lib/components/thead/cells/actions.component.mjs +0 -42
  78. package/esm2022/lib/components/thead/cells/add-button.component.mjs +0 -57
  79. package/esm2022/lib/components/thead/cells/checkbox-select-all.component.mjs +0 -25
  80. package/esm2022/lib/components/thead/cells/column-title.component.mjs +0 -34
  81. package/esm2022/lib/components/thead/cells/title/title.component.mjs +0 -87
  82. package/esm2022/lib/components/thead/rows/thead-filters-row.component.mjs +0 -89
  83. package/esm2022/lib/components/thead/rows/thead-form-row.component.mjs +0 -108
  84. package/esm2022/lib/components/thead/rows/thead-titles-row.component.mjs +0 -87
  85. package/esm2022/lib/components/thead/thead.component.mjs +0 -42
  86. package/esm2022/lib/components/thead/thead.module.mjs +0 -75
  87. package/esm2022/lib/lib/data-set/cell.mjs +0 -43
  88. package/esm2022/lib/lib/data-set/column.mjs +0 -74
  89. package/esm2022/lib/lib/data-set/data-set.mjs +0 -96
  90. package/esm2022/lib/lib/data-set/row.mjs +0 -47
  91. package/esm2022/lib/lib/data-source/data-source.mjs +0 -92
  92. package/esm2022/lib/lib/data-source/local/local.data-source.mjs +0 -263
  93. package/esm2022/lib/lib/data-source/local/local.filter.mjs +0 -13
  94. package/esm2022/lib/lib/data-source/local/local.pager.mjs +0 -6
  95. package/esm2022/lib/lib/data-source/local/local.sorter.mjs +0 -19
  96. package/esm2022/lib/lib/grid.mjs +0 -218
  97. package/esm2022/lib/lib/helpers.mjs +0 -84
  98. package/esm2022/lib/lib/interfaces/smart-table.models.mjs +0 -16
  99. package/esm2022/lib/ng2-smart-table.component.mjs +0 -169
  100. package/esm2022/lib/ng2-smart-table.module.mjs +0 -51
  101. package/esm2022/public-api.mjs +0 -12
  102. package/lib/components/cell/cell.module.d.ts +0 -20
  103. package/lib/components/filter/filter.module.d.ts +0 -16
  104. package/lib/components/pager/pager.module.d.ts +0 -9
  105. package/lib/components/tbody/tbody.module.d.ts +0 -13
  106. package/lib/components/thead/thead.module.d.ts +0 -20
  107. package/lib/ng2-smart-table.module.d.ts +0 -14
@@ -1,10 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, Input, Output, ViewContainerRef, ViewChild, ChangeDetectionStrategy, NgModule } from '@angular/core';
2
+ import { output, Component, Input, ViewContainerRef, ViewChild, ChangeDetectionStrategy, inject, ElementRef } from '@angular/core';
3
3
  import { Subject } from 'rxjs';
4
- import * as i1 from '@angular/common';
5
- import { CommonModule } from '@angular/common';
6
- import * as i2 from '@angular/forms';
7
- import { UntypedFormControl, NgControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import * as i1 from '@angular/forms';
5
+ import { FormsModule, UntypedFormControl, ReactiveFormsModule, NgControl } from '@angular/forms';
6
+ import { NgComponentOutlet } from '@angular/common';
8
7
  import { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';
9
8
 
10
9
  function prepareValue(value) { return value; }
@@ -53,28 +52,20 @@ class Cell {
53
52
  class DefaultEditor {
54
53
  constructor() {
55
54
  this.inputClass = '';
56
- this.onStopEditing = new EventEmitter();
57
- this.onEdited = new EventEmitter();
58
- this.onClick = new EventEmitter();
55
+ this.onStopEditing = output();
56
+ this.onEdited = output();
57
+ this.onClick = output();
59
58
  }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultEditor, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
61
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DefaultEditor, selector: "ng-component", inputs: { cell: "cell", inputClass: "inputClass" }, outputs: { onStopEditing: "onStopEditing", onEdited: "onEdited", onClick: "onClick" }, ngImport: i0, template: '', isInline: true }); }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: DefaultEditor, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: DefaultEditor, isStandalone: true, selector: "ng-component", inputs: { cell: "cell", inputClass: "inputClass" }, outputs: { onStopEditing: "onStopEditing", onEdited: "onEdited", onClick: "onClick" }, ngImport: i0, template: '', isInline: true }); }
62
61
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultEditor, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: DefaultEditor, decorators: [{
64
63
  type: Component,
65
- args: [{
66
- template: '',
67
- }]
64
+ args: [{ template: '' }]
68
65
  }], propDecorators: { cell: [{
69
66
  type: Input
70
67
  }], inputClass: [{
71
68
  type: Input
72
- }], onStopEditing: [{
73
- type: Output
74
- }], onEdited: [{
75
- type: Output
76
- }], onClick: [{
77
- type: Output
78
69
  }] } });
79
70
 
80
71
  class Column {
@@ -156,7 +147,7 @@ class DefaultFilter {
156
147
  this.delay = 300;
157
148
  this.query = '';
158
149
  this.inputClass = '';
159
- this.filter = new EventEmitter();
150
+ this.filter = output();
160
151
  }
161
152
  ngOnDestroy() {
162
153
  if (this.changesSubscription) {
@@ -166,22 +157,18 @@ class DefaultFilter {
166
157
  setFilter() {
167
158
  this.filter.emit(this.query);
168
159
  }
169
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultFilter, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
170
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DefaultFilter, selector: "ng-component", inputs: { query: "query", inputClass: "inputClass", column: "column" }, outputs: { filter: "filter" }, ngImport: i0, template: '', isInline: true }); }
160
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: DefaultFilter, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
161
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: DefaultFilter, isStandalone: true, selector: "ng-component", inputs: { query: "query", inputClass: "inputClass", column: "column" }, outputs: { filter: "filter" }, ngImport: i0, template: '', isInline: true }); }
171
162
  }
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultFilter, decorators: [{
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: DefaultFilter, decorators: [{
173
164
  type: Component,
174
- args: [{
175
- template: '',
176
- }]
165
+ args: [{ template: '' }]
177
166
  }], propDecorators: { query: [{
178
167
  type: Input
179
168
  }], inputClass: [{
180
169
  type: Input
181
170
  }], column: [{
182
171
  type: Input
183
- }], filter: [{
184
- type: Output
185
172
  }] } });
186
173
 
187
174
  class Row {
@@ -443,20 +430,44 @@ class Deferred {
443
430
  }
444
431
  // getDeepFromObject({result: {data: 1}}, 'result.data', 2); // returns 1
445
432
  function getDeepFromObject(object = {}, name, defaultValue = null) {
446
- const keys = name.split('.');
447
- // clone the object
448
- let level = deepExtend({}, object);
449
- keys.forEach((k) => {
450
- if (level && typeof level[k] !== 'undefined') {
451
- level = level[k];
452
- }
453
- });
454
- return typeof level === 'undefined' ? defaultValue : level;
433
+ try {
434
+ let level = deepExtend({}, object);
435
+ const keys = name.split('.');
436
+ if (keys.length === 1) {
437
+ return level[keys[0]] ?? defaultValue;
438
+ }
439
+ keys.forEach((k) => {
440
+ if (level && typeof level[k] !== 'undefined') {
441
+ level = level[k];
442
+ }
443
+ });
444
+ }
445
+ catch {
446
+ return defaultValue;
447
+ }
455
448
  }
456
449
  function getPageForRowIndex(index, perPage) {
457
450
  // we need to add 1 to convert 0-based index to 1-based page number.
458
451
  return Math.floor(index / perPage) + 1;
459
452
  }
453
+ function cloneArrayOfObject(array) {
454
+ return array.map((obj) => Object.assign({}, obj));
455
+ }
456
+ function setLocalStorage(key, value) {
457
+ localStorage.setItem(key, JSON.stringify(value));
458
+ }
459
+ function getLocalStorage(key) {
460
+ const valueString = localStorage.getItem(key);
461
+ if (!valueString) {
462
+ return null;
463
+ }
464
+ try {
465
+ return JSON.parse(valueString);
466
+ }
467
+ catch {
468
+ return null;
469
+ }
470
+ }
460
471
 
461
472
  class LocalDataSource extends DataSource {
462
473
  constructor(data = []) {
@@ -716,6 +727,304 @@ class LocalDataSource extends DataSource {
716
727
  }
717
728
  }
718
729
 
730
+ class PagerComponent {
731
+ constructor() {
732
+ this.perPageSelect = [];
733
+ this.changePage = output();
734
+ this.currentPerPage = 0;
735
+ this.pages = [];
736
+ this.page = 1;
737
+ this.count = 0;
738
+ this.perPage = 0;
739
+ }
740
+ ngOnChanges(changes) {
741
+ if (changes["source"]) {
742
+ if (!changes["source"].firstChange && this.dataChangedSub) {
743
+ this.dataChangedSub.unsubscribe();
744
+ }
745
+ this.dataChangedSub = this.source.onChanged().subscribe((dataChanges) => {
746
+ const paging = this.source.getPaging();
747
+ if (paging) {
748
+ this.page = paging.page;
749
+ this.perPage = paging.perPage;
750
+ }
751
+ this.currentPerPage = this.perPage;
752
+ this.count = this.source.count();
753
+ if (this.isPageOutOfBounce()) {
754
+ this.source.setPage(--this.page);
755
+ }
756
+ this.processPageChange(dataChanges);
757
+ this.initPages();
758
+ });
759
+ }
760
+ }
761
+ /**
762
+ * We change the page here depending on the action performed against data source
763
+ * if a new element was added to the end of the table - then change the page to the last
764
+ * if a new element was added to the beginning of the table - then to the first page
765
+ * @param changes
766
+ */
767
+ processPageChange(changes) {
768
+ if (changes["action"] === "prepend") {
769
+ this.source.setPage(1);
770
+ }
771
+ if (changes["action"] === "append") {
772
+ this.source.setPage(this.getLast());
773
+ }
774
+ }
775
+ shouldShow() {
776
+ return this.source.count() > this.perPage;
777
+ }
778
+ paginate(page) {
779
+ this.source.setPage(page);
780
+ this.page = page;
781
+ this.changePage.emit({ page });
782
+ return false;
783
+ }
784
+ next() {
785
+ return this.paginate(this.getPage() + 1);
786
+ }
787
+ prev() {
788
+ return this.paginate(this.getPage() - 1);
789
+ }
790
+ getPage() {
791
+ return this.page;
792
+ }
793
+ getPages() {
794
+ return this.pages;
795
+ }
796
+ getLast() {
797
+ return Math.ceil(this.count / this.perPage);
798
+ }
799
+ isPageOutOfBounce() {
800
+ return (this.page * this.perPage >= this.count + this.perPage && this.page > 1);
801
+ }
802
+ initPages() {
803
+ const pagesCount = this.getLast();
804
+ let showPagesCount = 4;
805
+ showPagesCount = pagesCount < showPagesCount ? pagesCount : showPagesCount;
806
+ this.pages = [];
807
+ if (this.shouldShow()) {
808
+ let middleOne = Math.ceil(showPagesCount / 2);
809
+ middleOne = this.page >= middleOne ? this.page : middleOne;
810
+ let lastOne = middleOne + Math.floor(showPagesCount / 2);
811
+ lastOne = lastOne >= pagesCount ? pagesCount : lastOne;
812
+ const firstOne = lastOne - showPagesCount + 1;
813
+ for (let i = firstOne; i <= lastOne; i++) {
814
+ this.pages.push(i);
815
+ }
816
+ }
817
+ }
818
+ onChangePerPage() {
819
+ const paging = this.source.getPaging();
820
+ if (paging) {
821
+ paging.perPage = this.currentPerPage * 1;
822
+ }
823
+ this.source.refresh();
824
+ this.initPages();
825
+ }
826
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: PagerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
827
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: PagerComponent, isStandalone: true, selector: "ng2-smart-table-pager", inputs: { source: "source", perPageSelect: "perPageSelect" }, outputs: { changePage: "changePage" }, usesOnChanges: true, ngImport: i0, template: `
828
+ @if (shouldShow()) {
829
+ <nav class="ng2-smart-pagination-nav">
830
+ <ul class="ng2-smart-pagination pagination">
831
+ <li
832
+ class="ng2-smart-page-item page-item"
833
+ [class.disabled]="getPage() === 1"
834
+ >
835
+ <a
836
+ class="ng2-smart-page-link page-link"
837
+ href="#"
838
+ (click)="getPage() === 1 ? false : paginate(1)"
839
+ aria-label="First"
840
+ >
841
+ <span aria-hidden="true">&laquo;</span>
842
+ <span class="sr-only">First</span>
843
+ </a>
844
+ </li>
845
+ <li
846
+ class="ng2-smart-page-item page-item"
847
+ [class.disabled]="getPage() === 1"
848
+ >
849
+ <a
850
+ class="ng2-smart-page-link page-link page-link-prev"
851
+ href="#"
852
+ (click)="getPage() === 1 ? false : prev()"
853
+ aria-label="Prev"
854
+ >
855
+ <span aria-hidden="true">&lt;</span>
856
+ <span class="sr-only">Prev</span>
857
+ </a>
858
+ </li>
859
+ @for (page of getPages(); track page) {
860
+ <li
861
+ class="ng2-smart-page-item page-item"
862
+ [class.active]="getPage() === page"
863
+ >
864
+ @if (getPage() === page) {
865
+ <span class="ng2-smart-page-link page-link"
866
+ >{{ page }} <span class="sr-only">(current)</span></span
867
+ >
868
+ } @if (getPage() !== page) {
869
+ <a
870
+ class="ng2-smart-page-link page-link"
871
+ href="#"
872
+ (click)="paginate(page)"
873
+ >{{ page }}</a
874
+ >
875
+ }
876
+ </li>
877
+ }
878
+ <li
879
+ class="ng2-smart-page-item page-item"
880
+ [class.disabled]="getPage() === getLast()"
881
+ >
882
+ <a
883
+ class="ng2-smart-page-link page-link page-link-next"
884
+ href="#"
885
+ (click)="getPage() === getLast() ? false : next()"
886
+ aria-label="Next"
887
+ >
888
+ <span aria-hidden="true">&gt;</span>
889
+ <span class="sr-only">Next</span>
890
+ </a>
891
+ </li>
892
+ <li
893
+ class="ng2-smart-page-item page-item"
894
+ [class.disabled]="getPage() === getLast()"
895
+ >
896
+ <a
897
+ class="ng2-smart-page-link page-link"
898
+ href="#"
899
+ (click)="getPage() === getLast() ? false : paginate(getLast())"
900
+ aria-label="Last"
901
+ >
902
+ <span aria-hidden="true">&raquo;</span>
903
+ <span class="sr-only">Last</span>
904
+ </a>
905
+ </li>
906
+ </ul>
907
+ </nav>
908
+ } @if (perPageSelect && perPageSelect.length > 0) {
909
+ <nav class="ng2-smart-pagination-per-page">
910
+ <label for="per-page"> Per Page: </label>
911
+ <select
912
+ (change)="onChangePerPage()"
913
+ [(ngModel)]="currentPerPage"
914
+ id="per-page"
915
+ >
916
+ @for (item of perPageSelect; track item) {
917
+ <option [value]="item">{{ item }}</option>
918
+ }
919
+ </select>
920
+ </nav>
921
+ }
922
+ `, isInline: true, styles: [".ng2-smart-pagination{display:inline-flex;font-size:.875em;padding:0}.ng2-smart-pagination .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.ng2-smart-pagination .ng2-smart-page-item{display:inline}.ng2-smart-pagination .page-link-next,.ng2-smart-pagination .page-link-prev{font-size:10px}:host{display:flex;justify-content:space-between}:host select{margin:1rem 0 1rem 1rem}:host label{margin:1rem 0 1rem 1rem;line-height:2.5rem}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
923
+ }
924
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: PagerComponent, decorators: [{
925
+ type: Component,
926
+ args: [{ selector: "ng2-smart-table-pager", template: `
927
+ @if (shouldShow()) {
928
+ <nav class="ng2-smart-pagination-nav">
929
+ <ul class="ng2-smart-pagination pagination">
930
+ <li
931
+ class="ng2-smart-page-item page-item"
932
+ [class.disabled]="getPage() === 1"
933
+ >
934
+ <a
935
+ class="ng2-smart-page-link page-link"
936
+ href="#"
937
+ (click)="getPage() === 1 ? false : paginate(1)"
938
+ aria-label="First"
939
+ >
940
+ <span aria-hidden="true">&laquo;</span>
941
+ <span class="sr-only">First</span>
942
+ </a>
943
+ </li>
944
+ <li
945
+ class="ng2-smart-page-item page-item"
946
+ [class.disabled]="getPage() === 1"
947
+ >
948
+ <a
949
+ class="ng2-smart-page-link page-link page-link-prev"
950
+ href="#"
951
+ (click)="getPage() === 1 ? false : prev()"
952
+ aria-label="Prev"
953
+ >
954
+ <span aria-hidden="true">&lt;</span>
955
+ <span class="sr-only">Prev</span>
956
+ </a>
957
+ </li>
958
+ @for (page of getPages(); track page) {
959
+ <li
960
+ class="ng2-smart-page-item page-item"
961
+ [class.active]="getPage() === page"
962
+ >
963
+ @if (getPage() === page) {
964
+ <span class="ng2-smart-page-link page-link"
965
+ >{{ page }} <span class="sr-only">(current)</span></span
966
+ >
967
+ } @if (getPage() !== page) {
968
+ <a
969
+ class="ng2-smart-page-link page-link"
970
+ href="#"
971
+ (click)="paginate(page)"
972
+ >{{ page }}</a
973
+ >
974
+ }
975
+ </li>
976
+ }
977
+ <li
978
+ class="ng2-smart-page-item page-item"
979
+ [class.disabled]="getPage() === getLast()"
980
+ >
981
+ <a
982
+ class="ng2-smart-page-link page-link page-link-next"
983
+ href="#"
984
+ (click)="getPage() === getLast() ? false : next()"
985
+ aria-label="Next"
986
+ >
987
+ <span aria-hidden="true">&gt;</span>
988
+ <span class="sr-only">Next</span>
989
+ </a>
990
+ </li>
991
+ <li
992
+ class="ng2-smart-page-item page-item"
993
+ [class.disabled]="getPage() === getLast()"
994
+ >
995
+ <a
996
+ class="ng2-smart-page-link page-link"
997
+ href="#"
998
+ (click)="getPage() === getLast() ? false : paginate(getLast())"
999
+ aria-label="Last"
1000
+ >
1001
+ <span aria-hidden="true">&raquo;</span>
1002
+ <span class="sr-only">Last</span>
1003
+ </a>
1004
+ </li>
1005
+ </ul>
1006
+ </nav>
1007
+ } @if (perPageSelect && perPageSelect.length > 0) {
1008
+ <nav class="ng2-smart-pagination-per-page">
1009
+ <label for="per-page"> Per Page: </label>
1010
+ <select
1011
+ (change)="onChangePerPage()"
1012
+ [(ngModel)]="currentPerPage"
1013
+ id="per-page"
1014
+ >
1015
+ @for (item of perPageSelect; track item) {
1016
+ <option [value]="item">{{ item }}</option>
1017
+ }
1018
+ </select>
1019
+ </nav>
1020
+ }
1021
+ `, standalone: true, imports: [FormsModule], styles: [".ng2-smart-pagination{display:inline-flex;font-size:.875em;padding:0}.ng2-smart-pagination .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.ng2-smart-pagination .ng2-smart-page-item{display:inline}.ng2-smart-pagination .page-link-next,.ng2-smart-pagination .page-link-prev{font-size:10px}:host{display:flex;justify-content:space-between}:host select{margin:1rem 0 1rem 1rem}:host label{margin:1rem 0 1rem 1rem;line-height:2.5rem}\n"] }]
1022
+ }], propDecorators: { source: [{
1023
+ type: Input
1024
+ }], perPageSelect: [{
1025
+ type: Input
1026
+ }] } });
1027
+
719
1028
  class DataSet {
720
1029
  constructor(data = [], columnSettings) {
721
1030
  this.columnSettings = columnSettings;
@@ -815,9 +1124,13 @@ class Grid {
815
1124
  this.createFormShown = false;
816
1125
  this.onSelectRowSource = new Subject();
817
1126
  this.onDeselectRowSource = new Subject();
1127
+ this.currentColumnsSortState = [];
818
1128
  this.setSettings(settings);
819
1129
  this.setSource(source);
820
1130
  }
1131
+ setColumnsSortedEmitter(emitter) {
1132
+ this.columnsSortedEmitter = emitter;
1133
+ }
821
1134
  detach() {
822
1135
  if (this.sourceOnChangedSubscription) {
823
1136
  this.sourceOnChangedSubscription.unsubscribe();
@@ -845,6 +1158,12 @@ class Grid {
845
1158
  return this.dataSet.newRow;
846
1159
  }
847
1160
  setSettings(settings) {
1161
+ this.updateSettingsAndDataSet(settings);
1162
+ if (this.getSetting('withColumnSort', false)) {
1163
+ this.setColumnsSortState(settings.columns);
1164
+ }
1165
+ }
1166
+ updateSettingsAndDataSet(settings) {
848
1167
  this.settings = settings;
849
1168
  this.dataSet = new DataSet([], this.getSetting("columns"));
850
1169
  if (this.source) {
@@ -1023,251 +1342,81 @@ class Grid {
1023
1342
  getLastRow() {
1024
1343
  return this.dataSet.getLastRow();
1025
1344
  }
1026
- }
1027
-
1028
- class PagerComponent {
1029
- constructor() {
1030
- this.perPageSelect = [];
1031
- this.changePage = new EventEmitter();
1032
- this.currentPerPage = 0;
1033
- this.pages = [];
1034
- this.page = 1;
1035
- this.count = 0;
1036
- this.perPage = 0;
1037
- }
1038
- ngOnChanges(changes) {
1039
- if (changes['source']) {
1040
- if (!changes['source'].firstChange && this.dataChangedSub) {
1041
- this.dataChangedSub.unsubscribe();
1345
+ // ------------------------------- column sort
1346
+ async getSortedTableColumns(newState, columns) {
1347
+ const sortedArray = [];
1348
+ newState.forEach((item2) => {
1349
+ const index = columns.findIndex((item1) => item1.key === item2.key && item1.title === item2.title);
1350
+ if (index > -1) {
1351
+ sortedArray.push({ ...columns[index], hide: !!item2.hide });
1042
1352
  }
1043
- this.dataChangedSub = this.source.onChanged().subscribe((dataChanges) => {
1044
- const paging = this.source.getPaging();
1045
- if (paging) {
1046
- this.page = paging.page;
1047
- this.perPage = paging.perPage;
1048
- }
1049
- this.currentPerPage = this.perPage;
1050
- this.count = this.source.count();
1051
- if (this.isPageOutOfBounce()) {
1052
- this.source.setPage(--this.page);
1053
- }
1054
- this.processPageChange(dataChanges);
1055
- this.initPages();
1056
- });
1057
- }
1353
+ });
1354
+ return Promise.resolve(sortedArray);
1058
1355
  }
1059
- /**
1060
- * We change the page here depending on the action performed against data source
1061
- * if a new element was added to the end of the table - then change the page to the last
1062
- * if a new element was added to the beginning of the table - then to the first page
1063
- * @param changes
1064
- */
1065
- processPageChange(changes) {
1066
- if (changes['action'] === 'prepend') {
1067
- this.source.setPage(1);
1356
+ async applyColumnsSortState(state, emitEvent = true) {
1357
+ this.currentColumnsSortState = this.getMergedColumnStates(state);
1358
+ this.updateSettingsAndDataSet({
1359
+ ...this.settings,
1360
+ columns: await this.getSortedTableColumns(this.currentColumnsSortState, this.settings?.columns),
1361
+ });
1362
+ if (this.columnStateStorageKey) {
1363
+ setLocalStorage(this.columnStateStorageKey, this.currentColumnsSortState);
1068
1364
  }
1069
- if (changes['action'] === 'append') {
1070
- this.source.setPage(this.getLast());
1365
+ if (emitEvent) {
1366
+ this.columnsSortedEmitter.emit(this.currentColumnsSortState);
1071
1367
  }
1072
1368
  }
1073
- shouldShow() {
1074
- return this.source.count() > this.perPage;
1075
- }
1076
- paginate(page) {
1077
- this.source.setPage(page);
1078
- this.page = page;
1079
- this.changePage.emit({ page });
1080
- return false;
1081
- }
1082
- next() {
1083
- return this.paginate(this.getPage() + 1);
1084
- }
1085
- prev() {
1086
- return this.paginate(this.getPage() - 1);
1087
- }
1088
- getPage() {
1089
- return this.page;
1090
- }
1091
- getPages() {
1092
- return this.pages;
1093
- }
1094
- getLast() {
1095
- return Math.ceil(this.count / this.perPage);
1096
- }
1097
- isPageOutOfBounce() {
1098
- return (this.page * this.perPage) >= (this.count + this.perPage) && this.page > 1;
1099
- }
1100
- initPages() {
1101
- const pagesCount = this.getLast();
1102
- let showPagesCount = 4;
1103
- showPagesCount = pagesCount < showPagesCount ? pagesCount : showPagesCount;
1104
- this.pages = [];
1105
- if (this.shouldShow()) {
1106
- let middleOne = Math.ceil(showPagesCount / 2);
1107
- middleOne = this.page >= middleOne ? this.page : middleOne;
1108
- let lastOne = middleOne + Math.floor(showPagesCount / 2);
1109
- lastOne = lastOne >= pagesCount ? pagesCount : lastOne;
1110
- const firstOne = lastOne - showPagesCount + 1;
1111
- for (let i = firstOne; i <= lastOne; i++) {
1112
- this.pages.push(i);
1369
+ setColumnsSortState(columns) {
1370
+ const columnsState = this.getColumnsStateFromSettings(columns);
1371
+ if (this.columnStateStorageKey) {
1372
+ const storageState = getLocalStorage(this.columnStateStorageKey);
1373
+ if (!storageState) {
1374
+ this.currentColumnsSortState = columnsState;
1375
+ setLocalStorage(this.columnStateStorageKey, columnsState);
1376
+ return;
1113
1377
  }
1378
+ const merged = this.getMergedColumnStates(storageState, columnsState);
1379
+ this.applyColumnsSortState(merged, false);
1380
+ return;
1114
1381
  }
1382
+ this.applyColumnsSortState(columnsState, false);
1115
1383
  }
1116
- onChangePerPage() {
1117
- const paging = this.source.getPaging();
1118
- if (paging) {
1119
- paging.perPage = this.currentPerPage * 1;
1120
- }
1121
- this.source.refresh();
1122
- this.initPages();
1384
+ getColumnsStateFromSettings(columns) {
1385
+ return (columns || this.settings.columns || []).map((column) => ({
1386
+ key: column.key,
1387
+ title: column.title,
1388
+ hide: !!column.hide,
1389
+ sortDisabled: !!column.sortDisabled,
1390
+ }));
1123
1391
  }
1124
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PagerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1125
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PagerComponent, selector: "ng2-smart-table-pager", inputs: { source: "source", perPageSelect: "perPageSelect" }, outputs: { changePage: "changePage" }, usesOnChanges: true, ngImport: i0, template: `
1126
- @if (shouldShow()) {
1127
- <nav class="ng2-smart-pagination-nav">
1128
- <ul class="ng2-smart-pagination pagination">
1129
- <li class="ng2-smart-page-item page-item" [ngClass]="{disabled: getPage() == 1}">
1130
- <a class="ng2-smart-page-link page-link" href="#"
1131
- (click)="getPage() == 1 ? false : paginate(1)" aria-label="First">
1132
- <span aria-hidden="true">&laquo;</span>
1133
- <span class="sr-only">First</span>
1134
- </a>
1135
- </li>
1136
- <li class="ng2-smart-page-item page-item" [ngClass]="{disabled: getPage() == 1}">
1137
- <a class="ng2-smart-page-link page-link page-link-prev" href="#"
1138
- (click)="getPage() == 1 ? false : prev()" aria-label="Prev">
1139
- <span aria-hidden="true">&lt;</span>
1140
- <span class="sr-only">Prev</span>
1141
- </a>
1142
- </li>
1143
- @for (page of getPages(); track page) {
1144
- <li class="ng2-smart-page-item page-item"
1145
- [ngClass]="{active: getPage() == page}">
1146
- @if (getPage() == page) {
1147
- <span class="ng2-smart-page-link page-link"
1148
- >{{ page }} <span class="sr-only">(current)</span></span>
1149
- }
1150
- @if (getPage() != page) {
1151
- <a class="ng2-smart-page-link page-link" href="#"
1152
- (click)="paginate(page)">{{ page }}</a>
1153
- }
1154
- </li>
1392
+ getMergedColumnStates(newState, columnsState) {
1393
+ const columnsSettings = columnsState || this.getColumnsStateFromSettings();
1394
+ // merge new columns state with state from storage
1395
+ const filtered = [];
1396
+ newState.forEach((state) => {
1397
+ const fined = columnsSettings.find((column) => column.title === state.title && column.key === state.key);
1398
+ if (fined) {
1399
+ filtered.push({ ...fined, hide: fined.sortDisabled ? fined.hide : state.hide });
1155
1400
  }
1156
- <li class="ng2-smart-page-item page-item"
1157
- [ngClass]="{disabled: getPage() == getLast()}">
1158
- <a class="ng2-smart-page-link page-link page-link-next" href="#"
1159
- (click)="getPage() == getLast() ? false : next()" aria-label="Next">
1160
- <span aria-hidden="true">&gt;</span>
1161
- <span class="sr-only">Next</span>
1162
- </a>
1163
- </li>
1164
- <li class="ng2-smart-page-item page-item"
1165
- [ngClass]="{disabled: getPage() == getLast()}">
1166
- <a class="ng2-smart-page-link page-link" href="#"
1167
- (click)="getPage() == getLast() ? false : paginate(getLast())" aria-label="Last">
1168
- <span aria-hidden="true">&raquo;</span>
1169
- <span class="sr-only">Last</span>
1170
- </a>
1171
- </li>
1172
- </ul>
1173
- </nav>
1174
- }
1175
-
1176
- @if (perPageSelect && perPageSelect.length > 0) {
1177
- <nav class="ng2-smart-pagination-per-page">
1178
- <label for="per-page">
1179
- Per Page:
1180
- </label>
1181
- <select (change)="onChangePerPage()" [(ngModel)]="currentPerPage" id="per-page">
1182
- @for (item of perPageSelect; track item) {
1183
- <option [value]="item">{{ item }}</option>
1184
- }
1185
- </select>
1186
- </nav>
1187
- }
1188
- `, isInline: true, styles: [".ng2-smart-pagination{display:inline-flex;font-size:.875em;padding:0}.ng2-smart-pagination .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.ng2-smart-pagination .ng2-smart-page-item{display:inline}.ng2-smart-pagination .page-link-next,.ng2-smart-pagination .page-link-prev{font-size:10px}:host{display:flex;justify-content:space-between}:host select{margin:1rem 0 1rem 1rem}:host label{margin:1rem 0 1rem 1rem;line-height:2.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
1401
+ });
1402
+ // find new columns witch not exist in storage state
1403
+ const newColumns = columnsSettings.filter((state) => {
1404
+ return !filtered.some((column) => column.title === state.title && column.key === state.key);
1405
+ });
1406
+ return [...filtered, ...newColumns];
1407
+ }
1408
+ get columnStateStorageKey() {
1409
+ return this.settings.columnSortStorageKey;
1410
+ }
1189
1411
  }
1190
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PagerComponent, decorators: [{
1191
- type: Component,
1192
- args: [{ selector: 'ng2-smart-table-pager', template: `
1193
- @if (shouldShow()) {
1194
- <nav class="ng2-smart-pagination-nav">
1195
- <ul class="ng2-smart-pagination pagination">
1196
- <li class="ng2-smart-page-item page-item" [ngClass]="{disabled: getPage() == 1}">
1197
- <a class="ng2-smart-page-link page-link" href="#"
1198
- (click)="getPage() == 1 ? false : paginate(1)" aria-label="First">
1199
- <span aria-hidden="true">&laquo;</span>
1200
- <span class="sr-only">First</span>
1201
- </a>
1202
- </li>
1203
- <li class="ng2-smart-page-item page-item" [ngClass]="{disabled: getPage() == 1}">
1204
- <a class="ng2-smart-page-link page-link page-link-prev" href="#"
1205
- (click)="getPage() == 1 ? false : prev()" aria-label="Prev">
1206
- <span aria-hidden="true">&lt;</span>
1207
- <span class="sr-only">Prev</span>
1208
- </a>
1209
- </li>
1210
- @for (page of getPages(); track page) {
1211
- <li class="ng2-smart-page-item page-item"
1212
- [ngClass]="{active: getPage() == page}">
1213
- @if (getPage() == page) {
1214
- <span class="ng2-smart-page-link page-link"
1215
- >{{ page }} <span class="sr-only">(current)</span></span>
1216
- }
1217
- @if (getPage() != page) {
1218
- <a class="ng2-smart-page-link page-link" href="#"
1219
- (click)="paginate(page)">{{ page }}</a>
1220
- }
1221
- </li>
1222
- }
1223
- <li class="ng2-smart-page-item page-item"
1224
- [ngClass]="{disabled: getPage() == getLast()}">
1225
- <a class="ng2-smart-page-link page-link page-link-next" href="#"
1226
- (click)="getPage() == getLast() ? false : next()" aria-label="Next">
1227
- <span aria-hidden="true">&gt;</span>
1228
- <span class="sr-only">Next</span>
1229
- </a>
1230
- </li>
1231
- <li class="ng2-smart-page-item page-item"
1232
- [ngClass]="{disabled: getPage() == getLast()}">
1233
- <a class="ng2-smart-page-link page-link" href="#"
1234
- (click)="getPage() == getLast() ? false : paginate(getLast())" aria-label="Last">
1235
- <span aria-hidden="true">&raquo;</span>
1236
- <span class="sr-only">Last</span>
1237
- </a>
1238
- </li>
1239
- </ul>
1240
- </nav>
1241
- }
1242
-
1243
- @if (perPageSelect && perPageSelect.length > 0) {
1244
- <nav class="ng2-smart-pagination-per-page">
1245
- <label for="per-page">
1246
- Per Page:
1247
- </label>
1248
- <select (change)="onChangePerPage()" [(ngModel)]="currentPerPage" id="per-page">
1249
- @for (item of perPageSelect; track item) {
1250
- <option [value]="item">{{ item }}</option>
1251
- }
1252
- </select>
1253
- </nav>
1254
- }
1255
- `, styles: [".ng2-smart-pagination{display:inline-flex;font-size:.875em;padding:0}.ng2-smart-pagination .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.ng2-smart-pagination .ng2-smart-page-item{display:inline}.ng2-smart-pagination .page-link-next,.ng2-smart-pagination .page-link-prev{font-size:10px}:host{display:flex;justify-content:space-between}:host select{margin:1rem 0 1rem 1rem}:host label{margin:1rem 0 1rem 1rem;line-height:2.5rem}\n"] }]
1256
- }], propDecorators: { source: [{
1257
- type: Input
1258
- }], perPageSelect: [{
1259
- type: Input
1260
- }], changePage: [{
1261
- type: Output
1262
- }] } });
1263
1412
 
1264
1413
  class EditCellDefault {
1265
1414
  constructor() {
1266
1415
  this.inputClass = '';
1267
- this.edited = new EventEmitter();
1416
+ this.edited = output();
1268
1417
  }
1269
1418
  onEdited(event) {
1270
- this.edited.next(event);
1419
+ this.edited.emit(event);
1271
1420
  return false;
1272
1421
  }
1273
1422
  onStopEditing() {
@@ -1277,32 +1426,32 @@ class EditCellDefault {
1277
1426
  onClick(event) {
1278
1427
  event.stopPropagation();
1279
1428
  }
1280
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EditCellDefault, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1281
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: EditCellDefault, selector: "ng-component", inputs: { cell: "cell", inputClass: "inputClass" }, outputs: { edited: "edited" }, ngImport: i0, template: '', isInline: true }); }
1429
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: EditCellDefault, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1430
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: EditCellDefault, isStandalone: true, selector: "ng-component", inputs: { cell: "cell", inputClass: "inputClass" }, outputs: { edited: "edited" }, ngImport: i0, template: '', isInline: true }); }
1282
1431
  }
1283
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EditCellDefault, decorators: [{
1432
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: EditCellDefault, decorators: [{
1284
1433
  type: Component,
1285
- args: [{
1286
- template: ''
1287
- }]
1434
+ args: [{ template: '' }]
1288
1435
  }], propDecorators: { cell: [{
1289
1436
  type: Input
1290
1437
  }], inputClass: [{
1291
1438
  type: Input
1292
- }], edited: [{
1293
- type: Output
1294
1439
  }] } });
1295
1440
 
1296
1441
  class CustomEditComponent extends EditCellDefault {
1297
- constructor(resolver) {
1298
- super();
1299
- this.resolver = resolver;
1300
- }
1301
1442
  ngOnChanges(changes) {
1302
1443
  const editor = this.cell.getColumn().editor;
1303
- if (this.cell && !this.customComponent && editor && editor.type == 'custom') {
1304
- const componentFactory = this.resolver.resolveComponentFactory(editor.component);
1305
- this.customComponent = this.dynamicTarget.createComponent(componentFactory);
1444
+ if (this.customComponent) {
1445
+ if (this.customComponent.instance?.ngOnChanges) {
1446
+ this.customComponent.instance.ngOnChanges(changes);
1447
+ }
1448
+ return;
1449
+ }
1450
+ if (this.cell &&
1451
+ !this.customComponent &&
1452
+ editor &&
1453
+ editor.type == "custom") {
1454
+ this.customComponent = this.dynamicTarget.createComponent(editor.component);
1306
1455
  // set @Inputs and @Outputs of custom component
1307
1456
  this.customComponent.instance.cell = this.cell;
1308
1457
  this.customComponent.instance.inputClass = this.inputClass;
@@ -1316,22 +1465,19 @@ class CustomEditComponent extends EditCellDefault {
1316
1465
  this.customComponent.destroy();
1317
1466
  }
1318
1467
  }
1319
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomEditComponent, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component }); }
1320
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomEditComponent, selector: "table-cell-custom-editor", viewQueries: [{ propertyName: "dynamicTarget", first: true, predicate: ["dynamicTarget"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
1321
- <ng-template #dynamicTarget></ng-template>
1322
- `, isInline: true }); }
1468
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: CustomEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1469
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: CustomEditComponent, isStandalone: true, selector: "table-cell-custom-editor", viewQueries: [{ propertyName: "dynamicTarget", first: true, predicate: ["dynamicTarget"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: ` <ng-template #dynamicTarget></ng-template> `, isInline: true }); }
1323
1470
  }
1324
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomEditComponent, decorators: [{
1471
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: CustomEditComponent, decorators: [{
1325
1472
  type: Component,
1326
1473
  args: [{
1327
- selector: 'table-cell-custom-editor',
1328
- template: `
1329
- <ng-template #dynamicTarget></ng-template>
1330
- `,
1474
+ selector: "table-cell-custom-editor",
1475
+ template: ` <ng-template #dynamicTarget></ng-template> `,
1476
+ standalone: true,
1331
1477
  }]
1332
- }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }], propDecorators: { dynamicTarget: [{
1478
+ }], propDecorators: { dynamicTarget: [{
1333
1479
  type: ViewChild,
1334
- args: ['dynamicTarget', { read: ViewContainerRef, static: true }]
1480
+ args: ["dynamicTarget", { read: ViewContainerRef, static: true }]
1335
1481
  }] } });
1336
1482
 
1337
1483
  class CheckboxEditorComponent extends DefaultEditor {
@@ -1344,108 +1490,130 @@ class CheckboxEditorComponent extends DefaultEditor {
1344
1490
  const falseVal = (config && config?.false) || false;
1345
1491
  this.cell.newValue = event.target.checked ? trueVal : falseVal;
1346
1492
  }
1347
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1348
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CheckboxEditorComponent, selector: "checkbox-editor", usesInheritance: true, ngImport: i0, template: `
1349
- <input [ngClass]="inputClass"
1350
- type="checkbox"
1351
- class="form-control"
1352
- [name]="cell.getId()"
1353
- [disabled]="!cell.isEditable()"
1354
- [checked]="cell.getValue() === (cell.getColumn().getConfig()?.true || true)"
1355
- (click)="onClick.emit($event)"
1356
- (change)="onChange($event)">
1357
- `, isInline: true, styles: [":host input,:host textarea{width:100%;line-height:normal;padding:.375em .75em}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
1493
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: CheckboxEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1494
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: CheckboxEditorComponent, isStandalone: true, selector: "checkbox-editor", usesInheritance: true, ngImport: i0, template: `
1495
+ <input
1496
+ [class]="inputClass"
1497
+ type="checkbox"
1498
+ class="form-control"
1499
+ [name]="cell.getId()"
1500
+ [disabled]="!cell.isEditable()"
1501
+ [checked]="
1502
+ cell.getValue() === (cell.getColumn().getConfig()?.true || true)
1503
+ "
1504
+ (click)="onClick.emit($event)"
1505
+ (change)="onChange($event)"
1506
+ />
1507
+ `, isInline: true, styles: [":host input,:host textarea{width:100%;line-height:normal;padding:.375em .75em}\n"] }); }
1358
1508
  }
1359
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxEditorComponent, decorators: [{
1509
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: CheckboxEditorComponent, decorators: [{
1360
1510
  type: Component,
1361
- args: [{ selector: 'checkbox-editor', template: `
1362
- <input [ngClass]="inputClass"
1363
- type="checkbox"
1364
- class="form-control"
1365
- [name]="cell.getId()"
1366
- [disabled]="!cell.isEditable()"
1367
- [checked]="cell.getValue() === (cell.getColumn().getConfig()?.true || true)"
1368
- (click)="onClick.emit($event)"
1369
- (change)="onChange($event)">
1370
- `, styles: [":host input,:host textarea{width:100%;line-height:normal;padding:.375em .75em}\n"] }]
1511
+ args: [{ selector: "checkbox-editor", template: `
1512
+ <input
1513
+ [class]="inputClass"
1514
+ type="checkbox"
1515
+ class="form-control"
1516
+ [name]="cell.getId()"
1517
+ [disabled]="!cell.isEditable()"
1518
+ [checked]="
1519
+ cell.getValue() === (cell.getColumn().getConfig()?.true || true)
1520
+ "
1521
+ (click)="onClick.emit($event)"
1522
+ (change)="onChange($event)"
1523
+ />
1524
+ `, standalone: true, styles: [":host input,:host textarea{width:100%;line-height:normal;padding:.375em .75em}\n"] }]
1371
1525
  }], ctorParameters: () => [] });
1372
1526
 
1373
1527
  class InputEditorComponent extends DefaultEditor {
1374
1528
  constructor() {
1375
1529
  super();
1376
1530
  }
1377
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1378
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InputEditorComponent, selector: "input-editor", usesInheritance: true, ngImport: i0, template: `
1379
- <input [ngClass]="inputClass"
1380
- class="form-control"
1381
- [(ngModel)]="cell.newValue"
1382
- [name]="cell.getId()"
1383
- [placeholder]="cell.getTitle()"
1384
- [disabled]="!cell.isEditable()"
1385
- (click)="onClick.emit($event)"
1386
- (keydown.enter)="onEdited.emit($event)"
1387
- (keydown.esc)="onStopEditing.emit()">
1388
- `, isInline: true, styles: [":host input,:host textarea{width:100%;line-height:normal;padding:.375em .75em}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
1531
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: InputEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1532
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: InputEditorComponent, isStandalone: true, selector: "input-editor", usesInheritance: true, ngImport: i0, template: `
1533
+ <input
1534
+ [class]="inputClass"
1535
+ class="form-control"
1536
+ [(ngModel)]="cell.newValue"
1537
+ [name]="cell.getId()"
1538
+ [placeholder]="cell.getTitle()"
1539
+ [disabled]="!cell.isEditable()"
1540
+ (click)="onClick.emit($event)"
1541
+ (keydown.enter)="onEdited.emit($event)"
1542
+ (keydown.esc)="onStopEditing.emit('')"
1543
+ />
1544
+ `, isInline: true, styles: [":host input,:host textarea{width:100%;line-height:normal;padding:.375em .75em}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
1389
1545
  }
1390
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputEditorComponent, decorators: [{
1546
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: InputEditorComponent, decorators: [{
1391
1547
  type: Component,
1392
- args: [{ selector: 'input-editor', template: `
1393
- <input [ngClass]="inputClass"
1394
- class="form-control"
1395
- [(ngModel)]="cell.newValue"
1396
- [name]="cell.getId()"
1397
- [placeholder]="cell.getTitle()"
1398
- [disabled]="!cell.isEditable()"
1399
- (click)="onClick.emit($event)"
1400
- (keydown.enter)="onEdited.emit($event)"
1401
- (keydown.esc)="onStopEditing.emit()">
1402
- `, styles: [":host input,:host textarea{width:100%;line-height:normal;padding:.375em .75em}\n"] }]
1548
+ args: [{ selector: "input-editor", template: `
1549
+ <input
1550
+ [class]="inputClass"
1551
+ class="form-control"
1552
+ [(ngModel)]="cell.newValue"
1553
+ [name]="cell.getId()"
1554
+ [placeholder]="cell.getTitle()"
1555
+ [disabled]="!cell.isEditable()"
1556
+ (click)="onClick.emit($event)"
1557
+ (keydown.enter)="onEdited.emit($event)"
1558
+ (keydown.esc)="onStopEditing.emit('')"
1559
+ />
1560
+ `, standalone: true, imports: [FormsModule], styles: [":host input,:host textarea{width:100%;line-height:normal;padding:.375em .75em}\n"] }]
1403
1561
  }], ctorParameters: () => [] });
1404
1562
 
1405
1563
  class SelectEditorComponent extends DefaultEditor {
1406
1564
  constructor() {
1407
1565
  super();
1408
1566
  }
1409
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1410
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SelectEditorComponent, selector: "select-editor", usesInheritance: true, ngImport: i0, template: `
1411
- <select [ngClass]="inputClass"
1567
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: SelectEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1568
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: SelectEditorComponent, isStandalone: true, selector: "select-editor", usesInheritance: true, ngImport: i0, template: `
1569
+ <select
1570
+ [class]="inputClass"
1412
1571
  class="form-control"
1413
1572
  [(ngModel)]="cell.newValue"
1414
1573
  [name]="cell.getId()"
1415
1574
  [disabled]="!cell.isEditable()"
1416
1575
  (click)="onClick.emit($event)"
1417
1576
  (keydown.enter)="onEdited.emit($event)"
1418
- (keydown.esc)="onStopEditing.emit()">
1419
-
1420
- @for (option of cell.getColumn().getConfig()?.list; track option) {
1421
- <option [value]="option.value"
1422
- [selected]="option.value === cell.getValue()">{{ option.title }}
1423
- </option>
1577
+ (keydown.esc)="onStopEditing.emit('')"
1578
+ >
1579
+ @for (option of cell.getColumn().getConfig()?.list; track option.value) {
1580
+ <option
1581
+ [value]="option.value"
1582
+ [selected]="option.value === cell.getValue()"
1583
+ >
1584
+ {{ option.title }}
1585
+ </option>
1424
1586
  }
1425
1587
  </select>
1426
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
1588
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
1427
1589
  }
1428
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectEditorComponent, decorators: [{
1590
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: SelectEditorComponent, decorators: [{
1429
1591
  type: Component,
1430
1592
  args: [{
1431
- selector: 'select-editor',
1593
+ selector: "select-editor",
1432
1594
  template: `
1433
- <select [ngClass]="inputClass"
1595
+ <select
1596
+ [class]="inputClass"
1434
1597
  class="form-control"
1435
1598
  [(ngModel)]="cell.newValue"
1436
1599
  [name]="cell.getId()"
1437
1600
  [disabled]="!cell.isEditable()"
1438
1601
  (click)="onClick.emit($event)"
1439
1602
  (keydown.enter)="onEdited.emit($event)"
1440
- (keydown.esc)="onStopEditing.emit()">
1441
-
1442
- @for (option of cell.getColumn().getConfig()?.list; track option) {
1443
- <option [value]="option.value"
1444
- [selected]="option.value === cell.getValue()">{{ option.title }}
1445
- </option>
1603
+ (keydown.esc)="onStopEditing.emit('')"
1604
+ >
1605
+ @for (option of cell.getColumn().getConfig()?.list; track option.value) {
1606
+ <option
1607
+ [value]="option.value"
1608
+ [selected]="option.value === cell.getValue()"
1609
+ >
1610
+ {{ option.title }}
1611
+ </option>
1446
1612
  }
1447
1613
  </select>
1448
- `,
1614
+ `,
1615
+ standalone: true,
1616
+ imports: [FormsModule],
1449
1617
  }]
1450
1618
  }], ctorParameters: () => [] });
1451
1619
 
@@ -1453,34 +1621,38 @@ class TextareaEditorComponent extends DefaultEditor {
1453
1621
  constructor() {
1454
1622
  super();
1455
1623
  }
1456
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextareaEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1457
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextareaEditorComponent, selector: "textarea-editor", usesInheritance: true, ngImport: i0, template: `
1458
- <textarea [ngClass]="inputClass"
1459
- class="form-control"
1460
- [(ngModel)]="cell.newValue"
1461
- [name]="cell.getId()"
1462
- [disabled]="!cell.isEditable()"
1463
- [placeholder]="cell.getTitle()"
1464
- (click)="onClick.emit($event)"
1465
- (keydown.enter)="onEdited.emit($event)"
1466
- (keydown.esc)="onStopEditing.emit()">
1624
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TextareaEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1625
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: TextareaEditorComponent, isStandalone: true, selector: "textarea-editor", usesInheritance: true, ngImport: i0, template: `
1626
+ <textarea
1627
+ [class]="inputClass"
1628
+ class="form-control"
1629
+ [(ngModel)]="cell.newValue"
1630
+ [name]="cell.getId()"
1631
+ [disabled]="!cell.isEditable()"
1632
+ [placeholder]="cell.getTitle()"
1633
+ (click)="onClick.emit($event)"
1634
+ (keydown.enter)="onEdited.emit($event)"
1635
+ (keydown.esc)="onStopEditing.emit('')"
1636
+ >
1467
1637
  </textarea>
1468
- `, isInline: true, styles: [":host input,:host textarea{width:100%;line-height:normal;padding:.375em .75em}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
1638
+ `, isInline: true, styles: [":host input,:host textarea{width:100%;line-height:normal;padding:.375em .75em}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
1469
1639
  }
1470
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextareaEditorComponent, decorators: [{
1640
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TextareaEditorComponent, decorators: [{
1471
1641
  type: Component,
1472
- args: [{ selector: 'textarea-editor', template: `
1473
- <textarea [ngClass]="inputClass"
1474
- class="form-control"
1475
- [(ngModel)]="cell.newValue"
1476
- [name]="cell.getId()"
1477
- [disabled]="!cell.isEditable()"
1478
- [placeholder]="cell.getTitle()"
1479
- (click)="onClick.emit($event)"
1480
- (keydown.enter)="onEdited.emit($event)"
1481
- (keydown.esc)="onStopEditing.emit()">
1642
+ args: [{ selector: "textarea-editor", template: `
1643
+ <textarea
1644
+ [class]="inputClass"
1645
+ class="form-control"
1646
+ [(ngModel)]="cell.newValue"
1647
+ [name]="cell.getId()"
1648
+ [disabled]="!cell.isEditable()"
1649
+ [placeholder]="cell.getTitle()"
1650
+ (click)="onClick.emit($event)"
1651
+ (keydown.enter)="onEdited.emit($event)"
1652
+ (keydown.esc)="onStopEditing.emit('')"
1653
+ >
1482
1654
  </textarea>
1483
- `, styles: [":host input,:host textarea{width:100%;line-height:normal;padding:.375em .75em}\n"] }]
1655
+ `, standalone: true, imports: [FormsModule], styles: [":host input,:host textarea{width:100%;line-height:normal;padding:.375em .75em}\n"] }]
1484
1656
  }], ctorParameters: () => [] });
1485
1657
 
1486
1658
  class DefaultEditComponent extends EditCellDefault {
@@ -1492,23 +1664,28 @@ class DefaultEditComponent extends EditCellDefault {
1492
1664
  if (editor) {
1493
1665
  return editor.type;
1494
1666
  }
1495
- return 'text';
1667
+ return "text";
1496
1668
  }
1497
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultEditComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1498
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultEditComponent, selector: "table-cell-default-editor", usesInheritance: true, ngImport: i0, template: "<div>\n @switch (getEditorType()) {\n @case ('list') {\n <select-editor\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </select-editor>\n }\n @case ('textarea') {\n <textarea-editor\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </textarea-editor>\n }\n @case ('checkbox') {\n <checkbox-editor\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\">\n </checkbox-editor>\n }\n @default {\n <input-editor\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </input-editor>\n }\n}\n</div>", dependencies: [{ kind: "component", type: CheckboxEditorComponent, selector: "checkbox-editor" }, { kind: "component", type: InputEditorComponent, selector: "input-editor" }, { kind: "component", type: SelectEditorComponent, selector: "select-editor" }, { kind: "component", type: TextareaEditorComponent, selector: "textarea-editor" }] }); }
1669
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: DefaultEditComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1670
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: DefaultEditComponent, isStandalone: true, selector: "table-cell-default-editor", usesInheritance: true, ngImport: i0, template: "<div>\n @switch (getEditorType()) {\n @case ('list') {\n <select-editor\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </select-editor>\n }\n @case ('textarea') {\n <textarea-editor\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </textarea-editor>\n }\n @case ('checkbox') {\n <checkbox-editor\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\">\n </checkbox-editor>\n }\n @default {\n <input-editor\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </input-editor>\n }\n}\n</div>", dependencies: [{ kind: "component", type: SelectEditorComponent, selector: "select-editor" }, { kind: "component", type: TextareaEditorComponent, selector: "textarea-editor" }, { kind: "component", type: CheckboxEditorComponent, selector: "checkbox-editor" }, { kind: "component", type: InputEditorComponent, selector: "input-editor" }] }); }
1499
1671
  }
1500
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultEditComponent, decorators: [{
1672
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: DefaultEditComponent, decorators: [{
1501
1673
  type: Component,
1502
- args: [{ selector: 'table-cell-default-editor', template: "<div>\n @switch (getEditorType()) {\n @case ('list') {\n <select-editor\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </select-editor>\n }\n @case ('textarea') {\n <textarea-editor\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </textarea-editor>\n }\n @case ('checkbox') {\n <checkbox-editor\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\">\n </checkbox-editor>\n }\n @default {\n <input-editor\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </input-editor>\n }\n}\n</div>" }]
1674
+ args: [{ selector: "table-cell-default-editor", imports: [
1675
+ SelectEditorComponent,
1676
+ TextareaEditorComponent,
1677
+ CheckboxEditorComponent,
1678
+ InputEditorComponent,
1679
+ ], standalone: true, template: "<div>\n @switch (getEditorType()) {\n @case ('list') {\n <select-editor\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </select-editor>\n }\n @case ('textarea') {\n <textarea-editor\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </textarea-editor>\n }\n @case ('checkbox') {\n <checkbox-editor\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\">\n </checkbox-editor>\n }\n @default {\n <input-editor\n [cell]=\"cell\"\n [inputClass]=\"inputClass\"\n (onClick)=\"onClick($event)\"\n (onEdited)=\"onEdited($event)\"\n (onStopEditing)=\"onStopEditing()\">\n </input-editor>\n }\n}\n</div>" }]
1503
1680
  }], ctorParameters: () => [] });
1504
1681
 
1505
1682
  class EditCellComponent {
1506
1683
  constructor() {
1507
- this.inputClass = '';
1508
- this.edited = new EventEmitter();
1684
+ this.inputClass = "";
1685
+ this.edited = output();
1509
1686
  }
1510
1687
  onEdited(event) {
1511
- this.edited.next(event);
1688
+ this.edited.emit(event);
1512
1689
  return false;
1513
1690
  }
1514
1691
  getEditorType() {
@@ -1516,112 +1693,119 @@ class EditCellComponent {
1516
1693
  if (editor) {
1517
1694
  return editor.type;
1518
1695
  }
1519
- return 'text';
1520
- }
1521
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EditCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1522
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EditCellComponent, selector: "table-cell-edit-mode", inputs: { cell: "cell", inputClass: "inputClass" }, outputs: { edited: "edited" }, ngImport: i0, template: `
1523
- <div>
1524
- @switch (getEditorType()) {
1525
- @case ('custom') {
1526
- <table-cell-custom-editor
1527
- [cell]="cell"
1528
- [inputClass]="inputClass"
1529
- (edited)="onEdited($event)">
1530
- </table-cell-custom-editor>
1531
- }
1532
- @default {
1533
- <table-cell-default-editor
1534
- [cell]="cell"
1535
- [inputClass]="inputClass"
1536
- (edited)="onEdited($event)">
1537
- </table-cell-default-editor>
1538
- }
1539
- }
1540
- </div>
1541
- `, isInline: true, dependencies: [{ kind: "component", type: CustomEditComponent, selector: "table-cell-custom-editor" }, { kind: "component", type: DefaultEditComponent, selector: "table-cell-default-editor" }] }); }
1696
+ return "text";
1697
+ }
1698
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: EditCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1699
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: EditCellComponent, isStandalone: true, selector: "table-cell-edit-mode", inputs: { cell: "cell", inputClass: "inputClass" }, outputs: { edited: "edited" }, ngImport: i0, template: `
1700
+ <div>
1701
+ @switch (getEditorType()) { @case ('custom') {
1702
+ <table-cell-custom-editor
1703
+ [cell]="cell"
1704
+ [inputClass]="inputClass"
1705
+ (edited)="onEdited($event)"
1706
+ >
1707
+ </table-cell-custom-editor>
1708
+ } @default {
1709
+ <table-cell-default-editor
1710
+ [cell]="cell"
1711
+ [inputClass]="inputClass"
1712
+ (edited)="onEdited($event)"
1713
+ >
1714
+ </table-cell-default-editor>
1715
+ } }
1716
+ </div>
1717
+ `, isInline: true, dependencies: [{ kind: "component", type: CustomEditComponent, selector: "table-cell-custom-editor" }, { kind: "component", type: DefaultEditComponent, selector: "table-cell-default-editor" }] }); }
1542
1718
  }
1543
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EditCellComponent, decorators: [{
1719
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: EditCellComponent, decorators: [{
1544
1720
  type: Component,
1545
1721
  args: [{
1546
- selector: 'table-cell-edit-mode',
1722
+ selector: "table-cell-edit-mode",
1547
1723
  template: `
1548
- <div>
1549
- @switch (getEditorType()) {
1550
- @case ('custom') {
1551
- <table-cell-custom-editor
1552
- [cell]="cell"
1553
- [inputClass]="inputClass"
1554
- (edited)="onEdited($event)">
1555
- </table-cell-custom-editor>
1556
- }
1557
- @default {
1558
- <table-cell-default-editor
1559
- [cell]="cell"
1560
- [inputClass]="inputClass"
1561
- (edited)="onEdited($event)">
1562
- </table-cell-default-editor>
1563
- }
1564
- }
1565
- </div>
1566
- `,
1724
+ <div>
1725
+ @switch (getEditorType()) { @case ('custom') {
1726
+ <table-cell-custom-editor
1727
+ [cell]="cell"
1728
+ [inputClass]="inputClass"
1729
+ (edited)="onEdited($event)"
1730
+ >
1731
+ </table-cell-custom-editor>
1732
+ } @default {
1733
+ <table-cell-default-editor
1734
+ [cell]="cell"
1735
+ [inputClass]="inputClass"
1736
+ (edited)="onEdited($event)"
1737
+ >
1738
+ </table-cell-default-editor>
1739
+ } }
1740
+ </div>
1741
+ `,
1742
+ standalone: true,
1743
+ imports: [CustomEditComponent, DefaultEditComponent],
1567
1744
  }]
1568
1745
  }], propDecorators: { cell: [{
1569
1746
  type: Input
1570
1747
  }], inputClass: [{
1571
1748
  type: Input
1572
- }], edited: [{
1573
- type: Output
1574
1749
  }] } });
1575
1750
 
1576
1751
  class CustomViewComponent {
1577
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1578
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomViewComponent, selector: "custom-view-component", inputs: { cell: "cell" }, ngImport: i0, template: "<ng-template\n *ngComponentOutlet=\"\n cell.getColumn().renderComponent;\n inputs: { rowData: cell.getRow().getData(), value: cell.getValue() }\n \"\n></ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }] }); }
1752
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: CustomViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1753
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: CustomViewComponent, isStandalone: true, selector: "custom-view-component", inputs: { cell: "cell" }, ngImport: i0, template: `<ng-template
1754
+ *ngComponentOutlet="
1755
+ cell.getColumn().renderComponent;
1756
+ inputs: { rowData: cell.getRow().getData(), value: cell.getValue() }
1757
+ "
1758
+ ></ng-template>`, isInline: true, dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }] }); }
1579
1759
  }
1580
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomViewComponent, decorators: [{
1760
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: CustomViewComponent, decorators: [{
1581
1761
  type: Component,
1582
- args: [{ selector: "custom-view-component", template: "<ng-template\n *ngComponentOutlet=\"\n cell.getColumn().renderComponent;\n inputs: { rowData: cell.getRow().getData(), value: cell.getValue() }\n \"\n></ng-template>\n" }]
1762
+ args: [{
1763
+ selector: "custom-view-component",
1764
+ template: `<ng-template
1765
+ *ngComponentOutlet="
1766
+ cell.getColumn().renderComponent;
1767
+ inputs: { rowData: cell.getRow().getData(), value: cell.getValue() }
1768
+ "
1769
+ ></ng-template>`,
1770
+ imports: [NgComponentOutlet],
1771
+ standalone: true,
1772
+ }]
1583
1773
  }], propDecorators: { cell: [{
1584
1774
  type: Input
1585
1775
  }] } });
1586
1776
 
1587
1777
  class ViewCellComponent {
1588
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1589
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ViewCellComponent, selector: "table-cell-view-mode", inputs: { cell: "cell" }, ngImport: i0, template: `
1778
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: ViewCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1779
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: ViewCellComponent, isStandalone: true, selector: "table-cell-view-mode", inputs: { cell: "cell" }, ngImport: i0, template: `
1590
1780
  <div>
1591
- @switch (cell.getColumn().type) {
1592
- @case ('custom') {
1593
- <custom-view-component [cell]="cell"></custom-view-component>
1594
- }
1595
- @case ('html') {
1596
- <div [innerHTML]="cell.getValue()"></div>
1597
- }
1598
- @default {
1599
- <div>{{ cell.getValue() }}</div>
1600
- }
1601
- }
1781
+ @switch (cell.getColumn().type) { @case ('custom') {
1782
+ <custom-view-component [cell]="cell"></custom-view-component>
1783
+ } @case ('html') {
1784
+ <div [innerHTML]="cell.getValue()"></div>
1785
+ } @default {
1786
+ <div>{{ cell.getValue() }}</div>
1787
+ } }
1602
1788
  </div>
1603
- `, isInline: true, dependencies: [{ kind: "component", type: CustomViewComponent, selector: "custom-view-component", inputs: ["cell"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1789
+ `, isInline: true, dependencies: [{ kind: "component", type: CustomViewComponent, selector: "custom-view-component", inputs: ["cell"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1604
1790
  }
1605
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewCellComponent, decorators: [{
1791
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: ViewCellComponent, decorators: [{
1606
1792
  type: Component,
1607
1793
  args: [{
1608
- selector: 'table-cell-view-mode',
1794
+ selector: "table-cell-view-mode",
1609
1795
  changeDetection: ChangeDetectionStrategy.OnPush,
1610
1796
  template: `
1611
1797
  <div>
1612
- @switch (cell.getColumn().type) {
1613
- @case ('custom') {
1614
- <custom-view-component [cell]="cell"></custom-view-component>
1615
- }
1616
- @case ('html') {
1617
- <div [innerHTML]="cell.getValue()"></div>
1618
- }
1619
- @default {
1620
- <div>{{ cell.getValue() }}</div>
1621
- }
1622
- }
1798
+ @switch (cell.getColumn().type) { @case ('custom') {
1799
+ <custom-view-component [cell]="cell"></custom-view-component>
1800
+ } @case ('html') {
1801
+ <div [innerHTML]="cell.getValue()"></div>
1802
+ } @default {
1803
+ <div>{{ cell.getValue() }}</div>
1804
+ } }
1623
1805
  </div>
1624
- `,
1806
+ `,
1807
+ standalone: true,
1808
+ imports: [CustomViewComponent],
1625
1809
  }]
1626
1810
  }], propDecorators: { cell: [{
1627
1811
  type: Input
@@ -1629,10 +1813,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1629
1813
 
1630
1814
  class CellComponent {
1631
1815
  constructor() {
1632
- this.inputClass = '';
1633
- this.mode = 'inline';
1816
+ this.inputClass = "";
1817
+ this.mode = "inline";
1634
1818
  this.isInEditing = false;
1635
- this.edited = new EventEmitter();
1819
+ this.edited = output();
1636
1820
  }
1637
1821
  onEdited(event) {
1638
1822
  if (this.isNew) {
@@ -1642,34 +1826,38 @@ class CellComponent {
1642
1826
  this.grid.save(this.row, this.editConfirm);
1643
1827
  }
1644
1828
  }
1645
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1646
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CellComponent, selector: "ng2-smart-table-cell", inputs: { grid: "grid", row: "row", editConfirm: "editConfirm", createConfirm: "createConfirm", isNew: "isNew", cell: "cell", inputClass: "inputClass", mode: "mode", isInEditing: "isInEditing" }, outputs: { edited: "edited" }, ngImport: i0, template: `
1829
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: CellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1830
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: CellComponent, isStandalone: true, selector: "ng2-smart-table-cell", inputs: { grid: "grid", row: "row", editConfirm: "editConfirm", createConfirm: "createConfirm", isNew: "isNew", cell: "cell", inputClass: "inputClass", mode: "mode", isInEditing: "isInEditing" }, outputs: { edited: "edited" }, ngImport: i0, template: `
1647
1831
  @if (!isInEditing) {
1648
- <table-cell-view-mode [cell]="cell"></table-cell-view-mode>
1649
- }
1650
- @if (isInEditing) {
1651
- <table-cell-edit-mode [cell]="cell"
1652
- [inputClass]="inputClass"
1653
- (edited)="onEdited($event)">
1654
- </table-cell-edit-mode>
1655
- }
1656
- `, isInline: true, dependencies: [{ kind: "component", type: EditCellComponent, selector: "table-cell-edit-mode", inputs: ["cell", "inputClass"], outputs: ["edited"] }, { kind: "component", type: ViewCellComponent, selector: "table-cell-view-mode", inputs: ["cell"] }] }); }
1832
+ <table-cell-view-mode [cell]="cell"></table-cell-view-mode>
1833
+ } @else {
1834
+ <table-cell-edit-mode
1835
+ [cell]="cell"
1836
+ [inputClass]="inputClass"
1837
+ (edited)="onEdited($event)"
1838
+ >
1839
+ </table-cell-edit-mode>
1840
+ }
1841
+ `, isInline: true, dependencies: [{ kind: "component", type: ViewCellComponent, selector: "table-cell-view-mode", inputs: ["cell"] }, { kind: "component", type: EditCellComponent, selector: "table-cell-edit-mode", inputs: ["cell", "inputClass"], outputs: ["edited"] }] }); }
1657
1842
  }
1658
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CellComponent, decorators: [{
1843
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: CellComponent, decorators: [{
1659
1844
  type: Component,
1660
1845
  args: [{
1661
- selector: 'ng2-smart-table-cell',
1846
+ selector: "ng2-smart-table-cell",
1662
1847
  template: `
1663
1848
  @if (!isInEditing) {
1664
- <table-cell-view-mode [cell]="cell"></table-cell-view-mode>
1665
- }
1666
- @if (isInEditing) {
1667
- <table-cell-edit-mode [cell]="cell"
1668
- [inputClass]="inputClass"
1669
- (edited)="onEdited($event)">
1670
- </table-cell-edit-mode>
1849
+ <table-cell-view-mode [cell]="cell"></table-cell-view-mode>
1850
+ } @else {
1851
+ <table-cell-edit-mode
1852
+ [cell]="cell"
1853
+ [inputClass]="inputClass"
1854
+ (edited)="onEdited($event)"
1855
+ >
1856
+ </table-cell-edit-mode>
1671
1857
  }
1672
- `,
1858
+ `,
1859
+ standalone: true,
1860
+ imports: [ViewCellComponent, EditCellComponent],
1673
1861
  }]
1674
1862
  }], propDecorators: { grid: [{
1675
1863
  type: Input
@@ -1689,8 +1877,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1689
1877
  type: Input
1690
1878
  }], isInEditing: [{
1691
1879
  type: Input
1692
- }], edited: [{
1693
- type: Output
1694
1880
  }] } });
1695
1881
 
1696
1882
  class TbodyCreateCancelComponent {
@@ -1713,166 +1899,167 @@ class TbodyCreateCancelComponent {
1713
1899
  this.saveButtonContent = this.grid.getSetting("edit.saveButtonContent", "save");
1714
1900
  this.cancelButtonContent = this.grid.getSetting("edit.cancelButtonContent", "cancel");
1715
1901
  }
1716
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TbodyCreateCancelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1717
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TbodyCreateCancelComponent, selector: "ng2-st-tbody-create-cancel", inputs: { grid: "grid", row: "row", editConfirm: "editConfirm", editCancel: "editCancel" }, usesOnChanges: true, ngImport: i0, template: `
1902
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TbodyCreateCancelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1903
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: TbodyCreateCancelComponent, isStandalone: true, selector: "ng2-st-tbody-create-cancel", inputs: { grid: "grid", row: "row", editConfirm: "editConfirm", editCancel: "editCancel" }, usesOnChanges: true, ngImport: i0, template: `
1718
1904
  @if (!row.pending) {
1719
- <a
1720
- href="#"
1721
- [id]="'row-' + row.index + '_editing-confirm-button'"
1722
- class="ng2-smart-action ng2-smart-action-edit-save"
1723
- [innerHTML]="saveButtonContent"
1724
- (click)="onSave($event)"
1725
- ></a>
1726
- <a
1727
- href="#"
1728
- [id]="'row-' + row.index + '_editing-cancel-button'"
1729
- class="ng2-smart-action ng2-smart-action-edit-cancel"
1730
- [innerHTML]="cancelButtonContent"
1731
- (click)="onCancelEdit($event)"
1732
- ></a>
1905
+ <a
1906
+ href="#"
1907
+ [id]="'row-' + row.index + '_editing-confirm-button'"
1908
+ class="ng2-smart-action ng2-smart-action-edit-save"
1909
+ [innerHTML]="saveButtonContent"
1910
+ (click)="onSave($event)"
1911
+ ></a>
1912
+ <a
1913
+ href="#"
1914
+ [id]="'row-' + row.index + '_editing-cancel-button'"
1915
+ class="ng2-smart-action ng2-smart-action-edit-cancel"
1916
+ [innerHTML]="cancelButtonContent"
1917
+ (click)="onCancelEdit($event)"
1918
+ ></a>
1733
1919
  } @else {
1734
- <div style="display: flex;">
1735
- <svg
1736
- (click)="$event.stopPropagation()"
1737
- style="height: 2rem; width: 2rem;"
1738
- version="1.1"
1739
- id="L9"
1740
- xmlns="http://www.w3.org/2000/svg"
1741
- xmlns:xlink="http://www.w3.org/1999/xlink"
1742
- x="0px"
1743
- y="0px"
1744
- viewBox="0 0 100 100"
1745
- enable-background="new 0 0 0 0"
1746
- xml:space="preserve"
1747
- >
1748
- <path
1749
- fill="#e9e9e9"
1750
- d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"
1751
- >
1752
- <animateTransform
1753
- attributeName="transform"
1754
- attributeType="XML"
1755
- type="rotate"
1756
- dur="1s"
1757
- from="0 50 50"
1758
- to="360 50 50"
1759
- repeatCount="indefinite"
1760
- />
1761
- </path>
1762
- </svg>
1763
- <svg
1764
- (click)="$event.stopPropagation()"
1765
- style="height: 2rem; width: 2rem; "
1766
- version="1.1"
1767
- id="L9"
1768
- xmlns="http://www.w3.org/2000/svg"
1769
- xmlns:xlink="http://www.w3.org/1999/xlink"
1770
- x="0px"
1771
- y="0px"
1772
- viewBox="0 0 100 100"
1773
- enable-background="new 0 0 0 0"
1774
- xml:space="preserve"
1775
- >
1776
- <path
1777
- fill="#e9e9e9"
1778
- d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"
1779
- >
1780
- <animateTransform
1781
- attributeName="transform"
1782
- attributeType="XML"
1783
- type="rotate"
1784
- dur="1s"
1785
- from="0 50 50"
1786
- to="360 50 50"
1787
- repeatCount="indefinite"
1788
- />
1789
- </path>
1790
- </svg>
1791
- </div>
1792
- }
1793
- `, isInline: true }); }
1920
+ <div style="display: flex;">
1921
+ <svg
1922
+ (click)="$event.stopPropagation()"
1923
+ style="height: 2rem; width: 2rem;"
1924
+ version="1.1"
1925
+ id="L9"
1926
+ xmlns="http://www.w3.org/2000/svg"
1927
+ xmlns:xlink="http://www.w3.org/1999/xlink"
1928
+ x="0px"
1929
+ y="0px"
1930
+ viewBox="0 0 100 100"
1931
+ enable-background="new 0 0 0 0"
1932
+ xml:space="preserve"
1933
+ >
1934
+ <path
1935
+ fill="#e9e9e9"
1936
+ d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"
1937
+ >
1938
+ <animateTransform
1939
+ attributeName="transform"
1940
+ attributeType="XML"
1941
+ type="rotate"
1942
+ dur="1s"
1943
+ from="0 50 50"
1944
+ to="360 50 50"
1945
+ repeatCount="indefinite"
1946
+ />
1947
+ </path>
1948
+ </svg>
1949
+ <svg
1950
+ (click)="$event.stopPropagation()"
1951
+ style="height: 2rem; width: 2rem; "
1952
+ version="1.1"
1953
+ id="L9"
1954
+ xmlns="http://www.w3.org/2000/svg"
1955
+ xmlns:xlink="http://www.w3.org/1999/xlink"
1956
+ x="0px"
1957
+ y="0px"
1958
+ viewBox="0 0 100 100"
1959
+ enable-background="new 0 0 0 0"
1960
+ xml:space="preserve"
1961
+ >
1962
+ <path
1963
+ fill="#e9e9e9"
1964
+ d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"
1965
+ >
1966
+ <animateTransform
1967
+ attributeName="transform"
1968
+ attributeType="XML"
1969
+ type="rotate"
1970
+ dur="1s"
1971
+ from="0 50 50"
1972
+ to="360 50 50"
1973
+ repeatCount="indefinite"
1974
+ />
1975
+ </path>
1976
+ </svg>
1977
+ </div>
1978
+ }
1979
+ `, isInline: true }); }
1794
1980
  }
1795
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TbodyCreateCancelComponent, decorators: [{
1981
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TbodyCreateCancelComponent, decorators: [{
1796
1982
  type: Component,
1797
1983
  args: [{
1798
1984
  selector: "ng2-st-tbody-create-cancel",
1799
1985
  template: `
1800
1986
  @if (!row.pending) {
1801
- <a
1802
- href="#"
1803
- [id]="'row-' + row.index + '_editing-confirm-button'"
1804
- class="ng2-smart-action ng2-smart-action-edit-save"
1805
- [innerHTML]="saveButtonContent"
1806
- (click)="onSave($event)"
1807
- ></a>
1808
- <a
1809
- href="#"
1810
- [id]="'row-' + row.index + '_editing-cancel-button'"
1811
- class="ng2-smart-action ng2-smart-action-edit-cancel"
1812
- [innerHTML]="cancelButtonContent"
1813
- (click)="onCancelEdit($event)"
1814
- ></a>
1987
+ <a
1988
+ href="#"
1989
+ [id]="'row-' + row.index + '_editing-confirm-button'"
1990
+ class="ng2-smart-action ng2-smart-action-edit-save"
1991
+ [innerHTML]="saveButtonContent"
1992
+ (click)="onSave($event)"
1993
+ ></a>
1994
+ <a
1995
+ href="#"
1996
+ [id]="'row-' + row.index + '_editing-cancel-button'"
1997
+ class="ng2-smart-action ng2-smart-action-edit-cancel"
1998
+ [innerHTML]="cancelButtonContent"
1999
+ (click)="onCancelEdit($event)"
2000
+ ></a>
1815
2001
  } @else {
1816
- <div style="display: flex;">
1817
- <svg
1818
- (click)="$event.stopPropagation()"
1819
- style="height: 2rem; width: 2rem;"
1820
- version="1.1"
1821
- id="L9"
1822
- xmlns="http://www.w3.org/2000/svg"
1823
- xmlns:xlink="http://www.w3.org/1999/xlink"
1824
- x="0px"
1825
- y="0px"
1826
- viewBox="0 0 100 100"
1827
- enable-background="new 0 0 0 0"
1828
- xml:space="preserve"
1829
- >
1830
- <path
1831
- fill="#e9e9e9"
1832
- d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"
1833
- >
1834
- <animateTransform
1835
- attributeName="transform"
1836
- attributeType="XML"
1837
- type="rotate"
1838
- dur="1s"
1839
- from="0 50 50"
1840
- to="360 50 50"
1841
- repeatCount="indefinite"
1842
- />
1843
- </path>
1844
- </svg>
1845
- <svg
1846
- (click)="$event.stopPropagation()"
1847
- style="height: 2rem; width: 2rem; "
1848
- version="1.1"
1849
- id="L9"
1850
- xmlns="http://www.w3.org/2000/svg"
1851
- xmlns:xlink="http://www.w3.org/1999/xlink"
1852
- x="0px"
1853
- y="0px"
1854
- viewBox="0 0 100 100"
1855
- enable-background="new 0 0 0 0"
1856
- xml:space="preserve"
1857
- >
1858
- <path
1859
- fill="#e9e9e9"
1860
- d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"
1861
- >
1862
- <animateTransform
1863
- attributeName="transform"
1864
- attributeType="XML"
1865
- type="rotate"
1866
- dur="1s"
1867
- from="0 50 50"
1868
- to="360 50 50"
1869
- repeatCount="indefinite"
1870
- />
1871
- </path>
1872
- </svg>
1873
- </div>
2002
+ <div style="display: flex;">
2003
+ <svg
2004
+ (click)="$event.stopPropagation()"
2005
+ style="height: 2rem; width: 2rem;"
2006
+ version="1.1"
2007
+ id="L9"
2008
+ xmlns="http://www.w3.org/2000/svg"
2009
+ xmlns:xlink="http://www.w3.org/1999/xlink"
2010
+ x="0px"
2011
+ y="0px"
2012
+ viewBox="0 0 100 100"
2013
+ enable-background="new 0 0 0 0"
2014
+ xml:space="preserve"
2015
+ >
2016
+ <path
2017
+ fill="#e9e9e9"
2018
+ d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"
2019
+ >
2020
+ <animateTransform
2021
+ attributeName="transform"
2022
+ attributeType="XML"
2023
+ type="rotate"
2024
+ dur="1s"
2025
+ from="0 50 50"
2026
+ to="360 50 50"
2027
+ repeatCount="indefinite"
2028
+ />
2029
+ </path>
2030
+ </svg>
2031
+ <svg
2032
+ (click)="$event.stopPropagation()"
2033
+ style="height: 2rem; width: 2rem; "
2034
+ version="1.1"
2035
+ id="L9"
2036
+ xmlns="http://www.w3.org/2000/svg"
2037
+ xmlns:xlink="http://www.w3.org/1999/xlink"
2038
+ x="0px"
2039
+ y="0px"
2040
+ viewBox="0 0 100 100"
2041
+ enable-background="new 0 0 0 0"
2042
+ xml:space="preserve"
2043
+ >
2044
+ <path
2045
+ fill="#e9e9e9"
2046
+ d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"
2047
+ >
2048
+ <animateTransform
2049
+ attributeName="transform"
2050
+ attributeType="XML"
2051
+ type="rotate"
2052
+ dur="1s"
2053
+ from="0 50 50"
2054
+ to="360 50 50"
2055
+ repeatCount="indefinite"
2056
+ />
2057
+ </path>
2058
+ </svg>
2059
+ </div>
1874
2060
  }
1875
- `,
2061
+ `,
2062
+ standalone: true,
1876
2063
  }]
1877
2064
  }], propDecorators: { grid: [{
1878
2065
  type: Input
@@ -1884,11 +2071,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1884
2071
  type: Input
1885
2072
  }] } });
1886
2073
 
2074
+ class TbodyCustomComponent {
2075
+ constructor() {
2076
+ this.custom = output();
2077
+ }
2078
+ onCustom(action) {
2079
+ this.custom.emit({
2080
+ action: action.name,
2081
+ data: this.row.getData(),
2082
+ source: this.source,
2083
+ });
2084
+ }
2085
+ customActions() {
2086
+ return this.grid.getSetting("actions.custom");
2087
+ }
2088
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TbodyCustomComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2089
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: TbodyCustomComponent, isStandalone: true, selector: "ng2-st-tbody-custom", inputs: { grid: "grid", row: "row", source: "source" }, outputs: { custom: "custom" }, ngImport: i0, template: `
2090
+ @for (action of customActions(); track $index) {
2091
+ <a
2092
+ [id]="'row-' + row.index + '_action-' + action.name + '-button'"
2093
+ href="#"
2094
+ class="ng2-smart-action ng2-smart-action-custom-custom"
2095
+ [innerHTML]="action.title"
2096
+ (click)="
2097
+ $event.stopPropagation(); $event.preventDefault(); onCustom(action)
2098
+ "
2099
+ ></a>
2100
+ }
2101
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2102
+ }
2103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TbodyCustomComponent, decorators: [{
2104
+ type: Component,
2105
+ args: [{
2106
+ selector: "ng2-st-tbody-custom",
2107
+ changeDetection: ChangeDetectionStrategy.OnPush,
2108
+ template: `
2109
+ @for (action of customActions(); track $index) {
2110
+ <a
2111
+ [id]="'row-' + row.index + '_action-' + action.name + '-button'"
2112
+ href="#"
2113
+ class="ng2-smart-action ng2-smart-action-custom-custom"
2114
+ [innerHTML]="action.title"
2115
+ (click)="
2116
+ $event.stopPropagation(); $event.preventDefault(); onCustom(action)
2117
+ "
2118
+ ></a>
2119
+ }
2120
+ `,
2121
+ standalone: true,
2122
+ }]
2123
+ }], propDecorators: { grid: [{
2124
+ type: Input
2125
+ }], row: [{
2126
+ type: Input
2127
+ }], source: [{
2128
+ type: Input
2129
+ }] } });
2130
+
1887
2131
  class TbodyEditDeleteComponent {
1888
2132
  constructor() {
1889
- this.edit = new EventEmitter();
1890
- this.delete = new EventEmitter();
1891
- this.editRowSelect = new EventEmitter();
2133
+ this.edit = output();
2134
+ this.delete = output();
2135
+ this.editRowSelect = output();
1892
2136
  this.isActionEdit = false;
1893
2137
  this.isActionDelete = false;
1894
2138
  this.editRowButtonContent = "";
@@ -1925,182 +2169,175 @@ class TbodyEditDeleteComponent {
1925
2169
  this.editRowButtonContent = this.grid.getSetting("edit.editButtonContent");
1926
2170
  this.deleteRowButtonContent = this.grid.getSetting("delete.deleteButtonContent");
1927
2171
  }
1928
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TbodyEditDeleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1929
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TbodyEditDeleteComponent, selector: "ng2-st-tbody-edit-delete", inputs: { grid: "grid", row: "row", source: "source", deleteConfirm: "deleteConfirm", editConfirm: "editConfirm" }, outputs: { edit: "edit", delete: "delete", editRowSelect: "editRowSelect" }, usesOnChanges: true, ngImport: i0, template: `
1930
- @if (!row.pending) {
2172
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TbodyEditDeleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2173
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: TbodyEditDeleteComponent, isStandalone: true, selector: "ng2-st-tbody-edit-delete", inputs: { grid: "grid", row: "row", source: "source", deleteConfirm: "deleteConfirm", editConfirm: "editConfirm" }, outputs: { edit: "edit", delete: "delete", editRowSelect: "editRowSelect" }, usesOnChanges: true, ngImport: i0, template: `
2174
+ @if (!row.pending) { @if (isActionEdit) {
2175
+ <a
2176
+ href="#"
2177
+ [id]="'row-' + row.index + '_action-edit-button'"
2178
+ class="ng2-smart-action ng2-smart-action-edit-edit"
2179
+ [innerHTML]="editRowButtonContent"
2180
+ (click)="onEdit($event)"
2181
+ ></a>
2182
+ } @if (isActionDelete) {
2183
+ <a
2184
+ href="#"
2185
+ [id]="'row-' + row.index + '_action-delete-button'"
2186
+ class="ng2-smart-action ng2-smart-action-delete-delete"
2187
+ [innerHTML]="deleteRowButtonContent"
2188
+ (click)="onDelete($event)"
2189
+ ></a>
2190
+ } } @else {
2191
+ <div style="display: flex;">
1931
2192
  @if (isActionEdit) {
1932
- <a
1933
- href="#"
1934
- [id]="'row-' + row.index + '_action-edit-button'"
1935
- class="ng2-smart-action ng2-smart-action-edit-edit"
1936
- [innerHTML]="editRowButtonContent"
1937
- (click)="onEdit($event)"
1938
- ></a>
1939
- }
1940
- @if (isActionDelete) {
1941
- <a
1942
- href="#"
1943
- [id]="'row-' + row.index + '_action-delete-button'"
1944
- class="ng2-smart-action ng2-smart-action-delete-delete"
1945
- [innerHTML]="deleteRowButtonContent"
1946
- (click)="onDelete($event)"
1947
- ></a>
2193
+ <svg
2194
+ (click)="$event.stopPropagation()"
2195
+ style="height: 2rem; width: 2rem;"
2196
+ version="1.1"
2197
+ id="L9"
2198
+ xmlns="http://www.w3.org/2000/svg"
2199
+ xmlns:xlink="http://www.w3.org/1999/xlink"
2200
+ x="0px"
2201
+ y="0px"
2202
+ viewBox="0 0 100 100"
2203
+ enable-background="new 0 0 0 0"
2204
+ xml:space="preserve"
2205
+ >
2206
+ <path
2207
+ fill="#e9e9e9"
2208
+ d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"
2209
+ >
2210
+ <animateTransform
2211
+ attributeName="transform"
2212
+ attributeType="XML"
2213
+ type="rotate"
2214
+ dur="1s"
2215
+ from="0 50 50"
2216
+ to="360 50 50"
2217
+ repeatCount="indefinite"
2218
+ />
2219
+ </path>
2220
+ </svg>
2221
+ } @if (isActionDelete) {
2222
+ <svg
2223
+ (click)="$event.stopPropagation()"
2224
+ style="height: 2rem; width: 2rem;"
2225
+ version="1.1"
2226
+ id="L9"
2227
+ xmlns="http://www.w3.org/2000/svg"
2228
+ xmlns:xlink="http://www.w3.org/1999/xlink"
2229
+ x="0px"
2230
+ y="0px"
2231
+ viewBox="0 0 100 100"
2232
+ enable-background="new 0 0 0 0"
2233
+ xml:space="preserve"
2234
+ >
2235
+ <path
2236
+ fill="#e9e9e9"
2237
+ d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"
2238
+ >
2239
+ <animateTransform
2240
+ attributeName="transform"
2241
+ attributeType="XML"
2242
+ type="rotate"
2243
+ dur="1s"
2244
+ from="0 50 50"
2245
+ to="360 50 50"
2246
+ repeatCount="indefinite"
2247
+ />
2248
+ </path>
2249
+ </svg>
1948
2250
  }
1949
- } @else {
1950
- <div style="display: flex;">
1951
- @if (isActionEdit) {
1952
- <svg
1953
- (click)="$event.stopPropagation()"
1954
- style="height: 2rem; width: 2rem;"
1955
- version="1.1"
1956
- id="L9"
1957
- xmlns="http://www.w3.org/2000/svg"
1958
- xmlns:xlink="http://www.w3.org/1999/xlink"
1959
- x="0px"
1960
- y="0px"
1961
- viewBox="0 0 100 100"
1962
- enable-background="new 0 0 0 0"
1963
- xml:space="preserve"
1964
- >
1965
- <path
1966
- fill="#e9e9e9"
1967
- d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"
1968
- >
1969
- <animateTransform
1970
- attributeName="transform"
1971
- attributeType="XML"
1972
- type="rotate"
1973
- dur="1s"
1974
- from="0 50 50"
1975
- to="360 50 50"
1976
- repeatCount="indefinite"
1977
- />
1978
- </path>
1979
- </svg>
1980
- }
1981
- @if (isActionDelete) {
1982
- <svg
1983
- (click)="$event.stopPropagation()"
1984
- style="height: 2rem; width: 2rem;"
1985
- version="1.1"
1986
- id="L9"
1987
- xmlns="http://www.w3.org/2000/svg"
1988
- xmlns:xlink="http://www.w3.org/1999/xlink"
1989
- x="0px"
1990
- y="0px"
1991
- viewBox="0 0 100 100"
1992
- enable-background="new 0 0 0 0"
1993
- xml:space="preserve"
1994
- >
1995
- <path
1996
- fill="#e9e9e9"
1997
- d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"
1998
- >
1999
- <animateTransform
2000
- attributeName="transform"
2001
- attributeType="XML"
2002
- type="rotate"
2003
- dur="1s"
2004
- from="0 50 50"
2005
- to="360 50 50"
2006
- repeatCount="indefinite"
2007
- />
2008
- </path>
2009
- </svg>
2010
- }
2011
- </div>
2012
- }
2013
- `, isInline: true }); }
2251
+ </div>
2252
+ }
2253
+ `, isInline: true }); }
2014
2254
  }
2015
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TbodyEditDeleteComponent, decorators: [{
2255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TbodyEditDeleteComponent, decorators: [{
2016
2256
  type: Component,
2017
2257
  args: [{
2018
2258
  selector: "ng2-st-tbody-edit-delete",
2019
2259
  template: `
2020
- @if (!row.pending) {
2260
+ @if (!row.pending) { @if (isActionEdit) {
2261
+ <a
2262
+ href="#"
2263
+ [id]="'row-' + row.index + '_action-edit-button'"
2264
+ class="ng2-smart-action ng2-smart-action-edit-edit"
2265
+ [innerHTML]="editRowButtonContent"
2266
+ (click)="onEdit($event)"
2267
+ ></a>
2268
+ } @if (isActionDelete) {
2269
+ <a
2270
+ href="#"
2271
+ [id]="'row-' + row.index + '_action-delete-button'"
2272
+ class="ng2-smart-action ng2-smart-action-delete-delete"
2273
+ [innerHTML]="deleteRowButtonContent"
2274
+ (click)="onDelete($event)"
2275
+ ></a>
2276
+ } } @else {
2277
+ <div style="display: flex;">
2021
2278
  @if (isActionEdit) {
2022
- <a
2023
- href="#"
2024
- [id]="'row-' + row.index + '_action-edit-button'"
2025
- class="ng2-smart-action ng2-smart-action-edit-edit"
2026
- [innerHTML]="editRowButtonContent"
2027
- (click)="onEdit($event)"
2028
- ></a>
2029
- }
2030
- @if (isActionDelete) {
2031
- <a
2032
- href="#"
2033
- [id]="'row-' + row.index + '_action-delete-button'"
2034
- class="ng2-smart-action ng2-smart-action-delete-delete"
2035
- [innerHTML]="deleteRowButtonContent"
2036
- (click)="onDelete($event)"
2037
- ></a>
2279
+ <svg
2280
+ (click)="$event.stopPropagation()"
2281
+ style="height: 2rem; width: 2rem;"
2282
+ version="1.1"
2283
+ id="L9"
2284
+ xmlns="http://www.w3.org/2000/svg"
2285
+ xmlns:xlink="http://www.w3.org/1999/xlink"
2286
+ x="0px"
2287
+ y="0px"
2288
+ viewBox="0 0 100 100"
2289
+ enable-background="new 0 0 0 0"
2290
+ xml:space="preserve"
2291
+ >
2292
+ <path
2293
+ fill="#e9e9e9"
2294
+ d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"
2295
+ >
2296
+ <animateTransform
2297
+ attributeName="transform"
2298
+ attributeType="XML"
2299
+ type="rotate"
2300
+ dur="1s"
2301
+ from="0 50 50"
2302
+ to="360 50 50"
2303
+ repeatCount="indefinite"
2304
+ />
2305
+ </path>
2306
+ </svg>
2307
+ } @if (isActionDelete) {
2308
+ <svg
2309
+ (click)="$event.stopPropagation()"
2310
+ style="height: 2rem; width: 2rem;"
2311
+ version="1.1"
2312
+ id="L9"
2313
+ xmlns="http://www.w3.org/2000/svg"
2314
+ xmlns:xlink="http://www.w3.org/1999/xlink"
2315
+ x="0px"
2316
+ y="0px"
2317
+ viewBox="0 0 100 100"
2318
+ enable-background="new 0 0 0 0"
2319
+ xml:space="preserve"
2320
+ >
2321
+ <path
2322
+ fill="#e9e9e9"
2323
+ d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"
2324
+ >
2325
+ <animateTransform
2326
+ attributeName="transform"
2327
+ attributeType="XML"
2328
+ type="rotate"
2329
+ dur="1s"
2330
+ from="0 50 50"
2331
+ to="360 50 50"
2332
+ repeatCount="indefinite"
2333
+ />
2334
+ </path>
2335
+ </svg>
2038
2336
  }
2039
- } @else {
2040
- <div style="display: flex;">
2041
- @if (isActionEdit) {
2042
- <svg
2043
- (click)="$event.stopPropagation()"
2044
- style="height: 2rem; width: 2rem;"
2045
- version="1.1"
2046
- id="L9"
2047
- xmlns="http://www.w3.org/2000/svg"
2048
- xmlns:xlink="http://www.w3.org/1999/xlink"
2049
- x="0px"
2050
- y="0px"
2051
- viewBox="0 0 100 100"
2052
- enable-background="new 0 0 0 0"
2053
- xml:space="preserve"
2054
- >
2055
- <path
2056
- fill="#e9e9e9"
2057
- d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"
2058
- >
2059
- <animateTransform
2060
- attributeName="transform"
2061
- attributeType="XML"
2062
- type="rotate"
2063
- dur="1s"
2064
- from="0 50 50"
2065
- to="360 50 50"
2066
- repeatCount="indefinite"
2067
- />
2068
- </path>
2069
- </svg>
2070
- }
2071
- @if (isActionDelete) {
2072
- <svg
2073
- (click)="$event.stopPropagation()"
2074
- style="height: 2rem; width: 2rem;"
2075
- version="1.1"
2076
- id="L9"
2077
- xmlns="http://www.w3.org/2000/svg"
2078
- xmlns:xlink="http://www.w3.org/1999/xlink"
2079
- x="0px"
2080
- y="0px"
2081
- viewBox="0 0 100 100"
2082
- enable-background="new 0 0 0 0"
2083
- xml:space="preserve"
2084
- >
2085
- <path
2086
- fill="#e9e9e9"
2087
- d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"
2088
- >
2089
- <animateTransform
2090
- attributeName="transform"
2091
- attributeType="XML"
2092
- type="rotate"
2093
- dur="1s"
2094
- from="0 50 50"
2095
- to="360 50 50"
2096
- repeatCount="indefinite"
2097
- />
2098
- </path>
2099
- </svg>
2100
- }
2101
- </div>
2337
+ </div>
2102
2338
  }
2103
- `,
2339
+ `,
2340
+ standalone: true,
2104
2341
  }]
2105
2342
  }], propDecorators: { grid: [{
2106
2343
  type: Input
@@ -2112,87 +2349,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2112
2349
  type: Input
2113
2350
  }], editConfirm: [{
2114
2351
  type: Input
2115
- }], edit: [{
2116
- type: Output
2117
- }], delete: [{
2118
- type: Output
2119
- }], editRowSelect: [{
2120
- type: Output
2121
- }] } });
2122
-
2123
- class TbodyCustomComponent {
2124
- constructor() {
2125
- this.custom = new EventEmitter();
2126
- }
2127
- onCustom(action) {
2128
- this.custom.emit({
2129
- action: action.name,
2130
- data: this.row.getData(),
2131
- source: this.source,
2132
- });
2133
- }
2134
- customActions() {
2135
- return this.grid.getSetting("actions.custom");
2136
- }
2137
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TbodyCustomComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2138
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TbodyCustomComponent, selector: "ng2-st-tbody-custom", inputs: { grid: "grid", row: "row", source: "source" }, outputs: { custom: "custom" }, ngImport: i0, template: `
2139
- @for (action of customActions(); track $index) {
2140
- <a
2141
- [id]="'row-' + row.index + '_action-' + action.name + '-button'"
2142
- href="#"
2143
- class="ng2-smart-action ng2-smart-action-custom-custom"
2144
- [innerHTML]="action.title"
2145
- (click)="$event.stopPropagation(); $event.preventDefault(); onCustom(action)"
2146
- ></a>
2147
- }
2148
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2149
- }
2150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TbodyCustomComponent, decorators: [{
2151
- type: Component,
2152
- args: [{
2153
- selector: "ng2-st-tbody-custom",
2154
- changeDetection: ChangeDetectionStrategy.OnPush,
2155
- template: `
2156
- @for (action of customActions(); track $index) {
2157
- <a
2158
- [id]="'row-' + row.index + '_action-' + action.name + '-button'"
2159
- href="#"
2160
- class="ng2-smart-action ng2-smart-action-custom-custom"
2161
- [innerHTML]="action.title"
2162
- (click)="$event.stopPropagation(); $event.preventDefault(); onCustom(action)"
2163
- ></a>
2164
- }
2165
- `,
2166
- }]
2167
- }], propDecorators: { grid: [{
2168
- type: Input
2169
- }], row: [{
2170
- type: Input
2171
- }], source: [{
2172
- type: Input
2173
- }], custom: [{
2174
- type: Output
2175
2352
  }] } });
2176
2353
 
2177
2354
  class Ng2SmartTableTbodyComponent {
2178
2355
  constructor() {
2179
- this.rowClassFunction = () => '';
2180
- this.save = new EventEmitter();
2181
- this.cancel = new EventEmitter();
2182
- this.edit = new EventEmitter();
2183
- this.editCancel = new EventEmitter();
2184
- this.delete = new EventEmitter();
2185
- this.custom = new EventEmitter();
2186
- this.edited = new EventEmitter();
2187
- this.userSelectRow = new EventEmitter();
2188
- this.userClickedRow = new EventEmitter();
2189
- this.editRowSelect = new EventEmitter();
2190
- this.multipleSelectRow = new EventEmitter();
2356
+ this.rowClassFunction = () => "";
2357
+ this.save = output();
2358
+ this.cancel = output();
2359
+ this.edit = output();
2360
+ this.editCancel = output();
2361
+ this.delete = output();
2362
+ this.custom = output();
2363
+ this.edited = output();
2364
+ this.userSelectRow = output();
2365
+ this.userClickedRow = output();
2366
+ this.editRowSelect = output();
2367
+ this.multipleSelectRow = output();
2191
2368
  this.isMultiSelectVisible = false;
2192
2369
  this.showActionColumnLeft = false;
2193
2370
  this.showActionColumnRight = false;
2194
- this.mode = 'inline';
2195
- this.editInputClass = '';
2371
+ this.mode = "inline";
2372
+ this.editInputClass = "";
2196
2373
  this.isActionAdd = false;
2197
2374
  this.isActionEdit = false;
2198
2375
  this.isActionDelete = false;
@@ -2204,14 +2381,14 @@ class Ng2SmartTableTbodyComponent {
2204
2381
  }
2205
2382
  ngOnChanges() {
2206
2383
  this.isMultiSelectVisible = this.grid.isMultiSelectVisible();
2207
- this.showActionColumnLeft = this.grid.showActionColumn('left');
2208
- this.mode = this.grid.getSetting('mode', 'inline');
2209
- this.editInputClass = this.grid.getSetting('edit.inputClass', '');
2210
- this.showActionColumnRight = this.grid.showActionColumn('right');
2211
- this.isActionAdd = this.grid.getSetting('actions.add', false);
2212
- this.isActionEdit = this.grid.getSetting('actions.edit', false);
2213
- this.isActionDelete = this.grid.getSetting('actions.delete', false);
2214
- this.noDataMessage = this.grid.getSetting('noDataMessage');
2384
+ this.showActionColumnLeft = this.grid.showActionColumn("left");
2385
+ this.mode = this.grid.getSetting("mode", "inline");
2386
+ this.editInputClass = this.grid.getSetting("edit.inputClass", "");
2387
+ this.showActionColumnRight = this.grid.showActionColumn("right");
2388
+ this.isActionAdd = this.grid.getSetting("actions.add", false);
2389
+ this.isActionEdit = this.grid.getSetting("actions.edit", false);
2390
+ this.isActionDelete = this.grid.getSetting("actions.delete", false);
2391
+ this.noDataMessage = this.grid.getSetting("noDataMessage");
2215
2392
  }
2216
2393
  getVisibleCells(cells) {
2217
2394
  return (cells || []).filter((cell) => !cell.getColumn().hide);
@@ -2219,12 +2396,18 @@ class Ng2SmartTableTbodyComponent {
2219
2396
  trackByIdOrIndex(index, item) {
2220
2397
  return item?.id || index;
2221
2398
  }
2222
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Ng2SmartTableTbodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2223
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: Ng2SmartTableTbodyComponent, selector: "[ng2-st-tbody]", inputs: { grid: "grid", source: "source", deleteConfirm: "deleteConfirm", editConfirm: "editConfirm", rowClassFunction: "rowClassFunction" }, outputs: { save: "save", cancel: "cancel", edit: "edit", editCancel: "editCancel", delete: "delete", custom: "custom", edited: "edited", userSelectRow: "userSelectRow", userClickedRow: "userClickedRow", editRowSelect: "editRowSelect", multipleSelectRow: "multipleSelectRow" }, usesOnChanges: true, ngImport: i0, template: "@if (grid.getRows().length) { @for (row of grid.getRows(); track\ntrackByIdOrIndex($index, row)) {\n<tr\n (click)=\"userClickedRow.emit(row)\"\n class=\"ng2-smart-row\"\n [className]=\"rowClassFunction(row)\"\n [ngClass]=\"{ selected: row.isSelected }\"\n>\n @if (isMultiSelectVisible) {\n <td\n class=\"ng2-smart-actions ng2-smart-action-multiple-select\"\n (click)=\"$event.stopPropagation(); multipleSelectRow.emit(row)\"\n >\n <input\n type=\"checkbox\"\n [id]=\"'row-' + row.index + '_select-checkbox'\"\n class=\"form-control\"\n [ngModel]=\"row.isSelected\"\n />\n </td>\n } @if (!row.isInEditing && showActionColumnLeft) {\n <td class=\"ng2-smart-actions\" (click)=\"$event.stopPropagation()\">\n <ng2-st-tbody-custom\n [grid]=\"grid\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n ></ng2-st-tbody-custom>\n <ng2-st-tbody-edit-delete\n [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n } @if (row.isInEditing && showActionColumnLeft) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-tbody-create-cancel\n [grid]=\"grid\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm\"\n [editCancel]=\"editCancel\"\n ></ng2-st-tbody-create-cancel>\n </td>\n } @for (cell of getVisibleCells(row.cells); track cell.getId()) {\n <td [ngClass]=\"cell.getColumnClass()\">\n <ng2-smart-table-cell\n [cell]=\"cell\"\n [grid]=\"grid\"\n [row]=\"row\"\n [isNew]=\"false\"\n [mode]=\"mode\"\n [editConfirm]=\"editConfirm\"\n [inputClass]=\"editInputClass\"\n [isInEditing]=\"row.isInEditing\"\n >\n </ng2-smart-table-cell>\n </td>\n } @if (row.isInEditing && showActionColumnRight) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-tbody-create-cancel\n [grid]=\"grid\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm\"\n ></ng2-st-tbody-create-cancel>\n </td>\n } @if (!row.isInEditing && showActionColumnRight) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-tbody-custom\n [grid]=\"grid\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n ></ng2-st-tbody-custom>\n <ng2-st-tbody-edit-delete\n [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [row]=\"row\"\n [source]=\"source\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n }\n</tr>\n} } @else {\n<tr>\n <td [attr.colspan]=\"tableColumnsCount\">\n {{ noDataMessage }}\n </td>\n</tr>\n}\n", styles: [":host .ng2-smart-row.selected{background:#0000000d}:host .ng2-smart-row .ng2-smart-actions.ng2-smart-action-multiple-select{text-align:center}:host ::ng-deep ng2-st-tbody-edit-delete a:first-child,:host ::ng-deep ng2-st-tbody-create-cancel a:first-child{margin-right:.25rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CellComponent, selector: "ng2-smart-table-cell", inputs: ["grid", "row", "editConfirm", "createConfirm", "isNew", "cell", "inputClass", "mode", "isInEditing"], outputs: ["edited"] }, { kind: "component", type: TbodyCreateCancelComponent, selector: "ng2-st-tbody-create-cancel", inputs: ["grid", "row", "editConfirm", "editCancel"] }, { kind: "component", type: TbodyEditDeleteComponent, selector: "ng2-st-tbody-edit-delete", inputs: ["grid", "row", "source", "deleteConfirm", "editConfirm"], outputs: ["edit", "delete", "editRowSelect"] }, { kind: "component", type: TbodyCustomComponent, selector: "ng2-st-tbody-custom", inputs: ["grid", "row", "source"], outputs: ["custom"] }] }); }
2399
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: Ng2SmartTableTbodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2400
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: Ng2SmartTableTbodyComponent, isStandalone: true, selector: "[ng2-st-tbody]", inputs: { grid: "grid", source: "source", deleteConfirm: "deleteConfirm", editConfirm: "editConfirm", rowClassFunction: "rowClassFunction" }, outputs: { save: "save", cancel: "cancel", edit: "edit", editCancel: "editCancel", delete: "delete", custom: "custom", edited: "edited", userSelectRow: "userSelectRow", userClickedRow: "userClickedRow", editRowSelect: "editRowSelect", multipleSelectRow: "multipleSelectRow" }, usesOnChanges: true, ngImport: i0, template: "@if (grid.getRows().length) { @for (row of grid.getRows(); track\ntrackByIdOrIndex($index, row)) {\n<tr\n (click)=\"userClickedRow.emit(row)\"\n class=\"ng2-smart-row\"\n [class]=\"rowClassFunction(row)\"\n [class.selected]=\"row.isSelected\"\n>\n @if (isMultiSelectVisible) {\n <td\n class=\"ng2-smart-actions ng2-smart-action-multiple-select\"\n (click)=\"$event.stopPropagation(); multipleSelectRow.emit(row)\"\n >\n <input\n type=\"checkbox\"\n [id]=\"'row-' + row.index + '_select-checkbox'\"\n class=\"form-control\"\n [ngModel]=\"row.isSelected\"\n />\n </td>\n } @if (!row.isInEditing && showActionColumnLeft) {\n <td class=\"ng2-smart-actions\" (click)=\"$event.stopPropagation()\">\n <ng2-st-tbody-custom\n [grid]=\"grid\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n ></ng2-st-tbody-custom>\n <ng2-st-tbody-edit-delete\n [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n } @if (row.isInEditing && showActionColumnLeft) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-tbody-create-cancel\n [grid]=\"grid\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm\"\n [editCancel]=\"editCancel\"\n ></ng2-st-tbody-create-cancel>\n </td>\n } @for (cell of getVisibleCells(row.cells); track cell.getId()) {\n <td [class]=\"cell.getColumnClass()\">\n <ng2-smart-table-cell\n [cell]=\"cell\"\n [grid]=\"grid\"\n [row]=\"row\"\n [isNew]=\"false\"\n [mode]=\"mode\"\n [editConfirm]=\"editConfirm\"\n [inputClass]=\"editInputClass\"\n [isInEditing]=\"row.isInEditing\"\n >\n </ng2-smart-table-cell>\n </td>\n } @if (row.isInEditing && showActionColumnRight) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-tbody-create-cancel\n [grid]=\"grid\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm\"\n ></ng2-st-tbody-create-cancel>\n </td>\n } @if (!row.isInEditing && showActionColumnRight) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-tbody-custom\n [grid]=\"grid\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n ></ng2-st-tbody-custom>\n <ng2-st-tbody-edit-delete\n [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [row]=\"row\"\n [source]=\"source\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n }\n</tr>\n} } @else {\n<tr>\n <td [attr.colspan]=\"tableColumnsCount\">\n {{ noDataMessage }}\n </td>\n</tr>\n}\n", styles: [":host .ng2-smart-row.selected{background:#0000000d}:host .ng2-smart-row .ng2-smart-actions.ng2-smart-action-multiple-select{text-align:center}:host ::ng-deep ng2-st-tbody-edit-delete a:first-child,:host ::ng-deep ng2-st-tbody-create-cancel a:first-child{margin-right:.25rem}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: TbodyCustomComponent, selector: "ng2-st-tbody-custom", inputs: ["grid", "row", "source"], outputs: ["custom"] }, { kind: "component", type: TbodyEditDeleteComponent, selector: "ng2-st-tbody-edit-delete", inputs: ["grid", "row", "source", "deleteConfirm", "editConfirm"], outputs: ["edit", "delete", "editRowSelect"] }, { kind: "component", type: TbodyCreateCancelComponent, selector: "ng2-st-tbody-create-cancel", inputs: ["grid", "row", "editConfirm", "editCancel"] }, { kind: "component", type: CellComponent, selector: "ng2-smart-table-cell", inputs: ["grid", "row", "editConfirm", "createConfirm", "isNew", "cell", "inputClass", "mode", "isInEditing"], outputs: ["edited"] }] }); }
2224
2401
  }
2225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Ng2SmartTableTbodyComponent, decorators: [{
2402
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: Ng2SmartTableTbodyComponent, decorators: [{
2226
2403
  type: Component,
2227
- args: [{ selector: '[ng2-st-tbody]', template: "@if (grid.getRows().length) { @for (row of grid.getRows(); track\ntrackByIdOrIndex($index, row)) {\n<tr\n (click)=\"userClickedRow.emit(row)\"\n class=\"ng2-smart-row\"\n [className]=\"rowClassFunction(row)\"\n [ngClass]=\"{ selected: row.isSelected }\"\n>\n @if (isMultiSelectVisible) {\n <td\n class=\"ng2-smart-actions ng2-smart-action-multiple-select\"\n (click)=\"$event.stopPropagation(); multipleSelectRow.emit(row)\"\n >\n <input\n type=\"checkbox\"\n [id]=\"'row-' + row.index + '_select-checkbox'\"\n class=\"form-control\"\n [ngModel]=\"row.isSelected\"\n />\n </td>\n } @if (!row.isInEditing && showActionColumnLeft) {\n <td class=\"ng2-smart-actions\" (click)=\"$event.stopPropagation()\">\n <ng2-st-tbody-custom\n [grid]=\"grid\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n ></ng2-st-tbody-custom>\n <ng2-st-tbody-edit-delete\n [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n } @if (row.isInEditing && showActionColumnLeft) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-tbody-create-cancel\n [grid]=\"grid\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm\"\n [editCancel]=\"editCancel\"\n ></ng2-st-tbody-create-cancel>\n </td>\n } @for (cell of getVisibleCells(row.cells); track cell.getId()) {\n <td [ngClass]=\"cell.getColumnClass()\">\n <ng2-smart-table-cell\n [cell]=\"cell\"\n [grid]=\"grid\"\n [row]=\"row\"\n [isNew]=\"false\"\n [mode]=\"mode\"\n [editConfirm]=\"editConfirm\"\n [inputClass]=\"editInputClass\"\n [isInEditing]=\"row.isInEditing\"\n >\n </ng2-smart-table-cell>\n </td>\n } @if (row.isInEditing && showActionColumnRight) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-tbody-create-cancel\n [grid]=\"grid\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm\"\n ></ng2-st-tbody-create-cancel>\n </td>\n } @if (!row.isInEditing && showActionColumnRight) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-tbody-custom\n [grid]=\"grid\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n ></ng2-st-tbody-custom>\n <ng2-st-tbody-edit-delete\n [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [row]=\"row\"\n [source]=\"source\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n }\n</tr>\n} } @else {\n<tr>\n <td [attr.colspan]=\"tableColumnsCount\">\n {{ noDataMessage }}\n </td>\n</tr>\n}\n", styles: [":host .ng2-smart-row.selected{background:#0000000d}:host .ng2-smart-row .ng2-smart-actions.ng2-smart-action-multiple-select{text-align:center}:host ::ng-deep ng2-st-tbody-edit-delete a:first-child,:host ::ng-deep ng2-st-tbody-create-cancel a:first-child{margin-right:.25rem}\n"] }]
2404
+ args: [{ selector: "[ng2-st-tbody]", standalone: true, imports: [
2405
+ FormsModule,
2406
+ TbodyCustomComponent,
2407
+ TbodyEditDeleteComponent,
2408
+ TbodyCreateCancelComponent,
2409
+ CellComponent,
2410
+ ], template: "@if (grid.getRows().length) { @for (row of grid.getRows(); track\ntrackByIdOrIndex($index, row)) {\n<tr\n (click)=\"userClickedRow.emit(row)\"\n class=\"ng2-smart-row\"\n [class]=\"rowClassFunction(row)\"\n [class.selected]=\"row.isSelected\"\n>\n @if (isMultiSelectVisible) {\n <td\n class=\"ng2-smart-actions ng2-smart-action-multiple-select\"\n (click)=\"$event.stopPropagation(); multipleSelectRow.emit(row)\"\n >\n <input\n type=\"checkbox\"\n [id]=\"'row-' + row.index + '_select-checkbox'\"\n class=\"form-control\"\n [ngModel]=\"row.isSelected\"\n />\n </td>\n } @if (!row.isInEditing && showActionColumnLeft) {\n <td class=\"ng2-smart-actions\" (click)=\"$event.stopPropagation()\">\n <ng2-st-tbody-custom\n [grid]=\"grid\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n ></ng2-st-tbody-custom>\n <ng2-st-tbody-edit-delete\n [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n } @if (row.isInEditing && showActionColumnLeft) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-tbody-create-cancel\n [grid]=\"grid\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm\"\n [editCancel]=\"editCancel\"\n ></ng2-st-tbody-create-cancel>\n </td>\n } @for (cell of getVisibleCells(row.cells); track cell.getId()) {\n <td [class]=\"cell.getColumnClass()\">\n <ng2-smart-table-cell\n [cell]=\"cell\"\n [grid]=\"grid\"\n [row]=\"row\"\n [isNew]=\"false\"\n [mode]=\"mode\"\n [editConfirm]=\"editConfirm\"\n [inputClass]=\"editInputClass\"\n [isInEditing]=\"row.isInEditing\"\n >\n </ng2-smart-table-cell>\n </td>\n } @if (row.isInEditing && showActionColumnRight) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-tbody-create-cancel\n [grid]=\"grid\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm\"\n ></ng2-st-tbody-create-cancel>\n </td>\n } @if (!row.isInEditing && showActionColumnRight) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-tbody-custom\n [grid]=\"grid\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source\"\n ></ng2-st-tbody-custom>\n <ng2-st-tbody-edit-delete\n [grid]=\"grid\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [row]=\"row\"\n [source]=\"source\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n (editRowSelect)=\"editRowSelect.emit($event)\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n }\n</tr>\n} } @else {\n<tr>\n <td [attr.colspan]=\"tableColumnsCount\">\n {{ noDataMessage }}\n </td>\n</tr>\n}\n", styles: [":host .ng2-smart-row.selected{background:#0000000d}:host .ng2-smart-row .ng2-smart-actions.ng2-smart-action-multiple-select{text-align:center}:host ::ng-deep ng2-st-tbody-edit-delete a:first-child,:host ::ng-deep ng2-st-tbody-create-cancel a:first-child{margin-right:.25rem}\n"] }]
2228
2411
  }], propDecorators: { grid: [{
2229
2412
  type: Input
2230
2413
  }], source: [{
@@ -2235,35 +2418,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2235
2418
  type: Input
2236
2419
  }], rowClassFunction: [{
2237
2420
  type: Input
2238
- }], save: [{
2239
- type: Output
2240
- }], cancel: [{
2241
- type: Output
2242
- }], edit: [{
2243
- type: Output
2244
- }], editCancel: [{
2245
- type: Output
2246
- }], delete: [{
2247
- type: Output
2248
- }], custom: [{
2249
- type: Output
2250
- }], edited: [{
2251
- type: Output
2252
- }], userSelectRow: [{
2253
- type: Output
2254
- }], userClickedRow: [{
2255
- type: Output
2256
- }], editRowSelect: [{
2257
- type: Output
2258
- }], multipleSelectRow: [{
2259
- type: Output
2260
2421
  }] } });
2261
2422
 
2262
2423
  class FilterDefault {
2263
2424
  constructor() {
2264
2425
  this.inputClass = '';
2265
2426
  this.query = '';
2266
- this.filter = new EventEmitter();
2427
+ this.filter = output();
2267
2428
  }
2268
2429
  onFilter(query) {
2269
2430
  this.source.addFilter({
@@ -2272,14 +2433,12 @@ class FilterDefault {
2272
2433
  filter: this.column.getFilterFunction(),
2273
2434
  });
2274
2435
  }
2275
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterDefault, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2276
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FilterDefault, selector: "ng-component", inputs: { column: "column", source: "source", inputClass: "inputClass", query: "query" }, outputs: { filter: "filter" }, ngImport: i0, template: '', isInline: true }); }
2436
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: FilterDefault, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2437
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: FilterDefault, isStandalone: true, selector: "ng-component", inputs: { column: "column", source: "source", inputClass: "inputClass", query: "query" }, outputs: { filter: "filter" }, ngImport: i0, template: '', isInline: true }); }
2277
2438
  }
2278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterDefault, decorators: [{
2439
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: FilterDefault, decorators: [{
2279
2440
  type: Component,
2280
- args: [{
2281
- template: '',
2282
- }]
2441
+ args: [{ template: '' }]
2283
2442
  }], propDecorators: { column: [{
2284
2443
  type: Input
2285
2444
  }], source: [{
@@ -2288,8 +2447,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2288
2447
  type: Input
2289
2448
  }], query: [{
2290
2449
  type: Input
2291
- }], filter: [{
2292
- type: Output
2450
+ }] } });
2451
+
2452
+ class CustomFilterComponent extends FilterDefault {
2453
+ ngOnChanges(changes) {
2454
+ if (this.customComponent) {
2455
+ if (this.customComponent.instance?.ngOnChanges) {
2456
+ this.customComponent.instance?.ngOnChanges(changes);
2457
+ }
2458
+ return;
2459
+ }
2460
+ if (this.column.filter && this.column.filter.type === "custom") {
2461
+ this.customComponent = this.dynamicTarget.createComponent(this.column.filter?.component);
2462
+ }
2463
+ // set @Inputs and @Outputs of custom component
2464
+ this.customComponent.instance.query = this.query;
2465
+ this.customComponent.instance.column = this.column;
2466
+ this.customComponent.instance.source = this.source;
2467
+ this.customComponent.instance.inputClass = this.inputClass;
2468
+ this.customComponent.instance.filter.subscribe((event) => this.onFilter(event));
2469
+ }
2470
+ ngOnDestroy() {
2471
+ if (this.customComponent) {
2472
+ this.customComponent.destroy();
2473
+ }
2474
+ }
2475
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: CustomFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2476
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: CustomFilterComponent, isStandalone: true, selector: "custom-table-filter", viewQueries: [{ propertyName: "dynamicTarget", first: true, predicate: ["dynamicTarget"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `<ng-template #dynamicTarget></ng-template>`, isInline: true }); }
2477
+ }
2478
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: CustomFilterComponent, decorators: [{
2479
+ type: Component,
2480
+ args: [{
2481
+ selector: "custom-table-filter",
2482
+ template: `<ng-template #dynamicTarget></ng-template>`,
2483
+ standalone: true,
2484
+ }]
2485
+ }], propDecorators: { dynamicTarget: [{
2486
+ type: ViewChild,
2487
+ args: ["dynamicTarget", { read: ViewContainerRef, static: true }]
2293
2488
  }] } });
2294
2489
 
2295
2490
  class CheckboxFilterComponent extends DefaultFilter {
@@ -2303,39 +2498,57 @@ class CheckboxFilterComponent extends DefaultFilter {
2303
2498
  .pipe(debounceTime(this.delay))
2304
2499
  .subscribe((checked) => {
2305
2500
  this.filterActive = true;
2306
- const trueVal = (this.column.getFilterConfig() && this.column.getFilterConfig().true) || true;
2307
- const falseVal = (this.column.getFilterConfig() && this.column.getFilterConfig().false) || false;
2501
+ const trueVal = (this.column.getFilterConfig() &&
2502
+ this.column.getFilterConfig().true) ||
2503
+ true;
2504
+ const falseVal = (this.column.getFilterConfig() &&
2505
+ this.column.getFilterConfig().false) ||
2506
+ false;
2308
2507
  this.query = checked ? trueVal : falseVal;
2309
2508
  this.setFilter();
2310
2509
  });
2311
2510
  }
2312
2511
  resetFilter(event) {
2313
2512
  event.preventDefault();
2314
- this.query = '';
2513
+ this.query = "";
2315
2514
  this.inputControl.setValue(false, { emitEvent: false });
2316
2515
  this.filterActive = false;
2317
2516
  this.setFilter();
2318
2517
  }
2319
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2320
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CheckboxFilterComponent, selector: "checkbox-filter", usesInheritance: true, ngImport: i0, template: `
2321
- <input type="checkbox" [formControl]="inputControl" [ngClass]="inputClass" class="form-control">
2518
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: CheckboxFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2519
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: CheckboxFilterComponent, isStandalone: true, selector: "checkbox-filter", usesInheritance: true, ngImport: i0, template: `
2520
+ <input
2521
+ type="checkbox"
2522
+ [formControl]="inputControl"
2523
+ [class]="inputClass"
2524
+ class="form-control"
2525
+ />
2322
2526
  @if (filterActive) {
2323
- <a href="#"
2324
- (click)="resetFilter($event)">{{column.getFilterConfig()?.resetText || 'reset'}}</a>
2527
+ <a href="#" (click)="resetFilter($event)">{{
2528
+ column.getFilterConfig()?.resetText || "reset"
2529
+ }}</a>
2325
2530
  }
2326
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
2531
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
2327
2532
  }
2328
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxFilterComponent, decorators: [{
2533
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: CheckboxFilterComponent, decorators: [{
2329
2534
  type: Component,
2330
2535
  args: [{
2331
- selector: 'checkbox-filter',
2536
+ selector: "checkbox-filter",
2332
2537
  template: `
2333
- <input type="checkbox" [formControl]="inputControl" [ngClass]="inputClass" class="form-control">
2538
+ <input
2539
+ type="checkbox"
2540
+ [formControl]="inputControl"
2541
+ [class]="inputClass"
2542
+ class="form-control"
2543
+ />
2334
2544
  @if (filterActive) {
2335
- <a href="#"
2336
- (click)="resetFilter($event)">{{column.getFilterConfig()?.resetText || 'reset'}}</a>
2545
+ <a href="#" (click)="resetFilter($event)">{{
2546
+ column.getFilterConfig()?.resetText || "reset"
2547
+ }}</a>
2337
2548
  }
2338
- `,
2549
+ `,
2550
+ standalone: true,
2551
+ imports: [FormsModule, ReactiveFormsModule],
2339
2552
  }]
2340
2553
  }], ctorParameters: () => [] });
2341
2554
 
@@ -2356,32 +2569,36 @@ class InputFilterComponent extends DefaultFilter {
2356
2569
  });
2357
2570
  }
2358
2571
  ngOnChanges(changes) {
2359
- if (changes?.['query']) {
2572
+ if (changes?.["query"]) {
2360
2573
  this.inputControl.setValue(this.query);
2361
2574
  }
2362
2575
  }
2363
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2364
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InputFilterComponent, selector: "input-filter", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
2576
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: InputFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2577
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: InputFilterComponent, isStandalone: true, selector: "input-filter", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
2365
2578
  <input
2366
- [ngClass]="inputClass"
2579
+ [class]="inputClass"
2367
2580
  [formControl]="inputControl"
2368
2581
  class="form-control"
2369
2582
  type="text"
2370
- placeholder="{{ column.title }}"/>
2371
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
2583
+ placeholder="{{ column.title }}"
2584
+ />
2585
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
2372
2586
  }
2373
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputFilterComponent, decorators: [{
2587
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: InputFilterComponent, decorators: [{
2374
2588
  type: Component,
2375
2589
  args: [{
2376
- selector: 'input-filter',
2590
+ selector: "input-filter",
2377
2591
  template: `
2378
2592
  <input
2379
- [ngClass]="inputClass"
2593
+ [class]="inputClass"
2380
2594
  [formControl]="inputControl"
2381
2595
  class="form-control"
2382
2596
  type="text"
2383
- placeholder="{{ column.title }}"/>
2597
+ placeholder="{{ column.title }}"
2598
+ />
2384
2599
  `,
2600
+ standalone: true,
2601
+ imports: [FormsModule, ReactiveFormsModule],
2385
2602
  }]
2386
2603
  }], ctorParameters: () => [] });
2387
2604
 
@@ -2396,40 +2613,42 @@ class SelectFilterComponent extends DefaultFilter {
2396
2613
  .subscribe((value) => this.setFilter());
2397
2614
  }
2398
2615
  }
2399
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2400
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SelectFilterComponent, selector: "select-filter", viewQueries: [{ propertyName: "inputControl", first: true, predicate: ["inputControl"], descendants: true, read: NgControl, static: true }], usesInheritance: true, ngImport: i0, template: `
2401
- <select [ngClass]="inputClass"
2616
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: SelectFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2617
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: SelectFilterComponent, isStandalone: true, selector: "select-filter", viewQueries: [{ propertyName: "inputControl", first: true, predicate: ["inputControl"], descendants: true, read: NgControl, static: true }], usesInheritance: true, ngImport: i0, template: `
2618
+ <select [class]="inputClass"
2402
2619
  class="form-control"
2403
2620
  #inputControl
2404
2621
  [(ngModel)]="query">
2405
-
2622
+
2406
2623
  <option value="">{{ column.getFilterConfig().selectText }}</option>
2407
- @for (option of column.getFilterConfig().list; track option) {
2624
+ @for (option of column.getFilterConfig().list; track option.value) {
2408
2625
  <option [value]="option.value">
2409
2626
  {{ option.title }}
2410
2627
  </option>
2411
2628
  }
2412
2629
  </select>
2413
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
2630
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
2414
2631
  }
2415
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectFilterComponent, decorators: [{
2632
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: SelectFilterComponent, decorators: [{
2416
2633
  type: Component,
2417
2634
  args: [{
2418
2635
  selector: 'select-filter',
2419
2636
  template: `
2420
- <select [ngClass]="inputClass"
2637
+ <select [class]="inputClass"
2421
2638
  class="form-control"
2422
2639
  #inputControl
2423
2640
  [(ngModel)]="query">
2424
-
2641
+
2425
2642
  <option value="">{{ column.getFilterConfig().selectText }}</option>
2426
- @for (option of column.getFilterConfig().list; track option) {
2643
+ @for (option of column.getFilterConfig().list; track option.value) {
2427
2644
  <option [value]="option.value">
2428
2645
  {{ option.title }}
2429
2646
  </option>
2430
2647
  }
2431
2648
  </select>
2432
2649
  `,
2650
+ standalone: true,
2651
+ imports: [FormsModule]
2433
2652
  }]
2434
2653
  }], ctorParameters: () => [], propDecorators: { inputControl: [{
2435
2654
  type: ViewChild,
@@ -2437,111 +2656,75 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2437
2656
  }] } });
2438
2657
 
2439
2658
  class DefaultFilterComponent extends FilterDefault {
2440
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2441
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultFilterComponent, selector: "default-table-filter", usesInheritance: true, ngImport: i0, template: `
2442
- @switch (column.getFilterType()) {
2443
- @case ('list') {
2659
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: DefaultFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2660
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: DefaultFilterComponent, isStandalone: true, selector: "default-table-filter", usesInheritance: true, ngImport: i0, template: `
2661
+ @switch (column.getFilterType()) { @case ('list') {
2444
2662
  <select-filter
2445
2663
  [query]="query"
2446
- [ngClass]="inputClass"
2664
+ [class]="inputClass"
2447
2665
  [column]="column"
2448
- (filter)="onFilter($event)">
2666
+ (filter)="onFilter($event)"
2667
+ >
2449
2668
  </select-filter>
2450
- }
2451
- @case ('checkbox') {
2669
+ } @case ('checkbox') {
2452
2670
  <checkbox-filter
2453
2671
  [query]="query"
2454
- [ngClass]="inputClass"
2672
+ [class]="inputClass"
2455
2673
  [column]="column"
2456
- (filter)="onFilter($event)">
2674
+ (filter)="onFilter($event)"
2675
+ >
2457
2676
  </checkbox-filter>
2458
- }
2459
- @default {
2677
+ } @default {
2460
2678
  <input-filter
2461
2679
  [query]="query"
2462
- [ngClass]="inputClass"
2680
+ [class]="inputClass"
2463
2681
  [column]="column"
2464
- (filter)="onFilter($event)">
2465
- </input-filter>
2466
- }
2467
- }
2468
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CheckboxFilterComponent, selector: "checkbox-filter" }, { kind: "component", type: InputFilterComponent, selector: "input-filter" }, { kind: "component", type: SelectFilterComponent, selector: "select-filter" }] }); }
2682
+ (filter)="onFilter($event)"
2683
+ >
2684
+ </input-filter>
2685
+ } }
2686
+ `, isInline: true, dependencies: [{ kind: "component", type: SelectFilterComponent, selector: "select-filter" }, { kind: "component", type: CheckboxFilterComponent, selector: "checkbox-filter" }, { kind: "component", type: InputFilterComponent, selector: "input-filter" }] }); }
2469
2687
  }
2470
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultFilterComponent, decorators: [{
2688
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: DefaultFilterComponent, decorators: [{
2471
2689
  type: Component,
2472
2690
  args: [{
2473
- selector: 'default-table-filter',
2691
+ selector: "default-table-filter",
2474
2692
  template: `
2475
- @switch (column.getFilterType()) {
2476
- @case ('list') {
2693
+ @switch (column.getFilterType()) { @case ('list') {
2477
2694
  <select-filter
2478
2695
  [query]="query"
2479
- [ngClass]="inputClass"
2696
+ [class]="inputClass"
2480
2697
  [column]="column"
2481
- (filter)="onFilter($event)">
2698
+ (filter)="onFilter($event)"
2699
+ >
2482
2700
  </select-filter>
2483
- }
2484
- @case ('checkbox') {
2701
+ } @case ('checkbox') {
2485
2702
  <checkbox-filter
2486
2703
  [query]="query"
2487
- [ngClass]="inputClass"
2704
+ [class]="inputClass"
2488
2705
  [column]="column"
2489
- (filter)="onFilter($event)">
2706
+ (filter)="onFilter($event)"
2707
+ >
2490
2708
  </checkbox-filter>
2491
- }
2492
- @default {
2709
+ } @default {
2493
2710
  <input-filter
2494
2711
  [query]="query"
2495
- [ngClass]="inputClass"
2712
+ [class]="inputClass"
2496
2713
  [column]="column"
2497
- (filter)="onFilter($event)">
2498
- </input-filter>
2499
- }
2500
- }
2501
- `,
2714
+ (filter)="onFilter($event)"
2715
+ >
2716
+ </input-filter>
2717
+ } }
2718
+ `,
2719
+ standalone: true,
2720
+ imports: [
2721
+ SelectFilterComponent,
2722
+ CheckboxFilterComponent,
2723
+ InputFilterComponent,
2724
+ ],
2502
2725
  }]
2503
2726
  }] });
2504
2727
 
2505
- class CustomFilterComponent extends FilterDefault {
2506
- constructor(resolver) {
2507
- super();
2508
- this.resolver = resolver;
2509
- }
2510
- ngOnChanges(changes) {
2511
- if (this.customComponent) {
2512
- this.customComponent.instance.ngOnChanges(changes);
2513
- return;
2514
- }
2515
- if (this.column.filter && this.column.filter.type === 'custom') {
2516
- const componentFactory = this.resolver.resolveComponentFactory(this.column.filter?.component);
2517
- this.customComponent = this.dynamicTarget.createComponent(componentFactory);
2518
- }
2519
- // set @Inputs and @Outputs of custom component
2520
- this.customComponent.instance.query = this.query;
2521
- this.customComponent.instance.column = this.column;
2522
- this.customComponent.instance.source = this.source;
2523
- this.customComponent.instance.inputClass = this.inputClass;
2524
- this.customComponent.instance.filter.subscribe((event) => this.onFilter(event));
2525
- }
2526
- ngOnDestroy() {
2527
- if (this.customComponent) {
2528
- this.customComponent.destroy();
2529
- }
2530
- }
2531
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomFilterComponent, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component }); }
2532
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomFilterComponent, selector: "custom-table-filter", viewQueries: [{ propertyName: "dynamicTarget", first: true, predicate: ["dynamicTarget"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `<ng-template #dynamicTarget></ng-template>`, isInline: true }); }
2533
- }
2534
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomFilterComponent, decorators: [{
2535
- type: Component,
2536
- args: [{
2537
- selector: 'custom-table-filter',
2538
- template: `<ng-template #dynamicTarget></ng-template>`,
2539
- }]
2540
- }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }], propDecorators: { dynamicTarget: [{
2541
- type: ViewChild,
2542
- args: ['dynamicTarget', { read: ViewContainerRef, static: true }]
2543
- }] } });
2544
-
2545
2728
  class FilterComponent extends FilterDefault {
2546
2729
  ngOnChanges(changes) {
2547
2730
  if (changes['source']) {
@@ -2565,8 +2748,8 @@ class FilterComponent extends FilterDefault {
2565
2748
  });
2566
2749
  }
2567
2750
  }
2568
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2569
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FilterComponent, selector: "ng2-smart-table-filter", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
2751
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: FilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2752
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: FilterComponent, isStandalone: true, selector: "ng2-smart-table-filter", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
2570
2753
  @if (column.isFilterable) {
2571
2754
  <div class="ng2-smart-filter">
2572
2755
  @switch (column.getFilterType()) {
@@ -2591,9 +2774,9 @@ class FilterComponent extends FilterDefault {
2591
2774
  }
2592
2775
  </div>
2593
2776
  }
2594
- `, isInline: true, styles: [":host .ng2-smart-filter ::ng-deep input,:host .ng2-smart-filter ::ng-deep select{width:100%;line-height:normal;padding:.375em .75em;font-weight:400}:host .ng2-smart-filter ::ng-deep input[type=search]{box-sizing:inherit}:host .ng2-smart-filter ::ng-deep .completer-dropdown-holder{font-weight:400}:host .ng2-smart-filter ::ng-deep a{font-weight:400}\n"], dependencies: [{ kind: "component", type: DefaultFilterComponent, selector: "default-table-filter" }, { kind: "component", type: CustomFilterComponent, selector: "custom-table-filter" }] }); }
2777
+ `, isInline: true, styles: [":host .ng2-smart-filter ::ng-deep input,:host .ng2-smart-filter ::ng-deep select{width:100%;line-height:normal;padding:.375em .75em;font-weight:400}:host .ng2-smart-filter ::ng-deep input[type=search]{box-sizing:inherit}:host .ng2-smart-filter ::ng-deep .completer-dropdown-holder{font-weight:400}:host .ng2-smart-filter ::ng-deep a{font-weight:400}\n"], dependencies: [{ kind: "component", type: CustomFilterComponent, selector: "custom-table-filter" }, { kind: "component", type: DefaultFilterComponent, selector: "default-table-filter" }] }); }
2595
2778
  }
2596
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterComponent, decorators: [{
2779
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: FilterComponent, decorators: [{
2597
2780
  type: Component,
2598
2781
  args: [{ selector: 'ng2-smart-table-filter', template: `
2599
2782
  @if (column.isFilterable) {
@@ -2620,27 +2803,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2620
2803
  }
2621
2804
  </div>
2622
2805
  }
2623
- `, styles: [":host .ng2-smart-filter ::ng-deep input,:host .ng2-smart-filter ::ng-deep select{width:100%;line-height:normal;padding:.375em .75em;font-weight:400}:host .ng2-smart-filter ::ng-deep input[type=search]{box-sizing:inherit}:host .ng2-smart-filter ::ng-deep .completer-dropdown-holder{font-weight:400}:host .ng2-smart-filter ::ng-deep a{font-weight:400}\n"] }]
2806
+ `, standalone: true, imports: [CustomFilterComponent, DefaultFilterComponent], styles: [":host .ng2-smart-filter ::ng-deep input,:host .ng2-smart-filter ::ng-deep select{width:100%;line-height:normal;padding:.375em .75em;font-weight:400}:host .ng2-smart-filter ::ng-deep input[type=search]{box-sizing:inherit}:host .ng2-smart-filter ::ng-deep .completer-dropdown-holder{font-weight:400}:host .ng2-smart-filter ::ng-deep a{font-weight:400}\n"] }]
2624
2807
  }] });
2625
2808
 
2626
2809
  class AddButtonComponent {
2627
- constructor(ref) {
2628
- this.ref = ref;
2629
- this.create = new EventEmitter();
2810
+ constructor() {
2811
+ this.ref = inject(ElementRef);
2812
+ this.create = output();
2630
2813
  this.isActionAdd = false;
2631
- this.addNewButtonContent = '';
2814
+ this.addNewButtonContent = "";
2632
2815
  }
2633
2816
  ngAfterViewInit() {
2634
- this.ref.nativeElement.classList.add('ng2-smart-actions-title', 'ng2-smart-actions-title-add');
2817
+ this.ref.nativeElement.classList.add("ng2-smart-actions-title", "ng2-smart-actions-title-add");
2635
2818
  }
2636
2819
  ngOnChanges() {
2637
- this.isActionAdd = this.grid.getSetting('actions.add');
2638
- this.addNewButtonContent = this.grid.getSetting('add.addButtonContent');
2820
+ this.isActionAdd = this.grid.getSetting("actions.add");
2821
+ this.addNewButtonContent = this.grid.getSetting("add.addButtonContent");
2639
2822
  }
2640
2823
  onAdd(event) {
2641
2824
  event.preventDefault();
2642
2825
  event.stopPropagation();
2643
- if (this.grid.getSetting('mode') === 'external') {
2826
+ if (this.grid.getSetting("mode") === "external") {
2644
2827
  this.create.emit({
2645
2828
  source: this.source,
2646
2829
  });
@@ -2649,37 +2832,44 @@ class AddButtonComponent {
2649
2832
  this.grid.createFormShown = true;
2650
2833
  }
2651
2834
  }
2652
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddButtonComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
2653
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AddButtonComponent, selector: "[ng2-st-add-button]", inputs: { grid: "grid", source: "source" }, outputs: { create: "create" }, usesOnChanges: true, ngImport: i0, template: `
2835
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AddButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2836
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AddButtonComponent, isStandalone: true, selector: "[ng2-st-add-button]", inputs: { grid: "grid", source: "source" }, outputs: { create: "create" }, usesOnChanges: true, ngImport: i0, template: `
2654
2837
  @if (isActionAdd) {
2655
- <a href="#" class="ng2-smart-action ng2-smart-action-add-add"
2656
- [innerHTML]="addNewButtonContent" (click)="onAdd($event)"></a>
2838
+ <a
2839
+ href="#"
2840
+ class="ng2-smart-action ng2-smart-action-add-add"
2841
+ [innerHTML]="addNewButtonContent"
2842
+ (click)="onAdd($event)"
2843
+ ></a>
2657
2844
  }
2658
- `, isInline: true }); }
2845
+ `, isInline: true }); }
2659
2846
  }
2660
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddButtonComponent, decorators: [{
2847
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AddButtonComponent, decorators: [{
2661
2848
  type: Component,
2662
2849
  args: [{
2663
- selector: '[ng2-st-add-button]',
2850
+ selector: "[ng2-st-add-button]",
2664
2851
  template: `
2665
2852
  @if (isActionAdd) {
2666
- <a href="#" class="ng2-smart-action ng2-smart-action-add-add"
2667
- [innerHTML]="addNewButtonContent" (click)="onAdd($event)"></a>
2853
+ <a
2854
+ href="#"
2855
+ class="ng2-smart-action ng2-smart-action-add-add"
2856
+ [innerHTML]="addNewButtonContent"
2857
+ (click)="onAdd($event)"
2858
+ ></a>
2668
2859
  }
2669
- `,
2860
+ `,
2861
+ standalone: true,
2670
2862
  }]
2671
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { grid: [{
2863
+ }], propDecorators: { grid: [{
2672
2864
  type: Input
2673
2865
  }], source: [{
2674
2866
  type: Input
2675
- }], create: [{
2676
- type: Output
2677
2867
  }] } });
2678
2868
 
2679
2869
  class TheadFitlersRowComponent {
2680
2870
  constructor() {
2681
- this.create = new EventEmitter();
2682
- this.filter = new EventEmitter();
2871
+ this.create = output();
2872
+ this.filter = output();
2683
2873
  this.isMultiSelectVisible = false;
2684
2874
  this.showActionColumnLeft = false;
2685
2875
  this.showActionColumnRight = false;
@@ -2694,8 +2884,8 @@ class TheadFitlersRowComponent {
2694
2884
  getVisibleColumns(columns) {
2695
2885
  return (columns || []).filter((column) => !column.hide);
2696
2886
  }
2697
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheadFitlersRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2698
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TheadFitlersRowComponent, selector: "[ng2-st-thead-filters-row]", inputs: { grid: "grid", source: "source" }, outputs: { create: "create", filter: "filter" }, usesOnChanges: true, ngImport: i0, template: `
2887
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TheadFitlersRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2888
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: TheadFitlersRowComponent, isStandalone: true, selector: "[ng2-st-thead-filters-row]", inputs: { grid: "grid", source: "source" }, outputs: { create: "create", filter: "filter" }, usesOnChanges: true, ngImport: i0, template: `
2699
2889
  @if (isMultiSelectVisible) {
2700
2890
  <th></th>
2701
2891
  } @if (showActionColumnLeft) {
@@ -2718,9 +2908,9 @@ class TheadFitlersRowComponent {
2718
2908
  (create)="create.emit($event)"
2719
2909
  ></th>
2720
2910
  }
2721
- `, isInline: true, dependencies: [{ kind: "component", type: FilterComponent, selector: "ng2-smart-table-filter" }, { kind: "component", type: AddButtonComponent, selector: "[ng2-st-add-button]", inputs: ["grid", "source"], outputs: ["create"] }] }); }
2911
+ `, isInline: true, dependencies: [{ kind: "component", type: AddButtonComponent, selector: "[ng2-st-add-button]", inputs: ["grid", "source"], outputs: ["create"] }, { kind: "component", type: FilterComponent, selector: "ng2-smart-table-filter" }] }); }
2722
2912
  }
2723
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheadFitlersRowComponent, decorators: [{
2913
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TheadFitlersRowComponent, decorators: [{
2724
2914
  type: Component,
2725
2915
  args: [{
2726
2916
  selector: "[ng2-st-thead-filters-row]",
@@ -2748,59 +2938,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2748
2938
  ></th>
2749
2939
  }
2750
2940
  `,
2941
+ standalone: true,
2942
+ imports: [AddButtonComponent, FilterComponent],
2751
2943
  }]
2752
2944
  }], propDecorators: { grid: [{
2753
2945
  type: Input
2754
2946
  }], source: [{
2755
2947
  type: Input
2756
- }], create: [{
2757
- type: Output
2758
- }], filter: [{
2759
- type: Output
2760
2948
  }] } });
2761
2949
 
2762
2950
  class ActionsComponent {
2763
2951
  constructor() {
2764
- this.create = new EventEmitter();
2765
- this.createButtonContent = '';
2766
- this.cancelButtonContent = '';
2952
+ this.create = output();
2953
+ this.createButtonContent = "";
2954
+ this.cancelButtonContent = "";
2767
2955
  }
2768
2956
  ngOnChanges() {
2769
- this.createButtonContent = this.grid.getSetting('add.createButtonContent');
2770
- this.cancelButtonContent = this.grid.getSetting('add.cancelButtonContent');
2771
- }
2772
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2773
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionsComponent, selector: "ng2-st-actions", inputs: { grid: "grid" }, outputs: { create: "create" }, usesOnChanges: true, ngImport: i0, template: `
2774
- <a href="#" class="ng2-smart-action ng2-smart-action-add-create"
2775
- [innerHTML]="createButtonContent"
2776
- (click)="$event.preventDefault();create.emit($event)"></a>
2777
- <a href="#" class="ng2-smart-action ng2-smart-action-add-cancel"
2778
- [innerHTML]="cancelButtonContent"
2779
- (click)="$event.preventDefault();grid.createFormShown = false;"></a>
2957
+ this.createButtonContent = this.grid.getSetting("add.createButtonContent");
2958
+ this.cancelButtonContent = this.grid.getSetting("add.cancelButtonContent");
2959
+ }
2960
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: ActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2961
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: ActionsComponent, isStandalone: true, selector: "ng2-st-actions", inputs: { grid: "grid" }, outputs: { create: "create" }, usesOnChanges: true, ngImport: i0, template: `
2962
+ <a
2963
+ href="#"
2964
+ class="ng2-smart-action ng2-smart-action-add-create"
2965
+ [innerHTML]="createButtonContent"
2966
+ (click)="$event.preventDefault(); create.emit($event)"
2967
+ ></a>
2968
+ <a
2969
+ href="#"
2970
+ class="ng2-smart-action ng2-smart-action-add-cancel"
2971
+ [innerHTML]="cancelButtonContent"
2972
+ (click)="$event.preventDefault(); grid.createFormShown = false"
2973
+ ></a>
2780
2974
  `, isInline: true }); }
2781
2975
  }
2782
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionsComponent, decorators: [{
2976
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: ActionsComponent, decorators: [{
2783
2977
  type: Component,
2784
2978
  args: [{
2785
- selector: 'ng2-st-actions',
2979
+ selector: "ng2-st-actions",
2786
2980
  template: `
2787
- <a href="#" class="ng2-smart-action ng2-smart-action-add-create"
2788
- [innerHTML]="createButtonContent"
2789
- (click)="$event.preventDefault();create.emit($event)"></a>
2790
- <a href="#" class="ng2-smart-action ng2-smart-action-add-cancel"
2791
- [innerHTML]="cancelButtonContent"
2792
- (click)="$event.preventDefault();grid.createFormShown = false;"></a>
2981
+ <a
2982
+ href="#"
2983
+ class="ng2-smart-action ng2-smart-action-add-create"
2984
+ [innerHTML]="createButtonContent"
2985
+ (click)="$event.preventDefault(); create.emit($event)"
2986
+ ></a>
2987
+ <a
2988
+ href="#"
2989
+ class="ng2-smart-action ng2-smart-action-add-cancel"
2990
+ [innerHTML]="cancelButtonContent"
2991
+ (click)="$event.preventDefault(); grid.createFormShown = false"
2992
+ ></a>
2793
2993
  `,
2994
+ standalone: true,
2794
2995
  }]
2795
2996
  }], propDecorators: { grid: [{
2796
2997
  type: Input
2797
- }], create: [{
2798
- type: Output
2799
2998
  }] } });
2800
2999
 
2801
3000
  class TheadFormRowComponent {
2802
3001
  constructor() {
2803
- this.create = new EventEmitter();
3002
+ this.create = output();
2804
3003
  this.isMultiSelectVisible = false;
2805
3004
  this.showActionColumnLeft = false;
2806
3005
  this.showActionColumnRight = false;
@@ -2819,8 +3018,8 @@ class TheadFormRowComponent {
2819
3018
  getVisibleCells(cells) {
2820
3019
  return (cells || []).filter((cell) => !cell.getColumn().hide);
2821
3020
  }
2822
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheadFormRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2823
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TheadFormRowComponent, selector: "[ng2-st-thead-form-row]", inputs: { grid: "grid", row: "row", createConfirm: "createConfirm" }, outputs: { create: "create" }, usesOnChanges: true, ngImport: i0, template: `
3021
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TheadFormRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3022
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: TheadFormRowComponent, isStandalone: true, selector: "[ng2-st-thead-form-row]", inputs: { grid: "grid", row: "row", createConfirm: "createConfirm" }, outputs: { create: "create" }, usesOnChanges: true, ngImport: i0, template: `
2824
3023
  @if (grid.isMultiSelectVisible()) {
2825
3024
  <td></td>
2826
3025
  } @if (showActionColumnLeft) {
@@ -2830,7 +3029,8 @@ class TheadFormRowComponent {
2830
3029
  (create)="onCreate($event)"
2831
3030
  ></ng2-st-actions>
2832
3031
  </td>
2833
- } @for (cell of getVisibleCells(grid.getNewRow().getCells()); track cell.getId()) {
3032
+ } @for (cell of getVisibleCells(grid.getNewRow().getCells()); track
3033
+ cell.getId()) {
2834
3034
  <td>
2835
3035
  <ng2-smart-table-cell
2836
3036
  [cell]="cell"
@@ -2851,9 +3051,9 @@ class TheadFormRowComponent {
2851
3051
  ></ng2-st-actions>
2852
3052
  </td>
2853
3053
  }
2854
- `, isInline: true, dependencies: [{ kind: "component", type: CellComponent, selector: "ng2-smart-table-cell", inputs: ["grid", "row", "editConfirm", "createConfirm", "isNew", "cell", "inputClass", "mode", "isInEditing"], outputs: ["edited"] }, { kind: "component", type: ActionsComponent, selector: "ng2-st-actions", inputs: ["grid"], outputs: ["create"] }] }); }
3054
+ `, isInline: true, dependencies: [{ kind: "component", type: ActionsComponent, selector: "ng2-st-actions", inputs: ["grid"], outputs: ["create"] }, { kind: "component", type: CellComponent, selector: "ng2-smart-table-cell", inputs: ["grid", "row", "editConfirm", "createConfirm", "isNew", "cell", "inputClass", "mode", "isInEditing"], outputs: ["edited"] }] }); }
2855
3055
  }
2856
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheadFormRowComponent, decorators: [{
3056
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TheadFormRowComponent, decorators: [{
2857
3057
  type: Component,
2858
3058
  args: [{
2859
3059
  selector: "[ng2-st-thead-form-row]",
@@ -2867,7 +3067,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2867
3067
  (create)="onCreate($event)"
2868
3068
  ></ng2-st-actions>
2869
3069
  </td>
2870
- } @for (cell of getVisibleCells(grid.getNewRow().getCells()); track cell.getId()) {
3070
+ } @for (cell of getVisibleCells(grid.getNewRow().getCells()); track
3071
+ cell.getId()) {
2871
3072
  <td>
2872
3073
  <ng2-smart-table-cell
2873
3074
  [cell]="cell"
@@ -2889,6 +3090,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2889
3090
  </td>
2890
3091
  }
2891
3092
  `,
3093
+ standalone: true,
3094
+ imports: [ActionsComponent, CellComponent],
2892
3095
  }]
2893
3096
  }], propDecorators: { grid: [{
2894
3097
  type: Input
@@ -2896,51 +3099,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2896
3099
  type: Input
2897
3100
  }], createConfirm: [{
2898
3101
  type: Input
2899
- }], create: [{
2900
- type: Output
2901
3102
  }] } });
2902
3103
 
2903
3104
  class ActionsTitleComponent {
2904
- constructor(ref) {
2905
- this.ref = ref;
2906
- this.actionsColumnTitle = '';
3105
+ constructor() {
3106
+ this.ref = inject(ElementRef);
3107
+ this.actionsColumnTitle = "";
2907
3108
  }
2908
3109
  ngAfterViewInit() {
2909
- this.ref.nativeElement.classList.add('ng2-smart-actions');
3110
+ this.ref.nativeElement.classList.add("ng2-smart-actions");
2910
3111
  }
2911
3112
  ngOnChanges() {
2912
- this.actionsColumnTitle = this.grid.getSetting('actions.columnTitle');
3113
+ this.actionsColumnTitle = this.grid.getSetting("actions.columnTitle");
2913
3114
  }
2914
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionsTitleComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
2915
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionsTitleComponent, selector: "[ng2-st-actions-title]", inputs: { grid: "grid" }, usesOnChanges: true, ngImport: i0, template: `
2916
- <div class="ng2-smart-title">{{ actionsColumnTitle }}</div>
2917
- `, isInline: true }); }
3115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: ActionsTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: ActionsTitleComponent, isStandalone: true, selector: "[ng2-st-actions-title]", inputs: { grid: "grid" }, usesOnChanges: true, ngImport: i0, template: ` <div class="ng2-smart-title">{{ actionsColumnTitle }}</div> `, isInline: true }); }
2918
3117
  }
2919
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionsTitleComponent, decorators: [{
3118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: ActionsTitleComponent, decorators: [{
2920
3119
  type: Component,
2921
3120
  args: [{
2922
- selector: '[ng2-st-actions-title]',
2923
- template: `
2924
- <div class="ng2-smart-title">{{ actionsColumnTitle }}</div>
2925
- `,
3121
+ selector: "[ng2-st-actions-title]",
3122
+ template: ` <div class="ng2-smart-title">{{ actionsColumnTitle }}</div> `,
3123
+ standalone: true,
2926
3124
  }]
2927
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { grid: [{
3125
+ }], propDecorators: { grid: [{
2928
3126
  type: Input
2929
3127
  }] } });
2930
3128
 
2931
3129
  class CheckboxSelectAllComponent {
2932
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxSelectAllComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2933
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CheckboxSelectAllComponent, selector: "[ng2-st-checkbox-select-all]", inputs: { grid: "grid", source: "source" }, ngImport: i0, template: `
2934
- <input type="checkbox" [ngModel]="this.grid.dataSet.isAllSelected">
2935
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
3130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: CheckboxSelectAllComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3131
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: CheckboxSelectAllComponent, isStandalone: true, selector: "[ng2-st-checkbox-select-all]", inputs: { grid: "grid", source: "source" }, ngImport: i0, template: `
3132
+ <input type="checkbox" [ngModel]="this.grid.dataSet.isAllSelected" />
3133
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
2936
3134
  }
2937
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxSelectAllComponent, decorators: [{
3135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: CheckboxSelectAllComponent, decorators: [{
2938
3136
  type: Component,
2939
3137
  args: [{
2940
- selector: '[ng2-st-checkbox-select-all]',
3138
+ selector: "[ng2-st-checkbox-select-all]",
2941
3139
  template: `
2942
- <input type="checkbox" [ngModel]="this.grid.dataSet.isAllSelected">
3140
+ <input type="checkbox" [ngModel]="this.grid.dataSet.isAllSelected" />
2943
3141
  `,
3142
+ standalone: true,
3143
+ imports: [FormsModule],
2944
3144
  }]
2945
3145
  }], propDecorators: { grid: [{
2946
3146
  type: Input
@@ -2950,22 +3150,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2950
3150
 
2951
3151
  class TitleComponent {
2952
3152
  constructor() {
2953
- this.currentDirection = '';
2954
- this.sort = new EventEmitter();
3153
+ this.currentDirection = "";
3154
+ this.sort = output();
2955
3155
  this.dataChangedSub = false;
2956
3156
  }
2957
3157
  ngOnChanges(changes) {
2958
- if (changes['source']) {
2959
- if (!changes['source'].firstChange && this.dataChangedSub) {
3158
+ if (changes["source"]) {
3159
+ if (!changes["source"].firstChange && this.dataChangedSub) {
2960
3160
  this.dataChangedSub.unsubscribe();
2961
3161
  }
2962
3162
  this.dataChangedSub = this.source.onChanged().subscribe((dataChanges) => {
2963
3163
  const sortConf = this.source.getSort();
2964
- if (sortConf.length > 0 && sortConf[0]['field'] === this.column.id) {
2965
- this.currentDirection = sortConf[0]['direction'];
3164
+ if (sortConf.length > 0 && sortConf[0]["field"] === this.column.id) {
3165
+ this.currentDirection = sortConf[0]["direction"];
2966
3166
  }
2967
3167
  else {
2968
- this.currentDirection = '';
3168
+ this.currentDirection = "";
2969
3169
  }
2970
3170
  });
2971
3171
  }
@@ -2976,7 +3176,7 @@ class TitleComponent {
2976
3176
  this.source.setSort([
2977
3177
  {
2978
3178
  field: this.column.id,
2979
- direction: this.currentDirection === 'desc' ? 'desc' : 'asc',
3179
+ direction: this.currentDirection === "desc" ? "desc" : "asc",
2980
3180
  compare: this.column.getCompareFunction(),
2981
3181
  },
2982
3182
  ]);
@@ -2984,7 +3184,7 @@ class TitleComponent {
2984
3184
  }
2985
3185
  changeSortDirection() {
2986
3186
  if (this.currentDirection) {
2987
- const newDirection = this.currentDirection === 'asc' ? 'desc' : 'asc';
3187
+ const newDirection = this.currentDirection === "asc" ? "desc" : "asc";
2988
3188
  this.currentDirection = newDirection;
2989
3189
  }
2990
3190
  else {
@@ -2992,158 +3192,174 @@ class TitleComponent {
2992
3192
  }
2993
3193
  return this.currentDirection;
2994
3194
  }
2995
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2996
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TitleComponent, selector: "ng2-smart-table-title", inputs: { column: "column", source: "source" }, outputs: { sort: "sort" }, usesOnChanges: true, ngImport: i0, template: `
3195
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3196
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: TitleComponent, isStandalone: true, selector: "ng2-smart-table-title", inputs: { column: "column", source: "source" }, outputs: { sort: "sort" }, usesOnChanges: true, ngImport: i0, template: `
2997
3197
  @if (column.isSortable) {
2998
- <a href="#"
2999
- (click)="_sort($event)"
3000
- class="ng2-smart-sort-link sort"
3001
- [ngClass]="currentDirection">
3002
- {{ column.title }}
3003
- </a>
3004
- }
3005
- @if (!column.isSortable) {
3006
- <span class="ng2-smart-sort">{{ column.title }}</span>
3198
+ <a
3199
+ href="#"
3200
+ (click)="_sort($event)"
3201
+ class="ng2-smart-sort-link sort"
3202
+ [class]="currentDirection"
3203
+ >
3204
+ {{ column.title }}
3205
+ </a>
3206
+ } @else {
3207
+ <span class="ng2-smart-sort">{{ column.title }}</span>
3007
3208
  }
3008
- `, isInline: true, styles: ["a.sort.asc,a.sort.desc{font-weight:700}a.sort.asc:after,a.sort.desc:after{content:\"\";display:inline-block;width:0;height:0;border-bottom:4px solid rgba(0,0,0,.3);border-top:4px solid transparent;border-left:4px solid transparent;border-right:4px solid transparent;margin-bottom:2px}a.sort.desc:after{-webkit-transform:rotate(-180deg);transform:rotate(-180deg);margin-bottom:-2px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
3209
+ `, isInline: true, styles: ["a.sort.asc,a.sort.desc{font-weight:700}a.sort.asc:after,a.sort.desc:after{content:\"\";display:inline-block;width:0;height:0;border-bottom:4px solid rgba(0,0,0,.3);border-top:4px solid transparent;border-left:4px solid transparent;border-right:4px solid transparent;margin-bottom:2px}a.sort.desc:after{-webkit-transform:rotate(-180deg);transform:rotate(-180deg);margin-bottom:-2px}\n"] }); }
3009
3210
  }
3010
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TitleComponent, decorators: [{
3211
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TitleComponent, decorators: [{
3011
3212
  type: Component,
3012
- args: [{ selector: 'ng2-smart-table-title', template: `
3213
+ args: [{ selector: "ng2-smart-table-title", template: `
3013
3214
  @if (column.isSortable) {
3014
- <a href="#"
3015
- (click)="_sort($event)"
3016
- class="ng2-smart-sort-link sort"
3017
- [ngClass]="currentDirection">
3018
- {{ column.title }}
3019
- </a>
3020
- }
3021
- @if (!column.isSortable) {
3022
- <span class="ng2-smart-sort">{{ column.title }}</span>
3215
+ <a
3216
+ href="#"
3217
+ (click)="_sort($event)"
3218
+ class="ng2-smart-sort-link sort"
3219
+ [class]="currentDirection"
3220
+ >
3221
+ {{ column.title }}
3222
+ </a>
3223
+ } @else {
3224
+ <span class="ng2-smart-sort">{{ column.title }}</span>
3023
3225
  }
3024
- `, styles: ["a.sort.asc,a.sort.desc{font-weight:700}a.sort.asc:after,a.sort.desc:after{content:\"\";display:inline-block;width:0;height:0;border-bottom:4px solid rgba(0,0,0,.3);border-top:4px solid transparent;border-left:4px solid transparent;border-right:4px solid transparent;margin-bottom:2px}a.sort.desc:after{-webkit-transform:rotate(-180deg);transform:rotate(-180deg);margin-bottom:-2px}\n"] }]
3226
+ `, standalone: true, styles: ["a.sort.asc,a.sort.desc{font-weight:700}a.sort.asc:after,a.sort.desc:after{content:\"\";display:inline-block;width:0;height:0;border-bottom:4px solid rgba(0,0,0,.3);border-top:4px solid transparent;border-left:4px solid transparent;border-right:4px solid transparent;margin-bottom:2px}a.sort.desc:after{-webkit-transform:rotate(-180deg);transform:rotate(-180deg);margin-bottom:-2px}\n"] }]
3025
3227
  }], propDecorators: { column: [{
3026
3228
  type: Input
3027
3229
  }], source: [{
3028
3230
  type: Input
3029
- }], sort: [{
3030
- type: Output
3031
3231
  }] } });
3032
3232
 
3033
3233
  class ColumnTitleComponent {
3034
3234
  constructor() {
3035
- this.sort = new EventEmitter();
3235
+ this.sort = output();
3036
3236
  }
3037
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3038
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ColumnTitleComponent, selector: "ng2-st-column-title", inputs: { column: "column", source: "source" }, outputs: { sort: "sort" }, ngImport: i0, template: `
3237
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: ColumnTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3238
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: ColumnTitleComponent, isStandalone: true, selector: "ng2-st-column-title", inputs: { column: "column", source: "source" }, outputs: { sort: "sort" }, ngImport: i0, template: `
3039
3239
  <div class="ng2-smart-title">
3040
- <ng2-smart-table-title [source]="source" [column]="column" (sort)="sort.emit($event)"></ng2-smart-table-title>
3240
+ <ng2-smart-table-title
3241
+ [source]="source"
3242
+ [column]="column"
3243
+ (sort)="sort.emit($event)"
3244
+ ></ng2-smart-table-title>
3041
3245
  </div>
3042
3246
  `, isInline: true, dependencies: [{ kind: "component", type: TitleComponent, selector: "ng2-smart-table-title", inputs: ["column", "source"], outputs: ["sort"] }] }); }
3043
3247
  }
3044
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnTitleComponent, decorators: [{
3248
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: ColumnTitleComponent, decorators: [{
3045
3249
  type: Component,
3046
3250
  args: [{
3047
- selector: 'ng2-st-column-title',
3251
+ selector: "ng2-st-column-title",
3048
3252
  template: `
3049
3253
  <div class="ng2-smart-title">
3050
- <ng2-smart-table-title [source]="source" [column]="column" (sort)="sort.emit($event)"></ng2-smart-table-title>
3254
+ <ng2-smart-table-title
3255
+ [source]="source"
3256
+ [column]="column"
3257
+ (sort)="sort.emit($event)"
3258
+ ></ng2-smart-table-title>
3051
3259
  </div>
3052
3260
  `,
3261
+ standalone: true,
3262
+ imports: [TitleComponent],
3053
3263
  }]
3054
3264
  }], propDecorators: { column: [{
3055
3265
  type: Input
3056
3266
  }], source: [{
3057
3267
  type: Input
3058
- }], sort: [{
3059
- type: Output
3060
3268
  }] } });
3061
3269
 
3062
3270
  class TheadTitlesRowComponent {
3063
3271
  constructor() {
3064
- this.sort = new EventEmitter();
3065
- this.selectAllRows = new EventEmitter();
3272
+ this.sort = output();
3273
+ this.selectAllRows = output();
3066
3274
  this.isMultiSelectVisible = false;
3067
3275
  this.showActionColumnLeft = false;
3068
3276
  this.showActionColumnRight = false;
3069
3277
  }
3070
3278
  ngOnChanges() {
3071
3279
  this.isMultiSelectVisible = this.grid.isMultiSelectVisible();
3072
- this.showActionColumnLeft = this.grid.showActionColumn('left');
3073
- this.showActionColumnRight = this.grid.showActionColumn('right');
3280
+ this.showActionColumnLeft = this.grid.showActionColumn("left");
3281
+ this.showActionColumnRight = this.grid.showActionColumn("right");
3074
3282
  }
3075
3283
  getVisibleColumns(columns) {
3076
3284
  return (columns || []).filter((column) => !column.hide);
3077
3285
  }
3078
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheadTitlesRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3079
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TheadTitlesRowComponent, selector: "[ng2-st-thead-titles-row]", inputs: { grid: "grid", source: "source" }, outputs: { sort: "sort", selectAllRows: "selectAllRows" }, usesOnChanges: true, ngImport: i0, template: `
3286
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TheadTitlesRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3287
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: TheadTitlesRowComponent, isStandalone: true, selector: "[ng2-st-thead-titles-row]", inputs: { grid: "grid", source: "source" }, outputs: { sort: "sort", selectAllRows: "selectAllRows" }, usesOnChanges: true, ngImport: i0, template: `
3080
3288
  @if (isMultiSelectVisible) {
3081
- <th ng2-st-checkbox-select-all
3082
- [grid]="grid"
3289
+ <th
3290
+ ng2-st-checkbox-select-all
3291
+ [grid]="grid"
3292
+ [source]="source"
3293
+ (click)="selectAllRows.emit($event)"
3294
+ ></th>
3295
+ } @if (showActionColumnLeft) {
3296
+ <th ng2-st-actions-title [grid]="grid"></th>
3297
+ } @for (column of getVisibleColumns(grid.getColumns()); track column.id) {
3298
+ <th
3299
+ class="ng2-smart-th {{ column.id }}"
3300
+ [class]="column.class"
3301
+ [style.width]="column.width"
3302
+ >
3303
+ <ng2-st-column-title
3083
3304
  [source]="source"
3084
- (click)="selectAllRows.emit($event)">
3085
- </th>
3086
- }
3087
- @if (showActionColumnLeft) {
3088
- <th ng2-st-actions-title [grid]="grid"></th>
3089
- }
3090
- @for (column of getVisibleColumns(grid.getColumns()); track column.id) {
3091
- <th
3092
- class="ng2-smart-th {{ column.id }}"
3093
- [ngClass]="column.class"
3094
- [style.width]="column.width">
3095
- <ng2-st-column-title [source]="source" [column]="column" (sort)="sort.emit($event)"></ng2-st-column-title>
3096
- </th>
3097
- }
3098
- @if (showActionColumnRight) {
3099
- <th ng2-st-actions-title [grid]="grid"></th>
3305
+ [column]="column"
3306
+ (sort)="sort.emit($event)"
3307
+ ></ng2-st-column-title>
3308
+ </th>
3309
+ } @if (showActionColumnRight) {
3310
+ <th ng2-st-actions-title [grid]="grid"></th>
3100
3311
  }
3101
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ActionsTitleComponent, selector: "[ng2-st-actions-title]", inputs: ["grid"] }, { kind: "component", type: CheckboxSelectAllComponent, selector: "[ng2-st-checkbox-select-all]", inputs: ["grid", "source"] }, { kind: "component", type: ColumnTitleComponent, selector: "ng2-st-column-title", inputs: ["column", "source"], outputs: ["sort"] }] }); }
3312
+ `, isInline: true, dependencies: [{ kind: "component", type: CheckboxSelectAllComponent, selector: "[ng2-st-checkbox-select-all]", inputs: ["grid", "source"] }, { kind: "component", type: ActionsTitleComponent, selector: "[ng2-st-actions-title]", inputs: ["grid"] }, { kind: "component", type: ColumnTitleComponent, selector: "ng2-st-column-title", inputs: ["column", "source"], outputs: ["sort"] }] }); }
3102
3313
  }
3103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheadTitlesRowComponent, decorators: [{
3314
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TheadTitlesRowComponent, decorators: [{
3104
3315
  type: Component,
3105
3316
  args: [{
3106
- selector: '[ng2-st-thead-titles-row]',
3317
+ selector: "[ng2-st-thead-titles-row]",
3107
3318
  template: `
3108
3319
  @if (isMultiSelectVisible) {
3109
- <th ng2-st-checkbox-select-all
3110
- [grid]="grid"
3320
+ <th
3321
+ ng2-st-checkbox-select-all
3322
+ [grid]="grid"
3323
+ [source]="source"
3324
+ (click)="selectAllRows.emit($event)"
3325
+ ></th>
3326
+ } @if (showActionColumnLeft) {
3327
+ <th ng2-st-actions-title [grid]="grid"></th>
3328
+ } @for (column of getVisibleColumns(grid.getColumns()); track column.id) {
3329
+ <th
3330
+ class="ng2-smart-th {{ column.id }}"
3331
+ [class]="column.class"
3332
+ [style.width]="column.width"
3333
+ >
3334
+ <ng2-st-column-title
3111
3335
  [source]="source"
3112
- (click)="selectAllRows.emit($event)">
3113
- </th>
3114
- }
3115
- @if (showActionColumnLeft) {
3116
- <th ng2-st-actions-title [grid]="grid"></th>
3117
- }
3118
- @for (column of getVisibleColumns(grid.getColumns()); track column.id) {
3119
- <th
3120
- class="ng2-smart-th {{ column.id }}"
3121
- [ngClass]="column.class"
3122
- [style.width]="column.width">
3123
- <ng2-st-column-title [source]="source" [column]="column" (sort)="sort.emit($event)"></ng2-st-column-title>
3124
- </th>
3125
- }
3126
- @if (showActionColumnRight) {
3127
- <th ng2-st-actions-title [grid]="grid"></th>
3336
+ [column]="column"
3337
+ (sort)="sort.emit($event)"
3338
+ ></ng2-st-column-title>
3339
+ </th>
3340
+ } @if (showActionColumnRight) {
3341
+ <th ng2-st-actions-title [grid]="grid"></th>
3128
3342
  }
3129
- `,
3343
+ `,
3344
+ standalone: true,
3345
+ imports: [
3346
+ CheckboxSelectAllComponent,
3347
+ ActionsTitleComponent,
3348
+ ColumnTitleComponent,
3349
+ ],
3130
3350
  }]
3131
3351
  }], propDecorators: { grid: [{
3132
3352
  type: Input
3133
3353
  }], source: [{
3134
3354
  type: Input
3135
- }], sort: [{
3136
- type: Output
3137
- }], selectAllRows: [{
3138
- type: Output
3139
3355
  }] } });
3140
3356
 
3141
3357
  class Ng2SmartTableTheadComponent {
3142
3358
  constructor() {
3143
- this.sort = new EventEmitter();
3144
- this.selectAllRows = new EventEmitter();
3145
- this.create = new EventEmitter();
3146
- this.filter = new EventEmitter();
3359
+ this.sort = output();
3360
+ this.selectAllRows = output();
3361
+ this.create = output();
3362
+ this.filter = output();
3147
3363
  this.isHideHeader = false;
3148
3364
  this.isHideSubHeader = false;
3149
3365
  }
@@ -3151,100 +3367,93 @@ class Ng2SmartTableTheadComponent {
3151
3367
  this.isHideHeader = this.grid.getSetting('hideHeader', false);
3152
3368
  this.isHideSubHeader = this.grid.getSetting('hideSubHeader', false);
3153
3369
  }
3154
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Ng2SmartTableTheadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3155
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: Ng2SmartTableTheadComponent, selector: "[ng2-st-thead]", inputs: { grid: "grid", source: "source", createConfirm: "createConfirm" }, outputs: { sort: "sort", selectAllRows: "selectAllRows", create: "create", filter: "filter" }, usesOnChanges: true, ngImport: i0, template: "@if (!isHideHeader) {\n <tr ng2-st-thead-titles-row\n class=\"ng2-smart-titles\"\n [grid]=\"grid\"\n [source]=\"source\"\n (sort)=\"sort.emit($event)\"\n (selectAllRows)=\"selectAllRows.emit($event)\">\n </tr>\n}\n\n@if (!isHideSubHeader) {\n <tr ng2-st-thead-filters-row\n class=\"ng2-smart-filters\"\n [grid]=\"grid\"\n [source]=\"source\"\n (create)=\"create.emit($event)\"\n (filter)=\"filter.emit($event)\">\n </tr>\n}\n\n@if (grid.createFormShown) {\n <tr ng2-st-thead-form-row\n [grid]=\"grid\"\n [createConfirm]=\"createConfirm\">\n </tr>\n}\n", dependencies: [{ kind: "component", type: TheadFitlersRowComponent, selector: "[ng2-st-thead-filters-row]", inputs: ["grid", "source"], outputs: ["create", "filter"] }, { kind: "component", type: TheadFormRowComponent, selector: "[ng2-st-thead-form-row]", inputs: ["grid", "row", "createConfirm"], outputs: ["create"] }, { kind: "component", type: TheadTitlesRowComponent, selector: "[ng2-st-thead-titles-row]", inputs: ["grid", "source"], outputs: ["sort", "selectAllRows"] }] }); }
3370
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: Ng2SmartTableTheadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3371
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: Ng2SmartTableTheadComponent, isStandalone: true, selector: "[ng2-st-thead]", inputs: { grid: "grid", source: "source", createConfirm: "createConfirm" }, outputs: { sort: "sort", selectAllRows: "selectAllRows", create: "create", filter: "filter" }, usesOnChanges: true, ngImport: i0, template: "@if (!isHideHeader) {\n <tr ng2-st-thead-titles-row\n class=\"ng2-smart-titles\"\n [grid]=\"grid\"\n [source]=\"source\"\n (sort)=\"sort.emit($event)\"\n (selectAllRows)=\"selectAllRows.emit($event)\">\n </tr>\n}\n\n@if (!isHideSubHeader) {\n <tr ng2-st-thead-filters-row\n class=\"ng2-smart-filters\"\n [grid]=\"grid\"\n [source]=\"source\"\n (create)=\"create.emit($event)\"\n (filter)=\"filter.emit($event)\">\n </tr>\n}\n\n@if (grid.createFormShown) {\n <tr ng2-st-thead-form-row\n [grid]=\"grid\"\n [createConfirm]=\"createConfirm\">\n </tr>\n}\n", dependencies: [{ kind: "component", type: TheadTitlesRowComponent, selector: "[ng2-st-thead-titles-row]", inputs: ["grid", "source"], outputs: ["sort", "selectAllRows"] }, { kind: "component", type: TheadFitlersRowComponent, selector: "[ng2-st-thead-filters-row]", inputs: ["grid", "source"], outputs: ["create", "filter"] }, { kind: "component", type: TheadFormRowComponent, selector: "[ng2-st-thead-form-row]", inputs: ["grid", "row", "createConfirm"], outputs: ["create"] }] }); }
3156
3372
  }
3157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Ng2SmartTableTheadComponent, decorators: [{
3373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: Ng2SmartTableTheadComponent, decorators: [{
3158
3374
  type: Component,
3159
- args: [{ selector: '[ng2-st-thead]', template: "@if (!isHideHeader) {\n <tr ng2-st-thead-titles-row\n class=\"ng2-smart-titles\"\n [grid]=\"grid\"\n [source]=\"source\"\n (sort)=\"sort.emit($event)\"\n (selectAllRows)=\"selectAllRows.emit($event)\">\n </tr>\n}\n\n@if (!isHideSubHeader) {\n <tr ng2-st-thead-filters-row\n class=\"ng2-smart-filters\"\n [grid]=\"grid\"\n [source]=\"source\"\n (create)=\"create.emit($event)\"\n (filter)=\"filter.emit($event)\">\n </tr>\n}\n\n@if (grid.createFormShown) {\n <tr ng2-st-thead-form-row\n [grid]=\"grid\"\n [createConfirm]=\"createConfirm\">\n </tr>\n}\n" }]
3375
+ args: [{ selector: '[ng2-st-thead]', standalone: true, imports: [TheadTitlesRowComponent, TheadFitlersRowComponent, TheadFormRowComponent], template: "@if (!isHideHeader) {\n <tr ng2-st-thead-titles-row\n class=\"ng2-smart-titles\"\n [grid]=\"grid\"\n [source]=\"source\"\n (sort)=\"sort.emit($event)\"\n (selectAllRows)=\"selectAllRows.emit($event)\">\n </tr>\n}\n\n@if (!isHideSubHeader) {\n <tr ng2-st-thead-filters-row\n class=\"ng2-smart-filters\"\n [grid]=\"grid\"\n [source]=\"source\"\n (create)=\"create.emit($event)\"\n (filter)=\"filter.emit($event)\">\n </tr>\n}\n\n@if (grid.createFormShown) {\n <tr ng2-st-thead-form-row\n [grid]=\"grid\"\n [createConfirm]=\"createConfirm\">\n </tr>\n}\n" }]
3160
3376
  }], propDecorators: { grid: [{
3161
3377
  type: Input
3162
3378
  }], source: [{
3163
3379
  type: Input
3164
3380
  }], createConfirm: [{
3165
3381
  type: Input
3166
- }], sort: [{
3167
- type: Output
3168
- }], selectAllRows: [{
3169
- type: Output
3170
- }], create: [{
3171
- type: Output
3172
- }], filter: [{
3173
- type: Output
3174
3382
  }] } });
3175
3383
 
3176
3384
  class Ng2SmartTableComponent {
3177
3385
  constructor() {
3178
- this.multiRowSelect = new EventEmitter();
3179
- this.rowClicked = new EventEmitter();
3180
- this.delete = new EventEmitter();
3181
- this.edit = new EventEmitter();
3182
- this.editCancel = new EventEmitter();
3183
- this.create = new EventEmitter();
3184
- this.custom = new EventEmitter();
3185
- this.deleteConfirm = new EventEmitter();
3186
- this.editConfirm = new EventEmitter();
3187
- this.createConfirm = new EventEmitter();
3188
- this.rowHover = new EventEmitter();
3189
- this.tableClass = '';
3190
- this.tableId = '';
3386
+ this.multiRowSelect = output();
3387
+ this.rowClicked = output();
3388
+ this.columnsSorted = output();
3389
+ this.delete = output();
3390
+ this.edit = output();
3391
+ this.editCancel = output();
3392
+ this.create = output();
3393
+ this.custom = output();
3394
+ this.deleteConfirm = output();
3395
+ this.editConfirm = output();
3396
+ this.createConfirm = output();
3397
+ this.rowHover = output();
3398
+ this.tableClass = "";
3399
+ this.tableId = "";
3191
3400
  this.perPageSelect = [];
3192
3401
  this.isHideHeader = false;
3193
3402
  this.isHideSubHeader = false;
3194
3403
  this.isPagerDisplay = false;
3195
- this.rowClassFunction = () => '';
3404
+ this.rowClassFunction = () => "";
3196
3405
  this.defaultSettings = {
3197
- mode: 'inline', // inline|external|click-to-edit
3198
- selectMode: 'single', // single|multi
3406
+ mode: "inline", // inline|external|click-to-edit
3407
+ selectMode: "single", // single|multi
3199
3408
  selectedRowIndex: -1,
3200
3409
  switchPageToSelectedRowPage: false,
3201
3410
  hideHeader: false,
3202
3411
  hideSubHeader: false,
3203
3412
  actions: {
3204
- columnTitle: 'Actions',
3413
+ columnTitle: "Actions",
3205
3414
  add: true,
3206
3415
  edit: true,
3207
3416
  delete: true,
3208
3417
  custom: [],
3209
- position: 'left', // left|right
3418
+ position: "left", // left|right
3210
3419
  },
3211
3420
  filter: {
3212
- inputClass: '',
3421
+ inputClass: "",
3213
3422
  },
3214
3423
  edit: {
3215
- inputClass: '',
3216
- editButtonContent: 'Edit',
3217
- saveButtonContent: 'Update',
3218
- cancelButtonContent: 'Cancel',
3424
+ inputClass: "",
3425
+ editButtonContent: "Edit",
3426
+ saveButtonContent: "Update",
3427
+ cancelButtonContent: "Cancel",
3219
3428
  confirmSave: false,
3220
3429
  },
3221
3430
  add: {
3222
- inputClass: '',
3223
- addButtonContent: 'Add New',
3224
- createButtonContent: 'Create',
3225
- cancelButtonContent: 'Cancel',
3431
+ inputClass: "",
3432
+ addButtonContent: "Add New",
3433
+ createButtonContent: "Create",
3434
+ cancelButtonContent: "Cancel",
3226
3435
  confirmCreate: false,
3227
3436
  },
3228
3437
  delete: {
3229
- deleteButtonContent: 'Delete',
3438
+ deleteButtonContent: "Delete",
3230
3439
  confirmDelete: false,
3231
3440
  },
3232
3441
  attr: {
3233
- id: '',
3234
- class: '',
3442
+ id: "",
3443
+ class: "",
3235
3444
  },
3236
- noDataMessage: 'No data found',
3445
+ noDataMessage: "No data found",
3237
3446
  columns: [],
3238
3447
  pager: false,
3239
- rowClassFunction: () => '',
3448
+ rowClassFunction: () => "",
3240
3449
  };
3241
3450
  }
3242
3451
  ngOnChanges(changes) {
3243
3452
  if (this.grid) {
3244
- if (changes['settings']) {
3453
+ if (changes["settings"]) {
3245
3454
  this.grid.setSettings(this.prepareSettings());
3246
3455
  }
3247
- if (changes['source']) {
3456
+ if (changes["source"]) {
3248
3457
  this.source = this.prepareSource();
3249
3458
  this.grid.setSource(this.source);
3250
3459
  }
@@ -3252,20 +3461,19 @@ class Ng2SmartTableComponent {
3252
3461
  else {
3253
3462
  this.initGrid();
3254
3463
  }
3255
- this.tableId = this.grid.getSetting('attr.id');
3256
- this.tableClass = this.grid.getSetting('attr.class');
3257
- this.isHideHeader = this.grid.getSetting('hideHeader');
3258
- this.isHideSubHeader = this.grid.getSetting('hideSubHeader');
3259
- this.isPagerDisplay = this.grid.getSetting('pager.display', false);
3260
- this.perPageSelect = this.grid.getSetting('pager.perPageSelect');
3261
- this.rowClassFunction = this.grid.getSetting('rowClassFunction', () => '');
3464
+ this.tableId = this.grid.getSetting("attr.id");
3465
+ this.tableClass = this.grid.getSetting("attr.class");
3466
+ this.isHideHeader = this.grid.getSetting("hideHeader");
3467
+ this.isHideSubHeader = this.grid.getSetting("hideSubHeader");
3468
+ this.isPagerDisplay = this.grid.getSetting("pager.display", false);
3469
+ this.perPageSelect = this.grid.getSetting("pager.perPageSelect");
3470
+ this.rowClassFunction = this.grid.getSetting("rowClassFunction", () => "");
3262
3471
  }
3263
3472
  multipleSelectRow(row) {
3264
3473
  this.grid.multipleSelectRow(row);
3265
3474
  this.emitUserSelectRow(row);
3266
3475
  }
3267
3476
  onSelectAllRows() {
3268
- this.grid.dataSet.isAllSelected;
3269
3477
  this.grid.selectAllRows(!this.grid.dataSet.isAllSelected);
3270
3478
  this.emitUserSelectRow(null);
3271
3479
  }
@@ -3281,6 +3489,7 @@ class Ng2SmartTableComponent {
3281
3489
  initGrid() {
3282
3490
  this.source = this.prepareSource();
3283
3491
  this.grid = new Grid(this.source, this.prepareSettings());
3492
+ this.grid.setColumnsSortedEmitter(this.columnsSorted);
3284
3493
  }
3285
3494
  prepareSource() {
3286
3495
  if (this.source instanceof LocalDataSource) {
@@ -3299,313 +3508,25 @@ class Ng2SmartTableComponent {
3299
3508
  selected: this.grid.dataSet.getSelectedRowsData(),
3300
3509
  });
3301
3510
  }
3302
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Ng2SmartTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3303
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: Ng2SmartTableComponent, selector: "ng2-smart-table", inputs: { source: "source", settings: "settings" }, outputs: { multiRowSelect: "multiRowSelect", rowClicked: "rowClicked", delete: "delete", edit: "edit", editCancel: "editCancel", create: "create", custom: "custom", deleteConfirm: "deleteConfirm", editConfirm: "editConfirm", createConfirm: "createConfirm", rowHover: "rowHover" }, usesOnChanges: true, ngImport: i0, template: "<table [id]=\"tableId\" [ngClass]=\"tableClass\">\n\n @if (!isHideHeader || !isHideSubHeader) {\n <thead ng2-st-thead\n [grid]=\"grid\"\n [source]=\"source\"\n [createConfirm]=\"createConfirm\"\n (create)=\"create.emit($event)\"\n (selectAllRows)=\"onSelectAllRows()\">\n </thead>\n }\n\n <tbody ng2-st-tbody [grid]=\"grid\"\n [source]=\"source\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [rowClassFunction]=\"rowClassFunction\"\n (edit)=\"edit.emit($event)\"\n (editCancel)=\"editCancel.emit($event)\"\n (delete)=\"delete.emit($event)\"\n (custom)=\"custom.emit($event)\"\n (userClickedRow)=\"emitUserRowClicked($event)\"\n (multipleSelectRow)=\"multipleSelectRow($event)\">\n </tbody>\n\n</table>\n\n@if (isPagerDisplay) {\n <ng2-smart-table-pager\n [source]=\"source\"\n [perPageSelect]=\"perPageSelect\">\n </ng2-smart-table-pager>\n}\n", styles: [":host{font-size:1rem}:host ::ng-deep *{box-sizing:border-box}:host ::ng-deep button,:host ::ng-deep input,:host ::ng-deep optgroup,:host ::ng-deep select,:host ::ng-deep textarea{color:inherit;font:inherit;margin:0}:host ::ng-deep table{line-height:1.5em;border-collapse:collapse;border-spacing:0;display:table;width:100%;max-width:100%;word-break:normal;word-break:keep-all;overflow:auto}:host ::ng-deep table tr th{font-weight:700}:host ::ng-deep table tr section{font-size:.75em;font-weight:700}:host ::ng-deep table tr td,:host ::ng-deep table tr th{font-size:.875em;margin:0;padding:.5em 1em}:host ::ng-deep a{color:#1e6bb8;text-decoration:none}:host ::ng-deep a:hover{text-decoration:underline}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PagerComponent, selector: "ng2-smart-table-pager", inputs: ["source", "perPageSelect"], outputs: ["changePage"] }, { kind: "component", type: Ng2SmartTableTbodyComponent, selector: "[ng2-st-tbody]", inputs: ["grid", "source", "deleteConfirm", "editConfirm", "rowClassFunction"], outputs: ["save", "cancel", "edit", "editCancel", "delete", "custom", "edited", "userSelectRow", "userClickedRow", "editRowSelect", "multipleSelectRow"] }, { kind: "component", type: Ng2SmartTableTheadComponent, selector: "[ng2-st-thead]", inputs: ["grid", "source", "createConfirm"], outputs: ["sort", "selectAllRows", "create", "filter"] }] }); }
3511
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: Ng2SmartTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3512
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: Ng2SmartTableComponent, isStandalone: true, selector: "ng2-smart-table", inputs: { source: "source", settings: "settings" }, outputs: { multiRowSelect: "multiRowSelect", rowClicked: "rowClicked", columnsSorted: "columnsSorted", delete: "delete", edit: "edit", editCancel: "editCancel", create: "create", custom: "custom", deleteConfirm: "deleteConfirm", editConfirm: "editConfirm", createConfirm: "createConfirm", rowHover: "rowHover" }, usesOnChanges: true, ngImport: i0, template: "<table [id]=\"tableId\" [class]=\"tableClass\">\n\n @if (!isHideHeader || !isHideSubHeader) {\n <thead ng2-st-thead\n [grid]=\"grid\"\n [source]=\"source\"\n [createConfirm]=\"createConfirm\"\n (create)=\"create.emit($event)\"\n (selectAllRows)=\"onSelectAllRows()\">\n </thead>\n }\n\n <tbody ng2-st-tbody [grid]=\"grid\"\n [source]=\"source\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [rowClassFunction]=\"rowClassFunction\"\n (edit)=\"edit.emit($event)\"\n (editCancel)=\"editCancel.emit($event)\"\n (delete)=\"delete.emit($event)\"\n (custom)=\"custom.emit($event)\"\n (userClickedRow)=\"emitUserRowClicked($event)\"\n (multipleSelectRow)=\"multipleSelectRow($event)\">\n </tbody>\n\n</table>\n\n@if (isPagerDisplay) {\n <ng2-smart-table-pager\n [source]=\"source\"\n [perPageSelect]=\"perPageSelect\">\n </ng2-smart-table-pager>\n}\n", styles: [":host{font-size:1rem}:host ::ng-deep *{box-sizing:border-box}:host ::ng-deep button,:host ::ng-deep input,:host ::ng-deep optgroup,:host ::ng-deep select,:host ::ng-deep textarea{color:inherit;font:inherit;margin:0}:host ::ng-deep table{line-height:1.5em;border-collapse:collapse;border-spacing:0;display:table;width:100%;max-width:100%;word-break:normal;word-break:keep-all;overflow:auto}:host ::ng-deep table tr th{font-weight:700}:host ::ng-deep table tr section{font-size:.75em;font-weight:700}:host ::ng-deep table tr td,:host ::ng-deep table tr th{font-size:.875em;margin:0;padding:.5em 1em}:host ::ng-deep a{color:#1e6bb8;text-decoration:none}:host ::ng-deep a:hover{text-decoration:underline}\n"], dependencies: [{ kind: "component", type: Ng2SmartTableTheadComponent, selector: "[ng2-st-thead]", inputs: ["grid", "source", "createConfirm"], outputs: ["sort", "selectAllRows", "create", "filter"] }, { kind: "component", type: Ng2SmartTableTbodyComponent, selector: "[ng2-st-tbody]", inputs: ["grid", "source", "deleteConfirm", "editConfirm", "rowClassFunction"], outputs: ["save", "cancel", "edit", "editCancel", "delete", "custom", "edited", "userSelectRow", "userClickedRow", "editRowSelect", "multipleSelectRow"] }, { kind: "component", type: PagerComponent, selector: "ng2-smart-table-pager", inputs: ["source", "perPageSelect"], outputs: ["changePage"] }] }); }
3304
3513
  }
3305
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Ng2SmartTableComponent, decorators: [{
3514
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: Ng2SmartTableComponent, decorators: [{
3306
3515
  type: Component,
3307
- args: [{ selector: 'ng2-smart-table', template: "<table [id]=\"tableId\" [ngClass]=\"tableClass\">\n\n @if (!isHideHeader || !isHideSubHeader) {\n <thead ng2-st-thead\n [grid]=\"grid\"\n [source]=\"source\"\n [createConfirm]=\"createConfirm\"\n (create)=\"create.emit($event)\"\n (selectAllRows)=\"onSelectAllRows()\">\n </thead>\n }\n\n <tbody ng2-st-tbody [grid]=\"grid\"\n [source]=\"source\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [rowClassFunction]=\"rowClassFunction\"\n (edit)=\"edit.emit($event)\"\n (editCancel)=\"editCancel.emit($event)\"\n (delete)=\"delete.emit($event)\"\n (custom)=\"custom.emit($event)\"\n (userClickedRow)=\"emitUserRowClicked($event)\"\n (multipleSelectRow)=\"multipleSelectRow($event)\">\n </tbody>\n\n</table>\n\n@if (isPagerDisplay) {\n <ng2-smart-table-pager\n [source]=\"source\"\n [perPageSelect]=\"perPageSelect\">\n </ng2-smart-table-pager>\n}\n", styles: [":host{font-size:1rem}:host ::ng-deep *{box-sizing:border-box}:host ::ng-deep button,:host ::ng-deep input,:host ::ng-deep optgroup,:host ::ng-deep select,:host ::ng-deep textarea{color:inherit;font:inherit;margin:0}:host ::ng-deep table{line-height:1.5em;border-collapse:collapse;border-spacing:0;display:table;width:100%;max-width:100%;word-break:normal;word-break:keep-all;overflow:auto}:host ::ng-deep table tr th{font-weight:700}:host ::ng-deep table tr section{font-size:.75em;font-weight:700}:host ::ng-deep table tr td,:host ::ng-deep table tr th{font-size:.875em;margin:0;padding:.5em 1em}:host ::ng-deep a{color:#1e6bb8;text-decoration:none}:host ::ng-deep a:hover{text-decoration:underline}\n"] }]
3516
+ args: [{ selector: "ng2-smart-table", standalone: true, imports: [
3517
+ Ng2SmartTableTheadComponent,
3518
+ Ng2SmartTableTbodyComponent,
3519
+ PagerComponent,
3520
+ ], template: "<table [id]=\"tableId\" [class]=\"tableClass\">\n\n @if (!isHideHeader || !isHideSubHeader) {\n <thead ng2-st-thead\n [grid]=\"grid\"\n [source]=\"source\"\n [createConfirm]=\"createConfirm\"\n (create)=\"create.emit($event)\"\n (selectAllRows)=\"onSelectAllRows()\">\n </thead>\n }\n\n <tbody ng2-st-tbody [grid]=\"grid\"\n [source]=\"source\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [rowClassFunction]=\"rowClassFunction\"\n (edit)=\"edit.emit($event)\"\n (editCancel)=\"editCancel.emit($event)\"\n (delete)=\"delete.emit($event)\"\n (custom)=\"custom.emit($event)\"\n (userClickedRow)=\"emitUserRowClicked($event)\"\n (multipleSelectRow)=\"multipleSelectRow($event)\">\n </tbody>\n\n</table>\n\n@if (isPagerDisplay) {\n <ng2-smart-table-pager\n [source]=\"source\"\n [perPageSelect]=\"perPageSelect\">\n </ng2-smart-table-pager>\n}\n", styles: [":host{font-size:1rem}:host ::ng-deep *{box-sizing:border-box}:host ::ng-deep button,:host ::ng-deep input,:host ::ng-deep optgroup,:host ::ng-deep select,:host ::ng-deep textarea{color:inherit;font:inherit;margin:0}:host ::ng-deep table{line-height:1.5em;border-collapse:collapse;border-spacing:0;display:table;width:100%;max-width:100%;word-break:normal;word-break:keep-all;overflow:auto}:host ::ng-deep table tr th{font-weight:700}:host ::ng-deep table tr section{font-size:.75em;font-weight:700}:host ::ng-deep table tr td,:host ::ng-deep table tr th{font-size:.875em;margin:0;padding:.5em 1em}:host ::ng-deep a{color:#1e6bb8;text-decoration:none}:host ::ng-deep a:hover{text-decoration:underline}\n"] }]
3308
3521
  }], propDecorators: { source: [{
3309
3522
  type: Input
3310
3523
  }], settings: [{
3311
3524
  type: Input
3312
- }], multiRowSelect: [{
3313
- type: Output
3314
- }], rowClicked: [{
3315
- type: Output
3316
- }], delete: [{
3317
- type: Output
3318
- }], edit: [{
3319
- type: Output
3320
- }], editCancel: [{
3321
- type: Output
3322
- }], create: [{
3323
- type: Output
3324
- }], custom: [{
3325
- type: Output
3326
- }], deleteConfirm: [{
3327
- type: Output
3328
- }], editConfirm: [{
3329
- type: Output
3330
- }], createConfirm: [{
3331
- type: Output
3332
- }], rowHover: [{
3333
- type: Output
3334
3525
  }] } });
3335
3526
 
3336
- const CELL_COMPONENTS = [
3337
- CellComponent,
3338
- EditCellDefault,
3339
- DefaultEditor,
3340
- CustomEditComponent,
3341
- DefaultEditComponent,
3342
- EditCellComponent,
3343
- CheckboxEditorComponent,
3344
- InputEditorComponent,
3345
- SelectEditorComponent,
3346
- TextareaEditorComponent,
3347
- CustomViewComponent,
3348
- ViewCellComponent,
3349
- ];
3350
- class CellModule {
3351
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CellModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3352
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: CellModule, declarations: [CellComponent,
3353
- EditCellDefault,
3354
- DefaultEditor,
3355
- CustomEditComponent,
3356
- DefaultEditComponent,
3357
- EditCellComponent,
3358
- CheckboxEditorComponent,
3359
- InputEditorComponent,
3360
- SelectEditorComponent,
3361
- TextareaEditorComponent,
3362
- CustomViewComponent,
3363
- ViewCellComponent], imports: [CommonModule,
3364
- FormsModule], exports: [CellComponent,
3365
- EditCellDefault,
3366
- DefaultEditor,
3367
- CustomEditComponent,
3368
- DefaultEditComponent,
3369
- EditCellComponent,
3370
- CheckboxEditorComponent,
3371
- InputEditorComponent,
3372
- SelectEditorComponent,
3373
- TextareaEditorComponent,
3374
- CustomViewComponent,
3375
- ViewCellComponent] }); }
3376
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CellModule, imports: [CommonModule,
3377
- FormsModule] }); }
3378
- }
3379
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CellModule, decorators: [{
3380
- type: NgModule,
3381
- args: [{
3382
- imports: [
3383
- CommonModule,
3384
- FormsModule,
3385
- ],
3386
- declarations: [
3387
- ...CELL_COMPONENTS,
3388
- ],
3389
- exports: [
3390
- ...CELL_COMPONENTS,
3391
- ],
3392
- }]
3393
- }] });
3394
-
3395
- const FILTER_COMPONENTS = [
3396
- FilterDefault,
3397
- DefaultFilter,
3398
- FilterComponent,
3399
- DefaultFilterComponent,
3400
- CustomFilterComponent,
3401
- CheckboxFilterComponent,
3402
- InputFilterComponent,
3403
- SelectFilterComponent,
3404
- ];
3405
- class FilterModule {
3406
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3407
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: FilterModule, declarations: [FilterDefault,
3408
- DefaultFilter,
3409
- FilterComponent,
3410
- DefaultFilterComponent,
3411
- CustomFilterComponent,
3412
- CheckboxFilterComponent,
3413
- InputFilterComponent,
3414
- SelectFilterComponent], imports: [CommonModule,
3415
- FormsModule,
3416
- ReactiveFormsModule], exports: [FilterDefault,
3417
- DefaultFilter,
3418
- FilterComponent,
3419
- DefaultFilterComponent,
3420
- CustomFilterComponent,
3421
- CheckboxFilterComponent,
3422
- InputFilterComponent,
3423
- SelectFilterComponent] }); }
3424
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterModule, imports: [CommonModule,
3425
- FormsModule,
3426
- ReactiveFormsModule] }); }
3427
- }
3428
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterModule, decorators: [{
3429
- type: NgModule,
3430
- args: [{
3431
- imports: [
3432
- CommonModule,
3433
- FormsModule,
3434
- ReactiveFormsModule,
3435
- ],
3436
- declarations: [
3437
- ...FILTER_COMPONENTS,
3438
- ],
3439
- exports: [
3440
- ...FILTER_COMPONENTS,
3441
- ],
3442
- }]
3443
- }] });
3444
-
3445
- class PagerModule {
3446
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3447
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: PagerModule, declarations: [PagerComponent], imports: [CommonModule,
3448
- FormsModule], exports: [PagerComponent] }); }
3449
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PagerModule, imports: [CommonModule,
3450
- FormsModule] }); }
3451
- }
3452
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PagerModule, decorators: [{
3453
- type: NgModule,
3454
- args: [{
3455
- imports: [
3456
- CommonModule,
3457
- FormsModule,
3458
- ],
3459
- declarations: [
3460
- PagerComponent,
3461
- ],
3462
- exports: [
3463
- PagerComponent,
3464
- ],
3465
- }]
3466
- }] });
3467
-
3468
- const TBODY_COMPONENTS = [
3469
- TbodyCreateCancelComponent,
3470
- TbodyEditDeleteComponent,
3471
- TbodyCustomComponent,
3472
- Ng2SmartTableTbodyComponent
3473
- ];
3474
- class TBodyModule {
3475
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TBodyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3476
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TBodyModule, declarations: [TbodyCreateCancelComponent,
3477
- TbodyEditDeleteComponent,
3478
- TbodyCustomComponent,
3479
- Ng2SmartTableTbodyComponent], imports: [CommonModule,
3480
- FormsModule,
3481
- CellModule], exports: [TbodyCreateCancelComponent,
3482
- TbodyEditDeleteComponent,
3483
- TbodyCustomComponent,
3484
- Ng2SmartTableTbodyComponent] }); }
3485
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TBodyModule, imports: [CommonModule,
3486
- FormsModule,
3487
- CellModule] }); }
3488
- }
3489
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TBodyModule, decorators: [{
3490
- type: NgModule,
3491
- args: [{
3492
- imports: [
3493
- CommonModule,
3494
- FormsModule,
3495
- CellModule,
3496
- ],
3497
- declarations: [
3498
- ...TBODY_COMPONENTS,
3499
- ],
3500
- exports: [
3501
- ...TBODY_COMPONENTS,
3502
- ],
3503
- }]
3504
- }] });
3505
-
3506
- const THEAD_COMPONENTS = [
3507
- ActionsComponent,
3508
- ActionsTitleComponent,
3509
- AddButtonComponent,
3510
- CheckboxSelectAllComponent,
3511
- ColumnTitleComponent,
3512
- TitleComponent,
3513
- TheadFitlersRowComponent,
3514
- TheadFormRowComponent,
3515
- TheadTitlesRowComponent,
3516
- Ng2SmartTableTheadComponent,
3517
- ];
3518
- class THeadModule {
3519
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: THeadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3520
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: THeadModule, declarations: [ActionsComponent,
3521
- ActionsTitleComponent,
3522
- AddButtonComponent,
3523
- CheckboxSelectAllComponent,
3524
- ColumnTitleComponent,
3525
- TitleComponent,
3526
- TheadFitlersRowComponent,
3527
- TheadFormRowComponent,
3528
- TheadTitlesRowComponent,
3529
- Ng2SmartTableTheadComponent], imports: [CommonModule,
3530
- FormsModule,
3531
- FilterModule,
3532
- CellModule], exports: [ActionsComponent,
3533
- ActionsTitleComponent,
3534
- AddButtonComponent,
3535
- CheckboxSelectAllComponent,
3536
- ColumnTitleComponent,
3537
- TitleComponent,
3538
- TheadFitlersRowComponent,
3539
- TheadFormRowComponent,
3540
- TheadTitlesRowComponent,
3541
- Ng2SmartTableTheadComponent] }); }
3542
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: THeadModule, imports: [CommonModule,
3543
- FormsModule,
3544
- FilterModule,
3545
- CellModule] }); }
3546
- }
3547
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: THeadModule, decorators: [{
3548
- type: NgModule,
3549
- args: [{
3550
- imports: [
3551
- CommonModule,
3552
- FormsModule,
3553
- FilterModule,
3554
- CellModule,
3555
- ],
3556
- declarations: [
3557
- ...THEAD_COMPONENTS,
3558
- ],
3559
- exports: [
3560
- ...THEAD_COMPONENTS,
3561
- ],
3562
- }]
3563
- }] });
3564
-
3565
- class Ng2SmartTableModule {
3566
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Ng2SmartTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3567
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: Ng2SmartTableModule, declarations: [Ng2SmartTableComponent], imports: [CommonModule,
3568
- FormsModule,
3569
- ReactiveFormsModule,
3570
- CellModule,
3571
- FilterModule,
3572
- PagerModule,
3573
- TBodyModule,
3574
- THeadModule], exports: [Ng2SmartTableComponent] }); }
3575
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Ng2SmartTableModule, imports: [CommonModule,
3576
- FormsModule,
3577
- ReactiveFormsModule,
3578
- CellModule,
3579
- FilterModule,
3580
- PagerModule,
3581
- TBodyModule,
3582
- THeadModule] }); }
3583
- }
3584
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Ng2SmartTableModule, decorators: [{
3585
- type: NgModule,
3586
- args: [{
3587
- imports: [
3588
- CommonModule,
3589
- FormsModule,
3590
- ReactiveFormsModule,
3591
- CellModule,
3592
- FilterModule,
3593
- PagerModule,
3594
- TBodyModule,
3595
- THeadModule,
3596
- ],
3597
- declarations: [
3598
- Ng2SmartTableComponent,
3599
- ],
3600
- exports: [
3601
- Ng2SmartTableComponent,
3602
- ],
3603
- }]
3604
- }] });
3605
-
3606
3527
  /**
3607
3528
  * Generated bundle index. Do not edit.
3608
3529
  */
3609
3530
 
3610
- export { Cell, Column, DataSource, DefaultEditor, DefaultFilter, Deferred, LocalDataSource, Ng2SmartTableComponent, Ng2SmartTableModule, Row, SmartTableOnChangedEventName };
3531
+ export { Cell, Column, DataSource, DefaultEditor, DefaultFilter, Deferred, LocalDataSource, Ng2SmartTableComponent, Row, SmartTableOnChangedEventName };
3611
3532
  //# sourceMappingURL=den4ik92-ng2-smart-table.mjs.map