lib-portal-angular 0.0.34 → 0.0.35

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,7 +2,6 @@ import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
3
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
4
  import { NgSelectModule } from '@ng-select/ng-select';
5
- import { NgxPaginationModule } from 'ngx-pagination';
6
5
  import { AutofocusDirective } from '../directive/autofocus-directive/autofocus.directive';
7
6
  import { AlertComponent } from './alert/alert.component';
8
7
  import { BadgeComponent } from './badge/badge.component';
@@ -11,13 +10,15 @@ import { CardComponent } from './card/card.component';
11
10
  import { CheckboxComponent } from './checkbox/checkbox.component';
12
11
  import { CodeHighlightComponent } from './code-highlight/code-highlight.component';
13
12
  import { ConfirmationComponent } from './confirmation/confirmation.component';
13
+ import { CustomPaginationComponent } from './custom-pagination/custom-pagination.component';
14
14
  import { FormComponent } from './form/form.component';
15
15
  import { InputComponent } from './imput/input.component';
16
16
  import { MultiSelectComponent } from './multi-select/multi-select.component';
17
17
  import { RadioComponent } from './radio/radio.component';
18
18
  import { SelectComponent } from './select/select.component';
19
- import { BootstrapTableComponent } from './tables/bootstrap-table.component';
19
+ import { DataTableComponent } from './tables/data-table.component';
20
20
  import { TextareaComponent } from './textarea/textarea.component';
21
+ import { TreeNodeComponent } from './tree-node/tree-node.component';
21
22
  import * as i0 from "@angular/core";
22
23
  export class ComponentsModule {
23
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -30,16 +31,17 @@ export class ComponentsModule {
30
31
  SelectComponent,
31
32
  RadioComponent,
32
33
  MultiSelectComponent,
33
- BootstrapTableComponent,
34
+ DataTableComponent,
34
35
  CodeHighlightComponent,
35
36
  BadgeComponent,
36
37
  AlertComponent,
37
38
  ConfirmationComponent,
38
- AutofocusDirective], imports: [CommonModule,
39
+ AutofocusDirective,
40
+ CustomPaginationComponent,
41
+ TreeNodeComponent], imports: [CommonModule,
39
42
  FormsModule,
40
43
  ReactiveFormsModule,
41
- NgSelectModule,
42
- NgxPaginationModule], exports: [ButtonComponent,
44
+ NgSelectModule], exports: [ButtonComponent,
43
45
  CardComponent,
44
46
  FormComponent,
45
47
  InputComponent,
@@ -51,16 +53,17 @@ export class ComponentsModule {
51
53
  FormsModule,
52
54
  ReactiveFormsModule,
53
55
  NgSelectModule,
54
- BootstrapTableComponent,
56
+ DataTableComponent,
55
57
  CodeHighlightComponent,
56
58
  BadgeComponent,
57
59
  AlertComponent,
58
- ConfirmationComponent] }); }
60
+ ConfirmationComponent,
61
+ CustomPaginationComponent,
62
+ TreeNodeComponent] }); }
59
63
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, imports: [CommonModule,
60
64
  FormsModule,
61
65
  ReactiveFormsModule,
62
- NgSelectModule,
63
- NgxPaginationModule, FormsModule,
66
+ NgSelectModule, FormsModule,
64
67
  ReactiveFormsModule,
65
68
  NgSelectModule] }); }
66
69
  }
@@ -77,19 +80,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
77
80
  SelectComponent,
78
81
  RadioComponent,
79
82
  MultiSelectComponent,
80
- BootstrapTableComponent,
83
+ DataTableComponent,
81
84
  CodeHighlightComponent,
82
85
  BadgeComponent,
83
86
  AlertComponent,
84
87
  ConfirmationComponent,
85
88
  AutofocusDirective,
89
+ CustomPaginationComponent,
90
+ TreeNodeComponent,
86
91
  ],
87
92
  imports: [
88
93
  CommonModule,
89
94
  FormsModule,
90
95
  ReactiveFormsModule,
91
96
  NgSelectModule,
92
- NgxPaginationModule,
93
97
  ],
94
98
  exports: [
95
99
  ButtonComponent,
@@ -104,12 +108,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
104
108
  FormsModule,
105
109
  ReactiveFormsModule,
106
110
  NgSelectModule,
107
- BootstrapTableComponent,
111
+ DataTableComponent,
108
112
  CodeHighlightComponent,
109
113
  BadgeComponent,
110
114
  AlertComponent,
111
115
  ConfirmationComponent,
116
+ CustomPaginationComponent,
117
+ TreeNodeComponent,
112
118
  ],
113
119
  }]
114
120
  }] });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2NvbXBvbmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUErQ2xFLE1BQU0sT0FBTyxnQkFBZ0I7K0dBQWhCLGdCQUFnQjtnSEFBaEIsZ0JBQWdCLGlCQTNDekIsZUFBZTtZQUNmLGFBQWE7WUFDYixhQUFhO1lBQ2IsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGNBQWM7WUFDZCxvQkFBb0I7WUFDcEIsdUJBQXVCO1lBQ3ZCLHNCQUFzQjtZQUN0QixjQUFjO1lBQ2QsY0FBYztZQUNkLHFCQUFxQjtZQUNyQixrQkFBa0IsYUFHbEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsY0FBYztZQUNkLG1CQUFtQixhQUduQixlQUFlO1lBQ2YsYUFBYTtZQUNiLGFBQWE7WUFDYixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2YsY0FBYztZQUNkLG9CQUFvQjtZQUNwQixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCx1QkFBdUI7WUFDdkIsc0JBQXNCO1lBQ3RCLGNBQWM7WUFDZCxjQUFjO1lBQ2QscUJBQXFCO2dIQUdaLGdCQUFnQixZQTFCekIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsY0FBYztZQUNkLG1CQUFtQixFQVluQixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGNBQWM7OzRGQVFMLGdCQUFnQjtrQkE3QzVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QscUJBQXFCO3FCQUN0QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcbmltcG9ydCB7IE5neFBhZ2luYXRpb25Nb2R1bGUgfSBmcm9tICduZ3gtcGFnaW5hdGlvbic7XG5pbXBvcnQgeyBBdXRvZm9jdXNEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmUvYXV0b2ZvY3VzLWRpcmVjdGl2ZS9hdXRvZm9jdXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9hbGVydC9hbGVydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tICcuL2JhZGdlL2JhZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRDb21wb25lbnQgfSBmcm9tICcuL2NhcmQvY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2RlSGlnaGxpZ2h0Q29tcG9uZW50IH0gZnJvbSAnLi9jb2RlLWhpZ2hsaWdodC9jb2RlLWhpZ2hsaWdodC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb25maXJtYXRpb24vY29uZmlybWF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9pbXB1dC9pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpby9yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb290c3RyYXBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGVzL2Jvb3RzdHJhcC10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDYXJkQ29tcG9uZW50LFxuICAgIEZvcm1Db21wb25lbnQsXG4gICAgSW5wdXRDb21wb25lbnQsXG4gICAgQ2hlY2tib3hDb21wb25lbnQsXG4gICAgVGV4dGFyZWFDb21wb25lbnQsXG4gICAgU2VsZWN0Q29tcG9uZW50LFxuICAgIFJhZGlvQ29tcG9uZW50LFxuICAgIE11bHRpU2VsZWN0Q29tcG9uZW50LFxuICAgIEJvb3RzdHJhcFRhYmxlQ29tcG9uZW50LFxuICAgIENvZGVIaWdobGlnaHRDb21wb25lbnQsXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgQWxlcnRDb21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uQ29tcG9uZW50LFxuICAgIEF1dG9mb2N1c0RpcmVjdGl2ZSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE5nU2VsZWN0TW9kdWxlLFxuICAgIE5neFBhZ2luYXRpb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQ2FyZENvbXBvbmVudCxcbiAgICBGb3JtQ29tcG9uZW50LFxuICAgIElucHV0Q29tcG9uZW50LFxuICAgIENoZWNrYm94Q29tcG9uZW50LFxuICAgIFRleHRhcmVhQ29tcG9uZW50LFxuICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICBSYWRpb0NvbXBvbmVudCxcbiAgICBNdWx0aVNlbGVjdENvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE5nU2VsZWN0TW9kdWxlLFxuICAgIEJvb3RzdHJhcFRhYmxlQ29tcG9uZW50LFxuICAgIENvZGVIaWdobGlnaHRDb21wb25lbnQsXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgQWxlcnRDb21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRzTW9kdWxlIHsgfVxuIl19
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2NvbXBvbmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFrRHBFLE1BQU0sT0FBTyxnQkFBZ0I7K0dBQWhCLGdCQUFnQjtnSEFBaEIsZ0JBQWdCLGlCQTlDekIsZUFBZTtZQUNmLGFBQWE7WUFDYixhQUFhO1lBQ2IsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGNBQWM7WUFDZCxvQkFBb0I7WUFDcEIsa0JBQWtCO1lBQ2xCLHNCQUFzQjtZQUN0QixjQUFjO1lBQ2QsY0FBYztZQUNkLHFCQUFxQjtZQUNyQixrQkFBa0I7WUFDbEIseUJBQXlCO1lBQ3pCLGlCQUFpQixhQUdqQixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixjQUFjLGFBR2QsZUFBZTtZQUNmLGFBQWE7WUFDYixhQUFhO1lBQ2IsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGNBQWM7WUFDZCxvQkFBb0I7WUFDcEIsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLHNCQUFzQjtZQUN0QixjQUFjO1lBQ2QsY0FBYztZQUNkLHFCQUFxQjtZQUNyQix5QkFBeUI7WUFDekIsaUJBQWlCO2dIQUdSLGdCQUFnQixZQTNCekIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsY0FBYyxFQVlkLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsY0FBYzs7NEZBVUwsZ0JBQWdCO2tCQWhENUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6QixpQkFBaUI7cUJBQ2xCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLHFCQUFxQjt3QkFDckIseUJBQXlCO3dCQUN6QixpQkFBaUI7cUJBQ2xCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHsgQXV0b2ZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlL2F1dG9mb2N1cy1kaXJlY3RpdmUvYXV0b2ZvY3VzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBbGVydENvbXBvbmVudCB9IGZyb20gJy4vYWxlcnQvYWxlcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJkL2NhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29kZUhpZ2hsaWdodENvbXBvbmVudCB9IGZyb20gJy4vY29kZS1oaWdobGlnaHQvY29kZS1oaWdobGlnaHQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY3VzdG9tLXBhZ2luYXRpb24vY3VzdG9tLXBhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2ltcHV0L2lucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmFkaW9Db21wb25lbnQgfSBmcm9tICcuL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGVzL2RhdGEtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJlZU5vZGVDb21wb25lbnQgfSBmcm9tICcuL3RyZWUtbm9kZS90cmVlLW5vZGUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIENhcmRDb21wb25lbnQsXG4gICAgRm9ybUNvbXBvbmVudCxcbiAgICBJbnB1dENvbXBvbmVudCxcbiAgICBDaGVja2JveENvbXBvbmVudCxcbiAgICBUZXh0YXJlYUNvbXBvbmVudCxcbiAgICBTZWxlY3RDb21wb25lbnQsXG4gICAgUmFkaW9Db21wb25lbnQsXG4gICAgTXVsdGlTZWxlY3RDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlQ29tcG9uZW50LFxuICAgIENvZGVIaWdobGlnaHRDb21wb25lbnQsXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgQWxlcnRDb21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uQ29tcG9uZW50LFxuICAgIEF1dG9mb2N1c0RpcmVjdGl2ZSxcbiAgICBDdXN0b21QYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgIFRyZWVOb2RlQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTmdTZWxlY3RNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQ2FyZENvbXBvbmVudCxcbiAgICBGb3JtQ29tcG9uZW50LFxuICAgIElucHV0Q29tcG9uZW50LFxuICAgIENoZWNrYm94Q29tcG9uZW50LFxuICAgIFRleHRhcmVhQ29tcG9uZW50LFxuICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICBSYWRpb0NvbXBvbmVudCxcbiAgICBNdWx0aVNlbGVjdENvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE5nU2VsZWN0TW9kdWxlLFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBDb2RlSGlnaGxpZ2h0Q29tcG9uZW50LFxuICAgIEJhZGdlQ29tcG9uZW50LFxuICAgIEFsZXJ0Q29tcG9uZW50LFxuICAgIENvbmZpcm1hdGlvbkNvbXBvbmVudCxcbiAgICBDdXN0b21QYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgIFRyZWVOb2RlQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRzTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,61 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class CustomPaginationComponent {
5
+ constructor() {
6
+ this.totalItems = 0;
7
+ this.itemsPerPage = 10;
8
+ this.currentPage = 1;
9
+ this.maxSize = 5; // Número máximo de botões de página visíveis
10
+ this.pageText = 'Page'; // Texto para "Page"
11
+ this.ofText = 'of'; // Texto para "of"
12
+ this.showPageInfo = true; // Mostrar ou esconder a informação da página
13
+ this.pageChange = new EventEmitter();
14
+ }
15
+ get totalPages() {
16
+ return Math.ceil(this.totalItems / this.itemsPerPage);
17
+ }
18
+ changePage(page) {
19
+ if (page >= 1 && page <= this.totalPages) {
20
+ this.currentPage = page;
21
+ this.pageChange.emit(this.currentPage);
22
+ }
23
+ }
24
+ get pages() {
25
+ const pages = [];
26
+ const half = Math.floor(this.maxSize / 2);
27
+ let start = Math.max(this.currentPage - half, 1);
28
+ let end = start + this.maxSize - 1;
29
+ if (end > this.totalPages) {
30
+ end = this.totalPages;
31
+ start = Math.max(end - this.maxSize + 1, 1);
32
+ }
33
+ for (let i = start; i <= end; i++) {
34
+ pages.push(i);
35
+ }
36
+ return pages;
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomPaginationComponent, selector: "custom-pagination", inputs: { totalItems: "totalItems", itemsPerPage: "itemsPerPage", currentPage: "currentPage", maxSize: "maxSize", pageText: "pageText", ofText: "ofText", showPageInfo: "showPageInfo" }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "<nav *ngIf=\"totalPages > 0\">\n <ul class=\"pagination\">\n <li class=\"page-item\" [class.disabled]=\"currentPage === 1\">\n <a class=\"page-link\" (click)=\"changePage(1)\">&laquo;&laquo;</a>\n </li>\n <li class=\"page-item\" [class.disabled]=\"currentPage === 1\">\n <a class=\"page-link\" (click)=\"changePage(currentPage - 1)\">&laquo;</a>\n </li>\n <li class=\"page-item\" *ngFor=\"let page of pages\" [class.active]=\"page === currentPage\">\n <a class=\"page-link\" (click)=\"changePage(page)\">{{ page }}</a>\n </li>\n <li class=\"page-item\" [class.disabled]=\"currentPage === totalPages\">\n <a class=\"page-link\" (click)=\"changePage(currentPage + 1)\">&raquo;</a>\n </li>\n <li class=\"page-item\" [class.disabled]=\"currentPage === totalPages\">\n <a class=\"page-link\" (click)=\"changePage(totalPages)\">&raquo;&raquo;</a>\n </li>\n </ul>\n <div class=\"page-info\" *ngIf=\"showPageInfo\" style=\"font-size: 0.8rem;\">\n {{ pageText }} {{ currentPage }} {{ ofText }} {{ totalPages }}\n </div>\n</nav>\n", styles: [".pagination{display:flex;list-style:none;padding:0;margin:1rem 0;justify-content:center;align-items:center}.page-item{margin:0 .25rem}.page-item.disabled .page-link{cursor:not-allowed;opacity:.5}.page-item.active .page-link{background-color:#00444c;color:#fff}.page-item .page-link{padding:.5rem .75rem;border:1px solid #dee2e6;border-radius:.25rem;text-decoration:none;color:#00444c;cursor:pointer;transition:background-color .2s}.page-item .page-link:hover{background-color:#2ca58d}.page-info{margin-left:1rem;font-size:1rem;color:#00444c;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomPaginationComponent, decorators: [{
42
+ type: Component,
43
+ args: [{ selector: 'custom-pagination', template: "<nav *ngIf=\"totalPages > 0\">\n <ul class=\"pagination\">\n <li class=\"page-item\" [class.disabled]=\"currentPage === 1\">\n <a class=\"page-link\" (click)=\"changePage(1)\">&laquo;&laquo;</a>\n </li>\n <li class=\"page-item\" [class.disabled]=\"currentPage === 1\">\n <a class=\"page-link\" (click)=\"changePage(currentPage - 1)\">&laquo;</a>\n </li>\n <li class=\"page-item\" *ngFor=\"let page of pages\" [class.active]=\"page === currentPage\">\n <a class=\"page-link\" (click)=\"changePage(page)\">{{ page }}</a>\n </li>\n <li class=\"page-item\" [class.disabled]=\"currentPage === totalPages\">\n <a class=\"page-link\" (click)=\"changePage(currentPage + 1)\">&raquo;</a>\n </li>\n <li class=\"page-item\" [class.disabled]=\"currentPage === totalPages\">\n <a class=\"page-link\" (click)=\"changePage(totalPages)\">&raquo;&raquo;</a>\n </li>\n </ul>\n <div class=\"page-info\" *ngIf=\"showPageInfo\" style=\"font-size: 0.8rem;\">\n {{ pageText }} {{ currentPage }} {{ ofText }} {{ totalPages }}\n </div>\n</nav>\n", styles: [".pagination{display:flex;list-style:none;padding:0;margin:1rem 0;justify-content:center;align-items:center}.page-item{margin:0 .25rem}.page-item.disabled .page-link{cursor:not-allowed;opacity:.5}.page-item.active .page-link{background-color:#00444c;color:#fff}.page-item .page-link{padding:.5rem .75rem;border:1px solid #dee2e6;border-radius:.25rem;text-decoration:none;color:#00444c;cursor:pointer;transition:background-color .2s}.page-item .page-link:hover{background-color:#2ca58d}.page-info{margin-left:1rem;font-size:1rem;color:#00444c;font-weight:700}\n"] }]
44
+ }], propDecorators: { totalItems: [{
45
+ type: Input
46
+ }], itemsPerPage: [{
47
+ type: Input
48
+ }], currentPage: [{
49
+ type: Input
50
+ }], maxSize: [{
51
+ type: Input
52
+ }], pageText: [{
53
+ type: Input
54
+ }], ofText: [{
55
+ type: Input
56
+ }], showPageInfo: [{
57
+ type: Input
58
+ }], pageChange: [{
59
+ type: Output
60
+ }] } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXBhZ2luYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGliLXBvcnRhbC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9jdXN0b20tcGFnaW5hdGlvbi9jdXN0b20tcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1wYWdpbmF0aW9uL2N1c3RvbS1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU92RSxNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBTWEsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixZQUFPLEdBQVcsQ0FBQyxDQUFDLENBQUMsNkNBQTZDO1FBQ2xFLGFBQVEsR0FBVyxNQUFNLENBQUMsQ0FBQyxvQkFBb0I7UUFDL0MsV0FBTSxHQUFXLElBQUksQ0FBQyxDQUFDLGtCQUFrQjtRQUN6QyxpQkFBWSxHQUFZLElBQUksQ0FBQyxDQUFDLDZDQUE2QztRQUMxRSxlQUFVLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7S0E2QjNFO0lBM0JHLElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDbkIsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMxQztJQUNMLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDTCxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7UUFDM0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakQsSUFBSSxHQUFHLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBRW5DLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDdkIsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDdEIsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQy9DO1FBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMvQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pCO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzsrR0FwQ1EseUJBQXlCO21HQUF6Qix5QkFBeUIsMFJDUHRDLDRqQ0FzQkE7OzRGRGZhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDSSxtQkFBbUI7OEJBS3BCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1c3RvbS1wYWdpbmF0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2N1c3RvbS1wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tUGFnaW5hdGlvbkNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgdG90YWxJdGVtczogbnVtYmVyID0gMDtcbiAgICBASW5wdXQoKSBpdGVtc1BlclBhZ2U6IG51bWJlciA9IDEwO1xuICAgIEBJbnB1dCgpIGN1cnJlbnRQYWdlOiBudW1iZXIgPSAxO1xuICAgIEBJbnB1dCgpIG1heFNpemU6IG51bWJlciA9IDU7IC8vIE7Dum1lcm8gbcOheGltbyBkZSBib3TDtWVzIGRlIHDDoWdpbmEgdmlzw612ZWlzXG4gICAgQElucHV0KCkgcGFnZVRleHQ6IHN0cmluZyA9ICdQYWdlJzsgLy8gVGV4dG8gcGFyYSBcIlBhZ2VcIlxuICAgIEBJbnB1dCgpIG9mVGV4dDogc3RyaW5nID0gJ29mJzsgLy8gVGV4dG8gcGFyYSBcIm9mXCJcbiAgICBASW5wdXQoKSBzaG93UGFnZUluZm86IGJvb2xlYW4gPSB0cnVlOyAvLyBNb3N0cmFyIG91IGVzY29uZGVyIGEgaW5mb3JtYcOnw6NvIGRhIHDDoWdpbmFcbiAgICBAT3V0cHV0KCkgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIGdldCB0b3RhbFBhZ2VzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy50b3RhbEl0ZW1zIC8gdGhpcy5pdGVtc1BlclBhZ2UpO1xuICAgIH1cblxuICAgIGNoYW5nZVBhZ2UocGFnZTogbnVtYmVyKSB7XG4gICAgICAgIGlmIChwYWdlID49IDEgJiYgcGFnZSA8PSB0aGlzLnRvdGFsUGFnZXMpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlO1xuICAgICAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQodGhpcy5jdXJyZW50UGFnZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgcGFnZXMoKTogbnVtYmVyW10ge1xuICAgICAgICBjb25zdCBwYWdlczogbnVtYmVyW10gPSBbXTtcbiAgICAgICAgY29uc3QgaGFsZiA9IE1hdGguZmxvb3IodGhpcy5tYXhTaXplIC8gMik7XG4gICAgICAgIGxldCBzdGFydCA9IE1hdGgubWF4KHRoaXMuY3VycmVudFBhZ2UgLSBoYWxmLCAxKTtcbiAgICAgICAgbGV0IGVuZCA9IHN0YXJ0ICsgdGhpcy5tYXhTaXplIC0gMTtcblxuICAgICAgICBpZiAoZW5kID4gdGhpcy50b3RhbFBhZ2VzKSB7XG4gICAgICAgICAgICBlbmQgPSB0aGlzLnRvdGFsUGFnZXM7XG4gICAgICAgICAgICBzdGFydCA9IE1hdGgubWF4KGVuZCAtIHRoaXMubWF4U2l6ZSArIDEsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDw9IGVuZDsgaSsrKSB7XG4gICAgICAgICAgICBwYWdlcy5wdXNoKGkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYWdlcztcbiAgICB9XG59XG4iLCI8bmF2ICpuZ0lmPVwidG90YWxQYWdlcyA+IDBcIj5cbiAgPHVsIGNsYXNzPVwicGFnaW5hdGlvblwiPlxuICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiPlxuICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiAoY2xpY2spPVwiY2hhbmdlUGFnZSgxKVwiPiZsYXF1bzsmbGFxdW87PC9hPlxuICAgIDwvbGk+XG4gICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCIgW2NsYXNzLmRpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSAxXCI+XG4gICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJjaGFuZ2VQYWdlKGN1cnJlbnRQYWdlIC0gMSlcIj4mbGFxdW87PC9hPlxuICAgIDwvbGk+XG4gICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCIgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXNcIiBbY2xhc3MuYWN0aXZlXT1cInBhZ2UgPT09IGN1cnJlbnRQYWdlXCI+XG4gICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJjaGFuZ2VQYWdlKHBhZ2UpXCI+e3sgcGFnZSB9fTwvYT5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gdG90YWxQYWdlc1wiPlxuICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiAoY2xpY2spPVwiY2hhbmdlUGFnZShjdXJyZW50UGFnZSArIDEpXCI+JnJhcXVvOzwvYT5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gdG90YWxQYWdlc1wiPlxuICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiAoY2xpY2spPVwiY2hhbmdlUGFnZSh0b3RhbFBhZ2VzKVwiPiZyYXF1bzsmcmFxdW87PC9hPlxuICAgIDwvbGk+XG4gIDwvdWw+XG4gIDxkaXYgY2xhc3M9XCJwYWdlLWluZm9cIiAqbmdJZj1cInNob3dQYWdlSW5mb1wiIHN0eWxlPVwiZm9udC1zaXplOiAwLjhyZW07XCI+XG4gICAge3sgcGFnZVRleHQgfX0ge3sgY3VycmVudFBhZ2UgfX0ge3sgb2ZUZXh0IH19IHt7IHRvdGFsUGFnZXMgfX1cbiAgPC9kaXY+XG48L25hdj5cbiJdfQ==
@@ -0,0 +1,173 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/forms";
5
+ import * as i3 from "../custom-pagination/custom-pagination.component";
6
+ export class DataTableComponent {
7
+ constructor(cdr) {
8
+ this.cdr = cdr;
9
+ this.columns = [];
10
+ this.data = [];
11
+ this.itemsPerPageOptions = [5, 10, 15, 20];
12
+ this.defaultItemsPerPage = 10;
13
+ this.itemsPerPageLabel = 'Items per page:';
14
+ this.marginTop = 0;
15
+ this.marginBottom = 0;
16
+ this.marginLeft = 0;
17
+ this.marginRight = 0;
18
+ this.showActionColumn = false;
19
+ this.actionColumnLabel = 'Actions';
20
+ this.totalItems = 0;
21
+ this.tableFontColor = '#000';
22
+ this.tableFontSize = '14px';
23
+ this.fetchDataFunction = () => {
24
+ return Promise.reject('Implement the fetchDataFunction to fetch paginated data from the back-end.');
25
+ }; // Função de busca de dados
26
+ this.editPermissions = [];
27
+ this.deletePermissions = [];
28
+ this.viewPermissions = [];
29
+ this.userPermissions = [];
30
+ this.showPageInfo = true; // Controle de exibição da informação da página
31
+ this.pageText = 'Page'; // Texto para "Page"
32
+ this.ofText = 'of'; // Texto para "of"
33
+ this.sortChange = new EventEmitter();
34
+ this.pageChange = new EventEmitter();
35
+ this.itemsPerPageChange = new EventEmitter();
36
+ this.onEditTable = new EventEmitter();
37
+ this.onDeleteTable = new EventEmitter();
38
+ this.onViewTable = new EventEmitter();
39
+ this.currentPage = 1;
40
+ this.pagedData = [];
41
+ this.isLoading = false;
42
+ this.labelStyle = {
43
+ 'font-family': 'Inter, Arial, sans-serif',
44
+ 'font-size': '14px',
45
+ 'color': '#000'
46
+ };
47
+ }
48
+ ngOnInit() {
49
+ this.fetchData();
50
+ this.setDefaultPermissions();
51
+ }
52
+ ngOnChanges(changes) {
53
+ if (changes['totalItems'] || changes['defaultItemsPerPage'] || changes['currentPage'] || changes['data']) {
54
+ this.fetchData();
55
+ }
56
+ }
57
+ setDefaultPermissions() {
58
+ if (!this.userPermissions || this.userPermissions.length === 0) {
59
+ this.userPermissions = ['edit', 'delete', 'view'];
60
+ }
61
+ }
62
+ async fetchData() {
63
+ if (this.fetchDataFunction) {
64
+ this.isLoading = true;
65
+ try {
66
+ const data = await this.fetchDataFunction(this.currentPage, this.defaultItemsPerPage);
67
+ this.pagedData = data.items;
68
+ this.totalItems = data.totalItems;
69
+ }
70
+ finally {
71
+ this.isLoading = false;
72
+ this.cdr.markForCheck(); // Força a detecção de mudanças
73
+ }
74
+ }
75
+ }
76
+ onSort(column) {
77
+ this.sortChange.emit(column);
78
+ }
79
+ onPageChange(page) {
80
+ this.currentPage = page;
81
+ this.pageChange.emit(page);
82
+ this.fetchData();
83
+ }
84
+ onItemsPerPageChange(event) {
85
+ const itemsPerPage = parseInt(event, 10);
86
+ this.defaultItemsPerPage = itemsPerPage;
87
+ this.currentPage = 1;
88
+ this.itemsPerPageChange.emit(itemsPerPage);
89
+ this.fetchData();
90
+ }
91
+ handleAction(action, item, index) {
92
+ switch (action) {
93
+ case 'edit':
94
+ this.onEditTable.emit({ item, index });
95
+ break;
96
+ case 'delete':
97
+ this.onDeleteTable.emit({ item, index });
98
+ break;
99
+ case 'view':
100
+ this.onViewTable.emit({ item, index });
101
+ break;
102
+ }
103
+ }
104
+ hasPermission(requiredPermissions) {
105
+ if (!this.userPermissions || this.userPermissions.length === 0) {
106
+ return true;
107
+ }
108
+ return requiredPermissions.every(permission => this.userPermissions.includes(permission));
109
+ }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataTableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataTableComponent, selector: "sim-data-table", inputs: { columns: "columns", data: "data", itemsPerPageOptions: "itemsPerPageOptions", defaultItemsPerPage: "defaultItemsPerPage", itemsPerPageLabel: "itemsPerPageLabel", marginTop: "marginTop", marginBottom: "marginBottom", marginLeft: "marginLeft", marginRight: "marginRight", showActionColumn: "showActionColumn", actionColumnLabel: "actionColumnLabel", totalItems: "totalItems", tableFontColor: "tableFontColor", tableFontSize: "tableFontSize", fetchDataFunction: "fetchDataFunction", editPermissions: "editPermissions", deletePermissions: "deletePermissions", viewPermissions: "viewPermissions", userPermissions: "userPermissions", showPageInfo: "showPageInfo", pageText: "pageText", ofText: "ofText" }, outputs: { sortChange: "sortChange", pageChange: "pageChange", itemsPerPageChange: "itemsPerPageChange", onEditTable: "onEditTable", onDeleteTable: "onDeleteTable", onViewTable: "onViewTable" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\" [ngStyle]=\"{\n 'margin-top': marginTop + 'rem',\n 'margin-bottom': marginBottom + 'rem',\n 'margin-left': marginLeft + 'rem',\n 'margin-right': marginRight + 'rem'\n}\" style=\"text-align: right;\">\n <label for=\"itemsPerPageSelect\" style=\"margin-right: 0.5rem; margin-bottom: 0.7rem;\" [ngStyle]=\"labelStyle\">{{ itemsPerPageLabel }}</label>\n <select\n id=\"itemsPerPageSelect\"\n class=\"form-control form-control-sm d-inline-block w-auto\"\n [(ngModel)]=\"defaultItemsPerPage\"\n (ngModelChange)=\"onItemsPerPageChange($event)\">\n <option *ngFor=\"let option of itemsPerPageOptions\" [value]=\"option\">{{ option }}</option>\n </select>\n</div>\n\n<div class=\"table-responsive\">\n <table class=\"table table-hover\" [ngStyle]=\"{ 'color': tableFontColor, 'font-size': tableFontSize }\">\n <thead>\n <tr>\n <ng-container *ngFor=\"let column of columns\">\n <th *ngIf=\"hasPermission(column.permissions || [])\" (click)=\"onSort(column.prop)\">\n {{ column.label }}\n </th>\n </ng-container>\n <th *ngIf=\"showActionColumn\">{{ actionColumnLabel }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of pagedData; let i = index\">\n <ng-container *ngFor=\"let column of columns\">\n <td *ngIf=\"hasPermission(column.permissions || [])\">\n {{ item[column.prop] }}\n </td>\n </ng-container>\n <td *ngIf=\"showActionColumn\">\n <div class=\"d-flex justify-content-center\">\n <div *ngIf=\"hasPermission(editPermissions)\" (click)=\"handleAction('edit', item, i)\" class=\"btn-icon edit mx-1\"></div>\n <div *ngIf=\"hasPermission(deletePermissions)\" (click)=\"handleAction('delete', item, i)\" class=\"btn-icon delete mx-1\"></div>\n <div *ngIf=\"hasPermission(viewPermissions)\" (click)=\"handleAction('view', item, i)\" class=\"btn-icon view mx-1\"></div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n\n<div class=\"text-center pagination-controls\">\n <custom-pagination\n [totalItems]=\"totalItems\"\n [itemsPerPage]=\"defaultItemsPerPage\"\n [currentPage]=\"currentPage\"\n [showPageInfo]=\"showPageInfo\"\n [pageText]=\"pageText\"\n [ofText]=\"ofText\"\n (pageChange)=\"onPageChange($event)\">\n </custom-pagination>\n</div>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap\";:host{font-family:Inter,Arial,sans-serif}.label-style{font-family:Inter,Arial,sans-serif;font-size:14px;color:#000}.table{font-family:Inter,Arial,sans-serif;color:var(--table-font-color, #000);font-size:var(--table-font-size, 14px);border-collapse:separate;border-spacing:0;border-radius:8px;overflow:hidden;border:.13rem solid #00444C}.table thead th{background-color:#00444c;color:#fff;padding:10px;border-bottom:1rem solid rgba(0,68,76,.8);border-right:1rem solid rgba(0,68,76,.8);border-radius:0}.table thead th:last-child{border-right:none}.table tbody td{padding:10px;border-bottom:.1rem solid rgba(0,68,76,.8);border-right:.1rem solid rgba(0,68,76,.8)}.table tbody tr:last-child td{border-bottom:none}.table tbody td:last-child{border-right:none}.table thead th:first-child{border-top-left-radius:0}.table thead th:last-child{border-top-right-radius:0}.table tbody tr:last-child td:first-child{border-bottom-left-radius:8px}.table tbody tr:last-child td:last-child{border-bottom-right-radius:8px}.btn-icon{width:24px;height:24px;background-size:cover;display:inline-block;cursor:pointer;margin-right:16px}.btn-icon.edit{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABrUlEQVR4nGNgoDI44+PD9b++nona5jLsSC4UupOauvpVVdXLJ4WF128mJkZSzfCdxfViG5dueHtswcr/3/v7wfhxYeF1qvikuLtbbMXG/WduPPvy/+K9t/8PLVwFtuBlZeVLUHBRZHhMdzF3Wk//7XN3Xv27+fzrfxC+dPfNf5BP7qanr6DYcL2CxF2MLj7/oxp7/1+4+wZsCcgnm5Zuersls0KQIsP185N2gwxngOLw+p7/IJ8s37Tv4sbWVnGquJwBCYP4qb199/ImTKDQ8MKEndgM1y9MPOjXWcpLkeFGxYl7GF3pbLjBkHW5/sg1vL47Q8y6JOE0zQwPqEl8h244g6vPf928hH0UGQ4CU2akHbLOjcN0eX7intApWTwUGb6221vn0d7KD5s2VP93LEyAG+5UGn+bYsNBYM/chFlfz7X+B+Etm6r/OxQm/A+oTnpXPyVegmLDMzJcxULDgn883F8PtuDR3oqPs2enHaickEx+wYUMcpKDNps5+P4PDQv+uW9e8sIVfYFGDNQC/xkYGIOD/Z8nxwfujIvzlqaawTBQz8DABMJUNxgKAOk7VoIIOJGlAAAAAElFTkSuQmCC)}.btn-icon.delete{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 viewBox%3D%220%2C0%2C256%2C256%22 width%3D%2224px%22 height%3D%2224px%22%3E%3Cg fill%3D%22%23fb0909%22 fill-rule%3D%22nonzero%22 stroke%3D%22none%22 stroke-width%3D%221%22 stroke-linecap%3D%22butt%22 stroke-linejoin%3D%22miter%22 stroke-miterlimit%3D%2210%22 stroke-dasharray%3D%22%22 stroke-dashoffset%3D%220%22 font-family%3D%22none%22 font-weight%3D%22none%22 font-size%3D%22none%22 text-anchor%3D%22none%22 style%3D%22mix-blend-mode%3A normal%22%3E%3Cg transform%3D%22scale(2%2C2)%22%3E%3Cpath d%3D%22M49%2C1c-1.66%2C0 -3%2C1.34 -3%2C3c0%2C1.66 1.34%2C3 3%2C3h30c1.66%2C0 3%2C-1.34 3%2C-3c0%2C-1.66 -1.34%2C-3 -3%2C-3zM24%2C15c-7.17%2C0 -13%2C5.83 -13%2C13c0%2C7.17 5.83%2C13 13%2C13h77v63c0%2C9.37 -7.63%2C17 -17%2C17h-40c-9.37%2C0 -17%2C-7.63 -17%2C-17v-52c0%2C-1.66 -1.34%2C-3 -3%2C-3c-1.66%2C0 -3%2C1.34 -3%2C3v52c0%2C12.68 10.32%2C23 23%2C23h40c12.68%2C0 23%2C-10.32 23%2C-23v-63.35937c5.72%2C-1.36 10%2C-6.50062 10%2C-12.64062c0%2C-7.17 -5.83%2C-13 -13%2C-13zM24%2C21h80c3.86%2C0 7%2C3.14 7%2C7c0%2C3.86 -3.14%2C7 -7%2C7h-80c-3.86%2C0 -7%2C-3.14 -7%2C-7c0%2C-3.86 3.14%2C-7 7%2C-7zM50%2C55c-1.66%2C0 -3%2C1.34 -3%2C3v46c0%2C1.66 1.34%2C3 3%2C3c1.66%2C0 3%2C-1.34 3%2C-3v-46c0%2C-1.66 -1.34%2C-3 -3%2C-3zM78%2C55c-1.66%2C0 -3%2C1.34 -3%2C3v46c0%2C1.66 1.34%2C3 3%2C3c1.66%2C0 3%2C-1.34 3%2C-3v-46c0%2C-1.66 -1.34%2C-3 -3%2C-3z%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E\")}.btn-icon.view{background-image:url(data:image/png;base64,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)}\n"], 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: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.CustomPaginationComponent, selector: "custom-pagination", inputs: ["totalItems", "itemsPerPage", "currentPage", "maxSize", "pageText", "ofText", "showPageInfo"], outputs: ["pageChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
112
+ }
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataTableComponent, decorators: [{
114
+ type: Component,
115
+ args: [{ selector: 'sim-data-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\" [ngStyle]=\"{\n 'margin-top': marginTop + 'rem',\n 'margin-bottom': marginBottom + 'rem',\n 'margin-left': marginLeft + 'rem',\n 'margin-right': marginRight + 'rem'\n}\" style=\"text-align: right;\">\n <label for=\"itemsPerPageSelect\" style=\"margin-right: 0.5rem; margin-bottom: 0.7rem;\" [ngStyle]=\"labelStyle\">{{ itemsPerPageLabel }}</label>\n <select\n id=\"itemsPerPageSelect\"\n class=\"form-control form-control-sm d-inline-block w-auto\"\n [(ngModel)]=\"defaultItemsPerPage\"\n (ngModelChange)=\"onItemsPerPageChange($event)\">\n <option *ngFor=\"let option of itemsPerPageOptions\" [value]=\"option\">{{ option }}</option>\n </select>\n</div>\n\n<div class=\"table-responsive\">\n <table class=\"table table-hover\" [ngStyle]=\"{ 'color': tableFontColor, 'font-size': tableFontSize }\">\n <thead>\n <tr>\n <ng-container *ngFor=\"let column of columns\">\n <th *ngIf=\"hasPermission(column.permissions || [])\" (click)=\"onSort(column.prop)\">\n {{ column.label }}\n </th>\n </ng-container>\n <th *ngIf=\"showActionColumn\">{{ actionColumnLabel }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of pagedData; let i = index\">\n <ng-container *ngFor=\"let column of columns\">\n <td *ngIf=\"hasPermission(column.permissions || [])\">\n {{ item[column.prop] }}\n </td>\n </ng-container>\n <td *ngIf=\"showActionColumn\">\n <div class=\"d-flex justify-content-center\">\n <div *ngIf=\"hasPermission(editPermissions)\" (click)=\"handleAction('edit', item, i)\" class=\"btn-icon edit mx-1\"></div>\n <div *ngIf=\"hasPermission(deletePermissions)\" (click)=\"handleAction('delete', item, i)\" class=\"btn-icon delete mx-1\"></div>\n <div *ngIf=\"hasPermission(viewPermissions)\" (click)=\"handleAction('view', item, i)\" class=\"btn-icon view mx-1\"></div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n\n<div class=\"text-center pagination-controls\">\n <custom-pagination\n [totalItems]=\"totalItems\"\n [itemsPerPage]=\"defaultItemsPerPage\"\n [currentPage]=\"currentPage\"\n [showPageInfo]=\"showPageInfo\"\n [pageText]=\"pageText\"\n [ofText]=\"ofText\"\n (pageChange)=\"onPageChange($event)\">\n </custom-pagination>\n</div>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap\";:host{font-family:Inter,Arial,sans-serif}.label-style{font-family:Inter,Arial,sans-serif;font-size:14px;color:#000}.table{font-family:Inter,Arial,sans-serif;color:var(--table-font-color, #000);font-size:var(--table-font-size, 14px);border-collapse:separate;border-spacing:0;border-radius:8px;overflow:hidden;border:.13rem solid #00444C}.table thead th{background-color:#00444c;color:#fff;padding:10px;border-bottom:1rem solid rgba(0,68,76,.8);border-right:1rem solid rgba(0,68,76,.8);border-radius:0}.table thead th:last-child{border-right:none}.table tbody td{padding:10px;border-bottom:.1rem solid rgba(0,68,76,.8);border-right:.1rem solid rgba(0,68,76,.8)}.table tbody tr:last-child td{border-bottom:none}.table tbody td:last-child{border-right:none}.table thead th:first-child{border-top-left-radius:0}.table thead th:last-child{border-top-right-radius:0}.table tbody tr:last-child td:first-child{border-bottom-left-radius:8px}.table tbody tr:last-child td:last-child{border-bottom-right-radius:8px}.btn-icon{width:24px;height:24px;background-size:cover;display:inline-block;cursor:pointer;margin-right:16px}.btn-icon.edit{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABrUlEQVR4nGNgoDI44+PD9b++nona5jLsSC4UupOauvpVVdXLJ4WF128mJkZSzfCdxfViG5dueHtswcr/3/v7wfhxYeF1qvikuLtbbMXG/WduPPvy/+K9t/8PLVwFtuBlZeVLUHBRZHhMdzF3Wk//7XN3Xv27+fzrfxC+dPfNf5BP7qanr6DYcL2CxF2MLj7/oxp7/1+4+wZsCcgnm5Zuersls0KQIsP185N2gwxngOLw+p7/IJ8s37Tv4sbWVnGquJwBCYP4qb199/ImTKDQ8MKEndgM1y9MPOjXWcpLkeFGxYl7GF3pbLjBkHW5/sg1vL47Q8y6JOE0zQwPqEl8h244g6vPf928hH0UGQ4CU2akHbLOjcN0eX7intApWTwUGb6221vn0d7KD5s2VP93LEyAG+5UGn+bYsNBYM/chFlfz7X+B+Etm6r/OxQm/A+oTnpXPyVegmLDMzJcxULDgn883F8PtuDR3oqPs2enHaickEx+wYUMcpKDNps5+P4PDQv+uW9e8sIVfYFGDNQC/xkYGIOD/Z8nxwfujIvzlqaawTBQz8DABMJUNxgKAOk7VoIIOJGlAAAAAElFTkSuQmCC)}.btn-icon.delete{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 viewBox%3D%220%2C0%2C256%2C256%22 width%3D%2224px%22 height%3D%2224px%22%3E%3Cg fill%3D%22%23fb0909%22 fill-rule%3D%22nonzero%22 stroke%3D%22none%22 stroke-width%3D%221%22 stroke-linecap%3D%22butt%22 stroke-linejoin%3D%22miter%22 stroke-miterlimit%3D%2210%22 stroke-dasharray%3D%22%22 stroke-dashoffset%3D%220%22 font-family%3D%22none%22 font-weight%3D%22none%22 font-size%3D%22none%22 text-anchor%3D%22none%22 style%3D%22mix-blend-mode%3A normal%22%3E%3Cg transform%3D%22scale(2%2C2)%22%3E%3Cpath d%3D%22M49%2C1c-1.66%2C0 -3%2C1.34 -3%2C3c0%2C1.66 1.34%2C3 3%2C3h30c1.66%2C0 3%2C-1.34 3%2C-3c0%2C-1.66 -1.34%2C-3 -3%2C-3zM24%2C15c-7.17%2C0 -13%2C5.83 -13%2C13c0%2C7.17 5.83%2C13 13%2C13h77v63c0%2C9.37 -7.63%2C17 -17%2C17h-40c-9.37%2C0 -17%2C-7.63 -17%2C-17v-52c0%2C-1.66 -1.34%2C-3 -3%2C-3c-1.66%2C0 -3%2C1.34 -3%2C3v52c0%2C12.68 10.32%2C23 23%2C23h40c12.68%2C0 23%2C-10.32 23%2C-23v-63.35937c5.72%2C-1.36 10%2C-6.50062 10%2C-12.64062c0%2C-7.17 -5.83%2C-13 -13%2C-13zM24%2C21h80c3.86%2C0 7%2C3.14 7%2C7c0%2C3.86 -3.14%2C7 -7%2C7h-80c-3.86%2C0 -7%2C-3.14 -7%2C-7c0%2C-3.86 3.14%2C-7 7%2C-7zM50%2C55c-1.66%2C0 -3%2C1.34 -3%2C3v46c0%2C1.66 1.34%2C3 3%2C3c1.66%2C0 3%2C-1.34 3%2C-3v-46c0%2C-1.66 -1.34%2C-3 -3%2C-3zM78%2C55c-1.66%2C0 -3%2C1.34 -3%2C3v46c0%2C1.66 1.34%2C3 3%2C3c1.66%2C0 3%2C-1.34 3%2C-3v-46c0%2C-1.66 -1.34%2C-3 -3%2C-3z%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E\")}.btn-icon.view{background-image:url(data:image/png;base64,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)}\n"] }]
116
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { columns: [{
117
+ type: Input
118
+ }], data: [{
119
+ type: Input
120
+ }], itemsPerPageOptions: [{
121
+ type: Input
122
+ }], defaultItemsPerPage: [{
123
+ type: Input
124
+ }], itemsPerPageLabel: [{
125
+ type: Input
126
+ }], marginTop: [{
127
+ type: Input
128
+ }], marginBottom: [{
129
+ type: Input
130
+ }], marginLeft: [{
131
+ type: Input
132
+ }], marginRight: [{
133
+ type: Input
134
+ }], showActionColumn: [{
135
+ type: Input
136
+ }], actionColumnLabel: [{
137
+ type: Input
138
+ }], totalItems: [{
139
+ type: Input
140
+ }], tableFontColor: [{
141
+ type: Input
142
+ }], tableFontSize: [{
143
+ type: Input
144
+ }], fetchDataFunction: [{
145
+ type: Input
146
+ }], editPermissions: [{
147
+ type: Input
148
+ }], deletePermissions: [{
149
+ type: Input
150
+ }], viewPermissions: [{
151
+ type: Input
152
+ }], userPermissions: [{
153
+ type: Input
154
+ }], showPageInfo: [{
155
+ type: Input
156
+ }], pageText: [{
157
+ type: Input
158
+ }], ofText: [{
159
+ type: Input
160
+ }], sortChange: [{
161
+ type: Output
162
+ }], pageChange: [{
163
+ type: Output
164
+ }], itemsPerPageChange: [{
165
+ type: Output
166
+ }], onEditTable: [{
167
+ type: Output
168
+ }], onDeleteTable: [{
169
+ type: Output
170
+ }], onViewTable: [{
171
+ type: Output
172
+ }] } });
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9kYXRhLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL2RhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRckosTUFBTSxPQUFPLGtCQUFrQjtJQTJDN0IsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUExQ2pDLFlBQU8sR0FBVSxFQUFFLENBQUM7UUFDcEIsU0FBSSxHQUFVLEVBQUUsQ0FBQztRQUNqQix3QkFBbUIsR0FBYSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELHdCQUFtQixHQUFXLEVBQUUsQ0FBQztRQUNqQyxzQkFBaUIsR0FBVyxpQkFBaUIsQ0FBQztRQUM5QyxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBQ3pCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLHNCQUFpQixHQUFXLFNBQVMsQ0FBQztRQUN0QyxlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQVcsTUFBTSxDQUFDO1FBQ2hDLGtCQUFhLEdBQVcsTUFBTSxDQUFDO1FBQy9CLHNCQUFpQixHQUEwRixHQUFHLEVB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QjtrQkFOOUIsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTTt3R0FHdEMsT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaW0tZGF0YS10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNvbHVtbnM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGRhdGE6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGl0ZW1zUGVyUGFnZU9wdGlvbnM6IG51bWJlcltdID0gWzUsIDEwLCAxNSwgMjBdO1xuICBASW5wdXQoKSBkZWZhdWx0SXRlbXNQZXJQYWdlOiBudW1iZXIgPSAxMDtcbiAgQElucHV0KCkgaXRlbXNQZXJQYWdlTGFiZWw6IHN0cmluZyA9ICdJdGVtcyBwZXIgcGFnZTonO1xuICBASW5wdXQoKSBtYXJnaW5Ub3A6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmdpbkJvdHRvbTogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgbWFyZ2luTGVmdDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgbWFyZ2luUmlnaHQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHNob3dBY3Rpb25Db2x1bW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYWN0aW9uQ29sdW1uTGFiZWw6IHN0cmluZyA9ICdBY3Rpb25zJztcbiAgQElucHV0KCkgdG90YWxJdGVtczogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgdGFibGVGb250Q29sb3I6IHN0cmluZyA9ICcjMDAwJztcbiAgQElucHV0KCkgdGFibGVGb250U2l6ZTogc3RyaW5nID0gJzE0cHgnO1xuICBASW5wdXQoKSBmZXRjaERhdGFGdW5jdGlvbjogKHBhZ2U6IG51bWJlciwgaXRlbXNQZXJQYWdlOiBudW1iZXIpID0+IFByb21pc2U8eyBpdGVtczogYW55W10sIHRvdGFsSXRlbXM6IG51bWJlciB9PiA9ICgpID0+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ0ltcGxlbWVudCB0aGUgZmV0Y2hEYXRhRnVuY3Rpb24gdG8gZmV0Y2ggcGFnaW5hdGVkIGRhdGEgZnJvbSB0aGUgYmFjay1lbmQuJyk7XG4gIH07IC8vIEZ1bsOnw6NvIGRlIGJ1c2NhIGRlIGRhZG9zXG4gIEBJbnB1dCgpIGVkaXRQZXJtaXNzaW9uczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgZGVsZXRlUGVybWlzc2lvbnM6IHN0cmluZ1tdID0gW107XG4gIEBJbnB1dCgpIHZpZXdQZXJtaXNzaW9uczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgdXNlclBlcm1pc3Npb25zOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBzaG93UGFnZUluZm86IGJvb2xlYW4gPSB0cnVlOyAvLyBDb250cm9sZSBkZSBleGliacOnw6NvIGRhIGluZm9ybWHDp8OjbyBkYSBww6FnaW5hXG4gIEBJbnB1dCgpIHBhZ2VUZXh0OiBzdHJpbmcgPSAnUGFnZSc7IC8vIFRleHRvIHBhcmEgXCJQYWdlXCJcbiAgQElucHV0KCkgb2ZUZXh0OiBzdHJpbmcgPSAnb2YnOyAvLyBUZXh0byBwYXJhIFwib2ZcIlxuXG4gIEBPdXRwdXQoKSBzb3J0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgaXRlbXNQZXJQYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRWRpdFRhYmxlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRGVsZXRlVGFibGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25WaWV3VGFibGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGN1cnJlbnRQYWdlOiBudW1iZXIgPSAxO1xuICBwYWdlZERhdGE6IGFueVtdID0gW107XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuXG4gIGxhYmVsU3R5bGUgPSB7XG4gICAgJ2ZvbnQtZmFtaWx5JzogJ0ludGVyLCBBcmlhbCwgc2Fucy1zZXJpZicsXG4gICAgJ2ZvbnQtc2l6ZSc6ICcxNHB4JyxcbiAgICAnY29sb3InOiAnIzAwMCdcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZmV0Y2hEYXRhKCk7XG4gICAgdGhpcy5zZXREZWZhdWx0UGVybWlzc2lvbnMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sndG90YWxJdGVtcyddIHx8IGNoYW5nZXNbJ2RlZmF1bHRJdGVtc1BlclBhZ2UnXSB8fCBjaGFuZ2VzWydjdXJyZW50UGFnZSddIHx8IGNoYW5nZXNbJ2RhdGEnXSkge1xuICAgICAgdGhpcy5mZXRjaERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBzZXREZWZhdWx0UGVybWlzc2lvbnMoKSB7XG4gICAgaWYgKCF0aGlzLnVzZXJQZXJtaXNzaW9ucyB8fCB0aGlzLnVzZXJQZXJtaXNzaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMudXNlclBlcm1pc3Npb25zID0gWydlZGl0JywgJ2RlbGV0ZScsICd2aWV3J107XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCkge1xuICAgIGlmICh0aGlzLmZldGNoRGF0YUZ1bmN0aW9uKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5mZXRjaERhdGFGdW5jdGlvbih0aGlzLmN1cnJlbnRQYWdlLCB0aGlzLmRlZmF1bHRJdGVtc1BlclBhZ2UpO1xuICAgICAgICB0aGlzLnBhZ2VkRGF0YSA9IGRhdGEuaXRlbXM7XG4gICAgICAgIHRoaXMudG90YWxJdGVtcyA9IGRhdGEudG90YWxJdGVtcztcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpOyAvLyBGb3LDp2EgYSBkZXRlY8Onw6NvIGRlIG11ZGFuw6dhc1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU29ydChjb2x1bW46IHN0cmluZykge1xuICAgIHRoaXMuc29ydENoYW5nZS5lbWl0KGNvbHVtbik7XG4gIH1cblxuICBvblBhZ2VDaGFuZ2UocGFnZTogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQocGFnZSk7XG4gICAgdGhpcy5mZXRjaERhdGEoKTtcbiAgfVxuXG4gIG9uSXRlbXNQZXJQYWdlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSBwYXJzZUludChldmVudCwgMTApO1xuICAgIHRoaXMuZGVmYXVsdEl0ZW1zUGVyUGFnZSA9IGl0ZW1zUGVyUGFnZTtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLml0ZW1zUGVyUGFnZUNoYW5nZS5lbWl0KGl0ZW1zUGVyUGFnZSk7XG4gICAgdGhpcy5mZXRjaERhdGEoKTtcbiAgfVxuXG4gIGhhbmRsZUFjdGlvbihhY3Rpb246IHN0cmluZywgaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSB7XG4gICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgIGNhc2UgJ2VkaXQnOlxuICAgICAgICB0aGlzLm9uRWRpdFRhYmxlLmVtaXQoeyBpdGVtLCBpbmRleCB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICB0aGlzLm9uRGVsZXRlVGFibGUuZW1pdCh7IGl0ZW0sIGluZGV4IH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3ZpZXcnOlxuICAgICAgICB0aGlzLm9uVmlld1RhYmxlLmVtaXQoeyBpdGVtLCBpbmRleCB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaGFzUGVybWlzc2lvbihyZXF1aXJlZFBlcm1pc3Npb25zOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy51c2VyUGVybWlzc2lvbnMgfHwgdGhpcy51c2VyUGVybWlzc2lvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcXVpcmVkUGVybWlzc2lvbnMuZXZlcnkocGVybWlzc2lvbiA9PiB0aGlzLnVzZXJQZXJtaXNzaW9ucy5pbmNsdWRlcyhwZXJtaXNzaW9uKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW25nU3R5bGVdPVwie1xuICAnbWFyZ2luLXRvcCc6IG1hcmdpblRvcCArICdyZW0nLFxuICAnbWFyZ2luLWJvdHRvbSc6IG1hcmdpbkJvdHRvbSArICdyZW0nLFxuICAnbWFyZ2luLWxlZnQnOiBtYXJnaW5MZWZ0ICsgJ3JlbScsXG4gICdtYXJnaW4tcmlnaHQnOiBtYXJnaW5SaWdodCArICdyZW0nXG59XCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiByaWdodDtcIj5cbiAgPGxhYmVsIGZvcj1cIml0ZW1zUGVyUGFnZVNlbGVjdFwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAwLjVyZW07IG1hcmdpbi1ib3R0b206IDAuN3JlbTtcIiBbbmdTdHlsZV09XCJsYWJlbFN0eWxlXCI+e3sgaXRlbXNQZXJQYWdlTGFiZWwgfX08L2xhYmVsPlxuICA8c2VsZWN0XG4gICAgaWQ9XCJpdGVtc1BlclBhZ2VTZWxlY3RcIlxuICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbSBkLWlubGluZS1ibG9jayB3LWF1dG9cIlxuICAgIFsobmdNb2RlbCldPVwiZGVmYXVsdEl0ZW1zUGVyUGFnZVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25JdGVtc1BlclBhZ2VDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBpdGVtc1BlclBhZ2VPcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvblwiPnt7IG9wdGlvbiB9fTwvb3B0aW9uPlxuICA8L3NlbGVjdD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxuICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ob3ZlclwiIFtuZ1N0eWxlXT1cInsgJ2NvbG9yJzogdGFibGVGb250Q29sb3IsICdmb250LXNpemUnOiB0YWJsZUZvbnRTaXplIH1cIj5cbiAgICA8dGhlYWQ+XG4gICAgICA8dHI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zXCI+XG4gICAgICAgICAgPHRoICpuZ0lmPVwiaGFzUGVybWlzc2lvbihjb2x1bW4ucGVybWlzc2lvbnMgfHwgW10pXCIgKGNsaWNrKT1cIm9uU29ydChjb2x1bW4ucHJvcClcIj5cbiAgICAgICAgICAgIHt7IGNvbHVtbi5sYWJlbCB9fVxuICAgICAgICAgIDwvdGg+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8dGggKm5nSWY9XCJzaG93QWN0aW9uQ29sdW1uXCI+e3sgYWN0aW9uQ29sdW1uTGFiZWwgfX08L3RoPlxuICAgICAgPC90cj5cbiAgICA8L3RoZWFkPlxuICAgIDx0Ym9keT5cbiAgICAgIDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwYWdlZERhdGE7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIj5cbiAgICAgICAgICA8dGQgKm5nSWY9XCJoYXNQZXJtaXNzaW9uKGNvbHVtbi5wZXJtaXNzaW9ucyB8fCBbXSlcIj5cbiAgICAgICAgICAgIHt7IGl0ZW1bY29sdW1uLnByb3BdIH19XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ZCAqbmdJZj1cInNob3dBY3Rpb25Db2x1bW5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJoYXNQZXJtaXNzaW9uKGVkaXRQZXJtaXNzaW9ucylcIiAoY2xpY2spPVwiaGFuZGxlQWN0aW9uKCdlZGl0JywgaXRlbSwgaSlcIiBjbGFzcz1cImJ0bi1pY29uIGVkaXQgbXgtMVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImhhc1Blcm1pc3Npb24oZGVsZXRlUGVybWlzc2lvbnMpXCIgKGNsaWNrKT1cImhhbmRsZUFjdGlvbignZGVsZXRlJywgaXRlbSwgaSlcIiBjbGFzcz1cImJ0bi1pY29uIGRlbGV0ZSBteC0xXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzUGVybWlzc2lvbih2aWV3UGVybWlzc2lvbnMpXCIgKGNsaWNrKT1cImhhbmRsZUFjdGlvbigndmlldycsIGl0ZW0sIGkpXCIgY2xhc3M9XCJidG4taWNvbiB2aWV3IG14LTFcIj48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC90Ym9keT5cbiAgPC90YWJsZT5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcGFnaW5hdGlvbi1jb250cm9sc1wiPlxuICA8Y3VzdG9tLXBhZ2luYXRpb25cbiAgICBbdG90YWxJdGVtc109XCJ0b3RhbEl0ZW1zXCJcbiAgICBbaXRlbXNQZXJQYWdlXT1cImRlZmF1bHRJdGVtc1BlclBhZ2VcIlxuICAgIFtjdXJyZW50UGFnZV09XCJjdXJyZW50UGFnZVwiXG4gICAgW3Nob3dQYWdlSW5mb109XCJzaG93UGFnZUluZm9cIlxuICAgIFtwYWdlVGV4dF09XCJwYWdlVGV4dFwiXG4gICAgW29mVGV4dF09XCJvZlRleHRcIlxuICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCI+XG4gIDwvY3VzdG9tLXBhZ2luYXRpb24+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXRyZWUtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdHJlZS1ub2RlL0l0cmVlLW5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVRyZWVOb2RlIHtcbiAgICBpZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICBjb2xsYXBzZWQ/OiBib29sZWFuO1xuICAgIGNoaWxkcmVuPzogSVRyZWVOb2RlW107XG59XG4iXX0=
@@ -0,0 +1,63 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class TreeNodeComponent {
5
+ constructor() {
6
+ this.title = '';
7
+ this.nodes = [];
8
+ this.isRoot = true;
9
+ this.nodeSelected = new EventEmitter();
10
+ }
11
+ ngOnInit() {
12
+ if (this.isRoot && !this.title) {
13
+ this.title = 'Tree Node';
14
+ }
15
+ }
16
+ onNodeSelected(node, event) {
17
+ node.selected = event.target.checked;
18
+ if (node.children) {
19
+ this.toggleChildren(node.children, node.selected);
20
+ }
21
+ this.nodeSelected.emit(node);
22
+ }
23
+ toggleChildren(children, selected) {
24
+ children.forEach(child => {
25
+ child.selected = selected;
26
+ if (child.children) {
27
+ this.toggleChildren(child.children, selected);
28
+ }
29
+ });
30
+ }
31
+ onChildNodeSelected(node) {
32
+ this.updateParentSelection(this.nodes);
33
+ this.nodeSelected.emit(node);
34
+ }
35
+ updateParentSelection(nodes) {
36
+ nodes.forEach(node => {
37
+ if (node.children) {
38
+ const allChildrenDeselected = node.children.every(child => !child.selected);
39
+ node.selected = !allChildrenDeselected;
40
+ // Recursive call for nested parents
41
+ this.updateParentSelection(node.children);
42
+ }
43
+ });
44
+ }
45
+ toggleCollapse(node) {
46
+ node.collapsed = !node.collapsed;
47
+ }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TreeNodeComponent, selector: "sim-tree-node", inputs: { title: "title", nodes: "nodes", isRoot: "isRoot" }, outputs: { nodeSelected: "nodeSelected" }, ngImport: i0, template: "<div *ngIf=\"isRoot\" class=\"tree-title\">{{ title || 'Tree Node' }}</div>\n<ul class=\"tree\">\n <li *ngFor=\"let node of nodes\">\n <div class=\"node-content\">\n <span *ngIf=\"node.children\" class=\"toggle-icon\" (click)=\"toggleCollapse(node)\"\n [ngClass]=\"{'collapsed-icon': node.collapsed, 'expanded-icon': !node.collapsed}\">\n {{ node.collapsed ? '\u25B6' : '\u25BC' }}\n </span>\n <label class=\"custom-checkbox\">\n <input type=\"checkbox\" [checked]=\"node.selected\" (change)=\"onNodeSelected(node, $event)\" />\n <span class=\"checkmark\"></span>\n </label>\n <label class=\"node-label\">{{ node.name }}</label>\n </div>\n <sim-tree-node *ngIf=\"node.children && !node.collapsed\" [nodes]=\"node.children\" [isRoot]=\"false\" (nodeSelected)=\"onChildNodeSelected(node)\"></sim-tree-node>\n </li>\n</ul>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap\";.tree{list-style-type:none;margin:0;padding:0;position:relative;font-family:Inter,sans-serif}.tree li{margin:0;padding:0 0 0 2em;line-height:2em;position:relative;font-size:14px;transition:all .3s ease}.tree li:before{content:\"\";position:absolute;top:0;left:0;border-left:1px solid #ccc;bottom:.75em;transition:border-color .3s ease}.tree li:after{content:\"\";position:absolute;top:1em;left:0;border-top:1px solid #ccc;width:1em;transition:border-color .3s ease}.tree li:last-child:before{height:1em}.node-content{display:flex;align-items:center;color:#333;transition:color .3s ease}.node-content:hover .node-label{color:#00444c;box-shadow:0 4px 8px #0000001a}.toggle-icon{cursor:pointer;margin-right:.5em;font-size:1em;transition:transform .3s ease,color .3s ease}.collapsed-icon{color:orange}.expanded-icon{color:green}.node-content input[type=checkbox]{display:none}.custom-checkbox{position:relative;display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.checkmark{position:relative;height:14px;width:14px;background-color:#fff;border:2px solid #00444C;border-radius:3px;transition:background-color .3s ease,border-color .3s ease}.custom-checkbox input:checked+.checkmark{background-color:#00444c;border-color:#00444c;transition:background-color .3s ease,border-color .3s ease}.custom-checkbox .checkmark:after{content:\"\";position:absolute;display:none;left:4px;top:1px;width:3px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);transition:transform .3s ease}.custom-checkbox input:checked+.checkmark:after{display:block}.node-label{margin-left:.5em;transition:color .3s ease,box-shadow .3s ease}.node-content input{margin-right:.5em;transition:transform .3s ease}.tree-title{font-weight:600;margin-bottom:10px;font-size:18px;color:#00444c;transition:color .3s ease}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TreeNodeComponent, selector: "sim-tree-node", inputs: ["title", "nodes", "isRoot"], outputs: ["nodeSelected"] }] }); }
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeNodeComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'sim-tree-node', template: "<div *ngIf=\"isRoot\" class=\"tree-title\">{{ title || 'Tree Node' }}</div>\n<ul class=\"tree\">\n <li *ngFor=\"let node of nodes\">\n <div class=\"node-content\">\n <span *ngIf=\"node.children\" class=\"toggle-icon\" (click)=\"toggleCollapse(node)\"\n [ngClass]=\"{'collapsed-icon': node.collapsed, 'expanded-icon': !node.collapsed}\">\n {{ node.collapsed ? '\u25B6' : '\u25BC' }}\n </span>\n <label class=\"custom-checkbox\">\n <input type=\"checkbox\" [checked]=\"node.selected\" (change)=\"onNodeSelected(node, $event)\" />\n <span class=\"checkmark\"></span>\n </label>\n <label class=\"node-label\">{{ node.name }}</label>\n </div>\n <sim-tree-node *ngIf=\"node.children && !node.collapsed\" [nodes]=\"node.children\" [isRoot]=\"false\" (nodeSelected)=\"onChildNodeSelected(node)\"></sim-tree-node>\n </li>\n</ul>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap\";.tree{list-style-type:none;margin:0;padding:0;position:relative;font-family:Inter,sans-serif}.tree li{margin:0;padding:0 0 0 2em;line-height:2em;position:relative;font-size:14px;transition:all .3s ease}.tree li:before{content:\"\";position:absolute;top:0;left:0;border-left:1px solid #ccc;bottom:.75em;transition:border-color .3s ease}.tree li:after{content:\"\";position:absolute;top:1em;left:0;border-top:1px solid #ccc;width:1em;transition:border-color .3s ease}.tree li:last-child:before{height:1em}.node-content{display:flex;align-items:center;color:#333;transition:color .3s ease}.node-content:hover .node-label{color:#00444c;box-shadow:0 4px 8px #0000001a}.toggle-icon{cursor:pointer;margin-right:.5em;font-size:1em;transition:transform .3s ease,color .3s ease}.collapsed-icon{color:orange}.expanded-icon{color:green}.node-content input[type=checkbox]{display:none}.custom-checkbox{position:relative;display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.checkmark{position:relative;height:14px;width:14px;background-color:#fff;border:2px solid #00444C;border-radius:3px;transition:background-color .3s ease,border-color .3s ease}.custom-checkbox input:checked+.checkmark{background-color:#00444c;border-color:#00444c;transition:background-color .3s ease,border-color .3s ease}.custom-checkbox .checkmark:after{content:\"\";position:absolute;display:none;left:4px;top:1px;width:3px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);transition:transform .3s ease}.custom-checkbox input:checked+.checkmark:after{display:block}.node-label{margin-left:.5em;transition:color .3s ease,box-shadow .3s ease}.node-content input{margin-right:.5em;transition:transform .3s ease}.tree-title{font-weight:600;margin-bottom:10px;font-size:18px;color:#00444c;transition:color .3s ease}\n"] }]
54
+ }], propDecorators: { title: [{
55
+ type: Input
56
+ }], nodes: [{
57
+ type: Input
58
+ }], isRoot: [{
59
+ type: Input
60
+ }], nodeSelected: [{
61
+ type: Output
62
+ }] } });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdHJlZS1ub2RlL3RyZWUtbm9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3RyZWUtbm9kZS90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUS9FLE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUFNYSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFVBQUssR0FBZ0IsRUFBRSxDQUFDO1FBQ3hCLFdBQU0sR0FBWSxJQUFJLENBQUM7UUFDdEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO0tBNkMxRDtJQTNDRyxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBZSxFQUFFLEtBQVU7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUNyQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUFxQixFQUFFLFFBQWlCO1FBQ25ELFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckIsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDMUIsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO2dCQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDakQ7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFlO1FBQy9CLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQWtCO1FBQ3BDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNmLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLHFCQUFxQixDQUFDO2dCQUV2QyxvQ0FBb0M7Z0JBQ3BDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDN0M7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBZTtRQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNyQyxDQUFDOytHQWhEUSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw4SkNSOUIsdTNCQWlCQSxpeUVEVGEsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNJLGVBQWU7OEJBS2hCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJVHJlZU5vZGUgfSBmcm9tICcuL0l0cmVlLW5vZGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NpbS10cmVlLW5vZGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RyZWUtbm9kZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVOb2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gJyc7XG4gICAgQElucHV0KCkgbm9kZXM6IElUcmVlTm9kZVtdID0gW107XG4gICAgQElucHV0KCkgaXNSb290OiBib29sZWFuID0gdHJ1ZTtcbiAgICBAT3V0cHV0KCkgbm9kZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxJVHJlZU5vZGU+KCk7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNSb290ICYmICF0aGlzLnRpdGxlKSB7XG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gJ1RyZWUgTm9kZSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk5vZGVTZWxlY3RlZChub2RlOiBJVHJlZU5vZGUsIGV2ZW50OiBhbnkpIHtcbiAgICAgICAgbm9kZS5zZWxlY3RlZCA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVDaGlsZHJlbihub2RlLmNoaWxkcmVuLCBub2RlLnNlbGVjdGVkKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5vZGVTZWxlY3RlZC5lbWl0KG5vZGUpO1xuICAgIH1cblxuICAgIHRvZ2dsZUNoaWxkcmVuKGNoaWxkcmVuOiBJVHJlZU5vZGVbXSwgc2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7XG4gICAgICAgICAgICBjaGlsZC5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgICAgICAgaWYgKGNoaWxkLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2dnbGVDaGlsZHJlbihjaGlsZC5jaGlsZHJlbiwgc2VsZWN0ZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkNoaWxkTm9kZVNlbGVjdGVkKG5vZGU6IElUcmVlTm9kZSkge1xuICAgICAgICB0aGlzLnVwZGF0ZVBhcmVudFNlbGVjdGlvbih0aGlzLm5vZGVzKTtcbiAgICAgICAgdGhpcy5ub2RlU2VsZWN0ZWQuZW1pdChub2RlKTtcbiAgICB9XG5cbiAgICB1cGRhdGVQYXJlbnRTZWxlY3Rpb24obm9kZXM6IElUcmVlTm9kZVtdKSB7XG4gICAgICAgIG5vZGVzLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFsbENoaWxkcmVuRGVzZWxlY3RlZCA9IG5vZGUuY2hpbGRyZW4uZXZlcnkoY2hpbGQgPT4gIWNoaWxkLnNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICBub2RlLnNlbGVjdGVkID0gIWFsbENoaWxkcmVuRGVzZWxlY3RlZDtcblxuICAgICAgICAgICAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsIGZvciBuZXN0ZWQgcGFyZW50c1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUGFyZW50U2VsZWN0aW9uKG5vZGUuY2hpbGRyZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0b2dnbGVDb2xsYXBzZShub2RlOiBJVHJlZU5vZGUpIHtcbiAgICAgICAgbm9kZS5jb2xsYXBzZWQgPSAhbm9kZS5jb2xsYXBzZWQ7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImlzUm9vdFwiIGNsYXNzPVwidHJlZS10aXRsZVwiPnt7IHRpdGxlIHx8ICdUcmVlIE5vZGUnIH19PC9kaXY+XG48dWwgY2xhc3M9XCJ0cmVlXCI+XG4gIDxsaSAqbmdGb3I9XCJsZXQgbm9kZSBvZiBub2Rlc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJub2RlLWNvbnRlbnRcIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwibm9kZS5jaGlsZHJlblwiIGNsYXNzPVwidG9nZ2xlLWljb25cIiAoY2xpY2spPVwidG9nZ2xlQ29sbGFwc2Uobm9kZSlcIlxuICAgICAgICBbbmdDbGFzc109XCJ7J2NvbGxhcHNlZC1pY29uJzogbm9kZS5jb2xsYXBzZWQsICdleHBhbmRlZC1pY29uJzogIW5vZGUuY29sbGFwc2VkfVwiPlxuICAgICAgICB7eyBub2RlLmNvbGxhcHNlZCA/ICfilrYnIDogJ+KWvCcgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImN1c3RvbS1jaGVja2JveFwiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwibm9kZS5zZWxlY3RlZFwiIChjaGFuZ2UpPVwib25Ob2RlU2VsZWN0ZWQobm9kZSwgJGV2ZW50KVwiIC8+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2hlY2ttYXJrXCI+PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxsYWJlbCBjbGFzcz1cIm5vZGUtbGFiZWxcIj57eyBub2RlLm5hbWUgfX08L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxzaW0tdHJlZS1ub2RlICpuZ0lmPVwibm9kZS5jaGlsZHJlbiAmJiAhbm9kZS5jb2xsYXBzZWRcIiBbbm9kZXNdPVwibm9kZS5jaGlsZHJlblwiIFtpc1Jvb3RdPVwiZmFsc2VcIiAobm9kZVNlbGVjdGVkKT1cIm9uQ2hpbGROb2RlU2VsZWN0ZWQobm9kZSlcIj48L3NpbS10cmVlLW5vZGU+XG4gIDwvbGk+XG48L3VsPlxuIl19
@@ -12,13 +12,15 @@ export * from './lib/components/card/card.component';
12
12
  export * from './lib/components/checkbox/checkbox.component';
13
13
  export * from './lib/components/code-highlight/code-highlight.component';
14
14
  export * from './lib/components/confirmation/confirmation.component';
15
+ export * from './lib/components/custom-pagination/custom-pagination.component';
15
16
  export * from './lib/components/form/form.component';
16
17
  export * from './lib/components/imput/input.component';
17
18
  export * from './lib/components/multi-select/multi-select.component';
18
19
  export * from './lib/components/radio/radio.component';
19
20
  export * from './lib/components/select/select.component';
20
- export * from './lib/components/tables/bootstrap-table.component';
21
+ export * from './lib/components/tables/data-table.component';
21
22
  export * from './lib/components/textarea/textarea.component';
23
+ export * from './lib/components/tree-node/tree-node.component';
22
24
  // Enums
23
25
  export * from './lib/enum/ButtonClassesEnum';
24
26
  // Módulos
@@ -27,4 +29,4 @@ export * from './lib/lib-portal-angular.module';
27
29
  // Service
28
30
  export * from './lib/components/alert/notification.service';
29
31
  export * from './lib/components/confirmation/confirmation.service';
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILGNBQWM7QUFDZCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsOENBQThDLENBQUM7QUFFN0QsUUFBUTtBQUNSLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsVUFBVTtBQUNWLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxVQUFVO0FBQ1YsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLG9EQUFvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzaW0tbGliXG4gKlxuICogRXN0ZSBhcnF1aXZvIGV4cG9ydGEgdG9kb3Mgb3MgY29tcG9uZW50ZXMsIGVudW1zIGUgbcOzZHVsb3MgbmVjZXNzw6FyaW9zXG4gKiBwYXJhIHF1ZSBvcyBjb25zdW1pZG9yZXMgZGEgYmlibGlvdGVjYSBwb3NzYW0gdXRpbGl6w6EtbG9zIGVtIHN1YXMgYXBsaWNhw6fDtWVzLlxuICovXG5cbi8vIENvbXBvbmVudGVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2FyZC9jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvZGUtaGlnaGxpZ2h0L2NvZGUtaGlnaGxpZ2h0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi9jb25maXJtYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ltcHV0L2lucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcmFkaW8vcmFkaW8uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90YWJsZXMvYm9vdHN0cmFwLXRhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudCc7XG5cbi8vIEVudW1zXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnVtL0J1dHRvbkNsYXNzZXNFbnVtJztcblxuLy8gTcOzZHVsb3NcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29tcG9uZW50cy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGliLXBvcnRhbC1hbmd1bGFyLm1vZHVsZSc7XG5cbi8vIFNlcnZpY2VcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWxlcnQvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb25maXJtYXRpb24vY29uZmlybWF0aW9uLnNlcnZpY2UnO1xuXG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILGNBQWM7QUFDZCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGdEQUFnRCxDQUFDO0FBRS9ELFFBQVE7QUFDUixjQUFjLDhCQUE4QixDQUFDO0FBRTdDLFVBQVU7QUFDVixjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsVUFBVTtBQUNWLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxvREFBb0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygc2ltLWxpYlxuICpcbiAqIEVzdGUgYXJxdWl2byBleHBvcnRhIHRvZG9zIG9zIGNvbXBvbmVudGVzLCBlbnVtcyBlIG3Ds2R1bG9zIG5lY2Vzc8Ohcmlvc1xuICogcGFyYSBxdWUgb3MgY29uc3VtaWRvcmVzIGRhIGJpYmxpb3RlY2EgcG9zc2FtIHV0aWxpesOhLWxvcyBlbSBzdWFzIGFwbGljYcOnw7Vlcy5cbiAqL1xuXG4vLyBDb21wb25lbnRlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hbGVydC9hbGVydC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NhcmQvY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb2RlLWhpZ2hsaWdodC9jb2RlLWhpZ2hsaWdodC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb25maXJtYXRpb24vY29uZmlybWF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2N1c3RvbS1wYWdpbmF0aW9uL2N1c3RvbS1wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbXB1dC9pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGFibGVzL2RhdGEtdGFibGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdHJlZS1ub2RlL3RyZWUtbm9kZS5jb21wb25lbnQnO1xuXG4vLyBFbnVtc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bS9CdXR0b25DbGFzc2VzRW51bSc7XG5cbi8vIE3Ds2R1bG9zXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbXBvbmVudHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xpYi1wb3J0YWwtYW5ndWxhci5tb2R1bGUnO1xuXG4vLyBTZXJ2aWNlXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FsZXJ0L25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5zZXJ2aWNlJztcblxuIl19