tango-app-ui-shared 3.0.3 → 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/esm2022/lib/modules/common/common-shared.module.mjs +30 -0
  2. package/esm2022/lib/modules/common/custom-select/custom-select.component.mjs +134 -0
  3. package/esm2022/lib/modules/common/filters/filters.component.mjs +154 -0
  4. package/esm2022/lib/modules/common/pagination/pagination.component.mjs +48 -0
  5. package/esm2022/lib/modules/layout/header/header-menu/header-menu.component.mjs +3 -3
  6. package/esm2022/lib/modules/layout/header/page-title/page-title.component.mjs +2 -2
  7. package/esm2022/lib/modules/layout/layout/layout.component.mjs +3 -3
  8. package/esm2022/lib/modules/layout/layout.module.mjs +22 -5
  9. package/esm2022/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.mjs +11 -5
  10. package/esm2022/lib/modules/layout/sidebar/sidebar.component.mjs +3 -3
  11. package/esm2022/lib/modules/layout/toolbar/accounting/accounting.component.mjs +4 -3
  12. package/esm2022/lib/modules/layout/toolbar/classic/classic.component.mjs +252 -48
  13. package/esm2022/lib/modules/layout/toolbar/client-settings/client-settings.component.mjs +38 -0
  14. package/esm2022/lib/modules/layout/toolbar/extended/extended.component.mjs +4 -3
  15. package/esm2022/lib/modules/layout/toolbar/reports/reports.component.mjs +4 -3
  16. package/esm2022/lib/modules/layout/toolbar/saas/saas.component.mjs +4 -3
  17. package/esm2022/lib/modules/layout/toolbar/toolbar.component.mjs +4 -8
  18. package/esm2022/lib/routes/route-wraper-modules/ticket-wrapper.module.mjs +18 -0
  19. package/esm2022/lib/routes/routing.mjs +5 -1
  20. package/esm2022/lib/services/auth.service.mjs +24 -4
  21. package/esm2022/lib/services/global-state.service.mjs +3 -1
  22. package/esm2022/lib/services/toast.service.mjs +66 -0
  23. package/esm2022/public-api.mjs +7 -1
  24. package/fesm2022/tango-app-ui-shared-ticket-wrapper.module-BLrWsK0B.mjs +21 -0
  25. package/fesm2022/tango-app-ui-shared-ticket-wrapper.module-BLrWsK0B.mjs.map +1 -0
  26. package/fesm2022/tango-app-ui-shared.mjs +832 -141
  27. package/fesm2022/tango-app-ui-shared.mjs.map +1 -1
  28. package/lib/modules/common/common-shared.module.d.ts +12 -0
  29. package/lib/modules/common/custom-select/custom-select.component.d.ts +29 -0
  30. package/lib/modules/common/filters/filters.component.d.ts +32 -0
  31. package/lib/modules/common/pagination/pagination.component.d.ts +17 -0
  32. package/lib/modules/layout/layout.module.d.ts +11 -7
  33. package/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.d.ts +2 -0
  34. package/lib/modules/layout/toolbar/classic/classic.component.d.ts +36 -17
  35. package/lib/modules/layout/toolbar/client-settings/client-settings.component.d.ts +15 -0
  36. package/lib/routes/route-wraper-modules/ticket-wrapper.module.d.ts +7 -0
  37. package/lib/services/auth.service.d.ts +8 -1
  38. package/lib/services/global-state.service.d.ts +2 -0
  39. package/lib/services/toast.service.d.ts +9 -0
  40. package/package.json +1 -1
  41. package/public-api.d.ts +6 -0
@@ -0,0 +1,30 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { NgxPaginationModule } from 'ngx-pagination';
5
+ import { PaginationComponent } from './pagination/pagination.component';
6
+ import { FiltersComponent } from './filters/filters.component';
7
+ import { CustomSelectComponent } from './custom-select/custom-select.component';
8
+ import * as i0 from "@angular/core";
9
+ export class CommonSharedModule {
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CommonSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: CommonSharedModule, declarations: [PaginationComponent, FiltersComponent, CustomSelectComponent], imports: [CommonModule,
12
+ FormsModule,
13
+ NgxPaginationModule], exports: [PaginationComponent, FiltersComponent, CustomSelectComponent] });
14
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CommonSharedModule, imports: [CommonModule,
15
+ FormsModule,
16
+ NgxPaginationModule] });
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CommonSharedModule, decorators: [{
19
+ type: NgModule,
20
+ args: [{
21
+ declarations: [PaginationComponent, FiltersComponent, CustomSelectComponent],
22
+ imports: [
23
+ CommonModule,
24
+ FormsModule,
25
+ NgxPaginationModule
26
+ ],
27
+ exports: [PaginationComponent, FiltersComponent, CustomSelectComponent]
28
+ }]
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXNoYXJlZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9jb21tb24vY29tbW9uLXNoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQVloRixNQUFNLE9BQU8sa0JBQWtCO3VHQUFsQixrQkFBa0I7d0dBQWxCLGtCQUFrQixpQkFSZCxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBQyxxQkFBcUIsYUFFeEUsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUIsYUFFWixtQkFBbUIsRUFBQyxnQkFBZ0IsRUFBQyxxQkFBcUI7d0dBRXhELGtCQUFrQixZQU4zQixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjs7MkZBSVYsa0JBQWtCO2tCQVQ5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixFQUFFLGdCQUFnQixFQUFDLHFCQUFxQixDQUFDO29CQUMzRSxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFDLENBQUMsbUJBQW1CLEVBQUMsZ0JBQWdCLEVBQUMscUJBQXFCLENBQUM7aUJBQ3JFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5neFBhZ2luYXRpb25Nb2R1bGUgfSBmcm9tICduZ3gtcGFnaW5hdGlvbic7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3VzdG9tU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jdXN0b20tc2VsZWN0L2N1c3RvbS1zZWxlY3QuY29tcG9uZW50JztcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1BhZ2luYXRpb25Db21wb25lbnQsIEZpbHRlcnNDb21wb25lbnQsQ3VzdG9tU2VsZWN0Q29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE5neFBhZ2luYXRpb25Nb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6W1BhZ2luYXRpb25Db21wb25lbnQsRmlsdGVyc0NvbXBvbmVudCxDdXN0b21TZWxlY3RDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21tb25TaGFyZWRNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -0,0 +1,134 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, 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
+ export class CustomSelectComponent {
6
+ cd;
7
+ onClick(event) {
8
+ const target = event.target;
9
+ if (!target.closest('.dropdown')) {
10
+ this.showDropdown = false;
11
+ }
12
+ }
13
+ items;
14
+ searchField;
15
+ multi;
16
+ idField;
17
+ selectedValues = [];
18
+ disabled;
19
+ label;
20
+ selected = new EventEmitter();
21
+ filteredValues = [];
22
+ showDropdown;
23
+ searchValue;
24
+ constructor(cd) {
25
+ this.cd = cd;
26
+ }
27
+ ngOnChanges(changes) {
28
+ if (changes['items'] && this.items?.length) {
29
+ this.initializeItems();
30
+ }
31
+ if (changes['selectedValues'] && this.selectedValues?.length) {
32
+ this.updateSelectedValues();
33
+ }
34
+ }
35
+ initializeItems() {
36
+ this.filteredValues = this.items.map((item) => ({ ...item }));
37
+ this.updateSelectedValues();
38
+ }
39
+ updateSelectedValues() {
40
+ this.selectedValues?.forEach((selectedItem) => {
41
+ const item = this.filteredValues?.find((filteredItem) => filteredItem?.[this.idField] === selectedItem?.[this.idField]);
42
+ if (item) {
43
+ item.isSelected = true;
44
+ }
45
+ });
46
+ }
47
+ openDropdown(event) {
48
+ event.stopPropagation();
49
+ this.showDropdown = !this.showDropdown;
50
+ }
51
+ onInput(event) {
52
+ if (!event.target.value) {
53
+ this.filteredValues = [...this.items];
54
+ }
55
+ else {
56
+ const searchTerm = event.target.value.toLowerCase();
57
+ this.filteredValues = this.items.filter((item) => item[this.searchField].toLowerCase().includes(searchTerm));
58
+ }
59
+ this.cd.detectChanges();
60
+ }
61
+ onSelect(event, item) {
62
+ if (this.multi) {
63
+ if (event.currentTarget.checked) {
64
+ this.selectedValues.push({ ...item });
65
+ }
66
+ else {
67
+ this.selectedValues = this.selectedValues.filter((elem) => elem[this.idField] !== item[this.idField]);
68
+ }
69
+ }
70
+ else {
71
+ this.selectedValues = [{ ...item }];
72
+ this.showDropdown = false;
73
+ }
74
+ const valuesToEmit = this.selectedValues.map((value) => {
75
+ const { isSelected, ...selectedItem } = value;
76
+ return selectedItem;
77
+ });
78
+ this.cd.detectChanges();
79
+ this.emitSelectedValues(valuesToEmit);
80
+ }
81
+ onSelectAll(event) {
82
+ const selectAll = event.currentTarget.checked;
83
+ this.filteredValues.forEach((item) => item.isSelected = selectAll);
84
+ if (selectAll) {
85
+ this.selectedValues = [...this.filteredValues];
86
+ }
87
+ else {
88
+ this.selectedValues = [];
89
+ }
90
+ const valuesToEmit = this.selectedValues.map((value) => {
91
+ const { isSelected, ...selectedItem } = value;
92
+ return selectedItem;
93
+ });
94
+ this.cd.detectChanges();
95
+ this.emitSelectedValues(valuesToEmit);
96
+ }
97
+ emitSelectedValues(values) {
98
+ if (this.multi) {
99
+ this.selected.emit(values);
100
+ }
101
+ else {
102
+ this.selected.emit(values[0]);
103
+ }
104
+ }
105
+ checkIfAllSelected() {
106
+ return this.filteredValues.every((item) => item.isSelected);
107
+ }
108
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CustomSelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
109
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: CustomSelectComponent, selector: "lib-select", inputs: { items: "items", searchField: "searchField", multi: "multi", idField: "idField", selectedValues: "selectedValues", disabled: "disabled", label: "label" }, outputs: { selected: "selected" }, host: { listeners: { "document:click": "onClick($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"outer-container\">\r\n <div [ngClass]=\"disabled ? 'disable-input':''\" (click)=\"openDropdown($event)\" class=\"form-select\">\r\n <ng-container *ngIf=\"multi\" >\r\n {{selectedValues?.length}} {{label}} Selected \r\n </ng-container>\r\n <ng-container *ngIf=\"!multi\" >\r\n {{selectedValues?.[0]?.[searchField]}}\r\n </ng-container>\r\n </div>\r\n <div [ngClass]=\"showDropdown ? '' : 'd-none'\" class=\"input-container dropdown\" >\r\n <div class=\"w-100 input-wrapper\">\r\n <input [(ngModel)]=\"searchValue\" placeholder=\"Search\" (input)=\"onInput($event)\" type=\"text\"> \r\n <svg class=\"search-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <ul>\r\n <li *ngIf=\"multi\">\r\n <div class=\"form-check\">\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n id=\"selectAll\">\r\n <label class=\"form-check-label\" for=\"selectAll\">\r\n Select All\r\n </label>\r\n </div>\r\n </li>\r\n <li *ngFor=\"let item of filteredValues; let i = index\" >\r\n <div [ngClass]=\"multi ? '': 'ps-0'\" class=\"form-check\">\r\n <input [ngClass]=\"multi ? '': 'd-none'\" (change)=\"onSelect($event, item)\" [(ngModel)]=\"item.isSelected\" class=\"form-check-input me-3\" type=\"checkbox\" value=\"\"\r\n [id]=\"i\">\r\n <label class=\"form-check-label\" [for]=\"i\">\r\n {{item[searchField]}}\r\n </label>\r\n </div>\r\n </li>\r\n </ul> \r\n </div> \r\n \r\n</div>\r\n ", styles: [":host{width:100%;height:100%}.outer-container{z-index:1;position:relative;background-color:#fff}.outer-container .form-select{font-size:1.1rem;font-weight:400;border-radius:8px!important;color:var(--Gray-500, #667085);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.outer-container .disable-input{pointer-events:none;background-color:#f9fafb!important}.outer-container .input-container{position:absolute;width:100%}.outer-container .input-container .input-wrapper{padding:8px 10px;background-color:#fff;border-top-right-radius:8px;border-top-left-radius:8px;border-top:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container .input-wrapper input{width:100%;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;padding:10px 14px 10px 30px;outline:none}.outer-container .input-container .input-wrapper input ::placeholder{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .input-wrapper .search-icon{position:absolute;left:20px;top:20px}.outer-container .input-container ul{position:relative;background-color:#fff;margin:0;padding:0;max-height:200px;min-height:200px;overflow-y:scroll;border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-bottom:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container ul li{list-style:none;padding:10px 16px}.form-check{display:flex;align-items:center}.form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
110
+ }
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CustomSelectComponent, decorators: [{
112
+ type: Component,
113
+ args: [{ selector: 'lib-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"outer-container\">\r\n <div [ngClass]=\"disabled ? 'disable-input':''\" (click)=\"openDropdown($event)\" class=\"form-select\">\r\n <ng-container *ngIf=\"multi\" >\r\n {{selectedValues?.length}} {{label}} Selected \r\n </ng-container>\r\n <ng-container *ngIf=\"!multi\" >\r\n {{selectedValues?.[0]?.[searchField]}}\r\n </ng-container>\r\n </div>\r\n <div [ngClass]=\"showDropdown ? '' : 'd-none'\" class=\"input-container dropdown\" >\r\n <div class=\"w-100 input-wrapper\">\r\n <input [(ngModel)]=\"searchValue\" placeholder=\"Search\" (input)=\"onInput($event)\" type=\"text\"> \r\n <svg class=\"search-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <ul>\r\n <li *ngIf=\"multi\">\r\n <div class=\"form-check\">\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n id=\"selectAll\">\r\n <label class=\"form-check-label\" for=\"selectAll\">\r\n Select All\r\n </label>\r\n </div>\r\n </li>\r\n <li *ngFor=\"let item of filteredValues; let i = index\" >\r\n <div [ngClass]=\"multi ? '': 'ps-0'\" class=\"form-check\">\r\n <input [ngClass]=\"multi ? '': 'd-none'\" (change)=\"onSelect($event, item)\" [(ngModel)]=\"item.isSelected\" class=\"form-check-input me-3\" type=\"checkbox\" value=\"\"\r\n [id]=\"i\">\r\n <label class=\"form-check-label\" [for]=\"i\">\r\n {{item[searchField]}}\r\n </label>\r\n </div>\r\n </li>\r\n </ul> \r\n </div> \r\n \r\n</div>\r\n ", styles: [":host{width:100%;height:100%}.outer-container{z-index:1;position:relative;background-color:#fff}.outer-container .form-select{font-size:1.1rem;font-weight:400;border-radius:8px!important;color:var(--Gray-500, #667085);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.outer-container .disable-input{pointer-events:none;background-color:#f9fafb!important}.outer-container .input-container{position:absolute;width:100%}.outer-container .input-container .input-wrapper{padding:8px 10px;background-color:#fff;border-top-right-radius:8px;border-top-left-radius:8px;border-top:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container .input-wrapper input{width:100%;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;padding:10px 14px 10px 30px;outline:none}.outer-container .input-container .input-wrapper input ::placeholder{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .input-wrapper .search-icon{position:absolute;left:20px;top:20px}.outer-container .input-container ul{position:relative;background-color:#fff;margin:0;padding:0;max-height:200px;min-height:200px;overflow-y:scroll;border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-bottom:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container ul li{list-style:none;padding:10px 16px}.form-check{display:flex;align-items:center}.form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}\n"] }]
114
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { onClick: [{
115
+ type: HostListener,
116
+ args: ['document:click', ['$event']]
117
+ }], items: [{
118
+ type: Input
119
+ }], searchField: [{
120
+ type: Input
121
+ }], multi: [{
122
+ type: Input
123
+ }], idField: [{
124
+ type: Input
125
+ }], selectedValues: [{
126
+ type: Input
127
+ }], disabled: [{
128
+ type: Input
129
+ }], label: [{
130
+ type: Input
131
+ }], selected: [{
132
+ type: Output
133
+ }] } });
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9jb21tb24vY3VzdG9tLXNlbGVjdC9jdXN0b20tc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9jdXN0b20tc2VsZWN0L2N1c3RvbS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7OztBQVEzSixNQUFNLE9BQU8scUJBQXFCO0lBdUJaO0lBcEJwQixPQUFPLENBQUMsS0FBaUI7UUFDdkIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRVEsS0FBSyxDQUFLO0lBQ1YsV0FBVyxDQUFRO0lBQ25CLEtBQUssQ0FBUztJQUNkLE9BQU8sQ0FBUTtJQUNmLGNBQWMsR0FBUSxFQUFFLENBQUE7SUFDeEIsUUFBUSxDQUFvQjtJQUM1QixLQUFLLENBQU87SUFFWCxRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQTtJQUM1QyxjQUFjLEdBQVEsRUFBRSxDQUFBO0lBQ3hCLFlBQVksQ0FBUztJQUNyQixXQUFXLENBQVE7SUFFbkIsWUFBb0IsRUFBcUI7UUFBckIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7SUFBSSxDQUFDO0lBRTlDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUMxQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDeEI7UUFDRCxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFO1lBQzVELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFlBQWdCLEVBQUUsRUFBRTtZQUNoRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDLFlBQWdCLEVBQUUsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUM1SCxJQUFJLElBQUksRUFBRTtnQkFDUixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQzthQUN4QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN6QyxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVU7UUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2QzthQUFNO1lBQ0wsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVEsRUFBRSxFQUFFLENBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUMxRCxDQUFDO1NBQ0g7UUFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVSxFQUFFLElBQVM7UUFDNUIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDM0c7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1NBQzNCO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFTLEVBQUUsRUFBRTtZQUN6RCxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBQzlDLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFeEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO1FBQzlDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBRXhFLElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2hEO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztTQUMxQjtRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDMUQsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLEtBQUssQ0FBQztZQUM5QyxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFHRCxrQkFBa0IsQ0FBQyxNQUFhO1FBQzlCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzVCO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7dUdBckhVLHFCQUFxQjsyRkFBckIscUJBQXFCLDRVQ1JsQyxxdUVBdUNJOzsyRkQvQlMscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTTtzRkFLL0MsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVFqQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY3VzdG9tLXNlbGVjdC5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21TZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25DbGljayhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKCF0YXJnZXQuY2xvc2VzdCgnLmRyb3Bkb3duJykpIHtcclxuICAgICAgdGhpcy5zaG93RHJvcGRvd24gPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGl0ZW1zOiBhbnlcclxuICBASW5wdXQoKSBzZWFyY2hGaWVsZDogc3RyaW5nXHJcbiAgQElucHV0KCkgbXVsdGk6IGJvb2xlYW5cclxuICBASW5wdXQoKSBpZEZpZWxkOiBzdHJpbmdcclxuICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlczogYW55ID0gW11cclxuICBASW5wdXQoKSBkaXNhYmxlZDpib29sZWFuIHwgdW5kZWZpbmVkXHJcbiAgQElucHV0KCkgbGFiZWw6c3RyaW5nXHJcblxyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXHJcbiAgZmlsdGVyZWRWYWx1ZXM6IGFueSA9IFtdXHJcbiAgc2hvd0Ryb3Bkb3duOiBib29sZWFuXHJcbiAgc2VhcmNoVmFsdWU6IHN0cmluZ1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydpdGVtcyddICYmIHRoaXMuaXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVJdGVtcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkVmFsdWVzJ10gJiYgdGhpcy5zZWxlY3RlZFZhbHVlcz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVJdGVtcygpIHtcclxuICAgIHRoaXMuZmlsdGVyZWRWYWx1ZXMgPSB0aGlzLml0ZW1zLm1hcCgoaXRlbTogYW55KSA9PiAoeyAuLi5pdGVtIH0pKTtcclxuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZXMoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNlbGVjdGVkVmFsdWVzKCkgeyAgICBcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LmZvckVhY2goKHNlbGVjdGVkSXRlbTphbnkpID0+IHtcclxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZmlsdGVyZWRWYWx1ZXM/LmZpbmQoKGZpbHRlcmVkSXRlbTphbnkpID0+IGZpbHRlcmVkSXRlbT8uW3RoaXMuaWRGaWVsZF0gPT09IHNlbGVjdGVkSXRlbT8uW3RoaXMuaWRGaWVsZF0pO1xyXG4gICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgIGl0ZW0uaXNTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3BlbkRyb3Bkb3duKGV2ZW50OiBhbnkpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5zaG93RHJvcGRvd24gPSAhdGhpcy5zaG93RHJvcGRvd247XHJcbiAgfVxyXG5cclxuICBvbklucHV0KGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICghZXZlbnQudGFyZ2V0LnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRWYWx1ZXMgPSBbLi4udGhpcy5pdGVtc107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBzZWFyY2hUZXJtID0gZXZlbnQudGFyZ2V0LnZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRWYWx1ZXMgPSB0aGlzLml0ZW1zLmZpbHRlcigoaXRlbTphbnkpID0+XHJcbiAgICAgICAgaXRlbVt0aGlzLnNlYXJjaEZpZWxkXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0KGV2ZW50OiBhbnksIGl0ZW06IGFueSkge1xyXG4gICAgaWYgKHRoaXMubXVsdGkpIHtcclxuICAgICAgaWYgKGV2ZW50LmN1cnJlbnRUYXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucHVzaCh7IC4uLml0ZW0gfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXMuZmlsdGVyKChlbGVtOmFueSkgPT4gZWxlbVt0aGlzLmlkRmllbGRdICE9PSBpdGVtW3RoaXMuaWRGaWVsZF0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW3sgLi4uaXRlbSB9XTtcclxuICAgICAgdGhpcy5zaG93RHJvcGRvd24gPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWx1ZXNUb0VtaXQgPSB0aGlzLnNlbGVjdGVkVmFsdWVzLm1hcCgodmFsdWU6YW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgaXNTZWxlY3RlZCwgLi4uc2VsZWN0ZWRJdGVtIH0gPSB2YWx1ZTtcclxuICAgICAgcmV0dXJuIHNlbGVjdGVkSXRlbTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5lbWl0U2VsZWN0ZWRWYWx1ZXModmFsdWVzVG9FbWl0KTtcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RBbGwoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3Qgc2VsZWN0QWxsID0gZXZlbnQuY3VycmVudFRhcmdldC5jaGVja2VkO1xyXG4gICAgdGhpcy5maWx0ZXJlZFZhbHVlcy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IGl0ZW0uaXNTZWxlY3RlZCA9IHNlbGVjdEFsbCk7XHJcbiAgXHJcbiAgICBpZiAoc2VsZWN0QWxsKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbLi4udGhpcy5maWx0ZXJlZFZhbHVlc107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW107XHJcbiAgICB9XHJcbiAgXHJcbiAgICBjb25zdCB2YWx1ZXNUb0VtaXQgPSB0aGlzLnNlbGVjdGVkVmFsdWVzLm1hcCgodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGlzU2VsZWN0ZWQsIC4uLnNlbGVjdGVkSXRlbSB9ID0gdmFsdWU7XHJcbiAgICAgIHJldHVybiBzZWxlY3RlZEl0ZW07XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuZW1pdFNlbGVjdGVkVmFsdWVzKHZhbHVlc1RvRW1pdCk7XHJcbiAgfVxyXG4gIFxyXG5cclxuICBlbWl0U2VsZWN0ZWRWYWx1ZXModmFsdWVzOiBhbnlbXSkge1xyXG4gICAgaWYgKHRoaXMubXVsdGkpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHZhbHVlcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkLmVtaXQodmFsdWVzWzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrSWZBbGxTZWxlY3RlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkVmFsdWVzLmV2ZXJ5KChpdGVtOmFueSkgPT4gaXRlbS5pc1NlbGVjdGVkKTtcclxuICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwib3V0ZXItY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cImRpc2FibGVkID8gJ2Rpc2FibGUtaW5wdXQnOicnXCIgIChjbGljayk9XCJvcGVuRHJvcGRvd24oJGV2ZW50KVwiICBjbGFzcz1cImZvcm0tc2VsZWN0XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibXVsdGlcIiA+XHJcbiAgICB7e3NlbGVjdGVkVmFsdWVzPy5sZW5ndGh9fSB7e2xhYmVsfX0gU2VsZWN0ZWQgICAgXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbXVsdGlcIiA+XHJcbiAgICAgICAge3tzZWxlY3RlZFZhbHVlcz8uWzBdPy5bc2VhcmNoRmllbGRdfX1cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInNob3dEcm9wZG93biA/ICcnIDogJ2Qtbm9uZSdcIiBjbGFzcz1cImlucHV0LWNvbnRhaW5lciBkcm9wZG93blwiID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgaW5wdXQtd3JhcHBlclwiPlxyXG4gICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiIHR5cGU9XCJ0ZXh0XCI+ICBcclxuICAgICAgICA8c3ZnIGNsYXNzPVwic2VhcmNoLWljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE3XCIgdmlld0JveD1cIjAgMCAxNiAxN1wiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTQgMTQuNUwxMS4xIDExLjZNMTIuNjY2NyA3LjgzMzMzQzEyLjY2NjcgMTAuNzc4OSAxMC4yNzg5IDEzLjE2NjcgNy4zMzMzMyAxMy4xNjY3QzQuMzg3ODEgMTMuMTY2NyAyIDEwLjc3ODkgMiA3LjgzMzMzQzIgNC44ODc4MSA0LjM4NzgxIDIuNSA3LjMzMzMzIDIuNUMxMC4yNzg5IDIuNSAxMi42NjY3IDQuODg3ODEgMTIuNjY2NyA3LjgzMzMzWlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICA8L3N2Zz4gIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDx1bD5cclxuICAgICAgICAgICAgPGxpICpuZ0lmPVwibXVsdGlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgICBjbGFzcz1cImZvcm0tY2hlY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgKGNoYW5nZSk9XCJvblNlbGVjdEFsbCgkZXZlbnQpXCIgW2NoZWNrZWRdPVwiY2hlY2tJZkFsbFNlbGVjdGVkKClcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbWUtM1wiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwic2VsZWN0QWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cInNlbGVjdEFsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3QgQWxsXHJcbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRWYWx1ZXM7IGxldCBpID0gaW5kZXhcIiA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIm11bHRpICA/ICcnOiAncHMtMCdcIiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW25nQ2xhc3NdPVwibXVsdGkgID8gJyc6ICdkLW5vbmUnXCIgKGNoYW5nZSk9XCJvblNlbGVjdCgkZXZlbnQsIGl0ZW0pXCIgWyhuZ01vZGVsKV09XCJpdGVtLmlzU2VsZWN0ZWRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbWUtM1wiIHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgW2Zvcl09XCJpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbVtzZWFyY2hGaWVsZF19fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICA8L3VsPiAgXHJcbiAgICA8L2Rpdj4gIFxyXG4gICAgXHJcbjwvZGl2PlxyXG4gICAgIl19
@@ -0,0 +1,154 @@
1
+ import { Component, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/forms";
6
+ export class FiltersComponent {
7
+ elementRef;
8
+ renderer;
9
+ router;
10
+ dataObject = [];
11
+ Opendropdown = false;
12
+ permission = [
13
+ { group: 'Super Admin', description: 'Lorem ipsum dolor sit amet, consectetur ' },
14
+ { group: 'Admin', description: 'Lorem ipsum dolor sit amet, consectetur ' },
15
+ { group: 'User', description: 'Lorem ipsum dolor sit amet, consectetur ' },
16
+ ];
17
+ showdropdown;
18
+ selectedValues = [];
19
+ selectedValuesArray = [];
20
+ searchValue;
21
+ dummyArray = [];
22
+ noFilter = false;
23
+ responseArray = [];
24
+ constructor(elementRef, renderer, router) {
25
+ this.elementRef = elementRef;
26
+ this.renderer = renderer;
27
+ this.router = router;
28
+ }
29
+ onClick(event) {
30
+ const target = event.target;
31
+ if (!target.closest('.dropdown1')) {
32
+ this.Opendropdown = false;
33
+ }
34
+ if (!target.closest('.dropdown-content')) {
35
+ this.dataObject.forEach((item, i) => {
36
+ item.isOpen = false;
37
+ });
38
+ }
39
+ }
40
+ ngOnInit() {
41
+ this.dummyArray = JSON.parse(JSON.stringify(this.dataObject));
42
+ this.responseArray = JSON.parse(JSON.stringify(this.dataObject));
43
+ }
44
+ opendropdown(e) {
45
+ console.log(687);
46
+ e.stopPropagation();
47
+ this.Opendropdown = !this.Opendropdown;
48
+ }
49
+ Dropdown(value, index, event) {
50
+ event.stopPropagation();
51
+ this.dataObject.forEach((item, i) => {
52
+ if (i !== index) {
53
+ item.isOpen = false; // Close other dropdowns
54
+ }
55
+ });
56
+ this.dataObject[index].isOpen = !this.dataObject[index].isOpen;
57
+ // if (this.dataObject[index].isOpen) {
58
+ // document.addEventListener('click', this.clickOutsideDropdownContent.bind(this, index));
59
+ // } else {
60
+ // document.removeEventListener('click', this.clickOutsideDropdownContent.bind(this, index));
61
+ // }
62
+ }
63
+ // clickOutsideDropdownContent(index: number, event: Event) {
64
+ // if (!this.elementRef.nativeElement.contains(event.target as Node)) {
65
+ // this.dataObject[index].isOpen = false;
66
+ // document.removeEventListener('click', this.clickOutsideDropdownContent.bind(this, index));
67
+ // }
68
+ // }
69
+ toggleCheckbox(issue, index) {
70
+ const currentIssues = this.dataObject[index].Issues;
71
+ this.selectedValuesArray[index] = this.selectedValuesArray[index] || [];
72
+ const selectedValues = this.selectedValuesArray[index]; // Retrieve selected values array for the current dropdown index
73
+ if (issue === 'Select All') {
74
+ const currentIssues = this.dataObject[index].Issues.map((item) => item.text);
75
+ if (selectedValues.length === currentIssues.length) {
76
+ // If all items are already selected, deselect all
77
+ this.selectedValuesArray[index] = [];
78
+ }
79
+ else {
80
+ // Otherwise, select all items
81
+ this.selectedValuesArray[index] = [...currentIssues];
82
+ }
83
+ }
84
+ else {
85
+ if (selectedValues.includes(issue)) {
86
+ this.selectedValuesArray[index] = selectedValues.filter((item) => item !== issue); // Deselect the individual item if already selected
87
+ }
88
+ else {
89
+ this.selectedValuesArray[index].push(issue); // Select the individual item if not already selected
90
+ }
91
+ }
92
+ // Update "Select All" checkbox status based on selected values
93
+ const selectAllId = `selectall${index}`;
94
+ const selectAllElement = document.getElementById(selectAllId);
95
+ if (selectAllElement) {
96
+ selectAllElement.checked = selectedValues.length === currentIssues.length;
97
+ }
98
+ // Update checkboxes based on selected values
99
+ currentIssues.forEach((item) => {
100
+ const isChecked = this.selectedValuesArray[index].includes(item);
101
+ const checkboxId = `option${item}`;
102
+ const checkboxElement = document.getElementById(checkboxId);
103
+ if (checkboxElement) {
104
+ checkboxElement.checked = isChecked;
105
+ }
106
+ });
107
+ }
108
+ Reset() {
109
+ this.selectedValuesArray = [];
110
+ this.Opendropdown = false;
111
+ }
112
+ searchData(event, i) {
113
+ const filteredIssues = this.dummyArray[i].Issues.filter((item) => new RegExp(event.target.value, 'i').test(item.text));
114
+ this.dataObject[i].Issues = filteredIssues;
115
+ if (filteredIssues.length) {
116
+ this.noFilter = false;
117
+ }
118
+ else {
119
+ this.noFilter = true;
120
+ }
121
+ }
122
+ Apply() {
123
+ for (let i = 0; i < this.selectedValuesArray.length; i++) {
124
+ const selectedValues = this.selectedValuesArray[i];
125
+ const issues = this.dataObject[i].Issues;
126
+ if (selectedValues) {
127
+ this.selectedValuesArray[i] = selectedValues.map((selectedId) => {
128
+ const issue = issues.find((issueItem) => issueItem.text === selectedId);
129
+ return issue ? issue : ''; // Get the text corresponding to the id
130
+ });
131
+ }
132
+ }
133
+ this.Opendropdown = false;
134
+ this.selectedValuesArray.forEach((item, index) => {
135
+ item = item.map((ele) => ele.text);
136
+ this.selectedValuesArray[index] = item;
137
+ });
138
+ this.responseArray.forEach((item, index) => {
139
+ item.Issues = this.selectedValuesArray[index] ? this.selectedValuesArray[index] : [];
140
+ });
141
+ }
142
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FiltersComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
143
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: FiltersComponent, selector: "lib-filters", inputs: { dataObject: "dataObject" }, host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0, template: "<div class=\"position-relative\">\r\n \r\n <button type=\"button\" (click)=\"opendropdown($event)\" \r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n class=\"pl-3\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M5 10H15M2.5 5H17.5M7.5 15H12.5\" stroke=\"#344054\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2\">Filter</span> </button>\r\n \r\n <div class=\"card p-5 dropdown1 position-absolute\" *ngIf=\"Opendropdown\">\r\n <span class=\"dropdown-title\">Filter Options</span>\r\n <div class=\"w-100 border border-gray mt-3\"></div>\r\n <div class=\"py-3\" *ngFor=\"let item of dataObject; let i = index\">\r\n <div class=\"dropdown form-select position-relative d-flex justify-content-between\" (click)=\"Dropdown(item.Description,i,$event)\">\r\n <!-- <span class=\"\">{{ selectedValuesArray[i]?.length !== null && selectedValuesArray[i]?.length !== undefined ? selectedValuesArray[i]?.length + ' ' + item.Description.split(' ').pop() + ' Selected' : item.Description }}</span> -->\r\n <span class=\"\">{{item.Description}}</span> <span *ngIf=\"selectedValuesArray[i]?.length !== null && selectedValuesArray[i]?.length !== undefined && selectedValuesArray[i]?.length !== 0\" class=\"badge badge-light-default\">{{selectedValuesArray[i]?.length}}</span>\r\n </div>\r\n <div *ngIf=\"item.isOpen\" class=\"dropdown-content position-absolute w-100\">\r\n <div class=\"form-check d-flex align-items-center py-3 pt-3 ps-0\">\r\n <input class=\"form-check-input\" type=\"checkbox\" value=\"Select All\" id=\"selectall{{i}}\" [checked]=\"selectedValuesArray[i]?.length === item.Issues.length\"\r\n (change)=\"toggleCheckbox('Select All', i)\">\r\n <label class=\"form-check-label px-2\" for=\"selectall{{i}}\">\r\n Select All\r\n </label>\r\n </div>\r\n \r\n <div class=\"border border-gray mt-3 \"></div>\r\n \r\n <div class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3 mt-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <input type=\"text\" [(ngModel)]=\"searchValue\" (input)=\"searchData($event,i)\" class=\"form-control searchinput ps-14 py-2 me-2 mt-2\"\r\n placeholder=\"Search\" autocomplete=\"off\" />\r\n </div>\r\n \r\n <div *ngFor=\"let issue of item.Issues\" class=\"form-check d-flex align-items-center py-3 pt-3 ps-0 mt-2\">\r\n <input class=\"form-check-input\" type=\"checkbox\" [value]=\"issue.text\" id=\"option{{issue.text}}\" [checked]=\"selectedValuesArray[i]?.includes(issue.text)\"\r\n (change)=\"toggleCheckbox(issue.text,i)\">\r\n <label class=\"form-check-label px-2\" for=\"option{{issue.text}}\">\r\n {{ issue.text }}\r\n </label>\r\n </div>\r\n <div class=\"mt-5 d-flex justify-content-center\">\r\n <span class=\"form-check-label\" *ngIf=\"noFilter\"> No filters available</span>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div role=\"group\" class=\"d-flex justify-content-between\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"Reset()\"> Reset </button>\r\n <button class=\"btn btn-primary w-100 ms-2\" (click)=\"Apply()\">Apply</button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".dropdown1{position:absolute;top:70px;min-width:270px!important}.dropdown1 .dropdown-title{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.dropdown1 .dropdown{position:relative;display:inline-block}.dropdown1 .dropdown span{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:20px}.dropdown1 .dropdown-content{width:90%!important;z-index:1;padding:10px;background-color:#fff;border-radius:8px;box-shadow:0 8px 16px #0003;height:200px;overflow:auto}.dropdown1 .dropdown-content label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px;text-transform:capitalize}.dropdown1 .dropdown-content a{color:#000;padding:12px 16px;text-decoration:none;display:block}.dropdown1 .dropdown button{padding:10px;font-size:16px;cursor:pointer}.dropdown1 input[type=checkbox]{width:16px!important;height:16px!important;margin:-3px 5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}.dropdown1 input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF)}.dropdown1 input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.2em;padding-left:0;padding-top:9px;padding-right:4px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
144
+ }
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FiltersComponent, decorators: [{
146
+ type: Component,
147
+ args: [{ selector: 'lib-filters', template: "<div class=\"position-relative\">\r\n \r\n <button type=\"button\" (click)=\"opendropdown($event)\" \r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n class=\"pl-3\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M5 10H15M2.5 5H17.5M7.5 15H12.5\" stroke=\"#344054\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2\">Filter</span> </button>\r\n \r\n <div class=\"card p-5 dropdown1 position-absolute\" *ngIf=\"Opendropdown\">\r\n <span class=\"dropdown-title\">Filter Options</span>\r\n <div class=\"w-100 border border-gray mt-3\"></div>\r\n <div class=\"py-3\" *ngFor=\"let item of dataObject; let i = index\">\r\n <div class=\"dropdown form-select position-relative d-flex justify-content-between\" (click)=\"Dropdown(item.Description,i,$event)\">\r\n <!-- <span class=\"\">{{ selectedValuesArray[i]?.length !== null && selectedValuesArray[i]?.length !== undefined ? selectedValuesArray[i]?.length + ' ' + item.Description.split(' ').pop() + ' Selected' : item.Description }}</span> -->\r\n <span class=\"\">{{item.Description}}</span> <span *ngIf=\"selectedValuesArray[i]?.length !== null && selectedValuesArray[i]?.length !== undefined && selectedValuesArray[i]?.length !== 0\" class=\"badge badge-light-default\">{{selectedValuesArray[i]?.length}}</span>\r\n </div>\r\n <div *ngIf=\"item.isOpen\" class=\"dropdown-content position-absolute w-100\">\r\n <div class=\"form-check d-flex align-items-center py-3 pt-3 ps-0\">\r\n <input class=\"form-check-input\" type=\"checkbox\" value=\"Select All\" id=\"selectall{{i}}\" [checked]=\"selectedValuesArray[i]?.length === item.Issues.length\"\r\n (change)=\"toggleCheckbox('Select All', i)\">\r\n <label class=\"form-check-label px-2\" for=\"selectall{{i}}\">\r\n Select All\r\n </label>\r\n </div>\r\n \r\n <div class=\"border border-gray mt-3 \"></div>\r\n \r\n <div class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3 mt-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <input type=\"text\" [(ngModel)]=\"searchValue\" (input)=\"searchData($event,i)\" class=\"form-control searchinput ps-14 py-2 me-2 mt-2\"\r\n placeholder=\"Search\" autocomplete=\"off\" />\r\n </div>\r\n \r\n <div *ngFor=\"let issue of item.Issues\" class=\"form-check d-flex align-items-center py-3 pt-3 ps-0 mt-2\">\r\n <input class=\"form-check-input\" type=\"checkbox\" [value]=\"issue.text\" id=\"option{{issue.text}}\" [checked]=\"selectedValuesArray[i]?.includes(issue.text)\"\r\n (change)=\"toggleCheckbox(issue.text,i)\">\r\n <label class=\"form-check-label px-2\" for=\"option{{issue.text}}\">\r\n {{ issue.text }}\r\n </label>\r\n </div>\r\n <div class=\"mt-5 d-flex justify-content-center\">\r\n <span class=\"form-check-label\" *ngIf=\"noFilter\"> No filters available</span>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div role=\"group\" class=\"d-flex justify-content-between\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"Reset()\"> Reset </button>\r\n <button class=\"btn btn-primary w-100 ms-2\" (click)=\"Apply()\">Apply</button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".dropdown1{position:absolute;top:70px;min-width:270px!important}.dropdown1 .dropdown-title{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.dropdown1 .dropdown{position:relative;display:inline-block}.dropdown1 .dropdown span{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:20px}.dropdown1 .dropdown-content{width:90%!important;z-index:1;padding:10px;background-color:#fff;border-radius:8px;box-shadow:0 8px 16px #0003;height:200px;overflow:auto}.dropdown1 .dropdown-content label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px;text-transform:capitalize}.dropdown1 .dropdown-content a{color:#000;padding:12px 16px;text-decoration:none;display:block}.dropdown1 .dropdown button{padding:10px;font-size:16px;cursor:pointer}.dropdown1 input[type=checkbox]{width:16px!important;height:16px!important;margin:-3px 5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}.dropdown1 input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF)}.dropdown1 input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.2em;padding-left:0;padding-top:9px;padding-right:4px}\n"] }]
148
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.Router }], propDecorators: { dataObject: [{
149
+ type: Input
150
+ }], onClick: [{
151
+ type: HostListener,
152
+ args: ['document:click', ['$event']]
153
+ }] } });
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9jb21tb24vZmlsdGVycy9maWx0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFROUYsTUFBTSxPQUFPLGdCQUFnQjtJQWtCUDtJQUNWO0lBQ0E7SUFuQkQsVUFBVSxHQUFVLEVBQUUsQ0FBQztJQUNoQyxZQUFZLEdBQVksS0FBSyxDQUFDO0lBRTlCLFVBQVUsR0FBRztRQUNYLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsMENBQTBDLEVBQUU7UUFDakYsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSwwQ0FBMEMsRUFBRTtRQUMzRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLDBDQUEwQyxFQUFFO0tBQzNFLENBQUE7SUFHRCxZQUFZLENBQU07SUFDbEIsY0FBYyxHQUFhLEVBQUUsQ0FBQztJQUM5QixtQkFBbUIsR0FBVSxFQUFFLENBQUM7SUFDaEMsV0FBVyxDQUFLO0lBQ2hCLFVBQVUsR0FBUyxFQUFFLENBQUM7SUFDdEIsUUFBUSxHQUFXLEtBQUssQ0FBQztJQUN6QixhQUFhLEdBQVMsRUFBRSxDQUFBO0lBQ3hCLFlBQW9CLFVBQXNCLEVBQ2hDLFFBQW1CLEVBQ25CLE1BQWM7UUFGSixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2hDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIs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U0FBUyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQztvQkFDN0UsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsdUNBQXVDO2dCQUVwRSxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUSxFQUFDLEtBQVMsRUFBRSxFQUFFO1lBQ3RELElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQTtRQUN4QyxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUSxFQUFDLEtBQVMsRUFBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBLEVBQUUsQ0FBQTtRQUN0RixDQUFDLENBQUMsQ0FBQTtJQUNILENBQUM7dUdBekpVLGdCQUFnQjsyRkFBaEIsZ0JBQWdCLHVKQ1I3QiwyMElBMkRBOzsyRkRuRGEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGFBQWE7NEhBS2QsVUFBVTtzQkFBbEIsS0FBSztnQkF1Qk4sT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZmlsdGVycycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlcnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9maWx0ZXJzLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZGF0YU9iamVjdDogYW55W10gPSBbXTtcclxuICBPcGVuZHJvcGRvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcGVybWlzc2lvbiA9IFtcclxuICAgIHsgZ3JvdXA6ICdTdXBlciBBZG1pbicsIGRlc2NyaXB0aW9uOiAnTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyICcgfSxcclxuICAgIHsgZ3JvdXA6ICdBZG1pbicsIGRlc2NyaXB0aW9uOiAnTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyICcgfSxcclxuICAgIHsgZ3JvdXA6ICdVc2VyJywgZGVzY3JpcHRpb246ICdMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgJyB9LFxyXG4gIF1cclxuXHJcbiAgXHJcbiAgc2hvd2Ryb3Bkb3duOiBhbnk7XHJcbiAgc2VsZWN0ZWRWYWx1ZXM6IHN0cmluZ1tdID0gW107XHJcbiAgc2VsZWN0ZWRWYWx1ZXNBcnJheTogYW55W10gPSBbXTtcclxuICBzZWFyY2hWYWx1ZTphbnk7XHJcbiAgZHVtbXlBcnJheTphbnlbXSA9IFtdO1xyXG4gIG5vRmlsdGVyOmJvb2xlYW4gPSBmYWxzZTtcclxuICByZXNwb25zZUFycmF5OmFueVtdID0gW11cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XHJcbiAgICAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25DbGljayAoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0XHJcbiAgICAgIHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmKCF0YXJnZXQuY2xvc2VzdCgnLmRyb3Bkb3duMScpKSB7XHJcbiAgICAgIHRoaXMuT3BlbmRyb3Bkb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZighdGFyZ2V0LmNsb3Nlc3QoJy5kcm9wZG93bi1jb250ZW50Jykpe1xyXG4gICAgICB0aGlzLmRhdGFPYmplY3QuZm9yRWFjaCgoaXRlbTogYW55LCBpOiBhbnkpID0+IHtcclxuICAgICAgICAgIGl0ZW0uaXNPcGVuID0gZmFsc2U7IFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5kdW1teUFycmF5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFPYmplY3QpKVxyXG4gICAgdGhpcy5yZXNwb25zZUFycmF5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFPYmplY3QpKVxyXG4gICAgXHJcbiAgfVxyXG5cclxuICBcclxuICBvcGVuZHJvcGRvd24oZTpNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zb2xlLmxvZyg2ODcpO1xyXG4gICAgXHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5PcGVuZHJvcGRvd24gPSAhdGhpcy5PcGVuZHJvcGRvd247XHJcbiAgfVxyXG5cclxuICBEcm9wZG93bih2YWx1ZTogYW55LCBpbmRleDogbnVtYmVyLGV2ZW50Ok1vdXNlRXZlbnQpIHtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmRhdGFPYmplY3QuZm9yRWFjaCgoaXRlbTogYW55LCBpOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGkgIT09IGluZGV4KSB7XHJcbiAgICAgICAgaXRlbS5pc09wZW4gPSBmYWxzZTsgLy8gQ2xvc2Ugb3RoZXIgZHJvcGRvd25zXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5pc09wZW4gPSAhdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5pc09wZW47XHJcblxyXG4gICAgLy8gaWYgKHRoaXMuZGF0YU9iamVjdFtpbmRleF0uaXNPcGVuKSB7XHJcbiAgICAvLyAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jbGlja091dHNpZGVEcm9wZG93bkNvbnRlbnQuYmluZCh0aGlzLCBpbmRleCkpO1xyXG4gICAgLy8gfSBlbHNlIHtcclxuICAgIC8vICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsaWNrT3V0c2lkZURyb3Bkb3duQ29udGVudC5iaW5kKHRoaXMsIGluZGV4KSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICAvLyBjbGlja091dHNpZGVEcm9wZG93bkNvbnRlbnQoaW5kZXg6IG51bWJlciwgZXZlbnQ6IEV2ZW50KSB7XHJcbiAgLy8gICBpZiAoIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xyXG4gIC8vICAgICB0aGlzLmRhdGFPYmplY3RbaW5kZXhdLmlzT3BlbiA9IGZhbHNlO1xyXG4gIC8vICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY2xpY2tPdXRzaWRlRHJvcGRvd25Db250ZW50LmJpbmQodGhpcywgaW5kZXgpKTtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIHRvZ2dsZUNoZWNrYm94KGlzc3VlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpIHtcclxuXHJcbiAgICBjb25zdCBjdXJyZW50SXNzdWVzID0gdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5Jc3N1ZXM7XHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID0gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSB8fCBbXTtcclxuICAgIGNvbnN0IHNlbGVjdGVkVmFsdWVzID0gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XTsgLy8gUmV0cmlldmUgc2VsZWN0ZWQgdmFsdWVzIGFycmF5IGZvciB0aGUgY3VycmVudCBkcm9wZG93biBpbmRleFxyXG5cclxuICAgIGlmIChpc3N1ZSA9PT0gJ1NlbGVjdCBBbGwnKSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRJc3N1ZXMgPSB0aGlzLmRhdGFPYmplY3RbaW5kZXhdLklzc3Vlcy5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS50ZXh0KTtcclxuICAgICAgaWYgKHNlbGVjdGVkVmFsdWVzLmxlbmd0aCA9PT0gY3VycmVudElzc3Vlcy5sZW5ndGgpIHtcclxuXHJcbiAgICAgICAgLy8gSWYgYWxsIGl0ZW1zIGFyZSBhbHJlYWR5IHNlbGVjdGVkLCBkZXNlbGVjdCBhbGxcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID0gW107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gT3RoZXJ3aXNlLCBzZWxlY3QgYWxsIGl0ZW1zXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA9IFsuLi5jdXJyZW50SXNzdWVzXTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHNlbGVjdGVkVmFsdWVzLmluY2x1ZGVzKGlzc3VlKSkge1xyXG5cclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID0gc2VsZWN0ZWRWYWx1ZXMuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0gIT09IGlzc3VlKTsgLy8gRGVzZWxlY3QgdGhlIGluZGl2aWR1YWwgaXRlbSBpZiBhbHJlYWR5IHNlbGVjdGVkXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XS5wdXNoKGlzc3VlKSAvLyBTZWxlY3QgdGhlIGluZGl2aWR1YWwgaXRlbSBpZiBub3QgYWxyZWFkeSBzZWxlY3RlZFxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVXBkYXRlIFwiU2VsZWN0IEFsbFwiIGNoZWNrYm94IHN0YXR1cyBiYXNlZCBvbiBzZWxlY3RlZCB2YWx1ZXNcclxuICAgIGNvbnN0IHNlbGVjdEFsbElkID0gYHNlbGVjdGFsbCR7aW5kZXh9YDtcclxuICAgIGNvbnN0IHNlbGVjdEFsbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWxlY3RBbGxJZCkgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGlmIChzZWxlY3RBbGxFbGVtZW50KSB7XHJcbiAgICAgIHNlbGVjdEFsbEVsZW1lbnQuY2hlY2tlZCA9IHNlbGVjdGVkVmFsdWVzLmxlbmd0aCA9PT0gY3VycmVudElzc3Vlcy5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVXBkYXRlIGNoZWNrYm94ZXMgYmFzZWQgb24gc2VsZWN0ZWQgdmFsdWVzXHJcbiAgICBjdXJyZW50SXNzdWVzLmZvckVhY2goKGl0ZW06IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBpc0NoZWNrZWQgPSB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdLmluY2x1ZGVzKGl0ZW0pO1xyXG4gICAgICBjb25zdCBjaGVja2JveElkID0gYG9wdGlvbiR7aXRlbX1gO1xyXG4gICAgICBjb25zdCBjaGVja2JveEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjaGVja2JveElkKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgICBpZiAoY2hlY2tib3hFbGVtZW50KSB7XHJcbiAgICAgICAgY2hlY2tib3hFbGVtZW50LmNoZWNrZWQgPSBpc0NoZWNrZWQ7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIFJlc2V0KCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5ID0gW107XHJcbiAgICB0aGlzLk9wZW5kcm9wZG93biA9IGZhbHNlO1xyXG4gIH1cclxuICBzZWFyY2hEYXRhKGV2ZW50OmFueSxpOmFueSl7XHJcbiAgICBjb25zdCBmaWx0ZXJlZElzc3VlcyA9IHRoaXMuZHVtbXlBcnJheVtpXS5Jc3N1ZXMuZmlsdGVyKChpdGVtOmFueSkgPT4gIG5ldyBSZWdFeHAoZXZlbnQudGFyZ2V0LnZhbHVlLCdpJykudGVzdChpdGVtLnRleHQpKVxyXG4gICAgdGhpcy5kYXRhT2JqZWN0W2ldLklzc3VlcyA9IGZpbHRlcmVkSXNzdWVzO1xyXG4gICAgaWYoZmlsdGVyZWRJc3N1ZXMubGVuZ3RoKXtcclxuICAgICAgdGhpcy5ub0ZpbHRlciA9ZmFsc2U7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5ub0ZpbHRlciA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB9XHJcbiAgQXBwbHkoKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXTtcclxuICAgICAgY29uc3QgaXNzdWVzID0gdGhpcy5kYXRhT2JqZWN0W2ldLklzc3VlcztcclxuXHJcbiAgICAgIGlmIChzZWxlY3RlZFZhbHVlcykge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXSA9IHNlbGVjdGVkVmFsdWVzLm1hcCgoc2VsZWN0ZWRJZDogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpc3N1ZSA9IGlzc3Vlcy5maW5kKChpc3N1ZUl0ZW06IGFueSkgPT4gaXNzdWVJdGVtLnRleHQgPT09IHNlbGVjdGVkSWQpO1xyXG4gICAgICAgICAgcmV0dXJuIGlzc3VlID8gaXNzdWUgOiAnJzsgLy8gR2V0IHRoZSB0ZXh0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGlkXHJcbiAgICAgICAgIFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLk9wZW5kcm9wZG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5LmZvckVhY2goKGl0ZW06YW55LGluZGV4OmFueSkgPT4ge1xyXG4gICAgICBpdGVtID0gaXRlbS5tYXAoKGVsZTphbnkpID0+IGVsZS50ZXh0KTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA9IGl0ZW1cclxuICAgIH0pXHJcbiAgICB0aGlzLnJlc3BvbnNlQXJyYXkuZm9yRWFjaCgoaXRlbTphbnksaW5kZXg6YW55KT0+e1xyXG4gICAgICBpdGVtLklzc3VlcyA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gPyB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdIDpbXVxyXG4gICB9KVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvcGVuZHJvcGRvd24oJGV2ZW50KVwiIFxyXG4gICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCI+PHN2Z1xyXG4gICAgICBjbGFzcz1cInBsLTNcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgPHBhdGggZD1cIk01IDEwSDE1TTIuNSA1SDE3LjVNNy41IDE1SDEyLjVcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICA8L3N2Zz5cclxuICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiPkZpbHRlcjwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICBcclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIHAtNSBkcm9wZG93bjEgcG9zaXRpb24tYWJzb2x1dGVcIiAqbmdJZj1cIk9wZW5kcm9wZG93blwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24tdGl0bGVcIj5GaWx0ZXIgT3B0aW9uczwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgYm9yZGVyIGJvcmRlci1ncmF5IG10LTNcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHktM1wiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFPYmplY3Q7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duIGZvcm0tc2VsZWN0IHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiIChjbGljayk9XCJEcm9wZG93bihpdGVtLkRlc2NyaXB0aW9uLGksJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cIlwiPnt7IHNlbGVjdGVkVmFsdWVzQXJyYXlbaV0/Lmxlbmd0aCAhPT0gbnVsbCAmJiBzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggIT09IHVuZGVmaW5lZCA/IHNlbGVjdGVkVmFsdWVzQXJyYXlbaV0/Lmxlbmd0aCArICcgJyArIGl0ZW0uRGVzY3JpcHRpb24uc3BsaXQoJyAnKS5wb3AoKSArICcgU2VsZWN0ZWQnIDogaXRlbS5EZXNjcmlwdGlvbiB9fTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJcIj57e2l0ZW0uRGVzY3JpcHRpb259fTwvc3Bhbj4gPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggIT09IG51bGwgJiYgc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8ubGVuZ3RoICE9PSB1bmRlZmluZWQgJiYgc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8ubGVuZ3RoICE9PSAwXCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0XCI+e3tzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLmlzT3BlblwiIGNsYXNzPVwiZHJvcGRvd24tY29udGVudCBwb3NpdGlvbi1hYnNvbHV0ZSB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBweS0zIHB0LTMgcHMtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2YWx1ZT1cIlNlbGVjdCBBbGxcIiBpZD1cInNlbGVjdGFsbHt7aX19XCIgIFtjaGVja2VkXT1cInNlbGVjdGVkVmFsdWVzQXJyYXlbaV0/Lmxlbmd0aCA9PT0gaXRlbS5Jc3N1ZXMubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlQ2hlY2tib3goJ1NlbGVjdCBBbGwnLCBpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcHgtMlwiIGZvcj1cInNlbGVjdGFsbHt7aX19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBBbGxcclxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci1ncmF5IG10LTMgXCI+PC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTMgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTdcIiB2aWV3Qm94PVwiMCAwIDE2IDE3XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTQgMTQuNUwxMS4xIDExLjZNMTIuNjY2NyA3LjgzMzMzQzEyLjY2NjcgMTAuNzc4OSAxMC4yNzg5IDEzLjE2NjcgNy4zMzMzMyAxMy4xNjY3QzQuMzg3ODEgMTMuMTY2NyAyIDEwLjc3ODkgMiA3LjgzMzMzQzIgNC44ODc4MSA0LjM4NzgxIDIuNSA3LjMzMzMzIDIuNUMxMC4yNzg5IDIuNSAxMi42NjY3IDQuODg3ODEgMTIuNjY2NyA3LjgzMzMzWlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoVmFsdWVcIiAoaW5wdXQpPVwic2VhcmNoRGF0YSgkZXZlbnQsaSlcIiBjbGFzcz1cImZvcm0tY29udHJvbCBzZWFyY2hpbnB1dCBwcy0xNCBweS0yIG1lLTIgbXQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXNzdWUgb2YgaXRlbS5Jc3N1ZXNcIiAgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcHktMyBwdC0zIHBzLTAgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiBbdmFsdWVdPVwiaXNzdWUudGV4dFwiIGlkPVwib3B0aW9ue3tpc3N1ZS50ZXh0fX1cIiBbY2hlY2tlZF09XCJzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5pbmNsdWRlcyhpc3N1ZS50ZXh0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlQ2hlY2tib3goaXNzdWUudGV4dCxpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcHgtMlwiIGZvcj1cIm9wdGlvbnt7aXNzdWUudGV4dH19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGlzc3VlLnRleHQgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiICpuZ0lmPVwibm9GaWx0ZXJcIj4gTm8gZmlsdGVycyBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICBcclxuICAgICAgICA8ZGl2IHJvbGU9XCJncm91cFwiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0xMDAgbWUtMlwiIChjbGljayk9XCJSZXNldCgpXCI+IFJlc2V0IDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwIG1zLTJcIiAoY2xpY2spPVwiQXBwbHkoKVwiPkFwcGx5PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4iXX0=
@@ -0,0 +1,48 @@
1
+ import { 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 "ngx-pagination";
6
+ export class PaginationComponent {
7
+ collection = [];
8
+ itemsPerPage;
9
+ currentPage;
10
+ totalItems;
11
+ directionLinks = false;
12
+ pageSize;
13
+ paginationSizes;
14
+ pageChange = new EventEmitter();
15
+ pageSizeChange = new EventEmitter();
16
+ onPageChange(page) {
17
+ this.pageChange.emit(page);
18
+ }
19
+ onPageSizeChange() {
20
+ this.itemsPerPage = this.pageSize;
21
+ this.pageSizeChange.emit(this.pageSize);
22
+ }
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: PaginationComponent, selector: "lib-pagination", inputs: { collection: "collection", itemsPerPage: "itemsPerPage", currentPage: "currentPage", totalItems: "totalItems", directionLinks: "directionLinks", pageSize: "pageSize", paginationSizes: "paginationSizes" }, outputs: { pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, ngImport: i0, template: "\r\n<div class=\"row\">\r\n <div class=\"col-md-3\"></div>\r\n <div class=\"col-md-3 mt-4 text-end pe-0\"><span class=\"sub-title\">\r\n <span class=\"me-3\">Displaying</span>\r\n <select class=\"border-val \" [(ngModel)]=\"pageSize\" (change)=\"onPageSizeChange()\">\r\n <option value=\"{{ size }}\" *ngFor=\"let size of paginationSizes\">\r\n {{ size }}\r\n </option>>\r\n </select>\r\n <span class=\"ms-3\">out of {{totalItems}} items</span>\r\n </span></div>\r\n <div class=\"col-md-4 text-start ps-0\">\r\n <ul>\r\n <li\r\n *ngFor=\"let item of collection | paginate: { itemsPerPage: itemsPerPage, currentPage: currentPage, totalItems: totalItems }\">\r\n </li>\r\n </ul>\r\n <pagination-controls \r\n (pageChange)=\"onPageChange($event);currentPage=$event;\" \r\n [directionLinks]=\"directionLinks\"\r\n [maxSize]=\"7\"\r\n [responsive]=\"true\">\r\n </pagination-controls>\r\n </div>\r\n <div class=\"col-md-2\"></div>\r\n</div>\r\n", styles: ["::ng-deep .ngx-pagination .current{padding:12px!important;background:#eaf8ff!important;cursor:default;color:#00a3ff!important;width:40px;height:40px;border-radius:8px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-600, #00A3FF)!important;text-align:center;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}::ng-deep .ngx-pagination{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}::ng-deep .ngx-pagination a{padding:.1875rem 1rem!important}*{font-family:Inter!important}.border-val{padding:10px 14px!important;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url('data:image/svg+xml;utf8,<svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\"><path d=\"M10 12l-6-6h12l-6 6z\" fill=\"%23777\"/></svg>');background-repeat:no-repeat;background-position-x:calc(100% - 12px);background-position-y:50%;padding-right:20px}.sub-title{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500!important;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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.PaginationControlsComponent, selector: "pagination-controls", inputs: ["id", "maxSize", "directionLinks", "autoHide", "responsive", "previousLabel", "nextLabel", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel"], outputs: ["pageChange", "pageBoundsCorrection"] }, { kind: "pipe", type: i3.PaginatePipe, name: "paginate" }] });
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: PaginationComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: 'lib-pagination', template: "\r\n<div class=\"row\">\r\n <div class=\"col-md-3\"></div>\r\n <div class=\"col-md-3 mt-4 text-end pe-0\"><span class=\"sub-title\">\r\n <span class=\"me-3\">Displaying</span>\r\n <select class=\"border-val \" [(ngModel)]=\"pageSize\" (change)=\"onPageSizeChange()\">\r\n <option value=\"{{ size }}\" *ngFor=\"let size of paginationSizes\">\r\n {{ size }}\r\n </option>>\r\n </select>\r\n <span class=\"ms-3\">out of {{totalItems}} items</span>\r\n </span></div>\r\n <div class=\"col-md-4 text-start ps-0\">\r\n <ul>\r\n <li\r\n *ngFor=\"let item of collection | paginate: { itemsPerPage: itemsPerPage, currentPage: currentPage, totalItems: totalItems }\">\r\n </li>\r\n </ul>\r\n <pagination-controls \r\n (pageChange)=\"onPageChange($event);currentPage=$event;\" \r\n [directionLinks]=\"directionLinks\"\r\n [maxSize]=\"7\"\r\n [responsive]=\"true\">\r\n </pagination-controls>\r\n </div>\r\n <div class=\"col-md-2\"></div>\r\n</div>\r\n", styles: ["::ng-deep .ngx-pagination .current{padding:12px!important;background:#eaf8ff!important;cursor:default;color:#00a3ff!important;width:40px;height:40px;border-radius:8px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-600, #00A3FF)!important;text-align:center;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}::ng-deep .ngx-pagination{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}::ng-deep .ngx-pagination a{padding:.1875rem 1rem!important}*{font-family:Inter!important}.border-val{padding:10px 14px!important;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url('data:image/svg+xml;utf8,<svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\"><path d=\"M10 12l-6-6h12l-6 6z\" fill=\"%23777\"/></svg>');background-repeat:no-repeat;background-position-x:calc(100% - 12px);background-position-y:50%;padding-right:20px}.sub-title{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500!important;line-height:20px}\n"] }]
29
+ }], propDecorators: { collection: [{
30
+ type: Input
31
+ }], itemsPerPage: [{
32
+ type: Input
33
+ }], currentPage: [{
34
+ type: Input
35
+ }], totalItems: [{
36
+ type: Input
37
+ }], directionLinks: [{
38
+ type: Input
39
+ }], pageSize: [{
40
+ type: Input
41
+ }], paginationSizes: [{
42
+ type: Input
43
+ }], pageChange: [{
44
+ type: Output
45
+ }], pageSizeChange: [{
46
+ type: Output
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9jb21tb24vcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPdkUsTUFBTSxPQUFPLG1CQUFtQjtJQUNyQixVQUFVLEdBQVUsRUFBRSxDQUFDO0lBQ3ZCLFlBQVksQ0FBUztJQUNyQixXQUFXLENBQVM7SUFDcEIsVUFBVSxDQUFTO0lBQ25CLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFFaEMsUUFBUSxDQUFTO0lBQ2pCLGVBQWUsQ0FBVztJQUN6QixVQUFVLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFDOUQsY0FBYyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBRTVFLFlBQVksQ0FBQyxJQUFZO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7dUdBbkJVLG1CQUFtQjsyRkFBbkIsbUJBQW1CLHFWQ1BoQyxpa0NBMkJBOzsyRkRwQmEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGdCQUFnQjs4QkFLakIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcGFnaW5hdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgY29sbGVjdGlvbjogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBpdGVtc1BlclBhZ2U6IG51bWJlcjtcclxuICBASW5wdXQoKSBjdXJyZW50UGFnZTogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHRvdGFsSXRlbXM6IG51bWJlcjtcclxuICBASW5wdXQoKSBkaXJlY3Rpb25MaW5rczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwYWdlU2l6ZTogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRpb25TaXplczogbnVtYmVyW107XHJcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgQE91dHB1dCgpIHBhZ2VTaXplQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIFxyXG4gIG9uUGFnZUNoYW5nZShwYWdlOiBudW1iZXIpIHtcclxuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHBhZ2UpO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlU2l6ZUNoYW5nZSgpIHtcclxuICAgIHRoaXMuaXRlbXNQZXJQYWdlID0gdGhpcy5wYWdlU2l6ZTtcclxuICAgIHRoaXMucGFnZVNpemVDaGFuZ2UuZW1pdCh0aGlzLnBhZ2VTaXplKTtcclxuICB9XHJcbn1cclxuIiwiXHJcbjxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIG10LTQgdGV4dC1lbmQgcGUtMFwiPjxzcGFuIGNsYXNzPVwic3ViLXRpdGxlXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0zXCI+RGlzcGxheWluZzwvc3Bhbj5cclxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwiYm9yZGVyLXZhbCBcIiBbKG5nTW9kZWwpXT1cInBhZ2VTaXplXCIgKGNoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKClcIj5cclxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInt7IHNpemUgfX1cIiAqbmdGb3I9XCJsZXQgc2l6ZSBvZiBwYWdpbmF0aW9uU2l6ZXNcIj5cclxuICAgICAgICAgICAgICAgIHt7IHNpemUgfX1cclxuICAgICAgICAgICAgPC9vcHRpb24+PlxyXG4gICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXMtM1wiPm91dCBvZiB7e3RvdGFsSXRlbXN9fSBpdGVtczwvc3Bhbj5cclxuICAgIDwvc3Bhbj48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCB0ZXh0LXN0YXJ0IHBzLTBcIj5cclxuICAgIDx1bD5cclxuICAgICAgICA8bGlcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sbGVjdGlvbiB8IHBhZ2luYXRlOiB7IGl0ZW1zUGVyUGFnZTogaXRlbXNQZXJQYWdlLCBjdXJyZW50UGFnZTogY3VycmVudFBhZ2UsIHRvdGFsSXRlbXM6IHRvdGFsSXRlbXMgfVwiPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gICAgPHBhZ2luYXRpb24tY29udHJvbHMgXHJcbiAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudCk7Y3VycmVudFBhZ2U9JGV2ZW50O1wiIFxyXG4gICAgICAgIFtkaXJlY3Rpb25MaW5rc109XCJkaXJlY3Rpb25MaW5rc1wiXHJcbiAgICAgICAgW21heFNpemVdPVwiN1wiXHJcbiAgICAgICAgW3Jlc3BvbnNpdmVdPVwidHJ1ZVwiPlxyXG4gICAgPC9wYWdpbmF0aW9uLWNvbnRyb2xzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTJcIj48L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -28,14 +28,14 @@ export class HeaderMenuComponent {
28
28
  this.unsubscribe.forEach((sb) => sb.unsubscribe());
29
29
  }
30
30
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: HeaderMenuComponent, deps: [{ token: i1.PageInfoService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
31
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: HeaderMenuComponent, selector: "lib-header-menu", inputs: { appPageTitleDirection: "appPageTitleDirection", appPageTitleDescription: "appPageTitleDescription" }, ngImport: i0, template: "<ng-container *ngIf=\"title$ | async as title\">\r\n <!-- begin::Title -->\r\n <h1 class=\"page-heading d-flex text-gray-900 fw-bold fs-3 my-0 flex-column justify-content-center\">\r\n {{ title }}\r\n <ng-container *ngIf=\"appPageTitleDescription\">\r\n <ng-container *ngIf=\"description$ | async as description\">\r\n\r\n\r\n <!--begin::Description-->\r\n <span class=\"page-desc text-muted fs-7 fw-semibold\" [ngClass]=\"{'pt-2': appPageTitleDirection === 'column'}\">\r\n <ng-container *ngIf=\"appPageTitleDirection === 'row'\">\r\n <!--begin::Separator-->\r\n <span class=\"h-20px border-1 border-gray-300 border-start ms-3 mx-2\"></span>\r\n <!--end::Separator-->\r\n </ng-container>\r\n\r\n {{description}}\r\n </span>\r\n <!--end::Description-->\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </h1>\r\n <!-- end::Title -->\r\n\r\n</ng-container>\r\n", styles: [":host{height:inherit;width:inherit}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
31
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: HeaderMenuComponent, selector: "lib-header-menu", inputs: { appPageTitleDirection: "appPageTitleDirection", appPageTitleDescription: "appPageTitleDescription" }, ngImport: i0, template: "<ng-container *ngIf=\"title$ | async as title\">\r\n <!-- begin::Title -->\r\n <h1 class=\"page-heading d-flex text-gray-900 fw-bold fs-3 my-0 flex-column justify-content-center\">\r\n {{ title }}\r\n <ng-container *ngIf=\"appPageTitleDescription\">\r\n <ng-container *ngIf=\"description$ | async as description\">\r\n\r\n\r\n <!--begin::Description-->\r\n <span class=\"page-desc text-muted fs-7 fw-semibold mt-2\" [ngClass]=\"{'pt-2': appPageTitleDirection === 'column'}\">\r\n <ng-container *ngIf=\"appPageTitleDirection === 'row'\">\r\n <!--begin::Separator-->\r\n <span class=\"h-20px border-1 border-gray-300 border-start ms-3 mx-2\"></span>\r\n <!--end::Separator-->\r\n </ng-container>\r\n\r\n {{description}}\r\n </span>\r\n <!--end::Description-->\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </h1>\r\n <!-- end::Title -->\r\n\r\n</ng-container>\r\n", styles: [":host{height:inherit;width:inherit}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
32
32
  }
33
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: HeaderMenuComponent, decorators: [{
34
34
  type: Component,
35
- args: [{ selector: 'lib-header-menu', template: "<ng-container *ngIf=\"title$ | async as title\">\r\n <!-- begin::Title -->\r\n <h1 class=\"page-heading d-flex text-gray-900 fw-bold fs-3 my-0 flex-column justify-content-center\">\r\n {{ title }}\r\n <ng-container *ngIf=\"appPageTitleDescription\">\r\n <ng-container *ngIf=\"description$ | async as description\">\r\n\r\n\r\n <!--begin::Description-->\r\n <span class=\"page-desc text-muted fs-7 fw-semibold\" [ngClass]=\"{'pt-2': appPageTitleDirection === 'column'}\">\r\n <ng-container *ngIf=\"appPageTitleDirection === 'row'\">\r\n <!--begin::Separator-->\r\n <span class=\"h-20px border-1 border-gray-300 border-start ms-3 mx-2\"></span>\r\n <!--end::Separator-->\r\n </ng-container>\r\n\r\n {{description}}\r\n </span>\r\n <!--end::Description-->\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </h1>\r\n <!-- end::Title -->\r\n\r\n</ng-container>\r\n", styles: [":host{height:inherit;width:inherit}\n"] }]
35
+ args: [{ selector: 'lib-header-menu', template: "<ng-container *ngIf=\"title$ | async as title\">\r\n <!-- begin::Title -->\r\n <h1 class=\"page-heading d-flex text-gray-900 fw-bold fs-3 my-0 flex-column justify-content-center\">\r\n {{ title }}\r\n <ng-container *ngIf=\"appPageTitleDescription\">\r\n <ng-container *ngIf=\"description$ | async as description\">\r\n\r\n\r\n <!--begin::Description-->\r\n <span class=\"page-desc text-muted fs-7 fw-semibold mt-2\" [ngClass]=\"{'pt-2': appPageTitleDirection === 'column'}\">\r\n <ng-container *ngIf=\"appPageTitleDirection === 'row'\">\r\n <!--begin::Separator-->\r\n <span class=\"h-20px border-1 border-gray-300 border-start ms-3 mx-2\"></span>\r\n <!--end::Separator-->\r\n </ng-container>\r\n\r\n {{description}}\r\n </span>\r\n <!--end::Description-->\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </h1>\r\n <!-- end::Title -->\r\n\r\n</ng-container>\r\n", styles: [":host{height:inherit;width:inherit}\n"] }]
36
36
  }], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i0.ChangeDetectorRef }], propDecorators: { appPageTitleDirection: [{
37
37
  type: Input
38
38
  }], appPageTitleDescription: [{
39
39
  type: Input
40
40
  }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L2hlYWRlci9oZWFkZXItbWVudS9oZWFkZXItbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvaGVhZGVyL2hlYWRlci1tZW51L2hlYWRlci1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7Ozs7QUFVdkYsTUFBTSxPQUFPLG1CQUFtQjtJQVNWO0lBQW1DO0lBUi9DLFdBQVcsR0FBbUIsRUFBRSxDQUFDO0lBRWhDLHFCQUFxQixHQUFXLEVBQUUsQ0FBQztJQUNuQyx1QkFBdUIsR0FBWSxJQUFJLENBQUM7SUFFakQsTUFBTSxDQUFxQjtJQUMzQixZQUFZLENBQXFCO0lBRWpDLFlBQW9CLFFBQXlCLEVBQVUsRUFBb0I7UUFBdkQsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFrQjtJQUFHLENBQUM7SUFFL0UsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUU3RCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDekIsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDekIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO3VHQXpCVSxtQkFBbUI7MkZBQW5CLG1CQUFtQix1S0NWaEMsODhCQTJCQTs7MkZEakJhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7b0hBT2xCLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1tZXRyb25pY3MnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWhlYWRlci1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci1tZW51LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIZWFkZXJNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmU6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGFwcFBhZ2VUaXRsZURpcmVjdGlvbjogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgYXBwUGFnZVRpdGxlRGVzY3JpcHRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICB0aXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuICBkZXNjcmlwdGlvbiQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYWdlSW5mbzogUGFnZUluZm9TZXJ2aWNlLCBwcml2YXRlIGNkOkNoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudGl0bGUkID0gdGhpcy5wYWdlSW5mby50aXRsZS5hc09ic2VydmFibGUoKTtcclxuICAgIHRoaXMuZGVzY3JpcHRpb24kID0gdGhpcy5wYWdlSW5mby5kZXNjcmlwdGlvbi5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICB0aGlzLnRpdGxlJC5zdWJzY3JpYmUoKGUpPT57XHJcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICB9KVxyXG4gICAgdGhpcy5kZXNjcmlwdGlvbiQuc3Vic2NyaWJlKChlKT0+e1xyXG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5mb3JFYWNoKChzYikgPT4gc2IudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwidGl0bGUkIHwgYXN5bmMgYXMgdGl0bGVcIj5cclxuICA8IS0tIGJlZ2luOjpUaXRsZSAtLT5cclxuICA8aDEgY2xhc3M9XCJwYWdlLWhlYWRpbmcgZC1mbGV4IHRleHQtZ3JheS05MDAgZnctYm9sZCBmcy0zIG15LTAgZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAge3sgdGl0bGUgfX1cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcHBQYWdlVGl0bGVEZXNjcmlwdGlvblwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGVzY3JpcHRpb24kIHwgYXN5bmMgYXMgZGVzY3JpcHRpb25cIj5cclxuXHJcblxyXG4gICAgICAgIDwhLS1iZWdpbjo6RGVzY3JpcHRpb24tLT5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInBhZ2UtZGVzYyB0ZXh0LW11dGVkIGZzLTcgZnctc2VtaWJvbGRcIiBbbmdDbGFzc109XCJ7J3B0LTInOiBhcHBQYWdlVGl0bGVEaXJlY3Rpb24gPT09ICdjb2x1bW4nfVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwcFBhZ2VUaXRsZURpcmVjdGlvbiA9PT0gJ3JvdydcIj5cclxuICAgICAgICAgICAgPCEtLWJlZ2luOjpTZXBhcmF0b3ItLT5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoLTIwcHggYm9yZGVyLTEgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1zdGFydCBtcy0zIG14LTJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwhLS1lbmQ6OlNlcGFyYXRvci0tPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAge3tkZXNjcmlwdGlvbn19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwhLS1lbmQ6OkRlc2NyaXB0aW9uLS0+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8L2gxPlxyXG4gIDwhLS0gZW5kOjpUaXRsZSAtLT5cclxuXHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L2hlYWRlci9oZWFkZXItbWVudS9oZWFkZXItbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvaGVhZGVyL2hlYWRlci1tZW51L2hlYWRlci1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7Ozs7QUFVdkYsTUFBTSxPQUFPLG1CQUFtQjtJQVNWO0lBQW1DO0lBUi9DLFdBQVcsR0FBbUIsRUFBRSxDQUFDO0lBRWhDLHFCQUFxQixHQUFXLEVBQUUsQ0FBQztJQUNuQyx1QkFBdUIsR0FBWSxJQUFJLENBQUM7SUFFakQsTUFBTSxDQUFxQjtJQUMzQixZQUFZLENBQXFCO0lBRWpDLFlBQW9CLFFBQXlCLEVBQVUsRUFBb0I7UUFBdkQsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFrQjtJQUFHLENBQUM7SUFFL0UsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUU3RCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDekIsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDekIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO3VHQXpCVSxtQkFBbUI7MkZBQW5CLG1CQUFtQix1S0NWaEMsbTlCQTJCQTs7MkZEakJhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7b0hBT2xCLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1tZXRyb25pY3MnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWhlYWRlci1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci1tZW51LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIZWFkZXJNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmU6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGFwcFBhZ2VUaXRsZURpcmVjdGlvbjogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgYXBwUGFnZVRpdGxlRGVzY3JpcHRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICB0aXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuICBkZXNjcmlwdGlvbiQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYWdlSW5mbzogUGFnZUluZm9TZXJ2aWNlLCBwcml2YXRlIGNkOkNoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudGl0bGUkID0gdGhpcy5wYWdlSW5mby50aXRsZS5hc09ic2VydmFibGUoKTtcclxuICAgIHRoaXMuZGVzY3JpcHRpb24kID0gdGhpcy5wYWdlSW5mby5kZXNjcmlwdGlvbi5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICB0aGlzLnRpdGxlJC5zdWJzY3JpYmUoKGUpPT57XHJcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICB9KVxyXG4gICAgdGhpcy5kZXNjcmlwdGlvbiQuc3Vic2NyaWJlKChlKT0+e1xyXG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5mb3JFYWNoKChzYikgPT4gc2IudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwidGl0bGUkIHwgYXN5bmMgYXMgdGl0bGVcIj5cclxuICA8IS0tIGJlZ2luOjpUaXRsZSAtLT5cclxuICA8aDEgY2xhc3M9XCJwYWdlLWhlYWRpbmcgZC1mbGV4IHRleHQtZ3JheS05MDAgZnctYm9sZCBmcy0zIG15LTAgZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAge3sgdGl0bGUgfX1cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcHBQYWdlVGl0bGVEZXNjcmlwdGlvblwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGVzY3JpcHRpb24kIHwgYXN5bmMgYXMgZGVzY3JpcHRpb25cIj5cclxuXHJcblxyXG4gICAgICAgIDwhLS1iZWdpbjo6RGVzY3JpcHRpb24tLT5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInBhZ2UtZGVzYyB0ZXh0LW11dGVkIGZzLTcgZnctc2VtaWJvbGQgbXQtMlwiIFtuZ0NsYXNzXT1cInsncHQtMic6IGFwcFBhZ2VUaXRsZURpcmVjdGlvbiA9PT0gJ2NvbHVtbid9XCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwUGFnZVRpdGxlRGlyZWN0aW9uID09PSAncm93J1wiPlxyXG4gICAgICAgICAgICA8IS0tYmVnaW46OlNlcGFyYXRvci0tPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImgtMjBweCBib3JkZXItMSBib3JkZXItZ3JheS0zMDAgYm9yZGVyLXN0YXJ0IG1zLTMgbXgtMlwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPCEtLWVuZDo6U2VwYXJhdG9yLS0+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICB7e2Rlc2NyaXB0aW9ufX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPCEtLWVuZDo6RGVzY3JpcHRpb24tLT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwvaDE+XHJcbiAgPCEtLSBlbmQ6OlRpdGxlIC0tPlxyXG5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -35,11 +35,11 @@ export class PageTitleComponent {
35
35
  this.unsubscribe.forEach((sb) => sb.unsubscribe());
36
36
  }
37
37
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: PageTitleComponent, deps: [{ token: i1.PageInfoService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
38
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: PageTitleComponent, selector: "lib-page-title", inputs: { appPageTitleDirection: "appPageTitleDirection", appPageTitleBreadcrumb: "appPageTitleBreadcrumb", appPageTitleDescription: "appPageTitleDescription" }, ngImport: i0, template: "<ng-container *ngIf=\"title$ | async as title\">\r\n\r\n <ng-container *ngIf=\"appPageTitleBreadcrumb\">\r\n <ng-container *ngIf=\"bc$ | async as _bc\">\r\n <ng-container *ngIf=\"_bc.length > 0\">\r\n <!-- <ng-container *ngIf=\"appPageTitleDirection === 'row'\">\r\n <span class=\"h-20px border-gray-300 border-start mx-4\"></span>\r\n </ng-container> -->\r\n <!--begin::Breadcrumb-->\r\n\r\n <ul class=\"breadcrumb breadcrumb-separatorless fw-semibold fs-7 my-0\"\r\n [ngClass]=\"{'pt-1': appPageTitleDirection === 'column'}\">\r\n <li *ngFor=\"let bc of _bc\" class=\"breadcrumb-item\"\r\n [ngClass]=\"!bc.isSeparator && bc.isActive ? 'text-gray-900' : ''\"\r\n [ngClass]=\"!bc.isSeparator && !bc.isActive ? 'text-muted' : ''\">\r\n <ng-container *ngIf=\"!bc.isSeparator\">\r\n <a class=\"inactive-bc text-hover-primary\" [routerLink]=\"bc.path\">\r\n {{ bc.title }}\r\n </a>\r\n </ng-container>\r\n <ng-container *ngIf=\"bc.isSeparator\">\r\n <img src=\"/assets/tango/layout/bc-seperator.svg\" alt=\"\">\r\n </ng-container>\r\n </li>\r\n <li class=\"breadcrumb-item active-bc\">{{ title }}</li>\r\n </ul>\r\n <!--end::Breadcrumb-->\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>\r\n", styles: [".active-bc{color:#00a3ff}.inactive-bc{color:#98a2b3}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
38
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: PageTitleComponent, selector: "lib-page-title", inputs: { appPageTitleDirection: "appPageTitleDirection", appPageTitleBreadcrumb: "appPageTitleBreadcrumb", appPageTitleDescription: "appPageTitleDescription" }, ngImport: i0, template: "<ng-container *ngIf=\"title$ | async as title\">\r\n\r\n <ng-container *ngIf=\"appPageTitleBreadcrumb\">\r\n <ng-container *ngIf=\"bc$ | async as _bc\">\r\n <ng-container *ngIf=\"_bc.length > 0\">\r\n <!-- <ng-container *ngIf=\"appPageTitleDirection === 'row'\">\r\n <span class=\"h-20px border-gray-300 border-start mx-4\"></span>\r\n </ng-container> -->\r\n <!--begin::Breadcrumb-->\r\n\r\n <ul class=\"breadcrumb breadcrumb-separatorless fw-semibold fs-7 my-0\"\r\n [ngClass]=\"{'pt-1': appPageTitleDirection === 'column'}\">\r\n <li *ngFor=\"let bc of _bc\" class=\"breadcrumb-item\"\r\n [ngClass]=\"!bc.isSeparator && bc.isActive ? 'text-gray-900' : ''\"\r\n [ngClass]=\"!bc.isSeparator && !bc.isActive ? 'text-muted' : ''\">\r\n <ng-container *ngIf=\"!bc.isSeparator\">\r\n <a class=\"inactive-bc text-hover-primary\" [routerLink]=\"bc.path\">\r\n {{ bc.title }}\r\n </a>\r\n </ng-container>\r\n <ng-container *ngIf=\"bc.isSeparator\">\r\n <img src=\"/assets/tango/layout/bc-seperator.svg\" alt=\"\">\r\n </ng-container>\r\n </li>\r\n <li class=\"breadcrumb-item active-bc\">{{ title }}</li>\r\n </ul>\r\n <!--end::Breadcrumb-->\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>\r\n", styles: [".active-bc{color:var(--Primary-600, #00A3FF);font-family:Inter;font-size:16px;font-weight:500;line-height:24px}.inactive-bc{color:#98a2b3}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
39
39
  }
40
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: PageTitleComponent, decorators: [{
41
41
  type: Component,
42
- args: [{ selector: 'lib-page-title', template: "<ng-container *ngIf=\"title$ | async as title\">\r\n\r\n <ng-container *ngIf=\"appPageTitleBreadcrumb\">\r\n <ng-container *ngIf=\"bc$ | async as _bc\">\r\n <ng-container *ngIf=\"_bc.length > 0\">\r\n <!-- <ng-container *ngIf=\"appPageTitleDirection === 'row'\">\r\n <span class=\"h-20px border-gray-300 border-start mx-4\"></span>\r\n </ng-container> -->\r\n <!--begin::Breadcrumb-->\r\n\r\n <ul class=\"breadcrumb breadcrumb-separatorless fw-semibold fs-7 my-0\"\r\n [ngClass]=\"{'pt-1': appPageTitleDirection === 'column'}\">\r\n <li *ngFor=\"let bc of _bc\" class=\"breadcrumb-item\"\r\n [ngClass]=\"!bc.isSeparator && bc.isActive ? 'text-gray-900' : ''\"\r\n [ngClass]=\"!bc.isSeparator && !bc.isActive ? 'text-muted' : ''\">\r\n <ng-container *ngIf=\"!bc.isSeparator\">\r\n <a class=\"inactive-bc text-hover-primary\" [routerLink]=\"bc.path\">\r\n {{ bc.title }}\r\n </a>\r\n </ng-container>\r\n <ng-container *ngIf=\"bc.isSeparator\">\r\n <img src=\"/assets/tango/layout/bc-seperator.svg\" alt=\"\">\r\n </ng-container>\r\n </li>\r\n <li class=\"breadcrumb-item active-bc\">{{ title }}</li>\r\n </ul>\r\n <!--end::Breadcrumb-->\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>\r\n", styles: [".active-bc{color:#00a3ff}.inactive-bc{color:#98a2b3}\n"] }]
42
+ args: [{ selector: 'lib-page-title', template: "<ng-container *ngIf=\"title$ | async as title\">\r\n\r\n <ng-container *ngIf=\"appPageTitleBreadcrumb\">\r\n <ng-container *ngIf=\"bc$ | async as _bc\">\r\n <ng-container *ngIf=\"_bc.length > 0\">\r\n <!-- <ng-container *ngIf=\"appPageTitleDirection === 'row'\">\r\n <span class=\"h-20px border-gray-300 border-start mx-4\"></span>\r\n </ng-container> -->\r\n <!--begin::Breadcrumb-->\r\n\r\n <ul class=\"breadcrumb breadcrumb-separatorless fw-semibold fs-7 my-0\"\r\n [ngClass]=\"{'pt-1': appPageTitleDirection === 'column'}\">\r\n <li *ngFor=\"let bc of _bc\" class=\"breadcrumb-item\"\r\n [ngClass]=\"!bc.isSeparator && bc.isActive ? 'text-gray-900' : ''\"\r\n [ngClass]=\"!bc.isSeparator && !bc.isActive ? 'text-muted' : ''\">\r\n <ng-container *ngIf=\"!bc.isSeparator\">\r\n <a class=\"inactive-bc text-hover-primary\" [routerLink]=\"bc.path\">\r\n {{ bc.title }}\r\n </a>\r\n </ng-container>\r\n <ng-container *ngIf=\"bc.isSeparator\">\r\n <img src=\"/assets/tango/layout/bc-seperator.svg\" alt=\"\">\r\n </ng-container>\r\n </li>\r\n <li class=\"breadcrumb-item active-bc\">{{ title }}</li>\r\n </ul>\r\n <!--end::Breadcrumb-->\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>\r\n", styles: [".active-bc{color:var(--Primary-600, #00A3FF);font-family:Inter;font-size:16px;font-weight:500;line-height:24px}.inactive-bc{color:#98a2b3}\n"] }]
43
43
  }], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i0.ChangeDetectorRef }], propDecorators: { appPageTitleDirection: [{
44
44
  type: Input
45
45
  }], appPageTitleBreadcrumb: [{