@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,241 +0,0 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import { LocalDataSource } from '../../lib/data-source/local/local.data-source';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/forms";
6
- export class PagerComponent {
7
- constructor() {
8
- this.perPageSelect = [];
9
- this.changePage = new EventEmitter();
10
- this.currentPerPage = 0;
11
- this.pages = [];
12
- this.page = 1;
13
- this.count = 0;
14
- this.perPage = 0;
15
- }
16
- ngOnChanges(changes) {
17
- if (changes['source']) {
18
- if (!changes['source'].firstChange && this.dataChangedSub) {
19
- this.dataChangedSub.unsubscribe();
20
- }
21
- this.dataChangedSub = this.source.onChanged().subscribe((dataChanges) => {
22
- const paging = this.source.getPaging();
23
- if (paging) {
24
- this.page = paging.page;
25
- this.perPage = paging.perPage;
26
- }
27
- this.currentPerPage = this.perPage;
28
- this.count = this.source.count();
29
- if (this.isPageOutOfBounce()) {
30
- this.source.setPage(--this.page);
31
- }
32
- this.processPageChange(dataChanges);
33
- this.initPages();
34
- });
35
- }
36
- }
37
- /**
38
- * We change the page here depending on the action performed against data source
39
- * if a new element was added to the end of the table - then change the page to the last
40
- * if a new element was added to the beginning of the table - then to the first page
41
- * @param changes
42
- */
43
- processPageChange(changes) {
44
- if (changes['action'] === 'prepend') {
45
- this.source.setPage(1);
46
- }
47
- if (changes['action'] === 'append') {
48
- this.source.setPage(this.getLast());
49
- }
50
- }
51
- shouldShow() {
52
- return this.source.count() > this.perPage;
53
- }
54
- paginate(page) {
55
- this.source.setPage(page);
56
- this.page = page;
57
- this.changePage.emit({ page });
58
- return false;
59
- }
60
- next() {
61
- return this.paginate(this.getPage() + 1);
62
- }
63
- prev() {
64
- return this.paginate(this.getPage() - 1);
65
- }
66
- getPage() {
67
- return this.page;
68
- }
69
- getPages() {
70
- return this.pages;
71
- }
72
- getLast() {
73
- return Math.ceil(this.count / this.perPage);
74
- }
75
- isPageOutOfBounce() {
76
- return (this.page * this.perPage) >= (this.count + this.perPage) && this.page > 1;
77
- }
78
- initPages() {
79
- const pagesCount = this.getLast();
80
- let showPagesCount = 4;
81
- showPagesCount = pagesCount < showPagesCount ? pagesCount : showPagesCount;
82
- this.pages = [];
83
- if (this.shouldShow()) {
84
- let middleOne = Math.ceil(showPagesCount / 2);
85
- middleOne = this.page >= middleOne ? this.page : middleOne;
86
- let lastOne = middleOne + Math.floor(showPagesCount / 2);
87
- lastOne = lastOne >= pagesCount ? pagesCount : lastOne;
88
- const firstOne = lastOne - showPagesCount + 1;
89
- for (let i = firstOne; i <= lastOne; i++) {
90
- this.pages.push(i);
91
- }
92
- }
93
- }
94
- onChangePerPage() {
95
- const paging = this.source.getPaging();
96
- if (paging) {
97
- paging.perPage = this.currentPerPage * 1;
98
- }
99
- this.source.refresh();
100
- this.initPages();
101
- }
102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PagerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
103
- 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: `
104
- @if (shouldShow()) {
105
- <nav class="ng2-smart-pagination-nav">
106
- <ul class="ng2-smart-pagination pagination">
107
- <li class="ng2-smart-page-item page-item" [ngClass]="{disabled: getPage() == 1}">
108
- <a class="ng2-smart-page-link page-link" href="#"
109
- (click)="getPage() == 1 ? false : paginate(1)" aria-label="First">
110
- <span aria-hidden="true">&laquo;</span>
111
- <span class="sr-only">First</span>
112
- </a>
113
- </li>
114
- <li class="ng2-smart-page-item page-item" [ngClass]="{disabled: getPage() == 1}">
115
- <a class="ng2-smart-page-link page-link page-link-prev" href="#"
116
- (click)="getPage() == 1 ? false : prev()" aria-label="Prev">
117
- <span aria-hidden="true">&lt;</span>
118
- <span class="sr-only">Prev</span>
119
- </a>
120
- </li>
121
- @for (page of getPages(); track page) {
122
- <li class="ng2-smart-page-item page-item"
123
- [ngClass]="{active: getPage() == page}">
124
- @if (getPage() == page) {
125
- <span class="ng2-smart-page-link page-link"
126
- >{{ page }} <span class="sr-only">(current)</span></span>
127
- }
128
- @if (getPage() != page) {
129
- <a class="ng2-smart-page-link page-link" href="#"
130
- (click)="paginate(page)">{{ page }}</a>
131
- }
132
- </li>
133
- }
134
- <li class="ng2-smart-page-item page-item"
135
- [ngClass]="{disabled: getPage() == getLast()}">
136
- <a class="ng2-smart-page-link page-link page-link-next" href="#"
137
- (click)="getPage() == getLast() ? false : next()" aria-label="Next">
138
- <span aria-hidden="true">&gt;</span>
139
- <span class="sr-only">Next</span>
140
- </a>
141
- </li>
142
- <li class="ng2-smart-page-item page-item"
143
- [ngClass]="{disabled: getPage() == getLast()}">
144
- <a class="ng2-smart-page-link page-link" href="#"
145
- (click)="getPage() == getLast() ? false : paginate(getLast())" aria-label="Last">
146
- <span aria-hidden="true">&raquo;</span>
147
- <span class="sr-only">Last</span>
148
- </a>
149
- </li>
150
- </ul>
151
- </nav>
152
- }
153
-
154
- @if (perPageSelect && perPageSelect.length > 0) {
155
- <nav class="ng2-smart-pagination-per-page">
156
- <label for="per-page">
157
- Per Page:
158
- </label>
159
- <select (change)="onChangePerPage()" [(ngModel)]="currentPerPage" id="per-page">
160
- @for (item of perPageSelect; track item) {
161
- <option [value]="item">{{ item }}</option>
162
- }
163
- </select>
164
- </nav>
165
- }
166
- `, 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"] }] }); }
167
- }
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PagerComponent, decorators: [{
169
- type: Component,
170
- args: [{ selector: 'ng2-smart-table-pager', template: `
171
- @if (shouldShow()) {
172
- <nav class="ng2-smart-pagination-nav">
173
- <ul class="ng2-smart-pagination pagination">
174
- <li class="ng2-smart-page-item page-item" [ngClass]="{disabled: getPage() == 1}">
175
- <a class="ng2-smart-page-link page-link" href="#"
176
- (click)="getPage() == 1 ? false : paginate(1)" aria-label="First">
177
- <span aria-hidden="true">&laquo;</span>
178
- <span class="sr-only">First</span>
179
- </a>
180
- </li>
181
- <li class="ng2-smart-page-item page-item" [ngClass]="{disabled: getPage() == 1}">
182
- <a class="ng2-smart-page-link page-link page-link-prev" href="#"
183
- (click)="getPage() == 1 ? false : prev()" aria-label="Prev">
184
- <span aria-hidden="true">&lt;</span>
185
- <span class="sr-only">Prev</span>
186
- </a>
187
- </li>
188
- @for (page of getPages(); track page) {
189
- <li class="ng2-smart-page-item page-item"
190
- [ngClass]="{active: getPage() == page}">
191
- @if (getPage() == page) {
192
- <span class="ng2-smart-page-link page-link"
193
- >{{ page }} <span class="sr-only">(current)</span></span>
194
- }
195
- @if (getPage() != page) {
196
- <a class="ng2-smart-page-link page-link" href="#"
197
- (click)="paginate(page)">{{ page }}</a>
198
- }
199
- </li>
200
- }
201
- <li class="ng2-smart-page-item page-item"
202
- [ngClass]="{disabled: getPage() == getLast()}">
203
- <a class="ng2-smart-page-link page-link page-link-next" href="#"
204
- (click)="getPage() == getLast() ? false : next()" aria-label="Next">
205
- <span aria-hidden="true">&gt;</span>
206
- <span class="sr-only">Next</span>
207
- </a>
208
- </li>
209
- <li class="ng2-smart-page-item page-item"
210
- [ngClass]="{disabled: getPage() == getLast()}">
211
- <a class="ng2-smart-page-link page-link" href="#"
212
- (click)="getPage() == getLast() ? false : paginate(getLast())" aria-label="Last">
213
- <span aria-hidden="true">&raquo;</span>
214
- <span class="sr-only">Last</span>
215
- </a>
216
- </li>
217
- </ul>
218
- </nav>
219
- }
220
-
221
- @if (perPageSelect && perPageSelect.length > 0) {
222
- <nav class="ng2-smart-pagination-per-page">
223
- <label for="per-page">
224
- Per Page:
225
- </label>
226
- <select (change)="onChangePerPage()" [(ngModel)]="currentPerPage" id="per-page">
227
- @for (item of perPageSelect; track item) {
228
- <option [value]="item">{{ item }}</option>
229
- }
230
- </select>
231
- </nav>
232
- }
233
- `, 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"] }]
234
- }], propDecorators: { source: [{
235
- type: Input
236
- }], perPageSelect: [{
237
- type: Input
238
- }], changePage: [{
239
- type: Output
240
- }] } });
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcyLXNtYXJ0LXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9wYWdlci9wYWdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFakcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7O0FBc0VoRixNQUFNLE9BQU8sY0FBYztJQXBFM0I7UUF1RVcsa0JBQWEsR0FBYSxFQUFFLENBQUM7UUFFNUIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFL0MsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFFakIsVUFBSyxHQUFhLEVBQUUsQ0FBQztRQUNyQixTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBQ2pCLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsWUFBTyxHQUFXLENBQUMsQ0FBQztLQTJHL0I7SUF2R0MsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUMxRCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BDLENBQUM7WUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7Z0JBQ3RFLE1BQU0sTUFBTSxHQUFpQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNyRSxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNY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WUFFdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQStEUDs4QkFJTSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU21hcnRUYWJsZVBhZ2luZ0l0ZW0gfSBmcm9tICcuLy4uLy4uL2xpYi9pbnRlcmZhY2VzL3NtYXJ0LXRhYmxlLm1vZGVscyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExvY2FsRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2xpYi9kYXRhLXNvdXJjZS9sb2NhbC9sb2NhbC5kYXRhLXNvdXJjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nMi1zbWFydC10YWJsZS1wYWdlcicsXG4gIHN0eWxlVXJsczogWycuL3BhZ2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChzaG91bGRTaG93KCkpIHtcbiAgICAgIDxuYXYgY2xhc3M9XCJuZzItc21hcnQtcGFnaW5hdGlvbi1uYXZcIj5cbiAgICAgICAgPHVsIGNsYXNzPVwibmcyLXNtYXJ0LXBhZ2luYXRpb24gcGFnaW5hdGlvblwiPlxuICAgICAgICAgIDxsaSBjbGFzcz1cIm5nMi1zbWFydC1wYWdlLWl0ZW0gcGFnZS1pdGVtXCIgW25nQ2xhc3NdPVwie2Rpc2FibGVkOiBnZXRQYWdlKCkgPT0gMX1cIj5cbiAgICAgICAgICAgIDxhIGNsYXNzPVwibmcyLXNtYXJ0LXBhZ2UtbGluayBwYWdlLWxpbmtcIiBocmVmPVwiI1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJnZXRQYWdlKCkgPT0gMSA/IGZhbHNlIDogcGFnaW5hdGUoMSlcIiBhcmlhLWxhYmVsPVwiRmlyc3RcIj5cbiAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JmxhcXVvOzwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+Rmlyc3Q8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgICA8bGkgY2xhc3M9XCJuZzItc21hcnQtcGFnZS1pdGVtIHBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogZ2V0UGFnZSgpID09IDF9XCI+XG4gICAgICAgICAgICA8YSBjbGFzcz1cIm5nMi1zbWFydC1wYWdlLWxpbmsgcGFnZS1saW5rIHBhZ2UtbGluay1wcmV2XCIgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZ2V0UGFnZSgpID09IDEgPyBmYWxzZSA6IHByZXYoKVwiIGFyaWEtbGFiZWw9XCJQcmV2XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZsdDs8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPlByZXY8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgICBAZm9yIChwYWdlIG9mIGdldFBhZ2VzKCk7IHRyYWNrIHBhZ2UpIHtcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5nMi1zbWFydC1wYWdlLWl0ZW0gcGFnZS1pdGVtXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie2FjdGl2ZTogZ2V0UGFnZSgpID09IHBhZ2V9XCI+XG4gICAgICAgICAgICAgIEBpZiAoZ2V0UGFnZSgpID09IHBhZ2UpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5nMi1zbWFydC1wYWdlLWxpbmsgcGFnZS1saW5rXCJcbiAgICAgICAgICAgICAgICAgID57eyBwYWdlIH19IDxzcGFuIGNsYXNzPVwic3Itb25seVwiPihjdXJyZW50KTwvc3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoZ2V0UGFnZSgpICE9IHBhZ2UpIHtcbiAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmcyLXNtYXJ0LXBhZ2UtbGluayBwYWdlLWxpbmtcIiBocmVmPVwiI1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwicGFnaW5hdGUocGFnZSlcIj57eyBwYWdlIH19PC9hPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5nMi1zbWFydC1wYWdlLWl0ZW0gcGFnZS1pdGVtXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie2Rpc2FibGVkOiBnZXRQYWdlKCkgPT0gZ2V0TGFzdCgpfVwiPlxuICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5nMi1zbWFydC1wYWdlLWxpbmsgcGFnZS1saW5rIHBhZ2UtbGluay1uZXh0XCIgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJnZXRQYWdlKCkgPT0gZ2V0TGFzdCgpID8gZmFsc2UgOiBuZXh0KClcIiBhcmlhLWxhYmVsPVwiTmV4dFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZndDs8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+TmV4dDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5nMi1zbWFydC1wYWdlLWl0ZW0gcGFnZS1pdGVtXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie2Rpc2FibGVkOiBnZXRQYWdlKCkgPT0gZ2V0TGFzdCgpfVwiPlxuICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5nMi1zbWFydC1wYWdlLWxpbmsgcGFnZS1saW5rXCIgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJnZXRQYWdlKCkgPT0gZ2V0TGFzdCgpID8gZmFsc2UgOiBwYWdpbmF0ZShnZXRMYXN0KCkpXCIgYXJpYS1sYWJlbD1cIkxhc3RcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mcmFxdW87PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPkxhc3Q8L3NwYW4+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9uYXY+XG4gICAgICB9XG4gICAgXG4gICAgICBAaWYgKHBlclBhZ2VTZWxlY3QgJiYgcGVyUGFnZVNlbGVjdC5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxuYXYgY2xhc3M9XCJuZzItc21hcnQtcGFnaW5hdGlvbi1wZXItcGFnZVwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJwZXItcGFnZVwiPlxuICAgICAgICAgICAgUGVyIFBhZ2U6XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8c2VsZWN0IChjaGFuZ2UpPVwib25DaGFuZ2VQZXJQYWdlKClcIiBbKG5nTW9kZWwpXT1cImN1cnJlbnRQZXJQYWdlXCIgaWQ9XCJwZXItcGFnZVwiPlxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBwZXJQYWdlU2VsZWN0OyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIml0ZW1cIj57eyBpdGVtIH19PC9vcHRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvbmF2PlxuICAgICAgfVxuICAgIGAsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBzb3VyY2UhOiBMb2NhbERhdGFTb3VyY2U7XG4gIEBJbnB1dCgpIHBlclBhZ2VTZWxlY3Q6IG51bWJlcltdID0gW107XG5cbiAgQE91dHB1dCgpIGNoYW5nZVBhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjdXJyZW50UGVyUGFnZTogbnVtYmVyID0gMDtcblxuICBwcm90ZWN0ZWQgcGFnZXM6IG51bWJlcltdID0gW107XG4gIHByb3RlY3RlZCBwYWdlOiBudW1iZXIgPSAxO1xuICBwcm90ZWN0ZWQgY291bnQ6IG51bWJlciA9IDA7XG4gIHByb3RlY3RlZCBwZXJQYWdlOiBudW1iZXIgPSAwO1xuXG4gIHByb3RlY3RlZCBkYXRhQ2hhbmdlZFN1YjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snc291cmNlJ10pIHtcbiAgICAgIGlmICghY2hhbmdlc1snc291cmNlJ10uZmlyc3RDaGFuZ2UgJiYgdGhpcy5kYXRhQ2hhbmdlZFN1Yikge1xuICAgICAgICB0aGlzLmRhdGFDaGFuZ2VkU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmRhdGFDaGFuZ2VkU3ViID0gdGhpcy5zb3VyY2Uub25DaGFuZ2VkKCkuc3Vic2NyaWJlKChkYXRhQ2hhbmdlcykgPT4ge1xuICAgICAgICBjb25zdCBwYWdpbmc6IFNtYXJ0VGFibGVQYWdpbmdJdGVtIHwgZmFsc2UgPSB0aGlzLnNvdXJjZS5nZXRQYWdpbmcoKTtcbiAgICAgICAgaWYgKHBhZ2luZykge1xuICAgICAgICAgIHRoaXMucGFnZSA9IHBhZ2luZy5wYWdlO1xuICAgICAgICAgIHRoaXMucGVyUGFnZSA9IHBhZ2luZy5wZXJQYWdlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudFBlclBhZ2UgPSB0aGlzLnBlclBhZ2U7XG4gICAgICAgIHRoaXMuY291bnQgPSB0aGlzLnNvdXJjZS5jb3VudCgpO1xuICAgICAgICBpZiAodGhpcy5pc1BhZ2VPdXRPZkJvdW5jZSgpKSB7XG4gICAgICAgICAgdGhpcy5zb3VyY2Uuc2V0UGFnZSgtLXRoaXMucGFnZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByb2Nlc3NQYWdlQ2hhbmdlKGRhdGFDaGFuZ2VzKTtcbiAgICAgICAgdGhpcy5pbml0UGFnZXMoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXZSBjaGFuZ2UgdGhlIHBhZ2UgaGVyZSBkZXBlbmRpbmcgb24gdGhlIGFjdGlvbiBwZXJmb3JtZWQgYWdhaW5zdCBkYXRhIHNvdXJjZVxuICAgKiBpZiBhIG5ldyBlbGVtZW50IHdhcyBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSB0YWJsZSAtIHRoZW4gY2hhbmdlIHRoZSBwYWdlIHRvIHRoZSBsYXN0XG4gICAqIGlmIGEgbmV3IGVsZW1lbnQgd2FzIGFkZGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRhYmxlIC0gdGhlbiB0byB0aGUgZmlyc3QgcGFnZVxuICAgKiBAcGFyYW0gY2hhbmdlc1xuICAgKi9cbiAgcHJvY2Vzc1BhZ2VDaGFuZ2UoY2hhbmdlczogYW55KSB7XG4gICAgaWYgKGNoYW5nZXNbJ2FjdGlvbiddID09PSAncHJlcGVuZCcpIHtcbiAgICAgIHRoaXMuc291cmNlLnNldFBhZ2UoMSk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydhY3Rpb24nXSA9PT0gJ2FwcGVuZCcpIHtcbiAgICAgIHRoaXMuc291cmNlLnNldFBhZ2UodGhpcy5nZXRMYXN0KCkpO1xuICAgIH1cbiAgfVxuXG4gIHNob3VsZFNob3coKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc291cmNlLmNvdW50KCkgPiB0aGlzLnBlclBhZ2U7XG4gIH1cblxuICBwYWdpbmF0ZShwYWdlOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICB0aGlzLnNvdXJjZS5zZXRQYWdlKHBhZ2UpO1xuICAgIHRoaXMucGFnZSA9IHBhZ2U7XG4gICAgdGhpcy5jaGFuZ2VQYWdlLmVtaXQoeyBwYWdlIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG5leHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGFnaW5hdGUodGhpcy5nZXRQYWdlKCkgKyAxKTtcbiAgfVxuXG4gIHByZXYoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGFnaW5hdGUodGhpcy5nZXRQYWdlKCkgLSAxKTtcbiAgfVxuXG4gIGdldFBhZ2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlO1xuICB9XG5cbiAgZ2V0UGFnZXMoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB0aGlzLnBhZ2VzO1xuICB9XG5cbiAgZ2V0TGFzdCgpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy5jb3VudCAvIHRoaXMucGVyUGFnZSk7XG4gIH1cblxuICBpc1BhZ2VPdXRPZkJvdW5jZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMucGFnZSAqIHRoaXMucGVyUGFnZSkgPj0gKHRoaXMuY291bnQgKyB0aGlzLnBlclBhZ2UpICYmIHRoaXMucGFnZSA+IDE7XG4gIH1cblxuICBpbml0UGFnZXMoKSB7XG4gICAgY29uc3QgcGFnZXNDb3VudCA9IHRoaXMuZ2V0TGFzdCgpO1xuICAgIGxldCBzaG93UGFnZXNDb3VudCA9IDQ7XG4gICAgc2hvd1BhZ2VzQ291bnQgPSBwYWdlc0NvdW50IDwgc2hvd1BhZ2VzQ291bnQgPyBwYWdlc0NvdW50IDogc2hvd1BhZ2VzQ291bnQ7XG4gICAgdGhpcy5wYWdlcyA9IFtdO1xuXG4gICAgaWYgKHRoaXMuc2hvdWxkU2hvdygpKSB7XG5cbiAgICAgIGxldCBtaWRkbGVPbmUgPSBNYXRoLmNlaWwoc2hvd1BhZ2VzQ291bnQgLyAyKTtcbiAgICAgIG1pZGRsZU9uZSA9IHRoaXMucGFnZSA+PSBtaWRkbGVPbmUgPyB0aGlzLnBhZ2UgOiBtaWRkbGVPbmU7XG5cbiAgICAgIGxldCBsYXN0T25lID0gbWlkZGxlT25lICsgTWF0aC5mbG9vcihzaG93UGFnZXNDb3VudCAvIDIpO1xuICAgICAgbGFzdE9uZSA9IGxhc3RPbmUgPj0gcGFnZXNDb3VudCA/IHBhZ2VzQ291bnQgOiBsYXN0T25lO1xuXG4gICAgICBjb25zdCBmaXJzdE9uZSA9IGxhc3RPbmUgLSBzaG93UGFnZXNDb3VudCArIDE7XG5cbiAgICAgIGZvciAobGV0IGkgPSBmaXJzdE9uZTsgaSA8PSBsYXN0T25lOyBpKyspIHtcbiAgICAgICAgdGhpcy5wYWdlcy5wdXNoKGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlUGVyUGFnZSgpIHtcbiAgICBjb25zdCBwYWdpbmc6IFNtYXJ0VGFibGVQYWdpbmdJdGVtIHwgZmFsc2UgPSB0aGlzLnNvdXJjZS5nZXRQYWdpbmcoKTsgXG4gICAgaWYgKHBhZ2luZykge1xuICAgICAgcGFnaW5nLnBlclBhZ2UgPSB0aGlzLmN1cnJlbnRQZXJQYWdlICogMTtcbiAgICB9XG4gICAgdGhpcy5zb3VyY2UucmVmcmVzaCgpO1xuICAgIHRoaXMuaW5pdFBhZ2VzKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,28 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FormsModule } from '@angular/forms';
4
- import { PagerComponent } from './pager.component';
5
- import * as i0 from "@angular/core";
6
- export class PagerModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: PagerModule, declarations: [PagerComponent], imports: [CommonModule,
9
- FormsModule], exports: [PagerComponent] }); }
10
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PagerModule, imports: [CommonModule,
11
- FormsModule] }); }
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PagerModule, decorators: [{
14
- type: NgModule,
15
- args: [{
16
- imports: [
17
- CommonModule,
18
- FormsModule,
19
- ],
20
- declarations: [
21
- PagerComponent,
22
- ],
23
- exports: [
24
- PagerComponent,
25
- ],
26
- }]
27
- }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcyLXNtYXJ0LXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9wYWdlci9wYWdlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFjbkQsTUFBTSxPQUFPLFdBQVc7K0dBQVgsV0FBVztnSEFBWCxXQUFXLGlCQU5wQixjQUFjLGFBSmQsWUFBWTtZQUNaLFdBQVcsYUFNWCxjQUFjO2dIQUdMLFdBQVcsWUFWcEIsWUFBWTtZQUNaLFdBQVc7OzRGQVNGLFdBQVc7a0JBWnZCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVztxQkFDWjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osY0FBYztxQkFDZjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsY0FBYztxQkFDZjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFBhZ2VyQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBQYWdlckNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFBhZ2VyQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlck1vZHVsZSB7IH1cbiJdfQ==
@@ -1,195 +0,0 @@
1
- import { Component, EventEmitter, Input } from "@angular/core";
2
- import { Row } from "../../../lib/data-set/row";
3
- import { Grid } from "../../../lib/grid";
4
- import * as i0 from "@angular/core";
5
- export class TbodyCreateCancelComponent {
6
- constructor() {
7
- this.cancelButtonContent = "";
8
- this.saveButtonContent = "";
9
- }
10
- onSave(event) {
11
- event.preventDefault();
12
- event.stopPropagation();
13
- this.grid.save(this.row, this.editConfirm);
14
- }
15
- onCancelEdit(event) {
16
- event.preventDefault();
17
- event.stopPropagation();
18
- this.editCancel.emit(true);
19
- this.row.isInEditing = false;
20
- }
21
- ngOnChanges() {
22
- this.saveButtonContent = this.grid.getSetting("edit.saveButtonContent", "save");
23
- this.cancelButtonContent = this.grid.getSetting("edit.cancelButtonContent", "cancel");
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TbodyCreateCancelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- 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: `
27
- @if (!row.pending) {
28
- <a
29
- href="#"
30
- [id]="'row-' + row.index + '_editing-confirm-button'"
31
- class="ng2-smart-action ng2-smart-action-edit-save"
32
- [innerHTML]="saveButtonContent"
33
- (click)="onSave($event)"
34
- ></a>
35
- <a
36
- href="#"
37
- [id]="'row-' + row.index + '_editing-cancel-button'"
38
- class="ng2-smart-action ng2-smart-action-edit-cancel"
39
- [innerHTML]="cancelButtonContent"
40
- (click)="onCancelEdit($event)"
41
- ></a>
42
- } @else {
43
- <div style="display: flex;">
44
- <svg
45
- (click)="$event.stopPropagation()"
46
- style="height: 2rem; width: 2rem;"
47
- version="1.1"
48
- id="L9"
49
- xmlns="http://www.w3.org/2000/svg"
50
- xmlns:xlink="http://www.w3.org/1999/xlink"
51
- x="0px"
52
- y="0px"
53
- viewBox="0 0 100 100"
54
- enable-background="new 0 0 0 0"
55
- xml:space="preserve"
56
- >
57
- <path
58
- fill="#e9e9e9"
59
- 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"
60
- >
61
- <animateTransform
62
- attributeName="transform"
63
- attributeType="XML"
64
- type="rotate"
65
- dur="1s"
66
- from="0 50 50"
67
- to="360 50 50"
68
- repeatCount="indefinite"
69
- />
70
- </path>
71
- </svg>
72
- <svg
73
- (click)="$event.stopPropagation()"
74
- style="height: 2rem; width: 2rem; "
75
- version="1.1"
76
- id="L9"
77
- xmlns="http://www.w3.org/2000/svg"
78
- xmlns:xlink="http://www.w3.org/1999/xlink"
79
- x="0px"
80
- y="0px"
81
- viewBox="0 0 100 100"
82
- enable-background="new 0 0 0 0"
83
- xml:space="preserve"
84
- >
85
- <path
86
- fill="#e9e9e9"
87
- 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"
88
- >
89
- <animateTransform
90
- attributeName="transform"
91
- attributeType="XML"
92
- type="rotate"
93
- dur="1s"
94
- from="0 50 50"
95
- to="360 50 50"
96
- repeatCount="indefinite"
97
- />
98
- </path>
99
- </svg>
100
- </div>
101
- }
102
- `, isInline: true }); }
103
- }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TbodyCreateCancelComponent, decorators: [{
105
- type: Component,
106
- args: [{
107
- selector: "ng2-st-tbody-create-cancel",
108
- template: `
109
- @if (!row.pending) {
110
- <a
111
- href="#"
112
- [id]="'row-' + row.index + '_editing-confirm-button'"
113
- class="ng2-smart-action ng2-smart-action-edit-save"
114
- [innerHTML]="saveButtonContent"
115
- (click)="onSave($event)"
116
- ></a>
117
- <a
118
- href="#"
119
- [id]="'row-' + row.index + '_editing-cancel-button'"
120
- class="ng2-smart-action ng2-smart-action-edit-cancel"
121
- [innerHTML]="cancelButtonContent"
122
- (click)="onCancelEdit($event)"
123
- ></a>
124
- } @else {
125
- <div style="display: flex;">
126
- <svg
127
- (click)="$event.stopPropagation()"
128
- style="height: 2rem; width: 2rem;"
129
- version="1.1"
130
- id="L9"
131
- xmlns="http://www.w3.org/2000/svg"
132
- xmlns:xlink="http://www.w3.org/1999/xlink"
133
- x="0px"
134
- y="0px"
135
- viewBox="0 0 100 100"
136
- enable-background="new 0 0 0 0"
137
- xml:space="preserve"
138
- >
139
- <path
140
- fill="#e9e9e9"
141
- 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"
142
- >
143
- <animateTransform
144
- attributeName="transform"
145
- attributeType="XML"
146
- type="rotate"
147
- dur="1s"
148
- from="0 50 50"
149
- to="360 50 50"
150
- repeatCount="indefinite"
151
- />
152
- </path>
153
- </svg>
154
- <svg
155
- (click)="$event.stopPropagation()"
156
- style="height: 2rem; width: 2rem; "
157
- version="1.1"
158
- id="L9"
159
- xmlns="http://www.w3.org/2000/svg"
160
- xmlns:xlink="http://www.w3.org/1999/xlink"
161
- x="0px"
162
- y="0px"
163
- viewBox="0 0 100 100"
164
- enable-background="new 0 0 0 0"
165
- xml:space="preserve"
166
- >
167
- <path
168
- fill="#e9e9e9"
169
- 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"
170
- >
171
- <animateTransform
172
- attributeName="transform"
173
- attributeType="XML"
174
- type="rotate"
175
- dur="1s"
176
- from="0 50 50"
177
- to="360 50 50"
178
- repeatCount="indefinite"
179
- />
180
- </path>
181
- </svg>
182
- </div>
183
- }
184
- `,
185
- }]
186
- }], propDecorators: { grid: [{
187
- type: Input
188
- }], row: [{
189
- type: Input
190
- }], editConfirm: [{
191
- type: Input
192
- }], editCancel: [{
193
- type: Input
194
- }] } });
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNhbmNlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZzItc21hcnQtdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL3Rib2R5L2NlbGxzL2NyZWF0ZS1jYW5jZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQWtGekMsTUFBTSxPQUFPLDBCQUEwQjtJQWhGdkM7UUFzRkUsd0JBQW1CLEdBQVcsRUFBRSxDQUFDO1FBQ2pDLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztLQXlCaEM7SUF2QkMsTUFBTSxDQUFDLEtBQVU7UUFDZixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBVTtRQUNyQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FDM0Msd0JBQXdCLEVBQ3hCLE1BQU0sQ0FDUCxDQUFDO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUM3QywwQkFBMEIsRUFDMUIsUUFBUSxDQUNULENBQUM7SUFDSixDQUFDOytHQS9CVSwwQkFBMEI7bUdBQTFCLDBCQUEwQixtTEE5RTNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBNEVQOzs0RkFFUSwwQkFBMEI7a0JBaEZ0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTRFUDtpQkFDSjs4QkFFVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgUm93IH0gZnJvbSBcIi4uLy4uLy4uL2xpYi9kYXRhLXNldC9yb3dcIjtcbmltcG9ydCB7IEdyaWQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2dyaWRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm5nMi1zdC10Ym9keS1jcmVhdGUtY2FuY2VsXCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmICghcm93LnBlbmRpbmcpIHtcbiAgICAgIDxhXG4gICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgW2lkXT1cIidyb3ctJyArIHJvdy5pbmRleCArICdfZWRpdGluZy1jb25maXJtLWJ1dHRvbidcIlxuICAgICAgICBjbGFzcz1cIm5nMi1zbWFydC1hY3Rpb24gbmcyLXNtYXJ0LWFjdGlvbi1lZGl0LXNhdmVcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cInNhdmVCdXR0b25Db250ZW50XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2F2ZSgkZXZlbnQpXCJcbiAgICAgID48L2E+XG4gICAgICA8YVxuICAgICAgICBocmVmPVwiI1wiXG4gICAgICAgIFtpZF09XCIncm93LScgKyByb3cuaW5kZXggKyAnX2VkaXRpbmctY2FuY2VsLWJ1dHRvbidcIlxuICAgICAgICBjbGFzcz1cIm5nMi1zbWFydC1hY3Rpb24gbmcyLXNtYXJ0LWFjdGlvbi1lZGl0LWNhbmNlbFwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiY2FuY2VsQnV0dG9uQ29udGVudFwiXG4gICAgICAgIChjbGljayk9XCJvbkNhbmNlbEVkaXQoJGV2ZW50KVwiXG4gICAgICA+PC9hPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XG4gICAgICAgIDxzdmdcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICBzdHlsZT1cImhlaWdodDogMnJlbTsgd2lkdGg6IDJyZW07XCJcbiAgICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgICAgICBpZD1cIkw5XCJcbiAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxuICAgICAgICAgIHg9XCIwcHhcIlxuICAgICAgICAgIHk9XCIwcHhcIlxuICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTAwIDEwMFwiXG4gICAgICAgICAgZW5hYmxlLWJhY2tncm91bmQ9XCJuZXcgMCAwIDAgMFwiXG4gICAgICAgICAgeG1sOnNwYWNlPVwicHJlc2VydmVcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZmlsbD1cIiNlOWU5ZTlcIlxuICAgICAgICAgICAgZD1cIk03Myw1MGMwLTEyLjctMTAuMy0yMy0yMy0yM1MyNywzNy4zLDI3LDUwIE0zMC45LDUwYzAtMTAuNSw4LjUtMTkuMSwxOS4xLTE5LjFTNjkuMSwzOS41LDY5LjEsNTBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGFuaW1hdGVUcmFuc2Zvcm1cbiAgICAgICAgICAgICAgYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZVR5cGU9XCJYTUxcIlxuICAgICAgICAgICAgICB0eXBlPVwicm90YXRlXCJcbiAgICAgICAgICAgICAgZHVyPVwiMXNcIlxuICAgICAgICAgICAgICBmcm9tPVwiMCA1MCA1MFwiXG4gICAgICAgICAgICAgIHRvPVwiMzYwIDUwIDUwXCJcbiAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9XCJpbmRlZmluaXRlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3BhdGg+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgICA8c3ZnXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDJyZW07IHdpZHRoOiAycmVtOyBcIlxuICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxuICAgICAgICAgIGlkPVwiTDlcIlxuICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgICAgICAgeD1cIjBweFwiXG4gICAgICAgICAgeT1cIjBweFwiXG4gICAgICAgICAgdmlld0JveD1cIjAgMCAxMDAgMTAwXCJcbiAgICAgICAgICBlbmFibGUtYmFja2dyb3VuZD1cIm5ldyAwIDAgMCAwXCJcbiAgICAgICAgICB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBmaWxsPVwiI2U5ZTllOVwiXG4gICAgICAgICAgICBkPVwiTTczLDUwYzAtMTIuNy0xMC4zLTIzLTIzLTIzUzI3LDM3LjMsMjcsNTAgTTMwLjksNTBjMC0xMC41LDguNS0xOS4xLDE5LjEtMTkuMVM2OS4xLDM5LjUsNjkuMSw1MFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8YW5pbWF0ZVRyYW5zZm9ybVxuICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCJcbiAgICAgICAgICAgICAgYXR0cmlidXRlVHlwZT1cIlhNTFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJyb3RhdGVcIlxuICAgICAgICAgICAgICBkdXI9XCIxc1wiXG4gICAgICAgICAgICAgIGZyb209XCIwIDUwIDUwXCJcbiAgICAgICAgICAgICAgdG89XCIzNjAgNTAgNTBcIlxuICAgICAgICAgICAgICByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgIDwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgYCxcbn0pXG5leHBvcnQgY2xhc3MgVGJvZHlDcmVhdGVDYW5jZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBncmlkITogR3JpZDtcbiAgQElucHV0KCkgcm93ITogUm93O1xuICBASW5wdXQoKSBlZGl0Q29uZmlybSE6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBASW5wdXQoKSBlZGl0Q2FuY2VsITogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgY2FuY2VsQnV0dG9uQ29udGVudDogc3RyaW5nID0gXCJcIjtcbiAgc2F2ZUJ1dHRvbkNvbnRlbnQ6IHN0cmluZyA9IFwiXCI7XG5cbiAgb25TYXZlKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZ3JpZC5zYXZlKHRoaXMucm93LCB0aGlzLmVkaXRDb25maXJtKTtcbiAgfVxuXG4gIG9uQ2FuY2VsRWRpdChldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmVkaXRDYW5jZWwuZW1pdCh0cnVlKTtcbiAgICB0aGlzLnJvdy5pc0luRWRpdGluZyA9IGZhbHNlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5zYXZlQnV0dG9uQ29udGVudCA9IHRoaXMuZ3JpZC5nZXRTZXR0aW5nKFxuICAgICAgXCJlZGl0LnNhdmVCdXR0b25Db250ZW50XCIsXG4gICAgICBcInNhdmVcIlxuICAgICk7XG4gICAgdGhpcy5jYW5jZWxCdXR0b25Db250ZW50ID0gdGhpcy5ncmlkLmdldFNldHRpbmcoXG4gICAgICBcImVkaXQuY2FuY2VsQnV0dG9uQ29udGVudFwiLFxuICAgICAgXCJjYW5jZWxcIlxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,59 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from "@angular/core";
2
- import { Row } from "../../../lib/data-set/row";
3
- import { LocalDataSource } from "./../../../lib/data-source/local/local.data-source";
4
- import { Grid } from "../../../lib/grid";
5
- import * as i0 from "@angular/core";
6
- export class TbodyCustomComponent {
7
- constructor() {
8
- this.custom = new EventEmitter();
9
- }
10
- onCustom(action) {
11
- this.custom.emit({
12
- action: action.name,
13
- data: this.row.getData(),
14
- source: this.source,
15
- });
16
- }
17
- customActions() {
18
- return this.grid.getSetting("actions.custom");
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TbodyCustomComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- 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: `
22
- @for (action of customActions(); track $index) {
23
- <a
24
- [id]="'row-' + row.index + '_action-' + action.name + '-button'"
25
- href="#"
26
- class="ng2-smart-action ng2-smart-action-custom-custom"
27
- [innerHTML]="action.title"
28
- (click)="$event.stopPropagation(); $event.preventDefault(); onCustom(action)"
29
- ></a>
30
- }
31
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
- }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TbodyCustomComponent, decorators: [{
34
- type: Component,
35
- args: [{
36
- selector: "ng2-st-tbody-custom",
37
- changeDetection: ChangeDetectionStrategy.OnPush,
38
- template: `
39
- @for (action of customActions(); track $index) {
40
- <a
41
- [id]="'row-' + row.index + '_action-' + action.name + '-button'"
42
- href="#"
43
- class="ng2-smart-action ng2-smart-action-custom-custom"
44
- [innerHTML]="action.title"
45
- (click)="$event.stopPropagation(); $event.preventDefault(); onCustom(action)"
46
- ></a>
47
- }
48
- `,
49
- }]
50
- }], propDecorators: { grid: [{
51
- type: Input
52
- }], row: [{
53
- type: Input
54
- }], source: [{
55
- type: Input
56
- }], custom: [{
57
- type: Output
58
- }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nMi1zbWFydC10YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGJvZHkvY2VsbHMvY3VzdG9tLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRXJGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFrQnpDLE1BQU0sT0FBTyxvQkFBb0I7SUFmakM7UUFtQlksV0FBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7S0FhNUM7SUFYQyxRQUFRLENBQUMsTUFBVztRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNmLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUU7WUFDeEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBdUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN0RixDQUFDOytHQWhCVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixrSkFackI7Ozs7Ozs7Ozs7S0FVUDs7NEZBRVEsb0JBQW9CO2tCQWZoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7S0FVUDtpQkFDSjs4QkFFVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBSb3cgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2RhdGEtc2V0L3Jvd1wiO1xuaW1wb3J0IHsgTG9jYWxEYXRhU291cmNlIH0gZnJvbSBcIi4vLi4vLi4vLi4vbGliL2RhdGEtc291cmNlL2xvY2FsL2xvY2FsLmRhdGEtc291cmNlXCI7XG5cbmltcG9ydCB7IEdyaWQgfSBmcm9tIFwiLi4vLi4vLi4vbGliL2dyaWRcIjtcbmltcG9ydCB7IFNtYXJ0VGFibGVDdXN0b21BY3Rpb24gfSBmcm9tIFwiLi4vLi4vLi4vbGliL2ludGVyZmFjZXMvc21hcnQtdGFibGUubW9kZWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJuZzItc3QtdGJvZHktY3VzdG9tXCIsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBmb3IgKGFjdGlvbiBvZiBjdXN0b21BY3Rpb25zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGFcbiAgICAgICAgW2lkXT1cIidyb3ctJyArIHJvdy5pbmRleCArICdfYWN0aW9uLScgKyBhY3Rpb24ubmFtZSArICctYnV0dG9uJ1wiXG4gICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgY2xhc3M9XCJuZzItc21hcnQtYWN0aW9uIG5nMi1zbWFydC1hY3Rpb24tY3VzdG9tLWN1c3RvbVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiYWN0aW9uLnRpdGxlXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IG9uQ3VzdG9tKGFjdGlvbilcIlxuICAgICAgPjwvYT5cbiAgICB9XG4gICAgYCxcbn0pXG5leHBvcnQgY2xhc3MgVGJvZHlDdXN0b21Db21wb25lbnQge1xuICBASW5wdXQoKSBncmlkITogR3JpZDtcbiAgQElucHV0KCkgcm93ITogUm93O1xuICBASW5wdXQoKSBzb3VyY2UhOiBMb2NhbERhdGFTb3VyY2U7XG4gIEBPdXRwdXQoKSBjdXN0b20gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBvbkN1c3RvbShhY3Rpb246IGFueSkge1xuICAgIHRoaXMuY3VzdG9tLmVtaXQoe1xuICAgICAgYWN0aW9uOiBhY3Rpb24ubmFtZSxcbiAgICAgIGRhdGE6IHRoaXMucm93LmdldERhdGEoKSxcbiAgICAgIHNvdXJjZTogdGhpcy5zb3VyY2UsXG4gICAgfSk7XG4gIH1cblxuICBjdXN0b21BY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmdyaWQuZ2V0U2V0dGluZzxTbWFydFRhYmxlQ3VzdG9tQWN0aW9uW10gfCB1bmRlZmluZWQ+KFwiYWN0aW9ucy5jdXN0b21cIik7XG4gIH1cbn1cbiJdfQ==