@tots/table 15.0.0

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 (32) hide show
  1. package/README.md +24 -0
  2. package/esm2020/lib/columns/base-print-column/base-print-column.component.mjs +23 -0
  3. package/esm2020/lib/columns/string-column/string-column.component.mjs +12 -0
  4. package/esm2020/lib/columns/tots-base-column.component.mjs +22 -0
  5. package/esm2020/lib/components/tots-table/tots-table.component.mjs +56 -0
  6. package/esm2020/lib/components/tots-table-api/tots-table-api.component.mjs +37 -0
  7. package/esm2020/lib/entities/tots-action-table.mjs +6 -0
  8. package/esm2020/lib/entities/tots-column.mjs +8 -0
  9. package/esm2020/lib/entities/tots-table-api-config.mjs +9 -0
  10. package/esm2020/lib/entities/tots-table-config.mjs +7 -0
  11. package/esm2020/lib/helpers/tots-table-helper.mjs +25 -0
  12. package/esm2020/lib/table.module.mjs +49 -0
  13. package/esm2020/public-api.mjs +28 -0
  14. package/esm2020/tots-table.mjs +5 -0
  15. package/fesm2015/tots-table.mjs +240 -0
  16. package/fesm2015/tots-table.mjs.map +1 -0
  17. package/fesm2020/tots-table.mjs +241 -0
  18. package/fesm2020/tots-table.mjs.map +1 -0
  19. package/index.d.ts +5 -0
  20. package/lib/columns/base-print-column/base-print-column.component.d.ts +12 -0
  21. package/lib/columns/string-column/string-column.component.d.ts +6 -0
  22. package/lib/columns/tots-base-column.component.d.ts +9 -0
  23. package/lib/components/tots-table/tots-table.component.d.ts +23 -0
  24. package/lib/components/tots-table-api/tots-table-api.component.d.ts +15 -0
  25. package/lib/entities/tots-action-table.d.ts +4 -0
  26. package/lib/entities/tots-column.d.ts +8 -0
  27. package/lib/entities/tots-table-api-config.d.ts +8 -0
  28. package/lib/entities/tots-table-config.d.ts +8 -0
  29. package/lib/helpers/tots-table-helper.d.ts +9 -0
  30. package/lib/table.module.d.ts +13 -0
  31. package/package.json +32 -0
  32. package/public-api.d.ts +24 -0
package/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # Table
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 15.0.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project table` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project table`.
8
+ > Note: Don't forget to add `--project table` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build table` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build table`, go to the dist folder `cd dist/table` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test table` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -0,0 +1,23 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class BasePrintColumnComponent {
4
+ constructor(viewContainerRef) {
5
+ this.viewContainerRef = viewContainerRef;
6
+ }
7
+ ngOnInit() {
8
+ const view = this.viewContainerRef.createComponent(this.column.component);
9
+ view.instance.column = this.column;
10
+ view.instance.item = this.item;
11
+ }
12
+ }
13
+ BasePrintColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BasePrintColumnComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
14
+ BasePrintColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: BasePrintColumnComponent, selector: "tots-base-print-column", inputs: { column: "column", item: "item" }, ngImport: i0, template: "<div #contentColumn></div>", styles: [""] });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BasePrintColumnComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: 'tots-base-print-column', template: "<div #contentColumn></div>" }]
18
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { column: [{
19
+ type: Input
20
+ }], item: [{
21
+ type: Input
22
+ }] } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcmludC1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdG90cy90YWJsZS9zcmMvbGliL2NvbHVtbnMvYmFzZS1wcmludC1jb2x1bW4vYmFzZS1wcmludC1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdG90cy90YWJsZS9zcmMvbGliL2NvbHVtbnMvYmFzZS1wcmludC1jb2x1bW4vYmFzZS1wcmludC1jb2x1bW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDOztBQVFuRSxNQUFNLE9BQU8sd0JBQXdCO0lBS25DLFlBQ1ksZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDMUMsQ0FBQztJQUVMLFFBQVE7UUFDTixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFFBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3hDLENBQUM7O3FIQWJVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDBHQ1JyQyw0QkFBMEI7MkZEUWIsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHdCQUF3Qjt1R0FNekIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvdHNDb2x1bW4gfSBmcm9tICcuLi8uLi9lbnRpdGllcy90b3RzLWNvbHVtbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvdHMtYmFzZS1wcmludC1jb2x1bW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vYmFzZS1wcmludC1jb2x1bW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYXNlLXByaW50LWNvbHVtbi5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFzZVByaW50Q29sdW1uQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBjb2x1bW4hOiBUb3RzQ29sdW1uO1xuICBASW5wdXQoKSBpdGVtOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3ID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudCh0aGlzLmNvbHVtbi5jb21wb25lbnQpO1xuICAgICg8YW55PnZpZXcuaW5zdGFuY2UpLmNvbHVtbiA9IHRoaXMuY29sdW1uO1xuICAgICg8YW55PnZpZXcuaW5zdGFuY2UpLml0ZW0gPSB0aGlzLml0ZW07XG4gIH1cbn1cbiIsIjxkaXYgI2NvbnRlbnRDb2x1bW4+PC9kaXY+Il19
@@ -0,0 +1,12 @@
1
+ import { Component } from '@angular/core';
2
+ import { TotsBaseColumnComponent } from '../tots-base-column.component';
3
+ import * as i0 from "@angular/core";
4
+ export class StringColumnComponent extends TotsBaseColumnComponent {
5
+ }
6
+ StringColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: StringColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
7
+ StringColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: StringColumnComponent, selector: "tots-string-column", usesInheritance: true, ngImport: i0, template: "{{getItemValue()}}", styles: [""] });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: StringColumnComponent, decorators: [{
9
+ type: Component,
10
+ args: [{ selector: 'tots-string-column', template: "{{getItemValue()}}" }]
11
+ }] });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90b3RzL3RhYmxlL3NyYy9saWIvY29sdW1ucy9zdHJpbmctY29sdW1uL3N0cmluZy1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdG90cy90YWJsZS9zcmMvbGliL2NvbHVtbnMvc3RyaW5nLWNvbHVtbi9zdHJpbmctY29sdW1uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBT3hFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSx1QkFBdUI7O2tIQUFyRCxxQkFBcUI7c0dBQXJCLHFCQUFxQixpRkNSbEMsb0JBQWtCOzJGRFFMLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvdHNCYXNlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vdG90cy1iYXNlLWNvbHVtbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b3RzLXN0cmluZy1jb2x1bW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RyaW5nLWNvbHVtbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0cmluZy1jb2x1bW4uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN0cmluZ0NvbHVtbkNvbXBvbmVudCBleHRlbmRzIFRvdHNCYXNlQ29sdW1uQ29tcG9uZW50IHtcblxufVxuIiwie3tnZXRJdGVtVmFsdWUoKX19Il19
@@ -0,0 +1,22 @@
1
+ import { Component, Input } from "@angular/core";
2
+ import { TotsTableHelper } from "../helpers/tots-table-helper";
3
+ import * as i0 from "@angular/core";
4
+ export class TotsBaseColumnComponent {
5
+ getItemValue() {
6
+ return TotsTableHelper.getItemValueByKey(this.item, this.column.field_key);
7
+ }
8
+ }
9
+ TotsBaseColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsBaseColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ TotsBaseColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: TotsBaseColumnComponent, selector: "tots-base-column", inputs: { column: "column", item: "item" }, ngImport: i0, template: '', isInline: true });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsBaseColumnComponent, decorators: [{
12
+ type: Component,
13
+ args: [{
14
+ selector: 'tots-base-column',
15
+ template: ''
16
+ }]
17
+ }], propDecorators: { column: [{
18
+ type: Input
19
+ }], item: [{
20
+ type: Input
21
+ }] } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90cy1iYXNlLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90b3RzL3RhYmxlL3NyYy9saWIvY29sdW1ucy90b3RzLWJhc2UtY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFnQixLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQU0vRCxNQUFNLE9BQU8sdUJBQXVCO0lBS2hDLFlBQVk7UUFDUixPQUFPLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0UsQ0FBQzs7b0hBUFEsdUJBQXVCO3dHQUF2Qix1QkFBdUIsb0dBRnRCLEVBQUU7MkZBRUgsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzhCQUdZLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFRvdHNBY3Rpb25UYWJsZSB9IGZyb20gXCIuLi9lbnRpdGllcy90b3RzLWFjdGlvbi10YWJsZVwiO1xuaW1wb3J0IHsgVG90c0NvbHVtbiB9IGZyb20gXCIuLi9lbnRpdGllcy90b3RzLWNvbHVtblwiO1xuaW1wb3J0IHsgVG90c1RhYmxlSGVscGVyIH0gZnJvbSBcIi4uL2hlbHBlcnMvdG90cy10YWJsZS1oZWxwZXJcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b3RzLWJhc2UtY29sdW1uJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgY2xhc3MgVG90c0Jhc2VDb2x1bW5Db21wb25lbnR7XG5cbiAgICBASW5wdXQoKSBjb2x1bW4hOiBUb3RzQ29sdW1uO1xuICAgIEBJbnB1dCgpIGl0ZW06IGFueTtcblxuICAgIGdldEl0ZW1WYWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gVG90c1RhYmxlSGVscGVyLmdldEl0ZW1WYWx1ZUJ5S2V5KHRoaXMuaXRlbSwgdGhpcy5jb2x1bW4uZmllbGRfa2V5KTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,56 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { tap } from 'rxjs';
3
+ import { TotsTableConfig } from '../../entities/tots-table-config';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/material/table";
7
+ import * as i3 from "@angular/material/paginator";
8
+ import * as i4 from "../../columns/base-print-column/base-print-column.component";
9
+ export class TotsTableComponent {
10
+ constructor() {
11
+ this.config = new TotsTableConfig();
12
+ this.pageIndex = 0;
13
+ this.pageSize = 50;
14
+ this.onAction = new EventEmitter();
15
+ this.isLoading = true;
16
+ this.displayColumns = [];
17
+ }
18
+ ngOnInit() {
19
+ this.loadConfig();
20
+ this.loadItems();
21
+ }
22
+ onClickRow(item) {
23
+ this.onAction.emit({ key: 'click-row', item: item });
24
+ }
25
+ onPageChange(event) {
26
+ this.onAction.emit({ key: 'page-change', item: event });
27
+ this.loadItems();
28
+ }
29
+ loadItems() {
30
+ this.isLoading = true;
31
+ this.config.obs?.
32
+ pipe(tap(res => this.dataItems = res)).
33
+ subscribe(res => this.isLoading = false);
34
+ }
35
+ loadConfig() {
36
+ this.loadColumns();
37
+ }
38
+ loadColumns() {
39
+ this.displayColumns = this.config.columns.filter(c => c.is_show || c.is_show == undefined).map(c => c.key);
40
+ }
41
+ }
42
+ TotsTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
43
+ TotsTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: TotsTableComponent, selector: "tots-table", inputs: { config: "config", pageIndex: "pageIndex", pageSize: "pageSize" }, outputs: { onAction: "onAction" }, ngImport: i0, template: "<div class=\"tots-table-container\">\n <table *ngIf=\"dataItems\" mat-table [dataSource]=\"dataItems!.data\">\n \n <ng-container *ngFor=\"let column of config.columns\" [matColumnDef]=\"column.key\">\n <!-- TH-->\n <th mat-header-cell *matHeaderCellDef>{{ column.title }}</th>\n <!-- TD -->\n <td mat-cell *matCellDef=\"let item\"><tots-base-print-column [column]=\"column\" [item]=\"item\"></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)\"></tr>\n \n <!-- Row shown when there is no matching data. -->\n <tr class=\"mat-row\" *matNoDataRow><td class=\"mat-cell\" colspan=\"100\">No data matching</td></tr>\n\n <!-- Paginator -->\n <mat-paginator *ngIf=\"dataItems\" [pageIndex]=\"pageIndex\" [length]=\"dataItems!.total\" [pageSize]=\"pageSize\" [pageSizeOptions]=\"[5, 10, 25, 50, 100]\" (page)=\"onPageChange($event)\"></mat-paginator>\n </table>\n</div>", 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.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i2.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: i3.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i4.BasePrintColumnComponent, selector: "tots-base-print-column", inputs: ["column", "item"] }] });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableComponent, decorators: [{
45
+ type: Component,
46
+ args: [{ selector: 'tots-table', template: "<div class=\"tots-table-container\">\n <table *ngIf=\"dataItems\" mat-table [dataSource]=\"dataItems!.data\">\n \n <ng-container *ngFor=\"let column of config.columns\" [matColumnDef]=\"column.key\">\n <!-- TH-->\n <th mat-header-cell *matHeaderCellDef>{{ column.title }}</th>\n <!-- TD -->\n <td mat-cell *matCellDef=\"let item\"><tots-base-print-column [column]=\"column\" [item]=\"item\"></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)\"></tr>\n \n <!-- Row shown when there is no matching data. -->\n <tr class=\"mat-row\" *matNoDataRow><td class=\"mat-cell\" colspan=\"100\">No data matching</td></tr>\n\n <!-- Paginator -->\n <mat-paginator *ngIf=\"dataItems\" [pageIndex]=\"pageIndex\" [length]=\"dataItems!.total\" [pageSize]=\"pageSize\" [pageSizeOptions]=\"[5, 10, 25, 50, 100]\" (page)=\"onPageChange($event)\"></mat-paginator>\n </table>\n</div>" }]
47
+ }], propDecorators: { config: [{
48
+ type: Input
49
+ }], pageIndex: [{
50
+ type: Input
51
+ }], pageSize: [{
52
+ type: Input
53
+ }], onAction: [{
54
+ type: Output
55
+ }] } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90cy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90b3RzL3RhYmxlL3NyYy9saWIvY29tcG9uZW50cy90b3RzLXRhYmxlL3RvdHMtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdG90cy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdG90cy10YWJsZS90b3RzLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0UsT0FBTyxFQUFXLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7OztBQU9uRSxNQUFNLE9BQU8sa0JBQWtCO0lBTC9CO1FBT1csV0FBTSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDL0IsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBRXJCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUV6RCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRWpCLG1CQUFjLEdBQWtCLEVBQUUsQ0FBQztLQThCcEM7SUE1QkMsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWdCO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUN0QyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdHLENBQUM7OytHQXZDVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixpS0NaL0IsOG1DQW1CTTsyRkRQTyxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsWUFBWTs4QkFNYixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgVG90c0xpc3RSZXNwb25zZSB9IGZyb20gJ0B0b3RzL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb3RzQWN0aW9uVGFibGUgfSBmcm9tICcuLi8uLi9lbnRpdGllcy90b3RzLWFjdGlvbi10YWJsZSc7XG5pbXBvcnQgeyBUb3RzVGFibGVDb25maWcgfSBmcm9tICcuLi8uLi9lbnRpdGllcy90b3RzLXRhYmxlLWNvbmZpZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvdHMtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG90cy10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RvdHMtdGFibGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUb3RzVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGNvbmZpZyA9IG5ldyBUb3RzVGFibGVDb25maWcoKTtcbiAgQElucHV0KCkgcGFnZUluZGV4OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBwYWdlU2l6ZTogbnVtYmVyID0gNTA7XG5cbiAgQE91dHB1dCgpIG9uQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxUb3RzQWN0aW9uVGFibGU+KCk7XG5cbiAgaXNMb2FkaW5nID0gdHJ1ZTtcbiAgZGF0YUl0ZW1zPzogVG90c0xpc3RSZXNwb25zZTxhbnk+O1xuICBkaXNwbGF5Q29sdW1uczogQXJyYXk8U3RyaW5nPiA9IFtdO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZENvbmZpZygpO1xuICAgIHRoaXMubG9hZEl0ZW1zKCk7XG4gIH1cblxuICBvbkNsaWNrUm93KGl0ZW06IGFueSkge1xuICAgIHRoaXMub25BY3Rpb24uZW1pdCh7IGtleTogJ2NsaWNrLXJvdycsIGl0ZW06IGl0ZW0gfSk7XG4gIH1cblxuICBvblBhZ2VDaGFuZ2UoZXZlbnQ6IFBhZ2VFdmVudCkge1xuICAgIHRoaXMub25BY3Rpb24uZW1pdCh7IGtleTogJ3BhZ2UtY2hhbmdlJywgaXRlbTogZXZlbnQgfSk7XG4gICAgdGhpcy5sb2FkSXRlbXMoKTtcbiAgfVxuXG4gIGxvYWRJdGVtcygpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5jb25maWcub2JzPy5cbiAgICBwaXBlKHRhcChyZXMgPT4gdGhpcy5kYXRhSXRlbXMgPSByZXMpKS5cbiAgICBzdWJzY3JpYmUocmVzID0+IHRoaXMuaXNMb2FkaW5nID0gZmFsc2UpO1xuICB9XG5cbiAgbG9hZENvbmZpZygpIHtcbiAgICB0aGlzLmxvYWRDb2x1bW5zKCk7XG4gIH1cblxuICBsb2FkQ29sdW1ucygpIHtcbiAgICB0aGlzLmRpc3BsYXlDb2x1bW5zID0gdGhpcy5jb25maWcuY29sdW1ucy5maWx0ZXIoYyA9PiBjLmlzX3Nob3cgfHwgYy5pc19zaG93ID09IHVuZGVmaW5lZCkubWFwKGMgPT4gYy5rZXkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidG90cy10YWJsZS1jb250YWluZXJcIj5cbiAgICA8dGFibGUgKm5nSWY9XCJkYXRhSXRlbXNcIiBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZGF0YUl0ZW1zIS5kYXRhXCI+XG4gICAgICAgIFxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29uZmlnLmNvbHVtbnNcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5rZXlcIj5cbiAgICAgICAgICAgIDwhLS0gVEgtLT5cbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+e3sgY29sdW1uLnRpdGxlIH19PC90aD5cbiAgICAgICAgICAgIDwhLS0gVEQgLS0+XG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiPjx0b3RzLWJhc2UtcHJpbnQtY29sdW1uIFtjb2x1bW5dPVwiY29sdW1uXCIgW2l0ZW1dPVwiaXRlbVwiPjwvdG90cy1iYXNlLXByaW50LWNvbHVtbj48L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXlDb2x1bW5zXCI+PC90cj5cbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXlDb2x1bW5zO1wiIChjbGljayk9XCJvbkNsaWNrUm93KHJvdylcIj48L3RyPlxuICAgICAgICBcbiAgICAgICAgPCEtLSBSb3cgc2hvd24gd2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBkYXRhLiAtLT5cbiAgICAgICAgPHRyIGNsYXNzPVwibWF0LXJvd1wiICptYXROb0RhdGFSb3c+PHRkIGNsYXNzPVwibWF0LWNlbGxcIiBjb2xzcGFuPVwiMTAwXCI+Tm8gZGF0YSBtYXRjaGluZzwvdGQ+PC90cj5cblxuICAgICAgICA8IS0tIFBhZ2luYXRvciAtLT5cbiAgICAgICAgPG1hdC1wYWdpbmF0b3IgKm5nSWY9XCJkYXRhSXRlbXNcIiBbcGFnZUluZGV4XT1cInBhZ2VJbmRleFwiIFtsZW5ndGhdPVwiZGF0YUl0ZW1zIS50b3RhbFwiIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzUsIDEwLCAyNSwgNTAsIDEwMF1cIiAocGFnZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiPjwvbWF0LXBhZ2luYXRvcj5cbiAgICA8L3RhYmxlPlxuPC9kaXY+Il19
@@ -0,0 +1,37 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { TotsTableApiConfig } from '../../entities/tots-table-api-config';
3
+ import { TotsTableConfig } from '../../entities/tots-table-config';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../tots-table/tots-table.component";
6
+ export class TotsTableApiComponent {
7
+ constructor() {
8
+ this.config = new TotsTableApiConfig();
9
+ this.onAction = new EventEmitter();
10
+ this.configTable = new TotsTableConfig();
11
+ }
12
+ ngOnInit() {
13
+ this.loadConfig();
14
+ }
15
+ onTableAction(action) {
16
+ if (action.key == 'page-change') {
17
+ this.config.query.per_page = action.item.pageSize;
18
+ this.config.query.page = action.item.pageIndex + 1;
19
+ }
20
+ }
21
+ loadConfig() {
22
+ this.configTable.id = this.config.id;
23
+ this.configTable.columns = this.config.columns;
24
+ this.configTable.obs = this.config.service.list(this.config.query);
25
+ }
26
+ }
27
+ TotsTableApiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableApiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
+ TotsTableApiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: TotsTableApiComponent, selector: "tots-table-api", inputs: { config: "config" }, outputs: { onAction: "onAction" }, ngImport: i0, template: "<tots-table #tableComp [config]=\"configTable\" [pageIndex]=\"config.query.page\" [pageSize]=\"config.query.per_page\" (onAction)=\"onTableAction($event)\"></tots-table>\n", styles: [""], dependencies: [{ kind: "component", type: i1.TotsTableComponent, selector: "tots-table", inputs: ["config", "pageIndex", "pageSize"], outputs: ["onAction"] }] });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableApiComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'tots-table-api', template: "<tots-table #tableComp [config]=\"configTable\" [pageIndex]=\"config.query.page\" [pageSize]=\"config.query.per_page\" (onAction)=\"onTableAction($event)\"></tots-table>\n" }]
32
+ }], propDecorators: { config: [{
33
+ type: Input
34
+ }], onAction: [{
35
+ type: Output
36
+ }] } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90cy10YWJsZS1hcGkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdG90cy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdG90cy10YWJsZS1hcGkvdG90cy10YWJsZS1hcGkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdG90cy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdG90cy10YWJsZS1hcGkvdG90cy10YWJsZS1hcGkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQU9uRSxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBTVcsV0FBTSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUVqQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFFekQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0tBa0JyQztJQWhCQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBdUI7UUFDbkMsSUFBRyxNQUFNLENBQUMsR0FBRyxJQUFJLGFBQWEsRUFBQztZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckUsQ0FBQzs7a0hBdEJVLHFCQUFxQjtzR0FBckIscUJBQXFCLHVIQ1ZsQyw2S0FDQTsyRkRTYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsZ0JBQWdCOzhCQUtqQixNQUFNO3NCQUFkLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvdHNBY3Rpb25UYWJsZSB9IGZyb20gJy4uLy4uL2VudGl0aWVzL3RvdHMtYWN0aW9uLXRhYmxlJztcbmltcG9ydCB7IFRvdHNUYWJsZUFwaUNvbmZpZyB9IGZyb20gJy4uLy4uL2VudGl0aWVzL3RvdHMtdGFibGUtYXBpLWNvbmZpZyc7XG5pbXBvcnQgeyBUb3RzVGFibGVDb25maWcgfSBmcm9tICcuLi8uLi9lbnRpdGllcy90b3RzLXRhYmxlLWNvbmZpZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvdHMtdGFibGUtYXBpJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvdHMtdGFibGUtYXBpLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdG90cy10YWJsZS1hcGkuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUb3RzVGFibGVBcGlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBjb25maWcgPSBuZXcgVG90c1RhYmxlQXBpQ29uZmlnKCk7XG5cbiAgQE91dHB1dCgpIG9uQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxUb3RzQWN0aW9uVGFibGU+KCk7XG5cbiAgY29uZmlnVGFibGUgPSBuZXcgVG90c1RhYmxlQ29uZmlnKCk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkQ29uZmlnKCk7XG4gIH1cblxuICBvblRhYmxlQWN0aW9uKGFjdGlvbjogVG90c0FjdGlvblRhYmxlKSB7XG4gICAgaWYoYWN0aW9uLmtleSA9PSAncGFnZS1jaGFuZ2UnKXtcbiAgICAgIHRoaXMuY29uZmlnLnF1ZXJ5LnBlcl9wYWdlID0gYWN0aW9uLml0ZW0ucGFnZVNpemU7XG4gICAgICB0aGlzLmNvbmZpZy5xdWVyeS5wYWdlID0gYWN0aW9uLml0ZW0ucGFnZUluZGV4ICsgMTtcbiAgICB9XG4gIH1cblxuICBsb2FkQ29uZmlnKCkge1xuICAgIHRoaXMuY29uZmlnVGFibGUuaWQgPSB0aGlzLmNvbmZpZy5pZDtcbiAgICB0aGlzLmNvbmZpZ1RhYmxlLmNvbHVtbnMgPSB0aGlzLmNvbmZpZy5jb2x1bW5zO1xuICAgIHRoaXMuY29uZmlnVGFibGUub2JzID0gdGhpcy5jb25maWcuc2VydmljZS5saXN0KHRoaXMuY29uZmlnLnF1ZXJ5KTtcbiAgfVxufVxuIiwiPHRvdHMtdGFibGUgI3RhYmxlQ29tcCBbY29uZmlnXT1cImNvbmZpZ1RhYmxlXCIgW3BhZ2VJbmRleF09XCJjb25maWcucXVlcnkucGFnZVwiIFtwYWdlU2l6ZV09XCJjb25maWcucXVlcnkucGVyX3BhZ2VcIiAob25BY3Rpb24pPVwib25UYWJsZUFjdGlvbigkZXZlbnQpXCI+PC90b3RzLXRhYmxlPlxuIl19
@@ -0,0 +1,6 @@
1
+ export class TotsActionTable {
2
+ constructor() {
3
+ this.key = '';
4
+ }
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90cy1hY3Rpb24tdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90b3RzL3RhYmxlL3NyYy9saWIvZW50aXRpZXMvdG90cy1hY3Rpb24tdGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGVBQWU7SUFBNUI7UUFDSSxRQUFHLEdBQVcsRUFBRSxDQUFDO0lBRXJCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBUb3RzQWN0aW9uVGFibGUge1xuICAgIGtleTogc3RyaW5nID0gJyc7XG4gICAgaXRlbT86IGFueTtcbn0iXX0=
@@ -0,0 +1,8 @@
1
+ export class TotsColumn {
2
+ constructor() {
3
+ this.key = '';
4
+ this.title = '';
5
+ this.is_show = true;
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90cy1jb2x1bW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90b3RzL3RhYmxlL3NyYy9saWIvZW50aXRpZXMvdG90cy1jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFVBQVU7SUFBdkI7UUFDSSxRQUFHLEdBQVcsRUFBRSxDQUFDO1FBQ2pCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFJbkIsWUFBTyxHQUFhLElBQUksQ0FBQztJQUM3QixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVG90c0NvbHVtbiB7XG4gICAga2V5OiBzdHJpbmcgPSAnJztcbiAgICB0aXRsZTogc3RyaW5nID0gJyc7XG4gICAgZmllbGRfa2V5Pzogc3RyaW5nfEFycmF5PHN0cmluZz47XG4gICAgY29tcG9uZW50OiBhbnk7XG4gICAgZXh0cmE/OiBhbnk7XG4gICAgaXNfc2hvdz86IGJvb2xlYW4gPSB0cnVlO1xufSJdfQ==
@@ -0,0 +1,9 @@
1
+ import { TotsQuery } from "@tots/core";
2
+ export class TotsTableApiConfig {
3
+ constructor() {
4
+ this.id = '';
5
+ this.columns = [];
6
+ this.query = new TotsQuery();
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90cy10YWJsZS1hcGktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdG90cy90YWJsZS9zcmMvbGliL2VudGl0aWVzL3RvdHMtdGFibGUtYXBpLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUc1RCxNQUFNLE9BQU8sa0JBQWtCO0lBQS9CO1FBQ0ksT0FBRSxHQUFZLEVBQUUsQ0FBQztRQUNqQixZQUFPLEdBQXNCLEVBQUUsQ0FBQztRQUVoQyxVQUFLLEdBQWMsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb3RzQmFzZUh0dHBTZXJ2aWNlLCBUb3RzUXVlcnkgfSBmcm9tIFwiQHRvdHMvY29yZVwiO1xuaW1wb3J0IHsgVG90c0NvbHVtbiB9IGZyb20gXCIuL3RvdHMtY29sdW1uXCI7XG5cbmV4cG9ydCBjbGFzcyBUb3RzVGFibGVBcGlDb25maWcge1xuICAgIGlkPzogc3RyaW5nID0gJyc7XG4gICAgY29sdW1uczogQXJyYXk8VG90c0NvbHVtbj4gPSBbXTtcbiAgICBzZXJ2aWNlITogVG90c0Jhc2VIdHRwU2VydmljZTxhbnk+O1xuICAgIHF1ZXJ5OiBUb3RzUXVlcnkgPSBuZXcgVG90c1F1ZXJ5KCk7XG59Il19
@@ -0,0 +1,7 @@
1
+ export class TotsTableConfig {
2
+ constructor() {
3
+ this.id = '';
4
+ this.columns = [];
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90cy10YWJsZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90b3RzL3RhYmxlL3NyYy9saWIvZW50aXRpZXMvdG90cy10YWJsZS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLGVBQWU7SUFBNUI7UUFDSSxPQUFFLEdBQVksRUFBRSxDQUFDO1FBQ2pCLFlBQU8sR0FBc0IsRUFBRSxDQUFDO0lBRXBDLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRvdHNMaXN0UmVzcG9uc2UsIFRvdHNRdWVyeSB9IGZyb20gXCJAdG90cy9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFRvdHNDb2x1bW4gfSBmcm9tIFwiLi90b3RzLWNvbHVtblwiO1xuXG5leHBvcnQgY2xhc3MgVG90c1RhYmxlQ29uZmlnIHtcbiAgICBpZD86IHN0cmluZyA9ICcnO1xuICAgIGNvbHVtbnM6IEFycmF5PFRvdHNDb2x1bW4+ID0gW107XG4gICAgb2JzPzogT2JzZXJ2YWJsZTxUb3RzTGlzdFJlc3BvbnNlPGFueT4+O1xufSJdfQ==
@@ -0,0 +1,25 @@
1
+ export class TotsTableHelper {
2
+ /**
3
+ * Obtiene el valor de un objeto a traves de la KEY
4
+ * @param item
5
+ * @param key
6
+ * @returns
7
+ */
8
+ static getItemValueByKey(item, key) {
9
+ if (key == undefined || item == undefined) {
10
+ return '';
11
+ }
12
+ if (typeof key == 'string' && item[key] != undefined) {
13
+ return item[key];
14
+ }
15
+ let valueFinal = item;
16
+ for (const keyObj of key) {
17
+ if (valueFinal[keyObj] == undefined) {
18
+ return '';
19
+ }
20
+ valueFinal = valueFinal[keyObj];
21
+ }
22
+ return valueFinal;
23
+ }
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90cy10YWJsZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90b3RzL3RhYmxlL3NyYy9saWIvaGVscGVycy90b3RzLXRhYmxlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sZUFBZTtJQUN4Qjs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFTLEVBQUUsR0FBbUM7UUFDbkUsSUFBRyxHQUFHLElBQUksU0FBUyxJQUFFLElBQUksSUFBSSxTQUFTLEVBQUM7WUFDbkMsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELElBQUksT0FBTyxHQUFHLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxTQUFTLEVBQUU7WUFDcEQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbEI7UUFFRCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdEIsS0FBSyxNQUFNLE1BQU0sSUFBSSxHQUFJLEVBQUU7WUFDekIsSUFBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksU0FBUyxFQUFDO2dCQUNqQyxPQUFPLEVBQUUsQ0FBQzthQUNYO1lBQ0QsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNqQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBUb3RzVGFibGVIZWxwZXIge1xuICAgIC8qKlxuICAgICAqIE9idGllbmUgZWwgdmFsb3IgZGUgdW4gb2JqZXRvIGEgdHJhdmVzIGRlIGxhIEtFWVxuICAgICAqIEBwYXJhbSBpdGVtIFxuICAgICAqIEBwYXJhbSBrZXkgXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgc3RhdGljIGdldEl0ZW1WYWx1ZUJ5S2V5KGl0ZW06IGFueSwga2V5OiBzdHJpbmd8QXJyYXk8c3RyaW5nPnx1bmRlZmluZWQpOiBhbnkge1xuICAgICAgICBpZihrZXkgPT0gdW5kZWZpbmVkfHxpdGVtID09IHVuZGVmaW5lZCl7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgfVxuICAgIFxuICAgICAgICAgIGlmICh0eXBlb2Yga2V5ID09ICdzdHJpbmcnICYmIGl0ZW1ba2V5XSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtW2tleV07XG4gICAgICAgICAgfVxuICAgIFxuICAgICAgICAgIGxldCB2YWx1ZUZpbmFsID0gaXRlbTtcbiAgICAgICAgICBmb3IgKGNvbnN0IGtleU9iaiBvZiBrZXkhKSB7XG4gICAgICAgICAgICBpZih2YWx1ZUZpbmFsW2tleU9ial0gPT0gdW5kZWZpbmVkKXtcbiAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFsdWVGaW5hbCA9IHZhbHVlRmluYWxba2V5T2JqXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHZhbHVlRmluYWw7XG4gICAgfVxufSJdfQ==
@@ -0,0 +1,49 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ /** Angular Material */
4
+ import { MatTableModule } from '@angular/material/table';
5
+ import { MatPaginatorModule } from '@angular/material/paginator';
6
+ /** Components */
7
+ import { TotsTableComponent } from './components/tots-table/tots-table.component';
8
+ import { TotsTableApiComponent } from './components/tots-table-api/tots-table-api.component';
9
+ /** Columns */
10
+ import { BasePrintColumnComponent } from './columns/base-print-column/base-print-column.component';
11
+ import { StringColumnComponent } from './columns/string-column/string-column.component';
12
+ import * as i0 from "@angular/core";
13
+ export class TotsTableModule {
14
+ }
15
+ TotsTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
+ TotsTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.3", ngImport: i0, type: TotsTableModule, declarations: [TotsTableComponent,
17
+ BasePrintColumnComponent,
18
+ StringColumnComponent,
19
+ TotsTableApiComponent], imports: [CommonModule,
20
+ // Angular Material
21
+ MatTableModule,
22
+ MatPaginatorModule], exports: [TotsTableComponent,
23
+ TotsTableApiComponent] });
24
+ TotsTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableModule, imports: [CommonModule,
25
+ // Angular Material
26
+ MatTableModule,
27
+ MatPaginatorModule] });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableModule, decorators: [{
29
+ type: NgModule,
30
+ args: [{
31
+ declarations: [
32
+ TotsTableComponent,
33
+ BasePrintColumnComponent,
34
+ StringColumnComponent,
35
+ TotsTableApiComponent
36
+ ],
37
+ imports: [
38
+ CommonModule,
39
+ // Angular Material
40
+ MatTableModule,
41
+ MatPaginatorModule
42
+ ],
43
+ exports: [
44
+ TotsTableComponent,
45
+ TotsTableApiComponent
46
+ ]
47
+ }]
48
+ }] });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdG90cy90YWJsZS9zcmMvbGliL3RhYmxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyx1QkFBdUI7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWpFLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUU3RixjQUFjO0FBQ2QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbkcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saURBQWlELENBQUM7O0FBc0J4RixNQUFNLE9BQU8sZUFBZTs7NEdBQWYsZUFBZTs2R0FBZixlQUFlLGlCQWhCeEIsa0JBQWtCO1FBQ2xCLHdCQUF3QjtRQUN4QixxQkFBcUI7UUFDckIscUJBQXFCLGFBR3JCLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsY0FBYztRQUNkLGtCQUFrQixhQUdsQixrQkFBa0I7UUFDbEIscUJBQXFCOzZHQUdaLGVBQWUsWUFWeEIsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixjQUFjO1FBQ2Qsa0JBQWtCOzJGQU9ULGVBQWU7a0JBbEIzQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixrQkFBa0I7d0JBQ2xCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixxQkFBcUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxrQkFBa0I7d0JBQ2xCLHFCQUFxQjtxQkFDdEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqIEFuZ3VsYXIgTWF0ZXJpYWwgKi9cbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcblxuLyoqIENvbXBvbmVudHMgKi9cbmltcG9ydCB7IFRvdHNUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90b3RzLXRhYmxlL3RvdHMtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRvdHNUYWJsZUFwaUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90b3RzLXRhYmxlLWFwaS90b3RzLXRhYmxlLWFwaS5jb21wb25lbnQnO1xuXG4vKiogQ29sdW1ucyAqL1xuaW1wb3J0IHsgQmFzZVByaW50Q29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9jb2x1bW5zL2Jhc2UtcHJpbnQtY29sdW1uL2Jhc2UtcHJpbnQtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdHJpbmdDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2NvbHVtbnMvc3RyaW5nLWNvbHVtbi9zdHJpbmctY29sdW1uLmNvbXBvbmVudCc7XG5cblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBUb3RzVGFibGVDb21wb25lbnQsXG4gICAgQmFzZVByaW50Q29sdW1uQ29tcG9uZW50LFxuICAgIFN0cmluZ0NvbHVtbkNvbXBvbmVudCxcbiAgICBUb3RzVGFibGVBcGlDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICAvLyBBbmd1bGFyIE1hdGVyaWFsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0UGFnaW5hdG9yTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBUb3RzVGFibGVDb21wb25lbnQsXG4gICAgVG90c1RhYmxlQXBpQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVG90c1RhYmxlTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,28 @@
1
+ /*
2
+ * Public API Surface of table
3
+ */
4
+ /**
5
+ * Entities
6
+ */
7
+ export * from './lib/entities/tots-column';
8
+ export * from './lib/entities/tots-table-config';
9
+ export * from './lib/entities/tots-action-table';
10
+ /**
11
+ * Helpers
12
+ */
13
+ export * from './lib/helpers/tots-table-helper';
14
+ /**
15
+ * Columns
16
+ */
17
+ export * from './lib/columns/tots-base-column.component';
18
+ export * from './lib/columns/string-column/string-column.component';
19
+ /**
20
+ * Components
21
+ */
22
+ export * from './lib/components/tots-table/tots-table.component';
23
+ export * from './lib/components/tots-table-api/tots-table-api.component';
24
+ /**
25
+ * Modules
26
+ */
27
+ export * from './lib/table.module';
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvdHMvdGFibGUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSDs7R0FFRztBQUNILGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGtDQUFrQyxDQUFDO0FBRWpEOztHQUVHO0FBQ0gsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRDs7R0FFRztBQUNILGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxxREFBcUQsQ0FBQztBQUVwRTs7R0FFRztBQUNILGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYywwREFBMEQsQ0FBQztBQUV6RTs7R0FFRztBQUNILGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHRhYmxlXG4gKi9cblxuLyoqXG4gKiBFbnRpdGllc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnRpdGllcy90b3RzLWNvbHVtbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnRpdGllcy90b3RzLXRhYmxlLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnRpdGllcy90b3RzLWFjdGlvbi10YWJsZSc7XG5cbi8qKlxuICogSGVscGVyc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9oZWxwZXJzL3RvdHMtdGFibGUtaGVscGVyJztcblxuLyoqXG4gKiBDb2x1bW5zXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbHVtbnMvdG90cy1iYXNlLWNvbHVtbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sdW1ucy9zdHJpbmctY29sdW1uL3N0cmluZy1jb2x1bW4uY29tcG9uZW50JztcblxuLyoqXG4gKiBDb21wb25lbnRzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG90cy10YWJsZS90b3RzLXRhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RvdHMtdGFibGUtYXBpL3RvdHMtdGFibGUtYXBpLmNvbXBvbmVudCc7XG5cbi8qKlxuICogTW9kdWxlc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWJsZS5tb2R1bGUnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90cy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvdHMvdGFibGUvc3JjL3RvdHMtdGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,240 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, Input, EventEmitter, Output, NgModule } from '@angular/core';
3
+ import { tap } from 'rxjs';
4
+ import * as i1 from '@angular/common';
5
+ import { CommonModule } from '@angular/common';
6
+ import * as i2 from '@angular/material/table';
7
+ import { MatTableModule } from '@angular/material/table';
8
+ import * as i3 from '@angular/material/paginator';
9
+ import { MatPaginatorModule } from '@angular/material/paginator';
10
+ import { TotsQuery } from '@tots/core';
11
+
12
+ class TotsColumn {
13
+ constructor() {
14
+ this.key = '';
15
+ this.title = '';
16
+ this.is_show = true;
17
+ }
18
+ }
19
+
20
+ class TotsTableConfig {
21
+ constructor() {
22
+ this.id = '';
23
+ this.columns = [];
24
+ }
25
+ }
26
+
27
+ class TotsActionTable {
28
+ constructor() {
29
+ this.key = '';
30
+ }
31
+ }
32
+
33
+ class TotsTableHelper {
34
+ /**
35
+ * Obtiene el valor de un objeto a traves de la KEY
36
+ * @param item
37
+ * @param key
38
+ * @returns
39
+ */
40
+ static getItemValueByKey(item, key) {
41
+ if (key == undefined || item == undefined) {
42
+ return '';
43
+ }
44
+ if (typeof key == 'string' && item[key] != undefined) {
45
+ return item[key];
46
+ }
47
+ let valueFinal = item;
48
+ for (const keyObj of key) {
49
+ if (valueFinal[keyObj] == undefined) {
50
+ return '';
51
+ }
52
+ valueFinal = valueFinal[keyObj];
53
+ }
54
+ return valueFinal;
55
+ }
56
+ }
57
+
58
+ class TotsBaseColumnComponent {
59
+ getItemValue() {
60
+ return TotsTableHelper.getItemValueByKey(this.item, this.column.field_key);
61
+ }
62
+ }
63
+ TotsBaseColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsBaseColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
64
+ TotsBaseColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: TotsBaseColumnComponent, selector: "tots-base-column", inputs: { column: "column", item: "item" }, ngImport: i0, template: '', isInline: true });
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsBaseColumnComponent, decorators: [{
66
+ type: Component,
67
+ args: [{
68
+ selector: 'tots-base-column',
69
+ template: ''
70
+ }]
71
+ }], propDecorators: { column: [{
72
+ type: Input
73
+ }], item: [{
74
+ type: Input
75
+ }] } });
76
+
77
+ class StringColumnComponent extends TotsBaseColumnComponent {
78
+ }
79
+ StringColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: StringColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
80
+ StringColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: StringColumnComponent, selector: "tots-string-column", usesInheritance: true, ngImport: i0, template: "{{getItemValue()}}", styles: [""] });
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: StringColumnComponent, decorators: [{
82
+ type: Component,
83
+ args: [{ selector: 'tots-string-column', template: "{{getItemValue()}}" }]
84
+ }] });
85
+
86
+ class BasePrintColumnComponent {
87
+ constructor(viewContainerRef) {
88
+ this.viewContainerRef = viewContainerRef;
89
+ }
90
+ ngOnInit() {
91
+ const view = this.viewContainerRef.createComponent(this.column.component);
92
+ view.instance.column = this.column;
93
+ view.instance.item = this.item;
94
+ }
95
+ }
96
+ BasePrintColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BasePrintColumnComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
97
+ BasePrintColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: BasePrintColumnComponent, selector: "tots-base-print-column", inputs: { column: "column", item: "item" }, ngImport: i0, template: "<div #contentColumn></div>", styles: [""] });
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BasePrintColumnComponent, decorators: [{
99
+ type: Component,
100
+ args: [{ selector: 'tots-base-print-column', template: "<div #contentColumn></div>" }]
101
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { column: [{
102
+ type: Input
103
+ }], item: [{
104
+ type: Input
105
+ }] } });
106
+
107
+ class TotsTableComponent {
108
+ constructor() {
109
+ this.config = new TotsTableConfig();
110
+ this.pageIndex = 0;
111
+ this.pageSize = 50;
112
+ this.onAction = new EventEmitter();
113
+ this.isLoading = true;
114
+ this.displayColumns = [];
115
+ }
116
+ ngOnInit() {
117
+ this.loadConfig();
118
+ this.loadItems();
119
+ }
120
+ onClickRow(item) {
121
+ this.onAction.emit({ key: 'click-row', item: item });
122
+ }
123
+ onPageChange(event) {
124
+ this.onAction.emit({ key: 'page-change', item: event });
125
+ this.loadItems();
126
+ }
127
+ loadItems() {
128
+ var _a;
129
+ this.isLoading = true;
130
+ (_a = this.config.obs) === null || _a === void 0 ? void 0 : _a.pipe(tap(res => this.dataItems = res)).subscribe(res => this.isLoading = false);
131
+ }
132
+ loadConfig() {
133
+ this.loadColumns();
134
+ }
135
+ loadColumns() {
136
+ this.displayColumns = this.config.columns.filter(c => c.is_show || c.is_show == undefined).map(c => c.key);
137
+ }
138
+ }
139
+ TotsTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
140
+ TotsTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: TotsTableComponent, selector: "tots-table", inputs: { config: "config", pageIndex: "pageIndex", pageSize: "pageSize" }, outputs: { onAction: "onAction" }, ngImport: i0, template: "<div class=\"tots-table-container\">\n <table *ngIf=\"dataItems\" mat-table [dataSource]=\"dataItems!.data\">\n \n <ng-container *ngFor=\"let column of config.columns\" [matColumnDef]=\"column.key\">\n <!-- TH-->\n <th mat-header-cell *matHeaderCellDef>{{ column.title }}</th>\n <!-- TD -->\n <td mat-cell *matCellDef=\"let item\"><tots-base-print-column [column]=\"column\" [item]=\"item\"></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)\"></tr>\n \n <!-- Row shown when there is no matching data. -->\n <tr class=\"mat-row\" *matNoDataRow><td class=\"mat-cell\" colspan=\"100\">No data matching</td></tr>\n\n <!-- Paginator -->\n <mat-paginator *ngIf=\"dataItems\" [pageIndex]=\"pageIndex\" [length]=\"dataItems!.total\" [pageSize]=\"pageSize\" [pageSizeOptions]=\"[5, 10, 25, 50, 100]\" (page)=\"onPageChange($event)\"></mat-paginator>\n </table>\n</div>", 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.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i2.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: i3.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: BasePrintColumnComponent, selector: "tots-base-print-column", inputs: ["column", "item"] }] });
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableComponent, decorators: [{
142
+ type: Component,
143
+ args: [{ selector: 'tots-table', template: "<div class=\"tots-table-container\">\n <table *ngIf=\"dataItems\" mat-table [dataSource]=\"dataItems!.data\">\n \n <ng-container *ngFor=\"let column of config.columns\" [matColumnDef]=\"column.key\">\n <!-- TH-->\n <th mat-header-cell *matHeaderCellDef>{{ column.title }}</th>\n <!-- TD -->\n <td mat-cell *matCellDef=\"let item\"><tots-base-print-column [column]=\"column\" [item]=\"item\"></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)\"></tr>\n \n <!-- Row shown when there is no matching data. -->\n <tr class=\"mat-row\" *matNoDataRow><td class=\"mat-cell\" colspan=\"100\">No data matching</td></tr>\n\n <!-- Paginator -->\n <mat-paginator *ngIf=\"dataItems\" [pageIndex]=\"pageIndex\" [length]=\"dataItems!.total\" [pageSize]=\"pageSize\" [pageSizeOptions]=\"[5, 10, 25, 50, 100]\" (page)=\"onPageChange($event)\"></mat-paginator>\n </table>\n</div>" }]
144
+ }], propDecorators: { config: [{
145
+ type: Input
146
+ }], pageIndex: [{
147
+ type: Input
148
+ }], pageSize: [{
149
+ type: Input
150
+ }], onAction: [{
151
+ type: Output
152
+ }] } });
153
+
154
+ class TotsTableApiConfig {
155
+ constructor() {
156
+ this.id = '';
157
+ this.columns = [];
158
+ this.query = new TotsQuery();
159
+ }
160
+ }
161
+
162
+ class TotsTableApiComponent {
163
+ constructor() {
164
+ this.config = new TotsTableApiConfig();
165
+ this.onAction = new EventEmitter();
166
+ this.configTable = new TotsTableConfig();
167
+ }
168
+ ngOnInit() {
169
+ this.loadConfig();
170
+ }
171
+ onTableAction(action) {
172
+ if (action.key == 'page-change') {
173
+ this.config.query.per_page = action.item.pageSize;
174
+ this.config.query.page = action.item.pageIndex + 1;
175
+ }
176
+ }
177
+ loadConfig() {
178
+ this.configTable.id = this.config.id;
179
+ this.configTable.columns = this.config.columns;
180
+ this.configTable.obs = this.config.service.list(this.config.query);
181
+ }
182
+ }
183
+ TotsTableApiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableApiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
184
+ TotsTableApiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: TotsTableApiComponent, selector: "tots-table-api", inputs: { config: "config" }, outputs: { onAction: "onAction" }, ngImport: i0, template: "<tots-table #tableComp [config]=\"configTable\" [pageIndex]=\"config.query.page\" [pageSize]=\"config.query.per_page\" (onAction)=\"onTableAction($event)\"></tots-table>\n", styles: [""], dependencies: [{ kind: "component", type: TotsTableComponent, selector: "tots-table", inputs: ["config", "pageIndex", "pageSize"], outputs: ["onAction"] }] });
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableApiComponent, decorators: [{
186
+ type: Component,
187
+ args: [{ selector: 'tots-table-api', template: "<tots-table #tableComp [config]=\"configTable\" [pageIndex]=\"config.query.page\" [pageSize]=\"config.query.per_page\" (onAction)=\"onTableAction($event)\"></tots-table>\n" }]
188
+ }], propDecorators: { config: [{
189
+ type: Input
190
+ }], onAction: [{
191
+ type: Output
192
+ }] } });
193
+
194
+ class TotsTableModule {
195
+ }
196
+ TotsTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
197
+ TotsTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.3", ngImport: i0, type: TotsTableModule, declarations: [TotsTableComponent,
198
+ BasePrintColumnComponent,
199
+ StringColumnComponent,
200
+ TotsTableApiComponent], imports: [CommonModule,
201
+ // Angular Material
202
+ MatTableModule,
203
+ MatPaginatorModule], exports: [TotsTableComponent,
204
+ TotsTableApiComponent] });
205
+ TotsTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableModule, imports: [CommonModule,
206
+ // Angular Material
207
+ MatTableModule,
208
+ MatPaginatorModule] });
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableModule, decorators: [{
210
+ type: NgModule,
211
+ args: [{
212
+ declarations: [
213
+ TotsTableComponent,
214
+ BasePrintColumnComponent,
215
+ StringColumnComponent,
216
+ TotsTableApiComponent
217
+ ],
218
+ imports: [
219
+ CommonModule,
220
+ // Angular Material
221
+ MatTableModule,
222
+ MatPaginatorModule
223
+ ],
224
+ exports: [
225
+ TotsTableComponent,
226
+ TotsTableApiComponent
227
+ ]
228
+ }]
229
+ }] });
230
+
231
+ /*
232
+ * Public API Surface of table
233
+ */
234
+
235
+ /**
236
+ * Generated bundle index. Do not edit.
237
+ */
238
+
239
+ export { StringColumnComponent, TotsActionTable, TotsBaseColumnComponent, TotsColumn, TotsTableApiComponent, TotsTableComponent, TotsTableConfig, TotsTableHelper, TotsTableModule };
240
+ //# sourceMappingURL=tots-table.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tots-table.mjs","sources":["../../../../projects/tots/table/src/lib/entities/tots-column.ts","../../../../projects/tots/table/src/lib/entities/tots-table-config.ts","../../../../projects/tots/table/src/lib/entities/tots-action-table.ts","../../../../projects/tots/table/src/lib/helpers/tots-table-helper.ts","../../../../projects/tots/table/src/lib/columns/tots-base-column.component.ts","../../../../projects/tots/table/src/lib/columns/string-column/string-column.component.ts","../../../../projects/tots/table/src/lib/columns/string-column/string-column.component.html","../../../../projects/tots/table/src/lib/columns/base-print-column/base-print-column.component.ts","../../../../projects/tots/table/src/lib/columns/base-print-column/base-print-column.component.html","../../../../projects/tots/table/src/lib/components/tots-table/tots-table.component.ts","../../../../projects/tots/table/src/lib/components/tots-table/tots-table.component.html","../../../../projects/tots/table/src/lib/entities/tots-table-api-config.ts","../../../../projects/tots/table/src/lib/components/tots-table-api/tots-table-api.component.ts","../../../../projects/tots/table/src/lib/components/tots-table-api/tots-table-api.component.html","../../../../projects/tots/table/src/lib/table.module.ts","../../../../projects/tots/table/src/public-api.ts","../../../../projects/tots/table/src/tots-table.ts"],"sourcesContent":["export class TotsColumn {\n key: string = '';\n title: string = '';\n field_key?: string|Array<string>;\n component: any;\n extra?: any;\n is_show?: boolean = true;\n}","import { TotsListResponse, TotsQuery } from \"@tots/core\";\nimport { Observable } from \"rxjs\";\nimport { TotsColumn } from \"./tots-column\";\n\nexport class TotsTableConfig {\n id?: string = '';\n columns: Array<TotsColumn> = [];\n obs?: Observable<TotsListResponse<any>>;\n}","export class TotsActionTable {\n key: string = '';\n item?: any;\n}","export class TotsTableHelper {\n /**\n * Obtiene el valor de un objeto a traves de la KEY\n * @param item \n * @param key \n * @returns \n */\n static getItemValueByKey(item: any, key: string|Array<string>|undefined): any {\n if(key == undefined||item == undefined){\n return '';\n }\n \n if (typeof key == 'string' && item[key] != undefined) {\n return item[key];\n }\n \n let valueFinal = item;\n for (const keyObj of key!) {\n if(valueFinal[keyObj] == undefined){\n return '';\n }\n valueFinal = valueFinal[keyObj];\n }\n return valueFinal;\n }\n}","import { Component, EventEmitter, Input, OnInit } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { TotsActionTable } from \"../entities/tots-action-table\";\nimport { TotsColumn } from \"../entities/tots-column\";\nimport { TotsTableHelper } from \"../helpers/tots-table-helper\";\n\n@Component({\n selector: 'tots-base-column',\n template: ''\n})\nexport class TotsBaseColumnComponent{\n\n @Input() column!: TotsColumn;\n @Input() item: any;\n\n getItemValue(): any {\n return TotsTableHelper.getItemValueByKey(this.item, this.column.field_key);\n }\n}\n","import { Component } from '@angular/core';\nimport { TotsBaseColumnComponent } from '../tots-base-column.component';\n\n@Component({\n selector: 'tots-string-column',\n templateUrl: './string-column.component.html',\n styleUrls: ['./string-column.component.css']\n})\nexport class StringColumnComponent extends TotsBaseColumnComponent {\n\n}\n","{{getItemValue()}}","import { Component, Input, ViewContainerRef } from '@angular/core';\nimport { TotsColumn } from '../../entities/tots-column';\n\n@Component({\n selector: 'tots-base-print-column',\n templateUrl: './base-print-column.component.html',\n styleUrls: ['./base-print-column.component.css']\n})\nexport class BasePrintColumnComponent {\n\n @Input() column!: TotsColumn;\n @Input() item: any;\n\n constructor(\n protected viewContainerRef: ViewContainerRef\n ) { }\n\n ngOnInit(): void {\n const view = this.viewContainerRef.createComponent(this.column.component);\n (<any>view.instance).column = this.column;\n (<any>view.instance).item = this.item;\n }\n}\n","<div #contentColumn></div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { PageEvent } from '@angular/material/paginator';\nimport { TotsListResponse } from '@tots/core';\nimport { Subject, tap } from 'rxjs';\nimport { TotsActionTable } from '../../entities/tots-action-table';\nimport { TotsTableConfig } from '../../entities/tots-table-config';\n\n@Component({\n selector: 'tots-table',\n templateUrl: './tots-table.component.html',\n styleUrls: ['./tots-table.component.scss']\n})\nexport class TotsTableComponent implements OnInit {\n\n @Input() config = new TotsTableConfig();\n @Input() pageIndex: number = 0;\n @Input() pageSize: number = 50;\n\n @Output() onAction = new EventEmitter<TotsActionTable>();\n\n isLoading = true;\n dataItems?: TotsListResponse<any>;\n displayColumns: Array<String> = [];\n\n ngOnInit(): void {\n this.loadConfig();\n this.loadItems();\n }\n\n onClickRow(item: any) {\n this.onAction.emit({ key: 'click-row', item: item });\n }\n\n onPageChange(event: PageEvent) {\n this.onAction.emit({ key: 'page-change', item: event });\n this.loadItems();\n }\n\n loadItems() {\n this.isLoading = true;\n this.config.obs?.\n pipe(tap(res => this.dataItems = res)).\n subscribe(res => this.isLoading = false);\n }\n\n loadConfig() {\n this.loadColumns();\n }\n\n loadColumns() {\n this.displayColumns = this.config.columns.filter(c => c.is_show || c.is_show == undefined).map(c => c.key);\n }\n}\n","<div class=\"tots-table-container\">\n <table *ngIf=\"dataItems\" mat-table [dataSource]=\"dataItems!.data\">\n \n <ng-container *ngFor=\"let column of config.columns\" [matColumnDef]=\"column.key\">\n <!-- TH-->\n <th mat-header-cell *matHeaderCellDef>{{ column.title }}</th>\n <!-- TD -->\n <td mat-cell *matCellDef=\"let item\"><tots-base-print-column [column]=\"column\" [item]=\"item\"></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)\"></tr>\n \n <!-- Row shown when there is no matching data. -->\n <tr class=\"mat-row\" *matNoDataRow><td class=\"mat-cell\" colspan=\"100\">No data matching</td></tr>\n\n <!-- Paginator -->\n <mat-paginator *ngIf=\"dataItems\" [pageIndex]=\"pageIndex\" [length]=\"dataItems!.total\" [pageSize]=\"pageSize\" [pageSizeOptions]=\"[5, 10, 25, 50, 100]\" (page)=\"onPageChange($event)\"></mat-paginator>\n </table>\n</div>","import { TotsBaseHttpService, TotsQuery } from \"@tots/core\";\nimport { TotsColumn } from \"./tots-column\";\n\nexport class TotsTableApiConfig {\n id?: string = '';\n columns: Array<TotsColumn> = [];\n service!: TotsBaseHttpService<any>;\n query: TotsQuery = new TotsQuery();\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TotsActionTable } from '../../entities/tots-action-table';\nimport { TotsTableApiConfig } from '../../entities/tots-table-api-config';\nimport { TotsTableConfig } from '../../entities/tots-table-config';\n\n@Component({\n selector: 'tots-table-api',\n templateUrl: './tots-table-api.component.html',\n styleUrls: ['./tots-table-api.component.scss']\n})\nexport class TotsTableApiComponent implements OnInit {\n @Input() config = new TotsTableApiConfig();\n\n @Output() onAction = new EventEmitter<TotsActionTable>();\n\n configTable = new TotsTableConfig();\n\n ngOnInit(): void {\n this.loadConfig();\n }\n\n onTableAction(action: TotsActionTable) {\n if(action.key == 'page-change'){\n this.config.query.per_page = action.item.pageSize;\n this.config.query.page = action.item.pageIndex + 1;\n }\n }\n\n loadConfig() {\n this.configTable.id = this.config.id;\n this.configTable.columns = this.config.columns;\n this.configTable.obs = this.config.service.list(this.config.query);\n }\n}\n","<tots-table #tableComp [config]=\"configTable\" [pageIndex]=\"config.query.page\" [pageSize]=\"config.query.per_page\" (onAction)=\"onTableAction($event)\"></tots-table>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n/** Angular Material */\nimport { MatTableModule } from '@angular/material/table';\nimport { MatPaginatorModule } from '@angular/material/paginator';\n\n/** Components */\nimport { TotsTableComponent } from './components/tots-table/tots-table.component';\nimport { TotsTableApiComponent } from './components/tots-table-api/tots-table-api.component';\n\n/** Columns */\nimport { BasePrintColumnComponent } from './columns/base-print-column/base-print-column.component';\nimport { StringColumnComponent } from './columns/string-column/string-column.component';\n\n\n\n@NgModule({\n declarations: [\n TotsTableComponent,\n BasePrintColumnComponent,\n StringColumnComponent,\n TotsTableApiComponent\n ],\n imports: [\n CommonModule,\n // Angular Material\n MatTableModule,\n MatPaginatorModule\n ],\n exports: [\n TotsTableComponent,\n TotsTableApiComponent\n ]\n})\nexport class TotsTableModule { }\n","/*\n * Public API Surface of table\n */\n\n/**\n * Entities\n */\nexport * from './lib/entities/tots-column';\nexport * from './lib/entities/tots-table-config';\nexport * from './lib/entities/tots-action-table';\n\n/**\n * Helpers\n */\nexport * from './lib/helpers/tots-table-helper';\n\n/**\n * Columns\n */\nexport * from './lib/columns/tots-base-column.component';\nexport * from './lib/columns/string-column/string-column.component';\n\n/**\n * Components\n */\nexport * from './lib/components/tots-table/tots-table.component';\nexport * from './lib/components/tots-table-api/tots-table-api.component';\n\n/**\n * Modules\n */\nexport * from './lib/table.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4.BasePrintColumnComponent","i1.TotsTableComponent"],"mappings":"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"}
@@ -0,0 +1,241 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, Input, EventEmitter, Output, NgModule } from '@angular/core';
3
+ import { tap } from 'rxjs';
4
+ import * as i1 from '@angular/common';
5
+ import { CommonModule } from '@angular/common';
6
+ import * as i2 from '@angular/material/table';
7
+ import { MatTableModule } from '@angular/material/table';
8
+ import * as i3 from '@angular/material/paginator';
9
+ import { MatPaginatorModule } from '@angular/material/paginator';
10
+ import { TotsQuery } from '@tots/core';
11
+
12
+ class TotsColumn {
13
+ constructor() {
14
+ this.key = '';
15
+ this.title = '';
16
+ this.is_show = true;
17
+ }
18
+ }
19
+
20
+ class TotsTableConfig {
21
+ constructor() {
22
+ this.id = '';
23
+ this.columns = [];
24
+ }
25
+ }
26
+
27
+ class TotsActionTable {
28
+ constructor() {
29
+ this.key = '';
30
+ }
31
+ }
32
+
33
+ class TotsTableHelper {
34
+ /**
35
+ * Obtiene el valor de un objeto a traves de la KEY
36
+ * @param item
37
+ * @param key
38
+ * @returns
39
+ */
40
+ static getItemValueByKey(item, key) {
41
+ if (key == undefined || item == undefined) {
42
+ return '';
43
+ }
44
+ if (typeof key == 'string' && item[key] != undefined) {
45
+ return item[key];
46
+ }
47
+ let valueFinal = item;
48
+ for (const keyObj of key) {
49
+ if (valueFinal[keyObj] == undefined) {
50
+ return '';
51
+ }
52
+ valueFinal = valueFinal[keyObj];
53
+ }
54
+ return valueFinal;
55
+ }
56
+ }
57
+
58
+ class TotsBaseColumnComponent {
59
+ getItemValue() {
60
+ return TotsTableHelper.getItemValueByKey(this.item, this.column.field_key);
61
+ }
62
+ }
63
+ TotsBaseColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsBaseColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
64
+ TotsBaseColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: TotsBaseColumnComponent, selector: "tots-base-column", inputs: { column: "column", item: "item" }, ngImport: i0, template: '', isInline: true });
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsBaseColumnComponent, decorators: [{
66
+ type: Component,
67
+ args: [{
68
+ selector: 'tots-base-column',
69
+ template: ''
70
+ }]
71
+ }], propDecorators: { column: [{
72
+ type: Input
73
+ }], item: [{
74
+ type: Input
75
+ }] } });
76
+
77
+ class StringColumnComponent extends TotsBaseColumnComponent {
78
+ }
79
+ StringColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: StringColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
80
+ StringColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: StringColumnComponent, selector: "tots-string-column", usesInheritance: true, ngImport: i0, template: "{{getItemValue()}}", styles: [""] });
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: StringColumnComponent, decorators: [{
82
+ type: Component,
83
+ args: [{ selector: 'tots-string-column', template: "{{getItemValue()}}" }]
84
+ }] });
85
+
86
+ class BasePrintColumnComponent {
87
+ constructor(viewContainerRef) {
88
+ this.viewContainerRef = viewContainerRef;
89
+ }
90
+ ngOnInit() {
91
+ const view = this.viewContainerRef.createComponent(this.column.component);
92
+ view.instance.column = this.column;
93
+ view.instance.item = this.item;
94
+ }
95
+ }
96
+ BasePrintColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BasePrintColumnComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
97
+ BasePrintColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: BasePrintColumnComponent, selector: "tots-base-print-column", inputs: { column: "column", item: "item" }, ngImport: i0, template: "<div #contentColumn></div>", styles: [""] });
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: BasePrintColumnComponent, decorators: [{
99
+ type: Component,
100
+ args: [{ selector: 'tots-base-print-column', template: "<div #contentColumn></div>" }]
101
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { column: [{
102
+ type: Input
103
+ }], item: [{
104
+ type: Input
105
+ }] } });
106
+
107
+ class TotsTableComponent {
108
+ constructor() {
109
+ this.config = new TotsTableConfig();
110
+ this.pageIndex = 0;
111
+ this.pageSize = 50;
112
+ this.onAction = new EventEmitter();
113
+ this.isLoading = true;
114
+ this.displayColumns = [];
115
+ }
116
+ ngOnInit() {
117
+ this.loadConfig();
118
+ this.loadItems();
119
+ }
120
+ onClickRow(item) {
121
+ this.onAction.emit({ key: 'click-row', item: item });
122
+ }
123
+ onPageChange(event) {
124
+ this.onAction.emit({ key: 'page-change', item: event });
125
+ this.loadItems();
126
+ }
127
+ loadItems() {
128
+ this.isLoading = true;
129
+ this.config.obs?.
130
+ pipe(tap(res => this.dataItems = res)).
131
+ subscribe(res => this.isLoading = false);
132
+ }
133
+ loadConfig() {
134
+ this.loadColumns();
135
+ }
136
+ loadColumns() {
137
+ this.displayColumns = this.config.columns.filter(c => c.is_show || c.is_show == undefined).map(c => c.key);
138
+ }
139
+ }
140
+ TotsTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
141
+ TotsTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: TotsTableComponent, selector: "tots-table", inputs: { config: "config", pageIndex: "pageIndex", pageSize: "pageSize" }, outputs: { onAction: "onAction" }, ngImport: i0, template: "<div class=\"tots-table-container\">\n <table *ngIf=\"dataItems\" mat-table [dataSource]=\"dataItems!.data\">\n \n <ng-container *ngFor=\"let column of config.columns\" [matColumnDef]=\"column.key\">\n <!-- TH-->\n <th mat-header-cell *matHeaderCellDef>{{ column.title }}</th>\n <!-- TD -->\n <td mat-cell *matCellDef=\"let item\"><tots-base-print-column [column]=\"column\" [item]=\"item\"></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)\"></tr>\n \n <!-- Row shown when there is no matching data. -->\n <tr class=\"mat-row\" *matNoDataRow><td class=\"mat-cell\" colspan=\"100\">No data matching</td></tr>\n\n <!-- Paginator -->\n <mat-paginator *ngIf=\"dataItems\" [pageIndex]=\"pageIndex\" [length]=\"dataItems!.total\" [pageSize]=\"pageSize\" [pageSizeOptions]=\"[5, 10, 25, 50, 100]\" (page)=\"onPageChange($event)\"></mat-paginator>\n </table>\n</div>", 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.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i2.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: i3.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: BasePrintColumnComponent, selector: "tots-base-print-column", inputs: ["column", "item"] }] });
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableComponent, decorators: [{
143
+ type: Component,
144
+ args: [{ selector: 'tots-table', template: "<div class=\"tots-table-container\">\n <table *ngIf=\"dataItems\" mat-table [dataSource]=\"dataItems!.data\">\n \n <ng-container *ngFor=\"let column of config.columns\" [matColumnDef]=\"column.key\">\n <!-- TH-->\n <th mat-header-cell *matHeaderCellDef>{{ column.title }}</th>\n <!-- TD -->\n <td mat-cell *matCellDef=\"let item\"><tots-base-print-column [column]=\"column\" [item]=\"item\"></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)\"></tr>\n \n <!-- Row shown when there is no matching data. -->\n <tr class=\"mat-row\" *matNoDataRow><td class=\"mat-cell\" colspan=\"100\">No data matching</td></tr>\n\n <!-- Paginator -->\n <mat-paginator *ngIf=\"dataItems\" [pageIndex]=\"pageIndex\" [length]=\"dataItems!.total\" [pageSize]=\"pageSize\" [pageSizeOptions]=\"[5, 10, 25, 50, 100]\" (page)=\"onPageChange($event)\"></mat-paginator>\n </table>\n</div>" }]
145
+ }], propDecorators: { config: [{
146
+ type: Input
147
+ }], pageIndex: [{
148
+ type: Input
149
+ }], pageSize: [{
150
+ type: Input
151
+ }], onAction: [{
152
+ type: Output
153
+ }] } });
154
+
155
+ class TotsTableApiConfig {
156
+ constructor() {
157
+ this.id = '';
158
+ this.columns = [];
159
+ this.query = new TotsQuery();
160
+ }
161
+ }
162
+
163
+ class TotsTableApiComponent {
164
+ constructor() {
165
+ this.config = new TotsTableApiConfig();
166
+ this.onAction = new EventEmitter();
167
+ this.configTable = new TotsTableConfig();
168
+ }
169
+ ngOnInit() {
170
+ this.loadConfig();
171
+ }
172
+ onTableAction(action) {
173
+ if (action.key == 'page-change') {
174
+ this.config.query.per_page = action.item.pageSize;
175
+ this.config.query.page = action.item.pageIndex + 1;
176
+ }
177
+ }
178
+ loadConfig() {
179
+ this.configTable.id = this.config.id;
180
+ this.configTable.columns = this.config.columns;
181
+ this.configTable.obs = this.config.service.list(this.config.query);
182
+ }
183
+ }
184
+ TotsTableApiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableApiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
185
+ TotsTableApiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: TotsTableApiComponent, selector: "tots-table-api", inputs: { config: "config" }, outputs: { onAction: "onAction" }, ngImport: i0, template: "<tots-table #tableComp [config]=\"configTable\" [pageIndex]=\"config.query.page\" [pageSize]=\"config.query.per_page\" (onAction)=\"onTableAction($event)\"></tots-table>\n", styles: [""], dependencies: [{ kind: "component", type: TotsTableComponent, selector: "tots-table", inputs: ["config", "pageIndex", "pageSize"], outputs: ["onAction"] }] });
186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableApiComponent, decorators: [{
187
+ type: Component,
188
+ args: [{ selector: 'tots-table-api', template: "<tots-table #tableComp [config]=\"configTable\" [pageIndex]=\"config.query.page\" [pageSize]=\"config.query.per_page\" (onAction)=\"onTableAction($event)\"></tots-table>\n" }]
189
+ }], propDecorators: { config: [{
190
+ type: Input
191
+ }], onAction: [{
192
+ type: Output
193
+ }] } });
194
+
195
+ class TotsTableModule {
196
+ }
197
+ TotsTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
198
+ TotsTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.3", ngImport: i0, type: TotsTableModule, declarations: [TotsTableComponent,
199
+ BasePrintColumnComponent,
200
+ StringColumnComponent,
201
+ TotsTableApiComponent], imports: [CommonModule,
202
+ // Angular Material
203
+ MatTableModule,
204
+ MatPaginatorModule], exports: [TotsTableComponent,
205
+ TotsTableApiComponent] });
206
+ TotsTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableModule, imports: [CommonModule,
207
+ // Angular Material
208
+ MatTableModule,
209
+ MatPaginatorModule] });
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: TotsTableModule, decorators: [{
211
+ type: NgModule,
212
+ args: [{
213
+ declarations: [
214
+ TotsTableComponent,
215
+ BasePrintColumnComponent,
216
+ StringColumnComponent,
217
+ TotsTableApiComponent
218
+ ],
219
+ imports: [
220
+ CommonModule,
221
+ // Angular Material
222
+ MatTableModule,
223
+ MatPaginatorModule
224
+ ],
225
+ exports: [
226
+ TotsTableComponent,
227
+ TotsTableApiComponent
228
+ ]
229
+ }]
230
+ }] });
231
+
232
+ /*
233
+ * Public API Surface of table
234
+ */
235
+
236
+ /**
237
+ * Generated bundle index. Do not edit.
238
+ */
239
+
240
+ export { StringColumnComponent, TotsActionTable, TotsBaseColumnComponent, TotsColumn, TotsTableApiComponent, TotsTableComponent, TotsTableConfig, TotsTableHelper, TotsTableModule };
241
+ //# sourceMappingURL=tots-table.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tots-table.mjs","sources":["../../../../projects/tots/table/src/lib/entities/tots-column.ts","../../../../projects/tots/table/src/lib/entities/tots-table-config.ts","../../../../projects/tots/table/src/lib/entities/tots-action-table.ts","../../../../projects/tots/table/src/lib/helpers/tots-table-helper.ts","../../../../projects/tots/table/src/lib/columns/tots-base-column.component.ts","../../../../projects/tots/table/src/lib/columns/string-column/string-column.component.ts","../../../../projects/tots/table/src/lib/columns/string-column/string-column.component.html","../../../../projects/tots/table/src/lib/columns/base-print-column/base-print-column.component.ts","../../../../projects/tots/table/src/lib/columns/base-print-column/base-print-column.component.html","../../../../projects/tots/table/src/lib/components/tots-table/tots-table.component.ts","../../../../projects/tots/table/src/lib/components/tots-table/tots-table.component.html","../../../../projects/tots/table/src/lib/entities/tots-table-api-config.ts","../../../../projects/tots/table/src/lib/components/tots-table-api/tots-table-api.component.ts","../../../../projects/tots/table/src/lib/components/tots-table-api/tots-table-api.component.html","../../../../projects/tots/table/src/lib/table.module.ts","../../../../projects/tots/table/src/public-api.ts","../../../../projects/tots/table/src/tots-table.ts"],"sourcesContent":["export class TotsColumn {\n key: string = '';\n title: string = '';\n field_key?: string|Array<string>;\n component: any;\n extra?: any;\n is_show?: boolean = true;\n}","import { TotsListResponse, TotsQuery } from \"@tots/core\";\nimport { Observable } from \"rxjs\";\nimport { TotsColumn } from \"./tots-column\";\n\nexport class TotsTableConfig {\n id?: string = '';\n columns: Array<TotsColumn> = [];\n obs?: Observable<TotsListResponse<any>>;\n}","export class TotsActionTable {\n key: string = '';\n item?: any;\n}","export class TotsTableHelper {\n /**\n * Obtiene el valor de un objeto a traves de la KEY\n * @param item \n * @param key \n * @returns \n */\n static getItemValueByKey(item: any, key: string|Array<string>|undefined): any {\n if(key == undefined||item == undefined){\n return '';\n }\n \n if (typeof key == 'string' && item[key] != undefined) {\n return item[key];\n }\n \n let valueFinal = item;\n for (const keyObj of key!) {\n if(valueFinal[keyObj] == undefined){\n return '';\n }\n valueFinal = valueFinal[keyObj];\n }\n return valueFinal;\n }\n}","import { Component, EventEmitter, Input, OnInit } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { TotsActionTable } from \"../entities/tots-action-table\";\nimport { TotsColumn } from \"../entities/tots-column\";\nimport { TotsTableHelper } from \"../helpers/tots-table-helper\";\n\n@Component({\n selector: 'tots-base-column',\n template: ''\n})\nexport class TotsBaseColumnComponent{\n\n @Input() column!: TotsColumn;\n @Input() item: any;\n\n getItemValue(): any {\n return TotsTableHelper.getItemValueByKey(this.item, this.column.field_key);\n }\n}\n","import { Component } from '@angular/core';\nimport { TotsBaseColumnComponent } from '../tots-base-column.component';\n\n@Component({\n selector: 'tots-string-column',\n templateUrl: './string-column.component.html',\n styleUrls: ['./string-column.component.css']\n})\nexport class StringColumnComponent extends TotsBaseColumnComponent {\n\n}\n","{{getItemValue()}}","import { Component, Input, ViewContainerRef } from '@angular/core';\nimport { TotsColumn } from '../../entities/tots-column';\n\n@Component({\n selector: 'tots-base-print-column',\n templateUrl: './base-print-column.component.html',\n styleUrls: ['./base-print-column.component.css']\n})\nexport class BasePrintColumnComponent {\n\n @Input() column!: TotsColumn;\n @Input() item: any;\n\n constructor(\n protected viewContainerRef: ViewContainerRef\n ) { }\n\n ngOnInit(): void {\n const view = this.viewContainerRef.createComponent(this.column.component);\n (<any>view.instance).column = this.column;\n (<any>view.instance).item = this.item;\n }\n}\n","<div #contentColumn></div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { PageEvent } from '@angular/material/paginator';\nimport { TotsListResponse } from '@tots/core';\nimport { Subject, tap } from 'rxjs';\nimport { TotsActionTable } from '../../entities/tots-action-table';\nimport { TotsTableConfig } from '../../entities/tots-table-config';\n\n@Component({\n selector: 'tots-table',\n templateUrl: './tots-table.component.html',\n styleUrls: ['./tots-table.component.scss']\n})\nexport class TotsTableComponent implements OnInit {\n\n @Input() config = new TotsTableConfig();\n @Input() pageIndex: number = 0;\n @Input() pageSize: number = 50;\n\n @Output() onAction = new EventEmitter<TotsActionTable>();\n\n isLoading = true;\n dataItems?: TotsListResponse<any>;\n displayColumns: Array<String> = [];\n\n ngOnInit(): void {\n this.loadConfig();\n this.loadItems();\n }\n\n onClickRow(item: any) {\n this.onAction.emit({ key: 'click-row', item: item });\n }\n\n onPageChange(event: PageEvent) {\n this.onAction.emit({ key: 'page-change', item: event });\n this.loadItems();\n }\n\n loadItems() {\n this.isLoading = true;\n this.config.obs?.\n pipe(tap(res => this.dataItems = res)).\n subscribe(res => this.isLoading = false);\n }\n\n loadConfig() {\n this.loadColumns();\n }\n\n loadColumns() {\n this.displayColumns = this.config.columns.filter(c => c.is_show || c.is_show == undefined).map(c => c.key);\n }\n}\n","<div class=\"tots-table-container\">\n <table *ngIf=\"dataItems\" mat-table [dataSource]=\"dataItems!.data\">\n \n <ng-container *ngFor=\"let column of config.columns\" [matColumnDef]=\"column.key\">\n <!-- TH-->\n <th mat-header-cell *matHeaderCellDef>{{ column.title }}</th>\n <!-- TD -->\n <td mat-cell *matCellDef=\"let item\"><tots-base-print-column [column]=\"column\" [item]=\"item\"></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)\"></tr>\n \n <!-- Row shown when there is no matching data. -->\n <tr class=\"mat-row\" *matNoDataRow><td class=\"mat-cell\" colspan=\"100\">No data matching</td></tr>\n\n <!-- Paginator -->\n <mat-paginator *ngIf=\"dataItems\" [pageIndex]=\"pageIndex\" [length]=\"dataItems!.total\" [pageSize]=\"pageSize\" [pageSizeOptions]=\"[5, 10, 25, 50, 100]\" (page)=\"onPageChange($event)\"></mat-paginator>\n </table>\n</div>","import { TotsBaseHttpService, TotsQuery } from \"@tots/core\";\nimport { TotsColumn } from \"./tots-column\";\n\nexport class TotsTableApiConfig {\n id?: string = '';\n columns: Array<TotsColumn> = [];\n service!: TotsBaseHttpService<any>;\n query: TotsQuery = new TotsQuery();\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TotsActionTable } from '../../entities/tots-action-table';\nimport { TotsTableApiConfig } from '../../entities/tots-table-api-config';\nimport { TotsTableConfig } from '../../entities/tots-table-config';\n\n@Component({\n selector: 'tots-table-api',\n templateUrl: './tots-table-api.component.html',\n styleUrls: ['./tots-table-api.component.scss']\n})\nexport class TotsTableApiComponent implements OnInit {\n @Input() config = new TotsTableApiConfig();\n\n @Output() onAction = new EventEmitter<TotsActionTable>();\n\n configTable = new TotsTableConfig();\n\n ngOnInit(): void {\n this.loadConfig();\n }\n\n onTableAction(action: TotsActionTable) {\n if(action.key == 'page-change'){\n this.config.query.per_page = action.item.pageSize;\n this.config.query.page = action.item.pageIndex + 1;\n }\n }\n\n loadConfig() {\n this.configTable.id = this.config.id;\n this.configTable.columns = this.config.columns;\n this.configTable.obs = this.config.service.list(this.config.query);\n }\n}\n","<tots-table #tableComp [config]=\"configTable\" [pageIndex]=\"config.query.page\" [pageSize]=\"config.query.per_page\" (onAction)=\"onTableAction($event)\"></tots-table>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n/** Angular Material */\nimport { MatTableModule } from '@angular/material/table';\nimport { MatPaginatorModule } from '@angular/material/paginator';\n\n/** Components */\nimport { TotsTableComponent } from './components/tots-table/tots-table.component';\nimport { TotsTableApiComponent } from './components/tots-table-api/tots-table-api.component';\n\n/** Columns */\nimport { BasePrintColumnComponent } from './columns/base-print-column/base-print-column.component';\nimport { StringColumnComponent } from './columns/string-column/string-column.component';\n\n\n\n@NgModule({\n declarations: [\n TotsTableComponent,\n BasePrintColumnComponent,\n StringColumnComponent,\n TotsTableApiComponent\n ],\n imports: [\n CommonModule,\n // Angular Material\n MatTableModule,\n MatPaginatorModule\n ],\n exports: [\n TotsTableComponent,\n TotsTableApiComponent\n ]\n})\nexport class TotsTableModule { }\n","/*\n * Public API Surface of table\n */\n\n/**\n * Entities\n */\nexport * from './lib/entities/tots-column';\nexport * from './lib/entities/tots-table-config';\nexport * from './lib/entities/tots-action-table';\n\n/**\n * Helpers\n */\nexport * from './lib/helpers/tots-table-helper';\n\n/**\n * Columns\n */\nexport * from './lib/columns/tots-base-column.component';\nexport * from './lib/columns/string-column/string-column.component';\n\n/**\n * Components\n */\nexport * from './lib/components/tots-table/tots-table.component';\nexport * from './lib/components/tots-table-api/tots-table-api.component';\n\n/**\n * Modules\n */\nexport * from './lib/table.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4.BasePrintColumnComponent","i1.TotsTableComponent"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@tots/table" />
5
+ export * from './public-api';
@@ -0,0 +1,12 @@
1
+ import { ViewContainerRef } from '@angular/core';
2
+ import { TotsColumn } from '../../entities/tots-column';
3
+ import * as i0 from "@angular/core";
4
+ export declare class BasePrintColumnComponent {
5
+ protected viewContainerRef: ViewContainerRef;
6
+ column: TotsColumn;
7
+ item: any;
8
+ constructor(viewContainerRef: ViewContainerRef);
9
+ ngOnInit(): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<BasePrintColumnComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<BasePrintColumnComponent, "tots-base-print-column", never, { "column": "column"; "item": "item"; }, {}, never, never, false, never>;
12
+ }
@@ -0,0 +1,6 @@
1
+ import { TotsBaseColumnComponent } from '../tots-base-column.component';
2
+ import * as i0 from "@angular/core";
3
+ export declare class StringColumnComponent extends TotsBaseColumnComponent {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<StringColumnComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<StringColumnComponent, "tots-string-column", never, {}, {}, never, never, false, never>;
6
+ }
@@ -0,0 +1,9 @@
1
+ import { TotsColumn } from "../entities/tots-column";
2
+ import * as i0 from "@angular/core";
3
+ export declare class TotsBaseColumnComponent {
4
+ column: TotsColumn;
5
+ item: any;
6
+ getItemValue(): any;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<TotsBaseColumnComponent, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<TotsBaseColumnComponent, "tots-base-column", never, { "column": "column"; "item": "item"; }, {}, never, never, false, never>;
9
+ }
@@ -0,0 +1,23 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { PageEvent } from '@angular/material/paginator';
3
+ import { TotsListResponse } from '@tots/core';
4
+ import { TotsActionTable } from '../../entities/tots-action-table';
5
+ import { TotsTableConfig } from '../../entities/tots-table-config';
6
+ import * as i0 from "@angular/core";
7
+ export declare class TotsTableComponent implements OnInit {
8
+ config: TotsTableConfig;
9
+ pageIndex: number;
10
+ pageSize: number;
11
+ onAction: EventEmitter<TotsActionTable>;
12
+ isLoading: boolean;
13
+ dataItems?: TotsListResponse<any>;
14
+ displayColumns: Array<String>;
15
+ ngOnInit(): void;
16
+ onClickRow(item: any): void;
17
+ onPageChange(event: PageEvent): void;
18
+ loadItems(): void;
19
+ loadConfig(): void;
20
+ loadColumns(): void;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<TotsTableComponent, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<TotsTableComponent, "tots-table", never, { "config": "config"; "pageIndex": "pageIndex"; "pageSize": "pageSize"; }, { "onAction": "onAction"; }, never, never, false, never>;
23
+ }
@@ -0,0 +1,15 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { TotsActionTable } from '../../entities/tots-action-table';
3
+ import { TotsTableApiConfig } from '../../entities/tots-table-api-config';
4
+ import { TotsTableConfig } from '../../entities/tots-table-config';
5
+ import * as i0 from "@angular/core";
6
+ export declare class TotsTableApiComponent implements OnInit {
7
+ config: TotsTableApiConfig;
8
+ onAction: EventEmitter<TotsActionTable>;
9
+ configTable: TotsTableConfig;
10
+ ngOnInit(): void;
11
+ onTableAction(action: TotsActionTable): void;
12
+ loadConfig(): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<TotsTableApiComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<TotsTableApiComponent, "tots-table-api", never, { "config": "config"; }, { "onAction": "onAction"; }, never, never, false, never>;
15
+ }
@@ -0,0 +1,4 @@
1
+ export declare class TotsActionTable {
2
+ key: string;
3
+ item?: any;
4
+ }
@@ -0,0 +1,8 @@
1
+ export declare class TotsColumn {
2
+ key: string;
3
+ title: string;
4
+ field_key?: string | Array<string>;
5
+ component: any;
6
+ extra?: any;
7
+ is_show?: boolean;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { TotsBaseHttpService, TotsQuery } from "@tots/core";
2
+ import { TotsColumn } from "./tots-column";
3
+ export declare class TotsTableApiConfig {
4
+ id?: string;
5
+ columns: Array<TotsColumn>;
6
+ service: TotsBaseHttpService<any>;
7
+ query: TotsQuery;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { TotsListResponse } from "@tots/core";
2
+ import { Observable } from "rxjs";
3
+ import { TotsColumn } from "./tots-column";
4
+ export declare class TotsTableConfig {
5
+ id?: string;
6
+ columns: Array<TotsColumn>;
7
+ obs?: Observable<TotsListResponse<any>>;
8
+ }
@@ -0,0 +1,9 @@
1
+ export declare class TotsTableHelper {
2
+ /**
3
+ * Obtiene el valor de un objeto a traves de la KEY
4
+ * @param item
5
+ * @param key
6
+ * @returns
7
+ */
8
+ static getItemValueByKey(item: any, key: string | Array<string> | undefined): any;
9
+ }
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./components/tots-table/tots-table.component";
3
+ import * as i2 from "./columns/base-print-column/base-print-column.component";
4
+ import * as i3 from "./columns/string-column/string-column.component";
5
+ import * as i4 from "./components/tots-table-api/tots-table-api.component";
6
+ import * as i5 from "@angular/common";
7
+ import * as i6 from "@angular/material/table";
8
+ import * as i7 from "@angular/material/paginator";
9
+ export declare class TotsTableModule {
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<TotsTableModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TotsTableModule, [typeof i1.TotsTableComponent, typeof i2.BasePrintColumnComponent, typeof i3.StringColumnComponent, typeof i4.TotsTableApiComponent], [typeof i5.CommonModule, typeof i6.MatTableModule, typeof i7.MatPaginatorModule], [typeof i1.TotsTableComponent, typeof i4.TotsTableApiComponent]>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<TotsTableModule>;
13
+ }
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@tots/table",
3
+ "version": "15.0.0",
4
+ "peerDependencies": {
5
+ "@angular/common": "^15.0.0",
6
+ "@angular/core": "^15.0.0",
7
+ "@tots/core": "^15.0.3"
8
+ },
9
+ "dependencies": {
10
+ "tslib": "^2.3.0"
11
+ },
12
+ "module": "fesm2015/tots-table.mjs",
13
+ "es2020": "fesm2020/tots-table.mjs",
14
+ "esm2020": "esm2020/tots-table.mjs",
15
+ "fesm2020": "fesm2020/tots-table.mjs",
16
+ "fesm2015": "fesm2015/tots-table.mjs",
17
+ "typings": "index.d.ts",
18
+ "exports": {
19
+ "./package.json": {
20
+ "default": "./package.json"
21
+ },
22
+ ".": {
23
+ "types": "./index.d.ts",
24
+ "esm2020": "./esm2020/tots-table.mjs",
25
+ "es2020": "./fesm2020/tots-table.mjs",
26
+ "es2015": "./fesm2015/tots-table.mjs",
27
+ "node": "./fesm2015/tots-table.mjs",
28
+ "default": "./fesm2020/tots-table.mjs"
29
+ }
30
+ },
31
+ "sideEffects": false
32
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Entities
3
+ */
4
+ export * from './lib/entities/tots-column';
5
+ export * from './lib/entities/tots-table-config';
6
+ export * from './lib/entities/tots-action-table';
7
+ /**
8
+ * Helpers
9
+ */
10
+ export * from './lib/helpers/tots-table-helper';
11
+ /**
12
+ * Columns
13
+ */
14
+ export * from './lib/columns/tots-base-column.component';
15
+ export * from './lib/columns/string-column/string-column.component';
16
+ /**
17
+ * Components
18
+ */
19
+ export * from './lib/components/tots-table/tots-table.component';
20
+ export * from './lib/components/tots-table-api/tots-table-api.component';
21
+ /**
22
+ * Modules
23
+ */
24
+ export * from './lib/table.module';