@tots/table 15.0.49 → 15.0.51

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 (46) hide show
  1. package/{esm2022 → esm2020}/lib/columns/balance-currency-column/balance-currency-column.component.mjs +4 -4
  2. package/{esm2022 → esm2020}/lib/columns/balance-currency-icon-column/balance-currency-icon-column.component.mjs +4 -4
  3. package/{esm2022 → esm2020}/lib/columns/base-print-column/base-print-column.component.mjs +4 -4
  4. package/{esm2022 → esm2020}/lib/columns/boolean-column/boolean-column.component.mjs +4 -4
  5. package/{esm2022 → esm2020}/lib/columns/checkbox-column/checkbox-column.component.mjs +4 -4
  6. package/{esm2022 → esm2020}/lib/columns/currency-column/currency-column.component.mjs +4 -4
  7. package/{esm2022 → esm2020}/lib/columns/icon-button-column/icon-button-column.component.mjs +4 -4
  8. package/esm2020/lib/columns/link-column/link-column.component.mjs +18 -0
  9. package/{esm2022 → esm2020}/lib/columns/more-menu-column/more-menu-column.component.mjs +4 -4
  10. package/{esm2022 → esm2020}/lib/columns/option-column/option-column.component.mjs +4 -4
  11. package/{esm2022 → esm2020}/lib/columns/status-column/status-column.component.mjs +4 -4
  12. package/{esm2022 → esm2020}/lib/columns/status-icon-column/status-icon-column.component.mjs +4 -4
  13. package/{esm2022 → esm2020}/lib/columns/string-column/string-column.component.mjs +4 -4
  14. package/{esm2022 → esm2020}/lib/columns/tots-base-column.component.mjs +4 -4
  15. package/{esm2022 → esm2020}/lib/columns/two-string-column/two-string-column.component.mjs +4 -4
  16. package/{esm2022 → esm2020}/lib/columns/user-column/user-column.component.mjs +4 -4
  17. package/{esm2022 → esm2020}/lib/components/loading-animation-renderer/loading-animation-renderer.component.mjs +4 -4
  18. package/{esm2022 → esm2020}/lib/components/tots-table/tots-table.component.mjs +4 -4
  19. package/{esm2022 → esm2020}/lib/components/tots-table-api/tots-table-api.component.mjs +4 -4
  20. package/{esm2022 → esm2020}/lib/components/tots-table-local/tots-table-local.component.mjs +4 -4
  21. package/{esm2022 → esm2020}/lib/entities/tots-table-default-config.mjs +4 -4
  22. package/esm2020/lib/table.module.mjs +132 -0
  23. package/esm2020/public-api.mjs +45 -0
  24. package/fesm2015/tots-table.mjs +836 -0
  25. package/fesm2015/tots-table.mjs.map +1 -0
  26. package/{fesm2022 → fesm2020}/tots-table.mjs +123 -111
  27. package/fesm2020/tots-table.mjs.map +1 -0
  28. package/lib/columns/base-print-column/base-print-column.component.d.ts +1 -1
  29. package/lib/columns/link-column/link-column.component.d.ts +10 -0
  30. package/lib/columns/tots-base-column.component.d.ts +1 -1
  31. package/lib/components/tots-table/tots-table.component.d.ts +1 -1
  32. package/lib/components/tots-table-api/tots-table-api.component.d.ts +1 -1
  33. package/lib/components/tots-table-local/tots-table-local.component.d.ts +1 -1
  34. package/lib/table.module.d.ts +11 -10
  35. package/package.json +11 -5
  36. package/public-api.d.ts +1 -0
  37. package/esm2022/lib/table.module.mjs +0 -129
  38. package/esm2022/public-api.mjs +0 -44
  39. package/fesm2022/tots-table.mjs.map +0 -1
  40. /package/{esm2022 → esm2020}/lib/entities/tots-action-table.mjs +0 -0
  41. /package/{esm2022 → esm2020}/lib/entities/tots-column.mjs +0 -0
  42. /package/{esm2022 → esm2020}/lib/entities/tots-table-api-config.mjs +0 -0
  43. /package/{esm2022 → esm2020}/lib/entities/tots-table-config.mjs +0 -0
  44. /package/{esm2022 → esm2020}/lib/entities/tots-table-local-config.mjs +0 -0
  45. /package/{esm2022 → esm2020}/lib/helpers/tots-table-helper.mjs +0 -0
  46. /package/{esm2022 → esm2020}/tots-table.mjs +0 -0
@@ -0,0 +1,836 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, Injectable, Component, Input, ViewContainerRef, Inject, ViewChild, EventEmitter, Output, NgModule } from '@angular/core';
3
+ import { TotsQuery } from '@tots/core';
4
+ import * as i1 from '@angular/common';
5
+ import { CommonModule } from '@angular/common';
6
+ import * as i2 from '@angular/material/icon';
7
+ import { MatIconModule } from '@angular/material/icon';
8
+ import * as i3 from '@angular/material/button';
9
+ import { MatButtonModule } from '@angular/material/button';
10
+ import * as i4 from '@angular/material/menu';
11
+ import { MatMenuModule } from '@angular/material/menu';
12
+ import * as i1$1 from '@angular/material/checkbox';
13
+ import { MatCheckboxModule } from '@angular/material/checkbox';
14
+ import { Subject, tap } from 'rxjs';
15
+ import * as i3$1 from '@angular/material/table';
16
+ import { MatTableModule } from '@angular/material/table';
17
+ import * as i4$1 from '@angular/material/paginator';
18
+ import { MatPaginatorModule } from '@angular/material/paginator';
19
+ import * as i5 from '@angular/material/progress-bar';
20
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
21
+ import { MatProgressSpinner, MatProgressSpinnerModule } from '@angular/material/progress-spinner';
22
+
23
+ class TotsColumn {
24
+ constructor() {
25
+ this.key = '';
26
+ this.title = '';
27
+ this.is_show = true;
28
+ this.hasOrder = false;
29
+ }
30
+ }
31
+
32
+ class TotsTableConfig {
33
+ constructor() {
34
+ this.id = '';
35
+ this.columns = [];
36
+ this.classes = '';
37
+ }
38
+ }
39
+
40
+ const TOTS_TABLE_DEFAULT_CONFIG = new InjectionToken('tots_table_default_config');
41
+ class TotsTableDefaultConfig {
42
+ }
43
+ TotsTableDefaultConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableDefaultConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
44
+ TotsTableDefaultConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableDefaultConfig });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableDefaultConfig, decorators: [{
46
+ type: Injectable
47
+ }] });
48
+
49
+ class TotsActionTable {
50
+ constructor() {
51
+ this.key = '';
52
+ }
53
+ }
54
+
55
+ class TotsTableApiConfig {
56
+ constructor() {
57
+ this.id = '';
58
+ this.columns = [];
59
+ this.query = new TotsQuery();
60
+ this.classes = '';
61
+ }
62
+ }
63
+
64
+ class TotsTableLocalConfig extends TotsTableConfig {
65
+ constructor() {
66
+ super(...arguments);
67
+ this.searchKeys = [];
68
+ }
69
+ }
70
+
71
+ class TotsTableHelper {
72
+ /**
73
+ * Obtiene el valor de un objeto a traves de la KEY
74
+ * @param item
75
+ * @param key
76
+ * @returns
77
+ */
78
+ static getItemValueByKey(item, key) {
79
+ if (key == undefined || item == undefined) {
80
+ return '';
81
+ }
82
+ if (typeof key == 'string' && item[key] != undefined) {
83
+ return item[key];
84
+ }
85
+ let valueFinal = item;
86
+ for (const keyObj of key) {
87
+ if (valueFinal[keyObj] == undefined) {
88
+ return '';
89
+ }
90
+ valueFinal = valueFinal[keyObj];
91
+ }
92
+ return valueFinal;
93
+ }
94
+ }
95
+
96
+ class TotsBaseColumnComponent {
97
+ getItemValue() {
98
+ return TotsTableHelper.getItemValueByKey(this.item, this.column.field_key);
99
+ }
100
+ }
101
+ TotsBaseColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsBaseColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
102
+ TotsBaseColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: TotsBaseColumnComponent, selector: "tots-base-column", inputs: { column: "column", item: "item", onAction: "onAction", index: "index" }, ngImport: i0, template: '', isInline: true });
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsBaseColumnComponent, decorators: [{
104
+ type: Component,
105
+ args: [{
106
+ selector: 'tots-base-column',
107
+ template: ''
108
+ }]
109
+ }], propDecorators: { column: [{
110
+ type: Input
111
+ }], item: [{
112
+ type: Input
113
+ }], onAction: [{
114
+ type: Input
115
+ }], index: [{
116
+ type: Input
117
+ }] } });
118
+
119
+ class StringColumnComponent extends TotsBaseColumnComponent {
120
+ getItemValue() {
121
+ let value = TotsTableHelper.getItemValueByKey(this.item, this.column.field_key);
122
+ if (this.column.extra && this.column.extra.cutSeparator) {
123
+ return value.split(this.column.extra.cutSeparator)[0];
124
+ }
125
+ return value;
126
+ }
127
+ get prepend() {
128
+ var _a;
129
+ return (_a = this.column.extra) === null || _a === void 0 ? void 0 : _a.prepend;
130
+ }
131
+ }
132
+ StringColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: StringColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
133
+ StringColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: StringColumnComponent, selector: "tots-string-column", usesInheritance: true, ngImport: i0, template: "<span class=\"prefix\" *ngIf=\"prepend\"> {{ prepend }} </span>\n{{getItemValue()}}", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: StringColumnComponent, decorators: [{
135
+ type: Component,
136
+ args: [{ selector: 'tots-string-column', template: "<span class=\"prefix\" *ngIf=\"prepend\"> {{ prepend }} </span>\n{{getItemValue()}}" }]
137
+ }] });
138
+
139
+ class MoreMenuColumnComponent extends TotsBaseColumnComponent {
140
+ clickButton(itemAction, $event) {
141
+ this.onAction.next({ key: itemAction.key, item: this.item });
142
+ $event.preventDefault();
143
+ return false;
144
+ }
145
+ }
146
+ MoreMenuColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: MoreMenuColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
147
+ MoreMenuColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: MoreMenuColumnComponent, selector: "tots-more-menu-column", usesInheritance: true, ngImport: i0, template: "<button mat-icon-button [matMenuTriggerFor]=\"actions\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\n<mat-menu #actions=\"matMenu\">\n <button mat-menu-item *ngFor=\"let button of column.extra?.actions\" (click)=\"clickButton(button, $event)\" class=\"{{button.class}}\">\n <mat-icon *ngIf=\"button.icon\">{{ button.icon }}</mat-icon> {{ button.title }}\n </button>\n</mat-menu>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }] });
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: MoreMenuColumnComponent, decorators: [{
149
+ type: Component,
150
+ args: [{ selector: 'tots-more-menu-column', template: "<button mat-icon-button [matMenuTriggerFor]=\"actions\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\n<mat-menu #actions=\"matMenu\">\n <button mat-menu-item *ngFor=\"let button of column.extra?.actions\" (click)=\"clickButton(button, $event)\" class=\"{{button.class}}\">\n <mat-icon *ngIf=\"button.icon\">{{ button.icon }}</mat-icon> {{ button.title }}\n </button>\n</mat-menu>" }]
151
+ }] });
152
+
153
+ class BooleanColumnComponent extends TotsBaseColumnComponent {
154
+ }
155
+ BooleanColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BooleanColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
156
+ BooleanColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: BooleanColumnComponent, selector: "tots-boolean-column", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"getItemValue() == true||getItemValue() == 1; else textNo\">YES</ng-container>\n<ng-template #textNo>NO</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BooleanColumnComponent, decorators: [{
158
+ type: Component,
159
+ args: [{ selector: 'tots-boolean-column', template: "<ng-container *ngIf=\"getItemValue() == true||getItemValue() == 1; else textNo\">YES</ng-container>\n<ng-template #textNo>NO</ng-template>" }]
160
+ }] });
161
+
162
+ class TwoStringColumnComponent extends TotsBaseColumnComponent {
163
+ getSubtitleValue() {
164
+ return TotsTableHelper.getItemValueByKey(this.item, this.column.extra.field_subtitle_key);
165
+ }
166
+ }
167
+ TwoStringColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TwoStringColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
168
+ TwoStringColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: TwoStringColumnComponent, selector: "tots-two-string-column", usesInheritance: true, ngImport: i0, template: "<div class=\"first-line\"><strong>{{getItemValue()}}</strong></div>\n<div class=\"second-line\">{{getSubtitleValue()}}</div>", styles: [""] });
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TwoStringColumnComponent, decorators: [{
170
+ type: Component,
171
+ args: [{ selector: 'tots-two-string-column', template: "<div class=\"first-line\"><strong>{{getItemValue()}}</strong></div>\n<div class=\"second-line\">{{getSubtitleValue()}}</div>" }]
172
+ }] });
173
+
174
+ class IconButtonColumnComponent extends TotsBaseColumnComponent {
175
+ clickButton($event) {
176
+ this.onAction.next({ key: this.column.extra.action, item: this.item });
177
+ $event.stopPropagation();
178
+ return false;
179
+ }
180
+ getIconName() {
181
+ return this.column.extra.icon;
182
+ }
183
+ getButtonColor() {
184
+ return this.column.extra.matColor;
185
+ }
186
+ getClasses() {
187
+ return this.column.extra.classes;
188
+ }
189
+ }
190
+ IconButtonColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: IconButtonColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
191
+ IconButtonColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: IconButtonColumnComponent, selector: "tots-icon-button-column", usesInheritance: true, ngImport: i0, template: "<button mat-icon-button [color]=\"getButtonColor()\" [class]=\"getClasses()\" (click)=\"clickButton($event)\">\n <mat-icon>{{getIconName()}}</mat-icon>\n</button>", styles: [""], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: IconButtonColumnComponent, decorators: [{
193
+ type: Component,
194
+ args: [{ selector: 'tots-icon-button-column', template: "<button mat-icon-button [color]=\"getButtonColor()\" [class]=\"getClasses()\" (click)=\"clickButton($event)\">\n <mat-icon>{{getIconName()}}</mat-icon>\n</button>" }]
195
+ }] });
196
+
197
+ class CheckboxColumnComponent extends TotsBaseColumnComponent {
198
+ onChange(event) {
199
+ let key = 'select-item';
200
+ if (!event.checked) {
201
+ key = 'unselect-item';
202
+ }
203
+ this.onAction.next({ key: key, item: this.item });
204
+ }
205
+ }
206
+ CheckboxColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: CheckboxColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
207
+ CheckboxColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: CheckboxColumnComponent, selector: "tots-checkbox-column", usesInheritance: true, ngImport: i0, template: "<div class=\"tots-checkbox-column\">\n <mat-checkbox (change)=\"onChange($event)\" (click)=\"$event.stopPropagation();\"></mat-checkbox>\n</div>", styles: [""], dependencies: [{ kind: "component", type: i1$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: CheckboxColumnComponent, decorators: [{
209
+ type: Component,
210
+ args: [{ selector: 'tots-checkbox-column', template: "<div class=\"tots-checkbox-column\">\n <mat-checkbox (change)=\"onChange($event)\" (click)=\"$event.stopPropagation();\"></mat-checkbox>\n</div>" }]
211
+ }] });
212
+
213
+ class OptionColumnComponent extends TotsBaseColumnComponent {
214
+ getItemValue() {
215
+ let value = TotsTableHelper.getItemValueByKey(this.item, this.column.field_key);
216
+ for (const item of this.column.extra.options) {
217
+ if (item[this.column.extra.field_rel_key] == value) {
218
+ return item[this.column.extra.field_print_key];
219
+ }
220
+ }
221
+ return '';
222
+ }
223
+ }
224
+ OptionColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: OptionColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
225
+ OptionColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: OptionColumnComponent, selector: "tots-option-column", usesInheritance: true, ngImport: i0, template: "{{getItemValue()}}", styles: [""] });
226
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: OptionColumnComponent, decorators: [{
227
+ type: Component,
228
+ args: [{ selector: 'tots-option-column', template: "{{getItemValue()}}" }]
229
+ }] });
230
+
231
+ class UserColumnComponent extends TotsBaseColumnComponent {
232
+ getFirstname() {
233
+ var _a;
234
+ if ((_a = this.column.extra) === null || _a === void 0 ? void 0 : _a.field_firstname_key) {
235
+ return TotsTableHelper.getItemValueByKey(this.item, this.column.extra.field_firstname_key);
236
+ }
237
+ return '';
238
+ }
239
+ getLastname() {
240
+ var _a;
241
+ if ((_a = this.column.extra) === null || _a === void 0 ? void 0 : _a.field_lastname_key) {
242
+ return TotsTableHelper.getItemValueByKey(this.item, this.column.extra.field_lastname_key);
243
+ }
244
+ return '';
245
+ }
246
+ getFullname() {
247
+ return this.getFirstname() + ' ' + this.getLastname();
248
+ }
249
+ getPhoto() {
250
+ var _a;
251
+ if ((_a = this.column.extra) === null || _a === void 0 ? void 0 : _a.field_photo_key) {
252
+ return TotsTableHelper.getItemValueByKey(this.item, this.column.extra.field_photo_key);
253
+ }
254
+ return '';
255
+ }
256
+ getSubtitle() {
257
+ var _a;
258
+ if ((_a = this.column.extra) === null || _a === void 0 ? void 0 : _a.field_subtitle_key) {
259
+ return TotsTableHelper.getItemValueByKey(this.item, this.column.extra.field_subtitle_key);
260
+ }
261
+ return '';
262
+ }
263
+ isOnline() {
264
+ var _a;
265
+ if ((_a = this.column.extra) === null || _a === void 0 ? void 0 : _a.field_online_key) {
266
+ return TotsTableHelper.getItemValueByKey(this.item, this.column.extra.field_online_key);
267
+ }
268
+ return false;
269
+ }
270
+ }
271
+ UserColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: UserColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
272
+ UserColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: UserColumnComponent, selector: "tots-user-column", usesInheritance: true, ngImport: i0, template: "<div class=\"user-avatar-component\">\n <div class=\"avatar\" *ngIf=\"getPhoto() != ''\">\n <img mat-card-avatar [src]=\"getPhoto()\" alt=\"{{ getFullname() }}\" class=\"cover-image\" onerror=\"this.src='/assets/img/user-avatar-empty.svg';\">\n </div>\n <div class=\"texts\">\n <div class=\"user\"> {{ getFullname() }} </div>\n <div class=\"body-2\" *ngIf=\"getSubtitle() != ''\"> {{ getSubtitle() }} </div>\n </div>\n <div class=\"check\" *ngIf=\"column.extra?.field_is_online && isOnline()\"><mat-icon>check</mat-icon></div>\n</div>", styles: [".user-avatar-component{display:flex;align-items:center;position:relative}.user-avatar-component .avatar{width:40px;min-width:40px;height:40px;min-height:40px;border-radius:40px;overflow:hidden;margin-right:16px}.user-avatar-component .avatar img{width:40px;min-width:40px;height:40px;min-height:40px}.user-avatar-component .texts .user{font-size:1.1em}.user-avatar-component .texts .body-2{color:#636363;font-size:.9em}.user-avatar-component .check{position:absolute;border:2px solid white;border-radius:200px;top:0;left:0;color:#24b524;background-color:#d7ffa3;width:1em;height:1em;display:flex;align-items:center;justify-content:center}.user-avatar-component .check mat-icon{line-height:1em;font-size:1em;width:1em;height:1em}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: UserColumnComponent, decorators: [{
274
+ type: Component,
275
+ args: [{ selector: 'tots-user-column', template: "<div class=\"user-avatar-component\">\n <div class=\"avatar\" *ngIf=\"getPhoto() != ''\">\n <img mat-card-avatar [src]=\"getPhoto()\" alt=\"{{ getFullname() }}\" class=\"cover-image\" onerror=\"this.src='/assets/img/user-avatar-empty.svg';\">\n </div>\n <div class=\"texts\">\n <div class=\"user\"> {{ getFullname() }} </div>\n <div class=\"body-2\" *ngIf=\"getSubtitle() != ''\"> {{ getSubtitle() }} </div>\n </div>\n <div class=\"check\" *ngIf=\"column.extra?.field_is_online && isOnline()\"><mat-icon>check</mat-icon></div>\n</div>", styles: [".user-avatar-component{display:flex;align-items:center;position:relative}.user-avatar-component .avatar{width:40px;min-width:40px;height:40px;min-height:40px;border-radius:40px;overflow:hidden;margin-right:16px}.user-avatar-component .avatar img{width:40px;min-width:40px;height:40px;min-height:40px}.user-avatar-component .texts .user{font-size:1.1em}.user-avatar-component .texts .body-2{color:#636363;font-size:.9em}.user-avatar-component .check{position:absolute;border:2px solid white;border-radius:200px;top:0;left:0;color:#24b524;background-color:#d7ffa3;width:1em;height:1em;display:flex;align-items:center;justify-content:center}.user-avatar-component .check mat-icon{line-height:1em;font-size:1em;width:1em;height:1em}\n"] }]
276
+ }] });
277
+
278
+ class CurrencyColumnComponent extends TotsBaseColumnComponent {
279
+ }
280
+ CurrencyColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: CurrencyColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
281
+ CurrencyColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: CurrencyColumnComponent, selector: "tots-currency-column", usesInheritance: true, ngImport: i0, template: "<span [ngClass]=\"{'tots-currency-column-positive': getItemValue() > 0, 'tots-currency-column-negative': getItemValue() < 0}\">{{getItemValue()|currency}}</span>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.CurrencyPipe, name: "currency" }] });
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: CurrencyColumnComponent, decorators: [{
283
+ type: Component,
284
+ args: [{ selector: 'tots-currency-column', template: "<span [ngClass]=\"{'tots-currency-column-positive': getItemValue() > 0, 'tots-currency-column-negative': getItemValue() < 0}\">{{getItemValue()|currency}}</span>" }]
285
+ }] });
286
+
287
+ class StatusColumnComponent extends OptionColumnComponent {
288
+ getBackgroundColor() {
289
+ let value = TotsTableHelper.getItemValueByKey(this.item, this.column.field_key);
290
+ for (const item of this.column.extra.options) {
291
+ if (item[this.column.extra.field_rel_key] == value && item['background_color'] != undefined) {
292
+ return item['background_color'];
293
+ }
294
+ }
295
+ return '';
296
+ }
297
+ getFontColor() {
298
+ let value = TotsTableHelper.getItemValueByKey(this.item, this.column.field_key);
299
+ for (const item of this.column.extra.options) {
300
+ if (item[this.column.extra.field_rel_key] == value && item['font_color'] != undefined) {
301
+ return item['font_color'];
302
+ }
303
+ }
304
+ return '';
305
+ }
306
+ }
307
+ StatusColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: StatusColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
308
+ StatusColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: StatusColumnComponent, selector: "tots-status-column", usesInheritance: true, ngImport: i0, template: "<span class=\"tots-status-column\" [ngStyle]=\"{'background-color': getBackgroundColor(), 'color': getFontColor()}\">{{getItemValue()}}</span>", styles: [".tots-status-column{display:inline-block;padding:3px 10px;background-color:#e7e7e7;color:#08081699;font-size:x-small;font-weight:700;text-transform:uppercase}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
309
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: StatusColumnComponent, decorators: [{
310
+ type: Component,
311
+ args: [{ selector: 'tots-status-column', template: "<span class=\"tots-status-column\" [ngStyle]=\"{'background-color': getBackgroundColor(), 'color': getFontColor()}\">{{getItemValue()}}</span>", styles: [".tots-status-column{display:inline-block;padding:3px 10px;background-color:#e7e7e7;color:#08081699;font-size:x-small;font-weight:700;text-transform:uppercase}\n"] }]
312
+ }] });
313
+
314
+ class BalanceCurrencyColumnComponent extends TotsBaseColumnComponent {
315
+ getBalance() {
316
+ return this.getDebit() - this.getCredit();
317
+ }
318
+ getDebit() {
319
+ return TotsTableHelper.getItemValueByKey(this.item, this.column.extra.field_key_debit);
320
+ }
321
+ getCredit() {
322
+ return TotsTableHelper.getItemValueByKey(this.item, this.column.extra.field_key_credit);
323
+ }
324
+ }
325
+ BalanceCurrencyColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BalanceCurrencyColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
326
+ BalanceCurrencyColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: BalanceCurrencyColumnComponent, selector: "tots-balance-currency-column", usesInheritance: true, ngImport: i0, template: "<span [ngClass]=\"{'tots-balance-column-positive': getBalance() > 0, 'tots-balance-column-negative': getBalance() < 0}\">{{getBalance()|currency}}</span>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.CurrencyPipe, name: "currency" }] });
327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BalanceCurrencyColumnComponent, decorators: [{
328
+ type: Component,
329
+ args: [{ selector: 'tots-balance-currency-column', template: "<span [ngClass]=\"{'tots-balance-column-positive': getBalance() > 0, 'tots-balance-column-negative': getBalance() < 0}\">{{getBalance()|currency}}</span>" }]
330
+ }] });
331
+
332
+ class StatusIconColumnComponent extends OptionColumnComponent {
333
+ getFontColor() {
334
+ let value = TotsTableHelper.getItemValueByKey(this.item, this.column.field_key);
335
+ for (const item of this.column.extra.options) {
336
+ if (item[this.column.extra.field_rel_key] == value && item['font_color'] != undefined) {
337
+ return item['font_color'];
338
+ }
339
+ }
340
+ return '';
341
+ }
342
+ }
343
+ StatusIconColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: StatusIconColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
344
+ StatusIconColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: StatusIconColumnComponent, selector: "tots-status-icon-column", usesInheritance: true, ngImport: i0, template: "<span class=\"tots-status-icon-column\" [ngStyle]=\"{'color': getFontColor()}\"><mat-icon>{{getItemValue()}}</mat-icon></span>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
345
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: StatusIconColumnComponent, decorators: [{
346
+ type: Component,
347
+ args: [{ selector: 'tots-status-icon-column', template: "<span class=\"tots-status-icon-column\" [ngStyle]=\"{'color': getFontColor()}\"><mat-icon>{{getItemValue()}}</mat-icon></span>" }]
348
+ }] });
349
+
350
+ class BalanceCurrencyIconColumnComponent extends BalanceCurrencyColumnComponent {
351
+ getIconPositive() {
352
+ return this.column.extra.icon_positive;
353
+ }
354
+ getIconNegative() {
355
+ return this.column.extra.icon_negative;
356
+ }
357
+ getIconNeutral() {
358
+ return this.column.extra.icon_neutral;
359
+ }
360
+ }
361
+ BalanceCurrencyIconColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BalanceCurrencyIconColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
362
+ BalanceCurrencyIconColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: BalanceCurrencyIconColumnComponent, selector: "tots-balance-currency-icon-column", usesInheritance: true, ngImport: i0, template: "<span [ngClass]=\"{'tots-balance-column-positive': getBalance() > 0, 'tots-balance-column-negative': getBalance() < 0}\">\n <mat-icon *ngIf=\"getBalance() > 0\">{{getIconPositive()}}</mat-icon>\n <mat-icon *ngIf=\"getBalance() < 0\">{{getIconNegative()}}</mat-icon>\n <mat-icon *ngIf=\"getBalance() == 0\">{{getIconNeutral()}}</mat-icon>\n</span>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BalanceCurrencyIconColumnComponent, decorators: [{
364
+ type: Component,
365
+ args: [{ selector: 'tots-balance-currency-icon-column', template: "<span [ngClass]=\"{'tots-balance-column-positive': getBalance() > 0, 'tots-balance-column-negative': getBalance() < 0}\">\n <mat-icon *ngIf=\"getBalance() > 0\">{{getIconPositive()}}</mat-icon>\n <mat-icon *ngIf=\"getBalance() < 0\">{{getIconNegative()}}</mat-icon>\n <mat-icon *ngIf=\"getBalance() == 0\">{{getIconNeutral()}}</mat-icon>\n</span>" }]
366
+ }] });
367
+
368
+ class LinkColumnComponent extends TotsBaseColumnComponent {
369
+ ngOnInit() {
370
+ var _a, _b;
371
+ this.linkCaption = ((_a = this.column.extra) === null || _a === void 0 ? void 0 : _a.caption) || "Open in new tab";
372
+ this.target = ((_b = this.column.extra) === null || _b === void 0 ? void 0 : _b.target) || "_blank";
373
+ }
374
+ }
375
+ LinkColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: LinkColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
376
+ LinkColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: LinkColumnComponent, selector: "tots-link-column", usesInheritance: true, ngImport: i0, template: "<div>\n <a *ngIf=\"getItemValue()\" [href]=\"getItemValue()\" [target]=\"target\">\n {{ linkCaption }}\n <mat-icon *ngIf=\"target == '_blank'\">open_in_new</mat-icon>\n </a>\n</div>", styles: ["a{display:flex;gap:6px;align-items:center;text-decoration:none;mat-icon {font-size: 14px; line-height: 14px; width: 14px; height: 14px;}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
377
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: LinkColumnComponent, decorators: [{
378
+ type: Component,
379
+ args: [{ selector: 'tots-link-column', template: "<div>\n <a *ngIf=\"getItemValue()\" [href]=\"getItemValue()\" [target]=\"target\">\n {{ linkCaption }}\n <mat-icon *ngIf=\"target == '_blank'\">open_in_new</mat-icon>\n </a>\n</div>", styles: ["a{display:flex;gap:6px;align-items:center;text-decoration:none;mat-icon {font-size: 14px; line-height: 14px; width: 14px; height: 14px;}}\n"] }]
380
+ }] });
381
+
382
+ class BasePrintColumnComponent {
383
+ constructor(viewContainerRef) {
384
+ this.viewContainerRef = viewContainerRef;
385
+ }
386
+ ngOnInit() {
387
+ const view = this.viewContainerRef.createComponent(this.column.component);
388
+ view.instance.column = this.column;
389
+ view.instance.item = this.item;
390
+ view.instance.onAction = this.onAction;
391
+ view.instance.index = this.index;
392
+ }
393
+ }
394
+ BasePrintColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BasePrintColumnComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
395
+ BasePrintColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: BasePrintColumnComponent, selector: "tots-base-print-column", inputs: { column: "column", item: "item", onAction: "onAction", index: "index" }, ngImport: i0, template: "<div #contentColumn></div>", styles: [""] });
396
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BasePrintColumnComponent, decorators: [{
397
+ type: Component,
398
+ args: [{ selector: 'tots-base-print-column', template: "<div #contentColumn></div>" }]
399
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { column: [{
400
+ type: Input
401
+ }], item: [{
402
+ type: Input
403
+ }], onAction: [{
404
+ type: Input
405
+ }], index: [{
406
+ type: Input
407
+ }] } });
408
+
409
+ class LoadingAnimationRendererComponent {
410
+ //#region Setup
411
+ constructor(totsTableDefaultConfig, viewContainerRef) {
412
+ this.totsTableDefaultConfig = totsTableDefaultConfig;
413
+ this.viewContainerRef = viewContainerRef;
414
+ }
415
+ ngOnInit() {
416
+ this.setLoader();
417
+ }
418
+ ngOnDestroy() {
419
+ var _a;
420
+ (_a = this.loadingComponentContainer) === null || _a === void 0 ? void 0 : _a.clear();
421
+ }
422
+ setLoader() {
423
+ if (this.totsTableDefaultConfig.loadingComponent) {
424
+ this.loadingComponent = this.viewContainerRef.createComponent(this.totsTableDefaultConfig.loadingComponent);
425
+ }
426
+ else {
427
+ this.loadingComponent = this.viewContainerRef.createComponent(MatProgressSpinner);
428
+ this.loadingComponent.instance.diameter = 50;
429
+ this.loadingComponent.instance.mode = "indeterminate";
430
+ }
431
+ }
432
+ }
433
+ LoadingAnimationRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: LoadingAnimationRendererComponent, deps: [{ token: TOTS_TABLE_DEFAULT_CONFIG }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
434
+ LoadingAnimationRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: LoadingAnimationRendererComponent, selector: "tots-loading-animation-renderer", viewQueries: [{ propertyName: "loadingComponentContainer", first: true, predicate: ["loadingComponentContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<ng-container #loadingComponentContainer></ng-container>", styles: [""] });
435
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: LoadingAnimationRendererComponent, decorators: [{
436
+ type: Component,
437
+ args: [{ selector: 'tots-loading-animation-renderer', template: "<ng-container #loadingComponentContainer></ng-container>" }]
438
+ }], ctorParameters: function () {
439
+ return [{ type: TotsTableDefaultConfig, decorators: [{
440
+ type: Inject,
441
+ args: [TOTS_TABLE_DEFAULT_CONFIG]
442
+ }] }, { type: i0.ViewContainerRef }];
443
+ }, propDecorators: { loadingComponentContainer: [{
444
+ type: ViewChild,
445
+ args: ['loadingComponentContainer', { read: ViewContainerRef }]
446
+ }] } });
447
+
448
+ class TotsTableComponent {
449
+ constructor(totsTableDefaultConfig, changeDectetor) {
450
+ this.totsTableDefaultConfig = totsTableDefaultConfig;
451
+ this.changeDectetor = changeDectetor;
452
+ this.config = new TotsTableConfig();
453
+ this.pageIndex = 0;
454
+ this.pageSize = 50;
455
+ this.hasPagination = true;
456
+ this.onAction = new EventEmitter();
457
+ this.privateActions = new Subject();
458
+ this.isLoading = true;
459
+ this.firstLoad = true;
460
+ this.displayColumns = [];
461
+ this.messageNotFound = this.totsTableDefaultConfig.messageNotFound || "No results found, please try with other search terms";
462
+ }
463
+ ngOnInit() {
464
+ this.loadConfig();
465
+ this.loadItems();
466
+ }
467
+ onClickOrder(column) {
468
+ if (!column.hasOrder) {
469
+ return;
470
+ }
471
+ let orderColumn = column.order;
472
+ this.config.columns.forEach(c => c.order = undefined);
473
+ column.order = orderColumn == 'asc' ? 'desc' : 'asc';
474
+ this.onAction.emit({ key: 'click-order', item: column });
475
+ }
476
+ onClickRow(item) {
477
+ this.onAction.emit({ key: 'click-row', item: item });
478
+ }
479
+ onPageChange(event) {
480
+ this.onAction.emit({ key: 'page-change', item: event });
481
+ }
482
+ loadItems() {
483
+ var _a;
484
+ this.isLoading = true;
485
+ return (_a = this.config.obs) === null || _a === void 0 ? void 0 : _a.pipe(tap(res => this.dataItems = res)).pipe(tap(res => this.onAction.emit({ key: 'loaded-items', item: undefined }))).subscribe(() => this.stopLoading());
486
+ }
487
+ stopLoading() {
488
+ this.isLoading = false;
489
+ this.firstLoad = false;
490
+ }
491
+ loadConfig() {
492
+ this.loadColumns();
493
+ this.privateActions.subscribe(action => {
494
+ this.onAction.emit(action);
495
+ });
496
+ }
497
+ loadColumns() {
498
+ this.displayColumns = this.config.columns.filter(c => c.is_show || c.is_show == undefined).map(c => c.key);
499
+ }
500
+ getDataItems() {
501
+ return this.dataItems;
502
+ }
503
+ refreshDataItems(newData) {
504
+ this.dataItems = newData;
505
+ }
506
+ detectChanges() {
507
+ this.changeDectetor.detectChanges();
508
+ }
509
+ }
510
+ TotsTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableComponent, deps: [{ token: TOTS_TABLE_DEFAULT_CONFIG }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
511
+ TotsTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: TotsTableComponent, selector: "tots-table", inputs: { config: "config", pageIndex: "pageIndex", pageSize: "pageSize", hasPagination: "hasPagination", messageNotFound: "messageNotFound" }, outputs: { onAction: "onAction" }, ngImport: i0, template: "<div class=\"tots-table-container {{config.classes}}\">\n <table mat-table [dataSource]=\"dataItems != undefined ? dataItems!.data : []\">\n\n <ng-container *ngFor=\"let column of config.columns\" [matColumnDef]=\"column.key\" [stickyEnd]=\"column.extra?.stickyEnd ?? false\">\n <!-- TH-->\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"{'tots-tr-has-order': column.hasOrder}\" (click)=\"onClickOrder(column)\">\n {{ column.title }}\n <mat-icon [ngClass]=\"{'sort_active': column.order == 'asc'}\">arrow_drop_up</mat-icon>\n <mat-icon [ngClass]=\"{'sort_active': column.order == 'desc'}\">arrow_drop_down</mat-icon>\n </th>\n <!-- TD -->\n <td mat-cell *matCellDef=\"let item; let index = index;\" [ngStyle]=\"{'width': column.extra?.width ? column.extra.width : 'auto'}\"><tots-base-print-column [column]=\"column\" [item]=\"item\" [index]=\"index\" [onAction]=\"privateActions\"></tots-base-print-column></td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayColumns;\" (click)=\"onClickRow(row)\" [class]=\"row.classCustom\" [ngClass]=\"{'tots-cell-selected': row.isSelected}\"></tr>\n\n <!-- Row shown when there is no matching data. -->\n <ng-container *ngIf=\"!isLoading\">\n <tr class=\"tots-table-not-data\" *matNoDataRow><td class=\"mat-cell\" [colSpan]=\"config.columns.length\">{{ messageNotFound }}</td></tr>\n </ng-container>\n </table>\n\n <div *ngIf=\"isLoading && firstLoad\" class=\"tots-table-loading\">\n <tots-loading-animation-renderer></tots-loading-animation-renderer>\n </div>\n\n <div class=\"tots-table-bar-loading\">\n <mat-progress-bar *ngIf=\"isLoading && !firstLoad\" [mode]=\"'indeterminate'\"></mat-progress-bar>\n </div>\n\n <!-- Paginator -->\n <mat-paginator *ngIf=\"dataItems && dataItems.data.length > 0 && hasPagination\" [pageIndex]=\"pageIndex-1\" [length]=\"dataItems!.total\" [pageSize]=\"pageSize\" [pageSizeOptions]=\"[5, 10, 25, 50, 100]\" (page)=\"onPageChange($event)\"></mat-paginator>\n</div>\n", styles: [".tots-table-container .mat-mdc-header-cell{position:relative}.tots-table-container .mat-mdc-header-cell mat-icon{display:none}.tots-table-container .tots-tr-has-order{cursor:pointer}.tots-table-container .tots-tr-has-order:hover mat-icon{opacity:.5}.tots-table-container .tots-tr-has-order mat-icon{display:inline;opacity:.3;position:absolute}.tots-table-container .tots-tr-has-order mat-icon:nth-of-type(1){top:12px}.tots-table-container .tots-tr-has-order mat-icon:nth-of-type(2){top:20px}.tots-table-container .tots-tr-has-order .sort_active{opacity:1!important}.tots-table-container .tots-table-loading{display:flex;justify-content:center;text-align:center}.tots-table-container .tots-table-bar-loading{height:4px}.tots-table-container .tots-table-not-data{font-size:large;text-align:center}.tots-table-container .tots-table-not-data td{padding:24px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i3$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i3$1.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: i4$1.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: BasePrintColumnComponent, selector: "tots-base-print-column", inputs: ["column", "item", "onAction", "index"] }, { kind: "component", type: LoadingAnimationRendererComponent, selector: "tots-loading-animation-renderer" }] });
512
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableComponent, decorators: [{
513
+ type: Component,
514
+ args: [{ selector: 'tots-table', template: "<div class=\"tots-table-container {{config.classes}}\">\n <table mat-table [dataSource]=\"dataItems != undefined ? dataItems!.data : []\">\n\n <ng-container *ngFor=\"let column of config.columns\" [matColumnDef]=\"column.key\" [stickyEnd]=\"column.extra?.stickyEnd ?? false\">\n <!-- TH-->\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"{'tots-tr-has-order': column.hasOrder}\" (click)=\"onClickOrder(column)\">\n {{ column.title }}\n <mat-icon [ngClass]=\"{'sort_active': column.order == 'asc'}\">arrow_drop_up</mat-icon>\n <mat-icon [ngClass]=\"{'sort_active': column.order == 'desc'}\">arrow_drop_down</mat-icon>\n </th>\n <!-- TD -->\n <td mat-cell *matCellDef=\"let item; let index = index;\" [ngStyle]=\"{'width': column.extra?.width ? column.extra.width : 'auto'}\"><tots-base-print-column [column]=\"column\" [item]=\"item\" [index]=\"index\" [onAction]=\"privateActions\"></tots-base-print-column></td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayColumns;\" (click)=\"onClickRow(row)\" [class]=\"row.classCustom\" [ngClass]=\"{'tots-cell-selected': row.isSelected}\"></tr>\n\n <!-- Row shown when there is no matching data. -->\n <ng-container *ngIf=\"!isLoading\">\n <tr class=\"tots-table-not-data\" *matNoDataRow><td class=\"mat-cell\" [colSpan]=\"config.columns.length\">{{ messageNotFound }}</td></tr>\n </ng-container>\n </table>\n\n <div *ngIf=\"isLoading && firstLoad\" class=\"tots-table-loading\">\n <tots-loading-animation-renderer></tots-loading-animation-renderer>\n </div>\n\n <div class=\"tots-table-bar-loading\">\n <mat-progress-bar *ngIf=\"isLoading && !firstLoad\" [mode]=\"'indeterminate'\"></mat-progress-bar>\n </div>\n\n <!-- Paginator -->\n <mat-paginator *ngIf=\"dataItems && dataItems.data.length > 0 && hasPagination\" [pageIndex]=\"pageIndex-1\" [length]=\"dataItems!.total\" [pageSize]=\"pageSize\" [pageSizeOptions]=\"[5, 10, 25, 50, 100]\" (page)=\"onPageChange($event)\"></mat-paginator>\n</div>\n", styles: [".tots-table-container .mat-mdc-header-cell{position:relative}.tots-table-container .mat-mdc-header-cell mat-icon{display:none}.tots-table-container .tots-tr-has-order{cursor:pointer}.tots-table-container .tots-tr-has-order:hover mat-icon{opacity:.5}.tots-table-container .tots-tr-has-order mat-icon{display:inline;opacity:.3;position:absolute}.tots-table-container .tots-tr-has-order mat-icon:nth-of-type(1){top:12px}.tots-table-container .tots-tr-has-order mat-icon:nth-of-type(2){top:20px}.tots-table-container .tots-tr-has-order .sort_active{opacity:1!important}.tots-table-container .tots-table-loading{display:flex;justify-content:center;text-align:center}.tots-table-container .tots-table-bar-loading{height:4px}.tots-table-container .tots-table-not-data{font-size:large;text-align:center}.tots-table-container .tots-table-not-data td{padding:24px}\n"] }]
515
+ }], ctorParameters: function () {
516
+ return [{ type: TotsTableDefaultConfig, decorators: [{
517
+ type: Inject,
518
+ args: [TOTS_TABLE_DEFAULT_CONFIG]
519
+ }] }, { type: i0.ChangeDetectorRef }];
520
+ }, propDecorators: { config: [{
521
+ type: Input
522
+ }], pageIndex: [{
523
+ type: Input
524
+ }], pageSize: [{
525
+ type: Input
526
+ }], hasPagination: [{
527
+ type: Input
528
+ }], messageNotFound: [{
529
+ type: Input
530
+ }], onAction: [{
531
+ type: Output
532
+ }] } });
533
+
534
+ class TotsTableApiComponent {
535
+ constructor() {
536
+ this.config = new TotsTableApiConfig();
537
+ this.hasPagination = true;
538
+ this.isPaginationStartIndexInZero = false;
539
+ this.onAction = new EventEmitter();
540
+ this.configTable = new TotsTableConfig();
541
+ }
542
+ ngOnInit() {
543
+ this.loadConfig();
544
+ }
545
+ onTableAction(action) {
546
+ if (action.key == 'page-change') {
547
+ this.config.query.per_page = action.item.pageSize;
548
+ if (this.isPaginationStartIndexInZero) {
549
+ this.config.query.page = action.item.pageIndex;
550
+ }
551
+ else {
552
+ this.config.query.page = action.item.pageIndex + 1;
553
+ }
554
+ this.configTable.obs = this.config.service.list(this.config.query);
555
+ }
556
+ this.onAction.emit(action);
557
+ }
558
+ loadConfig() {
559
+ this.configTable.id = this.config.id;
560
+ this.configTable.columns = this.config.columns;
561
+ this.configTable.obs = this.config.service.list(this.config.query);
562
+ this.configTable.classes = this.config.classes;
563
+ }
564
+ refreshQueryAndLoadItems() {
565
+ this.configTable.obs = this.config.service.list(this.config.query);
566
+ return this.loadItems();
567
+ }
568
+ loadItems() {
569
+ return this.tableComp.loadItems();
570
+ }
571
+ getDataItems() {
572
+ return this.tableComp.getDataItems();
573
+ }
574
+ setObs(obs) {
575
+ this.configTable.obs = obs;
576
+ }
577
+ }
578
+ TotsTableApiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableApiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
579
+ TotsTableApiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: TotsTableApiComponent, selector: "tots-table-api", inputs: { config: "config", hasPagination: "hasPagination", isPaginationStartIndexInZero: "isPaginationStartIndexInZero" }, outputs: { onAction: "onAction" }, viewQueries: [{ propertyName: "tableComp", first: true, predicate: ["tableComp"], descendants: true }], ngImport: i0, template: "<tots-table #tableComp [config]=\"configTable\" [pageIndex]=\"config.query.page\" [pageSize]=\"config.query.per_page\" (onAction)=\"onTableAction($event)\" [hasPagination]=\"hasPagination\"></tots-table>\n", styles: [""], dependencies: [{ kind: "component", type: TotsTableComponent, selector: "tots-table", inputs: ["config", "pageIndex", "pageSize", "hasPagination", "messageNotFound"], outputs: ["onAction"] }] });
580
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableApiComponent, decorators: [{
581
+ type: Component,
582
+ args: [{ selector: 'tots-table-api', template: "<tots-table #tableComp [config]=\"configTable\" [pageIndex]=\"config.query.page\" [pageSize]=\"config.query.per_page\" (onAction)=\"onTableAction($event)\" [hasPagination]=\"hasPagination\"></tots-table>\n" }]
583
+ }], propDecorators: { tableComp: [{
584
+ type: ViewChild,
585
+ args: ['tableComp']
586
+ }], config: [{
587
+ type: Input
588
+ }], hasPagination: [{
589
+ type: Input
590
+ }], isPaginationStartIndexInZero: [{
591
+ type: Input
592
+ }], onAction: [{
593
+ type: Output
594
+ }] } });
595
+
596
+ class TotsTableLocalComponent {
597
+ constructor() {
598
+ this.configTable = new TotsTableLocalConfig();
599
+ this.hasPagination = true;
600
+ this.isPaginationStartIndexInZero = false;
601
+ this.onAction = new EventEmitter();
602
+ this.dataTotals = 0;
603
+ this.page = 1;
604
+ this.perPage = 50;
605
+ }
606
+ ngOnInit() {
607
+ this.loadConfig();
608
+ }
609
+ onFilterItems() {
610
+ if (this.dataItems == undefined) {
611
+ return;
612
+ }
613
+ let items = [...this.dataItems];
614
+ if (this.orderKey != undefined) {
615
+ if (this.orderType == 'asc') {
616
+ items = items.sort((a, b) => (a[this.orderKey] > b[this.orderKey]) ? 1 : ((b[this.orderKey] > a[this.orderKey]) ? -1 : 0));
617
+ }
618
+ else {
619
+ items = items.sort((a, b) => (a[this.orderKey] < b[this.orderKey]) ? 1 : ((b[this.orderKey] < a[this.orderKey]) ? -1 : 0));
620
+ }
621
+ }
622
+ // Aplicar busqueda
623
+ if (this.searchQuery != undefined && this.searchQuery != '') {
624
+ items = items.filter(item => {
625
+ let isMatch = false;
626
+ this.configTable.searchKeys.forEach(key => {
627
+ if (item[key] != undefined && item[key].toString().toLowerCase().includes(this.searchQuery.toLowerCase())) {
628
+ isMatch = true;
629
+ }
630
+ });
631
+ return isMatch;
632
+ });
633
+ this.dataTotals = items.length;
634
+ }
635
+ else {
636
+ this.dataTotals = this.dataItems.length;
637
+ }
638
+ let startIndex = (this.page - 1) * this.perPage;
639
+ let endIndex = startIndex + this.perPage;
640
+ this.setDataItems(this.generateListResponse(items.slice(startIndex, endIndex)));
641
+ }
642
+ onPagination(action) {
643
+ this.perPage = action.item.pageSize;
644
+ if (this.isPaginationStartIndexInZero) {
645
+ this.page = action.item.pageIndex;
646
+ }
647
+ else {
648
+ this.page = action.item.pageIndex + 1;
649
+ }
650
+ this.onFilterItems();
651
+ }
652
+ onOrder(column) {
653
+ this.orderType = column.order;
654
+ this.orderKey = column.field_key;
655
+ this.onFilterItems();
656
+ }
657
+ onTableAction(action) {
658
+ if (action.key == 'page-change') {
659
+ this.onPagination(action);
660
+ }
661
+ else if (action.key == 'click-order') {
662
+ this.onOrder(action.item);
663
+ }
664
+ this.onAction.emit(action);
665
+ }
666
+ loadConfig() {
667
+ if (this.configTable.obs == undefined) {
668
+ return;
669
+ }
670
+ this.setObs(this.configTable.obs);
671
+ }
672
+ refreshQueryAndLoadItems() {
673
+ return this.loadItems();
674
+ }
675
+ loadItems() {
676
+ return this.tableComp.loadItems();
677
+ }
678
+ getDataItems() {
679
+ return this.tableComp.getDataItems();
680
+ }
681
+ setDataItems(items) {
682
+ this.tableComp.refreshDataItems(items);
683
+ }
684
+ setObs(obs) {
685
+ this.configTable.obs = obs.pipe(tap(res => this.dataItems = res.data));
686
+ }
687
+ onSearch(query) {
688
+ this.page = 1;
689
+ this.searchQuery = query;
690
+ this.onFilterItems();
691
+ }
692
+ generateListResponse(items) {
693
+ // calcular la iultima pagina
694
+ let lastPage = Math.ceil(this.dataTotals / this.perPage);
695
+ return {
696
+ current_page: this.page,
697
+ first_page_url: '',
698
+ from: '',
699
+ last_page: lastPage,
700
+ last_page_url: '',
701
+ next_page_url: '',
702
+ path: '',
703
+ per_page: this.perPage,
704
+ prev_page_url: '',
705
+ to: '',
706
+ total: this.dataTotals,
707
+ data: items
708
+ };
709
+ }
710
+ }
711
+ TotsTableLocalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableLocalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
712
+ TotsTableLocalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: TotsTableLocalComponent, selector: "tots-table-local", inputs: { configTable: "configTable", hasPagination: "hasPagination", isPaginationStartIndexInZero: "isPaginationStartIndexInZero" }, outputs: { onAction: "onAction" }, viewQueries: [{ propertyName: "tableComp", first: true, predicate: ["tableComp"], descendants: true }], ngImport: i0, template: "<tots-table #tableComp [config]=\"configTable\" [pageIndex]=\"page\" [pageSize]=\"perPage\" (onAction)=\"onTableAction($event)\" [hasPagination]=\"hasPagination\"></tots-table>\n", styles: [""], dependencies: [{ kind: "component", type: TotsTableComponent, selector: "tots-table", inputs: ["config", "pageIndex", "pageSize", "hasPagination", "messageNotFound"], outputs: ["onAction"] }] });
713
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableLocalComponent, decorators: [{
714
+ type: Component,
715
+ args: [{ selector: 'tots-table-local', template: "<tots-table #tableComp [config]=\"configTable\" [pageIndex]=\"page\" [pageSize]=\"perPage\" (onAction)=\"onTableAction($event)\" [hasPagination]=\"hasPagination\"></tots-table>\n" }]
716
+ }], propDecorators: { tableComp: [{
717
+ type: ViewChild,
718
+ args: ['tableComp']
719
+ }], configTable: [{
720
+ type: Input
721
+ }], hasPagination: [{
722
+ type: Input
723
+ }], isPaginationStartIndexInZero: [{
724
+ type: Input
725
+ }], onAction: [{
726
+ type: Output
727
+ }] } });
728
+
729
+ class TotsTableModule {
730
+ }
731
+ TotsTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
732
+ TotsTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.3", ngImport: i0, type: TotsTableModule, declarations: [TotsTableComponent,
733
+ BasePrintColumnComponent,
734
+ StringColumnComponent,
735
+ TotsTableApiComponent,
736
+ MoreMenuColumnComponent,
737
+ BooleanColumnComponent,
738
+ TwoStringColumnComponent,
739
+ IconButtonColumnComponent,
740
+ CheckboxColumnComponent,
741
+ OptionColumnComponent,
742
+ UserColumnComponent,
743
+ CurrencyColumnComponent,
744
+ StatusColumnComponent,
745
+ BalanceCurrencyColumnComponent,
746
+ StatusIconColumnComponent,
747
+ BalanceCurrencyIconColumnComponent,
748
+ LoadingAnimationRendererComponent,
749
+ TotsTableLocalComponent,
750
+ LinkColumnComponent], imports: [CommonModule,
751
+ // Angular Material
752
+ MatIconModule,
753
+ MatTableModule,
754
+ MatPaginatorModule,
755
+ MatButtonModule,
756
+ MatMenuModule,
757
+ MatCheckboxModule,
758
+ MatProgressSpinnerModule,
759
+ MatProgressBarModule], exports: [TotsTableComponent,
760
+ TotsTableApiComponent,
761
+ TotsTableLocalComponent] });
762
+ TotsTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableModule, providers: [
763
+ {
764
+ provide: TOTS_TABLE_DEFAULT_CONFIG,
765
+ useClass: TotsTableDefaultConfig
766
+ }
767
+ ], imports: [CommonModule,
768
+ // Angular Material
769
+ MatIconModule,
770
+ MatTableModule,
771
+ MatPaginatorModule,
772
+ MatButtonModule,
773
+ MatMenuModule,
774
+ MatCheckboxModule,
775
+ MatProgressSpinnerModule,
776
+ MatProgressBarModule] });
777
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableModule, decorators: [{
778
+ type: NgModule,
779
+ args: [{
780
+ declarations: [
781
+ TotsTableComponent,
782
+ BasePrintColumnComponent,
783
+ StringColumnComponent,
784
+ TotsTableApiComponent,
785
+ MoreMenuColumnComponent,
786
+ BooleanColumnComponent,
787
+ TwoStringColumnComponent,
788
+ IconButtonColumnComponent,
789
+ CheckboxColumnComponent,
790
+ OptionColumnComponent,
791
+ UserColumnComponent,
792
+ CurrencyColumnComponent,
793
+ StatusColumnComponent,
794
+ BalanceCurrencyColumnComponent,
795
+ StatusIconColumnComponent,
796
+ BalanceCurrencyIconColumnComponent,
797
+ LoadingAnimationRendererComponent,
798
+ TotsTableLocalComponent,
799
+ LinkColumnComponent
800
+ ],
801
+ imports: [
802
+ CommonModule,
803
+ // Angular Material
804
+ MatIconModule,
805
+ MatTableModule,
806
+ MatPaginatorModule,
807
+ MatButtonModule,
808
+ MatMenuModule,
809
+ MatCheckboxModule,
810
+ MatProgressSpinnerModule,
811
+ MatProgressBarModule
812
+ ],
813
+ exports: [
814
+ TotsTableComponent,
815
+ TotsTableApiComponent,
816
+ TotsTableLocalComponent,
817
+ ],
818
+ providers: [
819
+ {
820
+ provide: TOTS_TABLE_DEFAULT_CONFIG,
821
+ useClass: TotsTableDefaultConfig
822
+ }
823
+ ]
824
+ }]
825
+ }] });
826
+
827
+ /*
828
+ * Public API Surface of table
829
+ */
830
+
831
+ /**
832
+ * Generated bundle index. Do not edit.
833
+ */
834
+
835
+ export { BalanceCurrencyColumnComponent, BalanceCurrencyIconColumnComponent, BooleanColumnComponent, CheckboxColumnComponent, CurrencyColumnComponent, IconButtonColumnComponent, LinkColumnComponent, MoreMenuColumnComponent, OptionColumnComponent, StatusColumnComponent, StatusIconColumnComponent, StringColumnComponent, TOTS_TABLE_DEFAULT_CONFIG, TotsActionTable, TotsBaseColumnComponent, TotsColumn, TotsTableApiComponent, TotsTableApiConfig, TotsTableComponent, TotsTableConfig, TotsTableDefaultConfig, TotsTableHelper, TotsTableLocalComponent, TotsTableLocalConfig, TotsTableModule, TwoStringColumnComponent, UserColumnComponent };
836
+ //# sourceMappingURL=tots-table.mjs.map